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 (deprecated feature)
- Portable Interceptors (PI)
- 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 (deprecated feature), including all activation modes,
support for object migration and the implementation repository
- BOA can load object implementations into clients at runtime using
loadable modules
- Multi-threading (MT): support for thread-pool and
thread-per-connection concurrency models
- CORBA Services:
- Interoperable Naming service
- Trading service
- Event service
- Relationship service
- Property service
- Time service
- Security service
(deprecated feature - the feature will be removed in some of future MICO
versions)
|
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:
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.
You can also purchase commercial support and order new MICO features
development under a commercial support contract. Click here
for more information about MICO commercial support.
|
Sponsors
The San Francisco State University is hosting the www.mico.org homepage as well as our mailing lists.
The MICO development is currently funded as part of the European
Union project COACH (Component Based
Open Source Architecture for Distributed Telecom
Applications) under the Information Society Technologies (IST) Programme
(Project IST-2001-34445, Duration: 1 April 2002 to 31 March 2004) 

|
Source
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.
- Development snapshots are available here.
- Anonymous Arch acccess:
larch register-archive mico-devel@mico.org--archive http://mico.org/mico-archive
larch get mico-devel@mico.org--archive/mico--main--2.3 mico
- Anonymous Arch acccess to the
latest development branch
(kgardas@objectsecurity.com--local/mico--devel):
larch register-archive kgardas@objectsecurity.com--local http://mico.org/~karel/local-mirror
larch get kgardas@objectsecurity.com--local/mico--devel--2.3
mico
Note: instead of larch you can use either tla or arx
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, 7, 8 and 9 on Sun SPARC (gcc 2.95, native C++
compiler)
- Solaris 8 and 9 on x86 (gcc 3.3)
- AIX 4.2 on IBM RS/6000 (gcc 2.95, native C++ compiler)
- Linux 2.x on Intel x86 (gcc 2.95, como4.3.x.y, icc8.0)
- Linux 2.x on Sun UltraSparc (gcc 2.95)
- Linux 2.x on DEC Alpha (gcc 2.95)
- Linux 2.x on ARM (gcc 3.2)
- Digital Unix 4.x and 5.x on DEC Alpha (gcc 2.95)
- Digital Ultrix 4.3 on DEC Mips (gcc 2.95)
- HP-UX 10.20 on PA-RISC (gcc 2.95, native C++ compiler)
- SGI-IRIX on DEC Mips (gcc 2.95, native C++ compiler)
- PowerMax OS (native C++ compiler)
- Windows 9x/NT/2000/XP (Visual-C++ 7 (aka .Net), Cygwin or MinGW)
- FreeBSD 3.x, 4.x and 5.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)
Note: if you would like to build multi-threaded enabled build, then
instead of gcc 2.95 you have to use at least gcc 3.2. Multi-threaded MICO
compiled by gcc 2.95 is not stable, because of some bugs in this compiler.
|
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.
"Developing Secure Distributed Systems with CORBA" (ISBN 1-58053-295-0) This
new book is a clearly written, well structured guide to building secure
distributed applications with CORBA. It helps securing CORBA applications,
integrating security infrastructure with CORBA applications, and evaluating the
security effectiveness of distributed applications. You get a comprehensive
study of the CORBA security architecture, providing you with a better
understanding of its goals and limitations. It serves as your complete reference
for understanding security in distributed systems.
The book also generously illustrates the usage of the MICOSec CORBA security
services implementation, including important information on the installation and
configuration of MICOSec, the usage of two different kinds of application-facing
interfaces, and the configuration of CORBA security for applications that do not
contain any security-related modifications.
"In this impressive book, well-known security experts Lang &
Schreiner manage to cover all of the CORBAsec specification in a structured and
technical fashion. It is well suited to security professionals who need a
comprehensive reference guide with detailed descriptions of, and rationales for,
the CORBAsec architecture and systems security architectures in general. This
well-written hands-on guide is invaluable for developers building real-world
applications, and belongs on the desk of every systems security engineer on the
planet.” --- Richard Mark Soley, Chairman & CEO, OMG
Click here for more
information.
"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:
|
Current Maintainers
The MICO project is currently maintained by:
|
Commercial Support
ObjectSecurity Ltd. provides
commercial support, as well as development and consulting services for MICO.
Click here if you would
like to know more about the various support plans and service options.
|
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.
- The EU IST COACH project uses MICO.
- Starix Informatica uses
MICO in a variety of projects/products: ERP,
e-learning/e-training and telephony sensoring and control for ATI/TELEMAR.
- The Qedo CORBA Component
Model (CCM) implementation supports MICO as its underlying ORB.
|