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

Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 

Kürzlich hochgeladen (20)

Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 

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