77
Engr. M. Fahad Khan Lecturer Software Engineering Department University Of Engineering & Technology Taxila

Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

Engr. M. Fahad Khan

Lecturer Software Engineering Department

University Of Engineering & Technology Taxila

Page 2: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

Distributed Systems Architectures

Page 3: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

Distributed Systems Architectures

Ref:

Chapter 12

Software Engineering

By Ian Sommerville, 7th Edition

Page 4: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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.

Page 5: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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

Page 6: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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.

Page 7: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

Distributed Systems Types

Page 8: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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.

Page 9: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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

Page 10: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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.

Page 11: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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

Page 12: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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

Page 13: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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.

Page 14: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to 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

Page 15: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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.

Page 16: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

Middleware

Page 17: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

Middleware

Page 18: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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.

Page 19: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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.

Page 20: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

Multiprocessor Architectures Based On Checkers

Page 21: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

Multiprocessor in Network

Page 22: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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.

Page 23: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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.

Page 24: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

A Client-Server System

Page 25: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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.

Page 26: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

Layered Application Architecture

Page 27: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

Layered Application Architecture

Page 28: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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.

Page 29: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

Thin and Fat Clients

Page 30: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

Thin and Fat Clients

Page 31: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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.

Page 32: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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.

Page 33: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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.

Page 34: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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.

Page 35: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

A Client-Server ATM System

Account server

Customeraccoun tdatabase

Tele-processing

monitor

AT M

AT M

AT M

AT M

Page 36: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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.

Page 37: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

A 3-Tier C/S Architecture

Page 38: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

An Internet Banking System

Database server

Customeraccoun tdatabase

Web serverClient

Client

Account serviceprov ision

SQL

SQL query

HTT P interaction

Client

Client

Page 39: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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.

Page 40: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

Distributed Object Architecture

Object request broker

o1 o2 o3 o4

o5 o6

S (o1) S (o2) S (o3) S (o4)

S (o5) S (o6)

Page 41: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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.

Page 42: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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.

Page 43: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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.

Page 44: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

Data Mining

Page 45: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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?

Page 46: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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.

Page 47: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other 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.

Page 48: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

Common Object Request Broker Architecture

Page 49: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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.

Page 50: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

CORBA Application Structure

CORBA services

Domain

facilit ies

Horizontal CORBA

facilit ies

Application

objects

Object request broker

Page 51: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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.

Page 52: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

What is CORBA good for?

Page 53: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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.

Page 54: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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.

Page 55: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

ORB-Based Object Communications

o1 o2

S (o1) S (o2)

IDLstub

IDLskeleton

Object Request Broker

Page 56: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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.

Page 57: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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

Page 58: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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.

Page 59: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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.

Page 60: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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.

Page 61: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

Peer-to-Peer Architectures

Page 62: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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.

Page 63: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

Peer-to-Peer

Page 64: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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.

Page 65: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

Decentralised P2P Architecture

n1

n2 n3

n4

n5

n6

n7

n8

n9 n10 n11

n1 2

n1 3

n1 3

Page 66: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

Semi- Centralised P2P Architecture

Discoveryserver

n1

n2

n3

n4

n5

n6

Page 67: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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.

Page 68: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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.

Page 69: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

Web Services

Page 70: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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.

Page 71: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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.

Page 72: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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.

Page 73: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

Automotive System

Page 74: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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.

Page 75: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

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.

Page 76: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects
Page 77: Engr . M.Fahad Khan Lecturer Software Engineering ... · architectures between clients and servers. •Each distributable entity is an object that provides services to other objects

If you have any query please feel free to ask

Phone: +92-51-9047-574

Fax: +92-51-9047-420

Email: [email protected]

University Of Engineering & Technology Taxila Pakistan