Enterprise grade Java.
You'll read about Conferences, Java User Groups, Java, Integration, Reactive, Microservices and other technologies.

Monday, March 8, 2010

Getting started with (GSW #1): Java EE 6

13:16 Monday, March 8, 2010 Posted by Markus Eisele
, ,
You may find some usefull posts on this blog from time to time. Most of them are solutions or information to or about problems I came across in daily work. Recently a co-worker told me: "You have some great posts, but I don't have a clue how and where to apply them." It did not feel good simply replying: "Thank you, but ...."
To get this into context, he is a specialist of an other area wanting to extend his knowledge to Java EE in general and WebLogic Server.

I decided to add another category to this blog. Dedicated to my fellow co-worker and his needs for information :) Let's call it GSW .. Getting Started With ... and I'll fire it up with the first post about Java EE 6. This is anything but a tutorial. This should only guide you through the information available to get a neat start.
If you have any idea what to cover next: I would love to know. Leave a comment or send a reply on twitter (@myfear).

The basics
If you are willing to dive into Java EE you should have a basic knowledge about Java. I assume you did some programming and already know about the JVM, the JDK and one or more integrated development environments (IDE). Take a break now, if you need to revisit your knowledge about Java. Look around http://java.sun.com/. I can recommend the New to Java Programming Center as en entrance for anybody not already knowing the basics.

Extending the reach
Developers today use the Java and the JVM for a broad range of applications. But starting with the standard Java SE edition, you recognize, that there is additional need for distributed, transactional, and portable applications that leverage the speed, security, and reliability of server-side technology. That is, where Java EE comes on. It was known as Java 2 Platform, Enterprise Edition or J2EE until the name was changed to Java EE in version 5. The current version is called Java EE 6.
The concept of Java EE is only one part of the whole Java platform concept, that adds additional capabilities (compare Java Technology Concept Map ,PDF). If you look at the following Java EE architecture diagramm, you can see, that the Java EE defines additional containers on top of the  Java SE. They are responsible for executing well defined objects with a defined lifecycle within their own domain. That is the most general definition that I can think of.


(Source: Java EE 6 Spec, copyright Sun/Oracle)

What exactly is Java EE?
Java EE is a set of features for enterprise Java that is definied by its specification. Driven by something called the "Java Community Process" (JCP) it is an umbrella for roundabout 30 different technologies. Containing but not limited to JDBC, EJB, JPA, RMI, JMS, web services, XML, etc. It basically defines the technical contents and how they are coordinated. That includes component models and their lifecycle.
I did a nice flash representation of all contained technolgies. Have a look at it. If you try to become a specialist in Java EE you are going to face round about 6000 pages of specification. But it's to earyl to be afraid of this :) If you stick to the offical "The Java EE 6 Tutorial,Volume I" you are done in under 600 pages.

Container and Application Server
A Java EE application server can handle transactions, security, scalability, concurrency and management of the components that are running on (deployed to) it, in order to enable developers to concentrate more on the business logic of the components rather than on infrastructure and integration tasks. There are some providers for either single containers (e.g. OpenEJB, Jetty, etc) or complete Java EE application servers out there. Any provider must meet certain conformance requirements in order to declare their products as Java EE compliant. You can see a list of compliant servers on the Sun website.
Up to now, there are two certified servers out there. The most interesting one is GlassFish v3. If you want to start over with Java EE it is a must have. Because I don't want to mix up things here, there will be a GSW #2 about GlassFish v3 next.

Quickstart
If you want to start programming right away, get yourself the GlassFish Tools Bundle for Eclipse. It comes with a great User Guide (PDF).

Further Links and Readings
Java EE Downloads: GlassFish and Java EE 6
Java EE 6 Technologies
Java EE Tutorials
Java BluePrints