Semantic Service Matcher (SeMa²) providing REST services for searching services
512
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.
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:
{
// 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"
}
]
}
Content type
Image
Digest
Size
89.4 MB
Last updated
almost 8 years ago
docker pull dailab/nemo-matcher