Programación en castellano
Inicio > Tutoriales > Java y XML > El API JAXR
-Tutoriales

El API JAXR


Control del Ciclo de Vida

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.

 
Patrocinados
 

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

Hospedaje web y servidores dedicados linux por Ferca Network

red internet: musica mp3 | logos y melodias | hospedaje web linux | registro de dominios | servidores dedicados
más internet: comprar | recursos gratis | posicionamiento en buscadores | tienda virtual | gifs animados