martes, 31 de mayo de 2011

WEB SERVICES

“AÑO DEL CENTENARIO DE MACHU PICCHU PARA EL MUNDO”

TEMA:

WEB SERVICES

CURSO:

LENGUAJE BASADO EN CONOCIMIENTO

DOCENTE:

ING. RUBEN ALEXANDER MORE VALENCIA

INTEGRANTES:

ASTUDILLO CRUZ JOSUE ALEXANDER

DUQUE ESCOBAR DAVI DANIEL

JIMENEZ ZEGARRA URSULA DEL ROSARIO

PIURA - PERÚ

2011

Contenido

INTRODUCCIÓN.. 4

MARCO TEÓRICO.. 5

1.1. La Web 3.0. 6

1.2. ¿Qué es la Web 3.0?. 6

1.3. ¿Es la Web Semántica sinónimo de Web 3.0?. 7

1.4. Ideas en torno a la definición de la Web 3.0. 7

1.5. ¿Qué es la Web Semántica?. 7

1.6. ¿En qué consiste la Web de los datos y para qué puede ser utilizada?. 8

1.7. El futuro de la Web actual 8

1.8. ¿Cuándo y cómo este modelo podrá ser implementado?. 8

1.9. ¿Cuáles son las dificultades para su generalización?. 9

1.10. Los desafíos que deberá afrontar el nuevo modelo. 9

1.11. ¿Cuál será el futuro de los buscadores?. 9

1.12. ¿Acaso no existen datos semánticos en la metadata de los documentos actuales? 10

1.13. La Web Social 10

1.14. ¿Qué son y cómo surgen estos agentes inteligentes?. 11

1.15. ¿Qué es la Web 3D?. 11

1.16. La Web centrada en multimedia. 12

1.17. ¿Qué es la Web permanente?. 12

1.18. Las resistencias y cuestionamientos a esta evolución de la Web. 12

1.19. Proyectos en curso que anticipan el modelo de la Web 3.0. 13

1.20. ¿Cómo se caracteriza y diferencia la Web 3.0 de la Web 1.0 y de la Web 2.0? 14

2.1. Web services. 15

2.2. Beneficios de Web services sobre otras tecnologías. 15

2.3. Ejemplos de un web service que estén trabajando. 16

2.4. Tecnologías se usan en Web services (XML, UDDI,ETC) y como se diferencia de un servicio normal de Web. 16

2.4.1. XML. 16

2.4.2. SOAP.. 17

2.4.3. WSDL. 17

2.4.4. UDDI 17

2.5. Agrupaciones que desarrollan estándares para Web services. 18

2.6. Frameworks de Web services. (SOA). 18

2.7. Service Level Ageement 19

2.8. S2C, Service to custumer. 19

2.9. S2B, Service to business. 19

2.10. S2E Service to employee. 20

2.11. e –gobierno. 20

2.12. Registros. 20

2.13. Brokerage. 20

2.14. Retos y amenazas que existen en Web services. 20

3.1. EbXML. 22

3.2. Trading partners. 22

3.2.1. CPP Collaboration Protocol Profile. 22

3.2.2. CPA Collaboration Protocol Agreetment 22

3.3. El concepto de Proceso de negocios y modelado de la información (BPSS). 23

3.4. Elementos esenciales de ebXML. 23

3.4.1. Registros. 23

3.4.2. Servicios de mensajería. 24

3.4.3. Protocolo de transacciones de negocios (BTP). 24

3.5. Web Services Flow language. 24

3.6. Universal Business language. 24

3.7. Modelado de BP y queries de BP. 25

4.1. Características de los Web Services. 26

4.2. ¿Qué es SOAP?. 27

4.3. Un ejemplo práctico. 28

4.4. Hacia dónde vamos. 35

CASOS Y EJEMPLOS.. 36

A. Ejemplo de un Web Service Transaccional 37

B. Aplicación Cliente tipo Windows Form: WinAppOrdersTransactional 41

5. BIBLIOGRAFÍA.. 49

ANEXOS.. 50

INTRODUCCIÓN

Si buscamos los términos “Web Service” en Google nos salen como resultado más de 13 millones de páginas.

Evidentemente no todas hablan sobre el tema, pero puede decirse que los servicios Webs son una de las tecnologías más atractivas del mundo internet.

Hace ya algún tiempo que esta tecnología dejó de ser una moda y una promesa, para convertirse en una realidad con muchas utilidades. Como muestra volvamos a Google. Esta compañía inició en Abril del año 2002 la posibilidad de hacer búsquedas usando su motor de búsqueda (que indexa más de 3.000 millones de documentos Web). Esto se hace mediante webservices. Como podemos ver, una aplicación real para el mundo real. Pero, ¿qué es un webservice?

MARCO TEÓRICO

1.1. La Web 3.0

En general, se asocia la Web 3.0 a una nueva etapa destinada a añadir significado a la web, y por tal motivo se acuerda con Tim Berners-Lee, el creador de la World Wide Web, en llamarla Web Semántica.

Todavía no se ha incorporado el cambio de actitud, que como señala Christian Van Der Henst S. implica la Web 2.0, cuando ya se habla de Web 3.0, como de una realidad inminente que promete transformar no sólo nuestra experiencia web, sino toda nuestra cotidianidad.

1.2. ¿Qué es la Web 3.0?

Si bien, en general, se asocia el término al de Web Semántica, acuñado por Tim Berners-Lee, cabe acotar, valga la paradoja, que no existe total consenso acerca de lo que significa la Web 3.0. Aunque se coincide en que esta etapa añadirá significado a la web, no hay acuerdo sobre cuáles son los caminos más apropiados para su desarrollo.

José Antonio del Moral, director general de la consultora Alianzo, en su artículo sobre Web 3.0 ¿futura realidad o ficción?, califica al término Web 3.0 de ‘abstracto’. Por su parte, Salvador Pérez Crespo de Telefónica de España, considera que la Web 3.0 será una revolución si se logra una combinación efectiva entre la inclusión de contenido semántico en las páginas web y el uso de inteligencia artificial que saque partido de ella.

No obstante, dado que los avances de esta disciplina son demasiado lentos y dificultosos, cree que la solución podría estar en la combinación de las técnicas de inteligencia artificial con el acceso a la capacidad humana de realizar tareas extremadamente complejas para un ordenador. Como lo está haciendo: Mechanical Turk de Amazon y Google Image Labeler.

En cualquier caso, el aumento de la interactividad y de la movilidad son dos factores que muchos señalan como decisivos en esta nueva etapa de la web.

1.3. ¿Es la Web Semántica sinónimo de Web 3.0?

De lo dicho anteriormente se desprende que no, aunque muchas veces estos términos sean empleados como tales. Quizás la principal diferencia sea que la Web 3.0 se concibe como un estadìo a ser alcanzado en mayor o menor plazo, mientras que la Web Semántica es un proceso evolutivo en construcción permanente.

En tal sentido, como señala Berners-Lee, ya estamos inmersos en ella. Es de suponer que, tal como es concebida, trascenderá tanto el concepto de Web 3.0, como el de sus sucesoras.

1.4. Ideas en torno a la definición de la Web 3.0

Básicamente, tienen que ver con los avances y proyectos en curso que tienden a una cada vez mayor y más eficiente incorporación de la web a la cotidianidad. Se habla así, de conceptos tales como: Web 3D, Web centrada en multimedia y Web permanente.

Por otra parte, íntimamente relacionados con la Web Semántica surgen los microformatos, que como dice Pérez Crespo, son un enfoque más pragmático de ésta, e intentan tener utilidad a más corto plazo.

1.5. ¿Qué es la Web Semántica?

Nadie mejor que Tim Berners-Lee, el creador de la World Wide Web, para dar respuesta a este interrogante. La denominación de Web Semántica se remonta al año 2001, cuando presentó en Scientific American el ya famoso caso de Lucy.

Sin embargo, en una entrevista publicada por BusinessWeek, en abril de este año, señala que quizás debería haberla llamado Web de los datos, dado que la palabra semántica es utilizada para significar diferentes cosas.

1.6. ¿En qué consiste la Web de los datos y para qué puede ser utilizada?

Básicamente, la idea se refiere a una web capaz de interpretar e interconectar un número mayor de datos, lo que permitiría un avance importante en el campo del conocimiento.

En tal sentido, Berners-Lee destaca lo que esta transformación traería aparejada en el campo de la investigación genética y el tratamiento farmacológico de enfermedades hasta ahora incurables. Diseñada correctamente, la Web Semántica puede asistir a la evolución del conocimiento humano en su totalidad.

1.7. El futuro de la Web actual

En una entrevista realizada por Andrew Updegrove y publicada en el Consortium Standards Bulletin el padre del web considera que la Web Semántica es más una evolución que una revolución de la Web actual.

En dicha oportunidad, se mostró satisfecho con la recepción que la misma había tenido en el área de las ciencias de la vida y el cuidado de la salud y agregó que, a diferencia de la Web de los documentos (Web 1.0), que tuvo un crecimiento exponencial muy rígido, esta nueva etapa depende, en gran medida, de las pequeñas comunidades que han comprendido el paradigma y de la atención que le ha merecido a la prensa.

1.8. ¿Cuándo y cómo este modelo podrá ser implementado?

En un artículo publicado en la edición online de ERCIM, en octubre de 2002, Tim Berners-Berners-Lee y Eric Molinero anticipaban que la Web alcanzaría su capacidad máxima cuando se convirtiese en un ambiente donde los datos pudiesen ser compartidos y procesados por las herramientas automatizadas, así como por la gente.

Esto se lograría a partir de la definición de estándares: los identificadores uniformes de recurso (URIs), base de la web semántica, el Extensible Markup Language (XML) fundamento sintáctico de la misma y el marco de la descripción del recurso (RDF).

En febrero de 2004, el World Wide Web Consortium (W3C) publicó las recomendaciones para el RDF y el Ontology Web Language (OWL), Este último describe la función y relación de cada uno de los componentes de la Web Semántica.

Puede especificar clases, propiedades y estados de algo. Estos estándares que constituyen la base sintáctica de la web semántica, ya están siendo adoptados por algunas empresas en sus últimos proyectos.

1.9. ¿Cuáles son las dificultades para su generalización?

En cuanto a las críticas y resistencias que el modelo semántico ofrece, Berners-Lee conviene en que la sintaxis RDF/XML, empleada por éste, no es muy fácil de leer.

Sin embargo, acota, esto no debería ser una complicación ya que al tratarse de sistemas de escritura de datos, la codificación semántica podrá ser totalmente automatizada. Cabe señalar que al igual que con la adopción de la Web 2.0, el desarrollo e implementación de la Web 3.0, será en gran parte una cuestión de actitud.

1.10. Los desafíos que deberá afrontar el nuevo modelo

Establecidos los estándares, que constituyen la base sintáctica de la nueva web, Berners-Lee cree que los nuevos desafíos en la evolución de la misma deberán ser tratados en términos de utilidad y accesibilidad.

Aunque el punto clave de la Web Semántica está, según expresa, en su potencial para las nuevas aplicaciones de datos sobre el web. En otras palabras, en la capacidad de generar búsquedas más precisas e “inteligentes”.

1.11. ¿Cuál será el futuro de los buscadores?

Algunos creen que la implementación de la nueva web, será el fin de los grandes buscadores. Según Nicholas Carr, la Web 3.0 “convertirá en obsoletos a los buscadores de hoy”. Sin embargo, Berners-Lee señala que esto no será así.

El hecho de que se agregue algo, aclara, no quiere decir que se esté sustituyendo; la existencia de datos no amenaza los documentos. Del mismo modo, los motores de búsqueda podrán evolucionar y hacerse Web semántico compatibles, en la medida en que los usuarios exijan dicha compatibilidad.

1.12. ¿Acaso no existen datos semánticos en la metadata de los documentos actuales?

Ya en mayo de 2001, Tim Berners-Berners-Lee, James Hendler y Ora Lassila observaban en un informe publicado en Scientific American , que la Web Semántica no era una Web separada sino una extensión de la existente y que los primeros pasos en tejer la Web Semántica en la estructura de la Web, ya estaban en curso.

Por otra parte, explicaban que el desafío de la Web Semántica era proporcionar una lengua, que expresase los datos y las reglas para razonar sobre esos datos, y que permitiese que las reglas de cualquier sistema existente de conocimiento, sean exportadas sobre el Web.

1.13. La Web Social

En la 5ta. Conferencia Internacional de la Web Semántica, realizada en noviembre de 2006, Tom Gruber señaló en su presentación que hay una falsa idea popular que tiende a considerar la Web Semántica y la Web Social como dos mundos con ideologías alternativas y en oposición sobre cómo debe ser la web.

Consideró que esto era absurdo, y que era hora de abrazar una idea unificada, suscribiendo a la visión del Web semántico como substrato para la inteligencia colectiva.

Al respecto, José Antonio del Moral sostiene que en la Web 3.0 se produciría una unificación de las comunidades sociales, para lograr que el usuario tuviera una sola identidad en internet.

¿Cuáles son los impedimentos para que el uso del modelo semántico, a corto plazo, se haga extensivo?, ¿existen alternativas a dicho modelo?

Más allá del optimismo expresado por Berners-Lee; la web semántica -como explica en su tesis doctoral, María Jesús Lamarca,- sin duda mejorará la accesibilidad de la información, pero el problema es que exige una completa reanotación de la web.

Por tal motivo, agrega, otros investigadores han tomado un camino diferente para implementar la Web Semántica. En lugar de utilizar estándares y reformateos webs, están construyendo nuevos agentes para que puedan entender mejor la web tal como está hoy en día.

Las páginas web ya tienen información semántica, así que lo que hacen es que los agentes las entiendan tal como los humanos. No están haciendo las páginas más fáciles de leer, sino los agentes más inteligentes.

1.14. ¿Qué son y cómo surgen estos agentes inteligentes?

Pérez Crespo señala que estos agentes inteligentes, llamados microformatos, surgen frente a la web semántica tradicional, producto del trabajo de la comunidad de desarrolladores de Technorati.

Su objetivo es estandarizar un conjunto de formatos en los que almacenar conocimiento básico. Considera que, a corto plazo, los microformatos serán los triunfadores.

1.15. ¿Qué es la Web 3D?

Se llama así, a lo que muchos ven como una extensión de los mundos virtuales, similar a la famosa Second Life o There.com se cree que en el futuro la web será una gran alternativa al mundo real, donde se podrá recorrer el planeta a través de ella, sin abandonar el escritorio.

La experiencia sería semejante al actual Google Earth. Compañías como Google y Microsoft trabajan en este tipo de proyectos.

1.16. La Web centrada en multimedia

Se refiere a una web que ofrezca, no solamente búsquedas basadas en metadatos, sino por similitudes en la multimedia.

La web “mediocéntrica” es una web enfocada en los multimedios, donde se podrán hacer búsquedas por similitud, de imágenes, música y videos, con sólo mostrar al buscador el medio de referencia. Entre las Compañías que están trabajando en estos proyectos se encuentran Ojos y Polar Rose.

1.17. ¿Qué es la Web permanente?

También llamada Web omnipresente o pervasive web es una web que está en todas partes, no sólo en el PC o celular sino en la ropa, joyas, automóviles, etc.

Es un concepto, que se ha extendido a partir del pasaje de los PC a los teléfonos celulares y PDA. Según un artículo publicado en el wiki Wadooa, el laboratorio de multimedios del MIT , ya está trabajando en estas ideas a partir de la creación de espejos de baños y ventanas de casas conectados a internet.

1.18. Las resistencias y cuestionamientos a esta evolución de la Web

Según Pérez Crespo, los pesimistas aducen que el grado de complejidad que esta exige no será alcanzado, porque existirá una fuerte reacción de quienes ahora disponen de la información, que no querrán compartirla o porque fenómenos como el “spam semántico” la harán poco utilizable.

Por su parte, Ricardo Baeza-Yates, director de Yahoo Research Barcelona, en el artículo sobre Web 3.0: la inteligencia hecha web, cree que la Web Semántica puede no existir nunca, ya que sólo podría ocurrir cuando las personas e instituciones usen los mismos estándares semánticos y sean confiables. Algo que considera prácticamente imposible.

Sin duda, existirá fuerte oposición entre los defensores de la privacidad y puede que ésta en determinado momento sea más vulnerable, sin embargo, cabe suponer que, paralelamente, se desarrollaran los mecanismos necesarios para protegerla.

1.19. Proyectos en curso que anticipan el modelo de la Web 3.0

Dentro de la corriente oficial, centrada en la creación de estándares y reformateo de páginas, algunas Compañías como HP y Yahoo ya vienen implementando los nuevos lenguajes.

Los ejemplos más citados son el de la empresa RadarNetworks , que busca explotar el contenido suministrado por los usuarios en las redes sociales y el proyecto KnowItAll, desarrollado en la Universidad de Washington y financiado por Google, que busca obtener y agregar información de usuarios de productos.

Se pueden encontrar estructuras web semánticas en la herramienta espacial de la base de datos Oracle. Empresas como Powerset y TextDigger han trabajado en buscadores web semánticos basados en el proyecto académico open source WordNet.

Por otra parte, dentro de la corriente alternativa, ocupada en la construcción de agentes más inteligentes, el proyecto más temprano ha sido el de BlueOrganizer de AdaptativeBlue.

Actualmente en desarrollo, Parakey es un proyecto de código abierto, comandado por Blake Ross, uno de los desarrolladores de Firefox. La idea es unificar el escritorio y la web, a partir de la creación de una especie de sistema operativo web.

1.20. ¿Cómo se caracteriza y diferencia la Web 3.0 de la Web 1.0 y de la Web 2.0?

El desarrollador uruguayo, Andrés Richero, presenta el siguiente esquema:

· Web 1.0 – Personas conectándose a la Web

· Web 2.0 – Personas conectándose a personas – redes sociales, wikis, colaboración, posibilidad de compartir.

· Web 3.0 – Aplicaciones web conectándose a aplicaciones web, a fin de enriquecer la experiencia de las personas, a esto agrega: estado de conciencia del contexto en la Web Geoespacial, autonomía respecto del navegador y construcción de la Web Semántica.

Sobre este último punto, cabe acotar que si bien diferentes factores se conjugan en la Web 3.0 a favor de la semantización de la web, en tanto esto es un proceso, no es privativo de ella. Por tal motivo, quizás sea más apropiado concebir la construcción de la Web Semántica, por fuera y por encima de estos estadíos o instancias.

2.1. Web services

Los Web Services permite la comunicación entre aplicaciones o componentes de aplicaciones de forma estándar a través de protocolos comunes (como http) y de manera independiente al lenguaje de programación, plataforma de implantación, formato de presentación o sistema operativo. Un Web service es un contenedor que encapsula funciones específicas y hace que estas funciones puedan ser utilizadas en otros servidores. Algunas ventajas que presentan los Web services son:

Ø Son programables

Ø Están basados en XML, que es un lenguaje abierto

Ø Son auto descriptivos

Ø Pueden buscar registros de otros Web services

2.2. Beneficios de Web services sobre otras tecnologías.

Los web services presentan algunas diferencias sobre sistemas distribuidos tradicionales, tales como EJB, COM/DCOM, CORBA, SOM/DSOM o DCE. Algunas de las diferencias son las siguientes.

· Escaso acoplamiento. El cliente no necesita conocer nada acerca de la implementación del servicio al que está accediendo, salvo la definición WSDL

· Independencia del lenguaje de programación. El servidor y el cliente no necesitan estar escritos en el mismo lenguaje

· Independencia del modo de transporte. SOAP puede funcionar sobre múltiples protocolos de transporte, como por ejemplo HTTP, HTTPS, HTTP-R, BEEP, JABBER, IIOP, SMTP o FTP.

· Múltiples modos de invocación. Los servicios web soportan tanto invocación estática como invocación dinámica.

· Múltiples estilos de comunicación. Los servicios web soportan tanto comunicación síncrona (RPC) como comunicación asíncrona (mensajería ).

· Extensibilidad. Al estar basados en XML, los servicios web son fáciles de adaptar, extender y personalizar.

2.3. Ejemplos de un web service que estén trabajando.

En la página de www.xmethods.net se encuentra una lista de empresas que utilizan Web services. Una de estas empresas es eraserver.net que utiliza los datos del servicio postal de los Estados Unidos para dar información del código postal actualizado, aun cuando la dirección sea incompleta. Se proporciona los datos de la calle, ciudad y el estado y el programa regresa el código postal.

2.4. Tecnologías se usan en Web services (XML, UDDI,ETC) y como se diferencia de un servicio normal de Web.

2.4.1. XML

Lenguaje extensible de etiquetas. Es un estándar para describir datos y crear etiquetas. Las características especiales son la independencia de datos, o de la separación de los contenidos de su presentación. Es un metalenguaje que permite diseñar un lenguaje propio de etiquetas para múltiples clases de documentos. Los documentos XML se componen de unidades de almacenamiento llamadas entidades (entities), que contienen datos analizados (parsed) o sin analizar (unparsed). Los datos analizados se componen de caracteres, algunos de los cuales forman los datos del documento y el resto forman las etiquetas. Las etiquetas codifican la descripción de la estructura lógica y de almacenamiento del documento. XML proporciona un mecanismo para imponer restricciones en la estructura lógica y de almacenamiento.

2.4.2. SOAP

(Simple Object Access Protocol, Protocolo de Acceso simple a objetos). Especificación XML para la formación de los mensajes intercambiados entre los sistemas distribuidos y la red. Este protocolo deriva de un protocolo creado por David Winer, XML-RPC en 1998. Los mensajes debían tener un formato determinado empleando XML para encapsular los parámetros de la petición. El mensaje está compuesto de tres partes: un sobre, encabezado y el cuerpo. El sobre envuelve al mensaje y contiene el encabezado y el cuerpo; el encabezado es un elemento opcional que provee información para el enrutamiento del mensaje; el cuerpo contiene datos etiquetados como XML.

2.4.3. WSDL

(Web Service Definition Language, Lenguaje de descripción de servicios web). Especificación XML para la formación del documento de descripción de un servicio web. Identifica los métodos, funciones y parámetros necesarios para invocar un determinado servicio. Así, un usuario puede crear una aplicación cliente que comunica con el servicio web.

2.4.4. UDDI

(Universal Description, Discovery and Integration,Descripción, Descubrimiento e Integración). , es un elemento básico sobre el que se asientan los Web services, hace posible que empresas pueden tanto publicar como encontrar servicos web. UDDI provee un mecanismo para que los negocios se "describan" a si mismos y los tipos de servicios que proporcionan y luego se pueden registrar y publicarse en un Registro UDDI. Tales negocios publicados pueden ser buscados, consultados o "descubiertos" por otros negocios utilizando mensajes con SOAP.

Los datos manejados por UDDI se dividen en tres categorías:

· Páginas Blancas: Con información general sobre una empresa (nombre, descripción, información de contacto, dirección y teléfono).

· Páginas Amarillas es muy similar a su equivalente telefónico, e incluyen categorías de catalogación industrial tradicionales, ubicación geográfica, etc. Mediante el uso de códigos y claves predeterminadas, los negocios se pueden registrar y así facilitar a otros servicios la búsqueda usando estos índices de clasificación.

· Páginas Verdes: Con información técnica sobre un servicio web. Generalmente esto incluye un apuntador a la especificación externa y una dirección en la que invocar el servicio.

2.5. Agrupaciones que desarrollan estándares para Web services.

W3C. World Wide Web consortium Fundada en 1994 con 500 miembros Es la principal desarrolalladora de estandares para Web services.

OASIS Organization of the Advancement Structured information standards de los avances de estándares de la información estructurada trabajan con tecnologías XML consiste en 400 miembros mejoran xml

IETF Internet Engineering Task ForceFuerza de tarea de ingeniería en internet. Trabaja sobre las arquitecturas y tecnologías de Internet.

ISO Internacional organization for Standardization tiene 140 países miembros se encarga de desarrollar estándares para mejorar el comercio internacional

2.6. Frameworks de Web services. (SOA)

SOA es el acrónimo de arquitectura orientada a servicios o en inglés Service Oriented Architecture.

Una arquitectura SOA está formada por tres partes: un proveedor, un intermediario y un cliente que no presentan ningún acoplamiento entre ellos.

El proveedor ofrece un servicio determinado y que el cliente no tiene porque conocer directamente. El cliente aprende como utilizar el servicio a partir de la información que le ofrece el intermediario que normalmente simplifica el uso de dicho servicio. El cliente sólo sabe cómo utilizar el servicio, es decir, como enviar y recibir datos pero no conoce ningún detalle de su implementación interna. Un ejemplo típico de arquitectura SOA son los Servicios Web que proporcionan una interfaz de acceso a un servicio escondiendo las particularidades de dicho servicio de modo que sea accesible desde cualquier tipo de cliente a través de protocolos estándar.

2.7. Service Level Ageement

Es un servicio que permite el acceso solo a las personas autorizadas, como un cliente que pago por el servicio. Los parámetros de la subscripción para el web service son determinados por el SLA por un periodo de tiempo

2.8. S2C, Service to custumer

Son web services dirigidos a los consumidores individuales, no a las grandes empresas. Los Web services pueden simplificar el proceso de comunicación y los datos requeridos por el usuario, en especial, los datos que frecuentemente son actualizados. Algunos servicios permiten a los clientes almacenar información y poderla accesar desde cualquier dispositivo conectado a Internet.

2.9. S2B, Service to business

Es la posibilidad que ofrecen los Web services para que las empresas puedan compartir datos sin importar las plataformas que cuenta cada empresa. Los socios comerciales pueden ligar sus bases de datos y pueden compartir los datos actualizados de inventarios y órdenes de compra, con esto, ya no es necesario el uso de los Electronic Data Interchange (EDI).

2.10. S2E Service to employee

El Web services son específicamente diseñado para uso de los empleados. Ayudan a entregar información a los empleados y también ayudan a interactuar entre los empleados.

2.11. e –gobierno

Reúne en un solo sitio la información, servicios y trámites electrónicos de las dependencias y entidades de la Administración Pública Federal, que más impacto tienen en la ciudadanía.

2.12. Registros

Un registro de UDDI contiene descripciones accesibles programadas de negocios y servicios que soporta, también contiene las referencias específicas de la industria que UDDI coloca dentro de una pila de Web services.

2.13. Brokerage

Son Web sites que contienen una lista de los Web services disponibles. Permite poner a los proveedores de servicio la dirección de la Web, la información y los servicios Web

2.14. Retos y amenazas que existen en Web services

· Retos de seguridad basados en el usuario final de un Web services. El problema es que se manda información personal o privada del usuario final por un mensaje SOAP y cada vez que se manda un mensaje, se vuelve a mandar información del usuario final.

· Retos de mantener la seguridad mientras se enrutea a diferentes Web services ya que la información puede ser leída mientras viaja por la red

· El reto de abstraer la seguridad de la red. La seguridad de un Web services no depende solo de la seguridad que se tenga en el Web. Se recomienda el uso de SSL para SOAP y para Web services.

`

3.1. EbXML

EbXML (Electronic Bussiness XML) es una infraestructura abierta basada en XML que permite que las compañías usen el comercio electrónico de una forma confiable. Es una alternativa para los sistemas EDI (Electronic Data Interchange) ya que permite realizar transacciones entre socios usando XML. Una desventaja de los sistemas EDI es que está dirigido solo para las grandes compañías ya que el costo es muy alto.

3.2. Trading partners

Son organizaciones que están involucradas en las transacciones con EbXML. Existen dos tipos de documentos que contienen información de los sumariales, son el CPP y el CPA.

3.2.1. CPP Collaboration Protocol Profile

Contiene información de las capacidades de los socios comerciales que incluyen la colaboración de negocios e intercambio de información de negocios. Los elementos de XML describen información acerca de los tipos de acuerdos que podrían aceptar los socios, información para intercambio y transporte de documentos y características de los mensajes como la seguridad y la confiabilidad.

3.2.2. CPA Collaboration Protocol Agreetment

Contiene información acerca de los negocios, colaboraciones incluyendo el proceso del negocio del vendedor, capacidades de intercambiar mensajes y los procesos de compra del comprador. Cuando dos negocios se quieren compartir negocios, se negocia el CPA. El CPA describe el servicio de mensajeria específico y los requerimientos del proceso de negocios que se acuerda con el socio.

3.3. El concepto de Proceso de negocios y modelado de la información (BPSS).

Es una especificación que ayuda a una organización a describir su proceso de negocios y escenarios en un CPP. Los desarrolladores pueden usar este modelo para componer los procesos definidos en CPPs. EL BPSS es un conjunto de vocabularios y guías para crear aplicaciones que permita al sistema de negocios implementar ebXML. Declara los elementos de XML y usos de atributos para describir el proceso de negocios del ebXML.

3.4. Elementos esenciales de ebXML

Los elementos esenciales están almacenadas en los registros de ebXML, son blocks de construcción, para un proceso común y reusable que los desarrolladores usan para PPS. Los desarrolladores pueden extender los componentes para crear componentes clientes específicos para una organización CPP. Puede ser una sola pieza de información del negocio o puede consistir en un set de componentes de información del negocio.

3.4.1. Registros

Permiten a los trading partners almacenar y compartir información, es posible buscar registros de ebXML por medio de los registros UDDI de XML.

Permiten a los trading partners aprender de otros socios compartir información. Los registros almacenan CPPs, CPAs, shemas, DTDs, modelo de procesos de negocios, etc. Los registros incluyen servicios para ayudar a las compañías a formar acuerdos con otros negocios. Los registros pueden almacenarse en los Web servers o un un ASP que distribuya y administre servicios sobre una red de sistemas distribuidos. Cada registro debe ser único UDI.

3.4.2. Servicios de mensajería.

ebXML un método estándar para intercambiar mensajes entre los socios comerciales. El servicio de mensajería incluye una especificación que describe como encapsular los mensajes ebXML para diferentes protocolos de transporte. ebXML tiene integrado a SOAP en el sistema de mensajes. El SOAP encapsula la información ebXML que se envía a los socios.

3.4.3. Protocolo de transacciones de negocios (BTP)

Fue diseñado para trabajar con los estándares existentes de mensajes de negocios, para manejar transacciones complejas entre negocios que usan web services u otras tecnologías para transacciones B2B.

La meta principal es definir como las organizaciones pueden coordinar sus sistemas para archivar automáticamente las transacciones de negocio.

3.5. Web Services Flow language

Es un lenguaje basado en XML para incorporar los Web services como parte de las operaciones requeridas para realizar un proceso o transacción. Ofrece un framework en el cual los proveedores y consumidores de los Web services pueden definir el trabajo a realizar y el flujo del trabajo.

3.6. Universal Business language

El UBL usa parámetros de ebXML para desarrollar un conjunto de documentos de negocios XML. La intención es de crear un conjunto de estándares internacionales abiertos para los documentos del e-commerce.

3.7. Modelado de BP y queries de BP.

EL BPML esta desarrollado para la administración de los procesos, es un metalenguaje para modelar los procesos de negocio. Provee un método para describir los procesos de negocios y compartir los detalles del proceso usando XML. Las compañías pueden usarlo para modelar y manejar las ordenes , los cuidados del cliente, plan de demanda y el proceso de desarrollo de productos.

El BPQL es usado por el BPML para interactuar con la infraestructura de la administración del negocio que incluye un process server , que es el que ejecuta los procesos y el process repository, que es donde se despliegan los procesos.

4.1. Características de los Web Services

Un desarrollador puede incluir en sus sitios soluciones sentencias, es decir, instrucciones que consuman Web Services de terceros o propios como por ejemplo aquellos que proporcionan los datos meteorológicos para una localidad determinada, las cotizaciones de determinadas monedas, la cartelera de películas, el calendario o agenda de un especialista médico, etc.

Pensando un poco más en forma comercial, ¿Qué pasaría si por ejemplo estuvieras trabajando en tu procesador de texto en un idioma para el cual no tienes un corrector ortográfico ni sintáctico instalado (quizás no exista para instalar), pero deseas realizar la revisión del documento a toda costa? Bien, perfectamente podría haber una opción en el menú de este procesador que de alguna forma localice un Web Service en Internet que brinde esta funcionalidad, y lo más interesante aún para quien lo haya desarrollado es que puede solicitar al usuario que se subscriba para su uso. Como ves, todos ganan en esta transacción.

El ejemplo anterior muestra una realidad a la que no podemos estar ajenos. Es un replanteo de la estrategia utilizada por los desarrolladores quienes ahora, al realizar una aplicación, no deben pensar únicamente en el lugar físico donde la misma va a ejecutarse sino en que esa aplicación deberá estar interconectada con otras computadoras, corriendo otras aplicaciones quizás en otras plataformas y lenguajes, pero usando protocolos y estándares universales. El intercambio se intensificará muchísimo más y quizás existan por ejemplo “proveedores de dominios de datos” como ser los países, de forma tal que la aplicación que yo realice en lugar de crear toda la lógica para manejar las tablas y el cargado de los datos para el concepto PAIS, se limite a consumir un Web Service que me tome esta información de algún lugar en Internet. Imagino una reutilización aún mayor de funcionalidades y una colaboración e intercambio de lógica a nivel mundial. Quizás sea muy ambicioso en este planteo.

Pasando al terreno más técnico y práctico de este artículo, existen algunas consideraciones y conceptos que es necesario mencionar para comenzar a entender el tema:

· Un Web Service puede ser registrado para poder dejarlo a disposición de otros usuarios y para que los mismos puedan localizarlo. Un mecanismo para registrar estos servicios es por medio de UDDI, sigla que corresponde a Universal Description , Discovery and Integration, un “repositorio de Web Services”. Para registrar un servicio tendrás que tener en cuenta que debes suministrar la información de tu empresa, en qué categorías ubicarías tu servicio y la interfaz a utilizar para consumir este servicio.

· El mecanismo utilizado por un Web Service para especificar de qué forma hay que proporcionarle los datos, de manera tal que cualquiera pueda interaccionar con el mismo, es por medio de lenguaje XML. Esta información se almacena en un archivo llamado WSDL (Web Services Description Language), el cual contiene un documento XML junto con la descripción de ciertos mensajes SOAP y cómo deben intercambiarse, así como también dónde está el recurso del servicio y con qué protocolo debe dialogar quien lo consume.

· El protocolo de comunicación utilizado es el SOAP generalmente, el cual es relativamente sencillo de utilizar.

· Los Web Services utilizan protocolos comúnmente conocidos y difundidos tales como el formato XML, TCP/IP como protocolo de transporte y HTTP como protocolo de transferencia de hipertexto.

4.2. ¿Qué es SOAP?

SOAP es un protocolo que define el formato XML para los mensajes de intercambio en el uso de un Web Service. Para aquellos programadores que solían utilizar llamadas del tipo RPC, SOAP también las soporta. Adicionalmente, es posible mediante SOAP definir un mensaje HTTP y este punto es de especial interés puesto que el protocolo imprescindible para Internet es HTTP.

4.3. Un ejemplo práctico

A partir de ahora describiré en unos pocos pasos un ejemplo práctico y sencillo de creación de un Web Service y una muestra de cómo consumirlo desde una aplicación cliente, en este caso una simple planilla de Microsoft Excel:

Paso 1: Lo primero será crear un proyecto Visual Basic del tipo ASP .NET Web Service, al que llamaremos DameCotizacion

Bb972248.art243-img01-439x307(es-es,MSDN.10).jpg
Figura 1.

Paso 2: Al archivo Service1.asmx, que se crea una vez generado el proyecto, lo renombramos DameCotizacion.asmx y lo establecemos como Pagina de Inicio del proyecto

Bb972248.art243-img02-310x330(es-es,MSDN.10).jpg
Figura 2.

Paso 3: Ingresando a la ventana de código del archivo DameCotizacion.asmx, en la zona del , agregamos el siguiente código:

Public Function GetCotizacion(ByVal strmoneda As String) As String

'Objetivo: Devolver cotización para una moneda en pesos uruguayos

' Obviamente esto es un ejemplo por lo que esta info que

' se presenta estática se tomaría de una base de datos

'Acepta: strmoneda - un id para la moneda de dos caracteres.

'Devuelve: cotizacion de dicha moneda en pesos uruguayos

Select Case UCase(Trim(strmoneda))

Case "DO"

'dolar

Return "30"

Case "RE"

'real

Return "9.9"

Case "EU"

'Euro

Return "33"

End Select

End Function

Para verificar el correcto funcionamiento de esta aplicación, vamos a ejecutarla. Para ello apretamos F5 y el resultado esperado se verá en Internet Explorer. Como puedes ver, se ofrece el método GetCotizacion() definido en el código anterior

Bb972248.art243-img03-566x221(es-es,MSDN.10).jpg
Figura 3.

Si cliqueamos sobre este método, podremos ver la especificación del mismo y la definición del tipo de intercambio de mensajes

Bb972248.art243-img04-566x396(es-es,MSDN.10).jpg
Figura 4.

Paso 4: Podemos comprobar su funcionamiento colocando el valor EU (código que establecimos para el Euro) y cliqueando en Invoke. El valor esperado por el método es del tipo string y deberá ser uno de los tipo de monedas (DO, RE ó EU) definido en nuestro método.

El resultado debería ser un mensaje en XML como se muestra en la Figura 5, mostrando el valor definido para la moneda de código EU:

Bb972248.art243-img05-566x148(es-es,MSDN.10).jpg
Figura 5.

Pongamos a trabajar nuestro Web Service en una aplicación práctica. Supongamos que tenemos una planilla de Microsoft Excel donde tenemos artículos cuyos precios están en su moneda original y queremos que aparezca su valor en Pesos Uruguayos. Para esto consumiremos el Web Service creado en los pasos anteriores (DameCotizacion) que proporcionando el código de la moneda me devuelve la cotización correspondiente.

Paso 5: Crearemos una planilla de Microsoft Excel como se muestra en la Figura 6, donde agregaremos un botón cuyo nombre y Caption será Cotizar:

Bb972248.art243-img06-384x180(es-es,MSDN.10).jpg
Figura 6.

Paso 6: En la celda E2 , la fórmula para calcular el valor del artículo en Pesos Uruguayos es =D2*C2. La columna Cotización será alimentada una vez que se oprima el botón Cotizar, el cual disparará un evento que consumirá el Web Service DameCotizacion y retornará en cada celda Cotización el valor correspondiente.

Paso 7: Haciendo doble clic sobre el botón Cotizar ingresaremos a la ventana de código Visual Basic posicionados en el evento Click de dicho botón.

Previo a esto último, relacionaremos nuestro Web Service a nuestra planilla mediante el uso de la herramienta Microsoft Web Services Toolkit (Paso 8). Para esto, desde el menú Herramientas de la ventana de código Visual Basic, seleccionamos la opción “Web Service References ...”

Bb972248.art243-img07-456x371(es-es,MSDN.10).jpg
Figura 7.

En esta ventana seleccionamos Web Service URL y colocamos "http://localhost/DameCotizacion/DameCotizacion.asmx" en el cuadro de texto URL, y apretamos el botón Search. Esta acción deberá traer como resultado nuestro Web Service DameCotizacion en la sección Search Results, el cual seleccionaremos, donde podrá verse que está disponible nuestro método GetCotizacion(). Cliquearemos entonces Add.

Paso 9: El código del evento Cotizar_Click() es el siguiente:

Private Sub Cotizar_Click()

Dim clsCotizacion As clsws_DameCotizacion

Dim monedas As Range

Dim moneda As Range

Dim cotizacion As String

clsCotizacion = New clsws_DameCotizacion

monedas = Range(Range("b2"), Range("b65536").End(xlUp))

Application.ActiveSheet.Range("b2").Activate()

For Each moneda In monedas

cotizacion = clsCotizacion.wsm_GetCotizacion(moneda)

moneda.Offset(0, 1).Value = Val(cotizacion)

Next moneda

End Sub



Si todo sale como es de esperar, el resultado de oprimir el botón Cotizar deberá ser el que se muestra en la Figura 8:

Bb972248.art243-img08-409x182(es-es,MSDN.10).jpg
Figura 8.

Como verás, este es un simple ejemplo que muestra cómo consumir un Web Service desde una aplicación cliente, en este caso Microsoft Excel, que ilustra dos puntos interesantes: la facilidad de implementación del mismo y la potencia que nos brinda. Basta conocer un proveedor de un servicio de cotizaciones de moneda para mantener nuestra planilla al día con las últimas cotizaciones del mercado bursátil.

Para aquellos desarrolladores que ya hacían uso de incluir referencias a objetos COM en sus herramientas quizás esto no sea muy novedoso, pero en el caso de los objetos COM, los mismos debían estar físicamente en la computadora cliente. En el caso de los Web Services, estamos hablando de compartir recursos que habiten en la Intranet corporativa o más aún, en Internet y en sitios bien dispersos en el mundo.

Para los que quieran hacer números y le quieran sacar un beneficio económico, ¿Qué ocurriría si tú fueras un proveedor de Web Services y solicitaras la suscripción para el uso de los mismos a tus clientes a lo largo y ancho del planeta? Interesante, ¿No es así?

Más aún, no necesariamente el escenario se limita a una aplicación cliente consumiendo un Web Service sino que a su vez un Web Service podría consumir otro Web Service para poder armar la información de respuesta a retornar al cliente. No hace falta imaginar un escenario de este tipo pues esto ya es posible.

4.4. Hacia dónde vamos

Si bien se ha avanzado mucho al respecto y hay infinidad de desarrolladores trabajando en este tema, existen aspectos a mejorar para catapultar aún más esta funcionalidad. Algunas características a mejorar pasan por temas relacionados con la seguridad (autorización, autenticación y cifrado) en el intercambio de mensajes, manejar el modelo transaccional y poder confirmar la entrega efectiva de los mensajes que se intercambian a través de los Web Services.

Adicionalmente, se continúa trabajando en la estandarización de los principales actores, como ser el WDSL y SOAP. Muchos fabricantes seguirán contribuyendo, elaborando herramientas para facilitar el manejo y elaboración de Web Services como es el caso de Microsoft y su Web Services Toolkit para Office 2003, que actualmente está en su versión 2.01.

CASOS Y EJEMPLOS

A. Ejemplo de un Web Service Transaccional

El ejemplo que utilizaremos asume que tenemos una política de procesar una orden sólo si todas las líneas de detalle pueden surtirse a partir del inventario. Si uno de los productos no tiene suficiente inventario, toda la orden es anulada.

Utilizaremos la table Products de la base de datos ejemplo Northwind. Podremos surtir un producto sólo si los UnitsInStock tienen suficiente cantidad. Por ejemplo, si tratamos de surtir 20 unidades de Aniseed Syrup, con el ProductID 3, la orden fallará, pues sólo hay 13 unidades actualmente.

Proyecto WebServOrdersTransactional

Haremos un proyecto tipo ASP.NET Web Service, al que llamaremos WebServOrdersTransactional:

En el Solution Explorer, renombré el archivo Service1.asmx a ServOrdersTransactional.asmx, sólo para que tenga un nombre más descriptivo:

Además, cambié el nombre del servicio:

Imports System.Web.Services

Namespace:="http://tempuri.org/WebServOrdersTransactional/Service1")> _

Public Class ServOrdersTransactional

Inherits System.Web.Services.WebService

Referencia a System.EnterpriseServices

Para obtener la funcionalidad transaccional, debemos referenciar la librería SystemEnterpriseServices.

En el Solution Explorer, en References, dar botón derecho y pedir: References:

De las referencias .NET escogemos System.EnterpriseServices:

Código del Web Service

Imports System.Web.Services

Namespace:= _

"http://tempuri.org/WebServOrdersTransactional/ServOrdersTransactional")> _

Public Class ServOrdersTransactional

Inherits System.Web.Services.WebService

(Web Services Designer Generated Code)

Para que sea transaccional, el atributo transactionOption debe ser .Required o .RequiresNew.
No hay diferencia funcional entre estas dos opciones


transactionoption:=EnterpriseServices.TransactionOption.Required)> _

Public Sub ProcessOrder(ByVal dsOrderLines As DataSet)

' Asumiremos que dsOrderLines trae una sola tabla,

' con una columna con el código del producto: ProductID

' y otra columna con la cantidad a restar: amount

Dim sSQL As String _

= "SELECT * FROM Products WHERE ProductID=@ProductID"

Dim sCnn As String _

= "server=(local);integrated security=sspi;database=Northwind"

Dim da As New SqlClient.SqlDataAdapter(sSQL, sCnn)

Dim paramProductID As _

New SqlClient.SqlParameter( _

"@ProductID", SqlDbType.Int)

da.SelectCommand.Parameters.Add(paramProductID)

Dim i As Integer

For i = 0 To dsOrderLines.Tables(0).Rows.Count - 1

' Lee datos enviados en una fila del DataSet

paramProductID.Value = _

dsOrderLines.Tables(0).Rows(i).Item("ProductID")

Dim cantidadARestar As Int64 = _

dsOrderLines.Tables(0).Rows(i).Item("amount")

Dim ds As New DataSet

da.Fill(ds, "Products")




If ds.Tables(0).Rows.Count <> 1 Then

' Debería ser sólo 1 fila, si no es así, aborta

System.EnterpriseServices.ContextUtil.SetAbort()

Return

Else

If ds.Tables(0).Rows(0).Item("UnitsInStock") _

>= cantidadARestar Then

' Si hay existencias, entonces, restar

ds.Tables(0).Rows(0).Item("UnitsInStock") _

-= cantidadARestar

Aborta transacción

Dim cb As New SqlClient.SqlCommandBuilder(da)

da.Update(ds, "Products")

Else

System.EnterpriseServices.ContextUtil.SetAbort()

Return

End If

End If

Next

' Si llega hasta acá, es que todas las líneas de detalle

Commit de la transacción

' tuvieron éxito, así que hace un "commit"

' de la transacción

System.EnterpriseServices.ContextUtil.SetComplete()

End Sub

End Class

B. Aplicación Cliente tipo Windows Form: WinAppOrdersTransactional

Crearemos un nuevo proyecto, que hará uso del WebService:

En el Solution Explorer, cambié el nombre del archivo del formulario de Form1.vb a frmOrdersTransactional.vb:

Además, en el formulario mismo, modifiqué las siguientes propiedades:

(Name) frmOrdersTransactional

Text Órdenes Transaccionales

Nota:

Al cambiar el (Name) del formulario, hay que ir a Solution Explorer, dar click derecho sobre el proyecto WinAppOrdersTransactional, pedir Properties, y en Common Properties, General, Startup Object: pedimos que el proyecto comience con: frmOrdersTransactional.

Referencia al Web Service

Vamos a referenciar el Web Service transaccional para poderlo utilizar en el proyecto cliente.

En el campo de la dirección URL ingresamos la dirección del Web Service:

http://localhost/WebServOrdersTransactional/ServOrdersTransactional.asmx

Y para el Web reference name: decidí ponerle el nombre: webrefOrdersTransactional:

Luego oprimimos Add Reference:


DataSet

Agregaremos un Typed DataSet para ingresar las líneas de la Orden, las cuales serán enviadas al Web Service. En el Solution Explorer, damos click derecho sobre el proyecto WinAppOrdersTransactional, y pedimos un DataSet:

Agregamos un Element que contiene dos Element, para el código del producto ProductID, y para la cantidad ordenada: amount.


Regresamos al formulario y colocamos un DataGrid, que llamaremos: dgOrders, y un botón, que tendrá el nombre (Name): btnProcess, y texto: Procesar

En el ToolBox, escogemos Data y de allí arrastramos un DataSet.

Renombré el control resultante: dsOrders1 a dsOrders.

Para el DataGrid dgOrders, especificamos los siguientes parámetros:

DataSource dsOrders

DataMember Orders

Código

Public Class frmOrdersTransactional

Inherits System.Windows.Forms.Form

(Windows Form Designer generated code)

Private Sub btnProcess_Click( _

ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles btnProcess.Click

Dim oOrdersTransactional As _

New webrefOrdersTransactional.ServOrdersTransactional

oOrdersTransactional.ProcessOrder(Me.DsOrders)

End Sub

End Class

Corrida

Resulta que para el código de producto (ProductID) igual a 3 (Aniseed Syrup), sólo hay 13 unidades disponibles.

Los saldos quedaron iguales:

Ahora probaremos para el producto 3 con la cantidad (amount) número 10:

Hoy sí se efectuó la transacción, restando 15 del 2:Chang para quedar con 2 en UnitsInStock,

y restando 10 del 3:Aniseed Syrup, para quedar con 3 en UnitsInStock.

5. BIBLIOGRAFÍA

LIBROS

Ø RIBAS LEQUERIA, Joan 2003, Web Services (Guías Practicas)

Ø Alonso, 2004 ,Web Services:Conceptos, Arquitectura y Aplicaciones, Springer - German language

Ø Sanjiva Weerawarana, Francisco Curbera, Frank Leymann, Tony Storey, Donald F. Ferguson 2005, Arquitectura de la Plataforma Web Service, Prentice Hall PTR

VIDEOS

Ø http://www.youtube.com/watch?v=sjeLotFrJtk

Ø http://www.youtube.com/watch?v=zpsmw2fFA7s&feature=related

Ø http://www.youtube.com/watch?v=I6y97h7oKc0&feature=related

Ø http://www.youtube.com/watch?v=APsFLEW-JFI&feature=related

Ø http://www.youtube.com/watch?v=kB3jAkjf-JE&feature=related

Ø http://www.youtube.com/watch?v=8L1qNBZdT90&feature=related

Ø http://www.youtube.com/watch?v=b_DcUkNwsZ0&feature=related

Ø http://www.youtube.com/watch?v=1Uo8If2sKPg&feature=related

ANEXOS