Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Community
Ask the community for help and clear up your study doubts
Discover the best universities in your country according to Docsity users
Free resources
Download our free guides on studying techniques, anxiety management strategies, and thesis advice from Docsity tutors
This lecture is part of lecture series for Software Engineering course. Prof. Prateek Aron delivered this lecture at Allahabad University. Its main points are: Distributed, System, Architecture, Execute, Processor, Information, Personal, Embedded, Scalability, Concurrency, Security
Typology: Slides
1 / 28
Virtually all large computer-based systems are now distributed systems
Information processing is distributed over several computers rather than confined to a single machine
Distributed software engineering is now very important
Personal systems that are not distributed and that are designed to run on a personal computer or workstation.
Embedded systems that run on a single processor or on an integrated group of processors.
Distributed systems where the system software runs on a loosely integrated group of cooperating processors linked by a network.
Resource sharing
Openness
Concurrency
Scalability
Fault tolerance
Transparency
Client-server architectures
Distributed services which are called on by clients. Servers that provide services are treated differently from clients that use services
Distributed object architectures
No distinction between clients and servers. Any object on the system may provide and use services from other objects
Software that manages and supports the different components of a distributed system. In essence, it sits in the middle of the system
Middleware is usually off-the-shelf rather than specially written software
Examples
Transaction processing monitors Data converters Communication controllers
Simplest distributed system model
System composed of multiple processes which may (but need not) execute on different processors
Architectural model of many large real-time systems
Distribution of process to processor may be pre-ordered or may be under the control of a dispatcher
Traffic lights
controlLight process
Traffic flowprocessor Traffic light controlprocessor
Traffic flow sensorsand cameras Operator consoles
processorSensor
controlSensor process
Displayprocess
The application is modelled as a set of services that are provided by servers and a set of clients that use these services
Clients know of servers but servers need not know of clients
Clients and servers are logical processes
The mapping of processors to processes is not necessarily 1 : 1
Client process
- s - s2 s
Network SC2^ SC
CC1 CC2 CC
CC4 CC5 CC
computerServer
computerClient
s1, s2 s3, s
c5, c6, c
c1 c2 (^) c3, c
c8, c9 c10, c11, c
Presentation layer
Concerned with presenting the results of a computation to system users and with collecting user inputs
Application processing layer
Concerned with providing application specific functionality e.g., in a banking system, banking functions such as open account, close account, etc.
Data management layer
Concerned with managing the system databases
Presentation layer
Application processing layer
Data management layer
Thin-client model
In a thin-client model, all of the application processing and data management is carried out on the server. The client is simply responsible for running the presentation software.
Fat-client model
In this model, the server is only responsible for data management. The software on the client implements the application logic and the interactions with the system user.
Thin-client model
Fat-client model Client
Client
Server Data management Application processing
Presentation
Server Data management
Presentation Application processing
Used when legacy systems are migrated to client server architectures. The legacy system acts as a server in its own right with a graphical interface implemented on a client
A major disadvantage is that it places a heavy processing load on both the server and the network
More processing is delegated to the client as the application processing is locally executed
Most suitable for new client-server systems where the capabilities of the client system are known in advance
More complex than a thin client model especially for management. New versions of the application have to be installed on all clients
Account server
Customer account database
Tele- processing monitor
ATM
ATM
ATM
ATM
In a three-tier architecture, each of the application architecture layers may execute on a separate processor
Allows for better performance than a thin-client approach and is simpler to manage than a fat-client approach
A more scalable architecture - as demands increase, extra servers can be added to the data management or application processing layers.
Client
Server Data management
Presentation Server Application processing
Datab ase server Customer account database
Web server Client
Client
Client
Client
Account service provision SQL
SQL query
HTTP interaction
COMP201 - Software Engineering 22
Architecture Applications Two-tier C/S with thin clients
Legacy system applications where separating application processing and data management is impractical. Computationally-intensive applications such as compilers with little or no data management. Data-intensive applications (browsing/querying) with little or no application processing.
Two-tier C/S with fat clients
Applications where processing uses off-the-shelf software (eg. Microsoft Excel) on the client. Applications with relatively stable end-user functionality used in an environment with well-established system management.
Three-tier or multi-tier C/S architecture
Large-scale applications with hundreds or thousands of clients. Applications where both the data and applications are volatile. docsity.com
There is no distinction in a distributed object architectures between clients and servers
Each distributable entity is an object that
provides services to other objects and receives services from other objects
Object communication is through a middleware system called an object request broker (software bus)
However, they can be more complex to design than client- server systems
Software bus
o1 o2 o3 o4
o5 o6
S (o1) (^) S (o2) S (o3) S (o4)
S (o5) S (o6)
Advantages of Distributed Object Architecture
It allows the system designer to delay decisions on where and how services should be provided Service-providing objects can execute on any node of the network and thus the distinction between thin/fat-client models becomes irrelevant. It is a very open system architecture that allows new resources to be added to it as required Object communication standards have been developed allowing objects written in different languages to communicate with each other.