ivoa-std / ExecutionBroker

IVOA ExecutionBroker service and data model.
Creative Commons Attribution Share Alike 4.0 International
1 stars 1 forks source link

Project specific metrics #14

Open Zarquan opened 1 year ago

Zarquan commented 1 year ago

In response to a suggestion/request from @jesusjuansalgado add project specific metrics to each offer. Allowing projects to add their own machine readable metrics like 'difficulty' or 'data proximity'.

For example, if SKA develop their own metrics for 'difficulty' or 'data proximity' that their workflow orchestration system understands, then SKA ExecutionPlanners can add those metrics to an offer. Without having to reach an international IVOA agreement on what 'difficulty' or 'data proximity' mean.

Change is to add offer.metrics to the data model.

offer:
  # Unique identifier for this offer.
  ident:  !!str
  # Status of this offer.
  status: !!str # [OFFERED, ACCEPTED, REJECTED, EXPIRED]
  # Expiry date for this offer.
  expires: !!str # ISO 8601 date time
  # Project specific metrics about the offer.
  metrics:
  - name: !!str # Optional name for the metrics.
    # A URL identifying the type of metrics.
    type: !!str
    # Type specific details of the metrics.
    spec:
      ....

Example offer with SKA specific metrics:

response:
  result: 'YES'
  offers:
  - ident: "2c89f536-3fff-48f7-943f-bcc5c3225be7"
    status: 'OFFERED'
    expires: "2023-09-18T07:05:21"
    metrics:
    - name: "SKA project specific metrics"
      type: "https://purl.ska.org/types/orchestration-metrics"
      spec:
        difficulty: 3.5
        data-proximity : 5
    request:
      executable:
        ....
      resources:
        ....
Zarquan commented 1 year ago

Each offer has different metrics, allowing the SKA workflow orchestrator to use the metrics to select which offer to accept.

jesusjuansalgado commented 1 year ago

Yes, the metrics look fine. I have raised another ticket to define better the input data (not sure if it is inline with your thoughts)