Zona HTML Zona Java Zona PHP Zona ASP Zona Bases de datos
-Tutoriales

El API JAXR


Modelo de Información

El modelo de información JAXR se basa en gran medida en el modelo de información del registro ebXML según lo definido por [RIM] y extendido para añadir los conceptos prestados de UDDI según lo definido por [UDDI-DS]. En el Apéndice A y en el Apéndice B se define una normativa de unión para [RIM] y [UDDI-DS].

Los interfaces relacionados con el modelo de información se definen en el paquete java.xml.registry.infomodel de JAXR. Estos interfaces se pueden ver como para proporcionar una unión Java a un modelo de información unificado de las especificaciones de registro dominantes. El modelo de información JAXR es la confluencia de estas especificaciones del registro.

. Modelo de Información: Vista Pública

Esta sección proporciona una vista pública de alto nivel de la mayoría de los objetos visibles en el registro.

La figura 12 muestra la vista pública de los objetos del registro y su relación como un diagrama UML. No muestra la herencia, los atributos de las clases o sus métodos.

Se recuerda al lector que el modelo de información no es un modelo de real de ítems de repositorio.


Figura 12: Vista Pública del Modelo de Información

Las siguientes secciones proporciona información de alto nivel sobre los interfaces del modelo de información.

. RegistryEntry

El objeto central en el modelo de información es un RegistryEntry. Existe un ejemplar de RegistryEntry para cada item enviado al repositorio. Los ejemplares de la clase RegistryEntry proporcionan un metadata sobre los items del repositorio. El item real del repositorio (por ejemplo, un documento WSDL) no está contenido en un ejemplar de la clase RegistryEntry. Observa que la mayoría de las clases en el modelo de información son subclases especializadas de RegistryEntry. Cada RegistryEntry se relaciona con ninguno o un ítem del repositorio.

. Organization

Los ejemplares de Organization son RegistryEntries que proporcionan la información en organizaciones como una organización enviante (SO). Cada ejemplar de Organization puede tener una referencia a un Organization padre.

. Service

Los ejemplares de Service son RegistryEntries que proporcionan información en servicios (por ejemplo, servicios Web) ofrecidos por un Organization. Un Organization tiene una Collection de Services.

. ServiceBinding

Los ejemplares de ServiceBinding son RegistryEntries que representan información técnica de una forma específica para acceder a un interface específico ofrecido pon un ejemplar Service. Un Service tiene una Collection de ServiceBindings.

. Concept

Un ejemplar de Concept representa una noción arbitraría (o concepto). Virtualmente puede ser cualquier cosa. Como los conceptos se pueden usar para muchos propósitos, la siguiente lista sumariza algunos de sus usos principales en estos momentos:

  1. Los Concepts se usan para definir clasificaciones o árboles donde cada nodo es un Concept. Este uso se describe en más detalle en la sección Clasificación de RegistryObjects
  2. Los Concepts se usan para definir enumeraciones extensibles (por ejemplo, el atributo phoneType en TelephoneNumber)

. Classification

Los ejemplares de Classification son RegistryEntries que se usan para clasificar un ejemplar RegistryEntry por un Concept dentro de un esquema de clasificación. La clasificación se describe en más detalle en la sección Clasificación de RegistryObjects

. Asociación

Los ejemplares de Association son RegistryEntries que se usan para definir asociaciones de muchos-a-muchos entre objetos en un modelo de información. Las Associations se definen en más detalle en la sección Asociación de RegistryObjects

. Package

Los ejemplares de Package son RegistryEntries que agrupan objetos RegistryEntries lógicamente relacionados. Uno uso de Package es permitir que se realicen operaciones sobre un paquete completo de objetos. Por ejemplo, todos los objetos que pertenecen a un mismo Package podrían borrarse con una sola petición.

. ExternalIdentifier

Los ejemplares de ExternalIdentifier proporcionan información de indentificación adicional a RegistryEntry como un número DUNS, un Número de Seguridad Social, o un alias al nombre de la organización.

. ExternalLink

Los ejemplares de ExternalLink son RegistryEntries que incluyen una URI para contener que se maneja fuera del registro. Al contrario que el contenido manejado, dicho contenido externo se puede modificar o suprimir en cualquier momento sin el conocimiento del registro. RegistryEntry se puede asociar a cualquier número de ExternalLinks.

Consideremos el caso donde una Organización Enviante envía un item de repositorio (por ejemplo, un documento WSDL) y desea asociar un cierto contenido externo a ese objeto (por ejemplo, el Home Page de la organización enviante). El ExternalLink permite esta capacidad. Un uso potencial de la capacidad ExternalLink puede estar en una herramienta del GUI que visualice el ExternalLinks en un RegistryEntry. El usuario puede hacer clic sobre dichos enlaces y navegar a una página Web externa referida por el enlace.

No se espera que un proveedor JAXR se asegure de que el ExternalLink apunte a un recurso válido y accesible. Èsto no es ningún diferente de una página Web con un hiperenlace inválido.

. Slot

Los ejemplares de Slot proporcionan una forma dinámica para añadir atributos arbitrarios a ejemplares RegistryEntry. Esta habilidad para añadir dinámicamente atributos a ejemplares de RegistryEntry permite la extensibilidad dentro del modelo de información.

. ExtensibleObject

El interface ExtensibleObject está implementado por la mayoría de los interfaces en el modelo de información de JAXR. Proporciona los métodos que permiten la adición, cancelación y operaciones de búsqueda de ejemplares Slot. El interface ExtensibleObject proporciona extensibilidad al modelo de información de JAXR.

. AuditableEvent

Los ejemplares de AuditableEvent son RegistryObjects que se usan para proporcionar una ruta de auditoría para RegistryEntries. AuditableEvent se describe en detalle en la sección Los Interfaces IntrinsicObject y ExtrinsicObject.

. User

Los ejemplares de User son RegistryObjects que son usados para proporcionar información sobre los usuarios registrados dentro del registro. Los Users están afiliados con Organizacitions. Los objetos User son usados en la ruta de auditoria para un RegistryEntry.

. PostalAddress

PostalAddress define los atributos de una dirección postal. Actualmente, se usa para proporcionar información de la dirección de un User y una Organization.

. Modelo de Información: Vista de Árbol

La figura 13 muestra la herencia o las relaciones entre las clases en el modelo de información. Observa que no muestra los otros tipos de relaciones, puesto que se han mostrado ya en la figura 12. Los atributos y los métodos de la clase tampoco se muestran. Las descripciones detalladas de métodos y atributos de la mayoría de los interfaces y de las clases están disponibles en los documentos Javadoc del API JAXR.


Figura 13: Vista del Árbol del Modelo de Información.

. Los Interfaces IntrinsicObject y ExtrinsicObject

El interface RegistryEntry es un interface abstracto que está más especializado por dos interfaces. El interface IntrinsicObject es un interface de base común para la mayoría de los interfaces concretos en el modelo. Los Subinterfaces del interface IntrinsicObject proporcionan el metadata adicional (por ejemplo, Clasification, Association etc.) para un RegistryEntry.

El interface ExtrinsicObject es un interface concreto que proporciona los metadata adicionales para un item extrínseco del repositorio (por ejemplo, un documento WSDL o un documento de esquema XML) sobre el cual el registro no tenga ningún conocimiento anterior. Se requiere un ejemplar de ExtrinsicObject para cada item del repositorio.

. Auditoría de Registro

Esta sección describe los elementos del modelo de información que soportan la ruta de auditoría del registro.

El método getAuditTrail de un RegistryEntry devuelve una colección ordenada de AuditableEvents. Estos AuditableEvents constituyen el rastro de intervención para el RegistryEntry. Los AuditableEvents incluyen un timestamp para el evento. Cada AuditableEvent tiene una referencia a un ejemplar User que identifique al usuario específico que realizó la acción que dio lugar a un AuditableEvent.

. Asociación de RegistryObjects

Un RegistryObject se puede asociar con cero o más objetos. El modelo de información define una clase Association. Un ejemplar de esta clase representa una asociación entre un RegistryObject y otro RegistryObject. Un ejemplo de dicha asociación está entre los ExtrinsicObjects que cataloguan un nuevo item del repositorio y otro item del repositorio donde el itém más nuevo reemplaza el más viejo como se ve en la figura 14.

Los tipos de asociación para los ejemplares Association son ejemplares Concepts y por lo tanto son extensibles de forma definida por el usuario.


Figura 14: Ejemplo de Asociación de Entradas de Registro.

. Clasificación de RegistryObjects

Esta sección describe cómo el modelo de información soporta la clasificación de RegistryObjects.

Un RegistryObject podría ser clasificado de muchas formas. Por ejemplo, una Organization podría ser clasificada por su industria, por los productos que vende o por su localización geográfica.

Un esquema general de clasificación se puede ver como un árbol de Concepts. En el ejemplo mostrado en la figura 15, los RegistryEntries (realmente Organizations) se muestran como rectángulos sombreados. Cada Organization representa un fabricante de automóviles. Cada Organization está clasificada por el Concept llamado Automotive bajo el Concept raíz llamado Industry. Además, los fabricantes de automóviles de los E.E.U.U. son clasificados por el Concept Geography. Similarmente, un fabricante de automóviles europeo es clasificado por el Concept Europa bajo el Concept Geography.

. Un Ejemplo de Clasificación

El ejemplo muestra como un RegistryEntry podría ser clasificado por múltiples esquemas de clasificación. Una esquema de clasificación está definido por un Concept que es la raíz del árbol de Concept (por ejemplo, Industry, Geography, Product etc.).


Figura 15: Ejemplo que muestra un árbol de Concept

[Nota]

Es importante precisar que los nodos oscuros no son parte del árbol del Concept. Los nodos hoja del árbol Concept son Health Care, Automotive, Retail, US. y Europe. Los nodos oscuros se asocian al árbol Concept mediante un ejemplar Classification que no se muestra en la figura.

Para poder soportar un esquema de clasificación general que pueda soportar clasificación de un sólo nivel y de varios niveles, el modelo de información define las clases y relaciones mostradas en la Figura 16:


Figura 16: Vista de la Clasificación del Modelo de Información

La Figura 17 muestra un ejemplo de un ejemplar ExtrinsicObject para un objeto "Collaboration Protocol Profile" [CPP] que está clasificado por un Concept que representa la Industria a la que pertenece


Figura 17: Diagrama de Ejemplar de Classification

. Interface Concept

Los ejemplares de Concept se usan para definir estructuras de árbol en las que cada nodo del árbol es un ejemplar Concept. Dichos árboles Concept se usan para definir esquemas de clasificación u ontologías.

Los esquemas de clasificación basados en Concepts también se usan en el API JAXR para definir enumeraciones extensibles (por ejemplo, el atributo phoneType en TelephoneNumber).

En la figura 15, se definieron varios ejemplares de Concept (todos los rectángulos de color claro). Un Concept tiene cero o un Concept para su padre y cero o más Concepts para sus hijos inmediatos. Si un Concept no tiene ningún padre, es la raíz de un árbol de Concept. Observa que el árbol completo de Concept es definido recursivamente por un solo elemento del modelo de información llamado Concept.

. Interface Classification

Los ejemplares de Classification se usan para clasificar un ejemplar de RegistryEntry con un ejemplar Concept dentro de un esquema de clasificación.

En la Figura 15, los ejemplares de Classification no se mostraron explícitamente, pero están implícitos como asociaciones entre los RegistryEntries (nodos hojas sombreados) y los objetos Concepts asociados.

Clasificación Sensible al Contexto
Consideremos el caso representado en la figura 18, donde un perfil del protocolo de colaboración para ACME Inc. está clasificado por el Concept Japan bajo el esquema de clasificación Geography. En ausencia del contexto para esta clasificación, su significado es ambiguo. ¿Significa esto que ACME está situada en Japón, o significa que ACME envía productos a Japón, o tiene otro cierto significado? Para tratar esta ambigüedad un Classification podría opcionalmente ser clasificado por otro Concept (en este ejemplo llamado isLocatedIn) que proporcione el contexto que falta para la clasificación. Otro perfil del protocolo de colaboración para MyParcelService se puede clasificar por el mismo Concept Japan donde esta clasificación se asocia a un Concept diferente (por ejemplo, llamado shipsTo) para indicar un contexto diferente que el que está usando ACME Inc.


Figura 18: Clasificación Sensible al Contexto.

Así, para poder soportar la posibilidad de clasificación dentro de múltiples contextos, un objeto Classification podría él mismo ser clasificado por cualquier número de Classifications que unieran la primera Classification a los Concepts que proporcionan los contexto desparecidos.

En suma, el soporte generalizado para esquemas de clasificación en el modelo de información permite a las Organizaciones Enviantes:

  1. Clasificar un RegistryEntry, enviando un Classification que lo asocie con un Concept en un árbol de Concepts.
  2. Clasificar un RegistryEntry entre múltiples facetas, enviando múltiples objetos Classification que los asocian con múltiples objetos Concept.
  3. Cualificar una clasificación enviada por un RegistryEntry, mediante los contextos por los que está siendo clasificada.
 
Patrocinados
 

Copyright © 1999-2006 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network