Bienvenidos sean a este post, hoy hablaremos sobre los servicios web si bien la W3C define como servicio web:

Un sistema de software diseñado para interoperatibilidad maquina a maquina sobre una red

W3C

Todos esto trata sobre una API que publica, localiza e invoca a traves de la web, esto significa que una vez desarrolladas son instaladas en un servidor, y otras aplicaciones u otros servicios web pueden descubrirlas por medio de dispositivos conectados al internet o red interna y utilizar sus servicios.

Hasta ahora hemos visto que como norma general se utiliza HTTP como protocolo de transporte de datos y XML para la representacion de los mismos pero que esta practica sea la mas habitual no significa que sea la unica, como alternativa a XML podemos usar RMI (Invocacion de Metodo Remoto), CORBA (Arquitectura de agente de respuesta de objeto comun) o DCOM (Modelo de objeto de componente distribuido), en todos los casos sus siglas corresponden a sus nombres en ingles, algunos de estos metodos de manejo de datos son mas eficientes que XML por lo que se prefiere su uso, otra de las ventajas de usar HTTP es que es un protocolo ampliamente aceptado, se puede segurizar por medio de HTTPS y en general los firewalls tienen abiertos los puertos 80 y 8080 para facilitarnos la conexion, cual es el inconveniente? En realidad no es para el desarrollador sino para el administrador de la red que no podra filtrar este tipo de informacion en la misma.

Como acabamos de hablar el concepto de servicio web es bastante amplia y existen varias propuestas para la misma pero para nuestro caso estudiaremos dos: SOAP y REST, pero antes de ahondar estos conceptos diremos que existen tres enfoques distintos a la hora de definir un servicio web y a esto se lo llama Arquitectura de Servicio Web, veamos los tres enfoques:

Llamadas a procedimientos remotos (RPC)

En este caso enfoca al servicio web como una coleccion de operaciones o procedimientos que pueden ser invocados desde un dispositivo diferente donde se ejecutan, como es una extension directa del paradigma de llamada de funciones resulta sencillo para un programador, se lo conoce como servicio web de primera generacion por ser una de las primeras alternativas implementadas.

Arquitectura orientada a servicios (SOAP)

Si el caso anterior es la interaccion de operacion a esta la consideramos la interaccion de mensaje, por este motivo se lo conoce como servicios orientados a mensaje, los mensajes han de ser definidos en una estricta sintaxis expresada en XML, la ventaja de este concepto sobre otros es que esta mas extendida y es soportada por la mayoria del software de servicios web.

Transferencia de estado representacional (REST)

En los ultimos años este concepto se estuvo popularizando debido a que su caracteristica principal es la simplicidad, en este concepto se utiliza directamente el protocola HTTP por medio de sus operaciones GET, POST, PUT y DELETE por lo tanto este concepto se centra en los recursos a diferencia de los anteriores que se centran en las operaciones o mensajes.

En resumen, hoy hemos hablado un poco sobre el concepto de los servicios web, como es su base, otras alternativas, la descripcion de la arquitectura de la misma y sobre todo de dos de los conceptos que veremos en el proximo post, espero les haya sido util sigueme en Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios