203
1 Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios 15 de Julio 2010, 9:30-13:30 Garaia Enpresa Digitala, Goiru Kalea 1, Arrasate-Mondragon Dr. Diego Lz. de Ipiña Glz. de Artaza [email protected] http://paginaspersonales.deusto.es/dipina

Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

Embed Size (px)

DESCRIPTION

Jornada de 3,5 horas hablando sobre el concepto de Internet del Futuro y centrándose en la innovación en Web 3.0 (innovación en navegadores, buscadores, la Web como plataforma: RIA y WOA), Cloud Computing (AWS y Google App Engine) y Web Semántica (con minúsculas y Mash-up Semánticos)

Citation preview

Page 1: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

1

Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

15 de Julio 2010, 9:30-13:30 Garaia Enpresa Digitala, Goiru Kalea 1, Arrasate-Mondragon

Dr. Diego Lz. de Ipiña Glz. de [email protected]

http://paginaspersonales.deusto.es/dipina

Page 2: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

2

Agenda

• 09:30-10:05 La Internet del Futuro– Limitaciones de la Internet actual– La Internet del Futuro: definición, objetivos y desafíos– Los pilares de la Internet del Futuro– Internet de los Servicios y de las Cosas

• 10:05-11:15 La Web del Futuro– Evolución de la Web– ¿Qué es la Web 3.0?– El futuro de los navegadores web– El futuro de los buscadores web– La Web como Plataforma de Servicios

• 11:15-11:45 Descanso

Page 3: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

3

Agenda• 11:45-12:30 Cloud Computing

– Definición– Manifestaciones de Cloud Computing: SaaS, PaaS y IaaS– Aplicaciones Cloud más significativas– Plataformas Cloud: Google App Engine– Infraestructura Cloud: Amazon Web Services

• 12:30-13:15 Web Semántica– ¿Qué es la Web Semántica?– Poniendo en práctica la Web Semántica: web semántica con minúsculas– Lenguajes de anotación semántica: RDF, OWL, RDFa, GRDDL, etc.– Los mash-ups web vs. Mash-ups semánticos

• 13:15-13:30 Conclusión y Preguntas– Resumen de lo revisado– Sesión de preguntas y respuestas

Page 4: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

4

• Internet tiene más de 1500 millones de usuarios – Es un éxito comunicando personas y sistemas de información

• PERO … – ha crecido mucho más allá de sus expectativas y objetivos de diseño

en los 70s:• Varios parches han permitido aplicaciones novedosas sin cambiarse su

arquitectura subyacente– debe superar sus limitaciones tecnológicas para usarse como una

infraestructura global crítica• Las aplicaciones web del futuro requerirán más movilidad, seguridad,

ancho de banda, robustez e interactividad

Limitaciones de la Internet Actual (1)

Page 5: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

5

• Varios “parches” han sido desarrollados y desplegados para permitir a Internet hacer frente a las demandas incrementales de conectividad y capacidad

• La Internet actual ha alcanzado un punto de saturación para alcanzar las expectativas funcionales del usuario y los desafíos tecnológicos en tiempo y precio– En términos de seguridad, escalabilidad, movilidad, disponibilidad o

aspectos socioeconómicos

Limitaciones de la Internet Actual (2)

Page 6: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

6

¿Qué es la Internet del Futuro?• Término que resume los esfuerzos para progresar a una

mejor Internet, bien mediante:– Pequeños pasos evolutivos incrementales o– Un rediseño completo (clean slate) y nuevos principios arquitectónicos

• Agentes clave:– Global Environment for Network Innovations (GENI):

http://www.geni.net/• Más basado en redes

– Proyecto AKARI en Japón, http://akari-project.nict.go.jp/eng– Future Internet – http://www.future-internet.eu/

Page 7: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

7

Misión de la Future Internet (FI)

• Ofrecer a todos los usuarios un entorno seguro, eficiente, confiable y robusto, que: – Permita un acceso abierto, dinámico y

descentralizado a la red y a su información y– Sea escalable, flexible y adapte su rendimiento a

las necesidades de los usuarios y su contexto

Page 8: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

8

Visión de la Internet del Futuro

Page 9: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

9

Arquitectura de la Internet del Futuro

Page 10: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

10

Blend Declaration

• “A significant change is required and the European Internet scientific and economic actors, researchers, industrialists, SMEs, users, service and content providers, now assert the urgent necessity to redesign the Internet, taking a broad multidisciplinary approach, to meet Europe’s societal and commercial ambitions”– http://www.future-internet.eu/fileadmin/documents/bled

_documents/Bled_declaration.pdf

Page 11: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

11

La Internet del Futuro en el 7º PM

Page 12: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

12

Enfoques Evolutivo / Revolucionario (Clean-Slate)

• Dos enfoques para hacer frente a los desafíos de Internet del Futuro:– Evolutivo – se basa en la evolución de la Internet actual para dar lugar a

soluciones pragmáticas y viables para el despliegue comercial– Revolucionario – empieza desde cero para eliminar restricciones de diseño de

la Internet actual• Necesario distinguir entre investigación y despliegue clean-slate

– La investigación clean-slate debe alimentar la evolución de Internet

• Ambos enfoques están dirigidos a facilitar la visión de Future Internet y deberán ser sincronizados

Page 13: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

13

Los Pilares de la Internet del Futuro • La Internet del Futuro consta de 4 pilares apoyados

en una nueva infraestructura de red como base:– Internet Por y Para la Gente– Internet de los Contenidos y del Conocimiento– Internet de los Servicios– Internet de las Cosas

Page 14: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

14

Base y Pilares de la Internet del Futuro

• Tanto la base como los pilares de la Internet del Futuro son mutuamente dependientes– Technology pull la aparición de nuevos servicios y aplicaciones supone

un requisito de nueva infraestructura que los posibilite– Technology push nuevas tecnologías e infraestructura abren nuevas

oportunidades para crear nuevos servicios y aplicaciones

• Aplicaciones de nueva generación + Mejor infraestructura de soporte = FUTURE INTERNET

Page 15: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

15

Requisitos de la Future Internet

1. Enrutamiento y direccionamiento escalable y dinámico2. Diagnosis y gestionabilidad de recursos y tráfico de datos3. Seguridad, privacidad, confianza y contabilidad4. Disponibilidad, ubicuidad y simplicidad5. Adaptación y evolución de entornos heterogéneos, contenidos, contexto y

necesidades de aplicaciones (vehiculares, industriales, vida)6. Movilidad independiente de sistema operativo, aplicación o máquina7. Búsqueda/localización, selección, composición y adaptación8. Más allá de la comunicación digital: semántica (inteligibilidad de cosas y

contenidos), háptico, emocional, etc. 9. Sostenibilidad energética y económica

Page 16: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

16

Desafíos Técnicos Clave• Internet by and for People: acomodar las expectativas de la gente y comunidad

teniendo en cuenta su nivel cultural (acceso universal a información)

• Internet of Contents and Knowledge: acceso mediante medios avanzados de búsqueda e interacción a contenido multimedia (3D y realidad virtual) creado, compartido y manipulado incluso por no profesionales.

• Internet of Things: objetos autónomos sensibles al contexto capaces de generar código y comportamiento controlado por humanos, explotando la comunicación punto a punto inspirada en el modo de comunicación de personas.

• Internet of Services: los “consumidores” de servicios buscan la interactividad perfecta en contexto, es decir, permanente (sin límites de interacción), directa (sobre el servicio que usa), transparente (usando distintos dispositivos) y confiable.

Page 17: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

17

Infraestructura Base• Infraestructura de red que soporta los pilares y mantiene los requisitos de

capacidad y rendimiento resultantes de la Internet del Futuro• Permite usar la Internet como una infraestructura común para interconectar

más que ordenadores– sensor networks, dispositivos móviles, wearables, M2M, RFID and so on .

Page 18: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

18

Desafíos de la Fundación de Red

• La nueva fundación de red (Internet of Networks) debe hacer frente a aspectos de:– Seguridad, privacidad y confianza– Contabilidad– Gestionabilidad y diagnosis– Disponibilidad (mantenimiento y robustez)– Escalabilidad– Movilidad– Heterogeneidad (dispositivos, entornos, aplicaciones, redes)

Page 19: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

19

Internet Por y Para la Gente

• Nueva visión del usuario en Internet que implica:– Mejor experiencia de usuario: desarrollo de nuevos interfaces

ergonómicos y modelos de interacción multi-modal– Usuarios activos (prosumers): nuevas herramientas que permitan a

los usuarios finales crear y compartir servicios personalizados– Sensible al Usuario y Contenido: personalización de contenido y

servicios de acuerdo al contexto y preferencias personales– Conocimiento de usuarios: extraer información de los usuarios,

monitorizar su comportamiento sin comprometer su privacidad

Page 20: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

20

Desafíos de la Internet por y para la Gente

1. Saber más del usuario – conociendo sus hábitos y necesidades para diseñar mejor las aplicaciones, interfaces y servicios futuros– Conocimiento de usuarios – los servicios y la web deberían ser adaptables y

personalizables al usuario– Consciencia del usuario y del conocimiento – para generar sistemas de

recomendación, para la web móvil y los servicios sensibles a la localización

2. Dar más poder al usuario – más y mejores servicios personalizados y creados por los propios usuarios (enfoque Do It Yourself – DIY)

3. Mejorar la experiencia de usuario – nuevas interfaces ergonómicas y mecanismos de interacción incluyendo multi-modalidad y combinación y adaptación semántica de la información desde diferentes fuentes

Page 21: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

21

Internet de los Contenidos y del Conocimiento

• Nueva visión del contenido en Internet que implica:– Nuevos dispositivos/players: dispositivos multimedia con más

funcionalidad integrada, escalables, auto-configurables, programables– Aplicaciones multimedia sociales: software y herramientas para

integrar contenidos multimedia orientados a relaciones sociales. – Contenido digital: herramientas para crear contenidos por el propio

usuario y su distribución a través de diferentes localizaciones. – Contenido etiquetado semánticamente: para permitir que las

aplicaciones puedan procesar información de modo inteligente– Inteligencia cognitiva: la evolución de la web a Web 3.0 permitirá

motores de búsqueda multimedia avanzados.

Page 22: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

22

Desafíos de la Internet de los Contenidos y Conocimiento

• Generación y procesamiento de contenido y su transformación en información útil, teniendo en cuenta su relación con el usuario:

1. Contenido digital inteligente – información comprensible disponible al usuario, incluyendo tanto datos (esencia) como metadatos (facilitando su búsqueda, procesamiento, consumo, etc.)

2. Aplicaciones multimedia distribuidas sensibles al contexto – los prosumers permitirán una selección automática de contenidos, sin importar ya tanto cómo originariamente fueron provistos los contenidos

3. Nuevos dispositivos de usuarios y terminales ubicuos – los usuarios deben poder acceder a contenido allí donde estén, desde cualquier terminal y sin importar los cambios de terminal que efectúen.

Page 23: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

23

Ejemplo Internet de la Gente y Contenidos

Page 24: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

24

Internet de las Cosas

• Red universal de objetos interconectados y direccionables basada en protocolos de comunicación estándar.– IoT exhibirá un alto nivel de heterogeneidad, combinando objetos de

distinta funcionalidad, tecnología o campos de aplicación.– Protocolos semánticos noveles serán desarrollados para permitir a IoT

escalar y coordinar a los millones de objetos que nos rodean– RFID y redes de sensores proporcionan un mecanismo de bajo coste y

robusto de identificación y sensibilidad al contexto• El uso de Internet pasará de modelo request/reply a push-and-process

Page 25: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

25

Internet de las Cosas

Page 26: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

26

Co

mp

lex

ity

/ V

alu

e

time

Sources: Siemens CT / STA / CD S, Mitsubishi Electric Research* electronic Product Code

• Temperature monitoring of food

• Tire pressure• Indoor location

sensing• Optical inventory

tags with photo sensors

• Seamless real-time material and process control

• Documentation of total product life-cycles

• Permanent inventory

• Real-time localization on item level

• Protection of trademarks

• Terrorism combat• Event management

(VIP, Ticketing)• Intelligent clothes

ePC* Objects Data Objects

Sensing Objects

Acting Objects

Interacting Objects

• Signaling of use-by date

• Automatic re-order process and pricing

• Alert for health risk

• Advanced announcement of delivery goods

• Pervasive computing

• Wearable computing• Smart dust• Machine-to-Machine

(M2M) communication

• Situation / Localization based services

Evolución de las Aplicaciones RFID

Page 27: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

27

¿Es IoT ya una Realidad?

• Trojan room coffee machine, Arduino, tiki tag, nabaztag, chumby, forecast umbrella, Ceiva frame

Page 28: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

28

Desafíos de Internet de las Cosas

1. Procesar grandes cantidades de información de “cosas conectadas” y ofrecer servicios en respuesta

2. Investigar en nuevos modos y mecanismos de encontrar, recuperar y transmitir datos dinámicamente– Descubrimiento de datos sensoriales — en tiempo y espacio– Comunicación de datos sensoriales: consultas complejas (síncronas),

publish/subscribe (asíncronas)– Procesamiento de gran variedad de streams de datos sensoriales:

correlación, agregación y filtrado

3. Dimensión ética y social: mantener el equilibrio entre personalización, privacidad y seguridad

Page 29: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

29

Adapted from SAP Research, 2008, and SEEKDA, 2008

Una multitud de servicios IT conectados, que son ofrecidos, comprados,

vendidos, utilizados, adaptados y compuestos por una red universal de

proveedores, consumidores y agregadores de servicios o brokers

- resultando en -una nueva manera de ofrecer, utilizar, y

organizar funcionalidad soportada por IT

Internet de los Servicios

Page 30: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

30

Internet de los Servicios

• Define cómo los servicios serán provistos y operados en la Internet del Futuro– http://services.future-internet.eu/index.php/Main_Page

• Tres principales áreas de investigación:1. Internet-scale service oriented computing –permite el acceso a

recursos computacionales, datos o software, como servicios2. Acceso a servicios contextualizado, proactivo y personalizado –

context-awareness, interacción multi-modal, end-user empowerment, colaborativo

3. Orquestación de servicios y servicios base – diferentes capas de servicios, desde servicios de infraestructura a servicios específicos con interfaz de usuario.

Page 31: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

31

Arquitectura de la Internet de los Servicios

Page 32: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

32

Campos de Actuación de la Internet de los Servicios

• Cloud computing: virtualización de servicios y optimización de recursos tanto en capacidad de procesamiento como almacenamiento

• Open service platforms: modularidad de servicios para facilitar su integración por usuarios finales

• Autonomic computing: sistemas autogestionados• Green IT: optimización del consumo energético

Page 33: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

33

Desafíos de la Internet de los Servicios

1. Permitir el acceso a servicios en base a las características técnicas (localización IP o identificador) de servicios web, pero también en base a información contextual (e.j. usando contexto geográfico o de negocio).

2. Los servicios deben ser buscados, identificados y compuestos en componentes de procesos de negocio

3. Progresar hacia la “interactividad perfecta” de los consumidores:– Permanente – interactividad sin límites temporales– Transparente – el consumidor se concentra en los beneficios del servicio (en el qué)

permitiendo la movilidad del usuario entre diferentes dispositivos sin interrupción– Sensible al contexto – la interacción se adapta al contexto incluyendo características de

los dispositivos, localización, preferencias de usuarios o sus redes sociales– Enriquecedor – los usuarios configuran la manera en la que acceden a los servicios y– Confiable – los usuario confían en que sus interacciones con servicios son seguras

Page 34: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

34

Requisitos No Funcionales de Future Internet

• Contabilidad• Seguridad • Privacidad• Disponibilidad

(mantenimiento y robustez)• Gestionabilidad y diagnosis• Movilidad y nomacidad

• Accesibilidad• Apertura • Transparencia (el usuario

final/aplicación solamente conocen el servicio final)

• Neutralidad

Page 35: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

35

Propiedades de la Internet del Futuro

• Distribuida, automatizada, y autónoma

• Escalable (escalabilidad en el direccionamiento)

• Robustez y estabilidad• Generalidad (soportar muchos

tipos de tráfico independientemente de las divisiones de infraestructura)

• Flexibilidad (soportar muchos modelos socio-económicos y operacionales)

• Simplicidad• Evolución: capacidad de crecer y

ser extendida• Heterogeneidad (acceso

cableado e inalámbrico)• Sostenible con el entorno (green

computing)

Page 36: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

36

Proyectos del VII Programa Marco Afrontando Desafíos de FI

• Un listado detallado de proyectos en curso en el tema de Future Internet:– http://www.future-internet.eu/activities/fp7-proje

cts.html

Page 37: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

37

La Web del Futuro

• Web Semántica:o Las máquinas entienden el contenido que han estado alojando y pueden

obtener información de la semántica de los documentoso Tecnologías: XML, RDF, SPARQL, OWL, µFormats...

• Web Ubicua:o Provee una framework para exportar capacidades de coordinación de

dispositivos a las aplicaciones webo Pretende mejorar las capacidades de los navegadores para habilitar

nuevos tipos de aplicaciones contextualeso Conectar un móvil con cámara con una impresora cercana, usar un móvil para

dar una presentación en un proyector inalámbrico, etc.

• Web Semántica + Web Ubicua = ¡Web 3.0 y más allá!

Page 38: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

38

La Evolución de la Web

Page 39: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

39

La Evolución de la Web• Según Nova Spivack, el desarrollo de la Web se mueve en ciclos de 10 años:

– En la 1ª década, todo el desarrollo centrado en la infraestructura de la Web. • Los programadores crearon los protocolos y lenguajes que utilizamos en la Web actual

– En la 2ª década, el foco se ha movido al front end y comenzó la era Web 2.0• Ahora, se utilizan páginas Web como plataformas para otras aplicaciones. • Se crean mash-ups y experimenta con nuevos modos de hacer la web más interactiva • Web 2.0: web social y web como plataforma estamos al final del ciclo!!

– El 3er ciclo será la Web 3.0, y el foco será de nuevo el back-end • Los programadores redefinirán la infraestructura de Internet para dar apoyo a las avanzadas

capacidades de los navegadores y buscadores Web 3.0. – La 4ª y subsiguientes fases corresponderán a la Web 4.0 y Web X.0

• Se volverá a dar importancia al front-end, nuevas y novedosas aplicaciones harán uso de la infraestructura generada en la Web 3.0

• Fuente: – http://www.howstuffworks.com/framed.htm?parent=web-30.htm&url=http://www.intentblog.com/

archives/2007/02/nova_spivack_th.html

Page 40: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

40

La Evolución de la Web

Page 41: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

41

Definiciones de Web 3.0

"People keep asking what Web 3.0 is. I think maybe when you've got an overlay of scalable vector graphics - everything rippling and folding and looking misty - on Web 2.0 and access to a semantic Web integrated across a huge space of data, you'll have access to an unbelievable data resource."

Tim Berners-Lee, 2006

"Web 3.0, a phrase coined by John Markoff of the New York Times in 2006, refers to a supposed third generation of Internet-based services that collectively comprise what might be called "the intelligent Web" -- such as those using semantic web, microformats, natural language search, data-mining, machine learning, recommendation agents, and artificial intelligence technologies - which emphasize machine-facilitated understanding of information in order to provide a more productive and intuitive user experience.“

– http://www.intentblog.com/archives/2007/02/nova_spivack_th.html

Page 42: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

42

Concepto Web 3.0• Web 3.0 es una mezcla de diferentes tecnologías que

cambian cómo los usuarios interaccionan con la Web y la Web interacciona con el mundo físico.o Semantic Webo Ubiquitous Webo 3D Interfaceso Artificial Intelligenceo …

Page 43: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

43

Web 3.0: Convergencia de Tendencias

• Conectividad ubicua– Adopción de broadband – Acceso a Internet móvil – Dispositivos móviles

• Computación en red– Modelo de negocio software-como-servicio– Interoperabilidad de servicios web– Computación distribuida (P2P, grid computing, granjas de servidores alojando "cloud

computing" como Amazon S3)

• Tecnologías abiertas– APIs y protocolos abiertos– Formatos de datos abiertos– Plataformas software open-source– Datos abiertos (Creative Commons, Open Data License, etc.)

Page 44: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

44

Web 3.0: Convergencia de Tendencias

• Autorización e Identificación Abierta– Identidad y autorización (OAuth) abierta– Refutación abierta– Identidad y datos personales portables entre diferentes servicios (OpenID)

• La Web Inteligente– Tecnologías de Web Semántica (RDF, OWL, SWRL, SPARQL, plataformas de

aplicaciones semánticas, y bases de conocimiento o bases de datos basadas en sentencias (triplestores)

– Bases de datos distribuidas – “la web como una BBDD" (interoperabilidad entre bases de datos distribuidas gracias a la Web Semántica)

– Aplicaciones inteligentes (procesamiento del lenguaje natural, machine learning, machine reasoning, agentes autónomos)

Page 45: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

45

Web 1.0 vs. Web 2.0 vs. Web 3.0

• Web 1.0 es como una librería. Puedes consultar información pero no puedes contribuir con o cambiar la información.

• Web 2.0 es la web social colaborativa que pone en contacto a gente y permite entrada y salida (input/output web)

• Web 3.0 usa la Internet para conectar información. Hace la web más inteligente, teniendo en cuenta (enchufando) nuestras preferencias, hábitos y contexto

Page 46: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

46

Características de la Web 3.0

• Asistente personal que nos conoce y puede acceder a información en Internet para responder a nuestras preguntas

• Cada usuario dispondrá de un único perfil de Internet basado en la historia de navegación del usuario– Si dos usuarios realizan la misma búsqueda por Internet recibirán

resultados diferentes acordes con su perfil y contexto

• Proveerá a los usuarios experiencias más ricas y relevantes• Su bloque funcional serán las Open APIs

– Crear mash-ups será tan sencillo que cualquiera podrá hacerlo • Se podrán mezclar widgets para hacer mashups usando drag&drop

Page 47: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

47

Enfoque Semántico de la Web 3.0

• Algunos ven a la Web 3.0 como una primera manifestación de la Web Semántica, donde …– Los ordenadores escanearán e interpretarán información

en páginas web usando agentes software buscando información relevante

• Posible porque la Web Semántica definirá conceptos y relaciones entre los mismos mediante ontologías

– Por ejemplo, el concepto “primo” hace referencia a la relación de parentesco entre dos personas que comparten abuelos

Page 48: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

48

Evolución de los Navegadores

• Tradicionalmente los navegadores web se ejecutan en ordenadores conectados a Internet, PERO … • Los móviles, TVs (y otros dispositivos) incluyen también acceso a servicios de

datos mediante pequeños navegadores web• Las aplicaciones web deben poder ejecutarse en todo tipo de dispositivos

• Los lenguajes HTML y JavaScript no son ya sólo utilizados para acceder a la World Wide Web o Pueden definir interfaces de usuario para muchos tipos de aplicaciones

locales y remotas, reduciendo el ciclo de desarrollo

• Los navegadores están emergiendo como habilitadores de interacción global y players de aplicaciones web

Page 49: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

49

Navegadores Futuros

• ¿Cuál será el rol de los navegadores en el futuro?– Mozilla, Opera, Google y otros se están moviendo hacia un

modelo donde el navegador es el sistema operativo – bien denominándolo navegador como SO o cloud SO

• Todas las aplicaciones, documentos, ficheros y servicios accedidos a través de una interfaz web y se comportan de igual modo independientemente del SO (Windows, Linux, Android, Chrome …)

Page 50: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

50

El Browser como Sistema Operativo

Page 51: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

51

Características de los Navegadores del Futuro

• Serán reproductores (players) de aplicaciones web y catalizadores de interacciones con servicios:– Caché de aplicaciones– Modo de operación offline y online– Capacidad de almacenamiento– Soporte multi-hilo– Integración con escritorio– Interacción multi-modal?– Interacción con el entorno?– Motores de ejecución de servicios?

Page 52: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

52

El Browser como Broker de Información

• Nuevo rol de los navegadores web: de renderizar HTML a broker de información– Detectan información en páginas web y la transfieren a otras aplicaciones

• La detección de microformatos y contenido semántico debería ser diseñado como una plataforma abierta y extensible– Gestión de contactos, calendario y aplicaciones de mapas usan APIs del

navegador para integrarse con la capacidad de detección de microformatos y contenido semántico del browser

Page 53: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

53

Mozilla Labs Prism• Es una aplicación que permite a los usuarios sacar a aplicaciones web

fuera del navegador y ejecutarlas directamente sobre el escritorio • Es la integración de plataforma web en la experiencia de las aplicaciones de

sobremesa • Permite a los usuarios añadir sus aplicaciones web favoritas al desktop• Se ejecutan en su propia ventana, incrementando sus capacidades con

almacenamiento de datos offline y accediendo a hardware de gráficos 3D

• Referencia: http://labs.mozilla.com/2007/10/prism

Page 54: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

54

Mozilla Ubiquity• Un experimento conectando la web con el lenguaje

– Mediante Ubiquity puedes decir a Firefox qué quieres hacer escribiendo comandos en una caja de entrada de datos

• Ubiquity ofrece un conjunto de comandos que hacen a las tareas web comunes más fáciles y rápidas

– Te permite crear mash-ups generados por el usuario

• Se pueden ejecutar comandos directamente o seleccionado previamente fragmentos de texto:– Ctrl+Space muestra la ventana de comandos en Firefox– wiki deusto busca Deusto in Wikipedia– translate (text) (from language) (to language) – map [location | selected text]– command-list te permite pedir ayuda de todos los comandos

Page 55: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

55

Mozilla Ubiquity

15.06.2009

Page 56: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

56

Google Gears• Gears, es un software que permite el desarrollo de aplicaciones web más poderosas,

añadiendo las siguientes capacidades al navegador:– Un módulo de BBDD, basado en SQLite, que permite guardar datos en el navegador– Una librería de multithreading (WorkerPool) para ejecutar en paralelo código JavaScript– Un módulo llamado LocalServer que cachea recursos obtenidos previamente (HTML,

JavaScript, imágenes, etc).– Un módulo desktop que permite a las aplicaciones interaccionar con la máquina local– Un módulo de geo-localización que permite a las aplicaciones web detectar la localización

geográfica de sus usuarios• http://gears.google.com/ • http://code.google.com/intl/es-ES/apis/gears/sample.html

Page 57: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

57

Rich Internet Applications (RIA)

• Una tendencia industrial actual que mejora la experiencia del usuario cuando consume servicios SOA– Combinan la rapidez de respuesta e interactividad de las aplicaciones

de sobremesa con el amplio despliegue y facilidad de uso de las aplicaciones web

Page 58: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

58

Características RIA

• Son aplicaciones web con funcionalidad similar a las aplicaciones de sobremesa tradicionales

• Son aplicaciones cliente que mantienen estado y están desacopladas de la capa de servicios en el back-end

• Requieren el siguiente entorno de ejecución:– Son ejecutadas en un navegador web, no requieren instalación– Son ejecutadas en un entorno seguro llamado sandbox

• Ventajas:– Permiten al usuario encontrar información más fácilmente– Permiten la compleción de tareas más rápidamente de una manera precisa– Generan visualizaciones de datos ricas que pueden ayudar en el proceso de

toma de decisiones

Page 59: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

59

Taxonomía de las Aplicaciones RIA• El modo declarativo de las nuevas herramientas RIA cambia el modelo para

desarrollar software de un modelo CÓMO a un modelo QUÉ• Tres tipos:

– Client-based – aplicaciones basadas en una aplicación de sobremesa– Player-based – aplicaciones basadas en una extensión del navegador– Browser-based – aplicaciones basadas en una framework JavaScript

Page 60: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

60

Demos RIA

• jQuery:– http://www.webdesignerwall.com/demo/jquery/– http://docs.jquery.com/Tutorials:Live_Examples_of_jQuery

• XUL– http://www.hevanet.com/acorbin/xul/top.xul

• Flex– http://flex.org/showcase/

• Silverlight– http://silverlight.net/Showcase/

Page 61: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

61

Una Nueva Generación: las Aplicaciones Web

• La nueva generación de aplicaciones web está tomando forma con tecnologías como jQuery, AIR, Silverlight, JavaFX, Gears, XUL, Web Applications 1.0 (HTML 5.0)– Permiten a los desarrolladores ir más allá de AJAX hacia una nueva

generación de aplicaciones web con mejor rendimiento, más funcionalidad y mejor integración con el escritorio

• ¡CUIDADO! Podemos pasar del “DLL hell” al “plug-in hell”– Para evitarlo deberíamos adoptar un enfoque basados en estándares

» http://www.techcrunch.com/2008/05/29/the-next-gen-web-browser-storage-support/

Page 62: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

62

HTML 5.0• El Web Hypertext Application Technology Working Group (WHATWG) ha dado lugar

a la especificación de HTML 5.0 (www.w3.org/html/wg/html5):– “The main area that has not been adequately addressed by HTML is Web Applications.

This specification attempts to rectify this, while at the same time updating the HTML specs to address issues raised in the past few years”

• El enfoque predominante de WebApps basado en plug-ins debe quedar obsoleto

• HTML 5 proporciona un conjunto de nuevos elementos y atributos que reflejan el uso típico en portales Web modernos:

– Reemplazos semánticos para usos de elementos genéricos como (<div>) o (<span>) elements, por ejemplo <nav> (bloque de navegación de website) y <footer>.

– Otros elementos proveen nueva funcionalidad a través de una interfaz estándar, como los elementos <audio> o <video>

– Elimina elementos de HTML 4. Por ejemplo, elementos presentacionales como <font> y <center>, cuyos efectos son mejor logrados mediante CSS

– Hay un nuevo énfasis en la importancia de scripting DOM para comportamiento Web

Page 63: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

63

Características de HTML 5.0

• Introduce nuevos elementos de estructura como: header, nav, article, section, aside, y footer.

– aside – ofrece soporte para barras laterales, datagrid, dialog, figure, Web Forms 2.0• El gran potencial de HTML 5 vendrá de sus nuevas APIs para la autoría de aplicaciones

basadas en la Web :– El interfaz WebSocket permitirá crear sockets TCP/IP bidireccionales entre la aplicación y el servidor– El servicio Remote-Events permite a los servidores enviar eventos document-objet-model (DOM) a

aplicaciones– Nueva API de almacenamiento local que permitirá a los agentes de usuario guardar y recuperar más

información de la que podría crearse como un conjunto de pares nombre-valor como en las cookies. • HTML 5.0 incluye soporte explícito para la ejecución offline de aplicaciones web: la caché de

aplicaciones y application cache manifest• Nuevas características multimedia como gráficos 2D y APIs de control de audio y video• Mecanismos para permitir el drag&drop• Especificaciones de webworker (multithreading) y geolocation

Page 64: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

64

Despliegue de HTML 5.0• Pasarán varios años antes de que encontremos soporte para HTML 5.0 en

los navegadores• Entretanto:

– Opera y Webkit están implementando activamente partes de HTML 5.0– Google Gears (http://code.google.com/apis/gears) proporciona muchas de las

características de HTML 5 a tu navegador• APIs para geolocation• Almacenamiento en la parte cliente• Operación offline• Web workers

– Google contribuye a las especificaciones relacionadas en el W3C

• La combinación HTML+JavaScript se está configurando como “la plataforma de aplicaciones web” para el front-end

Page 65: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

65

RIA para Móviles

• La popularidad de Palm Pre, iPhone y Android implican una gran necesidad en plataformas de aplicaciones móviles avanzadas

• Los navegadores web móviles están mejorando mucho:– Los navegadores de Nokia, Apple, Opera y Microsoft pueden gestionar

cualquier contenido• Tecnologías de Web 2.0 como XMLHttpRequest o Flash que han creado

potentes aplicaciones web deben ser portadas a los dispositivos móviles, y son utilizadas para crear gadgets móviles en webOS, iPhone o S60 de Nokia:– Webkit (http://webkit.org), Opera, Mozilla e Internet Explorer ya dan soporte

para la ejecución de JavaScript con un alto rendimiento – Nokia Web Run Time: basado en widgets personalizados y sensibles al

contexto que acceden a información en Internet

Page 66: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

66

RIA para Todo Tipo de DispositivosPalm Pre – Web OS

Apple iPhoneGoogle Nexus One – Android

Yahoo! TV Widgets

Nokia N97

Page 67: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

67

Todo Web y Todo Multi-táctil

Apple iPad

Amazon KindleAsus EeeTop

Microsoft Surface

Page 68: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

68

El Futuro del Navegador: Opera Unite

• Un servidor web ejecutándose en un navegador Opera– Tecnología cooperativa que utiliza un servidor web compacto dentro

del navegador Opera para compartir datos y servicios• Aloja Opera Unite Services que proporcionan desde tu PC contenido a

usuarios remotos sin necesidad de aplicaciones o servidores terceros– Imágenes, documentos, vídeos, aplicaciones colaborativas, etc.

• Utiliza un proxy (http://operaunite.com) para evitar cortafuegos– Realmente intenta enviar datos directamente mediante NAT trasversal

• Referencias:– http://unite.opera.com/– http://dev.opera.com/articles/view/opera-unite-developer-primer/– http://dev.opera.com/libraries/unite/

Page 69: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

69

Opera Unite Services

Page 70: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

70

Componentes de la Web como SO

Page 71: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

71

El Futuro de la Mensajería:

Google Wave• Google Wave es una herramienta de comunicación y

colaboración entre personas– Es un servicio web, plataforma de computación y protocolo de

comunicación diseñado para combinar en uno email, mensajería instantánea, wikis y redes sociales

• Está concebido para ser la siguiente generación en comunicación por Internet

• Un “wave” es un hilo completo de mensajes multimedia (blips) localizados en un servidor central

• Referencia:– http://wave.google.com/

Page 72: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

72

Google Wave

Page 73: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

73

Google Wave

Page 74: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

74

El Futuro de las Búsquedas

• Últimamente han aparecido varios servicios similares a buscadores interesantes: – Wolfram|Alpha– Microsoft Bing and – Google Squared– Rich Snippets & SearchMonkey– Real-time Search Engines

Page 75: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

75

Wolfram|Alpha• Es un motor de conocimiento que genera salidas realizando cómputos a partir de

su propia base de conocimiento, en vez de hacer búsquedas en la web y devolver vínculos.

– Contiene algoritmos que permiten obtener datos sobre hechos y fórmulas planteados en lenguaje natural, apoyándose en la infraestructura de Mathematica

– Los resultados vienen como gráficos, mapas, hechos y tablas• ¿Para qué sirve Wolfram|Alpha?

– Para mostrar información o realizar computaciones sobre hechos– El servicio conoce mucho del mundo:

• Geografía, economía y datos socioeconómicos, física, química, ingeniería, deportes, unidades de medida, tiempo e incluso música.

• Diferencia con los buscadores:– Todos los hechos, fórmulas y relaciones han sido preparados por usuarios humanos– Wolfram|Alpha intenta determinar el significado real de una pregunta realizada

• Procesadores de lenguaje natural determinan el dominio de la pregunta para así facilitar el cómputo de la respuesta

Page 76: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

76

Wolfram|Alpha

Page 77: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

77

Microsoft Bing• Bing es un reemplazo de Live Search, nuevo motor de búsqueda de

Microsoft – Ayuda a los usuarios en ciertos dominios de búsqueda de gran interés:

compras, viajes, información de negocios locales, salud• Algunas de sus mejoras frente a la competencia:

– Listado de sugerencias de búsqueda en tiempo real– Listado de refinamientos de búsqueda en la parte izquierda– La parte izquierda también sugiere “búsquedas relacionadas”– La interfaz tiene bastantes mejoras – pequeños tumbnails de videos

empezarán a reproducirse al mover el ratón sobre ellos, …• Probar:

– http://www.bing.com?cc=us– http://www.bingandgoogle.com

Page 78: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

78

Microsoft Bing

Page 79: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

79

Google Squared

• “Squared” se refiere a la facilidad para construir tablas de hechos a partir de dos conceptos de búsqueda– En un eje se puede usar un término de búsqueda general (montañas

rusas o “roller coasters”)– En el otro eje se pueden añadir cabeceras que representan hechos

sobre el término inicial (altura, velocidad)– Resultando en una tabla bidimensional de resultados

• Comparado con Wolfram|Alpha, no hay intermediación humana, la información viene de la Web

• http://www.google.com/squared

Page 80: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

80

Usando Google Squared

Page 81: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

81

Real-Time Web & Search Engines• Servicios como Facebook o

Twitter generan información en tiempo real

• Los buscadores actuales deben adaptarse para indexar este tipo de contenidos en tiempo real– Real-time search

• Algunos ejemplos:– Google Caffeine– Scoopler (

http://www.scoopler.com/)

Page 82: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

82

Real Time Web: Publish/Subscribe• La web en tiempo real requiere un comportamiento PUSH de

la web en vez de PULL como hasta ahora• Diferentes soluciones están apareciendo en el mercado para

resolver esto:– Comet – a web application model in which a long-held HTTP request

allows a web server to push data to a browser, without the browser explicitly requesting it (http://en.wikipedia.org/wiki/Comet_(programming))

– Webhooks – an HTTP callback, i.e. an HTTP POST that occurs when something happens; a simple event-notification via HTTP POST(http://wiki.webhooks.org/)

– PubSubHubbub – A simple, open, server-to-server web-hook-based pubsub (publish/subscribe) protocol as an extension to Atom and RSS (http://code.google.com/p/pubsubhubbub/)

Page 83: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

83

PubSubHubbub

Page 84: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

84

El Futuro de las Búsquedas: Personalizadas y en Tiempo Real

Page 85: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

85

La Web como Plataforma: Parte Cliente

• Tecnologías como AIR, XUL, BrowserPlus o Gears comparten la misión de permitir una “nueva generación de aplicaciones web con mejor rendimiento, más funcionalidad y mejor integración con el escritorio– XUL, Flex, Silverlight permiten crear aplicaciones RIA avanzadas– AIR permite hacer que aplicaciones web se ejecuten de manera offline– BrowserPlus se ejecuta fuera del navegador para hacer a tu escritorio una

extensión de la web– Gears se ejecuta dentro del navegador mejorando la experiencia de ejecución

de aplicaciones web

• Con el tiempo, conceptos de estos productos se volverán estándar, mientras tanto “graceful degradation”– http://www.whatwg.org/specs/web-apps/2005-09-01/

Page 86: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

86

La Web como Plataforma: Parte Servidora

SOA: Service Oriented Architecture

• Define la utilización de servicios para dar soporte a los requisitos del negocio

• Sistemas altamente escalables, estándar de exposición e invocación de servicios (comúnmente pero no exclusivamente servicios web), lo cual facilita la interacción entre diferentes sistemas propios o de terceros.

• Éxito de SOA depende de que los desarrolladores de software se orienten a esta mentalidad de crear servicios comunes que son orquestados por clientes o middleware para implementar los procesos de negocio

• Hablar de SOA significa generalmente hablar de un juego de servicios residentes en Internet o una intranet, usando tecnologías como (XML, HTTP, SOAP, WSDL, UDDI)

• Características: Modular, distribuido, auto-descriptivo, compartible y desacoplado

• Dos estilos: objetos distribuidos (WS*-Style) y WOA Style

WOA: Web Oriented Architecture

• WOA = SOA + REST + WWW• Arquitectura de software que extiende SOA a

aplicaciones basadas en web• La información se representa en forma de recursos

en la red y es accedida y manipulada mediante el protocolo especificado en la URI.

• Los recursos se manipulan mediante CRUD HTTP (POST, GET, PUT, DELETE) usando REST.

• Estos recursos sólo son manipulados por componentes pertenecientes a la red (esencialmente browsers & web servers).

• Es responsabilidad de los componentes entender la representación y estados de transición válidos de los recursos.

• Los recursos tienen embebidas URIs que construyen una red más grande de recursos

• Más flexibles, ágiles al cambio y evolución de los sistemas de información.

Page 87: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

87

SOA vs. WOA

Page 88: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

88

La Web como Plataforma: Parte Servidora

SOAP: Simple Object Access Protocol• Define cómo dos objetos en diferentes

procesos pueden comunicarse por medio de intercambio de datos XML.

• Deriva de un protocolo creado por David Winer en 1998, llamado XML-RPC.

• Fue creado por Microsoft, IBM, y otros y actualmente se encuentra bajo el auspicio de la W3C.

• Su arquitectura consiste en varias capas de especificaciones para formato de mensajes:

• Message Exchange Patterns (MEP)• Protocolos de transporte (SMTP y

HTTP/S)• Modelos de procesado de mensajes• Protocolo de extensibilidad• WS-*

REST: Represantional State Transfer• Estilo de arquitectura software para

sistemas de hypermedia distribuidos como la WWW.

• Introducido en la tésis doctoral de Roy Fielding en el año 2000.

• Se refiere a una colección de principios de arquitectura de red, que marcan cómo definir e invocar los recursos.

• El término se usa a veces para describir una simple interfaz que transmite datos de un dominio específico por HTTP sin capas adicionales como SOAP o uso de cookies.

• Los sistemas que cumplen los principios marcados por Fielding suelen ser referidos como sistemas RESTful.

Page 89: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

89

SOAP vs. REST

Page 90: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

90

Usando REST

Page 91: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

91

Web Oriented Architecture (WOA)

Page 92: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

92

RestLet: RESTful Web Framework for Java

• Es una framework open source para desarrollar aplicaciones REST, es decir aplicaciones basadas en el concepto de Recurso en vez de Servicio– Página web: http://www.restlet.org– Documentación: http://www.restlet.org/documentation/1.1/api/index.html

• Características:– Los conceptos clave de REST tienen su equivalente en clases Java (Resource,

Representation, Connector o Component)– Ofrece una API tanto para crear la parte cliente commo servidora de una

aplicación web. – Utiliza el concepto de “"URIs as UI" permitiendo declarar plantillas o patrones

en una URL para facilitar la extracción de variables de una URI y su conversión en atributos de petición

– Un servicio de tunneling permite al navegador enviar todo tipo de métodos HTTP (PUT, DELETE, MOVE, etc.) como si fueran HTTP POST

– Soporta JSR 311: JAX-RS

Page 93: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

93

Servidores Móviles

• Una tendencia actual es tener dispositivos móviles sirviendo aplicaciones:– Nokia Mobile Web Server

• Mapeo de apache httpd y mod_python a Nokia S60

• Provee pasarela para prevenir problemas con cortafuegos

• http://mymobilesite.net/• http://finemobileweb.net/

Page 94: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

94

El Futuro del Desarrollo Software

Page 95: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

95

Infraestructura Virtualizada:Cloud Computing

Un paradigma de computación emergente donde los datos y servicios residen en centros de datos muy escalables que pueden ser accedidos ubicuamente desde cualquier dispositivo conectado a Internet1

Merrill Lynch: Cloud computing market opportunity by 2011 =$95bn in business and

productivity apps +$65bn in online advertising =

$160bn

(1) Source: IBM

Page 96: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

96

Cloud Computing es …

• … capacidad computacional y almacenamiento virtualizada expuesta mediante infraestructura agnóstica a la plataforma y accedida por Internet – Recursos IT compartidos en demanda, creados y

eliminados eficientemente y de modo escalable a través de una variedad de interfaces programáticos facturados en base a su uso

Page 97: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

97

The “Cloud” = 10X Improvement• Fácil de usar: hazlo tu mismo remotamente de cualquier

lugar en cualquier momento• Escalable: controla tu infraestructura con tu aplicación• Riesgo: nada que comprar, cancela inmediatamente• Robustez: basado en gran hardware empresarial• Coste: paga sólo por lo que uses

Page 98: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

98

Evolución hacia Cloud Computing• La coexistencia y limitaciones de cluster

computing y supercomputing dieron lugar a grid computing

• De grid computing progresamos hacia utility computing, i.e. Servicios computacionales empaquetados como agua, electricidad, etc.

• Esto derivó en Cloud Computing, es decir, todo como servicio (XaaS) :• Plataforma como Servicio• Software como Servicio• Infraestructura como Servicio

Page 99: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

99

Múltiples Descripciones Gráficas de la “Cloud”

Page 100: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

100

Múltiples Descripciones Gráficas de la “Cloud”

Page 101: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

101

Arquitectura Cloud Computing

Page 102: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

102

Características de Cloud

Tipos de despliegue• Cloud privada

– Propiedad de o alquilada por una empresa (centros de datos,…)

• Cloud comunitaria– Infraestructura compartida por

una comunidad específica• Cloud pública

– Vendida al público, gran escala (ec2, S3,…)

• Cloud híbrida– Composición de dos o más

clouds

Manifestaciones • Cloud Software as a Service (SaaS)

– Uso de la aplicación del proveedor sobre la red, e.j., Salesforce.com,…

• Cloud Platform as a Service (PaaS) – Despliega aplicaciones creadas por los

clientes a la nube, e.j. Google App Engine, Microsoft Azure, …

• Cloud Infrastructure as a Service (IaaS) – Alquilar procesamiento, almacenamiento,

capacidad de red y otros recursos computacionales e.j., EC2 – Elastic Compute Cloud, S3 – Simple Storage Service, Simple DB,…

Page 103: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

103

Diferentes Manifestaciones

Page 104: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

104

Cloud Computing vs. Centros de Datos Tradicionales

Page 105: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

105

Componentes de Cloud Computing

Page 106: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

106

Taxonomía de Cloud Computing

Page 107: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

107

Evolución de Tecnologías de Cloud Computing

• Maduración de tecnología de virtualización• La virtualización permite nubes de computación• Las nubes de computación demandan nubes de

almacenamiento• Las nubes de almacenamiento y computación crean

infraestructura cloud• La infraestructura cloud da lugar a plataformas y aplicaciones

cloud• Diferentes tipos de cloud dan lugar a Cloud Aggregators• Nichos de requisitos dan lugar a Cloud Extenders

Page 108: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

108

Aplicaciones Cloud• Corresponden con lo que se denomina como SaaS• Manifestación de cloud más popular• Ejemplos: SalesForce, Gmail, Yahoo! Mail, rememberthemilk,

doodle, Google Docs, DropBox, picnik, Panda Cloud Antivirus, scribd, slideshare

• Ventajas: Libre, Fácil, Adopción de consumo• Desventajas: funcionalidad limitada, no hay control de acceso

a la tecnología subyacente

Page 109: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

109

Plataformas Cloud• Contenedores de aplicaciones• Entornos cerrados• Ejemplos: Google App Engine, Heroku, Mosso, Engine Yard,

Joyent o Force.com (SalesForce Dev Platform)• Ventajas: buenas para desarrolladores, más control que en las

aplicaciones cloud, configuradas estrechamente• Desventajas: restringidas a lo que está disponible, otras

dependencias, dependencia tecnológica

Page 110: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

110

Infraestructura Cloud

• Proveen nubes de computación y almacenamiento• Ofrecen capas de virtualización (hardware/software)• Ejemplos: Amazon EC2, GoGrid, Amazon S3, Nirvanix, Linode,

Arsys Cloud Flexible, EyeOS• Ventajas: control completo del entorno y la infraestructura• Desventajas: precio premium, competencia limitada

Page 111: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

111

Extensores de la Cloud

• Proveen extensiones a infraestructura y plataformas cloud con funcionalidad básica

• Ejemplos: Amazon SimpleDB, Amazon SQS, Google BigTable• Ventajas: extienden la funcionalidad de las nubes de

computación y almacenamiento para integrar sistemas heredados u otras cloud

• Desventajas: a veces requieren el uso de plataformas o infraestructura específica

Page 112: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

112

Agregadores Cloud

• Se apoyan en varias infraestructuras cloud para su gestión

• Ejemplos: RightScale, Appistry• Ventajas: proveen más opciones para entornos cloud• Desventajas: dependientes de proveedores de cloud

Page 113: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

113

¿Qué framework o plataforma usar para mis aplicaciones Cloud?

Page 114: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

114

Amazon Web Services (AWS)• AWS proporciona una infraestructura de servicios elástica donde alojar

computación, almacenamiento o sistemas empresariales– Amazon Elastic Cloud (EC2) – permite configurar y ejecutar un Amazon Machine

Instance (AMI) – servidores en demanda– Amazon Simple Storage Service (S3) – permite guardar y recuperar datos en la nube– Amazon SimpleDB – proporciona la funcionalidad de una base de datos sobre S3 –

basada en pares clave-valor– Amazon Simple Queue Service (SQS) – servicio de mensajería para encolar tareas y

mensajes– Amazon Relational Database Service (RDS) – servicio web para crear, operar y escalar

una base de datos en la nube– Amazon CloudFront – copias de tus objetos más populares son cacheados en una red de

nodos alrededor del mundo– …

• Documentación: http://aws.amazon.com/documentation/

Page 115: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

115

Amazon Web Services (AWS)

Page 116: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

116

Amazon Web Services (AWS)

Page 117: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

117

Amazon Elastic Compute Cloud: EC2• Permite ejecutar varios servidores Linux o Windows virtuales en demanda,

facilitando tantos ordenadores como necesites para procesar tus datos o ejecutar una aplicación

• Otorga acceso root al sistema operativo de cada servidor, un cortafuegos para gestionar el acceso a la red y la libertad para instalar cualquier software

• Una vez configurado un servidor adecuadamente, se guarda como Amazon Machine Image (AMI) que puede ser lanzada para crear máquinas virtuales en demanda

• La EC2 API (Query o SOAP) ofrece funcionalidad para empezar y parar instancias de servidor, aplicar permisos de acceso y red o gestionar tus imágenes de servidor.

– Cada servidor individual se gestiona usando herramientas Linux o Windows sobre una sesión de shell segura.

• Se factura en función de los recursos consumidos : CPU y datos transferidos• Más información en: http://aws.amazon.com/products/ec2

Page 118: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

118

Amazon Simple Storage Service: S3• Ofrece espacio de almacenamiento seguro para cualquier

tipo de datos en los data centers de Amazon– Es una alternativa a construir, mantener y utilizar tus propios sistemas

de almacenamiento – No tiene límites sobre cuánta información, por cuánto tiempo y con

qué ancho de banda puede transferirse.

• Ofrece una simple API agnóstica a la información a guardar– Depende de ti qué datos y qué representación interna tienen– El modelo de datos interno consta de dos tipos de recursos de

almacenamiento:• Objects: guardan datos y metadatos• Buckets: contenedores que pueden contener infinidad de objetos

– Incorpora mecanismos de control de acceso (ACL) que pueden aplicarse a objetos y buckets

Page 119: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

119

Amazon Simple Storage Service: S3• Los recursos en S3 se identifican mediante URIs:

– http://s3.amazonaws.com/bucket-name/object-name

• Algunas características de su arquitectura son:– Los objetos S3 no pueden ser manipulados como ficheros estándar– Los cambios sobre ellos tardan en propagarse– Las peticiones a objetos pueden fallar ocasionalmente– Permite guardar versiones– Se deben resolver las direcciones IP de los nombres DNS de S3 periódicamente – Se pueden guardar infinitos objetos de hasta 5GB en tamaño– Se paga por almacenamiento, transferencia y operaciones

• Algunos posibles usos de S3:– Compartir grandes ficheros– Como repositorio de back-up de tus ficheros– Sistema de ficheros mapeado sobre S3 (ElasticDrive)

• Más información en: – http://aws.amazon.com/s3/,

Page 120: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

120

Amazon CloudFront• Mientras que en Amazon S3 se guardan contenidos (ficheros) con

CloudFront se garantiza que tus objetos en S3 buckets son servidos rápidamente.

– Lo hace copiando los ficheros en buckets S3 a diferentes edge locations que sirven contenidos a los usuarios finales.

– Tales edge locations se distribuyen por el planeta asegurándose que los contenidos son servidos del servidor Amazon más cercano

• Es ventajoso porque el 80-90% del tiempo invertido esperando a una respuesta web se debe a la descarga de los componentes de la página: imágenes, hojas de estilo, scripts, Flash, etc. – La clave es colocar la parte estática de nuestra web en una red de distribución

de contenidos como Akamai. • Con CloudFront hay que pagar las transferencias desde S3 a las

localizaciones de los bordes. • Más información en: http://aws.amazon.com/cloudfront/

Page 121: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

121

Amazon SimpleDB• Almacén de claves/valor: trabaja con los conceptos domain, item y attribute• Diseñado para minimizar la complejidad y el coste de mantenimiento de tus datos • Guarda pequeñas piezas de información textual en una estructura de base de datos sencilla

simple de gestionar, modificar y buscar– Ofrece su propio lenguaje de consultas de datos– Ejemplos de consultas sencillas:

• ['Date' > '2007-07-01' and Not 'Date' starts-with '2007-07-04']• ['Suburb' = 'Newtown'] or['Price' < '100000'] intersection ['Bedrooms' =

'3']

• Si tus aplicaciones están basadas en bases de datos simples, este servicio puede reemplazar a tu RDBMS dejándote con una pieza de infraestructura menos que comprar y mantener

• No exige la especificación de un schema previo, tú puedes modificar la estructura y contenidos de tu base de datos cuando quieras

• Indexa cada pieza almacenada• Guarda tu información de modo seguro, y redundante en la red de data centers de Amazon• Pagas por almacenamiento, datos transferidos y operaciones• Más información en: http://aws.amazon.com/simpledb/

Page 122: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

122

Amazon SimpleDB• Ofrece tres recursos principales:

– Dominios: nombre de un contenedor con información relacionada (similar a base de datos)

• Solamente se procesan consultas dentro de un dominio– Elementos: es una colección con nombre de los atributos que representan un objeto de

datos– Atributos: es una categoría individual de información guardada dentro de un elemento.

Identificado por un nombre contiene una colección de valores de tipo string, obligatorio que tenga al menos un valor.

• Es una base de datos sencilla, no un RDBMS:– Los elementos se guardan en una estructura jerárquica, no una tabla– Todos los datos se guardan como texto– Capacidades de consulta limitadas– La consistencia de la información depende de retardos de propagación– Los valores de atributos pueden ser colecciones y alcanzar hasta 1024 bytes

• SimpleDB está concebido para usarse en conjunción con S3

Page 123: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

123

Amazon SimpleDB

Page 124: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

124

Amazon Relational Database Service (Amazon RDS)

• Es un servicio web que facilita la instalación, operación y escalabilidad de una base de datos relacional en la nube

– Te da completo acceso a las capacidades de una base de datos MySQL• Las aplicaciones que ya funcionan con MySQL también lo harán con Amazon RDS

– Amazon RDS modifica el software MySQL para programar la creación de back-ups o garantizar la escalabilidad, todo ello controlado a través de una API sencilla.

• Solamente se paga por los recursos utilizados. • Más información en: http://aws.amazon.com/rds • Herramienta: Amazon RDS Command Line Toolkit

– http://developer.amazonwebservices.com/connect/entry.jspa?externalID=2928&categoryID=294

• Tutorial en: http://docs.amazonwebservices.com/AmazonRDS/latest/GettingStartedGuide/

Page 125: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

125

Amazon SQS

• Implementa el servicio de mensajería basado en colas

• Los mensajes son siempre strings• Útil para crear trabajos asíncronos y descargar

de actividad a un web server• Se paga por mensajes y datos transferidos• Más información en:

http://aws.amazon.com/sqs

Page 127: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

127

Amazon AWS Console

Page 128: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

128

Calculadora de Costes en Amazon

• La siguiente herramienta te permite estimar costes de consumo de servicios en Amazon: – http://calculator.s3.amazonaws.com/calc5.html

• Además, desde la página http://aws.amazon.com/account, se puede acceder al menú “Account Activity” que ilustra el gasto actual incurrido.

Page 129: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

129

Programación en AWS• Interfaces REST:

– Utilizan componentes estándar de peticiones HTTP para representar la acción de la API a ejecutar:

• Métodos HTTP: describen la acción a ejecutar por la petición• Universal Resource Identifier (URI): identifican el recurso sobre el que se va a ejecutar la acción• Cabeceras de petición: ofrecen más metadatos sobre la petición o el peticionario• Cuerpo de la petición: transfieren los datos que nutrirán la acción a ejecutar por el servicio

• Interfaces Query:– También hacen uso del protocolo HTTP para representar acciones de la API, pero lo

hacen a través de parámetros (pares nombre valor) que indican la acción y los datos que nutrirán tal acción.

– Se suelen indicar en la URI de una petición GET o el cuerpo de un POST– Esta interfaz es considerada como REST-like no RESTful, no es un enfoque puro de REST

sino que explota HTTP• Interfaces SOAP

Page 130: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

130

APIs Disponibles por Servicio AWS

Service REST API Query API SOAP API

S3 Yes No Yes

EC2 No Yes Yes

SQS Yes Yes Yes

FPS No Yes Yes

SimpleDB No Yes Yes

RDS No Yes Yes

Page 131: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

131

Usando AWS SDK for Java

• Se puede obtener documentación detallada en:– http://docs.amazonwebservices.com/AWSJavaSDK/latest/javadoc/

• Antes de empezar, debes registrarte en cada servicio que quieras utilizar.

• Necesitas obtener tus credenciales de seguridad de: http://aws.amazon.com/security-credentials– Previamente puede que tengas que firmar en

http://aws.amazon.com/products– Los credenciales son un par de claves públicas y privadas que

contienen:• Access Key ID• Secret Access Key

Page 132: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

132

Herramientas para Usar Amazon• ScratchPad for SimpleDB y SQS

– http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1137&categoryID=189

– http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1254

• ElasticDrive – http://www.elasticdrive.com/• ElasticFox –

http://developer.amazonwebservices.com/connect/entry.jspa?externalID=609

• S3 Fox – plugin para Firefox, http://www.s3fox.net/• Amazon EC2 API Tools

– Programas de línea de comandos para intermediar con Amazon EC2– Sirven para registrar, lanzar instancias, manipular grupos de seguridad

y más• http://developer.amazonwebservices.com/connect/entry.jspa?ext

ernalID=351&categoryID=88

Page 133: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

133

Caso práctico de Álbum de Fotos

• Álbum de fotos que permite subir fotos, organizarlas y visualizarlas

• Arquitectura tradicional:

Page 135: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

135

• Google App Engine es una herramienta para el alojamiento de aplicaciones web escalables sobre la infraestructura de Google– Su misión es permitir al desarrollador web crear fácilmente aplicaciones web

escalables sin ser un experto en sistemas• Aporta las siguientes características a los desarrolladores:

– Limita la responsabilidad del programador al desarrollo y primer despliegue – Google App Engine provee recursos computacionales dinámicamente según son necesarios

– Toma control de los picos de tráfico – si nuestro portal crece en popularidad no es necesario actualizar nuestra infraestructura (servidores, BBDD)

• Ofrece replicación y balanceo de carga automática apoyado en componentes como Bigtable

– Fácilmente integrable con otros servicios de Google – los desarrolladores pueden hacer uso de componentes existentes y la librería de APIs de Google (email, autenticación, pagos, etc.)

Ejemplo Plataforma Cloud: Google App Engine

Page 136: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

136

• Ofrece una plataforma completa para el alojamiento y escalado automático de aplicaciones, consistiendo en:– Servidores de aplicaciones Python y Java– La base de datos BigTable– El sistema de ficheros GFS

• Como desarrollador simplemente tienes que subir tu código Python o Java compilado a Google, lanzar la aplicación y monitorizar el uso y otras métricas

• Google App Engine incluye la librería estándar de Python 2.5 y soporta Java 1.6– No todas las acciones se permiten (acceso a ficheros, llamadas al SO, algunas

llamadas de red)• Se ejecuta en un entorno restringido para permitir que las aplicaciones escalen

• Ejemplo: – https://appengine.google.com– http://enpresadigitala.appspot.com/encuestas– http://code.google.com/intl/en/appengine/docs/

Google App Engine:Características

Page 137: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

137

Facturación Google App Engine• Hasta 10 aplicaciones con 500 MB de almacenamiento y 5 millones de visitas al

mes cada una• Página de presupuestado y facturación de recursos:

http://code.google.com/intl/es/appengine/docs/billing.html• Detalles sobre las cuotas en:

http://code.google.com/intl/es/appengine/docs/quotas.html

Recurso Unidad Coste de la unidad

Ancho de banda de salida gigabytes 0,12 dólares

Ancho de banda de entrada gigabytes 0,10 dólares

Tiempo de CPU horas de CPU 0,10 dólares

Datos almacenados gigabytes al mes 0,15 dólares

Destinatarios de mensajes de correo electrónico

destinatarios 0,0001 dólares

Page 138: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

138

Page 139: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

139

App Engine para Java

• Crea aplicaciones web a través de tecnologías estándar de Java y las ejecuta en la infraestructura escalable Google– Usa JVM Java 6, interfaz de servlets Java y la compatibilidad de

interfaces estándar como JDO, JPA, JavaMail y JCache

• App Engine utiliza el estándar Java Servlet para aplicaciones web– JVM se ejecuta en un entorno seguro de la "zona de pruebas" para

aislar tu aplicación por servicio y seguridad. • Una aplicación en GAE sólo pueda realizar acciones que no interfieran con

el rendimiento ni con la escalabilidad de otras aplicaciones.

Page 140: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

140

Funcionalidad de AppEngine for Java

• App Engine proporciona un conjunto de servicios escalables que pueden utilizar las aplicaciones para:

– Almacenar datos persistentes. En Java, el almacén de datos admite 2 interfaces Java estándar: los objetos de datos Java (JDO) 2.3 y el API de persistencia de Java (JPA) 1.0.

– Acceder a recursos en la red. A través de la URL Fectch API. – Cachear información. Memcache de App Engine proporciona un almacenamiento en

caché distribuido, transitorio y rápido de los resultados de cálculos y consultas de almacén de datos. La interfaz Java implementa JCache (JSR 107).

– Enviar email. Da soporte de JavaMail para el envío de correos– Procesar imágenes. A través de la Images Java API, permite a las aplicaciones

transformar y manipular datos de imágenes en varios formatos.– Gestionar usuarios. A través de la Users Java API permite utilizar Cuentas de Google para

la autenticación del usuario.– Lanzar tareas planificadas o en background. Mediante la Task Queue Java API y la

gestión de tareas por Cron.

Page 141: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

141

Instalación de AppEngine for Java

1. Descargar el fichero de:– http://code.google.com/intl/es/appengine/downloads.ht

ml#Google_App_Engine_SDK_for_Java

2. Descomprimir el fichero .zip3. Crear una variable de entorno

APPENGINE_JAVA_SDK que apunte al directorio raíz de instalación de la SDK

4. Incluir el directorio %APPENGINE_JAVA_SDK%\bin en la variable de entorno PATH

Page 142: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

142

Pasos para crear una Aplicación con Google App Engine para Java

1. Crear el proyecto de la aplicación2. Crear la clase servlet3. Crear el fichero de despliegue de la aplicación:

web.xml4. Crear el archivo appengine-web.xml5. Ejecutar el proyecto6. Probar el proyecto:

http://localhost:8080/<nombre-aplicación> 7. Subir la aplicación al dominio appspot.com

Page 143: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

143

Paso 1: Creando la estructura del proyecto• Dos opciones:

– Usar el plug-in para Eclipse: http://code.google.com/intl/es/appengine/docs/java/tools/eclipse.html– Usar la plantilla de proyecto disponible en %APP_ENGINE_HOME%\demos\

new_project_template

• Las aplicaciones Java de App Engine utilizan el API Java Servlet para interactuar con el servidor web.

– Un servlet HTTP es una clase de aplicación que puede procesar y responder solicitudes web. Esta clase amplía la clase javax.servlet.GenericServlet o a la clase javax.servlet.http.HttpServlet.

• La estructura del directorio de trabajo será la siguiente:Guestbook/ src/ ...Java source code... META-INF/ ...other configuration... war/ ...JSPs, images, data files... WEB-INF/ ...app configuration... classes/ ...compiled classes... lib/ ...JARs for libraries...

Page 144: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

144

Paso 2: Creando la clase Servlet• Crear en el directorio src/guestbook/ un fichero

denominado GuestbookServlet.java con el siguiente contenido:package guestbook;

import java.io.IOException;import javax.servlet.http.*;

public class GuestbookServlet extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {    resp.setContentType("text/plain");      resp.getWriter().println("Hello, world");   }}

Page 145: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

145

Paso 3: Creando el fichero de despliegue – web.xml

• Cuando el servidor web recibe una solicitud, decide qué clase de servlet ejecutar mediante un archivo de configuración conocido como "descriptor de implementación de la aplicación web".

– Este archivo se denomina web.xml y se ubica en el directorio war/WEB-INF/ del directorio que contiene los ficheros de una aplicación web en Java

<?xml version="1.0" encoding="utf-8"?><!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"><web-app xmlns="http://java.sun.com/xml/ns/javaee" version="2.5"> <servlet> <servlet-name>guestbook</servlet-name> <servlet-class>guestbook.GuestbookServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>guestbook</servlet-name> <url-pattern>/guestbook</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list></web-app>

Page 146: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

146

Paso 4: Crear el fichero de configuración de aplicación GAE:

appengine-web.xml• App Engine necesita un archivo de configuración adicional para poder desarrollar y ejecutar

la aplicación, denominado appengine-web.xml – Se ubica en WEB-INF/ junto a web.xml. – Incluye la ID registrada de la aplicación, el número de versión de la aplicación y listas de archivos que

se deben tratar como archivos estáticos (por ejemplo, imágenes y CSS) y archivos de recursos (por ejemplo, JSP y otros datos de aplicación).

• El directorio war/WEB-INF/ incluye un archivo denominado appengine-web.xml que contiene lo siguiente:

<?xml version="1.0" encoding="utf-8"?><appengine-web-app xmlns="http://appengine.google.com/ns/1.0"> <application>librocitas</application> <version>1</version></appengine-web-app>

Page 147: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

147

Paso 5: Ejecución del Proyecto

• El SDK de App Engine incluye un servidor web de pruebas para depurar tu aplicación.

• El servidor simula los servicios y el entorno App Engine, que incluyen restricciones en la zona de pruebas, el almacén de datos y los servicios.

• Con el fichero ant ejecuta: ant runserver– Puedes detenerlo con Ctrl-C

Page 148: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

148

Paso 6: Subiendo la aplicación

1. Puedes crear y administrar aplicaciones web App Engine con la consola de administración de App Engine a través de la siguiente URL: http://appengine.google.com/

2. Para crear una nueva aplicación, haz clic en el botón "Create an Application" (Crear aplicación)

3. Edita el archivo appengine-web.xml y, a continuación, cambia el valor del elemento <application> para que sea la ID registrada de tu aplicación (librocitas).

4. Ejecuta el siguiente comando en línea de comandos para subir la aplicación: $ appcfg update www

5. Vete a: http://librocitas.appspot.com/

Page 149: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

149

Registrando la aplicación

Page 150: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

150

Verificación de tu cuenta

Page 151: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

151

Verificación de tu Cuenta

Page 152: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

152

Registrando la aplicación en appengine.google.com

Page 153: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

153

Registrando la applicación

Page 154: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

154

Características Avanzadas de Google App Engine

• Acceso a datos mediante JDO– http://code.google.com/appengine/docs/java/gettingstarted/usingdatastore.html

• Gestión de usuarios– http://code.google.com/appengine/docs/java/users/

• Planificación de tareas con Cron for Java– http://code.google.com/appengine/docs/java/config/cron.html

• Memcache Java API– http://code.google.com/appengine/docs/java/memcache/overview.html

• URL Fech Java API– http://code.google.com/appengine/docs/java/urlfetch/overview.html

• Envío de mensajes instantáneos con XMPP e email – http://code.google.com/appengine/docs/java/xmpp/overview.html

• Colas de tareas – permite ejecutar asíncronamente tareas– http://code.google.com/appengine/docs/java/taskqueue/overview.html

Page 155: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

155

Limitaciones Google App Engine

• El servicio tiene varias limitaciones:– Solo hasta recientemente no todo el mundo podía acceder a él– Es gratis durante el periodo de pruebas, pero con límites de uso: 500 MB de

almacenamiento, 200 millones de megaciclos/día y 10 Gb de ancho de banda• Google cobra para webs que requieren alta escalabilidad

• Existen escasas aplicaciones comerciales desarrolladas en esta plataforma– Repositorio de ejemplos: http://appgallery.appspot.com/

• VOSAO CMS - http://www.vosao.org/

• Limitaciones técnicas originales parcialmente resueltas:– Los desarrolladores solamente tienen acceso de lectura al sistema de ficheros de App

Engine– Solamente se puede ejecutar código a partir de una petición HTTP– Solamente se puede subir código puramente Python (resuelto con soporte Java)– No se puede descargar o ejecutar scripts en su base de datos (remote_api)– Las aplicaciones deben ser escritas en Python o Java

• Guido van Rosum, creador de Python está detrás de Google App Engine

Page 156: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

156

Google App Engine vs. Amazon Web Services

• A primera vista Google App Engine es un competidor a la suite de servicios web ofrecida por Amazon:– S3 para almacenamiento– EC2 para la creación de servidores virtuales– SimpleDB como base de datos

• Pero …– Google App Engine es una plataforma mucho más

acoplada y menos flexible• Si quieres hacer uso de BigTable tienes que escribir y desplegar un

script de Python a su servidor de aplicaciones ofreciendo una interfaz web accesible a BigTable (resuelto parcialmente)

Page 157: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

157

Google App Engine vs. Amazon Web Services

Page 158: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

158

Ventajas de Cloud Computing

• Ahorros de costes en IT empresariales– Ordenadores de bajo coste para los usuarios– Costes más bajos en infraestructura IT– Costes de software más bajos

• Mejora del rendimiento global– Elasticidad para conseguir una escalabilidad superior

• Menos problemas en mantenimiento• Actualizaciones inmediatas de software• Capacidad de almacenamiento ilimitada• Incremento de la seguridad de los datos (safety)

Page 159: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

159

Desventajas de Cloud Computing

• Requiere una conexión a Internet continua y rápida• Puede ofrecer bastante latencia• Características disponibles todavía limitadas• Falta de confianza

– Los datos guardados pueden ser accedidos por otros – Nuestros datos ya no están en la empresa– Problemas legales (LODP): Safe Harbor

• Dependencia tecnológica en otras compañías ajenas– Si la nube pierde los datos, ¡estás perdido!

Page 160: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

160

Web Semántica

• Problema de la Web Actual:– El significado de la web no es comprensible por máquinas

• Web Semántica crea un medio universal de intercambio de información, aportando semántica a los documentos en la web – Añade significado comprensible por ordenadores a la Web– Usa técnicas inteligentes que explotan esa semántica– Liderada por Tim Berners-Lee del W3C

• Misión “turning existing web content into machine-readable content“

Page 161: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

161

La Pila de la Web Semántica

• La Web Semántica está compuesta de:– XML, sintaxis para documentos estructurados– XML Schema, restringe la estructura de

documentos XML– RDF es un modelo de datos que hace referencia

a objetos y sus relaciones– RDF Schema, vocabulario para definir

propiedades y clases de recursos RDF – OWL, añade más vocabulario que RDFS,

relaciones entre clases, cardinalidad, igualdad …

Page 162: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

162

RDF: Recurso, Propiedad y Valor

• RDF identifica conceptos usando identificadores Web (URIs), y describe recursos con propiedades y valores de las mismas

• Definiciones: – Un Recurso es cualquier cosa que puede tener una URI, como por

ejemplo "http://www.w3schools.com/RDF" – Una Propiedad es un Recurso que tiene un nombre, como “autor" o

“páginaweb" – Un Valor de propiedad es el valor de una Propiedad, tal como “Diego

Ipiña" o "http://www.w3schools.com" (un valor de propiedad puede corresponder a un recurso)

Page 163: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

163

Resource Description Framework (RDF)

• Un grafo RDF crea una web de conceptos distribuidos– Realiza aserciones sobre relaciones lógicas entre entidades– La información en RDF puede ligarse con grafos en otros lugares– Mediante software se pueden realizar inferencias– Existen lenguajes de consulta sobre triple stores como SPARQL

• Mediante RDF hacemos que la información sea procesable por máquinas– Agentes software pueden guardar, intercambiar y utilizar metadatos

sobre recursos en la web

• Ontología jerarquía de términos a utilizar en etiquetado de recursos formalización de los metadatos de un domino/s

Page 164: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

164

Formatos de Serialización RDF• Formato RDF/XML:

1: <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"2: xmlns:dc="http://purl.org/dc/elements/1.1/"3: xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos/"4: xmlns:edu="http://www.example.org/">5: <rdf:Description rdf:about="http://www.deusto.es">6: <geo:lat>43.270737</geo:lat>7: <geo:long>-2.939637</geo:long>8: <edu:hasFaculty>9: <rdf:Bag>10: <rdf:li rdf:resource="http://www.eside.deusto.es" dc:title="Facultad de Ingeniería"/>11: <rdf:li rdf:resource="http://www.lacomercial.deusto.es" dc:title="Facultad de Empresariales"/>12: </rdf:Bag>13: </edu:hasFaculty>14: </rdf:Description>15: </rdf:RDF>

• Formato: N3/Turtle:1: @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .2: @prefix dc: <http://purl.org/dc/elements/1.1/> .3: @prefix geo: <http://www. w3.org/2003/01/geo/wgs84_pos#> .4: @prefix edu: <http://www.example.org/> .5: <http://www.deusto.es> geo:lat "43.270737" ; geo:long "-2.939637" .6: <http://www.eside.deusto.es> dc:title "Departamento de Ingeniería" .7: <http://www.deusto.es> edu:hasFaculty <http://www.eside.deusto.es> .

Page 165: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

165

Ejemplo de Grafo RDF• Generador de grafos RFD: http://www.w3.org/RDF/Validator/• Conversor entre formatos RDF:

http://www.mindswap.org/2002/rdfconvert/

Page 166: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

166

¿Qué es una Ontología?

• Una ontología define conceptos de un dominio y relaciones entre ellos

• Los bloques básicos que componen el diseño de una ontología son:– clases o conceptos– propiedades de cada concepto describiendo varias características y

atributos del concepto – restricciones sobre las propiedades

• Una ontología junto con las instancias de sus clases individuales constituyen un knowledge base

Page 167: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

167

Características del Ontology Web Language (OWL)

• Una ontología difiere de un esquema XML en que es una representación de conocimiento, no un formato de mensaje

• La principal ventaja de una ontología escrita en OWL es que hay disponibles herramientas que pueden razonar sobre ella

• La sintaxis de intercambio de información en OWL es normalmente RDF/XML.

• OWL es una extensión del vocabulario de RDF• Las ontologías Web son distribuidas• Pueden ser importadas y extendidas para crear ontologías

derivadas• Se pueden alinear unas ontologías con otras

Page 168: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

168

Ejemplo OWL Ontology Reasoning• Supongamos el siguiente modelo RDF en N3:

@prefix foaf: <http://xmlns.com/foaf/0.1/> .<http://www.ipina.org/> foaf:author

<http://www.ipina.org/osgi/> .<http://www.deusto.es/dipina/> foaf:author

<http://www.deusto.es/dipina/ajax/> .<http://www.eside.deusto.es/dipina/> foaf:author

<http://paginaspesonales.deusto.es/dipina/> .

• Aunque pertenecen al mismo autor, no están relacionadas entre ellas, con la ayuda de OWL podemos mapear estas URIs@prefix owl: <http://www.w3.org/2002/07/owl#> .<http://www.deusto.es/dipina/> owl:sameAs

<http://www.ipina.org/> .<http://www.eside.deusto.es/dipina/> owl:sameAs

<http://www.ipina.org/> .

• Si mezclamos ambos modelos y ejecutamos un razonador podríamos responder a “dime todo lo que ha escrito “<http://www.ipina.org>”:<http://www.ipina.org/osgi/>,<http://www.deusto.es/dipina/

ajax/> y <http://paginaspesonales.deusto.es/dipina/>

Page 169: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

169

SPARQL

• SPARQL (http://www.w3.org/TR/rdf-sparql-query/) permite la consulta de grafos RDF a través de un lenguaje sencillo

• SPARQL es idóneo para extraer y consultar información mantenida por aplicaciones, servicios o repositorios ad-hoc de terceras partes expresados en RDF

• Consta de 3 elementos:– Lenguaje de consultas.– Mecanismo para transmitir una consulta a un servicio de

procesamiento de consultas remoto – Formato XML en el que devolver los resultados

Page 170: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

170

Ejemplo SPARQLPREFIX table: <http://www.daml.org/2003/01/periodictable/PeriodicTable#>SELECT ?symbol ?numberFROM <http://www.daml.org/2003/01/periodictable/PeriodicTable#>WHERE{ { ?element table:symbol ?symbol; table:atomicNumber ?number; table:group table:group_17. OPTIONAL { ?element table:color ?color. } } UNION { ?element table:symbol ?symbol; table:atomicNumber ?number; table:group table:group_18. }}ORDER BY DESC(?number)LIMIT 10OFFSET 10

Page 171: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

171

Microformatos• Añaden semántica simple al marcado para hacer que no sólo sea legible y

renderizable sino también comprensible por la máquina• Los microformats aportan elementos de datos (eventos, contactos o

localizaciones) sobre HTML de modo que pueden ser detectados y la información contenida en ellos extraída por software, indexada, etc.

• Ejemplo:<span class="geo"><span class="latitude">52.48</span>,

<span class="longitude">-1.89</span></span> • Firefox 3 e IE8 proveen soporte para microformatos• Ejemplo:

• hCard creator: http://tantek.com/microformats/hcard-creator.html• Herramienta: Firefox Operator (

https://addons.mozilla.org/es-ES/firefox/addon/4106)

Page 172: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

172

RDFa• RDFa = Haciendo más fácil empotrar RDF en XHTML y XML

– Resuelve la principal limitación de RDF: es muy compresible por máquinas pero muy poco por humanos

– Añade metadatos a XHTML sin afectar la visualización de navegadores• La página web es ahora legible tanto por humanos como agentes software

– Permite la agregación de datos y la asociación de metadatos para tareas más sofisticadas que aquellas permitidas mediante screen scrapping

– Utiliza algunos atributos de XHTML 1 existentes y otros nuevos de XHMTL 2 para guardar sujetos, predicados y objetos de tripletas RDF

• Los atributos XHTML 1 href, content, rel, rev, y datatype• Los nuevos atributos de meta-información about, role y property de

XHTML 2 (http://www.w3.org/TR/xhtml2/mod-meta.html) module– Ejemplo: <p about="http://www.deusto.es/events/event1"

instanceof="cal:Vevent">

• Referencia: http://rdfa.info/

Page 173: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

173

GRDDL• GRDDL es un mecanismo para extraer descripciones de recursos de dialectos de

lenguajes– Define un estándar para declarar que una página web o XML puede ser transformada

en un grafo RDF, así como identifica el algoritmo a utilizar para tal transformación• glean –verb (used with object)

1. to learn, discover, or find out, usually little by little or slowly. –verb (used without object)

• Es un lenguaje de marcado para ...– ... declarar que un documento XML incluye datos extraíbles (PROFILE) o– ... ligarlo a un algoritmo (típicamente XSLT) para extraer los datos RDF del documento

(TRANSFORMATION)• El lenguaje de marcado incluye:

1. Un atributo de espacio de nombres para ser incluido en documentos XMLxmlns:grddl='http://www.w3.org/2003/g/data-view#' grddl:transformation="glean_title.xsl"

2. Un enlace asociado a un perfil para incluirse en documentos XHTML válidos.<head profile="http://www.w3.org/2003/g/data-view"><link rel="transformation" href="glean_title.xsl" />

Page 174: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

174

Resumen de Mecanismos para Añadir Semántica

• Microformatos– Diseñados primero para los humanos y después para las máquinas– Pequeños pasos para resolver problemas específicos uno a uno– No puede ser validado fácilmente (por ejemplo si mezclas los microformatos hCard y

hCal no hay modo de garantizar una correcta interpretación• <a href="http://jane-blog.example.org/" rel="sweetheart date

met">Jane</a>

• RDFa– Cuando la ontología subyacente es demasiado complicada para ser expresada como

un microformato• los microformatos son buenos para micro-metadatos (e.j. nombre, dirección, fechas de

eventos) pero no para datos complejos (e.j. proteínas, datos geológicos)– Cuando necesitas combinar varios vocabularios en una página

• gestionar posibles conflictos entre primitivas e.j. class="name" and class="name" vs. rel="foaf:name" and rel="prod:name"

• GRDDL– Middleware para juntar microformatos y RDFa

• Pegamento para las diferentes técnicas de semantización• ¡¡Todas juntas nos ayudarán a alcanzar la visión de una web con más

significado, pero todavía comprensible tanto a humanos como máquinas!!

Page 175: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

175

Web Semántica vs. web semánticaWeb Semántica web semántica

Filosofía

Construye un formato común de datos para expresar el significado de los datos. Utiliza ontologías para ayudar a las máquinas a entender el contenido web.

Los humanos primero, las máquinas después. Codifican el contenido web con etiquetas especiales

Lenguaje RDF, RDFS, OWLMicroformats (basados en XHTML), RDFa, GRDDL

FormatoDebe contener documentos RDF bien formados

Cualquier cosa vale, siempre que sea XHTML

SemánticaDefinida por el modelo ontológico subyacente (e.j., OWL)

Desacoplado. No hay modelo semántico formal, a no ser que se use RDFa

Ejemplos FOAF, OWL-S, OWL-TimeXFN (red social), hCard (contacto), hReview (opiniones), rel-tag (etiquetado)

Page 176: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

176

Aplicaciones Semánticas• Son aplicaciones que intentan determinar el significado del texto y otros

datos y crean conexiones para el usuario– Promocionan la portabilidad de datos y conectividad transforman la Web en

una plataforma• http://www.readwriteweb.com/archives/10_semantic_apps_to_watch.php

Page 177: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

177

Yahoo! SearchMonkey• Precursor de generador de resultados de búsquedas mejorados

– Precedió a Google Snippets y ya es funcional• Usa datos estructurados para mejorar la presentación de resultados de

búsquedas• Ejemplos:

– http://search.yahoo.com/search?p=avila+boston– http://gallery.search.yahoo.com/

Page 178: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

178

Google Rich Snippets• Si colocas en tus páginas ciertos microformatos (hCard,

hReview, hProduct) o anotaciones que servirán para mejorar los resultados de búsqueda– Dan un resumen de sus resultados de búsqueda de un golpe– Interesante porque:

• Google sugiere el uso de marcado semántico, sin recurrir a su especialidad en machine learning

• Hay un móvil económico para el uso de marcado semántico

Page 179: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

179

OpenCalais

• La misión de OpenCalais es generar metadatos semánticos a partir de contenido textual– Utiliza técnicas de NLP, machine learning y otras– Analiza documentos y encuentra entidades en ellos

• No sólo identificar entidades, devuelve hechos

• Ejemplo de uso: – http://viewer.opencalais.com/– http://www.opencalais.com/showcase

• Proyecto relacionado: – http://semanticproxy.com

Page 180: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

180

LinkedData• “A term used to describe a recommended best practice for

exposing, sharing, and connecting pieces of data, information, and knowledge on the Semantic Web using URIs and RDF.“

• Permite descubrir, conectar, describir y reutilizar todo tipo de datos.– Pasa de una Web de Documentos a una Web de Datos

• En Mayo 2009 ya contiene 4,2 billones de tripletas RDF, ligadas por 142 millones de enlaces

• Pensado para abrir y conectar diversos vocabularios e instancias semánticas, para que puedan ser utilizados por la comunidad semántica

• URL: http://linkeddata.org/

Page 181: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

181

A Mash-up …

Page 182: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

182

Mash-ups: Poniendo en Práctica WOA

• http://hinchcliffe.org

Page 183: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

183

Mecanismos Actuales para Crear un Mashup

• Escribirlo a mano– http://www.programmableweb.com/matrix

• Usar herramientas que te ayudan a su construcción (http://mashable.com/2007/07/08/mashups/):• Google Mashup Editor y Microsoft PopFly (http://www.popfly.com) • Intel Mash Maker (http://mashmaker.intel.com)

– http://mashmaker.intel.com/web/gallery.php#Google Images

• Yahoo! Pipes (http://pipes.yahoo.com) – Ejemplo: http://pipes.yahoo.com/pipes/pipe.edit?_id=fELaGmGz2xGtBTC3qe5lkA

• IBM’s QEDWiki

Page 184: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

184

Problemática Web 2.0 y Mashups• La Web 2.0 social define un portal como un “jardín cerrado” (walled

garden) donde sus frutos difícilmente pueden ser recogidos y combinados con los de otros portales.

• Una manera de romper los muros de los jardines de datos de los portales Web 2.0 actuales es ofrecer Open APIs– A menudo, estas APIs dan lugar a estructuras de datos en XML que deben ser

procesadas e integradas por los consumidores– RDF y OWL permiten combinar las respuestas de un portal con las de otro

• haciendo que las sentencias RDF de dos localizaciones diferentes hagan referencia al mismo concepto (URI)

• estableciendo correspondencias mediante OWL indicando que dos conceptos son equivalentes

• El uso de RDF para generar respuestas desde diferentes portales de datos distribuidos permite el uso del lenguaje de consultas SPARQL

Page 185: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

185

Problemática de la Web Semántica

• La Web Semántica presenta dos problemas principales para su adopción global: – disponibilidad de los datos y

• Necesidad de creación de interfaces que permitan a usuarios web convencionales contribuir a la Web Semántica

– diseño de interfaces de interacción• Desarrollar interfaces que permitan visualizar más

cómodamente los grafos de relaciones entre conceptos que constituyen la Web Semántica

Page 186: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

186

Mash-ups Web 2.0• HASTA AHORA …

• Los mashups funcionan si estás buscando un único tipo de cosa (cafés, hoteles, gimnasios) y vienen de una fuente

• En los mash-ups Web 2.0 tradicionales, cada vez que se integra una nueva fuente de información es preciso desarrollar un nuevo adaptador que convierta los datos capturados al formato interno utilizado en el mash-up– En el mash-up semántico bastaría rellenar un formulario web donde

se especifica la URL de publicación de eventos de un portal, así como un conjunto mínimo de metadatos para automatizar el proceso

Page 187: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

187

Mash-up Semánticos

• Los mashups semánticos mezclan información proveniente de diferentes fuentes y organizan los resultados

• Los mash-up semánticos son mucho más flexibles – convierten la información recuperada a formato RDF (lingua franca) fácilmente filtrable y consultable con SPARQL. – Tienen la capacidad de evolucionar sin requerir cambios en su código

• Los datos provistos en formatos de representación sintácticos diferentes, pero tales datos, semánticamente, deben proveer una información muy similar, fácilmente convertible a un vocabulario RDF común.

Page 188: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

188

Mash-up Semánticos

• … o como la Web 2.0 actual puede beneficiarse de la adopción de ciertas tecnologías semánticas para dar lugar a portales web más inteligentes– Potencial combinación de Web 2.0 y Web Semántica

• Ejemplo:– mash-up semántico capaz de agregar información

heterogénea sobre eventos proveniente de diferentes organizaciones y de mostrarla de manera conjunta sobre un mapa de GoogleMaps

Page 189: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

189

Mash-ups Semánticos

Page 190: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

190

Ejemplo Ontología de Mash-up• Ontología que modela “Eventos geo-localizados organizados

por una entidad”– en vez de diseñar una ontología desde cero, es preferible hacer uso de

vocabularios RDF bien conocidos tales como Calendar, vCard y Geo, que permiten representar eventos:

• RDF Calendar (http://www.w3.org/TR/2005/NOTE-rdfcal-20050929/)• vCard-RDF (http://www.w3.org/TR/vcard-rdf)• Geo RDF (http://www.w3.org/2003/01/geo/)

– Y de sus microformatos equivalentes:• hCalendar (http://microformats.org/wiki/hcalendar) • hCard (http://microformats.org/wiki/hcard)• geo (http://microformats.org/wiki/geo)

Page 191: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

191

Evento geolocalizado expresado con hCalendar

<div id="empresadigital: event1" class="vevent"> <h1><span class="summary">OSGI: una Plataforma Modular y Ligera para

Construir Aplicaciones basadas en Servicios</span></h1> <h2><abbr title="20080401T0900" class="dtstart">22 Mayo del 2008 9am a

</abbr><abbr title="20080401T1400" class="dtend">2pm</abbr> en <span class="location">Parque Tecnológico de Álava, Miñano</span></h2>

<abbr class="geo" title="42.883; -2.760"></abbr> <p class="description">OSGi es una de las tecnologías de software

distribuido que más impacto está causando últimamente. Ven a este curso y aprende que hay detrás de OSGi.<a href="http://www.empresadigital.net/osgi" class="url">Pulsa</a> para obtener más información.</p>

<p><span class="organizer vcard">Organizado por</span> <a href="http://www.arabadigitala.com" class="url"><span class="fn

org">Araba Enpresa Digitala</span></a>. Contáctanos en <a class="email" href="mailto:[email protected]"> [email protected]</a>

</p> <p><span class="logo" content="images/logo_ARABA.gif"> <img

src="images/logo_ARABA.gif"/></span></p></div>

Page 192: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

192

Evento geolocalizado en RDFa<?xml version="1.0" encoding="iso-8859-1"?><!--<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">--><html xmlns:cal="http://www.w3.org/2002/12/cal/ical#" xmlns:contact="http://www.w3.org/2001/vcard-rdf/3.0#"

xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"><head>

<title>Eventos de la Facultad de Ingenieria de la Universidad de Deusto</title></head><body>

<p about="http://www.deusto.es/events/event1" instanceof="cal:Vevent">Charla técnica:<span property="cal:summary">

Web con minusculas</span>a celebrarse el dia<span property="cal:dtstart" content="20080412T1600-0500">

12 de Marzo a las 4pm.</span>en Auditorio Principal Universidad de Deusto<span href="#p1" rel="geo:Point">

<span about="#p1"><span property="geo:lat">43.270737</span><span property="geo:long">-2.939637</span>

</span></span>organizado por<span href="http://www.deusto.es/staff/dipina" rel="cal:organizer">Diego Lopez de

Ipina</span></p>...

Page 193: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

193

Evento geolocalizado expresado en RDF<?xml version="1.0" encoding="iso-8859-1"?><rdf:RDF xmlns:cal=http://www.w3.org/2002/12/cal/icaltzd# xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#"> <rdf:Description rdf:about="http://www.revistasprofesionales.com/solop#event2"> <rdf:type rdf:resource="http://www.w3.org/2002/12/cal/icaltzd#Vevent"/> <cal:organizer rdf:resource="http://www.revistasprofesionales.com/solop"/> <cal:dtend rdf:datatype="http://www.w3.org/2001/XMLSchema#date">2008-05-27</cal:dtend> <cal:summary rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral">Charla sobre Web 3.0</cal:summary> <cal:description rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral">Ven a ver lo último en la sinergia entre Web 2.0

y Web Semántica (GRDDL, RDFa, microformátos)</cal:description> <cal:url rdf:resource="http://www.revistasprofesionales.com/solop/charla2"/> <cal:dtstart rdf:datatype="http://www.w3.org/2001/XMLSchema#date">2008-05-27</cal:dtstart> <cal:location rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral">Madrid, España</cal:location> <geo:Point> <rdf:Description rdf:about="p1"> <geo:lat rdf:parseType="Literal">40.437</geo:lat>

<geo:long rdf:parseType="Literal">-3.625</geo:long> </rdf:Description> </geo:Point> </rdf:Description>...</rdf:RDF>

Page 194: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

194

Consulta que extrae eventos agregadosPREFIX cal: <http://www.w3.org/2002/12/cal/icaltzd#> PREFIX contact: <http://www.w3.org/2001/vcard-rdf/3.0#>PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#> PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>SELECT DISTINCT ?summary ?description ?dtstart ?dtend ?lat ?long ?org ?url ?email ?logoWHERE { ?event cal:summary ?summary. ?event cal:dtstart ?dtstart. OPTIONAL { ?event cal:organizer ?organizer. ?organizer contact:fn ?org. ?organizer contact:url ?url. ?organizer contact:email ?email. OPTIONAL { ?organizer contact:logo ?logo. } } OPTIONAL { ?event geo:Point ?point. ?point geo:lat ?lat. ?point geo:long ?long. } OPTIONAL { ?event cal:geo ?loc. ?loc <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> ?lat. ?loc <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> ?restgeo. ?restgeo <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> ?long. } OPTIONAL { ?event cal:dtend ?dtend. } OPTIONAL { ?event cal:description ?description. } FILTER ( xsd:dateTime(?dtstart) >= xsd:dateTime("2008-04-14T00:00:00Z") ) FILTER ( xsd:dateTime(?dtend) <= xsd:dateTime("2008-04-21T00:00:00Z") )} ORDER BY ?event;

Page 195: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

195

Mashup Semántico

Page 196: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

196

Problemas de los Mecanismos de Programación SOA/WOA

• Un servicio REST o SOAP puede hacer cualquier cosa• Cualquier Input• Cualquier Output• Diferentes modos de invocarse

• Es necesario la mediación de datos para poder ligar las salidas de un servicio REST o SOAP con otro, es decir, para crear ecosistemas de mashups

• Hay varias iniciativas que ayudan en ello:– SAWSDL (Semantically Annotated Web Services)– SA-REST – añadir semántica a servicios basados en REST

• Web Application Description Language (WADL)– https://wadl.dev.java.net/wadl20090202.pdf

• WSDL 2.0– http://www.ibm.com/developerworks/webservices/library/ws-restwsdl/

Page 197: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

197

Ejemplo de SA-REST<html xmlns:sarest="http://lsdis.cs.uga.edu/SAREST#"> <body> <p about="http://lsdis.cs.uga.edu/~jlathem/FindPerson">

This service takes a <span property="sarest:input“>http://xmlns.com/foaf/0.1/#person </span> as an input. The service returns a <span property="sarest:output">

http://otheront/#location </span> as the result. The page should be invoked by an <meta property="sarest:catapouamus" content="HTMLGET"/> <meta property="sarest:upcast" content="test"/> <meta property="sarest:downcast" content="test2"/> <meta property="sarest:operation" content="LookupPerson"/>

</p> </body></html>

Page 198: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

198

Ejemplo Herramienta de Composición de Servicios REST

Page 199: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

199

Conclusiones• Sólo una nueva Internet posibilitará de un modo robusto nuevos servicios

y funcionalidades– Internet of Services, Internet of Things, …

• La Web del Futuro será una plataforma de ejecución de servicios RIA cada vez más inteligentes, consumibles y alojados en dispositivos heterogéneos (desde la nube, a servidores web tradicionales o los propios objetos cotidianos)

• Los paradigmas Semantic Web, Cloud Computing e Internet de las Cosas van a cambiar cómo desplegar funcionalidad empresarial y cotidiana en la Web– Todo va a alojarse en la Web: la Web va a ser el ordenador y el navegador el

SO que gestiona los recursos de la Web– La coordinación de Web de Datos y los Ecosistemas de Servicios Distribuidos

en Internet sólo será posible mediante mediación semántica

Page 200: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

200

Referencias• European Future Internet Portal, http://www.future-internet.eu/• The Future of the Internet, Bled 31 March 2008,

ftp://ftp.cordis.europa.eu/pub/fp7/ict/docs/ch1-g940-280-future-internet-ld_en.pdf

• Future Internet: The Cross-ETP Vision Document, Version 1, 8. January, 2009, http://www.future-internet.eu/fileadmin/documents/reports/Cross-ETPs_FI_Vision_Document_v1_0.pdf

• How Web 3.0 Will Work, http://computer.howstuffworks.com/web-30.htm

• Web Evolution, http://www.slideshare.net/novaspivack/web-evolution-nova-spivack-twine

• Three New Search Services: Wolfram|Alpha, Microsoft Bing, Google Squared, http://dltj.org/article/alpha-bing-squared/

• Bing Search Engine, http://en.wikipedia.org/wiki/Bing_(search_engine)

Page 201: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

201

Referencias• Cloud Computing – Disruptive Innovation & Enabling Technology,

http://blog.gogrid.com/2008/08/20/presentation-cloud-computing-disruptive-innovation-enabling-technology/

– http://www.slideshare.net/aditya_n_jha/cloud-computing-and-amazon-web-services-presentation

• Web Applications 1.0, http://www.whatwg.org/specs/web-apps/2005-09-01/• The Internet of Things

– http://www.itu.int/osg/spu/publications/internetofthings/InternetofThings_summary.pdf

• Enterprise 2.0, Web 2.0, WOA– http://blogs.zdnet.com/Hinchcliffe/– http://hinchcliffe.org/

• Programmable Web– http://www.programmableweb.com

Page 202: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

202

Referencias• Opera Labs – http://labs.opera.com/

– http://unite.opera.com/

• Mozilla Labs – http://labs.mozilla.com/– http://wave.google.com/

• Google App Engine– http://code.google.com/intl/en/appengine/docs/python/gettingstarted/– http://code.google.com/intl/en/appengine/docs/java/gettingstarted/

• Amazon Web Services– http://aws.amazon.com/– http://developer.amazonwebservices.com/connect/kbcategory.jspa?categoryI

D=59

• Semantic Web Apps and Platforms:– http://www.readwriteweb.com/archives/10_semantic_apps_to_watch.php– http://www.readwriteweb.com/archives/top_10_semantic_web_products_of

_2009.php

– http://www.novaspivack.com/ -- Minding the Planet

Page 203: Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

203

Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios

15 de Julio 2010, 9:30-13:30 Garaia Enpresa Digitala, Goiru Kalea 1, Arrasate-Mondragon

Dr. Diego Lz. de Ipiña Glz. de [email protected]

http://paginaspersonales.deusto.es/dipina