Architectural Design of Distributed Systems, Part 4Timeline of COMET Design Methodology – Pt 1Timeline of COMET Design Methodology – Pt. 2Group msg comm or subscribe/notifyBrokered CommunicationTransaction ManagementData distributionDesign of Server SubsystemsDistributed data accessSimple server subsystemSequential ServerAuxiliary supportSequential server subsystemConcurrent Server SubsystemImplications of concurrencyMultiple readers & writersAnother concurrent serverPowerPoint PresentationSlide 19Slide 20Distributed ServerSlide 22Replicated ServerSystem Configuration10-4-2006 ECEN5053 SW Eng of Dist Systems, Arch Des Part 4, Univ of Colorado, Boulder1Architectural Design of Distributed Systems, Part 4ECEN5053 SW Eng of Distributed SystemsUniversity of Colorado, Boulder10-4-2006 ECEN5053 SW Eng of Dist Systems, Arch Des Part 4, Univ of Colorado, Boulder2Timeline of COMET Design Methodology – Pt 1Use case diagramsUse case narrativesDomain modelSystem context modelStatic model of entity classesDefine classes in the class dictionary (classes & attributes)Class diagramobjectsclasseshigh-level subsystemsadd new classes to class dictionaryPer use case, dev collaboration diagram (or sequence)Analyze sequenceAnalyze information passedDev. statechart for each state-dependent object in a state-dependent collaboration.Synthesize statechartsMessage sequence descriptions for each collaboration diagramRequirementsModelAnalysis ModelDesign ModelSynthesize artifacts of analysis to make initial sw architectureSynthesize collaboration diagrams into collaboration modelSynthesize class diagramDesign overall sw architecture: Subsystem structureSubsystem interfacesCollaboration diagram for each subsystemHi-level collaboration diagram for whole systemDesign distributed component-based sw architectureFor dist. apps., define dist. component subsystems using dist. configuration criteriaDef. msg comm interfaces10-4-2006 ECEN5053 SW Eng of Dist Systems, Arch Des Part 4, Univ of Colorado, Boulder3Timeline of COMET Design Methodology – Pt. 2Define the concurrent task architecture for each subsystemApply task structuring criteriaDefine tasks and their interfacesDev. concurrent collaboration diagrams for each subsystemDescribe each task in task behavior specAnalyze the performance of the design for real-time tasksDesign the classes in each subsystemClass interfacesInheritance hierarchiesIf database neededodesign dbodev wrapper classesDev. class interface spec for each classDev. detailed software design for each subsystemInternals of composite tasks including nested passive objectsDetails of task synchronizatio mechanisms for obj’s accessed by multiple tasksConnector classes that encapsulate details of inter-task communicationDes., doc each task’s internal event sequencing logicPerformanceAnalysis for real-time sysSubsystem Classes DesignDetailed software designRe-analyze performance in greater detail for each subsystem by iterating on these steps, if necessary. This applies to real-time application design.10-4-2006 ECEN5053 SW Eng of Dist Systems, Arch Des Part 4, Univ of Colorado, Boulder4Group msg comm or subscribe/notifyOne source, multiple destinationsBroadcast communicationunsolicited msg sent to all recipients; recipients decide whether to discard or processMulticastsame msg sent to members of a groupSubscribe/notifyPublisher can send to group10-4-2006 ECEN5053 SW Eng of Dist Systems, Arch Des Part 4, Univ of Colorado, Boulder5Brokered CommunicationClients and servers can be distributed objectsObject broker is intermediary in interactions between themClient does not have to maintain info about where the service is provided or how to obtain itProvides location transparency – if server moves, only the broker needs to knowServers register services they provide and locationClients identify service required and send msgBroker receives request, finds location, forwards req.10-4-2006 ECEN5053 SW Eng of Dist Systems, Arch Des Part 4, Univ of Colorado, Boulder6Transaction ManagementIn this section, sufficient to realize the need for transactionsFlat – all or nothingCompound – might need only partial rollbackWe’ll spend a week specifically on transaction management10-4-2006 ECEN5053 SW Eng of Dist Systems, Arch Des Part 4, Univ of Colorado, Boulder7Data distributionDistributed datadivided into sectionseach section on a different subsystemReplicated dataidentical copies everywherechallenge is to keep them identical at the level required by the applicationWe spend a week on this topic, also.10-4-2006 ECEN5053 SW Eng of Dist Systems, Arch Des Part 4, Univ of Colorado, Boulder8Design of Server SubsystemsProvides a service for client subsystemsfile servers, database servers, printer servers, etc.Consider a standalone program that accesses a databaseA data structure is encapsulated in a data abstraction object – acts as a “server”Tasks (concurrent) invoke operations provided by the object in order to access its dataHow is a distributed system different?10-4-2006 ECEN5053 SW Eng of Dist Systems, Arch Des Part 4, Univ of Colorado, Boulder9Distributed data accessTasks on physically separate nodes cannot access a passive data abstraction object directlyThe passive data abstraction object encapsulates the data structureA server component encapsulates the passive data abstraction objectAn active object thread access the passive objectServer active object responds to client requests to read/update the data maintained by passive obj.10-4-2006 ECEN5053 SW Eng of Dist Systems, Arch Des Part 4, Univ of Colorado, Boulder10Simple server subsystemDoes not initiate any requests for services from other subsystemsSequentialConcurrent10-4-2006 ECEN5053 SW Eng of Dist Systems, Arch Des Part 4, Univ of Colorado, Boulder11Sequential ServerServices client requests sequentiallyThe sequential server is a task (active object)Provides one or more servicesResponds to requests from client tasks to access the serviceWhen server task receives a message, it invokes the service actually provided by the passive data abstraction object to read or update its data10-4-2006 ECEN5053 SW Eng of Dist Systems, Arch Des Part 4, Univ of Colorado, Boulder12Auxiliary supportServer task has a message queue of incoming service requestsThere is a message type for each service provided by the serverServer coordinator unpacks the client’s msg, checks the
View Full Document