Pull

From GEANT2-JRA1 Wiki

For a pull model, you must configure the data sources before data sinks so they can set up the pull socket (handle) that sinks will query for new data (the sink needs to know where to query). The client does not provide a handle, then the Measurement Point/Measurement Archive service should create a publisher handle and return that as part of the Ack.



Examples are provided to show the model - may not exactly be the same as used in the JRA1.

Example 1

  1. Measurement Archive registers in the Lookup Service with: "I provide data X in formats A, B, C".
  2. Client requests data in format B from Measurement Archive.
  3. Measurement Archive accepts request.
  4. Measurement Archive creates PublisherHandleA.
  5. Measurement Archive requests transformation A to B from Transformation Service, passing in PublisherHandleA.
  6. Transformation Service accepts request and creates PublisherHandleB.
  7. Transformation Service returns PublisherHandleB to Measurement Archive.
  8. Measurement Archive returns Ack and PublisherHandleB to client.
  9. LOOP:
    1. Client polls PublisherHandleB.
    2. Transformation Service returns currently buffered data X in format B.
    3. Transformation Service polls PublisherHandleA of Measurement Archive for more data and transforms to format B.

Image:Poll-example_1.png


Example 2

In this example Measurement Point only publishes in fromat A, client finds transformation:

  1. Client finds Measurement Point that can do test X by querying Lookup Service.
    1. Measurement Point can provide data in format A.
    2. Client finds Measurement Archive that can store test X results, but it only supports format C.
  2. Client uses Lookup Service to find an A to C Transformation Service.
  3. Client requests to store test X results in Measurement Archive.
    1. Measurement Archive creates a listening socket to accept the results and returns a handle that points to that socket.
  4. Client requests an A to C transformation from Transformation Service and passes to Transformation Service the PublisherHandleC handle as part of the request indicating transformed data should be sent there.
  5. Transformation Service responds by creating the PublisherHandleA that will accept data in format A and returns that to the client.
  6. Client requests test X in format A from Measurement Point and passes the PublisherHandleA as part of the request indicating that is where the data should be sent.
  7. Measurement Point accepts the request and runs test X and sends the data to Transformation Service using PublisherHandleA.
  8. Transformation Service runs the A to C transformation on the data and sends the results to Measurement Archive using the PublisherHandleC.

Back to Vocabulary

Personal tools