Why OSGi?

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
1 of 95

Recommended

Benefits of OSGi in Practise by
Benefits of OSGi in PractiseBenefits of OSGi in Practise
Benefits of OSGi in PractiseDavid Bosschaert
11.6K views38 slides
Intro to OSGi – the Microservices kernel - P Kriens & T Ward by
Intro to OSGi – the Microservices kernel - P Kriens & T WardIntro to OSGi – the Microservices kernel - P Kriens & T Ward
Intro to OSGi – the Microservices kernel - P Kriens & T Wardmfrancis
3.7K views93 slides
Atlassian Summit 2012 - Immigration to Confluence: A Journey Through Foreign ... by
Atlassian Summit 2012 - Immigration to Confluence: A Journey Through Foreign ...Atlassian Summit 2012 - Immigration to Confluence: A Journey Through Foreign ...
Atlassian Summit 2012 - Immigration to Confluence: A Journey Through Foreign ...Atlassian
694 views26 slides
No, we can't do continuous delivery by
No, we can't do continuous deliveryNo, we can't do continuous delivery
No, we can't do continuous deliveryKris Buytaert
1.8K views52 slides
Immigration to Confluence: A Journey Through Foreign Customs by
Immigration to Confluence: A Journey Through Foreign CustomsImmigration to Confluence: A Journey Through Foreign Customs
Immigration to Confluence: A Journey Through Foreign CustomsAtlassian
599 views26 slides
How Heroku uses Heroku to build Heroku by
How Heroku uses Heroku to build HerokuHow Heroku uses Heroku to build Heroku
How Heroku uses Heroku to build HerokuCraig Kerstiens
1.1K views92 slides

More Related Content

Similar to Why OSGi?

Beyond Sharing: Open Source Design by
Beyond Sharing: Open Source DesignBeyond Sharing: Open Source Design
Beyond Sharing: Open Source DesignMushon Zer-Aviv
902 views84 slides
Goto Berlin - Migrating to Microservices (Fast Delivery) by
Goto Berlin - Migrating to Microservices (Fast Delivery)Goto Berlin - Migrating to Microservices (Fast Delivery)
Goto Berlin - Migrating to Microservices (Fast Delivery)Adrian Cockcroft
24.1K views89 slides
The business case for contributing code by
The business case for contributing codeThe business case for contributing code
The business case for contributing codeZivtech, LLC
428 views96 slides
Run stuff, Deploy Stuff, Jax London 2017 Edition by
Run stuff, Deploy Stuff, Jax London 2017 EditionRun stuff, Deploy Stuff, Jax London 2017 Edition
Run stuff, Deploy Stuff, Jax London 2017 EditionKris Buytaert
2.2K views46 slides
Continuous Delivery of (y)our infrastructure. by
Continuous Delivery of (y)our infrastructure.Continuous Delivery of (y)our infrastructure.
Continuous Delivery of (y)our infrastructure.Kris Buytaert
3K views45 slides
Nightmare on Docker street by
Nightmare on Docker streetNightmare on Docker street
Nightmare on Docker streetKris Buytaert
4K views20 slides

Similar to Why OSGi?(20)

Beyond Sharing: Open Source Design by Mushon Zer-Aviv
Beyond Sharing: Open Source DesignBeyond Sharing: Open Source Design
Beyond Sharing: Open Source Design
Mushon Zer-Aviv902 views
Goto Berlin - Migrating to Microservices (Fast Delivery) by Adrian Cockcroft
Goto Berlin - Migrating to Microservices (Fast Delivery)Goto Berlin - Migrating to Microservices (Fast Delivery)
Goto Berlin - Migrating to Microservices (Fast Delivery)
Adrian Cockcroft24.1K views
The business case for contributing code by Zivtech, LLC
The business case for contributing codeThe business case for contributing code
The business case for contributing code
Zivtech, LLC428 views
Run stuff, Deploy Stuff, Jax London 2017 Edition by Kris Buytaert
Run stuff, Deploy Stuff, Jax London 2017 EditionRun stuff, Deploy Stuff, Jax London 2017 Edition
Run stuff, Deploy Stuff, Jax London 2017 Edition
Kris Buytaert2.2K views
Continuous Delivery of (y)our infrastructure. by Kris Buytaert
Continuous Delivery of (y)our infrastructure.Continuous Delivery of (y)our infrastructure.
Continuous Delivery of (y)our infrastructure.
Kris Buytaert3K views
Docker volume plugins and Infinit – Mini-conf Docker Paris #1 by Infinit
Docker volume plugins and Infinit – Mini-conf Docker Paris #1Docker volume plugins and Infinit – Mini-conf Docker Paris #1
Docker volume plugins and Infinit – Mini-conf Docker Paris #1
Infinit650 views
Why HTML5? by istudor
Why HTML5?Why HTML5?
Why HTML5?
istudor583 views
تطوير التطبيقات التفاعلية باستخدام Unity by Ahmed
تطوير التطبيقات التفاعلية باستخدام Unity تطوير التطبيقات التفاعلية باستخدام Unity
تطوير التطبيقات التفاعلية باستخدام Unity
Ahmed911 views
NAB Show 2018 Notes by Yusuke Goto
NAB Show 2018 NotesNAB Show 2018 Notes
NAB Show 2018 Notes
Yusuke Goto1.3K views
Change agile for XP Days 2012 benelux v1.0 by Ben Linders
Change agile for XP Days 2012 benelux v1.0Change agile for XP Days 2012 benelux v1.0
Change agile for XP Days 2012 benelux v1.0
Ben Linders3.3K views
Microservices from dream to reality in an hour - Dr. Holly Cummins by JAXLondon_Conference
Microservices from dream to reality in an hour - Dr. Holly CumminsMicroservices from dream to reality in an hour - Dr. Holly Cummins
Microservices from dream to reality in an hour - Dr. Holly Cummins
The influence of "Distributed platforms" on #devops by Kris Buytaert
The influence of "Distributed platforms" on #devopsThe influence of "Distributed platforms" on #devops
The influence of "Distributed platforms" on #devops
Kris Buytaert1.3K views
Docker is killing your #devops Efforts by Kris Buytaert
Docker is killing your #devops EffortsDocker is killing your #devops Efforts
Docker is killing your #devops Efforts
Kris Buytaert2.6K views
Continous Delivery of your Infrastructure by Kris Buytaert
Continous Delivery of your InfrastructureContinous Delivery of your Infrastructure
Continous Delivery of your Infrastructure
Kris Buytaert857 views

More from bjhargrave

The new OSGi LogService 1.4 and integrating with SLF4J by
The new OSGi LogService 1.4 and integrating with SLF4JThe new OSGi LogService 1.4 and integrating with SLF4J
The new OSGi LogService 1.4 and integrating with SLF4Jbjhargrave
1.3K views23 slides
OSGi and Java 9+ by
OSGi and Java 9+OSGi and Java 9+
OSGi and Java 9+bjhargrave
513 views26 slides
Constructor injection and other new features for Declarative Services 1.4 by
Constructor injection and other new features for Declarative Services 1.4Constructor injection and other new features for Declarative Services 1.4
Constructor injection and other new features for Declarative Services 1.4bjhargrave
721 views27 slides
Field injection, type safe configuration, and more new goodies in Declarative... by
Field injection, type safe configuration, and more new goodies in Declarative...Field injection, type safe configuration, and more new goodies in Declarative...
Field injection, type safe configuration, and more new goodies in Declarative...bjhargrave
1.8K views26 slides
Services-First Migration to OSGi by
Services-First Migration to OSGiServices-First Migration to OSGi
Services-First Migration to OSGibjhargrave
2.8K views80 slides
OSGi Puzzlers by
OSGi PuzzlersOSGi Puzzlers
OSGi Puzzlersbjhargrave
7.2K views15 slides

More from bjhargrave(7)

The new OSGi LogService 1.4 and integrating with SLF4J by bjhargrave
The new OSGi LogService 1.4 and integrating with SLF4JThe new OSGi LogService 1.4 and integrating with SLF4J
The new OSGi LogService 1.4 and integrating with SLF4J
bjhargrave1.3K views
OSGi and Java 9+ by bjhargrave
OSGi and Java 9+OSGi and Java 9+
OSGi and Java 9+
bjhargrave513 views
Constructor injection and other new features for Declarative Services 1.4 by bjhargrave
Constructor injection and other new features for Declarative Services 1.4Constructor injection and other new features for Declarative Services 1.4
Constructor injection and other new features for Declarative Services 1.4
bjhargrave721 views
Field injection, type safe configuration, and more new goodies in Declarative... by bjhargrave
Field injection, type safe configuration, and more new goodies in Declarative...Field injection, type safe configuration, and more new goodies in Declarative...
Field injection, type safe configuration, and more new goodies in Declarative...
bjhargrave1.8K views
Services-First Migration to OSGi by bjhargrave
Services-First Migration to OSGiServices-First Migration to OSGi
Services-First Migration to OSGi
bjhargrave2.8K views
OSGi Puzzlers by bjhargrave
OSGi PuzzlersOSGi Puzzlers
OSGi Puzzlers
bjhargrave7.2K views
OSGi 4.3 Technical Update: What's New? by bjhargrave
OSGi 4.3 Technical Update: What's New?OSGi 4.3 Technical Update: What's New?
OSGi 4.3 Technical Update: What's New?
bjhargrave2.5K views

Recently uploaded

MemVerge: Gismo (Global IO-free Shared Memory Objects) by
MemVerge: Gismo (Global IO-free Shared Memory Objects)MemVerge: Gismo (Global IO-free Shared Memory Objects)
MemVerge: Gismo (Global IO-free Shared Memory Objects)CXL Forum
112 views16 slides
Empathic Computing: Delivering the Potential of the Metaverse by
Empathic Computing: Delivering  the Potential of the MetaverseEmpathic Computing: Delivering  the Potential of the Metaverse
Empathic Computing: Delivering the Potential of the MetaverseMark Billinghurst
449 views80 slides
Future of Learning - Khoong Chan Meng by
Future of Learning - Khoong Chan MengFuture of Learning - Khoong Chan Meng
Future of Learning - Khoong Chan MengNUS-ISS
31 views7 slides
"Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ... by
"Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ..."Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ...
"Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ...Fwdays
33 views39 slides
"AI Startup Growth from Idea to 1M ARR", Oleksandr Uspenskyi by
"AI Startup Growth from Idea to 1M ARR", Oleksandr Uspenskyi"AI Startup Growth from Idea to 1M ARR", Oleksandr Uspenskyi
"AI Startup Growth from Idea to 1M ARR", Oleksandr UspenskyiFwdays
26 views9 slides

Recently uploaded(20)

MemVerge: Gismo (Global IO-free Shared Memory Objects) by CXL Forum
MemVerge: Gismo (Global IO-free Shared Memory Objects)MemVerge: Gismo (Global IO-free Shared Memory Objects)
MemVerge: Gismo (Global IO-free Shared Memory Objects)
CXL Forum112 views
Empathic Computing: Delivering the Potential of the Metaverse by Mark Billinghurst
Empathic Computing: Delivering  the Potential of the MetaverseEmpathic Computing: Delivering  the Potential of the Metaverse
Empathic Computing: Delivering the Potential of the Metaverse
Mark Billinghurst449 views
Future of Learning - Khoong Chan Meng by NUS-ISS
Future of Learning - Khoong Chan MengFuture of Learning - Khoong Chan Meng
Future of Learning - Khoong Chan Meng
NUS-ISS31 views
"Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ... by Fwdays
"Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ..."Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ...
"Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ...
Fwdays33 views
"AI Startup Growth from Idea to 1M ARR", Oleksandr Uspenskyi by Fwdays
"AI Startup Growth from Idea to 1M ARR", Oleksandr Uspenskyi"AI Startup Growth from Idea to 1M ARR", Oleksandr Uspenskyi
"AI Startup Growth from Idea to 1M ARR", Oleksandr Uspenskyi
Fwdays26 views
Upskilling the Evolving Workforce with Digital Fluency for Tomorrow's Challen... by NUS-ISS
Upskilling the Evolving Workforce with Digital Fluency for Tomorrow's Challen...Upskilling the Evolving Workforce with Digital Fluency for Tomorrow's Challen...
Upskilling the Evolving Workforce with Digital Fluency for Tomorrow's Challen...
NUS-ISS23 views
Understanding GenAI/LLM and What is Google Offering - Felix Goh by NUS-ISS
Understanding GenAI/LLM and What is Google Offering - Felix GohUnderstanding GenAI/LLM and What is Google Offering - Felix Goh
Understanding GenAI/LLM and What is Google Offering - Felix Goh
NUS-ISS39 views
.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV by Splunk
.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV
.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV
Splunk86 views
Transcript: The Details of Description Techniques tips and tangents on altern... by BookNet Canada
Transcript: The Details of Description Techniques tips and tangents on altern...Transcript: The Details of Description Techniques tips and tangents on altern...
Transcript: The Details of Description Techniques tips and tangents on altern...
BookNet Canada119 views
"How we switched to Kanban and how it integrates with product planning", Vady... by Fwdays
"How we switched to Kanban and how it integrates with product planning", Vady..."How we switched to Kanban and how it integrates with product planning", Vady...
"How we switched to Kanban and how it integrates with product planning", Vady...
Fwdays61 views
CXL at OCP by CXL Forum
CXL at OCPCXL at OCP
CXL at OCP
CXL Forum208 views
Future of Learning - Yap Aye Wee.pdf by NUS-ISS
Future of Learning - Yap Aye Wee.pdfFuture of Learning - Yap Aye Wee.pdf
Future of Learning - Yap Aye Wee.pdf
NUS-ISS38 views
Five Things You SHOULD Know About Postman by Postman
Five Things You SHOULD Know About PostmanFive Things You SHOULD Know About Postman
Five Things You SHOULD Know About Postman
Postman25 views
AMD: 4th Generation EPYC CXL Demo by CXL Forum
AMD: 4th Generation EPYC CXL DemoAMD: 4th Generation EPYC CXL Demo
AMD: 4th Generation EPYC CXL Demo
CXL Forum126 views
"Ukrainian Mobile Banking Scaling in Practice. From 0 to 100 and beyond", Vad... by Fwdays
"Ukrainian Mobile Banking Scaling in Practice. From 0 to 100 and beyond", Vad..."Ukrainian Mobile Banking Scaling in Practice. From 0 to 100 and beyond", Vad...
"Ukrainian Mobile Banking Scaling in Practice. From 0 to 100 and beyond", Vad...
Fwdays40 views
"Fast Start to Building on AWS", Igor Ivaniuk by Fwdays
"Fast Start to Building on AWS", Igor Ivaniuk"Fast Start to Building on AWS", Igor Ivaniuk
"Fast Start to Building on AWS", Igor Ivaniuk
Fwdays36 views
Liqid: Composable CXL Preview by CXL Forum
Liqid: Composable CXL PreviewLiqid: Composable CXL Preview
Liqid: Composable CXL Preview
CXL Forum121 views

Why OSGi?