Upgrade to Pro — share decks privately, control downloads, hide ads and more …

OSGi for outsiders

OSGi for outsiders

OSGi has evolved and matured beyond recognition over the last few years. It's now easier than ever before, to build dynamic, modular Java applications to address the challenges imposed by ever growing and constantly changing business requirements. Despite that fact, OSGi seems to be far from receiving the appreciation it deserves. And if you are OSGi developer who now wanders "why should I care?", let me remind you Thomas Edison's famous quote "The value of an idea lies in the using of it"!

Growing large community around given technology has proven to be an essential part of its success. In this talk I'd like to go over what OSGi community is (not) doing to attract "outsiders". I'd also argue it can do much better than that. Based on observations and conversation from the last 2 years trying to advocate for OSGi among Java developers. I'll try to position the technology it today's reality of microservices, containers, clouds, DevOps, automation, Java 9, ... and bring to your attention the perspective of an "outsider" together with all the presumptions, fallacies and promises it comes with. Finally I'd like to share some ideas about how to address those, promote relevant parts of OSGi and thus perhaps make it more attractive to Java developers!

Avatar for Milen Dyankov

Milen Dyankov

November 07, 2016
Tweet

More Decks by Milen Dyankov

Other Decks in Programming

Transcript

  1. The opinions expressed in this presentation are those of the

    author, and may not reflect in any way those of the institutions to which he is affiliated!
  2. 2000 2015 2014 2013 2012 2011 2010 2009 2008 2007

    2006 2005 2004 2003 2002 2001 2016 R1 R2 R3 R4 R4.3 R5 R6 R4.1 R4.2 OSGi specifications
  3. 2000 2015 2014 2013 2012 2011 2010 2009 2008 2007

    2006 2005 2004 2003 2002 2001 2016 R1 R2 R3 R4 R4.3 R5 R6 R4.1 R4.2 In which OSGi release Http Service was first specified ?
  4. 2000 2015 2014 2013 2012 2011 2010 2009 2008 2007

    2006 2005 2004 2003 2002 2001 2016 R1 R2 R3 R4 R4.3 R5 R6 R4.1 R4.2 In which OSGi release Http Service was first specified ?
  5. Why “outsiders” don’t see the beauty of OSGi ? Assumption

    1: They are ignorants! Assumption 2: They are idiots!
  6. Why “outsiders” don’t see the beauty of OSGi ? Assumption

    1: They are ignorants! Assumption 2: They are idiots! Assumption 3: They are evil! Credit for defining the above assumptions goes to Kathryn Schulz and her great TED talk ”On being wrong”
  7. What “outsiders” think about people favoring OSGi ? Assumption 1:

    They are ignorants! Assumption 2: They are idiots! Assumption 3: They are evil!
  8. Too complex Non standard build tools Incompatible libraries Steep learning

    curve Awkward design Reduced Complexity Modular architecture Dynamic Updates Adaptive Non Intrusive
  9. Continued Influence Effect … one learns "facts" about an event

    that later turn out to be false or unfounded, but the discredited information continues to influence reasoning and understanding even after one has been corrected.
  10. What are the main issues ? Tooling !!! • Environment

    - Workspaces, repositories, plugins, templates, JPM4J, … • Configuration - properties files (I mean seriously it’s 2016) • Build - BND, BNDTools, PDE, Tycho, Maven, … • Runtime - Bndrun, Subsytems, Features, ...
  11. What are the main issues ? Documentation !!! EnRoute is

    a light in the tunnel! But still • Too academic approach • Lots of old information • No central place to explain the big picture • Lots of internal fights (DS vs Blueprint vs ...)
  12. What are the main issues ? Strategies !!! • Embedded

    vs Hosted • Compile time vs Run time resolution • How to handle 3rd party non-OSGi JARs • Crossing boundaries (AOP, Transactions, ...)
  13. Dutchman’s International Attitude “... we are small country! If we

    want to do business with the rest of the world we need to speak their languages. We can’t expect them to learn Dutch!”
  14. OSGi’s Intercommunity Attitude We are small community! If we want

    to trade with other communities we need to understand their concerns. We can’t expect them to simply switch to OSGi!
  15. Why should we care ? I, Pencil by Leonard Read

    ”Simple? Yet, not a single person on the face of this earth knows how to make me.”
  16. John: Jerry: A B 4h 3h A B 1h 2h

    = 3h = 7h Trading vs Manufacturing
  17. John: Jerry: A B 4h 3h A B 1h 2h

    = 3h = 7h Trading vs Manufacturing John: Jerry: B 3h 3h A 1h 1h = 2h = 6h B A
  18. What goods we can trade ? Baselining What if we

    could export baselining beyond OSGi (or even Java) ?
  19. What goods we can trade ? Resolver What if we

    could improve Maven central for everyone not just OSGi?
  20. What goods we can trade ? Service registry What if

    we could use that for discovering microservices and containers and ... ?
  21. idea: CoreOS + Android like distributed operating system registry •

    minimal operating system • bundle/container management software • distributed configuration / discovery • treat the cluster as if it is single system • cloud integration for autoscaling Developers know software but not infrastructure!
  22. OSGi Export Export Export People don’t want to depend on

    OSGi. They just want to import the good things it exports!