CORBA based Enterprise Systems
Distributed Systems and CORBA Architecture
A remarkable number of real-world, mission-critical systems use CORBA. Including distributed
real-time and embedded systems, e.g., telecom/datacomm, aerospace, defense, control systems,
industrial automation, online financial services, gaming and multimedia, robotics, automotive
systems. Know who-who of the world s largest enterprises are using CORBA. Learn about that
and CORBA Architecture in the first session of the programme.
Middleware as distributed OS
Design Issues for Distributed Systems
CORBA vs Web Services/.NET/J2EE
OMA Object Management Architecture
ORB Object Request Broker
CORBA Services and Facilities
OMG IDL Interface Definition Language
Mapping of IDL to specific language
Clients
Object Implementations
Object References
Communication Protocol GIOP/ IIOP
Dynamic Capabilities
o Any
o DynAny
o DII Dynamic Interface Invocation
o DSI Dynamic Skeleton Invocation
POA Portable Object Adapter
o POA Manager
o POA Policies
o Reference Creation
o Request Processing
o Object Activation
Servant Manager
o Default Servant Manager
o Servant Activator
o Servant Locator
Interface Repository
Implementation Repository
CORBA and Link to MDA
Although MDA can target every middleware platform and will map to all that have significant
market presence, CORBA plays a key role as a target platform because of its programming
language-, operating system-, and vendor-independence.
Modeling CORBA application using UML2.0
Apply QoS Profile to CORBA application model
Apply CORBA Profile to UML Model
Apply CCM Profile to UML Model
CORBA Programming
CORBA provides powerful programming model that reduces writing infrastructure codes. The
object-activation model (Servant managers) and other idioms eases programmers from writing
low level codes and so enables rapid development and high productivity.
CORBA application design issues
o Granularity of objects and operations
o Volume of data
o Performance issues
o Design operations
& 61607; Argument type in/out/inout
& 61607; Return type
& 61607; Oneway
Managing servants
o Object lifecycle
o Life cycle policies
o Servant Managers
Memory Management
o Rules Of parameters passed between
client and servers
Distributed Logging
o Standard CORBA Log Service
o CORBA Lightweight Log Service
Distributed Exceptions
o System Exceptions
o User defined Exceptions
Debugging CORBA application
Debug applications distributed across network
CORBA in Telecom
Long considered to be bread & butter for CORBA. It s commonly said that if you make a call,
CORBA has been used somewhere.
Recent adoption of CORBA as choice of technology by TEC (Telecom Engineering
Communications (India) makes it mandatory for Telecom Equipment manufacturers to be
TMF513 business interface compliant. Learn about that and also how to enable CORBA
applications interworking with TMN Systems Specification.
TMF
o Overview
o Architecture
o Business problem
o Business processes
o Process definition
o Mapping of process to eTOM
o ETOM business process framework
Requirement
JIDM
o Overview
o Architecture
o JIDM CORBA Facilities
& 61607; Overview
& 61607; JIDM Gateways (Manager
side and Agent side)
o SNMP CORBA Facilities
& 61607; Overview
o Business Requirement Model
o Use Case Model
o Information model
& 61607; SNMP Management Facilities
& 61607; SNMP Management
Information Repository
CORBA Component Model (CCM)
CCM is a specification to build server side robust, scalable application. It simplifies system
specification, programming model, assembly framework, packaging and deployment of software
systems. This makes it possible to design, develop and deploy complex softwares over
heterogeneous infrastructures.
Component Model
o Component definition, identity,
navigation.
o Component Levels (basic and
extended)
Facets
Receptacles
Event Publisher (Emitter and Publisher)
Event Consumer (Event Sink)
Component configuration
Component Implementation Framework
o Component Implementation Definition
o Component Executor
o Composition structure
o State information
o Component Home
Container Programming Model
Component containers
o Component lifetime management
o Transaction
o Security
o Events
o Persistence
Component categories
o Service component
o Session component
o Process component
o Entity component
Integrating with EJB
o Introduction
o EJB view of CORBA component
o Compare EJB with CCM
Packaging of component
o Package descriptor
o Component descriptor
o Deployment descriptor
Assembly
o Component Assembly Packaging
o Assembly Descriptor
Application/Assembly deployment
o Assembly Deployment descriptor
o Collocation mechanism for deployment
QoS
o Stream ports
Distributed Event Notification Service
The main design goal is to allow asynchronous communication between clients and server.
Service Description
Architecture Features
Overview
Structured Events
Event Filtering with Filter Objects
Quality of Service Administration
Sharing subscriptions
Filtered Typed Events
The Event Type Repository
Interfaces Overview
o CosNotification Module
o CosNotifyFilter Module
o CosNotifyComm Module
o CosNotifyChannelComm Module
o CosTypedNotifyChannel Module
CORBA Fault Tolerance Service
Many different kinds of applications, developed by the members of the OMG and the users of
CORBA, have a need for fault tolerance. These applications range from very large critical
systems (such as air traffic control and defense systems) to smaller critical systems (such as 911
and medical systems) to embedded applications (such as aircraft instrumentation and
manufacturing control applications) to communication systems (such as telephony and
networking systems) to enterprise applications (such as financial and supply chain applications).
A standard that attempts to meet all of the requirements of this wide spectrum of applications
Overview
o FT for diverse applications
o Basic Concepts
o Requirements
o Limitations
Architecture of basic FT
o Overview
o Interoperable Group References
o Modes of Profile Addressing
o Accessing Server Object Groups
o Extensions to CORBA Failover
Semantics
o Most Recent Object Group Reference
o Transparent Reinvocation
o Transport Hearbeats
Replication Management
o Overview
o Fault Monitoring and Timeout
o Checkpoint Interval
o Replication Manager
o Object Group Manager
o Obtaining Reference for the Object
Group Manager
Use Cases Fault management
o Architecture Overview
o Connecting Fault Detectors
o Pull-Based Monitoring
o Fault Event Types
o Fault Notifier
Logging & Recovery Management
o Overview
o Logging Mechanism
o Recovery Mechanism
o Checkpointable and updateable
Interfaces
ORB specific
The vendors provide their own propriety implementation of standard to satisfy specific needs,
driven by actual use cases and real life situations. The result is very pragmatic implementations
that solve very real problems.
Service Description
CORBA QoS Policies
Building Multithreaded Application
Configuring Application
Implementation Repository
IDL
The OMG Interface Definition Language (IDL) is the language used to describe the interfaces that
client objects call and object implementations provide. An interface definition written in OMG IDL
completely defines the interface and fully specifies each operation s parameters.
An OMG IDL interface provides the information needed to develop clients that use the interface s
operations.
IDL to C
The C mapping tries to avoid limiting the implementation freedoms of ORB developers. For
each OMG IDL and CORBA construct, the C mapping explains the syntax and semantics of
using the construct from C .
The design of the C mapping was driven by a number of considerations, including a design
that achieves reasonable performance, portability, efficiency, and usability for OMG IDL-to-C
implementations. Several other considerations are outlined in this section.
Overview
Import Declaration
Module Declaration
Interface Declaration
Value Declaration
Constant Declaration
Type Declaration
Exception Declaration
Operation Declaration
Attribute Declaration
Event Declaration
Component Declaration
Home DeclarationValuetypes
o Architecture
o Standard Value Box Definitions
o Language Mappings
o Custom Marshalling
Any
Abstract Interface Semantics
o Overview
o Semantics of Abstract Interface
o Usage Guidelines
IDL Designing
o IDL Name Space Management
o IDL File Naming IDL Identifiers
o IDL Word Choice and Case
o IDL Comments
o IDL Structure
o Designing IDL for Performance
o Designing IDL for Performance
Granularity
o Designing IDL for Batching
IDL Patterns
o IDL Operations
o IDL Inheritance
o IDL Exceptions
o IDL Callbacks
o IDL Distributed Iterators
Overview
Mapping for
o Modules
o Interfaces
o Constants
o Basic Data Types
o Enums
o String Types
o Wide String Types
o Structured Types
o Structs
o Fixed Types
o Union Types
o Sequence Types
o Array Types
o Typedef
o Any Type
o Valuetypes
o Abstract Interface Type
o Exception Type
o Operation and AttributesArguments to
Operations
o Argument Passing Considerations
o Pseudo Objects to C
Environment
o Interface Description
o Environment C Class
o Memory Management
Interface Description, C Class and Memory
Management of
o Named Value
o NVList
o Request
o Context
o TypeCode
o ORB
& 61607; Mapping of ORB Initialization
Object
Local Object
Server Side Mapping
Implementing Interfaces
o Mapping of PortableServer::Servant
o Servant Reference Counting Mix-in
Servant Memory Management
Considerations
o ServantBase_var Class
o Skeleton Operations
o Inheritance-Based Interface
Implementation
o Delegation-Based Interface
Implementation
Implementing Operations
o Skeleton Derivation from Object
Mapping of DSI to C
o Mapping of ServerRequest to C
o Handling operation Parameters and
Result
o Mapping of PortableServer Dynamic
Implementation Routine
PortableServer Functions
Mapping for PortableServer:ServantManager
o Mapping for Cookie
o ServantManagers and
AdapterActivation
o Server Side Mapping for Abstract
Interfaces
Alternative Mapping for C
o Without Namespaces
o Without Exception Handling
C Keywords
POA
The ORB is an abstraction visible to both the client and server. The POA is an object visible to
the server. User-supplied implementations are registered with the POA. Learn all about POA and
its capabilities
POA Architecture
o Model Components
o POA Creation
o Reference Creation
o Request Processing
o Object Activation States
o Implicit Activation
o Dynamic Skeleton Interface
Interfaces And Descriptions
o The Servant IDL TypePOAManager
Interface
o AdapterActivator Interface
o ServantManager Interface
o ServantActivator Interface
o ServantLocator Interface
o POA Policy Objects
o POA Interface
UML Description of Portable Server
Usage Scenarios Getting the RootPOA
o Creating a POA
o Explicit Activation
o Creating References before Activation
o Servant Manager Definition and
Creation
o Object Activation on Demand
o Persistent Objects with POA assigned
Ids
o Multiple object Ids Mapping to a single
Servant
o One Servant for All Objects
ORB Interface
Overview
ORB operations
o ORB Identity
o Converting Object References to
Strings
o Getting Service Informations
o Thread-Related Operations
Object References Operations
Determining the Object Interface
Duplicating and Releasing copies of Object
References
Nil Object References
Equivalence Checking Operations
Probing for Object Non-Existence
Object Reference Identity
Getting policy Associated with the Object
Getting the Component Associated with the
objectGetting the ORB
LocalObject Operations
ValueBase Operations
ValueBase Operations
ORB and OA initialization and Initial
References
o ORB Initialization
o Obtaining Initial Object References
Policy Object
o Definition of Policy Objects
o Creation of Policy Objects
o Usage of Policy Objects
o Policy associated with Execution
Environment
o Specification of New Policy Objects
o Standard Policies
o Management of PoliciesClient Side
Policy Management
o Server Side Policy Management
o Policy Management Interfaces
Management of Policy Domains
o Basic concept
o Domain Management Operations
TypeCodes
o The TypeCode Interface
o TypeCode Constants
o Creating TypeCodes
Exceptions
o System Exceptions
& 61607; Summary of Standard System
Exceptions
o User Defined Exception
Portable Interceptor
Introduction
o Object Creation
o Client Sends Request
o Server Receives Request
o Server Sends Reply
o Client Receives Reply
Interceptor Interface
Portable Interceptor Current
o Overview
o Obtaining the Portable Interceptor
Current
o Portable Interceptor Current Interface
Use of Portable Interceptor Current IOR
Interceptor
Request Interceptors
o Design Principles
o General Flow Rule
o The Flow Stack Visual Model
o The Request Interceptor Points
o Client-Side Interceptor
o Client-Side Interception PointsClient-
Side Interception Point Flow
o Server-Side Interceptor
o Server-Side Interceptor Points
o Server-Side Interception Point Flow
o Request Information
& 61607; Client Request Information
& 61607; Server Request
o Overview
o IOR Interceptor Interfaces
o IOR Info Interface
Policy Factory
Registering Interceptors
o ORBInitializer Interface
o ORBInitInfo Interface
o register_orb_initializer Operation
o Notes about Registering Interceptors
Dynamic Initial References
o Register_initial_reference
Interface Repository
Overview and Scope
Basics
o Names and Identifiers Types and
TypeCodes
o Interface Repository Objects
o Structure and Navigation of the
Interfaces
Interface Repository
Interfaces Repository Ids
DII, DSI and DynAny
Overview and Scope
Basics
o Names and Identifiers Types and
TypeCodes
o Interface Repository Objects
o Structure and Navigation of the
Interfaces
Interface Repository
Interfaces Repository Ids
Lab Exercises Basic
1. CORBA programming walk through. See a basic CORBA Client-Server working.
2. Using basic IDL types in your own programme.
3. Using constructed types (sequence, structure, any, union, array etc.) in your own example.
4. Using user defined exception in your own programme.
5. Implementing Valuetype.
6. Send dynamic request (DII). Invoking server without stubs.
7. Implementing Dynamic Servant (DSI).
Lab Exercises Advance
1. CORBA Application Modeling with UML2.0.
2. Building SOA based Web Services using CORBA.
3. Using CORBA Notification Service to build distributed Event based application.
4. Component Development and Deployment in CCM
5. CCM interworking with EJBs and .NET components.
6. Migrate CORBA2.x application to CORBA3.x (CCM).
7. CORBA FT at work.
Case Study
As a part of training all participants will be required to develop an application. That will include
writing IDL, clients, servants and Server. The participants may do this individually or in a group
depending on the availability of time and computer.
About InvariantLogic - Training Provider
InvariantLogic - This company is into training in OMG technologies, including CORBA, UML, MDA and SOA etc.
We have two modes of training, we prefer and promote instructor based training anywhere in India. But also have web based online training courses as well.
Inspired by requirement in the industry because of lack of available experts esp in advance technology like CORBA and UML etc, we decided to launch...