WEB SERVICE
El término Web Services describe una forma estandarizada de integraraplicaciones WEB mediante el uso de XML, SOAP, WSDL y UDDI sobre los protocolos de la Internet. XML es usado para describir los datos, SOAP se ocupa para la transferencia de los datos, WSDL se emplea para describir los servicios disponibles y UDDI se ocupa para conocer cuales son los servicios disponibles. Uno de los usos principales es permitir la comunicación entre las empresas y entre las empresas y sus clientes. Los Web Services permiten a las organizaciones intercambiar datos sin necesidad de conocer los detalles de sus respectivos Sistemas de Información.
A diferencia de los modelos Cliente/Servidor, tales como un servidor de paginas Web, los Web Services no proveen al usuario una interfaz gráfica (GUI). En vez de ello, los Web Services comparten la lógica del negocio, los datos y los procesos, por medio de una interfaz de programas a través de la red. Es decir conectan programas, por tanto son programas que no interactúan directamente con los usuarios. Los desarrolladores pueden por consiguiente agregar a los Web Services la interfaz para usuarios, por ejemplo mediante una pagina Web o un programa ejecutable, tal de entregarle a los usuarios un funcionalidad específica que provee un determinado Web Service.
Los Web Services permiten a distintas aplicaciones, de diferentes orígenes, comunicarse entre ellos sin necesidad de escribir programas costosos, esto porque la comunicación se hace con XML. Los Web Services no están ligados a ningún Sistema Operativo o Lenguaje de Programación. Por ejemplo, un programa escrito en Java puede conversar con otro escrito en Pearl; Aplicaciones Windows puede conversar con aplicaciones Unix. Por otra parte los Web Services no necesitan usar browsers (Explorer) ni el lenguaje de especificación HTML.
El modelo de computación distribuida de los Web Services permite la comunicación de aplicación a aplicación. Por ejemplo, la aplicación que procesa las órdenes de compra se puede comunicar con el sistema de inventarios, tal que este último le puede informar a la aplicación de compras cuales ítems deben comprarse por estar bajo su nivel mínimo. Dado el nivel integración que proveen para las aplicaciones, Los Web Services han crecido en popularidad y han comenzado a mejorar los procesos de negocios. De hecho, algunos postulan que los Web Services están generando la próxima evolución de la Web.
XML
- XML es un subconjunto de SGML(Estándar Generalised Mark-up Language),simplificado y adaptado a Internet
- XML no es ,como su nombre puede sugerir, un lenguaje de marcado.
- XML es un meta-lenguaje que nos permite definir lenguajes de marcado adecuados a usos determinados.
Que no es XML
- No es una versión mejorada de HTML
- HTML es una aplicación de SGML por lo tanto de XML
- No es un lenguaje para hacer paginas WEB
- Y sobre todo no es difícil
¿Por qué XML?
- Es un estándar internacionalmente conocido
- No pertenece a ninguna compañía
- Permite una utilización efectiva en Internet para sus diferentes terminales.
Definición
- Especificación para diseñar lenguajes de marcado, que permite definir etiquetas personalizadas para descripción y organización de datos.
¿Para que sirve XML?
- Representar información estructurada en la web (todos documentos), de modo que esta información pueda ser almacenada, transmitida,
procesada, visualizada e impresa, por muy diversos tipos de aplicaciones y dispositivos.
Ventajas de XML
- Fácilmente procesable
- Separa radicalmente el contenido y el formato de presentación
- Diseñado para cualquier lenguaje y alfabeto. (encoding)
Características
- XML es un subconjunto de SGML que incorpora las tres características más importantes de este:
- Extensibilidad
- Estructura
- Validación
- Basado en texto.
- Orientado a los contenidos no presentación.
- Las etiquetas se definen para crear los documentos, no tienen un significado preestablecido.
- No es sustituto de HTML.
- No existe un visor genérico de XML.
Aplicaciones de XML
- Publicar e intercambiar contenidos de bases de datos.
- Formatos de mensaje para comunicación entre aplicaciones (B2B)
- Descripción de metacontenidos.
Documento XML
- Conjunto de datos con sus respectivas etiquetas de marcado XML.
- Se almacena como texto en archivo con extensión .xml.
- Un documento XML puede incluir cualquier flujo de datos basado en texto: un articulo de una revista, un resumen de cotizaciones de
bolsa, un conjunto de registros de una base de datos, etc..
Estructura de un documento XML
- Un documento XML está formado por datos de caracteres y marcado, el marcado lo forman las etiquetas:
Estructura
Componentes de un documento XML
- En un documento XML existen los siguientes componentes:
- Elementos: Pieza lógica del marcado, se representa con una cadena de texto(dato) encerrada entre etiquetas. Pueden existir elementos
vacíos (<br/>). Los elementos pueden contener atributos. - Instrucciones: Ordenes especiales para ser utilizadas por la aplicación que procesa
- Las instrucciones XML. Comienzan por <? Y terminan por ?>.
- Comentarios: Información que no forma parte del documento. Comienzan por <!-- y terminan por -->.
- Declaraciones de tipo: Especifican información acerca del documento:
- Secciones CDATA: Se trata de un conjunto de caracteres que no deben ser interpretados por el procesador:
- Elementos: Pieza lógica del marcado, se representa con una cadena de texto(dato) encerrada entre etiquetas. Pueden existir elementos
Sintaxis de XML
- Representa las normas a seguir para la construcción de documentos XML.
- Estas reglas son dictadas por el organismo W3C (http://www.w3.org/XML). Entre ellas destacan:
- El XML es Case - Sensitive.
- Todo elemento tiene que tener su correspondiente etiqueta de inicio y de cierre, o una sola etiqueta vacía.
- Todo documento, debe haber un elemento (llamado raíz de documento) que contenga a los demás.
- Todos los elementos deberán estar correctamente anidados.
- Todos los valores de los atributos deberán ir entre comillas.
Normas de buena construcción
- La primera letra de los nombre se escribirá en mayúscula
- Los nombres compuestos se escribirán juntos o separados por guión bajo Saca_corchos
- Los elementos han de comenzar por un carácter o “_” no numérico
Normas de buena construcción II
- Existen 2 tipos de construcciones
- Orientado a la presentación
- No orientado a la presentación (recomendable)
¿QUE ES JSON?
JSON (JavaScript Object Notation - Notación de Objetos de JavaScript) es un formato ligero de intercambio de datos. Leerlo y escribirlo es simple para humanos, mientras que para las máquinas es simple interpretarlo y generarlo. Está basado en un subconjunto del Lenguaje de Programación JavaScript,Standard ECMA-262 3rd Edition - Diciembre 1999. JSON es un formato de texto que es completamente independiente del lenguaje pero utiliza convenciones que son ampliamente conocidos por los programadores de la familia de lenguajes C, incluyendo C, C++, C#, Java, JavaScript, Perl, Python, y muchos otros. Estas propiedades hacen que JSON sea un lenguaje ideal para el intercambio de datos.
JSON está constituído por dos estructuras:
- Una colección de pares de nombre/valor. En varios lenguajes esto es conocido como un objeto, registro, estructura, diccionario, tabla hash, lista de claves o un arreglo asociativo.
- Una lista ordenada de valores. En la mayoría de los lenguajes, esto se implementa como arreglos, vectores, listas o sequencias.
Estas son estructuras universales; virtualmente todos los lenguajes de programación las soportan de una forma u otra. Es razonable que un formato de intercambio de datos que es independiente del lenguaje de programación se base en estas estructuras.
En JSON, se presentan de estas formas:
Un objeto es un conjunto desordenado de pares nombre/valor. Un objeto comienza con { (llave de apertura) y termine con } (llave de cierre). Cada nombre es seguido por : (dos puntos) y los pares nombre/valor están separados por , (coma).
Un arreglo es una colección de valores. Un arreglo comienza con [ (corchete izquierdo) y termina con ] (corchete derecho). Los valores se separan por , (coma).
Un valor puede ser una cadena de caracteres con comillas dobles, o un número, o true o false o null, o un objeto o un arreglo. Estas estructuras pueden anidarse.
Una cadena de caracteres es una colección de cero o más caracteres Unicode, encerrados entre comillas dobles, usando barras divisorias invertidas como escape. Un carácter está representado por una cadena de caracteres de un único carácter. Una cadena de carateres es parecida a una cadena de caracteres C o Java.
Un número es similar a un número C o Java, excepto que no se usan los formatos octales y hexadecimales.
VENTAJAS:
- JSON soporta dos tipos de estructuras, una de ellas son objetos que contienen una colección de pares llave-valor y el otro tipo se trata de arrays de valores. Esto proporciona una gran sencillez en las estructuras.
- JSON no tiene espacios de nombres, cada objeto es un conjunto de claves independientes de cualquier otro objeto.
- JSON no necesita ser extensible por que es flexible por sí solo. Puede representar cualquier estructura de datos pudiendo añadir nuevos campos con total facilidad.
- JSON es mucho mas simple que XML, el cual proporciona pesadas tecnologías que le avalan (Scheme, XSLT, XPath).
- JSON es optimista y no requiere de este tipo de tecnologías, confía en el desarrollador.
DESVENTAJAS:
- JSON A diferencia de XML, no existen mecanismos para defini el formato exacto de los mensajes.
- JSON En caso de que se tuviera diversos clientes (AJAX,Flex, aplicaciones de escritorio) contra un mismo servidor es preferible el uso de XML.
¿QUE ES SOAP?
Básicamente SOAP es un paradigma de mensajería de una dirección sin estado, que puede ser utilizado para formar protocolos más complejos y completos según las necesidades de las aplicaciones que lo implementan. Puede formar y construir la capa base de una "pila de protocolos de web service", ofreciendo un framework de mensajería básica en el cual los web services se pueden construir. Este protocolo está basado en XML y se conforma de tres partes:
- Sobre (envelope): el cual define qué hay en el mensaje y cómo procesarlo
- Conjunto de reglas de codificación para expresar instancias de tipos de datos
- La Convención para representar llamadas a procedimientos y respuestas.
El protocolo SOAP tiene tres características principales:
- Extensibilidad (seguridad y WS-routing son extensiones aplicadas en el desarrollo).
- Neutralidad (bajo protocolo de transporte TCP puede ser utilizado sobre cualquier protocolo de aplicación como HTTP, SMTP o JMS).
- Independencia (permite cualquier modelo de programación).
¿QUE ES WSDL?
WSDL es una notación XML para describir un servicio web. Una definición WSDL indica a un cliente cómo componer una solicitud de servicio web y describe la interfaz que proporciona el proveedor del servicio web.
IBM® Integration Bus da soporte a WSDL 1.1, tal como se define en el siguiente documento emitido por World Wide Web Consortium (W3C): Web Services Description Language (WSDL) 1.1. El soporte de IBM Integration Bus para WSDL también se ajusta a Web Services Interoperability Organization (WS-I) Basic Profile 1.1; consulte Web Services Interoperability Organization (WS-I).
Una definición WSDL se divide en varias secciones que especifican la interfaz lógica y los detalles físicos de un servicio web. Los detalles físicos incluyen información de puntos finales, como el número de puerto HTTP y la información de enlaces que especifica cómo se representa la carga útil SOAP y qué transporte se utiliza.
El soporte para WSDL en IBM Integration Bus incluye:
- -La importación de WSDL para crear raíces de mensaje en una aplicación o biblioteca; consulte Importar de WSDL.
- -La generación de WSDL a partir de un conjunto de mensajes; consulte Conjuntos de mensajes: generación de WSDL.
- -El editor WSDL con vistas de diseño gráfico y de texto.
- -El uso de WSDL para configurar nodos en el dominio SOAP; por ejemplo, puede arrastrar WSDL a un nodo, y un cliente puede solicitar el WSDL que se ha utilizado para configurar un nodo SOAPInput. Para obtener más información, consulte Configuración de flujos de mensajes utilizando un WSDL.
- -Cree un servicio basado en WSDL importado. Para obtener más información, consulte Creación de un servicio de integración basado en WSDL.
Al importar o generar WSDL, el WSDL se valida frente a WS-I Basic Profile. Los errores de validación se deben arreglar para poder desplegar la aplicación, biblioteca o el conjunto de mensajes. Los avisos de validación no impiden el despliegue, pero pueden indicar problemas de interoperatividad potenciales. El WSDL validado pasa a ser una parte integral de la aplicación, la biblioteca o del conjunto de mensajes.
El editor WSDL da soporte a una vista de diseño gráfico para que pueda desplazarse desde el WSDL a sus raíces de mensaje asociadas. La aplicación o biblioteca contiene todas las raíces de mensaje (o el conjunto de mensajes contiene todas las definiciones de mensajes) que necesitan los flujos de mensajes que funcionan con el servicio web descrito por el WSDL. Durante el desarrollo, las raíces o definiciones de mensajes dan soporte a la asistencia de contenido ESQL y a la creación de correlaciones. Durante la ejecución, la aplicación, biblioteca o conjunto de mensajes desplegado da soporte a la validación de esquemas en los dominios SOAP, XMLNSC y MRM. En el dominio SOAP, también se realizan comprobaciones respecto al propio WSDL y la información WSDL se incluye en el árbol lógico SOAP.
¿QUE ES UDDI?
UDDI son las siglas del catálogo de negocios de Internet denominado Universal Description, Discovery and Integration. El registro en el catálogo se hace en XML. UDDI es una iniciativa industrial abierta (sufragada por la OASIS) entroncada en el contexto de los servicios Web. El registro de un negocio en UDDI tiene tres partes:
- Páginas blancas - dirección, contacto y otros identificadores conocidos.
- Páginas amarillas - categorización industrial basada en taxonomías.
- Páginas verdes - información técnica sobre los servicios que aportan las propias empresas.
UDDI es uno de los estándares básicos 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 catálogo de registros.
¿QUE ES WSFL?
Web Services Flow Language (WSFL, Lenguaje de Flujo de Servicios Web) 1.0 era un lenguaje de programación XML propuesto por IBM en 2001 para describir composiciones de Web services. El lenguaje consideraba dos tipos de composición. El primer tipo era para describir un proceso de negocio como un conjunto de servicios web y el segundo describía las interacciones entre los socios. WSFL se propuso como una capa sobre Web Services Description Language.
En 2003 IBM y Microsoft combinaron WSFL y Xlang en BPEL4WS y lo enviaron a OASIS para su estandarización. Oasis publicó BPEL4WS como WS-BPEL para adaptarlo a la convención de nombrado de otros estándares WS-*.