23
CORBA 1 Distributed Software Systems Any software system can be physically distributed By distributed coupling we get the following: Improved performance & fault tolerance Localized computation at point of use Resource availability is localized Maximum concurrency

CORBA1 Distributed Software Systems Any software system can be physically distributed By distributed coupling we get the following: Improved performance

Embed Size (px)

Citation preview

Page 1: CORBA1 Distributed Software Systems Any software system can be physically distributed By distributed coupling we get the following:  Improved performance

CORBA 1

Distributed Software Systems Any software system can be physically

distributed By distributed coupling we get the

following: Improved performance & fault tolerance Localized computation at point of use Resource availability is localized Maximum concurrency

Page 2: CORBA1 Distributed Software Systems Any software system can be physically distributed By distributed coupling we get the following:  Improved performance

CORBA 2

Distributed Software Systems Breaking a system into distributed

specialized components forces you to have: High cohesion within components Loose coupling between them

Distribution gives specialization DBMS on a hardware optimized machine Presentation components not tied to heavy

load computation (DBMS) Business logic can be treated as a separate

set of servicesTiers!!

Page 3: CORBA1 Distributed Software Systems Any software system can be physically distributed By distributed coupling we get the following:  Improved performance

CORBA 3

Distributed Components Components are designed to offer a set of

services These services form the components

interface Other components use this interface

independent of the location of the component (local or remote)

Page 4: CORBA1 Distributed Software Systems Any software system can be physically distributed By distributed coupling we get the following:  Improved performance

CORBA 4

Evolution of Distribution Distributed systems arise naturally from the

structure and process of a business Geographic separation Legacy integration Merger, acquisition

The supporting technology has matured Faster networks Higher level protocols & APIs Use of Internet and Intranet Client/Server

Page 5: CORBA1 Distributed Software Systems Any software system can be physically distributed By distributed coupling we get the following:  Improved performance

CORBA 5

Evolution of Distribution Enterprise solutions are needed to support

new management structures Technology was initially used to automate

manual processes The redesign of company structure and

work practice is aimed at adding value Legacy backbone must be used (cost) so

we need system that can integrate and migrate

Hence the growth of distributed computing

Page 6: CORBA1 Distributed Software Systems Any software system can be physically distributed By distributed coupling we get the following:  Improved performance

CORBA 6

Consequences of Distribution Operations execution is no longer trivial

Failure modes more complex than local cases Communication can dominate computation

All activities are intrinsically concurrent The ratio of communication to computation

is a major factor that must be considered in the architecture

The ANSA (Advanced Network System Architecture) lists some inappropriate assumption for distributed systems

Page 7: CORBA1 Distributed Software Systems Any software system can be physically distributed By distributed coupling we get the following:  Improved performance

CORBA 7

ANSA Inappropriate Assumptions Global Shared Memory

Message passing, distributed memory Sequential Execution

Concurrency is intrinsic Total Failure

Components can continue to function Synchronous Interaction

Network latency may force use of synchronous calls Locality of Interaction

Interaction local or remote, with increased scope for failure

Fixed Location Components may migrate

Global Consistency

Page 8: CORBA1 Distributed Software Systems Any software system can be physically distributed By distributed coupling we get the following:  Improved performance

CORBA 8

Principles of Distribution Previous research has identified principles and

architectures (ANSA, ISO) Reference models are frameworks for

development OSI 7 layer model ODP viewpoint and projections

FTP at Application, RPC at Session, TCP at Transport etc

Open Distributed Processing (ODP) is a reference model that defines concepts for distributed development

Page 9: CORBA1 Distributed Software Systems Any software system can be physically distributed By distributed coupling we get the following:  Improved performance

CORBA 9

Transparency Mechanisms We need transparency to reduce development

complexity This can simplify both the job of the architect and the

implementer To achieve transparency support is required at

every stage Infrastructure and Architecture Design and Implementation

The aim of transparency is to mask districted phenomenon (systems are never completely seamless)

Page 10: CORBA1 Distributed Software Systems Any software system can be physically distributed By distributed coupling we get the following:  Improved performance

CORBA 10

Transparency Mechanisms Access

Access to local and remotes services must be the same Location

No knowledge of where a service resides is needed Replication

For performance service replication may be necessary Failure

Faults don’t propagate through the entire system

Page 11: CORBA1 Distributed Software Systems Any software system can be physically distributed By distributed coupling we get the following:  Improved performance

CORBA 11

Transparency Mechanisms Migration

Movement of services does not impact applications

Scalability Performance must scale with size

Transaction Services can be shared without interference

from other client No partial states. A transaction is an atomic

unit of work

Page 12: CORBA1 Distributed Software Systems Any software system can be physically distributed By distributed coupling we get the following:  Improved performance

CORBA 12

Programming Distributed Systems Different abstraction levels available for

programming Lower level: More control but more complexity Higher Level: Closer to problem domain but

potentially inflexible and/or propriety

Application

….

Transport

….

Physical

Application

….

Transport

….

Physical

Client Server

Page 13: CORBA1 Distributed Software Systems Any software system can be physically distributed By distributed coupling we get the following:  Improved performance

CORBA 13

Programming Distributed Systems Inter-Processor communication happens

at the physical layer Ideal programming layer is the application

layer Programmers deal with the abstraction of

business objects and moves down to implement sockets etc

This level (layer 3,4) is not suitable for the high level abstractions and introduces too much complexity for developing the entire application here

Page 14: CORBA1 Distributed Software Systems Any software system can be physically distributed By distributed coupling we get the following:  Improved performance

CORBA 14

Programming Distributed Systems In theory the lower layers should be

encapsulated In practice this is not achievable so

specialist programmers for the relevant layers are required

This leads to the requirement for much integration testing

The distributed computing model tries to provide a simple and uniform model for communication to directly address the needs of the developers at each layer

Page 15: CORBA1 Distributed Software Systems Any software system can be physically distributed By distributed coupling we get the following:  Improved performance

CORBA 15

Distribution Mechanisms Middleware is the software used to enable

distributed computing It is a set of common business-unaware

services and allow components to interact over a network

Often referred to as the “plumbing” Middleware should make networks

irrelevant to applications and end users Solely a technology product: transaction

managers, message querying systems etc

Page 16: CORBA1 Distributed Software Systems Any software system can be physically distributed By distributed coupling we get the following:  Improved performance

CORBA 16

RPCs Extends the concept of a basic function

call Layered onto of an underlying transport

system such as TCP/IP Convenient methods for implementing

client/server applications Used for message passing Powerful feature of RPC is transparency Foundation for full enterprise and scalable

distributed systems

Page 17: CORBA1 Distributed Software Systems Any software system can be physically distributed By distributed coupling we get the following:  Improved performance

CORBA 17

Distributed Object Systems Object technology can be applied

Tactically Strategically

Objects are encapsulated entities that interact by passing messages through defined interfaces Intrinsic properties makes objects ideal for

distribution Refinements and clarifications still tend to be

needed

Page 18: CORBA1 Distributed Software Systems Any software system can be physically distributed By distributed coupling we get the following:  Improved performance

CORBA 18

Distributed Object Systems Encapsulation makes object suitable for

distribution The separation of interface and

implementation means interaction can only take place in ways determined by the developer

With distributed systems there is also no access to the actual representation

Page 19: CORBA1 Distributed Software Systems Any software system can be physically distributed By distributed coupling we get the following:  Improved performance

CORBA 19

Distributed Object Systems A good OO design allows for the

separation of visual, business and technical components

Distribution simply allows these components to be placed on the most suitable hardware available without having to alter the application (in theory)

Page 20: CORBA1 Distributed Software Systems Any software system can be physically distributed By distributed coupling we get the following:  Improved performance

CORBA 20

Distributed Object Technologies Different standards available

OMG CORBA (from previous work with disparate systems)

Microsoft DCOM (network COM) Java RMI (homogenous components with

JVMs) Each technology has its own origins,

strengths and area of application Distributed object model offers finer

granularity than RPC model

Page 21: CORBA1 Distributed Software Systems Any software system can be physically distributed By distributed coupling we get the following:  Improved performance

CORBA 21

Distributed Object Technologies The tasks of the selected middleware

technology are: Locate available objects Route messages independent of network,

operating systems and languages Transaction handling across objects

Therefore different standards have developed to achieve these tasks

Page 22: CORBA1 Distributed Software Systems Any software system can be physically distributed By distributed coupling we get the following:  Improved performance

CORBA 22

Classes of Distributed Support Services Distributed presentation services Distributed processing services Remote data access service Remote file access service Distributed data management Distributed object management services

Page 23: CORBA1 Distributed Software Systems Any software system can be physically distributed By distributed coupling we get the following:  Improved performance

CORBA 23

Summary Distribution is intrinsic in many systems

and needs to be exploited References models provide guidelines and

common concepts at every level Flexibility and open standards are required

to build seamless heterogeneous systems Distributed objects are the obvious

evolution of OO systems