1 Introduction Ce chapitre décrit Oracle Fusion Middleware. Il comprend : o Qu'est-ce que Middleware o Les fonction de Middleware o L'architecture de conception Middleware o L'architecture orientée services (SOA) o La Solution Oracle Fusion Middleware 1.1 Qu'est-ce que Middleware? Middleware est le logiciel qui connecte des composants logiciels ou application d'entreprise. Middleware est la couche logicielle qui lie le système d'exploitation et les applications sur les différentes parties d'un réseau distribué de machine. Voir (Figure 1-1). Typiquement, il supporte des applications d'entreprise complexes distribuées. Middleware est l'infrastructure qui facilite la création d'applications d'entreprises et fournit les services noyau comme la concurrence, les transactions, la messagerie et le framework SCA pour les applications SOA. Il fournit aussi la sécurité et permet la fonctionnalité haute disponibilité de votre entreprise. Middleware Inclut des serveurs web, des serveurs d'applications, des systèmes de gestion de contenu et des outils similaires qui supporte le développement et la livraison d'applications. Il est particulièrement intégré avec la technologie d'informations basée sur Extensible Markup Language (XML), Simple Object Access Protocol (SOAP), Web services, SOA, Web 2.0 infrastructure, et Lightweight Directory Access Protocol (LDAP) etc. Figure 1-1 Architecture Middleware 1
Du fait de la croissance et l'utilisation des applications réseau par les entreprises, les technologies middleware sont très importantes. Les entreprises et organisations construisent maintenant des systèmes d'information et intégre les applications autrefois indépendantes avec de nouveaux développements logiciels. Le processus d'intégration peuvent entrainer une utilisation avec des interfaces non modifiables. Dans certains cas réécrire le code peut être coûteux. De plus en plus les systèmes d'information sont composés d'une collection de différents périphériques logiciels spécialisés interconnectés par un réseau. Chaque périphérique effectue une fonction qui entraine une réception en temps réel des données et une interaction à distance avec d'autres périphériques du système. Comme par exemple des machines réseau, des systèmes de télécommunications des unités d'alimentation ininterrompues et des unités de production décentralisées. L'interaction avec le système d'information peut couvrir une vaste gamme de performance. Vous pouvez interagir avec des applications internet par une variété de périphériques dont les caractéristiques et performance couvrent une gamme toujours plus large. Entre un pc très performant, un smart phone et un personal digital assistant, les variations de la bande passante, la puissance de traitement local, la capacité de l'écran et la possibilité d'afficher des images sont extrêmement larges. 1.2 Les Fonctions de Middleware les Applications utilisent des logiciels qui résident sur le haut des operating systems et protocoles de communication pour effectuer les fonctions suivantes : o Masquer la nature distribuée de l'application. Une application représente une collection de parties interconnectée qui sont opérationnelles et s'exécutent à différents emplacements, hors de la vue. o Masquer l'hétérogéneité de l'entreprise. Cela inclut les composants hardware utilisés, les operating systems, et protocoles de communication. o Fournir des interfaces uniformes, standard de haut niveau aux développeurs d'application et intégrateurs pour que les applications puissent être facilement composées, réutilisées, portées et construites pour interopérer. o Fournir un ensemble de services communs pour éffectuer des fonctions génrales pour éviter la duplication d'efforts, et faciliter la collaboration entre applications. o Middleware rend le dévelopement d'application plus facile en fournissant une abstraction de programmation commune, en masquant l'hétérogénéité et la distribution du hardware et operating systems, et en masquant les details de programmation de haut niveau. 1.3 Middleware Architecture Design La fonction de middleware est d'arbitrer l'interaction entre les parties d'une applications ou entre les applications. Aussi les considérations de la structure de l'architecture joue un rôle primordial dans le design middleware. La conception architecturale englobe l'organisation, la structure générale et les modèles de communication, à la fois pour les applications et pour le middleware lui-même. A côté des aspects de l'architecture, les problèmes principaux de la conception middleware porte sur différents aspects des systèmes distribués. N'importe quel système est attaché à une couche de communication qui permet à ses différentes 2
pièces d'interopérer. En plus la communication est une fonction fournie par le middleware lui même aux applications, dans lequel les entités de communication peuvent jouer différents rôles comme le client serveur ou le peer-to-peer. Middleware permet différent modes d'interaction (des invocations synchrones, le passage de message asynchrone, la coordination à travers les objets partagés) incorporés dans différents modèles. Aussi le système de conception middleware fait face à différents challenges : Les systèmes Middleware s'appuie sur des mécanismes d'interception et d'indirection qui induisent des pénalités de performance. Le Middleware adaptable introduit des indirections supplémentaires ce qui rend la situation encore pire. Comme les applications deviennent de plus en plus interconnectées et interdépendantes, nombre d'objets, d'utilisateurs et de machines tend à augmenter. Cela pose le problème d'évolutivité de la communication et d'algorithme de gestion objet et la complexité de l'administration. La disponibilité, la fiabilité, la concurrence, la sécurité et la performance des applications peut aussi être une question. L'informatique généralisée est une vision de l'avenir proche dans lequel un nombre considérable de machines incorporées dans des objets physiques variés participent à un réseau global d'information. La mobilité et la reconfiguration dynamique seront des fonctions prédominantes nécessitant une adaptation permanente des applications. Gérer de grosses applications hétérogènes distribuée et en permanente évolution pose plusieurs questions comme une observation constante, la sécurité, un compromis entre l'autonomie et l'interdépendance pour les différents sous-systèmes et la définition et l'implémentation de politique de gestion des ressources. 1.4 L'Architecture Orientée Service L'architecture orientée service (SOA) est un style d'architecture dont le but est de réaliser un couplage entre les diverses applications logicielles en interaction permettant aux organisations de tirer parti des investissements existants dans les applications et systèmes. SOA facllite de développement de services d'entreprises modulaires pouvant être faciliement intégrés et réutilisés afin de créer une infrastructure flexible et adaptable. Avec l'approche SOA, une organisation peut se focaliser plus de ressources et budget sur l'innovation et sur la livraison de services nouveaux. Les systèmes qui peuvent utiliser avec succès SOA permettent de diminuer l'interruption de services planifiés ou non dans une entreprise. Certains avantages de SOA sont : o La réduction du temps de développement et des coûts : les services SOA sont facilement réutilisés et rapidement assemblés en de nouvelles applications composites. o Des côuts plus faibles de maintenance : les services réutilisables réduisent le nombre et la complexité interne des services d'entreprise. o Des services de haute qualité : la réutilisation des services en augmentation crée des services de haute qualité par des cycles de test multiples des consommateurs de services différents. o Des côuts d'intégration plus faibles : Les services standardisés savent comment fonctionner ensemble, permettant aux applications disparates de se connecter facilement et rapidement. o La réduction du risque : moins de services réutilisables fournit un meilleur contrôle sur l'entreprise et les politiques de gestion des ITet réduire le risque global de conformité d'une entreprise. 3
o Comment SOA parvient à obtenir un couplage entre l'interaction des agents logiciels? Il le fait en utilisant des contraintes architecturales : un petit ensemble d'interfaces simples et généralisées à l'ensemble des agents logiciels participants. Seules des sémantiques génériques sont codées aux interfaces. Les interfaces sont universellement disponibles pour tous les fournisseurs et consommateurs. Des messages descriptifs contraints par un schema extensible livré via les interfaces. Pas ou seulement minime l'activité du système est prescrit par des messages. Un schéma limite le vocabulaire et la structure des messages. Un schéma extensible permet l'introduction de nouvelles versions des services sans casser les services existants. 1.5 La Solution Oracle Fusion Middleware Oracle Fusion Middleware offre des solutions pour les applications logicielles d'entreprises distribuées complexes. Il inclut des serveurs web, des serveurs d'applications, des systèmes de gestion de contenu et des outils similaires qui supporte le développement et la livraison d'application. Oracle Fusion Middleware est un ensemble de produits logiciels basés sur des standards qui inclut une variété d'outils et de services : d'un environnement compatible Java Enterprise Edition 5 (Java EE) et les outils developer, aux services d'intégration, business intelligence, collaboration, et gestion de contenu content. Oracle Fusion Middleware offre le support complet pour le développement, déploiement et gestion. Figure 1-2 provides an overview of the Oracle Fusion Middleware solution. Figure 1-2 Oracle Fusion Middleware Solution Overview Oracle Fusion Middleware offre les solutions suivantes avec sa conception middleware : o Des outils de développement : un environnement de développement unifié SOA. Un ensemble d'outils intégrés mais modulaires de développement pour construire des applications plutôt que d'utiliser des outils spécialisés. L'outil de conception inclut un environnement de conception pour des interfaces 4
utilisateurs, la logique business, la composition service, les processus d'entreprise ou workflow, les règles d'entreprises, et business intelligence. L'outil de conception permet de simplifier la conception et le debugage et d'améliorer la productivité. Il inclut Oracle JDeveloper, Oracle TopLink, Oracle Application Development Framework, et Oracle Eclipse. o Interaction utilisateur : un seul environnement utilisateur final qui permet d'accéder à des applications d'entreprise, des processus d'entreprises, à la business intelligence et de partager des informations avec d'autres. Cet environnement est multi-canaux et permet l'accès à travers une variété de clients différents (clients mobile, pc, voice-over IP (VOIP). Inclut Oracle WebCenter Framework et Oracle Portal. o Business Intelligence : une suite d'outils BI pour extraire, transformer et charger des données intégrées à des warehouses; outils d'interrogation, d'analyse et reporting pour le support décisionnel ; des tableaux de bord pour comparer l'activité avec des indicateurs de performance clé ; et des alertes pour des notifications utilisateurs sur les problèmes du logiciel. Comprend Oracle Business Intelligence Discoverer, Oracle Reports, Oracle Forms Services, et Oracle Portal. o Content Management : un référentiel pour gérer les documents, des ressources numériques, des images et autres formes de contenu ; pour intégrer ce contenu à des applications d'entreprise de la société, des sites web et des processus d'entreprise. o SOA : un moyen d'utiliser l'investissement existant dans les applications et systèmes de manière plus efficace pour pouvoir placer plus de ressources et budget sur l'innovation et la délivrance de nouveaux services. Inclut Oracle Service Bus, Oracle Complex Event Processing, Oracle Business Rules, Oracle Business Activity Monitoring, Oracle B2B, Oracle BPEL Process Manager, Oracle Service Registry, Oracle User Messaging Service, Human Workflow, Oracle Mediator. o Application Server : un serveur d'application basé sur des standards Java EE pour exécuter les applications d'entreprises et fournir l'infrastructure de services web pour l'interopérabilité. o Intégration et Business Process Management (BPM): Un service bus basé sur des standards pour connecter des applications entre elle et utiliser la messagerie ; un BPM ou workflow engine pour connecter l'application à un processus d'entreprise ou workflow; et réglage de l'activité et optimisation des processus d'entreprise en temps réel. o Security and Identity Management: administration de sécurité à faible coût sur les applications et systèmes dans une entreprise en centralisant la création et le provisionnement des utilisateurs, leur identité et roles et en leur donnant un accès single sign-on access. Comprend Oracle Internet Directory, Oracle Virtual Directory, Oracle Directory Integration Platform, Oracle Identity Federation. o Enterprise Management: administration et opérations à moindre coût sur une architecture grid pour regrouper les sauvegardes et autres technologies haute disponibilité avec intégration avec Oracle Enterprise Manager pour la gestion des systèmes. Comprend Fusion Middleware Control, Oracle WebLogic Server Administration Console, Oracle WebLogic Scripting Tool, Oracle Process Manager et Notification Server, Oracle Enterprise Manager 10g Grid Control. 5