Overview of Java EE

31 downloads 203504 Views 6MB Size Report
2003 - 2007 DevelopIntelligence. History of Java EE. Java EE was not an “intent” of the original Java design. It was more of a side-effect of the Java-web merger.
Building the Enterprise

The Tools of Java Enterprise Edition

©2003 - 2007 DevelopIntelligence LLC

Presentation Topics In this presentation, we will discuss: Overview of Java EE Java EE Platform Java EE Development

© 2003 - 2007 DevelopIntelligence

Objectives When we are done, you should be able to: Describe how Java EE and Java SE fit together List 3 technologies found in Java EE Describe the basic development lifecycle for a Java EE application

© 2003 - 2007 DevelopIntelligence

Overview of Java EE

A High-level Overview

©2003 - 2007 DevelopIntelligence LLC

What is Java EE? A community-defined extension to the Java SE platform Separate controlling specification Defined in context of extending Java SE to enterprise

An enterprise information systems platform Enables the development of Java-based middle-tier applications requiring “ility” characteristics Extends Write-Once-Run-Anywhere (WORA) to middleware

A standard architecture defining An application programming model An application execution platform © 2003 - 2007 DevelopIntelligence

History of Java EE Java EE was not an “intent” of the original Java design It was more of a side-effect of the Java-web merger Client-side web-based Java lost its luster and positioning to things like Flash Things like WORA, threading, networking, and security were desirable characteristics on the server-side But, Java didn’t have a formal server-side “platform”

Java EE was more “evolutionary” than revolutionary Initially addressed web-applications Quickly enhanced to address “middleware” Further enhanced to support Web services and SOA

© 2003 - 2007 DevelopIntelligence

Motivations for Java EE Provide an easy to use framework to build middle-ware applications that: Enables developers to focus on business logic instead of “integration” logic Creates middleware server transparency Removes complexities of large-scale distributed applications

Provide a managed execution environment that: Addresses “ility” characteristics Allows secure and protected side-by-side deployments Offers common “services” © 2003 - 2007 DevelopIntelligence

Industry Support Originally, Java EE was developed and maintained by Sun Today, Java EE is governed by the Java Community Process (JCP) Java EE its own Java Specification Request (JSR-244) Developed by an expert group represented by companies like: SAP, BEA, JBoss, IBM, Novell, Oracle, HP, Sun, Borland Each technology within Java EE is governed by an individual JSR, each with its own expert group

Current focus of Java EE community is simplification © 2003 - 2007 DevelopIntelligence

Application Programming Model Programming model adopts a “managed” model Design and implementation Lifecycle Transactions and security Deployment

Application implementation adheres to model Built around abstracted interactions with Java EE execution environment Interactions provided through Java EE platform APIs

© 2003 - 2007 DevelopIntelligence

Application Execution Platform Provides a “managed” execution environment Java EE compliant applications Execution environment is a realized implementation of the Java EE APIs Vendor implementation of the Java EE spec Includes core Java EE services Referred to as Java EE Application servers or containers

Relies on the Java SE platform Java EE is NOT an execution platform by itself Most Java EE application servers are implemented as Java SE platform applications © 2003 - 2007 DevelopIntelligence

Java EE Platform Diagram

App

App App Java EE APIs

App

Java EE API Implementations Java EE Application Server

Solaris

© 2003 - 2007 DevelopIntelligence

Java SE Platform Linux Windows Mac OS X

Java EE Platform

An Application Development Perspective

©2003 - 2007 DevelopIntelligence LLC

Java EE Platform Java EE Platform supports three primary application types Web applications EJB applications Enterprise applications

Each application type has its own set of characteristics Applications execute in “domain” relevant containers

© 2003 - 2007 DevelopIntelligence

Java EE Containers Java EE defines two primary types of containers: Web containers - managed environment for web applications EJB containers - managed environment for EJB applications

A compliant Java EE application server must provide an implementation for both types of containers Considered an “enterprise container” Containers function “on top of” the standard Java EE core services Each container type has its own set of characteristics © 2003 - 2007 DevelopIntelligence

Java EE Technologies

Enterprise Container Boundary

© 2003 - 2007 DevelopIntelligence

Java EE Server Technologies A major design motivation within Java EE is WORA Goal is to extend WORA into middleware Specifically at the Web and EJB container levels

There are two ways to create WORA: Define an application programming model and its supporting technologies Define a set of services to support the programming model

Java EE defines the supporting services as “Standard Services” Standard Services address everything from HTTP to database interactions A fully compliant Java EE server must support all Standard Services © 2003 - 2007 DevelopIntelligence

Java EE Standard Services Communication Email XML Processing Transactions Messaging Management

© 2003 - 2007 DevelopIntelligence

Database Naming and Directory Security Web Services Legacy systems Deployment

Container Technologies Remaining technologies defined in Java EE specification address application development Technologies are associated with an applicationcentric container Relatively clean separation of technologies between container types Technology sharing is at the Standard Services level

Technologies may exist as “standard” implementations or vendor implementations

© 2003 - 2007 DevelopIntelligence

Web Container Technologies Web containers provide “robust” web application environments A web container supports the following technologies: Servlets Filters Java Server Pages (JSP) JSP Standard Tag Library (JSTL) Java Server Faces (JSF)

© 2003 - 2007 DevelopIntelligence

EJB Container Technologies EJB containers provide state, workflow, and persistent application environments An EJB container supports the following technologies: Session Beans (SB) Stateful (SFSB) Stateless (SLSB)

Entity Beans (EB) Bean Managed Persistence (BMP) Container Managed Persistence (CMP)

Message Driven Beans (MDB) © 2003 - 2007 DevelopIntelligence

Java EE Application Diagram

JSP

JSF

SB

EB

Servlet

JSTL

MDB

WSI

Standard Services Java SE Platform Web Container & Technologies EJB Container & Technologies Enterprise Container Java EE Platform © 2003 - 2007 DevelopIntelligence

Java EE Development

©2003 - 2007 DevelopIntelligence LLC

Java EE Applications Java EE applications are built using components, modules, and deployment units The Java EE application structure provides: Functional encapsulation Reusability Simplified configuration Transportability

Modular-oriented development encourages Good Object oriented design Separation of functional concern Separation of development concern

Has been considered the “struggle” of Java EE © 2003 - 2007 DevelopIntelligence

Components and Modules Components enable application development Built using Java SE and Java EE technologies Components may be “homegrown” or third-party Components are grouped together as modules

Modules represent basic unit of a Java EE application One or more component per module Modules consist of same “component type” Modules are described by deployment descriptors Modules and deployment descriptors packaged together as deployment units © 2003 - 2007 DevelopIntelligence

Deployment Units Java EE applications may consist of A Single deployment unit Multiple deployment units packaged together as a single deployment unit

Deployment units are the standard way to package and deploy Java EE applications Leverage Java SE deployment concept Have strict structure governing contents

Java EE defines three deployment units: Web Application Archive (WAR) Java Archive (JAR) Enterprise Application Archive (EAR) © 2003 - 2007 DevelopIntelligence

Java EE Development Process

Creation

© 2003 - 2007 DevelopIntelligence

Assembly

Deployment

Java EE Development Roles Java EE application development process requires broad range of competencies Java development skills Source control / configuration skills System administration skills

To simplify “jack of all trades” skill requirement, Java EE specification defines set of Platform Roles Not all platform roles are realized within a software development organization © 2003 - 2007 DevelopIntelligence

Java EE Platform Roles Java EE Product Provider Application component provider Application assembler Deployer System Administrator Tool Provider System Component Provider

© 2003 - 2007 DevelopIntelligence

Summary Java EE platform defines an application programming model and an execution environment Java EE platform enables WORA in middleware Java EE is comprised of Standard Services, Web Technologies, and EJB Technologies Java EE uses a deployment unit strategy for application packaging and deployment

© 2003 - 2007 DevelopIntelligence

Resources Web Java EE Tutorial http://java.sun.com/javaee/5/docs/tutorial/doc/ Java EE Specification http://jcp.org/aboutJava/communityprocess/pfd/jsr244/

Books “Head First Servlets and JSP” : ISBN 0596005407 “Head First EJB” : ISBN 0596005717

© 2003 - 2007 DevelopIntelligence