Professional Documents
Culture Documents
2.0 Introduction
In the second week of Advanced Software Engineering course, you will learn different
distributed architectures available and when those are used in the computer systems.
Also we will discuss distributed object architecture, service oriented architecture etc
in detail with practical applications.
Learning outcomes
After completing this lesson, you would be able to describe the advantages,
disadvantages, usage of different distributed architectures. Further you will be able
to apply the concepts of distributed architectures in providing software solutions in
different environments.
Almost all the organizations use information system to conduct day-to-day business
activities. Earlier days, most of information systems were deployed in a single
computer called as Legacy or centralized systems. Now a day, it has been changed and
almost all the systems use distributed architecture in information system deployment.
For example, if you think about a withdrawing a cash from a ATM, it involves many
distributed servers, components, modules and objects where, main customer data will
be available in clustered database, ATM host application will be in a separate server
It can be seen, that due to various reasons, distributed computer systems are
becoming popular than legacy systems. This provides facility to jointly work all
computer system to perform a single business function, where proper coordination is
required.
If we take modern e-commerce site, which enables you to purchase products and
deliver goods to your doorsteps can be taken as another example for distributed
system architecture. Can you imagine why it can be considered as a distributed
system? It involves many computers together in order to presume a single functionality
which is “Buying a good”. The system allows users to check availability of goods
connecting and retrieving inventory system, accepting orders in the e-commerce site
itself, performing payments by connecting banking systems, sending confirmation via
e-mail server, and finally it connects to courier service system to inform about your
order and facilitates the delivery.
With above examples, you can understand how distributed system architecture exists
in real world and the importance of considering such architecture into you software
engineering, especially in architectural design phase.
• Concurrency
In distributed environment several processors can be operated simultaneously
on separate computers in the network. As many processors running parallel you
can experience concurrent processing to enhance performance of the business
functions. When you are placing an order in an e-commerce web site, while
payment is being processed, application can connect to courier service and
place the delivery order which enhance the performance.
• Scalability
As the distributed nature of the architecture you can easily add new resource
such as hardware, software, services which will increase overall throughput.
• Fault tolerance
Since the availability of several computers in the network which as integrated as
distributed system, replication of information and software can be done so that
systems can be tolerant for some hardware and software failures.
So far we discussed the beauty and the power of distributed systems but we can find
some disadvantages also in this system which are given below,
• Complexity
Typically, distributed systems are more complex than centralised systems. It
involves in connecting heterogeneous systems together using different protocols
through computer network. Such system’s performance may depend on speed of
each processors, network bandwidth and throughput.
• Manageability
More effort required for system management as the computers in the
distributed environment will have many types of operating systems, versions,
patch levels etc. Fault in one may lead to many or unknown exception. Also you
need to monitor and manage many systems in distributed architecture where as
traditional systems are centralized so that no need to have many skills to
manage such systems.
• Unpredictability
Unpredictable responses depending on the overall load in the system, system
organisation and network load. As all of these may change over a short period,
response time to user may vary dramatically from one request to another.
You need to design your systems in the distributed architecture for better
performance, minimise risks and problems. In order to so, you need to understand how
distributed architecture works, their advantages and disadvantages. Now we are going
to learn about two generic distributed architectures such as,
I. Client server architecture
You can find distributed services are available in servers which are called on by
clients. Servers that provide services are treated differently from clients that
use services.
For example, web pages are stored in Web server and through the http server,
clients or browser can make http service request to get Web pages.
Two-tier client server architecture is the simplest client-server architecture which can
be have two forms as given in figure 2.5
You may remember that we discussed about 3 layers where in client server
architecture two tires are mapped into ether into the server or in the client. This can
be the major disadvantage of client-server architecture where there is a need to have
3-tired architecture which is given in figure 2.6
Three-tier architectures
For example, if we consider Internet banking application, given in figure 2.7, where all
processing are happening in side the server and client simply uses Web browser.
• In three-tier architecture, each of the application architecture layers may
execute on a separate processor.
• Allows for better performance than a thin-client approach as business logic are
executed in a high power server.
Distributed System Architecture Page 9 of 15
• It is simpler to manage than a fat-client approach as you can maintain all your
application components in single location than in each client machine.
• A more scalable architecture - as demands increase, extra servers can be added.
• Web server contains the application potion and database contains the data
related to the application. Sometimes we can find application logic also build
into database where such systems are developed using stored procedures to
write the business logic.
So far we discussed client-server and 3 tires architectures and how those are used in
different applications. In this architecture you can find clients and servers where
clients retrieve the service offered by servers. Now, we are going to discuss another
architecture called distributed object architecture where distinction between client
and server are removed.
• It allows the system designer to delay decisions on where and how services
should be provided so that distinction between fat and thin client model
become inapplicable because no need to decide in advance where client
application logic object objects are located.
Therefore, objects written in different languages can communicate with each other. In
order to communicate each other Object Request Broker handles the communication
between objects and it knows all objects in the system and their interfaces. Using an
ORB, the calling object binds an IDL stub that defines the interface of the called
object. Calling this stub results in calls to the ORB which then calls the required object
through a published IDL skeleton that links the interface to the service
implementation.
CORBA services
• Naming and trading services
• These allow objects to discover and refer to other objects on the network.
• Notification services
• These allow objects to notify other objects that an event has occurred.
• Transaction services
• These support atomic transactions and rollback on failure.
Web services
In addition to object broker model, Service Oriented Architecture (SOA) also becoming
industry standard for distributed computing. Before we discuss about SOA, we need to
understand a term of service, which is the foundation for SOA.
A generic service
An act or performance offered by one party to another. Although the process may be
tied to a physical product, the performance is essentially intangible and does not
normally result in ownership of any of the factors of production. Usually service
provision is therefore independent of the application using the service.
There are services standards available in order to publish as well as access. Basically
services are based on agreed; XML-based standards so can be provided on any platform
and written in any programming language. Following standers are used in SOA.
Key standards for Web Services are,
• SOAP - Simple Object Access Protocol;
• WSDL - Web Services Description Language;
• UDDI - Universal Description, Discovery and Integration.
Summary
In this chapter we discussed about distributed systems and how it supports resource
sharing, openness, concurrency, scalability, fault tolerance and transparency. We
started the discussion with understanding client-server architectures and then you
learnt 3-tire architecture with some practical examples.
Also in this session you had opportunity learn about distributed object systems
where requires middleware to handle object communications and to add and remove
system objects.
Finally we discussed about service-oriented systems which are created by linking
software services provided by different service suppliers.