Automated Versioning In OSGi

920 views

Published on

Presentation from EUROMICRO 09 Patras Greece.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
920
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Automated Versioning In OSGi

  1. 1. Automated Versioning in OSGi: a Mechanism for Component Software Consistency Guarantee<br />Jaroslav Bauml & PremekBrada<br />Dept of Computer Science<br />University of West Bohemia<br />Pilsen, Czech Republic<br />
  2. 2. Automated Versioning in OSGi: a Mechanism for Component Software Consistency Guarantee<br />Jaroslav Bauml& PremekBrada<br />Dept of Computer Science<br />University of West Bohemia<br />Pilsen, Czech Republic<br />
  3. 3. Automated Versioning in OSGi: a Mechanism for Component Software Consistency Guarantee<br />Jaroslav Bauml & PremekBrada<br />Dept of Computer Science<br />University of West Bohemia<br />Pilsen, Czech Republic<br />
  4. 4. Automated Versioning in OSGi: a Mechanism for Component Software Consistency Guarantee<br />Jaroslav Bauml & PremekBrada<br />Dept of Computer Science<br />University of West Bohemia<br />Pilsen, Czech Republic<br />
  5. 5. Automated Versioning in OSGi: a Mechanism for Component Software Consistency Guarantee<br />Jaroslav Bauml &PremekBrada<br />Dept of Computer Science<br />University of West Bohemia<br />Pilsen, Czech Republic<br />
  6. 6. Automated Versioning in OSGi: Component Software Consistency Guarantee<br />Jaroslav Bauml & PremekBrada<br />Dept of Computer Science<br />University of West Bohemia<br />Pilsen, Czech Republic<br />
  7. 7. Automated Versioning in OSGi: Component Software Consistency Guarantee<br />Jaroslav Bauml & PremekBrada<br />Dept of Computer Science<br />University of West Bohemia<br />Pilsen, Czech Republic<br />
  8. 8. Automated Versioning in OSGi: Component Software Consistency Guarantee<br />Reliable and Automated<br />Jaroslav Bauml & PremekBrada<br />Dept of Computer Science<br />University of West Bohemia<br />Pilsen, Czech Republic<br />
  9. 9. Introduction<br />Component updates reflect their evolution.<br />Application consistency during updates<br />Used and suitable solution – dependencies with version ranges of providers.<br />BUT!!! How reliable are these version identifiers to real evolution of component? <br />8/27/2009<br />9/18<br />Brada & Bauml: Reliable Versioning<br />I have a new version of the Cool component<br />And will it work properly?<br />Who knows…<br />Ask those guys from Pilsen!<br />
  10. 10. Agenda<br />OSGi as Research Platform<br />Version Identifiers and their Semantics<br />Subtyping as Key Solution for Automatic Versioning<br />Implementation<br />Validation – Real world example<br />8/27/2009<br />10 /18<br />Brada & Bauml: Reliable Versioning<br />
  11. 11. OSGi as ResearchPlatform – Overview<br />Hyped Java-based framework for service deployment and management.<br />Deployable unit – bundle – jar+<br />Two layers of Dependencies <br />Package/– export <br />Service/– import<br />major.minor.micro version scheme – semantics?<br />Rulesfor OSGi:<br />All incompatible changes &lt;=&gt; majorid++.<br />All backward compatible &lt;=&gt; minor id++.<br />No changes on interface &lt;=&gt; microid++.<br />8/27/2009<br />11 /18<br />Brada & Bauml: Reliable Versioning<br />&lt;BUNDLEFILE&gt;META-INF/MANIFEST.MF:<br />Bundle-Version: 1.0.0<br />Bundle-Name: Apache Felix File Install<br />Export-Package: org.apache.felix.fileinstall;version=&quot;1.2&quot;,...<br />Import-Package: org.osgi.service.log;version=&quot;1.3&quot;,...<br />...<br />
  12. 12. Subtyping as KeySolution (1)<br />Can use Car instead of Vehicle. Car is a subtype of …<br />A compatiblewithB &lt;=&gt;B &lt;: A <br />8/27/2009<br />12 /18<br />Difference values: NON, MUT, SPE, GEN<br /><ul><li> evaluate at leaves
  13. 13. combine to root:</li></ul>spe ⊕ gen -> mut<br />mut ⊕ X -> mut<br />non ⊕ X -> X<br />Brada & Bauml: ReliableVersioning<br />
  14. 14. Subtyping as KeySolution (2)<br />Two consecutive revisions, versions: <br />Rold =majold.minold.micold<br />Rnew = majnew.minnew.micnew<br />The function Difference (Rold,Rnew) is defined by the rulesin the table.<br />8/27/2009<br />13 /18<br />Brada & Bauml: Reliable Versioning<br />Exp.: OLD Loggerwas 1.2.4, wefoundMutation =&gt; NEW Logger‘s version = 2.0.0 <br />
  15. 15. ImplementationofSubtypingforOSGi(1)<br />Twolayers<br />Bundle<br />Java<br />Operations of subtyping comparison<br />8/27/2009<br />14 /18<br />Brada & Bauml: Reliable Versioning<br />
  16. 16. ImplementationofSubtypingforOSGi (2)<br />8/27/2009<br />15 /18<br />Brada & Bauml: Reliable Versioning<br />Bundle layer<br />Simple not complete metamodel for OSGi<br />Java layer – JavaTypes<br />Custom model of Java language type system<br />Inspired by Java Reflection Api<br />But can be obtained from: reflection, bytecode inspection, custom creation, …<br />Caching, lazy loading, recursion in types detection<br />
  17. 17. Validation – Real World Bundles<br />8/27/2009<br />16 /18<br />To provide a basic validation of proposed principle, implemented tool was tested on bundles from Apache Felix archive.<br />Brada & Bauml: ReliableVersioning<br />
  18. 18. Conclusion<br />Our method<br />allows you to ensure component consistency<br />possible by component type representation<br />as strong as type information allows (semantic changes)<br />“No matter how sophisticated a (versioning) scheme is, it is useless if it is not used by all components universally.”<br />8/27/2009<br />17 /18<br />Brada & Bauml: Reliable Versioning<br />
  19. 19. Thankyouforyourattention<br />Do not hesitate to visit usat:<br />http://www.kiv.zcu.cz/research/groups/dss/<br />8/27/2009<br />18 /18<br />Brada & Bauml: Reliable Versioning<br />

×