engr . m.fahad khan lecturer software engineering...
Post on 09-Feb-2020
3 Views
Preview:
TRANSCRIPT
Engr. M. Fahad Khan
Lecturer Software Engineering Department
University Of Engineering & Technology Taxila
Distributed Systems Architectures
Distributed Systems Architectures
Ref:
Chapter 12
Software Engineering
By Ian Sommerville, 7th Edition
Distributed systems• 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 therefore very important for
enterprise computing systems.
Distributed Systems
• An integration of system services, presenting a transparent view of a multiple
computer system with distributed resources and control
• A collection of independent computers that appear to the users of the system as a
single computer
• Examples
– Personal workstations + a pool of processors + single file system
– Robots on the assembly line + Robots in the parts department
– A large bank with hundreds of branch offices all over the world
System Types
• 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.
Distributed Systems Types
Advantages of Distributed Systems Over Isolated
Computers
• 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.
Advantages of Distributed Systems Over Isolated
Computers• Device sharing
• – Allow many users to share expensive peripherals like color printers
• Communication
• – Make human-to-human communication easier
• for example, by E-mail
• Flexibility
• – Spread the workload over the available machines in the most cost
effective way
Distributed System Disadvantages• Complexity
– Typically, distributed systems are more complex than centralised
systems.
• Security
– More susceptible to external attack.
• Manageability
– More effort required for system management.
• Unpredictability
– Unpredictable responses depending on the system organisation and
network load.
Goal(I)
Provide a high-performance and robust computing environment with least
awareness of the management and control of distributed system resources
• Efficiency - difficult due to communication delays
– Propagation delay
– Protocol overhead
• Effective communication primitives, good protocols
– Load distribution – bottleneck or congestions in Network/SW
• Balance and overlap computation and communication
• Distributed processing and load sharing
Goal(II)
• Flexibility
– User view: friendly system and freedom in using the system
• Friendliness: user interface, consistency, reliability
• Freedom:
– No unreasonable restrictions in using systems
– Easy to build additional tools or services
– System view
• Ability to evolve and migrate
• Modularity, scalability, portability and interoperability
Distributed Systems Architectures
• 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.
MiddlewareSoftware 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
Middleware Cont..• Middleware is computer software that connects software components or applications.
The software consists of a set of services that allows multiple processes running on one
or more machines to interact. This technology evolved to provide for interoperability in
support of the move to coherent distributed architectures, which are used most often to
support and simplify complex, distributed applications. It includes web servers,
application servers, and similar tools that support application development and delivery.
Middleware is especially integral to modern information technology based on XML,
SOAP, Web services, and service-oriented architecture.
• Middleware sits "in the middle" between application software that may be working on
different operating systems. It is similar to the middle layer of a three-tier single system
architecture, except that it is stretched across multiple systems or applications. Examples
include EAI software, telecommunications software, transaction monitors, and
messaging-and-queueing software.
Middleware
Middleware
Multiprocessor Architectures
• Simplest distributed system model.
• System composed of multiple processes which may 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.
Multiprocessor architecturesMultiprocessing is the use of two or more central processing units (CPUs) within a single
computer system. The term also refers to the ability of a system to support more than one
processor and/or the ability to allocate tasks between them.There are many variations on
this basic theme, and the definition of multiprocessing can vary with context, mostly as a
function of how CPUs are defined (multiple cores on one die, multiple chips in one
package, multiple packages in one system unit, etc.).
Multiprocessing sometimes refers to the execution of multiple concurrent software processes
in a system as opposed to a single process at any one instant. However, the terms
multitasking or multiprogramming are more appropriate to describe this concept, which is
implemented mostly in software, whereas multiprocessing is more appropriate to describe
the use of multiple hardware CPUs. A system can be both multiprocessing and
multiprogramming, only one of the two, or neither of the two.
Multiprocessor Architectures Based On Checkers
Multiprocessor in Network
Client-server architectures
• 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-Server ArchitecturesClient-server computing or networking is a distributed application
architecture that partitions tasks or work loads between service
providers (servers) and service requesters, called clients. Often
clients and servers operate over a computer network on separate
hardware. A server machine is a high-performance host that is
running one or more server programs which share its resources
with clients. A client does not share any of its resources, but
requests a server's content or service function. Clients therefore
initiate communication sessions with servers which await (listen
to) incoming requests.
A Client-Server System
Layered Application Architecture
• Presentation layer
– Concerned with presenting the results of a computation to system users
and with collecting user in puts.
• 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.
Layered Application Architecture
Layered Application Architecture
Thin and Fat Clients• Thin-client model
– In a thin-client model, all of the application processing and datamanagement is carried out on the server. The client is simplyresponsible for running the presentation software.
• Fat-client model
– In this model, the server is only responsible for data management. Thesoftware on the client implements the application logic and theinteractions with the system user.
Thin and Fat Clients
Thin and Fat Clients
Thin Client Model• 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.
Thin Client Model
A thin client (sometimes also called a lean or slim client) is a client
computer or client software in client-server architecture networks
which depends primarily on the central server for processing
activities, and mainly focuses on conveying input and output
between the user and the remote server. In contrast, a thick or fat
client does as much processing as possible and passes only data for
communications and storage to the server.
Fat Client Model
• More processing is delegated to the client as the application
processing is locally executed.
• Most suitable for new C/S 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.
Fat Client Model
• A fat client or rich client is a computer (client) in client-server
architecture networks which typically provides rich functionality
independently of the central server. Originally known as just a 'client' or
'thick client', the name is contrasted to thin client, which describes a
computer heavily dependent on a server's applications.
• A fat client still requires at least periodic connection to a network or
central server, but is often characterized by the ability to perform many
functions without that connection. In contrast, a thin client generally does
as little processing as possible and relies on accessing the server each
time input data needs to be processed or validated.
A Client-Server ATM System
Account server
Customeraccoun tdatabase
Tele-processing
monitor
AT M
AT M
AT M
AT M
Three-Tier Architectures
• 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.
A 3-Tier C/S Architecture
An Internet Banking System
Database server
Customeraccoun tdatabase
Web serverClient
Client
Account serviceprov ision
SQL
SQL query
HTT P interaction
Client
Client
Distributed Object Architectures
• 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.
• However, distributed object architectures are more complex to design than C/S systems.
Distributed Object Architecture
Object request broker
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.
• It is a very open system architecture that allows new
resources to be added to it as required.
• The system is flexible and scaleable.
• It is possible to reconfigure the system dynamically with
objects migrating across the network as required.
Uses Of Distributed Object Architecture
• As a logical model that allows you to structure and organise
the system. In this case, you think about how to provide
application functionality solely in terms of services and
combinations of services.
• As a flexible approach to the implementation of client-server
systems. The logical model of the system is a client-server
model but both clients and servers are realised as distributed
objects communicating through a common communication
framework.
Data MiningData mining is the process of extracting patterns from data.
As more data are gathered, with the amount of data
doubling every three years, data mining is becoming an
increasingly important tool to transform these data into
information. It is commonly used in a wide range of
profiling practices, such as marketing, surveillance, fraud
detection and scientific discovery.
Data Mining
Data mining (knowledge discovery from data)
• Extraction of interesting (non-trivial, implicit, previously unknown and potentially useful)
patterns or
• knowledge from huge amount of data
Alternative names
• Knowledge discovery (mining) in databases (KDD),knowledge extraction, data/pattern
analysis, data archeology, data dredging, information harvesting, business intelligence, etc.
• Watch out: Is everything “data mining”?
Simple search and query processing (Deductive) expert systems
What is Data Mining?
Data Mining System• The logical model of the system is not one of service provision
where there are distinguished data management services.
• It allows the number of databases that are accessed to be
increased without disrupting the system.
• It allows new types of relationship to be mined by adding new
integrator objects.
Common Object Request Broker Architecture
The Common Object Request Broker Architecture (CORBA) is a standard defined
by the Object Management Group (OMG) that enables software components
written in multiple computer languages and running on multiple computers to work
together, i.e. it supports multiple platform.
CORBA uses an interface definition language (IDL) to specify the interfaces that
objects will present to the outside world. CORBA then specifies a “mapping” from
IDL to a specific implementation language like C++ or Java. Standard mappings
exist for C, C++, Lisp, Ruby, Smalltalk, Java, COBOL, PL/I and Python. There
are also non-standard mappings for Perl, Visual Basic, andTC.Implemented by
object request brokers (ORBs) written for those languages.
Common Object Request Broker Architecture
CORBA• CORBA is an international standard for an Object Request Broker -
middleware to manage communications between distributed objects.
• Middleware for distributed computing is required at 2 levels:
– At the logical communication level, the middleware allows objects on
different computers to exchange data and control information;
– At the component level, the middleware provides a basis for developing
compatible components. CORBA component standards have been
defined.
CORBA Application Structure
CORBA services
Domain
facilit ies
Horizontal CORBA
facilit ies
Application
objects
Object request broker
What is CORBA good for?
CORBA is useful in many situations. Because of the easy way that CORBA integrates machines from so
many vendors, with sizes ranging from mainframes through minis and desktops to hand-helds and
embedded systems, it is the middleware of choice for large (and even not-so-large) enterprises. One
of its most important, as well most frequent, uses is in servers that must handle large number of
clients, at high hit rates, with high reliability.
CORBA works behind the scenes in the computer rooms of many of the world's largest websites; ones
that you probably use every day. Specializations for scalability and fault-tolerance support these
systems. But it's not used just for large applications; specialized versions of CORBA run real-time
systems, and small embedded systems.
What is CORBA good for?
CORBA Objects
• CORBA objects are comparable, in principle, to objects in C++ and Java.
• They MUST have a separate interface definition that is expressed using a common language (IDL) similar to C++.
• There is a mapping from this IDL to programming languages (C++, Java, etc.).
• Therefore, objects written in different languages can communicate with each other.
Object Request Broker (ORB)
• The ORB handles object communications. It knows of 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.
ORB-Based Object Communications
o1 o2
S (o1) S (o2)
IDLstub
IDLskeleton
Object Request Broker
Inter-ORB Communications
• ORBs are not usually separate programs but are a set of
objects in a library that are linked with an application when it
is developed.
• ORBs handle communications between objects executing on
the sane machine.
• Several ORBS may be available and each computer in a
distributed system will have its own ORB.
• Inter-ORB communications are used for distributed object
calls.
Inter-ORB communications
o1 o2
S (o1) S (o2)
IDLstub
IDLskeleton
Object Request Broker
o3 o4
S (o3) S (o4)
IDLstub
IDLskeleton
Object Request Broker
Network
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.
Inter- Organisational Computing
• For security and inter-operability reasons, most distributed computing
has been implemented at the enterprise level.
• Local standards, management and operational processes apply.
• Newer models of distributed computing have been designed to
support inter- organisational computing where different nodes are
located in different organisations.
Peer-to-Peer Architectures
• Peer to peer (p2p) systems are decentralised systems where
computations may be carried out by any node in the network.
• The overall system is designed to take advantage of the
computational power and storage of a large number of networked
computers.
• Most p2p systems have been personal systems but there is
increasing business use of this technology.
Peer-to-Peer Architectures
Peer-to-Peer Architectures
A peer-to-peer, commonly abbreviated to P2P, distributed network architecture is
composed of participants that make a portion of their resources (such as
processing power, disk storage or network bandwidth) directly available to other
network participants, without the need for central coordination instances (such as
servers or stable hosts). Peers are both suppliers and consumers of resources, in
contrast to the traditional client-server model where only servers supply, and
clients consume.
Peer-to-peer was popularized by file sharing systems like Napster. Peer-to-peer file
sharing networks have inspired new structures and philosophies in other areas of
human interaction. In such social contexts, peer-to-peer as a meme refers to the
egalitarian social networking that is currently emerging throughout society,
enabled by Internet technologies in general.
Peer-to-Peer
P2P Architectural Models
• The logical network architecture
– Decentralised architectures;
– Semi-centralised architectures.
• Application architecture
– The generic organisation of components making up a p2p
application.
• Focus here on network architectures.
Decentralised P2P Architecture
n1
n2 n3
n4
n5
n6
n7
n8
n9 n10 n11
n1 2
n1 3
n1 3
Semi- Centralised P2P Architecture
Discoveryserver
n1
n2
n3
n4
n5
n6
Service-Oriented Architectures
• Based around the notion of externally provided services
(web services).
• A web service is a standard approach to making a
reusable component available and accessible across the
web
– A tax filing service could provide support for users to fill in
their tax forms and submit these to the tax authorities.
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.
• Service provision is therefore independent of the
application using the service.
Web Services
Services and Distributed Objects
• Provider independence.
• Public advertising of service availability.
• Potentially, run-time service binding.
• Opportunistic construction of new services through composition.
• Pay for use of services.
• Smaller, more compact applications.
• Reactive and adaptive applications.
Services Standards
• Services are based on agreed, XML-based standards so can be
provided on any platform and written in any programming
language.
• Key standards
– SOAP - Simple Object Access Protocol
– WSDL - Web Services Description Language
– UDDI - Universal Description, Discovery and Integration.
Services Scenario
• An in-car information system provides drivers with information on weather, road traffic conditions, local information etc. This is linked to car radio so that information is delivered as a signal on a specific radio channel.
• The car is equipped with GPS receiver to discover its position and, based on that position, the system accesses a range of information services. Information may be delivered in the driver’s specified language.
Automotive System
Key Points
• Distributed systems support resource sharing, openness, concurrency,
scalability, fault tolerance and transparency.
• Client-server architectures involve services being delivered by servers to
programs operating on clients.
• User interface software always runs on the client and data management on the
server. Application functionality may be on the client or the server.
• In a distributed object architecture, there is no distinction between clients and
servers.
Key Points
• Distributed object systems require middleware to handle object communications
and to add and remove system objects.
• The CORBA standards are a set of middleware standards that support
distributed object architectures.
• Peer to peer architectures are decentralised architectures where there is no
distinction between clients and servers.
• Service-oriented systems are created by linking software services provided by
different service suppliers.
If you have any query please feel free to ask
Phone: +92-51-9047-574
Fax: +92-51-9047-420
Email: fahad@uettaxila.edu.pk
University Of Engineering & Technology Taxila Pakistan
top related