Home > Store

Developing Enterprise Java Applications with J2EE and UML

Register your product to gain access to bonus material or receive a coupon.

Developing Enterprise Java Applications with J2EE and UML

Book

  • Sorry, this book is no longer in print.
Not for Sale

Description

  • Copyright 2002
  • Dimensions: 7-3/8" x 9-1/4"
  • Pages: 368
  • Edition: 1st
  • Book
  • ISBN-10: 0-201-73829-5
  • ISBN-13: 978-0-201-73829-2

The Java 2 Platform Enterprise Edition (J2EE TM) offers great promise for dramatically improving the way that enterprise applications are built, and organizations that have adopted the J2EE are gaining a competitive advantage. The industry-standard Unified Modeling Language (UML) has helped countless organizations achieve software success through visual modeling. Together, the UML and J2EE form a powerful set of tools, but the intricacies involved with using them in tandem are considerable.

While UML is highly effective for specifying, designing, constructing, visualizing, and documenting software systems, J2EE offers enterprise developers a simplified, component-based approach to application development. However, when using the two technologies together, developers must first consider--and attempt to reconcile--the different characteristics of each.

Developing Enterprise Java Applications with J2EE TM and UML examines the best ways to jointly leverage these technologies. Exploring concrete methods for completing a successful development project, the authors cover the use of UML and J2EE in detail. Using practical examples and a case study, they illustrate the pros and cons of specific design approaches, show how personal experience can affect design decisions, and demonstrate proven approaches for building better, software faster.

With this book as a guide, developers will be able to overcome the challenges in using UML and J2EE together, and be on their way to building robust, scalable, and complex applications.



0201738295B09042001

Downloads

Source Code

Click below for Source Code related to this title:
homedirect.zip

Sample Content

Online Sample Chapter

Introduction to Enterprise Software

Downloadable Sample Chapter

Click below for Sample Chapter related to this title:
ahmedch01.pdf

Table of Contents



Foreword.


Preface.


Approach.


Intended Audience.


How to Use This Book.


Chapter Summaries.


Conventions.


Acknowledgements.


1. Introduction to Enterprise Software.

What is Enterprise Software?

Challenges in Developing Enterprise Software

Evolution of Enterprise Software

Enterprise Software and Component Based Software.

Summary.



2. Introduction to J2EE.

What is the Java 2 Platform, Enterprise Edition?

A Brief History of J2EE.

Why J2EE?

Brief Overview of J2EE.

Technologies.

API.

Other J2EE Technologies and API.

Summary.



3. Introduction to the UML.

What is the Unified Modeling Language (UML)?

Overview.

Why use the J2EE and the UML Together?

Challenges in Modeling J2EE in the UML.

Extension Mechanisms in the UML.

Stereotype.

Tagged Value.

Constraint.

The Approach to J2EE UML Modeling.

Summary.



4. UML and Java.

Introduction.

Representing Structure.

Class.

Variable.

Method.

Object.

Interface.

Package.

Representing Relationships.

Inheritance.

Realization.

Dependency.

Association.

Aggregation.

Composition.

Reflexive Relationships.

Summary.



5. Overview of Activities.

Introduction.

What is a Software Development Process?

Brief Overview of Popular Approaches to Software Development.

The Just-Develop-It Approach.

The Waterfall Process.

The Iterative Process.

The Rational Unified Process.

The ICONIX Process.

OPEN Process.

Extreme Programming/Feature-Driven Development.

Approach Used in This Book.

Overview of Major activities.

Chapter 6: Architecture.

Chapter 7: Analyzing the Customer Needs.

Chapter 8: Creating the Design.

Chapters 10-15 Detailed Design.

Chapters 16 Case Study.

Summary.



6. Architecture.

What is Software Architecture?

Why Architecture?

Key Concepts in Enterprise Application Architecture.

Decomposition.

Components.

Frameworks.

Patterns.

Layering.

Tiers.

Approaches to Software Architecture.

The J2EE View of Architecture.

The 4+1view Model of Architecture.

Hofmeister et al Four Views of Architecture.

Putting it All Together.

Summary.



7. Analyzing the Customer Needs.

Introduction.

Why software Analysis and Design?

Problem Analysis.

Use Case Modeling.

Actor.

Use Case.

Finding the Actors.

Finding the Use Cases.

Use Case Diagrams.

Use Case Relationships.

Include.

Extend.

Sequence Diagrams.

Activity Diagrams.

Summary.



8. Creating the Design.

Use Case Analysis.

Use Case Realizations.

Refined Use Case Description.

Sequence Diagrams.

Boundary Objects.

Entity Objects.

Control Objects.

Collaboration Diagrams.

Class Diagrams.

Coalescing the Analysis Classes.

Packaging.

Summary.



9. Overview of J2EE Technologies.

Overview.

The Big Picture.

Servlets.

JavaServer Pages.

Enterprise JavaBeans.

Session Beans.

Entity Beans.

Message-Driven Beans.

Assembly and Deployment.

Case Study.

Summary.



10. Servlets.

Overview.

Introduction to Servlets.

Common Usage.

Best Served Small.

J2EE Versions.

Servlet Lifecycle.

Lifecycle Methods.

Convenience Method.

Required Methods and Tagged Values.

Request Handling.

Response Generation.

HTTP Request Handlers.

Advanced Handler Methods.

Quick Guide to HTTP Requests.

The RequestDispatcher Interface.

Modeling Servlets in UML.

Modeling Other Servlet Aspects.

Servlet forward.

Servlet include.

ServletContext.

Servlet Session Management.

Servlet Deployment and Web Archives.

Identifying Servlets in Enterprise Applications.

Summary.



11. JavaServer Page.

Overview.

Introduction to JavaServer Pages.

Typical uses of JSP.

Model 1 and Model 2 architectures.

JSP versus Servlet.

Anatomy of a JSP.

Template data.

JSP Elements.

Objects Accessible to a JSP Implicitly.

Tag Libraries.

JSP and the UML.

Modeling Client Side Relationships.

Modeling Server Side Relationships.

JSP in Enterprise Applications.

Summary.



12. Session Beans.

Overview.

Introduction to Enterprise JavaBeans.

Enterprise JavaBean Views and the UML.

Basic Structure.

Representing an Enterprise JavaBean in UML.

Client View.

Internal View.

Session Beans.

Popular Beans

J2EE Versions.

Session Beans Types and Conversational State.

Modeling Session Bean Conversational State.

Instance Passivation.

Cleanup and Removal.

Transactions.

Transaction Demarcation.

Bean-Managed Transactions.

Container-Managed Transactions.

The SessionSynchronization Interface.

Limitations for stateless Session Beans.

Transaction Attributes.

Modeling Transactions.

Session Bean Technology.

Home Interface.

Remote Interface.

Implementation Class.

Modeling Interface Behavior.

Session Bean Lifecycle.

Session Bean Common Scenarios.

Modeling Session Bean Relationships.

Session beans and plain Java classes.

Session beans and JavaBeans.

Session beans and servlets.

Session bean and JSP.

Session-session relationships.

Session bean inheritance.

Identifying Session Beans in Enterprise Applications.

Summary.



13. Entity Beans.

Overview.

Introduction to Entity Beans.

Coarse-Grained Business Objects.

Increasing Popularity.

J2EE Versions.

Entity Bean Views and the UML.

Basic Structure.

Client View.

Internal View.

Persistence.

Transactions and Concurrency.

Abstract Persistence.

Abstract Persistence Schema.

EJB Query Language (EJB QL).

Persistence Manager.

Container-Managed Relationships.

Multiplicity.

Directionality.

Duplicating these Relationships in J2EE 1.2.

Local Relationships.

Entity Bean Technology.

Home Interface.

Remote Interface.

Primary Key Class.

Implementation Class.

Persistent Fields.

Entity Bean Lifecycle.

Entity Bean Common Scenarios.

Modeling Entity Bean Relationships.

Entity Bean and other Java classes.

Entity Bean and JavaBeans.

Entity Bean, Servlets and JSPs.

Entity Bean and Session Beans.

Entity Bean to Entity Bean relationships.

Identifying Entity Beans in Enterprise Applications.

Layering.

Summary.



14. Message-Driven Beans.

Overview.

Introduction to Message Beans.

The Java Message Service.

Role of JMS and Message Beans in EJB.

Why use Messaging and Message Beans.

When to use Message Beans.

J2EE Version.

Message Bean Views and the UML.

Basic Structure.

Client View.

UML Benefits for Message Beans.

Modeling Messages.

Modeling Destinations.

Message Bean Technology.

Transactions.

Implementation Class.

Message Bean Lifecycle.

Message Bean Common Scenario.

Modeling Message Bean Relationships.

Modeling relationships with other classes.

Message Bean and other J2EE technologies.

Identifying Message Beans in Enterprise Applications.

Summary.



15. Assembly and Deployment.

Introduction.

Component Modeling.

Component modeling of J2EE technologies.

Representing Web Components.

Representing Enterprise JavaBeans.

Component modeling of enterprise applications.

Deployment Modeling.

Traceability revisited.

Assembly and deployment of Enterprise Java Applications.

Deployment Descriptors

Summary.



16. Case Study.

Introduction.

Case Study Background.

Problem Statement.

Rationale and Assumptions.

HomeDirect Requirements.

Inquiry Services.

Bill Payment Services.

Transaction Services.

Administrative Services.

Inception Phase.

Initial Iteration.

Elaboration Phase.

Elaboration Iteration#1.

Elaboration Iteration#2.

Elaboration Iteration#3.

Remaining Phases.

Summary.



Appendixes.


Index. 0201738295T07122001

Preface

Developing complex software requires more than just churning out lines of code. As a software architect or developer involved in an industrial project, you must understand and be able to leverage critical software subdisciplines such as architecture, analysis and design techniques, development processes, visual modeling, and the underlying technology to be successful.

This book brings all these diverse elements together from the Java 2 Platform, Enterprise Edition (J2EE) development perspective to provide a holistic approach for the reader. Specifically, this book tries to answer the following key questions:

  • What is the Unified Modeling Language (UML), and how is it relevant to J2EE development?
  • How do Java and UML relate to each other?
  • What are the key concepts in software architecture?
  • How does a software development process fit into the J2EE software development equation?
  • How can analysis and design help you to arrive at a better J2EE application design?
  • What are the key J2EE technologies, and how do they fit together?
  • How can you leverage the UML for J2EE development?

Rather than reinvent the wheel, the approach taken in this book is that of bringing together known works, such as Jim Conallen's Web Modeling Profile and the Sun Java Specification Request-26 for UML/EJB Mapping Specification.

To provide a practical illustration of the topics discussed, this book guides you through a sample J2EE application development project using the Rational Unified Process (RUP) and the UML. A working implementation is provided. Suggestions for further enhancements are also listed to assist you in continuing your exploration of the UML and J2EE technologies.

Intended Audience

This book is suitable for anyone interested in learning about the UML and how it can be applied to J2EE development. Current J2EE application developers will learn how to apply the UML to J2EE application development. UML practitioners will benefit from learning about the J2EE in the context of the UML. And software professionals interested in learning both the UML and J2EE will be able to get to a productive state faster facilitated by the intertwined contextual discussion.

After reading the book, you will

  • Be able to effectively utilize the UML for developing J2EE applications

  • Learn about the key J2EE technologies (EJB, JSP, and servlets) at a technical level

  • Know when to use Model 1 versus Model 2 architecture, and identify situations where patterns such as value object and session bean chaining may be appropriate

  • Understand software architecture concepts such as decomposition, layering, components, frameworks, patterns, and tiers

  • Be able to apply techniques such as use case analysis, analysis object discovery, and analysis to design transformation to your J2EE project

  • Understand the notion of software development processes and the fundamentals of some of the currently popular processes

  • Learn how to start using the RUP for your J2EE project

This book only covers the Java language to the extent of providing a mapping of key Java concepts to the UML. Consequently, some familiarity with Java is assumed (knowing C++ or a similar language should be sufficient to get the basics from the examples). Prior knowledge of, or experience with, the UML, J2EE, or enterprise application development is not a prerequisite, but is certainly helpful.

How to Use This Book

If you are new to the UML and J2EE, you will get the most out of this book by reading it completely in a sequential manner.

Those who are comfortable with the UML and are primarily interested in learning about J2EE (or how to apply the UML to J2EE) can jump directly to Chapters 9-16.

On the other hand, if you know J2EE and mostly want to learn about UML, you should concentrate on Chapters 1-8, and then skim through the remaining portions of the book.

You will get the best results if you get your hands on a good modeling tool and try to apply visual modeling to a problem of your own!

Chapter Summaries

Chapter 1: Introduction to Enterprise Software provides a high-level overview of enterprise software development and related technologies.

Chapter 2: Introduction to the J2EE covers the basics of the Java 2 Platform, Enterprise Edition. It provides an overview of the basic technologies and the APIs, which form the J2EE.

Chapter 3: Introduction to the UML provides an overview of the UML and a quick introduction to the UML basics.

Chapter 4: UML and Java provides an overview of the Java language's mapping to the UML and covers some of the basic UML constructs.

Chapter 5: Overview of Activities introduces the notion of software development processes and outlines the approach taken in the book.

Chapter 6: Architecture, which is an important aspect of good software, introduces the notion of software architecture and provides an overview of some of the concepts in software architecture.

Chapter 7: Analyzing Customer Needs shows you how to apply UML use cases to better understand customer requirements. No matter how cool the software, if it does not meet the customer's requirements, it is a failure!

Chapter 8: Creating the Design focuses on analyzing the requirements further and creating the initial design for the case study. This chapter discusses how to translate the requirements you have gathered into software.

Chapter 9: Overview of J2EE Technologies lays the groundwork for the J2EE technologies we discuss in the remaining chapters.

Chapter 10: Servlets provides an overview of the Java servlet technology, discusses how they are modeled in the UML, and then shows a representative application of UML and servlets to the case study. Java servlets are ideal for the request-response oriented Web paradigm.

Chapter 11: JavaServer Pages teaches you about JSPs, when to use them, and how to use them in the sample project. JavaServer Pages (JSP) combine the power of servlets with the flexibility of HTML pages.

Chapter 12: Session Beans discusses how session beans are used in the middle tier and how to best model and utilize them. Session beans are one of the three types of enterprise beans provided in the J2EE. The chapter concludes with the usage of session beans in the context of the case study.

Chapter 13: Entity Beans focuses on the entity bean concept, its advantages and issues, and how to effectively model it in the UML. Entity beans provide a convenient way to objectify the stored data.

Chapter 14: Message-Driven Beans covers the technology and how to model them in the UML. Message-driven beans are a new addition to the J2EE Enterprise JavaBean specification.

Chapter 15: Assembly and Deployment discusses how UML can help assembly and deployment of a distributed application.

Chapter 16: Case Study discusses the details of the example used in this book including general requirements, restrictions, and such.

References for further reading include books, articles, and online sources.

A Glossary containing specialized terms and their meanings is provided for quick reference. An Index is provided for quick lookup and reference.

Conventions

We use several notational conventions throughout this book. A short list is provided for your reference:

  • Italicized words are used to highlight key concepts or terminology.
  • References to terms such as javax.servlet.http.HttpServletResponse are used to identify the exact J2SE or J2EE classes for further details. For example, in the preceding term the user is being referred to the HttpServletResponse class, which is found in the http package located in the servlet package of the javax package.
  • Boldface text is used to identify keywords and reserved words in the context of Java/J2EE, for example, ejbCreate.
  • Code samples are shown in a slightly different format to distinguish them from plain text, for example, public void acceptOrder() {


0201738295P10052001

Index

A

abstract classes, 40
abstract methods, 42
abstract persistence, 222-225
Abstract Persistence Schema, 222-224, 225
ACID principles, 189-190
action elements, 161-162
ActiveX, 8
activity diagrams, 29, 103-105
servlet forward on, 145-146
servlet session management in, 148, 149
actors
generalizations and, 100-101
identifying, 95-96, 287, 288
and system interactions, 102
in use case diagrams, 98-99
in use case modeling, 95
afterBegin method, 192
afterCompletion method, 192
aggregation, 51-53, 55
vs. composition, 53
analysis and design, 63-64
analysis classes, 109
coalescing, 121, 122
analysis operations, 118-119
analysis patterns, 80-81
applets
containers, 17
modeling client-side relationships with, 168
application assembler, 275
application containers, 17
application deployer, 275
Application deployment descriptor, 276
application layer, 245
application objects, 163
Application Programming Interfaces (APIs), 12
container access to, 17
Java Message Service (JMS), 22, 251-252
Java Naming and Directory Interface (JNDI), 21-22
Java Transaction, 22
Java Database Connectivity (JDBC), 21
J2EE, 16
Remote Method Invocation (RMI), 22
servlet session management and, 148
ApplicationServer stereotype, 273
architectural patterns, 80-81
architecture, 71-90
approaches to, 87-89
code view of, 89
components, 77-78
conceptual view of, 88-89
decomposition, 76
defining, 89-90
definition of software, 73-74
evolution of enterprise software, 6-7
execution view of, 89
4+1 View Model of, 88
frameworks, 78-80
key concepts in, 76-87
layering, 84-85
Model 1 and Model 2, 159, 170-173
Model-View-Controller, 19-20
module view of, 89
patterns, 80-84
reasons to use, 74-75
tiers, 86-87
archive Files, 268
archive files
enterprise, 268
multiple EJBs in, 270-271
Web, 149-150, 268
assembly, 275-278
association relationships, 47-51. See also relationships
bidirectional, 47, 48, 50, 51
with primitive types, 48
reflexive, 54, 55
session-to-session relationships as, 206-207
unidirectional, 47-48, 49
vs. aggregation, 52-53
atomic principle, 189
attribute compartment, 39-40
attributes
classes and, 41, 42, 119
entity bean, 221
mapping, 32
tags with, 164-165
transaction, 193-194

B

Banner.jsp, 171-172
bean class, 179
bean-managed persistence, 221
Beck, Kent, 66
beforeCompletion method, 192
begin method, 190, 191
behavioral patterns, 81
best practices, software, 62-63
bidirectional association, 47, 48, 50, 51, 227
black box use case description, 110-111
Booch, Grady, 62-63, 94
boundary objects, 113
build relationship, 167
business layer, 245
business logic, 6-7
Business methods, 196
entity bean, 232
business modeling, 63
Business Modeling profile, 35
business object model, 63
coarse-grained objects and, 215-216
business-to-business (B2B) software, 3
business-to-consumer (B2C) software, 3
business transactions, 189-194
business use case model, 63

C

capsules, 88-89
case study, 279-306
change, isolating impact of, 7
class diagrams, 28, 110, 118-121
servlet forward on, 145-146
Subject-Observer pattern, 82-83
classes
abstract, 40
analysis, 109
association relationships, 47-51
with attributes, 41
with attributes and operations, 42
attributes of, 119
dependency relationships, 46-47, 48
entity beans and Java, 237
identifying relationships between, 120
implementation, 179, 196-197
modeling server-side relationships and, 169
packaging, 121-123
primary key, 179, 230-231
realization relationships, 45-46
reflexive relationships, 55
representing, 39-40
session beans and plain Java, 201-204
stereotypes with, 40
tag handler, 164-165
class files, 268
classifiers, 180
ClientPage, 167
client-server approach, 6
client-side relationships, 168
client view
entity bean, 217, 218-219
message-driven bean, 254, 255
session bean, 181-182
Code View, 89
coding patterns, 80
collaboration
parameterized, 82
pattern representation as, 82
collaboration diagrams, 29, 101, 117-118
identifying class relationships with, 120
collections, 50
commit method, 190, 191
Common Gateway Interface (CGI) scripts, 13
Common Object Request Broker Architecture (CORBA), 23
communication, direction of, 120
complexity, 267
component-based software, 8, 62
component diagrams, 29
component models, 8, 77, 267-268
in J2EE, 15-16
J2EE technologies and, 268-271
components, 77-78
coarse-grained vs.fine-grained, 77-78, 97
UML and EJB, 180
composition, 53
of software, 73
Conceptual View, 88-89
concurrency, 221
config objects, 163
configuration and change management discipline, 64
consistent principle, 189-190
constraints
on applications, 73-74, 75
UML, 34-35
construction phase, 65
container-managed entity beans, 225-227
container-managed persistence, 221
containers
API access via, 17
applet, 17
application, 17
definition of, 16
EJB, 178
enterprise, 17
entity bean, 225-227, 235
persistence and, 221
role of in J2EE, 16-17
servlet, 18
transaction management with, 191
Web, 17
control classes, 121
Controller, 19-20
control objects
in sequence diagrams, 114-117
servlet identification and, 150-152
convenience method, 136
conversational state, 184-186
cookies, 148
create METHOD, 194-195
entity bean, 228
creational design patterns, 81
customer need analysis, 91-105
activity diagrams in, 103-105
actor identification in, 95-96
problem analysis, 94
reasons for, 93
sequence diagrams in, 101-103
use case diagrams in, 98-99
use case modeling and, 95-96
use case relationships in, 99-101
use cases, finding, 96-98
customer support, 4
cyclic links, aggregation and, 52

D

data access objects, 221, 237
databases, 21
DatabaseServer stereotype, 273
Data Modeling profile, 35
data stores, 19
DCOM, 8
declarations, 162
decomposition, 75, 76
decoupling, 252
DELETE, 142
dependency relationships, 46-47, 48. See also relationships
message-driven bean, 255
modeling server-side relationships and, 169
between packages, 123
session-to-session relationships as, 206-207
dependent data objects, 238
deployment
enterprise Java application, 275-278
modeling, 271-274
servlet, 149-150
deployment descriptors, 178, 179, 276-278
entity beans and, 217
deployment diagrams, 29
deployment discipline, 64
Deployment View, 88
design creation, 107-124
analysis classes in, 121, 122
class diagrams in, 118-121
collaboration diagrams in, 117-118
packaging in, 121-123
refined use case descriptionin, 110-112
sequence diagrams in, 113-116
use case analysis in, 109
use case realizations in, 109-110
design patterns, 80-82
destroy method, 136
details object pattern, 240-241
directionality, entity bean, 227
directive elements, 161
directory services, 21
distribution, 5, 76
tiers and, 86-87
DNA, Microsoft, 8
documentation, 80
Document Type Description (DTD), 276-277
doDelete, 141
doEndTag, 165
doGet, 141
doOptions, 141
doPost, 141
doPut, 141
doStartTag, 164-165
doTrace, 141
durable principle, 190
dynamic structure, 73
dynamic URL rewriting, 148

E

EJB ClientJar stereotype, 271
ejbCreate, 196, 231, 258
EJB deployment descriptor, 276
ejbHome, 232
ejbLoad/ejbStore methods, 221, 232, 238
ejbPassivate/ejbActivate, 196, 232
ejbPostCreate, 232
EJB Query Language (EJB QL), 224-225
ejbRemove, 196, 232, 258
EJBs. See EnterpriseJavaBeans (EJBs)
elaboration phase, 64-65
e-mail, 23
enterprise applications
assembly and deployment of, 266-278
case study, 279-306
component model for, 8
component modeling for, 270-271
definition of, 3-6
deployment modeling, 271-274
development challenges in, 5-6
entity bean identification in, 243-247
evolution of, 6-7
JSP in, 170-173
knowledge base required for, 14-15
message-driven bean identification for, 261-262
servlet identification for, 150-153
session bean identification for, 209-211
ways to leverage, 4-5
enterprise archive files, 268
enterprise containers, 17
Enterprise Information Systems (EIS), 22
Enterprise JavaBeans (EJBs), 1, 8, 19-22, 129. See also entity beans; message-driven beans; session beans
business method implementationin, 32
client view, 181-182
component modeling for, 270
components as UML subsystems, 78
entity, 19
Home and Remote interface and, 32
internal view, 182
JMS and message-driven beans in, 252
key concepts in, 178
message-driven, 19
modeling server-side relationships and, 169
reasons to use, 178-179
representing in UML, 179-180
session, 19
UML profile for, 35
views in, 179-182
entity beans, 19, 129, 179, 213-247. See also Enterprise JavaBeans (EJBs)
abstract persistence of, 222-225
attribute mapping, 32
common scenarios for, 236-237
container-managed relationships of, 225-227
in enterprise applications, 243-247
life cycle of, 234-236
modeling relationships among, 237-243
overview of, 215-217
persistence of, 220-221
session beans and, 241-243
state transitions of, 235
technology in, 227-234
transactions and concurrency of, 221
views and UML, 217-220
entity classes, 121
EntityContext field, 233-234
entity mapping, 114
entity objects, 113-114
environment discipline, 64
equals method, 230
exception objects, 164
Execution View, 89
expressions, 162-163
extend relationships, 99-100
extends keyword, 45
extend stereotype, 33
eXtensible Markup Language (XML), 18, 276-277, 278
extension points, 99
Extreme Programming (XP), 66-67

F

Feature-Driven Development (FDD), 67
findByPrimary Key, 228, 230-231
finder methods, 228
flushBuffer, 139
forms, modeling client-siderelationships with, 168
forward method
modeling, 145-146
RequestDispatcher interfaceand, 143
4+1 View Model of Architecture, 88
frameworks, 78-80
extension mechanisms for, 80
as templates, 79
front components, 150
functional requirements, 95
use case realizations and, 109-110

G

generalization, actor, 100-101
GenericServlet, 128, 135-136
modeling in UML, 143-144
required methods in, 136-137
GET, 142
getAttribute, 147
getAttributeNames, 148
getCharacterEncoding, 138
getLastModified, 141
get method, 223, 225, 233
getOutputStream, 139
getParameter, 138
getParameterNames, 138
getParameterValues, 138
getRemoteAddr, 138
getServletContext method, 147
getServletInfo, 136
getWriter, 139
granularity, 77-78, 97, 100
entity bean, 215-216

H

hardware independence, 15
hashCode, 230
HEAD, 142
hidden fields, 148
HomeDirect Bank case study, 279-306
actors in, 287-288
administrative services in, 285-286
bill payment services in, 284-285
Browse Account Balances, 289
class diagrams, 295, 299-301
dependency diagrams, 296, 302
Edit Profile, 290-291
elaboration phase, 294-305
implementation details, 297-299
inception phase, 286-293
inquiry services in, 283-284
interaction diagrams, 291-293
List Transactions, 289
Login, 290
Logout, 290
packaging diagrams, 295, 301
Pay Bills, 290
problem statement of, 282
rationale and assumptions in, 282-283
requirements in, 283-286
sequence diagrams, 294, 295-298
transaction services in, 285
TransferFunds, 289-290
use case diagrams, 291-292
use cases, 288-291
use cases to be implemented, 302-305
Home interface, 32, 179, 194-195
entity bean, 218, 228-229
home methods, 229
HttpServlet, 128, 135-136
handler methods, 141-142
modeling in UML, 144-145
HttpServletRequest, 139
human resources, 5
HyperText Markup Language (HTML), 18
response generation and, 140
Hypertext Transfer Protocol (HTTP), 133
request handlers, 141-142
requests, 142
sessions, 148

I

ICONIX process, 66
implementation class, 179, 196-197
entity bean, 231-233
location of, 201
message-driven bean, 258
implementation discipline, 64
implementation modeling, 267-268
Implementation View, 88
implements keyword, 45
implicit objects, 163-164, 169
inception phase, 64
include method, 143
modeling, 146-147
include relationships, 99, 100
include stereotype, 33
inheritance relationships, 45
for actors, 97-98
session bean, 207
init method, 136
instance passivation, 186-189
integration flexibility, 252
interaction diagrams, 29
sequence diagrams as, 101-103
interactions, explaining, 31
interfaces. See also Home interface; Remote interface
modeling behavior of, 197-199
representing, 43-44
SessionSynchronization, 191-193
internal view
entity bean, 219-220
session bean, 182
Internet Inter-Orb Protocol (IIOP), 23
inventory management, 4
isolated principle, 190
isSecure, 138
iteration plans, 287, 288
iterative development process, 60-61, 62

J

Java, 12-13
embedding code, 18
platforms, 13, 14
representing relationships in, 45-55
representing structure in, 39-44
Java Archive Files, 268
JavaBeans, 8
entity beans and, 237-238
JSPs and, 18
modeling server-side relationships and, 169
passing information between servlets and JSP with, 172, 173
performance management with, 209
response generation and, 140
session beans and, 204
transaction management with, 191
Java Database Connectivity (JDBC), 12, 21
Java Interface Definition Language (IDL), 23
JavaMail, 23
Java Messaging Service (JMS), 22, 251-252. See also message-driven beans
messages, 19
point-to-point messaging, 252
publish-subscribe messages, 252
Java Naming and Directory Interface (JNDI), 21-22
Java 2 Platform, Enterprise Edition (J2EE)
advantages of, 13-16
APIs, 21-23
componentization in, 15-16
component modeling of technologies in, 268-271
containers in, 16-17
deployment descriptors, 276-278
description of, 11-12
development model, 15
elements of, 11-12
history of, 12-13
reasons to use with UML, 30-31
servlets, 125-126
technologies in, 16-20, 22-23, 125-130
tiers in, 86-87
UML modeling approach for, 35-36
UML modeling challenges of, 31-32
view of architecture in, 87-88
Java 2 Platform, Micro Edition (J2ME), 13
Java 2 Platform, Standard Edition (J2SE), 13
Java Remote Method Protocol (JRMP), 23
JavaServer Pages (JSP), 128, 155-174
anatomy of, 160-164
elements of, 161-163
in enterprise applications, 170-173
entity beans and, 241
implicit objects and, 163-164, 169
Model 1 and 2 architecture and, 159
session beans and, 206
stereotyping and, 268
tag libraries and, 164-166
template data in, 161
typical uses of, 158
UML and, 166-170
vs. servlets, 160
Java Transaction API (JTA), 22
Java Transaction Service (JTS), 23
java.util.Collection, 226
java.util.List, 226
java.util.Map, 226
java.util.Set, 226
javax.jms.message, 255
javax.transaction.UserTransaction interface, 191
J2EE Connectors, 22
JSPs, 18
response generation and, 140
jsp:useBean tag, 159
just-develop-it approach, 59-60

L

Language group, 66
latency, 12
layering, 84-85
entity beans and, 245-247
library approach, 79
life cycles
container management of, 17
entity bean, 234-236
message-driven bean, 258-259
methods, 136-137
servlet, 18, 135-138
session bean, 194-195, 199-200
local clients, 208-209
Logical View, 88
login/logout, 97
Login use case, 170-173

M

maintenance, 15
Mandatory method, 194
marketing, 4
message-driven beans, 19, 129, 249-263. See also Enterprise JavaBeans (EJBs)
advantages of, 251
client view, 254, 255
common scenarios for, 260
identifying in enterprise applications, 261-262
JMS and, 251-252
life cycle of, 258-259
modeling destinations in, 255-257
modeling messages in, 255
reasons to use, 252-253
relationship modeling in, 261
responses in, 262
technology of, 257-258
views and UML, 254-257
when to use, 253
methods, representing, 41-42
middleware layer, 245
Model 1 architecture, 159
Model 2 architecture, 159, 170-173
Model-View-Controller (MVC) architecture, 19-20, 87-88, 159
Module View, 89
multiplicity, 49-50, 52
entity bean, 226
multi-vendor environments, 5

N

name compartment, 39-40
naming services, 21
Never method, 194
nodes, 273
non-functional requirements, 95
NotSupported, 193
n-tier approach, 6-7
advantages of, 7
in Java, 13

O

object diagrams, 28
object interaction diagrams, 110
Object Management Group (OMG), 23, 27
Object-Oriented Analysis andDesign with Applications (Booch), 94
object-oriented software approach, 8
Objectory process, 61
Object Request Broker (ORB), 23
objects
implicit in JSP, 163-164, 169
representing, 42-43, 43
onMessage method, 257, 258
Open Database Connectivity (ODBC), 21
OPEN (Object-oriented Process, Environment, and Notation) Process, 66
Framework, 66
operating system independence, 15
operations compartment, 39-40
out objects, 163

P

packages
dependencies between, 123
designing and creating, 121-123
hierarchy of, 245-247
representing, 44
pageContext object, 163
page objects, 164
parameterized collaboration, 82
passivation, instance, 186-189
patterns, software, 80-84
representing as collaboration, 82
performance, 75
entity beans and, 215-216, 217, 237-238
of message-driven beans, 253
session bean, 207-208
persistence, 220-221, 222
abstract, 222-225
bean-managed, 221
container-managed, 221
Persistence Manager, 224, 225
persistent fields, 233-234
Planning Game, 66-67
point-to-point messaging, 252
portability, 14
POST, 142
presentation components, 169
presentation logic, 6-7, 18, 157
primary key class, 179, 230-231
PrintWriter, 139
Process View, 88
Producers, 66
productivity, 15
product knowledge, 4
project management discipline, 64
Proxy pattern, 81-82, 178
publish-subscribe paradigm, 252, 253
PUT, 142

Q

quality control, 63
queue destinations, 257

R

Rational Approach, 61
Rational Unified Process (RUP), 61-65
best practices in, 62-63
core disciplines in, 63-64
layering approaches in, 84, 245-247
phases in, 64-65
traceability in, 274-275
realization relationships, 45
use case, 109-110
Real-Time Software Modeling profile, 35
redundancy modeling, 274
reflexive relationships, 55
relationships
aggregation, 51-53, 55
among layers, 84-85
association, 47-51
in class diagrams, 118-119
between client and server pages, 167
client EJB, 272
composition, 53
container-managed, 225-227
dependency, 46-47, 48
dynamic, 28
extend, 99-100
extend vs. include, 100
identifying with collaboration diagrams, 120
include, 99, 100
inheritance, 45
local, 227
message-driven bean, 261
modeling client-side, 168
modeling server-side, 168-170
modeling session bean, 201-207
realization, 45-46
reflexive, 55
representing, 45-54
session-to-session, 206-207
static, 28
use case, 99-101
Remote interface, 32, 179, 195-196
entity bean, 218, 229-230
ShoppingCart, 198
Remote Method Invocation-Internet Inter-Orb Protocol (RMI-IIOP), 23
Remote Method Invocation (RMI), 22, 207-208
Remote Procedure Call (RPC), 261
removeAttribute, 148
remove method, 195
entity bean, 228
RequestDispatcher interface, 142-143
request handler methods, 136
request handling, 138-139
request object, 138-139, 163
Required method, 193
requirement management, 62
in customer need analysis, 94
requirements, functional vs.nonfunctional, 95
requirements core discipline, 63
RequiresNew method, 194
response generation, 139-140
response object, 163
responsibility-driven layering, 84, 86-87
reusability, 8, 75, 267-268
reuse-driven layering, 84
risk factors, 287, 288
robustness analysis, 66
roles
in associations, 48-49
multiplicity, 49-50, 52
rollback method, 190, 191
RUP. See RationalUnified Process (RUP)

S

sales management, 4
scalability, 5
of servlets, 134-135
scripting elements, 162-163
scriptlets, 163
security, 75
select methods, 232
sendRedirect, 143
sequence diagrams, 29, 101-103
actor/system interactions in, 102
boundary objects in, 113
control objects in, 114-117
in design creation, 113-117
entity objects in, 113-114
level of detail in, 103
login scenario, 173
session bean usage, 198
Subject-Observer pattern, 83
of typical session bean transactions, 192
vs. collaboration diagrams, 118
serialization, servlet method, 138, 144-145
ServerPage, 167
server-side approach, 12-13
Server Side Includes (SSI), 143
server-side relationships, 168-170
server-side session objects, 148
server types, 273
service method, 136
in GenericServlet, 136-137
serialization of, 144-145
ServletContext, 147-148
ServletOutputStream, 139
ServletRequest object, 138-139
ServletResponse, 139-140
servlets, 12-13, 131-154
benefits of, 133-135
common usage of, 134
definition of, 17
deployment and Web archives, 149
division of responsibilities in, 150-153
entity beans and, 241
environment of, 147-148
forward, 145-146
Generic, 135-136
HTTP request handlers, 141-142
HttpServlet, 135-136
identifying in enterprise applications, 150-153
include, 146-147
introduction to, 133-135
J2EE, 17-18, 127-128
JSP vs., 160
life cycle of, 18, 135-138
modeling in UML, 143-145
modeling server-side relationships and, 169
RequestDispatcher interface, 142-143
response generation, 139-140
scalability of, 134-135
serializing, 138, 144-145
session beans and, 205
session management for, 148-149
session beans, 19, 129, 175-212. See also Enterprise JavaBeans (EJBs)
advantages of, 183-184
chaining, 207
cleanup and removal of, 188-189
common scenarios for, 201
entity beans and, 241-243
Home interface, 194-195
identifying in enterprise applications, 209-211
implementation class, 196-197
inheritance of, 207
instance passivation, 186-189
and JavaBeans, 204
and JavaServer Pages, 206
J2EE versions and, 184
key concepts in, 178
life cycle, 199-200
local client and, 208-209
main concepts in, 177
modeling conversational state, 185-186
modeling interface behavior of, 197-199
modeling relationships of, 201-207
performance management, 207-208
and plain Java classes, 201-204
pooling, 188
reasons to use, 178-179
Remote interface, 195-196
and servlets, 205
session-to-session relationships of, 206-207
technology of, 194-197
transactions, 189-194
types of and conversational state, 184-186
session management, servlet, 148-149
session objects, 163
server-side, 148
SessionSynchronization interface, 191-193
session-to-session relationships, 206-207
setAttribute, 147
setBufferSize, 139
setEntityContext/unsetEntityContext, 231
setMessageDriven Context, 258
set method, 223-224, 225, 233
setSessionContext, 196
ShoppingCart session bean, 198
SingleThreadModel, 138, 144-145
SingleThreadServlet, 145
single tier applications, 6
singleton patterns, 81
SML DTD Modeling profile, 35
software development
approaches to, 59-67
Extreme Programming, 66-67
Feature-Driven, 67
ICONIX process, 66
ICONIX process of, 66
iterative process of, 60-61, 62
just-develop-it approach to, 59-60
OPEN process of, 66
process of, 59
Rational Unified Process of, 61-65
waterfall approach to, 60, 61
Software Development Processes profile, 35
source code, 73
SQL queries, 225
Stages, 66
standards actions, 162
statechart diagrams, 28-29
ShoppingCart, 199
state diagrams, 199-200
stateful session beans, 184-185
instance passivation and, 186-189
typical usage of, 203
stateless session beans, 184-185
limitations for, 193
typical usage of, 202
state management, 183-184
static methods, 42
static structure, 73
stereotypes, 32-33
ApplicationServer, 273
with classes, 40
DatabaseServer, 273
entity beans and, 219
form, 168
Java components and, 268-271
JSP and, 167
layer, 84-85
with packages, 44
server, 273
WebServer, 273
structural design patterns, 81
Subject-Observer pattern, 82-83
subsystems, 44, 180
advantages of, 181
entity beans and, 219
Supported method, 194
swim lanes, 104
synchronization calls, 238

T

tagged values, 33-34, 136-137
tag handlers, 162, 164-165
tag libraries, 160, 164-166
descriptor (.tld) files, 165-166
modeling server-side relationships and, 169
template approach, 79
template data, 161
test discipline, 64
test models, 64
thin clients, 157
tiers, 86-87. See also n-tier approach
definition of, 6, 84
topic destinations, 257
traceability, 274-275
transaction management, 183-184
transactions, 22
attributes of, 193-194
bean-managed, 191
committed, 189
container-managed, 191
demarcation of, 190
entity bean, 221
message-driven bean, 257
modeling, 194
rolledback, 189
session bean, 189-198
Transfer funds use case
activity diagram, 104-105
boundary objects in, 115, 117
class diagrams, 119, 120
collaboration diagram, 117
sequence diagram, 102, 112, 115-116
session beans in, 209-211
use case description, 110-113
transition phase, 65
TravelReservations bean, 185-186, 187

U

UML EJB Modeling profile, 35
unidirectional association, 47-48, 49, 227
Unified Modeling Language (UML), 25-36, 27
advantages of J2EE and, 30-31
challenges in J2EE and, 31-32
constraints in, 34-35
definition of, 27
diagrams in, 28-29
EJB views and, 179-182
entity bean views and, 217-220
extension mechanisms in, 32-35
history of, 27
J2EE modeling approaches in, 35-36
JSP and, 166-170
message-driven beans in, 254-257
modeling servlets in, 143-145
overview of, 28-29
packages in, 123
profiles, 34-35
relationships in, 28
representing relationships in, 45-55
representing structure in, 39-44
stereotypes in, 32-33
support of, 27
tagged values in, 33-34
units-of-work, 189
Use Bean, 169
use case diagrams, 28, 98-99
transfer funds, 120
use case modeling, 95-96
use cases
actor identification with, 95-96
in customer need analysis, 94
finding, 96-98
as gatekeepers, 171
realization of, 109-110
refined description of, 110-112
relationships in, 99-101
typical problems with, 100-101
Use Cases-Requirements in Context (Kulak), 94
Use Case View, 88

V

value object approach, 238-241
variables
representing, 40-41
static, 41
Vendor-specific deployment descriptor, 276
View of Participating Classes (VOPC) diagrams, 118
views. See also specific views
client, 181-182, 217, 218-219, 254, 255
internal, 182, 219-220
in Model-View-Controller architecture, 20
visibility scope, 41-42
visual development paradigm, 31
visual modeling, 62-63

W

.war files, 149
waterfall approach, 60, 61
Web archive files, 149-150, 268
Web components, 269
Web containers, 17
Web deployment descriptor, 276
Web modeling profile, 35
WebServer stereotype, 273
Work Products, 66
Work Units, 66

Updates

Submit Errata

More Information

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.

Overview


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information


To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.

Surveys

Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.

Newsletters

If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information


Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.

Security


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.

Children


This site is not directed to children under the age of 13.

Marketing


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information


If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.

Choice/Opt-out


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information


Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents


California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure


Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.

Links


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact


Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice


We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020