12-mayo-2008

Hoy empezamos tema nuevo: el tema de los **Servicios Web**

Se trata simplemente de un protocolo para intercambiar datos a través de Internet. Todos los servicios web están estructurados en torno a xml en mayor o menor medida. Muchas veces los servicios web están en el middleware (en medio). Lo importante es que permiten comunicar un cliente en java por ejemplo con un servidor en otro lenguaje. Los servicios web sonm básicamente servicios que envían y reciben mensajes por lo que tienen un: - Escuchador de servicio: service listener - Service proxy: toma algún tipo de acción En general los servicios web no tiene que estar reducidos a un protocolo cliente-servidor sino q tb pueden ser peer to peer o n-fases(n-tier). Se busca integración dinámica que en tiempo de ejecución pueden cambiar diferentes partes, por ejemplo un servicio de cotizaciones de bolsa que puede cambiar o estar disponible o no. También están los SOA que son servicios débilmente acoplados que usan SOAP ( protocolo simple de acceso a objetos). El lenguaje qdescribe ese interfaz es WSDL. Todos estos servicios se agrupan en la pila de protocolos de los servicios web que tiene 4 capas: - Capa de transporte: por ejemplo el protocolo XMPP que usa Gmail, o Twitter. - Capa de mensajería: Cómo se van a empaquetar un mensaje, que generalmente es XML o JAML (parecido a JSON). - Capa de descripción: Cómo se hacen las peticiones - Capa de descubrimiento: sirve para buscar cuáles son los servicios web con una funcionalidad determinada.


 * HTTP**

En HTTp siempre se habla de recursos. Por ejemplo está la petición HEAD que devuelve la cabecera donde podemos ver la fecha de actualización.HTTP funciona simplemente como un cliente-servidor. Todo esto se utilizan en aplicaciones REST, las cuales codifican la petición en un URL y la respuesta puede ser de muchas formas diferentes. REST es popular porque es muy fácil construir la petición, lo que le da rapidez pero le resta flexibilidad. Como ejemplo, vemos la interfaz de Twitter que es totalmente RESTful.