Tuesday, November 9, 2010

The History of Modularity

A few years ago Bjorn Freeman-Benson (formerly from Eclipse Foundation) asked me as an old friend (we know each other from the previous century) if OSGi was really novel, like Objects were, or if it was just good engineering. I then answered it was good engineering. Bjorn, I changed my mind lately. I think the OSGi µservices are an innovation on the same level as objects were!

So when I was was asked to give a presentation in Ludwigsburg for the User Forum Germany last week I felt µservices were a suitable subject. In my opinion µservices are the next big thing after objects, a progression in a long line of software improvements. This historic perspective is important to learn the lessons of our predecessors, what worked and what did not work. Personally I am fascinated how you see that in the last 60 years our predecessors modularized the existing model and moved software to the next plane, and we did this several times in a very similar, but different way.

Anyway, the presentation is available on slideshare. It is very much a Zen presentation (not much text) but lots of nice graphics. Enjoy and let me know.

Peter Kriens


  1. Hi Peter.

    FWIW, I agree with your mental shift wrt micro-services. IMHO it's made even more important with remote micro-services (inter-process communication).

    FYI, I tried to access the your slides via this link: http://www.slideshare.net/pkriens/services-5713195

    and it wouldn't let me get through. It gave me this error message (some sort of permissions restriction?):

    You have tried to access a web page which is in violation of your internet usage policy.

    URL: www.slideshare.net/pkriens/services-5713195
    Category: Personal Storage

    To have the rating of this web page re-evaluated please contact your administrator.

  2. I very much like the OSGi usage in Eclipse e4. A single @Inject IService in a class managed by the e4 runtime lets you get the OSGi server.

    Details can be found here: http://www.vogella.de/articles/EclipseE4/article.html

  3. Ups. Should be "get the OSGi service" instead of "get the OSGi server".

  4. Lars, I am not sure whether e4 is a good example here; Peter's point about the "big thing" of µservices is the active/active case, i.e. the fully dynamic nature of these services.
    And as far as I have understood, e4 does not support this case at all (and there are conceptual issues why such a support cannot be easily added).