Sign inSign up

dailab/nemo-matcher

By dailab

Updated almost 8 years ago

Semantic Service Matcher (SeMa²) providing REST services for searching services

Image
0

512

dailab/nemo-matcher repository overview

Starting the Image

This will start a Semantic Service Matcher in a Docker image. The image will provide a Web service for finding matches.

docker run -e repository=<URL> -e authServer=<URL> \
           -e clientID=... -e clientSecret=... \
           -e requireAuthorization=<boolean> \
           -p 8080:8080 dailab/nemo-matcher

The locations of the service repository and authServer can be passed as parameters. Per default, localhost will be assumed, i.e. http://localhost/api/v1/ and http://localhost/, respectively. clientID and clientSecret are the client ID and secret used to authenticate the matcher at that server. If the requireAuthorization parameter is true, then authorization is also required when invoking the matcher itself.

The Matcher does not need to connect to the Gateway.

Searching for Services

The action can be called using REST/JSON. Here, you can either specify the serviceDescriptionTemplateURL of an OWL-S service template, or specify different parameters of the service, such as name, description, or inputNames, inputTypes, outputNames, or outputTypes. When specifying input/output, make sure to provide a matching number of names and types. Those parameters will be used to rank the services only.

Also, a number of NeMo-specific parameters can be included: businessParnerName, category, status, and webservice. Those parameters are used to filter the services.

Examples:

curl http://localhost:8080/NemoMatcherBean/findMatches \
     -H "Content-Type: application/json" \
     -d '{"serviceDescriptionTemplateURL":<OWLS-URL>, "status":"Active"}'

curl http://localhost:8080/NemoMatcherBean/findMatches \
     -H "Content-Type: application/json" \
     -d '{"name":"soc", "status":"Registered", "webservice":true}'

If the matcher was started with requireAuthorization=true, then you need to add a valid Access Token in the Authorization header:

curl ... -H "Authorization: <Access Token>" ...

The matching process can take a few moments. When it's finished, the service will return a JSON list of ranked and filtered NeMo service descriptions as they can be found on the NeMo repository.

Input and Output Format

Input:

{
    // EITHER ANY OF...
    "name": "string",
    "description": "string",
    "input": [{"name":"string", "type": "url"}],
    "output": [{"name":"string", "type": "url"}],
    // ... OR
    "serviceDescriptionTemplateURL": "url",
    // ADDITIONAL NEMO FILTER
    "businessParnerName": "string",
    "category": "string",
    "status": "string",
    "webservice": true|false
    // OPTIONAL QOS PARAMETERS
    "averageResponseTime": int,
    "averageAvailabilityPercentage": int
}

Output:

{
  "services": [
    {
      "$class": "org.nemo.cim.hlc.Service",
      "businessPartnerId": "string",
      "translationSpecification": "url",
      "invocationMethod": "string",
      "specification": "url",
      "description": "string",
      "updatedOn": "date-time",
      "updatedById": "string",
      "createdOn": "date-time",
      "testInstructions": "string",
      "semanticDescription": "url",
      "categoryIds": ["string"],
      "assets": "string",
      "webService": "true"|"false",
      "webServiceEndpoint": "url",
      "atomic": "true"|"false",
      "name": "string",
      "authenticationType": "string",
      "id": "string",
      "serviceId": "string",
      "serviceOfferingIds": ["string"],
      "createdById": "string",
      "status": "string"
    }
  ]
}

Tag summary

Content type

Image

Digest

Size

89.4 MB

Last updated

almost 8 years ago

docker pull dailab/nemo-matcher