El API JAXR

Esta secci�n especif�ca aquellos aspectos del API JAXR que tratan con el control del ciclo de vida de las entradas de registro (metadata) los �tems del repositorio (contentido). Los interfaces para el control del ciclo de vida est�n dise�ados para ser usados por Organizaciones Enviantes (SO) o el publicador de metadatos o contenido.

[Nota]

Las peticiones de control del ciclo de vida son operaciones privilegiadas que requieren autentificaci�n y autorizaci�n. Los aspectos de seguridad sobre el control del ciclo de vida se explican en el cap�tulo Arquitectura de Seguridad.

.�Asignaci�n de Clave �nica

Como se especific� en el modelo de informaci�n, cada RegistryObject del registro tiene una clave �nica. Esta clave normalmente es generada por el proveedor de registro. Algunos proveedores de registros, como ebXML, opcionalmente permiten al emisor especificar esta clave �nica.

El API JAXR permite al cliente especificar una clave para un RegistryObject cuando lo env�a al registro. La clave suministrada por el cliente debe usarse como la clave para el objeto dentro del proveedor de registro objetivo, si se cumplen todas estas condiciones:

  • El cliente suministra una clave.
  • La clave cumple el formato de una URN seg�n lo especifica la "DCE 128 bit UUID" (por ejemplo, urn:uuid:a2345678-1234-1234-123456789012).
  • El proveedor de registros soporta las claves suministradas por el cliente.

Un proveedor JAXR debe ignorar las claves suministradas por el cliente si no se cumple alguna de las condiciones anteriores. En este caso, el proveedor de registro debe generar una clave �nica.

.�Interface LifeCycleManager

El API JAXR proporciona un interface com�n LifeCycleManager. Este interface tiene un m�todo factor�a llamado createObject, que lo usan los clientes para crear diferentes tipos de objetos definidos por el modelo de informaci�n.

El interface LifeCycleManager es el interface base com�n para dos subinterfaces especializados:

  1. Interface BusinessLifeCycleManager
  2. Interface GenericLifeCycleManager

.�Interface BusinessLifeCycleManager

El interface BusinessLifeCycleManager define un API sencillo de nivel de negocio que proporciona la habilidad de expl�citamente enviar, actualizar o borrar ejemplares de los interfaces de alto nivel m�s importantes en el modelo de informaci�n. Estos interfaces de alto nivel incluyen:

  1. Interface Organization
  2. Interface Service
  3. Interface ServiceBinding
  4. Interface Concept

Capacidad Nivel: 0
Se requiere que este interface sea implementado por todos los proveedores JAXR.

Sumario de M�todos

deleteConcepts(java.util.Collection conceptKeys)
Borra los Concepts correspondientes a las claves especificadas.
deleteOrganizations(java.util.Collection organizationKeys)
Borra los Organizations correspondientes a las claves especificadas.
deleteServiceBindings(java.util.Collection bindingKeys)
Borra los ServiceBindings correspondientes a las claves especificadas.
deleteServices(java.util.Collection serviceKeys)
Borra los Services correspondientes a las claves especificadas.
saveConcepts(java.util.Collection concepts)
Graba los Concepts especificados.
saveOrganizations(java.util.Collection organizations)
Graba las Organizations especificadas.
saveServiceBindings(java.util.Collection bindings)
Graba los ServiceBindings especificados.
saveServices(java.util.Collection services)
Graba los Services espeificados.

.�M�todos Save

El interface BusinessLifeCycleManager define un conjunto de m�todos save, uno por cada interfacce clave (por ejemplo, saveOrganizations etc.). Cada m�todo save toma un Collection como par�metro para que pueda grabar varios objetos del tipo asociado con el m�todo save. La Collection contiene objetos que son ejemplares del tipo asociado con el m�todo save. Por ejemplo, el m�todo saveOrganizations acepta una Collection de ejemplares Organization. Si la Collection contiene objetos cuyo tipo no corresponde con el m�todo save, la implementaci�n debe lanzar una UnexpectedObjectException.

Create contra Update
Los m�todos save soportan la creacci�n de nuevos objetos as� como la actualizaci�n del estado de los objetos existentes dentro del registro. Los clientes llaman al m�todo save en cualquiera de estos caso.

Grabaci�n Impl�cita de Objetos
Un proveedor JAXR debe atravesar referencias de objetos desde el objeto que est� siendo grabado y salvarlo impl�citamente. Por ejemplo, si el cliente graba expl�citamente una Organization, el proveedor JAXR debe impl�citamente grabar cualquier Packages, ExternalLinks, ExternalIdentifiers, Concepts, Services, ServiceBindings, etc., que sean alcanzables desde el Organization que est� siendo grabado.

Interface BulkResponse
El interface BulkResponse es devuelto por muchos otros m�todos del API donde la respuesta necesite incluir una Collection de objetos. El interface BulkResponse se describe aqu� en el contexto de los m�todos save, aunque su comportamiento es similar cuando se usa en otros contextos.

Cada m�todo save devuelve un ejemplar BulkResponse. Este interface contiene una Collection de claves a las que se accede mediante el m�todo getCollection. Estas claves son para aquellos objetos que fueron grabados satisfactoriamente. El BulkResponse tambi�n podr�a contener una colecci�n de ejemplares SaveException como se describe posteriormente.

Interface SaveException
En el caso de un �xito parcial donde s�lo se pudo grabar satisfactoriamente un subconjunto de objetos, el m�todo getStatus del BulkResponse debe devolver JAXRResponse.STATUS_WARNING. En este caso, se incluir� una Collection de ejemplares SaveException en el ejemplar BulkResponse. Las SaveExceptions proporcionan informaci�n sobre cada error que evit� que se grabaran algunos objetos del m�todo save.

Observa que las SaveExceptions son devueltas como parte del BulkResponse, en lugar de ser lanzadas, para permitir que la BulkResponse sea devuelta a pesar de la excepci�n.

.�M�todos Delete

El interface BusinessLifeCycleManager define un conjunto de m�todos delete, uno para cada interface clave (por ejemplo, deleteOrganizations, etc.). Cada m�todo delete toma una Collection como par�metro para poder borrar varios objetos del tipo asociado con el m�todo delete. La Collection es homog�nea y contiene claves de objetos que est�n siendo borrados. Por ejemplo, el m�todo deleteOrganizations acepta una Collection de ejemplares Key donde cada Key es la clave de un ejemplar Organization. Si la Collection contiene una clave cuyo tipo de objeto no corresponde con el m�todo delete, la implementaci�n debe lanzar una UnexpectedObjectException.

Interface DeleteException
Esta excepci�n se usa en el caso de un fallo o un �xito parcial durante la operaci�n de borrado. Se devolver� una Collection de ejemplares de esta excepci�n en el BulkResponse para una llamada al m�todo delete si se encuentra una excepci�n.

.�Interface GenericLifeCycleManager

El interface GenericLifeCycleManager proporciona un API gen�rico m�s flexible que proporciona la habilidad para grabar (crear o actualizar), caducar, y borrar ejemplares de cualquier interface del modelo de informaci�n junto con el valor de si el cliente est� autorizado para realizar la acci�n.

Como proporciona m�s funcionalidades usando menos m�todos que BusinessLifeCycleManager, el GenericLifeCycleManager podr�a ser un API menos obvio para algunos.

Capacidad Nivel: 1
Se requiere que este interface sea implementado por los proveedores del Nivel 1 de capacidad o superior.

Sumario de M�todos

deleteObjects(java.util.Collection keys)
Borra uno o m�s objetos del registro previamente enviados.
deprecateObjects(java.util.Collection keys)
Caduca uno o m�s objetos del registro previamente enviados.
saveObjects(java.util.Collection cataloguedObjects)
Graba uno o m�s objetos del registro previamente enviados.

.�Interface CataloguedObject

Un CataloguedObject es un simple interface envoltura que contiene un RegistryEntry y un �tem de repositorio opcional representado por una subclase de java.lang.Object. Como las Collection son ejemplares uniformes de CataloguedObject, cada CataloguedObject podr�a conteneer ejemplares heterog�neos de RegistryEntry e �tems de repositorio.

.�Grabar Objetos

public BulkResponse saveObjects(java.util.Collection cataloguedObjects)
                    throws JAXRException

El m�todo saveObjects se usa para crear o actualizar metadatos y contenido. Este m�todo graba una Collection uniforme de ejemplares CataloguedObject en el registro. Las implementaciones deben atravesar las referencias de objetos desde el objeto que est� siendo grabado y salvarlas impl�citamente. Ese m�todo es similar a los m�todos save de BusinessLifeCycleManager.

.�Caducar Objetos

public BulkResponse deprecateObjects(java.util.Collection keys)
					throws JAXRException

El m�todo deprecateObjects se usa para caducar ejemplares de RegistryEntry previamente enviados.

Este m�todo especifica una Collection uniforme de ejemplares Key identificando objetos pre-existentes en el registro. Caducar un objeto lo marca como obsoleto. Un objeto caducado permanece en el registro durante alg�n tiempo antes de ser borrado.

Una vez que se ha caducado un objeto, el proveedor JAXR no debe permitir que se env�en nuevas referencias (por ejemplo, nuevas Associations, Classifications y ExternalLinks) a ese objeto. Si un cliente hace una llamada al API que resulta en una nueva referencia a un objeto caducado, el proveedor JAXR debe lanzar una java.lang.IllegalStateException dentro de una JAXRException. Sin embargo, las referencias existentes hacia un objeto caducado continuaran funcionando normalmente.

.�Borrar Objetos

public BulkResponse deleteObjects (java.util.Collection keys, int deletionMode)
					throws JAXRException

El m�todo deleteObjects se usa para borrar ejemplares de RegistryEntry previamente enviaddos.

Este m�todo especifica una Collection uniforme de ejemplares Key que identifican objetos pre-existentes en el registro.

Un intento de eliminar un RegistryEntry mientras todav�a es objetivo de referencias podr�a resultar en una InvalidRequestException que es devuelta dentro de la BulkResponse, si el proveedor de registros fuerza dichas restricciones de borrado.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
ARTÍCULO ANTERIOR