SEDE, short for Service Execution and Distribution Environment, provides a service-oriented solution for encapsulating software components and providing their functionality via a communication protocol over a network. Using a global type system, SEDE enables cross-platform use of services and data exchange in the form of objects between these services.
SEDE defines two roles that are involved in the execution of services and service compositions: Gateway and executor. While a gateway acts as a central instance to which executors can log in together with the services provided and which is responsible for the calculation of an execution graph, an executor merely provides basic functionalities for type marshalling and the execution of individual basic services.
An execution graph describes a dependency graph in which order the services are called. In addition, this description contains an assignment of services to executors, who are therefore responsible for the execution of the respective services.
To execute a service composition, a user client calls the services without dependency on other services with the input data and the execution graph. Return values from services are passed directly to those services that require this data as their input. By forwarding the data, additional overhead for transferring the data can be avoided.
SEDE is used in particular for the execution of service compositions within the Proof-of-Concepts (PoC). Within the PoC, SEDE enables the realization of cross-platform service compositions that can also be executed on heterogeneous computing resources.