Friday, October 16, 2009

Meeting of the OSGi users group France

The 9th meeting of the OSGi users group France took place today, at the Grenoble University Campus. People from different places in France have attended. The central theme of the talks was about isolation, mostly concentrated in recent research efforts. In the morning we had three talks:
  • Laurent Daynès, researcher from Sun Microsystems at Grenoble, gave the talk “Lightweight Isolation with a multi-tasking JVM” where he talked about motivations for multitasking, lightweight isolation in the JVM (obviously! It is the presentation's title), Java Isolates, the Multitasking Virtual Machine (MVM) and a lot of interesting stuff concerning isolation.
  • Nicolas Geoffray, a fresh PhD from Université Paris 6, presented the "I-JVM: a Java Virtual Machine for Component Isolation in OSGi", which he developed during his thesis under the co-direction of Gaël Thomas who was also there. He shows how he implemented lightweight Java Isolates in the VM level, and how he associated them with OSGi bundles allowing the safe termination and fine grained resource control of bundles.
  • Kiev Gama (sounds familiar to me...) presented the initial efforts of my PhD’s first year, under the direction of Didier Donsez, in the talk entitled "Towards Dynamic Component Isolation in a Service Oriented Platform". In our work we provide a sort of fault contained sandbox for OSGi components by means of Java Isolates.
In the afternoon, four more talks:
  • My ex-labmate on the Adèle team Clément Escoffier, from Akquinet and leader of the iPOJO project, presented directly from Berlin via DimDim the talk "Chapter 4.2, Verse 138 : The Framework Multiplication". The RFC 138 is an ongoing specification at the OSGi alliance for allowing different OSGi framework instances to be hosted as nested frameworks isolated from each other. Although it addresses more issues, the basis for this specification seems to be quite similar to what Stéphane Frénot and Yvan Royon did a few years ago with V-OSGi (V for Virtual) by virtualizing different OSGi platform instances on one framework.
  • Stéphane Frénot, professor from INSA Lyon, presented the ROCS (Remote OSGi Caching Service) which targets resource constrained devices allowing OSGi applications to load classes from a remote cache, saving space on the device's persistent memory.
  • Next, Pierre Parrend, researcher from FZI Karlsruhe, in another live broadcasted session via DimDim talked about "Software Security Models for Service-Oriented Programming", where he presents different security threats that may be presented by OSGi bundles. He showed also how we a hardened OSGi can be implemented.
  • Another ex-member of my team, Mikaël Désertot, professor from Université de Valenciennes, presented "Vehicular network: The VESPA use case" where OSGi is used in a vehicular project.
Well, I must admit that during this last presentation I could not pay too much attention because I was showing to Nicolas Le Sommer and Laurent Daynès a snippet for crashing a JVM. During my presentation in the morning I had mentioned that and told everyone to try it home, but Nicolas had the initiative to try it already in the afternoon :)

Here is the snippet that crashes the JVM, taken from here:

public class Crash {
public static void main(String[] args) {
Object[] o = null;
while (true) {
o = new Object[] {o};

Nicolas tried the above code which crashed the Sun JVM. However the GNU Classpath and IBM JVMs did not crash…

Laurent tested it in his machine, also crashing the Sun JVM. He debugged it quickly and could precise that it happened when a full GC took place, but someone needs to fix it :)

The presentation abstracts and slides can be found here.


Clement said...


IMHO, there is some big differences between V-OSGi from S. Frenot and the OSGi RFC (0138).

The RFC goes clearly deeper. First, V-OSGi does not support multiplexing which is THE critical issue. It also don't tackle the security issue (well, neither the RFC for the time being). Finally, the RFC introduce the surrogate <=> composite bundles specifying how interactions works.

So, with V-OSGi you was able to start several Felix (only) on the same JVM, but didn't tackle all these issues making the execution of several platforms in the same VM far from simple.

Despite the RFC is half-backed right now, it goes clearly further than V-OSGi.

kiev gama said...

Salut Clément,

Thanks for clearing up that point.
That sort of works as an answer to the question they have asked when you got disconnected at the end of your presentation :)