versiecontrole in de keten

Post on 03-Jul-2015

418 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Versiecontrole in de keten

07/01/11 09:09 Marc de Graauw - http://www.marcdegraauw.com

3

Het probleem

• we hebben een keten,• en een uitwisseling, met berichten,

documenten et cetera• iedereen is gelukkig...• en nu komt versie 2.0

– moet iedereen tegelijk over naar 2.0?– en als dat niet kan?– hoe regel je een makkelijke overgang

07/01/11 09:09 Marc de Graauw - http://www.marcdegraauw.com

4

Referenties

• David Orchard– Extending and Versioning Languages Part 1, W3C

• Draft TAG Finding– A Theory of Compatible Versions , XML.COM

• Forward compatibility and extensibility

• James Clark– Validation not necessarily harmful, blog

• Marc de Graauw– On Compatibility - Back and Forth, blog– Syntactical and Semantical Compatibility , blog– More Compatibility Flavours , blog– A Smoother Change to Version 2.0, XML.COM

07/01/11 09:09 Marc de Graauw - http://www.marcdegraauw.com

5

Klassieke Backward Compatibiliteit

Doc 1.0- - - - - - - -- - - - - - - -- - - - - - - -- - - - -

App v. 1.0

Doc 1.1- - - - - - - -- - - - - - - -- - - - - - - -- - - - -

App v. 1.1

Doc 2.0- - - - - - - -- - - - - - - -- - - - - - - -- - - - -

App v. 2.0

07/01/11 09:09 Marc de Graauw - http://www.marcdegraauw.com

6

Klassieke Backward Compatibiliteit

• Nieuwe applicatie kan oude documenten lezen

• Eventueel: eenmalige upgrade van documenten– “Wilt u dit document opslaan als Word 97?”

07/01/11 09:09 Marc de Graauw - http://www.marcdegraauw.com

7

Forward Compatibiliteit

• Oude applicatie kan nieuwe documenten lezen

• Voorbeeld • HTML – “Ignore Unkown”

– ”If a user agent encounters an element it does not recognize, it should try to render the element’s content.” - HTML 4.01

07/01/11 09:09 Marc de Graauw - http://www.marcdegraauw.com

8

Forward Compatibiliteit

Doc 2.0- - - - - - - -- - - - - - - -- - - - - - - -- - - - -

App v. 2.0

Doc 1.1- - - - - - - -- - - - - - - -- - - - - - - -- - - - -

App v. 1.1 App v. 1.0

07/01/11 09:09 Marc de Graauw - http://www.marcdegraauw.com

9

Klassiek...

1.0 1.1 2.0

tijd

07/01/11 09:09 Marc de Graauw - http://www.marcdegraauw.com

10

In de keten...

1.0

1.1

2.0

1.0

1.0

1.1

1.1

2.0

2.0

07/01/11 09:09 Marc de Graauw - http://www.marcdegraauw.com

11

Compabiliteit in de keten...

• iedereen communiceert met iedereen...• geen of beperkte centrale controle

– in een (groot) bedrijf: allemaal upgraden– in een keten: vaak onmogelijk, altijd

onwenselijk

• zenders en ontvangers

07/01/11 09:09 Marc de Graauw - http://www.marcdegraauw.com

12

Recap: Backward, niet forward

Land {NL, BE}

App v. 1

Land {NL, BE, DE}

App v. 2

07/01/11 09:09 Marc de Graauw - http://www.marcdegraauw.com

13

Recap: Forward, niet backward

Land {NL, BE, DE}

App v. 1

Land {NL, BE}

App v. 2

07/01/11 09:09 Marc de Graauw - http://www.marcdegraauw.com

14

Geen forward compatibiliteit

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

07/01/11 09:09 Marc de Graauw - http://www.marcdegraauw.com

15

Geen backward compatibiliteit

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

07/01/11 09:09 Marc de Graauw - http://www.marcdegraauw.com

16

Compatibiliteit in de keten

• In de keten is er altijd een probleem, bij ontbreken FC en BC

• BC is niet zo moeilijk: oude dataformaten moeten geldig blijven

• mechanismen voor FC

07/01/11 09:09 Marc de Graauw - http://www.marcdegraauw.com

17

Hoe krijg je forward comp.?

• In XML Schema met wildcard – voorbeeld

• “Ignore unknown”– in code bakken– met XSLT (voorbeeld)

• NVDL– Namespace-based Validation Dispatching

Language

07/01/11 09:09 Marc de Graauw - http://www.marcdegraauw.com

18

Wat houdt FC in?

Set van alle documenten geproduceerd door L1

Set van alle documenten geaccepteerd door L1

L1: voornaam, achternaam, *

07/01/11 09:09 Marc de Graauw - http://www.marcdegraauw.com

19

Wat houdt FC in?

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, *

07/01/11 09:09 Marc de Graauw - http://www.marcdegraauw.com

20

Wat houdt FC in?

voornaam, achternaam

voornaam, achternaam, titels, *

voornaam, achternaam, titels

voornaam, achternaam, *

L1: voornaam, achternaam, * L2: voornaam, achternaam, titels, *

Teveel Forward Compatibility?

07/01/11 09:09 Marc de Graauw - http://www.marcdegraauw.com

22

Nadelen mustUnderstand

• <my:security-header soap:mustUnderstand = "1"> • alleen voor SOAP Headers• verder toepasbaar, maar: • extra attribuut per element• werkt alleen voor elementen

07/01/11 09:09 Marc de Graauw - http://www.marcdegraauw.com

23

Capability Compatibility Design Pattern

• zender: noem alle versies, ook oudere, waarvan je weet dat die je bericht mogen accepteren

• ontvanger: weet alle versies, ook oudere, die je kunt verwerken

• voorbeeld

07/01/11 09:09 Marc de Graauw - http://www.marcdegraauw.com

24

mustUnderstand

• IgnoreUnknown is soms niet gewenst– medicatieberichten– financiële transacties– security– betrouwbaarheid

• SOAP Headers hebben mechanisme:– <my:security-header soap:mustUnderstand = "1"> – overruled IgnoreUnknown principe

Vragen?

top related