Why OSGi?
Upcoming SlideShare
Loading in...5
×
 

Why OSGi?

on

  • 9,555 views

Presentation by Peter Kriens and BJ Hargrave at JavaOne 2011.

Presentation by Peter Kriens and BJ Hargrave at JavaOne 2011.

Statistics

Views

Total Views
9,555
Views on SlideShare
9,522
Embed Views
33

Actions

Likes
19
Downloads
468
Comments
2

4 Embeds 33

http://paper.li 18
https://twitter.com 9
http://a0.twimg.com 5
http://us-w1.rockmelt.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

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…
  • The best OSGi related slid i ever seen, I am fan of both the writers Peter Kriens and Bentley Hargrave,
    Are you sure you want to
    Your message goes here
    Processing…
  • Nice summary.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Why OSGi? Why OSGi? Presentation Transcript

  • Why OSGi? BJ Hargrave, IBM Peter Kriens, aQute
  • Agenda• Why OSGi?• The Dream• Looking for Shoulders• Java & Packages• OSGi Bundles & Services• Conclusion
  • Why OSGi?
  • Why OSGi? Scriptorium
  • Why OSGi?… because there should be a better way to develop software ...
  • Why OSGi? 2010 2003 1996 1989 1982 1982 1975 1968 1961 Amount of software doubling every 7 yearssource: http://users.jyu.fi/~koskinen/smcosts.htm
  • Why OSGi?2010 2003 1996 1989 2017 1982 1982 1975 1968 1961 Amount of software doubling every 7 years source: http://users.jyu.fi/~koskinen/smcosts.htm
  • The Dream
  • The Dream• Adaptive• Flexible B C• Contracts• Robust D E F• Secure• Evolution G H I• Distributed
  • The Dream• Adaptive• Flexible A B C• Contracts• Robust D E F• Secure• Evolution G H I• Distributed
  • The Dream• Adaptive• Flexible A Ba B Bb C• Contracts• Robust D E F• Secure• Evolution G H I• Distributed
  • The Dream• Adaptive• Flexible A Ba Bb C• Contracts• Robust D E F• Secure• Evolution G H I• Distributed
  • The Dream• Adaptive• Flexible A Ba Bb C• Contracts• Robust D E F• Secure• Evolution G H I• Distributed
  • The Dream• Adaptive• Flexible A Ba Bb C• Contracts• Robust D E F• Secure• Evolution G H I• Distributed
  • The Dream• Adaptive• Flexible A Ba Bb C• Contracts• Robust D E F• Secure• Evolution G H I• Distributed
  • The Dream• Adaptive• Flexible A Ba Bb C• Contracts• Robust D E F• Secure• Evolution G H• Distributed
  • The Dream• Adaptive• Flexible A Ba Bb C• Contracts• Robust D E F• Secure• Evolution G H• Distributed
  • The Dream• Adaptive• Flexible A Ba Bb C• Contracts• Robust D E F• Secure• Evolution G H• Distributed
  • The Dream• Adaptive• Flexible A Ba Bb C• Contracts• Robust D E F• Secure• Evolution G H• Distributed
  • The Dream• Adaptive• Flexible A Ba Bb C• Contracts• Robust D E F• Secure• Evolution G H I v2.0• Distributed
  • The Dream• Adaptive• Flexible A Ba Bb C• Contracts• Robust D E F• Secure S;1.1.0• Evolution G H I v2.0• Distributed
  • The Dream• Adaptive• Flexible A Ba Bb C• Contracts• Robust D E F• Secure S;1.1.0• Evolution G H I v2.0• Distributed
  • The Dream• Adaptive• Flexible A Ba Bb• Contracts• Robust D E F• Secure S;1.1.0• Evolution G H I v2.0• Distributed
  • Cambridge in the 50’s
  • Cambridge in the 50’s“As soon as we started programming, we found toour surprise that it wasnt as easy to get programsright as we had thought.”“… the realization came over me with full force thata good part of the remainder of my life was going tobe spent finding errors in my own programs.” Maurice Wilkes
  • Subroutines
  • Subroutines Subroutines
  • Subroutines• Subroutine: • Focus on what, not how • Encapsulate the implementation details • Formalized the input data (arguments) • Formalized the output (return values)
  • Subroutines• Abstraction • Easier to understand• Less Code • Fewer Errors• Sharing • Simpler Maintenance (depends …)
  • Subroutines
  • Functions
  • Functions Function
  • Functions Input(arguments) Function
  • Functions Input Output(arguments) (return) Function
  • Functions Private Input Output(arguments) (return) Function
  • Then Systems Grew
  • Then Systems Grew
  • Spaghetti Code
  • Pittsburg 70’s
  • Pittsburg 70’s“ … modularization as a mechanism for improvingthe flexibility and comprehensibility of a systemwhile allowing the shortening of its developmenttime.” David Parnas
  • Modules
  • Modules Module
  • Modules Private FunctionsImported ExportedFunctions Functions Module
  • Then Systems Grew
  • Then Systems Grew
  • Sharing Proved Hard
  • Sharing Proved Hard
  • Sharing Proved Hard
  • Palo Alto 80’s
  • Palo Alto 80’s“Objects support modularity - the functioning of anobject does not depend on the internal details ofanother object. The complexity of the system isreduced by this minimization of interdependenciesof system components.” Smalltalk Team
  • Objects
  • Objects Private MembersImported ExportedMembers Members Type
  • Objects• Objects/Classes => Modules + • Instantiation (private data per instance) • Inheritance • Polymorphism
  • Then Systems Grew
  • Then Systems Grew
  • C++
  • Menlo Park 90’s
  • Menlo Park 90’s
  • Packages“Chapter 7 describes the structure of a program,which is organized into packages similar to themodules of Modula.” Java Language Specification
  • Packages Private TypesImported Exported Types Types Packages
  • Then Systems Grew
  • Then Systems Grew
  • And Distributed
  • And Distributed
  • And Multiplied
  • And Multiplied
  • Small Java App ...
  • Worldwide 00’s
  • Worldwide 00’s
  • Worldwide 00’s
  • Next Level of Modularity
  • Next Level of Modularity Functions
  • Next Level of Modularity Classes/Objects Functions
  • Next Level of Modularity Packages Classes/Objects Functions
  • Next Level of Modularity Bundles Packages Classes/Objects Functions
  • Next Level of Modularity Bundles Packages Classes/Objects Functions
  • Bundles Private PackagesImported ExportedPackages Packages Bundle (JAR file)
  • Type Coupling
  • Type Coupling
  • Download the Internet
  • Type Coupling
  • Type Coupling substitutable packages = API
  • Instance CouplingConsumer Bundle Provider Bundle
  • Instance CouplingConsumer Bundle Provider Bundle API Bundle
  • Instance CouplingConsumer Bundle Provider Bundle need an instance ... API Bundle
  • Instance CouplingConsumer Bundle Provider Bundle X need an instance ... API Bundle
  • Instance Coupling
  • Instance CouplingConsumer Bundle Provider Bundle Service API Bundle
  • A Dream Come True A B C D E F G H I
  • Why OSGi?… because it is a better way to develop software ...
  • Conclusion2010 2003 2017 1996 1989 1982 1982 1975 1968 1961 Amount of software doubling every 7 years source: http://users.jyu.fi/~koskinen/smcosts.htm
  • OSGi• Legacy and backward compatibility is important• Modularizing is hard • Many popular Java patterns are fundamentally not modular• In the next 7 years, we double the amount of software• Investment in modularity has a great ROI!
  • OSGi Alliance• The OSGi Alliance is a non-profit that has the vision to develop a Java component model to ease software development • Comprehensive framework specification • Service specifications • An active community • Repository • Tools
  • Join!• Help us to achieve our vision to make software simpler to develop• Provide Requirements• Develop specifications• Help the community• OSGi Alliance restructured to provide lower-cost membership levels
  • Q&A