OpenCCM: The Open CORBA Components Platform 3rd ObjectWeb Conference
20th November 2003, INRIA Rocquencourt, France
Philippe Merle INRIA Futurs – Lille – Jacquard Project OpenCCM Project Leader
www.objectweb.org
Outline
ÎCORBA Components specification ÎOpenCCM goals ÎOpenCCM main features
¾The open production tool chain ¾The open packaging and assembling tool chain ¾The open distributed deployment infrastructure ¾The open container runtime framework ¾The open management framework
ÎOpenCCM supported environments ÎOpenCCM perspectives www.objectweb.org
ObjectWeb - D2 - November 2003
1
CORBA Components Specification
ÎDefined by the Object Management Group (OMG) ÎA set of concepts, notations, and APIs to ¾Design ¾Implement ¾Package ¾Assemble ¾Deploy ¾Execute
distributed, heterogeneous, secure, transactional, server-side scalable, CORBA component-based applications www.objectweb.org
ObjectWeb - D3 - November 2003
OpenCCM Goals
ÎFederate a world-wide community around CORBA component-based middleware and applications ¾Users, developers, and contributors ¾Industrial and academic R&D zTHALES, Cadena from Kansas University, …
ÎProvide the Open CORBA Components platform ¾Reference implementation ¾ORB product independent ¾Modular, extensible and adaptable for building CCM++
ÎSee at http://openccm.objectweb.org ¾Open source licensed under LGPL ¾Hosted by the ObjectWeb consortium www.objectweb.org
ObjectWeb - D4 - November 2003
2
Main Features
ÎThe open production tool chain ¾Design, define, implement, and compile CORBA components
ÎThe open packaging and assembling tool chain ¾Package and assemble CORBA components
ÎThe open distributed deployment infrastructure ¾Deploy, install, instantiate, and configure CORBA components
ÎThe open container runtime framework ¾Host and execute CORBA components
ÎThe open management framework ¾Discover, introspect, manage, monitor and reconfigure CORBA components www.objectweb.org
ObjectWeb - D5 - November 2003
The Open Production Tool Chain ÎFront-end compilers for ¾OMG Interface Definition Language 3.0 (OMG IDL) ¾OMG Persistent State Definition Language (OMG PSS) ¾OMG Component Implementation Definition Language (OMG CIDL) UML Profile for CORBA Components ÎMiddle-end repository ¾Abstract Syntax Tree (AST) ¾CORBA 3.0.x Interface Repository ÎBack-end generators for ¾Client and server equivalent OMG IDL 2.x mapping ¾CIDL related Java container code ¾PSDL related Java interfaces and implementations ¾Java templates for implementing components ¾OMG IDL 3.0, PSDL, CIDL, and UML pretty-printers ÎTo do Generation of XML CCD, CSD, and CPF from OMG CIDL www.objectweb.org
ObjectWeb - D6 - November 2003
3
The Open Production Tool Chain Modular & Extensible Architecture IDE XMI UML UML XMI XMIfiles UML files
XMI UML Front end
OMG IDL/PSDL/CIDL Front end
Other Other Front Front ends ends Other files Other Other files Notations www.objectweb.org
IDL/CIDL IDL/CIDL OMG IDL/ files files PSDL/CIDL
IDL/PSDL/CIDL IDL/PSDL/CIDL Generators Generators
UML
IDL IDL CIDL OMG IDL/ CIDL files PSDL/CIDL files
XMI files XMI files XMI UML
XMI UML XMI Generator Generators
OpenCCM Interface Repository
Container code Stubs/skeletons Generators Generators
Container code
XML XML CCD CCD Generator Generators
XML XML XML CORBA Component Component Component descriptor descriptor descriptors
Component Component Implementation Implementation Generators Generators
Implementation templates
Other generators Generators
Other Files
ObjectWeb - D7 - November 2003
Cadena from Kansas University = IDE Eclipse + OpenCCM
www.objectweb.org
ObjectWeb - D8 - November 2003
4
The Open Packaging and Assembling Tool Chain
ÎA stand-one packaging and assembling tool ¾All CCM XML descriptors and ZIP archives supported
www.objectweb.org
ObjectWeb - D9 - November 2003
The Open Packaging and Assembling Tool Chain
ÎA software framework for building customized packaging and assembling tools
Data Binding
44DTD XML XML 4DTD DTD XML CCM du CCM du CCM du CCM XML DTDs
Zeus + Apollon
Zeus = XML DTD Æ Java Data classes Apollon = XML DTD Æ Java GUI classes
Swing Binding ZIP Archives Code XML Plug-in
XML Plug-in
Generic Browser Framework
ÎUsers can build their own P&A tool www.objectweb.org
ObjectWeb - D10 - November 2003
5
The Open Distributed Deployment Infrastructure
ÎMain supported features ¾All CCM XML descriptors and ZIP archives ¾CosNaming, CosTrading, and HomeFinder services ¾All Components::Deployment API
ÎComponent-based deployment infrastructure ¾IST COACH Distributed Computing Infrastructure (DCI) ¾Possible injection of non functional properties as persistency, transactions, security, etc. via containers
ÎTransactional distributed deployment ¾Rollback deployment when failures www.objectweb.org
ObjectWeb - D11 - November 2003
COACH Distributed Computing Infrastructure
www.objectweb.org
ObjectWeb - D12 - November 2003
6
Permanent Components
DCIManager NodeManager
NodeManager
Node_1
NodeManager
Node_3
Node_2
Middleware
CORBA www.objectweb.org
ObjectWeb - D13 - November 2003
CORBA Assembly Installation
Assigned Assembly XML+ Code
DCIManager NodeManager
NodeManager Installed Assembly Node_1
COACH www.objectweb.org
NodeManager
Node_3
Node_2
Middleware ObjectWeb - D14 - November 2003
7
CORBA Assembly Instantiation
AssemblyMgr instantiate
DCIManager NodeManager
NodeManager Installed Assembly Node_1
NodeManager
Node_3
Node_2
Middleware
COACH www.objectweb.org
ObjectWeb - D15 - November 2003
CORBA Assembly Instantiation
AssemblyMgr DCIManager NodeManager
NodeManager Installed Assembly Node_1
COACH www.objectweb.org
NodeManager
Node_3
Node_2
Middleware ObjectWeb - D16 - November 2003
8
CORBA Component Configuration & Interconnection Running Assembly
AssemblyMgr DCIManager NodeManager
NodeManager Installed Assembly Node_1
NodeManager
Node_3
Node_2
COACH
Middleware
www.objectweb.org
ObjectWeb - D17 - November 2003
OpenCCM DCI Components Î DCIManager = a deployment domain ¾ Provides AssemblyFactory and HomeFinder
Î NodeManager = a virtual host ¾ Provides ComponentInstallation and ServerActivator
Î ComponentServerManager = a component server ¾ Provides ComponentServer
Î ContainerManager = a container ¾ Provides Container
Î AssemblyManager = an assembly deployment controller ¾ Provides Assembly
Î Each component provides other ports for management and supervision purposes
www.objectweb.org
ObjectWeb - D18 - November 2003
9
The Open Container Runtime Framework
ÎBuilt on top of CORBA 2.4 ÎScripts to start / stop CORBA services ¾CosNaming, CosTrading, and CosTransactions
ÎRuntime library for session components ¾Set of classes inherited by generated container code
ÎOMG Persistent State Service (PSS) implementation ¾Built on top of Java Data Object (JDO) ¾Currently Kodo product ¾Soon ObjectWeb Speedo
ÎFlexible Container Framework soon ¾IST COACH Extensible Container Architecture (ECA) www.objectweb.org
ObjectWeb - D19 - November 2003
Runtime Architecture
Assembly
Domain Node
Server
DCI Components Plugin
Fork
Philosopher Observer
Application Components
OpenCCM Flexible Container Framework
Plugin
OpenCCM PSS Runtime
CORBA 2.4 or higher
JDO Runtime
CosNaming Service
www.objectweb.org
CosTrading Service
CosTransactions Service
CosPersistentState Service
Data Stores
ObjectWeb - D20 - November 2003
10
The Open Management Framework
ÎA software framework for building graphical UI management browser ¾Extensible by plug-ins
ÎVarious browser plug-ins for ¾CORBA Object, Component and Home ¾Interface Repository ¾CosNaming ¾CosTrading ¾DCI
ÎIST COACH monitoring and testing infrastructure www.objectweb.org
ObjectWeb - D21 - November 2003
The OpenCCM Browser
www.objectweb.org
ObjectWeb - D22 - November 2003
11
IST COACH Monitoring and Testing Infrastructure Actor GUI
Web Browser
CORBA Components
Logging Components
Interface Repository
OpenCCM component servers Portable Interceptors for monitoring CORBA www.objectweb.org
ObjectWeb - D23 - November 2003
IST COACH Monitoring and Testing Infrastructure
www.objectweb.org
ObjectWeb - D24 - November 2003
12
IST COACH Monitoring and Testing Infrastructure
www.objectweb.org
ObjectWeb - D25 - November 2003
IST COACH Monitoring and Testing Infrastructure
www.objectweb.org
ObjectWeb - D26 - November 2003
13
Supported Environments For All OpenCCM Features
ÎJava 1.2.1, 1.3.x & 1.4.x ÎOperating systems
¾ Linux ¾ Solaris ¾ Windows ¾ Windows CE for PDA
ÎCORBA products
¾ Borland Enterprise Server (BES) 5.0.2 & 5.2 ¾ IONA ORBacus 4.1.x ¾ JacORB 2.0 ¾ The Community OpenORB 1.2.1, 1.3.0, 1.3.1 & 1.4.0 ¾ Potentially any full CORBA 2.4 implementation
www.objectweb.org
ObjectWeb - D27 - November 2003
Perspectives for OpenCCM 1.0
ÎImprove and complete all current main features ÎProvide the full container support ¾CORBA Component Descriptor generator ¾Service, Process, and Entity containers ¾All CCM container API ¾Services injected in containers zPersistency, transaction, security, notification
¾IST COACH Extensible Container Architecture
ÎLightweight CORBA Components in C++ ¾THALES contribution in ITEA OSMOSE project
ÎOpen Model-Driven CORBA Components platform
¾Design components, implementations, and assemblies with UML ¾Generate all OMG IDL, CIDL, implementations, CAD files ¾Ready to be deployed and managed
www.objectweb.org
ObjectWeb - D28 - November 2003
14
Thank You – Q/A ÎCurrent release = 0.8.1 ÎWeb site ¾On-line information and documentation
¾http://openccm.objectweb.org
ÎForge site ¾Releases, CVS, bug tracking, current tasks
¾http://forge.objectweb.org/projects/openccm
ÎMailing lists ¾
[email protected] ¾
[email protected] ¾
[email protected] www.objectweb.org
ObjectWeb - D29 - November 2003
15