Upload
enrique-a
View
231
Download
9
Embed Size (px)
DESCRIPTION
Informacion de sad
Citation preview
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
37 Sistema a Distancia
Segunda Unidad: Parsing XML y Web Services
Sumario
La siguiente unidad presenta como manipular archivos XML utilizando las tcnicas de parseo, SAX y DOM, adems se diferencia ambas tcnicas y se plantea ejemplos de aplicacin. Luego se definen los web services, los estndares que utiliza, caractersticas, arquitectura y componentes de los web services. Adems de los retos tcnicos, y las tecnologas que permiten su desarrollo. Al final se muestra un ejemplo sobre este tipo de soluciones distribuidas.
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
38 Sistema a Distancia
Objetivos
Al finalizar esta unidad el estudiante ser capaz de:
Implementar aplicaciones parsing XML utilizando SAX y DOM. Diferenciar los APIs SAX y DOM en el manipuleo de archivos XML. Comprender, define y describe los web services y la importancia que
tiene para interoperar sistemas e integrar sistemas heterogneos. Conocer los componentes y la arquitectura de una aplicacin de Web
Services. Implementar Web Services utilizando la tecnologa JAX-WS
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
39 Sistema a Distancia
Leccin 5: Parsing XML
5.1 Definicin
El procesamiento de un documento XML requiere el uso de algn parser XML, que descompone el documento XML en sus diferentes elementos individuales. Un parser o analizador sintctico se encarga de procesar el documento XML y verifica que el documento XML este bien formado (y/o validado). El proceso implica leer el documento XML y verificar que este documento este bien formado, algunos tambin comprueban que el cdigo XML sea vlido.
"Un parser de XML genrico es aquel que nicamente comprueba si el documento XML es un documento bin formado, mientras que un parser de validacin se encarga de comprobar que un fichero XML sea vlido; es decir, comprueba que la estructura y el nmero de etiquetas tengan sentido, o lo que es lo mismo, que se adecuen al DTD" (Lozano, 2000, p. 144).
Tambin se considera como una herramienta de aplicacin XML que podemos incorporarlos a nuestras aplicaciones, de manera que estas puedan manipular y trabajar con documentos XML
Figura 5.1: Arquitectura de un parseador Fuente: Adaptado de Oracle XML Developer's Kit Programmer's Guide (2005)
El procesador XML divide el documento en sus partes constituyentes, para comprender su estructura y las relaciones entre sus partes.
Las reglas de validacin de la gramtica (vocabulario XML) se almacenan en un DTD o en XMLSchema.
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
40 Sistema a Distancia
Finalmente, se aplica el programa parser utilizando las tcnicas ms conocidas como DOM y SAX para obtener y representar un Parsed XML y Parsed XSL, tal como muestra la figura 5.1.
5.2 Tipos de parsing
Existen dos tipos de parseo:
a) Sin validacin: chequea que el documento est bien formado de acuerdo a las reglas de sintaxis de XML
b) Con validacin: adems de comprobar que el documento est bien formado, comprueba que ste sea vlido utilizando un DTD
En el caso de utilizar un DTD, es preferible utilizar un parser con validacin.
5.3 Parsers en los Browsers
Los navegadores como Internet Explorer y Mozilla Firefox incluyen sus propios tcnicas para parsear, por ejemplo:
a) Microsoft Internet Explorer, utiliza su propio parser de Microsoft incluido en la librera MSXML.DLL
b) Mozilla Firefox, internamente utiliza el parser EXPAT.
5.4 Los APIs para parseo
Existe 02 interfaces de comunicacin entre componentes de software (APIs) las cuales son SAX y DOM, que utilizan tcnicas y estn estandarizadas en un gran nmero de implementaciones para distintos lenguajes (Java, php, .net etc.)
Estos dos APIs DOM y SAX son parsers XML que comprueban que el documento est estructurado, bien formado y vlido a su vez.
El lenguaje Java posee sus propios paquetes: org.xml.sax y org.w3c.dom, que contienen interfaces y clases abstractas para la implementacin de parseo.
5.5 Java API for XML Processing (JAXP)
Tecnologa desarrollada en Java, las cuales tiene las siguientes caractersticas:
- Define un API para trabajar con parsers SAX, DOM y transformaciones XSL
- Proporciona factoras para crear instancias de parses y transformadores XSL de manera portable
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
41 Sistema a Distancia
- Forma parte de J2SE 1.4 y aparece en versiones superiores. - Incluye las APIs org.xml.sax, org.w3c.dom y javax.xml.{parsers,
transform} - Incluye Crimson y Xalan como implementaciones por defecto - Se pueden usar otras implementaciones va configuracin - JDOM es un API en java para DOM y DOM4J para XPath
5.6 DOM y SAX
Son dos plataformas con lenguajes-independientes, estas APIs sirven para la manipulacin o lectura de documentos XML.
Los APIs o Application Programming Interface, son un conjunto de funciones, procedimientos, mtodos, clases e incluso interfaces, incluye caractersticas para procesar y analizar documentos XML.
Existe una gran diferencia entre los 02 APIS, que a continuacin detallamos:
Tabla 1: Comparacin SAX y DOM Fuente: Elaboracin propia
Criterios de evaluacin
API DOM API SAX
Estandarizacin
Recomendado por W3C
Especificacin no formal
Manipulacin
Funciones: Lee y Escribe
Funcin solo lectura
Consumo de memoria
Depende del tamao de la fuente de archivo XML, pueden ser grandes
Muy bajo
Manejo de XML Basado en rbol Basado en eventos
5.7 SAX (Simple API para XML) Este API fue creado originalmente en Java, hoy en da SAX es soportado en la mayora de los lenguajes de programacin. Utiliza un modelo orientado a eventos, la cantidad de uso de memoria es baja y solo lee documentos XML.
De acuerdo a la tabla 1, no trabaja con una especificacin formal y es considerado como el primer parseador de documentos XML. (Seacord, Plakosh y Lewis, 2003, p. 110)
SAX utiliza el modelo orientado a eventos para leer documentos en XML. La idea bsica es que el analizador SAX lea el documento XML "lnea uno a la vez".
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
42 Sistema a Distancia
Las funciones del analizador SAX reaccionan al encontrar los elementos y otras partes del documento XML.
Cuando el analizador encuentra una etiqueta del documento XML, llama una determinada funcin. Cuando el analizador pasa por una etiqueta de cierre termina la funcin.
Ejemplos: A continuacin mostraremos un ejemplo de un documento XML
primer ejemplo
Y la forma como lee el API SAX
El API comienza a leer el documento de la siguiente manera:
Lnea 1: Reconoce e identifica el documento XML y verifica la versin "1.0" y codificacin "UTF-8"
Lnea 2: Define el elemento raz con el nombre de ElementoRaiz, cuyo atributo se denomina parmetro1 y tiene como valor el dato valor
Lnea 3: Lee el siguiente elemento cuyo nombre es PrimerElemento
Lnea 4: A continuacin lee el contenido del elemento cuya informacin es primer ejemplo
Lnea 5: Reconoce una etiqueta de cierre para el elemento PrimerElemento.
Lnea 6: Finalmente reconoce una etiqueta de cierre del elemento raz y el API SAX termina el analizador
Ejemplos: Este es un ejemplo de cdigo del API SAX en PHP
// Crea el Parse XML $xml_parser = xml_parser_create(); // Se configura la lectura de los elementos y datos de los elementos xml_set_element_handler($xml_parser, "startElement", "endElement"); xml_set_character_data_handler($xml_parser, "characterData"); // Abre el Archivo XML if (!($fp = fopen($file, "r"))) { die("No puedo abrir documento XML "); }
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
43 Sistema a Distancia
// Lee y parsea el documento XML while ($data = fread($fp, 4096)) { if (!xml_parse($xml_parser, $data, feof($fp))) { die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); } } xml_parser_free($xml_parser);
function startElement($parser, $name, $attrs) { // Aqu implementer cdigo } function endElement($parser, $name) { // Aqu implementer cdigo } function characterData($parser, $data) { echo $data; }
Este programa analiza lnea por lnea los elementos, atributos y contenidos de cada elemento, adems cada vez que lee libera memoria y extrae contenidos valores de los documentos XML.
El API SAX es excelente cuando slo se quiere leer el contenido del archivo XML, adems es fcil y limpio.
No requiere muchos recursos inclusive puede servir en los dispositivos mviles.
5.8 DOM
El Modelo de Objeto Documento o Document Object Model (DOM) es una plataforma y modelo estndar de objetos independiente del lenguaje para la representacin de HTML o XML y formatos relacionados.
Recomendado por W3C, puede ser usado para la manipulacin de documentos XML, existen diferentes versiones: DOM 1, DOM 2 y DOM 3
Al igual que el API SAX este, se utiliza para la manipulacin de documentos xml, DOM carga el documento XML a memoria y crea un modelo de rbol de la data que contiene el documento XML adems puede consumir memoria si los documentos son grandes.
Por lo tanto DOM define un conjunto estndar de comandos que los parsers devuelven para facilitar el acceso al contenido de los documentos XML. Un analizador de XML compatible con DOM toma los datos de un documento XML y los expone mediante un conjunto de objetos que se pueden programar.
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
44 Sistema a Distancia
5.8.1 rboles y Nodos en DOM
El rbol se compone de nodos.
Un nodo puede tener: - Elemento (Element) - Texto (Text) - Attribute (Attr) - Cdata (CDATASection) - Comentario (Comment)
Relaciones entre nodos
Podemos encontrar diferentes relaciones entre nodos: - Primer Hijo (firstChild) - Ultimo Hijo (lastChild) - Siguiente Hermano (nextSibling) - Previo Hermano (previousSibling) - Padre (parentNode)
Contenidos de los Nodos
Los contenidos de los nodos pueden ser: - Valor del Atributo (text) - Valor del Elemento (text) - Comentario del Valor (text)
Ejemplos:
Sea el siguiente contenido de un documento XML:
Juan Martha Pedro Carlos
A continuacin, la forma cmo se representa el documento XML
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
45 Sistema a Distancia
Ejemplos:
Este es un ejemplo de cdigo del API DOM en lenguaje PHP:
// Carga el documento XML $dom = new domDocument(); // Carga el archivo libros.xml $dom->load("libros.xml"); // Lista los nombres de los elementos de los nodos $listOfNodes = $dom->getElementsByTagName("name"); // Visualiza todos los nodos foreach($listOfNodes as $node) { print $node->nodeValue; }
// Carga el Documento XML $dom = new domDocument(); $dom->load("libros.xml");
// Crea un elemento $book = $dom->createElement("book");
// crea un elemento con algun contenido $title = $dom->createElement("title", $_GET['title']);
// algunos contenidos
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
46 Sistema a Distancia
$book->appendChild($title);
// Adiciona un libro debajo del elemento root en "libros.xml" $dom->documentElement->appendChild($book);
// salva $dom->save("libros.xml");
Ejemplo: Removiendo elementos
En este ejemplo se establece la forma como eliminar el primer elemento del documento, en este caso el primer item del elemento programa.
Programando en PHP Aprendiendo Java
Para este ejemplo se utiliza la funcin removeChild.
$elements = $dom->getElementsByTagname("programa"); $element = $elements->item(0); $children = $element->childNodes(); $child = $element->removeChild( $children->item(0) );
El resultado sera:
Aprendiendo Java
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
47 Sistema a Distancia
Leccin 6: Web Services
6.1 Definicin
Se trata de aplicaciones que utilizan los mismos estndares de internet y protocolos que intercambian informacin entre diferentes sistemas, muchos consideran como una "caja negra" a la que hay que proveer datos de entrada especfica y obtener una respuesta determinada.
" ...Los servicios web son aplicaciones ofrecidos a travs del Web, no son por tanto nada nuevo, sino ms bien una re-invencin de la rueda con ideas prestadas de Corba y DCOM" (Moliner, 2005, p. 238).
Un Web Services o Servicio Web se comunica por medio de mensajes, utilizando el protocolo SOAP entre diferentes computadoras a travs de una red, de manera transparente, independiente del lenguaje de programacin, independiente del sistema operativo y de la plataforma.
"Los servicios web significan la evolucin de la informtica distribuida, cuyo principio arquitectnico es permitir que aplicaciones de un entorno se conecten y compartan datos y contenido con aplicaciones de otro entorno distinto" (Munilla y Garca, 2003, p. 72).
Los web services se disean para permitir que los componentes se comuniquen con otros una vez conectados, adems de ofrecer servicios de informacin y operaciones transaccionales. Este tipo de tecnologa utiliza XML como formato estndar para compartir informacin y datos, esta basado en estndares de Internet (WSDL, SOAP y UDDI) para el registro de comunicaciones. Este tipo de aplicaciones interactan con otras aplicaciones usando los protocolos de internet.
Como soluciones de intercambio de datos, usa la red de internet como plataforma operacional y sirve como una practica para implementar SOA (Arquitectura Orientada a Servicios).
Ejemplo: El Registro Nacional de Identificacin y Estado Civil (RENIEC) provee un Web Service que recibe como dato de entrada, en este caso el nmero de DNI de una persona, la aplicacin sera un Web Services Consumidor (WSC) y como retorno el Web Services Proveedor (WSP) enva informacin el nombre completo, el lugar de nacimiento, la direccin, estado civil y dems datos de inters de la persona asociado a la RENIEC.
6.2 Estndares principales de los Web Services
Los web services, utilizan los mismos estndares de internet para construir y habilitar Web services, las que podemos mencionar a continuacin:
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
48 Sistema a Distancia
- HTTP ((HyperText Transfer Protocol) - XML (Extensible Markup Language) - SOAP (Simple Object Access Protocol) - WSDL (Web Services Description Language) - UDDI (Universal Description, Discovery and Integration)
6.2.1 Hypertext Transfer Protocol (HTTP)
El Protocolo de transferencia de hipertexto, es un mecanismo ms extendido utilizado por los servidores y los navegadores web para comunicarse. Este protocolo regula las solicitudes de los navegadores y las transferencias de ficheros HTML por parte de los servidores. Esta orientado a las transacciones y sigue el esquema de peticin respuesta entre un cliente y un servidor.
6.2.2 Extensible Markup Language (XML)
El Lenguaje de Marcas Extendida es un estndar para estructurar datos, formatos y contenido para documentos electrnicos, donde se definen etiquetas semnticas para organizar un documento. Adems XML es un metalenguaje que te permite disear tu propio lenguaje de etiquetas.
A diferencia de un lenguaje de etiquetas normal HTML, utilizando XML te permite definir tu propio lenguaje.
XML es considerado como un lenguaje universal que sirve para intercambio de datos e informacin entre aplicaciones, sistemas y dispositivos sobre la red de Internet.
6.2.3 Simple Object Access Protocol (SOAP)
El Protocolo de Acceso de Objeto Simple, es un tipo de protocolo de mensajera basada y construido en XML que se usa para codificar informacin de los requerimientos de los Web Services, adems permite responder los mensajes antes de enviarlos por la red.
Estos mensajes SOAP codificados en XML son independientes de los sistemas operativos y pueden ser transportados por los protocolos que funcionan con Internet, como SMTP, MIME y HTTP.
6.2.4 Web Services Description Language (WSDL)
El Lenguaje para la Descripcin de Web Services, es un formato basado en XML, que permite definir la interfaz pblica para los servicios Web. Esta descripcin definida en XML sirve para establecer una comunicacin con los Web Services.
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
49 Sistema a Distancia
6.2.5 Universal Description, Discovery and Integration (UDDI)
Es un directorio distribuido que opera en la Web, ofrece servicios para registrar, publicar y buscar Web Services, adems de comprobar qu servicios web estn disponibles. Es utilizado como mecanismo de descubrimiento de Web Services y averiguar si estn disponibles.
6.3 Caractersticas de los Web Services
Los web services presentan algunas diferencias sobre sistemas distribuidos tradicionales, entre los que podemos citar:
Interoperabilidad: Los Web Services Consumidores pueden ser utilizados para recuperar informacin de diferentes Web Services Proveedores que se ejecutan en diferentes plataformas.
Tipos de datos de las Interfaces: Los tipo de datos definidos para los Servicios Web se corresponde con los tipos de datos definidos por la mayora de lenguajes de programacin.
Acceso externo desde Internet: Los Web Services Proveedores realizan una buena gestin para los accesos que provienen de los Web Services Consumidores desde Internet.
Soporte de cualquier lenguaje de programacin: La puesta en marcha de un Web Services no est ligada a un lenguaje de programacin en particular, por lo tanto se puede implementar o usar un Web Services independientemente del lenguaje de programacin en el que fue implementado por ejemplo: Java, Python, php .Net.
Uso de los estndares de Internet: Los Web services utilizan los estndares de Internet y estas soluciones evitan, en su medida de lo posible, reinventar soluciones a problemas que ya estn resueltas.
Soporte para cualquier infraestructura de componentes distribuidas: Los Web Servicios no estn ligados a una arquitectura de componentes determinados. Los protocolos que utilizan estas soluciones facilitan las comunicaciones entre las distintas infraestructuras de los objetos distribuidos.
6.4 Arquitectura de los Web Services
Los Web Services, en vez de obtener peticiones desde un navegador y devolver pginas web como respuesta, recibe peticiones, mediante un mensaje formateado con SOAP, desde otras aplicaciones realiza la labor que le han pedido y devuelve un mensaje de respuesta en formato SOAP.
En la figura 6.1 muestra los componentes bsicos, sus relaciones protocolos de comunicacin de los web services.
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
50 Sistema a Distancia
Figura 6.1: Arquitectura de un Web Services Fuente: Adaptacin propia
La arquitectura bsica del modelo de web services describe a un consumidor, un proveedor. Relacionados con estos agentes estn las operaciones para publicar, encontrar y enlazar, tal como se muestra en la figura 6.1.
Bsicamente consiste en que un Web Services Proveedor pblica sus servicios en un corredor en este caso el WSDL, luego un consumidor se conecta al corredor utilizando el URL del WSDL para encontrar los servicios deseados expresados en operaciones y una vez que lo hace esta conexin se realiza un lazo entre el consumidor y el proveedor.
Ejemplo:
Una agencia de viajes, que para atender a sus clientes requiere de informacin del clima, tipo de cambio, precios de pasajes entre otros. Para contar con esta informacin, la agencia necesita implementar sistemas especializados.
Esta solucin podra ser implementando utilizando componentes de software por el lado del servidor de la agencia de viajes, as como en los servidores de las entidades especializadas, y de esta manera los sistemas puedan comunicarse a travs de Internet, utilizando estndares, protocolos comunes y sobre todo bajo un lenguaje nico, donde puedan intercambiar datos e informacin
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
51 Sistema a Distancia
A continuacin la forma como los Web Services Consumidores solicitan informacin figura 6.2 y luego la forma como los Web Services Proveedores remiten la informacin figura 6.3.
Figura 6.2: Web Services Consumidor solicita informacin Fuente: Adaptado de Rivas, J. (2005, p. 140) Web Services.
Figura 6.3: Respuesta de los Web Services Proveedores Fuente: Adaptado de Rivas, J. (2005, p. 140-142) Web Services.
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
52 Sistema a Distancia
6.5 Retos tcnicos que deben superar los Web Services
Todava existen algunos retos a este tipo de tecnologa que deben superar para poder tener xito. Estos retos tcnicos estn relacionados con el ambiente abierto en el que tienen que sobrevivir, el cual describiremos a continuacin:
a) Descubrimiento:
Los web services proveedores deben anunciar a los web services consumidores sobre el estado de la publicacin del WSDL, todava este mecanismo no esta resuelto. Adems los consumidores no saben si el servicio cambio o se movi luego de ser anunciado.
Por el momento tenemos a dos mecanismos que gestiona el descubrimiento que son los estndares UDDI y WSDL.
b) Confiabilidad:
Existen muchos Web Services publicados en internet, ahora es necesario conocer cual es el grado de confiabilidad de estos web services. Por otro lado muchos web services no anuncian si estn disponibles en algn horario determinado el consumidor pueda ser que lo solicite y este se encuentra fuera de lnea, por ahora no existe un mecanismo que informe de manera automtica el estado del servicio publicado.
c) Seguridad:
La mayora de web services publicados se han publicado sin restringir a los consumidores, pero ahora es necesario proveer el suficiente mecanismo para asegurar las operaciones que se van a desarrollar utilizando mdulos de autentificacin autorizados. Al ser publicado un web services, cualquier consumidor bastar conocer el WSDL para poder solicitar el servicio y utilizarlo.
d) Responsabilidad
Generalmente los web services son de libre acceso, pero en caso que se restringa, por ahora no existe un mecanismo que determine cuantas veces un consumidor puede acceder al web services una vez contratado. Si fuera un servicio no libre faltara determinar un mecanismo para realizar cobros e informar a sus consumidores que ya no esta disponible ese servicio.
6.6 Desarrollo de un Web Services Proveedor y Consumidor con Axis
AXIS Apache EXtensible Interaction System es un framework para manejar SOAP y Web Services, existen versiones para lenguajes de programacin C++ y Java.
La versin para Java se instala como si fuera una aplicacin web (conjunto de ServLets) dentro de un contenedor web.
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
53 Sistema a Distancia
AXIS crea web services de manera tan sencilla, solo se debe arrastrar y soltar sus clases Java dentro del contenedor web.
Adems Axis posee herramientas avanzadas para el desarrollo web services complejos como los paquetes WSDL2Java y Java2WSDL
a) Creacin de un Web Services Proveedor
Para crear un web servicis proveedor se debe definir las operaciones y atributos del web services, tal como se muestra a continuacin:
public class OperacionCalculadora { public int sumatoria (int a1, int a2) { return a1 + a2; } public int diferencia (int a1, int a2) { return a1 - a2; } public int multiplicar (int a1, int a2) { return a1 * a2; }
}
b) Web Services Consumidor sin AXIS
public class CalculadoraClient { public static void main (String[] args) throws Exception { // invoca el WSDL del web services proveedor String endpoint = "http://localhost:8080/axis/OperacionCalculadora.jws";
Integer a1 = new Integer("1"); Integer a2 = new Integer("2");
Service service = new Service(); Call call = (Call) service.createCall();
call.setTargetEndpointAddress (new java.net.URL(endpoint) ); // se invoca la operacin sumar del servicio call.setOperationName ("sumar");
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
54 Sistema a Distancia
call.addParameter( "op1", XMLType.XSD_INT, ParameterMode.IN ); call.addParameter( "op2", XMLType.XSD_INT, ParameterMode.IN ); call.setReturnType( XMLType.XSD_INT ); Integer resultado = (Integer) call.invoke (new Object [] { i1, i2 }); // se muestra el resultado como consecuencia de la operacin del servicio System.out.println ("Resultado esperado: " + resultado); } }
c) Web Services Consumidor con Axis
public class CalculadraClientAxis { public static void main (String[] args) throws Exception { // se invoca directamente el WSLD del servicio CalculadoraService service = new CalculadoraServiceLocator ("http://localhost:8181/axis/OperacionCalculadora.jws");
// Se crea una instancia para la operacin del servicio OperacionCalculadora calc = service.getcalculadora();
// Luego se llama la operacin suma int resultado = calc.sumatoria (12,20);
// Finalmente se imprime el resultado de la suma de 12 ms 20 System.out.println ("Resultado esperado: " + resultado); } }
6.7 Web services con Java
Java API for XML Web Services (JAX-WS) es un API para el lenguaje de programacin Java que permite crear Web Services, se implementa en plataformas Java EE de Sun Microsystems.
6.7.1 Creacin de dos Web Services con un Web Services Consumidor utilizando JAX-WS
6.7.1.1 Enunciado del caso
Se trata de crear 2 web services proveedores, la primera para usar y consultar una librera, cuyo resultado ser obtener datos del libro y el segundo web services proveedor nos permitir obtener los datos de un ciudadano a partir del DNI utilizando la base de datos RENIEC.
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
55 Sistema a Distancia
6.7.1.2 Definiendo las bases de datos de los 02 Web Services Proveedores
Para empezar necesitamos implementar las bases de datos de los web services en MYSQL
Base de Datos de la LIBRERA librera
Figura 6.4: Modelamiento de la Base de datos librera
Base de Datos de RENIEC dni
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
56 Sistema a Distancia
Figura 6.5: Modelamiento de la Base de datos dni (RENIEC) 6.7.1.3 Creacin del primer Web Service Proveedor Librera
Este Web Service, debe permitir recuperar informacin y detalles de un libro, tan solo colocando el nombre del libro se obtendr todos los datos del libro.
Para este primer web services solo se implementa una sola operacin.
a. Crear el proyecto con el nombre de WebServiceLibro
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
57 Sistema a Distancia
Figura 6.6: Creacin del Proyecto WebServiceLibro
b. Creacin del Web Service en el proyecto
Figura 6.7: Creacin del Web Service Libro y definicin del paquete clasejava
c. Definiendo la operacin y tipos de datos
Nombre de la Operacin: ObtenerTitulo y tipo de dato String
Nombre del Parmetro: Titulo tipo de datos String
Figura 6.8: Definiendo la operacin y parmetros del web service
d. Creamos la clase para conectar a la base de datos
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
58 Sistema a Distancia
Figura 6.9: Creando la clase conectamysql
e. Insertamos el cdigo en la clase conectamysql
package clasejava; import java.sql.Connection;
import java.sql.ResultSet; import java.sql.Statement; import java.sql.DriverManager; public class conectamysql {
public Connection getConextion() { try {
Class.forName("com.mysql.jdbc.Driver"); String url ="jdbc:mysql://localhost:3306/libreria"; return (DriverManager.getConnection(url,"root","uigv")); } catch (Exception e) { System.out.println("error"+e.getMessage()); }
return null;
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
59 Sistema a Distancia
}
public ResultSet Listar(String sql) { Statement st = null;
ResultSet rs = null;
try {
Connection conn = this.getConextion(); st = conn.createStatement(); rs = st.executeQuery(sql); } catch (Exception e) { System.out.println("Error:"+ e.getMessage()); }
return rs;
}
}
f. Insertamos y editando cdigo de la clase del web services
package clasejava; import javax.jws.WebMethod; import javax.jws.WebParam; import javax.jws.WebService; import java.sql.ResultSet; @WebService() public class WebServiceLibro { /** * Web service operation */ @WebMethod(operationName = "ObtenerTitulo") public String ObtenerTitulo(@WebParam(name = "Titulo") String Titulo) throws Exception { //TODO write your implementation code here: ResultSet rs = null; String datos= ""; conectamysql objc = new conectamysql(); rs = objc.Listar("select libro.ISBN,autor.Nombre,libro.Stock,libro.Precio," + "Categoria.Categoria,libro.Nombre,Idioma.Idioma from autor,libro,Categoria," + "Idioma where libro.Nombre like '%" + Titulo + "%'" +
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
60 Sistema a Distancia
" and autor.idAutor=libro.Autor_idAutor and" + " Categoria.idCategoria=libro.Categoria_idCategoria and" + " Idioma.idIdioma=libro.Idioma_idIdioma;"); while (rs.next()){ datos = datos + " " + rs.getString(1) + " - " + rs.getString(2) + " - " + rs.getString(3)+ " - " + rs.getString(4) + " - " + rs.getString(5) + " - " + rs.getString(6) + " - " + rs.getString(7); } if (datos.compareTo("")==0){datos="No encontrado";}; return datos ; } }
g. Crear la Unidad de Persistencia
Para asegurar el proyecto y la base de datos Mysql, es necesario crear una unidad de persistencia
Figura 6.10: Creando la unidad de persistencia con el perfil librera
h. Probando el Web Service
Para probar es necesario ejecutar en segundo plano el proyecto
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
61 Sistema a Distancia
Figura 6.11: Insertando nombre del libro
Figura 6.12: Devolviendo los detalles del libro
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
62 Sistema a Distancia
6.7.1.4 Creacin del segundo Web Service Proveedor Reniec
a) Crear el proyecto con el nombre de WebServiceReniec
Figura 6.13: Creacin del Proyecto WebServiceReniec
b) Creacin del Web Service en el proyecto WebServiceReniec
Figura 6.14: Creacin del Web Service Reniec y definicin del paquete clasejava
c) Definiendo la operacin y tipos de datos Nombre de la Operacin: ObtenerDatosDNI y tipo de dato String
Nombre del Parmetro: dni tipo de datos String
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
63 Sistema a Distancia
Figura 6.15: Definiendo la operacin y parmetros del web service
d) Creamos la clase para conectar a la base de datos
Figura 6.16: Creando la clase conectamysql
e) Editando cdigo en la clase conectamysql
package clasejava; import java.sql.Connection;
import java.sql.ResultSet; import java.sql.Statement; import java.sql.DriverManager;
public class conectamysql {
public Connection getConextion() { try {
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
64 Sistema a Distancia
Class.forName("com.mysql.jdbc.Driver"); String url ="jdbc:mysql://localhost:3306/dni"; return (DriverManager.getConnection(url,"root","uigv")); } catch (Exception e) { System.out.println("error"+e.getMessage()); }
return null;
}
public ResultSet Listar(String sql) { Statement st = null;
ResultSet rs = null;
try {
Connection conn = this.getConextion(); st = conn.createStatement(); rs = st.executeQuery(sql); } catch (Exception e) { System.out.println("Error:"+ e.getMessage()); }
return rs;
}
}
f) Editando cdigo de la clase del web service
package clasejava;
import javax.jws.WebMethod; import javax.jws.WebParam; import javax.jws.WebService;
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
65 Sistema a Distancia
import java.sql.ResultSet;
@WebService() public class WebServiceReniec {
/** * Web service operation */ @WebMethod(operationName = "ObtenerDatosDNI") public String ObtenerTitulo(@WebParam(name = "dni") String dni) throws Exception { //TODO write your implementation code here: ResultSet rs = null; String datosdni= ""; conectamysql objc = new conectamysql(); rs = objc.Listar("select dni.dni,dni.nombre,dni.apepat,dni.apemat,dni.direccion," + "departamento.nombre,provincia.nombre,distrito.nombre from dni," + "departamento,provincia,distrito where dni.dni=" + dni + "" + " AND dni.Departamento_idDepartamento=departamento.idDepartamento " + "AND dni.provincia_idprovincia=provincia.idprovincia AND " + "dni.distrito_iddistrito=distrito.iddistrito;");
while (rs.next()){ datosdni = datosdni + " " + rs.getString(1) + " - " + rs.getString(2) + " - " + rs.getString(3)+ " - " + rs.getString(4) + " - " + rs.getString(5) + " - " + rs.getString(6) + " - " + rs.getString(7) + " - " + rs.getString(8); } if (datosdni.compareTo("")==0){datosdni="No encontrado";};
return datosdni ; }
}
g) Unidad de Persistencia Para Asegurar el proyecto y la base de datos Mysql, es necesario crear una unidad de persistencia
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
66 Sistema a Distancia
Figura 6.17: Creando la unidad de persistencia reniec
h) Probando el Web Service Para probar es necesario ejecutar en segundo plano el proyecto
Figura 6.18: Insertando DNI de la persona
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
67 Sistema a Distancia
Figura 6.19: Devolviendo datos de la persona
6.7.1.5 Creando un web service consumidor que integre los dos web service proveedor
a) Creando el proyecto
Figura 6.20: Creando el proyecto Web Services Consumidor
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
68 Sistema a Distancia
b) Invocando los WSDL de los WS Proveedores
Figura 6.21: Referencias de los web Services Proveedores
c) Creacin de las pginas JSP Consulta Libro
El formulario principal debe tener el siguiente diseo
Figura 6.22: Formulario para ingreso de datos
En el caso de introducir en el nombre del libro a buscar, debe pasar por un JSP intermedio que se encarga de validar y almacenar la informacin del formulario a travs de un java bean y llamar a otro jsp que ser el que realice el uso del web service con la informacin recepcionada.
Por ejemplo si se coloca: Acero, el resultado ser:
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
69 Sistema a Distancia
Figura 6.13: Resultado de la consulta
Consulta DNI
Figura 6.24: Formulario para la consulta de DNI
Del mismo modo para la consulta del DNI de la persona, el formulario llama a un jsp intermedio que se encargar de validar y almacenar la data del formulario a travs de un bean y llamar a otro jsp que realice el uso del webservice con la informacin recepcionada.
Por ejemplo, si se coloca en la caja de texto: 1319575, el resultado ser:
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
70 Sistema a Distancia
Figura 6.25: Resultado de la consulta
6.7.1.6 Web Service Consumidor utilizando servlet
a) Crear el Proyecto consumidor con el nombre WSConsumidor
Figura 6.26: Proyecto Consumidor
b) Invocando el web Service proveedor
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
71 Sistema a Distancia
Figura 6.27: Invocando el WSP
c) Disear el formulario en JSP
JSP Page
Ingrese DNI:
d) Crear un Servlet
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
72 Sistema a Distancia
Figura 6.28: Creacin de la clase y paquete para el servlet
e) Invocando el cdigo del Web Services
Figura 6.29: Invocando cdigo del WSP
f) Agregando cdigo al cdigo recuperado Recuperar texto ingresado del formulario
String textoconsulta = request.getParameter("textoconsulta");
Indicarle para que pase por el web service
java.lang.String dni = textoconsulta;
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
73 Sistema a Distancia
Figura 6.30: Modificando cdigo
Figura 6.31: Ingresando datos
Figura 6.32: Resultados
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
74 Sistema a Distancia
RESUMEN
La unidad desarrollada nos proporciona las tcnicas para parsear documentos XML, utilizando los APIs SAX y DOM, adems se describen las tecnologas y lenguajes de programacin que se utilizan para su implementacin, incluyendo una comparacin y ejemplos.
En la segunda parte de esta unidad se explica y define los web services, adems se describen sus componentes y estndares que utiliza, adems se muestra la arquitectura de este tipo de soluciones de integracin de aplicaciones.
Se complementan describiendo los retos tcnicos y las tecnologas que permiten el desarrollo y la puesta en marcha de los web services.
Finalmente en esta unidad se presenta un ejemplo de desarrollo de Web Services, utilizando tecnologa JAX-WS.
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
75 Sistema a Distancia
L E C T U R A
Los servicios Web: el futuro previsible de XML (*)
El XML, se est convirtiendo poco a poco en el esperanto de la Web, incluso de la informtica ya que se utiliza tambin en bases de datos, herramientas de oficina y documentacin, etc. Permite, entre otras cosas, organizar y presentar informacin de manera ms rigurosa, simplificar los intercambios de informacin y automatizar las actividades administrativas y logsticas.
Adems, los ms optimistas dicen que la adopcin masiva del XML debera incluso acelerar los intercambios en Internet. Hoy en da, los usuarios de Internet acceden a formularios, los rellenan y los envan al servidor para que los procese y devuelva el resultado de la consulta. La informacin estructural y semntica que aporta el XML permite a los ordenadores procesar la informacin de manera local, sin intervencin de un servidor remoto. De hecho, a nivel de transmisin de los datos a travs de Internet, el trfico ha disminuido de manera considerable.
Esta ganancia en velocidad tiene una explicacin muy sencilla: tomemos como ejemplo un sitio que ofrece una lista de las pelculas que se encuentran en la cartelera de los cines de su ciudad y sus sesiones: si realiza una bsqueda de la pelcula, el sitio podr reenviarle una lista importante de resultados teniendo en cuenta el nmero de cines que hay en su ciudad y las sesiones para esta pelculas. Puede, por ejemplo, afinar su consulta realizando una bsqueda filtrada por un rea particular de su ciudad y una franja horaria para la sesin. Esta bsqueda corresponde a una nueva consulta para el servidor.
Si la larga lista de sesiones ya se haba enviado en XML, habr podido efectuar una seleccin a su gusto, sin que se vuelva a requerir de nuevo el servidor. Para realizar esto, solo es necesaria una pequea aplicacin (por ejemplo, un applet Jave enviado por el sitio a la vez que los datos). Este ahorro de tiempo multiplicado por varios millones de usuarios, podra ser la causa de una mejora notable de la red.
Por ltimo, Internet realmente saca provecho de XML con la creacin de servicios Web: Las aplicaciones modulares que se pueden invocar remotamente apoyndose nicamente en HTTP, el protocolo de la Web.
La Web de los servicios se compone de servicios Web muy diversos. La disponibilidad de algunos de estos servicios le podra ser til a la hora de disear su propio sitio o de su aplicacin distribuida.
A continuacin se muestra un sencillo ejemplo. Ha decidido disear un portal en el cual desea ofrecer varios servicios como el horscopo, la informacin meteorolgica o un servicio de traduccin.
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
76 Sistema a Distancia
Es muy poco probable que usted rena a la vez el talento de un meteorlogo, un astrlogo/numerlogo y de un traductor multilinge. Por lo tanto, probablemente lo que busque sea delegar y automatizar estas operaciones. Buscar las fuentes para estas informaciones, es decir, en el sitio del Meteosat en Espaa, por ejemplo, en un sitio de astrologa y uno de traduccin en lnea (como BabelFish).
Estos diferentes sitios poseen en un nivel superior aplicaciones que pueden producir al vuelo informaciones que se van a publicar segn los parmetros. El administrador del sitio ha podido poner a su disposicin un servicio Web que le permita llamar a esta aplicacin y recibir directamente el resultado.
As, tradicionalmente, si ha querido construir un nuevo sitio con capacidades similares, necesitar crear o comprar una aplicacin para procesar las traducciones, sintetizar los datos meteorolgicos o extraer los horscopos.
Pero en el nuevo mundo de los servicios Web, es posible delegar este trabajo a los sitios que poseen los servicios Web necesarios. La tecnologa SOAP ha sido diseada para responder tpicamente a este tipo de problemtica.
A modo de ejemplo, la escritura del mtodo del servicio de traduccin podra parecerse a:
String traducir { String origenLengua; String destinoLengua; String textoATraducir; }
Finalmente, la Web de los Servicios nos permitir concentrarnos en nuestra propia especialidad e incorporar informacin y funciones de cualquier otra esfera.
* Fuente: (Lecomte, S. y Boulanger, T., 2009, pp. 210-212)
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
77 Sistema a Distancia
AUTOEVALUACIN
1. Las tcnicas de parseo comprueba: a. Documentos validados b. Documentos validados y bien formados c. Documentos bien formados d. Documentos correctamente etiquetados e. Documentos correctamente estructurados
2. Una aplicacin parsing no puede manipular archivos del tipo: a. XML Schema b. WSDL c. XML d. XSL e. Java
3. Uno de los lenguajes de programacin no tienen implementacin de parseo a. Java b. Php c. CORBA d. .NET e. C#
4. Una de las caractersticas del API DOM no corresponde: a. Recomendado por W3C b. Solo se puede leer los archivos XML c. Basado en un rbol d. Especificacin formal e. Puede consumir memoria
5. Una de las caractersticas si corresponden al API SAX a. Basado en un rbol b. Recomendado por W3C c. Se pueden leer y escribir archivos XML d. Desarrollado en Objetos
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
78 Sistema a Distancia
e. Lee una lnea cada vez que encuentra etiquetas XML
6. Una de las afirmaciones sobre Web Services utilizando SOAP es incorrecta a. Utiliza los mismos estndares de internet b. Utiliza los mtodos get y post para comunicarse c. El protocolo de comunicacin es un fichero XML d. Utilizan un lenguaje para la Descripcin de Web Services e. Son independientes a la tecnologa y plataforma
7. La comunicacin entre los web services proveedor y consumidor se realiza utilizando: a. Un rbol de servicios b. URL c. SOAP d. JAX-WS e. UDDI
8. Permite describir y publicar Web Services: a. UDDI b. URL c. WSDL d. SOAP e. N.A.
9. Para que se comuniquen un Web Services Consumidor solo tiene que conocer del Web Services Proveedor a. XML del proveedor b. URL c. Get del Proveedor d. WSDL e. SOAP
10. Uno de los retos tcnicos que se tienen que enfrentar los web services no corresponde
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
79 Sistema a Distancia
a. Descubrimiento b. Confiabilidad c. Interoperatividad d. Seguridad e. Responsabilidad
RESPUESTAS DE CONTROL 1. b 2. e 3. c 4. b 5. e 6. b 7. c 8. a 9. d 10. c
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
80 Sistema a Distancia
EJERCICIOS PROPUESTOS
Caso 1: Parsing XML utilizando DOX y SAX
La empresa MATRIX, es medio periodstico que actualmente cuenta con un sistema de informacin de noticias muy activo gracias a la tecnologa LAMP. Ahora el rea Relaciones Pblicas ha solicitado al rea de desarrollo la implementacin de una aplicacin RSS, para dar a conocer los ltimos acontecimientos y noticias a sus lectores y usuarios como los titulares, el resumen, y enlace de las noticias que se generan. Los campos de la tabla del RSS son: (id,seccion, titulo, descripcion, fecha, url e imagen).
La data de la aplicacin RSS debe contener estos artculos:
id seccion titulo Descripcin fecha url imagen 1
deportes
Dulio Beretta el gran sucesor de Lucho Horna
Sin duda lo mejor del 2010 luego de voley, la tabla y, ahora, nuevamente, el tenis
2011-09-11
http://www.matrix.com/deporte
berreta.jpg
2 salud El cacao ayuda a combatir el acne
Un estudio realizado en Estados Unidos sugiere que tomar cacao antes de ejercitarse puede ayudar a reducir los dolores
2011-09-12
http://www. matrix.com/salud cafe.jpg
3 politica Error en ejecuto plantea derogar Decreto Legislativo 1097
El Poder Ejecutivo envi al Congreso, ayer por la tarde, un proyecto de ley aprobado por el Consejo de Ministros que plantea ..
2011-09-09 http://www.Matriz.com/politica
dlegis.jpg
4
cultura Aprueban el proyecto que crea Ministerio de Cultura
La Comisin Permanente del Parlamento aprueba el proyecto que crea el Ministerio de Cultura ..
2011-09-08 http://www. matriz.com/cultura
cultura.jpg
Preguntas:
a) Generar el RSS (XML), de la aplicacin, adjunte el cdigo XML b) Desarrolle un analizador sintctico utilizando un SAX PARSE, que muestre elementos y contenidos del documento XML. c) Utilizando el API DOM extraer 4 elementos con sus respectivos contenidos del Documento XML d) Realizar transformaciones del Documento XML a HTML, donde muestre solo el titular, el resumen, Descripcin y URL e) Convertir la Base de Datos implementada a XML y realice una comparacin breve con el XML del RSS f) Migrar la base de datos XML de la pregunta e a una nueva base de datos. Importante: Debe mostrar los datos y el resultado de la generacin del script. g) Mencionar los componentes de la arquitectura de toda la aplicacin, incluyendo la tecnologa utilizada.
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
81 Sistema a Distancia
Caso 2: Implementacin de Web Services La empresa TH. INC., se dedica a la comercializacin de Ropa Deportiva, actualmente cuenta con dos sistemas de informacin: El primero desarrollado en JAVA EE a nivel de ventanas, cuya base de datos se llama ventas y permite el registro de las ventas al da, el segundo sistema es de Logstica desarrollado con JSF y cuya base de datos se llama logistica permite registrar los insumos que remiten los proveedores.
a) Informacin de la Base de Datos ventas: La estructura de la tabla factura es la siguiente: (ID_Venta, ID_Cliente, ID_producto, Total_Articulos, Nom_producto, Subtotal, Impuestos, Total_General). La estructura de la tabla cliente es la siguiente (ID_cliente, Nom_Cliente, Ape_Cliente, RUC, Dir_Cliente). La estructura de la tabla producto es la siguiente (ID_producto, Nom_producto, Precio_producto, Cantidad_producto)
b) Informacin de la Base de Datos logistica: La estructura de la tabla inventario es la siguiente: (ID_inventario, ID_Proveedor, ID_insumo, Nom_Insumo, fecha_ingreso, fecha_inventario) La estructura de la tabla proveedor es la siguiente: (ID_Proveedor, ID_insumo, RUC_proveedor, direccion_proveedor) La estructura de la tabla insumo es la siguiente: (ID_insumo, Nom_Insumo, Cantidad_Insumo, Descripcin_Insumo)
Se pide: 1. Implementar las bases de datos de los 02 sistemas 2. Crear un Web services proveedor para el sistema de ventas y un web
services Proveedor para el sistema de Logstica - En el caso de Ventas debe mostrar en pantalla, colocando el ID_Venta (100012), la siguiente informacin: (100012, 12233, 989, 14, Buzos, 15, 4, 19) - En el caso de Logstica debe mostrar en pantalla, colocando el ID_inventario (12131), la siguiente informacin (12131, EU101, 12341, hilos, 12/01/2011, 09/03/2011) Importante: debe mostrar los tests y las capturas de pantallas de ambos WSP.
3. Crear un Web services Consumidor (un solo formulario) que permita integrar los 02 web services proveedores, adems debe mostrar los resultados de la consulta segn ID_Venta y segn ID_Inventario.
4. Diagramar la Arquitectura de los Web Services.
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
82 Sistema a Distancia
EXPLORACIN ON LINE
URL: http://java.sun.com/developer/Books/xmljava/ch03.pdf Sitio web de la empresa SUN, creador del lenguaje de programacin Java, donde describe como implementar parsing XML utilizando este lenguaje de programacin
URL: http://php.net/manual/es/book.xml.php Sitio oficial del Lenguaje de Programacin PHP, donde describe como desarrollar aplicaciones Parser XML.
URL: http://www.w3.org/2002/ws/ Sitio Web de la World Wide Web Consortium (W3C), el sitio oficial de los estndares de Internet y de los Web Services
http://www.w3c.es/divulgacion/guiasbreves/websemantica Gua Breve de Web Semntica, aplicaciones XML, RDF, donde explica sobre el futuro de la web.
http://jax-ws.java.net/ Sitio web de del proyecto JAX-WS donde describe su implementacin y documentacin. Tambin puede encontrar la ltima versin de esta solucin.
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
83 Sistema a Distancia
REFERENCIA BIBLIOGRFICA
Colouris, George. (2002) Sistemas Distribuidos, conceptos y diseo. 3ra edicin. Madrid, Ed. Addison-Wesley
Dolores, M.D. (2000) Ingeniera del Software y Bases de Datos.Castilla de la Mancha: Editorial Universidad de Castilla-La Mancha
Lecomte, S. y Boulanger, T. (2009) XML Practico Bases esenciales, conceptos y casos prcticos. Barcelona: ENI ediciones.
Lozano, M. (2000) Ingeniera Del Software Y Bases de Datos: Tendencias Actuales. Salamanca: Ediciones Universidad de Castilla-La Mancha.
Moliner, F.J. (2005) Informticos Generalitat Valenciana Grupos A y B. Sevilla: Editorial MAD. S.L.
Munilla, E. y Garca, I. (2003) E-Bussiness Colaborativo. Madrid: Editorial Confemetal
Oracle (2005) XML Developer's Kit Programmer's Guide.
Project JAXP (2010) JAXP 1.4.4 http://jaxp.java.net/1.4/index.html
Rivas, J. (2005) Web Services. Madrid: Anaya Multimedia
Seacord, R. C., Plakosh, D., Lewis, G. A. (2003) Modernizing Legay Systems. Boston: Pearson Education, Inc.
Sistemas Distribuidos II - Unidad II Daniel Yucra Sotomayor
84 Sistema a Distancia
BIBLIOGRAFA COMENTADA
- Varwani V. (2002) XML and PHP. Sams Publishing Revisar Unidad 2 y 3 donde explican con ejemplos como implementar programas para el manipuleo de archivos XML, utilizando SAX y DOM. Adems puede revisar la Unidad 7 donde se describe como trabajar base de datos con PHP XML
- Newcomer, E. (2002) Understanding Web Services: XML, WSDL, SOAP, and UDDI. Addison-Wesley Revisar la Unidad 1, sobre los conceptos de los Web Services, Unidad 4 sobre accesibilidad de los Web Services utilizando SOAP, adems de la Unidad 7 sobre las Arquitectura de los Web Services.
- Gurug, A. (2003) Web Services: Theory and Practice. British Library En este libro explica el desarrollo de Web Services, revisar la unidad 3 donde muestra ejemplos y casos prcticos utilizando tecnologa .NET, adems revisar la Unidad 6 sobre el desarrollo de Web Services utilizando Java.