68
- Software Core for Computer-based systems Component based software development

Component based software development

Embed Size (px)

DESCRIPTION

Component based software development

Citation preview

Page 1: Component based software development

SC2 - Software Core for Computer-based systems

Component based software development

Page 2: 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

Page 3: Component based software development

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

Page 4: Component based software development

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

Page 5: Component based software development

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

Page 6: Component based software development

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

Page 7: Component based software development

SC2 - Software Core for Computer-based systems

7Complex system : Combat Naval System

Radar detections

Tracks display

Detections processed into tracks by the CMS

Page 8: Component based software development

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

Page 9: Component based software development

SC2 - Software Core for Computer-based systems

9

UML

Visual Tools

Tool chain : Computer Aided System Design

Page 10: Component based software development

SC2 - Software Core for Computer-based systems

10Hardware Components Analogy

Component Library

Data Sheet

Page 11: Component based software development

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

Page 12: Component based software development

SC2 - Software Core for Computer-based systems

12Computer aided design for the whole process

Integration

Validation

Operation

Development

Design

Page 13: Component based software development

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

Page 14: Component based software development

SC2 - Software Core for Computer-based systems

14System Design Visual Tools

IDL XML

System Engineer,Architect

Validationpatterns

MOF/XMI

Simulation Tools

Design Model

Page 15: Component based software development

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

Page 16: Component based software development

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

Page 17: Component based software development

SC2 - Software Core for Computer-based systems

17

FlightManagement

Surveillance

ODSSup

Recording

Recording

Surveillance

ODSSup

Mouse ClickSystem Development

Page 18: Component based software 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)

Page 19: Component based software development

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)

Page 20: Component based software development

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

Page 21: Component based software development

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)

Page 22: Component based software development

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

Page 23: Component based software development

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

Page 24: Component based software development

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

Page 25: Component based software development

SC2 - Software Core for Computer-based systems

25What We May Have :

Service DService C

Service A

Service B

Service E

Page 26: Component based software development

SC2 - Software Core for Computer-based systems

26Spaghetti PlateSyndrome

NamedPipe

ReliableMulticast

Spaghetti Plate

System Architect System Integrator

Page 27: Component based software development

SC2 - Software Core for Computer-based systems

27

FlightManagement

Surveillance

ODSSup

Recording

Recording

Surveillance

ODSSup

What We Want !

Seamless Integration

Page 28: Component based software development

SC2 - Software Core for Computer-based systems

28Container Model

Technical Middleware (Framework)

ContainerContainerContainerContainerContainer

AutomaticallygeneratedContainer

from Object IDL

ObjectIDL

Generated Typed Local Interfaces

Spaghetti Plate

Page 29: Component based software development

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

Page 30: Component based software development

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

Page 31: Component based software development

SC2 - Software Core for Computer-based systems

31Component and object

A component is a deployable objet

Client Object ?

?

?

Provides

uses

As deployed

Page 32: Component based software development

SC2 - Software Core for Computer-based systems

32Object Interface (IDL CORBA 2)

interfaces..

UsualCORBA object

Page 33: Component based software development

SC2 - Software Core for Computer-based systems

33 Component Interface (IDL CORBA 3)

Provides {interfaces..

}

UsualCORBA object

Page 34: Component based software development

SC2 - Software Core for Computer-based systems

34

Provides {interfaces..

}

uses {interfaces..

}

Component Interface (IDL CORBA 3)

Connection toa Usual

CORBA Object

UsualCORBA object

Page 35: Component based software development

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

Page 36: Component based software development

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

Page 37: Component based software development

SC2 - Software Core for Computer-based systems

37

Client Server

Server

Server

Provides Uses

Object

Object CompositionIDL

Provides {interfaces..

}

uses {interfaces..

}

IDL CORBA 3

Page 38: Component based software development

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”

Page 39: Component based software development

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

Page 40: Component based software development

SC2 - Software Core for Computer-based systems

40CORBA Component Model IDL

IDL3 provides :• logical architecture

• logical connectivity

• dependency visibility

Page 41: Component based software development

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

Page 42: Component based software development

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

Page 43: Component based software development

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

Page 44: Component based software development

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

Page 45: Component based software development

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

Page 46: Component based software development

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

Page 47: Component based software development

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

Page 48: Component based software development

SC2 - Software Core for Computer-based systems

48Container and object deployment

A component is a deployable objet

Client Object Object

Object

Object

Provides

uses

Page 49: Component based software development

SC2 - Software Core for Computer-based systems

49

Spaghetti Plate

Container and Object Deployment

03Client Objet O1 02

Page 50: Component based software development

SC2 - Software Core for Computer-based systems

50

Spaghetti Plate

Container and Object Deployment

03Container

O1 02Client Objet

Page 51: Component based software development

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

Page 52: Component based software development

SC2 - Software Core for Computer-based systems

52Container and separation of concerns : without container

03Objet O1 02

BusinessCode

BusinessCode

TechnicalCode

TechnicalCode

TechnicalCode

Page 53: Component based software development

SC2 - Software Core for Computer-based systems

53Container and separation of concerns : with container

03Container O1 02

BusinessCode

BusinessCode

TechnicalCode

TechnicalCode

TechnicalCode

Object

Page 54: Component based software development

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

Page 55: Component based software development

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

Page 56: Component based software development

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

Page 57: Component based software development

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

Page 58: Component based software development

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 ? ? ?

Page 59: Component based software development

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

Page 60: Component based software development

SC2 - Software Core for Computer-based systems

60Flexible Container Code Generation

Compiler

Idl2Container

IDL3

Template

TemplateDriven

Code generation

WrittenBy middleware

Experts

Page 61: Component based software development

SC2 - Software Core for Computer-based systems

61Flexible Container Code Generation

Compiler

Idl2

IDL3

C++Template

C++Container

Page 62: Component based software development

SC2 - Software Core for Computer-based systems

62Flexible Container Code Generation

Compiler

Idl2

IDL3

AdaTemplate

AdaContainer

Page 63: Component based software development

SC2 - Software Core for Computer-based systems

63Flexible Container Code Generation

Compiler

Idl2

IDL3

ValidationTemplate

ValidationContainer

Page 64: Component based software development

SC2 - Software Core for Computer-based systems

64Infrastructure Interchange

Validation Container

Validation Framework

Operational Container

Operational Framework

Validation template written by Validation experts

Page 65: Component based software development

SC2 - Software Core for Computer-based systems

65Infrastructure Interchange

Validation Container

Validation Framework

Operational Container

Operational Framework

Operational template written by Validation experts

Page 66: Component based software development

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

Page 67: Component based software development

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

Page 68: Component based software development

SC2 - Software Core for Computer-based systems

68

RealTime

LoadBalancing

EventsDDS

FaultTolerance

FaultTolerance

LoadBalancing

DDS

Component Based Middleware

Events