sujet : la problématique du développement des applications hautement distribuées sur la...

50
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 : [email protected] 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-

Upload: mlecjm

Post on 27-Jul-2015

508 views

Category:

Documents


2 download

DESCRIPTION

La problématique de développement des applications hautement distribuées sur la plate-forme Windows Azure.

TRANSCRIPT

Page 1: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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-

Page 2: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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.

Page 3: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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-

Page 4: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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.

Page 5: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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

Page 6: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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.

Page 7: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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.

Page 8: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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.

Page 9: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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

Page 10: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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.

Page 11: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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

Page 12: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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

Page 13: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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

Page 14: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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).

Page 15: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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

Page 16: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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.

Page 17: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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

Page 18: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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

Page 19: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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).

Page 20: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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

Page 21: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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

Page 22: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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

Page 23: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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

Page 24: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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

Page 25: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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

Page 26: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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

Page 27: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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

Page 28: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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

Page 29: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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.

Page 30: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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.

Page 31: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows Azure

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.

Page 32: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows Azure

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.

Page 33: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows Azure

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.

Page 34: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows Azure

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.

Page 35: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows Azure

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

Page 36: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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

Page 37: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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>

Page 38: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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

Page 39: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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 :

Page 40: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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.

Page 41: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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 :

Page 42: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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

Page 43: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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

Page 44: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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

Page 45: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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.

Page 46: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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

Page 47: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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 !

Page 48: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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.

Page 49: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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

Page 50: Sujet : La Problématique Du développement des applications hautement distribuées sur la plate-forme Windows 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 : [email protected] – 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,…