# A Rule-Based Language and Verification Framework of Dynamic Service Composition
## 7 Conclusions and Future Works  
In this paper, we proposed a rule-based approach to the definition of composite services in order to support adaptability and flexibility by change at runtime. The formalism used is that of attributed grammars extended with guards where the structure of a service is represented in a declarative purely manner. This approach focuses on the description of the execution schema of the composition while the process-based approaches describe the execution path of the composition. Formal description and verification ensures the correct composition of web services. It also ensures that system works as it is expected. The syntactic elements as well as an operational semantics of this language are described in pi-calculus formalism. The operational semantics makes it possible to highlight the dynamism of the services defined through out the asynchronous ports created at runtime. A verification framework which consists of translating the defined services into promela is proposed. This is done in order to check the consistency of the specified services and their ending. The validation framework allows the evaluation by proposing the tools. It includes an editor, a checker and an engine to execute the specification.  
The relevance of our approach could be appreciated especially in the case of composing a very large number of services, or in the case of services that take time to execute. Many properties are highlighted in the model presented in this paper:* **Declarative:** the language described is based on the rules that describe a service by specifying its name, input and output parameters, semantic rules (describing the correspondence between attributes) and services to solve it.
* **Abstract Specification:** The intentional definition of services allows a late concretization of the services thus favoring a weak culprit with the underlying technology and an adaptation (updating the rules) of the service even during its execution.
* **Connectivity (Asynchronous):** Sends and receives asynchronous messages for the creation and refinement of services. Indeed, a service is implemented in an execution space with, among other things, a public port for communication. Dynamically created ports work together to refine instances of services.
* **Adaptation and Flexibility:** Services can be defined at any time, verified and integrated into the execution spaces.
* **Distribution:** Services are distributed in different locations (user space or service provider).
* **Data driven:** The services parameters guide for the choice of the services. Depending on these parameters, the user or execution engine does the choice of the service to instantiate.  
Future work could be associated with the concerns of the semantic web with respect to the problems of automatic search for missing services and the automatic generation of composite services from user requests. To the language thus described could be added constraints that could guide the automatic composition of services and the specification of the non-functional requirements that would favor the construction of composite services based on user requests.  
Conceptualization, W.K.K. and G.-E.K.; Methodology, W.K.K. and G.-E.K.; software, W.K.K.; formal analysis, W.K.K. and G.-E.K.; writing-original draft preparation, W.K.; writing-review and editing, G.-E.K.; supervision, C.T.; funding acquisition, G.-E.K. All authors have read and agreed to the published version of the manuscript.  
This research received no external funding.  
This research was supported by FUCHSIA project-team of LIRIMA funded by Inria and the CETIC's Programme of the World Bank.  
The authors declare no conflict of interest.