SlideShare une entreprise Scribd logo
1  sur  95
Télécharger pour lire hors ligne
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

Contenu connexe

Similaire à 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
 

Similaire à 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
 

Plus de bjhargrave

Plus 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?
 

Dernier

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Dernier (20)

ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
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
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
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...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
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
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
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
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 

Why OSGi?