jeudi 26 août 2010

Solutions Microsoft

Face à un nouveau projet deux choix d'architecture sont possibles: soit nous avons carte blanche, soit la technologie est imposée par le client et son environnement. Le second choix est plus complexe puisqu'il faudra composer avec cet impératif ...

Introduction


Les technologies portées par les solutions Microsoft sont en constante mutation. Cet article analyse l'évolution des produits Microsoft afin de construire une architecture logicielle cohérente dans le contexte actuel.

Le Framework .NET

... Seulement, notre environnement change et force est de constater qu’Internet ou les techniques associées conditionnent désormais l’évolution de l’Informatique. Les besoins ont évolué vers l’intégration des technologies Web (Webisation) dans les systèmes d’information et l’intégration de systèmes hétérogènes. La plate-forme .NET est la réponse de Microsoft aux nouveaux besoins et contraintes de l’Informatique industrielle ou personnelle. Son principal rôle est d’être le socle des futures applications centrées ou non sur les technologies Internet. Sa conception est très proche de celle de la plate-forme Java dont elle améliore les concepts. Si la plupart des technologies qu’elle renferme ne sont pas nouvelles, elles révolutionnent complètement la philosophie Windows, la perception des systèmes d’information et les architectures qui en découlent. Le modèle .NET porte le concept de l’unification, aussi bien dans les développements, les outils que dans les langages de programmation. Dans ce contexte, les technologies liées à un code binaire spécifique montrent leurs limites. Parallèlement, Java a conquis de plus en plus de développeurs par sa richesse, son ouverture et ses standardisations... (.NET, Dick Lantim)

Depuis son apparition en 2002, la plate forme .NET se décline en plusieurs versions majeures.

Interfaces Utilisateurs - Client Légers et Serveur Web

[1996] Active Server Pages:
Le server Web utilise COM (ActiveX) pour communiquer avec des ressources du poste serveur. Il renvoie ensuite de l'HTML au client via le protocole HTTP. Un serveur ASP est capable de se connecter à des bases de données, de lire des fichiers XML et possède des composants pour la gestion de l'upload, du FTP... Il peut lire et écrire des documents issus d'Office (Excel, Word...) en passant par le système COM.

[2002] ASP.NET:
La technologie ASP.NET repose sur le Common Language Runtime (CLR) partagé par tous les logiciels du Framework.Net.
Très différente de l'ancien ASP, l'architecture d'ASP.NET permet de passer plus facilement du développement classique d'applications Windows au développement Web. ASP.NET fournit un gestionnaire d'événements ainsi que la possibilité de créer des pages web composées de Widget (ou zone de contrôle), similaires à celles des interfaces d'applications Windows habituelles.

[2006] ASP.NET AJAX, MVC:
Incluant à la fois des composants côté client et côté serveur, AJAX permet de créer des applications Web en ASP.NET qui peuvent mettre à jour des données sans un rechargement complet de la page du navigateur (aller-retour avec le serveur). Cette technologie repose sur l'objet XMLHttpRequest, ainsi que sur le langage JavaScript et le DHTML.

Interfaces Utilisateurs - Client Riches

[1990] Les wrappers Win32, la préhistoire
Les systèmes d’exploitation Windows contiennent nativement toutes les bibliothèques nécessaires à la gestion des fenêtres. Dans un premier temps l’accès à ces fonctions API écrites en langage C se faisait directement dans le même langage. Jugé beaucoup trop coûteux en temps de développement, Microsoft a fourni par la suite plusieurs bibliothèques objet afin de cacher la complexité de cette API/C Win32.
  • Microsoft Foundation Classes (MFC) est la bibliothèque Win32 dédiée aux développeurs C++.
  • Les VB Forms sont un autre ensemble d’objets pour les développeurs Visual Basic. Reposant sur une construction visuelle des fenêtres par simple glisser déplacer, la rapidité de mise en oeuvre de cette technologie associée à la simplicité de Visual Basic (VB) lui-même a fait de cet environnement de développement l’un des plus utilisé au monde ...
[2000] Les Windows Forms, la renaissance
Windows Forms est le nom de la première interface graphique incluse dans .NET Framework, fournissant l'accès via du Managed code à l'API/C des fenêtres Windows. Un des points clés de la productivité est le degré de facilité avec laquelle le développeur lie les contrôles graphiques; tableaux de valeurs, listes déroulantes ... avec les données: c’est le Data Binding. Que ce soit en mode WinForms ou Web Forms, ce binding est bidirectionnel depuis .NET 2.0. Il reste d'ailleurs exploitable depuis les extensions serveur AJAX.

[2006] WPF/XAML, on recommence tout ...
Avec la publication de .NET 3.0, Microsoft délaisse les Windows Forms pour introduire des spécifications graphiques entièrement nouvelles. Il s'agit d'abandonner les anciennes API/C telles que User32.dll et GDI32.dll, pour s'appuyer uniquement sur DirectX. Conçue par Microsoft comme une alternative à l'API OpenGL pour les jeux ou les applications multimédia, DirectX apporte une richesse inégalée en matière d'interfaces graphiques.

Tout comme le Framework .NET, WPF est à la fois une spécification graphique et une implémentation par Microsoft de cette spécification sur la forme de libraries. XAML est quant à lui un langage descriptif pour manipuler WPF d'une manière proche du langage HTML, on parle du couple WPF/XAML.
Les nouveautés de WPF débordent largement du cadre de l'IHM pour atteindre le back-end. En ce qui concerne les documents: WPF introduit un format de description de package (System.IO.Packaging) qui favorise la manipulation des relations entre le document et les éléments qui le composent(images, styles, chapitres, annotations, etc.). Le format de packaging System.IO.Packaging est déjà exploité par Office 2007 avec Open XML et par Vista avec Xml Paper Specification (XPS). XPS est un format de description de documents mis en page.

Silverlight - Riche ou Léger ?

Silverlight a comme concurrents principaux Adobe Flash et Flex. Il s'agit d'un plugin pour navigateur Web multiplate-forme (Windows, Apple, Linux), qui permet de développer des applications Web riches dans un moteur de rendu vectoriel. Les applications utiliseront XAML pour décrire l'interface graphique, et un langage .NET comme C# pour le comportement (code).

Interfaces avec MSOffice

L’intégration des applications avec les outils bureautiques MSOffice est un facteur essentiel de la productivité du poste client. Microsoft a toujours fournit les moyens de communiquer avec ses applications Office, notamment avec le protocole OLE Automation. La dernière version publiée en Janvier 2007 facilite nettement les possibilités d'interactions grâce a l'introduction d'un nouveau format d'échange: OpenXML.

Interfaces de communication

Jusqu'à la publication du Framework .Net 3.0, l'offre reposait sur des sous-systèmes de communication bien distincts:
  • .Net Remoting: première tentative dans l'environnement .Net pour fournir une approche abstraite des communications entre objets distants.
  • System.EnterpriseServices: représente la classe de base du Framework .NET pour toutes les application souhaitant utiliser des services COM+ tels que Microsoft Transaction Server (MTS), Microsoft Message Queue Server (MSMQ), ...
  • Web Services: dés l'apparition de son premier Framework .NET, Microsoft cache la complexité des standards Services Web derrière des bibliothèques de composants comme ASMX puis Web Services Enhancements (WSE).
Avec l'apparition du Framework .Net 3.0, le modèle de programmation Windows Communication Fondation (WCF) fournit une véritable couche d'abstraction qui unifie et simplifie la mécanique d'intégration pour: services Web, .NET Remoting, Microsoft Transaction Server, Microsoft Message Queuing, ...

Cette couche permet en outre une redistribution des rôles:
  • Le développeur conçoit et développe son service sans se soucier de son implémentation à cible. C'est-à-dire qu'il ne s'intéresse qu'aux caractéristiques structurantes du service pour son intégration au sein d'une Architecture orientée services : le service fonctionne-t-il en mode Singleton, en mode Asynchrone, avec une Callback ...
  • L' intégrateur (ou l' administrateur), lui, détermine le protocole mais aussi le niveau et le mode de sécurisation du service ainsi développé.

Le portail collaboratif SharePoint

SharePoint est la solution de Microsoft pour les réseaux sociaux. Les fonctionnalités des produits SharePoint sont la gestion de contenu, les moteurs de recherche, la gestion électronique de documents, les forums, ... Depuis l'arrivée de la version 2010, le portail SharePoint repose sur le couple ASP.NET 3.5/Silverlight et offre de multiples possibilités d'accès:
  • Navigateur Internet
  • Client Silverlight
  • API .NET
  • API REST basée sur WCF pour l'accès aux donnée de format JSON, ATOM, ..

SOA et solutions d'Orchestration

Les Architectures Orientées Services (SOA) reposent principalement sur:
  • L’utilisation d’interface d’invocation Simple Object Access Protocol (SOAP)
  • Un vocabulaire de description des données qui dans la cas d'un service Web comprend: Web Services Description Language (WSDL) et eXtensible Markup Language (XML).
Ce dispositif permet de réutiliser les applicatifs métiers, le but étant de permettre à l’entreprise de s’adapter rapidement à un nouveau contexte de marché. Une architecture SOA pourra être également complétée par:
  • Une gestion de la sécurité comme Secure Sockets Layer (SSL)
  • Un orchestrateur de services pour constituer des processus. Microsoft fournit deux solutions (WF/Biztalk) dont la plus simple repose sur le composant Windows Workflow Fondation (WF) du Framework .NET 3.0. Pour des cas plus complexe tels que l'orchestration de processus distribués Microsoft oriente vers son produit Biztalk server.
  • Une gestion transactionnelle avec two-phase commit où le moniteur attend de recevoir l'acquittement (le commit) des différents serveurs sollicités. Si un problème survient, le gestionnaire de la transaction sera en mesure de demander aux autres serveurs de défaire les mises à jour partielles effectuées afin de maintenir l'intégrité des données.
Avec le lancement de la fondation CodePlex en septembre 2009, Microsoft souhaite une nouvelle politique d'ouverture dans le monde Open Source.
En 2009, CodePlex a reçu ses premiers fonds de la part de Microsoft, soit un montant d'un million de dollars. La mission affichée est de permettre l'échange de code ainsi qu'une entente entre éditeurs de logiciels et les communautés Open Source.

Windows Azure, toujours plus loin ...

Windows Azure est la dernière plate forme publiée par Microsoft: orientée Cloud Computing, entièrement virtualisé et disponible depuis l'Internet. Azure est un système massivement distribués dans les datacenters de Microsoft, c'est à dire qu'il fonctionne sur des milliers de serveurs à travers le monde. Azure couvre la partie infrastructure qui demeure ainsi invisible en s'appuyant sur Windows server 2008, Hyper-V, IIS7, les langages .NET, ...
Azure comme d'autres solutions cloud computing permet d'avoir une Informatique à la demande totalement interopérable et capable de montée en charge très fortes.

Liens intéressants

Aucun commentaire:

Enregistrer un commentaire