Structure de l'objet métier du connecteur

Le connecteur traite les objets métier utilisés par les beans d'entreprise. Cette section aborde les principaux concepts relatifs à la structure des objets métier traités par le connecteur EJB.

Méthodes

Pour chaque méthode définie dans un fichier de classe Java, l'ODA crée un attribut dans l'objet métier (pour plus d'informations, voir Attributs et ASI de l'attribut).

Le type d'attribut créé par l'ODA à partir d'une méthode est un objet métier enfant contenant d'autres attributs qui représentent des paramètres de méthode et des types de retour. Ces attributs apparaissent dans le même ordre que les paramètres de la méthode EJB. L'attribut Return_Value (non utilisé si la méthode définie est de type void) apparaît toujours en dernier dans l'ordre des arguments. Il représente le résultat de l'appel de la méthode EJB. Les attributs d'objet métier enfants peuvent être de type simple ou de type objet (complexe), en fonction du type du paramètre de méthode ou de la valeur en retour. Les informations spécifiques à l'application (ASI) de ces attributs contiennent le nom de méthode éloignée exposé. Pour plus d'information sur l'ASI des attributs, voir ASI de l'attribut.

Le connecteur EJB exige que l'objet métier ait un objet métier enfant mappé sur une méthode creator, obtenue dans la liste des méthodes creator de l'interface locale, et une ou plusieurs méthodes d'objet métier extraites de la liste des méthodes d'interface éloignées.

Lorsqu'une méthode éloignée utilise des objets java en tant qu'argument ou type de retour, et lorsque les objets java contiennent plusieurs méthodes getter/setter, l'ODA peut être utilisé pour mapper les méthodes getter/setter sur les attributs, au lieu de créer un objet métier enfant pour chacune d'entre elles.

Notez que tous les caractères non alphanumériques d'une propriété ou d'un nom de méthode sont remplacés dans le nom d'objet métier correspondant par un caractère souligné (_).

Attributs

Pour chaque variable de membre public, attribut et paramètre de méthode d'une méthode de bean d'entreprise ayant été définie dans un fichier de classe Java, un attribut d'objet métier correspondant est généré par l'ODA. Le fichier JAR, qui contient les interfaces, est utilisé par l'ODA pour créer des définitions d'objet métier mappées sur des beans d'entreprise éloignés et locaux.

Si un attribut de la classe bean n'est pas un attribut simple mais un objet, l'attribut d'objet métier (BO) se mappe sur un objet métier dont la définition est identique à celle de la classe Java ou de l'interface EJB correspondante.

Les objets métier peuvent être plats ou hiérarchiques. Un objet métier plat contient uniquement des attributs simples, c'est-à-dire qui représentent une seule valeur (telle qu'une chaîne) et ne pointent pas sur des objets métier enfants. Un objet métier hiérarchique contient des attributs simples ainsi que des objets métier enfants ou des tableaux d'objets métier enfants contenant des valeurs d'attribut.

Pour un objet conteneur, la cardinalité 1 ou la relation de cardinalité simple, indique qu'un attribut contenu dans un objet métier parent ne contient qu'un seul objet métier enfant. Cet objet métier enfant est une collection qui ne peut contenir qu'un seul enregistrement. Le type d'attribut est l'objet métier enfant.

La cardinalité n, ou la relation de cardinalité multiple, indique qu'un attribut contenu dans un objet métier parent contient un tableau d'objets métier enfants. Dans ce cas, l'objet métier enfant est une collection qui peut contenir plusieurs enregistrements. Le type de l'attribut est le même que celui du tableau d'objets métier enfants.

Pour plus d'informations sur les attributs d'objet métier, voir ASI de l'attribut.

Applications spécifiques à l'application

Les informations spécifiques à l'application fournissent au connecteur les instructions qui dépendent de l'application concernant le traitement des objets métier. Si vous développez ou modifiez une définition d'objet métier, vous devez veiller à ce que les informations spécifiques à l'application contenues dans la définition correspondent à la syntaxe attendue par le connecteur.

Les informations spécifiques à l'application sont représentées par une paire nom-valeur et peuvent être précisées pour la totalité de l'objet métier, pour chaque attribut d'objet métier et pour chaque instruction.

ASI de l'objet métier

L'ASI de l'objet apporte des informations fondamentales sur la nature d'un objet métier et sur l'objet qu'il contient. Pour afficher l'ASI d'un objet métier, ouvrez l'objet dans Business Object Designer et cliquez sur l'onglet General. L'ASI de l'objet métier s'affiche dans la zone Business Object Level Application-specific information. Pour plus d'informations sur cet écran, voir Création et modification des objets métier.

Le tableau 4 décrit l'ASI d'objet métier de l'objet qui représente les beans d'entreprise.

Remarque :
Les noms d'ASI ne sont pas reconnus pour les objets métier qui représentent des méthodes, des paramètres de méthode et des valeurs en retour de méthode. Pour plus d'informations sur les attributs d'objet métier créés pour des méthodes de beans d'entreprise, voir Méthodes.

Tableau 4. ASI de l'objet métier
ASI de l'objet Description
object_type=RemoteEJB Indique que l'objet est un bean d'entreprise déployé sur un serveur d'applications (éloigné) plutôt qu'une classe Java standard non déployée sur un serveur d'applications (local).
jndi_name=<JNDIName> Nom JNDI du bean d'entreprise
home_class=<className> Nom de classe de l'interface locale
proxy_class=<className> Nom de classe de l'interface éloignée

L'exemple suivant illustre l'ASI d'objet métier pour un objet métier que le connecteur traite avec des beans d'entreprise déployés sur WebSphere Application Server. Lorsque le connecteur reçoit l'objet métier émis par le courtier, il localise d'abord une instance de l'interface locale (com.ibm.websphere.AccountBookHome) sur le serveur d'applications, en recherchant WsSamples/Account dans le contexte JNDI configuré. Le connecteur utilise ensuite cette instance locale pour créer une nouvelle instance de l'interface éloignée (com.ibm.websphere.AccountBook ), qu'il peut utiliser pour appeler des méthodes sur l'EJB.

BO ASI=object_type = RemoteEJBObject
            proxy_class = com.ibm.websphere.AccountBook
            home_class = com.ibm.websphere.AccountBookHome
            jndi_name = WsSamples/Account

Dans cet exemple de code :

Un objet Java standard (local) peut avoir un BO ASI = auto_load_or_write.

L'ASI d'objet métier d'un message pris en charge par un gestionnaire de données doit contenir la valeur object_type=dataHandlerObject; mime_type=<text_value>, où <text_value> est le type mime correct défini pour le gestionnaire de données (tel que précisé dans le méta-objet du gestionnaire de données) que l'adaptateur doit utiliser pour convertir les données.

ASI de l'instruction

Chaque objet métier contient une instruction. Elle indique quelles méthodes appeler sur le bean d'entreprise. Pour l'adaptateur pour EJB, la première méthode doit être une méthode creator depuis l'interface locale du bean correspondant, et les méthodes éloignées doivent être les méthodes de processus métier de l'interface éloignée du bean.

L'ASI de l'instruction contient une séquence de noms d'attributs, chacun contenant une méthode pour le gestionnaire d'objet métier à appeler. En général, la méthode à appeler appartient à l'objet métier lui-même (et non à un parent de l'objet métier), auquel cas vous devez indiquer la méthode dans l'ASI de l'instruction de l'objet.

Si la méthode à appeler appartient à un parent dans la hiérarchie de l'objet métier, alors ce parent peut être référencé à partir de l'enfant en utilisant la balise PARENT comme préfixe dans le nom de la méthode.

Par exemple, la figure 3 illustre une hiérarchie d'objet métier dans laquelle ContactDetails est un objet enfant de Contact, lui-même enfant de PSRCustomerAccount.

Figure 3. Hiérarchie d'objet métier et ASI de l'instruction

Si une méthode appartenant à PSRCustomerAccount est appelée dans l'objet métier ContactDetails, alors l'ASI de l'instruction de ContactDetails représente la hiérarchie d'objet métier de la façon suivante :

PARENT.PARENT.<methodName>

Par contre, si la méthode appartient à l'objet métier Contact, alors l'ASI de l'instruction de ContactDetails doit être définie comme suit :

PARENT.<methodName>

Notez qu'il n'est possible d'appeler que les méthodes qui appartiennent aux objets parents de la hiérarchie. Un objet métier parent ne peut appeler de méthode enfant.

Le développeur du connecteur détermine les opérations EJB affectées à l'instruction. Les instructions prises en charge sont les suivantes :

Pour un objet donné, vous pouvez préciser les quatre instructions prises en charge (Create, Retrieve, Delete et Update) et affecter n méthodes en tant qu'action de chaque instruction, n étant le nombre de méthodes du bean d'entreprise correspondant.

Pour afficher l'ASI de l'instruction d'un objet métier, ouvrez un objet métier dans Business Object Designer et cliquez sur l'onglet General. L'ASI de l'instruction figure dans la table Instructions prises en charge, qui indique le nom des instructions supportées ainsi que l'ASI correspondant. Pour plus d'informations sur Business Object Designer et les onglets et écrans de l'assistant ODA, voir Création et modification des objets métier.

ASI de l'attribut

Chaque objet métier dispose d'un ensemble d'attributs, décrits dans Attributs et mappés sur les méthodes de bean d'entreprise et propriétés correspondantes. Un objet métier plat contient des attributs simples, c'est-à-dire qui représentent une seule valeur (telle qu'une chaîne) et ne pointent pas vers des objets métier enfants. Un objet métier hiérarchique contient des attributs simples ainsi que des objets métier enfants ou des tableaux d'objets métier enfants contenant les valeurs d'attribut.

L'ASI d'un attribut d'objet métier peut concerner des attributs simples et des attributs complexes contenant des objets enfants. Pour un attribut complexe, l'ASI varie selon que l'enfant contenu est une propriété ou une méthode d'un objet. Le mappage des constructions EJB sur les objets métier générés par ODA est décrit au tableau 8.

Pour afficher l'ASI de l'attribut d'un objet métier, ouvrez un objet métier dans Business Object Designer et cliquez sur l'onglet Attributes. Chaque attribut de l'objet métier apparaît dans la colonne Name. Les propriétés d'attribut, décrites au tableau 5, au tableau 6 et au tableau 7, sont indiquées dans les autres colonnes. Parmi ces propriétés, l'ASI figure dans la colonne Application Specific Information. Pour plus d'informations sur cet écran, voir Création et modification des objets métier.

Le tableau 5 décrit les propriétés d'objet métier des attributs simples. Ces propriétés incluent l'ASI (propriété AppSpecificInfo) de l'attribut. Un attribut simple est toujours différent d'un enfant, c'est-à-dire une valeur booléenne, une chaîne ou un entier.

Tableau 5. Propriétés d'attribut de l'objet métier : attributs simples
Propriété d'attribut Description
Name Indique le nom de l'attribut de l'objet métier.
Type Indique le type de l'attribut de l'objet métier. Voir tableau 8 pour obtenir des informations sur le mappage des constructions EJB sur les types d'attribut d'objet métier.
MaxLength Non utilisé.
IsKey Chaque objet métier doit avoir au moins un attribut clé, que vous devez spécifier en définissant la propriété key sur true pour un attribut. Notez que cet attribut est utilisé par Business Object Designer, plutôt que par le connecteur.
IsForeignKey Indique que le connecteur doit vérifier si l'objet doit être conservé dans le pool d'objets par appel.
IsRequired Non utilisé.
AppSpecInfo
Contient le type Java d'origine. La propriété a le format suivant :

property=<propertyName>, type=<typeName>

property est le nom de l'attribut EJB ou la variable du membre objet. Utilisez cette
paire nom-valeur pour capturer le nom de la variable du membre objet
EJB d'origine.

type est le type Java d'un attribut simple (variable du membre objet EJB).
Par exemple, type=java.lang.String
Voir  tableau 8 pour plus d'informations sur le
mappage des constructions EJB sur
les types d'attributs d'objet métier.
DefaultValue Non utilisé.

Le tableau 6 décrit les éléments des attributs complexes contenant des objets enfants qui ne sont pas des méthodes. Trois éléments incluent l'ASI de l'attribut.

Tableau 6. Propriétés d'attribut de l'objet métier : attributs d'objets enfants non-méthode
Propriété d'attribut Description
Name Indique le nom de l'attribut de l'objet métier.
type Type de l'objet contenu. Défini sur proxy si le type est un objet métier.
ContainedObjectVersion Non utilisé.
Relationship Indique que l'enfant est un attribut de conteneur. Défini sur Containment.
IsKey Non utilisé
IsForeignKey Non utilisé
Is Required Non utilisé
AppSpecificInfo
Contient le nom de la zone de l'application EJB
d'origine. Cette propriété a le format suivant :

property=propertyName,
use_attribute_value=<(optional)BOName.AttributeName>,
type=<typeName>


property est le nom de la variable du membre objet EJB. Utilisez cette
paire nom-valeur pour capturer l'attribut du membre objet EJB d'origine.
Dans le cas d'un attribut indiquant un argument à une
méthode, ne définissez pas de valeur pour property, puisque l'argument n'a pas
de nom et est simplement un argument de n'importe quel type standard.

use_attribute_value est le nom d'objet métier, au format BOName.AttributeName.
La définition de cet ASI a pour effet que
le connecteur accède à l'attribut depuis le pool d'objets par appel. Notez que
cette valeur n'est pas définie dans l'ODA lorsque vous créez l'objet métier,
mais dans Business Object Designer.

type est le type Java d'une propriété. Voir  tableau 8 concernant
le mappage de constructions EJB sur des objets métier.)
Cardinality Défini sur n si le type représente un tableau ou un vecteur. Sinon, défini sur 1.

Le tableau 7 décrit les propriétés des attributs complexes contenant des objets enfants de type méthode. Ces propriétés incluent l'ASI de l'attribut.

Tableau 7. Propriétés d'attribut de l'objet métier : attributs d'objets enfants méthode
Propriété d'attribut Description
Name Nom de l'attribut de l'objet métier.
type Objet métier.
Relationship Défini sur Containmen , indiquant qu'il s'agit d'un objet enfant.
IsKey Défini sur true si le nom de l'attribut est UniqueName, sinon défini sur false.
IsForeignKey Défini sur false.
Is Required Défini sur false.
AppSpecificInfo
Contient le nom de l'interface de méthode éloignée exposé, qui est le nom
de l'appel de méthode lancé sur le serveur EJB par le bean d'entreprise.
Cet attribut est au format :
method_name=<remoteClassName.RemoteMethodName>
Si la méthode est un constructeur, method_name=CONSTRUCTOR
Cardinality Défini sur 1.

Notez que les méthodes ont des arguments et des valeurs en retour. Les arguments et les valeurs en retour peuvent être complexes (avec des objets enfants) ou simples.

Copyright IBM Corp. 2003, 2005