L'industrie du logiciel a développé plusieurs modèles et infrastructures de programmation permettant aux développeurs
d'encapsuler des informations sur un objet métier (BO - Business Object). L'infrastructure d'un BO doit généralement assurer l'indépendance
de la base de données, mapper de façon transparente les objets métier personnalisés par l'administrateur vers les tables de la base de
données ou vers les structures de données dans les systèmes d'information d'entreprise, mais aussi associer les objets métier aux interfaces
utilisateur.
Les schémas XML sont récemment devenus les schémas les plus courants et les plus acceptés pour représenter la structure d'un objet métier.
D'un point de vue outils, WebSphere Integration Developer fournit aux développeurs un modèle de BO commun, afin de représenter plusieurs sortes d'entités issues de domaines différents. Pendant la phase de développement, WebSphere Integration Developer représente les objets métier sous la forme de schémas XML. Toutefois, au moment de l'exécution, ces mêmes objets métier sont représentés dans la mémoire par l'instance Java™ d'un objet SDO. Un objet SDO est une spécification standard
que les systèmes IBM® et BEA ont développé conjointement et qu'ils ont convenu d'utiliser. IBM a étendu la spécification SDO en incluant des services supplémentaires qui
facilitent la manipulation des données dans les objets métier.
Avant de nous intéresser à l'infrastructure d'un BO, penchons-nous un instant sur les types basiques de données qui sont manipulées :
- Données d'instance correspond aux données réelles et aux structures de données pouvant contenir de simples objets de base dotés de propriétés scalaires jusqu'à des hiérarchies d'objets volumineux et complexes.
Des définitions de données sont également incluses, comme la description de types d'attributs de base, des informations de type complexe, la cardinalité et des valeurs par défaut.
- Métadonnées d'instance correspond à des données propres à une instance. Des informations incrémentielles sont ajoutées aux données de base, comme le suivi des modifications (aussi appelé "récapitulatif des modifications"), les informations de contexte associées à la manière dont l'objet ou les données ont été créé(e)s, ainsi que les en-têtes et pieds de page d'un message.
- Métadonnées type correspond généralement aux informations propres à une application, comme les mappages de niveau attribut vers des colonnes de données (par exemple, le mappage du nom d'une zone d'un BO en un nom de colonne de table SAP) de systèmes d'information d'entreprise (EIS - Enterprise Information System) cibles.
- Services correspond généralement aux services auxiliaires qui obtiennent et définissent les données, modifient les récapitulatifs ou fournissent un accès type pour la définition de données.
La table indique comment les types de données de base sont implémentés dans la plateforme WebSphere.
Tableau 1. Abstractions des données et implémentations correspondantesAbstraction des données |
Implémentation |
Données d'instance |
Objet métier (SDO) |
Métadonnées d'instance |
Graphique métier |
Métadonnées type |
Métadonnées d'entreprise, métadonnées type de l'objet métier |
Services |
Services de l'objet métier |
Utilisation de l'infrastructure d'objets métier IBM
Comme nous l'avons vu précédemment, la structure d'un BO WebSphere ESB
correspond à une extension de la norme SDO. Par conséquent, les objets métier
échangés entre les composants WebSphere ESB correspondent à des instances de la classe commonj.sdo.DataObject. Toutefois,
la structure d'un BO WebSphere ESB
ajoute plusieurs services et fonctions qui simplifient et enrichissent la fonctionnalité
DataObject de base.
Pour faciliter la création et la manipulation
d'objets métier, la structure d'un BO WebSphere étend les spécifications d'un objet SDO en fournissant un ensemble de services Java. Ces services font partie du package com.ibm.websphere.bo :
- BOFactory : Service clé qui indique plusieurs méthodes permettant de créer des
instances d'objets métier.
- BOXMLSerializer : Indique plusieurs méthodes permettant de "développer" un objet métier depuis un flux ou d'écrire le contenu d'un objet métier, au format XML, dans un flux.
- BOCopy : Indique plusieurs méthodes permettant de copier des objets métier (sémantique "profonde" et "superficielle").
- BODataObject : Vous permet d'accéder aux aspects de l'objet de données d'un objet métier, comme le récapitulatif des modifications, le graphique métier et le récapitulatif de l'événement.
- BOXMLDocument : Avant-guichet du service qui vous permet de manipuler l'objet métier
comme un document XML.
- BOChangeSummary et BOEventSummary : Facilite l'accès et la manipulation du récapitulatif des modifications et de la partie récapitulative d'un événement dans un objet métier.
- BOEquality : Service qui vous permet de déterminer si deux objets métier
contiennent des informations identiques. Il prend en charge l'égalité profonde et superficielle.
- BOType et BOTypeMetaData : Ces services matérialisent des instances
de commonj.sdo.Type et vous permettent de manipuler les métadonnées associées. Les instances Type peuvent ensuite être utilisées pour créer des objets métier "par type".
- BOInstanceValidator : Valide les données composant un objet métier, afin de vérifier
s'il est conforme aux éléments XSD.