middleware
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