middleware

Post on 09-Aug-2015

31 Views

Category:

Software

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Middleware

Emmanuel FUCHS

Content

Middleware Benefits

Middleware Principles

Middleware Paradigms

Middleware Design Patterns and Frameworks

Model Driven Architecture (MDA)

Middleware Common Services

THALES experience in Middleware

THALES Real Time Middleware Framework

THALES Non Real Time Middleware Framework

Middleware Concepts

Distributed architecture transparency

High Abstraction level: Architecture models

Service Oriented Architecture

Middleware Paradigms

Data oriented

Client Server

Components

Content

Middleware Benefits

Middleware Principles

Middleware Paradigms

Middleware Design Patterns and Frameworks

Model Driven Architecture (MDA)

Middleware Common Services

THALES experience in Middleware

THALES Real Time Middleware Framework

THALES Non Real Time Middleware Framework

Middleware Benefits

Simplify distributed applications:

Network abstraction

Increase system genericity

Service Oriented Software Bus Abstraction

Provide future growth potential

Component architecture

Technology independence

Likely to change item encapsulation

LAN (Ethernet, FDDI)

Operating System (UNIX/Windows)

APPLICATIONS(Ada, C++, Java)

US

Computer Hardware (HP, SUN, DEC, IBM, PC...)

Computer Manufacturer

Object Oriented Middleware

OOM makes Applications independent from the Computer Manufacturer

OOM provides Applications with:• Services for distributed architecture• High performance real-time and non RT services

• Multi-platform & I/O isolation

• Hosting structure for external applications

Object Oriented Middleware

OOM makes Applications independent from the Computer Manufacturer

OOM provides Applications with:• Services for distributed architecture• High performance real-time and non RT services

• Multi-platform & I/O isolation

• Hosting structure for external applications

Layered architecture

Common Operational Environment (COE)

Middleware Goal

The goal of Middleware is to connect users and resources of a distributed computing system in a transparent, open, and scalable way.

Application Code

Middleware

OperatingSystem

Application Code

Middleware

Network

OperatingSystem

Example of Command And Control System

7789 FRY NHKJGJJK 5554UUU RR45

7789 FRY NHKJGJJK 5554

UUU RR45 7789 F NHKJUUU RR45

7789 FRY NHKJGJJK 5554UUU RR45

7789 FRY NHKJGJJK 5554UUU RR45

7789 FRY NHKJGJJK 5554UUU RR45

7789 FRY NHKJGJJK 5554UUU RR45

Station

7789 FRY NHKJKKJK, k?K ?KL KL?___________________

________________GJJK 5554___________UUU RR45 ___________4455 5666___________4566 4566 ___________

7789 FRY NHKJGJJK 5554UUU RR45

7789 FRY NHKJGJJK 5554

UUU RR45 7789 F NHKJUUU RR45

7789 FRY NHKJGJJK 5554UUU RR45

7789 FRY NHKJGJJK 5554UUU RR45

7789 FRY NHKJGJJK 5554UUU RR45

7789 FRY NHKJGJJK 5554UUU RR45

Station

7789 FRY NHKJKKJK, k?K ?KL KL?___________________

________________GJJK 5554___________UUU RR45 ___________4455 5666___________4566 4566 ___________

7789 FRY NHKJGJJK 5554UUU RR45

7789 FRY NHKJGJJK 5554

UUU RR45 7789 F NHKJUUU RR45

7789 FRY NHKJGJJK 5554UUU RR45

7789 FRY NHKJGJJK 5554UUU RR45

7789 FRY NHKJGJJK 5554UUU RR45

7789 FRY NHKJGJJK 5554UUU RR45

Station

7789 FRY NHKJKKJK, k?K ?KL KL?___________________

________________GJJK 5554___________UUU RR45 ___________4455 5666___________4566 4566 ___________

ThreatEvaluation

MissionControl

Flight DataProcessing

Identification

Track FusionCorrelation

IOP

Network

ApplicationComponents

HumanInterface

Network and distribution abstraction

Hardware

Operating System

Socket

Middleware

Application

ThreatEvaluation

MissionControl

Flight DataProcessingIdentification

Track FusionCorrelation

Network abstraction

Hardware

Operating System

Socket

Middleware

Application

IdentificationTrack FusionCorrelation

Hardware

Operating System

Socket

Middleware

Application

ThreatEvaluation

MissionControl

Flight DataProcessing

Network and distribution abstraction

Hardware

Operating System

Socket

Middleware

Application

IdentificationTrack FusionCorrelation

Hardware

Operating System

Socket

Middleware

Application

Flight DataProcessing

Hardware

Operating System

Socket

Middleware

Application

ThreatEvaluation

MissionControl

Middleware Simplified distributed application

Called

Skeleton

Network

CalledCaller

Caller

Stub

Centralized

Distributed

Middleware Software bus Increases system genericity

ApplicationService

ApplicationService

ApplicationService

ApplicationService

ApplicationService

ApplicationService

Application Service

Application Service

Middleware Middleware

Middleware Software bus Increases system genericity

ThreatEvaluation

MissionControl

Flight DataProcessing

IdentificationTrack FusionCorrelation

Middleware Middleware

Component Distributed Assembly

Component Distributed Assembly

Threat

EvaluationTrack Fusion

Correlation

MissionControl

Flight DataProcessing

Identification

Technology independence

System Life cycle = 15 Years

Technology Life cycle = 3 years

ApplicationApplication

MiddlewareMiddleware

Operating SystemHardware

Operating SystemHardware

System Architecture Flexibility

Middleware intends to improve a distributed system architecture by making it more flexible;

That is adaptable to the changing requirements imposed by the way users want to use system.

key factor to achieve system architecture flexibility are :

At programming level : Service Oriented Computing.

At integration level : Component based development.

Middleware brings system architecture flexibility by providing network distribution transparency

Content

Middleware Benefits

Middleware Principles

Middleware Paradigms

Middleware Design Patterns and Frameworks

Model Driven Architecture (MDA)

Middleware Common Services

THALES experience in Middleware

THALES Real Time Middleware Framework

THALES Non Real Time Middleware Framework

Middleware Concepts

Distributed architecture transparency

Middleware hides system physical architecture.

The distributed system is seen as a unique execution entity.

High Abstraction level: models

Models represent a simplified view of physical architecture

Architecture abstractions are provided through models.

Service Oriented Architecture

Interface encapsulation

Middleware provides transparent access to distributed services

Middleware Concepts

Distributed architecture transparency

High Abstraction level: Architecture models

Service Oriented Architecture

Middleware Concepts: Transparency (OSI RM/ODP*)

Access Transparency : Local And Remote Applications Are Addressed By Identical Operations.

Location Transparency : Applications Are Addressed Without Knowledge Of Their Location.

Replication Transparency : Enables Multiple Instances Of Applications, Without Knowledge Of Their Surroundings.

Failure Transparency : Allows Automatic Recovery Of System Failures, Without Lasting Effects To The

Applications Users.

Migration Transparency : Allows The Movement Of Applications Without Affecting The Operation Of Users Or

Other Applications.

Scaling Transparency : Allows The System And Application Software To Expand In Scale Without Changing The

Application Programs.

OSI RM ODP : OSI Reference Model of Open Distributed Processing

Location Transparency example 1

P1P1 P2P2

P1P1 P2P2

Network

Host A

Host A Host B

Centralized

Distributed

Unix Process Unix Process

Computer

Computer Computer

Unix Process Unix Process

Location Transparency example 2

Host A

Network

Host A Host B

Centralized

Distributed

P1P1

Unix Process Unix Process

Computer

ComputerComputer

P3P3

P2P2 P4P4

Unix Process

Unix Process

P1P1

P2P2

Unix Process

P1P1

P1P1Unix Process

Unix Process

Unix Process

Replication Transparency example

Network

DualNode

SingleNode

Host B

Host A

Replication Transparency

Network DualNode

SingleNode

Host B

Host A

P1P1

PP

P’P’

Middleware Concepts

Distributed architecture transparency

High Abstraction level: Architecture models

Service Oriented Architecture

Abstraction Raising

Hardware

Operating System

Socket

Middleware

Application

+

Abstraction increases

+

Complexity decreases

Abstraction Complexity

0

0

Abstraction reduces Complexity

Abstraction

Complexity

Hardware

Operating System

Socket

Middleware

Application

Hardware

Operating System

Socket

Application

WithoutMiddleware

WithMiddleware

Abstraction through modeling

High LevelSystem Abstraction

Physical System

ConceptualModel

ModelInstantiation

Object Modeling

1

*

1

*

SystemObject Model

SystemPhysical

Architecture

AbstractionRaising

Abstraction example : Unix Process

Unix process is and abstraction of the computer resources.

PP

Unix Process

Computer

AbstractionRaising

PhysicalModel

PhysicalInstance

Hardware

Unix

Application

Abstraction example: Message Queue

Inter Process Communication (IPC) abstraction through Message Queue

P2P1

Message QueueSender Receiver

P1P1 P2P2

Unix Process Unix Process

Computer

AbstractionRaising

ConceptualModel

PhysicalModel

Abstraction example

FIFO (First In First Out) Queue Object

P2P1

Message QueueSender Receiver

Hardware

Unix

IPC

Application

Hardware

Unix

IPC

Application

AbstractionRaising

Middleware Concepts : Encapsulation Through API

Application

Middleware

API

MSWindows

Linux HP UX Solaris

Socket

ConceptualInterface

API Abstraction example

FIFO (First In First Out) Queue Object

P2P1

Message QueueSender Receiver

Queue

Open()Close()Enqueue()Dequeue()

P1 Queue

Open()Close()Enqueue()Dequeue()

P2

Object QueueInterface

Object QueueInterface

APIApplication Programming Interface

Middleware Concepts

Distributed architecture transparency

High Abstraction level: Architecture models

Service Oriented Architecture

Service Oriented Architecture (SOA)

P1P1 P2P2

ServiceInterface

ServiceUser

ServiceProvider

Service Interface

Interfaces allow clients to ignore how things are made and just use that software.

Interfaces encapsulates the implementation and inner workings of server,

P1P1 P2P2

ServiceInterface

Interface

InterfaceModel

ServiceImplementation

Service Access Transparency (RM-ODP)

Host ACentralized

Distributed

P1P1 P2P2

Network

Host A Host B

Interface

P1P1 P2P2

Content

Middleware Benefits

Middleware Principles

Middleware Paradigms

Middleware Design Patterns and Frameworks

Model Driven Architecture (MDA)

Middleware Common Services

THALES experience in Middleware

THALES Real Time Middleware Framework

THALES Non Real Time Middleware Framework

Middleware Paradigms

Data oriented :

Message Passing Model

Message Passing with inheritance : Object Data Model

Client Sever

Remote Procedure Call

RPC with inheritance : Object Service model

Component

Application Server

Distributed Component

Middleware Paradigms

Data oriented

Client Server

Components

P1P2

Message Queue

Same Node

Sender Receiver

Message Queue Paradigm

Centralized

P1P2

Message QueueSame Node

Sender Receiver

P2 P1

Node A Node BSender Receiver

Message

Message Queue Location Transparency

Centralized

Distributed

Message Queue Location Transparency

P2 P1

Node A Node B

Sender Receiver

Message

Network

Host A Host B

Distributed

Message Queue Replication Transparency

P

Px

Px

Px

Well known Data oriented middleware

Message Passing Model :

JMS (JAVA Message Service),

Virtual Stream (RogueWave)

Message Passing with inheritance :

Java DTO (Data Transfer Object)

Middleware Paradigms

Data oriented

Client Server

Components

Client Server Middleware

Remote procedure call (RPC)

Remote procedure call with inheritance: Distributed Object

Remote Procedure Call (RPC) paradigm

RPC allowed programmer to execute remote function using the same semantics as local functions calls.

Local Machine (Client)

s = sum(1,2);

print(s);

Remote Machine (Server)

int sum(int a,int b) { return a + b;}

1,2

3

Remote Procedure Call (RPC) paradigm

Main

Send

Receive

Unix process

Client

Marshalling

Unmarshalling

Library

Unix process

Server

=

S=sum(A,B)

A,B,+

S

Main

Library

Unix process

Push

Pop

Push APush B

Push S

Network

RPC Distributed System

Operations

DATAand

Operations Implementation

Operations

DATAand

Operations Implementation

Operations

DATAand

Operations Implementation

Operations

DATAand

Operations Implementation

Operations

DATAand

Operations Implementation

Operations

DATAand

Operations Implementation

Operations

DATAand

Operations Implementation

Operations

DATAand

Operations Implementation

Operations

DATAand

Operations Implementation

Operations

DATAand

Operations Implementation

Operations

DATAand

Operations Implementation

Operations

DATAand

Operations Implementation

ServersUnix Process

=

Main

Unix process

MainLibrary

Library

Client Servers

Library

Library

Network

Remote Procedure Call (RPC) with inheritance

RMI

RMI goal is to allow programmers to develop distributed Java programs with the same syntax and semantics used for non-distributed programs.

RMI definition of a remote service is coded using a Java interface.

The implementation of the remote service is coded in a class.

Well Known Client Server Middleware

Remote Procedure Call

SUN RPC : NFS (Network File System)

SOAP (Service Oriented Application Protocol)

RPC with inheritance

CORBA

RMI

Middleware Paradigms

Data oriented

Client Server

Components

Components

Component-based software architectures enable to create flexible software systems by building them out of reusable components conforming to a "plug and play architecture".

Component based architecture allows to divide system into fully de-coupled components that can be plugged together.

Component based architecture enable to develop components that can be reused in different applications or that can be replaced to change the functionality of existing applications.

In order to allow interoperability between components within a distributed system, Component based architecture separates the implementation of a component from the interface.

P4P4

P3P3

Software dependencies

Computer

P1P1

Unix Process

P2P2

I2

I3

I4P1 is dependant on P2

P2 is dependant on P3 and P4

P4P4

P3P3

Express Software dependencies

Computer

P1P1

Unix Process

P2P2

I2

I3

I4

Provides

Uses

P2 provides I2 and uses I3 and I4.

P4P4

P3P3

Component Model

P1P1

I2

I3

I4

ProvidesUses

P1 uses I2P2 provides I2 and uses I3 and I4.P3 provides I3P4 provides I4

P2P2

Express Software dependencies

Component Model provides notation to express software dependencies provided services (XML).

Dependencies against other component and operating system as well.

Dependencies description is used to plug and play the software component.

P2P2

I2 I3

I4

Provides UsesXML

Component Descriptor

Hardware Components Paradigm

Component Library

Data Sheet

UML

Visual Tools

Components Tools chain

XML

Component Descriptor

Software Component Example : JavaBeans

Data Sheet

JavaBeans

Data Sheet

Enterprise JAVA Beans (EJB)

EJB Server

EJB Container

Enterprise Java BeanEJB Client

Enterprise JAVA Beans (EJB)

EJB Server

EJB Container

Enterprise Java BeanEJB Client

Remote

Home

Well Known Components Model

Well know local component model:

Eclipse

Firefox Mozilla : Xpcom (Cross Platform Component Object Model)

Open Services Gateway Initiative (OSGi)

Sun JavaBeans

Enterprise Java Beans (EJB)

Well know distributed component model:

DCOM, .NET

CORBA Component Model (CCM)

Content

Middleware Benefits

Middleware Principles

Middleware Paradigms

Middleware Design Patterns and Frameworks

Model Driven Architecture (MDA)

Middleware Common Services

THALES experience in Middleware

THALES Real Time Middleware Framework

THALES Non Real Time Middleware Framework

Middleware Pattern and Middleware frameworks

Design patterns : Generic abstractions that occur across applications are represented as design patterns that show abstract and concrete objects and interactions.

Middleware frameworks: Collections of distributed Design Pattern Implementation that can be adapted and extended to support distributed application communication and information exchange

Benefits of Design Patterns

enable large-scale reuse of software architecture

explicitly capture expert knowledge and make it more widely available

help improve developer communication

help ease the transition to OO - technology

Catalogue based human to human communication language

GAMMA Design Pattern Catalogue

Creational Patterns

Abstract Factory

Builder

Factory Method

Prototype

Singleton

Structural Patterns

Adapter

Bridge

Composite

Decorator

Facade

Flyweight

Proxy

Behavioral Patterns

Chain of Responsibility

Command

Interpreter

Memento

Iterator

Mediator

Observer

State

Strategy

Template Method

Visitor

Design Pattern Map

Proxy Pattern From Gamma*

*

Object Diagram (from the GoF)

EJB Design Pattern: Marinescu Catalogue

EJB Layer Architectural:

Session Façade

Message Façade

EJB Command

Data Transfer Object Factory

Generic Attribute Access

Business Interface

Inter-tier Data Transfer Data Transfer Object:

Domain DTO

Custom DTO

Data Transfer Hashmap

Data Transfer Rowset

Transaction and Persistence:

Version Number

JDBC for reading

Data Access Command Bean/Data Access Object

Dual Persistent Entity Bean

Client-side EJB Interaction:

EJB Home Factory

Business Delegate

Data Transfer Object (DTO) or value Object

Purpose:

Client exchange bulk data with the server without making multiple fine-grained network calls

DTO Pattern

Create plain java classes called Value Objects or DTOs, which contain and encapsulate bulk data in one network transportable bundle.

A value object is a plain serializable Java class that represents a snapshot of some server side data

Content

Middleware Benefits

Middleware Principles

Middleware Paradigms

Middleware Design Patterns and Frameworks

Model Driven Architecture (MDA)

Middleware Common Services

THALES experience in Middleware

THALES Real Time Middleware Framework

THALES Non Real Time Middleware Framework

MDA

OMG initiative

Model Driven Engineering

Separation of concerns

Model Transformation

MDA model transformation

UMLLogical Model

UMLPhysical Model

UMLTransformation

Platform Independent Model(PIM)

Platform Specific Model (PSM)

MDA example: Proxy Pattern Transformation

Proxy model transformation

Subject

Request()

Client

PIMPlatform Independent Model

Platform Specific Model (PSM)

Proxy model transformation

<<Proxy Service>>

Subject

Request()

Client

PIM With Adornment

Proxy model transformation

RealSubject

Request()realSubject

Proxy

Request()

Subject

Request()

Client

Generated PSM Platform Specific Model

Content

Middleware Benefits

Middleware Principles

Middleware Paradigms

Middleware Design Patterns and Frameworks

Model Driven Architecture (MDA)

Middleware Common Services

THALES experience in Middleware

THALES Real Time Middleware Framework

THALES Non Real Time Middleware Framework

Middleware Common Services

Naming

Lightweight Directory Access Protocol (LDAP)

Java Naming and Directory Interface (JNDI)

CORBA Naming

Time

NTP and External Clock Injection

Supervision

Operational supervision

Technical Supervision

Content

Middleware Benefits

Middleware Principles

Middleware Paradigms

Middleware Design Patterns and Frameworks

Model Driven Architecture (MDA)

Middleware Common Services

THALES experience in Middleware

THALES Real Time Middleware Framework

THALES Non Real Time Middleware Framework

THALES experience in Middleware

In Business

In Standardization and research

Thales experience In middleware

Control and Command systems

Complex System

Large Distributed software system

Domains of experience

Air Defense System

Naval Combat System

Underwater Combat System

Civil Information system

ATC system

THALES Middleware involvement

THALES is an active member of the OMG (Object Management Group)

THALES is member of the ObjectWeb consortium

THALES is the leader of Modelware European Research program

THALES is member of the Eclipse consortium

Content

Middleware Benefits

Middleware Principles

Middleware Paradigms

Middleware Design Patterns and Frameworks

Model Driven Architecture (MDA)

Middleware Common Services

THALES experience in Middleware

THALES Real Time Middleware Framework

THALES Non Real Time Middleware Framework

Middleware network abstraction styles

Thanks to its sound architecture THALES real time middleware framework support all the Middleware styles.

Message oriented

Service Oriented

RPC oriented

Object Oriented

Location Transparency

P1P1 P2P2

P1P1 P2P2

Network

Host A

Host A Host B

Centralized

Distributed

Location Transparency

P1P1 P2P2

P2Proxy

P2Proxy

P1Proxy

P1Proxy

Network

Host A

Host A Host B

Centralized

Distributed

P2P2P1P1

Location and Access Transparency

P1P1 P2P2

P2Proxy

P2Proxy

P1Proxy

P1Proxy

Network

Host A

Host A Host B

Centralized

Distributed

P2P2P1P1

Proxy Types

Message Queue Proxy

Data Model Proxy

Object Persistence proxy

Component Proxy

Supervision Proxy

MDA for Real Time Framework

UMLLogical Model

Proxy

UMLTransformation(Rational Rose)

Stub Skeleton

Content

Middleware Benefits

Middleware Principles

Middleware Paradigms

Middleware Design Patterns and Frameworks

Model Driven Architecture (MDA)

Middleware Common Services

THALES experience in Middleware

THALES Real Time Middleware Framework

THALES Non Real Time Middleware Framework

Enterprise Framework

EJB

RelationalDataBase

DTO

DTOFactory

Client

RMI

Factory

JMSJMS

Remote Interface

MDA for Enterprise Information System

UMLLogical Model

DTOFactor

y

UMLTransformation

EJB Relation

DTOEJB

Descriptor

Thank you for your attention

top related