We present a service composition engine that allows for distributed incremental computations. Services have become a standard of remote computing. They are hardware and software resources that can be used regardless of their implementations. When requesting a service, one must provide all the parameters, and data needed for the service to be performed. Service orchestrators, such as kubernetes, are tools that provide an automatic handling of the distribution and scalability of services, for efficient resource allocation. We introduce a prototype based on a formal model of distributed computation: Guarded Attribute Grammars. It is built on top of kubernetes so as to exploit all the features of the orchestrator, and allows for describing services as composed of other services and local computations. This is done through a descriptive programming language whose instructions are interpreted as co-routines, and allows for a flexible data flow: if only part of the data is available, the co-routines that do not rely on the missing part can start their execution. Recursively, such a service starts as soon as some of its co-routine components can start computation, and returns each of its output values as soon as it is available. Guards allow for alternative descriptions of the same service, depending on what data is available, or its nature, which provides full expressiveness to our programming language. This composition language allows for programming applications by composing services, while exploiting the full power of the orchestrator.

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

A Service Composition Engine for Incremental Computation

  • Joskel Ngoufo Tagueu,
  • Adrián Puerto Aubel,
  • Maurice Tchoupe Tchendji

摘要

We present a service composition engine that allows for distributed incremental computations. Services have become a standard of remote computing. They are hardware and software resources that can be used regardless of their implementations. When requesting a service, one must provide all the parameters, and data needed for the service to be performed. Service orchestrators, such as kubernetes, are tools that provide an automatic handling of the distribution and scalability of services, for efficient resource allocation. We introduce a prototype based on a formal model of distributed computation: Guarded Attribute Grammars. It is built on top of kubernetes so as to exploit all the features of the orchestrator, and allows for describing services as composed of other services and local computations. This is done through a descriptive programming language whose instructions are interpreted as co-routines, and allows for a flexible data flow: if only part of the data is available, the co-routines that do not rely on the missing part can start their execution. Recursively, such a service starts as soon as some of its co-routine components can start computation, and returns each of its output values as soon as it is available. Guards allow for alternative descriptions of the same service, depending on what data is available, or its nature, which provides full expressiveness to our programming language. This composition language allows for programming applications by composing services, while exploiting the full power of the orchestrator.