A LinkSmart® Service is a standalone service that is able to interact with other LinkSmart® Services or LinkSmart® infrastructure components following certain rules and standards. All LinkSmart® Services have a name and codename, and they should indicate to which LinkSmart® API they comply.
What standards and rules applied a LinkSmart® Service?
- Provide CRUD APIs of the service either RESTfull or/and MQTT-based.
- Open Source
- Code must be open source and available in code.linksmart.eu
- A build plan must be available at pipelines.linksmart.eu
- The code must be licensed under Apache License (https://www.apache.org/licenses/LICENSE-2.0), if possible. If it is not possible, the most flexible license should be used: e.g. use GNU LGPL instead of GNU GPL.
- Service Registration
- All running LinkSmart® Services must send a registration document to the Service Catalog. The registration could be sent via the RESTful API or over an MQTT broker. In case a broker is used, a 'will' message can be sent to advertise service end of life. In case the broker fails and recovers, the service should resend the registration. The registration can be outsourced to another service, but it must happen.
- OGC SensorThings Compliance
- Integration Tests
- Integration Tests must be available and they must be configured in the build service: pipelines.linksmart.eu
- The service must provide downloadable executable artifacts in https://pipelines.linksmart.eu/ or in https://nexus.linksmart.eu/ . (In the case of Java, the release repository is https://nexus.linksmart.eu/repository/maven-releases/ and the snapshots https://nexus.linksmart.eu/repository/maven-snapshots/. )
- Docker Container
- The service must provide a Dockerfile and Docker image (downloadable in docker.linksmart.eu). If the service depends on other services, a Docker compose file must be provided for standalone execution.
- API Specification