J2EE Architecture Overview Mark Hapner, Lead Architect J2EE Bill Shannon, Distinguished Engineer Sun Microsystems
The J2EE Platform Platform Specification Compatibility Test Suite Defines JavaTM 2 Enterprise Edition (J2EE) requirements Compatibility Test Suite Reference Implementation Validates JavaTM 2 Enterprise Edition (J2EE) compatibility Operational JavaTM 2 Enterprise Edition (J2EE) J2EE Blueprints Describes how to build JavaTM 2 Enterprise Edition (J2EE) applications
Write Once, Run Anywhere Develop With J2EE components Package Universal J2EE application package Deploy & Run On any J2EE product
J2EE Components and Containers Applet Container Web Container EJB Container Applet HTTP/ HTTPS JSP Servlet RMI EJB J2SE JavaMail JavaMail JTA RMI/IIOP JDBC JMS JNDI JMS JTA JNDI RMI/IIOP JDBC App Client Container JAF JAF App Client HTTP/ HTTPS J2SE RMI JNDI JMS RMI/IIOP JDBC J2SE J2SE Database
JSP/Servlet Overview Java Server Pages Servlets Merges HTML/XML template with content dynamically generated with Java Extensible tag libraries Source is dynamically compiled on first use Servlets Implement dynamic content with Java Built-in support for session and request management
EJB Overview EJB Session Bean Entity Beans Each EJB is an multi-user, transacted `service' Session Bean Implements a `tool' or `application' service Entity Beans Implements a service of long lived business entities Container Managed Transactions Automatically wraps a method in a transaction
Session Beans Stateful Session Beans Stateless Session Beans Container manages client state in a bean's fields 'stateless' model is not forced on developers Stateless Session Beans If there is no client state, container optimizes management of EJB instances
Entity Beans EJB defines model for 'persistent' beans Allows container to optimize their management Makes it easy to create a business object facade Bean Managed Persistence Write your own SQL with JDBC/SQLJ Container Managed Persistence Container handles moving data to/from bean Limited facility in EJB 1.1, enhancements in 2.0
J2EE Containers Container vs Framework Containers Manage No complicated APIs Services are injected Containers Manage Threads, transactions, administration, deployment, distribution May also provide load balancing and fail-over All with no change to component code
Application Packaging EJB EJB Module 1 EJB 1 APP DD DD DD EJB Web Client Module 2 WEB Deployment Tool 2 WEB DD DD Application Client Module 3 3 DD DD
Application Life Cycle Creation Assembly Deployment Created by Component Developer Assembled and Augmented by Application Assembler J2EE Modules J2EE Application Processed by Deployer Deploy J2EE Container Enterprise Components
J2EE Status J2EE 1.2 Shipped 12/17/99 Specifications Reference Implementation Compatibility Test Suite J2EE Blueprints Beta J2EE Blueprints Book Coming Soon!
Some J2EE Partners Allaire IBM Progress Inline BEA/Weblogic Secant Bluestone Bull Forte Fujitsu Gemstone Haht IBM Inline iPlanet Iona Luna Novera Oracle Persistence Progress Secant Siemens SilverStream Sybase TradeX Versant Vision
Some Users of J2EE Air Canada Celera Genomics Countrywide Covad Communications Electric Boat Equifax FAA Nations Bank Qwest Ratheon Rorke Data Scottish Equitable Sparks.com Trip.com
J2EE Scenarios
Book Catalog Browser Database contains catalog JSP generates catalog pages Using HTML template Combined with catalog data
Book Purchase Session contains shopping cart data Orders entered into Orders DB Purchase transaction programmed with JDBC
Book Purchase JSP contains no Java code Written by presentation expert JSP Tag Library provides Browse and Purchase Written by JDBC and database expert
Book Purchase Session EJB handles purchase transaction App Server pools DB connections App Server manages transactions
Book Purchase Book and Order Entity EJBs Persistent business objects Hide database details
Catalog Management App Client for `dedicated' catalog admin XML `raw' book data App Client provides more interactive GUI
J2EE 1.3 (JSR 58)
Connectors (JSR 16) Standard SPI for integrating J2EE with other systems CICS, IMS, SAP, PeopleSoft, Baan, etc Connection pooling Transactions Security Common Client Interface Standard packaging for resource adapter
EJB 2.0 (JSR 19) EJB Entity Container Managed Persistence Dependent objects, Relationships, Finder query lang EJB/JMS Integration Message driven EJB EJB Interoperability Home Methods
Other Additions XML Parsing API (JSR 5) JSP 1.2/Servlet 2.3 (JSR 53) JSP Standard Tag Lib (JSR 52) JMS becomes required
More Info http://java.sun.com/j2ee http://java.sun.com/xml http://java.sun.com/jcp