Name: Shilpashree Srinivasamurthy Subject: ACS 560- Software Engineering Term: Fall 2010

advertisement
Name: Shilpashree Srinivasamurthy
Subject: ACS 560- Software Engineering
Term: Fall 2010
Chapter 13: Architectural Design of Distributed Applications
Textbook: Designing Concurrent, Distributed, and Real-Time Applications with
UML
This chapter describes how the COMET design method addresses the design of
distributed concurrent and distributed real-time applications. The chapter initially talks
about designing steps of distributed applications and then goes in details of each of these
steps.
The three main steps in designing a distributed application are: System decomposition,
Subsystem decomposition and System configuration.
System Decomposition forms the first step in the design of a distributed application. In
this step an application is structured into subsystems, where each subsystem can
potentially execute on its own node. In order to design a distributed subsystem, a good
basis for subsystem structuring is to consider use-case-based collaboration diagram,
which shows the objects that communicate frequently with each other. There are two
types of subsystems namely aggregate subsystems and composite subsystems. This
chapter explains these subsystems with respect to COMET. In COMET, an aggregate
subsystem is a logical grouping of subsystems and/ or objects that can be depicted as
package in UML. A composite subsystem in COMET is a component that encapsulates
the objects it contains. The chapter also explains about the various distributed component
configuration criteria that are provided to help ensure that subsystems are designed
effectively as configurable distributed components.
After the decomposition is performed the interfaces between the subsystems must be
defined. Tasks in different subsystems can communicate with each other in various types
of message communication:
- Loosely couples (Asynchronous) message communication: Here the producer
task sends a message to the consumer task and does not wait for a reply.
- Tightly Coupled (Synchronous) message communication: The client sends a
message to the server and waits for a response
- Multiple client/server message communication: Here several clients request
services from a server by sending messages to it through either asynchronous or
synchronous message communication.
- Subscription/Notification and Group message communication: Group message
communication is a form of one-to-many message communication in which the
sender sends one message to many recipients. Distributed applications support
-
-
two types of group message communications namely broadcast communication
and multicast communication. Subscription/Notification is a form of group
communication in which tasks subscribe to a group and receive messages
destined for all members of the group.
Brokered Communication: An object broker is an intermediary in interactions
between clients and servers. A client sends a message identifying the service
required. The object broker receives the client request, determines the location
of the server and forwards the message to the server at the specific location. The
message arrives at the server and the requested service is invoked.
Negotiated communication: The following are the communication services
provided to allow the software agents to negotiate with each other.
o The client agent on behalf of the client may propose service, and/or
request service, and/or reject server offer.
o The server agent on behalf of the server may offer a service, and/or reject
client request/proposal, and/or accept client request/proposal.
The chapter then talks about transaction management along with two-phase commit
protocol in transaction processing systems. A transaction consists of two or more
operations that perform a single logical function, and which must be completed in its
entirety or not at all. Two-phase commit protocol synchronizes the updates on different
nodes in distributed applications. The result of the two-phase commit protocol is that
either the transaction is committed and all updates succeed, or the transaction is aborted
and all updates fail.
The next section talks about the design of the server subsystems which provide service
for client subsystems. There are two types of server subsystems:
- Sequential Server Subsystem: A sequential server subsystem services client
requests sequentially.
- Concurrent Server Subsystem: In concurrent server subsystems, several tasks
might wish to access the data repository at the same time, so access needs to be
synchronized.
The next section talks about data distribution which addresses the disadvantages of
centralized servers. There are two approaches for data distribution namely distributed
server in which the data collected at several locations is stored at those locations each of
which has a local server that responds to the client requests of that corresponding location
and data replication in which the same data is duplicated in more than one location to
speed up access to the data
Finally the chapter talks about system configuration illustrating the target system
configuration with an example. During system configuration, an instance of the
distributed application- referred to as a target system- is defined and mapped to a
distributed configuration consisting of multiple geographically distributed physical nodes
connected by a network. During target system configuration the instances of the
component types are defined, component instances are interconnected and the component
instances (logical nodes) are mapped to physical nodes.
Download