Iniciando con WebServices

La primera vez que escuché sobre el WEBSERVICE fue el año 2016 mientras trabajaba como consultor para una empresa de seguridad, en la licitación pública del INPEC para el servicio de Brazaletes Electrónicos destinados a los beneficiados con la medida de Casa por Cárcel. Dentro de las especificaciones técnicas estaban la creación de varios WEBSERVICES para acceder a la información de la base de datos vía Web, pero dejaba abierto a las necesidades futuras del INPEC, luego cómo se estiman los tiempos, recursos y costos de un desarrollo?

oracle-stands

La famosa base de datos era Oracle (me acuerdo del profesor cuando nos contó su experiencia en un showroom de la marca), y finalmente después de haber consultado con representantes de la marca, buscado empresas para desarrollo del software y esperar que el proceso no se cayera – pues INPEC = Corrupción, la prensa del momento solo hablaba de los problemas del servicio de los famosos brazaletes y decidieron que el riesgo era muy alto y no se presentarían… finalmente el proceso se declaró desierto… yo no recibí ningún pago pero aprendí una nueva palabra: WebService.

¿Qué es un WebService?

webserv1

Dentro de lo que consulté había una explicación sencilla, una página web como Despegar.com en dónde se consultan los vuelos disponibles y sus precios – algo que yo hago consultando las páginas web de CADA aerolínea que realiza el trayecto… funciona bien en rutas nacionales pues son máximo 4 las que cubren cada ruta. Pero decidí probar BogotáMadrid para la que sé que cubren en vuelo directo Avianca, Iberia y Air Europa. El WebService en Despegar.com hizo las mismas consultas entre páginas web, pero incluyó Air Canada, Latam, Air France, KLM, Lufthansa, American Airlines, Delta, United Airlines, Aerolíneas Argentinas, Aeromexico, Copa Airlines y hasta Turkish Airlines… que rico ir hasta Estambul y después devolverse a Madrid, o esperar 11 horas en un aeropuerto para cambiar de avión; el WebService incluye mucha información inútil, como que no es muy inteligente el asunto.

Lo cierto es que explicaban cómo el WebService consultaba los diferentes sitios web de las aerolíneas (accediendo a sus bases de datos) mediante Consultas y Respuestas, y como resultado me presenta una hoja de estilo tabular donde puedo filtrar y escoger la información que me es útil, esto funciona para muchas cosas; desde los resultados de la Champions League hasta conseguir un componente electrónico en Octopart.com todo se hace mediante WebServices.

Ahora si, definiciones…

El WebService es un Servicio ofrecido por un dispositivo electrónico a otro dispositivo electrónico, que se comunican entre sí usando el World Wide Web (la red), en lo que se llama comunicación machine-to-machine, transfiriendo archivos entendibles por la máquina (machine-readable) en formatos XML y/o JSON. En la práctica un WebService típico provee una interfase web orientada a objetos para acceder a bases de datos, usadas (consumidas) por otro WebServer o una aplicación móvil, que proveen la interfase al usuario final. Otra aplicación común ofrecida al usuario final puede ser un Mashup, donde el WebService consume o utiliza varios WebServices en diferentes servidores, y los compila en una única interfase de usuario.

M2M-Technology-IoT

El W3C (World Wide Web Consortium que es la organización internacional que define los estándares para el World Wide Web) define el WebService como:

Un sistema de software diseñado para soportar la interoperabilidad en las interacciones máquina-a-máquina sobre una red.

Los WebServices pueden utilizar SOAP (Simple Object Access Protocol) sobre protocolo HTTP, permitiendo interacciones en Internet. Más allá del SOAP sobre HTTP, los WebServices pueden implementarse en otros mecanismos de transporte más fiables como FTP (File Transfer Protocol). En 2002 el W3C definió la Arquitectura de Servicios del WebService como:

El WebService ha de tener una interfaz descrita en un formato procesable por máquina (machine-processable) específicamente WSDL (WebService Description Language). Otros sistemas que interactúen con el WebService de manera preestablecida por su descripción usando mensajes SOAP, típicamente usando HTTP con serialización XML en conjunto con otros estándares Web.

La definición se amplió en 2004 al identificar dos clases o tipos de WebServices:

  • WebServices que cumplen o son compatibles REST (Representational State Transfer), en los que el propósito inicial es manipular las representaciones XML de los recursos Web usando operaciones Stateless (en las que ninguna información es retenida por el emisor o receptor).
  • WebServices arbitrarios, en las que el servicio puede exponerse a un conjunto arbitrario de operaciones.

Es entonces, es un conjunto de protocolos y formatos estándar que sirven para intercambiar datos entre aplicaciones de software, desarrollados en lenguajes de programación diferentes, y ejecutadas sobre cualquier plataforma, los servicios están disponibles en la web para intercambiar datos en internet.

De otra manera, un WebService es una función que diferentes servicios o equipos utilizan; es decir, solo se envían parámetros al servidor (lugar donde está alojado el WebService) y éste responderá la petición. Algunas ventajas de utilizar servicios webs en las aplicaciones destacan las siguientes:

  • Aportan interoperabilidad entre aplicaciones de software independientemente de sus propiedades o de las plataformas sobre las que se instalen.
  • Los servicios Web fomentan los estándares y protocolos basados en texto, que hacen más fácil acceder a su contenido y entender su funcionamiento.
  • Al apoyarse en HTTP, los servicios Web pueden aprovecharse de los sistemas de seguridad firewall sin necesidad de cambiar las reglas de filtrado.
  • Permiten que servicios y software de diferentes compañías ubicadas en diferentes lugares geográficos puedan ser combinados fácilmente para proveer servicios integrados.
  • Permiten la interoperabilidad entre plataformas de distintos fabricantes por medio de protocolos estándar y abiertos. Las especificaciones son gestionadas por una organización abierta, la W3C, por tanto no hay secretismos por intereses particulares de fabricantes concretos y se garantiza la plena interoperabilidad entre aplicaciones.

De manera que si hubiera sabido o entendido esto el año pasado, hubiera sido más fácil contactar los ingenieros de sistemas que elaborarían las aplicaciones (lo llamaban consumir WebServices); y estos a su vez me hubieran indicado que tocaba escribir dichas aplicaciones tanto en el servidor como en el cliente – nosotros pensábamos que solo en el cliente, pies Oracle la “maravilla” ya las incorporaba – y con eso, hubiera sido un lío terrible a la hora de ejecutar el proyecto, bueno ahora lo entiendo mejor pero, ya no hay proyecto – esa es mi definición de suerte: Conocimiento o habilidad + Oportunidad… esa vez fue mala suerte.

Al leer o ver videos sobre el tema, aparecen una serie de acrónimos que deben ser aclarados o definidos antes de seguir haciendo los ejemplos:

Mashup: una forma de integración y reutilización, se da cuando una aplicación web es usada o llamada desde otra aplicación, con el fin de reutilizar su contenido y/o funcionalidad. El uso en otra(s) fuente(s), para crear nuevos servicios simples, visualizado en una única interfaz gráfica diferente. Por ejemplo, se pueden combinar las direcciones y fotografías de las ramas de una biblioteca con un mapa de Google Maps para crear un mashup de mapa.

El término implica integración fácil y rápida, a menudo usando varias API abiertas y fuentes de datos para producir resultados enriquecidos, que no fueron necesariamente el motivo original de producir la fuente primaria de datos.

HTTP: Hypertext Transfer Protocol es un protocolo de aplicación para sistemas de información distribuidos, colaborativos y de hypermedios (medio de información no linear que contiene gráficos, audio, video, texto y enlaces o hyperlinks). HTTP es el fundamento de las comunicaciones de datos en el World Wide Web, mediante un texto estructurado usa enlaces lógicos (hyperlinks) entre diferentes nodos que contienen textos. La versión HTTP/2 se estandarizó en 2015 y es soportada por los principales navegadores.

HTTP funciona como un protocolo de petición/respuesta (request/response) dentro del modelo cliente-servidor, el navegador Web es el cliente y la aplicación en el Website es el servidor.

XML: Extensible Markup Languages, un lenguaje de marcas o de marcado,  es una forma de codificar un documento que, junto con el texto, incorpora etiquetas o marcas que contienen información adicional acerca de la estructura del texto o su presentación. XML permite definir la gramática de lenguajes específicos  para estructurar documentos grandes. XML da soporte a bases de datos, siendo útil cuando varias aplicaciones deben comunicarse entre sí o integrar información.

XML no ha nacido únicamente para su aplicación en Internet, sino que se propone como un estándar para el intercambio de información estructurada entre diferentes plataformas. Se puede usar en bases de datos, editores de texto, hojas de cálculo y casi cualquier cosa imaginable.

XML es una tecnología sencilla que tiene a su alrededor otras que la complementan y la hacen mucho más grande, con unas posibilidades mucho mayores. Tiene un papel muy importante en la actualidad ya que permite la compatibilidad entre sistemas para compartir la información de una manera segura, fiable y fácil.

Ventajas del XML

  • Es extensible: Después de diseñado y puesto en producción, es posible extender XML con la adición de nuevas etiquetas, de modo que se pueda continuar utilizando sin complicación alguna.
  • El analizador es un componente estándar, no es necesario crear un analizador específico para cada versión de lenguaje XML. Esto posibilita el empleo de cualquiera de los analizadores disponibles. De esta manera se evitan bugs y se acelera el desarrollo de aplicaciones.
  • Si un tercero decide usar un documento creado en XML, es sencillo entender su estructura y procesarla. Mejora la compatibilidad entre aplicaciones. Podemos comunicar aplicaciones de distintas plataformas, sin que importe el origen de los datos.
  • Transformamos datos en información, pues se les añade un significado concreto y los asociamos a un contexto, con lo cual tenemos flexibilidad para estructurar documentos.

XML busca dar solución al problema de expresar información estructurada de la manera más abstracta y reutilizable posible, esto quiere decir que se compone de partes bien definidas, y que esas partes se componen a su vez de otras partes.

JSON: JavaScript Object Notation, es un formato de texto ligero para el intercambio de datos, es un subconjunto de la notación literal de objetos de JavaScript aunque hoy, debido a su amplia adopción como alternativa a XML, se considera un formato de lenguaje independiente. Una de las ventajas de JSON sobre XML como formato de intercambio de datos, es que es mucho más sencillo escribir, un texto JSON se puede analizar fácilmente usando la función eval() de JavaScript. Los tipos de datos básicos de JSON son:

  • Number: un número decimal con signo que puede tener una parte fraccional y usar la notación exponencial (E), pero el formato no hace distinción números enteros y de punto flotante pues JSON usa el tipo punto-flotante de doble precisión para todos sus valores numéricos.
  • String: una secuencia de cero o mas caracteres Unicode, una String está delimitada mediante comillas dobles.
  • Boolean: valor que puede ser Falso o Verdadero.
  • Array: una lista ordenada de cero o mas valores, cada uno de ellos puede ser de cualquier tipo. Los Array usan notación de paréntesis cuadrado y separador coma para los elementos.
  • Object: una colección no ordenada de pares nombre-valor (name–value), donde los nombres o claves son strings. Los objetas representan arreglos asociativos y están encerrados entre corchetes y separados por coma.
  • Null: Un valor vacío usa la palabra null.

 

 

 

 

http://culturacion.com/que-es-y-para-que-sirve-un-web-service/

https://msaffirio.wordpress.com/2006/02/05/%C2%BFque-son-los-web-services/

https://www.youtube.com/watch?v=oTzNRv6X51o&ab_channel=AutomationStep-by-Step-RaghavPal

https://www.youtube.com/watch?v=8obLidLs4Nc&ab_channel=sabinadicto

https://en.wikipedia.org/wiki/XML

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s