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 Codificación <?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> </Mensajes> Elemento XML Declaración DTD Atributo XML
DTD <!ELEMENT MENSAJES (MENSAJE)+ > Modelo de Contenidos Declaración Tipo Elemento <!ELEMENT MENSAJES (MENSAJE)+ > <!ELEMENT MENSAJE (REMITENTE, DESTINATARIO,TEXTO) > <!ATTLIST MENSAJE Identificador(#PCDATA)> <!ELEMENT REMITENTE (#PCDATA)> <!ELEMENT DESTINATARIO (#PCDATA)> <!ELEMENT TEXTO (#PCDATA)> Declaración Lista de Atributos
Agenda XML WebServices ¿Qué son? Creación Invocación SOAP
¿Qué son los WS? Aplicación 1 Aplicación 2 XML
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 Serializer 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 Head SOAP Body
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 Tipo especial de clase 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