Web Service
?Qu? es un Web Service?
Un Web Service es un componente de software que se comunica con otras aplicaciones codificando los mensaje en XML y enviando estos mensaje a trav?s de protocolos est?ndares de Internet como el HTTP. Es similar a un sitio web que no cuenta con un interfaz de usuario y que da servicio a las aplicaciones y no a las personas. En vez de obtener solicitudes desde el navegador y retornar p?ginas web como respuesta, lo que hace es recibir solicitudes a trav?s de un mensaje formateado en XML desde una aplicaci?n, realiza una tarea y devuelve un mensaje de respuesta tambi?n formateado en XML.
Para la comunicaci?n entre aplicaciones se utiliza SOAP, entre otras, como est?ndar de los mensajes para los Web Services. Un mensaje SOAP se parece mucho a una carta: es un sobre que contiene una cabecera con la direcci?n del receptor del mensaje, un conjunto de opciones de entrega (tal como la informaci?n de encriptaci?n), y un cuerpo o body con la informaci?n o data del mensaje.
Creando una capa de Web Services sobre una aplicaci?n corporativa existente, las organizaciones pueden permitir que sistemas externos puedan invocar las funciones de la aplicaci?n a trav?s de Internet (o una intranet corporativa) sin tener que modificar la aplicaci?n misma. Por ejemplo, varias compa??as est?n hoy en d?a creando Web Services que act?an como front end para aplicaciones de entrada de ?rdenes que est?n residentes internamente en un mainframe. Estas compa??as permiten a los sistemas de compras de sus clientes enviar ?rdenes de compra a trav?s de la Internet. Poner una capa de web services sobre las aplicaciones existentes es una soluci?n muy interesante para integrar las aplicaciones desarrolladas por los diferentes departamentos y as? reducir los costos de integraci?n.
Requisitos de un Web Service
- Interoperabilidad: Un servicio remoto debe permitir su utilizaci?n por clientes de otras plataformas.
- Amigabilidad con Internet: La soluci?n debe poder funcionar para soportar clientes que accedan a los servicios remotos desde internet.
- Interfaces fuertemente tipadas: No deber?a haber ambig?edad acerca del tipo de dato enviado y recibido desde un servicio remoto. Los tipos de datos definidos en el servicio remoto deben poderse corresponder con los tipos de datos de la mayor?a de los lenguaje de programaci?n.
- Posibilidad de aprovechar los est?ndares de Internet existentes: La implementaci?n del servicio remoto deber?a aprovechar est?ndares de Internet existentes tanto como sea posible y evitar reinventar soluciones a problema que ya se han resuelto.
- Soporte para cualquier lenguaje: La soluci?n no deber?a ligarse a un lenguaje de programaci?n. Un cliente deber?a ser capaz de implementar un nuevo servicio Web existente independientemente del lenguaje de programaci?n en el que se halla escrito el cliente
- Soporte para cualquier infraestructura de componente distribuida: La soluci?n no debe estar ligada a una infraestructura de componentes en particular. No se beber?a requerir el comprar, instalar o mantener una infraestructura de objetos distribuidos, solo construir un nuevo servicio remoto, utilizar un servicio existente.
Creo que con esto se puede tener una amplia noci?n del funcionamiento de un Web Service y su utilizaci?n.