SlideShare una empresa de Scribd logo
1 de 95
Descargar para leer sin conexión
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

Más contenido relacionado

Similar a Why OSGi?

The business case for contributing code
The business case for contributing codeThe business case for contributing code
The business case for contributing code
Zivtech, LLC
 
Why HTML5?
Why HTML5?Why HTML5?
Why HTML5?
istudor
 
تطوير التطبيقات التفاعلية باستخدام Unity
تطوير التطبيقات التفاعلية باستخدام Unity تطوير التطبيقات التفاعلية باستخدام Unity
تطوير التطبيقات التفاعلية باستخدام Unity
Ahmed
 

Similar a Why OSGi? (20)

Beyond Sharing: Open Source Design
Beyond Sharing: Open Source DesignBeyond Sharing: Open Source Design
Beyond Sharing: Open Source Design
 
Goto Berlin - Migrating to Microservices (Fast Delivery)
Goto Berlin - Migrating to Microservices (Fast Delivery)Goto Berlin - Migrating to Microservices (Fast Delivery)
Goto Berlin - Migrating to Microservices (Fast Delivery)
 
The business case for contributing code
The business case for contributing codeThe business case for contributing code
The business case for contributing code
 
Run stuff, Deploy Stuff, Jax London 2017 Edition
Run stuff, Deploy Stuff, Jax London 2017 EditionRun stuff, Deploy Stuff, Jax London 2017 Edition
Run stuff, Deploy Stuff, Jax London 2017 Edition
 
Continuous Delivery of (y)our infrastructure.
Continuous Delivery of (y)our infrastructure.Continuous Delivery of (y)our infrastructure.
Continuous Delivery of (y)our infrastructure.
 
Nightmare on Docker street
Nightmare on Docker streetNightmare on Docker street
Nightmare on Docker street
 
Monktoberfest Fast Delivery
Monktoberfest Fast DeliveryMonktoberfest Fast Delivery
Monktoberfest Fast Delivery
 
Docker volume plugins and Infinit – Mini-conf Docker Paris #1
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
 
Why HTML5?
Why HTML5?Why HTML5?
Why HTML5?
 
Deployment is the new build
Deployment is the new buildDeployment is the new build
Deployment is the new build
 
Podcast presentation
Podcast presentationPodcast presentation
Podcast presentation
 
تطوير التطبيقات التفاعلية باستخدام Unity
تطوير التطبيقات التفاعلية باستخدام Unity تطوير التطبيقات التفاعلية باستخدام Unity
تطوير التطبيقات التفاعلية باستخدام Unity
 
Devops -- LKFR14
Devops -- LKFR14Devops -- LKFR14
Devops -- LKFR14
 
NAB Show 2018 Notes
NAB Show 2018 NotesNAB Show 2018 Notes
NAB Show 2018 Notes
 
Change agile for XP Days 2012 benelux v1.0
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
 
Microservices from dream to reality in an hour - Dr. Holly Cummins
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
 
E Convergence Solutions
E Convergence SolutionsE Convergence Solutions
E Convergence Solutions
 
The influence of "Distributed platforms" on #devops
The influence of "Distributed platforms" on #devopsThe influence of "Distributed platforms" on #devops
The influence of "Distributed platforms" on #devops
 
Docker is killing your #devops Efforts
Docker is killing your #devops EffortsDocker is killing your #devops Efforts
Docker is killing your #devops Efforts
 
Continous Delivery of your Infrastructure
Continous Delivery of your InfrastructureContinous Delivery of your Infrastructure
Continous Delivery of your Infrastructure
 

Más de bjhargrave

Más de bjhargrave (7)

The new OSGi LogService 1.4 and integrating with SLF4J
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
 
OSGi and Java 9+
OSGi and Java 9+OSGi and Java 9+
OSGi and Java 9+
 
Constructor injection and other new features for Declarative Services 1.4
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
 
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...
Field injection, type safe configuration, and more new goodies in Declarative...
 
Services-First Migration to OSGi
Services-First Migration to OSGiServices-First Migration to OSGi
Services-First Migration to OSGi
 
OSGi Puzzlers
OSGi PuzzlersOSGi Puzzlers
OSGi Puzzlers
 
OSGi 4.3 Technical Update: What's New?
OSGi 4.3 Technical Update: What's New?OSGi 4.3 Technical Update: What's New?
OSGi 4.3 Technical Update: What's New?
 

Último

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Último (20)

Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 

Why OSGi?