Title: JAVA Implementation of CCM Configuration
1JAVA Implementation of CCM Configuration
MSE final Project Presentation I
2Outline
- 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
3Boeing Bold Stroke
Periodic Aperiodic
Constrained Tactical Links
Many Computers
Mission Computer
Multiple Safety Criticalities
Radar
Vehicle Mgmt
COTS
Information Security
Multiple Buses
O(106) Lines of Code
Hard Soft Real-Time
4Control-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 method
4. Airframe updates its position data and
publishes DATA_AVAILABLE event
5. NavDisplay component fetches AirFrame data by
calling AirFrame GetData method
6. NavDisplay updates the physical display
5Larger Configuration
moving up to 1000 components
6Current 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
7Cadena
- An integrated environment for
- development
- analysis
- verificationof CCM systems
- Designed to address some of the challenges of
current Bold Stroke development - Cadena
- is an Eclipse plug-in
- IBMs 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
8Overview 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.
9CORBA 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.
10Overview 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
11IDL 3.0 Example
CORBA 3 CCM IDL
eventtype TimeOut eventtype DataAvailable
interface ReadData readonly attribute any
data component BMDevice consumes TimeOut
timeout publishes DataAvailable dataCurrent
provides ReadData dataOut
12IDL 3.0 Example
CORBA 3 CCM IDL
eventtype TimeOut eventtype DataAvailable
interface ReadData readonly attribute any
data component BMDevice consumes TimeOut
timeout publishes DataAvailable dataCurrent
provides ReadData dataOut
event source
13IDL 3.0 Example
CORBA 3 CCM IDL
eventtype TimeOut eventtype DataAvailable
interface ReadData readonly attribute any
data component BMDevice consumes TimeOut
timeout publishes DataAvailable dataCurrent
provides ReadData dataOut
data source (facet)
14Cadena Component Assembly
abstract distribution points
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
airframe
BM__LazyActiveComponent
15Cadena 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
rate group declaration
airframe
BM__LazyActiveComponent
16Cadena 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
create instance of LazyActive component called
AirFrame
airframe
BM__LazyActiveComponent
17Cadena 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
connect event INPUT port of current component
to event OUTPUT port of GPS component
airframe
BM__LazyActiveComponent
18Cadena 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
connect data INPUT port of current component to
data OUTPUT port of GPS component
airframe
BM__LazyActiveComponent
19Cadena 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
airframe
BM__LazyActiveComponent
create instance of DeviceComponent called GPS
20Cadena 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
airframe
BM__LazyActiveComponent
connect event INPUT port of current component
to event OUTPUT port of EventChannel
21Cadena Architecture
22Overview 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.
23CCM big picture
implementer
designers
Programming
Home Properties
Component Properties
IDL/CIDL File
User's Code
Language
Tools
IDL/CIDL
Default Properties
Compiler
CORBA
Stubs, Skeletons
Implementation
Component
Package
Assembly
Packaging
Component
CORBA
Tool
Tool
Assembly
Component
Package
Package
Component
packager
assembler
Descriptor
Assembly
Descriptor
User written file
softpkg
Deployment
CORBA
Descriptor
Compiler
Tool
Component
Package
Generated files
I will focus on
24Component 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.
25Component Assembly
26Deployment
- The deployment tool might interact with the user
to assign homes and component instances to hosts
and processes
27Requirements
- 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.
28Requirement (use case)
29Examples
- Input file basicsp.scenario
- Output file BasicspScenario.java
30Testing/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 cant 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)
31Tools
- 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
32Cost 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 peoples 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)
33Cost Estimation - Unadjusted Functional points
34Cost Estimation - Adjusted Functional points
35Cost Estimation - Adjusted Functional points
(cont)
- Adjusted FP
- FPunadjusted(.65.01sum of ratings)
- 84 (.65.0137)
- 85.68
36Project Plan
37References
- 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
38Acknowledgement
- Committee
- Dr. Hatcliff
- Dr. Hankley
- Dr. Dwyer
39Comments?
Thank you!