WCF dans les architectures Web agiles.



Documents pareils
Olivier Deheurles Ingénieur conception et développement.net

Hébergement et configuration de services WCF. Version 1.0

Intégration de systèmes

Chapitre 1 Windows Server

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

1 Introduction. 2 Les contrats. 3 Les bindings. 4 Hébergement. 5 Consommation. 6 WCF et remoting. 7 Sessions, instantiations et concurrence

Découvrez notre solution Alternative Citrix / TSE

DotNet. Plan. Les outils de développement

PostgreSQL. Formations. Calendrier... 14

Zimbra Collaboration 8.X

Présentation d'un MOM open-source

Architectures n-tiers Intergiciels à objets et services web

Objectif : Passer de l analyse métier et fonctionnelle à la définition des applications qui

Sans trop entrer dans les détails, la démarche IO Model consiste à : Pour cela, Microsoft découpe la maîtrise de l infrastructure en quatre niveaux :

GPI Gestion pédagogique intégrée

LES NOUVEAUTES DE COST AND PROFITABILITY MANAGEMENT 8.1

Lot 4: Validation industrielle. Youness LEMRABET Pascal YIM, 19/11/2010

Mettez les évolutions technologiques au service de vos objectifs métier

FILIÈRE TRAVAIL COLLABORATIF

Configuration Matérielle et Logicielle AGORA V2

PostgreSQL. Formations. SQL avancé Calendrier... 18

CQP Développeur Nouvelles Technologies (DNT)

Architecte de Systèmes d Information, Ingénieur Logiciel, Chef de projet

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

Le Printemps rajeunit ses listes de mariage en magasin et sur Internet avec Printemps à Deux

ASP 3.0 Professionnel

Armelin ASIMANE. Services RDS. de Windows Server 2012 R2. Remote Desktop Services : Installation et administration

Sécurisation des architectures traditionnelles et des SOA

Augmenter la disponibilité des applications JEE grâce au clustering : Le projet open source JShaft

Urbanisme du Système d Information et EAI

Wonderware System Platform pour l'industrie

Dominic Jobin. Profil. Expérience professionnelle avenue de l Hôtel-de-Ville #606, Montréal (Qc) H2T 2A djobin@gmail.

Architecture et Extensions d ArcGIS Server

La continuité de service

e-business, EAI et Business Intelligence Le triptyque gagnant profondément les structures des organisations et par conséquence

CNAM Déploiement d une application avec EC2 ( Cloud Amazon ) Auteur : Thierry Kauffmann Paris, Décembre 2010

Unitt Zero Data Loss Service (ZDLS) La meilleure arme contre la perte de données

INSTALLATION et déploiement de Microsoft Dynamics CRM Ref : 80539

Messagerie asynchrone et Services Web

WEB15 IBM Software for Business Process Management. un offre complète et modulaire. Alain DARMON consultant avant-vente BPM

Vous êtes bien à la bonne présentation, c est juste que je trouvais que le titre de cette présentation étais un peu long,

La gestion du poste de travail en 2011 : Panorama des technologies

Architecture SOA Un Système d'information agile au service des entreprises et administrations

La démarche SOA et l interopérabilité applicative

IIS, c est quoi? Installation de IIS Gestion de base de IIS Méthodes d authentification. Edy Joachim,

Workflow et Service Oriented Architecture (SOA)

BizTalk Server Principales fonctions

Virtualisation, licences, multicoeurs,...

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

SIMPLE CRM ET LA SÉCURITÉ

CAHIER DES CHARGES D'IMPLANTATION

Système d échange inter-administration avec Petals ESB

Le cluster à basculement

Formateur.NET expérimenté Forte expertise dans la conception et le développement d applications.net, associée à une grande pédagogie

Conception Exécution Interopérabilité. Déploiement. Conception du service. Définition du SLA. Suivi du service. Réception des mesures

Internet Information Services (versions 7 et 7.5) Installation, configuration et maintenance du serveur Web de Microsoft

Disponibilité 24-7/365

BES WEBDEVELOPER ACTIVITÉ RÔLE

Standard. Manuel d installation

Comment initialiser une démarche SOA

Cours 20412D Examen

Fiche Technique. Cisco Security Agent

«clustering» et «load balancing» avec Zope et ZEO

résolument expert Alti: spécialiste des solutions Microsoft durablement humain Poursuivez l aventure sur

MOBILITE. Datasheet version 3.0

Administration de Citrix NetScaler 10.5 CNS-205-1I

Chapitre 5 Vision Informatique Logique Architectures Applicative et Logicielle

JOnAS Day 5.1. Clustering

Architectures en couches pour applications web Rappel : Architecture en couches

Optimisation des niveaux de service dans le cadre de déploiements de Clouds publics

Guide de configuration. Logiciel de courriel

Implémentation de Microsoft Windows. - Implémentation de Microsoft Office. Objectifs. Objectifs. Public. Niveau requis. Public.

Les Architectures Orientées Services (SOA)

Introduction aux. services web 2 / 2

Supplément de renseignements : Examens d applications et pare-feux d applications web clarifiés Normes : Normes en matière de sécurité des données de

Catalogue & Programme des formations 2015

Migration et import de données

MSP Center Plus. Vue du Produit

ALOHA LOAD BALANCER MICROSOFT TERMINAL SERVICES LOAD-BALANCING AVEC SESSION BROKER

Joomla! Création et administration d'un site web - Version numérique

1 - EXCHANGE Installation

Nouvelles technologies pour l intégration : les ESB

Qu est ce que Visual Guard. Authentification Vérifier l identité d un utilisateur

Les nouvelles architectures des SI : Etat de l Art

Manuel d installation

Pré-requis serveur d'applications AppliDis pour Microsoft Windows Server 2012

Déjeuner EIM Enterprise Information Management. Mardi 16 novembre 2010 Restaurant l Amourette Montreuil Thomas Dechilly CTO Sollan

Le Processus RUP. H. Kadima. Tester. Analyst. Performance Engineer. Database Administrator. Release Engineer. Project Leader. Designer / Developer

MS Dynamics CRM Installation et déploiement Mettre en œuvre la solution (M80539)

< Atelier 1 /> Démarrer une application web

répondre aux défis de l ingénierie logicielle déploiement et mise en œuvre opérationnelle : l'industrialisation au service de la compétitivité

25/12/2012

Introduction au développement SharePoint. Version 1.0

Sujet 2 : Interconnexion de réseaux IP (routeurs CISCO). Sujet 3 : Implémentation d un serveur VPN avec OpenVPN.

Sybase High Avalaibility

Architecture distribuée

Business Process Execution Language

Transcription:

dans les architectures Web agiles. Le paradigme objets distribués Silver Nakache 04 Juillet 2007. Introduction Etre agile! Voila ce que l on entend partout dans nos projets. L avènement de l agile a émergé avec l extreme programming, une méthodologie de développement maintenant assez largement adoptée dans les entreprises. Les qualités de courage, d itération et de travail collaboratif ont beaucoup apporté dans nos projets. Mais être agile, de mon point de vue, ne s arrête pas à ce stade. D un point de vue architecture, être agile, c est atteindre un objectif et un seul : Pérenniser le Système d information. L agilité et les applications Web D abord, il s agit d obtenir de l agilité au niveau des développements. Nous avons maintenant capitalisé de bonnes techniques issues de l XP et nous arrivons plutôt bien à adapter notre code source aux différentes demandes fonctionnelles grâce à de bons refactoring et en ayant pour guide une vision d ensemble de l architecture. Ensuite, il faut tenter d obtenir une architecture malléable d un point de vue fonctionnel. C est faire en sorte de permettre aux entreprises de conserver leur avance concurrentielle en permettant de faire évoluer rapidement et facilement leur modèle métier sans perdre en qualité et en cohérence dans le système d information. C est aussi, être agile du point de vue de l infrastructure. C est le cas dans les architectures distribuées lorsqu il faut réfléchir au déploiement des couches logiques sur les couches physiques (Serveur, Système embarqué, etc ). La question des architectures Web Ce type d architecture dispose d au moins trois, voir quatre couches logiques (Données, Couche Métier, Couche de décoration, couche de distribution). Pour tenter d obtenir une architecture malléable en

termes d infrastructure, il est primordial d identifier les couches logiques qui peuvent être déployées sur les couches physiques. Il s agit de faire en sorte, que l on puisse changer/adapter les scénarios de déploiement sans retoucher au code, juste avec de la configuration. Prenons par exemple, un site web qui, dans une première phase, ne dispose que de deux serveurs de présentation avec les serveurs d application sur les mêmes machines. Dans un second temps, le site web emporte un franc succès, il faut gérer la montée en charge du nombre d utilisateurs en scindant la couche métier sur d autre machine pour créer une ferme de serveurs applicatifs. Comment obtenir ce niveau d agilité? En travaillant les échanges entre les différentes couches. L importance des couches de communication Dans cette optique, une fois les flux correctement identifiés entre les différentes couches, il faut positionner une technologie permettant de supporter tous les types de scénarios de déploiement. Objectifs fixés : 1. Scénarios de déploiement Couches Logiques / Couches Physiques : - Fonctionnement InProc : Toutes les couches logiques sont embarquées dans un même process. - Fonctionnement OutProc : Distribution des couches de présentation et des couches métiers sur des serveurs différents. - Fonctionnement OutProc avec répartition de charge : Distribution des couches de présentation et des couches métiers sur des serveurs différents avec répartition de charge. 2. Capacité de configuration : - S adapter au modèle InProc ou OutProc par configuration. - Maitriser la répartition de charge (Load Balancing) par configuration. - Maitriser le modèle de Threading par configuration. Pourquoi? a été fondamentalement conçu pour adresser la SOA, il en résulte une conception résolument centrée sur la publication vers le monde extérieur. Cependant, hérite aussi d une importante

expérience de la part de Microsoft en matière de communication et le modèle objet de expose un beau travail d ingénierie avec un modèle objet très abouti, ce qui rend utilisable pour l emploi d un bus de communication. n est pas un ESB, mais il fournit la matière pour permettre d implémenter le paradigme d objet distribué. Comment positionner dans les architectures Web? Il existe deux positionnements possibles pour cette technologie. Le premier se trouve entre la couche de présentation et la couche métier, son usage adresse le paradigme d objets distribués, c est l objet de cet article. Le deuxième se situe de la couche présentation vis-à-vis du monde extérieur. dispose d un véritable système d hébergement autonome permettant de s affranchir d IIS et ouvre la porte à des serveurs autonomes. Un gros travail de rationalisation a été entrepris par Microsoft dans la version de 3.5 du framework.net et de l hébergement WAS. Multitiered Web Architecture

Internet Web Farm IIS Server IIS Server IIS Server IIS Server Decoration Layer (Web 2.0) Client.ASPX Pages XML Decorator ASCX Pages (User Control) Ajax Script Services Client JS Script Web Template - Communication Infrastructure Logic Hosts & Contract Services LAYER APPLICATION BLOCK Data Layer Fig.1 : Web/ 4 Tiers architecture Distributions des couches logiques sur les couches physiques

Internet Web Farm IIS Server IIS Server IIS Server IIS Server & Web Presentation Server Client Hosts & Contract Services XML Decorator Decoration Layer (Web 2.0).ASPX Pages ASCX Pages (User Control) - Communication Infrastructure Logic Ajax Script Services Client JS Script LAYER Web Template APPLICATION BLOCK Data Layer Fig.2 : Schéma de déploiement InProc

Internet Web Farm Presentation Server Client IIS Server IIS Server IIS Server IIS Server Decoration Layer (Web 2.0).ASPX Pages XML Decorator ASCX Pages (User Control) Ajax Script Services Client JS Script Web Template - Communication Infrastructure Logic Server Hosts & Contract Services LAYER APPLICATION BLOCK Data Layer Fig.3 : Schéma de déploiement OutProc

Internet Web Farm Presentation Server IIS Server IIS Server IIS Server IIS Server Decoration Layer (Web 2.0) Client.ASPX Pages ASCX Pages (User Control) XML Decorator Ajax Script Services Client JS Script Web Template - Communication Infrastructure Server 1 APPLICATION BLOCK Logic LAYER Hosts & Contract Services Hosts & Contract Services Logic LAYER APPLICATION BLOCK Server 2 Data Server Data Layer Fig.4 : Schéma de déploiement OutProc avec LoadBalancing La sécurisation des échanges Toujours dans une optique de déploiement sur des sites répartis, nous pouvons imaginer que le serveur d objet métier et le serveur de présentation se trouvent sur des sites géographiques différents. Sécuriser la communication entre ces deux couches est primordial. Une fois de plus, retoucher à la conception au niveau de développement serait quelque part un échec de conception. Le paradigme ABC de permet, en touchant uniquement au B de Binding, de sécuriser le flux de données. A contrario, un

déploiement en intranet n a pas besoin de sécurisation, une configuration du Binding suffit à désactiver l encryptage et/ou l authentification. Pérenniser les systèmes d information : Aujourd hui nos entreprises sont confrontées à des évolutions de plus en plus importantes de leur système d information. Certaines d entre elles décident de les réformer complètement. Toute la problématique consiste à concevoir des systèmes d information qui soit le plus agile possible. Les couches de communication sont un des éléments permettant d atteindre cette agilité. De par sa conception permet une grande flexibilité, regardons quelques uns des points qui peuvent nous aider : - Une séparation claire des couches logicielles : o A pour Addressing : l identification de ressource physique (URI) par configuration nous permet de basculer d un endpoint à l autre très facilement. Les protocoles les plus courants sont supportés tels que HTTP, TCP,IPC, MSMQ, P2P o B pour Binding : permet d agir sur les couches basses de communication en changeant l implémentation des couches de transports, pour en citer quelques unes : BasicHttpBinding, NetMsmqBinding, NetTcpBinding o C pour Contracts : La matérialisation des échanges entre fournisseur de service et client se fait par la définition du contrat de service. dispose d un panel d attributs assez étoffé pour agir sur les différents aspects du contrat. - Mécanisme d hébergement des services (Hosting) : o IIS Hosting : Hébergement des services en utilisant Internet Information Server o Self-Hosting : Le développeur choisi de programmer lui-même son hébergement dans service NT par exemple o WAS : Windows Activation Service est le service d hébergement de IIS7 (livré avec Vista) qui peut être utilisé de manière indépendante. Il supporte tous les types de protocole et offre des possibilités d isolation et de fail-over avancées. - Mécanisme de découverte de service :

o MEX (MetaData exchange) : Un modèle d échange de métadonnées permettant aux services de découverte de service (UDDI par exemple) de venir consommer vos services. - Une garantie sur l intégrité des données transférées : o En changeant le Binding associé à un endpoint donné, vous avez la possibilité de changer le comportement de la couche de communication en lui demandant, par exemple, d établir un double canal pour obtenir des acquiescements (ACK). - Modèle d instanciation adapté au différents cas de fonctionnement : o Per-Call : Le contrat de service fonctionne en mode requête-réponse et ne maintient pas d état (StateLess). o Per-Session : Le contrat de service définit un comportement qui maintiendra un contexte vis-à-vis de son client. o Singleton : Le contrat de service assure qu une seule et même instance est servie à tous ses clients. - Facteur d optimisation: o Throttling des appels : Réglage du nombre d appels concurrents autorisé. o Throttling des sessions : Réglage du nombre de sessions concurrentes autorisé. o Throttling des instances : Réglage du nombre d instances concurrentes autorisé. o Dispatching and Thread Pooling : Permet d agir sur la charge de chacun des services o Modèle synchrone ou asynchrone pour les appels de fonctions - Service discontinu : o Queued calls : Il existe des formes de communication où il n est pas possible de garantir que les machines soient constamment joignables. Dans ce cas, il faut faire appel au Queuing. - Securité : o Authentification : Dans le panel d authentification supporté : X509 certificate, Issued Token, Windows Integrated. o Sécurisation des échanges : disponible au niveau du transport et des messages qui transitent. o Audit : Permet l audit des échanges. o Transaction Managers : Support de LTM, KTM et DTC En définive, toute une panoplie de services offert en standard, qui permet de rendre nos architectures plus agiles. Il est à noter que lorsque l implémentation n est pas disponible en standard il est toujours

possible d implémenter une couche de transport complètement propriétaire ; de quoi satisfaire les demandes les plus exigeantes en terme de sécurité. En conclusion présente une couche de communication très versatile dans son usage. Il est en effet possible de couvrir un grand nombre d usages, les paradigmes d objets distribués et de streaming par exemple. Principal point fort de cette technologie : les architectures orientées services (SOA) avec une bonne couverture des modèles de référencement de composant (UDDI), les services web bien sûr et un modèle objet pensé autour du contrat de service précisément adapté à l industrie du service. Le modèle objet, son design, adressent de nombreuses problématiques rencontrées dans les projets, comme la sécurisation d un canal http avec le DualHttpChannel ou l encryptage de données pour ne citer que ceux là. adopte au même titre que Biztalk la notion de container, de Host dans la terminologie, très pratique pour permettre l hébergement des contrats des services sous différentes formes : Services NT, Applications console, IIS, WAS. Elle laisse la porte ouverte à toutes les possibilités de reprise en cas d incident, de clustering, etc Comme je le rappelais en préliminaire, n est pas un ESB (Enterprise Service Bus). C est un peu plus et un peu moins à la fois. Un peu plus, car dans un ESB classique il est difficile de retrouver la couverture de l ensemble des paradigmes cités en références, offre donc plus de possibilités à ce niveau. Un peu moins car la majeure partie des ESB du marché est livrée avec des adaptateurs rendant le bus véritablement cross-applicatif. Dans le cas présent les adaptateurs sont à développer vous-même ou à acquérir à travers l offre Biztalk Server R2. n est pas prêt à l usage, il faut développer autour alors qu un ESB ne requiert, en théorie, que de l intégration. Bien sûr, pérenniser le système d information ne s arrête pas aux couches de communication, bien d autres paramètres entrent en ligne de compte : l industrialisation, l assurance Qualité, les méthodes de développement, s affranchir des effets de mode technologique, étudier le bon positionnement des technologies, avoir une vision de l évolution des technologies, garder une vision d ensemble en cartographiant le SI. Que pouvons-nous attendre de dans les prochaines années?

D abord il y a quelques ajustements à faire au niveau du paradigme objet distribué. Il est actuellement nécessaire de développer des attributs maisons pour contourner des insuffisances du système (rien d incontournable en soi). D autre part, la technologie se veut remplaçante de.net Remoting, or, elle ne couvre pas réellement le RPC comme le fait son ancêtre. D autres réflexions doivent être menées quant à la gestion de version et à la compatibilité binaire, il y a des efforts certains, mais qui ne couvrent pas tout les cas.