Download presentation
Presentation is loading. Please wait.
Published byFloriane Morency Modified over 6 years ago
1
Architectural Design of Distributed Business Systems
9/21/2018 7:05 PM Architectural Design of Distributed Business Systems Tutorial M3, TOOLS Europe 2001 13 March 2001 Trygve Reenskaug Mogul Norway AS, Oslo Architectural Design of Distributed Systems ©2001 Trygve Reenskaug
2
The Autokon system for the Computer-Aided Design of Ships
Architectural Design of Distributed Business Systems The Autokon system for the Computer-Aided Design of Ships 9/21/2018 7:05 PM Architecture created First deployed First international Converted to PC Architecture still valid!! Architectural Design of Distributed Systems ©2001 Trygve Reenskaug
3
The Autokon architecture Why the long life ?
Architectural Design of Distributed Business Systems The Autokon architecture Why the long life ? 9/21/2018 7:05 PM ¤ 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 ©2001 Trygve Reenskaug
4
The Autokon architecture Was it worth it ?
Architectural Design of Distributed Business Systems The Autokon architecture Was it worth it ? 9/21/2018 7:05 PM Y E S ! ¤ 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 ©2001 Trygve Reenskaug
5
Exercise 1: What do WE mean by System Architecture?
Architectural Design of Distributed Business Systems Exercise 1: What do WE mean by System Architecture? 9/21/2018 7:05 PM ………………………………………. Architectural Design of Distributed Systems ©2001 Trygve Reenskaug
6
Architectural Design of Distributed Business Systems
Highlights 9/21/2018 7:05 PM 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 ©2001 Trygve Reenskaug
7
Architectural Design of Distributed Business Systems
WHY ARCHITECTURE? 9/21/2018 7:05 PM 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 ©2001 Trygve Reenskaug
8
Theory X vs. Theory Y (MacGregor)
Architectural Design of Distributed Business Systems Theory X vs. Theory Y (MacGregor) 9/21/2018 7:05 PM Theory X: Dislike work Lack ambition Are irresponsible Are resistant to change Prefer to be led rather than to lead Theory Y Are willing to work Are capable of self-control Are willing to accept responsibility Are imaginative and creative Are capable of self-direction Authoritarian leadership Inspiring leadership Rigid, controlling environment Flexible, supportive environment Bored, passive workers Interested, creative workers Architectural Design of Distributed Systems ©2001 Trygve Reenskaug
9
Vision of Distribution anno 1973
Architectural Design of Distributed Business Systems Vision of Distribution anno 1973 9/21/2018 7:05 PM Mary’s System Yngvar’s System Jonas’ System Kari’s System Anton’s System Architectural Design of Distributed Systems ©2001 Trygve Reenskaug
10
The Importance of the User's Mental Model
Architectural Design of Distributed Business Systems The Importance of the User's Mental Model 9/21/2018 7:05 PM 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. System Image SYSTEM DESIGNER Design model USER USER'S MODEL Donald A. Norman: The Design of Everyday Things Architectural Design of Distributed Systems ©2001 Trygve Reenskaug
11
Make IT so simple that even a programmer can understand IT
Architectural Design of Distributed Business Systems Make IT so simple that even a programmer can understand IT 9/21/2018 7:05 PM 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) bugs removed from Windows2000 during testing Architectural Design of Distributed Systems ©2001 Trygve Reenskaug
12
Architectural Design of Distributed Business Systems
Architectural styles 9/21/2018 7:05 PM Architecture for: Chaos-Beauty-Flexibility? Architectural Design of Distributed Systems ©2001 Trygve Reenskaug
13
Architectural Design of Distributed Business Systems
Architecture Example 9/21/2018 7:05 PM First Priority: Make it Habitable! Second Priority: Make it Buildable! Third Priority: Make it Cost Effective! First: Architect describes end result. Second: Architect describes how to build. Architectural Design of Distributed Systems ©2001 Trygve Reenskaug
14
Architectural Design of Distributed Business Systems
RATIONAL's Definition of Architecture "Principles of Architecting Software Systems" 9/21/2018 7:05 PM 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 ©2001 Trygve Reenskaug
15
Architectural Design of Distributed Business Systems
Highlights 9/21/2018 7:05 PM 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 ©2001 Trygve Reenskaug
16
Personal, Integrated Information Environments
Architectural Design of Distributed Business Systems Personal, Integrated Information Environments 9/21/2018 7:05 PM 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 ©2001 Trygve Reenskaug
17
Enterprise level Example:Travel Expense
Architectural Design of Distributed Business Systems Enterprise level Example:Travel Expense 9/21/2018 7:05 PM Enterprise level Work processes UML Object Model Architectural Design of Distributed Systems ©2001 Trygve Reenskaug
18
Two Approaches to Object Orientation
Architectural Design of Distributed Business Systems Two Approaches to Object Orientation 9/21/2018 7:05 PM "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 ©2001 Trygve Reenskaug
19
UML Instance Interaction Diagram Travel Expense Model
Architectural Design of Distributed Business Systems UML Instance Interaction Diagram Travel Expense Model 9/21/2018 7:05 PM Peter (Technical author) Bill (Dispatcher) Joyce (Sales clerk) Douglas (Marketing manager) Kim (Methodologist) Elsie (Programmer) Eve (Software Manager) (Bookkeeper) Joe (Paymaster) Adam (Chief Accountant) Ruth (President) John (Cashier) Ann (Customer consultant) 4: authorizedExpenseReport 1: travelPermissionRequest 2: travelPermission 3: expenseReport 5: paymentRequest 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. 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. Architectural Design of Distributed Systems ©2001 Trygve Reenskaug
20
UML Collaboration Diagram Travel Expense Model
Architectural Design of Distributed Business Systems UML Collaboration Diagram Travel Expense Model 9/21/2018 7:05 PM Peter (Technical author) Bill (Dispatcher) Joyce (Sales clerk) Douglas (Marketing manager) Kim (Methodologist) Elsie (Programmer) Eve (Software Manager) (Bookkeeper) Joe (Paymaster) Adam (Chief Accountant) Ruth (President) John (Cashier) Ann (Customer consultant) / Authorizer / BookKeeper / Paymaster / Traveler The classifierRole represents the object’s position in the structure and its responsibility for performing its part of the system function. Objects --> ClassifierRoles Architectural Design of Distributed Systems ©2001 Trygve Reenskaug
21
Behavior: Action-Object Flow Diagram Travel Expense Model
Architectural Design of Distributed Business Systems 9/21/2018 7:05 PM Behavior: Action-Object Flow Diagram Travel Expense Model / Traveler / Authorizer / BookKeeper / Paymaster Who Travel perm. request <Decide> A Swimlane for each Object or ClassifierRole <Plan trip> What Travel permission <Buy tickets> Action When <Write exp. Report> <Travel> Expense Report <Check OK> <Authorize> Data Object Authorized Expense Report <Check> <Bookkeeping> Payment Request <Pay out> Architectural Design of Distributed Systems ©2001 Trygve Reenskaug
22
Pipes and Filters: Travel Expense Model
Architectural Design of Distributed Business Systems 9/21/2018 7:05 PM Pipes and Filters: Travel Expense Model / Traveler / Authorizer / BookKeeper / Paymaster Who TravelRecord [request] <Decide> <Plan trip> What Data Object changes state over time TravelRecord [permission] <Buy tickets> When <Write exp. Report> <Travel> TravelRecord [report] <Check OK> <Authorize> TravelRecord [authorized] <Check> <Bookkeeping> TravelRecord [pay] <Pay out> Architectural Design of Distributed Systems ©2001 Trygve Reenskaug
23
Personal Information Environment
Architectural Design of Distributed Business Systems Personal Information Environment 9/21/2018 7:05 PM Personal level User's mental model UML Collaboration Architectural Design of Distributed Systems ©2001 Trygve Reenskaug
24
Task: Decide permission Travel Expense Model
Architectural Design of Distributed Business Systems 9/21/2018 7:05 PM Task: Decide permission Travel Expense Model / Traveler / Authorizer / Authorizer / BookKeeper / Paymaster Travel perm. request <Decide> Travel perm. request <Decide> Travel permission <Plan trip> Travel permission <Buy tickets> <Write exp. Report> <Travel> Expense Report <Check OK> <Authorize> Authorized Expense Report <Check> <Bookkeeping> Payment Request <Pay out> Architectural Design of Distributed Systems ©2001 Trygve Reenskaug
25
Travel Permission Decision Tool Travel Expense System
Architectural Design of Distributed Business Systems Travel Permission Decision Tool Travel Expense System 9/21/2018 7:05 PM Traveler Peter Period week 11 Planned cost USD Purpose Attend TOOLS Europe 2001 Current plan for Peter activity 1 activity 2 activity 3 week Budget + commitments Item Budget Committed Travel 10, ,000 Permit Reject Architectural Design of Distributed Systems ©2001 Trygve Reenskaug
26
Travel Permission Decision Tool Required Topology
Architectural Design of Distributed Business Systems Travel Permission Decision Tool Required Topology 9/21/2018 7:05 PM Traveler Peter Period week 11 Planned cost USD Purpose Attend TOOLS Europe 2001 Current plan for Peter activity 1 activity 2 activity 3 week Budget + commitments Item Budget Committed Travel 10, ,000 Reject Permit / Planning Service / Authorizer / DecisionTool / Travel Service / Accounting Service Architectural Design of Distributed Systems ©2001 Trygve Reenskaug
27
Architecting Distributed Systems
Architectural Design of Distributed Business Systems Architecting Distributed Systems 9/21/2018 7:05 PM System level Design models All of UML Architectural Design of Distributed Systems ©2001 Trygve Reenskaug
28
Architectural Design of Distributed Business Systems
Highlights 9/21/2018 7:05 PM 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 ©2001 Trygve Reenskaug
29
Enterprise Production Planning & Control
Architectural Design of Distributed Business Systems Enterprise Production Planning & Control 9/21/2018 7:05 PM 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. 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. Architectural Design of Distributed Systems ©2001 Trygve Reenskaug
30
UML Use Case Notation Demo Example
Architectural Design of Distributed Business Systems UML Use Case Notation Demo Example 9/21/2018 7:05 PM ActivityNetworkDemo UC 2: Frontload UC 1: Generate test networks UC 3: Allocate resource User (Me) Architectural Design of Distributed Systems ©2001 Trygve Reenskaug
31
Use Case 2: Frontloading UML Instance Interaction Diagram
Architectural Design of Distributed Business Systems Use Case 2: Frontloading UML Instance Interaction Diagram 9/21/2018 7:05 PM fL(t) = public void frontLoad (int time ) Project 1:fL(0) 9:fL(19) Activity-B 7 (4) 10 Activity-D 14 (3) 16 4:fL(10) 2:fL(6) 7:fL(16) Activity-A 1 (6) 6 Activity-F 18 (2) 19 5:fL(13) 3:fL(6) Activity-C 7 (7) 13 Activity-E 14 (4) 17 8:fL(17) 6:fL(13) Architectural Design of Distributed Systems ©2001 Trygve Reenskaug
32
The UML Collaboration and the ClassifierRole
Architectural Design of Distributed Business Systems The UML Collaboration and the ClassifierRole 9/21/2018 7:05 PM / RoleName 1: mess1 2: mess2 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 ©2001 Trygve Reenskaug
33
The essence of frontloading Collaboration with Interaction
Architectural Design of Distributed Business Systems The essence of frontloading Collaboration with Interaction 9/21/2018 7:05 PM / Activity / Successor / Predecessor fL(t1) fL(t2) * A many-relation (*) means that the role represents a typical member of the set All other members behave correspondingly "In an instance of a collaboration, each ClassifierRole maps onto at most one object.” What are the objects, what are their responsibilities, and how do their collaborate to achieve the system functionality. Architectural Design of Distributed Systems ©2001 Trygve Reenskaug
34
Interfaces in the Basic scheduling collaboration
Architectural Design of Distributed Business Systems Interfaces in the Basic scheduling collaboration 9/21/2018 7:05 PM The interfaces specify minimal requirements to receiving classes / Predecessor / Activity / Successor fL(t1) fL(t2) «Interface» FrontloadIntf frontLoad(time) Architectural Design of Distributed Systems ©2001 Trygve Reenskaug
35
Interface Definitions Java
Architectural Design of Distributed Business Systems Interface Definitions Java 9/21/2018 7:05 PM public interface FrontloadIntf { public void frontLoad (int t); } / Predecessor / Activity / Successor fL(t2) fL(t1) «Interface» FrontloadIntf frontLoad(time) Architectural Design of Distributed Systems ©2001 Trygve Reenskaug
36
The UML Class playing a role in a Collaboration
Architectural Design of Distributed Business Systems The UML Class playing a role in a Collaboration 9/21/2018 7:05 PM :ClassName 1: mess1 2: mess2 An Instance of a given class playing the specified role at run time Architectural Design of Distributed Systems ©2001 Trygve Reenskaug
37
Assign classes to roles (Optional)
Architectural Design of Distributed Business Systems Assign classes to roles (Optional) 9/21/2018 7:05 PM / Predecessor :Activity, :Project / Activity : Activity / Successor :Activity, :Project fL(t1) fL(t2) «Interface» FrontloadIntf frontLoad(time) Architectural Design of Distributed Systems ©2001 Trygve Reenskaug
38
Class Definitions Java
Architectural Design of Distributed Business Systems Class Definitions Java 9/21/2018 7:05 PM public class Activity implements FrontloadIntf { private FrontloadIntf[] successors; … … … public void frontload (int t) {…} … … … } / Predecessor : Activity, Project / Activity : Activity / Successor : Activity, Project fL(t1) fL(t2) «Interface» BackloadIntf backload(time) «Interface» FrontloadIntf frontLoad(time) public class Project implements FrontloadIntf{ private FrontloadIntf[] startActivities; … … … public void frontload (int t) {…} … … … } Architectural Design of Distributed Systems ©2001 Trygve Reenskaug
39
Architectural Design of Distributed Business Systems
Highlights 9/21/2018 7:05 PM 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 ©2001 Trygve Reenskaug
40
Separate Presentation and Business Objects
Architectural Design of Distributed Business Systems Separate Presentation and Business Objects 9/21/2018 7:05 PM WEB Browser paint(); Button Tool ActivityGraph BarChart Project activity-B activity-D activity-A Activity-F activity-C activity-E Architectural Design of Distributed Systems ©2001 Trygve Reenskaug
41
An Unrealistic Implementation
Architectural Design of Distributed Business Systems An Unrealistic Implementation 9/21/2018 7:05 PM 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 ©2001 Trygve Reenskaug
42
Java RMI Remote Method Invocation
Architectural Design of Distributed Business Systems Java RMI Remote Method Invocation 9/21/2018 7:05 PM Server Client Information Bus WEB Browser paint(); Button Tool ActivityGraph BarChart Project 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 ©2001 Trygve Reenskaug
43
The UML Subsystem playing a role in a Collaboration
Architectural Design of Distributed Business Systems The UML Subsystem playing a role in a Collaboration 9/21/2018 7:05 PM SubsystemName 1: mess1 2: mess2 A subsystem is a grouping of model elements that represents a behavioral unit in a physical system. A subsystem offers interfaces and has operations. The Subsystem hides detail to simplify the drawing, but is neither visible at compile time nor at run time. Architectural Design of Distributed Systems ©2001 Trygve Reenskaug
44
High level Collaboration with Subsystems
Architectural Design of Distributed Business Systems High level Collaboration with Subsystems 9/21/2018 7:05 PM Tool WEB Browser paint(); Button Applet ActivityGraph BarChart PlanningService Project The Subsystem hides detail to simplify the drawing, but is neither visible at compile time nor at run time. activity-B activity-D activity-A Activity-F activity-C activity-E Architectural Design of Distributed Systems ©2001 Trygve Reenskaug
45
The UML Component playing a role in a Collaboration
Architectural Design of Distributed Business Systems The UML Component playing a role in a Collaboration 9/21/2018 7:05 PM ComponentName 1: mess1 2: mess2 A Component represents a modular, deployable, and replaceable part of a system that encapsulates implementation and exposes a set of interfaces. The Component simplifies the system. It supports separate compilation and deployment; the separation is visible at run time. Architectural Design of Distributed Systems ©2001 Trygve Reenskaug
46
High level Collaboration with UML Components
Architectural Design of Distributed Business Systems High level Collaboration with UML Components 9/21/2018 7:05 PM Tool PlanningService WEB Browser paint(); Button Responsibility Applet ActivityGraph BarChart ? «Interface» Project Project activity-B activity-D activity-A Responsibility Activity-F activity-C activity-E Architectural Design of Distributed Systems ©2001 Trygve Reenskaug
47
Assign Components to Physical Nodes
Architectural Design of Distributed Business Systems Assign Components to Physical Nodes 9/21/2018 7:05 PM PC Tool Application Server Planning Service The Node is a container of components. In itself, it does not offer operations to its environment, so it cannot be a classifierRole. Architectural Design of Distributed Systems ©2001 Trygve Reenskaug
48
Architectural Design of Distributed Business Systems
Some UML Definitions 9/21/2018 7:05 PM 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 ©2001 Trygve Reenskaug
49
UML Diagrams (Architecturally Significant)
Architectural Design of Distributed Business Systems UML Diagrams (Architecturally Significant) 9/21/2018 7:05 PM 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 ©2001 Trygve Reenskaug
50
Architectural Design of Distributed Business Systems
Highlights 9/21/2018 7:05 PM 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 ©2001 Trygve Reenskaug
51
Architectural Design of Distributed Business Systems
Design Patterns 9/21/2018 7:05 PM 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. A pattern tells you how to solve a problem. A framework solves the problem for you. Architectural Design of Distributed Systems ©2001 Trygve Reenskaug
52
Architectural Design of Distributed Business Systems
Highlights 9/21/2018 7:05 PM 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 ©2001 Trygve Reenskaug
53
Architectural Design of Distributed Business Systems
Wrap Entity Beans with Session Beans-1 Ed Roman, TheServerside.com, August, 2000 9/21/2018 7:05 PM "Artist's Impression" Business API Business Logic S S Persistent Data Data Logic E E JDBC Architectural Design of Distributed Systems ©2001 Trygve Reenskaug
54
A Real Example Application Execution Architecture
Architectural Design of Distributed Business Systems A Real Example Application Execution Architecture 9/21/2018 7:05 PM Web Browser UI «web pages» Web Server UIControl «JavaServer Page» 1 Data Storage base 1 Mapper «EntityBean» Application Server Activity «Stateful SessionBean» 1 Task «Stateless SessionBean» * Architectural Design of Distributed Systems ©2001 Trygve Reenskaug
55
Architectural Design of Distributed Business Systems
Highlights 9/21/2018 7:05 PM 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 ©2001 Trygve Reenskaug
56
Caterpillar's Fate - 1 Norman Kerth, Coplien's book
Architectural Design of Distributed Business Systems Caterpillar's Fate - 1 Norman Kerth, Coplien's book 9/21/2018 7:05 PM 2. Synchronization of Concurrent Threads 9. Shape of Program 3. Collaborative Work Packets 1. Concurrent Threads of Execution The main patterns Architectural Design of Distributed Systems ©2001 Trygve Reenskaug
57
Architectural Design of Distributed Business Systems
Highlights 9/21/2018 7:05 PM 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 ©2001 Trygve Reenskaug
58
Personal, Integrated Information Environments
Architectural Design of Distributed Business Systems Personal, Integrated Information Environments 9/21/2018 7:05 PM Habitable Systems Theory X for inspiring organizations Explicit Users' Mental Models Architectural Design of Distributed Systems ©2001 Trygve Reenskaug
59
Control Components through their Responsibilities and Interfaces
Architectural Design of Distributed Business Systems Control Components through their Responsibilities and Interfaces 9/21/2018 7:05 PM Tool Responsibility ? «Interface» Project PlanningService Architectural Design of Distributed Systems ©2001 Trygve Reenskaug
60
Plan Behavior Who - What - When
Architectural Design of Distributed Business Systems 9/21/2018 7:05 PM Plan Behavior Who - What - When / Authorizer / Paymaster / BookKeeper / Traveler <Plan trip> TravelRecord [request] <Decide> TravelRecord [permission] <Buy tickets> TravelRecord [authorized] <Check> <Bookkeeping> TravelRecord [pay] <Pay out> <Write exp. Report> <Travel> TravelRecord [report] <Check OK> <Authorize> Architectural Design of Distributed Systems ©2001 Trygve Reenskaug
61
Instruct implementors and maintainers
Architectural Design of Distributed Business Systems Instruct implementors and maintainers 9/21/2018 7:05 PM Objects Collaboration links Backplane (Container) Net Hardware Operating System Thanks to Øystein Myhre for this illustration Architectural Design of Distributed Systems ©2001 Trygve Reenskaug
62
Questions ? Comments ? Architectural Design of Distributed Systems
63
Architectural Design of Distributed Business Systems
9/21/2018 7:05 PM More details …. Coplien, James O. and Douglas C. Schmidt, ed. Pattern Languages of Program Design, Addison-Wesley, 1995. Reenskaug, Wold, Lehne: Working With Objects. Manning/Prentice Hall ISBN 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 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 UML Draft Specification v OMG DOC#: ad/ Donald A. Norman: "The Design of Everyday Things." Doubleday/Currency ISBN Douglas MacGregor: “Human Side of Enterprise : 25th Anniversary Printing” McGraw-Hill 1985; ISBN: Alexander, Christopher, et al. A Pattern Language, Oxford University Press, New York, 1977. Frank Buschmann: Pattern-Oriented Software Architecture. Wiley 1996; ISBN: IBM WebSphere: Architectural Design of Distributed Systems ©2001 Trygve Reenskaug
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.