middleware

102
Middleware Emmanuel FUCHS

Upload: emmanuel-fuchs

Post on 09-Aug-2015

31 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Middleware

Middleware

Emmanuel FUCHS

Page 2: Middleware

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

Page 3: Middleware

Middleware Concepts

Distributed architecture transparency

High Abstraction level: Architecture models

Service Oriented Architecture

Page 4: Middleware

Middleware Paradigms

Data oriented

Client Server

Components

Page 5: Middleware

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

Page 6: Middleware

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

Page 7: Middleware

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)

Page 8: Middleware

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

Page 9: Middleware

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

Page 10: Middleware

Network and distribution abstraction

Hardware

Operating System

Socket

Middleware

Application

ThreatEvaluation

MissionControl

Flight DataProcessingIdentification

Track FusionCorrelation

Page 11: Middleware

Network abstraction

Hardware

Operating System

Socket

Middleware

Application

IdentificationTrack FusionCorrelation

Hardware

Operating System

Socket

Middleware

Application

ThreatEvaluation

MissionControl

Flight DataProcessing

Page 12: Middleware

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

Page 13: Middleware

Middleware Simplified distributed application

Called

Skeleton

Network

CalledCaller

Caller

Stub

Centralized

Distributed

Page 14: Middleware

Middleware Software bus Increases system genericity

ApplicationService

ApplicationService

ApplicationService

ApplicationService

ApplicationService

ApplicationService

Application Service

Application Service

Middleware Middleware

Page 15: Middleware

Middleware Software bus Increases system genericity

ThreatEvaluation

MissionControl

Flight DataProcessing

IdentificationTrack FusionCorrelation

Middleware Middleware

Page 16: Middleware

Component Distributed Assembly

Page 17: Middleware

Component Distributed Assembly

Threat

EvaluationTrack Fusion

Correlation

MissionControl

Flight DataProcessing

Identification

Page 18: Middleware

Technology independence

System Life cycle = 15 Years

Technology Life cycle = 3 years

ApplicationApplication

MiddlewareMiddleware

Operating SystemHardware

Operating SystemHardware

Page 19: Middleware

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

Page 20: Middleware

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

Page 21: Middleware

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

Page 22: Middleware

Middleware Concepts

Distributed architecture transparency

High Abstraction level: Architecture models

Service Oriented Architecture

Page 23: Middleware

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

Page 24: Middleware

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

Page 25: Middleware

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

Page 26: Middleware

Replication Transparency example

Network

DualNode

SingleNode

Host B

Host A

Page 27: Middleware

Replication Transparency

Network DualNode

SingleNode

Host B

Host A

P1P1

PP

P’P’

Page 28: Middleware

Middleware Concepts

Distributed architecture transparency

High Abstraction level: Architecture models

Service Oriented Architecture

Page 29: Middleware

Abstraction Raising

Hardware

Operating System

Socket

Middleware

Application

+

Abstraction increases

+

Complexity decreases

Abstraction Complexity

0

0

Page 30: Middleware

Abstraction reduces Complexity

Abstraction

Complexity

Hardware

Operating System

Socket

Middleware

Application

Hardware

Operating System

Socket

Application

WithoutMiddleware

WithMiddleware

Page 31: Middleware

Abstraction through modeling

High LevelSystem Abstraction

Physical System

ConceptualModel

ModelInstantiation

Page 32: Middleware

Object Modeling

1

*

1

*

SystemObject Model

SystemPhysical

Architecture

AbstractionRaising

Page 33: Middleware

Abstraction example : Unix Process

Unix process is and abstraction of the computer resources.

PP

Unix Process

Computer

AbstractionRaising

PhysicalModel

PhysicalInstance

Hardware

Unix

Application

Page 34: Middleware

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

Page 35: Middleware

Abstraction example

FIFO (First In First Out) Queue Object

P2P1

Message QueueSender Receiver

Hardware

Unix

IPC

Application

Hardware

Unix

IPC

Application

AbstractionRaising

Page 36: Middleware

Middleware Concepts : Encapsulation Through API

Application

Middleware

API

MSWindows

Linux HP UX Solaris

Socket

ConceptualInterface

Page 37: Middleware

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

Page 38: Middleware

Middleware Concepts

Distributed architecture transparency

High Abstraction level: Architecture models

Service Oriented Architecture

Page 39: Middleware

Service Oriented Architecture (SOA)

P1P1 P2P2

ServiceInterface

ServiceUser

ServiceProvider

Page 40: Middleware

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

Page 41: Middleware

Service Access Transparency (RM-ODP)

Host ACentralized

Distributed

P1P1 P2P2

Network

Host A Host B

Interface

P1P1 P2P2

Page 42: Middleware

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

Page 43: Middleware

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

Page 44: Middleware

Middleware Paradigms

Data oriented

Client Server

Components

Page 45: Middleware

P1P2

Message Queue

Same Node

Sender Receiver

Message Queue Paradigm

Centralized

Page 46: Middleware

P1P2

Message QueueSame Node

Sender Receiver

P2 P1

Node A Node BSender Receiver

Message

Message Queue Location Transparency

Centralized

Distributed

Page 47: Middleware

Message Queue Location Transparency

P2 P1

Node A Node B

Sender Receiver

Message

Network

Host A Host B

Distributed

Page 48: Middleware

Message Queue Replication Transparency

P

Px

Px

Px

Page 49: Middleware

Well known Data oriented middleware

Message Passing Model :

JMS (JAVA Message Service),

Virtual Stream (RogueWave)

Message Passing with inheritance :

Java DTO (Data Transfer Object)

Page 50: Middleware

Middleware Paradigms

Data oriented

Client Server

Components

Page 51: Middleware

Client Server Middleware

Remote procedure call (RPC)

Remote procedure call with inheritance: Distributed Object

Page 52: Middleware

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

Page 53: Middleware

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

Page 54: Middleware

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

Page 55: Middleware

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.

Page 56: Middleware

Well Known Client Server Middleware

Remote Procedure Call

SUN RPC : NFS (Network File System)

SOAP (Service Oriented Application Protocol)

RPC with inheritance

CORBA

RMI

Page 57: Middleware

Middleware Paradigms

Data oriented

Client Server

Components

Page 58: Middleware

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.

Page 59: Middleware

P4P4

P3P3

Software dependencies

Computer

P1P1

Unix Process

P2P2

I2

I3

I4P1 is dependant on P2

P2 is dependant on P3 and P4

Page 60: Middleware

P4P4

P3P3

Express Software dependencies

Computer

P1P1

Unix Process

P2P2

I2

I3

I4

Provides

Uses

P2 provides I2 and uses I3 and I4.

Page 61: Middleware

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

Page 62: Middleware

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

Page 63: Middleware

Hardware Components Paradigm

Component Library

Data Sheet

Page 64: Middleware

UML

Visual Tools

Components Tools chain

XML

Component Descriptor

Page 65: Middleware

Software Component Example : JavaBeans

Data Sheet

Page 66: Middleware

JavaBeans

Data Sheet

Page 67: Middleware

Enterprise JAVA Beans (EJB)

EJB Server

EJB Container

Enterprise Java BeanEJB Client

Page 68: Middleware

Enterprise JAVA Beans (EJB)

EJB Server

EJB Container

Enterprise Java BeanEJB Client

Remote

Home

Page 69: Middleware

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)

Page 70: Middleware

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

Page 71: Middleware

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

Page 72: Middleware

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

Page 73: Middleware

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

Page 74: Middleware

Design Pattern Map

Page 75: Middleware

Proxy Pattern From Gamma*

*

Page 76: Middleware

Object Diagram (from the GoF)

Page 77: Middleware

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

Page 78: Middleware

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

Page 79: Middleware

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

Page 80: Middleware

MDA

OMG initiative

Model Driven Engineering

Separation of concerns

Model Transformation

Page 81: Middleware

MDA model transformation

UMLLogical Model

UMLPhysical Model

UMLTransformation

Platform Independent Model(PIM)

Platform Specific Model (PSM)

Page 82: Middleware

MDA example: Proxy Pattern Transformation

Page 83: Middleware

Proxy model transformation

Subject

Request()

Client

PIMPlatform Independent Model

Platform Specific Model (PSM)

Page 84: Middleware

Proxy model transformation

<<Proxy Service>>

Subject

Request()

Client

PIM With Adornment

Page 85: Middleware

Proxy model transformation

RealSubject

Request()realSubject

Proxy

Request()

Subject

Request()

Client

Generated PSM Platform Specific Model

Page 86: Middleware

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

Page 87: Middleware

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

Page 88: Middleware

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

Page 89: Middleware

THALES experience in Middleware

In Business

In Standardization and research

Page 90: Middleware

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

Page 91: Middleware

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

Page 92: Middleware

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

Page 93: Middleware

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

Page 94: Middleware

Location Transparency

P1P1 P2P2

P1P1 P2P2

Network

Host A

Host A Host B

Centralized

Distributed

Page 95: Middleware

Location Transparency

P1P1 P2P2

P2Proxy

P2Proxy

P1Proxy

P1Proxy

Network

Host A

Host A Host B

Centralized

Distributed

P2P2P1P1

Page 96: Middleware

Location and Access Transparency

P1P1 P2P2

P2Proxy

P2Proxy

P1Proxy

P1Proxy

Network

Host A

Host A Host B

Centralized

Distributed

P2P2P1P1

Page 97: Middleware

Proxy Types

Message Queue Proxy

Data Model Proxy

Object Persistence proxy

Component Proxy

Supervision Proxy

Page 98: Middleware

MDA for Real Time Framework

UMLLogical Model

Proxy

UMLTransformation(Rational Rose)

Stub Skeleton

Page 99: Middleware

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

Page 100: Middleware

Enterprise Framework

EJB

RelationalDataBase

DTO

DTOFactory

Client

RMI

Factory

JMSJMS

Remote Interface

Page 101: Middleware

MDA for Enterprise Information System

UMLLogical Model

DTOFactor

y

UMLTransformation

EJB Relation

DTOEJB

Descriptor

Page 102: Middleware

Thank you for your attention