SlideShare a Scribd company logo
Java EE 6 or... Enterprise
Application Development
just got easier
George Alin Costea, Andrei Mihăilă, Bogdan
Burlacu
S.C. Software Development Partnership S.R.L.
October 16th 2010
Introduction
●
    Alin Costea
    ●
        MSc in Computer Science – Distributed Systems
●
    Andrei Mihăilă
    ●
        MSc in Computer Science – Distributed Systems
●
    Bogdan Burlacu
    ●
        BSc in Systems Engineering, currently PhD student
●
    S.C. Software Development Partnership S.R.L.
    ●
        UK based company that helps you make the most out
        of your website
    ●
        http://www.sdp-web.com/
Overview
●
    Introduction to the Java Enterprise Edition platform
●
    Platform evolution
●
    How can this be of any help to me?
●
    What's new in Java EE 6
●
    The tools of the trade
●
    Java EE BookStore application Demo
Java Platform, Enterprise Edition
Java Platform, Enterprise Edition
or Java EE (formerly known as
Java 2 Platform, Enterprise
Edition or J2EE), is a
programming platform part of
the Java Platform for developing
and running distributed multi-
tier architecture Java
applications, based largely on
modular software components
running on an application server.
Java EE6 CodeCamp16 oct 2010
OK, what's your point?: Evolution

A look at the history of the Java Platform, Enterprise Edition
specification reveals that each major revision has been driven by
a major theme.
For example, with the first release of J2EE 1.2 came the initial
bundling of separate specifications, and later, in J2EE 1.4, the
focus was on Web services.
Starting with Java EE 5 the main focus shifted to simplification.


Many of the upgrades in Java EE have been influenced by
innovative technologies in both the commercial and open source
space, such as Hibernate, Spring, Seam etc.
Java EE Overview – Main APIs
OK... how can all this make
 my life easier?
Well, let's take a practical approach:


You're building a backend for an application, that
needs to be implemented in record time :) and be
able to scale easily. Oh and while we're at it, it should
play nice with the existing legacy frontend site
written in PHP and should look eyecandy-ish (they all
love Ajax these days).
OK... how can all this make
    my life easier?
●
    First of all you're going to need database
    connectivity and abstraction. An OR/M layer would
    be pretty sweet. Oh wait, Java EE has JPA, we're
    covered! It works with all major RDBMS and it's a
    walk in a park.
●
    OK, we need to build the application business logic
    module. We might need to expose it to SOAP/REST
    clients (that PHP frontend comes into mind),
    deploy it into a cluster...
    Here comes EJB to the rescue! And it's dead simple
    to use too!
OK... how can all this make
    my life easier?
●
    That's great, but what framework should I use to
    build the user interface? I'm going to need
    something smart, a MVC based approach, I want
    ready made components which I can reuse, Ajax
    support... oh and it should not be a pain to
    develop and maintain...
    Well lucky us, Java EE has the answer for that too.
    JSF!
Where they all fit in...
What's new in Java EE 6?
●
    Several new APIs
●
    Web Profile
     ●
         Profiles increase Flexibility and Focus
     ●
         Bundles of technologies targeting specific classes of
         applications
     ●
         No need to load all APIs for a simple Web Application...
     ●
         Complete, but not the kitchen sink
●
    Pruning
     ●
         Addresses bloat concern
     ●
         Removal of legacy technologies
What's new in Java EE 6?
●
    Pluggability/extensibility
     ●
         Zero configuration of modules
     ●
         Focus on the web tier
     ●
         web.xml is now optional
     ●
         Ability to serve resources out of jars
●
    Dependency injection
     ●
         New @Inject annotation
     ●
         Beans autodiscovered at startup
     ●
         Injection metamodel (BeanManager API)
What's new in Java EE 6?
●
    RESTful Web Services
     ●
         Already widely adopted
     ●
         Really a high-level HTTP API
     ●
         Annotation-based programming model
●
    Standard Validation API
     ●
         Integrated with JSF, JPA
     ●
         Constraints represented by annotations
     ●
         Fully extensible
What's new in Java EE 6?
●
    Many improvements to individual APIs
     ●
         EJB 3.1 (@Singleton beans, @Startup beans,
         @Asynchronous invocations, No interface view, EJB 3.1 Lite)
     ●
         JPA 2.0 (JPQL enhancements, Pessimistic locking, Criteria API
         for dynamic query construction)
     ●
         Servlet 3.0 (New programming model for async request
         processing, Comet, push apps, web.xml is now optional)
     ●
         JSF 2.0 (Facelets as default view technology, Composite
         Component API, Ajax fully integrated, better navigation and
         graceful degradation, new scopes for Managed Beans, no
         more XML configuration :), Bean Validation, Resource
         management and many more)
     ●
         And much more...
Tools of the trade
●
    NetBeans IDE
     ●
         Free community-supported IDE (open source)
     ●
         Based on the NetBeans Platform (extensible, modular
         architecture, OSGi compatible)
     ●
         Excellent support for Java EE 6 and Glassfish Application
         Server and also supports development of all Java
         application types (Java SE including JavaFX, Java ME, web,
         EJB and mobile applications) out of the box.
     ●
         Supports most popular languages and frameworks (C, C++,
         Python, Ruby [on Rails], PHP [with Symfony])
     ●
         Offers integration with most versioning systems (CVS, SVN,
         Mercurial, Git), Issue Tracking systems (JIRA, Bugzilla),
         Continuous Integration Systems (Hudson), databases (every
         database supported by JDBC), Team Integration services
         (Kenai) etc.
Tools of the trade
●
    Glassfish Application Server
     ●
         Your one-stop-shop for everything Java EE
     ●
         Free community-supported application server (open source)
     ●
         Java EE reference implementation
     ●
         Next-generation modular and extensible architecture (OSGi)
     ●
         Enterprise reliability and performance with less complexity
     ●
         Backed by Oracle (Oracle Glassfish Server – fully supported)
     ●
         First to support the new, lightweight Java EE 6 Web Profile
         and the full Java EE 6 platform
     ●
         Provides .NET 3.0 Web services interoperability; leveraging
         Project Metro (JAX-WS), applications can interoperate with
         Windows Communication Foundation (WCF)
     ●
         Easily runs dynamic language frameworks such as
         JRuby/Rails and Jython/Django, with or without a Web
         container
Example
●
    Simple JavaEE Application X-Ray :)
Demo
●
    JavaEE Bookstore Application
Resources
●
    http://download.oracle.com/javaee/6/tutorial/doc/index.html
    http://netbeans.org/
●
    https://glassfish.dev.java.net/
●
    http://netbeans.org/kb/trails/java-ee.html
●
    http://netbeans.org/kb/docs/javaee/ecommerce/design.html
●
    http://www.ibm.com/developerworks/websphere/library/techarti
    cles/0707_barcia/0707_barcia.html
●
    http://java.sun.com/developer/technicalArticles/J2EE/intro_ee5/
●
    http://publib.boulder.ibm.com/infocenter/radhelp/v7r5/index.jsp
    ?topic=/com.ibm.jee5.doc/topics/cejb3vejb21.html
●
    http://andyschwartz.wordpress.com/2009/07/31/whats-new-in-
    jsf-2/
●
    http://www.adam-bien.com/roller/abien/entry/java_ee_or_net_an
Questions?
Please fill in the evaluation form


Thank you!
 George Alin Costea (alin.costea@sdp-web.com)
 Andrei Mihăilă (andrei.mihaila@sdp-web.com)
 Bogdan Burlacu (bogdan.burlacu@sdp-web.com)


 S.C. Software Development Partnership S.R.L. (SDP)
 http://www.sdp-web.com/

More Related Content

Java EE6 CodeCamp16 oct 2010

  • 1. Java EE 6 or... Enterprise Application Development just got easier George Alin Costea, Andrei Mihăilă, Bogdan Burlacu S.C. Software Development Partnership S.R.L. October 16th 2010
  • 2. Introduction ● Alin Costea ● MSc in Computer Science – Distributed Systems ● Andrei Mihăilă ● MSc in Computer Science – Distributed Systems ● Bogdan Burlacu ● BSc in Systems Engineering, currently PhD student ● S.C. Software Development Partnership S.R.L. ● UK based company that helps you make the most out of your website ● http://www.sdp-web.com/
  • 3. Overview ● Introduction to the Java Enterprise Edition platform ● Platform evolution ● How can this be of any help to me? ● What's new in Java EE 6 ● The tools of the trade ● Java EE BookStore application Demo
  • 4. Java Platform, Enterprise Edition Java Platform, Enterprise Edition or Java EE (formerly known as Java 2 Platform, Enterprise Edition or J2EE), is a programming platform part of the Java Platform for developing and running distributed multi- tier architecture Java applications, based largely on modular software components running on an application server.
  • 6. OK, what's your point?: Evolution A look at the history of the Java Platform, Enterprise Edition specification reveals that each major revision has been driven by a major theme. For example, with the first release of J2EE 1.2 came the initial bundling of separate specifications, and later, in J2EE 1.4, the focus was on Web services. Starting with Java EE 5 the main focus shifted to simplification. Many of the upgrades in Java EE have been influenced by innovative technologies in both the commercial and open source space, such as Hibernate, Spring, Seam etc.
  • 7. Java EE Overview – Main APIs
  • 8. OK... how can all this make my life easier? Well, let's take a practical approach: You're building a backend for an application, that needs to be implemented in record time :) and be able to scale easily. Oh and while we're at it, it should play nice with the existing legacy frontend site written in PHP and should look eyecandy-ish (they all love Ajax these days).
  • 9. OK... how can all this make my life easier? ● First of all you're going to need database connectivity and abstraction. An OR/M layer would be pretty sweet. Oh wait, Java EE has JPA, we're covered! It works with all major RDBMS and it's a walk in a park. ● OK, we need to build the application business logic module. We might need to expose it to SOAP/REST clients (that PHP frontend comes into mind), deploy it into a cluster... Here comes EJB to the rescue! And it's dead simple to use too!
  • 10. OK... how can all this make my life easier? ● That's great, but what framework should I use to build the user interface? I'm going to need something smart, a MVC based approach, I want ready made components which I can reuse, Ajax support... oh and it should not be a pain to develop and maintain... Well lucky us, Java EE has the answer for that too. JSF!
  • 11. Where they all fit in...
  • 12. What's new in Java EE 6? ● Several new APIs ● Web Profile ● Profiles increase Flexibility and Focus ● Bundles of technologies targeting specific classes of applications ● No need to load all APIs for a simple Web Application... ● Complete, but not the kitchen sink ● Pruning ● Addresses bloat concern ● Removal of legacy technologies
  • 13. What's new in Java EE 6? ● Pluggability/extensibility ● Zero configuration of modules ● Focus on the web tier ● web.xml is now optional ● Ability to serve resources out of jars ● Dependency injection ● New @Inject annotation ● Beans autodiscovered at startup ● Injection metamodel (BeanManager API)
  • 14. What's new in Java EE 6? ● RESTful Web Services ● Already widely adopted ● Really a high-level HTTP API ● Annotation-based programming model ● Standard Validation API ● Integrated with JSF, JPA ● Constraints represented by annotations ● Fully extensible
  • 15. What's new in Java EE 6? ● Many improvements to individual APIs ● EJB 3.1 (@Singleton beans, @Startup beans, @Asynchronous invocations, No interface view, EJB 3.1 Lite) ● JPA 2.0 (JPQL enhancements, Pessimistic locking, Criteria API for dynamic query construction) ● Servlet 3.0 (New programming model for async request processing, Comet, push apps, web.xml is now optional) ● JSF 2.0 (Facelets as default view technology, Composite Component API, Ajax fully integrated, better navigation and graceful degradation, new scopes for Managed Beans, no more XML configuration :), Bean Validation, Resource management and many more) ● And much more...
  • 16. Tools of the trade ● NetBeans IDE ● Free community-supported IDE (open source) ● Based on the NetBeans Platform (extensible, modular architecture, OSGi compatible) ● Excellent support for Java EE 6 and Glassfish Application Server and also supports development of all Java application types (Java SE including JavaFX, Java ME, web, EJB and mobile applications) out of the box. ● Supports most popular languages and frameworks (C, C++, Python, Ruby [on Rails], PHP [with Symfony]) ● Offers integration with most versioning systems (CVS, SVN, Mercurial, Git), Issue Tracking systems (JIRA, Bugzilla), Continuous Integration Systems (Hudson), databases (every database supported by JDBC), Team Integration services (Kenai) etc.
  • 17. Tools of the trade ● Glassfish Application Server ● Your one-stop-shop for everything Java EE ● Free community-supported application server (open source) ● Java EE reference implementation ● Next-generation modular and extensible architecture (OSGi) ● Enterprise reliability and performance with less complexity ● Backed by Oracle (Oracle Glassfish Server – fully supported) ● First to support the new, lightweight Java EE 6 Web Profile and the full Java EE 6 platform ● Provides .NET 3.0 Web services interoperability; leveraging Project Metro (JAX-WS), applications can interoperate with Windows Communication Foundation (WCF) ● Easily runs dynamic language frameworks such as JRuby/Rails and Jython/Django, with or without a Web container
  • 18. Example ● Simple JavaEE Application X-Ray :)
  • 19. Demo ● JavaEE Bookstore Application
  • 20. Resources ● http://download.oracle.com/javaee/6/tutorial/doc/index.html http://netbeans.org/ ● https://glassfish.dev.java.net/ ● http://netbeans.org/kb/trails/java-ee.html ● http://netbeans.org/kb/docs/javaee/ecommerce/design.html ● http://www.ibm.com/developerworks/websphere/library/techarti cles/0707_barcia/0707_barcia.html ● http://java.sun.com/developer/technicalArticles/J2EE/intro_ee5/ ● http://publib.boulder.ibm.com/infocenter/radhelp/v7r5/index.jsp ?topic=/com.ibm.jee5.doc/topics/cejb3vejb21.html ● http://andyschwartz.wordpress.com/2009/07/31/whats-new-in- jsf-2/ ● http://www.adam-bien.com/roller/abien/entry/java_ee_or_net_an
  • 22. Please fill in the evaluation form Thank you! George Alin Costea (alin.costea@sdp-web.com) Andrei Mihăilă (andrei.mihaila@sdp-web.com) Bogdan Burlacu (bogdan.burlacu@sdp-web.com) S.C. Software Development Partnership S.R.L. (SDP) http://www.sdp-web.com/