You are previewing Building Java™ Enterprise Systems with J2EE™.
O'Reilly logo
Building Java™ Enterprise Systems with J2EE™

Book Description

The practical angle of Building Java Enterprise Systems with J2EE provides the conceptual background and wealth of code examples needed to actually assemble systems in a useful manner with the J2EE technologies. Furthermore, this book demonstrates how the technologies complement and build on top of one another via evolution of a cohesive and real sample application. You can use this book to learn, develop, and design your custom applications immediately.

Table of Contents

  1. Copyright
    1. Dedication
  2. About The Authors
  3. Acknowledgments
  4. Tell Us What You Think!
  5. Introduction
    1. This Is Your Enterprise on Caffeine!
      1. Scope of the Book, Mission Statement, and Battle Cry
      2. Problem to Be Solved
    2. This Is the Book to Address Your Needs!
      1. Part I: Enterprise Foundations
      2. Part II: Enterprise Data Enabling
      3. Part III: Distributed Enterprise Communications Enabling
      4. Part IV: Common Services for Distributed Enterprise Communications
      5. Part V: Enterprise Systems Assurance
      6. Part VI: Enterprise Web Enabling
      7. Part VII: Enterprise Applications Enabling
      8. Appendixes
      9. Notation Conventions
      10. Other Conventions Used in This Book
    3. This Is Your Brain After Reading This Book!
      1. Intended Audience
      2. Approach of the Book
      3. The End Result
  6. I. Enterprise Foundations
    1. 1. Enterprise Architectural Overview
      1. The Enterprise
      2. Enterprise Components
      3. Information Technology in the Enterprise
      4. Conclusions
    2. 2. Object-Oriented Software Development for the Enterprise
      1. Enterprise Objects
        1. Elements of Object-Oriented Software
        2. Object-Oriented Software's Importance to the Enterprise
      2. The Object-Oriented Development Process
        1. Development Process Overview
        2. Project Charter
        3. Requirements Analysis
          1. System Behavioral Analysis
          2. System Interface Analysis
        4. Preliminary System Design
        5. Detailed Design
        6. Implementation
        7. Unit Test
        8. Assembly
        9. Thread Test
        10. Configuration Specification
        11. System Test
        12. Deployment
        13. Maintenance
        14. Iteration and Phases of Development
      3. Unified Modeling Language
        1. Static Logical Structure Diagrams
        2. Dynamic Behavior Diagrams
      4. Conclusions
    3. 3. Component-Based Software Development for the Enterprise
      1. Enterprise Components
      2. Component Models
        1. Generic Component Model
        2. Component Model Interfaces
      3. Component-Based Development
      4. Standards
        1. Standard Component Models
        2. Design Patterns
      5. Conclusions
    4. 4. Java Foundations for Enterprise Development
      1. Java Features and Versions
        1. Java's Attractive Enterprise Features
        2. Java's Version History
      2. Java Platform Architecture
        1. Java Development and Runtime Environments
        2. Java Runtime Platform Architecture
        3. Java Runtime Optimizations
      3. Java Files and Tools
        1. Java File Types
        2. Basic Java Source File Structure
        3. Basic JAR and Manifest File Structure
        4. Java Software Development Kit Tools
      4. Java Language
        1. Java Fundamental Types
        2. Java Operators
        3. Java Language Constructs
      5. Core Java Language APIs
        1. Base Language and System APIs
        2. Errors and Exceptions
        3. Type and Mathematical APIs
        4. Reflection
        5. Garbage Collection
        6. Events
      6. Collection APIs
        1. Non-Keyed Collection Framework
        2. Mapped Collection Framework
      7. Input/Output and State Persistence APIs
        1. Byte I/O Streams
        2. Character I/O Readers and Writers
        3. Archive File APIs
        4. Properties Files
      8. Threading APIs
      9. Date and Time APIs
      10. Java Applets
      11. Conclusions
    5. 5. Java Enterprise System Architecture with the J2EE
      1. The J2EE Model
        1. J2EE Features
        2. J2EE Component-Container Architecture
        3. J2EE Restrictions
      2. Enterprise Java and J2EE Architecture
        1. Java Enterprise System Architecture Overview
      3. Data Connectivity
      4. Communication Mechanisms
      5. Assurance Mechanisms
      6. Client Connectivity
      7. Web Connectivity
      8. Application Connectivity
      9. The J2EE Future
      10. Conclusions
    6. 6. Enterprise User Interfacing
      1. The Distributed Enterprise User Interface
      2. Java AWT Components
        1. AWT Components, Containers, and Layouts
        2. AWT Events
        3. Deployment Considerations
      3. Java Swing Components
        1. Swing Components, Containers, Layouts, and Events
        2. Swing Models
        3. Swing Look and Feel
        4. Swing Component Helpers
        5. Deployment Considerations
      4. Utility and Accessibility Components
        1. Data Transfer
        2. Drag and Drop
        3. Printing
        4. Accessibility
        5. JavaHelp
      5. Graphics and Multimedia Components
        1. AWT Images
        2. 2D Graphics
        3. 3D Graphics
        4. Java Advanced Imaging
        5. Java Media APIs
        6. Input Method Framework
      6. Web Page Interfaces
        1. Web Interface Content
        2. Web Interface Generators
      7. Conclusions
    7. 7. Modeling Components with JavaBeans
      1. JavaBeans Overview
      2. JavaBeans Containers
        1. JavaBean Containers
        2. JavaBean Components
        3. JavaBean Context
      3. JavaBeans Events
      4. JavaBeans Properties
        1. Simple Properties
        2. Array and Indexed Properties
        3. Bound Properties
        4. Constrained Properties
      5. JavaBeans Introspection
      6. JavaBeans Persistence
      7. JavaBeans Customization
        1. Property Editors
        2. Customizers
      8. The InfoBus
      9. Conclusions
  7. II. Enterprise Data Enabling
    1. 8. Enterprise Data
      1. Database Basics
        1. Data Model Abstraction Levels
        2. General DBMS Architecture
        3. Transactions
      2. Relational Databases
        1. RDBMS Architecture
        2. SQL
          1. Creating and Deleting Tables
          2. Modifying Tables
          3. Inserting and Deleting Rows from a Table
          4. Modifying Rows in a Table
          5. Queries
        3. Data Model Diagram Conventions
      3. Object Databases
        1. ODBMS Architecture
      4. RDBMSs Versus ODBMSs
      5. Relational/Object Translations
      6. CLIs
      7. Embedded SQL
      8. ODBC
      9. JDBC
      10. Conclusions
    2. 9. Basic JDBC
      1. JDBC Architecture
      2. JDBC Drivers and their Types
        1. Driver Assessment
      3. JDBC Driver Configuration
        1. General Configuration Steps per Driver Type
        2. Configuring the BeeShirts.com Example Data Model
      4. JDBC Connections
        1. Database URLs
        2. Creating Connections
        3. Example: Connecting to a Database
      5. JDBC Statements
        1. Using Regular Statements
        2. Querying with Joins, Outer Joins, and LIKE Clauses
        3. Example: Creating and Executing Statements
        4. Using Prepared Statements
        5. Example: Creating and Executing Prepared Statements
      6. JDBC Result Sets
        1. Manipulating Result Sets
        2. Obtaining Information About Result Sets
        3. Example: Manipulating Result Sets and Result Set MetaData
      7. SQL and Java Mappings
      8. JDBC MetaData
        1. Obtaining Information about Databases and Drivers
        2. Example: Simple Database Meta-Data Usage
      9. Conclusions
    3. 10. Advanced JDBC
      1. Scrollable Result Sets
        1. Creating Scrollable Result Sets
        2. Scrolling Around Result Sets
        3. Driver Support for Scrollable Result Sets
        4. Example: Scrollable Result Sets
      2. Updateable Result Sets
        1. Creating Updateable Result Sets
        2. Updating Rows
        3. Canceling Updates
        4. Inserting Rows
        5. Deleting Rows
        6. Visibility into Database Changes
        7. Driver Support for Updateable Result Sets
        8. Example: Updateable Result Sets
      3. Batch Updates
        1. Creating Batch Updates
        2. Executing a Batch Update
        3. Example: Batch Updates
      4. Advanced Data Types
        1. Java Object Types
        2. SQL3 Types
          1. SQL BLOBs and CLOBs
          2. SQL References
          3. SQL Arrays
          4. SQL Structures
          5. SQL Distinct Types
        3. Custom Types
        4. Extending the BeeShirts.com Example Data Model
        5. Example: Using the Advanced SQL Types with JDBC
      5. Row Sets
        1. Row Set Architecture
        2. Using Row Sets
        3. Row Set Implementations
        4. Managing Internal Row Set State and Behavior
      6. Stored Procedures
        1. Predefined Database Functions
        2. Creating Stored Procedures
        3. Executing Stored Procedures
        4. Creating a Few BeeShirts.com Stored Procedures
        5. Example: Calling Stored Procedures
      7. Database Naming via JNDI
      8. Connection Pools
      9. Distributed Transactions
      10. Conclusions
  8. III. Distributed Enterprise Communications Enabling
    1. 11. Distributed Enterprise Communications
      1. Distributed Systems
      2. Distribution Mechanisms
      3. The Network Client
      4. The Network Server
      5. Conclusions
    2. 12. Network Communications
      1. Network Computing
        1. Protocols and Communication Layers
      2. TCP/IP Protocol Suite
        1. TCP/IP Roots
        2. TCP/IP Communication Layers
          1. TCP/IP Network Access Layer
          2. TCP/IP Internet Access Layer
          3. TCP/IP Transport Layer
          4. TCP/IP Application Layer
            1. TCP/IP Implementations and Tools
        3. Socket Programming
          1. Basic Socket Programming
          2. UDP Datagrams
          3. Custom Sockets and Factories
        4. Communication Streams
        5. Conclusions
    3. 13. Web Communications
      1. The Internet and the World Wide Web
        1. History of the Web
        2. URLs
      2. HTTP
        1. Basic HTTP Behavior
        2. MIME
        3. HTTP Requests
        4. HTTP Responses
        5. Basic HTTP Handling in Java
        6. Tracking Sessions outside of HTTP
          1. Baking Session IDs into the URL and Request Body
          2. Cookies
        7. HTTP-NG
      3. CGI
      4. Servlets
      5. HTML Documents
      6. Dynamic HTML Generation
      7. Conclusions
    4. 14. Modeling Components with CORBA
      1. CORBA Overview
        1. The Object Management Architecture
        2. CORBA 3.0
        3. CORBA's Java Enterprise System Role
      2. The ORB
        1. The ORB Concept
        2. Client Side ORB Components
        3. ORB Protocols
        4. Server-Side ORB Components
      3. GIOP and IIOP
        1. GIOP Overview
        2. IIOP Overview
        3. Interoperable Object References
      4. Services, Facilities, and Business Objects
        1. CORBAservices
        2. CORBAfacilities
          1. Horizontal Common Facilities
          2. Vertical Market Facilities
        3. CORBA Domain Interfaces and Business Objects
      5. IDL
        1. Generic CORBA IDL File Format
        2. CORBA IDL-to-Java Mappings
        3. IDL Compilation
        4. Java-to-IDL Mappings
      6. Objects by Value
        1. Value Types
        2. Objects by Value Behavioral Sequence
        3. Objects by Value Marshaling
        4. Objects by Value Code Example
      7. Conclusions
    5. 15. CORBA Communications
      1. The Very Distributed CORBA
        1. Designing for Scalability
        2. CORBA Development Process
      2. CORBA Vendors
        1. Basic Tools and Configuration
        2. Vendor Offerings
      3. Java IDL
      4. CORBA Interfaces
      5. CORBA Servers and Skeletons
        1. Compiling the IDLs and Generating Skeletons
        2. Creating the CORBA Servers
          1. DSI-Based Servers
      6. Implementation Repository
      7. Object Adapters
        1. BOA-Based Server Registration
        2. Java IDL Server Registration
        3. POA-Based Server Registration
      8. Interface Repository
      9. CORBA Clients and Stubs
        1. CORBA Clients and Static Stubs
        2. DII-Based Clients
      10. CORBA Naming
      11. Conclusions
    6. 16. RMI Communications
      1. RMI Basics
        1. RMI Architecture
        2. RMI Packages and Tools
        3. RMI Infrastructure Configuration
        4. RMI Development Process
      2. JRMP
      3. RMI and IIOP
      4. Java-to-IDL Mapping
      5. Objects by Value and RMI
      6. RMI Interfaces
        1. RMI Interface Definition Examples
      7. RMI Servers and Skeletons
        1. RMI/JRMP Servers
          1. Creating the RMI/JRMP Servers
          2. RMI/JRMP Server Implementation Examples
          3. Compiling the RMI/JRMP Servers
        2. RMI/IIOP Servers
          1. Creating the RMI/IIOP Servers
          2. RMI/IIOP Server Implementation Examples
          3. Compiling the RMI/IIOP Servers
      8. RMI Registration
        1. Registration of RMI/JRMP Servers
          1. Starting an RMI Registry
          2. Configuring RMI/JRMP Security
          3. Interfacing with RMI Registries
          4. Dynamic RMI/JRMP Class Downloading
          5. Example RMI/JRMP Server Registration
        2. Registration of RMI/IIOP Servers
          1. Starting an RMI/IIOP Naming Service
          2. Interfacing with RMI/IIOP Naming Services
          3. Dynamic RMI/IIOP Class Downloading
          4. Example RMI/IIOP Server Registration
      9. RMI Clients and Stubs
        1. RMI/JRMP Clients and Stubs
        2. RMI/IIOP Clients and Stubs
      10. RMI Lookup
        1. RMI/JRMP Lookups
        2. RMI/IIOP Lookups
      11. RMI Object Activation
        1. Creating an Activatable Server
        2. Creating an Activatable Server Registrar
        3. RMI Activatable Object Client
        4. Compile and Run the Example
      12. Custom Sockets
      13. Conclusions
    7. 17. Modeling Components with COM/DCOM
      1. COM and DCOM in a Nutshell
        1. DCOM Architecture
        2. Java-Based Development Tools
        3. DCOM Interfaces
        4. DCOM Identifiers
        5. DCOM Monikers
        6. Server Locality
        7. Type Libraries and IDL
        8. Dynamic Invocation
      2. COM/DCOM Services
      3. Interface Definition Language
        1. Generic DCOM IDL File Format
        2. DCOM IDL-to-Java Mappings
      4. Conclusions
    8. 18. DCOM Communications
      1. DCOM in the Machine
        1. DCOM Development Process
      2. DCOM Interfaces
      3. DCOM Identifiers
      4. DCOM Types
      5. DCOM Servers and Skeletons
        1. Generating Java Bindings
        2. Generic DCOM Servers
        3. Example DCOM Server Implementations
        4. Compiling the DCOM Servers
      6. DCOM Server Registration
        1. Registration with javareg
        2. Registration with a Registry File
        3. Peering into DCOM Objects
      7. DCOM Clients and Stubs
        1. Generic DCOM Clients
        2. Example DCOM Client Implementation
      8. DCOM Client Registration and Spawning
      9. DCOM Bridging
      10. Conclusions
  9. IV. Common Services for Distributed Enterprise Communications
    1. 19. Naming Services
      1. Naming Services in a Nutshell
        1. Handles
        2. Names
        3. Naming Contexts and Systems
      2. JNDI Naming Services
        1. JNDI Architecture
        2. Naming Objects
          1. JNDI Contexts
          2. JNDI Binding and Lookup
          3. JNDI Names
          4. JNDI Context Listings
        3. Referenceable Objects
        4. Naming Events
        5. JNDI Examples
      3. Naming Files
        1. File-System Interfaces
        2. JNDI File SPI
      4. CORBA Naming
        1. CosNaming IDL
        2. CosNaming Service Implementations
        3. CORBA Naming Interfaces
        4. JNDI CosNaming SPI
      5. RMI Naming
        1. RMI Naming System Interfaces
        2. JNDI RMI SPI
      6. DNS
        1. The Domain Name System
        2. Java-Based DNS Interfacing
      7. DCOM Naming
        1. DCOM Class Naming with CLSIDs and ProgIDs
        2. DCOM Object Naming with Monikers
      8. Conclusions
    2. 20. Directory and Trading Services
      1. Directory and Trading Services in a Nutshell
      2. JNDI Directory Services
        1. Directory Contexts
          1. Directory Object Attributes
          2. Directory Schemas
          3. Directory Object Binding
          4. Basic Directory Searches
          5. Directory Search Results
          6. Directory Searches Using Search Controls and Filters
          7. Directory Object Attribute Modification
          8. Directory Events
      3. NIS as a Directory Service
        1. JNDI NIS SPI
      4. NDS as a Directory Service
        1. JNDI NDS SPI
      5. LDAP as a Directory Service
        1. LDAP Interfaces
        2. JNDI LDAP SPI
        3. JNDI LDAP V3 API Extensions
      6. CORBA as a Trading Service
        1. CORBA Trading Service Components
        2. Service Exporting
        3. Service Importing
        4. CORBA Trading Example
      7. Jini as a Trading Service
        1. Jini Component Architecture
        2. Jini Programming Model
        3. Jini Infrastructure
        4. Jini Tools and Configuration
        5. Jini Class Architecture and Development Process
        6. Jini Service Example
      8. Microsoft Active Directory Services
      9. Conclusions
    3. 21. Activation Services
      1. Activation Services Overview
      2. RMI Activation Framework
      3. CORBA Activation Framework
      4. CORBA Lifecycle Service
      5. DCOM Activation Framework
      6. JavaBeans Activation Framework
      7. Web and Application Activation Frameworks
      8. Conclusions
    4. 22. Messaging Services
      1. Messaging Overview
        1. Message Service Locality
        2. Point-to-Point Messaging
        3. Publish-Subscribe Messaging
        4. Push and Pull Messaging Models
        5. Message Filtering, Synchronicity, and Quality
        6. Email Messaging
      2. MOM
      3. Java Message Service
        1. Core JMS Architecture
          1. JMS Connections
          2. JMS Sessions
          3. JMS Messages
          4. Message Producers, Consumers, and Selectors
        2. Point-to-Point Message Queuing Model
        3. Extending the BeeShirts.com Example Data Model
        4. Point-to-Point Message Queuing Example
          1. Order Request
          2. Order Manager
          3. Queue Supplier
          4. Queue Consumer
        5. Publish-Subscribe Model
        6. Publish-Subscribe Example
          1. Topic Supplier
          2. Topic Consumer
      4. CORBA Messaging
        1. CORBA Event Service
          1. Push Model
          2. Pull Model
        2. CORBA Notification Service
        3. CORBA Messaging Specification
      5. JavaMail
        1. Email Messaging Systems
          1. Email Messages
          2. SMTP
          3. POP
          4. IMAP
        2. JavaMail Architecture Overview
        3. JavaMail Generic Parts
        4. JavaMail Generic Messages
        5. JavaMail Multipart Messages
        6. JavaMail MIME Messages
        7. JavaMail Event Architecture
        8. Creating Mail Sessions
        9. Message Stores
        10. Message Store Folders
        11. Message Transports
        12. JavaMail Example
      6. Conclusions
    5. 23. Transaction Services
      1. Transactions
      2. Transaction Services
        1. Transaction Attributes
        2. Transaction Isolation Levels
        3. Transaction Models
        4. X/Open Distributed Transaction Processing Standard
        5. Two-Phase Commit Protocol
      3. Object Transaction Service
        1. Core OTS Types
        2. OTS Interfaces
      4. Java Transactions API
      5. JTA Transaction Manager Interface
      6. JTA Application Interface
      7. JTA and X/Open XA
      8. Java Transactions Service
      9. Conclusions
  10. V. Enterprise Systems Assurance
    1. 24. High-Assurance Enterprise Applications
      1. What Is Assurance?
        1. Who Should Provide Assurance?
        2. Dilemma of Assurance and Delivery Costs
      2. General Assurance Process
        1. Identify the Assurance Problem
          1. Assurance Problem Models
        2. Assess Risk
        3. Generate Risk-Reduction Plan
        4. Assess Cost of Risk-Reduction Plan
        5. Assess Residual Risk
      3. To Be Assured or Not to Be Assured?
        1. Failed Delivery Costs
        2. Making Decisions
      4. Security
        1. Security Assurance Problem Models
        2. Security Risk-Reduction Plans
      5. Reliability
        1. Reliability Assurance Problem Models
        2. Reliability Risk-Reduction Plans
      6. Availability
        1. Availability Assurance Problem Models
        2. Availability Risk-Reduction Plans
      7. Maintainability
        1. Maintainability Assurance Problem Models
        2. Maintainability Risk-Reduction Plans
      8. Safety
        1. Safety Assurance Problem Models
        2. Safety Risk-Reduction Plans
      9. Conclusions
    2. 25. Security Basics
      1. The Basic Security Model
      2. Cryptography
        1. Classes of Cryptography
        2. Message Digests
        3. Symmetric Keys
        4. Asymmetric Keys
      3. Authentication and Nonrepudiation
        1. Authentication Types
          1. Password-Based Identity and Authentication
          2. Physical Token–Based Identity and Authentication
          3. Biometrics-Based Identity and Authentication
          4. Certificate-Based Identity and Authentication
        2. Nonrepudiation
      4. Secure Socket Layer (SSL)
      5. Access Control
        1. Discretionary Access Control
        2. Role-Based Access Control
        3. Mandatory Access Control
        4. Firewall Access Control
      6. Domains
      7. Auditing
      8. Policies and Administration
      9. Conclusions
    3. 26. Basic Java Security
      1. The History of Security in Java
      2. Java Security Architecture
        1. Core Java 2 Security Architecture
        2. Java Cryptography Architecture
        3. Java Cryptography Extension
        4. Java Secure Socket Extension
        5. Java Authentication and Authorization Service
      3. Byte Code Verifier
      4. Class Loader
        1. Class Loader Architecture and Security
        2. Class Loader Interfaces
      5. Security Manager
        1. Security Manager Interfaces
        2. Custom Security Managers
      6. Java Cryptography Architecture
        1. The Architecture of JCA
        2. Cryptographic Engines
        3. Cryptographic Service Providers
      7. Conclusions
    4. 27. Advanced Java Security
      1. Permissions
        1. Permissions Architecture
        2. Permission Types
        3. Custom Permission Types
      2. Security Policies
        1. Security Policy File Format
        2. Referencing Properties in Policy Files
        3. Using Security Policy Files
        4. Security Policy Tool
        5. Security Policy APIs
      3. Java Access Control
        1. Access Control Architecture
        2. Guarded Objects
        3. SecurityManager to Access Control Mapping
        4. Fine-Grained and Configurable Access Control Example
      4. Principal Identification
        1. Keys
        2. Certificates
        3. Key and Certificate Storage
        4. Using Keys and Certificates
      5. Protecting Objects
        1. Message Digests
        2. Signatures
        3. Signed Objects
      6. Signing Code
        1. The JAR Signer Tool
        2. Code Signing Process
        3. Code Signing Example
      7. Java Security Extensions
        1. Java Cryptography Extension
        2. Java Secure Socket Extension
        3. Java Authentication and Authorization Service
      8. Conclusions
    5. 28. CORBA Security
      1. CORBA Security Overview
        1. CORBA Security Packages
        2. CORBA Security Architecture
        3. Core CORBA Security Interfacing
      2. Authentication
      3. Delegation
      4. Authorization
      5. Auditing
      6. Nonrepudiation
      7. Encryption
      8. Security Policies
      9. Security Administration
      10. Conclusions
  11. VI. Enterprise Web Enabling
    1. 29. Web Browsers and Servers in the Enterprise
      1. Web Browsers
        1. Web Browser Architecture
        2. Web Browser Implementations
      2. Web Browser Security
        1. Web Browser Security Problems
        2. Web Browser Security Solutions
      3. Java Plug-in
        1. Installing the Java Plug-in into a Web Browser
        2. Designating the Use of a Java Plug-in JRE
      4. Web Servers
        1. Web Server Architecture
        2. Web Server Implementations
      5. Web Server Security
        1. Web Server Security Problems
        2. Web Server Security Solutions
      6. Web Server Availability
      7. Conclusions
    2. 30. Traditional Web Programming and Java
      1. HTML Programming
        1. HTML in General
        2. HTML Structure Control and Display Elements
          1. HTML Tags
          2. Headings
          3. Meta-Data
          4. Titles
          5. Body
          6. Linking
          7. Formatting
          8. Inline Images
          9. Tables
          10. Frames
        3. HTML Forms
      2. CGI Programming
        1. Example CGI Program
        2. Stateful CGI Applications
        3. CGI Pros and Cons
      3. Scripting Languages
        1. JavaScript
        2. VBScript
        3. Perl
      4. Active Server Pages
      5. Java-Based Web Programming
      6. Conclusions
    3. 31. XML
      1. XML Overview
      2. XML Formatting
        1. Comments
        2. XML Declaration
        3. Elements
        4. Attributes
        5. Entity References
        6. Processing Instructions
        7. Unparsed Character Data
        8. Well-Formed XML Documents
      3. DTD Declaration
        1. Document Type Definition Header
        2. Element Declarations
        3. Notation Declarations
        4. Entity Declarations
        5. Attribute Declarations
        6. Valid XML Documents
        7. DTD Example
      4. Hyperlinking in XML
        1. XLinks
          1. Simple Links
          2. Link Semantics and Behavior Attributes
          3. Extended Links
        2. XPointers
      5. XML Style Sheets
      6. Simple API for XML
        1. SAX Architecture
        2. Core SAX Objects
        3. SAX Application Handler Interfaces
        4. SAX Parser Interfaces
      7. Document Object Model
        1. DOM Architecture
        2. DOM Nodes
        3. DOM Node Types
        4. DOM Parsing
      8. Java and XML
        1. The Java Enterprise APIs and XML
        2. The J2EE and XML
        3. J2EE Application Deployment Descriptions in XML
      9. Conclusions
    4. 32. Java Servlets
      1. Servlet Architecture
        1. Servlet Logical and Physical Architecture
        2. Servlet Lifecycle
      2. Servlet Interfaces
        1. Servlet Exception Abstractions
        2. Base Servlet Framework Abstractions
          1. Base Servlet Interface
          2. ServletConfig Interface
          3. GenericServlet Class
          4. ServletContext Interface
        3. Servlet Framework Examples
      3. Servlet HTTP Interfaces
        1. Base HTTP Servlet Framework Abstractions
          1. HttpServlet Class
        2. BeeShirts.com Java HTTP Servlet Examples
      4. Request Processing
        1. Request Handling Abstractions
          1. ServletRequest Interface
          2. ServletInputStream Class
          3. HttpServletRequest Interface
          4. HttpUtils Class
        2. Servlet Request Dispatching Abstractions
          1. RequestDispatcher Interface
        3. Request Handling Examples
      5. Response Generation
        1. Response Handling Abstractions
          1. ServletResponse Interface
          2. ServletOutputStream Class
          3. HttpServletResponse Interface
        2. Response Handling Examples
      6. Session Management
        1. Session Management Abstractions
          1. HttpSession Interface
          2. HttpSessionBindingEvent and HttpSessionBindingListener
          3. Cookie Class
        2. Session Management Examples
      7. Servlet Deployment
        1. Web Application Deployment Descriptor Format
        2. Web Application Deployment Procedures
        3. Web Application Directory Structure
        4. J2EE Reference Implementation Server Startup and Deployment
        5. BEA WebLogic Server Startup and Deployment
      8. Servlet Configuration
        1. Individual Servlet Configuration
        2. Servlet Context Configuration
        3. Servlet Application Configuration
      9. Servlet Service Management
        1. Servlet Thread and Activation Service Management
        2. EJB and Resource Naming Service Management
        3. Servlet Transaction Service Management
        4. Servlet Security Service Management
          1. Servlet Authentication
          2. Secure Servlet Communications
          3. Servlet Authorization
        5. Servlet Availability Service Management
      10. Conclusions
    5. 33. JavaServer Pages
      1. JSP Overview
        1. JSP Architecture
        2. Phases of a JSP
        3. BeeShirts.com JSP Examples
      2. JSP Language Basics
        1. JSP Standard and XML-Based Elements
        2. Tags
        3. Comments
        4. Special Character Handling
      3. JSP Translation and Compilation Directives
        1. include Directive
        2. page Directive
        3. taglib Directive
        4. Directive Examples
      4. Java Scripting from JSP
        1. Declarations
        2. Expressions
        3. Scriptlets
      5. Java Abstractions of JSP
        1. Page Context
        2. Page Handles
        3. JSP Factories and Container Information
        4. Custom JSP Classes
      6. Standard Java Objects from JSP
        1. Implicit Objects
        2. Object Scope
        3. JSP Object Manipulation Examples
      7. Standard Java Actions from JSP
        1. jsp:param Action Sub-Elements
        2. jsp:forward Action
        3. jsp:include Action
        4. jsp:useBean Action
        5. jsp:setProperty Action
        6. jsp:getProperty Action
        7. jsp:plugin Action
        8. Standard Action Examples
      8. JSP Configuration and Deployment
        1. JSP Deployment Descriptor Considerations
        2. JSP Configuration
        3. Direct JSP Deployment Procedure Considerations
        4. Precompiled JSP Deployment Procedure Considerations
      9. Custom Java Actions and Tags from JSP
        1. JSP Custom Tag Extension Abstractions
        2. Tag Libraries
      10. Conclusions
  12. VII. Enterprise Applications Enabling
    1. 34. Enterprise Application Platforms
      1. Enterprise Platforms Overview
      2. TP Monitor Platforms
      3. OTMs
      4. Generic Application Frameworks
      5. Standard Java-Based Generic Application Framework
      6. CORBAcomponents
      7. Microsoft's Generic Application Framework
      8. Application-Specific Platforms
      9. Enterprise Application Management
      10. Conclusions
    2. 35. Application Servers and Enterprise JavaBeans
      1. Standalone Enterprise Applications
      2. Application Server–Based Enterprise Applications
      3. Application Server Architecture Provider Roles
      4. Application Server Components
      5. Application Server Client Interfaces
      6. Application Server Client Implementations
      7. Enterprise Application Configuration and Deployment
        1. Server Configuration and Deployment Example
        2. Client Configuration and Deployment Example
      8. Application Service Management
      9. Conclusions
    3. 36. Modeling Components with Enterprise JavaBeans
      1. EJB Overview
        1. EJB Architecture
        2. EJB Types
        3. EJB Exception Types
        4. EJB Development Considerations and Steps
        5. BeeShirts.com EJB Application
      2. EJB Configuration and Deployment Basics
        1. EJB Deployment Descriptor Top-Level Elements
        2. EJB JAR Files
        3. EJB Deployment Procedures
        4. J2EE Reference Implementation Server Startup and Deployment
        5. BEA WebLogic Server Startup and Deployment
        6. J2EE Test Client Startup
      3. Session Bean Server Components
        1. Stateless Session Beans
          1. Stateless Session Bean Logical Component Architecture
          2. Stateless Session Bean Context Setting
          3. Stateless Session Bean Creation and Removal
          4. Stateless Session Bean Passivation and Activation
          5. Stateless Session Bean Component Interface Rules Summary
          6. Stateless Session Bean Example
        2. Stateful Session Beans
          1. Stateful Session Bean Logical Component Architecture
          2. Stateful Session Bean Creation and Removal
          3. Stateful Session Bean Passivation and Activation
          4. Stateful Session Bean Component Interface Rules Summary
          5. Stateful Session Bean Example
      4. Session Bean Client Interfaces
        1. Session Bean Remote Interfaces
          1. Session Bean Remote Interface Logical Architecture
          2. Session Bean Application-Specific Remote Interfaces
          3. Session Bean Generic Remote Interfaces
          4. Session Bean Remote Interface Examples
        2. Session Bean Home Interfaces
          1. Session Bean Home Interface Logical Architecture
          2. Session Bean Home Object Lookup
          3. Session Bean Application-Specific Home Interfaces
          4. Session Bean Generic Home Interfaces
          5. Session Bean Home Interface Examples
      5. Session Bean Configuration and Deployment
      6. EJB and JDBC
      7. Entity Bean Server Components
        1. Entity Bean Pooling
        2. Primary Keys
        3. Bean-Managed Persistence Entity Beans
          1. BMP Entity Bean Logical Component Architecture
          2. BMP Entity Bean Context Setting and Unsetting
          3. BMP Entity Bean Finding
          4. BMP Entity Bean Creation and Removal
          5. BMP Entity Bean Passivation and Activation
          6. BMP Entity Bean Storing and Loading
          7. BMP Entity Bean Component Interface Rules Summary
          8. BMP Entity Bean Example
        4. Container-Managed Persistence Entity Beans
          1. CMP Entity Bean Logical Component Architecture
          2. CMP Entity Bean and Primary Key Container-Managed Fields
          3. CMP Entity Bean Context Setting and Unsetting
          4. CMP Entity Bean Finding
          5. CMP Entity Bean Creation and Removal
          6. CMP Entity Bean Passivation and Activation
          7. CMP Entity Bean Storing and Loading
          8. CMP Entity Bean Component Interface Rules Summary
          9. CMP Entity Bean Example
      8. Entity Bean Client Interfaces
        1. Entity Bean Remote Interfaces
          1. Entity Bean Remote Interface Logical Architecture
          2. Entity Bean Application-Specific Remote Interfaces
          3. Entity Bean Generic Remote Interfaces
          4. Entity Bean Remote Interface Examples
        2. Entity Bean Home Interfaces
          1. Entity Bean Home Interface Logical Architecture
          2. Entity Bean Home Object Lookup
          3. Entity Bean Application-Specific Home Interfaces
          4. Entity Bean Generic Home Interfaces
          5. Entity Bean Home Interface Examples
      9. Entity Bean Configuration and Deployment
      10. Conclusions
    4. 37. Advanced Enterprise JavaBeans Serving
      1. EJB Transactions
        1. Bean-Managed Transaction Demarcation
        2. Container-Managed Transaction Demarcation
      2. EJB Security
        1. Standard Programmatic EJB Security Mechanisms
        2. Standard Declarative EJB Security Mechanisms
        3. Vendor-Specific Access Control Mapping
        4. Vendor-Specific Identity and Authentication
        5. Extending the BeeShirts.com Example Data Model
        6. BeeShirts.com Security
      3. EJB/Web Connectivity
        1. BeeShirts.com: An Integrated J2EE Web and EJB e-Commerce Application
        2. Web/EJB Connectivity Approach and Examples
      4. EJB/CORBA Connectivity
        1. EJBs as CORBA Clients
        2. EJBs as CORBA Servers
      5. EJB and XML
      6. EJB and JMS
        1. EJB as JMS Producer
        2. EJB as JMS Consumer
      7. EJB and JavaMail
      8. Conclusions
    5. 38. Enterprise Application Integration
      1. Enterprise Application Integration Overview
      2. EAI with JNI
      3. EAI with Distributed Enterprise Communication Paradigms
        1. EAI with TCP/IP
        2. EAI with HTTP
        3. EAI with CORBA
        4. EAI with RMI
        5. EAI with DCOM
      4. EAI with Messaging Services and JMS
      5. EAI with XML
      6. EAI with J2EE Connectors
      7. Embedded Applications Integration
      8. Conclusions
  13. VIII. Appendixes
    1. A. Software Configuration
      1. Software on the CD
      2. Software Configuration per Chapter
      3. J2SE Configuration
      4. J2EE Configuration
      5. Java Environment Variable Configuration
      6. Microsoft Java Configuration
      7. BEA WebLogic Server Configuration
      8. Sample Software Configuration
      9. Database Configuration
        1. BeeShirts.com Data Model
        2. Cloudscape Database Configuration
          1. Cloudscape Software to Install
          2. Cloudscape Limitations
          3. Cloudscape Configuration Tool Startup with BEA WebLogic
          4. Cloudscape Configuration Tool Startup with the J2EE Reference Implementation
          5. Cloudscape Database, Sample Database Schema, and Sample Data Configuration
          6. Cloudscape Library Environment Variable
          7. Sample Properties Files for Cloudscape Configuration
          8. Cloudscape Database Starting with the J2EE Reference Implementation
        3. Oracle Database Configuration
          1. Oracle Software to Install
          2. Oracle Limitations
          3. Oracle Database Installation
          4. Oracle Database Sample Schema and Data Configuration
          5. Changing Properties Files for Oracle Configuration
      10. Web Configuration
        1. Web Configuration Properties for the J2EE Reference Implementation
        2. Web Configuration Properties for the BEA WebLogic Server
        3. Web Configuration Scripts for the J2EE Reference Implementation
        4. Web Configuration Scripts for the BEA WebLogic Server
      11. Application Server Configuration
        1. Application Server Configuration Properties for the BEA WebLogic Server
        2. Application Server Configuration Scripts for the BEA WebLogic Server
        3. Application Server Configuration Scripts for J2EE Reference Implementation
      12. JavaBeans Configuration
      13. XML Configuration
      14. CORBA ORB Configuration
      15. CORBA Services Configuration
      16. RMI/IIOP Configuration
      17. JNDI Configuration
      18. LDAP Configuration
      19. Jini Configuration
      20. JMS Configuration
      21. JavaMail Configuration
    2. B. Additional Resources
      1. Object-Oriented and Component-Based Software Development
        1. Bibliography
      2. Java Basics
        1. Bibliography
      3. J2EE Basics
        1. Bibliography
      4. User Interfacing
        1. Bibliography
      5. JavaBeans
        1. Bibliography
      6. Database Development and JDBC
        1. Bibliography
      7. General Distributed Communications and TCP/IP
        1. Bibliography
      8. CORBA
        1. Bibliography
      9. RMI
        1. Bibliography
      10. COM/DCOM
        1. Bibliography
      11. JNDI, Naming, Directory, Trading, and Jini Services
        1. Bibliography
      12. MOM, JMS, and JavaMail
        1. Bibliography
      13. Distributed Transactions, JTA, and JTS
        1. Bibliography
      14. General Assurance and Security
        1. Bibliography
      15. General Web, HTML, and Scripting
        1. Bibliography
      16. XML
        1. Bibliography
      17. Java Servlets and JSP
        1. Bibliography
      18. Application Serving and EAI
        1. Bibliography
      19. Enterprise JavaBeans
        1. Bibliography