Inferring Models from Cloud APIs and Reasoning over Them: A Tooled and Formal Approach - Inria - Institut national de recherche en sciences et technologies du numérique Access content directly
Theses Year : 2018

Inferring Models from Cloud APIs and Reasoning over Them: A Tooled and Formal Approach

Inférer des modèles à partir d'APIs cloud et raisonner dessus: une approche outillée et formelle

Abstract

In recent years, multi-cloud computing which aims to combine different offerings or migrate applications between different cloud providers, has become a major trend. Multi-clouds improve the performance and costs of cloud applications, and ensure their resiliency in case of outages. But with the advent of cloud computing, different cloud providers with heterogeneous cloud services (compute, storage, network, applications, etc.) and Application Programming Interfaces (APIs) have emerged. This heterogeneity complicates the implementation of an interoperable multi-cloud system. Several multi-cloud interoperability solutions have been developed to address this challenge. Among these solutions, Model-Driven Engineering (MDE) has proven to be quite advantageous and is the mostly adopted methodology to rise in abstraction and mask the heterogeneity of the cloud. However, most of the existing MDE solutions for the cloud remain focused on only designing the cloud without automating the deployment and management aspects, and do not cover all cloud services. Moreover, MDE solutions are not always representative of the cloud APIs and lack of formalization. To address these shortcomings, I present in this thesis an approach based on Open Cloud Computing Interface (OCCI) standard, MDE and formal methods. OCCI is the only community-based and open recommendation standard that describes every kind of cloud resources. MDE is used to design, validate, generate and supervise cloud resources. Formal methods are used to effectively reason on the structure and behaviour of the encoded cloud resources, by using a model checker verifying their properties. This research takes place in the context of the OCCIware project, which provides OCCIware Studio, the first model-driven tool chain for OCCI. It is coupled with OCCIware Runtime, the first generic runtime for OCCI artifacts targeting all the cloud service models (IaaS, PaaS, and SaaS). In this dissertation, I provide two major contributions implemented on top of the OCCIware approach. First, I propose an approach based on reverse-engineering to extract knowledge from the ambiguous textual documentation of cloud APIs and to enhance its representation using MDE techniques. This approach is applied to Google Cloud Platform (GCP), where I provide GCP Model, a precise model-driven specification for GCP. GCP Model is automatically inferred from GCP textual documentation, conforms to the OCCIware Metamodel and is implemented within OCCIware Studio. It allows one to perform qualitative and quantitative analysis of the GCP documentation. Second, I propose in particular the fclouds framework to achieve semantic interoperability in multi-clouds, i.e., to identify the common concepts between cloud APIs and to reason over them. The fclouds language is a formalization of OCCI concepts and operational semantics in Alloy formal specification language. To demonstrate the effectiveness of the fclouds language, I formally specify thirteen case studies and verify their properties. Then, thanks to formal transformation rules and equivalence properties, I draw a precise alignment between my case studies, which promotes semantic interoperability in multi-clouds.
Ces dernières années, l'informatique multi-nuages, qui vise à combiner différentes offres ou à migrer des applications entre différents fournisseurs de services en nuage, est devenue une tendance majeure. Les multi-nuages améliorent les performances et les coûts des applications hébergées dans les nuages et garantissent leur résilience en cas de panne. Mais avec l'avènement de l'informatique en nuage, différents fournisseurs offrant des services en nuage (calcul, stockage, réseau, applications, etc.) et des interfaces de programmation d'applications (APIs) hétérogènes sont apparus. Cette hétérogénéité complique la mise en œuvre d'un système de multi-nuages interopérable. Plusieurs solutions pour l'interopérabilité de multi-nuages ont été développées pour relever ce défi. Parmi ces solutions, l'Ingénierie Dirigée par les Modèles (IDM) s'est révélée très avantageuse et constitue la méthodologie la plus largement adoptée pour monter en abstraction et masquer l'hétérogénéité du nuage. Cependant, la plupart des solutions IDM existantes pour le l'informatique en nuage restent concentrées sur la conception des nuages sans automatiser les aspects de déploiement et de gestion, et ne couvrent pas tous les services en nuage. De plus, les solutions IDM ne sont pas toujours représentatives des APIs de nuages et manquent de formalisation. Pour remédier à ces limitations, je présente dans cette thèse une approche basée sur le standard Open Cloud Computing Interface (OCCI), les approches IDM et les méthodes formelles. OCCI est le seul standard ouvert qui décrit tout type de ressources de nuages. L'IDM est utilisée pour concevoir, valider, générer et superviser des ressources de nuage. Les méthodes formelles sont utilisées pour raisonner efficacement sur la structure et le comportement des ressources de nuage encodées, à l'aide d'un vérificateur de modèle analysant leurs propriétés. Cette recherche a lieu dans le contexte du projet OCCIware, qui fournit OCCIware Studio, la première chaîne d'outils pilotée par les modèles pour OCCI. OCCIware Studio est associé à OCCIware Runtime, le premier environnement d'exécution générique pour les artefacts OCCI ciblant tous les modèles de service de nuages (IaaS, PaaS et SaaS). Dans cette thèse, je fournis en particulier deux contributions majeures qui sont mises en œuvre en se basant sur l'approche OCCIware. Premièrement, je propose une approche basée sur la rétro-ingénierie pour extraire des connaissances des documentations textuelles ambigües des APIs de nuages et améliorer leur représentation à l'aide des techniques IDM. Cette approche est appliquée à Google Cloud Platform (GCP), où je propose GCP Model, une spécification précise et basée sur les modèles pour GCP. GCP Model est automatiquement déduit de la documentation textuelle de GCP, est conforme à OCCIware Metamodel et est implémenté dans OCCIware Studio. Il permet d'effectuer des analyses qualitatives et quantitatives de la documentation de GCP. Deuxièmement, je propose le cadre fclouds pour assurer une interopérabilité sémantique entre plusieurs nuages, i.e., pour identifier les concepts communs entre les APIs de nuages et raisonner dessus. Le langage fclouds est une formalisation des concepts et de la sémantique opérationnelle d'OCCI en employant le langage de spécification formel Alloy. Pour démontrer l'efficacité du langage fclouds, je spécifie formellement treize APIs et en vérifie les propriétés. Ensuite, grâce aux règles de transformation formelles et aux propriétés d'équivalence, je peux tracer un alignement précis entre mes études de cas, ce qui favorise l'interopérabilité sémantique dans un système de multi-nuages.
Fichier principal
Vignette du fichier
Challita-Thesis-final.pdf (32.78 Mo) Télécharger le fichier
Origin Files produced by the author(s)
Loading...

Dates and versions

tel-02016442 , version 1 (13-02-2019)

Identifiers

  • HAL Id : tel-02016442 , version 1

Cite

Stéphanie Challita. Inferring Models from Cloud APIs and Reasoning over Them: A Tooled and Formal Approach. Software Engineering [cs.SE]. Universite Lille 1, 2018. English. ⟨NNT : ⟩. ⟨tel-02016442⟩
336 View
363 Download

Share

Gmail Mastodon Facebook X LinkedIn More