You are on page 1of 30

Taller de Web Services: Introduccin a la creacin, distribucin, registro, consumo y presentacin de resultado.

Mayo de 2007 Resumen Este documento tiene la finalidad de proporcionar de una manera breve los conocimientos y habilidades bsicas necesarias para el desarrollo de soluciones basadas en Web Services como implementacin de la arquitectura orientada a servicios (SOA), incluyendo los conceptos elementales y los procesos de generacin, distribucin, registro, consumo y presentacin de resultados con apoyo de Microsoft Visual Studio .NET 2003.

El Data Warehouse es un ingrediente fundamental para la toma de decisiones y para la construccin de un modelo de Inteligencia de Negocios. lmplementar un DWH, a grandes rasgos consiste en las siguientes actividades y procesos: analizar los requerimientos de informacin de las reas usuarias; documentar las reglas de negocio y las fuentes de datos; disear las bases de datos que almacenarn la informacin requerida por los usuarios; disear y construir los procesos de extraccin-transformacin-carga (ETL por sus siglas en ingls) necesarios para recuperar los datos fuente, convertirlos en informacin y cargarlas dentro del DWH; implementar las herramientas de anlisis, explotacin y reporteo de informacin almacenada en el DWH. Una de las funciones de un DWH es concentrar datos dispersos y generar informacin integrada sobre temas particulares, las organizaciones en general pueden esperar todos o varios de los siguientes beneficios: mejorar la oportunidad con la que se genera y entrega informacin para la toma de decisiones; elevar la calidad de la informacin utilizada y reducir el nivel de incertidumbre respecto a la confiabilidad de la misma, entre otras.

Introduccin Breve historia de la evolucin de la Web. El porqu de los Web Services. La arquitectura de los web services. Definicin de XML Web Services XML XSD SOAP HTTP WSDL UDDI Escenario de operacin de los Web Services. Creacin de un Web Services Distribucin de un Web Services De manera manual. Utilizando un Instalador de archivos de Windows. Registro en UDDI Consumo de un Web Service Creacin de un proyecto Web Adicionar referencia web Descubrimiento del Web Services con UDDI. Aspectos de Seguridad Otras plataformas para Web Services. Referencias

1 1 2 3 4 5 5 6 7 9 9 10 14 14 15 16 18 18 19 20 24 26 27

Introduccin
Breve historia de la evolucin de la Web.
Antes de dar una explicacin del porqu de los web services es necesario dar una revisin a la historia comenzando por el suceso histrico del surgimiento de Internet. Al principios su uso fue privilegiado durante muchos aos al mundo acadmico, posteriormente se da el surgimiento del Word Wide Web que trae consigo una caracterstica muy innovadora que vino a facilitar el acceso a la informacin, desde cualquier lugar usado los protocolos de Internet (TCP/IP) desde browsers implementados en diferentes plataformas que permitieron el acceso a informacin (human-to-application) de diferentes sitio. En una etapa posterior se incluyen la surgen las aplicaciones en Web que integran base de datos para la generacin de contenidos dinmicos. En 1999, Microsoft publico el protocolo XML-based , llamado SOAP, que puede ser usado para el escenario A2A (application-toapplication) que rene un conjunto de sugerencias de diferentes protocolos (HTTP, XML, WSDL,UDDI), cerca del 2000 establece relaciones con IBM para dar soporte al estndar, donde eventualmente SOAP no tuvo buena aceptacin en la industria, pero posteriormente gana popularidad rpidamente. Fue claro que era necesario contar con una descripcin y fcil localizacin del servicio para implantar su uso. El termino Web Services fue concebido meses despus, cuando IBM y Microsoft, publicaron juntos el Web Services Description Language (WSDL).

Fig.1 Evolucin de la Web.

Introduccin a la creacin, distribucin, registro y consumo de Web Services

El porqu de los Web Services.


Para entender la importancia de XML Web Services es necesario conocer el problema que tratan de solucionar, especialmente en la evolucin de las aplicaciones distribuidas y sus limitaciones de la arquitectura de este tipo de aplicaciones. Anteriormente se realizaron intentos de crear soluciones con el modelo de componentes distribuidos de Microsoft (DCOM, Distributed Componet Object Model), una infraestructura de objetos distribuidos que permite a una aplicacin invocar componentes de Modelo de objetos componentes (COM, Componet Object Model) instalados en otro servidor, para se portados a otras plataformas que no sean de Windows. Pero DCOM nunca a tenida aceptacin en dichas plataformas. En el caso de CORBA - ORB y Java RMI estn limitados a aplicaciones y componentes instalados en el mismo centro de datos corporativo. Las dos razones para ello son que de manera predeterminada estas tecnologas utilizan protocolos propietarios y dichos protocolos y dichos protocolos son inherentemente orientados a conexiones. Otro gran problema es que se haca uso de RPC (Remote Procedure Call) para realizar la comunicacin entre diferentes nodos. Esto, adems de presentar ciertos problemas de seguridad, tiene la desventaja de que su implementacin en un ambiente como es Internet, es casi imposible (muchos firewalls bloquean este tipo de mensajes, lo que hace prcticamente imposible a dos computadoras conectadas por Internet comunicarse).

Fig.2 Problemtica de integracin con otras tecnologas.

Introduccin a la creacin, distribucin, registro y consumo de Web Services

Los problemas con problemas existentes con el modelo de objetos para aplicaciones distribuidas forzaron a los desarrolladores a buscar nuevas alternativas. Con la rpida adopcin de los estndares de la Web permiti la evolucin de los Web Services. Como solucin a la problemtica Fig.2, los XML Web Services son los elementos fundamentales en la evolucin hacia la computacin distribuida a travs de Internet. Surgieron ante una necesidad de estandarizar la comunicacin entre distintas plataformas (PC, Mainframe, Mac, etc.) y lenguajes de programacin (PHP, C#, Java, etc.), tal como se puede observar en la Fig.3.

Fig.3 Problemtica de integracin con otras tecnologas.

La arquitectura de los web services.


Los web services son la una implementacin de la arquitectura orientada a servicios (SOA), que propone una implantacin dinmica, de bajo acoplamiento y de aplicaciones distribuidas. SOA consiste en tres roles principales: un proveedor de servicios, un consumidor y un intermediario.

Fig.4 Representacin de la implementacin de SOA en los Web Services.

Introduccin a la creacin, distribucin, registro y consumo de Web Services

Definicin de XML Web Services Un servicio Web es una aplicacin software identificada mediante una URL, cuyo interfaz (y uso) es capaz de ser definido (WSDL), descrito y descubierto (UDDI) mediante artefactos XML, y soportar interacciones directas con otras aplicaciones software usando mensajes basados en XML (SOAP) y protocolos basados en Internet (HTTP). Existen varias definiciones para un XML Web Services pero la idea general es: Los servicios XML Web Services ofrecen funciones muy tiles a usuarios del medio Web ya que emplean un protocolo Web estndar que, en casi todos los casos, es SOAP. Los servicios XML Web Services permiten describir sus interfaces con suficiente detalle para que el usuario disee una aplicacin cliente que permita comunicarse con ellas. Esta descripcin se proporciona normalmente en un documento XML denominado WSDL (lenguaje de descripcin de servicios Web). Los servicios XML Web Services se registran para que los futuros usuarios los encuentren fcilmente. Este registro se realiza a travs de UDDI (descripcin, descubrimiento e integracin universales). Adems son unidades autnomas de funciones de negocios, conectados a travs de la red de forma distribuida, contratada a travs de una interfase accesible por una URI, de bajo acoplamiento, independientes de cualquier plataforma, herramientas de desarrollo, metodologa, u ubicacin geogrfica.

De acuerdo a la arquitectura mostrada en la Fig. 4 los elementos que componen a los web services son: XML XML (eXtensible Markup Lenguage - Lenguaje extensible de marcas) es un un lenguaje abierto, derivado de SGML, optimizado para su uso en la WWW, y que va a permitirnos describir el sentido o la semntica de los datos. El XML, a diferencia del HTML, separa el contenido de la presentacin. XML es un Meta-Lenguaje, que permite la definicin de lenguajes concretos de representacin de documentos, es usado en la implementacin de Web Services para comunicar al consumidor y al proveedor (para construccin de los mensajes de SOA), tambin se utiliza para describir la interfase de los Web Services (WSDL). Ejemplo de un XML:
<?xml version="1.0" encoding="utf-8" ?> <SerieEstadistica> <Clave_de_serie>5157</Clave_de_serie> <Ao>2000</Ao> <Periodo>12</Periodo> <Dato>8581</Dato> <Numero_Decimales>0</Numero_Decimales> <Unidad_de_Medida>Miles de pesos a precios corrientes</Unidad_de_Medida> <Frecuencia>Mensual</Frecuencia> </SerieEstadistica>

Introduccin a la creacin, distribucin, registro y consumo de Web Services

Las recomendaciones para la construccin de XML bien formado son las siguientes: Tiene que haber un elemento raz, XML se ordena en forma de rbol. Todos los elementos necesitan e estar cerrados. Las etiquetas de apertura y cerrado deben de ser o minsculas o maysculas, XSD XML Schema Definition XSD describe la estructura de un documento XML, son importantes porque definen tambin el tipo de dato de los elementos y atributos devueltos en el XML.
<?xml version="1.0" encoding="utf-8" ?> <xs:schema id="Indicadores" targetNamespace="http://www.inegi.gob.mx/Indicadores.xsd" elementFormDefault="qualified" attributeFormDefault="qualified" Declaracin del xmlns=" http://www.inegi.gob.mx/Indicadores.xsd " elemento xmlns:mstns=" http://www.inegi.gob.mx/Indicadores.xsd " Indicadores xmlns:xs="http://www.w3.org/2001/XMLSchema" complexType1 xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xs:element name=Indicadores" msdata:IsDataSet="true"> <xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:element name="Indicadores" type="complexType1"></xs:element> </xs:choice> </xs:complexType> </xs:element> Declaracin <xs:complexType name="complexType1"> del tipo <xs:sequence> complejo <xs:element name="Clave_de_serie " type="xs:string" minOccurs="0" /> complexType <xs:element name="Ao" type="xs:string" /> <xs:element name="Periodo" type="xs:string" /> <xs:element name="Dato" type="xs:double" minOccurs="0" /> <xs:element name="Numero_Decimales" type="xs:int" minOccurs="0" /> <xs:element name=" Miles de pesos a precios corrientes " type="xs:string minOccurs="0" /> <xs:element name="Frecuencia" type="xs:int" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:schema>

Los elementos deben de anidarse correctamente. Un atributo no puede ser repetido en un elemento.

<PERIODO>12</Periodo>

Introduccin a la creacin, distribucin, registro y consumo de Web Services

SOAP SOAP (siglas de Simple Object Access Protocol) es un protocolo estndar creado por Microsoft, IBM y otros, est actualmente bajo W3C que define cmo dos objetos en diferentes procesos pueden comunicarse por medio de intercambio de datos XML. SOAP es uno de los protocolos utilizados en los servicios Web para el envo de mensajes a travs de Internet mediante el protocolo HTTP.

Fig. 5 Estructura general de SOAP.

Ejemplo de un mensaje SOAP Peticin del cliente


<?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <obtieneHistorialIndicadorSDMX xmlns="http://inegi.gob.mx/Indicadores"> <noIndicador>string</noIndicador> </obtieneHistorialIndicadorSDMX> </soap:Body> </soap:Envelope>

Mtodo que se invoca y parmetro

a enviar

Ejemplo de un mensaje SOAP Respuesta al cliente

<?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema- instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <obtieneHistorialIndicadorSDMXResponse xmlns="http://inegi.gob.mx/Indicadores"> obtieneHistorialIndicadorSDMXResult>string </obtieneHistorialIndicadorSDMXResult> </obtieneHistorialIndicadorSDMXResponse> </soap:Body> </soap:Envelope>

Mensaje de respuesta al cliente

Introduccin a la creacin, distribucin, registro y consumo de Web Services

HTTP SOAP actualmente usa el mtodo POST del HTTP para el envo de datos. La ubicuidad de HTTP y la sencillez de SOAP los convierte en una base perfecta para implementar XML Web Services que pueden llamarse desde prcticamente cualquier entorno.

POST /Indicadores/Indicadores.asmx HTTP/1.1 Content-Type: text/xml; charset=utf-8 ... SOAPAction: "http://inegi.gob.mx/Indicadores-BIE/obtieneHistorialIndicadorSDMX" Content-Length: length <?xml version=1.0?> <soap:Envelope ...> ... </soap:Envelope>

Otras caractersticas importantes estn en Content-Type que deber de ser text/xml; y la propiedad SOAPAction deber contener la concatenacin del de un namespace, y el nombre del mtodo. Una cuestin de seguridad podra ser que el administrador de la red pueda usar herramientas para filtrar las peticiones a travs de HTTP y si es inadecuada rechazarla.

Fig. 6 Procesamiento de los mensajes de SOAP.

WSDL WSDL (Web Services Description Language), un formato XML que se utiliza para describir servicios Web. WSDL describe la interfaz pblica a los servicios Web. Est basado en XML y describe la forma de comunicacin, es decir, los requisitos del protocolo y los formatos de los mensajes necesarios para interactuar con los servicios listados en su catlogo. Las operaciones y mensajes que soporta se describen en abstracto y se ligan despus al protocolo concreto de red y al formato del mensaje.

Introduccin a la creacin, distribucin, registro y consumo de Web Services

Estructura general del XML del WSDL.

Descripcin de los elementos del WSDL


<definitions> <types> </types> <message> </message>

Comienzo del documento, este tag agrupa a todos los dems. Se definen los tipos de datos utilizados en el Web Service. Fin de la definicin de tipos. Se definen los mtodos y parmetros para realizar la operacin. Cada message puede consistir en una o ms partes (parmetros). Fin de la definicin de los parmetros. Esta seccin es la ms importante, ya que se definen las operaciones que pueden ser realizadas, y los mensajes que involucran (por ejemplo el mensaje de peticin y el de respuesta). Fin de la definicin de las operaciones y mensajes. Se definen el formato del mensaje y detalles del protocolo para cada portType. Fin de la definicin del formato del mensaje y detalles del protocolo para cada PortType. Fin del documento WSDL

<portType>

</portType> <binding> </binding> </definitions>

Introduccin a la creacin, distribucin, registro y consumo de Web Services

UDDI UDDI son las siglas del catlogo de negocios de Internet denominado Universal Description, Discovery, and Integration. El registro en el catlogo se hace en XML. UDDI es una iniciativa industrial abierta (sufragada por la OASIS) entroncada en el contexto de los servicios Web. UDDI es uno de los estndares bsicos de los servicios Web cuyo objetivo es ser accedido por los mensajes SOAP y dar paso a documentos WSDL, en los que se describen los requisitos del protocolo y los formatos del mensaje solicitado para interactuar con los servicios Web del catlogo de registros. Una entrada en un listn UDDI es un archivo XML que describe un negocio y los servicios que ofrece. Cada entrada tiene tres partes: Las "pginas blancas" describen los datos de la empresa, como nombre, direccin, informacin de contacto, etc. Las "pginas amarillas" incluyen las categoras industriales basadas en taxonomas estndares, como la NAICS (North American Industry Classification System) y la SIC (Standard Industrial Classification). Las "pginas verdes" describen la interfaz del servicio con informacin suficiente para que alguien escriba una aplicacin para usar un servicio Web.

Los servicios se definen por un documento UDDI denominado Type Model o tModel. En muchos casos, tModel contiene un archivo WSDL que describe una interfaz SOAP a un servicio XML Web; tModel es suficientemente flexible para describir prcticamente cualquier tipo de servicio.

Escenario de operacin de los Web Services.


El escenario de operacin de los servicios web se representa de acuerdo a la Fig.8

Fig. 8 Proceso de operacin de los Web Services

Introduccin a la creacin, distribucin, registro y consumo de Web Services

Creacin de un Web Services


Para la creacin de un nuevo Web Services en Visual Studio .NET 2003 se siguen los siguientes pasos: 1. Abra Visual Studio .NET 2003, vaya al men principal y secciones File (Archivo), New (Nuevo), Project (Proyecto) o bien solo precione Ctrl+Shift+N (a).

2. En la pantalla de nuevo proyecto (New Project), seleccione Visual C# Projects (a), ASP.NET Web Service (b) y en la caja de texto de localizacin (Location) proporcione el nombre del proyecto donde esta contenido el Web Seviches(c).

a b

Introduccin a la creacin, distribucin, registro y consumo de Web Services

10

3. Para programar el cdigo que dar la funcionalidad a nuestro Web Services presione en la pantalla central click here to switch the code view o bien de un clic derecho sobre Services1.asmx

4. Para programar el cdigo que dar la funcionalidad a nuestro Web Services presione en la pantalla central click here to switch the code view o bien de un clic derecho sobre Services1.asmx, como recomendacin cambie el nombre del servicio por un nombre representativo, para este caso Servicio1.asmx cambia por IndicadorEconomico.asmx, tambin es necesario cambiar el nombre de la clase y constructor.

Introduccin a la creacin, distribucin, registro y consumo de Web Services

11

5. Lo siguiente es el crear el mtodo o mtodos servicio.

que expondrn la funcionalidad del

[WebMethod (Description="Devuelve datos de la exportaciones de petroleo")] public DataSet ExportacionPetroleo() { //Lgica de negocios //Objeto para recibir la coleccin de datos //a consultar. DataSet resultado = new DataSet(); //Instancia la clase que extrae //la informacin de la base de datos IndicadoresEconomicos.dataAccess regresa = new IndicadoresEconomicos.dataAccess(); //Asigna los resultados al DataSet resultado =(regresa.regresads()); //Devuelve los resultados. //la conversin del dataset a XML queda a cargo de SOAP. return resultado;

El atributo WebMethod es necesario para poder exponer la funcionalidad en el WSDL. Para este caso se separo la consulta a datos en otra clase llamada dataAccess. La cual contiene:
using System; using System.Data; using System.Data.SqlClient; // Para poder usar el DataSet //Para hacer consultas a SQL Server

namespace IndicadoresEconomicos { /// <summary> /// Summary description for dataAccess. /// </summary> public class dataAccess { public dataAccess() { } public DataSet regresads() { SqlConnection connection = null; DataSet ds = new DataSet(); try { //Invoca al mtodo GetConnection para generar la conexin //a la base de datos enva el provider como parmetro connection = GetConnection("user id=internet;pwd=password;data source=Servidor;persist security info=True;initial catalog=basedeDatos;");

Introduccin a la creacin, distribucin, registro y consumo de Web Services

12

//Genera el adaptador de SQL para asignar resultados al //dataset SqlDataAdapter sqlDAIndicadores = new SqlDataAdapter(); //Sentencia de SQL a ejecutar string = "SELECT * FROM SERIES WHERE ClaveSerie = 23542 sqlDAIndicadores.SelectCommand = new SqlCommand(query,connection); //Llena el dataSet con los resultados. sqlDAIndicadores.Fill(ds);

} catch(Exception ex) { ex.Message.ToString(); } finally { if(connection != null) { connection.Close(); connection.Dispose(); } } //Regresa el dataset de resultado. return ds; }

//Crea la conexin a la base de datos. private SqlConnection GetConnection(string connectionString) { SqlConnection connection = new SqlConnection(connectionString); connection.Open(); return connection; }
}

Introduccin a la creacin, distribucin, registro y consumo de Web Services

13

Distribucin de un Web Services


Estos pueden ser distribuidos de dos formas:

De manera manual puede ser de dos formas:


Utilizando la opcin del men en Project- copiar proyecto, esta opcin crea un directorio virtual en el IIS de manera automtica, los pasos para utilizar esta opcin son: o En el men Project dar clic en Copy Project. o Seleccione la carpeta del proyecto de destino. o Seleccione el mtodo de acceso web. o Seleccione los archivos a copiar. o De clic en OK. La otra es por medio de un ftp o dispositivo fsico copiando los archivos necesarios y depositndolos en el servidor de aplicaciones, de esta forma el IIS debe ser configurado; esto es, crear el directorio virtual para el Web Service. Los Archivos necesarios para distribuir los Web Services son:

Archivos Web Services .sln, .vbproj, .csproj, vsdisco .resx .vb, .cs .xsd Folders de referencia y archivos Web Carpeta bin y dlls .asmx Web.config Global.asax .xml

Necesario

No necesario 9 9 9 9 9

9 9 9 9 9

Ventajas de la distribucin manual copiando archivos: Fcil de distribuir: los archivos y otros recursos pueden simplemente copiarse al servidor web Fcil de actualizar: Usted puedes actualizar los archivos en el servidor web simplemente copiando los archivos actualizados a este servidor.

Introduccin a la creacin, distribucin, registro y consumo de Web Services

14

La distribuir manualmente es recomendada si: Si el Web Service es probado antes de distribuirlo. Si el Web service es relativamente simple.

Utilizando un Instalador de archivos de Windows.


Cuando distribuimos Web services, especialmente Web service mas complejos, usted puede utilizar la opcin de Visual Studio .NET llamada Web Setup Project. Este crea un instalador de archivos (.msi) para el Web services. Aunque usted puede distribuir su Web service con los archivos necesarios a la localizacin requerida, utilizando el instalador la distribucin es ms fcil y este no es igual a ningn otro instalador. Hay muchas cuestiones del instalador que son asociadas con un web services complejo Los servicios web incluyen varios rasgos como: Componentes compartidos como el global assemblies. Componentes Legacy Component Object Model (COM). IIS, incluyendo ajustes de seguridad. Aplicaciones como colas de mensajes, eventos logs y contadores de performance

Los pasos para distribuir una aplicacin web usando el Web Setup Project son: Agregar una nueva solucin y agregar un nuevo proyecto Configurar el Web Setup Project: incluir las especificaciones para el web service como el nombre del directorio virtual y los archivos necesarios para su distribucin. Compilar el Web Setup proyect: para crea el Instalador del proyecto vaya a la opcin del men Build y de un clic en Build nombre del proyecto(ejemplo: BuildWebServicesPro1)

Introduccin a la creacin, distribucin, registro y consumo de Web Services

15

Registro en UDDI
UDDI permite buscar negocios de los que desee obtener servicios Web. Si conoce con quin quiere realizar negocios pero desconoce los servicios que ofrece, permite examinar una recopilacin de los servicios XML Web Services ofrecidos en un servidor determinado para buscar los que satisfagan sus necesidades. Para poder registrar un servicio es UDDI es necesario conocer los concepto que se proveen en la Fig. 7.

Provider: Information about the entity who offers a service 0n Service: Descriptive information about a particular family of technical offerings 0n

tModel: Descriptions of specifications for services.

Bindings contains references to tModels. These references declare the interface specifications for a service.
0n

Binding: Technical information about a service entry point

Fig. 7 Relaciones de las entidades de UDDI. Providers Los entidad Provider es la de mas alto nivel y como tal representa la entidad padre. Un provider puede ser un negocio, una organizacin, o un grupo conceptual que ofrece servicios. Por ejemplo, un negocio, una unidad de negocio, un departamento de una organizacin, una persona, computadora o aplicacin. Para definir los providers dentro UDDI es necesarios considerar lo siguiente: Los providers son un tipo de entidad que puede asociarse a con los contactos. Cada provider debe ligar por lo menos una persona responsable. Los providers pueden crear relaciones con otros providers. Por ejemplo, un equipo puede tener un hijo a un departamento como hijo. Los providers lgicamente contiene servicios. Si una definicin de un provider no contiene servicios, es probable que no se haya definido apropiadamente. Los providers deben de elegir el como se construir el nombre para que sea entendido por todas las organizaciones. El nombre deber de ser intuitivo. Provider names can be established in multiple languages.

Services Cuando un provider ha sido definido, el siguiente paso es definir los servicios asociados al provider.

Introduccin a la creacin, distribucin, registro y consumo de Web Services

16

Un servicio en UDDI es la entidad que describe y provee acceso a la funcin compartida con otros usuarios. Los servicios pueden desarrollar cualquier funcin a travs de la red, ordenado por una simple llamada a un complejo proceso de negocios.

Los cuando se definen servicios los siguientes puntos deben ser considerados: Los servicios son una entidad lgica. Considere un servicio como una coleccin de bindings (ligas). Los servicios lgicamente contienen bindings (ligas). Si un servicio no contiene bindings, probablemente no este definido correctamente. La no es necesario que la informacin tcnica se proporcione en el nivel de servicios. Sin embargo, un servicio puede ser complementado con metadatos que lo describan. Los servicios deben de elegir el como se construir el nombre para que sea entendido por todas las organizaciones. El nombre deber de ser intuitivo. Los servicios se puede establecer en multiples lenguajes. Los servicios no contiene contactos. Toda la informacin de los contactos para los servicios es derivada lgicamente del provider padre. Si un servicio tiene diferente contacto para este provider, considere la creacin de un nuevo provider para el servicio.

Bindings A diferencia de los servicios, los bindings no son lgicos, si no fsicos, en ellos esta contenido el punto de acceso a los Web service u otra informacin que sirva como interfaces para implementar el punto de acceso. Los puntos a considerar cuando se define los bindings son: El punto de acceso es la informacin ms importante en binding. En el caso de que un Web service binding, contenga como punto de acceso un URL con esto el Web service podr ser invocado por el cliente. En un caso distinto, el punto de acceso tambin puede ser un nmero de telfono o una direccin de e-mail. Auscencia de los nombres de categoria en los bindings. Como resultados de esto, no podran ser descubierto por la realcin con la categora.

tModel La entidad tModel representa los archivos WSDL, que define cada una de las interfaces que pueden ser usados por uno o ms servicios, tambin puede apunta a XML Schema Data types (XSD), XML, y otros documentos localizados en la red.

Introduccin a la creacin, distribucin, registro y consumo de Web Services

17

Consumo de un Web Service


Los pasos para poder consumir un Web Service son los siguientes:

Creacin de un proyecto Web


1. En Visual Studio. NET presione File, New, Project o Ctrl+Shift+N 2. En la ventana de New Project, en el apartado de Project Types selecione Visual C# Project, en el apartado de Templete seleccione ASP.NET Web Application y asigne un nombre de proyecto en la caja de texto de Location.

Introduccin a la creacin, distribucin, registro y consumo de Web Services

18

Adicionar referencia web


En el Soluction Explorer sobre el proyecto Web WsClient precione clic derecho y seleccione Add Web References.

Introduccin a la creacin, distribucin, registro y consumo de Web Services

19

Descubrimiento del Web Services con UDDI.


1. Para realizar el descubrimiento desde un servidor de UDDI, es necesario conocer el URL de dicho servidor.

2. Una vez identificado el servicio de UDDI, entonces podemos realizar bsquedas por servicio o bien nombre del proveedor, para este caso se buscan todos los servicios que comiencen con la letra a.

Introduccin a la creacin, distribucin, registro y consumo de Web Services

20

3. El resultado para nuestra bsqueda fue el servicio de AutenticacionLDAP, para visualizar los mtodos que contiene este servicio es necesario dar clic en la definicin de la interfase

4. Una vez invocada la URL del Web Services podremos ver los nombres de los mtodos y sus descripciones, esta presentacin es construida con el WSDL. Cambiamos el nombre de la referencia, la agregamos al proyecto pulse el botn de Add Reference.

Introduccin a la creacin, distribucin, registro y consumo de Web Services

21

5. Una ves que la referencia Web sea agredado al proyecto con el nombre de Autentica solo es necesario invocar la funcionalidad a travs de cdigo.

//Crear la instancia al web services autenticacin a travs de la referencia agregada TallerWebServices.Autentica.LDAP aut = new TallerWebServices.Autentica.LDAP(); //Llamar al mtodo autenticar del web services. string ds = aut.ObtenerCURP(txtLogin.Text.ToString(),txtPassword.Text.ToString());

Posteriormente si el resultado es satisfactorio se procede o no se realiza las actividades pertinentes.

Introduccin a la creacin, distribucin, registro y consumo de Web Services

22

Aspectos de Seguridad
Los tres problemas de seguridad de los Web Services
Seguridad comunicacin de confianza.
Con quien vamos a compartir nuestros servicios.

Mecanismos seguros.
Llamas maliciosas a nuestros servicios.

Dilema de la exposicin.
A travs de que puesto estarn expuestos los servicios (80 http, 443 SSL)

Mtodos de seguridad. Autenticacin en el Servidor Web


Configurar Web.Config.

Usando el HEADER de SOAP


Atributo [SoapMethod(sHeader)]

Extensiones de SOAP Secure Socket Layer (SSL)

Introduccin a la creacin, distribucin, registro y consumo de Web Services

23

Introduccin a la creacin, distribucin, registro y consumo de Web Services

24

Introduccin a la creacin, distribucin, registro y consumo de Web Services

25

Otras plataformas para Web Services.


Servidores de aplicaciones para servicios Web: Axis el servidor Jakarta_Tomcat (de Apache) http://ws.apache.org/axis/ http://tomcat.apache.org/ ColdFusion de Macromedia http://www.adobe.com/devnet/coldfusion/webservices.html Java Web Services Development Pack (JWSDP) de Sun Microsystems (basado en Jakarta Tomcat) http://java.sun.com/webservices/jwsdp/ JOnAS (parte de ObjectWeb una iniciativa de cdigo abierto) http://jonas.objectweb.org/ Microsoft .NET http://msdn.microsoft.com/webservices/ Novell exteNd (basado en la plataforma J2EE) http://www.novell.com/offices/emea/spain/news/pr03029.html WebLogic http://edocs.bea.com/wls/docs81/webserv/ WebSphere http://www-128.ibm.com/developerworks/websphere/zones/webservices/ Zope es un servidor de aplicaciones Web orientado a objetos desarrollado en el lenguaje de programacin Python http://www.zope.org/Resources/ZSP/

Introduccin a la creacin, distribucin, registro y consumo de Web Services

26

Referencias.
W3C World Wide Web Consortium http://www.w3.org/2002/ws/

Web Services interoperability (promueve la interoperabilidad entre plataformas, sistemas operativos y lenguajes de programacin) http://www.ws-i.org/

OASIS UDDI Seccin descubrimiento dinmico e invocacin de Web Services http://www.uddi.org/

OASIS Consorcio global que maneja los desarrollos, converge y adopta estndares de e-business sin intenciones de lucro. http://www.oasis-open.org/home/index.php

Microsoft UDDI Services http://www.microsoft.com/windowsserver2003/technologies/idm/uddi/default.mspx

Introduccin a la creacin, distribucin, registro y consumo de Web Services

27