Push

From GEANT2-JRA1 Wiki

For a push model, you must configure data sinks before data sources so they can set up a listening socket handle because the source needs to be told "where" to send the data. If the client wants the Measurement Point/Measurement Archive to send the data immediately when it is available then the client provides a subscriber handle as part of the request.




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

Example 1

  1. Measurement Archive registers with: "I provide data X in formats A,B,C".
  2. Client requests data in format B and provides SubscriberHandleB to Measurement Archive.
  3. Measurement Archive accepts request.
  4. Measurement Archive requests transformation A to B from Transformation Service, passing in SubscriberHandleB.
  5. Transformation Service accepts request and creates SubscriberHandleA.
  6. Transformation Service returns SubscriberHandleA to Measurement Archive.
  7. Measurement Archive returns Ack to client.
  8. Measurement Archive sends data X to Transformation Service's SubscriberHandleA.
  9. Transformation Service" transforms data and sends results to client's SubscriberHandleB.

Image:Push-example_1.png



Example 2

Example 2 which is a little bit more complicated (Measurement Point publishes that it can produce format A and C - internally it only does A, but it knows it can produce C using a Transformation Service service):

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

Image:Push-example_2.png


Back to Vocabulary

Personal tools