| |
| |
Foreword | |
| |
| |
Preface | |
| |
| |
| |
Introduction | |
| |
| |
| |
Challenges of Enterprise Application Development | |
| |
| |
| |
Programming Productivity | |
| |
| |
| |
Response to Demand | |
| |
| |
| |
Integration with Existing Systems | |
| |
| |
| |
Freedom to Choose | |
| |
| |
| |
Maintaining Security | |
| |
| |
| |
The Platform for Enterprise Solutions | |
| |
| |
| |
J2EE Platform Overview | |
| |
| |
| |
J2EE Platform Benefits | |
| |
| |
| |
J2EE Application Scenarios | |
| |
| |
| |
Multitier Application Scenario | |
| |
| |
| |
Stand-Alone Client Scenario | |
| |
| |
| |
Web-Centric Application Scenario | |
| |
| |
| |
Business-to-Business Scenario | |
| |
| |
| |
A Note on the MVC Architecture | |
| |
| |
| |
Summary | |
| |
| |
| |
J2EE Platform Technologies | |
| |
| |
| |
Component Technologies | |
| |
| |
| |
Applets and Application Clients | |
| |
| |
| |
Web Components | |
| |
| |
| |
Enterprise JavaBeans Components | |
| |
| |
| |
Components, Containers, and Services | |
| |
| |
| |
Platform Roles | |
| |
| |
| |
J2EE Product Provider | |
| |
| |
| |
Application Component Provider | |
| |
| |
| |
Application Assembler | |
| |
| |
| |
Deployer | |
| |
| |
| |
System Administrator | |
| |
| |
| |
Tool Provider | |
| |
| |
| |
Platform Services | |
| |
| |
| |
Naming Services | |
| |
| |
| |
Deployment Services | |
| |
| |
| |
Transaction Services | |
| |
| |
| |
Security Services | |
| |
| |
| |
Service Technologies | |
| |
| |
| |
JDBC API | |
| |
| |
| |
Java Transaction API and Service | |
| |
| |
| |
Java Naming and Directory Interface | |
| |
| |
| |
Connector Architecture | |
| |
| |
| |
Communication Technologies | |
| |
| |
| |
Internet Protocols | |
| |
| |
| |
Remote Method Invocation Protocols | |
| |
| |
| |
Object Management Group Protocols | |
| |
| |
| |
Messaging Technologies | |
| |
| |
| |
Data Formats | |
| |
| |
| |
Summary | |
| |
| |
| |
The Client Tier | |
| |
| |
| |
Requirements and Constraints | |
| |
| |
| |
Operating Environment | |
| |
| |
| |
Deployment | |
| |
| |
| |
Implementation | |
| |
| |
| |
Overview of Client Options | |
| |
| |
| |
Web Clients | |
| |
| |
| |
Protocols | |
| |
| |
| |
Content Format | |
| |
| |
| |
Types of Web Clients | |
| |
| |
| |
EJB Clients | |
| |
| |
| |
Protocols and Facilities | |
| |
| |
| |
Strengths and Weaknesses | |
| |
| |
| |
Types of EJB Clients | |
| |
| |
| |
Enterprise Information System Clients | |
| |
| |
| |
Designing for Multiple Types of Client | |
| |
| |
| |
Model | |
| |
| |
| |
View | |
| |
| |
| |
Controller | |
| |
| |
| |
Summary | |
| |
| |
| |
The Web Tier | |
| |
| |
| |
Web Applications and Web Containers | |
| |
| |
| |
Dynamic Content Creation | |
| |
| |
| |
Common Gateway Interface | |
| |
| |
| |
Servlets | |
| |
| |
| |
JavaServer Pages Technology | |
| |
| |
| |
Servlets and JSP Pages | |
| |
| |
| |
Web Component Roles | |
| |
| |
| |
Servlets | |
| |
| |
| |
JSP Pages Versus Servlets | |
| |
| |
| |
JSP Page Design | |
| |
| |
| |
JavaBeans Components | |
| |
| |
| |
Custom Tages | |
| |
| |
| |
Using Scriptlets and Expressions | |
| |
| |
| |
Internationalization and Localization | |
| |
| |
| |
Internationalization | |
| |
| |
| |
Localization | |
| |
| |
| |
Application Designs | |
| |
| |
| |
Applications with Basic JSP Pages and Servlets | |
| |
| |
| |
Applications with Modular Components | |
| |
| |
| |
EJB-Centric Applications | |
| |
| |
| |
Application Migration | |
| |
| |
| |
Migrating a Web-Centric Application to Use Enterprise Beans | |
| |
| |
| |
Summary | |
| |
| |
| |
The Enterprise JavaBeans Tier | |
| |
| |
| |
Business Logic | |
| |
| |
| |
Common Requirements of Business Objects | |
| |
| |
| |
Enterprise Beans as J2EE Business Objects | |
| |
| |
| |
Enterprise Beans and EJB Containers | |
| |
| |
| |
Entity Beans | |
| |
| |
| |
Guidelines for Using Entity Beans | |
| |
| |
| |
Persistence in Entity Beans | |
| |
| |
| |
Session Beans | |
| |
| |
| |
Stateful Session Beans | |
| |
| |
| |
Stateless Session Beans | |
| |
| |
| |
Design Guidelines | |
| |
| |
| |
Data Access Objects | |
| |
| |
| |
Value Objects | |
| |
| |
| |
Session Beans as a Facade to Entity Beans | |
| |
| |
| |
Master-Detail Modeling Using Enterprise Beans | |
| |
| |
| |
Summary | |
| |
| |
| |
The Enterprise Information System Tier | |
| |
| |
| |
Enterprise Information System Capabilities and Limitations | |
| |
| |
| |
Enterprise Information System Integration Scenarios | |
| |
| |
| |
An Internet E-Store Application | |
| |
| |
| |
An Intranet Human Resources Application | |
| |
| |
| |
A Distributed Purchasing Application | |
| |
| |
| |
Relational Database Management System Access | |
| |
| |
| |
Other Enterprise Information System Access | |
| |
| |
| |
Application Component Provider Tasks | |
| |
| |
| |
Application Programming Model | |
| |
| |
| |
Programming Access to Data and Functions | |
| |
| |
| |
Client API for Enterprise Information System Access | |
| |
| |
| |
Tools for Application Development | |
| |
| |
| |
Access Objects | |
| |
| |
| |
Connections | |
| |
| |
| |
Establishing a Connection | |
| |
| |
| |
Guidelines for Connection Management | |
| |
| |
| |
Security | |
| |
| |
| |
Security Architecture | |
| |
| |
| |
Application Programming Model | |
| |
| |
| |
Resource Signon | |
| |
| |
| |
J2EE Connector Architecture | |
| |
| |
| |
Summary | |
| |
| |
| |
Packaging and Deployment | |
| |
| |
| |
Roles and Tasks | |
| |
| |
| |
Packaging J2EE Applications | |
| |
| |
| |
EJB Modules | |
| |
| |
| |
Packaging Components Into EJB Modules | |
| |
| |
| |
Web Modules | |
| |
| |
| |
Packaging Components Into Web Modules | |
| |
| |
| |
Application Client Modules | |
| |
| |
| |
Deployment Descriptors | |
| |
| |
| |
Specifying Deployment Descriptor Elements | |
| |
| |
| |
Deployment Tools | |
| |
| |
| |
Deployment Tool Actions | |
| |
| |
| |
Deployment Tool Requirements | |
| |
| |
| |
Summary | |
| |
| |
| |
Transaction Management | |
| |
| |
| |
Properties of Transactions | |
| |
| |
| |
J2EE Platform Transactions | |
| |
| |
| |
Scenarios | |
| |
| |
| |
Accessing Multiple Databases | |
| |
| |
| |
Accessing Multiple Enterprise Information Systems From Multiple EJB Servers | |
| |
| |
| |
JTA Transactions | |
| |
| |
| |
JTA and JTS | |
| |
| |
| |
Transactions in Applets and Application Clients | |
| |
| |
| |
Transactions in Web Components | |
| |
| |
| |
Transactions in Enterprise Beans | |
| |
| |
| |
Bean-Managed Transaction Demarcation | |
| |
| |
| |
Container-Managed Transaction Demarcation | |
| |
| |
| |
Transaction Guidelines | |
| |
| |
| |
Transactions in Enterprise Information Systems | |
| |
| |
| |
JTA Transactions | |
| |
| |
| |
Resource Manager Local Transactions | |
| |
| |
| |
Choosing Between JTA and Local Transactions | |
| |
| |
| |
Compensating Transactions | |
| |
| |
| |
Isolation Level | |
| |
| |
| |
Summary | |
| |
| |
| |
Security | |
| |
| |
| |
Security Threats and Mechanisms | |
| |
| |
| |
Authentication | |
| |
| |
| |
Protection Domains | |
| |
| |
| |
Authentication Mechanisms | |
| |
| |
| |
Authentication Call Patterns | |
| |
| |
| |
Auto-Registration | |
| |
| |
| |
Exposing Authentication Boundaries with References | |
| |
| |
| |
Authorization | |
| |
| |
| |
Declarative Authorization | |
| |
| |
| |
Programmatic Authorization | |
| |
| |
| |
Declarative Versus Programmatic Authorization | |
| |
| |
| |
Isolation | |
| |
| |
| |
Identity Selection | |
| |
| |
| |
Encapsulation for Access Control | |
| |
| |
| |
Controlling Access to J2EE Resources | |
| |
| |
| |
Example | |
| |
| |
| |
Protecting Messages | |
| |
| |
| |
Integrity Mechanisms | |
| |
| |
| |
Confidentiality Mechanisms | |
| |
| |
| |
Identifying Sensitive Components | |
| |
| |
| |
Ensuring Confidentiality of Web Resources | |
| |
| |
| |
Auditing | |
| |
| |
| |
Summary | |
| |
| |
| |
The Sample Application | |
| |
| |
| |
Application Functionality | |
| |
| |
| |
Scenarios | |
| |
| |
| |
Functional Specification | |
| |
| |
| |
Application Architecture | |
| |
| |
| |
Application Modules | |
| |
| |
| |
Application Design | |
| |
| |
| |
The View | |
| |
| |
| |
Shopping Interaction Interface | |
| |
| |
| |
JSP Pages | |
| |
| |
| |
Examples | |
| |
| |
| |
The Model | |
| |
| |
| |
State in the J2EE Platform | |
| |
| |
| |
Persistent Data | |
| |
| |
| |
Implementation | |
| |
| |
| |
The Controller | |
| |
| |
| |
Main | |
| |
| |
| |
RequestProcessor | |
| |
| |
| |
RequestToEventTranslator | |
| |
| |
| |
ShoppingClientControllerWebImpl | |
| |
| |
| |
ShoppingClientController | |
| |
| |
| |
StateMachine | |
| |
| |
| |
ScreenFlowManager | |
| |
| |
| |
Model-View Synchronization | |
| |
| |
| |
MVC Summary | |
| |
| |
| |
Stateless Services | |
| |
| |
| |
Example: A Mailer Bean | |
| |
| |
| |
Deployment | |
| |
| |
| |
Transactions | |
| |
| |
| |
Security | |
| |
| |
| |
Requirements | |
| |
| |
| |
Implementation | |
| |
| |
| |
Summary | |
| |
| |
Afterword | |
| |
| |
Glossary | |
| |
| |
Index | |