Welcome to JavaPolis 2007!
Overall Presentation Goal
Speaker's Qualifications
Agenda
EJB 3.0 Specification (JSR 220)
EJB 3.1 Technology Motivation
EJB 3.1 Technology
Agenda
Ease of Use Enhancements
Session Bean with Local Business Interface
EJB 3.0 Technology Local Client Programming Model
Local Client Programming Model (Continued)
Local Business Interfaces
Optional Local Business Interfaces
Local Session Bean With No-interface Local View
Client of No-interface View
No-Interface Local View
EJB Component Usage From Web Tier
Web/EJB Technology Application in Java EE 5
Issues With Combined Web/EJB Technology Applications
Define EJB Components Within .war
Define EJB Components Within .war
Define EJB Components Within .war (Continued)
We've Come a Long Way ...
Agenda
Features
State in EJB Components
What About Shared State?
Use Stateless Session Bean Instance State?
Use Stateless Session Bean Instance State?
Use Stateless Session Bean Static State?
Use Stateless Session Bean Static State?
Singleton Beans
Singleton
Stateless Session Bean Accessing Shared State
Concurrency
Singletons and Concurrency
Singleton With Immutable Data
Singleton With Read-Mostly Data
Concurrency Controlled by Bean
Singletons and Concurrency Recap
Timer Service
Timer Example
Use Case : Generate Monthly Bank Statements
Monthly Bank Statements Using EJB 3.0 Technology
Monthly Bank Statements Using EJB 3.0 Technology
Lessons Learned
Calendar-Based Timer Scheduling
Automatic Timer Creation
Automatic Timer Creation Example
Asynchronous Support in EJB 3.0 Specification
Simple Asynchronous Operations
Simple Asynchronous Operations
Other Features Under Consideration
Agenda
Summary : Enterprise JavaBeans 3.1 Technology
Enterprise JavaBeans is an architecture for the development and deployment of component-based business applications. Applications written using the Enterprise JavaBeans architecture are scalable, transactional, and multi-user secure.
The Enterprise JavaBeans 3.0 specification focused on bringing ease-of-use to the EJB API. The purpose of the Enterprise JavaBeans 3.1 specification is to further simplify the EJB architecture by reducing its complexity from the developer's point of view, while also adding new functionality in response to the needs of the community.
The focus will be on the core session bean and message-driven bean component models and their client API. Although the Java Persistence API was developed within EJB 3.0, it will evolve under a separate JSR rather than within EJB 3.1.
Aspects that should be considered by the Expert Group for inclusion in this work include, but are not limited to, the following:
Removal of the requirement for a separate local business interface.
Support for direct use of EJBs in the servlet container, including simplified packaging options.
Singleton beans.
Support for asynchronous session bean invocation.
Support for stateful web services via stateful session bean web service endpoints.
Specification of concurrency options for stateful session beans.
Application-level callback notifications, including for container initialization and shutdown.
EJB Timer Service enhancements to support cron-like scheduling, deployment-time timer creation, and stateful session bean timed objects.
An ejb-jar level component environment to simplify the specification of shared dependencies among components.
The goal of the Expert Group will be to investigate these issues and identify and pursue directions for enhancement to the overall programming model and facilities of the Enterprise JavaBeans API.
Ken Saks is a Senior Staff Engineer in the Java EE Platform group at Sun Microsystems, where he was the lead architect for the EJB 3.0 container implementation in the Java EE SDK and Sun Java System Application Server. Ken is an original member of the Java EE platform engineering team and has been developing application servers at Sun since 1999. He has over 12 years of experience in the areas of distributed computing, OO, and system software. Ken holds a M.S. in Computer Science from Stanford University.