What’s Up with 
Modularity ?!
Paul Bakker 
@pbakker
Observations 
Extremely agile 
(first mover advantage) 
Architecture (and code base) 
should be able to cope with change 
Trend 
Applications tend to 
grow bigger and more 
complex 
Agile development 
and refactoring have 
become more common
Modularity 
is the answer
What we lear ned about OO design in university : 
Prevent 
(tight) 
coupling 
Promote 
cohesion 
cohesion 
coupling
Modules Service Lookups
What do we need 
design 
consequences 
High-level 
enterprise APIs 
Architectural 
focus on 
modularity 
Runtime 
dynamic 
module 
framework 
Right now, 
OSGi is the 
only option 
let’s not 
reinvent the 
wheel 
for modularity?
Stop talking… 
and show me code!
Demo
Rooms 
Resource 
AngularJS 
Client 
Rooms Service 
RabbitMQ 
RabbitMQ 
Service 
STOMP 
WhatsUp 
Architecture 
AMQP 
Chat Log 
Jongo 
Mongo 
REST
Rooms 
Resource 
AngularJS 
Client 
Rooms Service 
RabbitMQ 
RabbitMQ 
Service 
STOMP 
$$$$$$$$ 
AMQP 
Word Counter 
Chat Log 
Jongo 
Mongose 
REST 
Yeah baby! 
Personalized 
Ad Generator 
$$$$$ 
Product 
Service 
MongoDB 
$$$$
Demo
Wrap up
Eclipse OSGi plugin 
http://bndtools.org/ 
Open source 
OSGi components 
http://www.amdatu.org/ 
Amdatu 
That’s us 
http://luminis-technologies. 
com 
Paul Bakker 
paul.bakker@luminis.eu 
@pbakker

Tutorial introduction to OSGi

  • 1.
    What’s Up with Modularity ?!
  • 2.
  • 3.
    Observations Extremely agile (first mover advantage) Architecture (and code base) should be able to cope with change Trend Applications tend to grow bigger and more complex Agile development and refactoring have become more common
  • 4.
  • 5.
    What we learned about OO design in university : Prevent (tight) coupling Promote cohesion cohesion coupling
  • 6.
  • 7.
    What do weneed design consequences High-level enterprise APIs Architectural focus on modularity Runtime dynamic module framework Right now, OSGi is the only option let’s not reinvent the wheel for modularity?
  • 8.
    Stop talking… andshow me code!
  • 9.
  • 10.
    Rooms Resource AngularJS Client Rooms Service RabbitMQ RabbitMQ Service STOMP WhatsUp Architecture AMQP Chat Log Jongo Mongo REST
  • 11.
    Rooms Resource AngularJS Client Rooms Service RabbitMQ RabbitMQ Service STOMP $$$$$$$$ AMQP Word Counter Chat Log Jongo Mongose REST Yeah baby! Personalized Ad Generator $$$$$ Product Service MongoDB $$$$
  • 12.
  • 13.
  • 15.
    Eclipse OSGi plugin http://bndtools.org/ Open source OSGi components http://www.amdatu.org/ Amdatu That’s us http://luminis-technologies. com Paul Bakker paul.bakker@luminis.eu @pbakker