II. Document Object Model (DOM)

Anuncio
II. Document Object Model (DOM)
1. ¿Qué es DOM?
2. DOM Level 1
3. DOM Level 1 Extensiones
4. Bibliografía
¿Qué es DOM?
z
z
z
z
z
Interfaz (API) neutral (plataforma y lenguaje) para el
acceso y modificación dinámica del contenido, estructura y
estilo de un documentos.
Al procesar un documento con DOM, el visor (navegador)
representa las modificaciones dinámicamente.
Procesado de documentos estructurados mediante
lenguajes de marcas (HTML, XML, etc.).
Hay 3 especificaciones: DOM Level 1, 2 y 3.
Multitud de lenguajes y navegadores implementan la
especificación: Javascript, PHP, Java, etc.
Curso 2006/2007
Arquitecturas Distribuidas
2
DOM Level 1
z
Funcionalidad:
– Crear documentos.
– Navegar su estructura.
– Añadir, modificar o eliminar elementos y contenido.
z
z
z
z
Los documentos procesados con DOM tienen una
estructura tipo árbol.
Los documentos se modelan como objetos: tipos de datos
con propiedades y funciones (como en POO).
Los datos se encapsulan dentro de esos objetos.
Los objetos proporcionan funciones para manipular los
datos y para relacionarse con el resto de objetos
Curso 2006/2007
Arquitecturas Distribuidas
3
DOM Level 1
<TABLE>
<TBODY>
<TR>
<TD>Shady Grove</TD>
<TD>Aeolian</TD>
</TR>
<TR>
<TD>Over the River,
Charlie</TD>
<TD>Dorian</TD> </TR>
</TBODY>
</TABLE>
Curso 2006/2007
Arquitecturas Distribuidas
4
DOM Level 1
z
z
z
z
DOM representa los documentos como una jerarquía de
objetos Node
De esta clase base derivan objetos más especializados:
Element, Document, Text, etc.
Además, las colecciones de objetos se tratan mediante las
interfaces NodeList y NamedNodeMap
Cualquier cambio que se haga en el documento se refleja
automáticamente en los NodeList y NamedNodeMap
Curso 2006/2007
Arquitecturas Distribuidas
5
DOM Level 1
z
z
Relaciones entre elementos: parent, child, siblings
Node proporciona funciones para trabajar con ellos:
– createElement(), appendChild(), removeChild(), replaceChild();
– parentNode, childNodes, previousSibling, nextSibling, attributes
z
Element: getElementsByTagName, geAttribute
Curso 2006/2007
Arquitecturas Distribuidas
6
DOM Level 1 Extensiones
z
z
La especificación se extiende con definiciones específicas
para HTML y otros lenguajes particulares como MathML
o SVG
Por ejemplo, con HTML tenemos: HTMLElement,
HTMLDocument, etc.
Curso 2006/2007
Arquitecturas Distribuidas
7
Referencias y bibliografía
z
Especificación DOM:
http://www.w3.org/DOM/
Curso 2006/2007
Arquitecturas Distribuidas
8
III. Web Services
1. ¿Qué son los Web Services?
2. Ejemplos de Web Services
3. Tecnologías y arquitectura
3.1. Arquitectura
3.2. Lenguaje de descripción: WSDL
3.3. Protocolo: SOAP
3.4. Registro de servicios: UDDI
4. Service-Oriented Architecture (SOA)
5. Bibliografía
¿Qué son los Web Services?
z
z
Capa de abstracción adicional sobre un sistema de
información
“Software que permite la interacción máquina-máquina a
través de Internet”
– Intercambio de documentos XML sobre HTTP
– Interfaz descrito en un formato procesable por una máquina
(WSDL)
z
z
z
Permite la exposición de “servicios de negocio” a través de
la web (Internet)
Permite la interacción entre aplicaciones (software) a
través de la web
Facilita la interoperabilidad entre tecnologías
Curso 2006/2007
Arquitecturas Distribuidas
10
Ejemplos de Web Services
z Búsqueda y reserva de vuelos
– El usuario entra a un portal de búsqueda de
vuelos e introduce los parámetros
– El portal debe interrogar a las compañías de
vuelo...¿cómo? ¿utilizan los mismos sistemas
todas? ¿hay alguna interfaz común?
– SI: Internet.
– Interroga a las compañías usando HTTP
z Otros
Curso 2006/2007
ejemplos: Amazon, Google, etc.
Arquitecturas Distribuidas
11
Ejemplos de Web Services
Navegador
Servidor
de portal
de
búsqueda
de viajes
Compañía de
vuelos 1
Compañía de
vuelos 2
Compañía de
vuelos 3
Mensajes
XML sobre
HTTP
Curso 2006/2007
Arquitecturas Distribuidas
Compañía de
hoteles 1
12
Tecnologías
z
Internet está basada en texto arbitrario
esencialmente
– No es adecuado para interacción entre
máquinas/aplicaciones, es necesario estructurarlo
– Necesitamos mecanismos que permitan la ejecución de
instrucciones que se habrían introducido mediante
formularios
z
Web Services se implementan mediante un
intercambio de mensajes XML
– Se apoya en tres tecnologías: SOAP, WSDL, UDDI
Curso 2006/2007
Arquitecturas Distribuidas
13
Arquitectura de Web Services
Curso 2006/2007
Arquitecturas Distribuidas
14
Tecnologías (II)
z
Web Services funcionan como las llamadas a procedimiento remoto,
pero sobre una red extensa (Internet)
– Los métodos o funciones que se pueden invocar junto con los parámetros
de entrada y de salida (interfaz del WS) se especifican mediante WSDL.
– UDDI es un directorio de WS con sus correspondientes descripciones en
WSDL
z
Una vez disponemos de la descripción WSDL se invoca la función
remota (WS) mediante intercambio de mensajes SOAP
– SOAP es un lenguaje de marcas XML
– Se pueden utilizar distintos protocolos de transporte pero lo habitual es
usar HTTP
z
El servidor de WS implementa el servicio. Procesa la llamada y
devuelve un resultado con SOAP.
z El proceso es independiente del lenguaje de programación y la
plataforma.
Curso 2006/2007
Arquitecturas Distribuidas
15
Lenguaje de descripción: WSDL
z WS
exponen una función de negocio con la
que otras aplicaciones pueden interactuar a
través de la web.
z Es necesario
– Descripción de la función
– Descripción de la forma de interacción: qué
parámetros recibe, que resultados devuelve, etc.
Curso 2006/2007
Arquitecturas Distribuidas
16
Lenguaje de descripción: WSDL
z
Web Services Description Language (WSDL)
– Describir (declarar) y publicar el formato y protocolos
de un WS de manera estándar.
– Descripción (XML) de los datos que acepta el servicio
– Descripción de las operaciones que se realizan sobre los
datos
– Indicación del protocolo o transporte que se utilizará
Curso 2006/2007
Arquitecturas Distribuidas
17
º
Parámetros
y tipos
Transporte
/protocolo
Descripción y
localización
Curso 2006/2007
Arquitecturas Distribuidas
18
Protocolo: SOAP
z Simple
Object Access Protocol (SOAP)
z Transporta documentos XML sobre la web
z Se utiliza habitualmente sobre HTTP
aunque otros protocolos son posibles (o
extensiones como HTTPS)
z Utiliza el comando POST
Curso 2006/2007
Arquitecturas Distribuidas
19
Protocolo: SOAP
z Mensajes
SOAP son documentos XML
z 3 elementos
– SOAP Envelope: elemento raíz
– SOAP Header: cabeceras (opcionales)
– SOAP Body: cuerpo del mensaje
Curso 2006/2007
Arquitecturas Distribuidas
20
Protocolo: SOAP
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Header> <m:Trans xmlns:m="http://www.w3schools.com/transaction/"
soap:mustUnderstand="1">234</m:Trans>
</soap:Header>
<soap:Body>
<m:GetPrice xmlns:m="http://www.w3schools.com/prices">
<m:Item>Apples</m:Item>
</m:GetPrice>
</soap:Body>
</soap:Envelope>
Curso 2006/2007
Arquitecturas Distribuidas
21
Protocolo: SOAP
POST /InStock HTTP/1.1
Host: www.example.org
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Body xmlns:m="http://www.example.org/stock">
<m:GetStockPrice>
<m:StockName>IBM</m:StockName>
</m:GetStockPrice>
</soap:Body>
</soap:Envelope>
Curso 2006/2007
Arquitecturas Distribuidas
22
Protocolo: SOAP
HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Body xmlns:m="http://www.example.org/stock">
<m:GetStockPriceResponse>
<m:Price>34.5</m:Price>
</m:GetStockPriceResponse>
</soap:Body>
</soap:Envelope>
Curso 2006/2007
Arquitecturas Distribuidas
23
Registro de servicios: UDDI
z Universal
Description, Discovery and
Integration (UDDI) Registry
– Como unas páginas amarillas de servicios
– Permiten el descubrimiento y publicación de
servicios
Curso 2006/2007
Arquitecturas Distribuidas
24
Service-Oriented Architecture (SOA)
z Arquitectura
Basada en Servicios
– Diseño y desarrollo de aplicaciones complejas
mediante el uso y composición de distintos
servicios interoperables
– Los servicios son independientes del lenguaje y
plataforma.
z Mediante
WS se puede implementar una
arquitectura tipo SOA
Curso 2006/2007
Arquitecturas Distribuidas
25
Referencias y bibliografía
z
Libros:
– “Understanding Web Services”, Eric
Newcomer, Addison Wesley, 2002.
Curso 2006/2007
Arquitecturas Distribuidas
26
Referencias y bibliografía
z
WWW:
– http://www.w3.org/2002/ws/Æ
Especificaciones WS
–
http://www.w3schools.com/webservices/default.aspÆ
Tutoriales y ejemplos
Curso 2006/2007
Arquitecturas Distribuidas
27
Descargar