1 / 43

Enterprise JavaBeans

Enterprise JavaBeans. Chapter 14. Objectives. Explore an enterprise application’s needs for secure distributed access, scalability with high performance, robustness, data persistence with transactional integrity, and management of distributed and often disparate resources

esma
Download Presentation

Enterprise JavaBeans

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Enterprise JavaBeans Chapter 14 Java Programming: Advanced Topics

  2. Objectives • Explore an enterprise application’s needs for secure distributed access, scalability with high performance, robustness, data persistence with transactional integrity, and management of distributed and often disparate resources • Discover how the EJB framework provides the quality of services enterprise applications require • Learn how stateful and stateless session EJBs provide components that perform business logic Java Programming: Advanced Topics

  3. Objectives (Cont.) • Learn how to program an EJB client • Discuss exception handling in EJBs and EJB clients • Learn how entity beans represent persistent data in Java objects Java Programming: Advanced Topics

  4. Objectives (Cont.) • Discuss mapping fields of entity beans to elements in databases using CMP and BMP • Learn how to use container-managed relationships and EJB query language with container-managed persistence • Learn what Java Message Service is and learn how message-driven beans consume asynchronous messages Java Programming: Advanced Topics

  5. Objectives (Cont.) • Discuss transactional properties of EJBs • Discuss elements of application security that relate to EJBs • Consider some best practices for designing applications that use EJBs Java Programming: Advanced Topics

  6. Enterprise Programming • EJB specification: a description of this environment and the framework for building distributed objects that implement a standard interface • Distributed systems:software systems that reside on several physical hosts • the components must interoperate over a network that may be a local area network (LAN) or the Internet Java Programming: Advanced Topics

  7. Enterprise Programming (Cont.) • Scalability: the ability of a system to continue to give high performance as the number of users increases • Persistence: any data that outlives any software component • Resource managementis required whenever the system makes high demands on databases and other resources Java Programming: Advanced Topics

  8. Enterprise Programming (Cont.) • Connection pooling:keeping a set of connections open so that different software components can be given an open connection for short-term exclusive use • Security: usually of critical importance in enterprise applications • Transactional integrity: often the quality that most concerns developers of enterprise applications Java Programming: Advanced Topics

  9. What are EJBs • Enterprise JavaBeans(EJBs): server-side software components that conform to the J2EE architecture for development and deployment of distributed systems • J2EE-compliant application servers must provide a run-time environment for the EJBs: an EJB container Java Programming: Advanced Topics

  10. What are EJBs (Cont.) • EJBs come in three basic kinds: • Session beans: • can perform any kind of processing • Entity beans: • represent persistent data • Message-driven beans (MDB): • have a specialized purpose and are used with messaging software Java Programming: Advanced Topics

  11. What are EJBs (Cont.) • The major components of an EJB: • Bean class • Home interface • Local or Remote interface Java Programming: Advanced Topics

  12. MVC Architecture Java Programming: Advanced Topics

  13. EJB Containers and Services • The role of the EJB container is to provide the following: • The distribution infrastructure and a naming service to help client code locate and access EJBs. • The ability to place EJBs in a scalable architecture • Support for concurrent access • Resource management, including connection pooling • Security services in addition to the secure environment that can be configured for applications loaded into the application server • Transaction managers that interact with JDBC drivers and resource adapters Java Programming: Advanced Topics

  14. J2EE Enterprise Application Packaging and Deployment • EJBs are always packaged in J2EE enterprise applications • Files that compose EJBs are packaged in jar files • An EJB jarmust contain a deployment descriptor file Java Programming: Advanced Topics

  15. J2EE Packaging into Archive Files Java Programming: Advanced Topics

  16. Session EJBs • Session EJBs can do general purpose processing • They are associated with the client that calls them • There are two types of session EJBs: • stateful • stateless Java Programming: Advanced Topics

  17. Stateless Session EJBs • Stateless session beans can be shared among clients • Methods defined in the javax.ejb.SessionBean interface are call-back methods that control the lifecycle of the bean, that called by the container Java Programming: Advanced Topics

  18. Stateless Session EJBs (Cont.) • Steps to create a stateless session EJB: • 1. Define a class that extends the SessionBeaninterface • 2. Create a home interface • 3. Add business methods to the session bean class and write implementations of those methods • 4. Add a remote interface and include all the business methods that can be called by remote clients • 5. Write the deployment descriptor Java Programming: Advanced Topics

  19. Stateful Session EJBs • Stateful session EJBs retain conversational state between method calls and are used by only one client • Conversational state: information that must be retained as long as the client is actively interacting with the application • Transactional state: data that must be permanently recorded when the client activity ends Java Programming: Advanced Topics

  20. EJB Clients • The EJB 2.0 specification adds interfaces to all entity and session beans specifically for use by co-located clients • There are four interfaces that you can define for a session or entity bean Java Programming: Advanced Topics

  21. The Client Interfaces Java Programming: Advanced Topics

  22. The Client Interfaces (Cont.) Java Programming: Advanced Topics

  23. The Client Interfaces (Cont.) Java Programming: Advanced Topics

  24. The Client Interfaces (Cont.) Java Programming: Advanced Topics

  25. Writing EJB Clients • The client starts by accessing the JNDI namespace, by instantiating an object of type javax.naming.InitialContext • When the client has the EJB home, it uses a createmethod to get a handle to the remote interface Java Programming: Advanced Topics

  26. Handling Exceptions in EJB Clients • Define and use application-level exception classes to encapsulate anticipated problem conditions • Application-level exceptions: exceptions that business logic can anticipate and possibly recover from. Java Programming: Advanced Topics

  27. Entity EJBs • Entity beans represent persistent data • Use entity beans as the interface between Java components and relational or object-oriented databases • The container uses the primary key to locate the data when a client requests an entity bean and creates only one bean to represent that data in a Java object Java Programming: Advanced Topics

  28. EJB to Database Schema Mapping • There are three approaches to database schema mapping: • Top-downmapping: • possible when a new database is required and Java developers are allowed to create databases • Bottom-up mapping: • occurs when you have a database and can design your EJBs to match the tables and columns defined in the database schema • Meet-in-the-middle mapping: • most common solution in practice Java Programming: Advanced Topics

  29. EJB to Database Schema Mapping (Cont.) • The EJB specification allows two approaches: • Container Managed Persistence (CMP): • involves declaring the mapping between the deployment descriptor and delegating all code generation to the container • Bean Managed Persistence (BMP): • is a do-it-yourself solution Java Programming: Advanced Topics

  30. Sample CMP Entity Bean Java Programming: Advanced Topics

  31. EJB Query Language • Enterprise JavaBean Query Language (EJB QL) was introduced in the EJB 2.0 specification to support the abstract persistence model • EJB QL: language for expressing the equivalent of SQL SELECT statements for CMP beans Java Programming: Advanced Topics

  32. Comparing EJB QL and SQL Statements Java Programming: Advanced Topics

  33. Using EJB QL Java Programming: Advanced Topics

  34. Message-Driven Beans • An message-driven bean (MDB) initiates processing in response to an external event • To create an MDB, build the bean class • The MDB class must implement javax.ejb.MessageDrivenBean and javax.jms.MessageListener Java Programming: Advanced Topics

  35. A Deployment Descriptor with MDB Java Programming: Advanced Topics

  36. A Possible Scenario that Uses MDBs Java Programming: Advanced Topics

  37. EJB Transactional Characteristics • The EJB specification gives you options for defining transactions: • Container managed transactions (CMT) • Bean managed transactions (BMT) • Client demarked transaction Java Programming: Advanced Topics

  38. EJB Transactional Levels Java Programming: Advanced Topics

  39. EJB Transactional Levels (Cont.) Java Programming: Advanced Topics

  40. EJB Transactional Levels (Cont.) Java Programming: Advanced Topics

  41. EJB Security • The concept of passing security roles down the call stack as EJB methods call other EJB methods is called delegation • Role-based security can be applied to entire EJBs or to individual methods • EJB developers are not responsible for user authentication or authorization (mapping the user to a role) Java Programming: Advanced Topics

  42. Summary • EJBs are distributable server-side components that run in EJB containers provided by J2EE-compliant application servers • EJBs come in three basic kinds: session beans, entity beans, and message-driven beans (MDB) • EJB clients locate bean instances by looking up the name in a JNDI server • Stateless session beans can be shared among clients, while stateful session EJBs are used by only one client Java Programming: Advanced Topics

  43. Summary (Cont.) • Entity beans represent persistent data and can be designed for container-managed persistence (CMP) or bean-managed persistence (BMP) • EJB QL is a SQL-like language for writing database queries in terms of CMP bean classes and fields • The concept of passing security roles down the call stack as EJB methods call other EJB methods is called delegation Java Programming: Advanced Topics

More Related