Introducción XML y WebServices
Introducción
XML y WebServices
Agenda
XML WebServices
−¿Qué son?
−Creación
− Invocación
SOAP
XML
eXtensible Markup Language (XML)
XML es una versión simplificada de SGML (Standard Generalized Markup Language)
Separa la semántica de los datos del modo de presentación de estos.
XML
Permite definir el modo en el que se estructuran los datos en un documento XML por medio de las Definiciones de Tipo de Documento (DTD)
Estándar abierto. Su formato (texto plano) permite su transporte y lectura bajo cualquier plataforma o herramienta.
XML como metalenguaje
Se utiliza para crear lenguajes de anotación, no para anotar texto per se.
Permite al usuario definir sus propios lenguajes de anotación adaptados a sus necesidades.
XML como sucesor de HTML
HTML es un lenguaje de anotación genérico y además híbrido
− Especifica muy poco sobre la estructura del documento
− Combina tipografía y contenido al mismo tiempo
− Difícil de mantener
− Ha sido mal utilizado
XML trata de eliminar estos problemas
XML como alternativa a SGML
Cuando XML se diseño, se decidió que:
− XML debería ser fácilmente utilizable en Internet
− XML debería soportar una amplia variedad de aplicaciones
− XML debería ser compatible con SGML
− Debiera ser fácil escribir programas para procesar documentos en XML
− El número de características opcionales de XML debe ser mínimo, idealmente 0
− Los documentos en XML deben ser fáciles de leer
− El diseño de XML debiera ser formal y conciso
− Debiera ser fácil crear documentos en XML
Componentes de XML
DTD (Document Type Declaration):
− Define la estructura del documento XML
XML: Define el contenido
XSL (eXtensible Style Language):
− Define la forma que se presentarán los datos
Estructura Documento XML
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mensajes SYSTEM
“mensajes.dtd"><! Documento XML de mensajes--><Mensajes>
<Mensaje identificador=“m1”><Remitente>Luis</Remitente><Destinatario>Jorge</
Destinatario><Texto>Mensaje1</Texto>
</Mensaje><Mensaje identificador=“m2”>
<Remitente>Pablo</Remitente><Destinatario>Jesús</
Destinatario><Texto>Mensaje2</Texto>
</Mensaje></Mensajes>
Codificación
Declaración DTD
Elemento XML
Atributo XML
DTD
<!ELEMENT MENSAJES (MENSAJE)+ ><!ELEMENT MENSAJE (REMITENTE, DESTINATARIO,TEXTO)
><!ATTLIST MENSAJE Identificador(#PCDATA)><!ELEMENT REMITENTE (#PCDATA)><!ELEMENT DESTINATARIO (#PCDATA)><!ELEMENT TEXTO (#PCDATA)>
Declaración Tipo Elemento
Modelo de Contenidos
Declaración Lista de Atributos
Agenda
XML
WebServices
−¿Qué son?
−Creación
− Invocación
SOAP
¿Qué son los WS?
XML
Aplicación 2Aplicación 1
Características
Independiente de la plataforma
Estándares Abiertos
− Interoperable
Basado en Software existente
−Parsers XML
−Servidores HTTP
Transporte
HTTP POST es el más común
También otros como:
−FTP
−SMTP
−HTTP GET
Algunos más exóticos:
− Jabber
−BEEP
Agenda
XML
WebServices
−¿Qué son?
−Creación
− Invocación
SOAP
Packaging – Soap
SOAP:
−Simple
−Object
−Access
−Protocol
Protocolo estándar que define cómo dos objetos en diferentes procesos pueden comunicarse por medio de intercambio de datos XML
Ejemplo Mensajes SOAP
Como ejemplo se muestra la forma en que un cliente solicitaría información de un producto a un proveedor de servicios Web:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body>
<getProductDetails xmlns="http://warehouse.example.com/ws"> <productId>827635</productId>
</getProductDetails> </soap:Body>
</soap:Envelope>
Ejemplo Mensajes SOAP
Y esta sería la respuesta del proveedor:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body>
<getProductDetailsResponse xmlns="http://warehouse.example.com/ws"> <getProductDetailsResult>
<productName>Toptimate 3-Piece Set</productName> <productId>827635</productId>
<description>3-Piece luggage</description>
<price>96.50</price> <inStock>true</inStock>
</getProductDetailsResult> </getProductDetailsResponse>
</soap:Body> </soap:Envelope>
Serialización
class PurchaseOrder {String item = “socks”;int amount = 1;}
<PurchaseOrder><item type=“xsd:string”>
socks</item><amount type=“xsd:int”>
1</amount></PurchaseOrder>
Serializer
Packaging - SOAP
HTTP Post
SOAP Envelope
SOAP Body
SOAP Head
WSDL
Web Services Description Language
“Web Services Description Language (WSDL) provides a model and an XML format for describing Web services.” http://www.w3c.org
Sirve para describir un WebService
Agenda
XML
WebServices
−¿Qué son?
−Creación
− Invocación
SOAP
Creación
Desde VS 2008
−Nuevo Proyecto WEB ASP.NET Web Service Application
−Click en OK
Creación
Creación
Aplicación Web
− Independiente
− Junto con funcionalidades específicas
Tipo especial de clase
−Extensión ASMX
Los métodos a publicar se marcan con el atributo WebMethod
Creación
Agenda
XML
WebServices
−¿Qué son?
−Creación
−Invocación
SOAP
Invocación
Desde un proyecto, basta con agregar una Referencia Web
−Buscándolo por UDDI
−Utilizando el vínculo al WSDL
−Llamando al servicio Web con el argumento ?wsdl
−Se puede hacer desde una browser
Invocación
Invocación
Invocación