logo mission internet-administration

Mission Baquiast - Propositions sur les apports d'Internet à la modernisation du fonctionnement de l'Etat.

Oracle - Livre Blanc - Architecture distribuée

Ce document transmis par la société Oracle n'est pas seulement une ofre commerciale. Il présente un aspect pédagogique dans des domaines techniques généralement mal connus des utilisateurs d'Internet. Il n'est pas possible d'envisager un large usage de l'Internet dans les administrations sans prévoir les interfaces avec une informatique traditionnelle qui doit se reconstruire autour d'une architecture distribuée et normalisée.

On rappelle que ce forum est ouvert à tous les fournisseurs qui, tout en présentant leurs solutions, font effort pour informer objectivement les utilisateurs. Baquiast

Network Computing Architecture

L'avènement de la société de l'information grâce à l'informatique de réseau

Un Livre Blanc Oracle
Septembre 1996

Présentation

Les avancées des technologies informatiques sont toujours porteuses d'un paradoxe : d'un côté la promesse de rendre les entreprises plus compétitives, plus efficaces ou plus rentables, mais de l'autre côté la crainte des problèmes de mise en oeuvre, accentués par la multiplication de composants non standards, de plates-formes propriétaires et d'environnements de développement limités.

Plus récemment, les évolutions des technologies de réseau, d'Internet et du Web ont inspiré un nouveau modèle informatique centré sur le réseau. Le Web et Internet se développent rapidement pour constituer l'infrastructure d'une économie planétaire, à la fois sur le réseau Internet public et sur la multitude des Intranets des entreprises. Dans ce domaine plutôt récent, de nombreuses technologies se disputent le rôle central de l'infrastructure nécessaire pour distribuer des applications sur une grande échelle. Certaines de ces technologies sont issues de travaux de standardisation, d'autres proviennent de recherches universitaires et d'autres encore sont proposées par des éditeurs. Elles cherchent toutes à retenir l'attention des marchés pour vaincre à terme leurs concurrentes. La vision d'Oracle pour cette infrastructure s'appuie d'emblée sur le postulat qu'aucune technologie, aucun standard ne pourra s'imposer seul à plus ou moins brève échéance.

Ce document décrit Network Computing Architecture, une architecture complète, ouverte et centrée sur le réseau, proposée par Oracle pour répondre aux exigences de souplesse et d'extensibilité des environnements distribués. Network Computing Architecture propose une approche claire pour intégrer l'informatique client-serveur avec Internet et les architectures objet distribuées. Une nouvelle génération de solutions puissantes et opérationnelles devient alors possible pour la production, l'aide à la décision, la coopération ou encore le commerce électronique. Ces solutions permettront l'avènement puis le développement d'une économie de réseau basée sur des transactions électroniques au sein d'une même entreprise, entre entreprises différentes et entre les consommateurs et les entreprises. Ces solutions seront capables d'intégrer les nouvelles applications et les anciens grands systèmes centralisés, ainsi que les environnements client-serveur existants, sur lesquels la majeure partie des applications de production fonctionnent toujours aujourd'hui.

Network Computing Architecture est la seule infrastructure multi-plates-formes couvrant l'ensemble des composants de l'informatique de réseau, et permettant de développer puis de déployer des applications réseaux à base d'objets au sein de l'économie de réseau. Au coeur de cette architecture, on trouve des standards ouverts du marché : CORBA 2.0 et HTTP/HTML. CORBA 2.0 est reconnu par l'ensemble du marché comme la technologie la plus avancée et la plus opérationnelle pour mettre en oeuvre concrètement un environnement objet distribué. Ce standard s'appuie sur IIOP pour l'interopérabilité des objets et IDL pour la définition d'interfaces indépendantes des langages. De plus, JAVA assure la programmabilité, la portabilité et l'extensibilité à tous les niveaux de l'architecture. Network Computing Architecture supporte et renforce également les clients ActiveX/COM à travers les spécifications ouvertes d'interopérabilité COM/CORBA ratifiées par l'Object Management Group (OMG).

INTRODUCTION

Depuis des années, les innovations technologiques se multiplient tant pour les matériels que pour les réseaux, et améliorent constamment les performances tout en réduisant les coûts. Plusieurs générations technologiques sont apparues au rythme de ces innovations : les mainframes, le client-serveur, Internet et les objets distribués.

L'univers client-serveur d'aujourd'hui

Dans les années 80, sont apparus les micro-ordinateurs dotés d'interface utilisateurs graphiques (les clients), des serveurs haut de gamme capables d'héberger des bases de données, et des réseaux locaux Ethernet pour les relier. Grâce à l'émergence de standards bien définis pour les serveurs comme pour les clients, les entreprises se sont engagées avec confiance dans des opérations de redimensionnement de leurs systèmes, visant à remplacer progressivement ou à compléter leurs anciennes infrastructures basées sur des grands systèmes centralisés. Quinze ans après l'arrivée du PC, le client-serveur est désormais l'architecture dominante, et constitue la base de la plupart des systèmes actuels des entreprises. Bien que certaines applications historiques demeurent sur les mainframes, les environnements client-serveur d'aujourd'hui accueillent des applications critiques d'exploitation développées nativement pour ces plates-formes, tout en intégrant des passerelles robustes vers les applications historiques et leurs données associées.

Bien que les clients PC aient représenté une alternative économique face aux systèmes propriétaires monolithiques et leurs terminaux en mode caractère, le client-serveur pose toutefois quelques problèmes :

· Les clients sont devenus "lourds" et requièrent toujours plus de logiciels et de matériels.

· L'administration des clients est de plus en plus complexe. La gestion des versions de plusieurs logiciels sur des centaines de clients mobilise des ressources importantes.

· Une fois le développement achevé, le logiciel client offre peu de possibilités de réutilisation pour étendre les applications.

Les avancées des technologies Internet, la baisse constante du coût des serveur haut de gamme et la croissance régulière des coûts de fonctionnement des clients PC ont incité les développeurs informatiques à compléter leurs stratégies client-serveur par le Web. L'objectif est de créer une plate-forme de développement qui réduise le coût de développement et de déploiement des applications. Les développeurs se tournent de plus en plus vers le modèle du Web, qui s'appuie sur un client léger (le navigateur), un niveau intermédiaire qui contient la logique applicative, et la base de données qui, comme dans le modèle client-serveur, conserve les données et les règles de gestion de l'entreprise.

L'environnement Internet d'aujourd'hui

Le développement d'Internet a permis l'émergence d'une nouvelle génération technologique, caractérisée par des réseaux bon marché à forte bande passante, et des clients Web simples et faciles à déployer. L'explosion initiale du Web s'appuyait sur des documents : des pages Web contenant des graphiques et des textes enrichis, étroitement interconnectées. Cette technologie fut d'abord déployée sous forme de documents interconnectés hébergés sur des serveurs centralisés, des grands systèmes d'entreprises consultés par des millions de navigateurs. Cette technologie de documents est maintenant bien implantée, elle constitue une plate-forme puissante et efficace pour gérer des documents, la navigation ou le "surf" restant le principal mode de consultation. Cette approche représente la première application distribuée, ouverte et multi-fournisseurs de l'informatique de réseau sur une grande échelle. Largement utilisée sur les Intranets des entreprises et sur le réseau public Internet, cette technologie évolue rapidement en fonctionnalité comme en performance, pour faciliter toujours plus la création, la recherche, le partage et la gestion de documents.

Le Web répond à certains défis que pose l'informatique client-serveur : il est facile à utiliser, résout le problème du "client lourd" et constitue une plate-forme de déploiement économique et ouverte. Cependant, pour devenir une plate-forme généralisée supportant de grandes applications distribuées, le Web manque d'évolutivité, de services de production, de sécurité et d'une approche simple pour créer, déboguer, déployer, gérer et exploiter les applications. Pour que le Web puisse évoluer d'une "bibliothèque" de documents vers une "plate-forme professionnelle électronique" capable de gérer des transactions sécurisées sur les Intranets et privés et l'Internet public, il doit relever quelques défis supplémentaires :

· Fournir la richesse des services de l'univers client-serveur, tels que la sécurité et l'intégrité des données et le support des transactions distribuées.

· Assurer une extensibilité robuste, évolutive et réutilisable, ce que n'apportent pas les "plug-ins" actuels.

Pour relever ces défis, il devient indispensable de disposer de programmes conçus pour les réseaux, des objets, qui seuls pourront offrir une extensibilité robuste, naviguer sur des réseaux planétaires et interopérer à travers n'importe quelle combinaison de systèmes d'exploitation, de langages, d'applications, d'outils et de matériels.

L'univers des objets distribués : pour rendre extensibles les architectures distribuées

La technologie objet est largement reconnue comme la nouvelle génération des méthodes de développement applicatif, car elle apporte les mécanismes nécessaires pour rendre plus efficace la programmation, et pour fournir des solutions rapides aux besoins et aux opportunités que rencontrent les entreprises. Les objets permettent également de constituer un environnement "ouvert" dans lequel chaque élément d'une solution peut être développé à un moment différent, par des équipes ou des services informatiques différents, et même par plusieurs éditeurs.

Qu'est-ce qu'un objet distribué ?

Un objet est une entité autosuffisante, comportant du code et des données. La conception objet contribue à la sûreté et à la qualité d'un produit, dans la mesure où chaque objet ne peut effectuer qu'un nombre limité d'actions bien précises (ses méthodes), et uniquement sur les données qu'il contient (c'est l'encapsulation). L'utilisation des objets accélère le développement, et diminue ainsi les coûts autant que le délai de mise sur le marché, car les possibilités d'un objet peuvent être reprises et étendues pour construire un nouvel objet distinct (c'est l'héritage). Les objets d'un système peuvent être différents, tout en répondant aux mêmes directives mais chacun à leur manière (c'est le polymorphisme). Cette particularité facilite leur gestion, en permettant par exemple d'envoyer un même message "arrêt" à tous les objets. Cette approche semble séduisante, et elle l'est, mais les objets classiques ne se retrouvent qu'au sein d'un même programme, sur une seule machine. Par contre, les objets distribués peuvent se trouver n'importe où tout en interopérant comme s'ils étaient sur la même machine, grâce à des systèmes de diffusion des requêtes objets (ORB - Object Request Brokers) qui leurs permettent d'exploiter les réseaux sous-jacents.

La technologie objet est susceptible d'améliorer de façon déterminante la productivité de la programmation, en permettant aux développeurs de rassembler des fonctions logicielles dans des entités plus utiles et mieux gérables. En tirant parti des réseaux, les objets peuvent devenir des objets distribués capables de fonctionner à travers différents systèmes d'exploitation, réseaux, langages et matériels. Comme pour l'approche client-serveur, les objets distribués permettent de mobiliser efficacement les ressources réseaux et informatiques à travers toute une organisation. Par exemple, une application peut prendre la forme d'un ensemble d'objets dont certains fonctionnent sur un serveur d'entreprise, et d'autres sur un serveur départemental ou même sur les PC des utilisateurs finals.

Tous ces mécanismes apportent l'extensibilité qui faisait défaut dans l'environnement client-serveur. Parfaitement intégrable avec les technologies Internet, la technologie des objets distribués pourra améliorer de façon fondamentale les informatiques Web et client-serveur :

· Les développeurs peuvent créer de nouvelles applications en connectant des objets logiciels qui contiennent la logique fonctionnelle de l'entreprise.

· Les équipes de développeurs peuvent structurer, partager et enrichir en parallèle les caractéristiques des objets.

· Les objets logiciels peuvent être distribués à travers le réseau, ils sont interopérables et indépendants des plates-formes.

· Les objets distribués peuvent être partitionnés sur le réseau pour exploiter au mieux les ressources systèmes, une possibilité qui n'était pas imaginable quand la logique applicative était emprisonnée dans un client lourd.

· Grâce à des enveloppes objets, les objets distribués peuvent coexister avec les applications et les interfaces historiques encore en place.

Quand on observe cette progression technologique du client-serveur vers l'informatique objet centrée sur le réseau, on est tenté de penser que la technologie que les clients attendaient est enfin là. Le problème est qu'elle prend des formes très variées et concurrentes, et que les développeurs et les entreprises se retrouvent ainsi face à un véritable dilemme.

Le dilemne du développeur

Avec la multiplication des nouveaux environnements systèmes, les développeurs disposent d'une quantité toujours plus grande d'outils et de technologies. De nombreuses technologies se disputent le statut d'infrastructure des grandes applications distribuées, les fondations de l'économie de réseau émergente. Certaines de ces technologies sont issues de travaux de standardisation, d'autres proviennent de recherches universitaires et d'autres encore sont proposées par des éditeurs. Elles cherchent toutes à retenir l'attention des marchés pour vaincre à terme leurs concurrentes. Chaque technologie, notamment HTTP/HTML, CORBA, IIOP, ActiveX, DCOM, Java et JavaScript, offre des possibilités uniques d'amélioration de la productivité du développement, ou des mécanismes nouveaux pour les utilisateurs. Mais lorsqu'un développeur choisit un outil ou une technologie, cet engagement peut limiter ses possibilités de révision ou d'adaptation des fonctions centrales de son système. Cette restriction limite ainsi ses capacités de réaction aux changements.

Chaque outil, chaque technologie de distribution et chaque API que choisit un développeur représente un investissement important en logiciel, en formation et en infrastructure opérationnelle. A ces coûts peuvent s'ajouter rapidement des risques importants. Pour un développeur, l'idéal est de pouvoir exploiter le meilleur de chaque environnement tout en faisant peu de compromis. Ainsi, un développeur voudra écrire des applications Web capables d'effectuer des transactions sur une base de données, ou encore écrire une application client-serveur SQL dotée d'un frontal Web.

Le dilemme de l'entreprise

L'adoption rapide des technologies Internet par le public et les entreprises a évolué de la simple consultation de documents à l'exigence de véritables applications professionnelles, dont certaines sont déjà mises en oeuvre en utilisant des extensions diverses des technologies de base d'Internet. Cependant, ces applications n'apportent pas encore les services robustes de transactions, de messagerie et d'accès aux données qui caractérisent les applications client-serveur. Si les entreprises veulent déployer des applications Internet robustes, elles veulent également protéger les investissements importants que représentent pour elles la technologie client-serveur et son intégration avec les anciens systèmes existants.

Pour les entreprises, le véritable défi est donc l'intégration transparente des systèmes existants avec les nouvelles technologies Web et objet, pour créer des solutions de production, d'aide à la décision, d'Intranet et de commerce électronique capables de contribuer efficacement au bon fonctionnement d'une entreprise.

LA VISION D'ORACLE : NETWORK COMPUTING ARCHITECTURE

Oracle a créé Network Computing Architecture en considérant qu'aune approche ne pourra s'imposer de façon exclusive. Oracle est convaincu que les besoins des entreprises ne pourront être satisfaits qu'en combinant les meilleures technologies, qu'elles soient nouvelles ou existantes, et que ces technologies seront transformées de façon significative par l'industrie informatique pour répondre aux contraintes des environnements de production. Oracle est par ailleurs convaincu que le monde des technologies et des standards ouverts n'a pas besoin d'une nouvelle solution promue par un éditeur (voir l'annexe A).

Au coeur de Network Computing Architecture, on retrouve des standards de facto et ouverts : CORBA 2.0 et HTTP/HTML.

Des standards de facto et ouverts

Network Computing Architecture protège les développeurs et les entreprises des risques inhérents à l'évolution très rapide des technologies, en proposant une architecture basée sur les standards pour unifier le client-serveur, le Web et les objets distribués. Le support des principaux standards de facto et ouverts garantit que les développeurs peuvent utiliser le client de leur choix, le langage qui convient à chaque application, et un modèle de programmation permettant un déploiement rapide.

Que signifient CORBA et IIOP ?

CORBA est l'abréviation de Common Object Request Broker Architecture (architecture commune de diffusion des requêtes objets). Il s'agit d'une spécification proposée par un consortium appelé l'Object Management Group (OMG) qui regroupe plus de 600 entreprises représentant l'intégralité de l'industrie informatique, à l'exception notable de Microsoft. CORBA définit une architecture distribuée basée sur un bus logiciel ouvert, à travers lequel des objets d'éditeurs différents, fonctionnant sur des systèmes d'exploitation différents, peuvent interagir. IIOP est un protocole basé sur les technologies Internet (TCP/IP) pour assurer l'interopérabilité des différentes implémentations de CORBA (IIOP signifie Internet Inter-ORB Protocol). Ce protocole de communication garantit l'indispensable interopérabilité entre les objets.

Network Computing Architecture associe les technologies du Web, HTTP et HTML, aux technologies objet de CORBA 2.0 pour constituer la base de l'informatique distribuée de l'économie de réseau. CORBA 2.0 est reconnu par l'ensemble du marché comme la technologie la plus avancée et la plus opérationnelle pour mettre en oeuvre concrètement un environnement objet distribué. Ce standard s'appuie sur IIOP pour l'interopérabilité des objets et IDL pour la définition d'interfaces indépendantes des langages. De plus, JAVA assure la programmabilité, la portabilité et l'extensibilité à tous les niveaux de l'architecture. Network Computing Architecture supporte et renforce également les clients ActiveX/COM à travers les spécifications ouvertes d'interopérabilité COM/CORBA ratifiées par l'Object Management Group (OMG). Cet ensemble est complété par différents services développés par Oracle.

Cette approche ouverte permet aux développeurs d'assembler les composants les mieux adaptés pour créer des applications apportant de réels avantages aux entreprises. Pour la première fois, ils pourront créer des applications pour le Web et les réseaux d'entreprises qui associent :

· la robustesse de l'univers client-serveur ;

· la facilité, les faibles coûts de déploiement et la souplesse du Web ;

· et les mécanismes de composants du monde objet.

Avec Network Computing Architecture, toute application client-serveur existante peut tirer parti des technologies Web avec peu de modifications, et les nouvelles applications Web peuvent s'intégrer de façon transparente et exploiter les avantages des systèmes client-serveur existants sans bouleverser complètement l'infrastructure informatique.

LES PRINCIPAUX COMPOSANTS DE NETWORK COMPUTING ARCHITECTURE

Les principaux constituants de Network Computing Architecture sont :

· Des objets que l'on peut "brancher" dans l'infrastructure, appelé cartouches. Ils sont indépendants et fournissent des fonctionnalités très variées.

· Des protocoles ouverts et des interfaces standardisées permettant la communication entre les cartouches, via un bus logiciel appelé Inter-Cartridge Exchange (ICX).

· Des clients, serveurs d'applications et serveurs de bases de données extensibles :

· une famille de clients,

· le serveur d'applications Universal Application Server d'Oracle,

· Oracle® Universal Server®.

· Des outils intégrés de développement et de gestion des cartouches.

Qu'est-ce qu'une cartouche ?

Une cartouche est un objet indépendant. Il présente une interface neutre, indépendante du langage, définie en IDL (Interface Definition Language). Cette interface permet à la cartouche de s'identifier auprès des autres objets au sein d'une système distribué. Les cartouches peuvent être programmées dans de nombreux langages, notamment Java, Visual Basic, C/C++ ou encore SQL.

Les cartouches ont accès aux Services Universels de Cartouches :

· L'installation : le mécanisme permettant d'installer le code, c'est-à-dire le logiciel lui-même, sur les ordinateurs du réseau devant l'accueillir.

· L'inscription : le mécanisme à travers lequel une cartouche entre en service, c'est-à-dire devient utilisable.

· L'instanciation : le mécanisme d'activation d'une cartouche lui permettant de traiter les demandes de services la concernant. Une cartouche peut fonctionner sur plusieurs machines différentes, le nombre d'instances activées pouvant fluctuer en fonction de la demande de ses services.

· L'invocation : le mécanisme utilisé par une application, ou de façon générale toute autre cartouche, pour effectivement mettre en action une cartouche afin qu'elle exécute l'une de ses fonctions.

· L'administration : les mécanismes de contrôle des versions, des mises à jour, etc.

· La surveillance : les mécanismes d'exploitation et de supervision de l'activité d'une cartouche.

· La sécurité : les mécanismes assurant la protection et l'utilisation à bon escient des données et des ressources informatiques.

Certains de ces services font partie du standard CORBA 2.0. Dans un environnement hétérogène s'appuyant sur les technologies client-serveur, Internet et objets distribués, les cartouches facilitent la gestion et le déploiement des objets CORBA. Par exemple, un plug-in de navigateur basé sur CORBA, tel qu'une applet Java utilisant IIOP pour accéder à un serveur, devient une cartouche en accédant aux Services Universels de Cartouches. Toutes ces opérations peuvent s'effectuer avec CORBA et IIOP.

En plus des Services Universels de Cartouches, les cartouches ont accès aux Services Evolutifs de Cartouches et aux Services Spécialisés de Cartouches (voir plus loin), à travers un bus logiciel appelé Inter-Cartridge Exchange.

Inter-Cartridge Exchange (ICX)

ICX est une bus objet qui permet aux cartouches distribuées à travers un réseau de communiquer entre elles. Pour assurer ce service de communication, ICX utilise nativement les protocoles IIOP et HTTP, et effectue les traductions nécessaires pour passer d'un environnement à l'autre (par exemple, présenter un objet CORBA basé sur Java comme s'il s'agissait d'un objet DCOM, lorsqu'il est accédé à partir d'une applet PC ActiveX). Concrètement, ICX est un ensemble de bibliothèques et de services résidant sur différents ordinateurs attachés au réseau. Ces bibliothèques permettent aux cartouches d'accéder aux ressources suivantes :

· d'autres cartouches,

· des clients,

· des serveurs,

· des services.

ICX permet également d'interfacer des environnement propriétaires avec Network Computing Architecture.

Intégration d'ICX avec COM

Les clients ActiveX/COM peuvent communiquer avec les cartouches via une passerelle. Les clients ActiveX/COM supportant Java peuvent accéder aux cartouches, ainsi qu'aux services évolutifs fournis par Universal Application Server (transactions, messagerie et files d'attente).

Intégration d'ICX avec Java

Network Computing Architecture assure l'intégration de Java dans l'environnement CORBA/IIOP à travers plusieurs mécanismes : la conversion de CORBA IDL dans le langage Java, le support de Java sur le client ou sur le serveur via IIOP, et JDBC pour un accès ouvert aux bases de données.

Intégration d'ICX avec les grands systèmes

L'intégration des grands systèmes, les mainframes, est assurée par l'encapsulation des interfaces des mainframes dans des cartouches et des services interopérables pour la messagerie, les files d'attente et les transactions.

Autres services de cartouches

Dans une telle infrastructure, les applications distribuées peuvent être écrites sur HTTP et/ou IIOP. Néanmoins, pour bâtir de "véritables" applications distribuées, les mécanismes élémentaires de communication offerts par HTTP et IIOP sont insuffisants. D'autres mécanismes jouent également un rôle primordial : la sécurité, les transactions, la persistance, le contrôle de concurrence ou encore les services de nommage et d'annuaire.

Pour constituer un environnement de programmation plus productif, d'autres services de cartouches apportent des fonctionnalités supplémentaires utilisables simplement par les applications, ce qui évite de coder ces mécanismes au sein même des applications. Pour garantir leur ouverture, ces services sont basés sur les standards CORBA.

Les cartouches peuvent ainsi utiliser les Services Evolutifs de Cartouches :

· Transactions : la possibilité d'encadrer une série d'actions et de les traiter comme une opération atomique.

· Messagerie et files d'attente : pour permettre des interactions asynchrones entre cartouches, un service largement utilisé dans les environnements transactionnels et les mainframes.

· Accès aux données : la possibilité d'accéder aux services d'un serveur de base de données via des interfaces ouvertes et publiées.

Les cartouches peuvent aussi accéder aux Services Spécialisés de Cartouches, en fonction de l'emplacement où chaque cartouche est sensée être hébergée :

· Les cartouches de données dans le serveur de base de données ont accès à des services d'extension des bases de données.

· Les cartouches de serveur applicatif résident dans le serveur d'applications, et disposent de services évolutifs de distribution et de gestion de charge.

· Les cartouches clientes ont accès aux services des interfaces utilisateurs standards.

CLIENTS, SERVEURS APPLICATIFS ET SERVEURS DE BASE DE DONNEES EXTENSIBLES

L'extensibilité complète des clients, des serveurs applicatifs et des serveurs de base de données permet de constituer des solutions hétérogènes multi-plates-formes. La technologie des cartouches permet l'extensibilité à tous les niveaux de Network Computing Architecture (voir l'annexe B).

La famille des clients de l'informatique en réseau

Au niveau du client, plusieurs standards d'interopérabilité entrent en concurrence. Le client ONE de Netscape serait un client basé sur un navigateur qui pourrait se brancher directement dans l'architecture puisqu'il utilise IIOP. Le standard ActiveX de Microsoft est devenu une technologie importante pour constituer des composants réutilisables d'interface utilisateur sur les postes de travail Windows. Alors que les applications Web sur Intranet/Internet commencent à se multiplier, HTML et Java s'imposent également comme des standards de facto sur le client. Dernier venu mais promis à un bel avenir, le Network Computer fait l'objet d'un intérêt croissant, et devient une alternative économique et mieux gérable que le PC dans une architecture centrée sur le réseau.

Qu'est-ce que ActiveX/COM/DCOM ?

Les contrôles ActiveX de Microsoft sont des composants bien définis au sein du modèle objet de Microsoft, qui offrent une extensibilité orientée objet sur les machines Windows 95 et NT, essentiellement pour les postes de travail clients. Le modèle objet de composants de Microsoft, COM (Component Object Model), est l'infrastructure d'accueil de ces contrôles au sein d'un client ou d'un serveur donné. Pour l'interopérabilité objet entre machines via le réseau, Microsoft propose DCOM (Distributed COM). "Standard" mono-fournisseur, DCOM est un mécanisme d'interopérabilité pour systèmes homogènes, par opposition à CORBA/IIOP qui est un standard multi-fournisseurs pour les réseaux rassemblant des systèmes hétérogènes.

Lorsque l'on assemble des composants logiciels, il est extrêmement important d'utiliser des standards du marché largement reconnus. On s'assure ainsi de pouvoir remplacer une partie du système qui viendrait à défaillir. Mais on se réserve aussi la possibilité de pouvoir remplacer un ancien composant par un nouveau composant qui offrirait le même service mais de façon plus efficace. Pour assembler des composants, seule l'utilisation des standards du marché permet d'accéder à une gamme toujours plus étendue de composants prêts à l'emploi, avec la certitude qu'ils fonctionneront ensemble lorsqu'on les assemblera.

Network Computing Architecture supporte tous ces clients, et permet aux développeurs de créer leurs cartouches en choisissant librement leur langage : Java, JavaScript, C/C++, Visual Basic ou encore les langages basés sur SQL. Les clients et les cartouches pouvant communiquer via ICX, les équipes de développement ne sont plus tenues de faire des choix uniques en matière d'environnements de développement. Tant que les composants produits par chaque équipe respectent des protocoles ouverts et standards, chaque cartouche pourra de façon certaine interopérer avec les autres à travers l'architecture.

Universal Application Server d'Oracle

Universal Application Server joue un rôle central pour les applications destinées à Network Computing Architecture. Il constitue une plate-forme de réutilisation de la logique fonctionnelle, et prend en charge du code applicatif qui sinon devrait se trouver sur le client ou dans le serveur de base de données. Les clients de Network Computing Architecture restent ainsi légers et plus faciles à gérer, et les développeurs applicatifs peuvent devenir plus spécialisés : les experts d'un domaine fonctionnel codent les règles de gestion, alors que les concepteurs d'interfaces s'occupent de créer le client.

Un serveur d'applications évolutif pour le Web

Oracle Web Request Broker est un serveur d'applications qui supporte les cartouches applicatives pour les programmes basés sur HTTP/HTML. Il apporte aux cartouches "Web" les services d'un ORB conforme à CORBA, et permet ainsi une intégration transparente des applications Web avec les applications objet. En complétant cet environnement par une indépendance complète envers les serveurs HTTP et par des services transactionnels évolutifs, Oracle a créé pour le Web un serveur d'applications particulièrement robuste.

Un serveur d'applications évolutif pour l'informatique en réseau

Si l'on ajoute l'interopérabilité IIOP et des services de connectivité, Web Request Broker devient Universal Application Server, un produit Oracle s'appuyant sur un ORB et sur les Services Evolutifs de Cartouches. Certains services font partie intégrante de CORBA 2.0, d'autres constituent la valeur ajoutée apportée par Oracle (par exemple l'accès aux données). Tous ces services sont accessibles par toutes les cartouches via ICX, sur HTTP ou IIOP.

D'autres protocoles de connectivité seront intégrés dans Universal Application Server. Connectivity Broker gère l'interfaçage et les interactions avec les mécanismes client-serveur existants, tels que les sites Oracle utilisant les RPC SQL*Net®, ou encore les environnements de communication spécifiques comme les services sans fils.

Oracle Universal Server

Oracle Universal Server permet le stockage et la manipulation des données dans un environnement robuste et évolutif. En plus des données relationnelles traditionnelles, Oracle Universal Server a été étendu pour supporter de nouveaux types de données, notamment la vidéo, le son, le texte et les données spatiales. Il apporte ainsi des moyens nouveaux pour gérer, manipuler et diffuser les données de l'économie de réseau.

En complétant les données stockées dans la base de données par de la logique applicative, on obtient des avantages significatifs en performance comme en gestion pour de nombreuses applications. Avec les procédures stockées, les développeurs applicatifs peuvent placer dans le serveur le code sollicitant le plus fortement la base de données (par exemple le calcul de statistiques synthétiques sur des données de vente), et exploiter ainsi les puissants mécanismes de la base de données, tels que l'exécution parallèle des requêtes. De plus, avec la technologie objet-relationnelle, les éditeurs indépendants peuvent compléter les fonctions centrales du moteur de base de données pour créer de nouveaux types de données supportant des services particulièrement sophistiqués, tels que la reconnaissance de formes sur des images ou de séquences sur du son.

Extension de la base de données en toute sécurité

Au sein d'Oracle Universal Server, les Services d'Extensibilité de la Base de donnée permettent d'accéder à l'indexation, au moteur de requête, à l'administration et à d'autres composants essentiels du noyau de la base de données. En encapsulant ces services d'extensibilité dans une interface de haut niveau via IDL et SQL, les développeurs peuvent créer des cartouches de données spécialisées pour mettre en oeuvre efficacement des nouveaux types de données. Développées avec des outils standards et gérées dans la base de données via les Services Universels de Cartouches, les cartouches de données représentent une technologie sûre et standard pour offrir de nouvelles fonctionnalités au sein de la base de données.

Contrairement aux technologies propriétaires d'extensibilité (telles que DataBlades), les cartouches Oracle Universal Server constituent un environnement standard pour formaliser la logique des données avec Java, SQL et IDL. Toujours par opposition aux autres formes d'extensibilité des bases de données, les cartouches supportent le réseau à travers les Services Universels de Cartouches standards, notamment l'installation et l'inscription. ICX complète Oracle Universal Server pour supporter CORBA/IIOP et HTTP, et permet ainsi une communication directe bidirectionnelle entre les cartouches du serveur de la base de données, du serveur d'applications et du client. Enfin, les données et les services d'Oracle Universal Server demeureront toujours accessibles par SQL*Net, comme ils le sont aujourd'hui.

DEVELOPPEMENT DES APPLICATIONS A BASE DE CARTOUCHES

Pour bâtir des applications fonctionnant dans un réseau distribué de clients, de serveurs d'applications et de serveurs de base de données, il faut disposer d'une nouvelle génération d'outils logiciels. Heureusement, les objets permettent de développer les applications destinées à de très grands réseaux aussi facilement que les applications destinées à un ordinateur isolé.

Au sein de Network Computing Architecture, il est possible d'utiliser plusieurs environnements, techniques et outils pour développer des cartouches et des applications. Il existe deux catégories d'environnements de développement : ceux basés sur un langage, et ceux basés sur des objets.

Les environnements de développement basés sur un langage : le langage de programmation est au coeur de ces environnements, et les outils sont dédiés aux tâches de création de code avec ce langage. De nombreux outils de cette catégorie existent pour les langages les plus répandus, de C et C++ jusqu'à Java. Grâce à CORBA et ses nombreuses conversions de langages pour IDL, tous ces langages peuvent être utilisés pour créer des cartouches :

· Les outils de développement client-serveur Web, notamment :

Oracle Developer/2000 pour le développement de grilles d'écran SQL basées sur le Web,

Oracle Designer/2000 pour la conception des logiciels par un AGL supportant SQL et le Web.

· Tout outil de développement Java.

· Tout outil de développement Visual Basic, C ou C++.

Les environnements de développement basés sur des objets : dans cette approche, le langage est secondaire. Le plus important, c'est les composants eux-mêmes, les cartouches. Ces outils fournissent des mécanismes pour la conception, notamment la définition des fonctions et de leur localisation (sur les clients, les serveurs d'applications ou les serveurs universels). Développé par Oracle, Sedona est un exemple de cette approche. Il s'agit d'un nouvel environnement de développement applicatif basé sur le modèle des cartouches. Sedona fournit une architecture orientée objet pour l'analyse, la conception et le déploiement, permettant d'assembler et de déployer des applications objet distribuées dans le cadre de Network Computing Architecture. Les principales fonctionnalités de Sedona sont les suivantes :

· Assemblage et modélisation objet des cartouches.

· Développement de cartouches et d'applications objet avec des outils intégrés de programmation orientée objet.

· Support du développement en équipe via un référentiel.

GESTION DES APPLICATIONS A BASE DE CARTOUCHES

Oracle Enterprise Manager est un outil souple et extensible pour gérer l'ensemble de l'environnement Oracle. Une architecture console-agent constitue une couche légère de services communs pour une grande variété d'applications de gestion, notamment l'installation, l'administration, la configuration et la surveillance. Oracle Enterprise Manager permet actuellement de gérer de nombreux composants de l'environnement Oracle, tels que les systèmes, les bases de données, les réseaux et les applications. Il sera complété pour gérer les cartouches à tous les niveaux de Network Computing Architecture.

Oracle Enterprise Manager comporte également une famille d'outils basés sur le Web, permettant de gérer, de surveiller et d'administrer une base de données à partir d'un navigateur Web standard. Les outils Web seront intégrés sous la forme d'une cartouche dans Web Request Broker, avec un mécanisme de découverte automatique pour les autres outils de gestion basés sur le Web. Pour une plus grande extensibilité, des API seront publiées afin que d'autres outils de gestion des cartouches puissent se connecter à la console Oracle Enterprise Manager.

Résumé

Network Computing Architecture est la stratégie d'Oracle pour concevoir, déployer et gérer les systèmes distribués professionnels d'aujourd'hui. Cette infrastructure permet de bénéficier de la robustesse du monde client-serveur, de la facilité d'utilisation et de déploiement de la technologie Web, et de l'extensibilité du monde objet. Network Computing Architecture répond aux besoins et aux préoccupations de plusieurs publics :

· Pour les développeurs indépendants ou les services informatiques, Network Computing Architecture représente une infrastructure d'intégration de composants logiciels nouveaux ou préexistants, et la possibilité de choisir les meilleures technologies pour les mettre en oeuvre. Son architecture ouverte permettra aux développeurs d'utiliser leurs outils favoris pour créer des solutions fiables, accessibles, maintenables et facilement extensibles.

· Pour les responsables informatiques, Network Computing Architecture facilite le déploiement et simplifie la gestion d'applications puissantes et novatrices.

· Pour les responsables d'une activité, Network Computing Architecture est une approche économique d'intégration des nouvelles technologies, permettant de valoriser les investissements logiciels et matériels déjà effectués et de réduire les coûts de développement des nouvelles solutions.

· Pour les directions générales, Network Computing Architecture est une solution rassurante, sûre et bénéficiant d'un support mondial. Elle s'inscrit dans la continuité des technologies Oracle qui ont fait leur preuve, et intègre les standards ouverts multi-fournisseurs les plus largement adoptés.

En partant des infrastructures existantes, Network Computing Architecture permet de créer un environnement dans lequel les applications distribuées peuvent être aisément construites, déployées et gérées, en utilisant les objets de nombreux éditeurs. Cette approche s'appuie en effet sur :

· l'extensibilité de l'objet,

· la robustesse du client-serveur,

· et la facilité d'utilisation et de déploiement du Web et d'Internet.

Ces trois principes essentiels sont au coeur des plates-formes techniques opérationnelles aujourd'hui. Network Computing Architecture mobilise ces atouts fondamentaux de l'industrie informatique, pour exploiter réellement le réseau au bénéfice de véritables applications : pour enfin concrétiser l'Economie de Réseau. Il n'est pas nécessaire d'attendre qu'une communauté technique "gagne" et domine le marché. Cette infrastructure n'introduit pas une technologie supplémentaire. Elle combine trois technologies déjà largement validées par l'industrie et sur le terrain pour constituer une plate-forme d'avenir. Elle propose l'unification des univers disparates que sont encore le client-serveur, le Web et l'informatique objet distribuée, dans le cadre d'un modèle informatique commun basé sur les standards existants.

Pour en savoir plus

Pour obtenir plus d'informations concernant Network Computing Architecture, et pour découvrir ce qu'en disent les clients ainsi que les autres acteurs du marché, pointez votre navigateur sur le site www.oracle.com.

ANNEXE A

Oracle et les standards du marché

En 1979, Oracle produisit la première base de données relationnelle commerciale du monde, et la première implémentation du langage SQL. Ce fut l'un des premiers pas d'une mutation profonde du secteur informatique, qui passait des logiciels propriétaires aux logiciels ouverts compatibles avec les standards du marché.

Standards reconnus et standards concurrents

SQL est aujourd'hui le langage standard largement reconnu pour les bases de données. Mais dans plusieurs autres domaines, il existe non pas un seul, mais plusieurs "standards" concurrents. Rien que sur les postes de travail PC, il existe plusieurs systèmes d'exploitation, protocoles réseaux et interfaces utilisateurs graphiques, tous concurrents. De même pour les navigateurs Web. Actuellement, plusieurs standards concurrents apparaissent également pour les serveurs applicatifs intermédiaires, mais ils nécessitent tous des développements spécifiques et aucun d'entre eux ne fournit les outils d'administration nécessaires pour gérer le serveur d'applications. L'éternelle question se pose à nouveau : lequel choisir ? et si vous faisiez le "mauvais" choix ?

Oracle les supporte tous

Pour limiter les conséquences des changements, la stratégie d'Oracle a toujours été la même : nous les supportons tous. Nos serveurs, nos outils et nos applications sont portables, et supportent par conséquent tous les ordinateurs, tous les systèmes d'exploitation, tous les réseaux, toutes les interfaces utilisateurs, et tous les modèles objets. Cette portabilité signifie que les entreprises peuvent adopter en toute confiance l'un des standards actuellement disponibles, puis migrer progressivement vers de nouveaux standards émergeants, ou vers le standard "gagnant" si l'un d'entre eux finit par dominer le marché. De la même façon qu'Oracle a supporté MS-DOS et UNIX, TCP/IP et LAN Manager, Windows et Motif, nous protégerons les investissements de nos clients en supportant aussi bien les clients CORBA que ActiveX.

Comme toujours, Oracle s'engage aux côtés des entreprises avec un environnement ouvert et hétérogène. Grâce à notre infrastructure Network Computing Architecture basée sur CORBA, nous continuerons à apporter l'innovation, la fiabilité, l'évolutivité et la performance auxquelles le monde entier est maintenant habitué de la part d'Oracle.

ANNEXE B

Un exemple de solution de Commerce Electronique basée sur Network Computing Architecture

Cet exemple décrit une solution de Commerce Electronique utilisant trois cartouches.

· Une applet "Caddie" écrite en Java et fonctionnant sur un poste client. Elle fournit l'interface utilisateur d'une boutique. Les applets ne disposent pas des multiples services accessibles aux cartouches, mais elles peuvent néanmoins interagir avec elles.

· Une cartouche de publicité fournit tous les services de publicité électronique.

· Une cartouche de boutique électronique gère notamment le caddie électronique, l'ouverture de compte et la visualisation électronique des marchandises.

· Une cartouche de paiement pour Universal Application Server exécute les transactions de paiement en s'interfaçant avec un système central reconnu qui procède aux vérifications de solvabilité.

· Au sein du serveur universel (le système informatique du commerçant), une application existante de prise de commandes s'interface avec la logistique de traitement des commandes de l'entreprise, mais aussi avec la cartouche de paiement. La logique du programme au sein de la base de données peut s'adresser à la cartouche de paiement pour exécuter une tâche, par exemple le lancement du paiement au moment de la livraison du produit.

· Les clients SQL existants au sein du système d'information sont utilisés pour effectuer les opérations classiques de l'entreprise, telles que l'analyse de marché.

Chacune de ces cartouches peut avoir une provenance différente : éditeur, intégrateur de système ou équipe informatique interne. Elles peuvent avoir été développées à des moments différents, pas forcément dans le cadre de la mise en oeuvre de ce système particulier de commerce électronique. Certaines peuvent s'appuyer sur IIOP, d'autres sur HTTP, Java ou ActiveX.

Ce type d'applications deviendra bientôt courant. Avec l'évolution des technologies et la multiplication des cartouches et composants standardisés, il sera de plus en plus facile de mettre en oeuvre des applications encore plus élaborées.

Copyright ©Ó Oracle Corporation 1996
Tous droits réservés
Ce document est uniquement fourni à titre d'information, son contenu peut être modifié sans préavis. Veuillez transmettre à Oracle Corporation toute erreur que vous pourriez constater. Oracle Corporation ne fournit aucune garantie, et rejette toute responsabilité légale concernant ce document.

Oracle est une marque déposée d'Oracle Corporation. Oracle7, Oracle WebServer et PL/SQL sont des marques d'Oracle Corporation. Tous les autres noms de produits ou de sociétés mentionnés le sont uniquement à des fins d'identification, et peuvent être des marques appartenant à leurs propriétaires respectifs.

Oracle Corporation

Siège Mondial
500 Oracle Parkway

Redwood Shores, CA 94065
U.S.A.
Informations internationales :
Tél 001.415.506.7000
Fax 001.415.506.7200