Web Oriented Architecture :
l’état de l’art

Architectures, standards, technologies, outils, meilleures pratiques.
Sommaire

LE MOT DE L’INTERVENANT

A travers ce séminaire, je souhaite vous aider à comprendre les...

A travers ce séminaire, je souhaite vous aider à comprendre les techniques de construction d’Applications hautement disponibles, infiniment scalables, à temps de réponse garanti, sécurisées en profondeur et qui supportent une croissance rapide du business dans un modèle à coûts maîtrisés. Mon approche pédagogique est basée sur deux principes. Le premier étant ma capacité à aborder tous les sujets du séminaire de manière progressive, depuis les enjeux métiers jusqu’aux aspects techniques les plus pointus, illustrés par du code source en cas de besoin. Le second étant l’hyper-interactivité qui consiste à permettre aux participants de poser des questions à tout moment du séminaire, d’en débattre et en faire profiter l’ensemble des participants.

Habib Guergachi
Vingt-cinq ans d’expérience en Delivery d’Architectures logicielles complexes, à très hautes exigences de performance et de sécurité auprès de multinationales, de géants du Web et de startups : AXA, BNP Paribas, Airbus, LCL, ADEO, Wallmart, LinkedIn, Gilt, Deliveroo, Synthésio, etc. Douze ans d’expérience en conseil auprès des DG, DSI, DRH et Directions Métiers pour délivrer rapidement leurs stratégies de change dans le métier, la technologie et le management. Fondateur de Zengularity SA, vendu à Fabernovel Group. Angel Investor dans Play framework, vendu à LightBend (US). Angel Investor dans Libredemat, vendu à Bergerlevrault (FR). Angel Investor dans prismic.io (plateforme CMS API leader mondial). Aujourd’hui, CTO du Groupe Fabernovel, Administrateur de Foyer SA (LU), leader de l’assurance au Benelux, en charge de la Stratégie Digitale, et conférencier exclusivement chez Capgemini Institut depuis 1998, avec plus de 5000 stagiaires formés.
Lire la suite Cacher le texte

 

Ce séminaire apporte des éclairages pédagogiques sur les fondamentaux techniques des architectures modernes de SI. Il ouvre ensuite les perspectives de création de nouvelles générations d’architectures plus complexes à base de web services, de microservices et de WebAPI.

La WOA permet de bâtir rapidement des Applications ouvertes vers l’extérieur et sécurisées, performantes, scalables à l’infini, qui adaptent dynamiquement les ressources consommées au nombre d’utilisateurs connectés. Par construction elles sont moins sensibles à l’obsolescence technologique. Ces Applications sont fondées sur les concepts de la WOA (Web Oriented Architecture). HTTP, URI, REST, Hypermedia, CAP, etc. C’est un style d’Architecture alternatif aux anciennes Architectures Enterprise fondées sur les serveurs d’Applications et RPC. Celles-ci étant plus adaptées aux contraintes d’Architectures internes de l’entreprise. La WOA est aussi une architecture de référence pour bâtir des Applications mobiles avec le principe des Apps hybrides et les PWA (Progressive Web Apps). Ces architectures entièrement basées sur les pures standards du web sont factuellement faciles à sécuriser, que les applications JEE par exemple, et à faire interopérer avec les web services internes ou externes.



« Enterprise » vs SOA vs WOA


L’alternative au modèle « Enterprise »

  • Les risques à ouvrir totalement un SI basé sur les technologies « Enterprise ».
  • Le SI Web comme alternative au SI « Enterprise ».
  • Introduction au SI Web ou « Non-Enterprise ».

Les limites de la SOA

  • Le découplage tridimensionnel entre Services.
  • Les raisons de l’échec de SOAP/WSDL/WS-*.
  • La réalité opérationnelle des plateformes commerciales dites SOA.

Le transactionnel WOA et SOA.

  • Comment la WOA et la SOA proposent-elles de sécuriser un SI complètement ouvert ?
  • Le coût unitaire de la transaction en modes WOA ou SOA.
  • La SOA face à la gestion de l’obsolescence technologique.

Exemples de SI orienté WOA

  • Application Platform : Facebook, Google, Amazon, Salesforce, etc.
  • API Platform : Twitter, PayPal, prismic.io, etc.
  • Exemple de modernisation basée sur la WOA d’un SI bancaire.

Architectures orientées Ressources


REST (Representational State Transfer)

  • Les principaux styles d’Architecture.
  • Le style d’Architecture REST.
  • Quelles sont les alternatives à REST ?

URI (Uniform Resource Identifier)

  • Le concept de « Ressource ».
  • Exemple de Ressources par type.
  • Quelles limites au modèle orienté Ressources ?

HTTP

  • Fonctionnement du protocole HTTP.
  • Analyse des propriétés méconnues du protocole.
  • Les métadonnées HTTP.

Hypermédia

  • Les ruptures introduites par le concept de l’Hyperlink.
  • Les conséquences de la combinaison Hypermédia et URI ?
  • Comment construire des Workflows complexes en Hypermedia ?

Composants transactionnels


Rôle de l’Application Server

  • Y a-t-il encore besoin d’un serveur d’Applications ?
  • Quelles alternatives au serveur d’Applications ?
  • La montée en charge sans serveur d’Applications ?

Session utilisateur

  • À quoi sert une session utilisateur ?
  • Quel intérêt à gérer la session côté serveur ?
  • Impact de la session sur la scalabilité.

Transactionnel

  • Les transactions ACID.
  • Les limites de l’approche ACID sur le Web.
  • L’alternative à ACID dans les Architectures WOA.

Théorème CAP

  • Introduction au théorème CAP.
  • La consistance à terme appliquée chez Google et Amazon.
  • Impacts culturels chez les architectes et les utilisateurs.

Services métier en WOA

  • Caractéristiques d’un service métier en WOA.
  • Mode d’invocation et gestion de transaction longue.
  • Comment sécuriser un service ouvert au public ?

Stateless vs Statefull

  • Objets métiers « Stateless » vs « Statefull ».
  • Les stratégies pour gérer la session utilisateur.
  • Les cas d’exception ou le Stateless est impossible.

Gestion du Cache

  • Les principaux types et niveaux de Cache.
  • Techniques de « Caching » multimédia.
  • Quand recourir à des infrastructures de Caching dédiées ?

Répartition de charge

  • Introduction à l’affinité de sessions.
  • Techniques de répartition de charges sur front Stateless.
  • Les critères à respecter pour obtenir une scalabilité linéaire.

Intégration d’Applications


Intégration des services

  • Le cœfficient d’intégrabilité d’un Service.
  • Principaux formats standards d’échanges entre Services.
  • Technologies purs standards pour intégrer des Services.

Les concepts évolués

  • Idempotence fonctionnelle.
  • Transactions de compensation.
  • Stratégies de gestion de l’échec « Embrace Failure ».

Intégration par le web

  • Comment intégrer deux Applications qui ne se connaissent pas.
  • Gestion de la cohérence entre fragments applicatifs.
  • Techniques de propagation du contexte sécurité et transactionnel.

Orchestration de services

  • Pourquoi l’Hypermedia est une alternative au Workflow ?
  • L’Orchestration de multitude de Services distribués avec HATEOAS.
  • Comment développer une vision unifiée de Services distribués ?
  • Comment faire interopérer des services technologiquement hétérogènes ?

Microservices

  • Critères formels d’éligibilité au Microservice.
  • Quelle granularité optimale pour un microservice ?
  • Comment faire interopérer fonctionnellement des microservices ?

API (Application Programming Interface)

  • Définition d’une API Web.
  • Quel lien entre Service, Microservice et API ?
  • Comment faire interopérer des microservices et des APIs.
  • Exemple d’API : interface, documentation, communauté, etc.

Interfaces Homme-Machine


Développement d’applications Web front

  • Les éléments sémantiques d’une page Web transactionnelle.
  • Formulaires Web transactionnels modernes.
  • Les transaction temps réel et stream.

Rôle de JavaScript

  • Les zones de confort de Javascript.
  • Traitements métier complexes avec JavaScript.
  • Le point sur les compétences et expertises sur le marché.

Frameworks front

  • Technologies front modernes : web, natives, hybrides, PWA, etc.
  • Les principales technologies : Angular, React, Vue, etc.
  • Les critères de choix et les compétences nécessaires.
  • Assemblage d’applications
  • Les innovations dans les technologies « Web Front ».
  • Comment le développement Web se structure côté serveur ?
  • Spécificités des profils web développeur front.

Applications web mobiles

  • Applications Web et Hybrides.
  • Introduction aux Applications PWA (Progressive Web Apps).
  • La réponse du Web aux spécificités mobiles évoluées.
  • Les techniques d’optimisation des performances

|


|a charset="utf-8">

WOA

Web Oriented Architecture : l’état de l’art


L’alternative au modèle « Enterprise »

  • Les risques à ouvrir totalement un SI basé sur les technologies « Enterprise ».
  • Le SI Web comme alternative au SI « Enterprise ».
  • Introduction au SI Web ou « Non-Enterprise ».

Les limites de la SOA

  • Le découplage tridimensionnel entre Services.
  • Les raisons de l’échec de SOAP/WSDL/WS-*.
  • La réalité opérationnelle des plateformes commerciales dites SOA.

Le transactionnel WOA et SOA.

  • Comment la WOA et la SOA proposent-elles de sécuriser un SI complètement ouvert ?
  • Le coût unitaire de la transaction en modes WOA ou SOA.
  • La SOA face à la gestion de l’obsolescence technologique.

Exemples de SI orienté WOA

  • Application Platform : Facebook, Google, Amazon, Salesforce, etc.
  • API Platform : Twitter, PayPal, prismic.io, etc.
  • Exemple de modernisation basée sur la WOA d’un SI bancaire.

REST (Representational State Transfer)

  • Les principaux styles d’Architecture.
  • Le style d’Architecture REST.
  • Quelles sont les alternatives à REST ?

URI (Uniform Resource Identifier)

  • Le concept de « Ressource ».
  • Exemple de Ressources par type.
  • Quelles limites au modèle orienté Ressources ?

HTTP

  • Fonctionnement du protocole HTTP.
  • Analyse des propriétés méconnues du protocole.
  • Les métadonnées HTTP.

Hypermédia

  • Les ruptures introduites par le concept de l’Hyperlink.
  • Les conséquences de la combinaison Hypermédia et URI ?
  • Comment construire des Workflows complexes en Hypermedia ?

Rôle de l’Application Server

  • Y a-t-il encore besoin d’un serveur d’Applications ?
  • Quelles alternatives au serveur d’Applications ?
  • La montée en charge sans serveur d’Applications ?

Session utilisateur

  • À quoi sert une session utilisateur ?
  • Quel intérêt à gérer la session côté serveur ?
  • Impact de la session sur la scalabilité.

Transactionnel

  • Les transactions ACID.
  • Les limites de l’approche ACID sur le Web.
  • L’alternative à ACID dans les Architectures WOA.

Théorème CAP

  • Introduction au théorème CAP.
  • La consistance à terme appliquée chez Google et Amazon.
  • Impacts culturels chez les architectes et les utilisateurs.

Services métier en WOA

  • Caractéristiques d’un service métier en WOA.
  • Mode d’invocation et gestion de transaction longue.
  • Comment sécuriser un service ouvert au public ?

Stateless vs Statefull

  • Objets métiers « Stateless » vs « Statefull ».
  • Les stratégies pour gérer la session utilisateur.
  • Les cas d’exception ou le Stateless est impossible.

Gestion du Cache

  • Les principaux types et niveaux de Cache.
  • Techniques de « Caching » multimédia.
  • Quand recourir à des infrastructures de Caching dédiées ?

Répartition de charge

  • Introduction à l’affinité de sessions.
  • Techniques de répartition de charges sur front Stateless.
  • Les critères à respecter pour obtenir une scalabilité linéaire.

Intégration des services

  • Le cœfficient d’intégrabilité d’un Service.
  • Principaux formats standards d’échanges entre Services.
  • Technologies purs standards pour intégrer des Services.

Les concepts évolués

  • Idempotence fonctionnelle.
  • Transactions de compensation.
  • Stratégies de gestion de l’échec « Embrace Failure ».

Intégration par le web

  • Comment intégrer deux Applications qui ne se connaissent pas.
  • Gestion de la cohérence entre fragments applicatifs.
  • Techniques de propagation du contexte sécurité et transactionnel.

Orchestration de services

  • Pourquoi l’Hypermedia est une alternative au Workflow ?
  • L’Orchestration de multitude de Services distribués avec HATEOAS.
  • Comment développer une vision unifiée de Services distribués ?
  • Comment faire interopérer des services technologiquement hétérogènes ?

Microservices

  • Critères formels d’éligibilité au Microservice.
  • Quelle granularité optimale pour un microservice ?
  • Comment faire interopérer fonctionnellement des microservices ?

API (Application Programming Interface)

  • Définition d’une API Web.
  • Quel lien entre Service, Microservice et API ?
  • Comment faire interopérer des microservices et des APIs.
  • Exemple d’API : interface, documentation, communauté, etc.

Développement d’applications Web front

  • Les éléments sémantiques d’une page Web transactionnelle.
  • Formulaires Web transactionnels modernes.
  • Les transaction temps réel et stream.

Rôle de JavaScript

  • Les zones de confort de Javascript.
  • Traitements métier complexes avec JavaScript.
  • Le point sur les compétences et expertises sur le marché.

Frameworks front

  • Technologies front modernes : web, natives, hybrides, PWA, etc.
  • Les principales technologies : Angular, React, Vue, etc.
  • Les critères de choix et les compétences nécessaires.
  • Assemblage d’applications
  • Les innovations dans les technologies « Web Front ».
  • Comment le développement Web se structure côté serveur ?
  • Spécificités des profils web développeur front.

Applications web mobiles

  • Applications Web et Hybrides.
  • Introduction aux Applications PWA (Progressive Web Apps).
  • La réponse du Web aux spécificités mobiles évoluées.
  • Les techniques d’optimisation des performances

Les limites de relationnel

  • Le Data Store relationnel : un goulet d’étranglement physique.
  • Les limites du relationnel dans des Architectures WOA.
  • Les risques du Mapping Objet/Relationnel en Transactionnel lourd.

Bases de données NoSQL

  • Les techniques de modélisation de données non structurées.
  • Les bonnes pratiques de déploiement et d’exploitation de gros volumes.
  • Introduction aux architectures noSQL hybrides.

Répartition de l’accès aux données

  • Introduction aux pratiques de Sharding.
  • Impact sur la conception et la programmation des applications
  • Les contraintes et les pré-requis en exploitation.

Architectures complexes de données

  • Relationnel vs NoSQL : zones de confort et limites.
  • Quel type de Data Store pour quel problème d’Architecture ?
  • Est-il possible d’adopter exclusivement du NoSQL ?

Sécurité fonctionnelle


Authentification

  • La gestion du SSO par authentification distribuée.
  • La gestion des droits et des habilitations en mode distribué.
  • Architecture de délégation d’authentification.

Habilitations

  • La négociation d’habilitations inter-Applications avec OAuth.
  • La propagation d’habilitations entre Applications.
  • Exemple de la gestion d’habilitation dans un SI distribué.

Sécurité applicative

  • Les limites de la sécurité périmétrique.
  • La sécurité en profondeur et la sécurité applicative.
  • Introduction à la « Security By Design ».

Gestion des exceptions

  • Conception fonctionnelle des ruptures transactionnelles.
  • Les standards Web pour gérer les exceptions et les rejets
  • Exemple de reprise suite à un échec de transaction de paiement et crash d’application.

Déploiement et administration


Cloud et WOA

  • Avantages de la WOA dans les architectures Cloud.
  • Les spécificités de la WOA dans un Cloud privé.
  • Les points de vigilance pour basculer vers la Cloud public.

SaaS

  • Les critères d’éligibilité d’une application WOA au SaaS.
  • Les problèmes d’interopérabilité entre Applications SaaS.
  • Les risques à ouvrir en SaaS des Applications non WOA.

PaaS

  • Comment automatiser le cycle de vie d’un service ?
  • Comment gérer des services web techniquement hétérogènes.
  • Comment gérer automatiquement la montée en charge ?
  • Comment faire de la mise en production un non évènement ?

Ce chapitre dresse un panorama critique de l’offre actuelle du marché des outils, Applications et services basés sur le concept WOA : stratégie des éditeurs, typologie des acteurs et des offres, caractéristiques des principaux produits et principales contre-indications respectives, etc.