Successfully reported this slideshow.

Versiecontrole in de keten

567 views

Published on

Published in: Technology, Business
  • Be the first to comment

  • Be the first to like this

Versiecontrole in de keten

  1. 2. Versiecontrole in de keten
  2. 3. Het probleem <ul><li>we hebben een keten, </li></ul><ul><li>en een uitwisseling, met berichten, documenten et cetera </li></ul><ul><li>iedereen is gelukkig... </li></ul><ul><li>en nu komt versie 2.0 </li></ul><ul><ul><li>moet iedereen tegelijk over naar 2.0? </li></ul></ul><ul><ul><li>en als dat niet kan? </li></ul></ul><ul><ul><li>hoe regel je een makkelijke overgang </li></ul></ul>07/01/11 09:09 Marc de Graauw - http://www.marcdegraauw.com
  3. 4. Referenties <ul><li>David Orchard </li></ul><ul><ul><li>Extending and Versioning Languages Part 1 , W3C </li></ul></ul><ul><ul><ul><li>Draft TAG Finding </li></ul></ul></ul><ul><ul><li>A Theory of Compatible Versions , XML.COM </li></ul></ul><ul><ul><ul><li>Forward compatibility and extensibility </li></ul></ul></ul><ul><li>James Clark </li></ul><ul><ul><li>Validation not necessarily harmful , blog </li></ul></ul><ul><li>Marc de Graauw </li></ul><ul><ul><li>On Compatibility - Back and Forth , blog </li></ul></ul><ul><ul><li>Syntactical and Semantical Compatibility , blog </li></ul></ul><ul><ul><li>More Compatibility Flavours , blog </li></ul></ul><ul><ul><li>A Smoother Change to Version 2.0 , XML.COM </li></ul></ul>07/01/11 09:09 Marc de Graauw - http://www.marcdegraauw.com
  4. 5. Klassieke Backward Compatibiliteit 07/01/11 09:09 Marc de Graauw - http://www.marcdegraauw.com Doc 1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - App v. 1.0 Doc 1.1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - App v. 1.1 Doc 2.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - App v. 2.0
  5. 6. Klassieke Backward Compatibiliteit <ul><li>Nieuwe applicatie kan oude documenten lezen </li></ul><ul><li>Eventueel: eenmalige upgrade van documenten </li></ul><ul><ul><li>“ Wilt u dit document opslaan als Word 97?” </li></ul></ul>07/01/11 09:09 Marc de Graauw - http://www.marcdegraauw.com
  6. 7. Forward Compatibiliteit <ul><li>Oude applicatie kan nieuwe documenten lezen </li></ul><ul><li>Voorbeeld </li></ul><ul><li>HTML – “Ignore Unkown” </li></ul><ul><ul><li>” If a user agent encounters an element it does not recognize, it should try to render the element’s content.” - HTML 4.01 </li></ul></ul>07/01/11 09:09 Marc de Graauw - http://www.marcdegraauw.com
  7. 8. Forward Compatibiliteit 07/01/11 09:09 Marc de Graauw - http://www.marcdegraauw.com Doc 2.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - App v. 2.0 Doc 1.1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - App v. 1.1 App v. 1.0
  8. 9. Klassiek... 07/01/11 09:09 Marc de Graauw - http://www.marcdegraauw.com 1.0 1.1 2.0 tijd
  9. 10. In de keten... 07/01/11 09:09 Marc de Graauw - http://www.marcdegraauw.com 1.0 1.1 2.0 1.0 1.0 1.1 1.1 2.0 2.0
  10. 11. Compabiliteit in de keten... <ul><li>iedereen communiceert met iedereen... </li></ul><ul><li>geen of beperkte centrale controle </li></ul><ul><ul><li>in een (groot) bedrijf: allemaal upgraden </li></ul></ul><ul><ul><li>in een keten: vaak onmogelijk, altijd onwenselijk </li></ul></ul><ul><li>zenders en ontvangers </li></ul>07/01/11 09:09 Marc de Graauw - http://www.marcdegraauw.com
  11. 12. Recap: Backward, niet forward 07/01/11 09:09 Marc de Graauw - http://www.marcdegraauw.com Land {NL, BE} App v. 1 Land {NL, BE, DE} App v. 2
  12. 13. Recap: Forward, niet backward 07/01/11 09:09 Marc de Graauw - http://www.marcdegraauw.com Land {NL, BE, DE} App v. 1 Land {NL, BE} App v. 2
  13. 14. Geen forward compatibiliteit 07/01/11 09:09 Marc de Graauw - http://www.marcdegraauw.com Zender v. 1 Zender v. 2 Ontvanger v. 1 Ontvanger v. 2 Land {NL, BE} Land {NL, BE, DE} Problemen voor nieuwe zender en oude ontvanger
  14. 15. Geen backward compatibiliteit 07/01/11 09:09 Marc de Graauw - http://www.marcdegraauw.com Zender v. 1 Zender v. 2 Ontvanger v. 1 Ontvanger v. 2 Land {NL, BE, DE} Land {NL, BE} Problemen voor oude zender en nieuwe ontvanger
  15. 16. Compatibiliteit in de keten <ul><li>In de keten is er altijd een probleem, bij ontbreken FC en BC </li></ul><ul><li>BC is niet zo moeilijk: oude dataformaten moeten geldig blijven </li></ul><ul><li>mechanismen voor FC </li></ul>07/01/11 09:09 Marc de Graauw - http://www.marcdegraauw.com
  16. 17. Hoe krijg je forward comp.? <ul><li>In XML Schema met wildcard </li></ul><ul><ul><li>voorbeeld </li></ul></ul><ul><li>“ Ignore unknown” </li></ul><ul><ul><li>in code bakken </li></ul></ul><ul><ul><li>met XSLT (voorbeeld) </li></ul></ul><ul><li>NVDL </li></ul><ul><ul><li>Namespace-based Validation Dispatching Language </li></ul></ul>07/01/11 09:09 Marc de Graauw - http://www.marcdegraauw.com
  17. 18. Wat houdt FC in? 07/01/11 09:09 Marc de Graauw - http://www.marcdegraauw.com Set van alle documenten geproduceerd door L1 Set van alle documenten geaccepteerd door L1 L1: voornaam, achternaam, *
  18. 19. Wat houdt FC in? 07/01/11 09:09 Marc de Graauw - http://www.marcdegraauw.com Set van alle documenten geproduceerd door L1 Set van alle documenten geaccepteerd door L2 Set van alle documenten geproduceerd door L2 Set van alle documenten geaccepteerd door L1 L1: voornaam, achternaam, * L2: voornaam, achternaam, titels, *
  19. 20. Wat houdt FC in? 07/01/11 09:09 Marc de Graauw - http://www.marcdegraauw.com voornaam, achternaam voornaam, achternaam, titels, * voornaam, achternaam, titels voornaam, achternaam, * L1: voornaam, achternaam, * L2: voornaam, achternaam, titels, *
  20. 21. Teveel Forward Compatibility?
  21. 22. Nadelen mustUnderstand <ul><li><my:security-header soap:mustUnderstand = &quot;1&quot;> </li></ul><ul><li>alleen voor SOAP Headers </li></ul><ul><li>verder toepasbaar, maar: </li></ul><ul><li>extra attribuut per element </li></ul><ul><li>werkt alleen voor elementen </li></ul>07/01/11 09:09 Marc de Graauw - http://www.marcdegraauw.com
  22. 23. Capability Compatibility Design Pattern <ul><li>zender: noem alle versies, ook oudere, waarvan je weet dat die je bericht mogen accepteren </li></ul><ul><li>ontvanger: weet alle versies, ook oudere, die je kunt verwerken </li></ul><ul><li>voorbeeld </li></ul>07/01/11 09:09 Marc de Graauw - http://www.marcdegraauw.com
  23. 24. mustUnderstand <ul><li>IgnoreUnknown is soms niet gewenst </li></ul><ul><ul><li>medicatieberichten </li></ul></ul><ul><ul><li>financiële transacties </li></ul></ul><ul><ul><li>security </li></ul></ul><ul><ul><li>betrouwbaarheid </li></ul></ul><ul><li>SOAP Headers hebben mechanisme: </li></ul><ul><ul><li><my:security-header soap:mustUnderstand = &quot;1&quot;> </li></ul></ul><ul><ul><li>overruled IgnoreUnknown principe </li></ul></ul>07/01/11 09:09 Marc de Graauw - http://www.marcdegraauw.com
  24. 25. Vragen?

×