• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content

Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this presentation? Why not share!

Øredev 2010 - What Happened to OSGi?

on

  • 3,034 views

OSGi brings modularity and µServices to Java, and with it a new set of issues for developers to solve. Are tools keeping up, or are you just trading known problems for the unknown? ...

OSGi brings modularity and µServices to Java, and with it a new set of issues for developers to solve. Are tools keeping up, or are you just trading known problems for the unknown?

Is OSGi doomed to perpetual re-discovery, or will it break into the mainstream with the release of Enterprise-OSGi? Time for a hard look at the state of OSGi today, warts and all, and its potential future.

Statistics

Views

Total Views
3,034
Views on SlideShare
3,031
Embed Views
3

Actions

Likes
5
Downloads
76
Comments
0

2 Embeds 3

http://www.linkedin.com 2
https://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

CC Attribution-ShareAlike LicenseCC Attribution-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />

Øredev 2010 - What Happened to OSGi? Øredev 2010 - What Happened to OSGi? Presentation Transcript

  • What Happened to OSGi? Stuart McCulloch
  • Very Brief History of OSGi
  • ry Ve Brief History of OSGi
  • ry Ve Brief History of OSGi • 1999: OSGi Alliance founded / JSR 8
  • ry Ve Brief History of OSGi • 1999: OSGi Alliance founded / JSR 8 • 2004: Eclipse migrates to OSGi
  • ry Ve Brief History of OSGi • 1999: OSGi Alliance founded / JSR 8 • 2004: Eclipse migrates to OSGi • 2006: Spring supports OSGi
  • ry Ve Brief History of OSGi • 1999: OSGi Alliance founded / JSR 8 • 2004: Eclipse migrates to OSGi • 2006: Spring supports OSGi • 2006: Enterprise Expert Group starts
  • ry Ve Brief History of OSGi • 1999: OSGi Alliance founded / JSR 8 • 2004: Eclipse migrates to OSGi • 2006: Spring supports OSGi • 2006: Enterprise Expert Group starts • 2010: First Enterprise Specification
  • ry Ve Brief History of OSGi • 1999: OSGi Alliance founded / JSR 8 • 2004: Eclipse migrates to OSGi • 2006: Spring supports OSGi • 2006: Enterprise Expert Group starts • 2010: First Enterprise Specification • 2011: ?
  • Modularity is Hard!
  • Modularity is Hard! • Designing for the future
  • Modularity is Hard! • Designing for the future • Classic assumptions don’t apply
  • Modularity is Hard! • Designing for the future • Classic assumptions don’t apply • Not just a matter of slice’n’dice
  • Modularity is Hard! • Designing for the future • Classic assumptions don’t apply • Not just a matter of slice’n’dice • May need several attempts
  • Modularity is Hard! • Designing for the future • Classic assumptions don’t apply • Not just a matter of slice’n’dice • May need several attempts • How do you test for modularity?
  • Jigsaw Effect
  • Jigsaw Effect • JSR 277: Java Module System
  • Jigsaw Effect • JSR 277: Java Module System • JSR 294: Improved Modularity Support in the JavaTM Programming Language
  • Jigsaw Effect • JSR 277: Java Module System • JSR 294: Improved Modularity Support in the JavaTM Programming Language • Jigsaw: Modularizing the JDK
  • Jigsaw Effect • JSR 277: Java Module System • JSR 294: Improved Modularity Support in the JavaTM Programming Language • Jigsaw: Modularizing the JDK • May (or may not) be standardized
  • Jigsaw Effect • JSR 277: Java Module System • JSR 294: Improved Modularity Support in the JavaTM Programming Language • Jigsaw: Modularizing the JDK • May (or may not) be standardized • Should you wait for Jigsaw?
  • Enterprise OSGi
  • Enterprise OSGi • First specification released March 2010
  • Enterprise OSGi • First specification released March 2010 • Forms part of OSGi R4.2 specification
  • Enterprise OSGi • First specification released March 2010 • Forms part of OSGi R4.2 specification • Defines optional packages and services
  • Enterprise OSGi • First specification released March 2010 • Forms part of OSGi R4.2 specification • Defines optional packages and services • Web Applications (WABs)
  • Enterprise OSGi • First specification released March 2010 • Forms part of OSGi R4.2 specification • Defines optional packages and services • Web Applications (WABs) • Remote Services, SCA Definitions
  • Enterprise OSGi • First specification released March 2010 • Forms part of OSGi R4.2 specification • Defines optional packages and services • Web Applications (WABs) • Remote Services, SCA Definitions • JDBC, JNDI, JTA, JPA, JMX
  • Eclipse Gemini
  • Eclipse Gemini • Suite of enterprise technology modules
  • Eclipse Gemini • Suite of enterprise technology modules • Reference implementations for many of the Enterprise OSGi specifications
  • Eclipse Gemini • Suite of enterprise technology modules • Reference implementations for many of the Enterprise OSGi specifications • Blueprint, Web, JPA, JDBC, JMX, JNDI
  • Apache Aries
  • Apache Aries • Implementations and extensions of OSGi Alliance Enterprise Expert Group specifications
  • Apache Aries • Implementations and extensions of OSGi Alliance Enterprise Expert Group specifications • Blueprint, JNDI, JPA, JTA, SPI
  • Apache Aries • Implementations and extensions of OSGi Alliance Enterprise Expert Group specifications • Blueprint, JNDI, JPA, JTA, SPI • Assembly format for multi-bundle applications (EBAs)
  • Eclipse Virgo
  • Eclipse Virgo • Originally Spring dmServer
  • Eclipse Virgo • Originally Spring dmServer • {OSGi} web container
  • Eclipse Virgo • Originally Spring dmServer • {OSGi} web container • Applications: Plans - isolated, atomic
  • Eclipse Virgo • Originally Spring dmServer • {OSGi} web container • Applications: Plans - isolated, atomic • Provisioning: PARs - plan archives
  • Eclipse Virgo • Originally Spring dmServer • {OSGi} web container • Applications: Plans - isolated, atomic • Provisioning: PARs - plan archives • Legacy library support
  • Eclipse Virgo • Originally Spring dmServer • {OSGi} web container • Applications: Plans - isolated, atomic • Provisioning: PARs - plan archives • Legacy library support • Enhanced diagnostics
  • What does this tell us?
  • What does this tell us? • It’s duelling frameworks!
  • What does this tell us? • It’s duelling frameworks! • Not everything at Eclipse is named after the “Letter-Number” format
  • What does this tell us? • It’s duelling frameworks! • Not everything at Eclipse is named after the “Letter-Number” format • There will only ever be 12 Enterprise OSGi projects
  • What does this tell us? • It’s duelling frameworks! • Not everything at Eclipse is named after the “Letter-Number” format • There will only ever be 12 Enterprise OSGi projects • OSGi is great for middleware
  • Mulesoft http://blogs.mulesoft.org/osgi-no-thanks
  • Mulesoft http://blogs.mulesoft.org/osgi-no-thanks • “Great spec for middleware vendors”
  • Mulesoft http://blogs.mulesoft.org/osgi-no-thanks • “Great spec for middleware vendors” • “... terrible spec for the end user ...”
  • Mulesoft http://blogs.mulesoft.org/osgi-no-thanks • “Great spec for middleware vendors” • “... terrible spec for the end user ...” • “we definitely need modularization”
  • Mulesoft http://blogs.mulesoft.org/osgi-no-thanks • “Great spec for middleware vendors” • “... terrible spec for the end user ...” • “we definitely need modularization” • “How do we hide the complexities of OSGi from our users?”
  • WSO2 http://pzf.fremantle.org/2010/11/ using-osgi-as-core-of-middleware.html
  • WSO2 http://pzf.fremantle.org/2010/11/ using-osgi-as-core-of-middleware.html • “We struggled with OSGi to start with, but in the end we have a much stronger solution than if we had built our own”
  • WSO2 http://pzf.fremantle.org/2010/11/ using-osgi-as-core-of-middleware.html • “We struggled with OSGi to start with, but in the end we have a much stronger solution than if we had built our own” • “Drop a JAR in [WSO2] and we take care of the OSGi bundling for you”
  • WSO2 http://pzf.fremantle.org/2010/11/ using-osgi-as-core-of-middleware.html • “We struggled with OSGi to start with, but in the end we have a much stronger solution than if we had built our own” • “Drop a JAR in [WSO2] and we take care of the OSGi bundling for you” • “eBay are currently running around 400m transactions per *day* through an OSGi based runtime” [via twitter]
  • OSGi Tools
  • OSGi Tools • bnd/bndtools
  • OSGi Tools • bnd/bndtools • maven-bundle-plugin
  • OSGi Tools • bnd/bndtools • maven-bundle-plugin • Pax-Exam (testing)
  • OSGi Tools • bnd/bndtools • maven-bundle-plugin • Pax-Exam (testing) • Spring Bundlor
  • OSGi Tools • bnd/bndtools • maven-bundle-plugin • Pax-Exam (testing) • Spring Bundlor • Maven-Tycho
  • OSGi Tools • bnd/bndtools • maven-bundle-plugin • Pax-Exam (testing) • Spring Bundlor • Maven-Tycho • ... Sigil, PDE, Netisgo, Osmorc, ...
  • OSGi Books
  • OSGi Books • OSGi Alliance Specs
  • OSGi Books • OSGi Alliance Specs • Die OSGi Service Platform
  • OSGi Books • OSGi Alliance Specs • Die OSGi Service Platform • Modular Java
  • OSGi Books • OSGi Alliance Specs • Die OSGi Service Platform • Modular Java • OSGi and Equinox
  • OSGi Books • OSGi Alliance Specs • Die OSGi Service Platform • Modular Java • OSGi and Equinox • OSGi in Action
  • OSGi Books • OSGi Alliance Specs • Die OSGi Service Platform • Modular Java • OSGi and Equinox • OSGi in Action • OSGi in Practice
  • Let’s Recap
  • Let’s Recap • OSGi is a great middleware solution!
  • Let’s Recap • OSGi is a great middleware solution! • ... but it is definitely not a silver bullet
  • Let’s Recap • OSGi is a great middleware solution! • ... but it is definitely not a silver bullet • You will have issues with legacy code
  • Let’s Recap • OSGi is a great middleware solution! • ... but it is definitely not a silver bullet • You will have issues with legacy code • Enterprise OSGi is just getting started
  • Let’s Recap • OSGi is a great middleware solution! • ... but it is definitely not a silver bullet • You will have issues with legacy code • Enterprise OSGi is just getting started • Tooling continues to evolve & improve
  • Let’s Recap • OSGi is a great middleware solution! • ... but it is definitely not a silver bullet • You will have issues with legacy code • Enterprise OSGi is just getting started • Tooling continues to evolve & improve • Hedge your bets: write modular code
  • Writing Modular Code
  • Writing Modular Code • Keep an eye on your package layout
  • Writing Modular Code • Keep an eye on your package layout • Avoid splitting packages across JARs
  • Writing Modular Code • Keep an eye on your package layout • Avoid splitting packages across JARs • Limit use of Class.forName(“Foo”);
  • Writing Modular Code • Keep an eye on your package layout • Avoid splitting packages across JARs • Limit use of Class.forName(“Foo”); • Consider programming to interfaces
  • Writing Modular Code • Keep an eye on your package layout • Avoid splitting packages across JARs • Limit use of Class.forName(“Foo”); • Consider programming to interfaces • Avoid direct use of the OSGi API
  • Writing Modular Code • Keep an eye on your package layout • Avoid splitting packages across JARs • Limit use of Class.forName(“Foo”); • Consider programming to interfaces • Avoid direct use of the OSGi API • Use Dependency Injection!
  • OSGi Dependency Injection
  • OSGi Dependency Injection • Blueprint (was Spring-DM)
  • OSGi Dependency Injection • Blueprint (was Spring-DM) • Declarative Services
  • OSGi Dependency Injection • Blueprint (was Spring-DM) • Declarative Services • Apache Felix iPOJO
  • OSGi Dependency Injection • Blueprint (was Spring-DM) • Declarative Services • Apache Felix iPOJO • Peaberry (moving to sisu-inject)
  • OSGi Dependency Injection • Blueprint (was Spring-DM) • Declarative Services • Apache Felix iPOJO • Peaberry (moving to sisu-inject) • Eclipse Riena / E4
  • OSGi