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