component based distributed system development
DESCRIPTION
TRANSCRIPT
SC2 - Software Core for Computer-based systems
Component based development
SC2 - Software Core for Computer-based systems
2Component based development
� Objective
� Large distributed systems
� Tools chain
� Large distributed systems Architecture
� Business Model
� Component Execution Model
� CCM
� Object Deployment
� Container Concepts
SC2 - Software Core for Computer-based systems
3Objective
SC2 - Software Core for Computer-based systems
4Objective
� Large distributed systems development cost reduction implies:
� Programming by assembly (manufacturing) rather than development (engineering)
� Reduced skills requirements
� Focus expertise on domain problems
� Improving software quality
SC2 - Software Core for Computer-based systems
5Component based development
� Objective
� Large distributed systems
� Tools chain
� Large distributed systems Architecture
� Business Model
� Component Execution Model
� CCM
� Object Deployment
� Container Concepts
SC2 - Software Core for Computer-based systems
6Component Based development for complex systems
� Develop large software systems like :
� Hardware
� Car
� Manufacturing rather than engineering
� Product line
� Assembly line
� Tools chain
DevelopmentPhase
ProductionPhase
timeEngineering
Product line
Reuse
SC2 - Software Core for Computer-based systems
7Complex system : ATC centre
Flight PlanProcessingFlight Plan
Processing
SupervisoryControlSupervisory
Control
SimulatorSimulator
RecordingReplayRecording
Replay
controllerWorkingPosition
controllerWorkingPosition
Radar Data ProcessingRadar Data
Processing
Radar FrontProcessingRadar Front
Processing
Dual LANFDDI
AFTN/CIDINATFM
ADJACENTFIR'S/TWR'S
MET Centres
Voice control and
communicationsVoice control
and communications
• Intercom• Priority• Public• RADIO A/G
controllerWorkingPosition
controllerWorkingPosition
~ 50
RADAR
SC2 - Software Core for Computer-based systems
8Complex system : Combat Naval System
Radar detections
Tracks display
Detections processed into tracks by the CMS
SC2 - Software Core for Computer-based systems
9Component based development
� Objective
� Large distributed systems
� Tools chain
� Large distributed systems Architecture
� Business Model
� Component Execution Model
� CCM
� Object Deployment
� Container Concepts
SC2 - Software Core for Computer-based systems
10
UML
Visual Tools
Tool chain : Computer Aided System Design
SC2 - Software Core for Computer-based systems
11Hardware Components Analogy
Component Library
Data Sheet
SC2 - Software Core for Computer-based systems
12Domain Components
Component Library
Data Sheet
CWP
RDP
FDP
CP
FPM
TP
RADAR
ADS-B
AGDC
ACR
ABS
SC2 - Software Core for Computer-based systems
13Computer aided design for the whole process
Integration
Validation
Operation
Development
Design
SC2 - Software Core for Computer-based systems
14From Design, Deployment, Installation, to Validation
IBM Compatible
IBM Compatible
Mac SE/Classic
Sun SPARC
Monitor
DECstation
IBM RS/6000
System EngineerArchitect
Visual design ToolSimulation Tool
System Integrator
Visual Deployment ToolValidation Tool
Design Model Deployment Model
SC2 - Software Core for Computer-based systems
15System Design Visual Tools
System Engineer,Architect
SC2 - Software Core for Computer-based systems
16System Design Visual Tools
System Engineer,Architect
Design Model
SC2 - Software Core for Computer-based systems
17System Design Visual Tools
IDL
System Engineer,Architect
Design Model
SC2 - Software Core for Computer-based systems
18System Design Visual Tools
IDL XML
System Engineer,Architect
Design Model
SC2 - Software Core for Computer-based systems
19System Design Visual Tools
IDL XML
System Engineer,Architect
Design Model
SC2 - Software Core for Computer-based systems
20System Design Visual Tools
IDL XML
System Engineer,Architect
Design Model
SC2 - Software Core for Computer-based systems
21System Design Visual Tools
IDL XML
System Engineer,Architect
MOF/XMI
Design Model
SC2 - Software Core for Computer-based systems
22System Design Visual Tools
IDL XML
System Engineer,Architect
MOF/XMI
Simulation Tools
Design Model
SC2 - Software Core for Computer-based systems
23System Design Visual Tools
IDL XML
System Engineer,Architect
MOF/XMI
Simulation Tools
Design Model
SC2 - Software Core for Computer-based systems
24System Design Visual Tools
IDL XML
System Engineer,Architect
Validationpatterns
MOF/XMI
Simulation Tools
Design Model
SC2 - Software Core for Computer-based systems
25System Deployment and Integration
Container
IBM Compatible
IBM Compatible
Mac SE/Classic
Sun SPARC
Monitor
DECstation
IBM RS/6000
System Integrator
COTS
zipfile zipfile
SC2 - Software Core for Computer-based systems
26System Deployment and Integration
Container
IBM Compatible
IBM Compatible
Mac SE/Classic
Sun SPARC
Monitor
DECstation
IBM RS/6000
System Integrator
COTS
zipfile
XMI
zipfile
SC2 - Software Core for Computer-based systems
27System Deployment and Integration
IDL
Container
IBM Compatible
IBM Compatible
Mac SE/Classic
Sun SPARC
Monitor
DECstation
IBM RS/6000
System Integrator
COTS
zipfile
XMI
zipfile
SC2 - Software Core for Computer-based systems
28System Deployment and Integration
IDL
Container
XML
IBM Compatible
IBM Compatible
Mac SE/Classic
Sun SPARC
Monitor
DECstation
IBM RS/6000
System Integrator
COTS
zipfile
XMI
zipfile
SC2 - Software Core for Computer-based systems
29System Deployment and Integration
IDL
Container
XML
IBM Compatible
IBM Compatible
Mac SE/Classic
Sun SPARC
Monitor
DECstation
IBM RS/6000
System Integrator
COTS
zipfile
XMI
zipfile
SC2 - Software Core for Computer-based systems
30System Deployment and Integration
IDL
Container
XML
IBM Compatible
IBM Compatible
Mac SE/Classic
Sun SPARC
Monitor
DECstation
IBM RS/6000
System Integrator
COTS
zipfile
XMI
zipfile
SC2 - Software Core for Computer-based systems
31System Deployment and Integration
IDL
Container
XML
IBM Compatible
IBM Compatible
Mac SE/Classic
Sun SPARC
Monitor
DECstation
IBM RS/6000
System Integrator
COTS
zipfile
Validationpatterns
XMI
zipfile
SC2 - Software Core for Computer-based systems
32System Deployment and Integration
IDL
Container
XML
IBM Compatible
IBM Compatible
Mac SE/Classic
Sun SPARC
Monitor
DECstation
IBM RS/6000
System Integrator
COTS
zipfile
Validationpatterns
XMI
zipfile
SC2 - Software Core for Computer-based systems
33Component based development
� Objective
� Large distributed systems
� Tools chain
� Large distributed systems Architecture
� Business Model
� Component Execution Model
� CCM
� Object Deployment
� Container Concepts
SC2 - Software Core for Computer-based systems
34
FlightManagement
Surveillance
ODSSup
RecordingMouse Click
System Development
SC2 - Software Core for Computer-based systems
35
FlightManagement
Surveillance
ODSSup
RecordingMouse Click
System Development
SC2 - Software Core for Computer-based systems
36
FlightManagement
Surveillance
ODSSup
Recording
Mouse ClickSystem Development
SC2 - Software Core for Computer-based systems
37
FlightManagement
ODSSup
Recording Surveillance
Mouse ClickSystem Development
SC2 - Software Core for Computer-based systems
38
FlightManagement
Sup
Recording Surveillance
ODS
Mouse ClickSystem Development
SC2 - Software Core for Computer-based systems
39
FlightManagement
Recording Surveillance
ODSSup
Mouse ClickSystem Development
SC2 - Software Core for Computer-based systems
40System Architecture
� A business model
� Domain engineering
� Domain services specification
No assumption on Execution Platform(separation of concerns)
SC2 - Software Core for Computer-based systems
41
� A component execution model
(seamless integration)
� Components interconnection
� CORBA component model (CCM)
� Container
System Architecture
� A business model
� Domain engineering
� Domain services specification
No assumption on Execution Platform(separation of concerns)
SC2 - Software Core for Computer-based systems
42Component based development
� Objective
� Large distributed systems
� Tools chain
� Large distributed systems Architecture
� Business Model
� Component Execution Model
� CCM
� Object Deployment
� Container Concepts
SC2 - Software Core for Computer-based systems
43A Domain Service = A CORBA Object
� A service (CORBA Object) is defined by :
� An Interface Interface
� A protocol Behavior
� Described in UML
Without any assumptions on :
Execution Platform(separation of concerns)
SC2 - Software Core for Computer-based systems
44No assumption on deployment
Implementation Interface
A driver doesn't care of engine's internal working.He only knows the interface
SC2 - Software Core for Computer-based systems
45No assumption on deployment
Implementation Interface
A driver doesn't care of engine's internal working.He only knows the interface
SC2 - Software Core for Computer-based systems
46No assumption on deployment
Implementation Interface
A driver doesn't care of engine's internal working.He only knows the interface
SC2 - Software Core for Computer-based systems
47No assumption on deployment
Implementation Interface
A driver doesn't care of engine's internal working.He only knows the interface
SC2 - Software Core for Computer-based systems
48No assumption on deployment
Implementation Interface
A driver doesn't care of engine's internal working.He only knows the interface
SC2 - Software Core for Computer-based systems
49No assumption on deployment
Implementation Interface
A driver doesn't care of engine's internal working.He only knows the interface
SC2 - Software Core for Computer-based systems
50Component based development
� Objective
� Large distributed systems
� Tools chain
� Large distributed systems Architecture
� Business Model
� Component Execution Model
� CCM
� Object Deployment
� Container Concepts
SC2 - Software Core for Computer-based systems
51What We May Have :
Service DService C
Service A
Service B
Service E
SC2 - Software Core for Computer-based systems
52Spaghetti PlateSyndrome
SC2 - Software Core for Computer-based systems
53Spaghetti PlateSyndrome
NamedPipe
SC2 - Software Core for Computer-based systems
54Spaghetti PlateSyndrome
ReliableMulticast
SC2 - Software Core for Computer-based systems
55Spaghetti PlateSyndrome
Spaghetti Plate
SC2 - Software Core for Computer-based systems
56Spaghetti PlateSyndrome
Spaghetti Plate
System Architect
SC2 - Software Core for Computer-based systems
57Spaghetti PlateSyndrome
Spaghetti Plate
System ArchitectSystem Integrator
SC2 - Software Core for Computer-based systems
58
FlightManagement
Surveillance
ODSSup
Recording
Recording Surveillance
ODSSup
What We Want !
Seamless Integration
SC2 - Software Core for Computer-based systems
59Container Model
Technical Middleware (Framework)
SC2 - Software Core for Computer-based systems
60Container Model
Technical Middleware (Framework)
SC2 - Software Core for Computer-based systems
61Container Model
Technical Middleware (Framework)
ObjectIDL
SC2 - Software Core for Computer-based systems
62Container Model
Technical Middleware (Framework)
Container
ObjectIDL
SC2 - Software Core for Computer-based systems
63Container Model
Technical Middleware (Framework)
Container
Automaticallygenerated
Containerfrom Object IDL
ObjectIDL
SC2 - Software Core for Computer-based systems
64Container Model
Technical Middleware (Framework)
ContainerContainer
Automaticallygenerated
Containerfrom Object IDL
ObjectIDL
SC2 - Software Core for Computer-based systems
65Container Model
Technical Middleware (Framework)
ContainerContainerContainer
Automaticallygenerated
Containerfrom Object IDL
ObjectIDL
SC2 - Software Core for Computer-based systems
66Container Model
Technical Middleware (Framework)
ContainerContainerContainer
Automaticallygenerated
Containerfrom Object IDL
ObjectIDL
Generated Typed Local Interfaces
SC2 - Software Core for Computer-based systems
67Container Model
Technical Middleware (Framework)
ContainerContainerContainerContainer
Automaticallygenerated
Containerfrom Object IDL
ObjectIDL
Generated Typed Local Interfaces
SC2 - Software Core for Computer-based systems
68Container Model
Technical Middleware (Framework)
ContainerContainerContainerContainerContainer
Automaticallygenerated
Containerfrom Object IDL
ObjectIDL
Generated Typed Local Interfaces
SC2 - Software Core for Computer-based systems
69Container Model
Technical Middleware (Framework)
ContainerContainerContainerContainerContainer
Automaticallygenerated
Containerfrom Object IDL
ObjectIDL
Generated Typed Local Interfaces
Spaghetti Plate
SC2 - Software Core for Computer-based systems
70Component based development
� Objective
� Large distributed systems
� Tools chain
� Large distributed systems Architecture
� Business Model
� Component Execution Model
� CCM
� Object Deployment
� Container Concepts
SC2 - Software Core for Computer-based systems
71Component and CORBA object
A component is a deployable objet
Client Object Object
Object
Object
Provides
uses
As specified
SC2 - Software Core for Computer-based systems
72Component and object
A component is a deployable objet
Client Object ?
?
?
Provides
uses
As deployed
SC2 - Software Core for Computer-based systems
73Object Interface (IDL CORBA 2)
interfaces..
UsualCORBA object
SC2 - Software Core for Computer-based systems
74Component Interface (IDL CORBA 3)
Provides {interfaces..
}
UsualCORBA object
SC2 - Software Core for Computer-based systems
75
Provides {interfaces..
}
uses {interfaces..
}
Component Interface (IDL CORBA 3)
Connection toa Usual
CORBA Object
UsualCORBA object
SC2 - Software Core for Computer-based systems
76
Client Server
Server
Server
Provides Uses
Object
Object Composition
IDL
IDL CORBA 2IDL
IDL CORBA 2
IDL
IDL CORBA 2
SC2 - Software Core for Computer-based systems
77
IDL
IDL CORBA 2IDL
IDL CORBA 2
IDL
IDL CORBA 2
IDLIDL CORBA 3
Client Server
Server
Server
Provides Uses
Object
Object Composition
SC2 - Software Core for Computer-based systems
78
Client Server
Server
Server
Provides Uses
Object
Object CompositionIDL
Provides {interfaces..
}
uses {interfaces..
}
IDL CORBA 3
SC2 - Software Core for Computer-based systems
79CORBA Component Model (CCM)
� Extension to IDL (IDL2 Meta Type)
� «packaging» language
� Offered functionality (Server role)interfaces providedevents emitted
� Configuration attributes
� Define a component in terms of...
� Dependencies (Client role)distant interfaces requiredevents consumed
CCM IDL “IDL3”
SC2 - Software Core for Computer-based systems
80CCM : Code Generation
Compiler
Idl2
� An IDL2 interface
� Defining interface between component and container
� Middleware, Framework independent
Container
� Container code
� Provides the glue between application and infrastructure
“ IDL3” is parsed, producing :IDL3
SC2 - Software Core for Computer-based systems
81CORBA Component Model IDL
IDL3 provides :• logical architecture
• logical connectivity
• dependency visibility
SC2 - Software Core for Computer-based systems
82CORBA Component Model (CCM)
� Container handles,
� Component interconnection
� Event issues
� Config / packaging issues
� Other functions
� Local IDL (local service ie no IOR)
� Component is isolated from the underlying architecture (framework).
� This is a standard & formal way of creating wrappers.
CCM Container
SC2 - Software Core for Computer-based systems
83Component based development
� Objective
� Large distributed systems
� Tools chain
� Large distributed systems Architecture
� Business Model
� Component Execution Model
� CCM
� Object Deployment
� Container Concepts
SC2 - Software Core for Computer-based systems
84Component based development
� Container Concepts
� Component container Interaction
� Object Deployment
� Separation of concerns
� Container Technical Framework
� Flexible Container Code Generation
SC2 - Software Core for Computer-based systems
85Component/Container interaction
Component interacts with container
SC2 - Software Core for Computer-based systems
86Component/Container interaction
Container interacts with other container
SC2 - Software Core for Computer-based systems
87Component/Container interaction
Components exchange information
SC2 - Software Core for Computer-based systems
88Component/Container interaction
Container interacts with Component
SC2 - Software Core for Computer-based systems
89Container Model
� Clear separation of � the application component
� the technical middleware
container protects the component
container offers simpleinterfaces to component
ComponentMiddleware
Infrastructurecontainer
SC2 - Software Core for Computer-based systems
90Container/Infrastructure interaction
Middleware (Infrastructure, Framework)
Container interacts with other container
SC2 - Software Core for Computer-based systems
91Container/Infrastructure interaction
Middleware (Infrastructure, Framework)
Container interacts with other container
Container interacts with other Container Through Infrastructure
Service
SC2 - Software Core for Computer-based systems
92Container/Infrastructure interaction
Middleware (Infrastructure, Framework)
Component interacts with container
SC2 - Software Core for Computer-based systems
93Container/Infrastructure interaction
Middleware (Infrastructure, Framework)
Component interacts with container
Components exchange information Through Infrastructure Service
SC2 - Software Core for Computer-based systems
94Component based development
� Container Concepts
� Component container Interaction
� Object Deployment
� Separation of concerns
� Container Technical Framework
� Flexible Container Code Generation
SC2 - Software Core for Computer-based systems
95Container and object deployment
A component is a deployable objet
Client Object Object
Object
Object
Provides
uses
SC2 - Software Core for Computer-based systems
96Container and Object Deployment
03Client Objet O1 02
SC2 - Software Core for Computer-based systems
97
Spaghetti Plate
Container and Object Deployment
03Client Objet O1 02
SC2 - Software Core for Computer-based systems
98
Spaghetti Plate
Container and Object Deployment
03Container O1 02Client Objet
SC2 - Software Core for Computer-based systems
99Component based development
� Container Concepts
� Component container Interaction
� Object Deployment
� Separation of concerns
� Container Technical Framework
� Flexible Container Code Generation
SC2 - Software Core for Computer-based systems
100Container and separation of concerns : without container
03Objet O1 02
BusinessCode
BusinessCode
TechnicalCode
TechnicalCode
TechnicalCode
SC2 - Software Core for Computer-based systems
101Container and separation of concerns : with container
03Container O1 02
BusinessCode
BusinessCode
TechnicalCode
TechnicalCode
TechnicalCode
Object
SC2 - Software Core for Computer-based systems
102
IHM Server ServerHMI ??? ?????
Container and separation of concerns : determinism
• Simplification of business coder’s work
• Automation of technical services: tracing, recording
=> Validation Determinism
Request (Data)
Reply
Trace (Data)
Trace (Data)
Record (Data)
Record (Data)
Request (Data)
Reply
Request (Data)
Reply
ServerContainer
HMIContainer
SC2 - Software Core for Computer-based systems
103Component based development
� Container Concepts
� Component container Interaction
� Object Deployment
� Separation of concerns
� Container Technical Framework
� Flexible Container Code Generation
SC2 - Software Core for Computer-based systems
104
Container C
ontainer
Middleware services
Enterprise computing CCM container
BusinessApplication
Event Persistence Security Transaction
SC2 - Software Core for Computer-based systems
105
Container C
ontainer
Middleware services
Real Time computing CCM container
BusinessApplication
Tracing RecordingLoad
BalancingFault
Tolerance
SC2 - Software Core for Computer-based systems
106
Container C
ontainer
Middleware services
Extended Real Time computing CCM container
BusinessApplication
DDS ? ? ?
SC2 - Software Core for Computer-based systems
107Component based development
� Container Concepts
� Component container Interaction
� Object Deployment
� Separation of concerns
� Container Technical Framework
� Flexible Container Code Generation
SC2 - Software Core for Computer-based systems
108Flexible Container Code Generation
Compiler
Idl2Container
IDL3
Template
TemplateDriven
Code generation
WrittenBy middleware
Experts
SC2 - Software Core for Computer-based systems
109Flexible Container Code Generation
Compiler
Idl2
IDL3
C++Template
C++Container
SC2 - Software Core for Computer-based systems
110Flexible Container Code Generation
Compiler
Idl2
IDL3
AdaTemplate
AdaContainer
SC2 - Software Core for Computer-based systems
111Flexible Container Code Generation
Compiler
Idl2
IDL3
ValidationTemplate
ValidationContainer
SC2 - Software Core for Computer-based systems
112Infrastructure Interchange
Validation Container
Validation Framework
Operational Container
Operational Framework
SC2 - Software Core for Computer-based systems
113Infrastructure Interchange
Validation Container
Validation Framework
Operational Container
Operational Framework
Validation template written by Validation experts
SC2 - Software Core for Computer-based systems
114Infrastructure Interchange
Validation Container
Validation Framework
Operational Container
Operational Framework
Operational template written by Validation experts
SC2 - Software Core for Computer-based systems
115System Design and Simulated validation
System Engineer,Architect
Simulation Tools
Design Model
Validation Container
MOF/XMI
Operational ContainerValidationPattern
SC2 - Software Core for Computer-based systems
116
BusinessModel
FunctionalModel
Non FunctionalModel
FunctionalSimulation
Results
Non FunctionalSimulation
Results
Container
= =
System
Deployment
System Design and Simulated validation
SC2 - Software Core for Computer-based systems
117Component based development
� Objective
� Large distributed systems
� Tools chain
� Large distributed systems Architecture
� Business Model
� Component Execution Model
� CCM
� Object Deployment
� Container Concepts
SC2 - Software Core for Computer-based systems
118
RealTime
LoadBalancing
EventsDDS
FaultTolerance
FaultTolerance
LoadBalancing
DDS
Component Based Middleware
Events