Design Discussions - Coordination Layer
Decisions made on basis of these design discussion are listed in Design Decisions - Coordination layer
Overlap med protokolspecifikation
Det er vores opfattelse at beskeder til/fra integritetsklienten og beskeder til/fra accessklienten i så høj grad som muligt skal ligne hinanden. Det er derfor vigtigt at input til indhold af beskeder ovenfor koordineres med opgaven om speciifikation af protokollen.
Vi mener at svar på forespørgsler om f.eks. checksummer og fillister skal udveksles over dataprotokollen som filer, og ikke over messagebussen. Ved store mængder data i request-beskeder (f.eks. en lang liste af filer) bør det overvejes om disse også skal overføres over dataprotokollen.
Paging af requests
Til tider vil vi have brug for at spørge om store mængder checksummer eller lister af filer fra ben. I den situation kan det være en fordel at kunne splitte forespørgsler og svar op i mindre datapakker - som i paging ved et søgeresultat. Fordelen er at man kan gensende små pakker ved problemer med kommunikationen, og muligheden for kun at bede om data fra en lille delmængde af data i benene. Det vil i særdeleshed også have relevans for mass processing.
For at kunne gøre dette skal vi kunne blive enige om en afgrænsning af resultater på klient- og bensiderne af protokollen. Vi skal være enige om, hvis vi spørger om fil nummer 10000-20000 hvilken fil der er nummer 10000. Det vigtige er at dette tal bevares, selvom mængden af filer på et ben ændrer sig. Der er tre måder at opnå det på.
- Alle filer på benene har en unik ordning, som ikke ændrer sig under opdateringer
- Benene indeholder tilstand der garanterer in paging-ordning i forhold til en given request
- Klienten indeholder tilstand nok til at paginere sine requests på forhånd.
Problemet ved den unikke ordning er at den lægger et vanskeligt krav på benene, som gør vores mulighed for at have meget forskellige ben mindre - hvis et ben f.eks. består af mange forskellige servere, skal det nu sikres at man kan lave en unik ordning imellem dem.
Tilsvarende er løsningen med tilstand i benene (basalt set en session) imod de sædvanlige principper om bens uafhængighed af klienter.
Tilbage står løsningen der kræver at klienten paginerer filerne. Det kan gøres hvis klienten har en liste over hvilke filer den forventer at skulle have svar fra. Det kan opnås ved først at opbygge en filliste fra benene. Ulempen er et overhead ved at skulle sende en større mængde filnavne til benene, men i det typiske scenarie vil selv en stor mængde filnavne være en relativt lille ekstra mængde data i forhold til kommunikationen som helhed.