An extremely fine-grained approach to build highly adaptable middleware frameworks: Application to transaction services
This thesis focuses on the construction of highly adaptable middleware services. These services are characterized by a large diversity of the provided functions. In the transaction domain, this diversity includes the transaction models, the concurrency control and fault tolerance protocols, and the integration standards. Our proposition consists in defining a middleware framework that covers the transaction domain diversity, and allows the construction of highly adaptable transaction services. This kind of services requires to define an extremely fined-grained approach in order to adapt its various characteristics.
Thus, we propose to complete the exoware approach with four new contributions. We define the Fraclet programming model to leverage programming of middleware functional abstractions. Then, we propose a langage to describe and verify architecture patterns in order to design the middleware architectural abstractions. These two contributions allow us to define a component-based middleware framework that uses design patterns to build a modular and extensible architectural substrate. Finally, we configure our middleware framework using various high-level models dedicated to each middleware concern. We illustrate these concepts on GoTM, a component-based middleware framework for the construction of highly adaptable transaction services.
We validate our approach on three original experiences. Firstly, we propose to leverage the integration of transaction services into the middleware platforms by designing demarcation policies independently of the platform and the kind of services integrated. Secondly, we define a transaction service that composes several personalities to support seamlessly the transaction interoperability between heterogeneous applications. Thirdly, we are able to select the best performing two-phase commit protocol at runtime to improve the transaction completion time depending on the evolution of the execution context.