Designing Enterprise Applications with the Java 2 Platform, Enterprise Edition

Designing Enterprise Applications with the Java 2 Platform, Enterprise Edition

Paperback(ENTERPRISE)

$34.75 $39.99 Save 13% Current price is $34.75, Original price is $39.99. You Save 13%.

Product Details

ISBN-13: 9780201702774
Publisher: Addison Wesley Professional
Publication date: 06/09/2000
Series: Addison-Wesley Java Series
Edition description: ENTERPRISE
Pages: 368
Product dimensions: 7.36(w) x 9.26(h) x 0.69(d)

Read an Excerpt

PREFACE:

This book describes a standard approach to designing multitier enterprise applications with the Java™ 2 Platform, Enterprise Edition. The book does not contain information on how to use individual J2EE™ technologies to develop applications, but rather focuses on guidelines for distributing application functionality across tiers and choosing among design options within each tier.

The book describes the principles and technologies employed in building J2EE applications and the specific approach adopted by a sample application. Striking a balance between specificity on the one hand, and articulating broader principles on the other, is never easy. The hope is that the principles presented are both consistent with and complement the sample application documented in the book.

This book is most relevant to IT managers, system architects, and enterprise application developers considering a transition to or intending to use the J2EE platform or vendors providing J2EE products.

How This Book Is Organized

This book contains the following chapters:

  • Chapter 1, "Introduction," discusses challenges in building enterprise applications and describes how the J2EE platform addresses those challenges. The chapter also discusses application scenarios that the J2EE platform supports.
  • Chapter 2, "J2EE Platform Technologies," provides an overview of the component, service, and communication technologies supported by the J2EE platform.
  • Chapter 3, "The Client Tier," presents implementation options for J2EE clients and provides guidelines for choosing among these options.
  • Chapter 4, "TheWeb Tier," describes technologies available for supporting development in the Web tier. It includes guidelines and techniques for using J2EE Web components and describes several Web application architectures.
  • Chapter 5, "The Enterprise JavaBeans Tier," describes the capabilities of the EJB tier of the J2EE platform and discusses design choices for implementing business logic.
  • Chapter 6, "The Enterprise Information System Tier," describes recommended approaches for accessing enterprise information systems and how J2EE components must be configured to access them.
  • Chapter 7, "Packaging and Deployment," describes the capabilities provided by the J2EE platform for packaging and deploying J2EE applications, provides heuristics and practical tips on how to use these capabilities, and provides recommendations to the vendors who provide deployment tools.
  • Chapter 8, "Transaction Management," describes the transaction services provided by the J2EE platform and provides recommendations on how to best use those services.
  • Chapter 9, "Security," describes the mapping of the J2EE security model to enterprise computing environments and infrastructures.
  • Chapter 10, "The Sample Application," illustrates the J2EE programming model in the context of an in-depth description of a multitier J2EE application.
  • "Glossary," is a list of words and phrases found in this book and their definitions.

Obtaining the Sample Application

You can download the sample application described in this book from:
...

Table of Contents

Foreword xiii
Preface xvii
Introduction
1(24)
Challenges of Enterprise Application Development
3(3)
Programming Productivity
3(1)
Response to Demand
4(1)
Integration with Existing Systems
5(1)
Freedom to Choose
5(1)
Maintaining Security
5(1)
The Platform for Enterprise Solutions
6(8)
J2EE Platform Overview
6(4)
J2EE Platform Benefits
10(4)
J2EE Application Scenarios
14(8)
Multitier Application Scenario
16(2)
Stand-Alone Client Scenario
18(1)
Web-Centric Application Scenario
19(1)
Business-to-Business Scenario
20(1)
A Note on the MVC Architecture
21(1)
Summary
22(3)
J2EE Platform Technologies
25(24)
Component Technologies
25(5)
Applets and Application Clients
26(1)
Web Components
26(2)
Enterprise JavaBeans Components
28(1)
Components, Containers, and Services
29(1)
Platform Roles
30(3)
J2EE Product Provider
31(1)
Application Component Provider
31(1)
Application Assembler
31(1)
Deployer
32(1)
System Administrator
32(1)
Tool Provider
32(1)
Platform Services
33(6)
Naming Services
33(1)
Deployment Services
33(2)
Transaction Services
35(2)
Security Services
37(2)
Service Technologies
39(2)
JDBC API
40(1)
Java Transaction API and Service
40(1)
Java Naming and Directory Interface
40(1)
Connector Architecture
41(1)
Communication Technologies
41(5)
Internet Protocols
42(1)
Remote Method Invocation Protocols
42(1)
Object Management Group Protocols
43(1)
Messaging Technologies
44(1)
Data Formats
45(1)
Summary
46(3)
The Client Tier
49(26)
Requirements and Constraints
50(3)
Operating Environment
50(2)
Deployment
52(1)
Implementation
52(1)
Overview of Client Options
53(1)
Web Clients
54(7)
Protocols
55(1)
Content Format
55(2)
Types of Web Clients
57(4)
EJB Clients
61(6)
Protocols and Facilities
61(2)
Strengths and Weaknesses
63(1)
Types of EJB Clients
64(3)
Enterprise Information System Clients
67(1)
Designing for Multiple Types of Client
68(4)
Model
68(1)
View
69(1)
Controller
69(3)
Summary
72(3)
The Web Tier
75(38)
Web Applications and Web Containers
75(1)
Dynamic Content Creation
76(4)
Common Gateway Interface
76(1)
Servlets
77(1)
JavaServer Pages Technology
78(2)
Servlets and JSP Pages
80(5)
Web Component Roles
80(4)
Servlets
84(1)
JSP Pages Versus Servlets
85(1)
JSP Page Design
85(3)
JavaBeans Components
86(1)
Custom Tags
86(2)
Using Scriptlets and Expressions
88(1)
Internationalization and Localization
88(8)
Internationalization
89(2)
Localization
91(5)
Application Designs
96(11)
Applications with Basic JSP Pages and Servlets
97(1)
Applications with Modular Components
98(5)
EJB-Centric Applications
103(4)
Application Migration
107(3)
Migrating a Web-Centric Application to Use Enterprise Beans
108(2)
Summary
110(3)
The Enterprise JavaBeans Tier
113(28)
Business Logic
113(4)
Common Requirements of Business Objects
115(2)
Enterprise Beans as J2EE Business Objects
117(4)
Enterprise Beans and EJB Containers
118(3)
Entity Beans
121(4)
Guidelines for Using Entity Beans
122(2)
Persistence in Entity Beans
124(1)
Session Beans
125(5)
Stateful Session Beans
126(2)
Stateless Session Beans
128(2)
Design Guidelines
130(7)
Data Access Objects
130(4)
Value Objects
134(1)
Session Beans as a Facade to Entity Beans
135(1)
Master-Detail Modeling Using Enterprise Beans
136(1)
Summary
137(4)
The Enterprise Information System Tier
141(24)
Enterprise Information System Capabilities and Limitations
142(1)
Enterprise Information System Integration Scenarios
143(3)
An Internet E-Store Application
143(1)
An Intranet Human Resources Application
144(1)
A Distributed Purchasing Application
145(1)
Relational Database Management System Access
146(1)
Other Enterprise Information System Access
146(1)
Application Component Provider Tasks
147(1)
Application Programming Model
148(1)
Programming Access to Data and Functions
149(4)
Client API for Enterprise Information System Access
149(1)
Tools for Application Development
150(1)
Access Objects
151(2)
Connections
153(4)
Establishing a Connection
154(1)
Guidelines for Connection Management
155(2)
Security
157(4)
Security Architecture
157(1)
Application Programming Model
158(1)
Resource Signon
158(3)
J2EE Connector Architecture
161(1)
Summary
162(3)
Packaging and Deployment
165(32)
Roles and Tasks
165(3)
Packaging J2EE Applications
168(6)
EJB Modules
169(1)
Packaging Components Into EJB Modules
170(2)
Web Modules
172(1)
Packaging Components Into Web Modules
173(1)
Application Client Modules
174(1)
Deployment Descriptors
174(13)
Specifying Deployment Descriptor Elements
176(11)
Deployment Tools
187(6)
Deployment Tool Actions
187(2)
Deployment Tool Requirements
189(4)
Summary
193(4)
Transaction Management
197(18)
Properties of Transactions
197(1)
J2EE Platform Transactions
198(1)
Scenarios
199(1)
Accessing Multiple Databases
199(1)
Accessing Multiple Enterprise Information Systems From Multiple EJB Servers
200(1)
JTA Transactions
200(2)
JTA and JTS
201(1)
Transactions in Applets and Application Clients
202(1)
Transactions in Web Components
202(1)
Transactions in Enterprise Beans
203(5)
Bean-Managed Transaction Demarcation
204(1)
Container-Managed Transaction Demarcation
204(3)
Transaction Guidelines
207(1)
Transactions in Enterprise Information Systems
208(5)
JTA Transactions
208(1)
Resource Manager Local Transactions
209(1)
Choosing Between JTA and Local Transactions
209(1)
Compensating Transactions
210(2)
Isolation Level
212(1)
Summary
213(2)
Security
215(26)
Security Threats and Mechanisms
215(1)
Authentication
216(9)
Protection Domains
217(3)
Authentication Mechanisms
220(3)
Authentication Call Patterns
223(2)
Auto-Registration
225(1)
Exposing Authentication Boundaries with References
225(1)
Authorization
225(9)
Declarative Authorization
226(1)
Programmatic Authorization
227(1)
Declarative Versus Programmatic Authorization
228(1)
Isolation
228(1)
Identity Selection
229(1)
Encapsulation for Access Control
229(1)
Controlling Access to J2EE Resources
230(2)
Example
232(2)
Protecting Messages
234(3)
Integrity Mechanisms
234(1)
Confidentiality Mechanisms
235(1)
Identifying Sensitive Components
236(1)
Ensuring Confidentiality of Web Resources
236(1)
Auditing
237(1)
Summary
238(3)
The Sample Application
241(72)
Application Functionality
241(7)
Scenarios
242(5)
Functional Specification
247(1)
Application Architecture
248(7)
Application Modules
248(3)
Application Design
251(4)
The View
255(18)
Shopping Interaction Interface
256(3)
JSP Pages
259(7)
Examples
266(7)
The Model
273(5)
State in the J2EE Platform
273(4)
Persistent Data
277(1)
Implementation
278(2)
The Controller
280(16)
Main
282(2)
Request Processor
284(1)
RequestToEventTranslator
285(2)
ShoppingClientontrollerWebImpl
287(1)
ShoppingClientController
288(1)
StateMachine
289(4)
ScreenFlowManager
293(1)
Model-View Synchronization
294(2)
MVC Summary
296(2)
Stateless Services
298(2)
Example: A Mailer Bean
298(2)
Deployment
300(1)
Transactions
300(1)
Security
301(11)
Requirements
301(2)
Implementation
303(9)
Summary
312(1)
Afterword 313(2)
Glossary 315(18)
Index 333

Preface

This book describes a standard approach to designing multitier enterprise applications with the Java™ 2 Platform, Enterprise Edition. The book does not contain information on how to use individual J2EE™ technologies to develop applications, but rather focuses on guidelines for distributing application functionality across tiers and choosing among design options within each tier.

The book describes the principles and technologies employed in building J2EE applications and the specific approach adopted by a sample application. Striking a balance between specificity on the one hand, and articulating broader principles on the other, is never easy. The hope is that the principles presented are both consistent with and complement the sample application documented in the book.

This book is most relevant to IT managers, system architects, and enterprise application developers considering a transition to or intending to use the J2EE platform or vendors providing J2EE products.

How This Book Is Organized

This book contains the following chapters:

  • Chapter 1, "Introduction," discusses challenges in building enterprise applications and describes how the J2EE platform addresses those challenges. The chapter also discusses application scenarios that the J2EE platform supports.
  • Chapter 2, "J2EE Platform Technologies," provides an overview of the component, service, and communication technologies supported by the J2EE platform.
  • Chapter 3, "The Client Tier," presents implementation options for J2EE clients and provides guidelines for choosing among these options.
  • Chapter 4, "The WebTier," describes technologies available for supporting development in the Web tier. It includes guidelines and techniques for using J2EE Web components and describes several Web application architectures.
  • Chapter 5, "The Enterprise JavaBeans Tier," describes the capabilities of the EJB tier of the J2EE platform and discusses design choices for implementing business logic.
  • Chapter 6, "The Enterprise Information System Tier," describes recommended approaches for accessing enterprise information systems and how J2EE components must be configured to access them.
  • Chapter 7, "Packaging and Deployment," describes the capabilities provided by the J2EE platform for packaging and deploying J2EE applications, provides heuristics and practical tips on how to use these capabilities, and provides recommendations to the vendors who provide deployment tools.
  • Chapter 8, "Transaction Management," describes the transaction services provided by the J2EE platform and provides recommendations on how to best use those services.
  • Chapter 9, "Security," describes the mapping of the J2EE security model to enterprise computing environments and infrastructures.
  • Chapter 10, "The Sample Application," illustrates the J2EE programming model in the context of an in-depth description of a multitier J2EE application.
  • "Glossary," is a list of words and phrases found in this book and their definitions.

Obtaining the Sample Application

You can download the sample application described in this book from:
http://java.sun.com/j2ee/download.html

The sample application requires a J2EE v1.2 compliant platform on which to run. From the sample application download page you can also download Sun's J2EE SDK, a freely available implementation of the J2EE v1.2 platform.

Related Information

Pointers to J2EE documentation can be found at:
http://java.sun.com/j2ee/docs.html

For information on how to use the J2EE SDK to construct multitier enterprise applications refer to the J2EE Developer's Guide, available at:
http://java.sun.com/j2ee/j2sdkee/techdocs/index.html

The J2EE technologies cited in this book are described in their specifications:

  • Java™ 2 Platform, Enterprise Edition Specification, Version 1.2. Copyright 1999, Sun Microsystems, Inc. Available at http://java.sun.com/j2ee/download.html.
  • Java™ 2 Platform, Standard Edition, Version 1.2.2 API Specification. Copyright 1993-99, Sun Microsystems, Inc. Available at http://java.sun.com/products/jdk/1.2/docs/api/index.html.
  • Java™ Servlet Specification, Version 2.2 (Servlet specification). Copyright 1998, 1999, Sun Microsystems, Inc. Available at http://java.sun.com/products/servlet.
  • JavaServer Pages™ Specification, Version 1.1 (JSP specification). Copyright 1998, 1999, Sun Microsystems, Inc. Available at http://java.sun.com/products/jsp.
  • Enterprise JavaBeans™ Specification, Version 1.1 (EJB specification). Copyright 1998, 1999, Sun Microsystems, Inc. Available at http://java.sun.com/products/ejb.
  • JDBC™ 2.0 API (JDBC specification). Copyright 1998, 1999, Sun Microsystems, Inc. Available at http://java.sun.com/products/jdbc.
  • JDBC™ 2.0 Standard Extension API (JDBC extension specification). Copyright 1998, 1999, Sun Microsystems, Inc. Available at http://java.sun.com/products/jdbc.
  • Java™ Transaction API, Version 1.0.1 (JTA specification). Copyright 1998, 1999, Sun Microsystems, Inc. Available at http://java.sun.com/products/jta.
  • Java™ Transaction Service, Version 0.95 (JTS specification). Copyright 1997-1999, Sun Microsystems, Inc. Available at http://java.sun.com/products/jts.
  • Java Naming and Directory Interface™, Version 1.2 (JNDI specification). Copyright 1998, 1999, Sun Microsystems, Inc. Available at http://java.sun.com/products/jndi.
  • Java IDL. Copyright 1993-99, Sun Microsystems, Inc. Available at http://java.sun.com/products/jdk/1.2/docs/guide/idl/index.html.
  • RMI over IIOP 1.0.1. Available at http://java.sun.com/products/rmi-iiop.
  • Java™ Message Service, Version 1.0.2 (JMS specification). Copyright 1998, Sun Microsystems, Inc. Available at http://java.sun.com/products/jms.
  • JavaMail™ API Design Specification, Version 1.1 (JavaMail specification). Copyright 1998, Sun Microsystems, Inc. Available at http://java.sun.com/products/javamail.
  • JavaBeans™ Activation Framework Specification, Version 1.0.1 (JAF specification). Copyright 1998, Sun Microsystems, Inc. Available at http://java.sun.com/beans/glasgow/jaf.html.

Acknowledgments

This book is the result of many people's efforts.

Each Enterprise Team member had primary responsibility for one chapter and made significant contributions to other chapters. In addition, Danny Coward wrote the initial draft of the deployment chapter.

The authors of the J2EE specifications and the developers of the reference implementation provided useful input at various points during the development of the J2EE programming model.

We are indebted to Rick Cattell, Bill Shannon, Mark Hapner, John Crupi, Sean Brydon, and many other reviewers who provided feedback on early versions of the manuscript.

Jim Inscore and Stephanie Bodoff provided editorial oversight of this project.



Customer Reviews

Most Helpful Customer Reviews

See All Customer Reviews