Evolution of CORBA Framework: An Experience Study

Ruslan Shevchenko <Ruslan@Shevchenko.Kiev.UA>
Grad-Soft ltd, Kiev, Ukraine
http://www.gradsoft.kiev.ua
Anatoliy Doroshenko <dor@isofts.kiev.ua>
Institute Of Software Systems
National Academy Of Science of Ukraine

pdf version of this document.

Abstract:

In this experience study some evolution of an IT Enterprise distributed component framework based on CORBA architecture is presented. Some methodological and pragmatical aspects of software maintaince and evolution are discussed. Some additions to CORBA standards are proposed along with roadmap of future development.

Introduction

The task of building and maintance of integrated enterprise system is quite different from traditional software development. The main pecularities are:

In this paper we analise how this peculiarities can be handled in CORBA-based object-oriented framework and what adoption is required to standard development technique and software engineering methods.

CORBA as object-oriented framework

CORBA is a vendor-neutral standard for distributed object architecture, supported by Object Management Group - consortium from over 700 companies. CORBA gives us language independent object oriented framework for distributed computing based on open standards [4]. The CORBA itself defines following major parts:

Future development of standard is concentrated on building component framework [5] and integration IDL with software modeling techniques.

Experience Study

The framework of CORBA presented above looks good in theory. We implemented the first CORBA based system in 1997 and are maintaining and extending it up to today. Along these years we realised that CORBA is a nice framework for splitting system into distributed parts. But now the scope of CORBA usage is limited to this functionality. Some lessons we learned in these years are following:

What is needed in CORBA to be ideal OO Framework

Today's CORBA purpose is organization of interfaces between remote parts. Extending its usage for modeling and logical interface definition framework which can be used in real life large scale projects requires additional efforts.

Comparison of object frameworks

Following is a comparison of most popular technologies in context of future requirements for developments of enterprise-wide systems:


\begin{displaymath}
\begin{array}{\vert l \vert c \vert c \vert c \vert}\hline
...
...e
Platform-Independence & Yes & Yes & NO  \hline
\end{array}\end{displaymath}

So as we seen none of existing OO frameworks provide full set of features necessary for large-scale projects. Today preferred architecture of enterprise software development are: EJB-based for long-lifecycle projects, COM-based for projects with short lifecycle. Ironically, there are no standard-based technologies for automation connection of EJB and COM. CORBA in its todays state can not be used as general concept framework, but from other side it is most suitable to be extended to full-featured technology.

Conclusion

CORBA can be transformed from framework for description of distribution architecture into general object-oriented environment which would be suitable for modeling and developing of large-scale software complexes. In this paper the necessary extensions to object model are described. They can be implemented as extensions of IDL and CORBA Component Model. Some of the necessary prototype extensions to services standard set are build by Grad-Soft [11] team and proved to be applicable in real-life projects. Some software is available from Grad-Soft web page, http://www.gradsoft.kiev.ua, free for non-commercial usage.

Akcnowledgements

I want to thanks Michi Henning - Chief Scientist of IONA Technologies, for review early version of this paper and discussion. This work was impossible without effort of Grad-Soft software engineers: Alexandr Yanovec, Vladimir Joss, Sergey Krisanov and others.

Bibliography

1
Dave Beazley.
Swig: Simplicified Wrapper Interface Generator, 1996-2001.
http://www.swig.org.

2
Ruslan Shevchenko. Anatoliy Doroshenko.
A method of mediators for building web interfaces of corba distributed enterprose applications.
Lecture Notes in Informatics V. 4 - Proceeding of Information Systems Technology and its Applications 2001, 2001.
ISBN 3-88579-331-8.

3
Ruslan Shevchenko; Anatoliy Doroshenko.
Tecniques for increasing performance of corba based distributed applications.
Parallel Computer Technologies proc. 6-th int, conf. PACT2001 LNCS vol 2127 pp 319-328, 2001.
Novosibirsk, Russia.

4
Object Management Group, editor.
The Common Object Request Broker: Architecture & Specification v. 2.3.
OMG, 1999.
formal/99-10-07.

5
Object Management Group, editor.
CORBA Components.
OMG, 1999.
ccm/99-07-01.

6
Object Management Group, editor.
The Common Object Request Broker: Architecture & Specification v. 2.5.
OMG, 2001.
formal/2001-09-01.

7
Remi Bastide; Philippe Palanque; Ousmane Sy; David Havarre.
Formal specifications of corba sevices: Experience and lessons learned.
ACM SIGPLAN Notices Vol. 35 Num. 10, 2000.
Processing OOPSLA-2000.

8
Michi Henning.
Binding, migration and scalabilty in corba.
1998.
http://www.ooc.com.au/ michi.

9
Oracle Inc.
Oracle8i Enterprose JavaBeans and CORBA developers guide., 1999.

10
Sybase Inc.
Sybase and CORBA Whiteparer, 1998.

11
Grad-Soft ltd.
GradSoft Home Page, 1999-2001.
http://www.gradsoft.com.ua.

12
Phillip Merle and Others.
CORBAWeb home page, 1996-2000.
http://corbaweb.lifl.fr.

13
Matteo Pradella; Matteo Rossi et al.
A formal approach for designing corba based applications.
Processing of the 2000 International Conference on Software Engeneering June 4-11 Limerik Ireland, 2000.

14
Sergey Krisanov Ruslan Shevchenko.
mod_cbroker: Programming Guide, 2000-2001.
GradSoft-PR-e-05.12.2000-2.0.0.

15
Ruslan Shevchenko.
UAKGQuery: Programming Guide, 1999-2001.
GradSoft-PR-e-16.06.2000-1.5.

16
Ruslan Shevchenko.
Analysis of efficiency enhancing methods of corba based distributed applications.
Proc. 2-nd Int. Conf. on Programming, May 23-26, 2000, Kiev, Ukraine, 2000.
pp 226-240 (in Russian).

17
S. Vinoski.
Collocation optimizations for corba.
C++ Report, 1999.
Vol. 11 No 9.