Current Version

Version @VERSION@ was released on @DATE@.

What is MICO?

The acronym MICO expands to MICO Is CORBA. The intention of this project is to provide a freely available and fully compliant implementation of the CORBA standard. MICO has become quite popular as an OpenSource project and is widely used for different purposes (see our success stories). As a major milestone, MICO has been branded as CORBA compliant by the OpenGroup, thus demonstrating that OpenSource can indeed produce industrial strength software. Our goal is to keep MICO compliant to the latest CORBA standard. The sources of MICO are placed under the GNU-copyright notice. The following design principles guided the implementation of MICO:

  • start from scratch: only use what standard APIs (Posix/Win32) have to offer; don't rely on propietary or specialized libraries.
  • use standard C++ for the implementation.
  • only make use of widely available, free, non-proprietary tools.
  • omit bells and whistles: only implement what is required for a CORBA compliant implementation.
  • clear design even for implementation internals to ensure extensibility.

We decided to implement MICO in C++. If you are interested in a Java implementation, you should take a look at JacORB. The current version of MICO is @VERSION@ including the following features:

  • IDL to C++ mapping
  • Dynamic Invocation Interface (DII)
  • Dynamic Skeleton Interface (DSI)
  • graphical Interface Repository browser that allows you to invoke arbitrary methods on arbitrary interfaces
  • Interface Repository (IR)
  • IIOP as native protocol (ORB prepared for multiprotocol support)
  • Portable Object Adapter (POA)
  • Objects by Value (OBV)
  • CORBA Components (CCM)
  • Support for using MICO from within X11 applications (Xt, Qt, and Gtk) and Tcl/Tk
  • Dynamic Any
  • Interceptors
  • Support for secure communication and authentication using SSL
  • Support for nested method invocations
  • Any offers an interface for inserting and extracting constructed types that were not known at compile time
  • Full BOA implementation, including all activation modes, support for object migration and the implementation repository
  • BOA can load object implementations into clients at runtime using loadable modules
  • CORBA Services:
    • Interoperable Naming service
    • Trading service
    • Event service
    • Relationship service
    • Property service
    • Time service

Projects

While in the past we have been able to maintain MICO, it becomes increasingly difficult for us to add new features due to our time constraints. On several occasions companies have stepped forward to fund the development of new code in MICO:

  • MICO/MT (funded by AT&T Broadband)
  • CORBASec L2 (funded by Deutsche Telekom)
  • CORBA Components (funded by Alcatel)
We hope that the MICO homepage can serve as a meeting point between companies and the open source community. If you are interested in providing some funds to implement parts of the CORBA specification missing in MICO, please let me know and I'll add a project description to this page. Your proposal should include timeline, milestones, deliverables and, of course, the compensation. There is only one requirement from us, namely that the resulting source code will be published under the GNU-GPL/LGPL license.

Source

The complete sources for MICO are freely available via anonymous ftp. The current version @VERSION@ runs on Sun Solaris, IBM AIX, HP-UX, Linux, Digital Unix, Ultrix, Windows NT and PocketPC and it shouldn't be too difficult to port it to other platforms. Click here for a list of changes. Please send bug reports or comments to the MICO mailing list.

The following packages are available:

  • Complete sources for MICO in .tar.gz and .zip format.
  • Anonymous CVS access:
    export CVSROOT=:pserver:anon@mico.org:/home/mico/cvsroot
    cvs login (passwd: 'anon')
    cvs checkout mico
The following tools are necessary to compile MICO: MICO has been reported to work on the following platforms. Let us know if you succeed in running MICO on other platforms
  • Solaris 2.5, 2.6, and 7 on Sun SPARC (gcc 2.95, native C++ compiler)
  • AIX 4.2 on IBM RS/6000 (gcc 2.95, native C++ compiler)
  • Linux 2.x on Intel x86 (gcc 2.95)
  • Digital Unix 4.x on DEC Alpha (gcc 2.95)
  • HP-UX 10.20 on PA-RISC (gcc 2.95, native C++ compiler)
  • Ultrix 4.3 on DEC Mips (gcc 2.95)
  • Linux 2.x on DEC Alpha (gcc 2.95)
  • SGI-IRIX on DEC Mips (gcc 2.95, native C++ compiler)
  • PowerMax OS (native C++ compiler)
  • Windows 9x/NT (Visual-C++ 5+SP3 and 6+SP1, Cygwin or MinGW)
  • FreeBSD 3.x on Intel x86 (gcc 2.95)
We heard rumors that MICO somehow works on the following platforms:
  • OS/2 on Intel x86 (emx 0.9)
  • DG/UX on Intel x86 (egcs 1.x)
  • LynxOS (egcs 1.x)

Books

"MICO: An Open Source CORBA Implementation"

The book includes a comprehensive documentation of MICO from an application programmer's point of view. The accompaning CD contains binaries of MICO as ready to run executables for the following architectures:

  • Solaris 2.6 on Sun SPARC
  • AIX 4.2 on IBM RS/6000
  • Linux 2.x on Intel x86
  • HP-UX 10.20 on PA-RISC
  • Windows 9x/NT on Intel x86
The book explains how to install and use MICO. A little tutorial gets you going with a sample CORBA application. All features of MICO are well documented both in the manual and in online man-pages. MICO is fully interoperable with other CORBA implementations, such as Orbix from Iona or VisiBroker from Borland. The manual contains a step-by-step procedure showing how to connect MICO with other CORBA implementations. It even includes sample programs from various CORBA textbooks to show you all aspects of CORBA.

Puder and Römer have achieved a landmark proof of the value of open-specification, open-source systems. The existence of commercial products based on the MICO CORBA implementation prove their work; this book proves their knowledge. You will find both of immense value in the tough job of building scalable, distributed, heterogeneous systems.

From the Foreword by Richard Mark Soley, Ph.D.
Chairman and CEO, Object Management Group, Inc.


"Middleware für verteilte Systeme"

(in German)

The book explains the internal structure of a middleware platform based on CORBA. Throughout the book the design and architecture of a middleware platform is described from two different perspectives: the view of an application programmer (using the middleware) and the view of a system programmer (implementing the middleware). MICO serves as a case study to describe a specific architecture using a micro-kernel approach. The book also serves as a reference to the internals of MICO. An English translation will soon be available.

Both books can be purchased in Europe from:

dpunkt.verlag für digitale Technologie
Ringstraße 19
69115 Heidelberg, Germany
fax: +49 - 6221 - 47 29 09
web: http://www.dpunkt.de/mico

and in North America from:

Morgan Kaufmann Publishers, Inc.
340 Pine Street, Sixth Floor
San Francisco, CA 94104-3205
fax: (415) 982-2665
web: http://www.mkp.com/mico

Documentation

The free documentation is a subset of the MICO distribution, that contains enough information to get you going. The documentation comes in various different flavours, depending on your preferred reading habits. The content of all the different versions is identical. The documentation provides a short introduction on middleware platforms as well as a tutorial on CORBA. The documentation also describes MICO in great detail.

Mailing Lists

Further development and other MICO related aspects are dicussed on the mico-devel mailing list. You can subscribe by clicking here.

There is also a low-traffic, read-only, moderated mailing list, mico-announce where announcements of new MICO releases or related software are sent occasionally. To subscribe, click here.

Before your subscription becomes effective, you will receive a confirmation message by email that you must reply to. The intent of this confirmation is to avoid illegal email addresses on the mailing list (for example by mistyping it on the Web subscription form).

Before sending a question over the mailing list, you might want to have a look at the searchable mailing list archive or the FAQ, to see if your problem was already discussed before.

Authors

The CORBA core was implemented by:

With a little help from some friends:

Success Stories

Drop us a mail if you want to see your project listed below...

  • Weather Channel uses MICO for the collection and distribution of weather data.
  • CorbaScript, an OO scripting language with access to all the CORBA functionality supports MICO.
  • MICO/E is an Eiffel version of MICO
  • MAQS (Management Architecture for QoS) aims at adding generic QoS support to CORBA. Its prototype implementation is based on MICO.
  • MICO Praktikum at University of Frankfurt, VSB
  • MICO Praktikum at TU Darmstadt
  • MICO has firewall support for the TIS-plug-gw, a TCP-proxy firewall.
  • Combat is a Tcl extension that gives access to CORBA functionality from Tcl.
  • Christoph Gebauer's Load Monitor and Interface Repository Browser.
  • KAM (market for small ads), a project to evaluate the TINA architecture in the Internet environment, is partially implemented using MICO.
  • The PACHA esprit project uses MICO as middleware to manage a cluster of PCs connected by an SCI network.
  • The Jaco3 esprit project uses MICO as middleware.
  • The MUSCLE (Movement for the Use of Smart Cards in a Linux Environment) uses MICO.

webmaster, Nov, 25th 2000