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