This book provides experienced software developers with all the information they need to develop robust, powerful EJB applications. It describes EJB technology in detail, starting from first principles and progressing to distributed, transactional and secure applications. Boone explains aspects of the EJB architecture that are normally hidden from developers, such as the internal operation of EJB containers, security aspects of communications protocols, resource pooling and optimization strategies, and the technicalities of distributed transaction processing schemes. The book also describes the interaction between EJB applications and related technologies, like servlets, CORBA, messaging, directories and Web Services.
Author's Note. About the Author. Preface.
(NOTE: Each Chapter ends with Summary.)Author 's Note. About the Author. Preface. 1. Enterprise Javabeans in Context.
Enterprise JavaBeans: What Are They, and What Do They Do? EJBs in the Enterprise. Why Use EJBs? The EJB Philosophy. EJB Roles. EJB Products. Summary.2. Distributed Objects and RMI.
What are Distributed Objects? How Objects Can Communicate. Java RMI. Stubs. RMI Protocols. Security. Enterprise JavaBean RMI. Summary.3. An Overview of EJB Technology.
The Client 's View. Fundamentals of the EJB Architecture. Types of EJB. Distributed and Local EJB Semantics. Anatomy of an EJB. Principle of Operation: Session and Entity EJBs. Principle of Operation: Message-driven EJBs. The EJB Container and Its Proxies. Overview of the EJB API. EJB Rules, Standards and Limitations. Assembly and Deployment. Configuration. Summary.4. Creating and Deploying A Simple EJB.
Setting Up the Source Tree. Coding the EJB and Test Client. Compiling the EJB and Test Client. Starting the J2EE Reference Implementation Server. Assembling and Deploying the EJB. Testing the EJB. Troubleshooting. Summary.5. Introducing the Case Study.
About the Case Study. About the 'Business '. Goals of the Application. Design Architecture. Design Philosophy. EJB Design. Sneak Preview. Summary.6. Session EJBs.
Types and Applications of Session EJBs. What Is 'State '? Stateful Session EJBs. Stateless Session EJBs. Some Notes On the Meaning of an 'EJB Instance '. Session EJBs as Interfaces to Entity EJBs. Transaction Issues in Session EJBs. Analyzing the 'Interest 'EJB. An Example. Summary.7. Naming and JNDI.
Naming and Directory Servers. What Is JNDI? JNDI Terms and Concepts. Using JNDI. Examining A Typical EJB Server Namespace. JNDI and EJB. JNDI in More Detail. JNDI Configuration. JNDI Lookups Across Servers. Further Reading.8. JDBC and Databases.
What is JDBC? SQL. The JDBC API. JDBC drivers. JDBC and JNDI. EJB and JDBC example. Connection Management and Pooling. Transactions. Practical JDBC usage in EJBs. What 's New in JDBC 3.0? Summary.9. Transactions.
Introductory Note. Transactions Described. The EJB Transaction Model. Container-managed Transaction Demarcation. Bean-managed Transaction Demarcation. Client-demarcated Transactions. Handling Transaction Isolation in EJBs. Distributed Transactions and Two-phase Commit. Summary.10. Messaging and Message-Driven EJBs.
Overview of enterprise messaging. The JMS API. JMS and EJBs. Interlude: Messaging in the Prestige Bike Hire application. Sending messages from EJBs. Message-driven EJBs. Testing messaging EJBs. Summary.11. Entity EJBs.
What Is An Entity EJB? Principle of Operation. Associations Between Entities. Persistence Management. Developer's Responsibilities in General. Handling Data Sets with No Natural Primary Key. Summary.12. Bean-Managed Persistence.
Developer's Responsibilities. Optimizing Data Base Access. Example: A Directory-server Mapping EJB. Entity EJBs and Nonflat Data Structures. Many-valued Associations in BMP. Summary.13. Container-Managed Persistence.
Persistence Management Overview. CMP in EJB 1.1. The EJB 2.0 CMP Philosophy. Developer Responsibilities with EJB 2.0 CMP. EJB QL Overview. Example: The Bikemodel EJB. EJB QL Examples. Persistence Strategies Compared. Summary.14. Practicalities of EJB Development.
Debugging Hints. Packaging and Assembly of Applications. Portability and Interoperability. Utility Classes and the Server CLASSPATH. Summary.15. Design, Patterns, and Good Practice.
Architectural and Structural Issues. Exception Handling: Philosophy and Practice. The 'This 'Reference and Loop-Back Calls. Thread Management. Garbage Collection Issues. Using Value Objects with EJBs. Handles. Summary.16. Security.
Security Concepts. J2EE/EJB Security Architecture. The EJB Security API. Security Concepts Example. EJB Security in the Enterprise. Summary.17. EJBs and the Web Tier.
Web Technology and Application Servers. JSP/Servlet-EJB Connectivity. Using Separate JSP/Servlet Engine and EJB Servers. Summary.18. Connectors and Resource Adapters.
The Need for Connectivity. Simple Connectivity Techniques. JCA Resource Adapters: Rationale and Principles. A Simple Resource Adapter. Common Client Interface (CCI). Transaction Management. Security Management. Summary.Appendix A. New Features in EJB 2.1.
Overview. EJB QL Enhancements. Web Services Integration. Messaging Enhancements. Timer Services. What 's Missing.Appendix B. Overview of the EJB Deployment Descriptor.
Vendor-independent and Vendor-specific Deployment Descriptors. General Structure. Enterprise-beans Element. Relationships Element. Assembly-descriptor Element. Summary.Appendix C. Installing and Testing the Case Study.
Installing the Application. Testing the Application.Appendix D. Reflection and Dynamic Instantiation.
The Importance of Reflection. Using Reflection. Dynamic Instantiation.Appendix E. Java Serialization.
The Purpose of Serialization. Serialization Strategies. Using the Serialization API. Controlling Serialization. Non-Java Serialization.Appendix F. Obtaining and Configuring the J2EERI.
Getting the Reference Implementation. Setting Up: Unix. Setting Up: Windows. Usage Hints.Appendix G. Overview of Public Key Cryptography.
Basic Principles. Combining Symmetric and Asymmetric Techniques. Detecting Tampering. Identifying the Communicating Parties.Appendix H. Glossary of Terms. Appendix I. Bibliography. Index.