SlideShare ist ein Scribd-Unternehmen logo
1 von 10
Downloaden Sie, um offline zu lesen
22nd June 2009, Zurich



 Bundle Updates with
Verified Compatibility
        Premek Brada
  University of West Bohemia
           Pilsen, CZ
Agenda
•   Problems addressed
•   Version generator
•   Safe bundle update
•   How does it work
•   Experiences




OSGi DevCon 22.6.2009 Zurich   Premek Brada - Bundle Updates with Verified Compatibility   2
Problem addressed:
version id  implementation
      reality mismatch
• Scenarios                                           When you only import packages and require
                                                      some minimal or maximal version it means
      – origin                                        that the developer of the library has to do
                                                      very good version management. If he changes
      – consequences                                  an api and does not change the major number
                                                      it can affect an already deployed application.
• Variants                                            With maven you already have the same
                                                      problems it compile time but with osgi it can
      – false positives/negatives                     crash at runtime. We need a whole set of new
                                                      tools for this problem.

                                                      -- comment on Peter Krien’s blog, 6/2009

OSGi DevCon 22.6.2009 Zurich   Premek Brada - Bundle Updates with Verified Compatibility         3
Scenario 1: Values
  Developer assigns                               Dist VID         Correct VID         Surface changes

  version numbers                                 0.9.0            1.0.0               n/a

  manually  bogus                                0.9.2            1.1.0               extension
                                                  1.0.0            2.0.0               removal
  or incorrect values
  (natural human reasons)                         Dist VID         Correct VID         Surface changes
                                                  1.0.1            1.0.0               n/a
                                                  1.0.3            1.0.1               (none)
                                                  1.0.4            1.0.2               (none)
                   Analysis of an
                    OSGi project                  1.2.0            2.0.0               modification
                          –                       1.2.1            2.0.1               (none)
                   version stream                 1.2.2            2.0.2               (none)
                   of two bundles                 1.4.0            2.1.0               extension
                                                  1.4.1            2.2.0               extension

OSGi DevCon 22.6.2009 Zurich        Premek Brada - Bundle Updates with Verified Compatibility            4
Scenario 2: Consequences
                                                                               Resolver believes
                                                                               version id 
                                                                               run-time failures
                                                                               after clean bind
                                                                               or update.




OSGi DevCon 22.6.2009 Zurich   Premek Brada - Bundle Updates with Verified Compatibility      5
Scenario 2: Consequences
                                                                               Resolver believes
                                                                               version id 
                                                                               run-time failures
                                                                               after clean bind
                                                                               or update.




OSGi DevCon 22.6.2009 Zurich   Premek Brada - Bundle Updates with Verified Compatibility      6
Build-time solution:
                   Version generator

• Provably correct version identifiers
      – (developing new bundle version, for update)
      – compute changes from previous revision
      – assign version numbers according to the
        scheme semantics
• Implemented as ant task + supporting libraries
      – works on .jar / .class, not on .java source

OSGi DevCon 22.6.2009 Zurich   Premek Brada - Bundle Updates with Verified Compatibility   7
Run-time solution:
                  Safe bundle update
• Enhanced update process
      – check that declared compatible
        is really compatible
      – works on bundle .jar files
• Implemented as user-space
  bundle


OSGi DevCon 22.6.2009 Zurich   Premek Brada - Bundle Updates with Verified Compatibility   8
Behind the scenes

• Based on type checking mechanism
• Reconstruct surface of bundle old, new
                          » actually, this is the hard work

• Check for subtype relation → difference
                          » the same thing as compiler does on assignment

• Results available for any level of bundle
  structure (class, package, exports, bundle)
                          » use as flags for resolver, turn into version value


OSGi DevCon 22.6.2009 Zurich        Premek Brada - Bundle Updates with Verified Compatibility   9
Experiences & Summary
• Issues we ran into
      – can’t check service interfaces etc
      – can’t hook well into resolving process
      – can’t rely on version id semantics
• API to access installed bundle’s JARs would help

• With finer and enforced version of “proper
  imports” best practice, we can have type-safe
  updates and bundle resolving
                 http://www.kiv.zcu.cz/research/groups/dss/
OSGi DevCon 22.6.2009 Zurich   Premek Brada - Bundle Updates with Verified Compatibility   10

Weitere ähnliche Inhalte

Was ist angesagt?

CI from scratch with Jenkins (EN)
CI from scratch with Jenkins (EN)CI from scratch with Jenkins (EN)
CI from scratch with Jenkins (EN)Borislav Traykov
 
The Brave New World of Continuous Release
The Brave New World of Continuous ReleaseThe Brave New World of Continuous Release
The Brave New World of Continuous ReleaseBaruch Sadogursky
 
Continuous Deployment Pipeline with maven
Continuous Deployment Pipeline with mavenContinuous Deployment Pipeline with maven
Continuous Deployment Pipeline with mavenAlan Parkinson
 
Version Management in Maven
Version Management in MavenVersion Management in Maven
Version Management in MavenGeert Pante
 
1.2 introduction to scm - what does version number tell us
1.2   introduction to scm - what does version number tell us1.2   introduction to scm - what does version number tell us
1.2 introduction to scm - what does version number tell usSergii Shmarkatiuk
 
Apache Maven for SoftServe IT Academy
Apache Maven for SoftServe IT AcademyApache Maven for SoftServe IT Academy
Apache Maven for SoftServe IT AcademyVolodymyr Ostapiv
 
Automated Deployment with Maven - going the whole nine yards
Automated Deployment with Maven - going the whole nine yardsAutomated Deployment with Maven - going the whole nine yards
Automated Deployment with Maven - going the whole nine yardsJohn Ferguson Smart Limited
 
How to Test Enterprise Java Applications
How to Test Enterprise Java ApplicationsHow to Test Enterprise Java Applications
How to Test Enterprise Java ApplicationsAlex Soto
 
Introduction to Subversion
Introduction to SubversionIntroduction to Subversion
Introduction to SubversionAtul Jha
 
Keep your projects under control with gene xus server, roy hart & carlos canessa
Keep your projects under control with gene xus server, roy hart & carlos canessaKeep your projects under control with gene xus server, roy hart & carlos canessa
Keep your projects under control with gene xus server, roy hart & carlos canessaGeneXus
 
Drupal & Continous Integration - SF State Study Case
Drupal & Continous Integration - SF State Study CaseDrupal & Continous Integration - SF State Study Case
Drupal & Continous Integration - SF State Study CaseEmanuele Quinto
 
Ordina Accelerator program 2019 - Jenkins blue ocean pipelines
Ordina Accelerator program 2019 - Jenkins blue ocean pipelinesOrdina Accelerator program 2019 - Jenkins blue ocean pipelines
Ordina Accelerator program 2019 - Jenkins blue ocean pipelinesBert Koorengevel
 
Getting Started With Subversion
Getting Started With SubversionGetting Started With Subversion
Getting Started With SubversionJordan Hatch
 
Ci jenkins maven svn
Ci jenkins maven svnCi jenkins maven svn
Ci jenkins maven svnAnkur Goyal
 
02 - Build and Deployment Management
02 - Build and Deployment Management02 - Build and Deployment Management
02 - Build and Deployment ManagementSergii Shmarkatiuk
 
Submodeling using ansys_workbench_v12
Submodeling using ansys_workbench_v12Submodeling using ansys_workbench_v12
Submodeling using ansys_workbench_v12sivasankar1977
 

Was ist angesagt? (20)

CI from scratch with Jenkins (EN)
CI from scratch with Jenkins (EN)CI from scratch with Jenkins (EN)
CI from scratch with Jenkins (EN)
 
The Brave New World of Continuous Release
The Brave New World of Continuous ReleaseThe Brave New World of Continuous Release
The Brave New World of Continuous Release
 
Devenv command line
Devenv command lineDevenv command line
Devenv command line
 
Continuous Deployment Pipeline with maven
Continuous Deployment Pipeline with mavenContinuous Deployment Pipeline with maven
Continuous Deployment Pipeline with maven
 
Version Management in Maven
Version Management in MavenVersion Management in Maven
Version Management in Maven
 
1.2 introduction to scm - what does version number tell us
1.2   introduction to scm - what does version number tell us1.2   introduction to scm - what does version number tell us
1.2 introduction to scm - what does version number tell us
 
Apache Maven for SoftServe IT Academy
Apache Maven for SoftServe IT AcademyApache Maven for SoftServe IT Academy
Apache Maven for SoftServe IT Academy
 
Automated Deployment with Maven - going the whole nine yards
Automated Deployment with Maven - going the whole nine yardsAutomated Deployment with Maven - going the whole nine yards
Automated Deployment with Maven - going the whole nine yards
 
How to Test Enterprise Java Applications
How to Test Enterprise Java ApplicationsHow to Test Enterprise Java Applications
How to Test Enterprise Java Applications
 
Introduction to Subversion
Introduction to SubversionIntroduction to Subversion
Introduction to Subversion
 
Keep your projects under control with gene xus server, roy hart & carlos canessa
Keep your projects under control with gene xus server, roy hart & carlos canessaKeep your projects under control with gene xus server, roy hart & carlos canessa
Keep your projects under control with gene xus server, roy hart & carlos canessa
 
05 - Merge Management
05 - Merge Management05 - Merge Management
05 - Merge Management
 
Drupal & Continous Integration - SF State Study Case
Drupal & Continous Integration - SF State Study CaseDrupal & Continous Integration - SF State Study Case
Drupal & Continous Integration - SF State Study Case
 
Svn tutorial
Svn tutorialSvn tutorial
Svn tutorial
 
Ordina Accelerator program 2019 - Jenkins blue ocean pipelines
Ordina Accelerator program 2019 - Jenkins blue ocean pipelinesOrdina Accelerator program 2019 - Jenkins blue ocean pipelines
Ordina Accelerator program 2019 - Jenkins blue ocean pipelines
 
SVN Best Practices
SVN Best PracticesSVN Best Practices
SVN Best Practices
 
Getting Started With Subversion
Getting Started With SubversionGetting Started With Subversion
Getting Started With Subversion
 
Ci jenkins maven svn
Ci jenkins maven svnCi jenkins maven svn
Ci jenkins maven svn
 
02 - Build and Deployment Management
02 - Build and Deployment Management02 - Build and Deployment Management
02 - Build and Deployment Management
 
Submodeling using ansys_workbench_v12
Submodeling using ansys_workbench_v12Submodeling using ansys_workbench_v12
Submodeling using ansys_workbench_v12
 

Andere mochten auch

CRCE - přehled datového modelu a vybraná API
CRCE - přehled datového modelu a vybraná APICRCE - přehled datového modelu a vybraná API
CRCE - přehled datového modelu a vybraná APIPremek Brada
 
CRCE Architecture Overview
CRCE Architecture OverviewCRCE Architecture Overview
CRCE Architecture OverviewPremek Brada
 
Brada -semantic-versioning-tool
Brada -semantic-versioning-toolBrada -semantic-versioning-tool
Brada -semantic-versioning-toolPremek Brada
 
Presentation -rmc-to-rtc
Presentation -rmc-to-rtcPresentation -rmc-to-rtc
Presentation -rmc-to-rtcPremek Brada
 
ReliSA KIV hlavni oblasti vyzkumu (2014-01)
ReliSA KIV hlavni oblasti vyzkumu (2014-01)ReliSA KIV hlavni oblasti vyzkumu (2014-01)
ReliSA KIV hlavni oblasti vyzkumu (2014-01)Premek Brada
 
UML-test Application for Automated Validation of Students’ UML Class Diagram
UML-test Application for Automated Validation of Students’ UML Class DiagramUML-test Application for Automated Validation of Students’ UML Class Diagram
UML-test Application for Automated Validation of Students’ UML Class DiagramPremek Brada
 

Andere mochten auch (6)

CRCE - přehled datového modelu a vybraná API
CRCE - přehled datového modelu a vybraná APICRCE - přehled datového modelu a vybraná API
CRCE - přehled datového modelu a vybraná API
 
CRCE Architecture Overview
CRCE Architecture OverviewCRCE Architecture Overview
CRCE Architecture Overview
 
Brada -semantic-versioning-tool
Brada -semantic-versioning-toolBrada -semantic-versioning-tool
Brada -semantic-versioning-tool
 
Presentation -rmc-to-rtc
Presentation -rmc-to-rtcPresentation -rmc-to-rtc
Presentation -rmc-to-rtc
 
ReliSA KIV hlavni oblasti vyzkumu (2014-01)
ReliSA KIV hlavni oblasti vyzkumu (2014-01)ReliSA KIV hlavni oblasti vyzkumu (2014-01)
ReliSA KIV hlavni oblasti vyzkumu (2014-01)
 
UML-test Application for Automated Validation of Students’ UML Class Diagram
UML-test Application for Automated Validation of Students’ UML Class DiagramUML-test Application for Automated Validation of Students’ UML Class Diagram
UML-test Application for Automated Validation of Students’ UML Class Diagram
 

Ähnlich wie Safe Bundle Updates

Workflow for Development, Release and Versioning with OSGi / bndtools- Real W...
Workflow for Development, Release and Versioning with OSGi / bndtools- Real W...Workflow for Development, Release and Versioning with OSGi / bndtools- Real W...
Workflow for Development, Release and Versioning with OSGi / bndtools- Real W...mfrancis
 
CI/CD Pipeline with Docker
CI/CD Pipeline with DockerCI/CD Pipeline with Docker
CI/CD Pipeline with Dockerkushalsingh007
 
Alm tce parallel development
Alm tce parallel developmentAlm tce parallel development
Alm tce parallel developmentshalom938
 
de:code 2019 DT06 vs-show どっちのVSショー
de:code 2019 DT06 vs-show どっちのVSショーde:code 2019 DT06 vs-show どっちのVSショー
de:code 2019 DT06 vs-show どっちのVSショーIssei Hiraoka
 
Agile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery WorkshopAgile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery WorkshopMichael Palotas
 
Building a Large Java Codebase with Bazel - Natan Silnitsky
Building a Large Java Codebase with Bazel - Natan Silnitsky Building a Large Java Codebase with Bazel - Natan Silnitsky
Building a Large Java Codebase with Bazel - Natan Silnitsky Wix Engineering
 
Sv jug - mar 2013 - sl
Sv jug - mar 2013 - slSv jug - mar 2013 - sl
Sv jug - mar 2013 - slCloudBees
 
Tips for Installing Cognos Analytics 11.2.1x
Tips for Installing Cognos Analytics 11.2.1xTips for Installing Cognos Analytics 11.2.1x
Tips for Installing Cognos Analytics 11.2.1xSenturus
 
A New Paradigm In Linux Debug From Viosoft
A New Paradigm In Linux Debug From ViosoftA New Paradigm In Linux Debug From Viosoft
A New Paradigm In Linux Debug From Viosoftguestc28df4
 
Skype testing overview
Skype testing overviewSkype testing overview
Skype testing overviewQA Club Kiev
 
Skype testing overview
Skype testing overviewSkype testing overview
Skype testing overviewQA Club Kiev
 
Release notes zwcad+ 2014 sp1
Release notes   zwcad+ 2014 sp1Release notes   zwcad+ 2014 sp1
Release notes zwcad+ 2014 sp1johnchow_gor
 
02.19.13 WANDisco SVN Training: Branching Options for Development
02.19.13 WANDisco SVN Training: Branching Options for Development02.19.13 WANDisco SVN Training: Branching Options for Development
02.19.13 WANDisco SVN Training: Branching Options for DevelopmentWANdisco Plc
 
Accelerating DevOps at the SF DevOps MeetUp
Accelerating DevOps at the SF DevOps MeetUpAccelerating DevOps at the SF DevOps MeetUp
Accelerating DevOps at the SF DevOps MeetUpjwi11iams
 
Continuous Everything
Continuous EverythingContinuous Everything
Continuous EverythingAndrea Tino
 
Trying to Sell PVS-Studio to Google, or New Bugs in Chromium
Trying to Sell PVS-Studio to Google, or New Bugs in ChromiumTrying to Sell PVS-Studio to Google, or New Bugs in Chromium
Trying to Sell PVS-Studio to Google, or New Bugs in ChromiumAndrey Karpov
 
A New Paradigm In Linux Debug From Viosoft Corporation
A New Paradigm In Linux Debug From Viosoft CorporationA New Paradigm In Linux Debug From Viosoft Corporation
A New Paradigm In Linux Debug From Viosoft Corporationart_lee
 

Ähnlich wie Safe Bundle Updates (20)

Workflow for Development, Release and Versioning with OSGi / bndtools- Real W...
Workflow for Development, Release and Versioning with OSGi / bndtools- Real W...Workflow for Development, Release and Versioning with OSGi / bndtools- Real W...
Workflow for Development, Release and Versioning with OSGi / bndtools- Real W...
 
Svn Basic Tutorial
Svn Basic TutorialSvn Basic Tutorial
Svn Basic Tutorial
 
Subversion
SubversionSubversion
Subversion
 
CI/CD Pipeline with Docker
CI/CD Pipeline with DockerCI/CD Pipeline with Docker
CI/CD Pipeline with Docker
 
Alm tce parallel development
Alm tce parallel developmentAlm tce parallel development
Alm tce parallel development
 
de:code 2019 DT06 vs-show どっちのVSショー
de:code 2019 DT06 vs-show どっちのVSショーde:code 2019 DT06 vs-show どっちのVSショー
de:code 2019 DT06 vs-show どっちのVSショー
 
Agile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery WorkshopAgile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery Workshop
 
Building a Large Java Codebase with Bazel - Natan Silnitsky
Building a Large Java Codebase with Bazel - Natan Silnitsky Building a Large Java Codebase with Bazel - Natan Silnitsky
Building a Large Java Codebase with Bazel - Natan Silnitsky
 
Sv jug - mar 2013 - sl
Sv jug - mar 2013 - slSv jug - mar 2013 - sl
Sv jug - mar 2013 - sl
 
Tips for Installing Cognos Analytics 11.2.1x
Tips for Installing Cognos Analytics 11.2.1xTips for Installing Cognos Analytics 11.2.1x
Tips for Installing Cognos Analytics 11.2.1x
 
A New Paradigm In Linux Debug From Viosoft
A New Paradigm In Linux Debug From ViosoftA New Paradigm In Linux Debug From Viosoft
A New Paradigm In Linux Debug From Viosoft
 
Skype testing overview
Skype testing overviewSkype testing overview
Skype testing overview
 
Skype testing overview
Skype testing overviewSkype testing overview
Skype testing overview
 
Release notes zwcad+ 2014 sp1
Release notes   zwcad+ 2014 sp1Release notes   zwcad+ 2014 sp1
Release notes zwcad+ 2014 sp1
 
02.19.13 WANDisco SVN Training: Branching Options for Development
02.19.13 WANDisco SVN Training: Branching Options for Development02.19.13 WANDisco SVN Training: Branching Options for Development
02.19.13 WANDisco SVN Training: Branching Options for Development
 
Accelerating DevOps at the SF DevOps MeetUp
Accelerating DevOps at the SF DevOps MeetUpAccelerating DevOps at the SF DevOps MeetUp
Accelerating DevOps at the SF DevOps MeetUp
 
Continuous Everything
Continuous EverythingContinuous Everything
Continuous Everything
 
Trying to Sell PVS-Studio to Google, or New Bugs in Chromium
Trying to Sell PVS-Studio to Google, or New Bugs in ChromiumTrying to Sell PVS-Studio to Google, or New Bugs in Chromium
Trying to Sell PVS-Studio to Google, or New Bugs in Chromium
 
A New Paradigm In Linux Debug From Viosoft Corporation
A New Paradigm In Linux Debug From Viosoft CorporationA New Paradigm In Linux Debug From Viosoft Corporation
A New Paradigm In Linux Debug From Viosoft Corporation
 
2012 01-jenkins-udeploy
2012 01-jenkins-udeploy2012 01-jenkins-udeploy
2012 01-jenkins-udeploy
 

Kürzlich hochgeladen

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
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 Processorsdebabhi2
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 

Kürzlich hochgeladen (20)

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
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
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 

Safe Bundle Updates

  • 1. 22nd June 2009, Zurich Bundle Updates with Verified Compatibility Premek Brada University of West Bohemia Pilsen, CZ
  • 2. Agenda • Problems addressed • Version generator • Safe bundle update • How does it work • Experiences OSGi DevCon 22.6.2009 Zurich Premek Brada - Bundle Updates with Verified Compatibility 2
  • 3. Problem addressed: version id  implementation reality mismatch • Scenarios When you only import packages and require some minimal or maximal version it means – origin that the developer of the library has to do very good version management. If he changes – consequences an api and does not change the major number it can affect an already deployed application. • Variants With maven you already have the same problems it compile time but with osgi it can – false positives/negatives crash at runtime. We need a whole set of new tools for this problem. -- comment on Peter Krien’s blog, 6/2009 OSGi DevCon 22.6.2009 Zurich Premek Brada - Bundle Updates with Verified Compatibility 3
  • 4. Scenario 1: Values Developer assigns Dist VID Correct VID Surface changes version numbers 0.9.0 1.0.0 n/a manually  bogus 0.9.2 1.1.0 extension 1.0.0 2.0.0 removal or incorrect values (natural human reasons) Dist VID Correct VID Surface changes 1.0.1 1.0.0 n/a 1.0.3 1.0.1 (none) 1.0.4 1.0.2 (none) Analysis of an OSGi project 1.2.0 2.0.0 modification – 1.2.1 2.0.1 (none) version stream 1.2.2 2.0.2 (none) of two bundles 1.4.0 2.1.0 extension 1.4.1 2.2.0 extension OSGi DevCon 22.6.2009 Zurich Premek Brada - Bundle Updates with Verified Compatibility 4
  • 5. Scenario 2: Consequences Resolver believes version id  run-time failures after clean bind or update. OSGi DevCon 22.6.2009 Zurich Premek Brada - Bundle Updates with Verified Compatibility 5
  • 6. Scenario 2: Consequences Resolver believes version id  run-time failures after clean bind or update. OSGi DevCon 22.6.2009 Zurich Premek Brada - Bundle Updates with Verified Compatibility 6
  • 7. Build-time solution: Version generator • Provably correct version identifiers – (developing new bundle version, for update) – compute changes from previous revision – assign version numbers according to the scheme semantics • Implemented as ant task + supporting libraries – works on .jar / .class, not on .java source OSGi DevCon 22.6.2009 Zurich Premek Brada - Bundle Updates with Verified Compatibility 7
  • 8. Run-time solution: Safe bundle update • Enhanced update process – check that declared compatible is really compatible – works on bundle .jar files • Implemented as user-space bundle OSGi DevCon 22.6.2009 Zurich Premek Brada - Bundle Updates with Verified Compatibility 8
  • 9. Behind the scenes • Based on type checking mechanism • Reconstruct surface of bundle old, new » actually, this is the hard work • Check for subtype relation → difference » the same thing as compiler does on assignment • Results available for any level of bundle structure (class, package, exports, bundle) » use as flags for resolver, turn into version value OSGi DevCon 22.6.2009 Zurich Premek Brada - Bundle Updates with Verified Compatibility 9
  • 10. Experiences & Summary • Issues we ran into – can’t check service interfaces etc – can’t hook well into resolving process – can’t rely on version id semantics • API to access installed bundle’s JARs would help • With finer and enforced version of “proper imports” best practice, we can have type-safe updates and bundle resolving http://www.kiv.zcu.cz/research/groups/dss/ OSGi DevCon 22.6.2009 Zurich Premek Brada - Bundle Updates with Verified Compatibility 10