a formal framework for component deployment
play

A Formal Framework for Component Deployment Y. David Liu Scott F. - PowerPoint PPT Presentation

A Formal Framework for Component Deployment Y. David Liu Scott F. Smith Johns Hopkins University OOPSLA'06, Portland, Oregon A Menagerie of Deployment Systems CLI Assemblies InstallShield JSR 277 OSGi RPM Dpkg EJB Manifests Portage


  1. A Formal Framework for Component Deployment Y. David Liu Scott F. Smith Johns Hopkins University OOPSLA'06, Portland, Oregon

  2. A Menagerie of Deployment Systems CLI Assemblies InstallShield JSR 277 OSGi RPM Dpkg EJB Manifests Portage Bazaar CORBA D&C RubyGems CTAN CPAN

  3. Foundations? CLI Assemblies InstallShield JSR 277 OSGi RPM ? Dpkg EJB Manifests Portage Bazaar CORBA D&C RubyGems CTAN CPAN

  4. An Analogy: Programming Languages Fortran Pascal Smalltalk Java Lisp Perl C++ Scala C# Scheme C Haskel ML

  5. An Analogy: Foundations of Languages Fortran Pascal Smalltalk Java Lisp λ Calculus Object Calculi Perl C++ etc. Scala C# Scheme C Haskel ML

  6. This Work CLI Assemblies InstallShield JSR 277 OSGi RPM Application Buildbox Dpkg EJB Manifests Portage Bazaar CORBA D&C RubyGems CTAN CPAN

  7. This Work An abstract, platform-independent, vendor- independent study of component deployment ● Designing components as deployment units ● Formalizing the entire deployment lifecycle ● Proving deployment invariants Design objectives: simple (capturing recurring themes) and expressive

  8. This Work An abstract, platform-independent, vendor- independent study of component deployment ● Designing components as deployment units ● Formalizing the entire deployment lifecycle ● Proving deployment invariants Design objectives: simple (capturing recurring themes) and expressive

  9. This Work An abstract, platform-independent, vendor- independent study of component deployment ● Designing components as deployment units ● Formalizing the entire deployment lifecycle ● Proving deployment invariants Design objectives: simple (capturing recurring themes) and expressive

  10. 1690 5233 1690 NetLib NetLib Browser 5233 5429 5429 Browser NetLib NetLib update remove install 5233 1690 5429 3265 Browser NetLib NetLib Flash 5233 5429 5429 execute Browser NetLib NetLib 4423 Flash 5233 5429 5233 Browser NetLib Browser hot update 3265 Flash 5233 3265 5429 hot deploy Browser Flash NetLib

  11. 5429 5233 Browser NetLib ship build execute 1690 (testing) NetLib 5233 Browser 5233 Browser 5429 Browser NetLib

  12. This Work An abstract, platform-independent, vendor- independent study of component deployment ● Designing components as deployment units ● Formalizing the entire deployment lifecycle ● Proving deployment invariants ● Deployment ''never goes wrong'' ● Version compatibility Design objectives: simple (capturing recurring themes) and expressive

  13. This Work An abstract, platform-independent, vendor- independent study of component deployment ● Designing components as deployment units ● Formalizing the entire deployment lifecycle ● Proving deployment invariants Design objectives: simple (capturing recurring themes) and expressive

  14. Why Foundations? ● Fosters next-generation deployment systems – Elucidates subtle issues – More features proposed from academic research community – Deployment systems with provably correct properties ● Complements modularity research – when and where of linking

  15. Why Foundations? ● Fosters next-generation deployment systems – Elucidates subtle issues – More features proposed from academic research community – Deployment systems with provably correct properties ● Complements modularity research – when and where of linking

  16. Basics

  17. Application Buildbox 1690 5233 NetLib Browser 5429 NetLib An imaginary box where an application ''hatches'' throughout the deployment lifecycle

  18. Deployment Unit: Assemblage Net 5233 Plugins send readfile Browser timeout start ● Real-world analogues: JAR, C .so library, DLL, CLI Assembly ● Assemblages were first developed in [Liu and Smith, ECOOP'04], but without deployment

  19. Version Identifiers Net 5233 Plugins send readfile Browser timeout start ● Globally Unique ● Real-world analogues: COM+ GUID, CLI Assembly strong names

  20. Side-by-Side Deployment 1690 5233 NetLib Browser 5429 NetLib Two versions of the NetLib are deployed in the same buildbox

  21. Basic Construct: Assemblage Interfaces Net Plugins 5233 send readfile Browser start timeout Real-world analogues: Manifest files, Deployment Descriptors

  22. Two Kinds of Assemblage Interfaces Net Plugins 5233 send readfile Browser start timeout Mixers: regular dependency Pluggers: hot deployment dependency

  23. Interfaces are Bi-directional: Imports, Exports Net Plugins 5233 send readfile Browser start timeout

  24. Multiple Interfaces Net Plugins 5233 send readfile Browser start timeout GUI initGraphics draw ● Name management is crucial for deployment. ● Avoid global name clashes

  25. Interface: Unit of Versioning Dependencies 5233 Net Plugins Browser GUI draw initGraphics initGraphics draw GUILib 0872

  26. What is NOT Possible... 5233 Net Plugins Browser GUI draw initGraphics initGraphics draw initGraphics draw GUILib GUILib 0872 5422

  27. Assemblages in Shipped Form Net Plugins 5233 send readfile Browser start timeout Net -> NetLib.1690.Socket version constraint

  28. Component Wiring: Mixing 1690 5233 Socket Plugins Net send NetLib Browser timeout Net -> NetLib.1690.Socket ● Between a pair of mixers ● Matching of functionalities ● Matching of version constraints

  29. Component Wiring: Plugging 5233 3265 Plugins Main readFile Browser Flash start Main -> Browser.5233.Plugins ● Wiring at hot deployment time ● Between a plugger and a mixer ● Matching of functionalities ● Matching of version constraints

  30. Compatibility Set 1690 5233 Socket Plugins Net NetLib Browser Net -> NetLib.1690.Socket 3370 < : 1690 ● Subversioning: a partial order ● We do not hardcode the strategy on how two versions are semantically compatible

  31. Act 2: Component Deployment Lifecycle

  32. Deployment 1690 5233 1690 Site NetLib NetLib Browser Transitions 5233 5429 5429 Browser NetLib NetLib update remove install 5233 1690 5429 3265 Browser NetLib NetLib Flash 5233 5429 5429 execute Browser NetLib NetLib 4423 Flash 5233 5429 5233 Browser NetLib Browser hot update 3265 Flash 5233 3265 5429 hot deploy Browser Flash NetLib

  33. 1690 5233 1690 NetLib NetLib Browser 5233 5429 5429 Browser NetLib NetLib update remove install 5233 1690 5429 3265 Browser NetLib NetLib Flash 5233 5429 5429 execute Browser NetLib NetLib 4423 Flash 5233 5429 5233 Browser NetLib Browser hot update 3265 Flash 5233 3265 5429 hot deploy Browser Flash NetLib

  34. 1690 5233 1690 NetLib NetLib Browser 5233 5429 5429 Browser NetLib NetLib update remove install 5233 1690 5429 3265 Browser NetLib NetLib Flash 5233 5429 5429 execute Browser NetLib NetLib 4423 Flash 5233 5429 5233 Browser NetLib Browser hot update 3265 Flash 5233 3265 5429 hot deploy Browser Flash NetLib

  35. 1690 5233 1690 NetLib NetLib Browser 5233 5429 5429 Browser NetLib NetLib update remove install 5233 1690 5429 3265 Browser NetLib NetLib Flash 5233 5429 5429 execute Browser NetLib NetLib 4423 Flash 5233 5429 5233 Browser NetLib Browser hot update 3265 Flash 5233 3265 5429 hot deploy Browser Flash NetLib

  36. 1690 5233 1690 NetLib NetLib Browser 5233 5429 5429 Browser NetLib NetLib update remove install 5233 1690 5429 3265 Browser NetLib NetLib Flash 5233 5429 5429 execute Browser NetLib NetLib 4423 Flash 5233 5429 5233 Browser NetLib Browser hot update 3265 Flash 5233 3265 5429 hot deploy Browser Flash NetLib

  37. 1690 5233 1690 NetLib NetLib Browser 5233 5429 5429 Browser NetLib NetLib update remove install 5233 1690 5429 3265 Browser NetLib NetLib Flash 5233 5429 5429 execute Browser NetLib NetLib 4423 Flash 5233 5429 5233 Browser NetLib Browser hot update 3265 Flash 5429 5233 3265 hot deploy Browser Flash NetLib

  38. 1690 5233 1690 NetLib NetLib Browser 5233 5429 5429 Browser NetLib NetLib update remove install 5233 1690 5429 3265 Browser NetLib NetLib Flash 5233 5429 5429 execute Browser NetLib NetLib 4423 Flash 5233 5429 5233 Browser NetLib Browser hot update 3265 Flash 5233 3265 5429 hot deploy Browser Flash NetLib

  39. Development Site Transitions 5429 5233 Browser NetLib ship build execute 1690 (testing) NetLib 5233 Browser 5233 Browser 5429 Browser NetLib

  40. 5429 5233 Browser NetLib ship build execute 1690 (testing) NetLib 5233 Browser 5233 Browser 5429 Browser NetLib

  41. 5429 5233 Browser NetLib ship build execute 1690 (testing) NetLib 5233 Browser 5233 Browser 5429 Browser NetLib

  42. 5429 5233 Browser NetLib ship build execute 1690 (testing) NetLib 5233 Browser 5233 Browser 5429 Browser NetLib

  43. Formalism Choice ● Labelled Transition System (LTS) for deployment operations – Each transition step is an application buildbox evolution step – Labels are ''commands'' which deployment system users can trigger ● Run-time behaviors captured via a minimalistic programming language

Recommend


More recommend