component based software development
DESCRIPTION
Component based software developmentTRANSCRIPT
SC2 - Software Core for Computer-based systems
Component based software 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
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
4Component 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
5Component 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
6Complex 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
7Complex system : Combat Naval System
Radar detections
Tracks display
Detections processed into tracks by the CMS
SC2 - Software Core for Computer-based systems
8Component 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
9
UML
Visual Tools
Tool chain : Computer Aided System Design
SC2 - Software Core for Computer-based systems
10Hardware Components Analogy
Component Library
Data Sheet
SC2 - Software Core for Computer-based systems
11Domain Components
Component Library
Data Sheet
CWP
RDP
FDP
CP
FPM
TP
RADAR
ADS-B
AGDC
ACR
ABS
SC2 - Software Core for Computer-based systems
12Computer aided design for the whole process
Integration
Validation
Operation
Development
Design
SC2 - Software Core for Computer-based systems
13From 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
14System Design Visual Tools
IDL XML
System Engineer,Architect
Validationpatterns
MOF/XMI
Simulation Tools
Design Model
SC2 - Software Core for Computer-based systems
15System 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
16Component 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
17
FlightManagement
Surveillance
ODSSup
Recording
Recording
Surveillance
ODSSup
Mouse ClickSystem Development
SC2 - Software Core for Computer-based systems
18System Architecture
A business model Domain engineering Domain services specification
No assumption on Execution Platform(separation of concerns)
SC2 - Software Core for Computer-based systems
19
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
20Component 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
21A 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
22No 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
23No 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
24Component 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
25What We May Have :
Service DService C
Service A
Service B
Service E
SC2 - Software Core for Computer-based systems
26Spaghetti PlateSyndrome
NamedPipe
ReliableMulticast
Spaghetti Plate
System Architect System Integrator
SC2 - Software Core for Computer-based systems
27
FlightManagement
Surveillance
ODSSup
Recording
Recording
Surveillance
ODSSup
What We Want !
Seamless Integration
SC2 - Software Core for Computer-based systems
28Container Model
Technical Middleware (Framework)
ContainerContainerContainerContainerContainer
AutomaticallygeneratedContainer
from Object IDL
ObjectIDL
Generated Typed Local Interfaces
Spaghetti Plate
SC2 - Software Core for Computer-based systems
29Component 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
30 Component 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
31Component and object
A component is a deployable objet
Client Object ?
?
?
Provides
uses
As deployed
SC2 - Software Core for Computer-based systems
32Object Interface (IDL CORBA 2)
interfaces..
UsualCORBA object
SC2 - Software Core for Computer-based systems
33 Component Interface (IDL CORBA 3)
Provides {interfaces..
}
UsualCORBA object
SC2 - Software Core for Computer-based systems
34
Provides {interfaces..
}
uses {interfaces..
}
Component Interface (IDL CORBA 3)
Connection toa Usual
CORBA Object
UsualCORBA object
SC2 - Software Core for Computer-based systems
35
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
36
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
37
Client Server
Server
Server
Provides Uses
Object
Object CompositionIDL
Provides {interfaces..
}
uses {interfaces..
}
IDL CORBA 3
SC2 - Software Core for Computer-based systems
38CORBA 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
39CCM : 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
40CORBA Component Model IDL
IDL3 provides :• logical architecture
• logical connectivity
• dependency visibility
SC2 - Software Core for Computer-based systems
41CORBA 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
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
43Component 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
44Component/Container interaction
Container interacts with Component
Component interacts with
container
Container interacts with other container
Components exchange
information
SC2 - Software Core for Computer-based systems
45Container Model
Clear separation of
the application component
the technical middleware
container protects the component
container offers simple interfaces to component
ComponentMiddleware
Infrastructurecontainer
SC2 - Software Core for Computer-based systems
46Container/Infrastructure interaction
Middleware (Infrastructure, Framework)
Container interacts with ComponentContainer interacts
with InfrastructureContainer interacts with Infrastructure
Components exchange information Through
Infrastructure ServiceContainer interacts with other
Container Through Infrastructure Service
Component interacts with
container
Container interacts with other container
Components exchange
information
SC2 - Software Core for Computer-based systems
47Component 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
48Container and object deployment
A component is a deployable objet
Client Object Object
Object
Object
Provides
uses
SC2 - Software Core for Computer-based systems
49
Spaghetti Plate
Container and Object Deployment
03Client Objet O1 02
SC2 - Software Core for Computer-based systems
50
Spaghetti Plate
Container and Object Deployment
03Container
O1 02Client Objet
SC2 - Software Core for Computer-based systems
51Component 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
52Container and separation of concerns : without container
03Objet O1 02
BusinessCode
BusinessCode
TechnicalCode
TechnicalCode
TechnicalCode
SC2 - Software Core for Computer-based systems
53Container and separation of concerns : with container
03Container O1 02
BusinessCode
BusinessCode
TechnicalCode
TechnicalCode
TechnicalCode
Object
SC2 - Software Core for Computer-based systems
54
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
55Component 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
56
Con
tain
er C
on
tain
er
Middleware services
Enterprise computing CCM container
BusinessApplication
Event Persistence Security Transaction
SC2 - Software Core for Computer-based systems
57
Con
tain
er C
on
tain
er
Middleware services
Real Time computing CCM container
BusinessApplication
Tracing RecordingLoad
BalancingFault
Tolerance
SC2 - Software Core for Computer-based systems
58
Con
tain
er C
on
tain
er
Middleware services
Extended Real Time computing CCM container
BusinessApplication
DDS ? ? ?
SC2 - Software Core for Computer-based systems
59Component 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
60Flexible Container Code Generation
Compiler
Idl2Container
IDL3
Template
TemplateDriven
Code generation
WrittenBy middleware
Experts
SC2 - Software Core for Computer-based systems
61Flexible Container Code Generation
Compiler
Idl2
IDL3
C++Template
C++Container
SC2 - Software Core for Computer-based systems
62Flexible Container Code Generation
Compiler
Idl2
IDL3
AdaTemplate
AdaContainer
SC2 - Software Core for Computer-based systems
63Flexible Container Code Generation
Compiler
Idl2
IDL3
ValidationTemplate
ValidationContainer
SC2 - Software Core for Computer-based systems
64Infrastructure Interchange
Validation Container
Validation Framework
Operational Container
Operational Framework
Validation template written by Validation experts
SC2 - Software Core for Computer-based systems
65Infrastructure Interchange
Validation Container
Validation Framework
Operational Container
Operational Framework
Operational template written by Validation experts
SC2 - Software Core for Computer-based systems
66System Design and Simulated validation
System Engineer,Architect
Simulation Tools
Design Model
Validation Container
MOF/XMI
Operational ContainerValidation
Pattern
SC2 - Software Core for Computer-based systems
67
BusinessModel
FunctionalModel
Non FunctionalModel
FunctionalSimulation
Results
Non FunctionalSimulation
Results
Container
= =
System
Deployment
System Design and Simulated validation
SC2 - Software Core for Computer-based systems
68
RealTime
LoadBalancing
EventsDDS
FaultTolerance
FaultTolerance
LoadBalancing
DDS
Component Based Middleware
Events