IdentifyPillarsForGetFile Primitive
An IdentifyPillarsForGetFile conversation consists of an IdentifyPillarsForGetFileRequest message and of a number of IdentifyPillarsForGetFileReply messages.
When a client wants to use the Get File functionality to retrieve a file, it first needs to decide from which pillar to get the the file. This can be done with the IdentifyPillarsForGetFile primitive. This is not required, but it is the means to establish where to direct the Get File.
The client sends an IdentifyPillarsForGetFileRequest message via the general topic for the SLA on the message bus to the concerned pillars, and the concerned pillars reply with IdentifyPillarsForGetFileReply messages via the client queue (specified in the IdentifyPillarsForGetFileRequest message) on the message bus to the client.
The messages are defined in BitRepositoryMessages.xsd and the format of the messages are defined in BitRepositoryElements.xsd.
See also Message exchange protocol
IdentifyPillarsForGetFileRequest
The IdentifyPillarsForGetFileRequest always contains a FileID such that the pillars know what data is requested. In future versions the message format be extended to allow more FileIDs as a list, pattern or address.
The request always contains a 'ReplyTo', which is the ID of the queue where the reply can be send to.
The request contains credentials, such that the pillar can determine if access is allowed. The credentials are not yet specified in the xsd's.
IdentifyPillarsForGetFileReply
The reply always contains a PillarID, which is the ID of the queue, where the Get message can be directed to.
The reply also always contains a FileID, such that the client is sure the message concerns the right data.
The reply can also contain information on response time and size of file(s).
If the pillar is not able to deliver the requested file, it can send a negative reply with an error code.
NOTE: It is only Pillars with data objects that replies, since checksums pillars can only give checksums, not a full file