View
512
Download
2
Category
Preview:
DESCRIPTION
La problématique de développement des applications hautement distribuées sur la plate-forme Windows Azure.
Citation preview
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
1
EPIGRAPHE
« La route de la réussite n’est pas droite.
Il y a une courbe appelée Chute,
Un rond-point appelé Confusion,
Des casse-vitesse appelés Amis,
Des feux rouges appelés Ennemis,
Des voyants d’alarme appelés Famille,
Vous aurez des pannes appelées Fatigue,
Mais, si vous avez des pièces de rechange appelés
Détermination,
Un moteur appelés Persévérance,
Une assurance appelé Foi,
Un conducteur appelé Jésus-Christ,
Cette route vous fera arriver à un endroit appelé Réussite et
Succès.
Que Dieu soit béni ! »
mlecjm -161-
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
2
DEDICACE
Que ce travail soit mon aire de gratitude envers tous ceux qui m’ont encouragé et
soutenu d’embrasser le secteur informatique afin d’être utile à la société pour offrir le
meilleur de notre savoir faire.
En mémoire de notre très cher père MPYANA KAHONGO ILUNGA et notre frère Luc
COMPERNOL SDB, à travers ce présent travail, nous pensons à tous ceux qui nous ont
assistés de près ou de loin durant notre parcours :
A notre très chère mère, nous citons NDAIE MALENGE Djenny,
A tous nos grands parents, plus particulière à MALENGE SANA MALENGE et
Henriette LENGE KILUMBA,
A toute la famille MPYANA et la famille MALENGE,
A tous nos oncles et tantes, frères et sœurs, plus particulièrement à : Serge
MWINKA, Jean Paul, Djo M., Eddy MALENGE, Olivier, MPYANA K., Héritier I., Hertel,
Pascaline, Audrie, Gracie M, NGOYI FORTINA, Gauthier MUVILE, MBUYU David,
KAZADI MALENGE, Jérôme M., Sahara I. et Samuel MALENGE,
A tous nos amis et amies,
Ainsi qu’à tous ceux dont les noms passent sous silence.
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
3
AVANT PROPOS
Le développement des applications hautement distribuées ou hébergées constitue
un thème d’actualité pour les ingénieurs software d’entreprise et les développeurs
professionnels, ainsi que les étudiants et passionnés de développement des applications
informatiques. Ce travail de fin de cycle de graduat en sciences informatiques, intitulé :
« La problématique de développement des applications hautement distribuées sur la
plate-forme Windows Azure » a suscité un grand intérêt pour pénétrer le monde des
standards internationaux des NTIC.
Le gâteau qu’on présente sur la table, n’a jamais été l’œuvre d’une seule personne.
Qu’il nous soit donc permis au seuil de ce travail qui marque la fin de notre cycle de
graduat et qui est l’aboutissement de trois années d’efforts, de privation et des sacrifices
nourri par de soucis tenace de rendre utile, de nous acquitter d’une dette de gratitude
envers toutes les personnes qui ont contribué, d’une manière ou d’une autre à notre
formation.
Le présent travail n’est pas seulement le fruit de nos recherches et de l’effort
personnel, mais aussi une œuvre synthétique de l’éducation et de la formation intellectuelle
que nous avons reçues depuis le début jusqu’à ce stade de nos études Universitaires à
l’université Protestante de Lubumbashi.
« A tout Seigneur, tout honneur » dit-on, nos remerciements s’adressent en premier
lieu à notre Dieu pour le don gratuit de la vie qu’il nous a accordé, puis à nos chers parents
MPYANA KAHONGO Pascal qui venez de nous quitter le 17/10/2008 dernier que son âme
repose en paix et NDAIE MALENGE Djenny respectivement père et mère pour tous les actes
attentionnés qu’ils ont toujours posés à notre endroit tout depuis la genèse de notre vie.
L’expression de notre profonde gratitude s’adresse très particulièrement à notre
Directeur, l’Ingénieur JJP KAYEMBE KYAMINA qui, en dépit de ses multiples occupations,
a bien voulu, avec beaucoup de volonté, accepter la direction de ce travail qu’il trouve ici
l’expression de nos vifs remerciements.
Qu’il nous soit permis, par la même occasion de remercier tous les professeurs qui
nous ont encadrés durant le premier cycle à qui nous devons notre formation de graduat en
sciences Informatiques.
Nous n’allons pas terminer sans pour autant penser à tous nos compagnons de lutte
qui ont accepté de peiner avec nous et de faire route ensemble avec tant de courage et de
labeur et tous ceux qui font du présent travail leur joie : ILUNGA BANZA Francette,
LILOMBO ENGUNDA Patrick, MAKAMU BEN OTTO David, LUKUSA WA LUKUSA Pacific,
ainsi qu’à tous ceux dont leurs noms passent sous silence. Qu’ils trouvent ici l’expression
de nos sentiments d’indéfectible attachement.
A toutes et tous : Nous disons sincèrement merci !
mlecjm -161-
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
4
LISTE DES ABREVIATIONS
API: (Application Programming Interface), en français Interface de Programmation.
ASP: acronyme d’Active Server Pages qui est une technologie développée par Microsoft utilisée dans la programmation Web.
B2B : (Business to business), échanges de collaboration interentreprises.
IIS: (Internet Information Server) est un logiciel de serveur Web (rôle Serveur) de la plateforme Windows NT.
HTTP : (HyperText Transfer Protocol), littéralement le « protocole de transfert hypertexte », est un protocole de
communication client-serveur développé pour le World Wide Web.
HTTPS : (avec S pour secured, soit « sécurisé ») est la variante du HTTP sécurisée.
SAN: (Storage Area Network), un réseau spécialisé permettant de mutualiser des ressources de stockage.
LOE : (Live Operating Environment), littéralement « Environnement d’exécution en ligne ».
NAS: de l'anglais Network Attached Storage, est une unité autonome, reliée à un réseau dont la principale
fonction est le stockage de données en un gros volume centralisé pour des clients-réseau hétérogènes.
QoS : (Quality of Service), la qualité d’un service délivré par un serveur.
RPC : (Remote Procedure Call) est un protocole permettant de faire des appels de procédures sur un ordinateur distant à l'aide d'un serveur d'applications. Ce protocole est utilisé dans le modèle client-serveur et permet de gérer les différents messages entre ces entités.
REST: (Representational State Transfer) est une manière de construire une application pour les systèmes
distribués comme le World Wide Web.
SaaS : (Software as a Service) est un concept consistant à fournir des services ou des logiciels informatiques
par le biais du Web et non plus dans le cadre d'une application de bureau ou client-serveur.
SOA : (Service Oriented Architecture), Architecture Orientée Services : une forme d'architecture de médiation
qui est un modèle d'interaction applicative qui met en œuvre des services (composants logiciels).
SOAP: (Simple Object Access Protocol), un protocole de RPC orienté objet bâti sur XML.
SDK: (Software Developement Kit), un ensemble des outils de développement de logiciels.
UDDI : (Universal Description Discovery and Integration), connu aussi sous l'acronyme UDDI, est un annuaire
de services fondé sur XML et plus particulièrement destiné aux services Web.
UML : Unified Modeling Langage que l'on peut traduire par "langage de modélisation unifié".
VM : (Virtual Machine), Machine Virtuelle.
WPF : Windows Presentation Fondation est la spécification graphique de Microsoft .NET 3.0. Il intègre le langage descriptif XAML qui permet de l'utiliser d'une manière proche d'une page HTML pour les non développeurs.
XAML : Extensible Application Markup Language, prononcé « Zammel », un standard XML proposé par
Microsoft, utilisé notamment dans les applications utilisant le Framework .Net.
XHTML : (eXtensible HyperText Markup Language), dit XHTML, est un langage de balisage servant à écrire
des pages pour le World Wide Web.
XML: (Extensible Markup Language), « langage extensible de balisage » est un langage informatique de
balisage générique.
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
5
LISTE DES ILLUSTRATIONS
Figure 1: Architecture en couches du Grid Computing
Figure 2 : Architecture du système de noms de domaines (Arbre DNS)
Figure 3 : Interaction entre serveurs de noms (DNS serveur) et contrôleur de domaine
Figure 4 : Architecture en couche du Cloud Computing Windows Azure
Figure 5 : Modèle de représentation de la plate forme Windows Azure et ses composants
Figure 6 : Plate forme d’exécution Windows Azure
Figure 7 : Centre de données Microsoft (Data center)
Figure 8 : Exécution d’applications sur Windows Azure
Figure 9 : Environnement de développement, outils de développement et Ensemble des services en lignes
Figure 10 : Sécurité et authentification : Access Control Service
Figure 11 : Bus et messagerie application : Service Bus
Figure 12 : Workflow Service et Service Bus
Figure 13 : SQL service
Figure 14 : SQL Data Services
Figure 15 : Live Framework (Cloud)
Figure 16 : Live Operating Environment
Figure 17 : Live Desktop
Figure 18 : Modèle de développement des applications de types Web Role.
Figure 19: Interface et l’environnement Visual Studio: Visual Web Developer 2008 Express Edition SP1
Figure 20 : Interface de création de projets d’applications sous Visual Studio 2008
Figure 21 : Editeur de code source sous Visual Studio
Figure 22 : Tester l’application on the Cloud en local
Figure 23 : Le déploiement des applications Azure : Azure Services Developer Portal
Figure 24: Modèle architecture de communication Client /Serveur
Figure 25: Modèle de l’architecture Client/serveur d’entreprise
Figure 26 : Intégration technologie Windows Azure dans l’entreprise
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
6
INTRODUCTION GENERALE
Dans le cadre de cette étude le concept développement prend le sens « de phase de
recherche et de mise au point » d’un outil ou d'un produit à utiliser avec un appareil
informatique.
Une application est un ensemble de codes spécifiques écrit dans un langage
informatique dit « langage de programmation » qui permet de réaliser une ou plusieurs
tâches précises destinées à fonctionner sur un appareil informatique ou ordinateur.
Un logiciel peut être une application ou un ensemble d’applications structurées,
simples ou complexes. Il existe des logiciels dont le but est de veiller et de faciliter le
fonctionnement harmonieux de tous les autres outils sur une machine informatique ou dite
aussi système informatique ou ordinateur. Ces types de logiciels sont appelés Système
d’exploitation de l’ordinateur.
Un système informatique est un ensemble composé de matériel, du système
d’exploitation et des logiciels d’applications.
Les logiciels sont crées pour fonctionner soit sur une seule machine, ou soit sur un
ensemble de machines qui collaborent entre elles dans l’accomplissement de leur tâches.
Dans le premier cas, on parle des logiciels monolithiques ou simplement des logiciels du
système d’exploitation. Dans le second cas, on parle des logiciels distribués ou en réseau.
Dans le cas des systèmes d’exploitation développés pour fonctionner sur plusieurs
machines de manière à les faire coopérer, nous parlerons des systèmes d’exploitation
distribués.
Dans le contexte où un logiciel est conçu pour solliciter un service d’un autre logiciel,
afin que ce dernier lui fournisse des ressources qu’il nécessite pour accomplir ses tâches,
on dit que les deux logiciels sont dans « une relation client-serveur».
Nous disons aussi que le logiciel client demande un service, tandis le logiciel serveur fournit
le service demandé. Les machines sur lesquelles fonctionnent les logiciels serveurs sont
appelées « Serveurs » et si le logiciel est client, dans ce cas, la machine sera dite « cliente »
ou « hôte ».
Les logiciels distribués communiquent entre eux par le canal des connexions de
nature physique qui relient les systèmes informatiques.
Ces connexions peuvent s’étendre au réseau de télécommunication internationale grâce à
divers dispositifs technologiques reliant d’innombrables machines à travers le monde. Ce
système d’interconnexion des machines informatiques à l’échelle planétaire est appelé
« Internet ». Lorsqu’une application placée sur une machine serveur pour qu’elle s’exécute
sur plusieurs machines (pour un grand public) par le biais de l’Internet, on dira que
l’application est « hautement distribuée », ou encore «application hébergée » sur le serveur.
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
7
Sur Internet, comme dans tout autre cas d’interconnexion des machines, les
différents systèmes informatiques échangent des informations, en utilisant un même
langage ou protocole, associé à un service précis.
Windows Azure est à la fois : un système d’exploitation hébergé sur plusieurs
serveurs reliés entre eux, également à l’Internet ; un ensemble des services destinés à
faciliter le développement des applications hautement distribuées s’exécutant sur ce
système d’exploitation, enfin une puissance de traitement et une capacité de stockage des
informations, pouvant être allouées aux applications y installées sur demande des
entreprises ou de tout autre utilisateur.
En tant que système d’exploitation, Windows azure est appelé « plate-forme
d’exécution », et « plate-forme de développement » parce que il y est intégré des services
facilitant la création des applications hébergées.
Pour différencier « l’exécution et le développement des applications » sur un système client-
serveur simple ou sur un ordinateur personnel par rapport à la plate-forme Windows azure,
Microsoft parle dans ce dernier cas de "Cloud Computing" littéralement ce qui signifie «
Informatique dans les Nuages ».
0.1. Brève historique
Les systèmes informatiques sont apparus dès 1946 avec la construction aux USA du
premier ordinateur, comportant plus de pièces mécaniques. Et le système ne pouvait être
programmé que manuellement, avec des commutateurs ou des câbles à enficher.
L’apparition du « transistor » en 1948 et la fabrication des circuits intégrés en 1958
ont permis non seulement de réduire l’encombrement et le coût, mais ont aussi inauguré
une ère nouvelle de croissance exponentielle en terme de puissance de calculs et des
capacités de stockage des informations traitées. Cette évolution au niveau des éléments
électroniques s’est répercutée sur l’organisation des instructions et la structure des
composants du système informatique et les modes d’utilisation.
Le traitement par lots d’instructions consacrées sur les premiers systèmes
informatiques, va être remplacé par la multiprogrammation, surtout avec l’apparition des
premiers mécanismes matériels de contrôle d’accès mémoires en lieu et place d’accès
invalides.
En 1962, au MIT, il a été mis au point des systèmes informatiques « à temps
partagé » qui nécessitait un ensemble des codes structurés pour gérer les accès au système.
Cela a consacré l’usage de ce qui va être désigné sous le nom de système d’exploitation.
En 1970, une première version du système d’exploitation UNIX voit le jour à
l’Université de Ber Kley en Californie, aux USA.
En 1979, Microsoft prend une licence UNIX et développe le système d’exploitation
XENIX qui sera commercialisé jusqu’en 1984.
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
8
A l’apparition du Personnal Computer de IBM, Microsoft développe le MS-DOS en
s’inspirant sur son premier système d’exploitation, propose la vente sous licence, à IBM
d’abord et puis à des nombreux autres fabricants des systèmes compatibles IBM.
Désormais, les applications informatiques étaient développées pour inter opérer.
Une version d’UNIX développée pour le PC verra le jour en 1987 sous le nom de
MINUX, dont une version écrit par LINUS TORVALDS en 1991, sera dénommée LINUX. Au
cours de cette même période, la société Microsoft sort successivement les versions de son
nouvel système d’exploitation Windows 1,2 et 3.0 en 1990, avec une interface graphique qui
va se populariser avec la version Windows 95.
L’émergence des réseaux locaux de communication et la baisse de leurs coûts d’accès
ont permis la création des réseaux des machines et conduits à l’explosion de l’Internet,
ainsi qu’au développement des applications distribuées dont les systèmes d’exploitation ont
dû intégrer des mécanismes de sécurisation et de partage des ressources.
Au cours de cette même période, apparaisse dans les milieux scientifiques, le
système distribution mutualisation des ressources sous le concept de Grid Computing.
En 1995, concomitamment à la sortie de Windows 95, Microsoft proposait le
système d’exploitation réseaux Windows NT, développé à partir de la première version
apparue sous le nom de « Windows Work Groups. »
La version NT deviendra par la suite Windows 2000 Serveur, avec comme nouveauté,
l’intégration d’un annuaire centralisé devenu la pièce maîtresse de toutes les stratégies de
partage et sécurisation des ressources.
L’architecture Windows 2000 Serveur va connaître des améliorations diverses au
cours de cette dernière décennie en intégrant notamment les technologies distribuées de
l’infrastructure.Net, le perfectionnement des rôles serveurs et surtout la technologie de
création des machines virtuelles, base de l’architecture Windows AZURE.
Pour faciliter l’exploitation et sécuriser les ressources réseaux de manière
distribuées, le système d’exploitation Windows 95, va aussi intégrer le noyau de Windows
2000 Serveur en prenant le nom de Windows XP, et plus tard Windows Vista qui sera
officiellement suivi de Windows 7, dès cette fin d’année 2009.
0.2 Problématique
Les applications informatiques sont des outils d’une extrême importance de nos
jours pour gérer la complexité des opérations de production et de commercialisation,
surtout lorsque l’entreprise possède plusieurs sites dont les activités sont fortement
interdépendantes. Cela nécessite la mise en place des réseaux locaux dans tous les sites
et divers équipements coûteux notamment les unités de traitement puissantes, de stockage
de grande capacité, les liaisons de transmission des données performantes, sans compter
les nombreuses ressources humaines spécialisées dans l’installation, la maintenance et
l’exploitation de l’ensemble du matériel constituant l’infrastructure informatique de
l’entreprise.
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
9
Pour chacune des unités de traitement, stockage et les liaisons de
télécommunication au niveau de ces différents sites, il faudrait avoir des sources d’énergie
fiabilisées par des onduleurs et stabilisateurs, y compris des sources alternatives telles que
les générateurs électriques ou les panneaux solaires.
En outre, l’entreprise devra acquérir les logiciels spécialisés pour la coordination et
l’automatisation de ses activités, mais aussi pour la protection contre diverses mal
vaillances et les pertes accidentelles des données.
Confrontées à plusieurs contraintes, les entreprises cherchent, à l’heure actuelle, les
moyens de faire des économies, mais également les moyens de croître en efficacité pour
faire face à la forte concurrence.
C’est dans ce cadre que nous avons perçu l’intérêt d’étudier la problématique du
développement des applications hautement distribuées sur la plate-forme Windows Azure,
ainsi que l’intégration de diverses ressources AZURE au sien des entreprises.
0.3. Objet et Intérêt de l’étude
Ce travail a consisté à :
Analyser l’architecture du Grid Computing par rapport à celle de Windows Azure
pour faire des recommandations judicieuses pour les entreprises, pour en tirer profit;
Faire une étude globale et approfondie de Windows Azure à la fois en tant que plate-
forme de développement, mais aussi en tant que composante de la stratégie Microsoft
Software + Services, en ce qui concerne l’exécution et l’hébergement des applications
hautement distribuées ;
Analyser et évaluer les problèmes de développement des applications hautement
distribuées et leur déploiement en entreprise, ainsi que les problèmes liés à la puissance de
traitement et aux capacités de stockage que rencontre en général les entreprises;
Ce travail se veut être un support de réflexion sur les possibilités d’améliorer la
performance des systèmes d’informations des entreprises face aux possibilités offertes par
les innovations des technologies web, et particulièrement la plate-forme Windows Azure. Il
pourra ainsi servir de support aux notions des technologies AZURE, tant pour les
développeurs professionnels d’applications hautement distribuées qu’aux étudiants.
0.4. Méthodologie
Compte tenu du caractère technique de notre travail qui relève de l’actualité et lié
aux incessantes évolutions technologiques, nous nous sommes essentiellement appuyés
sur la technique documentaire qui consiste à consulter les documents, les articles
spécialisés sur sites web des différents acteurs majeurs du Cloud Computing plus
particulièrement en ce qui concerne la plate-forme Windows Azure, également les ouvrages
ayant trait aux différents aspects de notre étude.
Par rapport aux préoccupations des entreprises, nous avons échangé avec plusieurs
professionnels : techniciens de réseaux informatiques et télécoms, ainsi que des
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
10
professeurs d’universités, développeurs d’applications et cadres d’entreprises. Nous avons
aussi bénéficié de nombreuses critiques et suggestions.
0.6. Subdivision du travail
Ce travail est structuré en trois chapitres mis à part l’Introduction Générale et la
Conclusion Générale, dont le premier chapitre porte sur les généralités de la plate-forme
Windows Azure, le second parle du développement des applications pour la plate-forme
Windows Azure ; et en fin le troisième sur l’intégration de la plate-forme Windows Azure et
ses services dans l’entreprise.
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
11
CHAP I : GENERALITES SUR LA PLATE-FORME WINDOWS AZURE
Le Cloud Computing est fonctionnellement une évolution des technologies du Grid
Computing apparues dans les années 1990 dans l’univers scientifique, afin de répondre aux
besoins de collaboration à travers des projets nécessitant d’énormes ressources en termes
de puissance de calcul et capacité de stockage pour divers traitements.
La communauté scientifique s’est employée à mobiliser divers centres des calculs
dispersés à travers le monde en organisant leurs ressources autours des périphériques
communs (les sondes spatiales, les télescopes,…) pour partager les traitements,
synchronisés des flots d’informations capturées et permettre l’accès aux résultats obtenus.
Avec la libéralisation de l’Internet et le développement du web, l’industrie
technologique, dans le but de développer les échanges économiques entre entreprises, dans
le contexte de mondialisation, a recourus aux technologies du Grid Computing en les
adaptant aux spécifications du web et aux contraintes d’entreprises.
Dans ce chapitre, nous synthétisons les notions sur le Grid Computing, pour mieux
saisir les notions sur le Cloud Computing. À titre de rappel, nous faisons allusion à
quelques notions de l’architecture client/serveur et la distribution des services, notamment
en rapport avec l’Intranet et l’Internet. Nous terminons cette section par le web service et
leur exploitation dans le contexte des entreprises, avant d’aborder les détails sur la plate-
forme WINDOWS AZURE.
I.1. Définition et Architecture du Grid Computing
I.1.1 Définition
Le Grid Computing1 est un système qui utilise des protocoles et interfaces ouverts et
standard dans le but de coordonner les ressources informatiques distribuées utilisées
simultanément à travers un réseau des systèmes informatiques, interagissant pour
résoudre un problème nécessitant une grande quantité de cycles de traitement ou l’accès à
des gros volumes de données.
I.1.2. Architecture du Grid Computing
Le Grid Computing est composé du réseau des ressources et d’une organisation pour
l’administration de ces ressources dite « Organisation Virtuelle (OV) »; ces éléments sont
décrits grâce à un modèle en couche dit « Architecture du Grid ».
I.2. Présentation du modèle en couche
L’architecture du Grid Computing comprend un ensemble des couches tel que
décrit sur la figure ci-après en rapport avec le modèle TCP/IP.
1 Mlle. KHELIFA Lydia Nadia, Thèse : Collaboration des Processus Métiers dans les Echanges inter-entreprises (B2B) basée sur le Web
Service Resource Framework (WSRF) du Grid, I.N.I., Février 2008, P102
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
12
a. Couche Fabric :
La couche Fabric fournit à un ensemble des ressources distribuées pour lesquelles
l’accès est négocié par le protocole du Grid. Une ressource peut faire allusion peut être à
une entité logique tel qu’un système distribué de fichier, un système de cluster, des
systèmes d’ordinateurs distribués, ou encore une entité physique. Cette dernière peut être
un instrument scientifique, tels que les télescopes et réseaux de sonde (Sensor networks),
qui fournit des données en temps réel directement transmises aux sites de calcul.
Cette couche implémente les mécanismes de gestion, dont le mécanisme
d’interrogation qui permet de découvrir les structures, états et capacités des ressources
distribuées et le mécanisme des contrôles de qualités des services délivrés (QOS).
b. Couche Connectivity :
La couche Connectivity définit le centre de la communication et les protocoles
d’authentification requis pour les transactions réseaux spécifiques au Grid. Les protocoles
de communication de cette couche permettent l’échange des données entre les ressources
de la couche Fabric.
La communication doit inclure les protocoles de transport, de routage et l’appellation
(namming) consistant à nommer chaque ressource.
c. Couche Ressource :
La couche Ressource construite sur la communication de la couche Connectivity et
les protocoles d’authentification afin de définir des protocoles pour sécuriser les
négociations, les initiations, la surveillance du contrôle et le payement des opérations
partagées sur les ressources individuelles.
d. Couche Collective :
Cette couche permet la coordination des multiples ressources. Elle comprend les
protocoles et services qui ne sont associés avec aucune ressource spécifique mais sont
plutôt globaux, par nature et capture les interactions à travers les collections de
ressources.
Application
Collective
Resource
Connectivity
Fabric
Application
Transport
Application Internet
Application Link
Application Figure 1
Application
TCP/IP
Application
Grid Computing
Application
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
13
e. Couche Application :
Cette dernière couche comprend les applications des utilisateurs qui opèrent dans
l’environnement d’une Organisation Virtuelle (OV).
Les applications Grid sont typiquement développées en utilisant des environnements de
développements permettant la définition des interfaces et des services d’ordonnancement
fournis par un médiateur au niveau de l’utilisateur.
Un exemple d’architecture Grid :
Nous illustrons dans le tableau suivant un exemple d’architecture Grid d’une
simulation multidisciplinaire décrite par I. Foster et Al avec ses différents composants2.
Couche
Collective
Application
Spécifique
Archiveur de données distribuées, coupleur de résolution
(Solver coupler)
Application
Générique
Découverte de ressource, système de surveillance, autorisation de
communauté, révocation de certificat
Couche Ressource Accès au calcul, accès aux données, accès aux informations
concernant la structure du système, état, performance
Couche Connectivity Communication (IP), découverte service (DNS), authentification,
autorisation et délégation
Couche Fabric Systèmes de stockage, ordinateurs, réseaux, catalogues
Tableau 1: Exemple d'une Architecture Grid.
I.3 Administration des ressources du Grid
L’administration des ressources du Grid n’est pas centralisée ; elle se fait par groupe
d’individus, d’organismes dispersés géographiquement suivant des règles qui régulent les
partages des ressources pour atteindre des objectifs communs. Chaque groupe d’individus
ou d’organisations ayant la charge d’administrer une partie des ressources du Grid est
appelé « organisation virtuelle » (OV).
I.4 Distribution des ressources dans l’Intranet et Internet
I.4.1. Distribution des ressources informatiques
La distribution des ressources Informatiques (services, applications, données,
puissance de calcul,…) comme le Grid Computing, s’appuie sur l’idée que chaque machine
serveur est soumise à des limites physiques en termes des performances qu’il s’agisse de la
vitesse du bus, la capacité des mémoires, du nombre des processeurs, ainsi que du nombre
des périphériques qu’elle peut exploiter.
Donc individuellement pour une application donnée, le serveur ne peut aller au-delà de sa
capacité maximale en termes de charge transactionnelle relative au nombre d’utilisateurs à
2 Mlle. KHELIFA Lydia Nadia, Thèse : Collaboration des Processus Métiers dans les Echanges inter-entreprises (B2B) basée sur le Web
Service Resource Framework (WSRF) du Grid, I.N.I., Février 2008, P105
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
14
mlecjm.cd
administration.mlecjm.cd
production.mlecjm.cd
.cd
finance.mlecjm.cd
comptabilité.mlecjm.cd
Appro.mlecjm.cd
Figure 2
servir, sans risquer d’offrir des services de performances médiocres ou tout simplement
rendre son application indisponible.
En plus, le serveur constitue un maillon de faiblesse unique ; car sa défaillance
entraîne l’échec de son application.
Pour offrir une qualité de service non trivial, on opte de configurer une application ou un
service sur plusieurs serveurs et cette configuration est appelée « Clustering » ou « serveur en
cluster » ou « encore serveur à répartition de charge ».
Les serveurs à répartition de charge répondent simultanément à plusieurs requêtes
de différents clients, ou à plusieurs requêtes du même client.
I.4.2. Distribution des ressources dans l’Intranet et Internet
Comme évoqué dans l’introduction générale, les logiciels distribués communiquent
entre eux par des connexions de nature physique qui relient les systèmes informatiques sur
lesquels ils sont répartis. Mais aussi et surtout grâce à l’organisation logique qui permet les
échanges entre les systèmes distribués.
Les systèmes informatiques qui forment une distribution des ressources peuvent
être gérer de manière privée par rapport à une organisation spécifique à travers une
connexion Internet.
Lorsque l’exploitation est privée grâce à un réseau privé ou publique, on parlera
d’un Intranet. Et dans le second cas, il s’agit d’une distribution via Internet ou publique.
I.4.3. Contrôle et référencement d’une ressource distribuée
Les ressources distribuées sont gérées par des systèmes informatiques hétérogènes
(différents systèmes d’exploitation et différentes capacités et mode de traitement
d’informations) géographiquement plus ou moins éloignés et dans des configurations
variées. Pour rendre ces systèmes interopérables, on recourt à l’architecture du système de
noms de domaines (DNS), grâce auquel des ressources distribuées peuvent être identifiées
entant qu’entité bien distincte et avec une dénomination définie, comme dans le cadre des
Organisations Virtuelles du Grid Computing.
Le système de nom des domaines
est une structure en arbre inversé qui
permet de désigner de manière unique et
fonctionnelle les systèmes informatique en
réseau, illustrée par la figure 2.
Par rapport à un ensemble des
ressources gérées en tant qu’entité bien
précise, le système DNS s’appui sur un
système d’information chargé de contrôler
et permettre l’accès à ces ressources
grâce à un annuaire (répertoriant toute les
ressources distribuées).
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
15
L’annuaire qui peut être installé sur un Contrôleur de domaines pour des ressources d’un
Intranet, tout comme, il peut être installé les ressources Web publique (Annuaire UDDI3).
I.4.4. Interaction entre serveurs de noms (DNS serveur) et contrôleur de domaine
Le serveur DNS et le contrôleur de domaine collaborent pour permettre l’accès aux
ressources réseaux. Généralement le contrôleur de domaine intègre un ensemble des
services DNS avec une copie en cache de la base de données DNS4.
Les services DNS localisés sur le contrôleur de domaine appelés Solveur, utilisent
une copie des ressources réseaux en fonction de l’adresse IP. A la demande des clients
distants, le solveur fournit les coordonnées de la ressource par rapport à la liste des
ressources copiées de l’annuaire en protégeant leurs emplacements physiques sur le
réseau.
I.4.5 Les ressources sous nom de domaine et contrôleur de domaine
Chaque nom de domaine est attaché à un contrôleur de domaine ; ce dernier
organise l’exploitation de diverses ressources grâce à un système d’annuaire.
Parmi les ressources contrôlées figurent les rôles serveurs d’applications dont les
applications de Base de données, les applications web (rôle du serveur web), messagerie,
téléphonie IP,…
Il faut aussi mentionner le contrôle des périphériques de stockage le NAS5 et le
réseau SAN (Storage Area Network).
3UDDI (Universal Description Discovery and Integration) est un annuaire de services fondé sur XML et plus
particulièrement destiné aux services Web. 4 JJP Kayembe, Téléphonie IP d’entreprise avec Microsoft Office 2007, Kin Prographics, Kinshasa, 2007
5NAS (Network Attached Storage) est une unité autonome, reliée à un réseau dont la principale fonction est le stockage de données en
un gros volume centralisé pour des clients-réseau hétérogènes.
Figure 3
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
16
Les différents serveurs peuvent être déployés sur des machines serveurs physiques et/ou
sur les machines serveurs virtuelles.
Le concept de virtualisation fait référence à l’ensemble de techniques matérielles
et logicielles qui permettent d’exécuter plusieurs systèmes d’exploitations indépendamment
les uns des autres et de manière simultanée, sur une seule machine. Ainsi, un système
d’exploitation dit « hôte » est installé sur une machine et héberge des systèmes
d’exploitation « invité » ou « une machine virtuelles ».
I.4.6 La localisation des ressources distribuées
La localisation des ressources distribuées s’effectue grâce aux annuaires gérés par
les différents contrôleurs de domaines par le biais des serveurs de noms de domaines.
Le système DNS fait le routage des requêtes provenant des utilisateurs, individus
ou systèmes vers les rôles administrés par le contrôleur de domaine. Pour de raisons
pratiques l’accès aux ressources distribuées se fait par le biais du protocole « http » à
travers les pages web (grâce à un navigateur web) ou encore le « service web » (web
service).
Le service web est un programme informatique permettant la communication et
l’échange de données entre les applications et les systèmes hétérogènes dans des
environnements distribués à l’aide des fichiers au format XML. Il s’agit donc d’un
ensemble de fonctionnalités exposées sur internet ou sur un intranet, par et pour des
applications ou machines sans intervention humaine et en temps réel.
Chaque ressource distribuée est identifiée par rapport au système de noms de
domaine grâce à une adresse appelée « URL » (Uniform Ressource Locator).
I.5 Le système de stockage des données et des applications
Le stockage des données distribuées est géré par différents rôles serveur, selon qu’il
s’agisse des fichiers ou des éléments d’une base de données. Mais peut exploiter des
ressources matérielles semblables telles que le NAS ou le réseau SAN en fonction du niveau
de sécurité et de disponibilité voulue.
Pour des raisons des performances et de disponibilité, les applications sont
stockées sur des machines virtuelles (MV) qui s’exécutent à la demande en utilisant des
ressources distribuées ou d’autres applications.
L’accès aux données ou aux applications cache la complexité des systèmes de
stockage, grâce au « référencement par adresse » enregistrée dans des annuaires,
lesquelles adresses constituent des pointeurs orientés vers des localisations physiques
des systèmes de stockages.
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
17
I.6 Le Grid Computing et le web
Le développement du Grid Computing s’est fait indépendamment de l’évolution des
technologies internet et du web en particulier.
La popularité du web dans les applications d’entreprises et par rapport aux
configurations matérielles adoptées dans les entreprises et organisations rend
indispensables son exploitation par rapport aux ressources distribuées.
Néanmoins, les technologies web ont était développées dans le but de partager des
informations à travers des pages web et non pas dans le but d’organiser les interactions
pour accomplir des transactions aussi critique que celles du monde des affaires.
De ce fait, elles accusent des limites non les moindres, par exemple un serveur
web n’a pas été conçu pour gérer un processus à travers des interactions successives
comprenant plusieurs étapes au cours d’une durée plus ou moins longue.
Car en effet, les serveurs web n’ont pas été dotés de capacités d’historier des états d’une
transaction à plusieurs étapes suivant une logique donnée.
Par contre, le Grid Computing, a été conçu spécialement pour assurer la
collaboration entre différents systèmes impliqués dans des longs traitements de données
pouvant nécessiter plusieurs étapes pour aboutir au résultat.
Pour assurer aux entreprises les moyens d’interagir dans le contexte de business-to-
business (B2B), une évolution des spécifications du web a été nécessaire, notamment
l’abandon du HTML et l’adoption du XHTML, le développement d’un ensemble des
protocoles (Framework) pour l’interaction entre les systèmes hétérogènes par le biais des
services web.
Au cours de la première décennie du 3ème millénaire, les acteurs de l’industrie
technologie ont développé plusieurs protocoles pour rapprocher les technologie du Grid
Computing et les technologies web dans le soucis de favoriser les échanges
interentreprises (B2B).
Ainsi, est né le concept du Cloud Computing, intégrant les notions du web et du
Grid Computing.
I.7 Généralités sur le Cloud Computing de Microsoft
I.7.1. Définition et présentation du Cloud Computing de Microsoft
Windows Azure est un ensemble d’infrastructures pilotées par des systèmes
d’exploitation unifiés délivrant un ensemble des services à des myriades des systèmes
informatiques grâce à l’internet.
Il a été présenté officiellement pour la première fois par Microsoft lors de sa plénière
de la Professional Developper Conférence 2008 tenue le 27 Octobre 2008 dernier à Los
Angeles, Californie.
Il constitue un système informatique distribué dont les ressources sont connectés
les unes et les autres par des mécanismes logiques et le support de l’internet, en offrant
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
18
une plate forme d’exécution des applications classiques et web, ainsi que des APIs6 et
des outils pour le développement par les utilisateurs de leurs propres applications. Cet
ensemble des fonctionnalités est dit « Cloud Computing ».
Technologiquement parlant, l’infrastructure Windows Azure est battue sur
l’architecture de Windows 2008 serveur, s’exécutant sur plusieurs machines serveurs
regroupés dans le centre de données construits par Microsoft actuellement reparties sur
deux sites aux Etats-Unis à Quincy (Etat de Washington) et à San Antonio, au terme du
développement de Windows Azure, il est prévu une implémentation des centres des
données sur différents continents (Europe, Asie, Afrique, …) notamment afin de garantir le
respect de différents législations nationales concernant le stockage des données outre les
contraintes d’ordre techniques garantissant l’accessibilité et les performance idéales.
Les centres de données de Microsoft sont constitués des conteneurs à serveurs
prés-installés par des fournisseurs en tant que module près à l’emploi.
Fonctionnellement Windows Azure est architecturé suivant un modèle en 3 couches
principales, à savoir la couche Fabric, Compute et Storage, (Cfr figure 5)
I.7.2.Architectuture du Cloud Computing de Microsoft : WINDOWS AZURE
Couche Fabric :
La couche Windows Azure constitue la plate forme unifiant l’ensemble des
ressources en cachant la complexité de l’infrastructure des centres de données, en
constituant un système unique de calcul (d’exécution).
Couche Compute :
La couche Compute constitue le centre d’exécution des applications
préalablement stockées dans la couche Storage dans des VM.
6 API (Application Programming Interface, en français Interface de Programmation) est un ensemble de fonctions, procédures ou classes
mises à la disposition des programmes informatiques par une bibliothèque logicielle, un système d'exploitation ou un service pour faciliter
l’interopérabilité entre les composants logiciels.
Figure 4
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
19
Chaque instance d’application s’exécute dans une VM, elle est accessible
par rapport aux utilisateurs par le protocole http. Un répartiteur de charge (Load
Balancer) choisit la machine ou l’ensemble des machines pouvant être mobilisée
pour l’exécution de l’application.
Sur chaque VM est configuré le rôle serveur IIS7 hébergé dans AZURE qui charge
les composants d’une application de type web et les exécute en tant qu’instance de
l’application et accessible par le navigateur web à travers le protocole HTTP.
Pour des applications de type Worker role c’est-à-dire des applications
exécutant une série des commandes en bloc ou module (batch) (traitement par
lot), le système Windows Azure à travers la couche Compute exécute les mêmes
opérations que les applications de type Worker role. Autrement dit chaque
instance d’application est exécutée par une VM.
Couche Storage :
Cette couche sert à entreposer les données de types différentes, sa structure
n’est pas basée sur une base de données relationnelle, cela dans le but de
permettre aux applications implémentées sur Windows Azure d’accéder aux
données lors de leurs exécutions. Ainsi ces données sont stockées sous formes des
blobs (Binary Large Objects), piles d’éléments (Queue), des tableaux (Table).
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
I.8 Plate-forme Windows AZURE et ses services
Plate-forme et service Windows AZURE
Windows AZURE
Système d’exploitation serveur
dans le nuage (Os on the Cloud)
Ensemble des services en ligne :
- Live Services
- Live Framework
- Live Services Existing APIs
Réseau des serveurs Windows 2008
Server (Microsoft Data center)
Outils et services d’administration, de
maintenance et de virtualisation des
applications
Environnement de déploiement
d’applications
(Hosting Environment )
Noyau
Bibliothèques
Pilotes
Windows 2008 Server
.Net
Fabric Windows Azure (Pilote ou agent windows Azure)
Langages de
codage :
VB.Net, C#, ASP.net,
XML, XAML, PHP,
Java, Flash, Ruby,
Perl, Adobe Air,
Python, Curl,
Open Sky, COBOL,…
Hosted Service
Upload de deux packages : - Package Applicatif (fichiers.cspk) - Package Paramétrage (fichiers.cscf)
Types applications :
- Worker Role
- Web Role
- Mesh application
Fabric Controller (Contrôleur central)
Création des instances
.csdef : Fichier de définition
.csfg : Fichier de configuration,…
Live services
.Net Services
SQL Services
MS Dynamics CRM Services
MS SharePoint Service
Live Mesh Service
Environnement de développement
(Azure Services Developer Portal)
- Developpement Fabirc
- Developpement Storage
Protocoles
HTTP, REST, SOAP,…
Capacité de stockage à la demande
(Windows Azure Storage Account)
SQL Server 2008
SAN/NAS
ADO.Net, Linq, ...
Visual Studio
2008 - 2010
MS Expression Studio
Live Framework
SDK Framework
Navigateur Internet :
IE, Firefox, Safari,…
Compte
Données + Applications
Figure 5
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
21
I.8.1 Plate-Forme d’exécution: Windows AZURE
Windows Azure est un système d’exploitation pour le Cloud Computing hébergé
dans les Datacenters de Microsoft accessible via Internet. Par analogie avec les systèmes
d’exploitation pour les ordinateurs personnels (PC), Windows Azure est pour les
Datacenters ce qu’est par exemple Windows Vista pour les PC de bureau.
C’est un système d’exploitation capable de piloter des serveurs, des commutateurs,
des baies de stockage, etc., répartis dans des Datacenters de la même manière que Vista
pilote les composants (disque dur, mémoire vive, etc.) et les périphériques (écran, clavier,
souris, etc.) d’un PC de bureau.
L’architecture de Windows Azure est construite sur le noyau Windows Server
2008 et Hyper V de Microsoft, pour apporter une infrastructure hautement disponible et
adaptée à la montée en charge.
Un agent Windows Azure (un peu l’équivalent des pilotes de périphériques sur un PC
de bureau) est installé par Microsoft sur tous les serveurs installés dans ses Datacenters.
Tous ces agents dialoguent en permanence avec un contrôleur central (un Fabric
Controller) piloté par Windows Azure qui gère les ressources de calcul et de stockage. Ce
chef d’orchestre fait abstraction des matériels installés dans les Datacenters et fournit aux
applications un système de fichiers virtuels, des droits d’accès, un ordonnanceur de tâches,
etc. Sur ceux, nous pouvons dire que les applications Windows Azure s’exécutent sur un
serveur virtuel sans se soucier du matériel utilisé.
Une application a typiquement les instances en parallèles, pour chaque application
courante une copie de tout ou partiellement du code de l'application (instance) est allouée
à sa machine personnelle virtuelle (VM) pour l’exécution. Ces VMs tournent à 64 bits sous
les serveurs Windows 2008 Serveur pourvus d’un hyperviseur spécifiquement conçu pour
l'usage dans le nuage.
Figure 6
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
22
I.8.2. Capacité de stockage à la demande : Windows Azure Storage
Microsoft a construit des centres de données en vue de fournir une offre
d’hébergement à la demande pour les applications et les données. Actuellement, deux
centres de données sont situés sur le territoire américain et sont opérationnels, les centres
de données Microsoft ont fait l’objet de recherche et développement en vue d’optimiser leur
fonctionnement. Les futurs centres de données seront architecturés pour permettre une
extensibilité par l’ajout de containers préconstruits par des fournisseurs. Il ne reste qu’à
raccorder les sources d’énergie, les fluides et les réseaux pour que toutes les ressources du
container deviennent disponibles (Cfr figure 7).
a. Hébergement d’application
Il ne s’agit pas d’une simple mise à disposition de machines équipées d’un système
d’exploitation Windows comme les offres que l’on trouve actuellement sur le marché. Vous
n’avez pas directement accès au système d’exploitation sous-jacent mais à des processeurs
exécutant une « machine virtuelle »7. À terme du développement de la plate-forme,
l’hébergement supportera une gamme des technologies et des langages non Microsoft.
L’hébergement Azure fournira un ensemble des mécanismes permettant de supporter
la montée en charge fonctionnant à la demande. Il est ainsi possible d’obtenir et d’affecter
des processeurs supplémentaires si la montée en charge de votre application le nécessite
(on parle alors de création de nouvelles instances d’application) :
- soit de manière continue (cas d’un site web dont le besoin en puissance croit
proportionnellement au nombre d’utilisateurs enregistrés) ;
- soit de manière ponctuelle ou exceptionnelle (cas d’un site de vente en ligne qui a
besoin d’un surplus de puissance lors des fêtes de fin d’année, de la fête des
mères,…).
Tout cela se paramètre en ligne via le site d’administration de votre hébergement.
Actuellement, Windows Azure supporte deux types d’instances d’application :
« Web role instance » : application de type web accessible directement par un
navigateur web à travers un IIS7 hébergé dans Azure.
7 Nicolas CLERC, Windows Azure : .Net Services - SQL Services - Live Services Présentation technologique, TEKIGO expertise
technologique, décembre 2008
Figure 7
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
23
« Worker role instance » :
application s’exécutant en tâche
de fond non accessible
directement. Elles ne sont pas
accessibles directement mais
uniquement via le bus de service
(cf. Bus et messagerie applicative
: Service Bus). En cela, ce type
d’instance est comparable aux «
services NT » de Windows ou des
« daemons » sous Unix.
Azure vous permet d’héberger deux versions de l’application à savoir : production et
test. Chacune est accessible via sa propre adresse URL, l’adresse grand public
(http://monapplication.cloudapp.net/) restant affectée à la version en production. À tout
moment, il est possible d’intervertir les deux versions (passage en production de la version
de test, retour en test de la version de production).
b. Hébergement de données
Ces centres de données fournissent aussi de l’espace de stockage (Azure Storage).
Sur le même principe que l’hébergement applicatif, l’offre d’hébergement des données ne
repose pas sur la commercialisation d’espace disque brut ou de base de données. Ce service
est capable de stocker des données binaires (Blob), des tableaux (Table) ou des piles
d’éléments (Queue). Les éléments stockés sont caractérisés par des propriétés qui
permettent d’y accéder par l’intermédiaire d’une API spécifique. La gestion de ce stockage
ne repose pas sur SQL Server, ni sur des fichiers traditionnels, mais sur une couche
logicielle spécifique et optimisée pour un fonctionnement « dans le nuage ». Ce stockage
gère des fonctionnalités de réplication et de sécurisation automatique des données. Les
données peuvent être répliquées en des lieux géographiquement distincts et leurs accès
sont optimisés (répartition de charge, partitionnement sur plusieurs disques, optimisation
géographique, …)
I.8.3. Ensemble des services en lignes, Environnement et outils de développement des
applications hébergées
Pour répondre correctement aux besoins métier, Microsoft, contrairement à la
plupart des plateformes « Cloud » actuelles, donne avec la plate forme Windows aux
développeurs la capacité de construire des applications tout en exploitant les technologies
et outils existant, tels que l’ environnement unifié de développement dit « Live Framework »
à travers un portail en ligne accessible grâce au protocole http et un kit de développement
(Windows Azure SDK, pour Software Development Kit) associés à un certains nombre d’
APIs nécessaire au développement et au déploiement d’applications (services) flexibles sur
Windows Azure, ainsi qu’un pack d’outils baptisé Windows Azure For Microsoft Visual
Studio permettant de développer des applications dits « on the Cloud » tournant sur Azure
dans Microsoft Visual_2008/2010, nous donnerons plus des détails sur ce point dans le
chapitre suivant.
Figure 8
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
24
Figure 9
Les technologies orientées services, employées conjointement avec d’autres
technologies comme la virtualisation, apportent d’importants bénéfices informatiques aux
entreprises, ainsi qu’aux particuliers, avec un ensemble de logiciels fournis sous la forme
d’abonnement ; ces logiciels sont hébergés et exploités par Microsoft et commercialisées à
travers un réseau des partenaires pour offrir un ensemble des services (Software as a
Service) mis a leurs disposition, à savoir :
1) .Net Service
Pour Microsoft, la possibilité d’héberger des applications et des données est la
condition nécessaire mais pas suffisante pour proposer une offre de Cloud Computing. Une
offre de services vient donc compléter l’offre d’hébergement à savoir : les .NET Services8
apportant des fonctionnalités de services d’infrastructure logicielle. Ils sont destinés à
couvrir des domaines fonctionnels communs et nécessaires à la quasi-totalité des
applications informatiques telles que :
Authentification et sécurisation
Communication
Workflow
Les fonctionnalités .Net Services sont accessibles par une API .Net, mais aussi de
manière ouverte via l’utilisation des protocoles REST, SOAP, ou par des APIs pour Java,
PHP, Ruby,... Des préversions des kits de développement (SDK) sont déjà disponibles pour
Java et Ruby.
8 Grégory Renard - Wygwam, Azure Services Platform, la Plateforme Online de Microsoft : Une nouvelle ère, Wygwam, 2009
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
25
a. Sécurité et authentification : Access Control Service
Ce service permet d’authentifier
et d’accréditer un utilisateur (humain ou
logiciel). Cette accréditation est
formalisée par l’obtention d’un jeton
d’autorisation (Token) associé à un
ensemble d’informations ou de demandes
(claims) permettant à une application de
déterminer les autorisations effectives
accordées à ce jeton. En outre, ce service
permet de fédérer différents systèmes
d’authentifications en une vue unique
(Single Sign On) utilisable par les
applications (le jeton). Nativement, il est
bien entendu possible d’utiliser les
LiveID (anciennement Passport), des certificats X509, mais le système est aussi
interopérable (OpenID, SAML) ou intégrable à des systèmes d’authentification d’entreprise
(Active Directory, annuaire LDAP) grâce à l’utilisation de Secure Token Service (STS)
spécifiques.
b. Bus et messagerie application : Service Bus
Hébergé ou non dans les centres de données Azure, les applications auront besoin
de communiquer entre elles, avec des services ou d’exposer des fonctionnalités – qui sont :
- hébergés dans Azure,
- hébergés au sein de votre système
d’information,
- hébergés par d’autres entités
(partenaires, fournisseurs, clients…).
Elles auront éventuellement à
exposer des services :
- hébergés par Azure,
- hébergés dans votre système
d’information mais accessibles via
Azure.
Le « Service Bus » est un bus logiciel sur lequel des points de connexion
(endpoints) permettent de connecter soit des services, soit des clients. Chaque point de
connexion est caractérisé par une URI qui l’identifie de manière unique dans Azure. Ce bus
logiciel joue aussi le rôle de relais de messages. Cette fonctionnalité permet à un service
applicatif, hébergé dans votre système d’information, d’être exposé au monde extérieur par
l’intermédiaire d’Azure :
Votre service ouvre une connexion sortante en direction du service bus (ce qui
permet de traverser les pare-feux, les routeurs, et de supporter les translations
d’adresses IP sans problèmes). Ensuite il s’authentifie comme un service à
Figure 9
Figure 10
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
26
exposer. Un point de connexion est créé dans Azure. Il est maintenant exposé, et
Azure relaie vers lui les futures connexions et messages entrants ;
une application cliente se connecte sur le point de connexion ouvert dans le
nuage, et envoie un message. Le service bus relaie le message vers le service par
l’intermédiaire de la connexion du service maintenue ouverte.
Bien entendu, le service bus est sécurisé : le service exposé, l’application cliente et
l’utilisateur sont tous trois authentifiés. De plus, ce système de relais permet de masquer la
localisation réelle de votre service à des attaquants potentiels car seule l’Uri Azure exposée
est connue. Ce service est accessible en SOAP (1.1, 1.2 et 2.0) encapsulé dans un protocole
HTTP et supporte les entêtes WS-Security pour l’authentification et la sécurisation. Dans le
cas d’une utilisation à partir de .NET, la couche cliente à privilégier est Windows
Communication Foundation (WCF).
c. Workflow Service
Dans le contexte d’une architecture
orienté services (SOA, S+S – Sofware + Services),
les applications sont en fait structurées autour
d’un processus métier (enchainement de tâches
fonctionnelles) qui le plus souvent font appel à
des services fonctionnels. Dans un tel contexte, la
capacité à modéliser de manière simple un tel
processus (par assemblage de taches
élémentaires ou de taches d’appel à des services à
l’aide d’outils adapté) est d’une grande aide.
Workflow Services permet l’hébergement et
l’exécution de vos processus (workflow)
directement au sein d’Azure. Bien entendu, Workflow Services est basé sur la brique
standard du framework .NET 3.5 : Windows Workflow Foundation (WF). Un ensemble
d’activité adaptée à cet environnement est fourni, et directement intégré dans Visual Studio
2008. Les workflows sont souvent des processus longs (de quelques secondes à parfois
plusieurs jours), où les fonctionnalités de persistance, de reprise et de traçabilité sont
critiques. Leur hébergement à l’aide de Workflow Services permet de bénéficier de la fiabilité
d’Azure, d’une puissance de calcul disponible à la demande en cas de besoin.
2) SQL Service
Contrairement à Azure Storage, ces
services reposent sur SQL Server 2008 (mais de
manière masquée). Ils exposent leurs
fonctionnalités uniquement à travers des APIs
spécifiques, via les protocoles Soap ou REST
(indépendantes des langages et des technologies).
La gestion physique du stockage, son optimisation
et sa maintenance ne sont plus à la charge du
client, mais automatiquement pris en compte par
Figure 11
Figure 12
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
27
les services et optimisés pour Azure. À l’heure actuelle, seules les fonctionnalités de
stockage et de requêtage de données sont disponibles. Microsoft a annoncé que des
fonctionnalités de reporting, d’analyse de données, etc. viendraient compléter l’offre
ultérieurement.
a. SQL Data Services
SQL Data Services est donc le seul
service actuellement disponible au sein de l’offre
SQL Services. Il s’agit d’un service de stockage
et de requêtage de données. Il est utilisable à
travers les APIs standardisées (Soap,
Rest/Atom), mais aussi par l’intermédiaire de
Linq (plateforme .NET).
Contrairement à ce qu’on pourrait
penser, SQL Data Services gère les données de
manière hiérarchique et non pas relationnelle.
De plus, il n’y a pas de structure (ou schéma de base de données) préalablement définie car
cette caractérisation des données se fait au moment de leur ajout ou de leur modification.
Chaque centre de données est découpé en Authority. Les Authority définissent des
emplacements géolocalisés de stockage. Chaque Autority est subdivisée en Container, qui
contiennent des Entity, elles mêmes composée de Property qui sont caractérisées par un
nom, un type et une valeur.
Ce choix est justifié par le fait que SQL Data Services n’a pas pour but de fournir un
simple hébergement fiable de bases de données relationnelles, car les hébergeurs
traditionnels le font très bien, mais de fournir un service de stockage/requêtage de données
optimisé pour un environnement de type Cloud Computing mondial. De fait, les
mécanismes d’optimisation automatique, de répartition de charge, de duplication et de
sécurisation des données sont fondamentalement différents de ceux implémentés au sein
d’une base de données relationnelle. Dans SQL Data Services, ces mécanismes sont
implémentés au niveau du container.
3) Live Services
Les Live Services apportent aux utilisateurs une façon de cohérence de stocker,
partager et synchroniser des documents, photos, fichiers et autres informations à travers
leurs PCs, téléphones, sites Web et applications PC.
Les couches trois couches fonctionnelle de l’architecture d’Azure évoquées
précédemment sont orientées infrastructure. Elles fournissent des services matériels ou
logiciels de bas niveau nécessaires à l’exécution d’une application. A contrario, les Live
Services sont une couche logicielle de haut niveau permettant de manipuler les différents
éléments intervenant dans l’utilisation d’une application : les utilisateurs et les données qui
y sont associées (identités, contacts, amis, périphériques, etc.).
Petit à petit, l’ensemble des applications et services actuellement disponibles sous la
marque Live (Hotmail, Messenger, Calendar, Contact, Search, Maps/Earth…) sont intégrées
Figure 13
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
28
dans l’offre Live Services, fournissant ainsi un ensemble techniquement homogène de
fonctionnalités de haut niveau directement réutilisables, ou intégrables dans d’autres
applications, et ceci toujours de manière complètement interopérable. L’accessibilité à ces
informations se fait via une couche logicielle spécifique : le Live Framework.
a. Live Operating Environment
Le cœur du Live Framework
est constitué du Live Operating
Environment (LOE en abrégé). Ce
LOE est hébergé dans Azure et
repose sur le protocole HTTP. Il est
utilisé par les applications
accédants aux Live Services.
Une des caractéristiques
essentielles du LOE est sa
capacité à s’exporter sur le poste
client pour y intégrer des
fonctionnalités ou des applications
issue d’Azure. Ces possibilités sont
offertes au sein d’un ensemble de
machines et d’utilisateurs
regroupés dans un « Mesh».
Tous les postes clients basés sur Windows XP, Vista, Windows Mobile 6 ou MacOS X
sont supportés grâce à l’installation d’une simple couche logicielle pilotant cette intégration.
Le LOE possède aussi un bureau web utilisable à partir de n’importe qu’elle
navigateur web (le Live Desktop).
NB : Les services Microsoft SharePoint et Dynamics CRM pour la gestion de contenus,
collaborations et développement rapide de solutions entreprise dans le Cloud, ne sont
pas encore exploitable à ce stade.
Figure 14
Figure 15
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
29
I.8.4 Outils et services d’administration, de maintenance et de virtualisation des
applications
Parmi les autres points fondamentaux, l’accès à l’environnement d’exécution et aux
Services. Un soin particulier a été apporté à l’interopérabilité et à la sécurité de sorte qu’un
utilisateur situé dans le système d’informations pourra accéder à un service dans les
nuages de façon transparente, et ce, tout en assurant les équipes de production « à
demeure » d’un contrôle total des informations d’identité exposées à l’extérieur de
l’entreprise. Et vice versa pour des services de l’entreprise exposés vers des partenaires.
Ces concepts dits de Fédération d’identité sont intégrés à la fois au niveau des offres
dans les nuages Microsoft Online et à la plate-forme de services Azure, mais aussi au
niveau des logiciels serveurs Microsoft situées en entreprise avec des extensions à
l’annuaire Active Directory telles que Geneva Server ou l’extension « Microsoft Services
Connector » pour Active Directory. Toujours du côté des innovations, Windows Azure
dispose d’une architecture garantissant une montée en charge à l’échelle de l’internet, en
s’appuyant sur les capacités de Virtualisation proposées par la plate-forme Windows Server
2008 et la technologie Hyper-V. En injectant les contraintes du Cloud Computing à ses
produits, c’est ainsi l’ensemble de sa plate-forme applicative que Microsoft fait évoluer :
Windows Server, Active Directory, .Net, SQL Server…. autant d’innovations produits pour
les nuages qui bénéficient donc en retour aux clients finaux, notamment aux développeurs
et aux équipes de production à demeure.
I.9 Le Cloud Computing Windows Azure et le Grid Computing
Le Cloud Computing Windows Azure en tant qu’ensemble des technologies
distribuées au sein des Centres de données de Microsoft, est structuré autour de 3 couches
fonctionnelles alors que dans l’architecture du Grid Computing, nous avons 4 couches
différentes, mais dans les deux structures, nous notons l’existence de la couche Frabric.
Dans l’architecture de Windows Azure, la couche assure l’interconnexion des
différents systèmes informatiques des Centres de données et unifie l’ensemble de la
puissance de traitement et capacité de stockage. Tandis que la couche Fabric du Grid
Computing regroupe certaines fonctions de la couche correspondante dans l’architecture
Windows Azure. Il s’agit notamment du contrôle d’accès aux ressources dont les
périphériques et à la puissance de calcul d’un ensemble des machines.
La comparaison ne peut être entre les deux architecture ne peut être étendue, car les
deux architectures n’ont pas été élaborée sur des critères et indicateurs identiques.
L’architecture du Grid Computing a été élaborée sur une analogie avec les protocoles du
modèle TCP/IP. Par contre, celle de Windows Azure l’a été pour faciliter la présentation des
fonctions. Néanmoins, l’analyse approfondie de ces deux architectures permet d’établir les
convergences ci-après :
Les deux architectures permettent l’exécution des applications et le stockage des
données. Elles possèdent des ressources distribuées dont une partie peut être allouée à une
organisation spécifique dans le but de permettre à leur membre d’y accéder d’après une
réglementation qui leur assure l’accomplissement des objectifs communs.
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
30
Ce pendant, le Grid Computing est une architecture qui a été élaborée pour des
communautés bien précises où les règles des collaborations devraient être stables. Par
contre le Cloud Computing est destiné à des organisations diverses, dont les objectifs
d’exploitation ne sont pas les mêmes ; en utilisant le support de l’Internet, chaque
organisation s’adressera à des milliers voir des millions d’utilisateurs, tout en organisant
des transactions sécurisées pour ses membres restreints.
Si le Grid Computing est une plate-forme d’exécution des quantités énormes des
traitements, autant que le Cloud Computing, son architecture technologique n’était pas
conçue pour une exploitation en masse comparativement au Cloud Computing. Cela aussi
serait dû aux contraintes technologiques des années 1990, dont les performances des
calculateurs, des périphériques d’accès aux ressources (terminaux) et les capacités des
réseaux télécoms pour le transport et la distribution des données.
La problématique de développement des applications hautement distribuées sur la plate-forme Windows Azure
31
CHAP II : DEVELOPPEMENT DES APPLICATIONS HEBERGEES SUR LA PLATE-
FORME WINDOWS AZURE
Au cours des dix dernières années, le modèle informatique a évolué de l’ordinateur
central à un environnement client/serveur hautement distribué.
Aujourd’hui, la plate-forme Windows Azure est une réponse à un ensemble des
préoccupations formulées par les entreprises et les professionnelles face aux difficultés et
impasses des technologies classiques en matière de développement, de déploiement et de
gestion des ressources IT d’entreprises.
En ce qui concerne le développement, malgré la performance et la qualité des
logicielles applicatives actuelles, les professionnels font face aux besoins d’intégration des
processus au sien des entreprises de manière à automatiser les échanges des données entre
différents modules d’entreprises, surtout lorsqu’ils repartis sur plusieurs sites plus ou
moins lointains. Cet automatisme des processus, n’est qu’une étape d’intégration
interentreprises pour le besoin du e-commerce en général et du B2B9 en particulier.
En dépit de l’adoption récente des standards basés sur les web services, les difficultés et les
défis d’interactions B2B ne peuvent être résolues par une approche des technologies
classique de développement des applications d’entreprises.
Dans ce chapitre, nous présentons l’environnement et les outils de développement
des applications sur la plate-forme Windows Azure. Nous décrivons également les types
d’applications à développer sur la plate-forme Windows Azure, ainsi que les modèles de
développement y afférent.
II.1 Environnement et outils de développement des applications Windows Azure
Microsoft offre pour le développement des applications Windows Azure dites aussi
« On the Cloud » comme environnement de développement le « .Net », à travers le .Net
Framework. Il fournit aussi un Kit de développement (Windows Azure SDK, Software
Development Kit) et un pack d’outil baptisé Azure Tools for Microsoft Visual Studio
permettant de créer des applications dans Visual Studio 2008 SP1. Il donne aussi de
développer des applications en ligne à travers un portail (Azure Services Developer Portal).
Le Framework.Net, comprend deux composants principaux : le Common Language
Runtime et la Bibliothèque de classes .Net Framework. Le Common Language Runtime ou
CLR, comprend une vaste gamme de fonctions auxquelles les programmes peuvent accéder
durant l’exécution. La bibliothèque de classes est une collection complète orientée objet, de
types réalisables que nous pouvons exploiter pour développer des applications
traditionnelles telles que les applications à ligne de commende ou à interface graphique
utilisateur (GUI, Graphical User Interface).
Pour les développeurs, la programmation d’une application Azure est sensiblement
identique à la programmation d’une application Windows classique. Ils peuvent
programmer avec le langage C#, Visual Basic.Net en utilisant Visual Studio, sans pour
autant se soucier de la plate-forme d’exécution (Windows, Mac OS,…). A terme tous les
9 Une application B2B est par définition, est celle qui utilise un ensemble des techniques matérielles et logicielles permettant à deux
organisations ayant des relations formalisées par un acte juridique, d’effectuer de manière interactive des opérations liées à des
« processus métiers » conjoints.
La problématique de développement des applications hautement distribuées sur la plate-forme Windows Azure
32
langages opérationnels avec le Framework .Net (Java, Python, PHP, Ruby, etc.) pourront
être utilisés. Microsoft appelle également de ses vœux le développement d’un plug-
in Eclipse permettant de créer une application Azure.
II.2 Les préalables pour développer des applications hébergées sur Windows Azure
La plateforme Azure étant en version beta, le déploiement d’applications Cloud dans
cet environnement nécessite l’activation d’un compte LiveID (on entend par compte LiveID,
le compte Messenger par exemple).
Afin de réaliser ceci, il faut se connecter à l’adresse suivante et obtenir un Token vous
permettant d’héberger le projet Azure :
https://lx.azure.microsoft.com/Cloud/Provisioning/Default.aspx
Ce token, une fois réceptionné, il permettra de « provisionner » votre compte.
Le concept « provisionner » le fait de permettre de gérer un ou plusieurs hébergements
d’applications sur le service Azure (un peu comme vous provisionnez votre abonnement
téléphonique ou internet). Cette notion de provisioning engendre en cascade l’apparition
d’une nouvelle ère dite de consuming.
Du Licensing au Consuming : De l’achat de licences à la consommation de Services.
Cette démarche n’est pas dénuée de sens, effectivement, à ce jour lorsque vous
souhaitez obtenir une application, il vous faut en acheter une licence.
Désormais dans la stratégie Azure (tout comme dans le monde Appel avec l’iPhone par
exemple), vous quitterez progressivement ce mode dit de Licensing pour entrer dans un
mode dit de Consuming ou si vous préférez consommation de vos applications selon
différents critères comme :
Le temps de consommation
Les traitements serveur (calculs processeur) générés par votre consommation
La bande passante utilisée par votre consommation
Le stockage de données généré par votre consommation
…
Nous entrons ainsi dans une nouvelle ère de l’internet, de l’information et de
l’informatique en général où nous consommerons Internet et ces applications dites « on the
Cloud » comme nous consommons aujourd’hui l’électricité.
II.3 Développement des applications hébergées sur la plate-forme Windows Azure
Comme nous allons dit précédemment, le développement des applications Azure
demande un choix entre deux types d’applications à savoir : « Worker Role » et « Web Role »
Ce choix dépendra inévitablement de l’objectif applicatif ainsi que de l’architecture que vous
souhaiterez mettre en œuvre, vous pourrez bien entendu combiner ces types de projets afin
de vous mettre en place toute architecture applicative digne de ce nom.
La problématique de développement des applications hautement distribuées sur la plate-forme Windows Azure
33
II.3.1 Développement des applications de type Woker role
Les applications de types Woker role constitue un ensemble d’outils devant permettre
de créer des « services » s’exécutant sur les serveurs d’entreprises pour automatiser les
échanges B2B ou l’intégration des processus métiers internes. Ces services doivent
implémenter la logique des processus métiers d’entreprise. Leur développement suppose
d’abord et avant tout la modélisation des processus.
Le concept processus métier désigne un ensemble d'opérations enchaînées en
rapport avec l’organisation et/ou l’activité d’une entreprise, tout en impliquant plusieurs
intervenants suivant une chronologie des tâches spécifiques dans un espace de temps
limité. Cela en vue d’atteindre un objectif précis, généralement délivrer un produit ou un
service. Ce dernier, se distingue du concept processus, par le fait qu’il peut aussi désigner
une succession des opérations se rapportant essentiellement au fonctionnement et aux
besoins des machines sans faire référence aucune aux opérations accomplies dans le cadre
de la mission d’une entreprise.
Dans le contexte de ce travail, le concept modélisation désigne une phase de
conception traduisant d’une manière claire l’activité principale d’une organisation.
Pour modéliser un processus B2B ou interne à une entreprise, il est recommandé
d’exploiter les notions du standard UML (Unified Modeling Langage) pour traduire d’une
manière claire l’activité principale d’une organisation, ainsi que les acteurs intervenants, et
des notations graphiques BPMN (Business Process Modeling Notation) pour traduire les
processus métiers, ainsi que leurs exécutions.
II.3.2 Développement des applications de type Web role
Le développement des applications de type Web role faisant objet du modèle de
développement que nous présentons dans ce travail, suppose une certaine maîtrise d’un
certain nombre des notions résumées par la figure…. dont nous pouvons énumérer
quelques une, à savoir :
- Le domaine d’utilisation : concerne le propriétaire, les utilisateurs, la logique
métier applicative, les postes de travail, les terminaux, les interfaces de lecture
et d’entrée, les périphériques d’entrée et de sortie, …
Ce domaine permet d’analyser, concevoir et modéliser la logique métier qui
traduit la manière dont doit se dérouler l’activité, afin de résoudre le problème
(besoin) exprimé par le propriétaire en rapport avec les utilisateurs de
l’application.
Les interfaces encapsulent la logique métier et permet d’interagir avec
l’application.
- Le domaine de création et d’exploitation : ce domaine concerne tout les aspects
en rapport avec l’implémentation de l’application, ainsi son déploiement.
La problématique de développement des applications hautement distribuées sur la plate-forme Windows Azure
34
- L’infrastructure : dans notre contexte, l’infrastructure fait allusion à Windows
Azure en tant que plate-forme d’exécution et d’hébergement, notamment les
connexions Internet/Intranet pour l’accès à l’application.
Le Web Role Cloud Service permet ainsi le support d'applications de type Web
role ASP.NET ou Windows Communication Foundation.
La problématique de développement des applications hautement distribuées sur la plate-forme Windows Azure
Figure 16
Con
cevoir
& D
évelo
pper
du
des
d’
Utiliser
Développement des applications
hébergées de type Web role
Infrastructures
Interfaces de l’application
(Formulaires ou pages Web)
Maîtrise
Technologies IP
Architecture Client/serveur
Logiques métiers Applicatives
Utilisateurs (Users)
Propriétaires (Maître d’œuvre)
Domaine d’utilisation
- Interfaces de lectures - Interfaces d’entrées - Périphériques E/S - Terminaux fixe ou
mobile - Poste Client, …
Analyse, Conception et
Modélisation
UML, BPMN, MERISE, …
Technologies et plate-forme de développement d’applications
Hébergées
Les API et Bibliothèque .Net
Développeurs d’applications Hébergées
Administrateurs d’applications
Hébergées
Investissements …
Su
ppose
En
capsu
le
le
Besoin
An
aly
ser
les c
on
texte
s d
e déplo
iem
en
t
Domaine de Création et
d’Exploitation
Plate-forme de développement :
MS Visual Studio, Adode, Java (Sun) …
Plate-forme matériel: PC, Serveur, Navigateur web, Internet,…
Langages de codage :
VB.Net, C#, ASP.net, XML, XAML, PHP, Java, Flash, Ruby, Perl, Adobe Air, Python, Curl, Open
Sky, COBOL, Linq, …
Analyse, Conception et Modélisation
Créer
Internet /Intranet
Applications Hébergées
(Web role)
Domaine d’utilisation
Domaine de création et
d’exploitation
Infrastructures (Windows Azure)
Azure Service Developer Portal
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
36
II.4 Développement sous Visual Studio: Visual Web Developer 2008 Express Edition SP1
Les applications Azure peuvent être
créées avec Visual Studio 2008 SP1, la
version Visual Web Developer 2008
Express Edition SP1 étant gratuite.
L'environnement doit être installé sur
Windows XP SP3, Vista SP1 ou Windows
Server 2008 SP1 avec la version 3.5 SP1
du Framework .Net et SQL Server Express
2005 ou 2008.
Nous ajoutons en plus, un kit de
développement (Windows Azure SDK) et
un pack d’outils (Azure Tools for Microsoft
Visual Studio)
- Windows® Azure™ Software Development Kit (October 2008 CTP)
http://www.microsoft.com/downloads/details.aspx?familyid=bb893fb0-ad04-4fe8-bb04-0c5e4278d3e9&displaylang=en
- Windows Azure Tools for Microsoft Visual Studio October 2008 CTP
http://www.microsoft.com/downloads/details.aspx?familyid=63d0d248-1b08-4f7d-abde-62eb75cb1e69&displaylang=en
Après avoir installé les
deux modules logiciels en haut à
droite sur la figure 10, nous
pouvons illustrer le développement
avec Visual Studio, en créant
une application Azure de type Web
Cloud Service en langage C# soit
un projet ASP.Net, avec une page
baptisée : « default.aspx » ayant
comme titre :
« mlecjm-161-Cloud01 », contenant
un message de deux phrases et
une image (cfr figure 20).
Figure 17
Figure 18
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
37
Figure 19
II.4.1 Editeur de code source sous Visual Studio
Cet éditeur de code d’ASP.NET (langage de programmation basé sur la norme XML
« Extensible Markup Language » ), utilise les contrôles ASP.NET qui sont des entités des
codes créées à partir des bibliothèques des liens dynamiques (DLL, dynamic linked
libraries), offrant les facilités de création des applications Web.
II.4.2 Syntaxe du code ASP.Net :
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
</form>
</body>
</html>
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
38
Figure 20
II.5 Tester l’application on the Cloud en local
Une fois l’application écrite, il suffit d’appuyer sur la touche F5 pour la tester en local
sur son PC, avant de la déployer sur les serveurs distants de Microsoft. Si aucune erreur
n’est détectée à la compilation, elle s’exécute automatiquement. Ici, le navigateur Internet
(Mozilla FireFox) affiche comme prévu le message et l’image, le titre de la page est bien
celui donné : « mlecjm-161-Cloud01 ».
Il est à noter que l’URL :
(http://127.0.01:81/Default.aspx) montre que le navigateur charge la page Web générée
par notre application sur un serveur Web qui tourne localement sur notre PC de bureau.
Deux machines virtuelles simulent le « nuage » informatique sur votre PC.
L’application Azure s’exécute localement sur un PC grâce à la présence de deux machines
virtuelles, baptisées « Development Fabric » et « Development Storage », qui s’installent avec le
SDK et fonctionnent en arrière-plan (elles sont respectivement représentées par un rouage
et un serveur dans la barre de tâche système). La machine virtuelle Development Fabric
simule la façon dont le contrôleur central Windows Azure déploie les applications sur les
serveurs des datacenters en grandeur réelle dans le « nuage Internet », tandis que la
machine virtuelle Development Storage simule les services de stockage (Table, Queue et
Blob) fournis par Windows Azure sur le « nuage Internet ». Cette seconde machine virtuelle
s'appuie sur SQL Server qui doit être installé sur la machine de test.
II.6 Le déploiement des applications Azure : Azure Services Develper Portal
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
39
Figure 21
Figure 22
Une fois l’application déboguée en local sur un PC, on peut « l’installer » sur la plate-
forme Windows Azure de Microsoft grâce au menu Publier de la fenêtre projet de Visual
Studio. Le développeur est automatiquement aiguillé vers le site Azure Services Developer
Portal où il doit avoir créé un compte (associé à un identifiant Windows Live). Ce portail est
l’interface qui permet de déployer et de maintenir les applications Azure.
Une fois ces prérogatives terminées, il ne reste plus qu’à passer les étapes
nécessaire au provisioning de votre environnement l’hébergement, observez le premier écran
obtenu après authentification sur le portail Azure Services Developer.
En ce qui nous concerne, choisissez « Hosted Services » pour héberger notre
application.
Actuellement, il ne reste ainsi qu’à déployer le projet. Cette étape démarre lors du
déploiement par un upload des deux packages constituant le projet, à savoir :
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
40
Package Applicatif : contenant votre application on the Cloud - (fichiers .cspkg) ;
Package Paramétrage : contenant les paramètres de configuration de l’application
dite on the Cloud. Il contient le modèle de service associé (fichier .cscfg) qui sont
ensuite envoyés au contrôleur central Windows Azure lorsqu’on demande
l’exécution (en mode test ou en mode production).On y retrouve entre autre la
notion du nombre d’instances serveurs afin de gérer le Load Balancing de votre
service Azure.
Après cette étape, il s’en suivra une série d’écrans en cascade ne prenant que
quelques instants et permettant de fournir les informations suivantes :
Propriétés du projet (Project Properties) ;
Nom de votre service hébergé (sous-domaine de cloudapp.net à ce stade), …
Pour terminer en dernière étape avec l’écran de gestion du hosting et déploiement de
votre projet On the Cloud à la version production ou pré-production (Starting).
Production : mise en production veut dire rendre l’application accessible depuis
votre sous-domaine créé préalablement sous le Hosted Services.
Starting : mise en pré-production, rendre accessible depuis un sous-domaine
généré à la volée par la plateforme Azure Services Developer Portal.
Comme nous l’avons dit dans le chapitre précédent, on nous donne la possibilité
d’intervertir les deux versions (passage en production de la version de test, retour en test
de la version de production).
Il est à noter qu’après le déploiement l’URL qui donnera accès à l’application via
Internet sera de la forme http://mlecjm_161.cloudapp.net par exemple.
II.7 Optimisation des applications sur la plate-forme WINDOWS AZURE
Une fois en ligne, l'application peut être optimisée. Dès qu'elle est publiée sur la
plate-forme Azure, l’application est accessible par un navigateur Internet (Internet Explorer,
Firefox ou Safari). On peut décider à tout moment d’augmenter sa réactivité en augmentant
le nombre d’instances (de copies tournant sur les serveurs de Microsoft) à lancer
simultanément. L’opération peut se faire en téléchargeant un nouveau fichier de
configuration des services créé avec Visual Studio ou en éditant ce fichier directement sur
le portail Azure.
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
41
CHAP III : INTEGRATION DE WINDOWS AZURE DANS L’ENTREPRISE
Dans le contexte de ce travail, le concept « entreprise » prend le sens d’un ensemble
des lieux proches ou distants où l’on exploite diverses ressources, dans les processus de
production et de mise à disposition des biens ou services aux clients. Ces opérations d’une
grande complexité nécessitent des outils capables de les automatiser, en permettant une
intégration et des interactions des processus d’entreprises et entre entreprises.
Aujourd’hui, l’entreprise est aussi confrontée aux problèmes des capacités de
stockages de ses données en forte croissance, aux besoins des puissances de calculs pour
certains aspects de ses traitements, outre la diversité d’applications serveurs dont les
contrôleurs de domaines, serveurs de noms (DNS), serveurs des fichiers et de base de
données, de communication, d’applications,… sans oublier les besoins liés au déploiement
de ces derniers en interne comme à l’extérieur, surtout lorsque l’entreprise possède
plusieurs sites dont les activités sont fortement interdépendantes.
De manière classique, l’entreprise essaie à résoudre ces problèmes tant bien que mal,
en exploitant les services de l’architecture Client/Serveur dont les limites sont perspectibles
lorsqu’on y intègre pas divers technologies et ressources, notamment disponible dans le
Cloud Computing.
Ce chapitre décrit l’entreprise et son infrastructure classique basée sur
l’architecture Client/Serveur, ensuite proposée une intégration des technologies AZURES
dans un modèle d’entreprise multi-site.
III.1 L’entreprise et ses composantes
L’entreprise s’organise autour des fonctions classiques dont l’exploitation, les
finances, les approvisionnements, la commercialisation et l’administration,…
Pour des raisons économiques et d’efficacité, ces différentes fonctions peuvent être
réparties sur plusieurs sites géographiquement éloignés. Et chaque fonction d’entreprise
doit être structurée suivant une organisation conformément aux processus qu’elle exécute.
Elle nécessitera pour rendre cohérente et efficace ces opérations, comme dit précédemment,
l’utilisation d’un certain nombre des ressources, dont les applications informatiques
spécifiques à ses tâches. Les applications informatiques sont consommatrices des
ressources dont le matériel de stockage de données, la puissance de traitement et le
support de transmission des données fiables.
La figure ci-après illustre un modèle traduisant l’entreprise et ses composantes :
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
Entreprise
Agents (Ressources Humaines)
Ressources matérielles, logicielles et autres
Activités (Services métiers)
Résultats
Niveau stratégique Dirigeants
Niveau tactique
Responsable d’exploitation
Niveau opérationnel Exécutants
Fonctions
- Administrative,
- Supervision - Gestion financière, - Commerciale, - Marketing et vente, - Approvisionnement et Logistique, - Exploitation,
- Comptabilité,
- Production et Ingénierie, - Infrastructure et sécurité,…
Quelques Détails - Planification, - Acteurs, - Poste d’exécution, - Evénements, - Opérations, - Processus, - Tâches, - Déplacement, -Temps, - Flux de données (échanges d’informations), - Exécuter, Superviser, Contrôler, Décider, - Médias, moyens et technologie, …
…
Objectif planifié ou poursuivi
Quelques détails sur les ressources -Ordinateurs de bureau ou portables, serveurs, - Imprimantes, papiers, Stylo, - Support de stockage et de communication, téléphone - L’électricité et l’eau, - Système d’exploitation, Programmes de base, - Programmes d’application, logiciel de sécurité, - Onduleurs, Stabilisateurs, Groupe électrogène, …
Infrastructures et technologie
- Bâtiments, - Bureaux, - Usines, entrepôt, dépôt, -Atelier de production, - Machines et outils de production, - Réseaux informatique, …
Service administrative et financière
Service Commerciale
Service Marketing
Service de Vente
Service Technique
Service Exploitation, …
Matériels de bureau et divers énergies
Matières premières et consommables, …
Logiciels de bases
Logiciels de gestion Logiciels d’applications, …
Service Exploitation
Quelques Détails - VSAT, Switch, Routeurs, Serveurs -Ordinateurs desktop et portables -Onduleurs - Equipements Télécom, câbles, -Usines,…
Figure 23
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
43
III.2 Rappel sur l’architecture Client/serveur
Le modèle ou architecture Client/serveur repose sur le principe de communication
maître-esclave entre les applications, par opposition à la communication d’égal à égal. Cette
communication se réalise par le dialogue entre processus deux à deux : l’un client et l’autre
serveur10.
Les processus ne sont pas identiques mais forment plutôt un système coopératif
échangeant des données. Le client initie l’échange, le serveur est à l’écoute d’une requête
cliente éventuelle. Du point de vue de la configuration, des ordinateurs hôtes et serveurs,
les machines hôtes ne peuvent voir que le serveur.
De manière plus explicite, une machine hôte ne peut accéder aux ressources réseau
qu’à travers l’interface fournit par le serveur ou contrôleur de domaine par les services
d’annuaires. Les deux hôtes client A et client B communiquent par le système de « requêtes
adressées respectivement aux serveurs et de réponses correspondantes » fournis par ces
derniers (serveurs). Mais lorsque le client A connait l’adresse IP du client B, les deux
peuvent directement communiquer sans le serveur.
Pour certaines applications client/serveur, les modules de l’application installés sur
les hôtes sont capables de jouer le rôle de client et de serveur. Ainsi, deux hôtes peuvent
directement communiquer sans passer par le contrôleur de domaine lorsqu’ils ont les
adresses IP respectives. C’est le cas des systèmes d’exploitations serveurs qui sont à la fois
clients (lorsqu’ils interrogent d’autres serveurs) et serveurs (lorsqu’ils répondent aux
requêtes des hôtes et d’autres serveurs).
Le modèle client/serveur peut faire intervenir
plusieurs serveurs avant de pouvoir livrer le service
au client qui a formulé la requête. Le cas des
serveurs DNS et des contrôleurs des domaines qui
permettent l’accès aux ressources réseaux. On parle
dans ce cas de système client/serveur à plusieurs
niveaux (n-tier ou n-étage).
Si n=2, on parle d’un système client/serveur simple
où le serveur répond directement à la requête du
client, par opposition d’une architecture centralisée
de type Mainframe.
Si n=3, on a trois étage : 1. Le client – 2. Le serveur
intermédiaire (d’application) – 3. Le serveur de
ressources (Base de données ou fichiers). Dans cette architecture, le serveur d’application
dit « Middleware » est spécialisé dans le traitement des requêtes des clients en rapport avec
l’application, ainsi il a besoin de s’appuyer sur un serveur qui stocke les données afin de les
fournir au client qui en a besoin. Il joue le rôle d’intermédiaire entre le client et la base de
données.
10
JJP Kayembe, Téléphonie IP d’entreprise avec Microsoft Office 2007, Kin Prographics, Kinshasa, 2007, P83
Figure 24
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
44
L’architecture Client /Serveur a fait des preuves considérables dans les processus de
communication et d’échange au sein des entreprises. En effet, elle a permis aux entreprises
de gérer et contrôler les ressources à partir d’un point central, c’est qui a facilité l’agilité du
système d’information et contribué énormément à la productivité.
III.3 Modèle d’architecture d’infrastructure Client/serveur d’entreprise
Traditionnellement, l’infrastructure technologique d’une entreprise comprend des
utilisateurs (postes de travail, terminaux mobiles,..) qui utilisent les ressources
informatiques d’entreprise (services, données, puissance de calculs, …) dans leurs tâches
d’exploitation en vue de produire des biens ou services. Ces postes sont interconnectés par
divers supports de transmission (câbles, fibre optique, wifi, Bluetooth, faisceaux
hertziennes, VSAT, …) et équipements d’interconnexion (Switch, routeur, modem, …).
Selon les privilèges d’accès les utilisateurs accèdent aux ressources réseaux (applications,
données, imprimantes, lecteurs,..) par authentification au niveau de contrôleurs de
domaines associés aux serveurs des noms (DNS) pour la localisation de ces ressources. On
trouve également d’autres serveurs pour de tâches métiers spécifiques dont les serveurs
des bases de données, des fichiers, web, de messagerie, d’impressions, …
Actuellement, l’Internet est devenu indispensable dans l’exploitation et l’exécution
des processus d’entreprise ; raison pour laquelle, ce modèle d’infrastructure illustré par la
figure …, dispose également d’une connexion Internet. L’infrastructure étant de type
Client/serveur, l’administration y est centralisée grâce à l’annuaire du contrôleur de
domaines. Les identités et les accès sont gérés par rapport aux données, services
(applications), et autre ressources distribuées.
Figure 25
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
45
Lors que l’entreprise est répartie sur plusieurs sites plus ou moins éloignés, ou elle
effectue des opérations complexes qui nécessitent une automatisation et une intégration
par rapport à l’ensemble des sites ; des coûts énormes en ce qui concerne les
équipements leurs renouvellement périodique, sans compté les nombreuses ressources
humaines spécialisées dans l’installation, la maintenance et l’exploitation de l’ensemble
des équipements constituants d’infrastructures d’informatique de l’entreprise, les besoins
en puissances de calculs et capacités de stockages, le besoin en énergie électrique stable et
fiable pour alimenter l’ensemble des infrastructures de manière à délivrer des services de
bonnes qualités,...
A l’époque du mainframe, l’architecture informatique était centralisée sur un système
monolithique. Avec l’apparition du PC, l’information a été démocratisée et décentralisée en
réduisant sensiblement le coût des matériels et en mettant les logiciels au cœur de
l’industrie informatique.
L’apparition du Web et son développement, en mettant un accent sur la collaboration
des processus interentreprises (B2B) et l’intégration des applications au sein des
entreprises. Dans ce contexte, le logiciel perd son importance au profit des Architectures
Orientées Services (SOA).
Cette nouvelle approche nécessite une nouvelle organisation des infrastructures et
des outils de développement appropriés.
Windows AZURE, et ses multiples ressources et services devient un atout indéniable pour
l’intégration des applications d’entreprise et la collaboration d’entreprises.
III.4 Intégration des technologies AZURE dans l’entreprise
Pour résoudre l’ensemble de problème ci-haut évoqués, la société Microsoft propose
aux entreprises les technologies AZURE dont l’offre peut à ces jours contenir les éléments
suivants :
- L’intégration d’infrastructures des différents sites d’entreprises ;
- La déportation de l’infrastructure IT d’entreprise au sein des Datacenters ;
- Un ensemble des services capables d’automatiser divers aspects du
fonctionnement et de la gestion des entreprises (Live Service, Bus service,
Workflow, .Net service, …) ;
- L’hébergement des données et de toutes les applications d’entreprises ;
- Le développement des plates formes Clients et partenaires intégrées aux
applications d’entreprise.
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
46
III.4.1 Intégration du Cloud Computing (Windows Azure) dans l’entreprise
L’intégration des technologies du Cloud Computing, est une solution qui répond aux
multiples difficultés que rencontrent généralement les entreprises. Notamment en ce qui
concerne l’unification des domaines et la centralisation de contrôle, le déploiement des
ressources sur différents sites d’exploitation proches ou éloignés, pouvant s’étendre jusqu’à
une échelle de toute la planète.
L’offre du Cloud Computing, plus particulièrement, Windows AZURE permettra aux
entreprises de se faire des économies concernant l’investissement dans l’infrastructure
technologique de pointe pour la production des biens et services de meilleures qualités,
dans un contexte de marché concurrentiel.
Les entreprises peuvent se munir d’un minimum d’infrastructure pour faciliter
l’intégration au niveau de chaque site et entre les sites, tout en déportant l’implémentation
des infrastructures dans une organisation virtuelle sur le Cloud Computing.
Cette organisation virtuelle est basé sur l’unification des domaines et des sous
domaines sur des serveurs loués au niveau du Cloud Computing, ceci réduit les coûts
d’investissement des matériels et logiciels, accroît la performance et la disponibilité de
l’ensemble d’applications pour facilité la restauration des système après sinistres (
attaque), le minimum d’infrastructure gérée au niveau de l’entreprise doit s’appuyer sur
des serveurs proxys consolidées grâce à la virtualisation des serveurs physiques en local
pour gérer les requêtes au niveau d’un site (cfr Figure 27).
Figure 26
ENTREPRISE
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
47
CONCLUSION GENERALE
Notre travail a porté sur l’étude de la problématique de développement des
applications hautement distribuées (hébergées) sur la plate-forme Windows Azure.
Nous avons eu l’opportunité de présenter au premier chapitre un aperçu général sur
la plate-forme Windows Azure en faisant une approche comparative de l’architecture du
Grid Computing avec celle du Cloud Computing Windows Azure, en faisant un rappel sur la
distribution des ressources (service, applications, unité de stockage, puissance de
calcul,...).
Dans la second chapitre consacré au développement des applications Windows
Azure, nous a avons succinctement revu l’environnement et outils de développement, les
astuces et procédés de développement des applications Azure, ainsi que leurs déploiement
sur la plate-forme Windows Azure.
Le dernier chapitre de cette étude, a été consacré à l’étude d’intégration des
technologies Windows Azure dans l’entreprise, pour automatise la complexité de ces
opérations et permettre l’intégration et des interactions des processus interentreprises
(B2B).
La déportation des infrastructures favorisent l’unification des domaines et
l’exploitation centralisée de l’ensemble des ressources au niveau de chaque site et de
tous les sites de l’entreprise.
Cette unification des domaines et sous domaines offre également la possibilité
d’intégrer et d’organiser les processus métiers des différents sites de manière à offrir un
ensemble des services web intégrés permettant d’automatiser les processus
interentreprises pour le B2B, en exploitant les nombreux services qu’offre Windows
Azure.
Grâce au « Web rôle Cloud Service » qui facilite la création des applications
hautement distribuées, l’entreprise aura ainsi des possibilités étendues à connecter les
différents processus répartis sur des sites en une plate forme applicative délivrant des
services accessibles à ses clients en automatisant des mises à jour de l’ensemble des
informations dont le client a besoin.
L’unification des domaines grâce à la déportation de l’infrastructure peut aussi
favoriser l’utilisation des différentes applications (monolithiques ou client-serveur)
traditionnelles de l’entreprise qui seront déployés dans les serveurs virtuels (VM) du
Cloud Computing. Ainsi, devenant accessibles de n’importe quel endroit de l’entreprise à
travers le protocole http. Une vieille application Windows 3.1 par exemple, mais très utile
sera toujours a l’utilisation à travers le site web de l’entreprise, via le serveur web en tant
que proxy des machines virtuelles de Windows Azure.
Ces différents aspects liés à la déportation des infrastructures au niveau du Cloud
Computing démontrent suffisamment les bénéfices de l’utilisation de Windows Azure à la
fois pour baisser sensiblement des coûts d’investissement dans les matériels et logiciels,
et améliorer les performances de l’entreprises dans la gestion de ses processus métiers.
Mais, Windows Azure offre encore plus !
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
48
Il permet par ailleurs de :
- L’intégration d’infrastructures des différents sites d’entreprises ;
- La déportation de l’infrastructure IT d’entreprise au sein des Datacenters ;
- Un ensemble des services capables d’automatiser divers aspects du fonctionnement
et de la gestion des entreprises (Live Service, Bus service, Workflow, .Net service,
…) ;
- L’hébergement des données et de toutes les applications d’entreprises ;
- Le développement des plates formes Clients et partenaires intégrées aux applications
d’entreprise,...
Outres, les facilités de développements notamment en ce qui concerne :
- Un environnement et outils de développement d’applications hautement
distribuées dit « On the Cloud »;
- Le déploiement d’applications, leurs disponibilités et accessibilités à une échelle
planétaire ;
- L’optimisation et administration des applications hébergées, …
De ce qui précède, il apparaît clairement que Windows Azure en tant que plate-
forme d’exécution, de développement et hébergement des données et applications;
constitue une réponse stratégique face aux difficultés actuelles des entreprises
caractérisées par des restrictions en matières financières, dans un environnement
d’intenses concurrences où les facteurs de production sont fortement interdépendants.
Avec ses capacités d’unification des domaines et sous domaines, d’intégration des
processus par la déportation des infrastructures IT d’entreprise, Windows Azure offre une
des solutions d’une nouvelle nature, les entreprises devront faire preuve d’imagination
pour les exploiter à bon escient et obtenir les performances idéales. Elles devront par
ailleurs investir dans l’effort d’intégration des processus métiers afin permettre une
automatisation des transactions internes et interentreprises, voir accessible directement
aux différents clients.
Tel a été notre intérêt d’étudier les possibilités d’intégration de Windows Azure au
sein des entreprises ainsi que de l’exploitation de ses ressources pour améliorer ses
performances.
Nous aurions souhaité implémenter une application d’entreprise pour illustrer
quelques aspects de la plate-forme applicative de Windows AZURE. Les contraintes de
temps et possibilités matérielles limitées ne nous a permis que d’illustrer les étapes de
développement d’une application AZURE.
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
49
BIBLIOGRAPHIE
Ouvrages :
1. Andrée MULLER, La Net économie, Presse universitaire de France, Paris, 2001
2. Guillaume Plouin, Cloud computing et SaaS, Dunod, Paris, 2009
3. Grégory Renard - Wygwam, Azure Services Platform, la Plateforme Online de Microsoft : Une nouvelle ère, Wygwam, 2009
4. Patrice Pelland, Microsoft Visual Basic 2005 Express Edition, Microsoft press, liege, mars 2006
5. Jim BUYENS, Microsoft Visual Web Developer 2005 Express Edition, Microsoft press, liege, mars 2006
6. JJP Kayembe, Téléphonie IP d’entreprise avec Microsoft Office 2007, Kin Prographics, Kinshasa, 2007
7. Laurent Bloch Christoph wolfhugel, Sécurité Informatique « Principes et méthodes », Eyrolles, Paris, 2007
8. Guillaume Plouin, Etat de l’art Cloud Computing, Sogeti, Paris, mars 2009
9. Dominique CHABAUD, Développement des applications Multitheards, Dunod, Pari, 2006
10. Microsoft Press, Les outils du développeur, Microsoft Press, 2008
11. Evar JACOBSON, Concevoir des applications simples, sûres et adaptables, Dunod, Paris, 2009
12. David Chapell&Associates, Introducing the Azure Service platform, Microsoft Corporation, octobre 2008
13. Jean-François Bobier, Microsoft .NET : Architecture et Services, Paris, TélécomParis, Juillet 2001
Articles et Cours :
1. Microsoft France, Le Cloud Computing et le SI : Offre et différentiateurs Microsoft, Microsoft France, Février 2009
2. Mlle. KHELIFA Lydia Nadia, Thèse : Collaboration des Processus Métiers dans les Echanges inter-entreprises (B2B) basée sur le Web Service Resource Framework (WSRF) du Grid, I.N.I., Février 2008
3. KEBIR Mohamed Ines, Formation au Langage PHP/MySQL, Projet Nokia, Tunis, 27- juin – 1 juillet 2005
4. Serge KATAMBA, cours de système d’exploitation, Université Protestante de Lubumbashi, édition 2007-2008
5. Nicolas CLERC, Windows Azure : .Net Services - SQL Services - Live Services
Présentation technologique, TEKIGO expertise technologique, décembre 2008
6. Baptiste Wicht, Développer une application modulaire en Java, Developpez.com, 21 Mai 2009
Sujet : La problématique du développement des applications hautement distribuées sur la plate-forme Windows Azure
TFC MPYANA M. Merlec – Tél. + (243) 81 288 63 56 – E-mail : mlecjm@gmail.com – Université Protestante de Lubumbashi
50
7. Olivier Aubert, La programmation client-serveur
8. F.Pellegini & D. Shermen, Cours de système d’exploitation, ENSEIRB, 6 Septembre 2006
9. J-M Rabilloud – S Curutchet, Ado.net (version C#), developpez.com
10. McKinsey & Company, Accroître l’agilité du Système d’information, Le Cigref, Septembre 2003
Site web et moteur de cherche
Sites web :
www.msdn.com, www.cloudmagazine.fr, www.microsoft.com, www.azure.com,
www.wikipedi.com, www.developpez.com, www.programmez.com, www.supinfo.com,
www.google.com, www.bing.com, www.altavista.com, www.yahoo.fr, www.live.com,
www.cloudmagazine.fr, www.wygwam.com, www.ini.dz, …
Moteurs de recherche : google, bing, yahoo, altavista,…
Recommended