0% found this document useful (0 votes)
89 views

Distributed Software Engineering

The document discusses distributed software engineering and client-server systems. It describes the advantages of distributed systems like resource sharing, openness, concurrency, and scalability. Issues with distributed systems include transparency, openness, scalability, security, quality of service, and failure management. Client-server systems have thin and fat client models, with tradeoffs around processing load and system management.

Uploaded by

Soccho coc
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
89 views

Distributed Software Engineering

The document discusses distributed software engineering and client-server systems. It describes the advantages of distributed systems like resource sharing, openness, concurrency, and scalability. Issues with distributed systems include transparency, openness, scalability, security, quality of service, and failure management. Client-server systems have thin and fat client models, with tradeoffs around processing load and system management.

Uploaded by

Soccho coc
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 17

Distributed software engineering

Advantages of a distributed approach

 Resource sharing - A distributed system allows the sharing of hardware and software resources.
 Openness - Distributed systems are normally open systems.
 Concurrency - In a distributed system, several processes may operate at the same time on separate computers
on the network.
 Scalability - New resources can be added to cope with new demands on the system.
 Fault tolerance - The availability of several computers and the potential for replicating information means
that distributed systems can be tolerant of some hardware and software failures
Distributed systems issues

Issues Focus
Transparency  To what extent should the distributed system appear to the user as a single system?
 When it is useful for users to understand that the system is distributed?
Openness  Should a system be designed using standard protocols that support interoperability or
should more specialized protocols be used that restrict the freedom of the designer?
Scalability  How can the system be constructed so that it is scalable?
 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 that apply across a set of
independently managed systems?
Distributed systems issues (Contd..)

Issues Focus
Quality of service  How should the quality of service that is delivered to system users be specified and
how should the system be implemented to deliver an acceptable quality of service to
all users?
Failure management  How can system failures be detected, contained (so that they have minimal effects on
other components in the system), and repaired?
Three dimensions of scalability:

 Size - It should be possible to add more resources to a system to cope with


increasing numbers of users.
 Distribution - It should be possible to geographically disperse the components of
a system without degrading its performance.
 Manageability - It should be possible to manage a system as it increases in size,
even if parts of the system are located in independent organizations.
The types of attacks that a distributed system
must defend

 Interception - where communications between parts of the system are intercepted by an


attacker so that there is a loss of confidentiality.
 Interruption - where system services are attacked and cannot be delivered as expected.
 Modification - where data or services in the system are changed by an attacker.
 Fabrication - where an attacker generates information that should not exist and then uses
this to gain some privileges.
Middleware

 The components in a distributed system may be implemented in different programming languages and may
execute on completely different types of processor.
 Models of data, information representation, and protocols for communication may all be different.
 A distributed system therefore requires software that can manage these diverse parts, and ensure that they
can communicate and exchange data.
 The term ‘middleware’ is used to refer to this software—it sits in the middle between the distributed
components of the system.
 Middleware is a layer between the operating system and application programs.
 Middleware is normally implemented as a set of libraries, which are installed on each distributed computer,
plus a run-time system to manage communications.
Middleware in a distributed system

Coordinated
Application Components Application Components
Operation
Information
Middleware Exchange and Middleware
Common Services
Logical
Operating System Operating System
Interaction

Networking Physical Networking


Connectivity

System1 System2
Client–server computing

 Distributed systems that are accessed over the Internet are normally organized as client–server systems.
 In a client–server system, the user interacts with a program running on their local computer (e.g., a web
browser or phone-based application).
 This interacts with another program running on a remote computer (e.g., a web server).
 The remote computer provides services, such as access to web pages, which are available to external clients.
 In a client–server architecture, an application is modeled as a set of services that are provided by servers.
 Clients may access these services and present results to end users.
 Clients need to be aware of the servers that are available but do not know of the existence of other clients.
 Clients and servers are separate processes.
Client–server interaction

C3 C4 C12
C2 Server Process
C11

C1 S1
S4
C10

C5 S2 Client Process
S3
C9

C6 C7 C8
Mapping of clients and servers to networked
computers

C1 S1,S2 C2 C3,C4

 It is normal for several client


CC1 SC2 CC2 CC3 Server processes to run on a single
Computer processor.
 12 logical clients are running
Network on six computers.
 The four server processes are
mapped onto two physical
CC4 SC1 CC5 CC6 server computers.
Client
Computer
C5,C6, S3,S4 C8,C9 C10,C11,C
C7 12
4 Layers of Client–server systems

 A presentation layer - concerned with presenting information to the user and managing all user
interaction
 A data management layer - manages the data that is passed to and from the client. This layer may
implement checks on the data, generate web pages, etc.
 An application processing layer - concerned with implementing the logic of the application and so
providing the required functionality to end users
 A database layer - stores the data and provides transaction management services, etc.
Layered architectural model for client–server application

Presentation Layer

Data Management Layer

Application Processing Layer

Database Layer
Thin-client model

 Where the presentation layer is implemented on the client and all other layers (data management, application
processing, and database) are implemented on a server.
 The client software may be a specially written program on the client to handle presentation.
 More often, however, a web browser on the client computer is used for presentation of the data.
Thin-client model (Contd..)

Advantages Disadvantages
 The advantage of the thin-client model is that it is  The disadvantage of the thin-client approach,
simple to manage the clients. however is that it may place a heavy processing load
 This is a major issue if there are a large number of on both the server and the network.
clients, as it may be difficult and expensive to  The server is responsible for all computation and this
install new software on all of them. may lead to the generation of significant network
 If a web browser is used as the client, there is no traffic between the client and the server.
need to install any software.  Implementing a system using this model may
therefore require additional investment in network
and server capacity.
Fat Client model

 where some or all of the application processing is carried out on the client.
 Data management and database functions are implemented on the server.
Fat Client model (Contd..)

Advantages Disadvantages
 The fat-client model makes use of available  The problem with the fat-client model is that it
processing power on the computer running the requires additional system management to deploy
client software, and distributes some or all of the and maintain the software on the client computer.
application processing and the presentation to the
client.
 The server is essentially a transaction server that
manages all database transactions.
 Data management is straightforward as there is no
need to manage the interaction between the client
and the application processing system.

You might also like