This wiki
contains information about my ongoing projects.
NOTE:
The Service Binder project has stopped as the concepts it introduced
are now integrated to the Declarative Services section of the OSGi
specification. You can download an implementation of the SCR at the following address:
The Service Binder is a mechanism that simplifies development
in the OSGi
services platform as it automates service
dependency management.
OSGi applications are constructed following
service-orientation
principles, and as consequence they require developers to build
components that are responsible for publishing
their services, discovering
and binding to services they
require and adapting to the
dynamic availability (the arrival or departure) of the services they
are using; all of this during execution. These activities represent
service dependency management.
Traditionnally, bundle developers must program both
application and
service dependency management logic into their bundles. Service
dependency management logic is,
in general, complex and error prone, as it requires, among other
things, that monitoring and reconfiguration tasks to be realized.
Additionnally, application and service dependency management logic are
often intermixed inside
the code of a bundle, making modifications more difficult.
The Service Binder solves this problem by extracting service
dependency management logic from the bundles and moving it into an execution
environment that is deployed inside the framework as a standard
bundle. Service dependency management logic is configured by
informations contained
in
an XML descriptor
that extends
the bundle manifest. This logic is inserted seamlessly into a bundle by
providing a descriptor and creating an empty subclass from a generic
activator class provided by the Service Binder. Applications built with
the Service Binder are
assembled dynamically and are capable of adapting themselves
autonomously, for example by substituting a departing service, or by
integrating new services that arrive as the application is being
executed.
The Service Binder is delivered in a standard OSGi bundle
(~70k) and
is independent of any OSGi framework
implementation. It has been used in companies such as Schneider Electric
and Ascert to develop research and
commercial products, respectively.
Service
Binder:
Minisite with detailed information about the project, downloads.
OSGi tutorial:
This tutorial creates successively more complex OSGi bundles to
illustrate most of the features and functionality offered by the OSGi
framework. It culminates by demonstrating how the ServiceBinder can be
used to greatly simplify creating OSGi applications (Il y a une version
en
Français).
Download
and Install
As
part of a
project, I am developing an implementation of the Wire Admin 1.0
service
specification from the OSGi specification release 3. You can install
the bundle from Oscar's obr (obr install "Wire Admin") or from the
following url (sources
under BSD License):
http://www-osgi.sf.net/repo/wireadmin/wireadmin.jar
There
is also a bundle that provides a command
line
for the Oscar shell that allows you to interact with the Wire Admin.
You can get it from Oscar's OBR (obr install "Wire Admin Command") or
from the follwong url(sources
under BSD License):
http://www-osgi.sf.net/repo/wireadmincmd/wireadmincmd.jar
Beanome
Beanome
is a component model and
execution environment for
this model built on top of the OSGi
framework that takes concepts from the JavaBeans component model and
from COM. In Beanome, the
OSGi platform is used as a deployment infrastructure that provides
deployment unit management capabilities along with a registry where
component factories are registered as services.
Beanome
served as a testing platform for the following ideas:
- Using OSGi as an underlying platform for a component model
- Combining Service orientation and component orientation
concepts
These
ideas were a base for the
work done in the
Service Binder. Please note that Beanome is not maintained anymore.
Here is a paper I
wrote in 2002 with Richard S. Hall about Beanome.
Download: Step
by step guide to download
and install OSCAR (an
OSGi implementation), the Beanome execution
environment and some sample applications.
|