0% found this document useful (0 votes)
12 views4 pages

SWE 408 Selected Topics in SWE Lecture 7

Uploaded by

Reem Haitham
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views4 pages

SWE 408 Selected Topics in SWE Lecture 7

Uploaded by

Reem Haitham
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Selected Topics in Software Engineering

SWE 408

Lecture 7

Reference: Ian Sommerville, Software Engineering, Tenth Edition, Pearson Education Limited, England, 2016.

Distributed Software Engineering


Distributed System: is a system involving several computers rather than a single
application running on a single machine.
• More complex than centralized systems (more difficult to design, implement, and
test
• Response time depends on the overall load on the system, its architecture, and the
network load
• There is no single authority for the entire distributed system.
• There is no central control over the system as a whole
• You have to hide the underlying distribution.
Ex.: a system executes on a single computer system but rely on remote cloud systems for
update, storage, and other services.
2
Distributed Software Engineering
Most important design issues to be considered in distributed systems engineering:
• Transparency: To what extent should the distributed system appear to the user as a
single system?
• Openness: Should a system be designed using standard protocols that support
interoperability?
• Scalability: How can the overall system be designed so that its capacity can be
increased in response to increasing demands made on the system?
• Security: How can usable security policies be defined and implemented ?
• Quality of service: How should the system be implemented to deliver an
acceptable quality of service to all users.
• Failure management: How can system failures be detected and repaired? should 3

have minimal effects on other components in the system.

Distributed Software Engineering


Scaling up (vertical): adding more power (resources) to the existing hardware resources
in the system with more higher resources (ex.: increasing RAM).

Scaling out (horizontal): additional nodes into the system to handle a higher load
(ex., an extra web server to work alongside an existing server).

4
Middleware
• Components in a distributed system may be in different programming languages
• Execution is on different types of processors.
• Information representation, and protocols for communication may all be different.
These requires a software that can manage diverse parts and ensure that they can
communicate and exchange data:
Middleware: sits between the distributed components of the system.
• is normally implemented as a set of libraries installed on each distributed computer,
plus a runtime system to manage communications
• is general-purpose software, bought off-the-shelf rather than written specially by
application developers

Client–server computing
• Distributed systems that are accessed over the Internet are organized as client–server
systems.
• An application is modeled as a set of services that are provided by servers.

Figure 1
Client– server interaction 6
Client–server computing

An application is structured into four layers:


1. Presentation layer: presenting information to the user
and managing all user interaction.
2. Data-handling layer: manages the data that is passed to
and from the client.
3. Application processing layer: implementing the logic
of the application and provides the required functionality to
end-users.
4. Database layer: stores the data and provides transaction
management and query services.
Figure 2
Layered architectural model for client–server application
7

You might also like