APIs de Java para XML

El API Java para Registros XML (JAXR) proporciona una forma conveniente para acceder a registros de negocios est�ndars sobre Internet. Los registros de negocios normalmente se describen como p�ginas amarillas electr�nicas porque contienen listados de negocios y los productos o servicios que los negocios ofrecen. JAXR da a los desarrolladores que escriben aplicaciones en el lenguaje Java una forma uniforme para usar registros de negocios que est�n basados en est�ndares abiertos (como ebXML) o especificaciones de la industria consorciadas (como UDDI).

Los negocios pueden registrase a si mismos con un registro o descubrir otros negocios con los que podr�an querer negociar. Adem�s, pueden enviar material para que sea compartido y buscar material que otros han enviado. Los grupos est�ndars han desarrollado DTDs para una clase de documentos XML particulars, y dos negocios podrian, por ejemplo, ponerse de acuerdo para usar el DTD como est�ndar para sus formularios de orden de pedidos industriales. Como el DTD est� almacenado en un registro de negocios est�ndar, �mbas partes pueden usar JAXR para acceder a �l.

Los registros se est�n convirtiendo en un componente importante de los servicios web porque permiten a los negocios colaborar unos con otros din�micamente y de una forma cercana. Seg�n esto, la necesidad de usar JAXR, que permite a las empresas acceder a registros de negocios est�ndars desde el lenguaje Java, tambi�n est� creciendo.

.�Usar JAXR

Las siguientes secciones nos dan ejemplos de dos formas t�picas en las que se usa un registro de negocios. Est�n pensados para darnos una idea de c�mo usar JAXR en vez de ser completos o exhaustivos.

.�Registrar un Negocio

Una organizaci�n que usa la plataforma Java para sus negocios electr�nicos podr�a usar JAXR para registrarse en un registro est�ndard. Suministar�a su nombre, una descripci�n de s� misma, algunos conceptos de clasificaci�n para facilitar su b�squeda. Esto se muestra en el siguiente fragmento de c�digo, que primero crea un objeto RegistryService rs y luego lo usa para crear el objeto BusinessLifeCycleManager lcm. El negocio, una cadena de cafeter�as llamada "The Coffee Break", est� representado por el objeto Organization org, a la que "The Coffee Break" a�ade su nombe, una descripci�n de s� misma, y algunas categor�as para su clasificaci�n. El org, que ahora contiene las propiedades y los conceptos de clasificaci�n para el "The Coffee Break" se a�ade al objeto Collection orgs. Finalmente, orgs es grabado por lcm, que manejar� el ciclo de vida de los objetos Organization contenidos en orgs:

RegistryService rs = connection.getRegistryService();
BusinessLifeCycleManager lcm = rs.getBusinessLifeCycleManager();
Collection orgs = new ArrayList();
while (...) {
    Organization org = new Organization();
	org.setName("The Coffee Break");
	org.setDescription("Purveyer of only the finest coffees. Established 1895");
	.....
	Collection classificationConcepts = new ArrayList();
	classificationConcepts.add(new Key(<key for Industry/Food Manufacturing/
	        	Other Food Manufacturing/Coffee And Tea Manufacturing concept>));
	classificationConcepts.add(new Key(<key for Geography/North America concept>));
	....
	org.addClassifications(classificationConcepts);
	orgs.add(org);
}
lcm.saveOrganizations(orgs);

.�Buscar un Registro

Un negocio tambi�n puede usar JAXR para buscar un registro de otros negocios. El siguiente fragmento de c�digo usa el objeto BusinessQueryManager bqm para buscar el "The Coffee Break". Antes de que bqm pueda llamar al m�todo findOrganizations, el c�digo necesita definir los criterios de b�squeda a utilizar. En este caso, se suminstran a findOrganizations tres de los seis posibles par�metros de b�squeda; como se suministra null para los par�metros tercero, quinto y sexto, estos criterios no se usan para limitar la b�squeda. Los argumentos primero, segundo y cuarto son todos objetos Collection, con findQualifiers y nombres definidos aqu�. El unico elemento findQualifiers es un String que especifica que no se devuelva ninguna organizaci�n a menos que su nombre sea una correspondencia exacta de uno de los par�metros names. Este par�metro, que tambi�n es un objeto Collection con s�lo un elemento que dice que los negocios con "Coffee" en sus nombres son una correspondencia. El otro objeto Collection es classificationConcepts, que fue definido cuando el "The Coffee Break" se registr� a s� mismo. El fragmento de c�digo anerior, en el que se proporcionaron la industria y la localizaci�n geogr�fica del "The Coffee Break" fue un ejemplo de definici�n de conceptos de clasificaci�n.

BusinessQueryManager bqm = rs.getBusinessQueryManager();

//Define find qualifiers
Collection findQualifiers = new ArrayList();
findQualifiers.add(BusinesQueryManager.exactNameMatch);
Collection names = new ArrayList();
names.add("%Coffee%"); //Find orgs with name containing Coffee
//Find using only the name and the classification concepts

BulkResponse response = bqm.findOrganizations(findQualifiers, names, null,
					classificationConcepts, null, null);
Collection orgs = response.getCollection();

JAXR tambi�n soporta el uso de consultas SQL para buscar un registro. Esto se hace usando un objeto SQLQueryManager, como se ve en el siguiente fragmento de c�digo:

SQLQueryManager sqm = rs.getSQLQueryManager();
BulkResponse response2 = sqm.submitQuery("SELECT id FROM RegistryEntry WHERE
                    name LIKE %Coffee% AND majorVersion >= 1 AND
					(majorVersion >= 2 OR minorVersion >= 3)");

El objeto BulkResponse response2 contendr� un valor identificativo (un uuid) por cada entrada en el RegistryEntry que contenga "Coffee" en su nombres y que tambi�n tenga una versi�n 1.3 o mayor.

Para asegurarnos la comunicaci�n entre un cliente JAXR y una implementaci�n de registro, la mensajer�a se hace usando JAXM. Esto se hace completamente detr�s de la escena, as� que como usarios de JAXR, no tenemos que preocuparnos de ello.

Como JAXM soporta todos los principales registros est�ndar, podemos usarlo para acceder a una gran variedad de registros, incluyendo registros ebXML y UDDI.

COMPARTE ESTE ARTÍCULO

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

SIGUIENTE ARTÍCULO