===== Communication Protocol ===== April 28, 2009 == Communication Protocol - structure == {{expres:fabric:evlbisystem:comm_protocol_2.1.png|}} == Soap detail == - Soap version * Soap 1.0 and HTTP 1.0 is used to communicate with Jive modules written in Python. In order to enable this, each Axis stub needs to have the following options enabled * _serviceClient.getOptions().setSoapVersionURI(org.apache.axiom.soap.SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI); * _serviceClient.getOptions().setProperty(org.apache.axis2.transport.http.HTTPConstants.HTTP_PROTOCOL_VERSION,org.apache.axis2.transport.http.HTTPConstants.HEADER_PROTOCOL_10); == Protocol description == - Version * Current Protocol Version: 2.1 - History of changes * Chunk information removed from MessageHeader structure and moved to ChunkInfo structure * Callback location added to MessageHeader * Each message sent between components consist of Message Header and Chunk Info structures. Please note that some fields can be used depending on the context. * The content of the MessageHeader and ChunkInfo is presetened below - **Message Header** - contains all the common fields which are exchanged between modules. * /** * Experiment name - in fact experiment identifier, because experiment names * are unique. */ private String experimentName; /** * Job identifier - used to differentiate data in case where the same * experiment data is being correlated at the same time, but with different * parameters */ private String jobId; /** Sender identifier, unique string or abbreviation */ private Sender senderCode; /** Specifies an URL of the message sender */ private String senderLocation; /** Specifies a location of the service where return message should be sent */ private String callbackLocation; - **Chunk Info** - contains information about a chunk * /** Identifier of a data chunk - chunks are numbered starting from 0 */ private long chunkId; /** Specifies number of chunks in the current experiment */ private long chunkCount; /** Specifies a size of a single data chunk */ private long chunkSize; /** Specifies location of the data chunk (URL) */ private String chunkLocation; /** Specifies the start time of data chunk */ private String chunkStartTime; /** Specifies the end time of the data chunk */ private String chunkEndTime; /** Telescope abbreviation - two letter abbreviation */ private String telescopeAbbr;