Architectural Design of Distributed Business Systems Trygve Reenskaug

advertisement
Architectural Design of Distributed Business Systems
TOOLS Europe 2001
Architectural Design
of
Distributed Business Systems
Tutorial M3.
TOOLS Europe 2001, 13 March 2001
Trygve Reenskaug
Mogul Norway, Oslo
© Trygve Reenskaug 2001
Page 1
Architectural Design of Distributed Business Systems
TOOLS Europe 2001
Architectural Design
of
Distributed Business Systems
Tutorial M3,
TOOLS Europe 2001
13 March 2001
Trygve Reenskaug
Mogul Norway AS, Oslo
http://www.ifi.uio.no/~trygver
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
3/11/01 10:36 AM.
Slide
1
Slide
2
Slide
3
The Autokon system
for the Computer-Aided Design of Ships
1960 - Architecture created
1962 - First deployed
1965 - First international
1997 - Converted to PC
Architecture still valid!!
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
3/11/01 10:36 AM.
The Autokon architecture
Why the long life ?
¤ Shipbuilding essentially unchanged
¤ Luck - random access mass storage
devices enabled database solution
¤ Reality reflected into
Clean, intelligible modular structure
¤ Expressed user needs as symptoms
for required abstractions
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
© Trygve Reenskaug 2001
3/11/01 10:36 AM.
Page 2
Architectural Design of Distributed Business Systems
TOOLS Europe 2001
The Autokon architecture
Was it worth it ?
YES!
¤ System integrity maintained through
major revisions
¤ System reliability maintained through
major revisions
¤ System is comprehensible to
users and maintainers
¤ Architecture spans decades of
development projects
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
3/11/01 10:36 AM.
Slide
4
Exercise 1: What do WE mean by
System Architecture?
•
•
•
•
•
……………………………………….
……………………………………….
……………………………………….
……………………………………….
……………………………………….
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
3/11/01 10:36 AM.
Slide
5
Highlights
• Why architecture is important & What it is
• Habitable Architectures created for people
– Enterprise models
– Personal information environments
– System models, the heavy part
• UML Collaboration, a powerful abstraction for
architectural topology
– Collaboration (role model) specify many instances
– CollaborationInstance depicting a concrete topology
• Patterns, a literary style for sharing experience
– Wrap Entity Beans with Session Beans
– Caterpillars Fate: Smooth transition from analysis to design
• Summary and Conclusion
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
© Trygve Reenskaug 2001
3/11/01 10:36 AM.
Slide
6
Page 3
Architectural Design of Distributed Business Systems
TOOLS Europe 2001
WHY ARCHITECTURE?
• Help create habitable systems
• Help create long-lived, robust systems
• i. e., aim for simplicity:
…simple systems are easy to master
…simple systems are easy to build - correctly
…simple systems are easy to maintain
Architectural Design of Distributed Systems
3/11/01 10:36 AM.
© Trygve Reenskaug 2001
Slide
7
Slide
8
Slide
9
Theory X vs. Theory Y
(MacGregor)
Theory X:
Theory Y
• Dislike work
• Lack ambition
• Are irresponsible
• Are resistant to
change
• Prefer to be led
rather than to lead
Architectural Design of Distributed Systems
• Are willing to work
• Are capable of selfcontrol
• Are willing to accept
responsibility
• Are imaginative and
creative
• Are capable of selfdirection
3/11/01 10:36 AM.
© Trygve Reenskaug 2001
Theory X vs. Theory Y
(MacGregor)
Authoritarian
leadership
Rigid,
controlling
environment
Inspiring
leadership
Bored,
passive
workers
Architectural Design of Distributed Systems
Flexible,
supportive
environment
© Trygve Reenskaug 2001
© Trygve Reenskaug 2001
Interested,
creative
workers
3/11/01 10:36 AM.
Page 4
Architectural Design of Distributed Business Systems
TOOLS Europe 2001
Vision of Distribution
anno 1973
Mary’s
System
Yngvar’s
System
Jonas’
System
Kari’s
System
Anton’s
System
Architectural Design of Distributed Systems
3/11/01 10:36 AM.
© Trygve Reenskaug 2001
Slide
10
The Importance
of the User's Mental Model
• A good conceptual model allows us to predict the
effects of our actions.
• Without a good model we operate by rote, blindly.
• We do operations as we are told; we cannot fully
appreciate why, what effects to expect, or what to do
if things go wrong.
Design
model
USER'S
MODEL
USER
DESIGNER
SYSTEM
System
Image
Donald A. Norman:
The Design of Everyday Things
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
3/11/01 10:36 AM.
Slide
11
Make IT so simple that even a
programmer can understand IT
Edsger Dijkstra:
• Testing can only show the presence of bugs
• Testing can never show the absence of bugs
• so, the number of bugs in the system when you
deliver it is proportional to the number of bugs
found during testing
• The only way to avoid bugs
is not to put them in in the first place
• I.E., Keep It Simple, Stupid (KISS)
60.000 bugs removed from Windows2000 during testing
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
© Trygve Reenskaug 2001
3/11/01 10:36 AM.
Slide
12
Page 5
Architectural Design of Distributed Business Systems
TOOLS Europe 2001
Architecture for:
Chaos-Beauty-Flexibility?
Architectural styles
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
3/11/01 10:36 AM.
Slide
13
First: Architect describes end
result.
Second: Architect describes how to
build.
Architecture Example
First Priority: Make it Habitable!
Second Priority: Make it Buildable!
Third Priority: Make it Cost Effective!
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
3/11/01 10:36 AM.
Slide
14
RATIONAL's Definition of Architecture
"Principles of Architecting Software Systems"
• Software architecture encompasses
the set of significant decisions
about the organization of a software system
– Selection of the structural elements and their interfaces
– Behavior as specified in collaborations among those
elements
– Composition of these structural and behavioral
elements into larger subsystems
– Architectural style that guides this organization
• Software architecture also involves
– Functionality, Usability, Resilience, Performance,
Reuse, Comprehensibility
– Economic and technology constraints and tradeoffs
– Aesthetic concerns
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
© Trygve Reenskaug 2001
3/11/01 10:36 AM.
Slide
15
Page 6
Architectural Design of Distributed Business Systems
TOOLS Europe 2001
Highlights
• Why architecture is important & What it is
• Habitable Architectures created for people
– Enterprise models
– Personal information environments
– System models, the heavy part
• UML Collaboration, a powerful abstraction for
architectural topology
– Collaboration (role model) specify many instances
– CollaborationInstance depicting a concrete topology
• Patterns, a literary style for sharing experience
– Wrap Entity Beans with Session Beans
– Caterpillars Fate: Smooth transition from analysis to design
• Summary and Conclusion
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
3/11/01 10:36 AM.
Slide
16
Personal, Integrated
Information Environments
Enterprise level
Work processes
UML Object Model
Personal level
User's mental model
UML Collaboration
System level
Design models
All of UML
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
3/11/01 10:36 AM.
Slide
17
Enterprise level
Example:Travel Expense
Enterprise level
Work processes
UML Object Model
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
© Trygve Reenskaug 2001
3/11/01 10:36 AM.
Slide
18
Page 7
Architectural Design of Distributed Business Systems
TOOLS Europe 2001
Two Approaches
to Object Orientation
"East Coast Approach":
Object orientation is a smart programming artifact.
An object is an instance of a class.
Simula; Master complexity;
Classification Theory
"West Coast Approach":
Object Orientation is a powerful modeling paradigm.
An object encapsulates state and behavior so that it can
collaborate with other objects.
Smalltalk; Personal Information Systems;
Computer Augmentation + Lisp + Simula (+ Operating Systems)
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
3/11/01 10:36 AM.
Slide
19
UML Instance Interaction Diagram
Travel Expense Model
Ruth
(President)
4: authorizedExpenseReport
Eve
Douglas
(Software Manager)
(Marketing manager)
1: travelPermissionRequest
2: travelPermission
Joyce
Joe
Elsie
(Sales clerk)
(Paymaster)
(Programmer)
3: expenseReport
Adam
(Chief Accountant)
Bill
(Bookkeeper)
Peter
(Technical author)
Bill
(Dispatcher)
5: paymentRequest
John
(Cashier)
Architectural Design of Distributed Systems
Kim
(Methodologist)
© Trygve Reenskaug 2001
Ann
(Customer consultant)
3/11/01 10:36 AM.
Slide
20
Travel Expense Model
Ruth
(President)
Eve
(Software Manager)
/ Authorizer
Douglas
(Marketing manager)
Elsie
(Programmer)
Joyce
(Sales clerk)
(Bookkeeper)
/ BookKeeper
Peter
(Technical author)
Bill
(Dispatcher)
John
(Cashier)
Kim
(Methodologist)
Joe
(Paymaster)
/ Paymaster
Bill
Architectural Design of Distributed Systems
/ Traveler
In the collaboration, we study
patterns of interacting objects:
What are the objects, what are their
responsibilities, and how do they
collaborate to achieve the system
functionality.
The classifierRole represents the
object’s position in the structure
and its responsibility for
performing its part of the system
function.
UML Collaboration Diagram
Adam
(Chief Accountant)
We achieve a separation of
concern; a collaboration describes
the objects involved in one or more
functions, describing the objects
involved only and focusing on the
relevant object properties.
Ann
(Customer consultant)
Objects --> ClassifierRoles
© Trygve Reenskaug 2001
© Trygve Reenskaug 2001
3/11/01 10:36 AM.
Slide
21
Page 8
Architectural Design of Distributed Business Systems
TOOLS Europe 2001
Behavior: Action-Object Flow Diagram
Travel Expense Model
/ Traveler
/ Authorizer
Travel perm.
request
<Plan trip>
/ BookKeeper
A Swimlane
for each
Object or
ClassifierRole
<Decide>
Travel
permission
<Buy tickets>
Who
What
When
Action
<Travel>
<Write exp.
Report>
/ Paymaster
Expense
Report
Data Object
<Check OK>
<Authorize>
Authorized
Expense
Report
<Check>
<Bookkeeping>
Payment
Request
Architectural Design of Distributed Systems
<Pay out>
3/11/01 10:36 AM.
© Trygve Reenskaug 2001
Slide
22
Pipes and Filters:
Travel Expense Model
/ Traveler
/ Authorizer
/ BookKeeper
/ Paymaster
Who
<Plan trip>
TravelRecord
[request]
<Buy tickets>
TravelRecord
[permission]
<Decide>
Data Object
changes state
over time
What
When
<Travel>
<Write exp.
Report>
TravelRecord
[report]
<Check OK>
<Authorize>
TravelRecord
[authorized]
<Check>
<Bookkeeping>
TravelRecord
[pay]
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
© Trygve Reenskaug 2001
<Pay out>
3/11/01 10:36 AM.
Slide
23
Page 9
Architectural Design of Distributed Business Systems
TOOLS Europe 2001
Personal Information Environment
Personal level
User's mental model
UML Collaboration
Architectural Design of Distributed Systems
3/11/01 10:36 AM.
© Trygve Reenskaug 2001
Slide
24
Task: Decide permission
Travel Expense Model
/ Traveler
<Plan trip>
<Buy tickets>
/ Authorizer
Travel perm.
request
/ BookKeeper
/ Paymaster
<Decide>
Travel
permission
<Travel>
<Write exp.
Report>
Expense
Report
<Check OK>
<Authorize>
Authorized
Expense
Report
<Check>
<Bookkeeping>
Payment
Request
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
© Trygve Reenskaug 2001
<Pay out>
3/11/01 10:36 AM.
Slide
25
Page 10
Architectural Design of Distributed Business Systems
TOOLS Europe 2001
Travel Permission Decision Tool
Travel Expense System
Traveler
Period
Peter
Planned cost
week 11
USD 2000.-
Purpose Attend TOOLS Europe 2001
Current plan for Peter
Budget + commitments
activity 1
activity 2
activity 3
week
Item
Budget Committed
Travel 10,000
4,000
10 11 12 13 14 15
Permit
Architectural Design of Distributed Systems
Reject
3/11/01 10:36 AM.
© Trygve Reenskaug 2001
Slide
26
Travel Permission Decision Tool
Required Topology
Traveler
Peter
Period
Planned cost
USD 2000./ Planning
week 11
Service
Purpose Attend TOOLS Europe 2001
/Current
Authorizer
plan for Peter
Budget + commitments
activity 1
activity 2
activity 3
week
/ Travel
Service
/ DecisionTool
Item
Budget Committed
Travel 10,000
10 11 12 13 14 15
Permit
Architectural Design of Distributed Systems
Reject
© Trygve Reenskaug 2001
4,000
/ Accounting
Service
3/11/01 10:36 AM.
Slide
27
Architecting Distributed Systems
System level
Design models
All of UML
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
© Trygve Reenskaug 2001
3/11/01 10:36 AM.
Slide
28
Page 11
Architectural Design of Distributed Business Systems
TOOLS Europe 2001
Highlights
• Why architecture is important & What it is
• Habitable Architectures created for people
– Enterprise models
– Personal information environments
– System models, the heavy part
• UML Collaboration, a powerful abstraction for
architectural topology
– Collaboration (role model) specify many instances
– CollaborationInstance depicting a concrete topology
• Patterns, a literary style for sharing experience
– Wrap Entity Beans with Session Beans
– Caterpillars Fate: Smooth transition from analysis to design
• Summary and Conclusion
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
3/11/01 10:36 AM.
Slide
29
The (toy) sample user interface is a
Java Applet that is run from a web
browser. The interface interacts
with a background service that is
also written in Java.
Enterprise
Production Planning & Control
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
3/11/01 10:36 AM.
The top bars in the bar chart shows
the earliest times when the
activities can be performed. The
bottom bars show when the
activities all have to be done by the
same resource, and this resource
can only serve one activity at the
time.
Slide
30
Slide
31
UML Use Case Notation
Demo Example
ActivityNetworkDemo
UC 1: Generate test networks
User (Me)
UC 2: Frontload
UC 3: Allocate resource
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
© Trygve Reenskaug 2001
3/11/01 10:36 AM.
Page 12
Architectural Design of Distributed Business Systems
TOOLS Europe 2001
Use Case 2: Frontloading
UML Instance Interaction Diagram
fL(t) =
Project
public void
frontLoad (int time )
9:
fL
(1
)
(6
fL
3:
Activity-C
7
(7)
13
7:
fL
(1
6)
14
(3)
16
Activity-E
Activity-F
7)
L(1
8:f
14
(4)
17
6:fL(13)
Architectural Design of Distributed Systems
9)
Activity-D
4:fL(10)
7
(4)
10
)
(6
fL
2:
Activity-A
1
(6)
6
Activity-B
5:f
L(1
3)
1
)
(0
:fL
0
--20
3/11/01 10:36 AM.
© Trygve Reenskaug 2001
18
(2)
19
Slide
32
The UML Collaboration
and the ClassifierRole
/ RoleName
2: mess2
1: mess1
A collaboration describes how an operation, like a use case, is
realized by a set of classifiers and associations used in a
specific way. The collaboration defines a set of roles to be
played by instances, as well as a set of interactions that define
the communication between the instances when they play the
roles.
Architectural Design of Distributed Systems
3/11/01 10:36 AM.
© Trygve Reenskaug 2001
Slide
33
What are the objects, what are their
responsibilities, and how do their
collaborate to achieve the system
functionality.
The essence of frontloading
Collaboration with Interaction
/ Predecessor
/ Activity
fL(t1)
*
*
/ Successor
fL(t2)
*
*
"In an instance of a collaboration, each
ClassifierRole maps onto at most one object.”
A many-relation (*) means that
the role represents a typical member of the set
All other members behave correspondingly
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
© Trygve Reenskaug 2001
3/11/01 10:36 AM.
Slide
34
Page 13
Architectural Design of Distributed Business Systems
TOOLS Europe 2001
Interfaces in the
Basic scheduling collaboration
The interfaces specify minimal requirements
to receiving classes
/ Predecessor
/ Activity
fL(t1)
/ Successor
fL(t2)
«Interface»
FrontloadIntf
frontLoad(time)
Architectural Design of Distributed Systems
3/11/01 10:36 AM.
© Trygve Reenskaug 2001
Slide
35
Interface Definitions
Java
public interface FrontloadIntf {
public void frontLoad (int t);
}
/ Predecessor
/ Activity
fL(t1)
fL(t2)
/ Successor
«Interface»
FrontloadIntf
frontLoad(time)
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
3/11/01 10:36 AM.
Slide
36
The UML Class
playing a role in a Collaboration
:ClassName
2: mess2
1: mess1
An Instance of a given class
playing the specified role at run time
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
© Trygve Reenskaug 2001
3/11/01 10:36 AM.
Slide
37
Page 14
Architectural Design of Distributed Business Systems
TOOLS Europe 2001
Assign classes to roles
(Optional)
/ Predecessor
:Activity, :Project
/ Activity
: Activity
fL(t1)
/ Successor
:Activity, :Project
fL(t2)
«Interface»
FrontloadIntf
frontLoad(time)
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
3/11/01 10:36 AM.
Slide
38
Slide
39
Class Definitions
Java
public class Activity
implements FrontloadIntf {
private FrontloadIntf[] successors;
… … …
public void frontload (int t) {…}
… … …
}
public class Project
implements FrontloadIntf{
private FrontloadIntf[] startActivities;
… … …
public void frontload (int t) {…}
… … …
}
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
3/11/01 10:36 AM.
Highlights
• Why architecture is important & What it is
• Habitable Architectures created for people
– Enterprise models
– Personal information environments
– System models, the heavy part
• UML Collaboration, a powerful abstraction for
architectural topology
– Collaboration (role model) specify many instances
– CollaborationInstance depicting a concrete topology
• Patterns, a literary style for sharing experience
– Wrap Entity Beans with Session Beans
– Caterpillars Fate: Smooth transition from analysis to design
• Summary and Conclusion
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
© Trygve Reenskaug 2001
3/11/01 10:36 AM.
Slide
40
Page 15
Architectural Design of Distributed Business Systems
TOOLS Europe 2001
Separate Presentation and Business
Objects
WEB Browser
paint();
Button
Tool
ActivityGraph
BarChart
Project
activity-B
activity-D
activity-C
activity-E
activity-A
Architectural Design of Distributed Systems
Activity-F
3/11/01 10:36 AM.
© Trygve Reenskaug 2001
Slide
41
An Unrealistic
Implementation
class ActivityGraph extends Canvas {. . .
public void paint(Graphics g) {
. . . // paint frame etc.
Graphics ng = g.create(. . .);
tool.getProject().paintGraph(ng);
}
public class Project {. . .
public void paintGraph(Graphics g) {
// collect ranked activities
Activity[][] bucket = rankedActivities();
// Plot activities in each column.
for (int i=0; i < bucket.length; i++) {
for (int j=0; j < bucket[i].length; j++) {
bucket[i][j].paintSymbol(g, new Point (…), grid);
}
}
// draw connections . . .
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
3/11/01 10:36 AM.
Slide
42
Java RMI
Remote Method Invocation
WEB Browser
Button
ActivityGraph
BarChart
Client
paint();
s
Bu
Tool
Server
n
io
Project
at
m
or
f
In
activity-B
activity-D
activity-A
Activity-F
activity-C
activity-E
Exercise 3:
Suggest an implementation for this system
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
© Trygve Reenskaug 2001
3/11/01 10:36 AM.
Slide
43
Page 16
Architectural Design of Distributed Business Systems
TOOLS Europe 2001
The UML Subsystem
playing a role in a Collaboration
2: mess2
1: mess1
SubsystemName
A subsystem is a grouping of model elements that represents
a behavioral unit in a physical system.
A subsystem offers interfaces and has operations.
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
3/11/01 10:36 AM.
Slide
44
High level Collaboration
with Subsystems
The Subsystem hides detail to
simplify the drawing, but is neither
visible at compile time nor at run
time.
Tool
Responsibility
PlanningService
Responsibility
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
3/11/01 10:37 AM.
Slide
45
The UML Component
playing a role in a Collaboration
1: mess1
ComponentName
2: mess2
A Component represents a modular, deployable, and
replaceable part of a system that encapsulates implementation
and exposes a set of interfaces.
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
© Trygve Reenskaug 2001
3/11/01 10:37 AM.
Slide
46
Page 17
Architectural Design of Distributed Business Systems
TOOLS Europe 2001
High level Collaboration
with UML Components
The Component simplifies the
system. It supports separate
compilation and deployment; the
separation is visible at run time.
Tool
Responsibility
«Interface»
Project
PlanningService
Responsibility
?
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
3/11/01 10:37 AM.
Slide
47
The Node is a container of
components. In itself, it does not
offer operations to its environment,
so it cannot be a classifierRole.
Assign Components
to Physical Nodes
PC
Tool
Application Server
Planning
Service
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
3/11/01 10:37 AM.
Slide
48
Some UML Definitions
• A Collaboration describes how an operation, like a use case, is realized
by a set of classifiers and associations used in a specific way. The
collaboration defines a set of roles to be played by Instances, as well as
a set of interactions that define the communication between the
instances when they play the roles.
• The Instance is encapsulated. It has identity, interface and state.
• An instance of a given Class can play one or more roles at run time.
A ClassifierRole can be implemented by many ways.
• A Subsystem is a grouping of model elements that represents a
behavioral unit in a physical system. A subsystem offers interfaces and
has operations.
• A Component represents a modular, deployable, and replaceable part of
a system that encapsulates implementation and exposes a set of
interfaces.
• A Node is a run-time physical object that represents a computational
resource,
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
© Trygve Reenskaug 2001
3/11/01 10:37 AM.
Slide
49
Page 18
Architectural Design of Distributed Business Systems
TOOLS Europe 2001
UML Diagrams
(Architecturally Significant)
# Build-time Diagrams (Code and Code Management)
* Class Diagrams
* Deployment Diagrams
* Component Diagrams
# Run-time Diagrams
* Use Case Diagrams
* Collaboration Diagrams
(Objects, ClassifierRoles, Subsystems, Components)
* Interaction & Sequence Diagrams
* Object Diagrams
* Statechart Diagrams
* Activity Diagrams / Action-Object Flow Diagrams
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
3/11/01 10:37 AM.
Slide
50
Highlights
• Why architecture is important & What it is
• Habitable Architectures created for people
– Enterprise models
– Personal information environments
– System models, the heavy part
• UML Collaboration, a powerful abstraction for
architectural topology
– Collaboration (role model) specify many instances
– CollaborationInstance depicting a concrete topology
• Patterns, a literary style for sharing experience
– Wrap Entity Beans with Session Beans
– Caterpillars Fate: Smooth transition from analysis to design
• Summary and Conclusion
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
3/11/01 10:37 AM.
Slide
51
A pattern tells you how to solve a
problem.
Design Patterns
A framework solves the problem
for you.
ChristopherAlexander, Architect:
Each pattern describes a problem that occurs over and
over again in our environment and then describes the
core of the solution to that problem in such a way that
you can use this solution a million times over without
ever doing it the same way twice.
Jim Coplien and Doug Schmidt, Software Engineers:
• A clear statement of a problem and its context.
• Offering a concrete solution addressing the problem
• A clear statement of the forces that motivate the solution.
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
© Trygve Reenskaug 2001
3/11/01 10:37 AM.
Slide
52
Page 19
Architectural Design of Distributed Business Systems
TOOLS Europe 2001
Highlights
• Why architecture is important & What it is
• Habitable Architectures created for people
– Enterprise models
– Personal information environments
– System models, the heavy part
• UML Collaboration, a powerful abstraction for
architectural topology
– Collaboration (role model) specify many instances
– CollaborationInstance depicting a concrete topology
• Patterns, a literary style for sharing experience
– Wrap Entity Beans with Session Beans
– Caterpillars Fate: Smooth transition from analysis to design
• Summary and Conclusion
Architectural Design of Distributed Systems
3/11/01 10:37 AM.
© Trygve Reenskaug 2001
Slide
53
Wrap Entity Beans with Session Beans-1
Ed Roman, TheServerside.com, August, 2000
"Artist's Impression"
S
JDBC
Business API
Business Logic
S
E
Persistent Data
Data Logic
E
Architectural Design of Distributed Systems
3/11/01 10:37 AM.
© Trygve Reenskaug 2001
Slide
54
Slide
55
A Real Example Application
Execution Architecture
Web
Browser
Data
Storage
Web
Server
UI
«web
pages»
1
UIControl
«JavaServer
Page»
Data
base
1
Application
Server
1
Activity
Task
«Stateful
SessionBean»
«Stateless
SessionBean»
*
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
© Trygve Reenskaug 2001
Mapper
1
«EntityBean»
3/11/01 10:37 AM.
Page 20
Architectural Design of Distributed Business Systems
TOOLS Europe 2001
Highlights
• Why architecture is important & What it is
• Habitable Architectures created for people
– Enterprise models
– Personal information environments
– System models, the heavy part
• UML Collaboration, a powerful abstraction for
architectural topology
– Collaboration (role model) specify many instances
– CollaborationInstance depicting a concrete topology
• Patterns, a literary style for sharing experience
– Wrap Entity Beans with Session Beans
– Caterpillars Fate: Smooth transition from analysis to design
• Summary and Conclusion
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
3/11/01 10:37 AM.
Slide
56
Caterpillar's Fate - 1
Norman Kerth, Coplien's book
2.
Synchronization
of Concurrent Threads
3.
1.
Concurrent
Collaborative
Work Packets
Threads of Execution
9.
Shape of Program
The main patterns
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
3/11/01 10:37 AM.
Slide
57
Highlights
• Why architecture is important & What it is
• Habitable Architectures created for people
– Enterprise models
– Personal information environments
– System models, the heavy part
• UML Collaboration, a powerful abstraction for
architectural topology
– Collaboration (role model) specify many instances
– CollaborationInstance depicting a concrete topology
• Patterns, a literary style for sharing experience
– Wrap Entity Beans with Session Beans
– Caterpillars Fate: Smooth transition from analysis to design
• Summary and Conclusion
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
© Trygve Reenskaug 2001
3/11/01 10:37 AM.
Slide
58
Page 21
Architectural Design of Distributed Business Systems
TOOLS Europe 2001
Personal, Integrated
Information Environments
#
#
#
Habitable Systems
Theory X for inspiring organizations
Explicit Users' Mental Models
Architectural Design of Distributed Systems
3/11/01 10:37 AM.
© Trygve Reenskaug 2001
Slide
59
Control Components through their
Responsibilities and Interfaces
Tool
Responsibility
«Interface»
Project
PlanningService
Responsibility
?
Architectural Design of Distributed Systems
3/11/01 10:37 AM.
© Trygve Reenskaug 2001
Slide
60
Plan Behavior
Who - What - When
/ Traveler
/ Authorizer
<Plan trip>
TravelRecord
[request]
<Buy tickets>
TravelRecord
[permission]
/ BookKeeper
/ Paymaster
<Decide>
<Travel>
<Write exp.
Report>
TravelRecord
[report]
<Check OK>
<Authorize>
TravelRecord
[authorized]
<Check>
<Bookkeeping>
TravelRecord
[pay]
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
© Trygve Reenskaug 2001
<Pay out>
3/11/01 10:37 AM.
Slide
61
Page 22
Architectural Design of Distributed Business Systems
TOOLS Europe 2001
Instruct implementors and maintainers
Objects
Collaboration links
Backplane
(Container)
Operating
System
Net
Hardware
Architectural Design of Distributed Systems
Thanks to Øystein Myhre for this illustration
© Trygve Reenskaug 2001
3/11/01 10:37 AM.
Slide
62
Questions ?
Comments ?
Architectural Design of Distributed Systems
© Trygve Reenskaug 2001
3/11/01 10:37 AM.
Slide
63
THE END
© Trygve Reenskaug 2001
Page 23
Architectural Design of Distributed Business Systems
TOOLS Europe 2001
More details
•
•
•
http://www.ifi.uio.no/~trygver
•
Reenskaug, Wold, Lehne: Working With Objects. Manning/Prentice Hall 1996. ISBN 0-13-452930-8
The reference work. This book is out of print. A .pdf version kan be downloaded free from above
website.
•
Theory: Egil P. Andersen: Conceptual Modeling of Objects. A Role Modeling Approach. Dr Scient
thesis. Dept. of Informatics, University of Oslo. 4 November 1997.
The theory of role modeling
ftp://ftp.nr.no/pub/egil/ConceptualModelingOO.ps.gz
•
Unified Modeling Language (UML). Object Management Group. UML Draft Specification v. 1.4.
UML Draft Specification v. 1.4. OMG DOC#: ad/01-02-13.
http://cgi.omg.org/cgi-bin/doc?ad/01-02-13
•
Donald A. Norman: "The Design of Everyday Things." Doubleday/Currency 1990. ISBN 0-38526774-6.
•
Douglas MacGregor: “Human Side of Enterprise : 25th Anniversary Printing” McGraw-Hill 1985;
ISBN: 0070450986
•
•
•
•
•
•
•
Alexander, Christopher, et al. A Pattern Language, Oxford University Press, New York, 1977.
trygve.reenskaug@ifi.uio.no
Coplien, James O. and Douglas C. Schmidt, ed. Pattern Languages of Program Design, AddisonWesley, 1995.
http://www.c2.com/cgi/wiki?WelcomeVisitors
http://hillside.net/patterns/
http://theserverside.com/patterns/
http://www.c2.com/cgi/wiki?EjbRoadmap
Frank Buschmann: Pattern-Oriented Software Architecture. Wiley 1996; ISBN: 0471958697
IBM WebSphere: http://www.redbooks.ibm.com/abstracts/sg246161.html
© Trygve Reenskaug 2001
Page 24
Download