SOA et Cloud GIN5L06
SOA= Service-Oriented Architecture, en français Architecture Orientée Services
Enseignant:
Email:
Durée totale du cours: 45 H
Semestre : 5
Option : Ingénierie logicielle
Nombre de crédits : 2
Option : Ingénierie des connaissances
Nombre de crédits : 2
| Modules
spécialisés |
Modules de
base |
Sciences et techniques de
l’ingénierie |
Préparation à la carrière professionnelle |
| X |
| Nombre d’heures | Activités hors classe | ||
| 22.5 | 18 | ||
| cours | TD | TP | |
| 22.5 | |||
| SOA et Cloud | ||
| Code | : GIN5L06 | SOA= Service-Oriented Architecture |
Volume Horaire : 0h75 Cours intégrés & 1h30 Travaux pratiques (par semaine)
Objectifs d’apprentissage et compétences visées
- Comprendre les styles architecturaux et en particulier l’architecture orientée
- Comprendre l’architecture de la technologie des SW et les technologies associées.
- Modéliser des applications complexes par le biais de la technologie des SW et se formaliser avec les plateformes et les outils de développement et de déploiement des
- Développement des applications en utilisant le langage BPEL
- Comprendre les principaux concepts reliés au modèle cloud
Contenu du cours
Semaine 1-2 : Introduction à l’architecture logicielle
- Historique de l’architecture logicielle, de l’ère monolithique à aujourd’hui.
- Concepts de base de l’architecture logicielle.
- Importance de l’architecture logicielle dans le développement de logiciels.
- Compréhension des architectures N-tiers.
- Avantages et inconvénients des architectures N-tiers.
- Étude de cas : mise en place d’une architecture N-tiers.
Semaine 3-4 : Introduction à SOA
- Origine et évolution de la Service-Oriented Architecture (SOA).
- Principes fondamentaux de SOA.
- Composants clés de SOA : Services, Contrats, Annuaire, etc.
- Avantages de SOA par rapport aux architectures N-tiers.
- Limitations et cas d’utilisation appropriés pour chaque approche.
- Étude de cas comparative.
Semaine 5-6 : Principes de conception de la SOA
- Principes de découplage.
- Services web et protocoles (SOAP, REST).
- Gestion de la qualité de service (QoS) dans la SOA.
- Utilisation de langages de modélisation (UML, BPMN).
- Création de contrats de service.
- Documentation des services.
Semaine 7-8 : Implémentation de la SOA
- Développement de services web.
- Gestion de la sécurité dans la SOA.
- Intégration de bases de données.
- Langages d’orchestration (BPEL).
- Outils d’orchestration.
- Composition de services
Semaine 9-10 : Middleware dans les architectures logicielles
- Rôle des middlewares dans le développement logiciel.
- Types de middlewares (CORBA, DCOM, MOM, etc.).
- Middleware et SOA.
- Historique et évolution du Cloud Computing.
- Modèles de service Cloud : IaaS, PaaS, SaaS.
- Avantages du Cloud Computing.
Semaine 11-12 : Intégration de SOA et Cloud Computing
- Comment SOA peut être mis en œuvre dans le Cloud.
- Les services Cloud et leur rôle dans l’architecture SOA.
- Sécurité et gestion des données dans un environnement Cloud-SOA.
Semaine 13-14: Plateformes et Outils dans SOA et Cloud Computing
- Revue des principales plateformes et outils pour le développement, le déploiement et la gestion de services dans SOA et Cloud
Semaine 15-16: Étude de Cas et Projets Pratiques
- Analyse de cas réels d’entreprises ayant adopté SOA et le Cloud.
- Développement de projets pratiques impliquant des architectures SOA et Cloud.
Méthodes d’enseignement et d’apprentissage
- Enseignement frontal (magistral) avec des exemples à résoudre en
- Exercices théoriques et études de cas (présentation et discussion).
- Travaux pratiques (laboratoire)
- Travaux à faire à domicile (mini-projet, exposé, compte-rendu, …)
Connaissances et compétences pré-requises
- Java, .NET, Android et XML
Références bibliographiques
- Un polycopié (Notes du cours) de l’enseignant sera
- Les recommandations bibliographiques suivantes doivent être considérées :
- Jean-Marie Chauvet, « Services Web avec SOAP, WSDL, UDDI, ebXML… », 2002
- Sanjiva Weerawarana, Francisco Curbera, Frank Leymann, Tony Storey, Donald F. Ferguson, « Web Services Platform Architecture », 2005
- Cours web services, http://www-inf.int-evry.fr/cours/WebServices, Université de paris – France.
- Benny Mathew, Matjaz Juric, Poornachandra « Business Process Execution Language for WS », Packt Publishing, January 2006 – 372 pages – ISBN : 1904811817
- « Service-Oriented Architecture (SOA): Concepts, Technology, and Design » par Thomas Erl – Ce livre fournit une introduction complète aux concepts et à la conception de l’architecture orientée service.
- « Cloud Computing: Concepts, Technology & Architecture » par Thomas Erl, Ricardo Puttini, et Zaigham Mahmood – Ce livre explore les concepts clés du cloud computing et fournit une compréhension approfondie de l’architecture cloud.
- « Cloud Native Patterns: Designing Change-Tolerant Software » par Cornelia Davis – Ce livre se concentre sur la conception de logiciels pour des environnements cloud natifs, en mettant l’accent sur la résilience et l’évolutivité.
- « Cloud Computing: Principles and Paradigms » par Rajkumar Buyya, James Broberg, et Andrzej Goscinski – Ce livre couvre les principes fondamentaux du cloud computing, ainsi que les modèles et les paradigmes associés.
- « SOA Design Patterns » par Thomas Erl – Il s’agit d’un guide détaillé des modèles de conception couramment utilisés dans le développement d’architectures orientées services.
- « Architecting the Cloud: Design Decisions for Cloud Computing Service Models (SaaS, PaaS, and IaaS) » par Michael J. Kavis – Ce livre se penche sur la conception d’applications pour différents modèles de services cloud (SaaS, PaaS, IaaS).
- « Mastering Cloud Computing: Foundations and Applications Programming » par Rajkumar Buyya, Christian Vecchiola, et S. Thamarai Selvi – Ce livre couvre les aspects techniques de la programmation et de la gestion des ressources dans le cloud.
- « Cloud Security and Privacy: An Enterprise Perspective on Risks and Compliance » par Tim Mather, Subra Kumaraswamy, et Shahed Latif – Il aborde les aspects de sécurité et de confidentialité dans le contexte du cloud computing.
Modalité d’évaluation
- 40% Contrôle continu (TP noté, Test, Assiduité, Devoir surveillé, travaux non présentiel, …)
- 60% Examen
Résultat d’apprentissage :
Voici une liste des compétences techniques et transversales que les étudiants devraient acquérir après avoir réussi ce cours :
Compétences techniques :
- Conception de services orientés architecture : Les étudiants devraient être en mesure de concevoir des systèmes logiciels en utilisant les principes de l’architecture orientée service, en identifiant les composants, les interfaces et les protocoles nécessaires.
- Développement de services web : Ils devraient être capables de créer des services web conformes aux normes et aux protocoles appropriés (comme REST, SOAP) pour permettre l’intégration et la communication entre les applications.
- Virtualisation et gestion de conteneurs : Comprendre les concepts de virtualisation et de conteneurisation (par exemple, Docker, Kubernetes) pour le déploiement et la gestion efficaces d’applications dans le cloud.
- Gestion des données dans le cloud : Savoir comment stocker, gérer et accéder aux données de manière efficace et sécurisée dans un environnement cloud.
- Sécurité dans le cloud : Comprendre les principes de base de la sécurité informatique et savoir comment les appliquer dans un contexte de cloud computing pour protéger les données et les applications.
- Architecture de microservices : Connaître les principes de base de l’architecture de microservices et savoir comment concevoir, développer et déployer des applications basées sur des microservices.
- Intégration continue et déploiement continu (CI/CD) : Maîtriser les outils et les pratiques de CI/CD pour automatiser les tests et le déploiement d’applications dans le cloud.
- Analyse des performances et mise à l’échelle : Être en mesure de surveiller et d’optimiser les performances des applications cloud, ainsi que de les mettre à l’échelle en fonction des besoins.
Compétences transversales :
- Résolution de problèmes : Avoir la capacité de résoudre des problèmes complexes liés à la conception, au développement et à la gestion de systèmes basés sur le cloud.
- Travail d’équipe : Collaborer efficacement avec d’autres professionnels de l’informatique pour la réalisation de projets SOA et cloud.
- Communication : Être capable de communiquer de manière claire et efficace avec des parties prenantes techniques et non techniques.
- Pensée critique : Développer des compétences en analyse critique pour évaluer les choix architecturaux et technologiques dans le contexte de l’ingénierie cloud.
- Gestion de projet : Comprendre les principes de base de la gestion de projet et de la planification pour mener à bien des projets d’ingénierie informatique.
- Éthique professionnelle : Respecter les normes éthiques et professionnelles dans le domaine de l’informatique, en particulier en ce qui concerne la sécurité et la confidentialité des données.