The document discusses why OSGi is important for developing software. It notes that the amount of software is doubling every 7 years, making modularity and flexibility more critical. OSGi aims to provide a better way to develop software that is adaptive, flexible, uses contracts and services, supports evolution and distribution. It discusses the history of concepts like subroutines, modules, objects, and packages that aimed to improve modularity. OSGi bundles take this further by allowing modularization at the package and service level. This achieves the dream of fully decoupled modules through the use of APIs and services. OSGi is presented as an important investment to support modularity as software growth continues exponentially.
25. Cambridge in the 50’s
“As soon as we started programming, we found to
our surprise that it wasn't as easy to get programs
right as we had thought.”
“… the realization came over me with full force that
a good part of the remainder of my life was going to
be spent finding errors in my own programs.”
Maurice Wilkes
28. Subroutines
• Subroutine:
• Focus on what, not how
• Encapsulate the implementation details
• Formalized the input data (arguments)
• Formalized the output (return values)
40. Pittsburg 70’s
“ … modularization as a mechanism for improving
the flexibility and comprehensibility of a system
while allowing the shortening of its development
time.”
David Parnas
50. Palo Alto 80’s
“Objects support modularity - the functioning of an
object does not depend on the internal details of
another object. The complexity of the system is
reduced by this minimization of interdependencies
of system components.”
Smalltalk Team
59. Packages
“Chapter 7 describes the structure of a program,
which is organized into packages similar to the
modules of Modula.”
Java Language Specification
91. Conclusion
2010 2003
2017
1996 1989
1982 1982
1975 1968
1961
Amount of software doubling every 7 years
source: http://users.jyu.fi/~koskinen/smcosts.htm
92. 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!
93. 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
94. 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