39
JAVA Implementation of CCM Configuration Shufeng Li MSE final Project Presentation I

JAVA Implementation of CCM Configuration Shufeng Li MSE final Project Presentation I

Embed Size (px)

Citation preview

Page 1: JAVA Implementation of CCM Configuration Shufeng Li MSE final Project Presentation I

JAVA Implementation of CCM Configuration

Shufeng Li

MSE final Project Presentation I

Page 2: JAVA Implementation of CCM Configuration Shufeng Li MSE final Project Presentation I

Outline Overview

Boeing Bold Stroke, Cadena, CORBA, CCM Requirements

Extending Cadena to produce Java implementations of component assembly

Tools IBM Eclipse, Cadena, OpenCCM

Cost estimation Project plan References

Page 3: JAVA Implementation of CCM Configuration Shufeng Li MSE final Project Presentation I

Boeing Bold Stroke

Radar

Weapons

Nav Sensors

WeaponManagement

Data Links

Many Computers

Many Computers

Multiple BusesMultiple Buses

Constrained Tactical LinksConstrained

Tactical Links

O(106) Lines of Code

O(106) Lines of CodeHard & Soft

Real-TimeHard & Soft Real-Time

Periodic & Aperiodic

Periodic & Aperiodic

Multiple Safety Criticalities

Multiple Safety Criticalities

Information Security

Information Security

Focus Domain

MissionComputer

VehicleMgmt

COTSCOTS

Page 4: JAVA Implementation of CCM Configuration Shufeng Li MSE final Project Presentation I

Control-push Data-pull Architecture 1. Logical GPS

component receives a periodic event indicating that it should read the physical GPS device.2. Logical GPS publishes DATA_AVAILABLE event

3. Airframe component fetches GPS data by calling GPS GetData method4. Airframe updates its position data and publishes DATA_AVAILABLE event5. NavDisplay component fetches AirFrame data by calling AirFrame GetData method6. NavDisplay updates the physical display

Page 5: JAVA Implementation of CCM Configuration Shufeng Li MSE final Project Presentation I

Larger Configuration

…moving up to 1000+ components

Page 6: JAVA Implementation of CCM Configuration Shufeng Li MSE final Project Presentation I

Current Challenges Systems with 1000+ components Development team of 100+ developers Process moves directly from informal textual

requirements documents to C++ coding (!) UML artifacts (e.g., collaboration diagrams) are usually

produced only as documentation not automatically analyzed not leveraged in any way to e.g., generate configuration

information usually show partial descriptions and are not maintained

Systems are built following the basic structure of the CORBA Component Model (CCM) but are not CCM compliant nor do they take advantage of CCM tools

Page 7: JAVA Implementation of CCM Configuration Shufeng Li MSE final Project Presentation I

Cadena An integrated environment for

development analysis verification

…of CCM systems Designed to address some of the challenges of

current Bold Stroke development Cadena

is an Eclipse plug-in IBM’s Eclipse is a robust, full-featured, Java-oriented IDE

encapsulates OpenCCM OpenCCM is an open-source Java-based CCM

implementation under development by KSU SAnToS and Systems Groups

Page 8: JAVA Implementation of CCM Configuration Shufeng Li MSE final Project Presentation I

Overview – COBRA architecture

The Object Request Broker (ORB), the distributed service, implements the request to the server object. It locates the server object on the network, delivers the request to the object, and returns those results back to the client object.

Client Object Server Object

ORB

Page 9: JAVA Implementation of CCM Configuration Shufeng Li MSE final Project Presentation I

CORBA Component Model

CCM - CORBA Component Model, (COBRA standard 3.0) A distributed component-oriented

model OpenCCM – the first public available

implementation of the CCM Automatically generate “stubs” and

“skeletons” classes associated with objects in IDL file.

Page 10: JAVA Implementation of CCM Configuration Shufeng Li MSE final Project Presentation I

Overview – IDL IDL – Interface definition languages

Defined by OMG (Object Management Group) Describes the interfaces of software objects

OMG IDL3.x Component-oriented collaboration Still has data types, value types, and

interfaces from IDL2.x, which is Object-oriented collaboration

Plus component types, homes, and event types

Page 11: JAVA Implementation of CCM Configuration Shufeng Li MSE final Project Presentation I

IDL 3.0 Example

event sinkevent sink

eventtype TimeOut {}eventtype DataAvailable {}

interface ReadData { readonly attribute any data;}

component BMDevice { consumes TimeOut timeout publishes DataAvailable dataCurrent provides ReadData dataOut}

GPS : BM__DeviceComponent

20Hz High Priority

1. Push() 4. GetData()

CORBA 3CCM IDL

Page 12: JAVA Implementation of CCM Configuration Shufeng Li MSE final Project Presentation I

IDL 3.0 Example

eventtype TimeOut {}eventtype DataAvailable {}

interface ReadData { readonly attribute any data;}

component BMDevice { consumes TimeOut timeout publishes DataAvailable dataCurrent provides ReadData dataOut}

GPS : BM__DeviceComponent

20Hz High Priority

1. Push() 4. GetData()

CORBA 3CCM IDL

event sourceevent source

Page 13: JAVA Implementation of CCM Configuration Shufeng Li MSE final Project Presentation I

IDL 3.0 Example

eventtype TimeOut {}eventtype DataAvailable {}

interface ReadData { readonly attribute any data;}

component BMDevice { consumes TimeOut timeout publishes DataAvailable dataCurrent provides ReadData dataOut}

: BM__DeviceComponent

TimeOut Priority

1. Push() 4. GetData()

CORBA 3CCM IDL

data source(facet)

data source(facet)

Page 14: JAVA Implementation of CCM Configuration Shufeng Li MSE final Project Presentation I

Cadena Component Assembly

system ModalSP {

locations l1,l2,l3; rates 1,5,20,60;

instance AirFrame of BMLazyActive on l2 { connect dataAvailable to GPS.dataCurrent atRate 20 connect dataIn to GPS.dataOut

instance GPS of BMDevice on l2 { connect timeout to EventChannel.timeout20 } …

GPS : BM__DeviceComponent

20Hz High Priority

1. Push() 4. GetData()

airframe : BM__LazyActiveComponent

abstract distribution pointsabstract distribution points

Page 15: JAVA Implementation of CCM Configuration Shufeng Li MSE final Project Presentation I

Cadena Component Assembly

system ModalSP {

locations l1,l2,l3; rates 1,5,20,60;

instance AirFrame of BMLazyActive on l2 { connect dataAvailable to GPS.dataCurrent atRate 20 connect dataIn to GPS.dataOut

instance GPS of BMDevice on l2 { connect timeout to EventChannel.timeout20 } …

GPS : BM__DeviceComponent

20Hz High Priority

1. Push() 4. GetData()

airframe : BM__LazyActiveComponent

rate group declarationrate group declaration

Page 16: JAVA Implementation of CCM Configuration Shufeng Li MSE final Project Presentation I

Cadena Component Assembly

system ModalSP {

locations l1,l2,l3; rates 1,5,20,60;

instance AirFrame of BMLazyActive on l2 { connect dataAvailable to GPS.dataCurrent atRate 20 connect dataIn to GPS.dataOut

instance GPS of BMDevice on l2 { connect timeout to EventChannel.timeout20 } …

GPS : BM__DeviceComponent

20Hz High Priority

1. Push() 4. GetData()

airframe : BM__LazyActiveComponent

create instance of LazyActive component

called AirFrame

create instance of LazyActive component

called AirFrame

Page 17: JAVA Implementation of CCM Configuration Shufeng Li MSE final Project Presentation I

Cadena Component Assembly

system ModalSP {

locations l1,l2,l3; rates 1,5,20,60;

instance AirFrame of BMLazyActive on l2 { connect dataAvailable to GPS.dataCurrent atRate 20 connect dataIn to GPS.dataOut

instance GPS of BMDevice on l2 { connect timeout to EventChannel.timeout20 } …

GPS : BM__DeviceComponent

20Hz High Priority

1. Push() 4. GetData()

airframe : BM__LazyActiveComponent

connect event INPUT port of current component

to event OUTPUT port of GPS component

connect event INPUT port of current component

to event OUTPUT port of GPS component

Page 18: JAVA Implementation of CCM Configuration Shufeng Li MSE final Project Presentation I

Cadena Component Assembly

system ModalSP {

locations l1,l2,l3; rates 1,5,20,60;

instance AirFrame of BMLazyActive on l2 { connect dataAvailable to GPS.dataCurrent atRate 20 connect dataIn to GPS.dataOut

instance GPS of BMDevice on l2 { connect timeout to EventChannel.timeout20 } …

GPS : BM__DeviceComponent

20Hz High Priority

1. Push() 4. GetData()

airframe : BM__LazyActiveComponent

connect data INPUT port of current component

to data OUTPUT port of GPS component

connect data INPUT port of current component

to data OUTPUT port of GPS component

Page 19: JAVA Implementation of CCM Configuration Shufeng Li MSE final Project Presentation I

Cadena Component Assembly

system ModalSP {

locations l1,l2,l3; rates 1,5,20,60;

instance AirFrame of BMLazyActive on l2 { connect dataAvailable to GPS.dataCurrent atRate 20 connect dataIn to GPS.dataOut

instance GPS of BMDevice on l2 { connect timeout to EventChannel.timeout20 } …

GPS : BM__DeviceComponent

20Hz High Priority

1. Push() 4. GetData()

airframe : BM__LazyActiveComponent

create instance of DeviceComponent called

GPS

create instance of DeviceComponent called

GPS

Page 20: JAVA Implementation of CCM Configuration Shufeng Li MSE final Project Presentation I

Cadena Component Assembly

system ModalSP {

locations l1,l2,l3; rates 1,5,20,60;

instance AirFrame of BMLazyActive on l2 { connect dataAvailable to GPS.dataCurrent atRate 20 connect dataIn to GPS.dataOut

instance GPS of BMDevice on l2 { connect timeout to EventChannel.timeout20 } …

GPS : BM__DeviceComponent

20Hz High Priority

1. Push() 4. GetData()

airframe : BM__LazyActiveComponent

connect event INPUT port of current component

to event OUTPUT port of EventChannel

connect event INPUT port of current component

to event OUTPUT port of EventChannel

Page 21: JAVA Implementation of CCM Configuration Shufeng Li MSE final Project Presentation I

Cadena Architecture

Page 22: JAVA Implementation of CCM Configuration Shufeng Li MSE final Project Presentation I

Overview – goals, constraints, direction Goals: Automate the CCM assembly and

deployment processes Constraints:

reliability requirements should be satisfied safety and security should be considered

Directions: demonstrate the validity by running multiple example scenarios, such as BasicSP and ModalSP, from Boeing Bold Stroke OEP.

Page 23: JAVA Implementation of CCM Configuration Shufeng Li MSE final Project Presentation I

CCM big picture

IDL/CIDL

Compiler

IDL/CIDL File

Stubs, Skeletons

PackagingTool

Implementation

Programming

Language

Tools

User's Code

ComponentDescriptor

Default Properties

Assembly

ToolComponentAssemblyPackage

Home Properties Component Properties

Deployment

Tool

AssemblyDescriptor

CORBAComponent

Package

softpkgDescriptor

User written file

Compiler

Generated files

CORBAComponent

Package

CORBAComponent

Package

designers implementer

packager assembler

I will focus on

Page 24: JAVA Implementation of CCM Configuration Shufeng Li MSE final Project Presentation I

Component Assembly Package

Described by a assembly descriptor in XML format

Component assembly package focuses on the component files, what instances of component types are used in the system, and how these instances connect together.

Page 25: JAVA Implementation of CCM Configuration Shufeng Li MSE final Project Presentation I

Component Assembly

PropertiesDeploymen

tTool

AssemblyArchive

.aar (ZIP)

Assembly Tool

ComponentPackage

ComponentPackage

ComponentPackage

PortConnections

InstanceCreation

...

Page 26: JAVA Implementation of CCM Configuration Shufeng Li MSE final Project Presentation I

Deployment

The deployment tool might interact with the user to assign homes and component instances to hosts and processes

Page 27: JAVA Implementation of CCM Configuration Shufeng Li MSE final Project Presentation I

Requirements Take a scenario file in AST/XML

format Extract component configuration

information Generate JAVA component assembly

code that includes component instance creation, port connection, and home assignment functions.

Could be used by user directly.

Page 28: JAVA Implementation of CCM Configuration Shufeng Li MSE final Project Presentation I

Requirement (use case)

user

Generate assembly

code

From AST:

user

Generate assembly

code

From XML configuration file:

Page 29: JAVA Implementation of CCM Configuration Shufeng Li MSE final Project Presentation I

Examples

Input file: basicsp.scenario Output file BasicspScenario.java

Page 30: JAVA Implementation of CCM Configuration Shufeng Li MSE final Project Presentation I

Testing/Validation Plan – Unit test and Integrated test

Unit testing: use JUnit as the main testing tool Test each method call that initializes ORB, servers, installs

homes, and creates component instances, get variable properties

Test on different connections(data, basic event, and correlated event)

Error tolerance – detects parameter input errors, instance name not defined or duplicated errors, file can’t find errors…

Integration testing Run the program with IDL stubs, skeletons, and component

implementation files. Test scenarios: (taken from Bold Stroke Open Experimental

Platform) BasicSP (4 component instances, 4 component types) ModalSP (10 component instances, 10 component types) MediumSP (50 component instances, 10 component types)

Page 31: JAVA Implementation of CCM Configuration Shufeng Li MSE final Project Presentation I

Tools OpenCCM -- the Open CORBA Component Model

Platform: the first public available Open Source implementation of the Object Management Group's CORBA Component Model.

OpenORB – provides a Java implementation of the OMG CORBA 2.4.2 specification

IBM Eclipse - designed for building integrated development environment

Cadena Junit - a simple framework to write repeatable

tests

Page 32: JAVA Implementation of CCM Configuration Shufeng Li MSE final Project Presentation I

Cost Estimation Based on line of code:

AST visitor About 500 lines (does not support event correlation yet) Event correlation – estimated about 100 lines

Read information from XML configuration file 4000 lines (based on other people’s experience from our

group) Total about 4.5 K Effort = 2.4 * (4.5)1.05 = 11.6 Development time = 2.5 * (11.6)0.38 = 6.35 (months)

Page 33: JAVA Implementation of CCM Configuration Shufeng Li MSE final Project Presentation I

Cost Estimation - Unadjusted Functional points

Simple Average ComplexSubtotal

Count Weights

Count weights

Count weights

Inputs 2 3 0 4 0 6 3

Outputs 3 4 0 5 0 7 12

Inquiries 0 4 0 5 0 7 0

Files 1 7 0 10 3 15 52

Interfaces

0 5 1 7 1 10 17

Total 84

Page 34: JAVA Implementation of CCM Configuration Shufeng Li MSE final Project Presentation I

Cost Estimation - Adjusted Functional points

Complexity Weighting Factors Rate (1-5)

Does the system require reliable backup and recovery 1

Are data communications required? 2

Are there distributed processing functions 3

Is performance critical 1

Will the system run in an existing, heavily utilized operational environment 3

Does the system require on-line data entry? 1

Does the on-line data entry require the input transaction to be built over multiple screens or operations

0

Are the master files updated on-line 0

Are the inputs, outputs, files, or inquiries complex 5

Is the internal processing complex 5

Is the code designed to be reusable 3

Are conversion and installation included in the design 3

Is the system designed for multiple installations in different organizations 5

Is the application designed to facilitate change and ease of use by the user 5

Sum 37

Page 35: JAVA Implementation of CCM Configuration Shufeng Li MSE final Project Presentation I

Cost Estimation - Adjusted Functional points (cont’)

Adjusted FP = FPunadjusted*(.65+.01*sum of ratings)= 84 * (.65+.01*37)= 85.68

Page 36: JAVA Implementation of CCM Configuration Shufeng Li MSE final Project Presentation I

Project Plan

Page 37: JAVA Implementation of CCM Configuration Shufeng Li MSE final Project Presentation I

References CORBA & CCM OMG CORBA 3.0 new Components Chapters CORBA Component Model: Discussion and Use with OpenCCM

(Raphaël Marvie, Philippe Merle ) OpenORB Cadena: An Integrated Development, Analysis, and Verification

Environment for Component-based Systems, John Hatcliff, William Deng, Matthew Dwyer, Georg Jung, Venkatesh Prasad (submitted for publication -- SAnToS Laboratory Technical Report 2002-02): www.cis.ksu.edu/cadean

CORBA Component Model Tutorial Gerald Brose, Andreas Vogel, Keith Duddy, Java Programming with

CORBA, Third Edition, ISBN: 0-471-37681-7, 2001 Pressman, Software Engineering, 5th Edition, ISBN: 0-07-365578-3 Royce, Software Project Management: A Unified Framework, ISBN:

0201309580

Page 38: JAVA Implementation of CCM Configuration Shufeng Li MSE final Project Presentation I

Acknowledgement

Committee: Dr. Hatcliff Dr. Hankley Dr. Dwyer

Page 39: JAVA Implementation of CCM Configuration Shufeng Li MSE final Project Presentation I

Comments?

Thank you!