System Design
System Design
Architectural Styles
Client Server Architecture
Peer to Peer Architecture
• One or many servers provide services to instances of subsystems,
called clients
• Each client calls on the server, which performs some service and
returns the result
The clients know the interface of the server
The server does not need to know the interface of the client
• The response in general is immediate
• End users interact only with the client
• E.g An information system with a central database
Server
user requester provider
+service1()
Client * * +service2()
+serviceN()
• Often used in the design of database systems
• Front-end: User application (client)
• Back end: Database access and manipulation (server)
• Example:
• Database must process queries from application and should be able
to send notifications to the application when data have changed
application1:DBUser 1. updateData
database:DBMS
application2:DBUser 2. changeNotification
Generalization of Client/Server Architectural Style
Figure: Peer-to-peer architectural style (UML class diagram). Peers can request
services from and provide services to other peers.
Figure: An example of peer-to-peer architectural style (UML communication
diagram). The database server can both process requests from and send
notifications to applications.
Interface layer includes all boundary objects.
Application logic layer includes all control and entity objects.
Storage layer realizes the storage, retrieval, and query of persistent objects.
The subsystems are called “filters,” and the associations between the subsystems are
called “pipes.”
Each filter knows only the content and the format of the data received on the input
pipes.
Suited for systems that apply transformations to streams of data without intervention
by users.
Figure: Pipe and filter architectural style (UML class diagram). A
Filter can have many inputs and outputs. A Pipe connects one of the
outputs of a Filter to one of the inputs of another Filter.
For example the pipe and filter architecture of a noise cancelation
system will be:
\
Bernd Bruegge & Alllen H. Dutoit- Object
Oriented Software Engineering- Using UML,
Patterns and Java