...
Here the full communication will result in an operation. The message communication is divided into two parts, each representing a primitive (identification of pillars and the actual get).
Note that the primitive for identification of pillars can cover request to several pillars, while the primitive for the actual get part only concerns one pillar.
Note also that there can be a number of different reponses, in cases where the pillar want to give information of the progress of the ioperation at pillar level. This can for instance be interesting for DVD pillars where there are several possibly time consuming phases in finding the data - even more so for a put operation.
Conversation Id
We generate a unique conversation id at initiation of a conversation such that it is possible to identify which conversation a message belongs to.
...
The operations are design to have as many similarities and overlapping definitions as possible. For instance the getChecksums must work simmilar to Get. Paging of data and parameters must work in the same way. See dicussion on http://sbforge.orgkb-dk.atlassian.net/wiki/display/BITMAG/Coordination+layer+design+discussion#Coordinationlayerdesigndiscussion-Overlapmedprotokolspecifikation.
Paging af requests
It must be possible to make paging of request parameters. Paging of parameters can for instance be the case for object ids in a random check of files. It is needed since we cannot assume that clients can make prior pagination. See dicussion on http://sbforge.orgkb-dk.atlassian.net/wiki/display/BITMAG/Coordination+layer+design+discussion#Coordinationlayerdesigndiscussion-Pagingafrequests.
Software
Independence
In the design we need to ensure that we are as independent of the software chosen as possible. If special features are used, e.g. for optimisation, then the design must be flexible enough to skip use of the special features at a later stage.
...
- it is sufficient to identify a data transmission transaction by a token
- the token is sufficient information as basis for completion of a data transmission
Use of tokens
Tokens are used as designation of where the data can be put to or downloaded from.
...
Paging
Paging is in the first versions managed by a simple mechanism where a segment of a file is identified by parameters. Any Get command can contain an offset along with a length parameter, which defines the segment of the file. this is also sufficient to handle receival of divided files, and thus enabling rudimentary support of restart of an interrupted transmission.
...