Tema 6. Integración web - Departamento de Lenguajes y Sistemas

Anuncio
14/03/2013
Departamento de Lenguajes y
Sistemas Informáticos
BLOQUE II: Integración de Sistemas Software
Integración Web
Tema 6
Arquitectura e Integración de Sistemas Software
Curso 2012/2013
Índice





Mashups
Sindicación de contenidos
Servicios web
Application Programming Interfaces (APIs)
Bibliografía
1
14/03/2013
Índice





Mashups
Sindicación de contenidos
Servicios web
Application Programming Interfaces (APIs)
Bibliografía
Mashups
 Idea intuitiva:
2
14/03/2013
Mashups
 Un mashup (o aplicación web híbrida) es una aplicación que usa y
combina datos, presentaciones y funcionalidad procedentes de
una o más fuentes.
 La nueva aplicación debería proporcionar un valor añadido, no
debería ser sólo una agregación de contenidos.
 El contenido y los elementos de presentación suelen venir en
forma de feeds RSS o Atom, servicios webs o JavaScript con APIs
abiertas.
 Las principales características del mashup son la combinación, la
visualización y la agregación.
Mashups
Diferencias con la integración tradicional
 La Web es el medio de vida natural de los mashups.
 La interfaz de usuario es un componente elemental en un mashup.
 Los mashups suelen ir dirigidos a personas no expertas.
 Los mashups suelen servir para cubrir una determinada necesidad
(de corta duración) y suelen desarrollarse con las tecnologías web
más novedosas y fáciles de usar.
3
14/03/2013
Mashups
Arquitectura habitual: pipes and filters
Presentación
(Vista)
Lógica de aplicación
(Controlador)
Gestión de recursos
(Modelo de datos)
Pipes & Filters
Mashups
Editores
http://pipes.yahoo.com
4
14/03/2013
Mashups
Editores
https://ifttt.com/
Índice





Mashups
Sindicación de contenidos
Servicios web
Application Programming Interfaces (APIs)
Bibliografía
5
14/03/2013
Sindicación de contenido
 Los mecanismos de sindicación hacen que la información de un
sitio web público sea reutilizable por terceros.
 Permite, por ejemplo, consultar noticias de prensa o entradas de
un blog sin necesidad de acudir al sitio web original.
 La datos reciben el nombre de fuente web o web feeds en inglés.
 Las fuentes web suelen codificarse en XML.
Logo de sindicación web
Sindicación de contenido
Formatos
 Really Simple Sindication (RSS)
 Es el formato más extendido.
 Su especificación es conforme a XML 1.0.
 Un documento RSS esta compuesto de un canal (channel) y varios
elementos (ítems).
 No permite indicar el formato del contenido (texto o HTML)
 Atom
 Su especificación es conforme a XML 1.0.
 Un documento Atom está compuesto de un feed que contiene varias
entradas (entry).
 Permite indicar el formato del contenido (texto, HTML, XHTML, etc.)
6
14/03/2013
Sindicación de contenido
Formatos: RSS
Sindicación de contenido
Formatos: Atom
7
14/03/2013
Sindicación de contenido
Formatos: GeoRSS
 GeoRSS
 Estándar emergente para añadir información geográfica a los feeds.
 Permite añadir información sobre puntos, líneas, polígonos, etc.
 Puedes usarse tanto con RSS como con Atom.
http://en.wikipedia.org/wiki/GeoRSS
Sindicación de contenido
8
14/03/2013
Sindicación de contenido
Lectores y suscripciones
Sindicación de contenido
 Es posible integrar información de distintas fuentes web y generar
nuevos feeds añadiendo, recortando o transformando los datos.
 También es posible usar la información de las fuentes para
procesarla de alguna forma. Ejemplo: mostrarla en un mapa.
 Aplicaciones como Yahoo pipes permiten hacer esto de forma
visual.
 Generar feeds es una forma sencilla de permitir que terceros
usen datos de nuestras aplicaciones.
9
14/03/2013
Sindicación de contenido
Índice





Mashups
Sindicación de contenidos
Servicios web
Application Programming Interfaces (APIs)
Bibliografía
10
14/03/2013
Servicios web
 Un servicio web ofrece una interfaz de programación (no de usuario) de
una determinada funcionalidad (servicio) accesible a través de Internet y
basada en estándares W3C.
 Permiten intercambiar información entre aplicaciones software
desarrolladas en lenguajes de programación diferentes y ejecutadas sobre
distintas plataformas. Son una pieza clave para la integración Web.
 Ventajas:
 Facilita la interoperabilidad entre sistemas diversos.
 Uso de protocolos abiertos.
 Inconvenientes:
 Rendimiento bajo si se compara con otros modelos de computación
distribuida.
Servicios web

Acoplamiento débil. Los usuarios de un servicio web no necesitan
conocer sus detalles de implementación, sólo su contrato, es decir,
instrucciones sobre como usarlo.

Enlace dinámico. Las aplicaciones pueden decidir en tiempo de
ejecución que servicio invocar.

Registros. Los servicios web pueden almacenarse en registros que
pueden ser consultados de forma automática.

Atributos no funcionales. Los servicios pueden tener asociados
atributos de calidad (coste, tiempo de ejecución, nivel de seguridad…)
que pueden usarse para decidir que servicio se adapta mejor a
nuestras necesidades.
11
14/03/2013
Servicios web

Composición. Los servicios web se pueden componer para formar
servicios más complejos.
Orquestación vs. Coreografía
Servicios web
Servicios SOAP vs servicios RESTful

Servicios web tradicionales




Son los servicios web clásicos a los que se refiere el W3C en su definición de servicio
web.
La mayoría de documentación y estándares sobre servicios web se refieren a este
tipo de servicios.
Se caracterizan por el uso de WDSL para describir la interfaz pública del servicio
(tipos de datos, formato de mensajes, etc) y SOAP para el intercambio de mensajes
en formato XML.
Servicios web RESTful


Se caracterizan por estar orientados a recursos y usar el protocolo HTTP para
manejar un conjunto restringido de operaciones sobre los recursos.
Son más recientes que los servicios web SOAP pero ampliamente usados en la
actualidad.
Servicios SOAP vs. Servicios RESTful
12
14/03/2013
Índice





Mashups
Sindicación de contenidos
Servicios web
Application Programming Interfaces (APIs)
Bibliografía
Application Programming Interface (API)
 Def. 1: “Conjunto particular de reglas y especificaciones
que puede seguir un programa software para usar servicios
y recursos proporcionados por el programa software que
crea la API” [Shafqat Islam]
 Def. 2: “Especificación basada en código fuente destinada a
ser utilizada por los componentes software como interfaz
para comunicarse entre ellos.” [Wikipedia]
13
14/03/2013
Application Programming Interface (API)
Servicios
Información
sobre cómo
invocar los
servicios
Información
sobre las
posibles
respuestas de
los servicios
Application Programming Interface (API)
¿Por qué desarrollar APIs?
 El desarrollo de aplicaciones pasa a ser un esfuerzo distribuido en el
que pueden participar terceros.
 Favorece la innovación permitiendo que otros piensen en nuevas ideas
en las que sacar partido a la aplicación.
 Reduce costes y tiempo de desarrollo. Otros pueden integrar nuestra
aplicación de forma independiente.
 Puede usarse como estrategia publicitaria.
 Permite nuevos modelos de negocio. Por ejemplo, cobrar por el
número de llamadas a la API.
 Es multiplataforma e independiente del número de usuarios de la API.
14
14/03/2013
Application Programming Interface (API)
Fuente: http://www.slideshare.net/jmusser/open-apis-state-of-the-market-2011 by John Musser. ProgrammableWeb
Application Programming Interface (API)
2013: Más de 8700 APis
Fuente: http://www.slideshare.net/jmusser/open-apis-state-of-the-market-2011 by John Musser. ProgrammableWeb
15
14/03/2013
Application Programming Interface (API)
Fuente: http://www.slideshare.net/jmusser/open-apis-state-of-the-market-2011 by John Musser. ProgrammableWeb
Application Programming Interface (API)
Fuente: http://www.slideshare.net/jmusser/open-apis-state-of-the-market-2011 by John Musser. ProgrammableWeb
16
14/03/2013
Application Programming Interface (API)
Tecnologías
 Existen diversas tecnologías y protocolos para implementar
APIs web. Los más usados son:




Servicios web RESTful.
Servicios web SOAP.
JavaScript.
XML-RPC.
 Los más extendidos hoy en día son los servicios RESTful por
su sencillez y el uso de HTTP como protocolo de aplicación,
ampliamente soportado en cualquier plataforma.
Application Programming Interface (API)
Tecnologías
2013: 63.8%
Fuente: http://www.slideshare.net/jmusser/open-apis-state-of-the-market-2011 by John Musser. ProgrammableWeb
17
14/03/2013
Application Programming Interface (API)
Formato de datos
 Los formatos para el intercambio de datos más utilizados
son XML y JSON.
Application Programming Interface (API)
 Directorio de APIs &
mashups
 Noticias, comunidad,
herramientas de desarrollo.
 8.700 APIs Web
 6,900 mashups
http://www.programmableweb.com/
18
14/03/2013
Application Programming Interface (API)
Aspectos clave
 Las APIs deben ser simples tanto para los usuarios como para los
desarrolladores.
 La calidad de la documentación es fundamental. Deben quedar claro
los servicios disponibles, cómo invocarlos, las posibles respuestas y
formatos de intercambio de datos. Los ejemplos son de gran ayuda.
 Es importante dar un buen soporte a la comunidad de desarrolladores.
Ej. Si un desarrollador tiene una pregunta, ¿cuánto se tarda en darle una
respuesta?
 Los aspectos de seguridad y gestión de errores no deben descuidarse.
 Las APIs suelen empezar pequeñas e internas, y luego crecen hacia
fuera. En algunos casos, la API es el único producto de la empresa.
Índice





Mashups
Sindicación de contenidos
Servicios web
Application Programming Interfaces (APIs)
Bibliografía
19
14/03/2013
Bibliografía
Webber, J., REST in Practice: Hypermedia and
Systems Architecture, O'Reilly, Beijing. 2010
Daignea, R.,Service Design Patterns:
Fundamental Design Solutions for
SOAP/WSDL and RESTful Web Services.
Addison-Wesley Professional. 2011.
Enlaces de interés
 Especificación Atom
http://www.ietf.org/rfc/rfc4287
 Especificación RSS
http://cyber.law.harvard.edu/rss/rss.html
 Tutorial Atom
http://www.atomenabled.org/developers/syndication/
 Atom vs RSS
http://www.intertwingly.net/wiki/pie/Rss20AndAtom10Compared
 Servicios web (W3C)
http://www.w3c.es/Divulgacion/GuiasBreves/ServiciosWeb
20
14/03/2013
Disclaimer and Terms of Use
All material displayed on this presentation is for teaching and personal use only.
Many of the images that have been used in the presentation are Royalty Free
images taken from http://www.everystockphoto.com/. Other images have been
sourced directly from the Public domain, from where in most cases it is unclear
whether copyright has been explicitly claimed. Our intention is not to infringe
any artist’s copyright, whether written or visual. We do not claim ownership of
any image that has been freely obtained from the public domain. In the event
that we have freely obtained an image or quotation that has been placed in the
public domain and in doing so have inadvertently used a copyrighted image
without the copyright holder’s express permission we ask that the copyright
holder writes to us directly, upon which we will contact the copyright holder to
request full written permission to use the quote or images.
21
Descargar