Netbinox
The fastest OSGi Container on the Planet
Jaroslav Tulach
NetBeans Platform Architect
http://netbinox.apidesign.org
Agenda
• Being Fast!?
• A bit of history
• Demo
• Technical details
• Q/A
http://netbinox.apidesign.org
Slow I/O During Startup
Demo
http://netbinox.apidesign.org
History 1 - Experiments
• Sun and OSGi
> Glassfish adopted OSGi in 2008
• Netigso
> Friday project
> Felix based
> Parallel mode
> Reuse of bundles
• Glassfish in Nb
> Middle of 2009
• Problem: How to get this into release?
The Garage Days
http://netbinox.apidesign.org
History 2 - Acquisition
18 months of despair
• Sun collapsed in Spring 2009
> Acquired by Oracle
> Approved in January 2010
> Czech Republic LEC on Sep 1, 2010
• JDeveloper
> Primary IDE for Oracle Enterprise Technologies
• Eclipse Foundation
> Member and Contributor
• Problem: Can NetBeans be useful for Oracle?
http://netbinox.apidesign.org
History 3 - NetBeans 6.9 Theme
• NetBeans Platform based on standards
> Standard UI - Swing
> Adopt OSGi as de-facto standard
• OSGi interoperability
> Reuse existing bundles
> Use bundles on server/client side
> Use NetBeans APIs in OSGi mode
• Problem:
> Is that enough to align with JDev?
The public plan
http://netbinox.apidesign.org
JDeveloper
Going the same direction
• JDev converted to OSGi meanwhile
> Most of the work done
> Big Bang rewrite
> Using Equinox
• Long term synergy vs. short term benefits
> Reuse pieces of NetBeans in future
> More speed right now
• Netbinox on the rise
> “Just” reuse NetBeans “startup caches”
http://netbinox.apidesign.org
Being Fast with Caches
Demo
http://netbinox.apidesign.org
Caches & Speed
Avoid I/O
• 40% faster
• Useful for desktop applications
> Start speed is important
> “Morning” launch
• Intercept I/O queries
> loadClass, getResource
> File.exists()
• Modular vs. monolithic apps
> Deployment modular
> Start is monolithic
http://netbinox.apidesign.org
The Differences
What is different in Netbinox?
• 100% compatibility for bundles
• Class and resource loading
> ZipBundleFile replaced by JarBundleFile
> Thread Context Class Loader
• Equinox hooks
> Registered slightly differently
• OSGi APIs in Separate JARs
> Shared by Felix & Equinox
• Own Launcher
> Configuration files use NetBeans format
http://netbinox.apidesign.org
The Presence
• NetBeans IDE 7.1 uses Netbinox
> Mylyn + Bugzilla Connectors
> Orbit bundles (JSCh, Apache)
• JDeveloper on Netbinox
> Other features than a speed
• The common ground
> OSGi as lingua franca
> How do we share?
With future outlook
http://netbinox.apidesign.org
Give Feedback on the Sessions
1
Sign In: www.eclipsecon.org
2
Select Session Evaluate
3
Vote
Experiences from
building the fastest
OSGi container on
the Planet
Jaroslav Tulach

Experiences from Building the Fastest OSGi Container on the Planet - Jaroslav Tulach

  • 1.
    Netbinox The fastest OSGiContainer on the Planet Jaroslav Tulach NetBeans Platform Architect
  • 2.
    http://netbinox.apidesign.org Agenda • Being Fast!? •A bit of history • Demo • Technical details • Q/A
  • 3.
  • 4.
    http://netbinox.apidesign.org History 1 -Experiments • Sun and OSGi > Glassfish adopted OSGi in 2008 • Netigso > Friday project > Felix based > Parallel mode > Reuse of bundles • Glassfish in Nb > Middle of 2009 • Problem: How to get this into release? The Garage Days
  • 5.
    http://netbinox.apidesign.org History 2 -Acquisition 18 months of despair • Sun collapsed in Spring 2009 > Acquired by Oracle > Approved in January 2010 > Czech Republic LEC on Sep 1, 2010 • JDeveloper > Primary IDE for Oracle Enterprise Technologies • Eclipse Foundation > Member and Contributor • Problem: Can NetBeans be useful for Oracle?
  • 6.
    http://netbinox.apidesign.org History 3 -NetBeans 6.9 Theme • NetBeans Platform based on standards > Standard UI - Swing > Adopt OSGi as de-facto standard • OSGi interoperability > Reuse existing bundles > Use bundles on server/client side > Use NetBeans APIs in OSGi mode • Problem: > Is that enough to align with JDev? The public plan
  • 7.
    http://netbinox.apidesign.org JDeveloper Going the samedirection • JDev converted to OSGi meanwhile > Most of the work done > Big Bang rewrite > Using Equinox • Long term synergy vs. short term benefits > Reuse pieces of NetBeans in future > More speed right now • Netbinox on the rise > “Just” reuse NetBeans “startup caches”
  • 8.
  • 9.
    http://netbinox.apidesign.org Caches & Speed AvoidI/O • 40% faster • Useful for desktop applications > Start speed is important > “Morning” launch • Intercept I/O queries > loadClass, getResource > File.exists() • Modular vs. monolithic apps > Deployment modular > Start is monolithic
  • 10.
    http://netbinox.apidesign.org The Differences What isdifferent in Netbinox? • 100% compatibility for bundles • Class and resource loading > ZipBundleFile replaced by JarBundleFile > Thread Context Class Loader • Equinox hooks > Registered slightly differently • OSGi APIs in Separate JARs > Shared by Felix & Equinox • Own Launcher > Configuration files use NetBeans format
  • 11.
    http://netbinox.apidesign.org The Presence • NetBeansIDE 7.1 uses Netbinox > Mylyn + Bugzilla Connectors > Orbit bundles (JSCh, Apache) • JDeveloper on Netbinox > Other features than a speed • The common ground > OSGi as lingua franca > How do we share? With future outlook
  • 12.
    http://netbinox.apidesign.org Give Feedback onthe Sessions 1 Sign In: www.eclipsecon.org 2 Select Session Evaluate 3 Vote Experiences from building the fastest OSGi container on the Planet Jaroslav Tulach