java ee6 codecamp16 oct 2010

Post on 16-May-2015

833 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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

Questions?

Please fill in the evaluation form

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/

Thank you!

top related