O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Applied Enterprise JavaBeans™ Technology

Book Description

The definitive guide to industrial-strength EJB 2.0 development.

  • A comprehensive guide to enterprise-class EJB 2.0 development

  • In-depth coverage of transactions, security, performance, and Web services

  • Features a full-scale, real-world case study

  • Applied Enterprise JavaBeans Technology takes you under the hood of EJB 2.0, offering unprecedented insight into how EJB really works-and shows you how to leverage its full power to build industrial-strength distributed applications. EJB expert Kevin Boone starts from first principles and progresses to state-of-the-art approaches for building Java applications that are distributed, transactional, and secure. Along the way, Boone reveals aspects of the EJB architecture that are normally hidden but offer even more power to developers who understand them.

    Applied Enterprise JavaBeans Technology offers all this and more:

  • Demonstrates powerful techniques for maximizing distributed application security

  • Introduces high-performance resource pooling and optimization strategies

  • Helps developers choose and implement the best approach to distributed transaction processing

  • Presents in-depth coverage of integration with related technologies, including servlets, Web services, messaging, directories, and CORBA

  • Includes extensive cross-references to the official EJB 2.0 specifications

  • From EJB "first principles" to the state of the art

  • Emphasizes accuracy, depth, and comprehensiveness: never oversimplifies!

  • Focuses on mission-critical development techniques that other books ignore

  • Illuminates powerful capabilities typically left "transparent" to the programmer

  • Shows how to use EJB to implement comprehensive security policies

  • Contains in-depth coverage of automatically generated EJB proxies

  • Table of Contents

    1. Copyright
    2. Author’s note
    3. About the author
    4. Preface
    5. Enterprise JavaBeans™ in context
      1. Enterprise JavaBeans: what are they, and what do they do?
      2. EJBs in the enterprise
      3. Why use EJBs?
      4. The EJB philosophy
      5. EJB roles
      6. EJB products
      7. Summary
    6. Distributed objects and RMI
      1. What are distributed objects?
      2. How objects can communicate
      3. Java RMI
      4. Stubs
      5. RMI protocols
      6. Security
      7. Enterprise JavaBean RMI
      8. Summary
    7. An overview of EJB technology
      1. The client’s view
      2. Fundamentals of the EJB architecture
      3. Types of EJB
      4. Distributed and local EJB semantics
      5. Anatomy of an EJB
      6. Principle of operation: session and entity EJBs
      7. Principle of operation: message-driven EJBs
      8. The EJB container and its proxies
      9. Overview of the EJB API
      10. EJB rules, standards and limitations
      11. Assembly and deployment
      12. Configuration
      13. Summary
    8. Creating and deploying a simple EJB
      1. Setting up the source tree
      2. Coding the EJB and test client
      3. Compiling the EJB and test client
      4. Starting the J2EE Reference Implementation server
      5. Assembling and deploying the EJB
      6. Testing the EJB
      7. Troubleshooting
      8. Summary
    9. Introducing the case study
      1. About the case study
      2. About the ‘business’
      3. Goals of the application
      4. Design architecture
      5. Design philosophy
      6. EJB design
      7. Sneak preview
      8. Summary
    10. Session EJBs
      1. Types and applications of session EJBs
      2. What is ‘state’ ?
      3. Stateful session EJBs
      4. Stateless session EJBs
      5. Some notes on the meaning of an ‘EJB instance’
      6. Session EJBs as interfaces to entity EJBs
      7. Transaction issues in session EJBs
      8. Analyzing the ‘Interest’ EJB
      9. An example
      10. Summary
    11. Naming and JNDI
      1. Naming and directory servers
      2. What is JNDI?
      3. JNDI terms and concepts
      4. Using JNDI
      5. Examining a typical EJB server namespace
      6. JNDI and EJB
      7. JNDI in more detail
      8. JNDI configuration
      9. JNDI lookups across servers
      10. Further reading
    12. JDBC and databases
      1. What is JDBC ?
      2. SQL
      3. The JDBC API
      4. JDBC drivers
      5. JDBC and JNDI
      6. EJB and JDBC example
      7. Connection management and pooling
      8. Transactions
      9. Practical JDBC usage in EJBs
      10. What’s new in JDBC 3.0?
      11. Summary
    13. Transactions
      1. Introductory note
      2. Transactions described
      3. The EJB transaction model
      4. Container-managed transaction demarcation
      5. Bean-managed transaction demarcation
      6. Client-demarcated transactions
      7. Handling transaction isolation in EJBs
      8. Distributed transactions and two-phase commit
      9. Summary
    14. Messaging and message-driven EJBs
      1. Overview of enterprise messaging
      2. The JMS API
      3. JMS and EJBs
      4. Interlude: messaging in the Prestige Bike Hire application
      5. Sending messages from EJBs
      6. Message-driven EJBs
      7. Testing messaging EJBs
      8. Summary
    15. Entity EJBs
      1. What is an entity EJB?
      2. Principle of operation
      3. Associations between entities
      4. Persistence management
      5. Developer’s responsibilities in general
      6. Handling data sets with no natural primary key
      7. Summary
    16. Bean-managed persistence
      1. Developer’s responsibilities
      2. Optimizing database access
      3. Example: a directory-server mapping EJB
      4. Entity EJBs and nonflat data structures
      5. Many-valued associations in BMP
      6. Summary
    17. Container-managed persistence
      1. Persistence management overview
      2. CMP in EJB 1.1
      3. The EJB 2.0 CMP philosophy
      4. Developer responsibilities with EJB 2.0 CMP
      5. EJB QL overview
      6. Example: the BikeModel EJB
      7. EJB QL examples
      8. Persistence strategies compared
      9. Summary
    18. Practicalities of EJB development
      1. Debugging hints
      2. Packaging and assembly of applications
      3. Portability and interoperability
      4. Utility classes and the server CLASSPATH
      5. Summary
    19. Design, patterns, and good practice
      1. Architectural and structural issues
      2. Exception handling: philosophy and practice
      3. The ‘this’ reference and loop-back calls
      4. Thread management
      5. Garbage collection issues
      6. Using value objects with EJBs
      7. Handles
      8. Summary
    20. Security
      1. Security concepts
      2. J2EE/EJB security architecture
      3. The EJB security API
      4. Security concepts example
      5. EJB security in the enterprise
      6. Summary
    21. EJBs and the Web tier
      1. Web technology and application servers
      2. JSP/Servlet-EJB connectivity
      3. Using separate JSP/servlet engine and EJB servers
      4. Summary
    22. Connectors and resource adapters
      1. The need for connectivity
      2. Simple connectivity techniques
      3. JCA resource adapters: rationale and principles
      4. A simple resource adapter
      5. Common client interface (CCI)
      6. Transaction management
      7. Security management
      8. Summary
    23. New features in EJB 2.1
      1. Overview
      2. EJB QL enhancements
      3. Web services integration
      4. Messaging enhancements
      5. Timer services
      6. What’s missing
    24. Overview of the EJB deployment descriptor
      1. Vendor-independent and vendor-specific deployment descriptors
      2. General structure
      3. enterprise-beans element
      4. relationships element
      5. assembly-descriptor element
      6. Summary
    25. Installing and testing the case study
      1. Installing the application
      2. Testing the application
    26. Reflection and dynamic instantiation
      1. The importance of reflection
      2. Using reflection
      3. Dynamic instantiation
    27. Java serialization
      1. The purpose of serialization
      2. Serialization strategies
      3. Using the serialization API
      4. Controlling serialization
      5. Non-Java serialization
    28. Obtaining and configuring the J2EE RI
      1. Getting the Reference Implementation
      2. Setting up: Unix
      3. Setting up: Windows
      4. Usage hints
    29. Overview of public key cryptography
      1. Basic principles
      2. Combining symmetric and asymmetric techniques
      3. Detecting tampering
      4. Identifying the communicating parties
    30. Glossary of terms
    31. Bibliography