Chapter 17 Distributed Software Engineering 1 20/11/2014
Chapter 17 Distributed Software Engineering 1 20/11/2014
Distributed systems
Client–server computing
Architectural patterns for distributed systems
Software as a service
Resource sharing
Sharing of hardware and software resources.
Openness
Use of equipment and software from different vendors.
Concurrency
Concurrent processing to enhance performance.
Scalability
Increased throughput by adding new resources.
Fault tolerance
The ability to continue in operation after a fault has occurred.
<starter>
<dish name = “soup” type = “tomato” />
<dish name = “soup” type = “fish” />
<dish name = “pigeon salad” />
</starter>
<main course>
<dish name = “steak” type = “sirloin” cooking = “medium” />
<dish name = “steak” type = “fillet” cooking = “rare” />
<dish name = “sea bass”>
</main>
<accompaniment>
<dish name = “french fries” portions = “2” />
<dish name = “salad” portions = “1” />
</accompaniment>
Presentation
concerned with presenting information to the user and managing
all user interaction.
Data handling
manages the data that is passed to and from the client.
Implement checks on the data, generate web pages, etc.
Application processing layer
concerned with implementing the logic of the application and so
providing the required functionality to end users.
Database
Stores data and provides transaction management services, etc.
Architecture Applications
Two-tier client–server Legacy system applications that are used when
architecture with thin clients separating application processing and data management
is impractical. Clients may access these as services, as
discussed in Section 18.4.
Computationally intensive applications such as compilers
with little or no data management.
Data-intensive applications (browsing and querying) with
nonintensive application processing. Browsing the Web is
the most common example of a situation where this
architecture is used.
Architecture Applications
Two-tier client-server Applications where application processing is provided by
architecture with fat clients off-the-shelf software (e.g., Microsoft Excel) on the client.
Applications where computationally intensive processing
of data (e.g., data visualization) is required.
Mobile applications where internet connectivity cannot be
guaranteed. Some local processing using cached
information from the database is therefore possible.
Multi-tier client–server Large-scale applications with hundreds or thousands of
architecture clients.
Applications where both the data and the application are
volatile.
Applications where data from multiple sources are
integrated.