Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf ·...
Transcript of Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf ·...
![Page 1: Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf · •Developer can concentrate on business logic. ... •JTS UserTransaction objects](https://reader031.fdocuments.in/reader031/viewer/2022022517/5b0a6aed7f8b9adc138c10b8/html5/thumbnails/1.jpg)
Overview of the J2EESpecification
Dave Landers [email protected] Systems, Inc.Accelerated Development Center
![Page 2: Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf · •Developer can concentrate on business logic. ... •JTS UserTransaction objects](https://reader031.fdocuments.in/reader031/viewer/2022022517/5b0a6aed7f8b9adc138c10b8/html5/thumbnails/2.jpg)
Agenda• What is J2EE?• J2EE Architecture• Application Programming Model• Roles• Contracts (the APIs)• Naming, Security, Deployment
![Page 3: Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf · •Developer can concentrate on business logic. ... •JTS UserTransaction objects](https://reader031.fdocuments.in/reader031/viewer/2022022517/5b0a6aed7f8b9adc138c10b8/html5/thumbnails/3.jpg)
What is J2EE?• A Standard platform for Enterprise
Applications– Distributed– Multi-Tier– Thin Client
• Use standard services• Know what to expect from any J2EE
platform
![Page 4: Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf · •Developer can concentrate on business logic. ... •JTS UserTransaction objects](https://reader031.fdocuments.in/reader031/viewer/2022022517/5b0a6aed7f8b9adc138c10b8/html5/thumbnails/4.jpg)
What is J2EE?• Components• Services• Protocols• Architecture• Application Model
![Page 5: Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf · •Developer can concentrate on business logic. ... •JTS UserTransaction objects](https://reader031.fdocuments.in/reader031/viewer/2022022517/5b0a6aed7f8b9adc138c10b8/html5/thumbnails/5.jpg)
What is J2EE?• Infrastructure for Enterprise
Applications– Transaction management– Object life-cycle– Resource pooling
• Developer can concentrate on businesslogic
![Page 6: Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf · •Developer can concentrate on business logic. ... •JTS UserTransaction objects](https://reader031.fdocuments.in/reader031/viewer/2022022517/5b0a6aed7f8b9adc138c10b8/html5/thumbnails/6.jpg)
What is J2EE?• Application Programming Model
– Something to start with when you architectcomplex, multi-tier systems
– Encapsulate layers of functionality inspecific component types
• Client, Servlet, EJB, Database, etc.
![Page 7: Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf · •Developer can concentrate on business logic. ... •JTS UserTransaction objects](https://reader031.fdocuments.in/reader031/viewer/2022022517/5b0a6aed7f8b9adc138c10b8/html5/thumbnails/7.jpg)
What is J2EE?• Services
– J2SE– EJB– JDBC– Servlets– JavaMail– etc.
• Protocols– HTTP– HTTPS– SSL– XML– HTML– RMI– IIOP– etc.
![Page 8: Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf · •Developer can concentrate on business logic. ... •JTS UserTransaction objects](https://reader031.fdocuments.in/reader031/viewer/2022022517/5b0a6aed7f8b9adc138c10b8/html5/thumbnails/8.jpg)
The J2EE Architecture• Two views
– Platform Architecture• Runtime• Services• Infrastructure
– Application Model• Components• APIs
![Page 9: Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf · •Developer can concentrate on business logic. ... •JTS UserTransaction objects](https://reader031.fdocuments.in/reader031/viewer/2022022517/5b0a6aed7f8b9adc138c10b8/html5/thumbnails/9.jpg)
J2EE Platform Atchitecture• Provides APIs to standard services and
resources• J2EE compliance guarantees
availability of services and resources• Based on Container concept
![Page 10: Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf · •Developer can concentrate on business logic. ... •JTS UserTransaction objects](https://reader031.fdocuments.in/reader031/viewer/2022022517/5b0a6aed7f8b9adc138c10b8/html5/thumbnails/10.jpg)
Containers• Hides complexity, enhances portability• Runtime support for Application
Components– Transparantly inject services around
components• Transactions• Life Cycle and State management• Security• etc.
![Page 11: Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf · •Developer can concentrate on business logic. ... •JTS UserTransaction objects](https://reader031.fdocuments.in/reader031/viewer/2022022517/5b0a6aed7f8b9adc138c10b8/html5/thumbnails/11.jpg)
Containers– Access to J2EE Services
• via the APIs– Restricts access to denied services
• File Access• Sockets• etc.
• Remember the Applet “Sandbox”?– J2EE calls it the Applet Container
![Page 12: Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf · •Developer can concentrate on business logic. ... •JTS UserTransaction objects](https://reader031.fdocuments.in/reader031/viewer/2022022517/5b0a6aed7f8b9adc138c10b8/html5/thumbnails/12.jpg)
Containers• Applet Container
– Provided by Browser or Plugin• Application Client Container
– J2SE plus JMS, RMI, JNDI, JDBC• Web Container
– For Servlets and JSP• EJB Container
– EJBs
![Page 13: Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf · •Developer can concentrate on business logic. ... •JTS UserTransaction objects](https://reader031.fdocuments.in/reader031/viewer/2022022517/5b0a6aed7f8b9adc138c10b8/html5/thumbnails/13.jpg)
J2EE Application Model• Application Components
– Application Clients– Applet Clients– Web Components
• Servlets and JSP– Enterprise Java Beans Components
![Page 14: Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf · •Developer can concentrate on business logic. ... •JTS UserTransaction objects](https://reader031.fdocuments.in/reader031/viewer/2022022517/5b0a6aed7f8b9adc138c10b8/html5/thumbnails/14.jpg)
EnterpriseInformation
Systems
J2SE
Client Tier
App. ClientContainerApplication
Applet ContainerApplet
BrowserHTML
JNDIJMS RMI-IIOP
JDBC
J2SE CORBA Security etc.
Middle Tier
EJB Container
EJB
EJB EJBWeb Container
Servlets
JSP
XML
HTML
ServicesJNDIJMS JavaMail
JTA
RMI-IIOP JDBC
J2EE Application Model
![Page 15: Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf · •Developer can concentrate on business logic. ... •JTS UserTransaction objects](https://reader031.fdocuments.in/reader031/viewer/2022022517/5b0a6aed7f8b9adc138c10b8/html5/thumbnails/15.jpg)
J2EE Application Model• Categories of Components
– Deployed, Managed, and Executed onJ2EE server
• Servelts, JSP, EJB– Deployed and Managed on J2EE Server,
but executed on Client machine• Applets and HTML pages
– Deployment and Management not definedby J2EE
• Application Clients
![Page 16: Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf · •Developer can concentrate on business logic. ... •JTS UserTransaction objects](https://reader031.fdocuments.in/reader031/viewer/2022022517/5b0a6aed7f8b9adc138c10b8/html5/thumbnails/16.jpg)
J2EE Application Model• In addition to the Components, J2EE
defines standard Services (APIs)– Containers provide access to these
services– JTA, JDBC, JMS, JNDI, JavaMail, JAF
• Communication Protocols are alsospecified– HTTP, HTTPS, SSL, RMI-JRMP, RMI-IIOP
![Page 17: Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf · •Developer can concentrate on business logic. ... •JTS UserTransaction objects](https://reader031.fdocuments.in/reader031/viewer/2022022517/5b0a6aed7f8b9adc138c10b8/html5/thumbnails/17.jpg)
J2EE Application Model• Split Functionality into Components
– If using MVC• “View” components in HTML, JSP, or Servlets• “View-Controler” in Servlets or JavaBeans
– User Interface logic & processing
• “Model-Controler” in EJB (Session Beans)– Business logic
• “Model” in EJB (Entity Beans) and Database– Data Model
• Also have access to services (APIs)
![Page 18: Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf · •Developer can concentrate on business logic. ... •JTS UserTransaction objects](https://reader031.fdocuments.in/reader031/viewer/2022022517/5b0a6aed7f8b9adc138c10b8/html5/thumbnails/18.jpg)
J2EE Platform Roles• Each Role has specific Responsibilities• Roles help define “who does what”• J2EE defines typical primary roles• Subsets of some Roles are defined in
Component specifications– EJB, JSP, Servlet
• An individual developer may performmany (or all) roles for a project
![Page 19: Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf · •Developer can concentrate on business logic. ... •JTS UserTransaction objects](https://reader031.fdocuments.in/reader031/viewer/2022022517/5b0a6aed7f8b9adc138c10b8/html5/thumbnails/19.jpg)
J2EE Roles• J2EE Product Provider
– Application Server Vendor
• Application Component Provider– EJB or Servlet developer
![Page 20: Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf · •Developer can concentrate on business logic. ... •JTS UserTransaction objects](https://reader031.fdocuments.in/reader031/viewer/2022022517/5b0a6aed7f8b9adc138c10b8/html5/thumbnails/20.jpg)
J2EE Roles• Application Assembler
– Takes multiple components and assemblesthem into an application
• Deployer– Installs application– Generate server-specific classes– Configures application for server– Starts application
![Page 21: Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf · •Developer can concentrate on business logic. ... •JTS UserTransaction objects](https://reader031.fdocuments.in/reader031/viewer/2022022517/5b0a6aed7f8b9adc138c10b8/html5/thumbnails/21.jpg)
J2EE Roles• System Administrator
– Networking and computing infrastructure– Oversees “runtime well-being” of
application
• Tool Provider– Vendor for Tools used in deployment and
packaging of application components
![Page 22: Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf · •Developer can concentrate on business logic. ... •JTS UserTransaction objects](https://reader031.fdocuments.in/reader031/viewer/2022022517/5b0a6aed7f8b9adc138c10b8/html5/thumbnails/22.jpg)
Roles - why do I care?• Roles identify distinct responsibilities
• Gives you a language to use when...– Defining your development process– Setting up your build & test environment– Delivering code to customers– Purchasing components from vendors
![Page 23: Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf · •Developer can concentrate on business logic. ... •JTS UserTransaction objects](https://reader031.fdocuments.in/reader031/viewer/2022022517/5b0a6aed7f8b9adc138c10b8/html5/thumbnails/23.jpg)
Roles - Advantages• Encourages and Enables J2EE
products and services– “Breakpoints” in the process delimited by
boundaries between the Roles– Gives vendors a clear statement of
Responsibility for what they should deliver• Component and Application vendors• ServiceProviders (deployment and Hosting)
– Example: ejip.net, LoudCloud doing hosting
![Page 24: Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf · •Developer can concentrate on business logic. ... •JTS UserTransaction objects](https://reader031.fdocuments.in/reader031/viewer/2022022517/5b0a6aed7f8b9adc138c10b8/html5/thumbnails/24.jpg)
Roles - Advantages• Helps spec authors ensure proper
compartmentalization of functionality– Example: EJB Deployment Process
• Defined by Role• Each Role delivers a jar file to the next Role
![Page 25: Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf · •Developer can concentrate on business logic. ... •JTS UserTransaction objects](https://reader031.fdocuments.in/reader031/viewer/2022022517/5b0a6aed7f8b9adc138c10b8/html5/thumbnails/25.jpg)
J2EE Contracts• The APIs
– Services– Protocols
• What you usually think of when youthink J2EE
![Page 26: Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf · •Developer can concentrate on business logic. ... •JTS UserTransaction objects](https://reader031.fdocuments.in/reader031/viewer/2022022517/5b0a6aed7f8b9adc138c10b8/html5/thumbnails/26.jpg)
J2EE 1.2 Required APIs• EJB 1.1• Servlet 2.2• JSP 1.1• JDBC + 2.0 Extensions• etc.
![Page 27: Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf · •Developer can concentrate on business logic. ... •JTS UserTransaction objects](https://reader031.fdocuments.in/reader031/viewer/2022022517/5b0a6aed7f8b9adc138c10b8/html5/thumbnails/27.jpg)
EJB 1.1• Enterprise Java Beans• Business Components• Multi-tier architecture• Session Beans
– For behaviors– Stateless or Stateful
• Entity Beans– Data Model– Persistent to database
![Page 28: Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf · •Developer can concentrate on business logic. ... •JTS UserTransaction objects](https://reader031.fdocuments.in/reader031/viewer/2022022517/5b0a6aed7f8b9adc138c10b8/html5/thumbnails/28.jpg)
Servlet 2.2• “Active” web components• Provide Dynamic Content• HTTP “front” to application components
![Page 29: Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf · •Developer can concentrate on business logic. ... •JTS UserTransaction objects](https://reader031.fdocuments.in/reader031/viewer/2022022517/5b0a6aed7f8b9adc138c10b8/html5/thumbnails/29.jpg)
JSP 1.1• Java Server Pages• Extension of Servlets• Like HTML with embedded Java code• View (of MVC pattern)• Tag Extensions allow HTML Authors to
drop in dynamic content withouttouching code
• Discipline required to stick to OO andDesign principals
![Page 30: Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf · •Developer can concentrate on business logic. ... •JTS UserTransaction objects](https://reader031.fdocuments.in/reader031/viewer/2022022517/5b0a6aed7f8b9adc138c10b8/html5/thumbnails/30.jpg)
JDBC 2.0 Extensions• Java Data Base Connectivity• JDBC Core API included in J2SE• J2EE adds some of JDBC 2.0
– DatabaseMetaData andResultSetMetaData
– Stored Procedures– Batch Updates
• Non-batching implementations allowed
![Page 31: Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf · •Developer can concentrate on business logic. ... •JTS UserTransaction objects](https://reader031.fdocuments.in/reader031/viewer/2022022517/5b0a6aed7f8b9adc138c10b8/html5/thumbnails/31.jpg)
RMI-JRMP• Remote Method Invocation• JRMP is the “Default” RMI protocol• Distributed objects and methods• Access to services and components
– Access for clients– The J2EE platform can be distributed
across several JVMs and/or machines• Example: Web Server & Servlet Engine
separate from EJB server
![Page 32: Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf · •Developer can concentrate on business logic. ... •JTS UserTransaction objects](https://reader031.fdocuments.in/reader031/viewer/2022022517/5b0a6aed7f8b9adc138c10b8/html5/thumbnails/32.jpg)
RMI-IIOP / JavaIDL / CORBA• CORBA interoperability• JavaIDL is included in J2SE
– org.omg packages• IIOP is CORBA’s protocol• All application components (except
applets) can be clients of RMI-IIOP• Only Application Clients can export
RMI-IIOP objects• EJB access via IIOP encouraged but
not required
![Page 33: Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf · •Developer can concentrate on business logic. ... •JTS UserTransaction objects](https://reader031.fdocuments.in/reader031/viewer/2022022517/5b0a6aed7f8b9adc138c10b8/html5/thumbnails/33.jpg)
JMS 1.0• Java Messaging Service
– Asynchronous communication amongdistributed components
– Publish / Subscribe queues– Point-to-point communication– Messages can be durable (backed by
database)– Can specify guaranteed message delivery
• Transactional
![Page 34: Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf · •Developer can concentrate on business logic. ... •JTS UserTransaction objects](https://reader031.fdocuments.in/reader031/viewer/2022022517/5b0a6aed7f8b9adc138c10b8/html5/thumbnails/34.jpg)
JMS• The JMS API is required by J2EE• However, the implementation of (or
access to) the principal interfaces is notrequired– ConnectionFactory and Destination
• Will be required in the future
![Page 35: Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf · •Developer can concentrate on business logic. ... •JTS UserTransaction objects](https://reader031.fdocuments.in/reader031/viewer/2022022517/5b0a6aed7f8b9adc138c10b8/html5/thumbnails/35.jpg)
JNDI 1.2• Java Naming and Directory Interface• Lookup of objects mapped to a name• J2EE only requires lookup of things in
the java: namespace• EJBHome objects• JTS UserTransaction objects
– java:comp/UserTransaction
• JDBC DataSource objects• JMS ConnectionFactory and Destination (if
supported)
![Page 36: Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf · •Developer can concentrate on business logic. ... •JTS UserTransaction objects](https://reader031.fdocuments.in/reader031/viewer/2022022517/5b0a6aed7f8b9adc138c10b8/html5/thumbnails/36.jpg)
JTA 1.0• Java Transaction API• Declarative and Programmatic
demarcation– Deployment Descriptors– UserTransaction object
• Available to Application Components• Not required for Application Clients or Applets
![Page 37: Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf · •Developer can concentrate on business logic. ... •JTS UserTransaction objects](https://reader031.fdocuments.in/reader031/viewer/2022022517/5b0a6aed7f8b9adc138c10b8/html5/thumbnails/37.jpg)
JTA• Not Required:
– Nested Transactions– Multiple Databases, Multiple J2EE Servers– XAResource support
• X/Open standard XA interface for resources ina distributed transaction environment
![Page 38: Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf · •Developer can concentrate on business logic. ... •JTS UserTransaction objects](https://reader031.fdocuments.in/reader031/viewer/2022022517/5b0a6aed7f8b9adc138c10b8/html5/thumbnails/38.jpg)
Other APIs and Protocols• JavaMail 1.1 / JAF 1.0• XML• HTTP• HTTPS / SSL
![Page 39: Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf · •Developer can concentrate on business logic. ... •JTS UserTransaction objects](https://reader031.fdocuments.in/reader031/viewer/2022022517/5b0a6aed7f8b9adc138c10b8/html5/thumbnails/39.jpg)
Naming• JNDI used to access resources
– UserTransaction– EJBHome– EJB Components access to Environment
Properties– Resource Factories
• JMS factories• JDBC DataSource• JavaMail
![Page 40: Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf · •Developer can concentrate on business logic. ... •JTS UserTransaction objects](https://reader031.fdocuments.in/reader031/viewer/2022022517/5b0a6aed7f8b9adc138c10b8/html5/thumbnails/40.jpg)
Security• Declarative and Programmatic
– Deployment Descriptors– EJB: isCallerInRole and isCallerPrincipal
methods– Servlet: isUserInRole and isUserPrincipal
methods• Role Mapping• HTTPS / SSL
![Page 41: Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf · •Developer can concentrate on business logic. ... •JTS UserTransaction objects](https://reader031.fdocuments.in/reader031/viewer/2022022517/5b0a6aed7f8b9adc138c10b8/html5/thumbnails/41.jpg)
Application Assembly andDeployment• Applications are composed of
– One or more Components– Deployment Descriptors
• Application Life Cycle– Create Components– Collect Components into Modules– Assemble into Application (ear-file)– Deploy Application and/or Modules to a
Server
![Page 42: Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf · •Developer can concentrate on business logic. ... •JTS UserTransaction objects](https://reader031.fdocuments.in/reader031/viewer/2022022517/5b0a6aed7f8b9adc138c10b8/html5/thumbnails/42.jpg)
Future of J2EE• J2EE 1.3 preliminary
– Community Process• Proposed:
– JMS Required– Connector Architecture– EJB 2.0– JSP 1.2, Servlets 2.3– XML & XML Data Binding– SQLJ
![Page 43: Overview of the J2EE Specification - dave.srednal.comdave.srednal.com/softwaresummit/j2ee.pdf · •Developer can concentrate on business logic. ... •JTS UserTransaction objects](https://reader031.fdocuments.in/reader031/viewer/2022022517/5b0a6aed7f8b9adc138c10b8/html5/thumbnails/43.jpg)
References• J2EE Specification
http://java.sun.com/j2ee/download.html
• Designing Enterprise Applications withJ2EE (“ Blueprints”)http://java.sun.com/j2ee/blueprints/
• Simplified Guide to J2EEhttp://java.sun.com/j2ee/j2ee_guide.pdf
• Specifications for Services, etc.http://java.sun.com/j2ee/docs.html
• Comunity Process for J2EE 1.3http://java.sun.com/aboutJava/comunityprocess/jsr/jsr_058_j2ee13.html