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 years
source: 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 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
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 improving
the flexibility and comprehensibility of a system
while allowing the shortening of its development
time.”
                                David Parnas
Modules
Modules



  Module
Modules
             Private Functions




Imported                         Exported
Functions                        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 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
Objects
Objects
            Private Members




Imported                      Exported
Members                       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 the
modules of Modula.”
                  Java Language Specification
Packages
             Private Types




Imported                     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 Packages


Imported                      Exported
Packages                      Packages




                Bundle
              (JAR file)
Type Coupling
Type Coupling
Download the Internet
Type Coupling
Type Coupling



    substitutable
      packages
        = API
Instance Coupling

Consumer Bundle   Provider Bundle
Instance Coupling

Consumer Bundle                Provider Bundle




                  API Bundle
Instance Coupling

Consumer Bundle                  Provider Bundle


                    need an
                  instance ...




                  API Bundle
Instance Coupling

Consumer Bundle                  Provider Bundle



                                  X
                    need an
                  instance ...




                  API Bundle
Instance Coupling
Instance Coupling

Consumer 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 ...
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
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

More Related Content

PDF
Benefits of OSGi in Practise
PDF
The Brick Wall of Modularity
PDF
The Joy Of Ruby
PPTX
Inside Wordnik's Architecture
PDF
3 f6 9_distributed_systems
PDF
Ballerina is not Java (or Go or ..)
PPTX
2018 07-ballerina-ballerina con
PDF
Groovy On Trading Desk (2010)
Benefits of OSGi in Practise
The Brick Wall of Modularity
The Joy Of Ruby
Inside Wordnik's Architecture
3 f6 9_distributed_systems
Ballerina is not Java (or Go or ..)
2018 07-ballerina-ballerina con
Groovy On Trading Desk (2010)

Similar to Why OSGi? (20)

ODP
The business opportunities in capacity building for APPS development in Africa
PDF
ABSE and AtomWeaver : A Quantum Leap in Software Development
PDF
Services-First Migration to OSGi
ODP
Path Dependent Development (PyCon AU)
PDF
GR8Conf 2009: Practical Groovy DSL by Guillaume Laforge
PDF
Programming for non tech entrepreneurs
PDF
BCS SPA 2010 - An Introduction to Scala for Java Developers
PDF
An Introduction to Scala for Java Developers
PPTX
Key-value databases in practice Redis @ DotNetToscana
PPT
Trends in Programming Technology you might want to keep an eye on af Bent Tho...
PDF
Bhavesh ro r
PDF
Climb - Property-based dispatch in functional languages [Report]
ODP
Path dependent-development (PyCon India)
PDF
Introduction to Groovy and what's New in Groovy 1.6 - SpringOne Europe 2009
PDF
Cloud is such stuff as dreams are made on
PDF
groovy and concurrency
PDF
Microservices - opportunities, dilemmas and problems
PDF
dotnet_remoting
PPT
Session18 Madduri
PDF
Web frameworks
The business opportunities in capacity building for APPS development in Africa
ABSE and AtomWeaver : A Quantum Leap in Software Development
Services-First Migration to OSGi
Path Dependent Development (PyCon AU)
GR8Conf 2009: Practical Groovy DSL by Guillaume Laforge
Programming for non tech entrepreneurs
BCS SPA 2010 - An Introduction to Scala for Java Developers
An Introduction to Scala for Java Developers
Key-value databases in practice Redis @ DotNetToscana
Trends in Programming Technology you might want to keep an eye on af Bent Tho...
Bhavesh ro r
Climb - Property-based dispatch in functional languages [Report]
Path dependent-development (PyCon India)
Introduction to Groovy and what's New in Groovy 1.6 - SpringOne Europe 2009
Cloud is such stuff as dreams are made on
groovy and concurrency
Microservices - opportunities, dilemmas and problems
dotnet_remoting
Session18 Madduri
Web frameworks
Ad

More from bjhargrave (6)

PDF
The new OSGi LogService 1.4 and integrating with SLF4J
PDF
OSGi and Java 9+
PDF
Constructor injection and other new features for Declarative Services 1.4
PDF
Field injection, type safe configuration, and more new goodies in Declarative...
PDF
OSGi Puzzlers
KEY
OSGi 4.3 Technical Update: What's New?
The new OSGi LogService 1.4 and integrating with SLF4J
OSGi and Java 9+
Constructor injection and other new features for Declarative Services 1.4
Field injection, type safe configuration, and more new goodies in Declarative...
OSGi Puzzlers
OSGi 4.3 Technical Update: What's New?
Ad

Recently uploaded (20)

PDF
Early detection and classification of bone marrow changes in lumbar vertebrae...
PDF
Convolutional neural network based encoder-decoder for efficient real-time ob...
PDF
4 layer Arch & Reference Arch of IoT.pdf
PDF
Planning-an-Audit-A-How-To-Guide-Checklist-WP.pdf
PDF
The-2025-Engineering-Revolution-AI-Quality-and-DevOps-Convergence.pdf
PDF
Improvisation in detection of pomegranate leaf disease using transfer learni...
PDF
Advancing precision in air quality forecasting through machine learning integ...
PDF
Transform-Your-Streaming-Platform-with-AI-Driven-Quality-Engineering.pdf
PPTX
SGT Report The Beast Plan and Cyberphysical Systems of Control
PPTX
Module 1 Introduction to Web Programming .pptx
PDF
Accessing-Finance-in-Jordan-MENA 2024 2025.pdf
PDF
Enhancing plagiarism detection using data pre-processing and machine learning...
PDF
Produktkatalog für HOBO Datenlogger, Wetterstationen, Sensoren, Software und ...
PDF
Transform-Your-Factory-with-AI-Driven-Quality-Engineering.pdf
PDF
Rapid Prototyping: A lecture on prototyping techniques for interface design
PDF
giants, standing on the shoulders of - by Daniel Stenberg
PDF
AI.gov: A Trojan Horse in the Age of Artificial Intelligence
PDF
SaaS reusability assessment using machine learning techniques
PDF
NewMind AI Weekly Chronicles – August ’25 Week IV
PPTX
GROUP4NURSINGINFORMATICSREPORT-2 PRESENTATION
Early detection and classification of bone marrow changes in lumbar vertebrae...
Convolutional neural network based encoder-decoder for efficient real-time ob...
4 layer Arch & Reference Arch of IoT.pdf
Planning-an-Audit-A-How-To-Guide-Checklist-WP.pdf
The-2025-Engineering-Revolution-AI-Quality-and-DevOps-Convergence.pdf
Improvisation in detection of pomegranate leaf disease using transfer learni...
Advancing precision in air quality forecasting through machine learning integ...
Transform-Your-Streaming-Platform-with-AI-Driven-Quality-Engineering.pdf
SGT Report The Beast Plan and Cyberphysical Systems of Control
Module 1 Introduction to Web Programming .pptx
Accessing-Finance-in-Jordan-MENA 2024 2025.pdf
Enhancing plagiarism detection using data pre-processing and machine learning...
Produktkatalog für HOBO Datenlogger, Wetterstationen, Sensoren, Software und ...
Transform-Your-Factory-with-AI-Driven-Quality-Engineering.pdf
Rapid Prototyping: A lecture on prototyping techniques for interface design
giants, standing on the shoulders of - by Daniel Stenberg
AI.gov: A Trojan Horse in the Age of Artificial Intelligence
SaaS reusability assessment using machine learning techniques
NewMind AI Weekly Chronicles – August ’25 Week IV
GROUP4NURSINGINFORMATICSREPORT-2 PRESENTATION

Why OSGi?