The document discusses component-based development for large distributed systems. It describes using a component model with containers to define components and their interfaces. This allows components to be deployed across different platforms independently of their implementations. Visual design and deployment tools are proposed to manage components from design through integration and validation. The goal is to allow system development through assembly of pre-built components rather than custom engineering, reducing costs and skills requirements while improving quality.
2. 2
Component 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
3. 3
Objective
SC2 - Software Core for Computer-based systems
4. 4
Objective
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
5. 5
Component 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
6. 6
Component Based development for complex systems
Develop large software systems like :
Hardware
Car
Manufacturing rather than engineering
Product line
Assembly line Product line
Tools chain
Reuse time
Engineering
Development Production
Phase Phase
SC2 - Software Core for Computer-based systems
7. 7
Complex system : ATC centre
RADAR
AFTN/CIDIN
ATFM
ADJACENT
FIR'S/TWR'S
MET Centres
Radar Front Radar Data Flight Plan Supervisory Recording
Control Simulator
Processing
Radar Front Processing
Radar Data Processing
Flight Plan Supervisory Replay
Recording
Control Simulator
Processing Processing Processing Replay
Dual LAN
FDDI
Voice control
controller controller controller controller and
Voice control
Working Working Working Working communications
and
Position Position Position Position communications
• Intercom
• Priority
~ 50 • Public
• RADIO A/G
SC2 - Software Core for Computer-based systems
8. 8
Complex system : Combat Naval System
Tracks display
Radar detections
Detections processed into tracks by the CMS
SC2 - Software Core for Computer-based systems
9. 9
Component 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. 10
Tool chain : Computer Aided System Design
UML
Visual Tools
SC2 - Software Core for Computer-based systems
11. 11
Hardware Components Analogy
Component Library
Data Sheet
SC2 - Software Core for Computer-based systems
12. 12
Domain Components
Component Library
ACR RADAR
CWP
RDP
FDP ABS
CP
FPM
AGDC
ADS-B
TP
Data Sheet
SC2 - Software Core for Computer-based systems
13. 13
Computer aided design for the whole process
Operation
Validation
Integration
Development
Design
SC2 - Software Core for Computer-based systems
14. 14
From Design, Deployment, Installation, to Validation
Visual design Tool Visual Deployment Tool
Simulation Tool Validation Tool
Sun SPARC IBM Compatible
DECstation
IBM Compatible
IBM RS/6000
Mac SE/Classic
System Engineer System Monitor
Architect Integrator
Design Model Deployment Model
SC2 - Software Core for Computer-based systems
15. 15
System Design Visual Tools
System Engineer,
Architect
SC2 - Software Core for Computer-based systems
16. 16
System Design Visual Tools
System Engineer,
Architect
Design Model
SC2 - Software Core for Computer-based systems
17. 17
System Design Visual Tools
System Engineer,
Architect
Design Model
IDL
SC2 - Software Core for Computer-based systems
18. 18
System Design Visual Tools
System Engineer,
Architect
Design Model
IDL XML
SC2 - Software Core for Computer-based systems
19. 19
System Design Visual Tools
System Engineer,
Architect
Design Model
IDL XML
SC2 - Software Core for Computer-based systems
20. 20
System Design Visual Tools
System Engineer,
Architect
Design Model
IDL XML
SC2 - Software Core for Computer-based systems
21. 21
System Design Visual Tools
System Engineer,
Architect
Design Model
MOF/
XMI
IDL XML
SC2 - Software Core for Computer-based systems
22. 22
System Design Visual Tools
System Engineer,
Architect
Design Model
MOF/
XMI
Simulation Tools
IDL XML
SC2 - Software Core for Computer-based systems
23. 23
System Design Visual Tools
System Engineer,
Architect
Design Model
MOF/
XMI
Simulation Tools
IDL XML
SC2 - Software Core for Computer-based systems
24. 24
System Design Visual Tools
System Engineer,
Architect
Design Model
MOF/
XMI
Simulation Tools
IDL XML Validation
patterns
SC2 - Software Core for Computer-based systems
25. 25
System Deployment and Integration
System Integrator
Sun SPARC IBM Compatible
DECstation
IBM Compatible
IBM RS/6000
Mac SE/Classic
Monitor
COTS
Container
zipfile zipfile
SC2 - Software Core for Computer-based systems
26. 26
System Deployment and Integration
System Integrator
XMI
Sun SPARC IBM Compatible
DECstation
IBM Compatible
IBM RS/6000
Mac SE/Classic
Monitor
COTS
Container
zipfile zipfile
SC2 - Software Core for Computer-based systems
27. 27
System Deployment and Integration
System Integrator
XMI
Sun SPARC IBM Compatible
DECstation
IDL IBM Compatible
IBM RS/6000
Mac SE/Classic
Monitor
COTS
Container
zipfile zipfile
SC2 - Software Core for Computer-based systems
28. 28
System Deployment and Integration
System Integrator
XMI
Sun SPARC IBM Compatible
DECstation
IDL IBM Compatible
IBM RS/6000
Mac SE/Classic
XML
Monitor
COTS
Container
zipfile zipfile
SC2 - Software Core for Computer-based systems
29. 29
System Deployment and Integration
System Integrator
XMI
Sun SPARC IBM Compatible
DECstation
IDL IBM Compatible
IBM RS/6000
Mac SE/Classic
XML
Monitor
COTS
Container
zipfile zipfile
SC2 - Software Core for Computer-based systems
30. 30
System Deployment and Integration
System Integrator
XMI
Sun SPARC IBM Compatible
DECstation
IDL IBM Compatible
IBM RS/6000
Mac SE/Classic
XML
Monitor
COTS
Container
zipfile zipfile
SC2 - Software Core for Computer-based systems
31. 31
System Deployment and Integration
System Integrator
XMI
Sun SPARC IBM Compatible
DECstation
IDL IBM Compatible
IBM RS/6000
Mac SE/Classic
XML
Monitor
Validation
COTS
Container patterns
zipfile zipfile
SC2 - Software Core for Computer-based systems
32. 32
System Deployment and Integration
System Integrator
XMI
Sun SPARC IBM Compatible
DECstation
IDL IBM Compatible
IBM RS/6000
Mac SE/Classic
XML
Monitor
Validation
COTS
Container patterns
zipfile zipfile
SC2 - Software Core for Computer-based systems
33. 33
Component 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. 34
Mouse Click
Recording Surveillance
System Development
Flight
Management
Sup ODS
SC2 - Software Core for Computer-based systems
35. 35
Mouse Click
Recording Surveillance
System Development
Flight
Management
Sup ODS
SC2 - Software Core for Computer-based systems
36. 36
Mouse Click
Surveillance
System Development
Recording
Flight
Management
Sup ODS
SC2 - Software Core for Computer-based systems
37. 37
Mouse Click
System Development
Recording Surveillance
Flight
Management
Sup ODS
SC2 - Software Core for Computer-based systems
38. 38
Mouse Click
System Development
Recording Surveillance
Flight
Management
ODS
Sup
SC2 - Software Core for Computer-based systems
39. 39
Mouse Click
System Development
Recording Surveillance
Flight
Management
Sup ODS
SC2 - Software Core for Computer-based systems
40. 40
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
41. 41
System Architecture
A business model
Domain engineering
Domain services specification
No assumption on Execution Platform
(separation of concerns)
A component execution model
(seamless integration)
Components interconnection
CORBA component model (CCM)
Container
SC2 - Software Core for Computer-based systems
42. 42
Component 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
43. 43
A 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
44. 44
No assumption on deployment
A driver doesn't care of
engine's internal working.
He only knows the interface
Implementation Interface
SC2 - Software Core for Computer-based systems
45. 45
No assumption on deployment
A driver doesn't care of
engine's internal working.
He only knows the interface
Implementation Interface
SC2 - Software Core for Computer-based systems
46. 46
No assumption on deployment
A driver doesn't care of
engine's internal working.
He only knows the interface
Implementation Interface
SC2 - Software Core for Computer-based systems
47. 47
No assumption on deployment
A driver doesn't care of
engine's internal working.
He only knows the interface
Implementation Interface
SC2 - Software Core for Computer-based systems
48. 48
No assumption on deployment
A driver doesn't care of
engine's internal working.
He only knows the interface
Implementation Interface
SC2 - Software Core for Computer-based systems
49. 49
No assumption on deployment
A driver doesn't care of
engine's internal working.
He only knows the interface
Implementation Interface
SC2 - Software Core for Computer-based systems
50. 50
Component 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
51. 51
What We
Service B
May Have :
Service A
Service D
Service C
Service E
SC2 - Software Core for Computer-based systems
52. 52
Spaghetti
Plate
Syndrome
SC2 - Software Core for Computer-based systems
53. 53
Spaghetti
Plate Named
Syndrome Pipe
SC2 - Software Core for Computer-based systems
54. 54
Spaghetti
Reliable
Plate
Multicast
Syndrome
SC2 - Software Core for Computer-based systems
55. 55
Spaghetti
Plate
Syndrome
Spaghetti Plate
SC2 - Software Core for Computer-based systems
56. 56
Spaghetti
Plate
Syndrome System Architect
Spaghetti Plate
SC2 - Software Core for Computer-based systems
57. 57
Spaghetti
Plate
Syndrome System Integrator
System Architect
Spaghetti Plate
SC2 - Software Core for Computer-based systems
58. 58
What We Want !
Recording Surveillance
Recording Surveillance
Flight
Management
Sup ODS
Sup Seamless Integration
ODS
SC2 - Software Core for Computer-based systems
59. 59
Container Model
Technical Middleware (Framework)
SC2 - Software Core for Computer-based systems
60. 60
Container Model
Technical Middleware (Framework)
SC2 - Software Core for Computer-based systems
61. 61
Object Container Model
IDL
Technical Middleware (Framework)
SC2 - Software Core for Computer-based systems
62. 62
Object Container Model
IDL
Container
Technical Middleware (Framework)
SC2 - Software Core for Computer-based systems
63. 63
Object Container Model
IDL
Automatically
generated
Container
from Object IDL
Container
Technical Middleware (Framework)
SC2 - Software Core for Computer-based systems
64. 64
Object Container Model
IDL
Automatically
generated
Container
from Object IDL
Container Container
Technical Middleware (Framework)
SC2 - Software Core for Computer-based systems
65. 65
Object Container Model
IDL
Automatically
generated
Container
from Object IDL
Container Container Container
Technical Middleware (Framework)
SC2 - Software Core for Computer-based systems
66. 66
Object Container Model
IDL
Automatically
generated
Generated Typed
Container
Local Interfaces from Object IDL
Container Container Container
Technical Middleware (Framework)
SC2 - Software Core for Computer-based systems
67. 67
Object Container Model
IDL
Automatically
generated
Generated Typed
Container
Local Interfaces from Object IDL
Container Container Container Container
Technical Middleware (Framework)
SC2 - Software Core for Computer-based systems
68. 68
Object Container Model
IDL
Automatically
generated
Generated Typed
Container
Local Interfaces from Object IDL
Container Container Container Container Container
Technical Middleware (Framework)
SC2 - Software Core for Computer-based systems
69. 69
Object Container Model
IDL
Automatically
generated
Generated Typed
Container
Local Interfaces from Object IDL
Container Container Container Container Container
Technical Middleware (Framework)
SC2 - Software Core for Computer-based systems
Spaghetti Plate
70. 70
Component 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
71. 71
Component and CORBA object
A component is a deployable objet
Object
As specified
Client Object Object
Provides
Object
uses
SC2 - Software Core for Computer-based systems
72. 72
Component and object
A component is a deployable objet
?
As deployed
Client Object ?
Provides
?
uses
SC2 - Software Core for Computer-based systems
73. 73
Object Interface (IDL CORBA 2)
interfaces
Usual
CORBA object ..
SC2 - Software Core for Computer-based systems
75. 75
Component Interface (IDL CORBA 3)
Provides {
interfaces
Usual
CORBA object ..
}
Connection to
a Usual
uses { CORBA Object
interfaces
..
}
SC2 - Software Core for Computer-based systems
76. 76
Object Composition
IDL CORBA 2
IDL Server
IDL CORBA 2
IDL
Object
Client Server
IDL CORBA 2
IDL
Server
Provides Uses
SC2 - Software Core for Computer-based systems
77. 77
Object Composition IDL CORBA 3
IDL
IDL CORBA 2
IDL Server
IDL CORBA 2
IDL
Object
Client Server
IDL CORBA 2
IDL
Server
Provides Uses
SC2 - Software Core for Computer-based systems
78. 78
Object Composition IDL CORBA 3
IDL
Provides {
interfaces
.. Server
}
uses {
interfaces
..
} Object
Client Server
Server
Provides Uses
SC2 - Software Core for Computer-based systems
79. 79
CORBA Component Model (CCM)
CCM IDL “IDL3” Extension to IDL (IDL2 Meta Type)
«packaging» language
Define a component in terms
of...
Offered functionality (Server role)
interfaces provided
events emitted
Dependencies (Client role)
distant interfaces required
events consumed
Configuration attributes
SC2 - Software Core for Computer-based systems
80. 80
CCM : Code Generation
IDL3 “IDL3” is parsed, producing :
An IDL2 interface
Defining interface between
component and container
Compiler Middleware, Framework
independent
Container code
Idl2
Container Provides the glue between
application and
infrastructure
SC2 - Software Core for Computer-based systems
81. 81
CORBA Component Model IDL
IDL3 provides :
• logical architecture
• logical connectivity
• dependency visibility
SC2 - Software Core for Computer-based systems
82. 82
CORBA Component Model (CCM)
CCM Container 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.
SC2 - Software Core for Computer-based systems
83. 83
Component 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
84. 84
Component 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
85. 85
Component/Container interaction
Component interacts
with container
SC2 - Software Core for Computer-based systems
86. 86
Component/Container interaction
Container interacts
with other container
SC2 - Software Core for Computer-based systems
87. 87
Component/Container interaction
Components exchange
information
SC2 - Software Core for Computer-based systems
88. 88
Component/Container interaction
Container interacts
with Component
SC2 - Software Core for Computer-based systems
89. 89
Container Model
Clear separation of
the application
component
the technical
middleware
Middleware
container Component container protects the
Infrastructure
component
container offers simple
interfaces to
component
SC2 - Software Core for Computer-based systems
90. 90
Container/Infrastructure interaction
Container interacts
with other container
Middleware (Infrastructure, Framework)
SC2 - Software Core for Computer-based systems
91. 91
Container/Infrastructure interaction
Container interacts
with other container
Container interacts with other
Container Through Infrastructure
Service
Middleware (Infrastructure, Framework)
SC2 - Software Core for Computer-based systems
92. 92
Container/Infrastructure interaction
Component interacts
with container
Middleware (Infrastructure, Framework)
SC2 - Software Core for Computer-based systems
93. 93
Container/Infrastructure interaction
Component interacts
with container
Components exchange
information Through
Infrastructure Service
Middleware (Infrastructure, Framework)
SC2 - Software Core for Computer-based systems
94. 94
Component 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
95. 95
Container and object deployment
A component is a deployable objet
Object
Client Object Object
Provides
Object
uses
SC2 - Software Core for Computer-based systems
96. 96
Container and Object Deployment
Client Objet O1 02 03
SC2 - Software Core for Computer-based systems
97. 97
Container and Object Deployment
Client Objet O1 02 03
Spaghetti Plate
SC2 - Software Core for Computer-based systems
98. 98
Container and Object Deployment
Client Objet O1 02 03
Container
Spaghetti Plate
SC2 - Software Core for Computer-based systems
99. 99
Component 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
100. 100
Container and separation of concerns : without container
Objet O1 02 03
Technical
Code
Business
Code
Technical
Code
Business
Code
Technical
Code
SC2 - Software Core for Computer-based systems
101. 101
Container and separation of concerns : with container
Object Container O1 02 03
Business
Code
Technical
Code
Technical
Code
Business
Code
Technical
Code
SC2 - Software Core for Computer-based systems
102. 102
Container and separation of concerns : determinism
HMI Server
HMI ???
IHM
Container ?????
Server
Container Server
Request (Data)
Trace (Data)
• Automation of technical
services: tracing, recording Request (Data)
Trace (Data)
=> Validation Determinism Request (Data)
• Simplification of business Reply
coder’s work Record (Data)
Reply
Record (Data)
Reply
SC2 - Software Core for Computer-based systems
103. 103
Component 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. 104
Enterprise computing CCM container
Business
Container
Container
Application
Event Persistence Security Transaction
Middleware services
SC2 - Software Core for Computer-based systems
105. 105
Real Time computing CCM container
Business
Container
Container
Application
Load Fault
Tracing Recording
Balancing Tolerance
Middleware services
SC2 - Software Core for Computer-based systems
106. 106
Extended Real Time computing CCM container
Business
Container
Container
Application
DDS ? ? ?
Middleware services
SC2 - Software Core for Computer-based systems
107. 107
Component 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
108. 108
Flexible Container Code Generation
IDL3 Template
Driven
Code generation
Compiler Template
Written
By middleware
Experts
Container
Idl2
SC2 - Software Core for Computer-based systems
109. 109
Flexible Container Code Generation
IDL3
C++
Compiler Template
C++
Container
Idl2
SC2 - Software Core for Computer-based systems
110. 110
Flexible Container Code Generation
IDL3
Ada
Compiler Template
Ada
Container
Idl2
SC2 - Software Core for Computer-based systems
111. 111
Flexible Container Code Generation
IDL3
Validation
Compiler Template
Validation
Container
Idl2
SC2 - Software Core for Computer-based systems
112. 112
Infrastructure Interchange
Validation Container Operational Container
Validation Framework Operational Framework
SC2 - Software Core for Computer-based systems
113. 113
Infrastructure Interchange
Validation template written by
Validation experts
Validation Container Operational Container
Validation Framework Operational Framework
SC2 - Software Core for Computer-based systems
114. 114
Infrastructure Interchange
Operational template written by
Validation experts
Validation Container Operational Container
Validation Framework Operational Framework
SC2 - Software Core for Computer-based systems
115. 115
System Design and Simulated validation
System Engineer,
Architect
Design Model
MOF/
XMI
Simulation Tools
Validation
Operational Container Validation Container
Pattern
SC2 - Software Core for Computer-based systems
116. 116
System Design and Simulated validation
Business
Model
Functional Non Functional
Model Model
Container
Functional Non Functional
Simulation Simulation
Deployment
= =
Results Results
System
SC2 - Software Core for Computer-based systems
117. 117
Component 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. 118
Component Based
Fault Load
Tolerance
Middleware
Balancing
Fault Load
Tolerance Balancing
Real
Time
DDS Events
DDS Events
SC2 - Software Core for Computer-based systems