Академический Документы
Профессиональный Документы
Культура Документы
37
Sistema a Distancia
Objetivos
Al finalizar esta unidad el estudiante ser capaz de:
38
Sistema a Distancia
39
Sistema a Distancia
40
Sistema a Distancia
Criterios de
evaluacin
Estandarizacin
Especificacin no formal
Manipulacin
Consumo de
memoria
Manejo de XML
API SAX
41
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
<?xml version="1.0" encoding="UTF-8"?>
<ElementoRaiz parametro1="valor">
<PrimerElemento>
primer ejemplo
</PrimerElemento>
</ElementoRaiz>
Y la forma como lee el API SAX
El API comienza a leer el documento de la siguiente manera:
42
Sistema a Distancia
43
Sistema a Distancia
44
Sistema a Distancia
Ejemplos:
Este es un ejemplo de cdigo del API DOM en lenguaje PHP:
45
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");
El resultado sera:
<uigv>
<lenguaje>
<programa>Aprendiendo Java</programa>
</lenguaje>
</uigv>
46
Sistema a Distancia
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.
47
Sistema a Distancia
48
Sistema a Distancia
49
Sistema a Distancia
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
50
Sistema a Distancia
51
Sistema a Distancia
52
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
53
Sistema a Distancia
54
Sistema a Distancia
55
Sistema a Distancia
56
Sistema a Distancia
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
57
Sistema a Distancia
58
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 + "%'" +
59
Sistema a Distancia
60
Sistema a Distancia
61
Sistema a Distancia
Figura 6.14: Creacin del Web Service Reniec y definicin del paquete
clasejava
c)
62
Sistema a Distancia
63
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;
64
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
65
Sistema a Distancia
66
Sistema a Distancia
67
Sistema a Distancia
68
Sistema a Distancia
69
Sistema a Distancia
70
Sistema a Distancia
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<form name="Test" method="post" action="consumidor">
<p>Ingrese DNI:</p>
<p>
<p><input type="text" name="textoconsulta" ID="textoconsulta"></p>
<p>
<input type="submit" value="Consulta " name="botonconsulta">
</form>
</body>
</html>
d) Crear un Servlet
71
Sistema a Distancia
72
Sistema a Distancia
73
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.
74
Sistema a Distancia
LECTURA
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.
75
Sistema a Distancia
76
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
77
Sistema a Distancia
78
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
79
7. c
8. a
9. d
10. c
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
1
seccion
deportes
titulo
Dulio Beretta el
gran sucesor de
Lucho Horna
salud
El cacao ayuda
a combatir el
acne
politica
Error en ejecuto
plantea derogar
Decreto
Legislativo
1097
cultura
Aprueban
el
proyecto
que
crea Ministerio
de Cultura
Descripcin
Sin duda lo mejor del
2010 luego de voley, la
tabla y, ahora,
nuevamente, el tenis
Un estudio realizado en
Estados Unidos sugiere
que tomar cacao antes
de ejercitarse puede
ayudar a reducir los
dolores
El Poder Ejecutivo envi
al Congreso, ayer por la
tarde, un proyecto de ley
aprobado por el Consejo
de Ministros que plantea
..
La
Comisin
Permanente
del
Parlamento aprueba el
proyecto que crea el
Ministerio de Cultura ..
fecha
url
2011-09-11 http://www.matrix.com/deport
e
imagen
berreta.j
pg
cafe.jpg
2011-09-09 http://www.Matriz.com/politic
a
dlegis.jp
g
2011-09-08 http://www.
matriz.com/cultura
cultura.jp
g
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.
80
Sistema a Distancia
81
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.
82
Sistema a Distancia
REFERENCIA BIBLIOGRFICA
Colouris, George.
(2002)
Sistemas
Distribuidos,
conceptos y diseo. 3ra edicin.
Madrid, Ed. Addison-Wesley
Dolores, M.D.
Lecomte, S. y Boulanger, T.
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
Programmer's Guide.
Project JAXP
(2010)
JAXP
1.4.4
http://jaxp.java.net/1.4/index.html
Rivas, J.
(2005)
Web
Madrid: Anaya Multimedia
Kit
Services.
83
Sistema a Distancia
BIBLIOGRAFA COMENTADA
-
84
Sistema a Distancia