Upload
samuel-rizzo
View
939
Download
11
Embed Size (px)
Citation preview
Sun Educational Services
Architecting and Designing J2EE Applications August 2000
Architecting and Designing J2EEApplications
SL-425
Sun Educational Services
Architecting and Designing J2EE Applications 2 of 2Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Copyright 2000 Sun Microsystems, Inc., 901 San Antonio Road, Palo Alto, California 94303, U.S.A. All rights reserved.This product or document is protected by copyright and distributed under licenses restricting its use, copying, distribution, and decompilation. No part of this product or document maybe reproduced in any form by any means without prior written authorization of Sun and its licensors, if any.
Third-party software, including font technology, is copyrighted and licensed from Sun suppliers.
Parts of the product may be derived from Berkeley BSD systems, licensed from the University of California.
Sun, Sun Microsystems, the Sun Logo, Enterprise JavaBeans, Java, J2EE, EJB, JavaServer Pages. JSP, J2EE Blue Prints , JDBC, JavaMail, Java Naming and Directory Interface, JNDIl, JVM,Java API for XML Parsing, Java Pet Store and Write Once, Run Anywhere, are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries.
The OPEN LOOK and Sun Graphical User Interface was developed by Sun Microsystems, Inc. for its users and licensees. Sun acknowledges the pioneering efforts of Xerox in researchingand developing the concept of visual or graphical user interfaces for the computer industry. Sun holds a non-exclusive license from Xerox to the Xerox Graphical User Interface, whichlicense also covers Sun’s licensees who implement OPEN LOOK GUIs and otherwise comply with Sun’s written license agreements.
U.S. Government approval required when exporting the product.
RESTRICTED RIGHTS: Use, duplication, or disclosure by the U.S. Government is subject to restrictions of FAR 52.227-14(g) (2)(6/87) and FAR 52.227-19(6/87), or DFAR 252.227-7015(b)(6/95) and DFAR 227.7202-3(a).
DOCUMENTATION IS PROVIDED "AS IS" AND ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS, AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTYOF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE DISCLAIMED, EXCEPT TO THE EXTENT THAT SUCH DISCLAIMERS AREHELD TO BE LEGALLY INVALID.
Sun Educational Services
Architecting and Designing J2EE Applications August 2000
About This Course
Sun Educational Services
Architecting and Designing J2EE Applications About This Course, v of xxiiiCopyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000, Revision A
Course Goal
This course provides you with knowledge and skills to:
• Create architectures using Java™ 2 Platform,Enterprise Edition (J2EE™) best practices and designguidelines
• Use design patterns to create scalable, extensible,multi-tiered J2EE solutions
• Form a sound basis for further study in architectureand design
Sun Educational Services
Architecting and Designing J2EE Applications About This Course, vi of xxiiiCopyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000, Revision A
Course Overview
• Basic architectural principles
• J2EE technology and basic architectural principles
• J2EE Patterns
• Best practices and design guidelines
• J2EE technology’s applicability to the followingapplications:
▼ Business-to-Business (B2B)
▼ Enterprise Resource Planning (ERP)
▼ Workflow
Sun Educational Services
Architecting and Designing J2EE Applications About This Course, vii of xxiiiCopyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services, August 2000, Revision A
Course Map
Architectural Principles
Architect andArchitecture
Principles ofArchitecture
Creating anArchitectureUsing J2EETechnology
Best Practices and Guidelines
J2EE BestPractices –Overview
J2EE BestPractices –Web Tier
J2EE BestPractices –
EJB Tier
J2EE BestPractices –
EIS IntegrationTier
J2EE BestPractices –
Services
Patterns
J2EEPatterns
Legacy Applications
Special Topics
Sun Educational Services
Architecting and Designing J2EE Applications About This Course, viii of xxiiiCopyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000, Revision A
Module-by-Module Overview
• Module 1 – Architect and Architecture
• Module 2 – Principles of Architecture
• Module 3 – Creating an Architecture Using J2EETechnology
• Module 4 – J2EE Best Practices – Overview
• Module 5 – J2EE Best Practices – Web Tier
• Module 6 – J2EE Best Practices – EJB Tier
• Module 7 – J2EE Best Practices – EIS Integration Tier
Sun Educational Services
Architecting and Designing J2EE Applications About This Course, ix of xxiiiCopyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000, Revision A
Module-by-Module Overview
• Module 8 – J2EE Best Practices – Services
• Module 9 – J2EE Patterns
• Module 10 – Special Topics
Sun Educational Services
Architecting and Designing J2EE Applications About This Course, x of xxiiiCopyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000, Revision A
Course Objectives
• Differentiate between architecture and design.
• Explain the architectural process.
• List and describe the capabilities and design goals of anarchitecture.
• List and define the trade-offs that result fromarchitectural decisions.
• Describe the effects of J2EE technology on thecapabilities and design goals.
Sun Educational Services
Architecting and Designing J2EE Applications About This Course, xi of xxiiiCopyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000, Revision A
Course Objectives
• Describe best practices and design guidelines fordeveloping multi-tier architectures based on J2EEtechnology.
• Describe the J2EE patterns and explain how they helpsolve key issues for enterprise applications.
• Explain the use of J2EE technology in the areas ofBusiness-to-Business (B2B), Enterprise ResourcePlanning (ERP), and Workflow applications.
Sun Educational Services
Architecting and Designing J2EE Applications About This Course, xii of xxiiiCopyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000, Revision A
Skills Gained by Module
Module
Skills Gained 1 2 3 4 5 6 7 8 9 10
Differentiate between architecture and design.
Explain the architectural process.
List and describe the capabilities and design goalsof an architecture.
List and describe the trade-offs that result fromarchitectural decisions.
Describe the effects of J2EE technology on thecapabilities and design goals.
Describe best practices and design guidelines fordeveloping multi-tier architectures based on J2EEtechnology.
Describe the J2EE patterns and explain how theyhelp solve key issues for an enterprise application.
Explain the applicability of J2EE technology in theareas of B2B, ERP, and Workflow.
Sun Educational Services
Architecting and Designing J2EE Applications About This Course, xiii of xxiiiCopyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000, Revision A
Guidelines for Module Pacing
Module Day 1 Day 2 Day 3 Day 4
"Architect and Architecture" A.M.
"Principles of Architecture" P.M.
"Creating an Architecture Using J2EETechnology"
A.M.
"J2EE Best Practices – Overview" P.M.
"J2EE Best Practices – Web Tier" P.M.
"J2EE Best Practices – EJB Tier" P.M.
"J2EE Best Practices – EIS Integration Tier" A.M.
"J2EE Best Practices – Services" A.M./P.M.
"J2EE Patterns" A.M.
"Special Topics" P.M.
Sun Educational Services
Architecting and Designing J2EE Applications About This Course, xiv of xxiiiCopyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000, Revision A
Topics Not Covered
• Object-oriented concepts
• Object-oriented design and analysis
• Unified Modeling Language (UML)
• Java™ programming language constructs
• Distributed computing
• In-depth study on the Java 2 Platform, EnterpriseEdition (J2EE™) technologies
Sun Educational Services
Architecting and Designing J2EE Applications About This Course, xv of xxiiiCopyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000, Revision A
How Prepared Are You?
• Experience with the Java™ programming language
• Familiarity with component architecture concepts
• Familiarity with the Enterprise JavaBeans™architecture
• Familiarity with multi-tier architecture
• Familiarity with the J2EE framework
• Familiarity with relational or object databaseprogramming requirements
• Familiarity with transaction models
Sun Educational Services
Architecting and Designing J2EE Applications About This Course, xvi of xxiiiCopyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000, Revision A
Introductions
• Name
• Company affiliation
• Title, function, and job responsibility
• Object-oriented design and analysis
• Distributed computing experience
• Architecture and J2EE technology experience
• UML
• Reasons for enrolling in this course
• Expectations for this course
Sun Educational Services
Architecting and Designing J2EE Applications About This Course, xvii of xxiiiCopyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000, Revision A
How to Use Course Materials
• Objectives
• Relevance
• Overhead image
• Lecture
• Exercise
• Check Your Progress
• Think Beyond
Sun Educational Services
Architecting and Designing J2EE Applications About This Course, xviii of xxiiiCopyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000, Revision A
How to Use the Icons
Additional resources
Exercise objective
Sun Educational Services
Architecting and Designing J2EE Applications About This Course, xix of xxiiiCopyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000, Revision A
Typographical Conventions andSymbols
• Courier is used for the names of command, files, anddirectories, as well as on-screen computer output.
• Courier bold is used for characters and numbers thatyou type.
• Courier italic is used for variables and command-line placeholders that are replaced with a real name orvalue.
• Palatino italics is used for book titles, new words orterms, or words that are emphasized.
Sun Educational Services
Architecting and Designing J2EE Applications About This Course, xx of xxiiiCopyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000, Revision A
Java Programming language examples use the followingadditional conventions:
• Courier is used for the class names, methods, andkeywords.
• Methods are not followed by parentheses unless aformal or actual parameter list is shown.
• Line breaks occur where there are separations,conjunctions, or white space in the code.
Sun Educational Services
Architecting and Designing J2EE Applications About This Course, xxi of xxiiiCopyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000, Revision A
Common Abbreviations andAcronyms
• API – Application programming interface
• CORBA – Common Object Request Broker Architecture
• DB – Database
• DBMS – Database Management System
• EIS – Enterprise Information System
• EJB™ – Enterprise JavaBeans™
• ERP – Enterprise Resource Planning
• HTML – Hypertext Markup Language
• HTTP – Hypertext Transfer Protocol
• HTTPS – Hypertext Transfer Protocol over SSL
• IDL – Interface Definition Language
Sun Educational Services
Architecting and Designing J2EE Applications About This Course, xxii of xxiiiCopyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000, Revision A
Common Abbreviations andAcronyms
• JAF – JavaBeans Activation Framework
• JAR – Java Archive
• J2EE – Java 2 Platform, Enterprise Edition
• JMS – Java™ Message Service
• JNDI – Java Naming and Directory Interface™
• JSP – JavaServer Pages™
• JTA – Java Transaction API
• JTS – Java Transaction Service
• MTBF – Mean Time Between Failures
• OMG – Object Management Group
• ORB – Object Request Broker
Sun Educational Services
Architecting and Designing J2EE Applications About This Course, xxiii of xxiiiCopyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000, Revision A
Common Abbreviations andAcronyms
• OS – Operating System
• RMI-IIOP – Remote Method Invocation-Internet Inter-ORB Protocol
• SSL – Secure Socket Layer
• TCP/IP – Transmission Control Protocol/Internet Protocol
• UML – Unified Modeling Language
• URL – Uniform Resource Locator
• XML – eXtensible Markup Language
Sun Educational Services
Architecting and Designing J2EE Applications August 2000
Module 1
Architect and Architecture
Sun Educational Services
Architecting and Designing J2EE Applications Module 1, slide 2 of 18Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Overview
• Objectives
• Relevance
Sun Educational Services
Architecting and Designing J2EE Applications Module 1, slide 3 of 18Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
The Architect’s Role
• The architect:
▼ Visualizes the behavior of the system
▼ Creates the blueprint for the system
▼ Defines the way in which the elements ofthe system work together
▼ Distinguishes between functional and non-functional system requirements
▼ Is responsible for integrating non-functionalrequirements into the system
Sun Educational Services
Architecting and Designing J2EE Applications Module 1, slide 4 of 18Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Development Team
• The architect is a member of a developmentteam.
System designers
Team leads
Enterprise modeler
Developers
Testers
QA staff
Configuration experts
Business domain experts
Customer
Beta tester
End users
Architect
Sun Educational Services
Architecting and Designing J2EE Applications Module 1, slide 5 of 18Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Defining Architecture
• Architecture refers to an abstract representationof a system’s components and behaviors.
• Architecture does not contain details aboutimplementation.
• Architectures are best represented graphically.
Boxes represententities
Lines representcontrol or data flow
Sun Educational Services
Architecting and Designing J2EE Applications Module 1, slide 6 of 18Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
The Art of Architecture
• An architect communicates thedesign of the system to othermembers of the team.
• Defining an architecture is acreative process.
• The creative process can havepositive and negative aspects.
• Architects try to balance creativity with science in theform of models, frameworks, and patterns.
Sun Educational Services
Architecting and Designing J2EE Applications Module 1, slide 7 of 18Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Defining Architecture Terminology
Term Definition
Abstraction A symbol for something used repeatedly in a design that hides details andis a clear representation.
Boundaries The area where two components interact.
Brittleness The degree to which small changes will break large portions of thesystem.
Capabilities Non-functional, observable system qualities including scalability,manageability, performance, availability, reliability, and security whichare defined in terms of context.
Friction How much interaction occurs between two components. Friction ismeasured based on how a change in one affects both components.
Layering A hierarchy of separation.
Surface Area The methods that are exposed to the client.
Sun Educational Services
Architecting and Designing J2EE Applications Module 1, slide 8 of 18Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Architecture and Design
• Key difference is in the level of details.
• Architecture operates at a high level of abstraction.
• Design operates at a low level of abstraction.
Sun Educational Services
Architecting and Designing J2EE Applications Module 1, slide 9 of 18Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Architectural Building Blocks
• Capabilities and design goals
• Process and artifacts
• Communication mechanisms
To build an architecture, the architect uses the following:
• Architectural fundamentals
• Experience:
▼ Best practices
▼ Frameworks, patterns, and idioms
Sun Educational Services
Architecting and Designing J2EE Applications Module 1, slide 10 of 18Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Capabilities and Design Goals
Capabilities:
• Are non-functional, observable system qualities thataffect the long term viability of your architecture.
• Depend on the context of your system.
• Can be specified, measured, and prioritized.
▼ Example of specifying reliability — No more than 1failure per 1000 attempts or 99.9 percent.
Design goals:
• Are non-functional, non-observable system qualitiesdesigned into a system to achieve the capabilities.
Sun Educational Services
Architecting and Designing J2EE Applications Module 1, slide 11 of 18Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Process and Artifacts
• A process consists of an orderly sequence of stepsfrom initiation to delivery to deployment.
• The purpose of a process is to:
▼ Address assumptions
▼ Minimize the impact of risks
▼ Identify constraints
• Artifacts result from the process.
• UML is used to communicate the architectureand design to other members of the team, both presentand future.
Sun Educational Services
Architecting and Designing J2EE Applications Module 1, slide 12 of 18Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Communication Mechanisms
• HTTP, HTTPS
• RMI
• IIOP
• Messaging
• Transactions (ACID)
Sun Educational Services
Architecting and Designing J2EE Applications Module 1, slide 13 of 18Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Architectural Fundamentals
• Top-down design approach
• Identifying layers, tiers, and services
• Establishing service-based architectures
• Abstraction
Sun Educational Services
Architecting and Designing J2EE Applications Module 1, slide 14 of 18Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Abstraction
• Abstraction refers to creating symbols that hide designdetails:
Example 1
Example 2
Example 3
Browser DB
WebServer
Servlet
JSP
Client Notification Service Event Service
Sun Educational Services
Architecting and Designing J2EE Applications Module 1, slide 15 of 18Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Abstraction – Surface Area
• Well-defined modules interact with one another insimple, well-defined ways.
• Surface area is the different ways that modules interact.
Customer
+getName()+getAddr()+getPhone()
Customer
+getName()+getAddr()+getPhone()+getBalance()+getTransactions()+makeDeposit()+makeWithdrawal()
Checking Account
Threeinterfacemethods
Seveninterfacemethods
Sun Educational Services
Architecting and Designing J2EE Applications Module 1, slide 16 of 18Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Abstraction – Surface Area
• The greater the surface area, the more ways a change inone module can affect another.
Customer
+getName()+getAddr()+getPhone()
Customer
+getName()+getAddr()+getPhone()+getBalance()+getTrans()+makeDeposit()+makeWithdrawal()
Checking Account
Account
+getBalance()+getTrans()+makeDeposit()
JSP Page
+makeWithdrawal()
JSP Page
Smaller surface areasLarge surface area
Sun Educational Services
Architecting and Designing J2EE Applications Module 1, slide 17 of 18Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Check Your Progress
• Define the role of an architect
• Define the term “architecture”
• Explain architectural terms such as abstraction,boundaries, brittleness, and capabilities
• List the differences between “architecture” and“design”
• Identify the fundamentals of system architecture
• Identify and define key architectural principles
• Explain the concept of abstraction, and how it isimplemented in system architecture
Sun Educational Services
Architecting and Designing J2EE Applications Module 1, slide 18 of 18Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Think Beyond
The architect has many issues to consider, as discussed in thismodule.
How absolute are these issues?
Can you think of how they relate to each other?
Can you think of other issues that should be considered?
Sun Educational Services
Architecting and Designing J2EE Applications August 2000
Module 2
Principles of Architecture
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 2 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Overview
• Objectives
• Relevance
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 3 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Architecture and the Cube
Layers
Capabilities
TiersClie
ntPre
sent
atio
nBus
ines
sIn
tegr
atio
nRes
ourc
e
Scalability
Security
Manageability
Reliability
Availability
Application
Virtual Platform
Upper Platform
Lower Platform
Application
Virtual Platform
Upper Platform
Lower Platform
Client
Presentation
Business
Integration
Resource
Security
Manageability
Reliability
Availability
Scalability
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 4 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Layers and Tiers
Client
Application
Virtual Platform
Upper Platform
Lower Platform Operating system
Operating environment:Web server or application server
APIs, specifications
Components
ResourcePresentation Business Integration
Parnas’s Law: Every class, object, tier, or layer keeps a secret— the secret of how services are presented to the adjacentclass, object, tier, or layer.
Composescontent using
businessinformation
Tier Tier Tier Tier Tier
Containsresources
Containsessentialbusinessthemes
Logicalintegration
to resources such asdata
Renders UI,Provideshuman
interaction
Reliability
Availability
Scalability
Manageability
Security
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 5 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Capabilities
• Nonfunctional, observable system qualities:
▼ Do not represent separate specified functions
▼ Cannot be satisfied by any one component
• Example:
▼ Retail toy store’s web site cannot handle the loadand crashes:
▼ Two weeks before Christmas
▼ After a $50 million advertisement campaign
▼ Expansion of capacity will take six weeks
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 6 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Capabilities
SystemQuality
Definition As Used In This Course
Availability The assurance that a service/resource is always accessible. This aspect of a system is oftencoupled with measures of its performance.
Capacity The ability to run a number of jobs per unit time.
Extensibility The ability to economically modify or add functionality.
Flexibility The ability to support architectural and hardware configuration changes.
Manageability The ability to manage the system to ensure the continued health of a system with respect to theother capabilities.
Performance The ability to execute functions fast enough to meet performance goals.
Reliability The ability to ensure the integrity and consistency of an application and its transactions.
Scalability The ability to support the required quality of service as load increases.
Security The ability to ensure that information is neither modified nor disclosed except in accordancewith the security policy.
Testability The ability to determine what the expected results should be.
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 7 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Availability and Reliability
Availability
• The assurance that a service or a resource is highlyaccessible. (time available) / (time possible)
• Example – 201 seconds down/week
Reliability
• The ability to ensure the integrity and consistency ofthe application and all of its transactions.
• Example – Users will experience failed sessions nomore than 1 time in 1000 attempts (99.9 percentreliability).
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 8 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Improving Reliability
• Assume a web server has a MTBF of 100,000 hours.
• What is the reliability of the following?
• Availability increases.
Webserver
MTBF =1015
hoursWebserver
Webserver
MTBF=105
hours
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 9 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Manageability
• The ability to manage the system to ensure thecontinued health of a system with respect to the othersystem qualities.
• Metric example – Number of staff hours permonth to perform normal upgrades.
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 10 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Flexibility
• Is the ability to change architecture to meet newrequirements in a cost-efficient manner
• Is the key to an available, reliable, and scalableapplication
• Can be improved through location independence ofapplication code
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 11 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Flexibility
• Example
• Allows you to change what is affected by changing thepresentation language (for example, English toGerman)?
• What must change to add a “fat client” for intense use?
ClientWeb
ServerApplication
Server Data
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 12 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Flexibility Metrics
• No standard way of measuring flexibility
• Basic measure is cost of change but this depends onwhat change is probable.
• Use change cases to evaluate what in system mustchange.
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 13 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
The Effect of Flexibility
Clients
Clients
Webserver
Applicationserver
Applicationserver
Webserver
Applicationserver
Webserver
Applicationserver
Webserver
Data
Data
2. Location transparency
3. Reconfigurability
on server-side
Flexibility
Reliability
Availability
Manageability
1. Location transparencyon client-side
21
3
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 14 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Performance
• The ability to execute functions fast enough to meetperformance goals.
• Response time is important to an application.
• Identify and control expensive calls.
• State performance goals before implementing.
• Example—first visible response in browser undermaximum specified load occurs in less than 3 seconds,95 percent of the time. Measurement is made atcompany external firewall.
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 15 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Performance
• Identify and control access to expensive process andnetwork boundaries.
Host 1Process 1 Process 1
Client
Local
Process 2
Local Server
Remote Server
Network
Host 2
Boundaries
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 16 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Performance
• Identify the class of expensive calls.
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 17 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Capacity
• The ability to run a certain number of jobs per unittime.
• Example
CPU
Processes
1 2 3 . . . . . 32
CPU
Processes
1 2 3 . . . . . 32
CPU
Processes
1 2 3 . . . . . 32
CPU
Processes
1 2 3 . . . . . 32
Application server Application server
Total is 28*4=112 (total not including overhead)
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 18 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Latency Space
• Latency is the inherent communication delay, such asping time.
ClientWeb
serverApp
server
Distance
Minimize surface area of communication pipe.Request more data with fewer calls.
Data
1500 msec
Num
ber
of M
essa
ges
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 19 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Scalability
• The ability to economically support the requiredquality of service as the load increases.
• Vertical scalability comes from adding capacity(memory, CPUs) to existing servers.
▼ Makes fewer demands on the architecture
▼ Is constrained by resource limits
• Horizontal scalability comes from adding servers.
▼ Distributed state, load balancing
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 20 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Vertical Scalability
WebServer
ApplicationServer
DBMSServer
Capacity
Reliability
Availability
Manageability
Any machine failure leads to a system failure.
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 21 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Horizontal Scalability
• All Web servers or all application servers must fail fora system failure to occur.
LBR LBR LBR
ApplicationServer
DBMSServer
DBMSServer
Capacity
Reliability
Availability
Manageability
WebServer
WebServer
WebServer
ApplicationServer
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 22 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
The Effect of Scalability
How are other capabilities driven by scalability?
• Availability and reliability are obtained throughscalability.
• Capacity is affected by scalability:
▼ One machine handles 500 transactions
or
▼ 5 machines handle 100 transactions each
▼ 50 machines handle 10 transactions each
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 23 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Extensibility
• The ability to modify or add functionality withoutimpacting the existing functionality.
• Requires careful modeling of the business domain toadd new features based on the business model.
Functionality delivered
Cos
t
k
k
1.05-1.3
.9
Traditional
Object-orienteddevelopment
development
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 24 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Extensibility
Rough guidelines:
• More than 25 top-level classes will lead to problems.
• Every use case can be directly implemented usingdomain model methods.
• On average, every change touches about 1.3 classes.
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 25 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
ExtensibilityMonolithic Application
ManagesConcurrencyDatabase AccessQueryTransactionsServe data
ManagesSession stateConcurrencyResourcesBusiness calls
ManagesRenderingi18n*FormattingEditing
Minor change in requirements
Breaks when Breaks when businessrules change.
Breaks when dataschema changes.UI changes.
break the whole application.
Create tiers to manage responsibilities.
ManagesEverything
*i18n = internationalization
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 26 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Testability
• The ability to determine what the expected resultsshould be.
• Multi-tier architecture provides for many test pointsfor intermediate testing and debugging.
Webserver
Applicationserver
DataClient
tp
tp = test point
tp tp
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 27 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Security
Principle Definition
Identity Trust that the user is correctly identified through anauthentication mechanism
Authority Trust that the user can perform only allowed actions
Integrity Trust that data can be modified only in allowable ways
Privacy Trust that data is disclosed to authorized entitites only inauthorized ways
Auditability Trust that the system maintains valid records of actionstaken for later analysis
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 28 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Security
• Proper use of technology.
• More than just technology.
▼ Hiring a trusted employee
▼ Procedural – intrusion detection
▼ Keep server in locked room
• Trade-off between privacy, ease-of-use, and expense
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 29 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Security Policy
• A security policy should state the acceptable risks andcosts.
It requires at least 30 hours using the best knownattacks to compromise one customer account. Threeor more successive login failures will be logged.
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 30 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Service-based Capabilities
Scalable, available architectures are typically service-basedarchitectures with collections of cooperating, communicatingservices.
• Small, coherent sets of APIs to the business
• Provides “outlets” for connecting to services
• Decouples clients from implementations
• Proper implementation of services is the key tosecurity, scalability, and availability
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 31 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Why Service-based Architectures?
Service-based architectures:
• Are less brittle
• Respond easily to changes in business demands.
• Can tune each system for the functionality it provides
Alternatives:
• Partition by tiers
• Partition by special functions
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 32 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Creating Service-based Architectures
• Vertical services:
▼ Content-based services
▼ Reflect the business model
• Horizontal services:
▼ Infrastructure-based services
▼ Accessed at many layers
Accounting Inventory
Security
Vertical
Infrastructure Load-Balancing Integration
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 33 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Heuristics for Developing Service-based Architectures
• A service is like a server in Client-Server architecture:
▼ Represents shared resources
▼ Accessed concurrently
▼ Maintaining integrity
• Services map to essential business themes, which mapto top-level domain objects.
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 34 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Architectural Design Goals
• To achieve capabilities, an architect creates anarchitecture with the following goals in mind.
▼ Modularity
▼ Protection and exposure
▼ Component extensibility
▼ Roles and responsibilities
▼ Contracts
▼ Pluggable behavior
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 35 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Modularity
Separate the code into self-sufficient, highly cohesive, low-coupling pieces.
• Modularity creates good code abstractions.
• Modularity hides details.
• Modular code is like a black box.
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 36 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Protection and Exposure
• Guard expensive resources to prevent inappropriateuse.
• Shared resources are usually expensive to access.
• Protection mandates controlled exposure usingvisibility access classes.
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 37 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Component Extensibility
Modify or add functionality without impacting the existingfunctionality.
• Subclass
• Composition
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 38 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Component Extensibility UsingSubclassing
• Extending by subclassing creates powerfulspecialization mechanisms.
HRServiceExtension
MyHRService
+ initialize (ctx : Context)+ addEmployee( e : Employee)
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 39 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Component Extensibility UsingComposition
• Composition provides a powerful and dynamicextension mechanism.
• Provides for a more “pluggable” architecture.
HRServiceExtensionHRServiceDelegate
+ initialize (ctx : Context)+ addEmployee ( e : Employee)
+ addEmployee(e: Employee)
MyHRDelayedService MyHRRealtimeService
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 40 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Roles and Responsibilities
• To create clear abstractions, you must identify rolesand responsibilities.
• Identify roles and responsibilities for the abstraction.
AccountJSP
AccountHelper
AccountDelegate
Role: Dynamic presentation Role: Account data formatter Role: Control account accesscreator
JSP ROLE: Dynamic Presentation creator
Should: Create presentationShould Not: Execute business logic or make remote calls
ARTIST NOTE:Adjust graphic to top and flush left of bounding box.
AccountJSP
Role: Dynamic presentation creator
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 41 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Roles and Responsibilities
• Define roles to identify valid data input and output
:AccountJSP :AccountHelper :AccountDelegate
Legacy ordatabaselookup
HTTP requestgetAccountInfo
getAccountInfo
return
return
HTML
AccountJSP
AccountHelper
AccountDelegate
Role: Dynamic presentation Role: Account data formatter Role: Control account accesscreator
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 42 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Contracts
• Contracts are the client-visible API.
• Also known as “programming to the interface.”
• Contracts are architecturally represented asabstractions.
• Contracts mandate business access and data type.
• Identify “pre” and “post” conditions.
This:
Becomes: Client
Service
Service
Client
Contract
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 43 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Types of Contracts
• There are two types of contracts:
▼ Contract-based – Action and data are explicitlydefined in the contract.
▼ Message-based – Action and data are packaged inthe request. The contents of the message are parsedto identify the requested function.
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 44 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Pluggable Behavior
• In general, you expect to use a method by simplypassing parameters.
aTextArea.insertText(“This is inserted”, 42);
• You can also put complicated behavior into aparameter object, such as fonts, paragraph layouts, andso on in aStyledDocument .
aJTextPane.setStyledDocument(aStyledDocument);
• The ability to pass complex objects makes a systemmore flexible.
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 45 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Providing SystemRequirements
Capacity
Reliability
Availability
ManageabilitySecurity
Architecture thatmeets functionalrequirements
XML
HTML
Presentation Business Integration Resources
Web-basedReliabilityAvailability
Webserver
Appserver
Webserver
Webserver
Appserver
Data
Webserver
Appserver
Webserver
Webserver
Appserver
DataFirewall Firewall
Security
Transformation 1
Transformation 2
Transformation 3
Why?
Why?Flexibility
Why?
Client
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 46 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Process
• Architects use processes to build a system that meetsthe requirements.
• A process should be iterative and driven by use-cases.
Requirements Elaborate
Test/Deliver Development
Gather requirements (Use cases)
Code derived from artifactsVerify thatrequirements are met
Spiral model
Identify Assumptions, Risks,Identify service abstractions
Model business andcreate artifacts
and Constraints (ARC)
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 47 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Assumptions, Risks, and Constraints(ARC)
Imperative to identify assumptions, risks and constraints.
Term Definition Examples
Assumptions Refers to preconditions, the absence ofwhich can affect the architecture of asystem
Only one content languageFewer than 50 page views/second95% reliability is adequate
Risks The cost (in probability of remediation)of making specific assumptions
Localize text content for easytranslationScalable architectureTranslation and i18n
Constraints Rules or imposed assumptions to whichthe system must adhere.
Static content is out sourcedSPARC/SolarisimplementationPure HTML at client
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 48 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Model the Business
• Model the business with use cases.
• Use cases drive the architecture at every view.
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 49 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Check Your Progress
• List and define the key architectural capabilities
• List and define the key architectural design goals
• List and describe the trade-offs that result fromarchitectural decisions.
Sun Educational Services
Architecting and Designing J2EE Applications Module 2, slide 50 of 50Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Think Beyond
How does J2EE technology work with the principles ofarchitecture, specifically capabilities?
Sun Educational Services
Architecting and Designing J2EE Applications August 2000
Module 3
Creating an Architecture Using J2EETechnology
Sun Educational Services
Architecting and Designing J2EE Applications Module 3, slide 2 of 23Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Overview
• Objectives
• Relevance
Sun Educational Services
Architecting and Designing J2EE Applications Module 3, slide 3 of 23Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
What Is J2EE Technology?
• Not just a set of APIs.
J2EE Technology Purpose
Platform Specification Defines a standards-based component framework forbuilding enterprise applications
Reference Implementation Provides a compliant and operational J2EE platform
J2EE Blueprints Describes how to construct J2EE applications
Compatibility Test Suite Validates J2EE platform compatibility (end-to-end) toguarantee code portability and to eliminate vendor lock
Sun Educational Services
Architecting and Designing J2EE Applications Module 3, slide 4 of 23Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
What Is J2EE Technology?
• Components:
▼ Application clients
▼ Applets
▼ Web components
▼ Business components
• Containers:
▼ Manage lifecycle of business components
▼ Provide a federated view of J2EE APIs
▼ Provide runtime support for components
Businesscomponent
Workenvironment
Container
Sun Educational Services
Architecting and Designing J2EE Applications Module 3, slide 5 of 23Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
What Is J2EE Technology?
JVM
Old way
ThreadsConnectorsConcurrency
.
.
EJB container
Application is responsible forsupporting business logic (hardest part):
Container is responsiblefor supporting business logic.
New way
JVM
SynchronizationResource sharing
.
Sun Educational Services
Architecting and Designing J2EE Applications Module 3, slide 6 of 23Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
What Is J2EE Technology?
• Connectors:
▼ Contract between container and EnterpriseInformation System (EIS).
▼ Proprietary and under the hood.
▼ Implementation is available with J2EE specificationversion 1.3.
Sun Educational Services
Architecting and Designing J2EE Applications Module 3, slide 7 of 23Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
J2EE Architecture
• J2EE architecture is multi-tier
Applet
J2SE
HTTPs1
2
HTTPs
3
4
Web Container
JSP Servlet
JavaMail
JAF
JDB
C
JND
I
RM
I-IIOP
JMS
JTAJ2SE
Container
JDB
C
JND
I
RM
I-IIOP
JMS
5
J2SE
EJB Container
EJB
JavaMail
JAF
JDB
C
JND
I
RM
I-IIOP
JMS
JTA
6
DB
ApplicationClient
J2SE
Container
Sun Educational Services
Architecting and Designing J2EE Applications Module 3, slide 8 of 23Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
J2EE Architecture
network transport layer (IIOP * )
lookup
Stub JNDI
Naming andDirectoryService
JNDI Skeleton
Server
bind
TransactionService
JTA
JDBC
Container
Remoteobject
Homeobject
Security
EJB
Persistsence
JavaMail
Client
DB
Sun Educational Services
Architecting and Designing J2EE Applications Module 3, slide 9 of 23Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Layers and Tier With J2EE Technology
Client
Virtual Platform
Upper Platform
Lower Platform Operating system
Operating environment:Web server or application server
APIs, specifications (EJB, JSP, servlet )
ResourcePresentation Business Integration
Composescontent using
businessinformation
Tier Tier Tier Tier Tier
Containsresources
Containsessentialbusinessthemes
Logicalintegration
to resources such asdata
Renders UI,Provideshuman
interaction
Reliability
Availability
Scalability
Manageability
SecurityApplication
J2EE focus
Components (EJB, JSP, servlet)
Sun Educational Services
Architecting and Designing J2EE Applications Module 3, slide 10 of 23Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Flexibility and J2EE Technology
Clients
Clients
Webserver
Applicationserver
Applicationserver
Webserver
Applicationserver
Webserver
Applicationserver
EJB
JSP
Servlet EJB
EJB
Webserver
JSP
Data
Data
2. Location transparency
3. Reconfigurability(JNDI)
on server-side
Flexibility
Reliability
Availability
Manageability
(component-based )
1. Location transparency
(Web access or JNDI )on client-side
21
3
Sun Educational Services
Architecting and Designing J2EE Applications Module 3, slide 11 of 23Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Manageability and J2EE Technology
• Multi-tier architecture impacts manageability
• J2EE technology’s component-based frameworkimproves manageability.
Flexibility
Reliability
Availability
Manageability
Applicationserver
Webserver
Applicationserver
Webserver
Applicationserver
EJB
JSP
Servlet EJB
EJB
Webserver
JSP
Data
Sun Educational Services
Architecting and Designing J2EE Applications Module 3, slide 12 of 23Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
J2EE and Latency Space
Client Webserver
Appserver
Distance
JSP
S
EJBC Data
Content composed close to App server.Reduces back and forth between client and Web server.
Connector can cache data fromresource tier, reducing requests.N
um
ber
of
Mes
sag
es
Sun Educational Services
Architecting and Designing J2EE Applications Module 3, slide 13 of 23Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Vertical Scalability
• Make vertical scalability transparent to the clients.
• Automatic life-cycle management supports morecomponents, such as EJBs, JSPs, and servlets.
WebServer
ApplicationServer Capacity
Reliability
Availability
Manageability
Container
EJB
Container
JSP
DBMSServer
Sun Educational Services
Architecting and Designing J2EE Applications Module 3, slide 14 of 23Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Horizontal Scalability
• Automatic life-cycle management supports clusteringand load-balancing techniques.
LBR
LBR = Load Balancing Router
LBR LBR
ApplicationServers
DBMSServer
DBMSServer
Capacity
Reliability
Availability
Manageability
Web servers
Container
JSP
Container
JSP
Container
Servlet
Container
EJB
Container
EJB
Sun Educational Services
Architecting and Designing J2EE Applications Module 3, slide 15 of 23Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Extensiblity and J2EE Technology
• Distinct roles enhance extensibility.
▼ JSPs and servlets handle the presentation.
▼ EJBs handle the business logic.
ManagesConcurrencyDatabase AccessQueryTransactionsServe data
ManagesSession stateConcurrencyResourcesBusiness calls
ManagesRenderingi18nFormattingEditing
Breaks when Breaks when businessrules change.
Breaks when dataschema changes.UI changes.
Create tiers for managing responsibilities.
JSP, servlet EJB
Sun Educational Services
Architecting and Designing J2EE Applications Module 3, slide 16 of 23Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Essential Patterns
• J2EE framework employs patterns to support thesecapabilities.
• J2EE uses the following core patterns to enable flexibleassociation of EJB classes with other components.
Pattern Use
Proxy Provides a separate implementation of interfaceand working code for location transparency
Decorator Provides a similar contract for a class but withadded functionality
FactoryMethod
Provides ability to define a contract for creatingan object but defers instantiation to subclasses
Abstractfactory
Provides a contract for creating families of relatedor dependent objects without specifying concreteclasses
Sun Educational Services
Architecting and Designing J2EE Applications Module 3, slide 17 of 23Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Proxy Pattern
• Decouples interface and implementation by providingtwo objects.
• If the Work Code class changes, the proxy remains thesame.
• An example is the EJB’s remote interface.
Proxy Work Code
+ getA()+ getB()+ setC()
+ getA()+ getB()
Sun Educational Services
Architecting and Designing J2EE Applications Module 3, slide 18 of 23Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Decorator Pattern
• Provides the same contract for a class but withextended functionality.
Canvas
+ draw + draw
DecoratedCanvas
DecoratedCanvasdraw{
// draw decorationcanvas.draw();// display page
}
Drawing CanvasDrawing x
Sun Educational Services
Architecting and Designing J2EE Applications Module 3, slide 19 of 23Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Decorator Pattern
• The EJB object is a decorator for the bean because thebean’s functionality is expanded to include remotebehavior.
AccountEJBObject
javax.ejb.EJBObject
Account<<interface>>
javax.ejb.EntityBean
AccountBean
Sun Educational Services
Architecting and Designing J2EE Applications Module 3, slide 20 of 23Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Factory Method Pattern
• Provides the ability to define an interface for creatingan object but defers instantiation to subclasses.
• J2EE technology uses this pattern for the EJB homeinterface, which creates new EJB objects.
Design Patterns by Gamma, Helm, Johnson, Vlissidespublished by Addison-Wesley
Document
+ Open()+ Close()+ Save()
Application
+ CreateDocument()+ NewDocument()+ OpenDocument()
MyDocument MyApplication
+ CreateDocument()
* docs
Sun Educational Services
Architecting and Designing J2EE Applications Module 3, slide 21 of 23Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Abstract Factory Pattern
• Provides an interface for creating families of related ordependent objects without specifying concrete classes.
• J2EE technology uses this pattern for the EJB homeinterface, which creates new EJB objects.
Design Patterns by Gamma, Helm, Johnson, Vlissidespublished by Addison-Wesley
WidgetFactory
+ CreateScrollBar()+ CreateWindow()
MotifWidgetFactory
+ CreateScrollBar()+ CreateWindow()
PMWidgetFactory
+ CreateScrollBar()+ CreateWindow()
Sun Educational Services
Architecting and Designing J2EE Applications Module 3, slide 22 of 23Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Check Your Progress
• Describe how J2EE architecture affects thenonfunctional requirements of a system.
• Describe the use of patterns in the J2EE framework.
Sun Educational Services
Architecting and Designing J2EE Applications Module 3, slide 23 of 23Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Think Beyond
Vendor implementations of J2EE provide the Virtual Platformlayer on which you can build an enterprise application. As anarchitect, how do you know how to structure the componentsof your application?
Sun Educational Services
Architecting and Designing J2EE Applications August 2000
Module 4
J2EE Best Practices – Overview
Sun Educational Services
Architecting and Designing J2EE Applications Module 4, slide 2 of 13Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Overview
• Objectives
• Relevance
Sun Educational Services
Architecting and Designing J2EE Applications Module 4, slide 3 of 13Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Experience in Creating Architectures
Experience yields blueprints for solving recurring problems.
• Best Practice–A suggested practice used to drive designat the component level.
▼ Example–Use session beans as facadesto entity beans.
• Guideline–A rule applied horizontally to the design.
▼ Example–Minimize network traffic bymaximizing data requests.
Sun Educational Services
Architecting and Designing J2EE Applications Module 4, slide 4 of 13Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
J2EE Architecture
• Three basic tiers in the J2EE platform.
• Client tier
• Middle tier
• Backend tier
Browser
Presentationtier
Businesstier
Integrationtier
Client Middle Backend
EnterpriseInformation
System (EIS)(Web) (EJB)
Sun Educational Services
Architecting and Designing J2EE Applications Module 4, slide 5 of 13Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
J2EE Best Practices and Guidelines
• You can apply best practices and guidelines in eachtier.
▼ Client tier
▼ Web tier (presentation)
▼ EJB tier (business)
▼ EIS Integration tier (integration)
• You can apply best practices and guidelines toorthogonal services that span tiers.
▼ Security
▼ Transactions
Sun Educational Services
Architecting and Designing J2EE Applications Module 4, slide 6 of 13Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Best Practice – Client Tier
• Decouple the client type from the enterpriseapplication:
▼ HTML browser
▼ Applet
▼ Java application
▼ Non-Java application
Sun Educational Services
Architecting and Designing J2EE Applications Module 4, slide 7 of 13Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Best Practice – MVC Pattern
• Use Model-View-Controller (MVC) pattern to facilitatereuse.
UserGestures
ViewSelection
Method Invocations
Events
View Controller
Presentation tier
ChangeNotification
StateQuery
Model* Encapsulates application state* Responds to state queries* Exposes application functionality* Notifies views of change
Statechange
* Defines application behavior* Maps user actions to model updates* Selects view for response* One for each functionality
* Renders the models* Requests updates from models* Sends user gestures to controller* Allows controller to select view
Sun Educational Services
Architecting and Designing J2EE Applications Module 4, slide 8 of 13Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Best Practice – Business Objects
• Business objects are software abstractions ofapplication data.
• Avoid duplicating code by sharing business objectsamong different client types
• To reuse business objects, you can apply:
▼ Encapsulation
▼ Delegation
▼ Inheritance
Sun Educational Services
Architecting and Designing J2EE Applications Module 4, slide 9 of 13Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Best Practice – Controllers
• Use inheritance or delegation for the Controllers toaccommodate many types of clients (Views).
• Controller should translate user gestures into businessevents.
Javaapplication
HTMLclient
Businessobjects
Businessevents
Javatranslator
HTMLtranslator
Con
trol
ler
Sun Educational Services
Architecting and Designing J2EE Applications Module 4, slide 10 of 13Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Best Practice – Controllers
• Potentially brittle controller design
Controller
Sun Educational Services
Architecting and Designing J2EE Applications Module 4, slide 11 of 13Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Best Practice – Controllers
• Less brittle controller design
Controller
Sun Educational Services
Architecting and Designing J2EE Applications Module 4, slide 12 of 13Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Check Your Progress
• Define the concepts of “best practice” and “guideline”
• Describe the J2EE best practices that you can applyacross all tiers
• Describe the J2EE client tier best practices
Sun Educational Services
Architecting and Designing J2EE Applications Module 4, slide 13 of 13Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Think Beyond
Thin-client solutions (HTML on a browser) are important toInternet-based applications. The browser acts as your clientfor rendering the presentation as encoded in HTML. Whatother solutions are available to render content in a Webbrowser?
In a Web application, what type of component is usually usedfor the View and controller elements of the MVC pattern?
What type of component is usually used for the Modelelement?
Sun Educational Services
Architecting and Designing J2EE Applications August 2000
Module 5
J2EE Best Practices – Web Tier
Sun Educational Services
Architecting and Designing J2EE Applications Module 5, slide 2 of 15Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Overview
• Objectives
• Relevance
Sun Educational Services
Architecting and Designing J2EE Applications Module 5, slide 3 of 15Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Web Tier
• Four types of Web applications using J2EE technology
Sun Educational Services
Architecting and Designing J2EE Applications Module 5, slide 4 of 15Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Applying the MVC Pattern To WebTier Architecture
• MVC architecture implemented using JSP, servlets,and modular components.
Sun Educational Services
Architecting and Designing J2EE Applications Module 5, slide 5 of 15Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Best Practice – Web Tier Components
• Servlets and JSPs provide a means to separatepresentation logic from content.
• J2EE web components can serve two roles:
▼ Front component
▼ Presentation component
Sun Educational Services
Architecting and Designing J2EE Applications Module 5, slide 6 of 15Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Front Component
• Manages other components
• Translates and dispatches the HTTP request
• Front component acts as a controller
• Provides a single entry point to facilitate:
▼ Security
▼ Application state maintenance
▼ Uniform presentation
Sun Educational Services
Architecting and Designing J2EE Applications Module 5, slide 7 of 15Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Presentation Component
• Generates the HTML/XML response.
• Should be modular and reusable.
• Modular design allows for separation of roles.
• Presentation components create consistent lookand feel, but also allows you to personalizeyour user interface.
Sun Educational Services
Architecting and Designing J2EE Applications Module 5, slide 8 of 15Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Best Practices – JSPs and Servlets
• No single correct answer on using JSP or servlets. Candepend on:
▼ Team composition
▼ Time constraints
▼ Application architecture
• You can use both servlets and JSPs for modular,reusable presentation components.
Sun Educational Services
Architecting and Designing J2EE Applications Module 5, slide 9 of 15Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Best Practices – JSPs and Servlets
• Use servlets for low level application functions
▼ Control selection of view (front component)
▼ Generate binary/image data
• Use JSP for presentation-centric declarativemeans of binding dynamic content and logic
▼ Handle HTML representation generatedby a page
Sun Educational Services
Architecting and Designing J2EE Applications Module 5, slide 10 of 15Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
JSP Features
• JSP can contain both presentation logic and content
• Options for binding content to logic
Options Use
JavaBeanscomponent
Data-centric model objects
Ideal for processing requestsreceived from the frontcomponent
Custom Actions Ideal for iterating through a listof data and state display
ScriptletsIdeal when small portions ofcode are needed
Should not be used when largeamount of code is required.
Sun Educational Services
Architecting and Designing J2EE Applications Module 5, slide 11 of 15Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Localization and Internationalization
• Localization (l10n) is the process of adapting anapplication or applet to a specific language or region.
• Internationalization (i18n) is the process of designing anapplication or applet to adapt to various languages andregions.
• The presentation tier is the focus of internationalizationand localization efforts to be able to
▼ Add new languages without recompilation
▼ Provide regionally dependent data, such as currency
▼ Provide regionally dependent behavior
Sun Educational Services
Architecting and Designing J2EE Applications Module 5, slide 12 of 15Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Internationalization Process
1. Separate the display text from the code and place ina properties file.
2. Define as many Locale objects and ResourceBundleobjects as the number of languages to be supported.
▼ Locale objects contain information (metadata)about which language or region.
▼ ResourceBundle objects contain the text for thatlanguage.
3. Access the ResourceBundle objects from the code toobtain the language-specific text.
Sun Educational Services
Architecting and Designing J2EE Applications Module 5, slide 13 of 15Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Internationalization
• In addition to Locale and ResourceBundle objects injava.util , java.text provides support forinternationalization:
▼ Currency formatting (DecimalFormat )
▼ Date Formatting (SimpleDateFormat )
▼ Messages with variable ordering to the words
▼ English — subject-verb-object
▼ Hebrew — verb-subject-object
▼ German — object-verb-subject-verb
Sun Educational Services
Architecting and Designing J2EE Applications Module 5, slide 14 of 15Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Check Your Progress
• Describe the components and categories of the WebTier
• Define how you can apply the MVC pattern to the Webtier
• Specify the best practices and guidelines of thePresentation components in the Web Tier
• Describe the use of “localization” and “internalization”
Sun Educational Services
Architecting and Designing J2EE Applications Module 5, slide 15 of 15Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Think Beyond
Because of the ubiquity of the Web, this tier is critical for manyenterprise applications. You have seen that the Web tier isresponsible for a) selecting a view and b) separating thepresentation of the data from the business objects, and c)performing localization and internationalization.
What other responsibilities does the Web tier have?
Sun Educational Services
Architecting and Designing J2EE Applications August 2000
Module 6
J2EE Best Practices – EJB Tier
Sun Educational Services
Architecting and Designing J2EE Applications Module 6, slide 2 of 11Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Overview
• Objectives
• Relevance
Sun Educational Services
Architecting and Designing J2EE Applications Module 6, slide 3 of 11Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
The EJB Tier
• The Enterprise JavaBeans (EJB) tier hosts the following:
▼ Application-specific business objects
▼ System-level services (such as transactionmanagement, concurrency control, and security)
• The EJB tier is a critical link between the web tier andthe EIS integration tier.
▼ Entity beans and session beans
▼ Data access objects and value objects
▼ Session beans as a facade to entity beans
▼ Master-detail modeling using enterprise beans
Sun Educational Services
Architecting and Designing J2EE Applications Module 6, slide 4 of 11Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Guidelines – Using Session Beans
• Stateful session beans:
▼ Maintain client-specific state
▼ Represent non-persistent objects
▼ Represent workflow between business objects
• Stateless session beans:
▼ Model reusable service objects
▼ Provide high performance
▼ Operate on multiple rows in the database
▼ Provide procedural view of data
Sun Educational Services
Architecting and Designing J2EE Applications Module 6, slide 5 of 11Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Guidelines – Using Entity Beans
Use entity beans to model business objects when thefollowing circumstances apply:
• Coarse-grained business objects:
▼ Represent persistent data
▼ Provides behavior beyond accessor methods
• Shared, concurrent access by clients
• Represent a single logical record in the database
• Provide robust, long-lived persistent data managementthat can recover from crashes
Sun Educational Services
Architecting and Designing J2EE Applications Module 6, slide 6 of 11Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Best Practice – Data Access Objects
• Encapsulate access to data
• Maintain clean separationof bean and databaseaccess code
• Ensure easier migration tocontainer-managed persistence for entity beans
• Allow for cross-database and cross-schema capability.
Client EntityBean
SessionBean
DataAccessObject
DataAccessObject
JDBC
EJB tier
Sun Educational Services
Architecting and Designing J2EE Applications Module 6, slide 7 of 11Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Best Practice – Value Objects
• Modeling every business object as EJBs is expensive
• Use value objects for:
▼ Fine-grained business objects that representstructure with get/set behavior only
▼ Dependent objects
▼ Immutable objects
Client
Valueobject
Enterprise DataBean
Sun Educational Services
Architecting and Designing J2EE Applications Module 6, slide 8 of 11Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Best Practice – Session Bean Facade
• Provides a simple, single point of entry to shared entitybeans
• Shields the client from complex entity beanrelationships
• Manages workflow on client’s behalf
• Reduces remote calls to the server
ClientSession
Entity
EntityDatabase
Entity
Entity
Sun Educational Services
Architecting and Designing J2EE Applications Module 6, slide 9 of 11Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Master-Detail Modeling
• Master-detail modeling is a one-to-many type ofrelationship among data sets.
• Master holds a list to many detailed objects.
• Expanded view is contained in the detail objects.
• Master is usually a stateful session bean.
• Entity beans provide a detailed view.
Enity BeansSession Bean Database rows
A
B
C
DCatalog Listing
AB
CD
Sun Educational Services
Architecting and Designing J2EE Applications Module 6, slide 10 of 11Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Check Your Progress
• List the best practices and guidelines for using entitybeans and session beans
• Define Data Access Objects and describe their purpose
• Define Value Objects and describe their purpose
• Describe the use of Session Bean Facades
Sun Educational Services
Architecting and Designing J2EE Applications Module 6, slide 11 of 11Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Think Beyond
You have seen two ways of hiding the details of the EIS tier:Data Access Objects and Master-Detail encapsulation. Thesetwo are specifically used for integrating to a database. Whatother EIS resources might an application need to integrate?
In this module you saw that you can control the client’s accessto the application using a session bean facade pattern and inModule 4, ‘‘J2EE Best Practices – Overview" you learned thatcentral controllers can be brittle. How can the SEF pattern beextended to minimize the brittleness of the session bean?
Sun Educational Services
Architecting and Designing J2EE Applications August 2000
Module 7
J2EE Best Practices – EIS Integration Tier
Sun Educational Services
Architecting and Designing J2EE Applications Module 7, slide 2 of 11Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Overview
• Objectives
• Relevance
Sun Educational Services
Architecting and Designing J2EE Applications Module 7, slide 3 of 11Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
EIS Integration Tier
• EIS Integration tier provides the informationinfrastructure for an enterprise.
• Accessing EIS can be complex, requiring vendorspecific knowledge of:
▼ Application programming model
▼ Transactions
▼ Security
• J2EE reduces the complexity of accessing an enterpriseinformation system by relying on the Web and EJBcontainers to handle transactions, security, andscalability.
Sun Educational Services
Architecting and Designing J2EE Applications Module 7, slide 4 of 11Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Integrating an EIS
J2EETechnology
Use
JDBC Accesses relational data
JNDI Accesses enterprise name anddirectory services
JMS Sends and receives messagesusing enterprise messagingsystems
JavaMail Sends and receives mail
JavaIDL Calls CORBA services
JNI Calls services written in otherlanguages
JNI Can interact with nativelanguages
Sun Educational Services
Architecting and Designing J2EE Applications Module 7, slide 5 of 11Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
EIS Guidelines – Data Access
• Rely on vendor tools for EIS integration:
▼ Data and function mining tools
▼ Object-oriented analysis and design tools
▼ Application code generation tools
▼ Application composition tools
▼ Deployment tools
• Rely on deployers to set transaction, security, anddeployment requirements
Sun Educational Services
Architecting and Designing J2EE Applications Module 7, slide 6 of 11Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
EIS Access Objects
• Abstract complex, low-level details of EIS systemaccess into access objects:
▼ Provide a common, consistent access to varioustypes of EIS
▼ Separate access objects from business objects
▼ Access objects can be made into well knowJavaBeans for use in development tools
Sun Educational Services
Architecting and Designing J2EE Applications Module 7, slide 7 of 11Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Guidelines – Access Objects
• Access objects abstract the complex, low-level details ofaccessing an EIS system:
▼ Provide a common, consistent access to varioustypes of EIS systems
▼ Separates access objects from business objects
▼ Access objects can be made into well knownJavaBeans for use in development tools
Sun Educational Services
Architecting and Designing J2EE Applications Module 7, slide 8 of 11Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Guidelines – Access Objects
• When implementing access objects, do not makeassumptions about environments outside accessobjects.
• Design for reusability across tiers and components.
• Access objects should not define declarativetransactions or security requirements.
• Maintain consistency in programming restrictionsbetween business objects and access objects.
Sun Educational Services
Architecting and Designing J2EE Applications Module 7, slide 9 of 11Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Guidelines – Connections
• Components should acquire and release connectionswithin a single method
• Account for differences across component types inconnection management:
▼ JSP and servlet
▼ Stateful and stateless session beans
▼ Entity beans
• Components should avoid opening multipleconcurrent connections to a single database (notsupported by some JDBC drivers)
Sun Educational Services
Architecting and Designing J2EE Applications Module 7, slide 10 of 11Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Check Your Progress
• Define the concepts of “best practice” and “guideline”
• Describe the best practices using J2EE technology thatyou can apply across all tiers
• Describe the J2EE client tier best practices
Sun Educational Services
Architecting and Designing J2EE Applications Module 7, slide 11 of 11Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Think Beyond
• Integration to backend resources can be challenging.Even dealing with a relational database is not trivial.Can you imagine what an access object might need todo to adapt to a legacy database?
Sun Educational Services
Architecting and Designing J2EE Applications August 2000
Module 8
J2EE Best Practices — Services
Sun Educational Services
Architecting and Designing J2EE Applications Module 8, slide 2 of 25Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Overview
• Objectives
• Relevance
Sun Educational Services
Architecting and Designing J2EE Applications Module 8, slide 3 of 25Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Security
• Threats to enterprise-critical assets can include:
▼ Disclosure of confidential information
▼ Modification or destruction of information
▼ Misappropriation of protected resources
▼ Compromise of accountability
▼ Misappropriation that compromises availability
Sun Educational Services
Architecting and Designing J2EE Applications Module 8, slide 4 of 25Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Security
• Exposure to threats can be mitigated using:
▼ Authentication
▼ Authorization
▼ Protecting Messages
▼ Auditing
Sun Educational Services
Architecting and Designing J2EE Applications Module 8, slide 5 of 25Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Security Guidelines
• Support a consistent end-to-end security architecture
• Seamlessly integrate with security environment of EIS
• Support authentication and authorization
• Are transparent to application components
• Enable applications to be portable across securityenvironments
Sun Educational Services
Architecting and Designing J2EE Applications Module 8, slide 6 of 25Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Security Terminology
• An entity is something that can have access rightsapplied to it.
• A principal is an entity to which privileges can beassigned.
• A role is a collection of privileges.
Sun Educational Services
Architecting and Designing J2EE Applications Module 8, slide 7 of 25Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Authentication
• Mechanism by which callers and service providersprove that they are acting on behalf of specific users orsystems.
• Web-tier authentication:
▼ HTTP basic authentication
▼ Form-based authentication
▼ HTTPS mutual authentication
Sun Educational Services
Architecting and Designing J2EE Applications Module 8, slide 8 of 25Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Authentication in the EJB and EISIntegration Tiers
• EJB-tier authentication:
▼ Protection domains
▼ Put a protected web resource in front of a protectedEJB resource
▼ Link protected web resources on every web resourcethat calls EJB resources
• EIS integration tier authentication:
▼ Container-managed resource manager sign-on
▼ Application-managed resource manager sign-on
Sun Educational Services
Architecting and Designing J2EE Applications Module 8, slide 9 of 25Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Protection Domains
• In a J2EE application, protection domain refers to a setof entities that are assumed, or known to trust eachother.
Sun Educational Services
Architecting and Designing J2EE Applications Module 8, slide 10 of 25Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Authorization
• Authorization entails applying security policies toregulate what specific users, or groups of users, canaccess in the system.
• Access control limits the resources a user has access tobased on the user’s permissions.
• Access control can also be used to limit the type ofaccess a user has to a resource, such as read or writeaccess.
Sun Educational Services
Architecting and Designing J2EE Applications Module 8, slide 11 of 25Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Authorization
• Two approaches to defining access control rules:
▼ Capabilities focus on what a caller can do
▼ Permissions focus on who can do what
• J2EE application programming model focuses onpermissions
Sun Educational Services
Architecting and Designing J2EE Applications Module 8, slide 12 of 25Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Declarative and ProgrammaticAuthorization
• Declarative authorization can be used by specifyingsecurity roles and:
▼ Associating them with components in the EJB tierdeployment descriptor
▼ Controlling access to a HTTP request, such as GET
• Programmatic authorization can be used for very fine-grained access control:
▼ EJB tier: EJBContext.isCallerInRole
▼ Web tier: HttpServletRequest.isUserInRole
Sun Educational Services
Architecting and Designing J2EE Applications Module 8, slide 13 of 25Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Declarative and ProgrammaticAuthorization
• Use declarative authorization where possible andprogrammatic authorization when more functionalityis required.
• When using declarative authorization, ensure accesscontrol is not bypassed.
▼ Apply same access control rules to all the methods ina component.
Sun Educational Services
Architecting and Designing J2EE Applications Module 8, slide 14 of 25Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Controlling Access to Resources
• To control access to web resources, specify theconstraint in the deployment descriptor.
• To control access to EJB resources, specify the roles inthe deployment descriptor.
• You can also specify the methods of the remote andhome interface that each security role is allowed toinvoke.
• The proper assignment of users to roles determineswhether a resource is protected.
Sun Educational Services
Architecting and Designing J2EE Applications Module 8, slide 15 of 25Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Protecting Messages
• To ensure message integrity the following measurescan be used:
▼ Message signature: a cryptographically encipheredmessage digest of the message contents
▼ Message confounder: ensures message authenticationis useful only once
• Message signatures might be required for component-to-component invocations that traverse unprotectednetworks.
• Specify message protection only for critical messagesand components in the deployment descriptor.
Sun Educational Services
Architecting and Designing J2EE Applications Module 8, slide 16 of 25Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Auditing
• Auditing is the practice of capturing a record ofsecurity-related events for accountability purposes.
• Audit records must be protected so that attackerscannot escape accountability.
Sun Educational Services
Architecting and Designing J2EE Applications Module 8, slide 17 of 25Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Transactions
• Ensure data integrity by controlling access to data.
• Free an application programmer from the complexissues of failure recovery and multi-userprogramming.
• Are a mechanism for simplifying the development ofdistributed multiuser enterprise applications.
• Span across all tiers.
Sun Educational Services
Architecting and Designing J2EE Applications Module 8, slide 18 of 25Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Transaction Guidelines in Web Tier
• A servlet or JSP can use JNDI to lookup aUserTransaction and use JTA to demarcatetransactions.
• A servlet should only start a transaction in its servicemethod
• A transaction should not span multiple web requests.
• In multi-tier environment using EJB, use of JTA in theWeb tier is not recommended.
Sun Educational Services
Architecting and Designing J2EE Applications Module 8, slide 19 of 25Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Transaction Guidelines in EJB Tier
• Bean-managed transaction demarcation:
▼ EJB bean uses UserTransaction
▼ Only session beans can choose to use bean-managedtransactions
• Container-managed transaction demarcation:
▼ EJB container is responsible for transactiondemarcation
▼ You should use container-managed transactiondemarcation
Sun Educational Services
Architecting and Designing J2EE Applications Module 8, slide 20 of 25Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
EJB Tier – Container-ManagedTransaction Demarcation
• Transaction behavior of EJB is specified declarativelyand frees the developer from writing code.
• Less error-prone because of container handling.
• Easier to compose multiple enterprise beans to performa certain task with transaction behavior.
• Can result in improved performance.
Sun Educational Services
Architecting and Designing J2EE Applications Module 8, slide 21 of 25Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Transaction Attributes
• Use Required for the default transaction attribute.
• RequiresNew attribute is useful when the beanmethods need to commit unconditionally.
• The NotSupported attribute can be used when theresource manager is not supported by the J2EEproduct.
• The blueprint recommends not using the attributeSupports.
• Mandatory and Never can be used when it is necessaryto verify the transaction is associated with the client.
Sun Educational Services
Architecting and Designing J2EE Applications Module 8, slide 22 of 25Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Transaction Guidelines in EISIntegration Tier
• Recommends that a component use JTA wheneverpossible when accessing EIS systems.
Sun Educational Services
Architecting and Designing J2EE Applications Module 8, slide 23 of 25Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Compensating Transactions
• A compensating transaction is a transaction, or group ofoperations used to undo the effect of a previouslycommitted transaction.
• Useful if a component needs to access an EIS that does notsupport JTA.
• Pitfalls of using compensating transactions:
▼ Not always possible to undo the effect of a committedtransaction
▼ Atomicity could be broken if the server crashes when acompensating transaction is used
▼ Inconsistent data might be seen by concurrent EIS access
Sun Educational Services
Architecting and Designing J2EE Applications Module 8, slide 24 of 25Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Check Your Progress
• Describe security guidelines, terminology, and formsof authentication
• Define the key features of security
• Describe the role of transactions
• List the best practices and guidelines relating totransactions in each tier
Sun Educational Services
Architecting and Designing J2EE Applications Module 8, slide 25 of 25Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Think Beyond
• What are some patterns that can be used with J2EEtechnology?
Sun Educational Services
Architecting and Designing J2EE Applications August 2000
Module 9
J2EE Patterns
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 2 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Overview
• Objectives
• Relevance
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 3 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Introducing J2EE Patterns
• J2EE is a relatively new platform for deliveringWeb-based applications.
• Difficulty in designing reusable, flexible object-oriented applications.
• Task becomes more complex withdistributed and transactional objects.
• Facilitate the design process with a collection of provendesign patterns.
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 4 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Defining Patterns
• A pattern is a common repeatable solution.
• Patterns are generic and take many forms:
▼ Architectural
▼ Design
▼ Deployment
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 5 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Defining Idioms
• Are technology-specific patterns
• Can be specific to languages
• Generic to solution, but specific implementation
Servlet JSP JavaBean Helper
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 6 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Using the J2EE Patterns
• You use J2EE patterns to ensure the following:
▼ Modularity
▼ Protection and exposure
▼ Component extensibility
▼ Roles and responsibilities
▼ Contracts
▼ Pluggable behavior
▼ Performance
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 7 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Modularity
• Maintain modularity at each abstraction.
• Hide details in each abstraction.
• J2EE patterns extends J2EE’s component architectureby allowing different components to be interchanged.
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 8 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Protection and Exposure
• Protect the expensive resources.
▼ The J2EE patterns limit calls to expensive resources.
▼ The J2EE patterns protects access to sensitive data.
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 9 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Component Extensibility
• The J2EE patterns can address limitations.
• EJB specification does not specify the conceptof object inheritance.
▼ How does the primary key of the derived classrelate to the primary key of the parent class?
▼ How does component inheritance affect theparent component’s persistence?
• Home and Remote interfaces can be extended,as well as corresponding enterprise beanimplementations.
• Factory and Facade patterns can offer an alternative.
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 10 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Roles and Responsibilities
• Identifying roles keeps the abstractions and data flowdefinition clear.
• The J2EE patterns support this by clarifyingabstractions, interactions, and data flow.
Helper BusinessContract
SessionEJB
Role : Business data retriever Role : Business client access Role : Business service
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 11 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Contracts
• Create business contracts for clients to enforce clientaccess to services.
• For example, JSP helper and an applet would call thebusiness services through the same contract.
• Keep the contract business oriented.
NetworkHelper
Applet
Business Contract Session EJB
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 12 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Pluggable Behavior
• Command and strategy patterns are examples ofpluggable behavior that enforce client access toservices.
• The ability to pass complex objects dynamically makesa system much more flexible.
• J2EE supports the ability to pass data dynamicallyusing XML as well as the ability to pass complexobjects.
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 13 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Performance
• Create abstractions to support caching and optimizedremote service access.
• Can use a J2EE pattern to cache large data sets andallow client to access data from the session bean.
This:
Business Contract
Business Contract
Becomes this:
network
network
12
3
1
12
3
1
SessionEJB
SessionEJB
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 14 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Performance
• Be aware of the amount of data going across the wire.
• Partial data can be cached remote to the client.
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 15 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
J2EE Patterns Categories
• Presentation tier patterns:
▼ J2EE patterns that cover presentation tier
▼ Consists of Web tier components
• Business tier patterns:
▼ Patterns that cover the provision of business services
▼ Consists of EJB tier and EIS tier components
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 16 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Sample J2EE Patterns
• The following patterns are described:
▼ Mediator View - JSP (MVJSP)
▼ Session Entity Facade (SEF)
▼ Business Delegate (BD)
Note: These patterns can also be referred to as idioms.
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 17 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Mediator View - JSP (MVJSP)
• Used in the web Tier
Requirements Scenario
• The application is non-trivial, with dynamicpresentation content.
• Allows web access to business services usingWeb Tier components.
• Responses require server side processing, andformulation of dynamic presentation.
• Sophisticated business requirements with a fewpossible views for a request.
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 18 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
MVJSP Pattern Participants, Roles andResponsibilities
• Dispatcher
• View
• Helper
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 19 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
MVJSP Pattern StructureClient
(CommonServices)<<Servlet>>
Dispatcher
dispatch()
<<JSP>>View
BusinessDelegate(com.sun.j2ee.patterns)
<<JavaBeans>>Helper
1..*
1..*
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 20 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
MVJSP Pattern Collaborations
Client :Dispatcher :View :Helper :BusinessDelegate
1: Request2: Process
3: Forward4: getProperty
5: getData
6: return
7: return
8: Response
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 21 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
MVJSP Pattern Constraints
• The Dispatcher is the initial contact point for therequest.
• The Dispatcher dispatches to the View.
• The View delegates to one or more Helpers.
• Helpers can delegate to a business delegate.
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 22 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
MVJSP Pattern Benefits
• You can clearly separate roles, thereby reducingcoupling
• The Dispatcher handles processing that is commonacross requests, for example, authentication.
• Suitable for handling work flow situations withmultiple and varied invocations to perform dataretrieval of the presentation model.
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 23 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
MVJSP Pattern Drawbacks
• Can lead to more work in a simple application.
• The View also shares some responsibility forcontrolling business processing.
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 24 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Session Entity Facade (SEF)
• Applied to the EJB tier.
Requirements Scenario
• Business objects have the responsibility of persistence,and the ability ot manage attributes.
• Business objects need to be represented by EntityBeans.
• You may need to use multiple entity beans to fulfill abusiness transaction.
• Business rules are also present in the transaction.
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 25 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
SEF Pattern Participants, Roles, andResponsibilities
• Attribute
• BusinessEntity
• BusinessSession
• DataAccessor
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 26 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
SEF Pattern StructureEJBSession
BusinessSession
<<EJBEntity>>BusinessEntity
<<Interface>>DAO
Attributemanages <<creator>> create()
<<accessor>> get..()
<<mutator>> set..()
<<finder>> findByPrimaryKey()
<<remove>> remove()
connect()
load()
store()
disconnect()
<<creator>> create()
<<accessor>> get..()
<<mutator>> set..()
<<user>> businessMethod()
<<user>> createBusinessEntity()
<<state>>isBoundToEntity()
<<state>>setBoundToEntity()
<<state>> bindBusinessEntity()
<<finder>> findBusinessEntity()
1..* 1..*
has
uses
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 27 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
SEF Pattern Collaborations (Steps 1-11)Client :BusinessSession :BusinessEntity :DAO
2: bindBusEntity(pk)
3: findBusEntity(pk)
4: findByPrimaryKey(pk)
5:load()
6:setBoundToEntity(Boolean)
7: get...()
9: set...(Attribute)
8: get...()
11:store()
10: set...(Attribute)
1: create()
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 28 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
SEF Pattern Collaborations (Steps 12-20)
15: store()
Client :BusinessSession :BusinessEntity :DAO
19: store()
20: setBoundToEntity(Boolean)
17: setBoundToEntity(Boolean)
18: create(PrimaryKey)
16: createBusEntity(PrimaryKey, List)
13: get...()
14: set...(Attribute)
12: busMethod(List)
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 29 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
SEF Pattern Constraints
• BusinessEntity represents the business object andits attributes
• BusinessEntity cannot contain any business logic.
• BusinessEntity must not expose all its attributes(using getters and setters) to the client tier
• Business logic is coded in a separateBusinessSession layer
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 30 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
SEF Pattern Benefits and Drawbacks
Benefits
• There is a separation of business logic and thepersistent object.
• None of the attributes and the get/set methods areexposed to the client layer, which avoids erroneous(intended or otherwise) operations on theBusinessEntity .
• If the method calls from the client are frequent, thenthis pattern is suitable because the BusinessSessionretains the state.
Drawback
• The facade must change if you add a new entity.
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 31 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Business Delegate (BD)
• Can be used in the client tier, Web tier, and EJB tier.
Requirements Scenario
• Business services represented by EJB beans must beaccessed by clients, either as Java technologyapplications or as Web tier components.
• Decouple the client requiring business service accessfrom the details of locating home interfaces, andinvoking remote methods.
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 32 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
BD Pattern Participants, Roles, andResponsibilities
• BusinessDelegate
• BusinessSession
• ServiceHandler
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 33 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
BD Pattern Structure
ServiceHandler
getService()
<<EJBSession>>BusinessSession
BusinessDelegate
<<EJBHome>>
get<...>()set<...>()
BusinessHome
lookup
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 34 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
BD Pattern Collaborations
:ServiceHandler :BusinessHome :BusinessSession:BusinessDelegate
1: getService()
2: lookup
3: create/remove/find
4: invoke
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 35 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
BD Pattern Constraints
• Busier delegate hides the service access.
• ServiceHandler handles the BusinessHomelookup.
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 36 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
BD Pattern Benefits
• Provides a contract for client access to business services
• Maintains uniformity of access to business services
• Decouples client business logic from access logic
• Allows for separation of client development roles
• Provides transparent access to legacy services.
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 37 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
BD Pattern Drawbacks
• Requires CORBA expertise
• Requires CORBA ORB on legacy system
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 38 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Using J2EE Patterns – A HotelReservation System
• Princess Inn Hotel reservation system:
▼ Use case diagram
▼ Domain model
▼ Sequence diagram
▼ Patterns applied
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 39 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Hotel Reservation Use Case Diagram
RegisterLogin
Check availability
Reserve room
View confirmed reservation
Cancel reservation
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 40 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
J2EE Patterns in the Domain Model
ReservationManager
ScheduleManager Room
reserveRoom()getAvailableRooms()
Reservation
checkAvailability()
selectRoom()
create()cancel()
makeReservation()getAvailableRooms()cancelReservation()
schedules
holds
creates
uses reserves
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 41 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Reserve Room Sequence Diagram
:ReservationManager :ScheduleManager :Reservation:Customer
1: makeReservation()
2: checkAvailability()
:Room
3: create()
4: reserveRoom()5: selectRoom()
6: return
confirmation7: return
confirmation
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 42 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
J2EE Patterns in Reserve Room
• Requirements
▼ User interaction: Reserve Room
▼ Mediator View
• Workflow: Reserve Room
▼ Session Entity Facade
• Integrate: UI and Workflow
▼ Business Delegate
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 43 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
J2EE Patterns in Reserve Room
:Dispatcher :Helper :Delegate:Customer :Room:View:Reservation :Schedule
Mediator View PatternBusinessPattern
Session Entity FacadePattern
Man Manager :Reservation
RequestReservation authenticate
forwardgetProperty
getConfirmationmakeReservation
checkAvailability
create
reserveRoomselectRoom
return confirmationreturn
returnreturn
display
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 44 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Check Your Progress
• Define Patterns
• Define Idioms
• List the goals of J2EE Patterns
• Describe the following J2EE patterns in detail:
▼ Mediator View - JSP (MVJSP)
▼ Session Entity Facade (SEF)
▼ Business Delegate (BD)
Sun Educational Services
Architecting and Designing J2EE Applications Module 9, slide 45 of 45Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Think Beyond
• This module has presented only a few J2EE patterns.However, there are many morepatterns. Can you guesswhy these are important patterns in J2EE pplications?
• Of the “best practices” that you have seen in thiscourse, can you guess which of these contribute toother J2EE patterns, and why?
Sun Educational Services
Architecting and Designing J2EE Applications August 2000
Module 10
Special Topics
Sun Educational Services
Architecting and Designing J2EE Applications Module 10, slide 2 of 21Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Overview
• Objectives
• Relevance
Sun Educational Services
Architecting and Designing J2EE Applications Module 10, slide 3 of 21Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Applicability of J2EE Technology
• The J2EE™ Blueprints’ Java™ Pet Store application isan example of Web-enabled consumer transactions.
▼ Business-to-Consumer (B2C)
• You can apply the J2EE programming model to manydifferent kinds of applications.
▼ Business-to-Business (B2B) web systems
▼ Enterprise resource planning (ERP)
▼ Workflow applications
Sun Educational Services
Architecting and Designing J2EE Applications Module 10, slide 4 of 21Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Business-to-Business (B2B)
• Applications that web-enable business transactions:
▼ Interbank transactions
▼ Chemical feedstock auctions
▼ Distributor-to-distributor inventory exchange
Sun Educational Services
Architecting and Designing J2EE Applications Module 10, slide 5 of 21Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
When Is it a B2B Application?
• Difficult to tell the difference between B2B and B2Cbecause the division is somewhat arbitrary.
• Some B2B systems are almost identical to B2C.
▼ Example: www.grainger.com provides officeproducts using the web.
Sun Educational Services
Architecting and Designing J2EE Applications Module 10, slide 6 of 21Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Interbank Transactions
• Banks require secure, auditable, “non-repudiable”transactions for:
▼ Letters of credit
▼ Interbank transfers
▼ “Signature guaranteed” transactions
Sun Educational Services
Architecting and Designing J2EE Applications Module 10, slide 7 of 21Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Chemical Feedstock Auctions
• “Chemical feedstocks” are materials used in chemicalmanufacturing:
▼ Formaldehyde
▼ Methanol
▼ Ethylene
• Online feedstock auctions allow pharmaceuticalcompanies to find supplies nearby, optimizingfeedstock cost and shipping cost.
Sun Educational Services
Architecting and Designing J2EE Applications Module 10, slide 8 of 21Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Distributors Sharing Inventory
• Heavy-equipment manufacturers and distributorsoften exchange inventory:
▼ For spare parts
▼ For unusual or popular configurations
• Existing systems require proprietary networks:
▼ Expensive
▼ Inflexible
Sun Educational Services
Architecting and Designing J2EE Applications Module 10, slide 9 of 21Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Identrus for Interbank Transactions
• Identrus transactions are XML documents (structureddocuments).
• XML documents are signed using the sender’scertificate, which establishes the sender’s identity(authentication).
Identrusroot
Bank 1 Bank 2
TradingPartner
Manufacturer
3b
4
3a
1
2
56
Sun Educational Services
Architecting and Designing J2EE Applications Module 10, slide 10 of 21Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Identrus, XML, and EDI
• EDI - Electronic Data Interchange is a standard forexchanging business transcations.
• Other similar standards are x.12 and EDIFACT
• EDI transactions are “structured documents”
• EDI transactions exchanged using X-25 VAN
• Combine EDI with XML to get ebXML
• Identrus allows trusted exchange of XML transactions
• Therefore, Identrus and XML yields a universal EDIusing the Web.
Sun Educational Services
Architecting and Designing J2EE Applications Module 10, slide 11 of 21Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Why XML and EDI?
• Using XML-based EDI reduces cost of entrydramatically
• Web-based communications
• Common protocol (HTTP, HTTPS)
• Eliminates expensive X.25 VANS
• Standard software supports XML
Sun Educational Services
Architecting and Designing J2EE Applications Module 10, slide 12 of 21Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Enterprise Resource Planning
• Really means enterprise integration.
• Integrated management of business data throughoutthe enterprise
• Major vendors: SAP, Peoplesoft, and JD Edwards
• Provides:
▼ Uniform data representation
▼ Uniform user interface
▼ Flexible reporting tools
Sun Educational Services
Architecting and Designing J2EE Applications Module 10, slide 13 of 21Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Web-based ERP
• Web-based applications can provide a simple way toget a uniform thin-client interface.
• Most ERP applications have a Web-based interfaceavailable.
• Where does EJB fit in?
Client Presentation
Application Resource Data
tier tier
layer layer layer
Enterprise resource planning layer(ERP)
Sun Educational Services
Architecting and Designing J2EE Applications Module 10, slide 14 of 21Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
J2EE Technology Used in B2B
Client Presentation Business Integration Resource B2B Types
Member banksystems
XMLtransactionformating
Transactionsignedtransactions
Communicationconnector
Bankinglegacysystems
Interbanktransactions
Web clients List of offers Offer, order Web services,connector
ChemicalSystemLegacy
Chemicalauction
Distributorinventory sys-tems
XML Connector DistributorInventorySystem
Distributor-distributorinventory
JSP, servlet EJB Connector
Inventory
*
Parts
Sun Educational Services
Architecting and Designing J2EE Applications Module 10, slide 15 of 21Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Workflow Application
• In any multistep business process, such as:
▼ Entering, verifying, packing, and shipping an order
▼ Receiving, entering, processing, and closing atrouble ticket or problem report
▼ Drafting, reviewing, and finalizing a contract
• Can be done by one person or many people
• Has a number of discrete steps over a relatively longtime, for example: a person interacts with anotherpeoson at each step like an assembly line.
Sun Educational Services
Architecting and Designing J2EE Applications Module 10, slide 16 of 21Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Managing Workflows
• Workflows manage the work piece as it progresses..
Receivesorder
Verifiescredit
Order withcredit
authorization
Packitems forshipping
Receivesbox and
ships
Order entryclerk
Creditmanager
Packingclerk
Shippingdock
Transportationagency
Label forshipping
Customer
Order
s: shipment
[packed]
Order
s: shipment
[labelled]
Sun Educational Services
Architecting and Designing J2EE Applications Module 10, slide 17 of 21Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
A Workflow-based System
• Has the objects for the work pieces
• Has the objects for the worker roles (or workstations)
ORDER
items: list of items
addItem(item)
listItems()
Order Creditmanager
Packingclerk
Shippingdock
Transportationagententry
WorkStation
Sun Educational Services
Architecting and Designing J2EE Applications Module 10, slide 18 of 21Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Work Pieces
• Work pieces are also called jobs or tasks.
• Usually contains a complicated state machine.
• Work stations have a queue of jobs to be performed.
Neworder
Authorizedorder
Packedorder
Creditauthorization
failed
Back-ordereditems
Orders waiting forcredit authorization
Creditmanager
Orders tobe placed
Sun Educational Services
Architecting and Designing J2EE Applications Module 10, slide 19 of 21Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
J2EE Technology in a WorkflowApplication
• A workflow system is just another domain model.
• Often the work piece has a set of workflow rules.
• Workflow is a common place to apply the strategypattern.
Sun Educational Services
Architecting and Designing J2EE Applications Module 10, slide 20 of 21Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Check Your Progress
• Define the concepts of “best practice” and “guideline”
• Describe the best practices using J2EE technology thatcan be applied across all tiers
• Describe the J2EE client tier best practices
Sun Educational Services
Architecting and Designing J2EE Applications Module 10, slide 21 of 21Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Think Beyond
• Are there other areas where you think J2EE technologywould work? If yes, please list them.
• Are there other areas where you think J2EE technologywould not work well? If so, please list them.
Sun Educational Services
Architecting and Designing J2EE Applications August 2000
Appendix A
UML Quick Reference
Sun Educational Services
Architecting and Designing J2EE Applications Appendix A, slide 2 of 21Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Model the Business
• A modeling language such as UML is a graphicalnotation used with a process to communicate a design.
• Artifacts are documents that are developed during theprocess stages.
Sun Educational Services
Architecting and Designing J2EE Applications Appendix A, slide 3 of 21Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Package Dependency and Note
Package 1name
Stereotype name
namePackage 2
Note text
Sun Educational Services
Architecting and Designing J2EE Applications Appendix A, slide 4 of 21Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Class Diagram
Class name
AttributeAttribute: data_typeAttribute: data_type=init_value
OperationOperation(arg_list):result_type
Class name
Sun Educational Services
Architecting and Designing J2EE Applications Appendix A, slide 5 of 21Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Visibility and Properties
Class name
publicprotectedprivate
OperationOperation(arg_list):result_type
class attribute
+#-
ClassOperation()
Sun Educational Services
Architecting and Designing J2EE Applications Appendix A, slide 6 of 21Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Generalization and SpecializationRelationships
Class A
Class B Class DClass CClass B
Class A
<<interface>>
ClassA_Impl
Class A
Generalization
Interface Implementation
Sun Educational Services
Architecting and Designing J2EE Applications Appendix A, slide 7 of 21Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Association Classes
Class 1 Class 2Association Name
AssociationClass name
Attribute
Operation
Sun Educational Services
Architecting and Designing J2EE Applications Appendix A, slide 8 of 21Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Role Names and Derived Associations
Class 1 Class 2
AssociationAssociation Name
Role 1 Role 2* 0..1
Sun Educational Services
Architecting and Designing J2EE Applications Appendix A, slide 9 of 21Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Aggregation, Multiplicity WithDirection Indicators
Whole class name
Part1 class name Part2 class name
Aggregation Composite aggregation
Unidirectionalnavigability
Bidirectionalnavigability
Sun Educational Services
Architecting and Designing J2EE Applications Appendix A, slide 10 of 21Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Use Case Diagram
Use-case name
Actor name
Sun Educational Services
Architecting and Designing J2EE Applications Appendix A, slide 11 of 21Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
State Diagram
Runnable
Blocked
Running
Initial stateTransition
Unblocked Blocking event
Scheduler
State node Final state
run() completesstart()
Sun Educational Services
Architecting and Designing J2EE Applications Appendix A, slide 12 of 21Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Object Diagrams
Count
- counter : int = 0- serialNumber : int
c1 : Count
serialNumber=1
c2 : Count
serialNumber=2
<<instanceOf >> <<instanceOf >>
Sun Educational Services
Architecting and Designing J2EE Applications Appendix A, slide 13 of 21Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Sequence Diagrams
Object 2Object 1
:Class nameActor name:actor class
2:Operation
3:Operation
4:Operation (parameter list)
1:Event(parameter
list)
5:Operation(parameter
list)
Scripttext
Morescript
text
Object 2 Object 2
return
Sun Educational Services
Architecting and Designing J2EE Applications Appendix A, slide 14 of 21Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Collaboration Diagrams
Object 1 : Class name
2:Operation
3:Operation(parameter list)
Object 2
Object 3 : Class name
1:Event
5:Operation (parameter list)
4:Operation (parameter list)Actor name:actor class
Sun Educational Services
Architecting and Designing J2EE Applications Appendix A, slide 15 of 21Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Deployment Diagram
:HTTPD :HTMLBrowser
TCP/IP
form
:Servlet Engine
:MyServlet
:Bean
Servlet
Printer
:Corporate Web Server:Bob’s PC
Parallel port
Sun Educational Services
Architecting and Designing J2EE Applications Appendix A, slide 16 of 21Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Use Case Driven Design
• Model the business with use cases.
• Use cases drive the architecture at every view.
Deployment ViewProcess View
Logical View
Use Case
Implementation View
Sun Educational Services
Architecting and Designing J2EE Applications Appendix A, slide 17 of 21Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Use CaseView
• This view shows the user’s requirements and is usedthrough all phases of the process and in allarchitectural views.
Checkbalance
<<uses>>
<<uses>>
Createaccount
Makedeposit
Makewithdrawal
Transferfunds
Checkbalance
Sun Educational Services
Architecting and Designing J2EE Applications Appendix A, slide 18 of 21Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Logical View
• Shows the functional requirements (or what the systemshould do for the end user).
Account1..* 1
1
*
Customer
TransactionSavings AccountChecking Account
Sun Educational Services
Architecting and Designing J2EE Applications Appendix A, slide 19 of 21Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Implementation View
• Shows the organization of static software modules interms of packaging and layering.
Session
Entity
DataAccess
UI
BusinessDelegate
Sun Educational Services
Architecting and Designing J2EE Applications Appendix A, slide 20 of 21Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Process View
• Shows the concurrent aspect of the system at runtime.
Receivewithdrawaltransaction
Checkmoney
Dispensemoney
Updateaccount
Completetransaction
Canceltransaction
Sun Educational Services
Architecting and Designing J2EE Applications Appendix A, slide 21 of 21Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Deployment View
• Shows how the components are mapped to theunderlying platforms.
Session
Entity
DataAccess
Database
UI
BusinessDelegate
TCP/IP
Persistenceserver
Sun Educational Services
Architecting and Designing J2EE Applications August 2000
Appendix B
J2EE Technology Overview
Sun Educational Services
Architecting and Designing J2EE Applications Appendix B, slide 2 of 42Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
The J2EE Architecture
HTTPSSL
Database
Applet Container
J2SE
Applet
EJB Container
J2SE
EJB
HTTPSSL
ApplicationClient Container
J2SE
ApplicationClient
JMS
JND
I
JDB
C
Web Container
J2SE
ServletJSP
JavaMail
JAF
JMS
JTA JD
BC
JND
I JTS
JavaMail
JAFJM
S
JTA JD
BC
JND
I JTS
Sun Educational Services
Architecting and Designing J2EE Applications Appendix B, slide 3 of 42Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
The Client Tier
Browser
ApplicationClient Container
ApplicationClient
EIS TierWeb Tier
HTTP(S)
HTML
SSLHTMLXML
EJB Tier
firew
all
HTTPHTML RMI
RMI-IIOPXML
Browser
Applet
XML
HTTP(S)
JDBC
Sun Educational Services
Architecting and Designing J2EE Applications Appendix B, slide 4 of 42Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
The Web Tier
• HTML supplies static content to the browser
• JSP supplies dynamic content to the browser
▼ JSP are the primary means for generating dynamicHTML and XML
▼ Use tag libraries (custom actions) to eliminatescriplet code
• You can use servlets to select a view (dispatching themamong a set of JSP pages)
• You can use servlets to generate non-textual media
Sun Educational Services
Architecting and Designing J2EE Applications Appendix B, slide 5 of 42Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Servlets
Client Browser
Data
Web Tier
SourceServlet
HTTP(S)
HTML
Query
Result
2. Servlet retrievesuser data from the
data source.
1. User requests a Web page from the Web server.
3. Using the data, the servlet generates a personalized page.
Sun Educational Services
Architecting and Designing J2EE Applications Appendix B, slide 6 of 42Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
The Servlet Lifecycle
1. The Web server creates an instance of the servlet.
2. The Web server calls the servlet’s init method.
3. Each time a servlet is requested, the service methodis called.
4. The Web server calls the destroy method anddestroys the instance.
Ready
New Destroyed
destory()init()
service()
Sun Educational Services
Architecting and Designing J2EE Applications Appendix B, slide 7 of 42Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Why Use JSP?
• JSP pages are “inside-out” servlets:
▼ A JSP page is like an HTML page with embeddedJava technology code
▼ A JSP page is compiled (once) into a servlet class andthen executed for each request of that page
• With JSP, you can separate the presentation from thelogic
• JSP are similar to Active Server Pages (ASP), but JSPhave the power of Java technology
Sun Educational Services
Architecting and Designing J2EE Applications Appendix B, slide 8 of 42Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
How Does JSP Technology Work?
This diagram shows how a JSP page is converted into a servletclass
Has the JSP filechanged?
Convert JSP intoservlet code
Compile servlet code
Load servlet class fileWeb server executesservlet
Yes
No
page request
Sun Educational Services
Architecting and Designing J2EE Applications Appendix B, slide 9 of 42Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
The Application Tier
There are three main concepts to understand about the EJBtier:
• Distributed object frameworks and the networkprotocols that allow objects to communicate
• Remote object lookup using the Java Naming andDirectory Interface
• Enterprise JavaBeans that represent distributedbusiness services and objects
Sun Educational Services
Architecting and Designing J2EE Applications Appendix B, slide 10 of 42Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Distributed Object Frameworks
• RMI, JRMP
• CORBA
• JavaIDL
• RMI-IIOP
Sun Educational Services
Architecting and Designing J2EE Applications Appendix B, slide 11 of 42Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Stubs and Skeletons: the Proxy Pattern
Sun Educational Services
Architecting and Designing J2EE Applications Appendix B, slide 12 of 42Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
RMI-IIOP
• A mapping of RMI to use the CORBA IIOP protocol.
org.omg.CORBA.Skeleton
RemoteObject
Caller
network transport layer (IIOP )
ORB ORB
Helper
Holder
COS NamingService
Stubnarrow
Object
Remote JVMCaller JVM
string_to_object
Functionality supplied by the CORBA API
Functionality generated by IDL compiler
Functionality written by the developer
Sun Educational Services
Architecting and Designing J2EE Applications Appendix B, slide 13 of 42Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
JNDI
• Lookup service to decouple information from client
▼ Location of remote objects
▼ Environment variables
▼ Access to DataSource connections
Sun Educational Services
Architecting and Designing J2EE Applications Appendix B, slide 14 of 42Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Using JNDI
JNDI
Loose coupling to client through JNDI
Client
Hard coded in namespace
Homeobject
Homeobject
Server A
Server B
Sun Educational Services
Architecting and Designing J2EE Applications Appendix B, slide 15 of 42Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Using JNDI
<res-ref-name> jdbc/AccountDB </res-ref-name>
1. Look updata source
Namespace
AccountEJB
<res-type> javax.sql.DataSource </res-type>
2. Reference to a
Container
resource factory
3. Open aconnection
Resource factory
that accessesresource manager
4.
AccountDB
creates object
Sun Educational Services
Architecting and Designing J2EE Applications Appendix B, slide 16 of 42Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Defining EJB Technology
• Is a server component specification (for vendors)where components are:
▼ Customizable at deployment time
▼ Deployed on a compatible application server
▼ Portable to other application servers
• Separates and defines development stages:
▼ Component creation
▼ Application assembly
▼ Application deployment
Sun Educational Services
Architecting and Designing J2EE Applications Appendix B, slide 17 of 42Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Defining EJB Technology
• EJB technology enhances simplified access to services
▼ Transaction
▼ Security
▼ Naming
▼ Persistence
▼ Life cycle
Sun Educational Services
Architecting and Designing J2EE Applications Appendix B, slide 18 of 42Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
EJB Programming Paradigm
(Deployer role)
Homeinterface
Remoteinterface
classEnterprise Bean
Container
Server A
EJBobject
Homeobject
Environment Properties
DDDeploymentdescriptor
file
Client interfaces
Business Logic
Environmentinformation
(Component developer)
Sun Educational Services
Architecting and Designing J2EE Applications Appendix B, slide 19 of 42Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
EJB Architecture Overview
Container
Server A
Homeobject
EJBobject
EJBobject
Client A
Client B
Sun Educational Services
Architecting and Designing J2EE Applications Appendix B, slide 20 of 42Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
The EJB Environment
Container
createfindremove
Server A
1
2
3
4
7
5
9
Server BServices
8
6
11
JNDI
EJBobject
Homeobject
Client
Naming Transaction Persistence Security
10
Environment Properties
JNDI
Sun Educational Services
Architecting and Designing J2EE Applications Appendix B, slide 21 of 42Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Types of EJBs
Session Bean Entity Bean
Private client resource Accessed by multiple clients concurrently
Client affects Bean’s state Bean represents state of data
Bean is not persistent; state can be storedin secondary memory
Bean is persistent; state is synchronizedwith corresponding state of data
Lifetime is normally controlled by client Lifetime corresponds to its persistent store
Normally created for use Normally located for use
Transaction participant (optional) Transactional by nature
Single-threaded Single-threaded by default
Mandatory since 1.0 specification Mandatory since 1.1 specification
Sun Educational Services
Architecting and Designing J2EE Applications Appendix B, slide 22 of 42Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Types of EJBs
Type When to use
Stateful session beans
Maintain information specific to a client betweenmethod calls.
Represent non-presistent objects
Represent work flow between business objects
Stateless session beans
Model reusable service objects
Provides high performance
Operates on multiple rows at a time
Provides procedural view of data
Entity beans Maintain persistent state as an object view of adatabase row.
Sun Educational Services
Architecting and Designing J2EE Applications Appendix B, slide 23 of 42Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Types of EJBsClient
Client
Client
Session Bean(client state)
Session Bean(client state)
Session Bean(client state)
row 1
row 2
row 3
row 4
row 5
Entity Bean(db row state)
row 1
row 2
row 3
row 4
row 5
EJB Object
EJB Object
EJB Object
EJB Object
Client
Client
Client
Sun Educational Services
Architecting and Designing J2EE Applications Appendix B, slide 24 of 42Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Session Bean
Stateful
• Contains client’s conversational state
• Can be passivated to release resources (save state whilepassivated)
Stateless
• No need to passivate, since no state is held
• Can be pooled for better performance
Sun Educational Services
Architecting and Designing J2EE Applications Appendix B, slide 25 of 42Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Entity Beans
• Transactional by nature and the state is synchronizedto data store.
• Represent state of data.
• Lifetime corresponds to persistent store.
• Normally located for use.
Sun Educational Services
Architecting and Designing J2EE Applications Appendix B, slide 26 of 42Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Overview of the Entity Bean RuntimeArchitecture
EJB object(key)
EJB object(key)
EJB object(key)
EJB object(key)
EJB object(key)
EJB object(key)
Entitybean
instance
Entitybean
instance
EJB object(key)
Entitybean
instance
Entitybean
instance
HomeObject Free
Pool
Entitybean
Entitybean
Entitybean
Entitybean
Entitybean
Entitybean
newInstance()setEntityContext(ctx)
ejbPassivate()
ejbactivate()
unsetEntityContext
Sun Educational Services
Architecting and Designing J2EE Applications Appendix B, slide 27 of 42Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Creating Entity Beans
EJBObject(key)
EJB object(key)
Entitybean
instance
1. Freepool
Entitybean
Entitybean
Entitybean
Entitybean
Entitybean
Entitybean
Data
2.create
3
4
5
6
7
11
8
Client
10
9
Homeobject Container
Sun Educational Services
Architecting and Designing J2EE Applications Appendix B, slide 28 of 42Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
J2EE Application Life Cycle
Sun Educational Services
Architecting and Designing J2EE Applications Appendix B, slide 29 of 42Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Deployment Descriptor
• Portable property sheet for the EJB
• XML document
• Describes various attributes of one or more EJBs:
▼ Structural information
▼ Application assembly information
▼ Declaration of required resources
• One deployment descriptor per jar (multiple EJBs)
▼ META-INF/ejb-jar.xml
• Allows for post-compile customization of EJB
Sun Educational Services
Architecting and Designing J2EE Applications Appendix B, slide 30 of 42Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
J2EE Roles
• Bean provider
• Application assembler
• Deployer
• Container developer
• Server developer
• System administrator
Sun Educational Services
Architecting and Designing J2EE Applications Appendix B, slide 31 of 42Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
The EIS Integration Tier
• JDBC – the Java interface to relational databases
• Transactions – a mechanism to control data integrity
• Connectors – an adaptor mechanism for a variety ofbackend services, such as database, enterprise resourceplanning, and transaction processing systems
• Java Message Service – a mechanism for asynchronouscommunication between enterprise systems
• JavaMail – a mechanism to communicate to usersthrough electronic mail
• XML – a tool for data formatting
Sun Educational Services
Architecting and Designing J2EE Applications Appendix B, slide 32 of 42Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
JDBC Overview
An API for database-independent connectivity between theJ2EE platform and databases.
DriverManagerAccess a Driver
Data
Statement
DatabaseDriver
Resultsset
Open a connection
Create a communication object
Execute an SQL query
Receive the results
Sun Educational Services
Architecting and Designing J2EE Applications Appendix B, slide 33 of 42Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
JDBC Overview
DataSource
• Preferred way to open a connection
▼ Can offer automatic connection pooling anddistributed transactions
▼ Provides consistent access through JNDI for betterportability
• Required for EJB 1.1 and greater
• JDBC connections obtained throughjavax.sql.DataSource (resource factory)
• EJB container provides resource factory classes
Sun Educational Services
Architecting and Designing J2EE Applications Appendix B, slide 34 of 42Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Transactions
• J2EE supplies local and distributed transactions:
▼ A transaction is a group of actions; if one action fails,then all effects are “rolled back”; if all actionssucceed, then the effects are “committed”
• Declarative transactions:
▼ Declared through the deployment descriptor
▼ Separates transaction issues from business logic
• Programmatic transactions:
▼ Gives programmer control over transactionmechanisms through the Java Transaction API (JTA)
Sun Educational Services
Architecting and Designing J2EE Applications Appendix B, slide 35 of 42Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Transactions — JTA
• Java Transaction API (JTA)
▼ Allows applications to access transactions in amanner that is independent of specificimplementations.
▼ Specifies standard Java interfaces between atransaction manager and transactional application,the J2EE server, and the manager that controls accessto the shared resources.
Sun Educational Services
Architecting and Designing J2EE Applications Appendix B, slide 36 of 42Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Transactions — JTS
• Java Transaction Service (JTS)
▼ Specifies the implementation of a transactionmanager which supports JTA
▼ Implements the Java mapping of the OMG ObjectTransaction Service 1.1 specification
Sun Educational Services
Architecting and Designing J2EE Applications Appendix B, slide 37 of 42Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Connectors
• This architecture specification defines a set of contractsfor a resource adapter to support to plug in to anapplication server.
• Provides a Java solution to connectivity betweenapplication servers and Enterprise InformationSystems (EIS).
• Examples
▼ JDBC driver to connect to a relational database.
▼ A resource adapter to connect to an ERP system.
▼ A resource adapter to connect to a TP system.
Sun Educational Services
Architecting and Designing J2EE Applications Appendix B, slide 38 of 42Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
Connectors
Following is a set of standard contracts between anapplication server and EIS:
• Connection management contract
Enables connection pooling
• Transaction management contract
Enables transactional access to EIS resourcemanagers
• Security contract
Enables a secure access to an EIS
Sun Educational Services
Architecting and Designing J2EE Applications Appendix B, slide 39 of 42Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
JMS
• Java Message Service is a guaranteed form ofdelivering messages asynchronously.
• The middleware service handles the message’s routing,delivery, and network transfer.
• It supports:
▼ Point-to-point (PTP or Queue)
▼ Publish-and-subscribe (Topic)
Sun Educational Services
Architecting and Designing J2EE Applications Appendix B, slide 40 of 42Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
JMS
• Used by EJB components (in EJB 2.0) to send messages
• Easy to deploy and administer
▼ Defines ConnectionFactories and Destinationsas administered objects (placed in a JNDI namingcontext)
▼ JMS clients look up and use these preconfiguredobjects
• Supports IMAP and SMTP (existing protocols)
Sun Educational Services
Architecting and Designing J2EE Applications Appendix B, slide 41 of 42Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
JavaMail/JAF
• An API for sending and receiving email.
• The JavaBeans Activation Framework (JAF) integratessupport for MIME data types into the Java platform.
Sun Educational Services
Architecting and Designing J2EE Applications Appendix B, slide 42 of 42Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000 Revision A
XML
• Standard and interoperable
• Platform-independent, not browser-specific
• Structured for business and other data
• Data-centric, not presentation-centric
Copyright 2000 Sun Microsystems Inc., 901 San Antonio Road, Palo Alto, California 94303, Etats-Unis. Tous droits réservés.
Ce produit ou document est protégé par un copyright et distribué avec des licences qui en restreignent l’utilisation, la copie, la distribution, et la décompilation. Aucune partie de ceproduit ou document ne peut être reproduite sous aucune forme, par quelque moyen que ce soit, sans l’autorisation préalable et écrite de Sun et de ses bailleurs de licence, s’il y en a.
Le logiciel détenu par des tiers, et qui comprend la technologie relative aux polices de caractères, est protégé par un copyright et licencié par des fournisseurs de Sun.Des parties de ce produit pourront être dérivées du systèmes Berkeley 4.3 BSD licenciés par l’Université de Californie. UNIX est une marque déposée aux Etats-Unis et dans d’autrespays et licenciée exclusivement par X/Open Company Ltd.
Sun, Sun Microsystems, le logo Sun, Java, JavaBeans, Enterprise JavaBeans, Solaris, Java Server Pages, JDBC, JavaMail, et Write Once, Run Anywhere sont desmarques de fabrique ou des marques déposées de Sun Microsystems, Inc. aux Etats-Unis et dans d’autres pays.
Toutes les marques SPARC sont utilisées sous licence sont des marques de fabrique ou des marques déposées de SPARC International, Inc. aux Etats-Unis et dans d’autres pays.
Les produits portant les marques SPARC sont basés sur une architecture développée par Sun Microsystems, Inc.
UNIX est une marques déposée aux Etats-Unis et dans d’autres pays et licenciée exclusivement par X/Open Company, Ltd.
L’interfaces d’utilisation graphique OPEN LOOK et Sun™ a été développée par Sun Microsystems, Inc. pour ses utilisateurs et licenciés. Sun reconnaît les efforts de pionniers de Xeroxpour larecherche et le développement du concept des interfaces d’utilisation visuelle ou graphique pour l’industrie de l’informatique. Sun détient une licence non exclusive de Xerox surl’interface d’utilisation graphique Xerox, cette licence couvrant également les licenciés de Sun qui mettent en place l’interface d’utilisation graphique OPEN LOOK et qui en outre seconforment aux licences écrites de Sun.
L’accord du gouvernement américain est requis avant l’exportation du produit.
Le système X Window est un produit de X Consortium, Inc.
LA DOCUMENTATION EST FOURNIE “EN L’ETAT” ET TOUTES AUTRES CONDITIONS, DECLARATIONS ET GARANTIES EXPRESSES OU TACITES SONT FORMELLEMENTEXCLUES, DANS LA MESURE AUTORISEE PAR LA LOI APPLICABLE, Y COMPRIS NOTAMMENT TOUTE GARANTIE IMPLICITE RELATIVE A LA QUALITE MARCHANDE, AL’APTITUDE A UNE UTILISATION PARTICULIERE OU A L’ABSENCE DE CONTREFAÇON.
Architecting and Designing J2EE Applications iCopyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000, Revision A
Course Contents
About This Course ....................................................................................................................ivCourse Goal ................................................................................................................................................ vCourse Overview ...................................................................................................................................... viCourse Map ...............................................................................................................................................viiModule-by-Module Overview ..............................................................................................................viiiCourse Objectives ....................................................................................................................................... xSkills Gained by Module ......................................................................................................................... xiiGuidelines for Module Pacing ..............................................................................................................xiiiTopics Not Covered ................................................................................................................................ xivHow Prepared Are You? ......................................................................................................................... xvIntroductions ........................................................................................................................................... xviHow to Use Course Materials ..............................................................................................................xviiHow to Use the Icons ............................................................................................................................xviiiTypographical Conventions and Symbols .......................................................................................... xixCommon Abbreviations and Acronyms .............................................................................................. xxi
Architect and Architecture ....................................................................................................1-1Overview .................................................................................................................................................. 1-2The Architect’s Role ................................................................................................................................ 1-3Development Team ................................................................................................................................. 1-4Defining Architecture ............................................................................................................................. 1-5The Art of Architecture .......................................................................................................................... 1-6Defining Architecture Terminology ..................................................................................................... 1-7Architecture and Design ........................................................................................................................ 1-8Architectural Building Blocks ............................................................................................................... 1-9Capabilities and Design Goals ............................................................................................................ 1-10
Sun Educational Services
Architecting and Designing J2EE Applications iiCopyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000, Revision A
Process and Artifacts ............................................................................................................................ 1-11Communication Mechanisms .............................................................................................................. 1-12Architectural Fundamentals ................................................................................................................ 1-13Abstraction ............................................................................................................................................. 1-14Abstraction – Surface Area .................................................................................................................. 1-15Check Your Progress ............................................................................................................................ 1-17Think Beyond ........................................................................................................................................ 1-18
Principles of Architecture ......................................................................................................2-1Overview .................................................................................................................................................. 2-2Architecture and the Cube ..................................................................................................................... 2-3Layers and Tiers ...................................................................................................................................... 2-4Capabilities .............................................................................................................................................. 2-5Manageability .......................................................................................................................................... 2-9Flexibility ................................................................................................................................................ 2-10Flexibility Metrics .................................................................................................................................. 2-12The Effect of Flexibility ........................................................................................................................ 2-13Performance ........................................................................................................................................... 2-14Capacity .................................................................................................................................................. 2-17Latency Space ........................................................................................................................................ 2-18Scalability ............................................................................................................................................... 2-19Vertical Scalability ................................................................................................................................ 2-20Horizontal Scalability ........................................................................................................................... 2-21The Effect of Scalability ........................................................................................................................ 2-22Extensibility ........................................................................................................................................... 2-23Testability ............................................................................................................................................... 2-26Security ................................................................................................................................................... 2-27Security Policy ....................................................................................................................................... 2-29Service-based Capabilities ................................................................................................................... 2-30Why Service-Based Architectures? ..................................................................................................... 2-31
Sun Educational Services
Architecting and Designing J2EE Applications iiiCopyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000, Revision A
Creating Service-Based Architectures ................................................................................................ 2-32Heuristics for Developing Service-Based Architectures ................................................................. 2-33Architectural Design Goals .................................................................................................................. 2-34Modularity ............................................................................................................................................. 2-35Protection and Exposure ...................................................................................................................... 2-36Component Extensibility ..................................................................................................................... 2-37Component Extensibility Using Subclassing .................................................................................... 2-38Component Extensibility Using Composition .................................................................................. 2-39Roles and Responsibilities ................................................................................................................... 2-40Contracts ................................................................................................................................................ 2-42Types of Contracts ................................................................................................................................ 2-43Pluggable Behavior ............................................................................................................................... 2-44Providing System Requirements ........................................................................................................ 2-45Process .................................................................................................................................................... 2-46Assumptions, Risks, and Constraints (ARC) .................................................................................... 2-47Model the Business ............................................................................................................................... 2-48Check Your Progress ............................................................................................................................ 2-49Think Beyond ........................................................................................................................................ 2-50
Creating an Architecture Using J2EE Technology .............................................................3-1Overview .................................................................................................................................................. 3-2What Is J2EE Technology? ..................................................................................................................... 3-3J2EE Architecture .................................................................................................................................... 3-7Layers and Tier With J2EE Technology ............................................................................................... 3-9Flexibility and J2EE Technology ......................................................................................................... 3-10Manageability and J2EE Technology ................................................................................................. 3-11J2EE and Latency Space ....................................................................................................................... 3-12Vertical Scalability ................................................................................................................................ 3-13Horizontal Scalability ........................................................................................................................... 3-14Extensiblity and J2EE Technology ...................................................................................................... 3-15
Sun Educational Services
Architecting and Designing J2EE Applications ivCopyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000, Revision A
Essential Patterns .................................................................................................................................. 3-16Proxy Pattern ......................................................................................................................................... 3-17Decorator Pattern .................................................................................................................................. 3-18Factory Method Pattern ....................................................................................................................... 3-20Abstract Factory Pattern ...................................................................................................................... 3-21Check Your Progress ............................................................................................................................ 3-22Think Beyond ........................................................................................................................................ 3-23
J2EE Best Practices – Overview ...........................................................................................4-1Overview .................................................................................................................................................. 4-2Experience in Creating Architectures .................................................................................................. 4-3J2EE Architecture .................................................................................................................................... 4-4J2EE Best Practices and Guidelines ...................................................................................................... 4-5Best Practice – Client Tier ...................................................................................................................... 4-6Best Practice – MVC Pattern .................................................................................................................. 4-7Best Practice – Business Objects ............................................................................................................ 4-8Best Practice – Controllers ..................................................................................................................... 4-9Check Your Progress ............................................................................................................................ 4-12Think Beyond ........................................................................................................................................ 4-13
J2EE Best Practices – Web Tier ............................................................................................5-1Overview .................................................................................................................................................. 5-2Web Tier ................................................................................................................................................... 5-3Applying the MVC Pattern To Web Tier Architecture ...................................................................... 5-4Best Practice – Web Tier Components ................................................................................................. 5-5Front Component .................................................................................................................................... 5-6Presentation Component ....................................................................................................................... 5-7Best Practices – JSPs and Servlets ......................................................................................................... 5-8JSP Features ............................................................................................................................................ 5-10Localization and Internationalization ................................................................................................ 5-11
Sun Educational Services
Architecting and Designing J2EE Applications vCopyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000, Revision A
Internationalization Process ................................................................................................................ 5-12Internationalization .............................................................................................................................. 5-13Check Your Progress ............................................................................................................................ 5-14Think Beyond ........................................................................................................................................ 5-15
J2EE Best Practices – EJB Tier ..............................................................................................6-1Overview .................................................................................................................................................. 6-2The EJB Tier ............................................................................................................................................. 6-3Guidelines – Using Session Beans ........................................................................................................ 6-4Guidelines – Using Entity Beans ........................................................................................................... 6-5Best Practice – Data Access Objects ...................................................................................................... 6-6Best Practice – Value Objects ................................................................................................................. 6-7Best Practice – Session Bean Facade ..................................................................................................... 6-8Master-Detail Modeling ......................................................................................................................... 6-9Check Your Progress ............................................................................................................................ 6-10Think Beyond ........................................................................................................................................ 6-11
J2EE Best Practices – EIS Integration Tier .........................................................................7-1Overview .................................................................................................................................................. 7-2EIS Integration Tier ................................................................................................................................. 7-3Integrating an EIS .................................................................................................................................... 7-4EIS Guidelines – Data Access ................................................................................................................ 7-5EIS Access Objects ................................................................................................................................... 7-6Guidelines – Access Objects .................................................................................................................. 7-7Guidelines – Access Objects .................................................................................................................. 7-8Guidelines – Connections ...................................................................................................................... 7-9Check Your Progress ............................................................................................................................ 7-10Think Beyond ........................................................................................................................................ 7-11
Sun Educational Services
Architecting and Designing J2EE Applications viCopyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000, Revision A
J2EE Best Practices — Services ............................................................................................7-1Overview .................................................................................................................................................. 7-2Security ..................................................................................................................................................... 7-3Security Guidelines ................................................................................................................................. 7-5Security Terminology ............................................................................................................................. 7-6Authentication ......................................................................................................................................... 7-7Protection Domains ................................................................................................................................ 7-9Authorization ........................................................................................................................................ 7-10Declarative and Programmatic Authorization ................................................................................. 7-12Controlling Access to Resources ......................................................................................................... 7-14Protecting Messages ............................................................................................................................. 7-15Auditing ................................................................................................................................................. 7-16Transactions ........................................................................................................................................... 7-17Transaction Guidelines in Web Tier ................................................................................................... 7-18Transaction Guidelines in EJB Tier ..................................................................................................... 7-19EJB Tier – Container-Managed Transaction Demarcation .............................................................. 7-20Transaction Attributes .......................................................................................................................... 7-21Transaction Guidelines in EIS Integration Tier ................................................................................ 7-22Compensating Transactions ................................................................................................................ 7-23Check Your Progress ............................................................................................................................ 7-24Think Beyond ........................................................................................................................................ 7-25
J2EE Patterns ..........................................................................................................................9-1Overview .................................................................................................................................................. 9-2Introducing J2EE Patterns ...................................................................................................................... 9-3Defining Patterns .................................................................................................................................... 9-4Defining Idioms ....................................................................................................................................... 9-5Using the J2EE Patterns .......................................................................................................................... 9-6Modularity ............................................................................................................................................... 9-7Protection and Exposure ........................................................................................................................ 9-8
Sun Educational Services
Architecting and Designing J2EE Applications viiCopyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000, Revision A
Component Extensibility ....................................................................................................................... 9-9Roles and Responsibilities ................................................................................................................... 9-10Contracts ................................................................................................................................................ 9-11Pluggable Behavior ............................................................................................................................... 9-12Performance ........................................................................................................................................... 9-13J2EE Patterns Categories ...................................................................................................................... 9-15Sample J2EE Patterns ............................................................................................................................ 9-16Mediator View - JSP (MVJSP) ............................................................................................................. 9-17MVJSP Pattern Participants, Roles and Responsibilities ................................................................. 9-18MVJSP Pattern Structure ...................................................................................................................... 9-19MVJSP Pattern Collaborations ............................................................................................................ 9-20MVJSP Pattern Constraints .................................................................................................................. 9-21MVJSP Pattern Benefits ........................................................................................................................ 9-22MVJSP Pattern Drawbacks .................................................................................................................. 9-23Session Entity Facade (SEF) ................................................................................................................. 9-24SEF Pattern Participants, Roles, and Responsibilities ...................................................................... 9-25SEF Pattern Structure ............................................................................................................................ 9-26SEF Pattern Collaborations (Steps 1-11) ............................................................................................ 9-27SEF Pattern Collaborations (Steps 12-20) .......................................................................................... 9-28SEF Pattern Constraints ....................................................................................................................... 9-29SEF Pattern Benefits and Drawbacks ................................................................................................. 9-30Business Delegate (BD) ........................................................................................................................ 9-31BD Pattern Participants, Roles, and Responsibilities ....................................................................... 9-32BD Pattern Structure ............................................................................................................................. 9-33BD Pattern Collaborations ................................................................................................................... 9-34BD Pattern Constraints ......................................................................................................................... 9-35BD Pattern Benefits ............................................................................................................................... 9-36BD Pattern Drawbacks ......................................................................................................................... 9-37Using J2EE Patterns – A Hotel Reservation System ........................................................................ 9-38Hotel Reservation Use Case Diagram ................................................................................................ 9-39J2EE Patterns in the Domain Model ................................................................................................... 9-40
Sun Educational Services
Architecting and Designing J2EE Applications viiiCopyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000, Revision A
Reserve Room Sequence Diagram ...................................................................................................... 9-41J2EE Patterns in Reserve Room ........................................................................................................... 9-42
Special Topics .......................................................................................................................10-1Overview ................................................................................................................................................ 10-2Applicability of J2EE Technology ....................................................................................................... 10-3Business-to-Business (B2B) .................................................................................................................. 10-4When Is it a B2B Application? ............................................................................................................. 10-5Interbank Transactions ......................................................................................................................... 10-6Chemical Feedstock Auctions ............................................................................................................. 10-7Distributors Sharing Inventory ........................................................................................................... 10-8Identrus for Interbank Transactions ................................................................................................... 10-9Identrus, XML, and EDI ..................................................................................................................... 10-10Why XML and EDI? ............................................................................................................................ 10-11Enterprise Resource Planning ........................................................................................................... 10-12Web-based ERP ................................................................................................................................... 10-13J2EE Technology Used in B2B ........................................................................................................... 10-14Workflow Application ....................................................................................................................... 10-15Managing Workflows ......................................................................................................................... 10-16A Workflow-based System ................................................................................................................ 10-17Work Pieces .......................................................................................................................................... 10-18J2EE Technology in a Workflow Application ................................................................................. 10-19Check Your Progress .......................................................................................................................... 10-20Think Beyond ...................................................................................................................................... 10-21
UML Quick Reference ...........................................................................................................A-1Model the Business ................................................................................................................................ A-2Package Dependency and Note ........................................................................................................... A-3Class Diagram ......................................................................................................................................... A-4Visibility and Properties ....................................................................................................................... A-5
Sun Educational Services
Architecting and Designing J2EE Applications ixCopyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000, Revision A
Generalization and Specialization Relationships .............................................................................. A-6Association Classes ................................................................................................................................ A-7Role Names and Derived Associations ............................................................................................... A-8Aggregation, Multiplicity With Direction Indicators ....................................................................... A-9Use Case Diagram ................................................................................................................................ A-10State Diagram ....................................................................................................................................... A-11Object Diagrams ................................................................................................................................... A-12Sequence Diagrams .............................................................................................................................. A-13Collaboration Diagrams ...................................................................................................................... A-14Deployment Diagram .......................................................................................................................... A-15Use Case Driven Design ...................................................................................................................... A-16Use CaseView ....................................................................................................................................... A-17Logical View ......................................................................................................................................... A-18Implementation View .......................................................................................................................... A-19Process View ......................................................................................................................................... A-20Deployment View ................................................................................................................................ A-21
J2EE Technology Overview ..................................................................................................B-1Servlets ......................................................................................................................................................B-5The Servlet Lifecycle ...............................................................................................................................B-6Why Use JSP? ...........................................................................................................................................B-7How Does JSP Technology Work? .......................................................................................................B-8The Application Tier ...............................................................................................................................B-9Distributed Object Frameworks ..........................................................................................................B-10Stubs and Skeletons: the Proxy Pattern .............................................................................................B-11RMI-IIOP ................................................................................................................................................B-12JNDI ........................................................................................................................................................B-13Using JNDI .............................................................................................................................................B-14Using JNDI .............................................................................................................................................B-15Defining EJB Technology .....................................................................................................................B-16
Sun Educational Services
Architecting and Designing J2EE Applications xCopyright 2000 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 2000, Revision A
EJB Architecture Overview ..................................................................................................................B-19The EJB Environment ...........................................................................................................................B-20Types of EJBs .........................................................................................................................................B-21Types of EJBs .........................................................................................................................................B-23Session Bean ...........................................................................................................................................B-24Entity Beans ...........................................................................................................................................B-25Overview of the Entity Bean Runtime Architecture ........................................................................B-26Creating Entity Beans ...........................................................................................................................B-27J2EE Application Life Cycle .................................................................................................................B-28Deployment Descriptor ........................................................................................................................B-29J2EE Roles ...............................................................................................................................................B-30The EIS Integration Tier .......................................................................................................................B-31JDBC Overview .....................................................................................................................................B-32JDBC Overview .....................................................................................................................................B-33Transactions ...........................................................................................................................................B-34Transactions — JTA ..............................................................................................................................B-35Connectors .............................................................................................................................................B-37JMS ..........................................................................................................................................................B-39JMS ..........................................................................................................................................................B-40JavaMail/JAF .........................................................................................................................................B-41XML .........................................................................................................................................................B-42