Java EE6 CodeCamp16 oct 2010

22
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 16 th 2010

Transcript of Java EE6 CodeCamp16 oct 2010

Page 1: Java EE6 CodeCamp16 oct 2010

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

Page 2: Java EE6 CodeCamp16 oct 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/

Page 3: Java EE6 CodeCamp16 oct 2010

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

Page 4: Java EE6 CodeCamp16 oct 2010

Java Platform, Enterprise EditionJava 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.

Page 5: Java EE6 CodeCamp16 oct 2010
Page 6: 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.

Page 7: Java EE6 CodeCamp16 oct 2010

Java EE Overview – Main APIs

Page 8: Java EE6 CodeCamp16 oct 2010

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).

Page 9: Java EE6 CodeCamp16 oct 2010

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!

Page 10: Java EE6 CodeCamp16 oct 2010

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!

Page 11: Java EE6 CodeCamp16 oct 2010

Where they all fit in...

Page 12: Java EE6 CodeCamp16 oct 2010

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

Page 13: Java EE6 CodeCamp16 oct 2010

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)

Page 14: Java EE6 CodeCamp16 oct 2010

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

Page 15: Java EE6 CodeCamp16 oct 2010

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...

Page 16: Java EE6 CodeCamp16 oct 2010

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.

Page 17: Java EE6 CodeCamp16 oct 2010

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

Page 18: Java EE6 CodeCamp16 oct 2010

Example● Simple JavaEE Application X-Ray :)

Page 19: Java EE6 CodeCamp16 oct 2010

Demo● JavaEE Bookstore Application

Page 20: Java EE6 CodeCamp16 oct 2010

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/techarticles/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

Page 21: Java EE6 CodeCamp16 oct 2010

Questions?

Page 22: Java EE6 CodeCamp16 oct 2010

Please fill in the evaluation form

George Alin Costea ([email protected])

Andrei Mihăilă ([email protected])

Bogdan Burlacu ([email protected])

S.C. Software Development Partnership S.R.L. (SDP)

http://www.sdp-web.com/

Thank you!