od-1 cse333 architectural specification and optimal deployment of distributed systems profs. s....
Post on 20-Dec-2015
215 views
TRANSCRIPT
OD-1
CSE333
Architectural Specification and Optimal Architectural Specification and Optimal Deployment of Distributed SystemsDeployment of Distributed Systems
Profs. S. Demurjian and A. ShvartsmanComputer Science & Engineering Department
The University of Connecticut371 Fairfield Road, Box U-2155
Storrs, CT [email protected]
http://www.engr.uconn.edu/~steve
(860) 486 - 4818
Prof. María Cecilia BastarricaDepartment of Computer Science
The University of ChileSantiago, Chile
[email protected]://www.dcc.uchile.cl/~cecilia/
OD-2
CSE333
What are the Elements What are the Elements in a Distributed System?in a Distributed System?
Application ComponentsApplication Components New Software Legacy, COTS, Databases, etc.
Relationship Between ComponentsRelationship Between Components Different Implementations of “Same” Component Different Implementations of “Same” Component
on Different Hardware Platformson Different Hardware Platforms ConfigurationConfiguration Node Types in the NetworkNode Types in the Network Components’ DeploymentComponents’ Deployment More?More?
OD-3
CSE333
Graphical Modeling (Object-Oriented)Graphical Modeling (Object-Oriented) Manual Documentation of the Objects InteractionManual Documentation of the Objects Interaction Ad HocAd Hoc Specification of Types and Classes Specification of Types and Classes Formal Specification of InterfacesFormal Specification of Interfaces Description of Algorithms and ProtocolsDescription of Algorithms and Protocols Specification of Configuration and DeploymentSpecification of Configuration and Deployment
The Best Current PracticeThe Best Current Practice
OD-4
CSE333
Problem and IssuesProblem and Issues
What is the Best Way of Deploying a Distributed What is the Best Way of Deploying a Distributed Application? Application?
Problems With the Problem Problems With the Problem What is a Distributed Application ? Where is This Application to Be Deployed? What Do We Mean by Best Deployment? How Do We Get the Best Deployment?
OD-5
CSE333
Distributed ApplicationDistributed Application
A Distributed Application is a Set of Components A Distributed Application is a Set of Components Deployed Over a Network That Communicate.Deployed Over a Network That Communicate.
Components May Be:Components May Be: Data Types Executable Programs
Legacy or COTS Clients/Servers
Databases, Etc.
OD-6
CSE333
NetworkNetwork
A Network is a Set of A Network is a Set of Computers Connected So Computers Connected So They Can CommunicateThey Can Communicate
Computers & Connections Computers & Connections May Have Different May Have Different Characteristics That Affect Characteristics That Affect Their Usage Their Usage Speed Storage Bandwidth
OD-7
CSE333
Best DeploymentBest Deployment
A Distributed System is A Distributed System is Optimally Deployed if it Optimally Deployed if it Yields the Best PerformanceYields the Best Performance
Performance: Efficient Use Performance: Efficient Use of Resourcesof Resources Throughput Response Time Number of Messages
OD-8
CSE333
Understanding the Problem via UMLUnderstanding the Problem via UML
Consider an Application with a UML DesignConsider an Application with a UML Design Class Diagram and Object Diagram Sequence Diagrams Component Diagrams (Hardware & Software) (see Next Three Slides)
Questions:Questions: How do I Determine the Best Placements of the
Components (Classes) on the Hardware? How does the Object Interactions Influence the
Placement? Are any Instances Replicated? Fixed to
Particular Hardware Locations? How Do I Decide on Optimality?
OD-9
CSE333
Software and Hardware Component TypesSoftware and Hardware Component Types
OD-10
CSE333
Software Component ClassesSoftware Component Classes
OD-11
CSE333
Hardware Component ClassesHardware Component Classes
OD-12
CSE333
Relationship of Relationship of Software and Hardware ClassesSoftware and Hardware Classes
OD-13
CSE333
Instances of Software ClassesInstances of Software Classes
OD-14
CSE333
Instances of Hardware ClassesInstances of Hardware Classes
OD-15
CSE333
Critical Step: Mapping Software Instances Critical Step: Mapping Software Instances to Hardware Locations with Restrictionsto Hardware Locations with Restrictions
Software (Left) and Hardware (Right) InstancesSoftware (Left) and Hardware (Right) Instances Restrictions on Restrictions on
Which Software Instance can be Deployed on Which Hardware Instance
Which Software Instances Deployed Together Which Software Instances Must be Separate
OD-16
CSE333
Objective Objective Determine the Optimal Deployment? Determine the Optimal Deployment?
OD-17
CSE333
softwareelements
hardwareelements
protocolsinterfaces
interactionpatterns
connectionsSpecification
Distributed Systems SpecificationDistributed Systems SpecificationCombinations of RequirementsCombinations of Requirements
OD-18
CSE333
Performance
algorithms
middleware
underlyingnetwork
usagepatterns
deployment
softwarearchitecture
replicationdegree
processingnodes
Distributed System Optimal DeploymentDistributed System Optimal DeploymentInfluenced by Many FactorsInfluenced by Many Factors
OD-19
CSE333
Integrated Framework for Integrated Framework for Design and DeploymentDesign and Deployment
SOFTWARE HARDWARE
Dependencies
Deployment
PERFORMANCE
OD-20
CSE333
Two-Fold Focus of the WorkTwo-Fold Focus of the Work
II55
An Architectural Specification Framework Specifically for Distributed Systems Including Software and Hardware Features Textual and Graphical Notations.
Optimization ModelOptimization Model Binary Integer Programming Model Architectural Information + Usage Patterns As
Parameters Possibility of Optimizing According to
Different Criteria
OD-21
CSE333
Graphical Specification
Textual Specification
Extended TextualSpecification
Optimal Deployment
TransformationProcedures
Usage PatternsInformation
BIP Model
The Complete CycleThe Complete Cycle
OD-22
CSE333
Outline or Remainder of TalkOutline or Remainder of Talk
Motivation and BackgroundMotivation and Background Overview of Architectural Styles OSF’s I4DL UML and Design Concepts
The I5 FrameworkThe I5 Framework A First Look at I5’s Levels Different Levels Graphical and Textual Notations
Optimal DeploymentOptimal Deployment BIP Optimization Parameters - Optimization Criteria
Conclusions and Future WorkConclusions and Future Work
OD-23
CSE333
Overview of Architectural StylesOverview of Architectural Styles
UML is Intended for Specifying OO and UML is Intended for Specifying OO and Component-based SystemsComponent-based Systems Define Business Processes (Use Cases) Track Specification/Document
CORBA Assumes an OO Architectural StyleCORBA Assumes an OO Architectural Style Other Architectural Styles Can Be Derived From Other Architectural Styles Can Be Derived From
the OO Stylethe OO Style Z Has Been Used to Specify Software Z Has Been Used to Specify Software
ArchitecturesArchitectures Formal Basis for Describing System Mathematically Sound
We’ll Employ both UML and Z!We’ll Employ both UML and Z!
OD-24
CSE333
II55 : Background and Sources : Background and Sources
OSF’s I4DL- Distributed Systems Defined With 4 OSF’s I4DL- Distributed Systems Defined With 4 Definition Languages (2 Pages):Definition Languages (2 Pages): Interface Inheritance Implementation Instantiation
UML’s Implementation Diagrams:UML’s Implementation Diagrams: Component Diagrams Deployment Diagrams
OD-25
CSE333
Five Definition LanguagesFive Definition Languages Interface Inheritance Implementation Instantiation Installation
Five Formal Integrated Graphical Languages Five Formal Integrated Graphical Languages Based on UML’s Implementation DiagramsBased on UML’s Implementation Diagrams
The Application, Network, Dependencies and the The Application, Network, Dependencies and the Deployment are Part of an Integrated FrameworkDeployment are Part of an Integrated Framework
new DL
refine and expand DLs
What is What is II55??
OD-26
CSE333
Interface (I1)Interface (I1) - Types of Components, Nodes and - Types of Components, Nodes and ConnectorsConnectors
Implementation (I2)Implementation (I2) - Classes of Components, - Classes of Components, Nodes and ConnectorsNodes and Connectors
Integration (I3)Integration (I3) - Dependencies Between - Dependencies Between Component and Node ClassesComponent and Node Classes
Instantiation (I4)Instantiation (I4) - Instances of Each Class - Instances of Each Class DefinitionDefinition
Installation (I5)Installation (I5) - Deployment of Each Instance - Deployment of Each Instance (Requirements and Complete Deployment)(Requirements and Complete Deployment)
The Five Levels of The Five Levels of II55
OD-27
CSE333
TypesTypes - Generic Definition of Components, Nodes, - Generic Definition of Components, Nodes, and Connectors According to Their Roleand Connectors According to Their Role Defined in I1 Used in I2 to Define Classes
ClassesClasses - Different Implementations of the Types - Different Implementations of the Types Defined in I2 Used in I3 to Associate Software Components
and Hardware Artifacts and I4 to Define Instances InstancesInstances - Identical Copies of the Different Classes - Identical Copies of the Different Classes
Defined in I4 Used in I5 to Deploy Instances Across Nodes
Levels of Specification in Levels of Specification in II55
OD-28
CSE333
UMLUML
UML is a Set of Graphical Specification UML is a Set of Graphical Specification Languages (OMG’s Standard Design Language Languages (OMG’s Standard Design Language Since November, 1997)Since November, 1997)
Implementation DiagramsImplementation Diagrams Component Diagrams:
Show the Physical Structure of the Code in Terms of Code Components and Their Dependencies
Deployment Diagrams: Show the Physical Architecture of the Hardware
and Software in the System.
They Have a Type and an Instance Version.
OD-29
CSE333
UMLUML
When to Use Deployment Diagrams When to Use Deployment Diagrams “… “… In practice, I haven’t seen this kind of diagram used much. In practice, I haven’t seen this kind of diagram used much.
Most people do draw diagrams to show this kind of Most people do draw diagrams to show this kind of information but they are informal cartoons. On the whole, I information but they are informal cartoons. On the whole, I don’t have a problem with that since each system has its don’t have a problem with that since each system has its own physical characteristics that your want to emphasize. own physical characteristics that your want to emphasize. As we wrestle more and more with distributed systems, As we wrestle more and more with distributed systems, however, I’m sure we will require more formality as we however, I’m sure we will require more formality as we understand better which issues need to be highlighted in understand better which issues need to be highlighted in deployment diagrams.”deployment diagrams.”
From “UML Distilled. Applying the Standard Object From “UML Distilled. Applying the Standard Object Modeling Language”, by Martin Fowler. Addison-Wesley, Modeling Language”, by Martin Fowler. Addison-Wesley, Object Technology Series, 7th. Reprint June, 1998.Object Technology Series, 7th. Reprint June, 1998.
OD-30
CSE333
Pros and Cons ofPros and Cons ofGraphical ModelingGraphical Modeling
Advantages:Advantages: Clear to Show
Structure Excellent
Communication Vehicle
Addresses Different Aspects of Modeling in an Integrated Fashion
DisadvantagesDisadvantages:: Shows Little (or No)
Details There is a Big Gap
Between Specification and Implementation
Limited by Screen Size & Printable Page
Solution: Associate a Complete Textual Solution: Associate a Complete Textual Specification to Graphical Model that Contains Specification to Graphical Model that Contains the Necessary Details for Each Elementthe Necessary Details for Each Element
OD-31
CSE333
Design ConceptsDesign Concepts
Interface Interaction With the Outer World Interface Interaction With the Outer World Signature + Requested ServicesSignature + Requested Services
TypeType: Abstract Entity - Interface + Semantics: Abstract Entity - Interface + Semantics SubtypeSubtype: Inherits the Supertype Definition: Inherits the Supertype Definition ClassClass: Implementation of a Type: Implementation of a Type RealizationRealization: Relation Between a Type and a Class : Relation Between a Type and a Class
That Implements ItThat Implements It SubclassSubclass: Inherits the Superclass Implementation: Inherits the Superclass Implementation InstanceInstance: Element of a Class: Element of a Class
OD-32
CSE333
Design Concepts in UML DiagramsDesign Concepts in UML DiagramsComponent Types and ClassesComponent Types and Classes
T1
T2
C1
C2.1
C2.2
I2
I2
I2
I2
I2
I4 I4
I4
types
classes
realization
subtype
subclass
interface
OD-33
CSE333
TheThe I I5 5 FrameworkFramework
An An IntegratedIntegrated Specification Framework for Specification Framework for Distributed SystemsDistributed Systems Support for the Architectural Specification of
OO and Component Based Distributed Systems Heterogeneous Network - Platforms
A Five Level Framework for Defining Software A Five Level Framework for Defining Software and Hardware (Platforms) With a and Hardware (Platforms) With a UniformUniform Notation and With Different Levels of AbstractionNotation and With Different Levels of Abstraction
Specified Textually in Z or Graphically in UMLSpecified Textually in Z or Graphically in UML Emphasis on Implementation Diagrams
Please See http://www.engr.uconn.edu/~ceciliaPlease See http://www.engr.uconn.edu/~cecilia
OD-34
CSE333
Interplay ofInterplay ofGraphical and Textual NotationsGraphical and Textual Notations
Well-formed
Consistent
graphical
textual
OD-35
CSE333
Benefits of Benefits of II55
Organizes the Design of New Systems and the Organizes the Design of New Systems and the Documentation of Existing Distributed SystemsDocumentation of Existing Distributed Systems
More Traceability, Important for Maintenance More Traceability, Important for Maintenance
Firm Base for Configuration ManagementFirm Base for Configuration Management
The Implicit Methodology Makes Use of the The Implicit Methodology Makes Use of the Knowledge Shared by the Trained UML Users Knowledge Shared by the Trained UML Users CommunityCommunity
We’ll Transition from We’ll Transition from II55 to Optimal Deployment! to Optimal Deployment!
OD-36
CSE333Interface
Implementation
Integration
Instantiation
InstallationAb
str
acti
on
Deta
il
The Five Levels of The Five Levels of II55
OD-37
CSE333
A First Look at A First Look at the Interface Levelthe Interface Level
Component and Node Component and Node TypesTypes Are Specified As Are Specified As Well As Their Connections.Well As Their Connections.
PNODE
CITY
PUZZLE
SLIST
PATH
USER BASETCP/IP
TCP/IPTCP/IP
types
INTERFACEINHERITANCEIMPLEMENTATIONINSTANTIATIONINSTALLATION
OD-38
CSE333
A First Look at A First Look at the Inheritance Levelthe Inheritance Level
Two Types of Inheritance:Two Types of Inheritance: Implementation
Inheritance Interface
Refinement
WINDOW
DIALOGBOX
x_window
x_dialogbox
w_window
w_dialogbox
classes
types
INTERFACEINHERITANCEIMPLEMENTATIONINSTANTIATIONINSTALLATION
OD-39
CSE333
A First Look at A First Look at the Inheritance Levelthe Inheritance Level
Components Nodes
Types Interfaces andsemantics
Role of the node
ImplementationClasses
Implementationdependencies
Architecture and/orOS of the role
Instances Executableinstance
Instance computer
INTERFACEINHERITANCEIMPLEMENTATIONINSTANTIATIONINSTALLATION
OD-40
CSE333
A First Look at the A First Look at the Implementation LevelImplementation Level
Implementation Constraints State the Class of Implementation Constraints State the Class of Node Where Each Implementation Class of Node Where Each Implementation Class of Component Should RunComponent Should Run
puzzle slist path
user
<<supports>> <<supports>> <<supports>>
stereotypesclasses
INTERFACEINHERITANCEIMPLEMENTATIONINSTANTIATIONINSTALLATION
OD-41
CSE333
A First Look at the A First Look at the Instantiation LevelInstantiation Level
Instantiation Identifies the Instance Components Instantiation Identifies the Instance Components and Computers of Each Class That Form Part of and Computers of Each Class That Form Part of the Actual Systemthe Actual System
pnode: PNODE
puzzle:PUZZLE
slist1:SLIST
city:CITY
slist2:SLIST
path:PATH
instances
INTERFACEINHERITANCEIMPLEMENTATIONINSTANTIATIONINSTALLATION
OD-42
CSE333
A First Look at the A First Look at the Instantiation LevelInstantiation Level
Only Instances of the Only Instances of the Implementation Classes Implementation Classes Already Identified Can Already Identified Can Be Part of the SystemBe Part of the System
Instances Must Preserve Instances Must Preserve the Dependencies the Dependencies Specified in the Interface Specified in the Interface LevelLevel
user1:USER
user2:USER
base1:BASE
base2:BASE
INTERFACEINHERITANCEIMPLEMENTATIONINSTANTIATIONINSTALLATION
OD-43
CSE333
A First Look at the A First Look at the Installation LevelInstallation Level
Deployment of the Instance Components Over the Deployment of the Instance Components Over the Instance ComputersInstance Computers
Installation Has Two Facets:Installation Has Two Facets: Installation Requirements Complete Installation
All Instances Identified in the Instantiation Level All Instances Identified in the Instantiation Level Must Be Part of the Complete InstallationMust Be Part of the Complete Installation
INTERFACEINHERITANCEIMPLEMENTATIONINSTANTIATIONINSTALLATION
OD-44
CSE333
Installation RequirementsInstallation Requirements
Types of Requirements:Types of Requirements: Fix the Location
of Certain Instance Components
Two or More ComponentsMust Be Deployed Together
user2:USER
path:PATH
puzzle:PUZZLE
slist1:SLIST
OD-45
CSE333
CompleteComplete Installation Installation
user1:USER
user2: USER
base2: BASEbase1: BASE
puzzle:PUZZLE
slist1:SLIST
slist2:SLIST
path:PATH
pnode: PNODE
city:CITY
OD-46
CSE333
Types
Classes
Instances
Soft
ware
Hard
ware
Specification ElementsSpecification Elements
OD-47
CSE333
Dependencies Between LevelsDependencies Between Levels
Component Types Node Types INTERFACE
IMPLEMENTATION
INTEGRATION
INSTANTIATION
INSTALLATION
Component Classes Node Classes
ImplementationDependencies
Inst. Components Inst. Nodes
Installation Req. (together,separated)
Installation Req. (fix location)
Complete Installation
System Instantiation
OD-48
CSE333
Components TypesComponents Types Type Supertypes Associated
Interfaces Calls
PropertiesProperties Types are Unique Supertypes Must Be
Part of I1S Calls Must Be
Satisfied in I1S
Interface - Software: I1SInterface - Software: I1S
OD-49
CSE333 Client
FrontEnd
response
requestreceive
<<call>>
Replicareceivegossip
<<call>>
<<call>><<call>>
<<call>>
Interface - Software: I1SInterface - Software: I1S
OD-50
CSE333 [COMP_TYPE][INTERFACE] Comp_Typetype : COMP_TYPEsupertypes : P Comp_Typelocal_int, interfaces : P INTERFACElocal_calls, calls : Comp_Type INTERFACE
self supertypesinterfaces = supertypes.interfaces local_intcalls = supertypes.calls local_calls
Interface - Software: I1SInterface - Software: I1S
OD-51
CSE333
I1_Scomp_types : P Comp_Type
c,c’ comp_types c.type = c’.type c = c’ (ct i) comp_types.calls
ct comp_types i ct.interfaces ct comp_types ct.supertypes comp_types
Interface - Software: I1SInterface - Software: I1S
OD-52
CSE333
Interface - Hardware: I1HInterface - Hardware: I1H
Node TypesNode Types Connector TypesConnector Types ConnectionsConnections
PropertiesProperties All Node Types Must Be
Connected Only Node and Connector
Types Defined Take Part in the Connections
SUNIntel
Pentium
MPI
Sockets
OD-53
CSE333
[NODE_TYPE] Node_Typetype: NODE_TYPE
[CONN_TYPE] Conn_Typetype: CONN_TYPE
I1_Hnode_types : P Node_Typeconn_types : P Conn_Typeconnects : Conn_Type P Node_Type
(dom connects) = conn_types n_set (ran connects) n_set node_types nt node_types (ct nt_set) connects | nt nt_set
Interface - Hardware: I1HInterface - Hardware: I1H
OD-54
CSE333
Implementation - Software: I2SImplementation - Software: I2S
Component ClassesComponent Classes Component Type Class Superclasses Calls to Classes
Interfaces Properties:Properties:
Only Types in I1S are Allowed
Superclasses Are Realizations of the Supertypes
Calls & Inheritance are Satisfied Within I2S
OD-55
CSE333
XFrontEndrequestreceive
PCCtrClresponse
XCtrCl
response
<<call>> <<call>>
<<call>>
Counterreceivegossip
<<call>>
Implementation - Software: I2SImplementation - Software: I2S
OD-56
CSE333
[COMP_CLASS]Comp_ClassComp_Typeclass : COMP_CLASSsuperclasses : P Comp_Classcl_call : Comp_Class INTERFACE
cc superclasses cc.Comp_Type supertypes (cc i) cl_call (ct i) calls | cc.Comp_Type = ct
Implementation - Software: I2SImplementation - Software: I2S
OD-57
CSE333
I2_SI1_Sc_classes : P Comp_Class
cc,cc’ c_classes cc.class = cc’.class cc = cc’c_classes.Comp_Type comp_types cc c_classes cc.superclasses c_classes(cc i) c_classes.cl_call cc c_classes
Implementation - Software: I2SImplementation - Software: I2S
OD-58
CSE333
Implementation - Hardware: I2HImplementation - Hardware: I2H
Node ClassesNode Classes Node Type Class
Connector ClassesConnector Classes Type Class
Connections Between Connections Between Node ClassesNode Classes
PropertiesProperties Node and Connector
Classes Refine the Types in I1H
Connections are With Connector Classes That Refine Connector Types in I1H
OD-59
CSE333
SUNIntel
Pentium
MPI
Sockets
SUN OS 4.1.4 Win95
MPI_Impl
CSockets
<<realizes>><<realizes>>
Implementation - Hardware: I2HImplementation - Hardware: I2H
OD-60
CSE333
[NODE_CLASS]Node_ClassNode_Typeclass : NODE_CLASS
[CONN_CLASS]Conn_ClassConn_Typeclass : CONN_CLASS
I2_HI1_Hnode_classes : P Node_Classconn_classes : P Conn_Classconnects_cl : Conn_Class P Node_Class
node_classes.Node_Type node_typesconn_classes.Conn_Type conn_types (cc nc_set) connects_cl
1 (ct nt_set) connects | cc.Conn_Type = ct nc_set.NodeType nt_set
Implementation - Hardware: I2HImplementation - Hardware: I2H
OD-61
CSE333
Software and HardwareSoftware and HardwareIntegration: I3Integration: I3
Relation <<supports>>Relation <<supports>> Instances of the Component Class May Run on
Instances of the Node Class Important Step Since it Constrains
Deployment Options PropertiesProperties
Only Node and Component Classes Defined in I2 Can Participate of the <<supports>> Relation
OD-62
CSE333
XFrontEnd
request
PCCtrClresponse
XCtrClresponse
SUN OS 4.1.4 Win95
MPI_Impl
CSockets
receivegossip
Counter
<<supports>><<supports>>
<<supports>>
<<supports>>
receive
Software and HardwareSoftware and HardwareIntegration: I3Integration: I3
OD-63
CSE333 I3I2supports : Comp_Class Node_Class
(dom supports) c_classes(ran supports) node_classes
Software and HardwareSoftware and HardwareIntegration: I3Integration: I3
OD-64
CSE333
Instantiation - Software: I4SInstantiation - Software: I4S
Component InstancesComponent Instances Class Identification Calls
PropertiesProperties Instance Calls Refine
Class Calls Only Classes in I2S May
Be Instantiated
OD-65
CSE333
c4:XCtrCl
c3:PCCtrCl
c2:PCCtrCl
c1:PCCtrCl
ct1:Counterreceive
gossip
ct2:Counter
ct3:Counter
ct4:Counter
ct5:Counter
receive
gossip
receive
gossip
receive
gossip
receive
gossip
ct6:Counterreceive
gossip
response
response
response
response
fe1:XF
rontE
nd
receiverequest
fe2:XF
rontE
nd
receiverequest
Instantiation - Software: I4SInstantiation - Software: I4S
OD-66
CSE333
[INST_COMP]Inst_CompComp_Classinst_id : INST_COMPinst_call : Inst_Comp INTERFACE
(ic i) inst_call (cc i) cl_call | ic.Comp_Class = cc
I4_SI2_Si_comp : P Inst_Comp
ic,ic’ i_comp ic.inst_id= ic’.inst_id ic = ic’i_comp.Comp_Class c_classes(dom i_comp.inst_call) i_comp.interface
Instantiation - Software: I4SInstantiation - Software: I4S
OD-67
CSE333
Instantiation - Hardware: I4HInstantiation - Hardware: I4H
Node Instances Node Instances Class Identification
Connector InstancesConnector Instances Class Identification Set of Connected
Nodes
PropertiesProperties There are Only
Instances of the Node & Connector Classes Defined in I2H
Connectors Refine I2H Connections
OD-68
CSE333
sun6:SunOS4.1.4
sun7:SunOS4.1.4
sun8:SunOS4.1.4
sun9:SunOS4.1.4
sun10:SunOS4.1.4
sun1:SunOS4.1.4
sun2:SunOS4.1.4
sun3:SunOS4.1.4
sun4:SunOS4.1.4
sun5:SunOS4.1.4
pc1:Win95 pc2:Win95 pc3:Win95 pc4:Win95
sock1 sock2 sock3 sock4
mpi1
Instantiation - Hardware: I4HInstantiation - Hardware: I4H
OD-69
CSE333
Inst_NodeNode_Classint_id : INST_NODE
Inst_ConnConn_Classinst_id : INST_CONNinst_nodes : P Inst_Node
I4_HI2_Snodes : P Inst_Nodeconns : P Inst_Conn
nodes.Node_Class node_classesconns.Conn_Class conn_classes ic conns ic.inst_nodes nodes in,in’ nodes in.inst_id = in’.inst_id in = in’ ic,ic’ conns ic.inst_id = ic’.inst_id ic = ic’ ci conns (cc nc_set) connects_cl |
ci.Conn_Class = cc (ci.inst_nodes).Node_Class nc_set
Instantiation - Hardware: I4HInstantiation - Hardware: I4H
OD-70
CSE333I4I3I4_SI4_H
ic i_comp in nodes | (ic.class in.class) supports
Instantiation: I3 + Hardware + SoftwareInstantiation: I3 + Hardware + Software
OD-71
CSE333
A Set of Component Instances Must Be A Set of Component Instances Must Be Deployed Together or SeparatedDeployed Together or Separated
Fix the Location of Some Component InstancesFix the Location of Some Component Instances
All Installation Requirements Must Be All Installation Requirements Must Be Consistent With the Requirements Imposed by Consistent With the Requirements Imposed by All the Previous Specification LevelsAll the Previous Specification Levels
Installation RequirementsInstallation Requirements
OD-72
CSE333
Installation - Requirements: Installation - Requirements: IIfix, fix, IIseparatedseparated
RequirementsRequirements Together Separated Fix
Complete DeploymentComplete Deployment PropertiesProperties
All Component, Node and Connector Instances Identified in I4 Must Be Part of the Complete Deployment
Deployment is Consistent With All of Requirements
Nodes “Support” the Component Instances That are There Assigned
OD-73
CSE333
Installation - Requirements: Installation - Requirements: IIfix, fix, IIseparatedseparated
fe2:XFrontEnd
receive
request
fe1:XFrontEnd
receive
request
sun2:SunOS4.1.4 sun3:SunOS4.1.4
separated = {ct1:Counter, ct2:Counter, ct3:Counter,ct4:Counter, ct5:Counter, ct6:Counter}
OD-74
CSE333
Complete Installation : I5Complete Installation : I5
All Node and Component Instances Form the All Node and Component Instances Form the Complete InstallationComplete Installation
Each Component Instance is Deployed to One and Each Component Instance is Deployed to One and Only One Node in the NetworkOnly One Node in the Network
Node Classes Must Support the Class of Node Classes Must Support the Class of Components It is AssignedComponents It is Assigned
It Must Satisfy the Installation RequirementsIt Must Satisfy the Installation Requirements
(We Postpone the Graphical Representation(We Postpone the Graphical Representation Until We Calculate the Optimal Deployment) Until We Calculate the Optimal Deployment)
OD-75
CSE333
I5I4together : P (P Inst_Comp)separated : P (P Inst_Comp)fix : Inst_Comp Inst_Nodedeployment : Inst_Comp Inst_Node
(dom deployment) = i_comp(ran deployment) nodes(c n) deployment (c.class n.class) supportsfix deployment i_set together i_set i_comp i_set separated i_set i_comp i_set together; ic,ic’ i_set deployment(ic) = deployment(ic’) i_set separated; ic,ic’ i_set
deployment(ic) deployment(ic’)
Complete Installation : I5Complete Installation : I5
OD-76
CSE333
Distributed Systems Deployment GoalDistributed Systems Deployment Goal
Premise:Premise: Distributed Application Comprised of Multiple
Interacting Components Target Platform of Networked Computing
Nodes Problem:Problem:
Is it possible to Deploy Components Onto Targeted Platform in an Optimal Fashion?
Can Optimal Deployment that Satisfies Both Software Requirements and Hardware Limits be Attained?
Approach: Focus on Messages - Both Throughput Approach: Focus on Messages - Both Throughput and Frequencyand Frequency
OD-77
CSE333
Optimizing with the BIP ModelOptimizing with the BIP Model
An Initial Deployment is Suggested by the ModelAn Initial Deployment is Suggested by the Model Optimization is Only With Respect to the Chosen Optimization is Only With Respect to the Chosen
CriterionCriterion Complexity of the Algorithm Makes the Procedure Complexity of the Algorithm Makes the Procedure
Useful for Small SystemsUseful for Small Systems Fixing the Location of Some Components Fixing the Location of Some Components
Dramatically Reduces the Search SpaceDramatically Reduces the Search Space
We Think That the Most Important Application for We Think That the Most Important Application for Our BIP Model is the Study of What If CasesOur BIP Model is the Study of What If Cases
OD-78
CSE333
Two Optimization ModelsTwo Optimization Modelsand Their Criteriaand Their Criteria
OptimizationCriteria
SoftwareRequirements
HardwareLimitations
Model 1 MinimizeRemoteCommunicationThroughput
Number OfBytes InRemoteMessages.
Storage NeedForComponents.
ConnectorCapacity.
Node StorageAvailability.
Model 2 Minimize TheNumber OfRemoteMessages
Number OfMessagesBetweenComponents.
ComponentClasses OnlyRun On CertainNode Classes.
Hops BetweenPairs Of Nodes.
OD-79
CSE333
Model 1: Local vs. Remote Model 1: Local vs. Remote CommunicationCommunication
LocalLocal
Less ExpensiveLess ExpensiveFasterFasterSaferSafer
RemoteRemote
More ExpensiveMore ExpensiveSlowerSlowerFault ProneFault Prone
But Distribution Improves the Opportunities But Distribution Improves the Opportunities for Parallelism and Availability of Resources for Parallelism and Availability of Resources Where They Are NecessaryWhere They Are Necessary
OD-80
CSE333
Units Storage:Units Storage:
Communication Between Units:Communication Between Units:
Node Storage and Connector CapacityNode Storage and Connector Capacity
Model 1: ParametersModel 1: ParametersStorage and CommunicationStorage and Communication
instancesistateiiUS .*.)(
listexportsjmjm.target
listi.usesm
instancesifrequencymsizemjiCOMM
_.
_
.*.*.),(
jendciendccapacitycjiCONN
storageiiNS
2.,1.|.),(
.)(
OD-81
CSE333
Model 1: Deployment ConstraintsModel 1: Deployment Constraints
General:General: Each Unit is Deployed to Only One NodeEach Unit is Deployed to Only One Node Storage for All Units Deployed to the Same Node Storage for All Units Deployed to the Same Node
Does Not Exceed the Node’s Available StorageDoes Not Exceed the Node’s Available Storage Communication Occurs Through Direct Communication Occurs Through Direct
Connectors Between NodesConnectors Between Nodes No Connector’s Throughput Exceeds Its CapacityNo Connector’s Throughput Exceeds Its Capacity
Particular:Particular: Any Unit’s Location Can Be Fixed to a Certain Any Unit’s Location Can Be Fixed to a Certain
Node (or a Set of Nodes)Node (or a Set of Nodes)
OD-82
CSE333
Model 1: BIP Model for Optimal Model 1: BIP Model for Optimal DeploymentDeployment
Decision Variables:Decision Variables:xxij ij = = 1 if component 1 if component ii is assigned to node is assigned to node jj
0 otherwise0 otherwise
1 if component 1 if component aa is assigned to node is assigned to node ii yyaibjaibj = = and component and component bb is assigned to node is assigned to node jj
0 otherwise0 otherwise
Necessary Constraints: (yNecessary Constraints: (yaibj = aibj = xxai ai ** xxbjbj)) yyaibj aibj xxaiai
yyaibj aibj xxbjbj
1 + y1 + yaibjaibj xxai + ai + xxbjbj
{
{
OD-83
CSE333
Model 1: BIP Model for Optimal Model 1: BIP Model for Optimal DeploymentDeployment
Constraints:Constraints: CompletenessCompleteness
StorageStorage
CommunicationCommunication
N
jijx
1
1
C
iij jNSiUSx
1
)()(*
C
a
C
baibj jiCONNybaCOMM
1 1
),(*),(
OD-84
CSE333
Model 1: Objective FunctionModel 1: Objective Function
N
i
N
ijj
C
a
C
baibj baCOMMy
1 1 1 1
),(* Min Z
OD-85
CSE333
Model 1: The ExampleModel 1: The Example
5000
3000
20000
2000
1000
9000
100
12000
100
5000
BASE1 BASE2
USER1 USER2
PUZZLE 10SLIST1 24PNODE 9900PATH 1SLIST2 24CITY 1600
US
PNODE CITYPUZZLE 3500SLIST1 4500PATH 700SLIST2 500
COMM
OD-86
CSE333
Model 1: The SolutionModel 1: The Solution
XXPATH,USER2PATH,USER2 = 1 = 1
USER1 USER2 BASE1 BASE2PUZZLE 0 1 0 0SLIST1 0 1 0 0PNODE 0 0 1 0PATH 0 1 0 0SLIST2 0 1 0 0CITY 0 0 0 1
Z = 1200 + 8000 = 9200
OD-87
CSE333
Model 1: The SolutionModel 1: The Solution
PATH can be Located in Any NodePATH can be Located in Any Node
USER1 USER2 BASE1 BASE2PUZZLE 0 1 0 0SLIST1 0 1 0 0PNODE 0 0 1 0PATH 0 0 1 0SLIST2 0 0 1 0CITY 0 0 1 0
USER1 USER2 BASE1 BASE2PUZZLE 0 1 0 0SLIST1 0 1 0 0PNODE 0 0 1 0PATH 0 0 0 1SLIST2 0 0 0 1CITY 0 0 0 1 Z = 8000
OD-88
CSE333
Optimization CriteriaOptimization Criteria
OptimizationCriteria
SoftwareRequirements
HardwareLimitations
Model 1 MinimizeRemoteCommunicationThroughput
Number OfBytes InRemoteMessages.
Storage NeedForComponents.
ConnectorCapacity.
Node StorageAvailability.
Model 2 Minimize TheNumber OfRemoteMessages
Number OfMessagesBetweenComponents.
ComponentClasses OnlyRun On CertainNode Classes.
Hops BetweenPairs Of Nodes.
OD-89
CSE333
Model 2: Parameters: Model 2: Parameters: Architecture + Usage PatternsArchitecture + Usage Patterns
SUPP(C x N) - A Component is Supported by a SUPP(C x N) - A Component is Supported by a NodeNode
MSGS(C x C) - Number of Messages Between a MSGS(C x C) - Number of Messages Between a Pair of ComponentsPair of Components
HOPS(N X N) - Hops Between a Pair of NodesHOPS(N X N) - Hops Between a Pair of Nodes
supportsclassjclassijiSUPP )..(),(
la.inst_cal)|(
),(.),(ibi
ibfreqabaMSGS
inst_nodes.},{||)),(max(1),(
0),(
ickiconnsicjkHOPSjiHOPS
iiHOPS
OD-90
CSE333
Model 2:Model 2: Decision VariablesDecision Variables
C x N Primary Decision VariablesC x N Primary Decision Variables
CC22NN22 Auxiliary Decision Variables Auxiliary Decision Variables
otherwise
node to deployed is component if x ji 0
ji 1{,
otherwise 0
j node todeployed is bcomponent and
i node todeployed is acomponent if 1{,,, jbiay
OD-91
CSE333
Model 2:Model 2: Derived EquationsDerived Equations
XXijij and and YYaibjaibj Are Related:Are Related:
and This Relationship Can Be Restated Linearly and This Relationship Can Be Restated Linearly
As Follows:As Follows:
bjaiaibj xxy
bjaiaibj
bjaibj
aiaibj
xxy
xy
xy
1
OD-92
CSE333
Model 2:Model 2: Equations: System’s ConstraintsEquations: System’s Constraints
CompletenessCompleteness - All Instance Components Must - All Instance Components Must Be Deployed & Only Over Instance NodesBe Deployed & Only Over Instance Nodes
SupportabilitySupportability - Instance Nodes Must Support - Instance Nodes Must Support the Components Assignedthe Components Assigned
Requirements Requirements - Complete Deployment Must - Complete Deployment Must Satisfy the Fix, Separated & Together Satisfy the Fix, Separated & Together Installation RequirementsInstallation Requirements
N
jjix
1, 1
),(, jiSUPPx ji
11
,
N
j Tajax
Sa
jax 1,
OD-93
CSE333
Model 2:Model 2: Objective FunctionObjective Function
C
a
N
i
C
b
N
jaibjyjiHOPSbaMSGSZ
1 1 1 1
),(),(
OD-94
CSE333
A Second Example in A Second Example in II55 Modeling a SystemModeling a System
Conceptually Based on an Essentially Serializable Conceptually Based on an Essentially Serializable Data Service (ESDS)Data Service (ESDS)
Demonstration ofDemonstration of Modeling Capabilities of I5
Verification of Work Utilizing Genetic Algorithm
Joint Research with Bastarrica and Cabellero Published in Software Engineering/Knowledge
Engineering Conference 01 See Course web page for paper
OD-95
CSE333
What is ESDS?What is ESDS?
ESDS is a Replicated Data Service Dealing withESDS is a Replicated Data Service Dealing with Replicated Objects Allowing clients of Service
to Relax Consistency Requirements for Improved Responsiveness
Simultaneously Provide Guarantees of Eventual Consistency of Replicated Data
ESDS Implementation IncludesESDS Implementation Includes Parameterizable Number of Client, Front-End,
and Replicated Components Each can have Different Communication
Patterns Each can be Individually Deployed in a Target
Network
OD-96
CSE333
Modeling ESDS using Modeling ESDS using II55
ESDS Deals with Replicated Objects and Trades ESDS Deals with Replicated Objects and Trades Short-Term Consistency (lack of) for PerformanceShort-Term Consistency (lack of) for Performance
ESDS Guarantees Eventual Consistency of ESDS Guarantees Eventual Consistency of ReplicasReplicas
In ESDS Replicas In ESDS Replicas Keep Order of Known Data Operations Implemented as Individually Deployable
Components Periodically Exchange Knowledge in Gossip
Messages Clients Interact with Users of the ServiceClients Interact with Users of the Service Front-Ends Broker Communication Between Front-Ends Broker Communication Between
Clients and Replicas Clients and Replicas
OD-97
CSE333
Software Interface : I1SSoftware Interface : I1S
comp_types = {Client, FrontEnd, Replica}
OD-98
CSE333
Hardware Interface : I1HHardware Interface : I1H
node_types = {Sun, Intel Pentium}conn_types = {MPI, Sockets}connects = {(MPI {Sun, Sun}),
(Sockets {Sun, Intel Pentium})}
OD-99
CSE333
Software Implementation :I2SSoftware Implementation :I2S
c_classes = {PCCtrCl, XCtrCl, XFrontEnd, Counter} ---- Clients ----------FrontEnd--Replica
OD-100
CSE333
Hardware Implementation:I2HHardware Implementation:I2H
node_classes = {SUN OS 4.1.4, Win95}conn_classes = {MPI_Impl, CSockets}
connects_cl = {(MPI_Impl {SUN OS 4.1.4, SUN OS 4.1.4}), (CSockets {SUN OS 4.1.4, Win95}}
OD-101
CSE333
Integration:I3Integration:I3
supports = {(Counter Sun OS 4.1.4), (XFrontEnd Sun OS 4.1.4), (XCtrCl Sun OS 4.1.4), (PCCtrCl Win95)}
OD-102
CSE333
Software Instantiation: I4SSoftware Instantiation: I4S
i_comp ={c1:PCCtrCl, c2:PCCtrCl, c3:PCCtrCl, c4:PCCtrCl, fe1:XFrontEnd, fe2:XFrontEnd, ct1:Counter, ct2:Counter, ct3:Counter, ct4:Counter, ct5:Counter, ct6:Counter, }
OD-103
CSE333
Hardware Instantiation: I4HHardware Instantiation: I4H
nodes = {pc1:Win95, pc2:Win95, pc3:Win95, pc4:Win95,sun1:SunOS4.1.4, sun2:SunOS4.1.4, sun3:SunOS4.1.4, sun4:SunOS4.1.4, sun5:SunOS4.1.4, sun6:SunOS4.1.4, sun7:SunOS4.1.4, sun8:SunOS4.1.4, sun9:SunOS4.1.4, sun10:SunOS4.1.4 }
conns = {mpi, sock1, sock2, sock3, sock4}
OD-104
CSE333
AssumptionsAssumptions
Communication Frequency Between Client and Communication Frequency Between Client and FrontEnd Components in ESDSFrontEnd Components in ESDS
Components that Must be Separated and FixedComponents that Must be Separated and Fixed
OD-105
CSE333
SUPP MatrixSUPP Matrix
Matrix of Software Components Supported by Matrix of Software Components Supported by Hardware NodesHardware Nodes
OD-106
CSE333
MSGS MatrixMSGS Matrix
Only One Types of Message Between Every Pair of Only One Types of Message Between Every Pair of Component Instances in ESDSComponent Instances in ESDS
As a Consequence, the Value is the As a Consequence, the Value is the frequencyfrequency of the of the MessageMessage
OD-107
CSE333
The HOPS MatrixThe HOPS Matrix
Contains the Minimum Number of Hops Between Contains the Minimum Number of Hops Between Every Pair of Modes by Examining the ESDS Every Pair of Modes by Examining the ESDS Hardware Instantiation Previously ShownHardware Instantiation Previously Shown
OD-108
CSE333
BIP Optimal DeploymentBIP Optimal Deployment
Given the Above Tables, we can Apply the Given the Above Tables, we can Apply the Previously Described Model 2Previously Described Model 2
BIP Performs Exhaustive SearchBIP Performs Exhaustive Search Utilizes Branch and Bound Algorithm Complexity is O(NC) - Exponential
Execution Time:Execution Time: C Program Required 2 Hours of Computation
Time for Optimal Solution on Model 2 GAMS Package Executed for Entire Day
without Results Even for “Small” Problem, Optimal Deployment is Even for “Small” Problem, Optimal Deployment is
a Complex Taska Complex Task
OD-109
CSE333
Installation: I5Installation: I5What is the Optimal Deployment? What is the Optimal Deployment?
OD-110
CSE333
Utilize Genetic Algorithm for DeploymentUtilize Genetic Algorithm for Deployment
Genetic Algorithms (GAs) are Stochastic Search Genetic Algorithms (GAs) are Stochastic Search Techniques Inspired by EvolutionTechniques Inspired by Evolution
GAs Used to Find Global or Near Optimal GAs Used to Find Global or Near Optimal Solution for Complex Multi-Dimensional SpacesSolution for Complex Multi-Dimensional Spaces
GA Utilizes Operations for: Selection, Crossover, GA Utilizes Operations for: Selection, Crossover, and Mutation to Simulate the Evolutionary Processand Mutation to Simulate the Evolutionary Process Manipulate Individuals of Population Each Generation of Population is Replaced via
a Fitness Function Fitness Function Evaluates Degree that
Chromosome Meets Solution In Our Case, Fitness Function Evaluates Optimal In Our Case, Fitness Function Evaluates Optimal
Deployment by Focusing on MSGSs/HOPSDeployment by Focusing on MSGSs/HOPS
OD-111
CSE333
Multiobjective Niching Genetic Algorithm Multiobjective Niching Genetic Algorithm (MNGA)(MNGA)
GA for Evaluating Optimal Deployment of GA for Evaluating Optimal Deployment of Components on NodesComponents on Nodes
Run Multiple Experiments, and For Each Run, Run Multiple Experiments, and For Each Run, May Identify Multiple SolutionsMay Identify Multiple Solutions On Average, First Solution (194 messages)
found in Generation 29 Same Solution as BIP Due to Symmetry of Problem, GA found Many
Other Solutions for 194 Messages Why GA over BIP?Why GA over BIP?
Performance, Performance, Performance Ability to Work on Scaled up Problems
OD-112
CSE333
Performance of GAPerformance of GA
Table Below Summarizes the Results of Multiple Table Below Summarizes the Results of Multiple GA ExperimentsGA Experiments
Note that 13.1 Seconds (GA) vs. 2 hrs. (BIP)for Note that 13.1 Seconds (GA) vs. 2 hrs. (BIP)for Problem as Presented in this PaperProblem as Presented in this Paper
Other Case Increased Components and/or Increased Other Case Increased Components and/or Increased NodesNodes
Notice that Increasing Nodes with 12 Components Notice that Increasing Nodes with 12 Components Doesn’t Alter Optimal Solution (194 messages)Doesn’t Alter Optimal Solution (194 messages)
OD-113
CSE333
Conclusion: Model 2 - BIP vs. GAConclusion: Model 2 - BIP vs. GA
BIP vs. GABIP vs. GA BIP Yields Optimal Solutions at a Cost
However, Problem is Intractable as System Grows in Terms of Components and/or Nodes
GA Doesn’t Guarantee Optimality However, Can Provide Solution in Reasonable Time for Larger Scale Problems
MoralMoral Optimal Deployment is an Important Problem
for Distributed Applications However, must use MNGA without Guarantee
of Optimality May be Only Choice as Complexity Grows
OD-114
CSE333
A Third Example in A Third Example in II55 Modeling a SystemModeling a System
Conceptually Based on the Virginia-class Conceptually Based on the Virginia-class Submarine Data Distribution SystemSubmarine Data Distribution System
Composed of Several SubsystemsComposed of Several Subsystems Consumers Are Decoupled From Suppliers Using Consumers Are Decoupled From Suppliers Using
a Typed Event Channel: a Typed Event Channel: One Supplier Pushes Event Data to Multiple
Consumers Servers Use Typed Event Channels to Distribute Servers Use Typed Event Channels to Distribute
Notifications of Changes to Available DataNotifications of Changes to Available Data Typed Event Channels Are Also Used to Deliver Typed Event Channels Are Also Used to Deliver
Signals and Distribute Periodic UpdatesSignals and Distribute Periodic Updates
OD-115
CSE333
Software Interface : I1SSoftware Interface : I1S
SettCons
SettEC
SettSupp
SettingsUpdate_ev
SettingsSignal_ev
SettingsUpdate_ev
SettingsSignal_ev
Settings_cs
comp_types = {SettCons, SettEc, SettSupp}
OD-116
CSE333
Hardware Interface : I1HHardware Interface : I1H
ConsNode
EthernetHub
ECNode
ATMSwitch SuppNode
10BaseT Fiber Fiber
Fiber Fiber
Fiber
node_types = {ConsNode, ECNode, EthernetHub, ATMSwitch, SuppNode}conn_types = {10BaseT, Fiber}connects = {(Fiber {ConsNode, ATMSwitch}), (Fiber {ECNode, ATMSwitch}),
(Fiber {SuppNode, ATMSwitch}), (Fiber {ATMSwitch, EthernetHub}), (Fiber {ATMSwitch}), (10BaseT {ConsNode, EthernetHub})}
OD-117
CSE333
Software Implementation :I2SSoftware Implementation :I2S
SettConsIC1 SettConsIC2
SettECIC
SettSuppIC
SettingsUpdate_ev
SettingsSignal_ev
SettingsUpdate_ev
SettingsSignal_ev
SettingsUpdate_ev
SettingsSignal_ev
Settings_cs
c_classes = {SettConsIC1, SettConsIC2,SettECIC, SettSuppIC}
OD-118
CSE333
Hardware Implementation:I2HHardware Implementation:I2H
ConsNodeIC2
EthernetHubIC
ECNodeIC
ATMSwitchIC
SuppNodeIC
10BaseTIC FiberIC FiberIC
FiberIC
FiberICFiberIC
ConsNodeIC1
node_classes = {ConsNodeIC1, ConsNodeIC2, ECNodeIC,EthernetHubIC, ATMSwitchICm SuppNodeIC}
conn_classes = {10BaseTIC, FiberIC}connects_cl = {(10BaseTIC ConsNodeIC2, EthernetHubIC}),
(FiberIC {ConsNodeIC1, ATMSwitchIC}), (FiberIC {ECNodeIC, ATMSwitch}),(FiberIC {EthernetHubIC, ATMSwitchIC}),(FiberIC {ATMSwitch, SuppNodeIC}),(FiberIC {ATMSwitch})}
OD-119
CSE333
Integration:I3Integration:I3
ConsNodeIC2
EthernetHubICECNodeIC
ATMSwitchICSuppNodeIC
10BaseTIC FiberIC
FiberICFiberIC
FiberIC
FiberIC
ConsNodeIC1
SettConsIC2
SettConsIC1
SettECIC
SettSuppIC
<<supports>>
<<supports>>
<<supports>>
<<supports>>
supports = {(SettConsIC1 ConsNodeIC1), (SettConsIC2 ConsNodeIC2), (SettECIC ECNodeIC), (SettSuppIC SuppNodeIC)}
OD-120
CSE333
Software Instantiation: I4SSoftware Instantiation: I4S
:SettConsIC1
host1:SettConsIC2
host2:SettConsIC2
:SettECIC
:SettSuppIC
i_comp = {:SettConsIC1, :SettECIC,host1:SettConsIC2, host2:SettConsIC2,:SettSuppIC}
OD-121
CSE333
Hardware Instantiation: I4HHardware Instantiation: I4H
host1:ConsNodeIC2
:EthernetHubIC
:ECNodeIC
switch2:ATMSwitchIC
env:SuppNodeIC
10BaseTIC1 FiberIC1 FiberIC3
FiberIC2
FiberIC4FiberIC5
:ConsNodeIC1
switch1:ATMSwitchIC
host2:ConsNodeIC2
sett:SuppNodeIC
10BaseTIC2
FiberIC6
nodes = {:ConsNodeIC1, :ECNodeIC,host1:ConsNodeIC2, :EthernetHubIC,host2:ConsNodeIC2, switch1:ATMSwitchIC,
switch2:ATMSwitchIC,env:SuppNodeIC, sett:SuppNodeIC}
conns = {10BaseTIC1, 10BaseTIC2, FiberIC1, FiberIC2, FiberIC3,FiberIC4, FiberIC5, FiberIC6}
OD-122
CSE333
Installation: I5Installation: I5
host1:ConsNodeIC2
:EthernetHubIC
:ECNodeIC
switch2:ATMSwitchIC
env:SuppNodeIC
10BaseTIC1 FiberIC1 FiberIC3
FiberIC2
FiberIC4FiberIC5
:ConsNodeIC1
switch1:ATMSwitchIC
host2:ConsNodeIC2
sett:SuppNodeIC
10BaseTIC2
FiberIC6
host1:SettConsIC2
host2:SettConsIC2
:SettConsIC1 :SettECIC
:SettSuppIC
Deployment = {(:SettConsIC1 :ConsNodeIC1), (host1:SettConsIC2 host1:ConsNodeIC2), (host2:SettConsIC2 host2:ConsNodeIC2), (:SettECIC :ECNodeIC), (:SettSuppIC sett:SuppNodeIC)}
OD-123
CSE333
Conclusions on this Example Conclusions on this Example
The The II55 Textual Notation Was Used to Specify a Textual Notation Was Used to Specify a Corba-based Distributed SystemCorba-based Distributed System
Documenting the Design of New and Existing Documenting the Design of New and Existing Distributed SystemsDistributed Systems
Precision in Inheritance Hierarchy SpecificationsPrecision in Inheritance Hierarchy Specifications Traceability -- Important for Maintenance Traceability -- Important for Maintenance
Configuration ManagementConfiguration Management
Leveraging UMLLeveraging UML
OD-124
CSE333
Prototyping ExamplePrototyping Example
Current UML Tools Have Weak Support for Current UML Tools Have Weak Support for Diagrams Used for the Diagrams Used for the II55 Graphical Notation Graphical Notation
Developed a Graphical Tool to Support Developed a Graphical Tool to Support II55 Prototype Tool with Basic I5 Capabilities Revealed Limitations in the Ability of UML to
Capture All Aspects of the Textual Notation Work was HaltedWork was Halted Still Interested in Pursuing Given Current Still Interested in Pursuing Given Current
Capabilities of UML Tools and their ExtensibilityCapabilities of UML Tools and their Extensibility
OD-125
CSE333
Conclusions and Future WorkConclusions and Future Work
An Integrated Framework for Designing and An Integrated Framework for Designing and Deploying Distributed SystemsDeploying Distributed Systems
A Consistent Methodology for Using UML’s A Consistent Methodology for Using UML’s Implementation DiagramsImplementation Diagrams
A Concrete Measure of Performance for a A Concrete Measure of Performance for a Distributed SystemDistributed System
Utilizing the Prediction of Performance of a Utilizing the Prediction of Performance of a Distributed System to Assist in its DeploymentDistributed System to Assist in its Deployment