Search
 
 
 

Migrating CORBA 2.x applications to CCM and Web Services
Overview

Increasingly, over the last decade, CORBA (http://www.omg.org/) formed the basis of several of the leading Enterprise Application Integration (EAI) solutions. In fact, it is one of most widely deployed and well-proven mechanism for software objects to communicate with one another. As the complexity of solutions increased, there was growing need to extend to a universal component model, enabling inter-working with EJBs and support for SOAP/WSDL web services. CORBA Component Model (CCM) specification was crafted carefully over three years to assure full integration of J2EE, .NET, ActiveX, and CORBA 2 object model. CCM has been adopted as an OMG standard by its Board of Directors at the Technical Meeting in Yokohama, Japan, April-2002. CCM is now the only standard for integrating components across both multiple programming languages and multiple operating systems. iCMG's product K2 Component Server is the industry's first industrial strength Application Server based on CCM.

What is CORBA Component Model (CCM)?

CCM is a multi-language, multi-platform component standard from OMG, which represents a major extension for enterprise computing. CCM is the framework for supporting the component definition, code generation, packaging, assembly and deployment of all types of software components. Now, it will be possible to generate most of a server, within a CORBA Components framework, into which a developer can "drop" his business logic or component.

It is interesting to note that CCM is a technical improvement on EJB. In fact, CCM joins together the best of .NET and J2EE component models. The .NET is multi-language, single-platform, while J2EE is single-language and multi-platform.

CORBA 2.x    vs   CORBA 3.0 CCM

CCM adds first class component model to CORBA2.x object model. Moreover, CCM adds a sophisticated runtime environment for software components (C++, Java) and fully standardized support for assembly and deployment. An application server based on CCM such as K2 Component Server provides a uniform component environment. This is a difference to a pure CORBA application, where the ORB exists only virtually as part of two or more CORBA enabled applications.

A component server (CCM server) is a single or a set of real executable constructs (programs) managing and running components, whereas the components itself are no "normal" executables anymore i.e. they can only be executed within the CCM server. That means a CORBA component must implement certain mandatory interfaces and mechanism so that server can handle it. It has to fit/adjust to the framework, so to say. Of course, the component must also implement arbitrary and "uncensored" interfaces to implement its actual functionality.

The table below summarizes the new features in CORBA 3.0 CCM:

# Key Features CORBA 2.x CORBA 3.0 CCM
New Features
1 Component Model (CCM)
2 OMG CIDL
3 Component Implementation Framework
4 Container Programming Model
5 Packaging
6 Assembly
7 Deployment
8 Interface Repository Metamodel
9 CCM - EJB Interworking
Enhancements in CORBA 3.0 CORBA Component Model (CCM)
10 OMG IDL Object IDL Component IDL: with new keywords such as "components", "supports", "uses", "consumes" etc have been added
11 Interface Repository Object Interface Repository Essential "Component Interface Repository Interfaces" have been added for managing state-of-the-art components
Component Categories


The component categories are defined as valid combination of external API types, container type and CORBA usage model and can be summarized as follows:

 
Component
Categories
CORBA
Usage Model
Container
API Type
Primary Key
Service
Session
Process
Entity
Stateless
Conversational
Durable
Durable
Session
Session
Entity
Entity
No
No
No
Yes
CORBA Components vs. EJB

CCM provides several advanced component features over EJB such as:

 CCM supports multi-language unlike J2EE which supports only Java

 CCM provides more sophisticated choices of component types (service, session, process    & entity) whereas EJB which support only session and entity beans

 CCM components have multiple interfaces so that each interface could represent a    particular viewpoint for interaction.

 Each CCM component supports both synchronous and asynchronous communication    which could be used as an efficient means to communicate and componentisation of    enterprise architecture

 CCM also have concept called ports, which are useful for assembly purposes. This    makes out of box integration possible i.e. no coding is required.

 Moreover, CCM supports distributed deployment of components in multiple component    servers (CCM servers) unlike J2EE where EJBs are deployed in single host server i.e. the    application server.

 Interestingly, CCM provides 4 step component development process i.e. design,    develop, assemble and deploy which provides flexibility over 3-steps (design, develop    and deploy) component development process defined by EJB.

Who needs upgrade/migration strategy?
If you have realised projects with ORBs based on CORBA 1.x or CORBA 2.x and facing problems such as:
  •  Have lots of CORBA legacy code in mission critical apps,
  •  CORBA 2.x doesn't support components,
  •  Never got the reuse benefits that were promised,
  •  EAI tools are expensive alternative,
  •  Need EAI retraining for staff,
  •  Must develop solutions faster,
  •  Management is outsourcing IT,
  •  Mainframe legacy systems needs to be integrated,
  •  Need alternative to legacy replacement with ERP/CRM behemoths

    Adopting CCM will be a step forward towards Component Based Development (CBD).

    The needs can vary from projects and domains.

  • You may like to bring in the standard IDL into a CCM environment automatically or

  • You may decide to make the domain functions available as CCM components or

  • You may need high performance component platform for deployment and management of components

Benefits of component based development with CCM

With adoption of CCM specification by OMG, industry has technology, standards and tools in place which will ensure long promised benefits of component based development. CCM based applications will enable "Reuse" and "Assembly" that will be the key to productivity enhancement, software longevity and cost reductions.

  • Component assembly instead of integration

Assembly combines the right components to develop an enterprise application where each component offers a specific set of services for the application. This will help to develop quality software and increase productivity. This is similar to the process followed in the manufacturing industry.

  • Enterprise applications based on distributed, configurable components

A CCM application can be developed by components written in different languages (such as Java, C++), multiple operating systems and deployed in several servers. This enables an enterprise to take advantages of its heterogeneous programming environment unlike other component models such as J2EE where EJB applications are developed in Java and deployed in a single host i.e. the application server.

  • Architects to have better control of the application

CCM deployment model enables software architects to have a fine-grain control over the assembly of their distributed component-based applications. This will help architects to focus on assembly and deployment actions such as installing components into CCM servers, instantiating them, configuring their non-functional and functional properties, and interconnecting component instances without dealing with other aspects such as code generation and complex rules of programming.

  • Well defined steps and roles for component development

CCM provides complete process of designing, developing, packaging, assembling, deployment and executing the distributed components. This provides flexibility over 3-steps (develop, package and deploy) component development process defined by other component models.


Steps for migrating CORBA 2.x apps to CCM with K2

The migration to CORBA 3.0 CCM is a straightforward process. There are several key factors that will affect the migration such as managing multiple ORBs, programming languages and platforms. We suggest that initial efforts should start with a proof of concept by extending a subset of existing CORBA 2.x application.

The process of a generic migration project could be categorised into following steps. The key steps are:

  ORB based system

CCM based systems


K2 Component Developers' Kit (CDK)

The K2 Component Developers' Kit (CDK) supports the development of CCM components and enable easy steps for migrating existing CORBA 2.x applications to CORBA 3.0 CCM by providing tools, documentation and migration examples.

Conclusion

With adoption of CCM specification by OMG, industry has technology, standards and tools in place which will ensure long promised benefits of 100% componentization of enterprise business architecture using component based development. CCM based server will provides SINGLE platform for COMPONENT based "development" as well as "integration" for today and tomorrow's enterprise needs. Fortune Global 2000 companies having 15-18+ year of IT assets will find that CCM based applications will enable "Reuse" and "Assembly" that will be the key to productivity enhancement, software longevity and cost reductions.

The migration strategy to CORBA 3.0 CCM with K2 Component Server will help in improving the overall software quality and ensure longevity. K2 provides an upgrade path from CORBA 2.x middleware and will help to retain existing investments in CORBA. iCMG support K2 CCM and is strongest, most stable vendors in CORBA 3.0 market. In fact, the cost of migration and upgradation to CORBA 3.0 CCM with K2 is less than an annual maintenance contract from several ORB vendors.

Download K2 now for evaluation.

Would you like to receive the detailed white paper on "Upgrade CORBA 2.x applications to CORBA 3.0 CCM and Web Services" click here...
 
   
Copyright © 2008 iCMG. All rights reserved.
Site Index | Contact Us | Legal & Privacy Policy