logotitle 
Documentation

Installation

C++

Java

OSGi

O3MiSCID GUI

Tutorials

C++

Java

OSGi

Custom Settings

Working domain name

Name resolution

DNSSD implementation

Presentations

Publications

Installation

C++

Current version of O3MiSCID requires DNSSD to be installed and running. For example, you can use mDNSResponder (Bonjour from Apple) or avahi (only available under linux).

In order to compile your O3MiSCID source code, you will need to have Bonjour, libxml with their C++ headers and libs for bindings (see "README" file from the release for more details).

Java

Required files

Developing O3MiSCID services in plain Java requires to have some jars in your classpath. If you are using Java 6.0 or later, all dependencies are bundled in the O3MiSCID release available on the download page. Under Java 5.0, a JAXB implementation is also required: JAXB jars (jaxb-impl.jar, jaxb-api.jar, activation.jar, jsr173_1.0_api.jar) must be in the classpath when running O3MiSCID applications with Java 5.0.

See the tutorial section on this page for details on how to build a service from scratch.

DNSSD and bundled files

Java version of O3MiSCID may choose a DNSSD implementation installed on your computer at runtime. It can also use a 100% pure Java implementation, included in the release (see details about choosing a DNSSD implementation). OSGi O3MiSCID tutorial explains how to install and use mDNSResponder (Apple Bonjour) together with its Java bindings.

Since version 1.5.0, plain Java O3MiSCID provides the following files:

  • omiscid-1.?.?.jar: the omiscid library
  • (opt-dnssd) dbus*.jar, debug-*.jar, hexdump*.jar, unix*.jar and libunix-java.so: for an alternative DNSSD access using avahi accessed through dbus
  • (opt-dnssd) JiveDNS-1.1-lightened.jar: jivedns jar, a pure Java implementation of DNSSD for an alternative DNSSD access
  • (opt-deprecated) omiscid-gui-1.?.?.jar: the old O3MiSCID gui to be run with java -jar, to use only if you're nostalgic

OSGi

Since 1.5.0

Since version 1.5.0, the OSGi version of O3MiSCID is tested on the Felix OSGi platform and it requires iPOJO and a Java 6 virtual machine. The castor bundle is not required anymore.

Before 1.5.0

OSGi bundle version of O3MiSCID has been tested on the Oscar OSGi platform. To install it, you also need to install the castor bundle available on the download page.

For further details, you can look at the OSGi tutorial below.

O3MiSCID GUI

See also the page on O3MiSCID GUI

In replacement for the old O3MiSCID gui that is bundled with the plain java version of O3MiSCID, one can use the new O3MiSCID GUI. This new version is a standalone application that can be easily extended by adding some modules or plugins.

To run the new GUI you need to download O3MiSCID GUI zip file on the download page, unzip it and run executable present in bin folder. MacOSX users, please feel free to contact us, we will provide you with a MacOSX version.

You can access basic functionalities by right clicking on service connectors and variables in tree on the right. Plugins for the GUI can add some actions to the possible ones appearing in the context menu. You can manage installed plugins through the Tool->Plugins menu entry.

Tutorials

C++

You can use the following resources in order to train yourself using O3MiSCID:

Java

Some tutorial screencasts show how to easily create O3MiSCID services. Starting with only the files downloaded from gforge download page (plain Java release), one can learn to code, run and view an O3MiSCID service in less than 3 minutes (see minimal service screencast and its dependencies).

You can find all O3MiSCID screencasts on the O3MiSCID screencasts page.

You can access the javadoc of the user centered API on this website.

As the C++ and Java APIs are almost identical (modulo the languages specifity), you can also have a look at the C++ tutorials. Your favorite IDE will probably allow you to cope with the slight differences between the C++ and Java APIs.

You can also have a look at the OSGi tutorial. In fact, OSGi version of O3MiSCID uses directly the Java version most code from the OSGi tutorial is plain O3MiSCID Java code (only deployment and life cycle management differ between Java and OSGi versions).

OSGi

Here is a pre-final release of the O3MiSCID OSGi tutorial. The tutorial references some files that can be found in a zip of the "curves" files.

Custom Settings

Working domain name

O3MiSCID services are registered under DNSSD in a dedicated domain. By default this domain is _bip._tcp but one can choose the domain in which O3MiSCID will declare and look for services. This can be done by setting the OMISCID_WORKING_DOMAIN environment variable, for example to _bip_test._tcp.

Name resolution

By default, O3MiSCID uses standard DNS for host name resolution. In some configurations such as Ad-Hoc networks, where there is no DNS server or not all hosts are known by the DNS server, one can use DNSSD for name resolution. This can be done by setting the OMISCIDNS_USE_MDNS_NAME_SOLVING environment variable to any value, for example to true.

DNSSD implementation

Java (and OSGi) version of O3MiSCID allows the user to choose how to access DNSSD. This can be controlled using the OMISCID_DNSSD_FACTORY environment variable. By default, O3MiSCID tries to find the best implementation given its runtime environment, it is however possible to force O3MiSCID to try a given method first. The environment variable can take the following values:

  • mdns: this uses mDNSResponder from Apple. Apple Java binding are known to have some bugs that can affect O3MiSCID in some cases (e.g. big service descriptions).
  • jmdns: this uses a 100% pure Java implementation of DNSSD (jivedns). This implementation has a long warm up time.
  • avahi: this uses a running avahi daemon. This requires to have an avahi daemon running (present in all recent linux distributions). O3MiSCID accesses the daemon through the gnome software bus: dbus

One can set the OMISCID_DNSSD_FACTORY_VERBOSE_MODE environment variable (to any value) to have O3MiSCID display the implementations being tried (the last shown will be the one used).

Presentations

If you want to look at some slides presenting O3MiSCID, you can just watch an (old) html presentation of O3MiSCID.

The O3MiSCID “day 1” presentation can be obtained on demand only (by now), don't hesitate.

The O3MiSCID “day 2” presentation on advanced tips and tricks and on the extension of O3MiSCID GUI.

Publications

For a detailled description of O3MiSCID architecture and design goals, see this paper presented at the IEEE workshop SIPE-2006.