Platform services

Platform services are complementary to Applications in that they provide resources that are consumed and used by applications. The Tonomi Platform currently provides a fixed number of services that cannot be extended.

user/Images/platform.png

Every service has a type and interface. This allows applications to use services without having specific knowledge of a concrete implementation. For example, both Secure Vault 1.0 and Secure Vault 2.0 implement the Secure Vault interface. By binding to an interface, an application definition can be made portable across various implementations.

There is no “formal” distinction between an component-based application instance and a service at design time. The only difference is that a service can be used by multiple consuming applications as part of a larger setup. Applications refer to their services via their interfaces. Workflow-based v1 manifests must be wrapped in a Workflow Instance component to be exposed as services.

Services have a twofold relationship with environments. Similar to application instances, they are launched in an environment, which means they are subject to the environment’s policies. Services can also consume other services as long as their dependencies don’t form a cycle. Unlike instances, services can provide their endpoints to other instances in one or multiple environments.