samedi 28 août 2010

Questions/Réponses

Introduction

L'architecture logicielle décrit d'une manière schématique les constituants de systèmes informatiques et leurs interactions. Contrairement aux spécifications produites par l'analyse fonctionnelle, le modèle d'architecture ne décrit pas ce que doit réaliser un système mais comment il doit être conçu pour répondre aux besoins fonctionnels. L’analyse décrit quoi faire alors que l’architecture décrit comment le faire.

Position du problème

Internet: le connectif remplace le collectif. Le plus ignorant d'entre nous jouit désormais d'un accès assez facile à plus de connaissances que le plus grand savant du monde entier. Cette aise rend désuètes les thèses universaitaires où l'érudit recopiait pesamment toute la documentation possible et l'exhibait pour montrer son expertise têtue ... (Michel SERRES, temps des crises)

Les systèmes informatiques sont soumis constamment à de petites révolutions technologique et marketing. Dans ce contexte, les solutions fournies par des éditeurs comme Microsoft connaissent elles aussi des évolutions rapides et importantes. Cet article a pour objectif de résumer les caractéristiques de solutions techniques mises en oeuvre par Microsoft. Les paragraphes suivants forment une liste de Questions/Réponses pour réaliser des architectures techniques cohérentes, en s'appuyant sur ces produits et solutions Microsoft.

Face à cette avalanche presque quotidienne de nouveaux moyens informatiques, il convient évidemment de rester informé, mais aussi critique dans nos choix.

Notre époque se caractérise par la profusion des moyens et la confusion des intentions ... (Albert Einstein)

Quel style d'architecture adopter ?

La plupart des systèmes informatiques sont désormais distribués. Dans ce domaine, on distingue 3 principaux styles d'architecture.

Pourquoi utiliser d'autres produits logiciels ?

S'appuyer sur des solutions et produits logiciels existants est devenu incontournable.

"... Dans les années 1990, si on voulait faire communiquer deux PC entre eux, il fallait (parfois) écrire à la main le code d'encapsulation du message, programmer l'algorithme d'envoi et de réception, gérer la synchronisation des sockets... Aujourd'hui un simple composant .NET fait tout le travail ! Ces frameworks techniques de composants ont allégé la charge et accélérés le développement logiciel. Dans le même temps, ils ont diminué la complexité, le codage se résumant par un assemblage de librairies. La programmation est devenue plus orientée métier (celui de l'utilisateur, de l'entreprise) grâce aux langages objets, aux frameworks techniques, et aux environnement prêts à compiler qui décharge des problématiques d'accès aux données, de communication ..."

(Rodolphe Bellenguez, co-fondateur Cap Fi Technology)

Quels produits Microsoft choisir ?

Le choix est pléthorique et les caractéristiques des produits devront être examinées avec le plus grand soin. En effet, la solution retenue doit apporter des réponses techniques adaptées, c'est à dire simples, fiables, rapides à mettre en oeuvre...
Rappelons que l'objectif d'une architecture logicielle est d'apporter des réponses techniques pour satisfaire les besoins fonctionnels. Le but n'est pas de générer de nouveaux problèmes techniques avec le développement d'extensions sur des produits Microsoft choisis à la hâte.

Quelles sont les autres plateformes Windows possibles ?

Microsoft propose aussi deux autres types de plate formes:
  1. Le .NET Micro Framework qui apporte un environnement riche, basé sur la technologie .Net, pour les systèmes embarqués.
  2. Windows Embedded Compact 7 qui supporte les Smartphones Windows 7.

Les systèmes Microsoft sont-ils compatibles ?

Tous les systèmes Windows actuels sont issus du noyau Windows NT. Cette origine commune à fortement réduit les problèmes de compatibilité. A l'exclusion des programmes s'exécutant en mode noyau (drivers), les sytèmes Windows fournissent un bon niveau de compatibilité aux applications. Des difficultés pourront survenir avec des machine 64 bits, lorsque des applications 32 et 64 bits seront amenées communiquer. Dans le but d'assurer une migration progressive vers les architectures 64 bits, Microsfot équipe les versions 64 bits du sous système Windwows 32 On Windows 64 (WOW64).
WoW64 fournit un environnement qui permet à des applications Windows 32 bits de s'exécuter sans recompilation sur les systèmes 64 bits.

Les composants Microsoft sont-ils interopérables ?

L'interopérabilité entre composants d'une machine Windows se résume actuellement par le Marshalling entre des données non managées (code natif) et la plate forme .NET. La documentation technique de Microsoft apporte une explication à ce concept: un Marshaller fournit une collection de méthodes pour l'allocation de mémoire non managée, la copie de blocs de mémoire non managée et la conversion de types managés en types non managés ...

Le fait que .NET ne soit pas encore directement intégré au système d’exploitation Windows entraîne une cohabitation forcée entre les anciens processus (non managés) et ceux qui désormais supportent l'exécution de la CLR (managés). Afin de masquer ces différences, le Marshaller doit résoudre deux types de problèmes:
  1. L'environnement d'exécution.NET (CLR) peut décider à tout moment de déplacer ses objets de la mémoire managée. Cette caractéristique interdit à du code natif de référencer directement des zones mémoire manipulées par la CLR, les pointeurs natifs deviendraient rapidement invalides...
  2. Le type d'argument d'une méthode native ainsi que son mode de transmission peuvent être très différents de celui d'une méthode du framework .NET
Un appel de fonction dans une dll non managée est généralement pris en charge par un ensemble de classes du Framework .Net et porte le nom de Platform Invocation (P/Invoque).

Les communications entre objets COM et .Net feront intervenir des mécanismes de marshalling supplémentaires avec le création de wrappers COM.

Liens intéressants

Aucun commentaire:

Enregistrer un commentaire