SlideShare una empresa de Scribd logo
1 de 203
Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios15 de Julio 2010, 9:30-13:30 GaraiaEnpresaDigitala, GoiruKalea 1, Arrasate-MondragonDr. Diego Lz. de Ipiña Glz. de Artazadipina@deusto.eshttp://paginaspersonales.deusto.es/dipina
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
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 AppEngine 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  
Limitaciones de la Internet Actual (1) 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 debesuperar 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 (2) 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
¿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/
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
Visión de la Internet del Futuro
Arquitectura de la Internet del Futuro
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
La Internet del Futuro en el 7º PM
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
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
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
Requisitos de la Future Internet Enrutamiento y direccionamiento escalable y dinámico Diagnosis y gestionabilidad de recursos y tráfico de datos Seguridad, privacidad, confianza y contabilidad Disponibilidad, ubicuidad y simplicidad Adaptación y evolución de entornos heterogéneos, contenidos, contexto y necesidades de aplicaciones (vehiculares, industriales, vida) Movilidad independiente de sistema operativo, aplicación o máquina Búsqueda/localización, selección, composición y adaptación Más allá de la comunicación digital: semántica (inteligibilidad de cosas y contenidos), háptico, emocional, etc.  Sostenibilidad energética y económica
Desafíos Técnicos Clave Internet by and forPeople: 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.
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, dispositivosmóviles, wearables, M2M, RFID and so on .
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)
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
Desafíos de la Internet por y para la Gente 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 Dar más poder al usuario – más y mejores servicios personalizados y creados por los propios usuarios (enfoque Do It Yourself – DIY) 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
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.
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: Contenido digital inteligente– información comprensible disponible al usuario, incluyendo tanto datos (esencia) como metadatos (facilitando su búsqueda, procesamiento, consumo, etc.) 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 Nuevosdispositivos 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.
Ejemplo Internet de la Gente y Contenidos
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
Internet de las Cosas
Evolución de las Aplicaciones RFID ,[object Object]
Wearable computing
Smart dust
Machine-to-Machine (M2M) communication
Situation / Localization based services
Signaling of use-by date
Automatic re-order process and pricing
Alert for health risk
Advanced announcement of delivery goods
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 inventoryComplexity / Value ,[object Object]
Protection of trademarks
Terrorism combat
Event management (VIP, Ticketing)
Intelligent clothesInteracting Objects Acting Objects Sensing Objects Data Objects ePC* Objects time Sources: Siemens CT / STA / CD S, Mitsubishi Electric Research * electronic Product Code
¿Es IoT ya una Realidad? Trojan room coffee machine, Arduino, tiki tag, nabaztag, chumby, forecast umbrella, Ceiva frame
Desafíos de Internet de las Cosas Procesar grandes cantidades de información de “cosas conectadas” y ofrecer servicios en respuesta Investigar en nuevos modos y mecanismos de encontrar, recuperar y transmitir datos dinámicamente Descubrimientode datos sensoriales — en tiempo y espacio Comunicaciónde datos sensoriales: consultas complejas (síncronas), publish/subscribe (asíncronas) Procesamientode gran variedad de streams de datos sensoriales: correlación, agregación y filtrado Dimensión ética y social: mantener el equilibrio entre personalización, privacidad y seguridad
Internet de los Servicios 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 Adapted from SAP Research, 2008, and SEEKDA, 2008
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: Internet-scale service oriented computing –permite el acceso a recursos computacionales, datos o software, como servicios Acceso a servicios contextualizado, proactivo y personalizado – context-awareness, interacción multi-modal, end-user empowerment, colaborativo Orquestación de servicios y servicios base – diferentes capas de servicios, desde servicios de infraestructura a servicios específicos con interfaz de usuario.
Arquitectura de la Internet de los Servicios
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 serviceplatforms: modularidad de servicios para facilitar su integración por usuarios finales Autonomiccomputing: sistemas autogestionados Green IT: optimización del consumo energético
Desafíos de la Internet de los Servicios 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).  Los servicios deben ser buscados, identificados y compuestos en componentes de procesos de negocio 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
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
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)
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-projects.html
La Web del Futuro ,[object Object]
Las máquinas entienden el contenido que han estado alojando y pueden obtener información de la semántica de los documentos
Tecnologías: XML, RDF, SPARQL, OWL, µFormats...
 Web Ubicua:
Provee una framework para exportar capacidades de coordinación de dispositivos a las aplicaciones web
Pretende mejorar las capacidades de los navegadores para habilitar nuevos tipos de aplicaciones contextuales
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á!,[object Object]
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 frontend 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
La Evolución de la Web
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
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. ,[object Object]
Ubiquitous Web
3D Interfaces
Artificial Intelligence
…,[object Object]
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)
Web 1.0 vs. Web 2.0 vs. Web 3.0 ,[object Object]
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,[object Object]
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
Evolución de los Navegadores ,[object Object]
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 WorldWide Web
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,[object Object]
El Browser como Sistema Operativo
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?
El Browser como Broker de Información ,[object Object],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
Mozilla Labs Prism ,[object Object],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
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  buscaDeusto in Wikipedia translate (text) (from language) (to language)  map [location | selected text] command-list  te permite pedir ayuda de todos los comandos
Mozilla Ubiquity 15.06.2009
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
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
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
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 frameworkJavaScript
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/
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/
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
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
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
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
RIA para Todo Tipo de Dispositivos Palm Pre – Web OS Yahoo! TV Widgets Apple iPhone Google NexusOne – Android Nokia N97
Todo Web y Todo Multi-táctil Amazon Kindle AsusEeeTop Apple iPad Microsoft Surface
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/
Opera Unite Services
Componentes de la Web como SO
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/
Google Wave
Google Wave
El Futuro de las Búsquedas Últimamente han aparecido varios servicios similares a buscadores interesantes:  Wolfram|Alpha Microsoft Bing and  Google Squared RichSnippets & SearchMonkey Real-time SearchEngines
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
Wolfram|Alpha
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
Microsoft Bing
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 “rollercoasters”) 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
Usando Google Squared
Real-Time Web & SearchEngines 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/)
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/)
PubSubHubbub
El Futuro de las Búsquedas: Personalizadas y en Tiempo Real
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 “gracefuldegradation” http://www.whatwg.org/specs/web-apps/2005-09-01/
La Web como Plataforma: Parte Servidora SOA: Service Oriented Architecture ,[object Object]
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 StyleWOA: Web Oriented Architecture ,[object Object]
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. ,[object Object]
La Web como Plataforma: Parte Servidora SOAP: Simple Object Access Protocol ,[object Object]
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: RepresantionalState Transfer ,[object Object]
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.,[object Object]
Usando REST
Web Oriented Architecture (WOA)
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
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/
El Futuro del Desarrollo Software
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
Cloud Computing es … … capacidad computacional y almacenamiento virtualizadaexpuesta 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
The “Cloud” = 10X Improvement ,[object Object],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
Evolución hacia Cloud Computing La coexistencia y limitaciones de clustercomputing y supercomputing dieron lugar a gridcomputing De gridcomputing progresamos hacia utilitycomputing, i.e. Servicios computacionales empaquetados como agua, electricidad, etc. Esto derivó en Cloud Computing, es decir, todo como servicio (XaaS) : ,[object Object]
Software como Servicio
Infraestructura como Servicio,[object Object]
Múltiples Descripciones Gráficas de la “Cloud”
Arquitectura Cloud Computing
Características de Cloud Tipos de despliegue Manifestaciones  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 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 AppEngine, 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,…
Diferentes Manifestaciones
Cloud Computing vs. Centros de Datos Tradicionales
Componentes de Cloud Computing
Taxonomía de Cloud Computing
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
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
Plataformas Cloud Contenedores de aplicaciones Entornos cerrados Ejemplos: Google AppEngine, Heroku, Mosso, Engine Yard, Joyent o Force.com (SalesForceDevPlatform) 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
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
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
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
¿Qué framework o plataforma usar para mis aplicaciones Cloud?
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 RelationalDatabase 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/
Amazon Web Services (AWS)
Amazon Web Services (AWS)
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
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
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/,
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 edgelocationsque sirven contenidos a los usuarios finales. Tales edgelocationsse 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/
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/
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
Amazon SimpleDB
Amazon RelationalDatabase 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/
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
Registro y Documentación Se puede ver en detalle cómo acceder a AWS:  http://www.slideshare.net/ronaldbradford/getting-started-with-mysql-in-amazon-web-services?src=related_normal&rel=3462501 http://docs.amazonwebservices.com/AWSEC2/2009-11-30/GettingStartedGuide/
Amazon AWS Console
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ú “AccountActivity” que ilustra el gasto actual incurrido.
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 ResourceIdentifier (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
APIs Disponibles por Servicio AWS
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
Herramientas para Usar Amazon ScratchPadforSimpleDB 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?externalID=351&categoryID=88
Caso práctico de Álbum de Fotos Álbum de fotos que permite subir fotos, organizarlas y visualizarlas Arquitectura tradicional:
Caso práctico de Álbum de Fotos Solución Cloud con: S3, SDB, SQS y CloudFront Ejemplo descrito en: http://www.slideshare.net/javasymposium/developing-with-amazon-web-services-highly-scalable-services-that-are-someone-elses-headache-to-maintain-and-develop
Ejemplo Plataforma Cloud: Google App Engine Google AppEngine 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 AppEngine 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.)
Google AppEngine:Características 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 AppEngine 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/
Facturación Google AppEngine ,[object Object]
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,[object Object]
AppEngine 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 AppEngine 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. 
Funcionalidad de AppEnginefor Java AppEngine 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 AppEngine 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 TaskQueue Java API y la gestión de tareas por Cron.
Instalación de AppEnginefor Java Descargar el fichero de: http://code.google.com/intl/es/appengine/downloads.html#Google_App_Engine_SDK_for_Java Descomprimir el fichero .zip Crear una variable de entorno APPENGINE_JAVA_SDK que apunte al directorio raíz de instalación de la SDK Incluir el directorio %APPENGINE_JAVA_SDK%inen la variable de entorno PATH
Pasos para crear una Aplicación con Google AppEngine para Java Crear el proyecto de la aplicación Crear la clase servlet Crear el fichero de despliegue de la aplicación: web.xml Crear el archivo appengine-web.xml Ejecutar el proyecto Probar el proyecto: http://localhost:8080/<nombre-aplicación>  Subir la aplicación al dominio appspot.com
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%emosew_project_template Las aplicaciones Java de AppEngine 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 sourcecode...       META-INF/          ...otherconfiguration...  war/      ...JSPs, images, data files...      WEB-INF/         ...appconfiguration...  classes/         ...compiledclasses...  lib/         ...JARsforlibraries...
Paso 2: Creando la clase Servlet Crear en el directorio src/guestbook/ un fichero denominado GuestbookServlet.java con el siguiente contenido: packageguestbook;importjava.io.IOException;importjavax.servlet.http.*;publicclassGuestbookServletextendsHttpServlet{publicvoiddoGet(HttpServletRequestreq, HttpServletResponseresp) throwsIOException {      resp.setContentType("text/plain");      resp.getWriter().println("Hello, world");   }}
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 <?xmlversion="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-appxmlns="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>
Paso 4: Crear el fichero de configuración de aplicación GAE: appengine-web.xml AppEngine 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: <?xmlversion="1.0" encoding="utf-8"?> <appengine-web-appxmlns="http://appengine.google.com/ns/1.0"> <application>librocitas</application>     <version>1</version> </appengine-web-app>

Más contenido relacionado

La actualidad más candente

Application assessment for cloud affinity definition
Application assessment for cloud affinity definitionApplication assessment for cloud affinity definition
Application assessment for cloud affinity definitionDavide Veronese
 
使用 AWS 負載平衡服務讓您的應用程式規模化
使用 AWS 負載平衡服務讓您的應用程式規模化使用 AWS 負載平衡服務讓您的應用程式規模化
使用 AWS 負載平衡服務讓您的應用程式規模化Amazon Web Services
 
Serhii Kholodniuk: What you need to know, before migrating data platform to G...
Serhii Kholodniuk: What you need to know, before migrating data platform to G...Serhii Kholodniuk: What you need to know, before migrating data platform to G...
Serhii Kholodniuk: What you need to know, before migrating data platform to G...Lviv Startup Club
 
The People Model & Cloud Transformation - Transformation Day Public Sector Lo...
The People Model & Cloud Transformation - Transformation Day Public Sector Lo...The People Model & Cloud Transformation - Transformation Day Public Sector Lo...
The People Model & Cloud Transformation - Transformation Day Public Sector Lo...Amazon Web Services
 
Azure as a Chatbot Service: From Purpose To Production With A Cloud Bot Archi...
Azure as a Chatbot Service: From Purpose To Production With A Cloud Bot Archi...Azure as a Chatbot Service: From Purpose To Production With A Cloud Bot Archi...
Azure as a Chatbot Service: From Purpose To Production With A Cloud Bot Archi...Paul Prae
 
Introducing AWS Elastic Beanstalk
Introducing AWS Elastic BeanstalkIntroducing AWS Elastic Beanstalk
Introducing AWS Elastic BeanstalkAmazon Web Services
 
Cloud Computing: Hadoop
Cloud Computing: HadoopCloud Computing: Hadoop
Cloud Computing: Hadoopdarugar
 
Introduction to Cloud Computing
Introduction to Cloud ComputingIntroduction to Cloud Computing
Introduction to Cloud ComputingTom Eberle
 
Google cloud platform
Google cloud platformGoogle cloud platform
Google cloud platformAnkit Malviya
 
AWS Organizations & Service Control Policy
AWS Organizations & Service Control PolicyAWS Organizations & Service Control Policy
AWS Organizations & Service Control PolicyBhuvaneswari Subramani
 
Coordinating Microservices with AWS Step Functions.pdf
Coordinating Microservices with AWS Step Functions.pdfCoordinating Microservices with AWS Step Functions.pdf
Coordinating Microservices with AWS Step Functions.pdfAmazon Web Services
 
Azure stack all you need to know
Azure stack   all you need to knowAzure stack   all you need to know
Azure stack all you need to knowSusantha Silva
 
Building and Growing SaaS on AWS for Partners
Building and Growing SaaS on AWS for PartnersBuilding and Growing SaaS on AWS for Partners
Building and Growing SaaS on AWS for PartnersAmazon Web Services
 

La actualidad más candente (20)

Application assessment for cloud affinity definition
Application assessment for cloud affinity definitionApplication assessment for cloud affinity definition
Application assessment for cloud affinity definition
 
使用 AWS 負載平衡服務讓您的應用程式規模化
使用 AWS 負載平衡服務讓您的應用程式規模化使用 AWS 負載平衡服務讓您的應用程式規模化
使用 AWS 負載平衡服務讓您的應用程式規模化
 
Serhii Kholodniuk: What you need to know, before migrating data platform to G...
Serhii Kholodniuk: What you need to know, before migrating data platform to G...Serhii Kholodniuk: What you need to know, before migrating data platform to G...
Serhii Kholodniuk: What you need to know, before migrating data platform to G...
 
The People Model & Cloud Transformation - Transformation Day Public Sector Lo...
The People Model & Cloud Transformation - Transformation Day Public Sector Lo...The People Model & Cloud Transformation - Transformation Day Public Sector Lo...
The People Model & Cloud Transformation - Transformation Day Public Sector Lo...
 
Azure as a Chatbot Service: From Purpose To Production With A Cloud Bot Archi...
Azure as a Chatbot Service: From Purpose To Production With A Cloud Bot Archi...Azure as a Chatbot Service: From Purpose To Production With A Cloud Bot Archi...
Azure as a Chatbot Service: From Purpose To Production With A Cloud Bot Archi...
 
Introducing AWS Elastic Beanstalk
Introducing AWS Elastic BeanstalkIntroducing AWS Elastic Beanstalk
Introducing AWS Elastic Beanstalk
 
Cloud Computing: Hadoop
Cloud Computing: HadoopCloud Computing: Hadoop
Cloud Computing: Hadoop
 
Introduction to Cloud Computing
Introduction to Cloud ComputingIntroduction to Cloud Computing
Introduction to Cloud Computing
 
Google cloud platform
Google cloud platformGoogle cloud platform
Google cloud platform
 
AWS Organizations & Service Control Policy
AWS Organizations & Service Control PolicyAWS Organizations & Service Control Policy
AWS Organizations & Service Control Policy
 
Coordinating Microservices with AWS Step Functions.pdf
Coordinating Microservices with AWS Step Functions.pdfCoordinating Microservices with AWS Step Functions.pdf
Coordinating Microservices with AWS Step Functions.pdf
 
Azure stack all you need to know
Azure stack   all you need to knowAzure stack   all you need to know
Azure stack all you need to know
 
Application Migrations
Application MigrationsApplication Migrations
Application Migrations
 
AWS Elastic Beanstalk
AWS Elastic BeanstalkAWS Elastic Beanstalk
AWS Elastic Beanstalk
 
AWS-Data-Migration-module3
AWS-Data-Migration-module3AWS-Data-Migration-module3
AWS-Data-Migration-module3
 
Building and Growing SaaS on AWS for Partners
Building and Growing SaaS on AWS for PartnersBuilding and Growing SaaS on AWS for Partners
Building and Growing SaaS on AWS for Partners
 
Azure Stack Overview
Azure Stack OverviewAzure Stack Overview
Azure Stack Overview
 
Amazon simple queue service
Amazon simple queue serviceAmazon simple queue service
Amazon simple queue service
 
Introduction to Google App Engine
Introduction to Google App EngineIntroduction to Google App Engine
Introduction to Google App Engine
 
Monitoring and Alerting
Monitoring and AlertingMonitoring and Alerting
Monitoring and Alerting
 

Destacado

EBE Madrid: El futuro de la web social
EBE Madrid: El futuro de la web socialEBE Madrid: El futuro de la web social
EBE Madrid: El futuro de la web socialAntonio Torpedo
 
LAS REDES SOCIALES EN EL E-LEARNING APLICADO AL TURISMO
LAS REDES SOCIALES EN EL E-LEARNING APLICADO AL TURISMOLAS REDES SOCIALES EN EL E-LEARNING APLICADO AL TURISMO
LAS REDES SOCIALES EN EL E-LEARNING APLICADO AL TURISMOJuan José Correa Venegas
 
Psychological Aspects of e-Learning 2.0
Psychological Aspects of e-Learning 2.0Psychological Aspects of e-Learning 2.0
Psychological Aspects of e-Learning 2.0Patrycja Rudnicka
 
3m 8ago11E-investigación bibliográfica: Web 2.0 y 3.0, teoría y práctica
3m 8ago11E-investigación  bibliográfica:  Web 2.0 y 3.0, teoría y  práctica3m 8ago11E-investigación  bibliográfica:  Web 2.0 y 3.0, teoría y  práctica
3m 8ago11E-investigación bibliográfica: Web 2.0 y 3.0, teoría y prácticaE-investigación bibliográfica, FCUNAM
 
Introduccion al e learning 2.0
Introduccion al e learning 2.0Introduccion al e learning 2.0
Introduccion al e learning 2.0Adolfo Rodriguez
 
eLearning: una apuesta por la calidad en la formación
eLearning: una apuesta por la calidad en la formacióneLearning: una apuesta por la calidad en la formación
eLearning: una apuesta por la calidad en la formaciónOlga Díez
 
Elearning mario-fajardo
Elearning mario-fajardoElearning mario-fajardo
Elearning mario-fajardoMario Fajardo
 
E-learning. Más allá del 2.0.
E-learning. Más allá del 2.0.E-learning. Más allá del 2.0.
E-learning. Más allá del 2.0.Miguel Angel Muras
 
Actividad nro. 10 las sucesiones testamentarias y ab intestato
Actividad nro. 10 las sucesiones testamentarias y ab intestatoActividad nro. 10 las sucesiones testamentarias y ab intestato
Actividad nro. 10 las sucesiones testamentarias y ab intestatonathalyederecho
 
Cuadro herramientas web 2.0
Cuadro herramientas web 2.0Cuadro herramientas web 2.0
Cuadro herramientas web 2.0audruey
 
El docente de eLearning 3.0: content curator, community manager... y más
El docente de eLearning 3.0: content curator, community manager... y másEl docente de eLearning 3.0: content curator, community manager... y más
El docente de eLearning 3.0: content curator, community manager... y másGrial - University of Salamanca
 
Cuadro comparativo web 1.0 - 2.0 - 3.0
Cuadro comparativo web 1.0 - 2.0 - 3.0Cuadro comparativo web 1.0 - 2.0 - 3.0
Cuadro comparativo web 1.0 - 2.0 - 3.0Maria Jimenez
 
Cuadro comparativo web 1.0,2.0,3.0
Cuadro comparativo web 1.0,2.0,3.0Cuadro comparativo web 1.0,2.0,3.0
Cuadro comparativo web 1.0,2.0,3.0Luis Ramirez
 
Arquitectura de servicios TIC y su impacto sobre Internet
Arquitectura de servicios TIC y su impacto sobre InternetArquitectura de servicios TIC y su impacto sobre Internet
Arquitectura de servicios TIC y su impacto sobre InternetCesar Garcia
 

Destacado (20)

Charla Future Internet, IV Premios Treelogic, Gijón, 13 de Mayo 2010
Charla Future Internet, IV Premios Treelogic, Gijón, 13 de Mayo 2010 Charla Future Internet, IV Premios Treelogic, Gijón, 13 de Mayo 2010
Charla Future Internet, IV Premios Treelogic, Gijón, 13 de Mayo 2010
 
EBE Madrid: El futuro de la web social
EBE Madrid: El futuro de la web socialEBE Madrid: El futuro de la web social
EBE Madrid: El futuro de la web social
 
LAS REDES SOCIALES EN EL E-LEARNING APLICADO AL TURISMO
LAS REDES SOCIALES EN EL E-LEARNING APLICADO AL TURISMOLAS REDES SOCIALES EN EL E-LEARNING APLICADO AL TURISMO
LAS REDES SOCIALES EN EL E-LEARNING APLICADO AL TURISMO
 
Psychological Aspects of e-Learning 2.0
Psychological Aspects of e-Learning 2.0Psychological Aspects of e-Learning 2.0
Psychological Aspects of e-Learning 2.0
 
3m 8ago11E-investigación bibliográfica: Web 2.0 y 3.0, teoría y práctica
3m 8ago11E-investigación  bibliográfica:  Web 2.0 y 3.0, teoría y  práctica3m 8ago11E-investigación  bibliográfica:  Web 2.0 y 3.0, teoría y  práctica
3m 8ago11E-investigación bibliográfica: Web 2.0 y 3.0, teoría y práctica
 
Introduccion al e learning 2.0
Introduccion al e learning 2.0Introduccion al e learning 2.0
Introduccion al e learning 2.0
 
eLearning: una apuesta por la calidad en la formación
eLearning: una apuesta por la calidad en la formacióneLearning: una apuesta por la calidad en la formación
eLearning: una apuesta por la calidad en la formación
 
Elearning mario-fajardo
Elearning mario-fajardoElearning mario-fajardo
Elearning mario-fajardo
 
E-learning. Más allá del 2.0.
E-learning. Más allá del 2.0.E-learning. Más allá del 2.0.
E-learning. Más allá del 2.0.
 
WEB 2.0 VS 3.0
WEB 2.0 VS 3.0WEB 2.0 VS 3.0
WEB 2.0 VS 3.0
 
e-Marketing 3.0
e-Marketing 3.0e-Marketing 3.0
e-Marketing 3.0
 
Actividad nro. 10 las sucesiones testamentarias y ab intestato
Actividad nro. 10 las sucesiones testamentarias y ab intestatoActividad nro. 10 las sucesiones testamentarias y ab intestato
Actividad nro. 10 las sucesiones testamentarias y ab intestato
 
Cuadro herramientas web 2.0
Cuadro herramientas web 2.0Cuadro herramientas web 2.0
Cuadro herramientas web 2.0
 
El docente de eLearning 3.0: content curator, community manager... y más
El docente de eLearning 3.0: content curator, community manager... y másEl docente de eLearning 3.0: content curator, community manager... y más
El docente de eLearning 3.0: content curator, community manager... y más
 
Cuadro comparativo web 1.0 - 2.0 - 3.0
Cuadro comparativo web 1.0 - 2.0 - 3.0Cuadro comparativo web 1.0 - 2.0 - 3.0
Cuadro comparativo web 1.0 - 2.0 - 3.0
 
Cuadro comparativo web 1.0,2.0,3.0
Cuadro comparativo web 1.0,2.0,3.0Cuadro comparativo web 1.0,2.0,3.0
Cuadro comparativo web 1.0,2.0,3.0
 
E Learning
E  LearningE  Learning
E Learning
 
Arquitectura de servicios TIC y su impacto sobre Internet
Arquitectura de servicios TIC y su impacto sobre InternetArquitectura de servicios TIC y su impacto sobre Internet
Arquitectura de servicios TIC y su impacto sobre Internet
 
Herramientas 2.0 aprendizaje
Herramientas 2.0  aprendizajeHerramientas 2.0  aprendizaje
Herramientas 2.0 aprendizaje
 
E-learning: Concepto, ventajas e inconvenientes.
E-learning: Concepto, ventajas e inconvenientes.E-learning: Concepto, ventajas e inconvenientes.
E-learning: Concepto, ventajas e inconvenientes.
 

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

Futureinternetmiramon 100113233139-phpapp02
Futureinternetmiramon 100113233139-phpapp02Futureinternetmiramon 100113233139-phpapp02
Futureinternetmiramon 100113233139-phpapp02Aula Cloud
 
Future Internet: Internet of Things, Cloud Computing & Linked Data --> Big Data
Future Internet: Internet of Things, Cloud Computing & Linked Data --> Big DataFuture Internet: Internet of Things, Cloud Computing & Linked Data --> Big Data
Future Internet: Internet of Things, Cloud Computing & Linked Data --> Big DataDiego López-de-Ipiña González-de-Artaza
 
Internet del Futuro: Internet de las Cosas, Computación en la Nube y la Web d...
Internet del Futuro: Internet de las Cosas, Computación en la Nube y la Web d...Internet del Futuro: Internet de las Cosas, Computación en la Nube y la Web d...
Internet del Futuro: Internet de las Cosas, Computación en la Nube y la Web d...Diego López-de-Ipiña González-de-Artaza
 
Internet del Futuro: Internet de las Cosas, Computación en la Nube y la Web d...
Internet del Futuro: Internet de las Cosas, Computación en la Nube y la Web d...Internet del Futuro: Internet de las Cosas, Computación en la Nube y la Web d...
Internet del Futuro: Internet de las Cosas, Computación en la Nube y la Web d...Diego López-de-Ipiña González-de-Artaza
 
UNAH VS COMPUTACION EN LA NUBE
UNAH VS COMPUTACION EN LA NUBEUNAH VS COMPUTACION EN LA NUBE
UNAH VS COMPUTACION EN LA NUBEAllan Blanco
 
Los servicios cloud computing móvil para la gestión documental
Los servicios cloud computing móvil para la gestión documentalLos servicios cloud computing móvil para la gestión documental
Los servicios cloud computing móvil para la gestión documentalIrisysleyer Barrios Rivero
 
Internet de las cosas
Internet de las cosasInternet de las cosas
Internet de las cosasjuanjoacol
 
Computacion en la nube
Computacion en la nubeComputacion en la nube
Computacion en la nubegsolisunahvs
 
Web 2.0 3.0 y e learning
Web 2.0 3.0 y e learningWeb 2.0 3.0 y e learning
Web 2.0 3.0 y e learningrichard_edison
 
Revista TicNews Febrero 2014
Revista TicNews Febrero 2014Revista TicNews Febrero 2014
Revista TicNews Febrero 2014Edicion Ticnews
 

Similar a Hacia la Internet del Futuro: Web 3.0 e Internet de los Servicios (20)

Hacia la Internet del Futuro: Web 3.0, Parte 1
Hacia la Internet del Futuro: Web 3.0, Parte 1Hacia la Internet del Futuro: Web 3.0, Parte 1
Hacia la Internet del Futuro: Web 3.0, Parte 1
 
Futureinternetmiramon 100113233139-phpapp02
Futureinternetmiramon 100113233139-phpapp02Futureinternetmiramon 100113233139-phpapp02
Futureinternetmiramon 100113233139-phpapp02
 
Future Internet: Internet of Things, Cloud Computing & Linked Data --> Big Data
Future Internet: Internet of Things, Cloud Computing & Linked Data --> Big DataFuture Internet: Internet of Things, Cloud Computing & Linked Data --> Big Data
Future Internet: Internet of Things, Cloud Computing & Linked Data --> Big Data
 
Internet del Futuro: Internet de las Cosas, Computación en la Nube y la Web d...
Internet del Futuro: Internet de las Cosas, Computación en la Nube y la Web d...Internet del Futuro: Internet de las Cosas, Computación en la Nube y la Web d...
Internet del Futuro: Internet de las Cosas, Computación en la Nube y la Web d...
 
Examen final
Examen finalExamen final
Examen final
 
Internet ver2
Internet ver2Internet ver2
Internet ver2
 
Examen final
Examen finalExamen final
Examen final
 
Internet del Futuro: Internet de las Cosas, Computación en la Nube y la Web d...
Internet del Futuro: Internet de las Cosas, Computación en la Nube y la Web d...Internet del Futuro: Internet de las Cosas, Computación en la Nube y la Web d...
Internet del Futuro: Internet de las Cosas, Computación en la Nube y la Web d...
 
UNAH VS COMPUTACION EN LA NUBE
UNAH VS COMPUTACION EN LA NUBEUNAH VS COMPUTACION EN LA NUBE
UNAH VS COMPUTACION EN LA NUBE
 
LAS WEBS
LAS WEBS LAS WEBS
LAS WEBS
 
Los servicios cloud computing móvil para la gestión documental
Los servicios cloud computing móvil para la gestión documentalLos servicios cloud computing móvil para la gestión documental
Los servicios cloud computing móvil para la gestión documental
 
El Papel De La Tecnologia SesióN 5 Map
El Papel De La Tecnologia SesióN 5 MapEl Papel De La Tecnologia SesióN 5 Map
El Papel De La Tecnologia SesióN 5 Map
 
03.infraestructura (1)
03.infraestructura (1)03.infraestructura (1)
03.infraestructura (1)
 
Internet de las cosas
Internet de las cosasInternet de las cosas
Internet de las cosas
 
Computacion en la nube
Computacion en la nubeComputacion en la nube
Computacion en la nube
 
Trabajo de convergencia y informatica
Trabajo de convergencia y informaticaTrabajo de convergencia y informatica
Trabajo de convergencia y informatica
 
Web 2.0 3.0 y e learning
Web 2.0 3.0 y e learningWeb 2.0 3.0 y e learning
Web 2.0 3.0 y e learning
 
Web 2.0
Web 2.0Web 2.0
Web 2.0
 
Resumen capitulo 3 y 4
Resumen capitulo 3 y 4Resumen capitulo 3 y 4
Resumen capitulo 3 y 4
 
Revista TicNews Febrero 2014
Revista TicNews Febrero 2014Revista TicNews Febrero 2014
Revista TicNews Febrero 2014
 

Más de Diego López-de-Ipiña González-de-Artaza

Humanized Computing: the path towards higher collaboration and reciprocal lea...
Humanized Computing: the path towards higher collaboration and reciprocal lea...Humanized Computing: the path towards higher collaboration and reciprocal lea...
Humanized Computing: the path towards higher collaboration and reciprocal lea...Diego López-de-Ipiña González-de-Artaza
 
Ontological Infrastructure for Interoperable Research Information Systems: HE...
Ontological Infrastructure for Interoperable Research Information Systems: HE...Ontological Infrastructure for Interoperable Research Information Systems: HE...
Ontological Infrastructure for Interoperable Research Information Systems: HE...Diego López-de-Ipiña González-de-Artaza
 
Fostering multi-stakeholder collaboration through co-production and rewarding
Fostering multi-stakeholder collaboration through co-production and rewarding Fostering multi-stakeholder collaboration through co-production and rewarding
Fostering multi-stakeholder collaboration through co-production and rewarding Diego López-de-Ipiña González-de-Artaza
 
A Collaborative Environment to Boost Sustainable Engaged Research & Co-Produc...
A Collaborative Environment to Boost Sustainable Engaged Research & Co-Produc...A Collaborative Environment to Boost Sustainable Engaged Research & Co-Produc...
A Collaborative Environment to Boost Sustainable Engaged Research & Co-Produc...Diego López-de-Ipiña González-de-Artaza
 
A Collaborative Environment to Boost Co-Production of Sustainable Public Serv...
A Collaborative Environment to Boost Co-Production of Sustainable Public Serv...A Collaborative Environment to Boost Co-Production of Sustainable Public Serv...
A Collaborative Environment to Boost Co-Production of Sustainable Public Serv...Diego López-de-Ipiña González-de-Artaza
 
Social Coin: Blockchain-mediated incentivization of citizens for sustainable ...
Social Coin: Blockchain-mediated incentivization of citizens for sustainable ...Social Coin: Blockchain-mediated incentivization of citizens for sustainable ...
Social Coin: Blockchain-mediated incentivization of citizens for sustainable ...Diego López-de-Ipiña González-de-Artaza
 
Human-centric Collaborative Services : IoT, Broad Data, Crowdsourcing, Engage...
Human-centric Collaborative Services : IoT, Broad Data, Crowdsourcing, Engage...Human-centric Collaborative Services : IoT, Broad Data, Crowdsourcing, Engage...
Human-centric Collaborative Services : IoT, Broad Data, Crowdsourcing, Engage...Diego López-de-Ipiña González-de-Artaza
 
Transiting to SMART COMMUNITIES by fostering Collaboration & CO-CREATION for ...
Transiting to SMART COMMUNITIES by fostering Collaboration & CO-CREATION for ...Transiting to SMART COMMUNITIES by fostering Collaboration & CO-CREATION for ...
Transiting to SMART COMMUNITIES by fostering Collaboration & CO-CREATION for ...Diego López-de-Ipiña González-de-Artaza
 
ROH: Proceso de Ingeniería Ontológica & Uso y Extensión de Vocabularios Estándar
ROH: Proceso de Ingeniería Ontológica & Uso y Extensión de Vocabularios EstándarROH: Proceso de Ingeniería Ontológica & Uso y Extensión de Vocabularios Estándar
ROH: Proceso de Ingeniería Ontológica & Uso y Extensión de Vocabularios EstándarDiego López-de-Ipiña González-de-Artaza
 

Más de Diego López-de-Ipiña González-de-Artaza (20)

Humanized Computing: the path towards higher collaboration and reciprocal lea...
Humanized Computing: the path towards higher collaboration and reciprocal lea...Humanized Computing: the path towards higher collaboration and reciprocal lea...
Humanized Computing: the path towards higher collaboration and reciprocal lea...
 
Generative AI How It's Changing Our World and What It Means for You_final.pdf
Generative AI How It's Changing Our World and What It Means for You_final.pdfGenerative AI How It's Changing Our World and What It Means for You_final.pdf
Generative AI How It's Changing Our World and What It Means for You_final.pdf
 
Democratizing Co-Production Of Sustainable Public Services
Democratizing Co-Production Of Sustainable Public Services Democratizing Co-Production Of Sustainable Public Services
Democratizing Co-Production Of Sustainable Public Services
 
Ontological Infrastructure for Interoperable Research Information Systems: HE...
Ontological Infrastructure for Interoperable Research Information Systems: HE...Ontological Infrastructure for Interoperable Research Information Systems: HE...
Ontological Infrastructure for Interoperable Research Information Systems: HE...
 
Fostering multi-stakeholder collaboration through co-production and rewarding
Fostering multi-stakeholder collaboration through co-production and rewarding Fostering multi-stakeholder collaboration through co-production and rewarding
Fostering multi-stakeholder collaboration through co-production and rewarding
 
A Collaborative Environment to Boost Sustainable Engaged Research & Co-Produc...
A Collaborative Environment to Boost Sustainable Engaged Research & Co-Produc...A Collaborative Environment to Boost Sustainable Engaged Research & Co-Produc...
A Collaborative Environment to Boost Sustainable Engaged Research & Co-Produc...
 
A Collaborative Environment to Boost Co-Production of Sustainable Public Serv...
A Collaborative Environment to Boost Co-Production of Sustainable Public Serv...A Collaborative Environment to Boost Co-Production of Sustainable Public Serv...
A Collaborative Environment to Boost Co-Production of Sustainable Public Serv...
 
PrácticaParticipación-INTERLINK-realizingcoproduction_final.pdf
PrácticaParticipación-INTERLINK-realizingcoproduction_final.pdfPrácticaParticipación-INTERLINK-realizingcoproduction_final.pdf
PrácticaParticipación-INTERLINK-realizingcoproduction_final.pdf
 
INTERLINK: Engaged Research through co-production
INTERLINK: Engaged Research through co-production INTERLINK: Engaged Research through co-production
INTERLINK: Engaged Research through co-production
 
Internet of People: towards a Human-centric computing for Social Good
Internet of People: towards a Human-centric computing for Social GoodInternet of People: towards a Human-centric computing for Social Good
Internet of People: towards a Human-centric computing for Social Good
 
Boosting data-driven innovation in Europe with the support of DIHs
Boosting data-driven innovation in Europe with the support of DIHs Boosting data-driven innovation in Europe with the support of DIHs
Boosting data-driven innovation in Europe with the support of DIHs
 
Social Coin: Blockchain-mediated incentivization of citizens for sustainable ...
Social Coin: Blockchain-mediated incentivization of citizens for sustainable ...Social Coin: Blockchain-mediated incentivization of citizens for sustainable ...
Social Coin: Blockchain-mediated incentivization of citizens for sustainable ...
 
Human-centric Collaborative Services : IoT, Broad Data, Crowdsourcing, Engage...
Human-centric Collaborative Services : IoT, Broad Data, Crowdsourcing, Engage...Human-centric Collaborative Services : IoT, Broad Data, Crowdsourcing, Engage...
Human-centric Collaborative Services : IoT, Broad Data, Crowdsourcing, Engage...
 
Role of Data Incubators shaping European Data Spaces: EDI & REACH cases
Role of Data Incubators shaping European Data Spaces: EDI & REACH casesRole of Data Incubators shaping European Data Spaces: EDI & REACH cases
Role of Data Incubators shaping European Data Spaces: EDI & REACH cases
 
Transiting to SMART COMMUNITIES by fostering Collaboration & CO-CREATION for ...
Transiting to SMART COMMUNITIES by fostering Collaboration & CO-CREATION for ...Transiting to SMART COMMUNITIES by fostering Collaboration & CO-CREATION for ...
Transiting to SMART COMMUNITIES by fostering Collaboration & CO-CREATION for ...
 
ROH: Proceso de Ingeniería Ontológica & Uso y Extensión de Vocabularios Estándar
ROH: Proceso de Ingeniería Ontológica & Uso y Extensión de Vocabularios EstándarROH: Proceso de Ingeniería Ontológica & Uso y Extensión de Vocabularios Estándar
ROH: Proceso de Ingeniería Ontológica & Uso y Extensión de Vocabularios Estándar
 
Introduction to FAIR Data and Research Objects
Introduction to FAIR Data and Research ObjectsIntroduction to FAIR Data and Research Objects
Introduction to FAIR Data and Research Objects
 
Introducción a Linked Open Data (espacios enlazados y enlazables)
Introducción a Linked Open Data (espacios enlazados y enlazables)Introducción a Linked Open Data (espacios enlazados y enlazables)
Introducción a Linked Open Data (espacios enlazados y enlazables)
 
Red Ontologías Hércules – ROH
Red Ontologías Hércules – ROHRed Ontologías Hércules – ROH
Red Ontologías Hércules – ROH
 
Internet de las cosas y datos de ciencia ciudadana para uso público
Internet de las cosas y datos de ciencia ciudadana para uso públicoInternet de las cosas y datos de ciencia ciudadana para uso público
Internet de las cosas y datos de ciencia ciudadana para uso público
 

Último

International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 

Último (10)

International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 

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 Servicios15 de Julio 2010, 9:30-13:30 GaraiaEnpresaDigitala, GoiruKalea 1, Arrasate-MondragonDr. Diego Lz. de Ipiña Glz. de Artazadipina@deusto.eshttp://paginaspersonales.deusto.es/dipina
  • 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
  • 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 AppEngine 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  
  • 4. Limitaciones de la Internet Actual (1) 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 debesuperar 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
  • 5. Limitaciones de la Internet Actual (2) 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
  • 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/
  • 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
  • 8. Visión de la Internet del Futuro
  • 9. Arquitectura de la Internet del Futuro
  • 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
  • 11. La Internet del Futuro en el 7º PM
  • 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
  • 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
  • 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
  • 15. Requisitos de la Future Internet Enrutamiento y direccionamiento escalable y dinámico Diagnosis y gestionabilidad de recursos y tráfico de datos Seguridad, privacidad, confianza y contabilidad Disponibilidad, ubicuidad y simplicidad Adaptación y evolución de entornos heterogéneos, contenidos, contexto y necesidades de aplicaciones (vehiculares, industriales, vida) Movilidad independiente de sistema operativo, aplicación o máquina Búsqueda/localización, selección, composición y adaptación Más allá de la comunicación digital: semántica (inteligibilidad de cosas y contenidos), háptico, emocional, etc. Sostenibilidad energética y económica
  • 16. Desafíos Técnicos Clave Internet by and forPeople: 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.
  • 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, dispositivosmóviles, wearables, M2M, RFID and so on .
  • 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)
  • 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
  • 20. Desafíos de la Internet por y para la Gente 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 Dar más poder al usuario – más y mejores servicios personalizados y creados por los propios usuarios (enfoque Do It Yourself – DIY) 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
  • 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.
  • 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: Contenido digital inteligente– información comprensible disponible al usuario, incluyendo tanto datos (esencia) como metadatos (facilitando su búsqueda, procesamiento, consumo, etc.) 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 Nuevosdispositivos 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.
  • 23. Ejemplo Internet de la Gente y Contenidos
  • 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
  • 26.
  • 30. Situation / Localization based services
  • 34. Advanced announcement of delivery goods
  • 38. Optical inventory tags with photo sensors
  • 39. Seamless real-time material and process control
  • 40. Documentation of total product life-cycles
  • 41.
  • 45. Intelligent clothesInteracting Objects Acting Objects Sensing Objects Data Objects ePC* Objects time Sources: Siemens CT / STA / CD S, Mitsubishi Electric Research * electronic Product Code
  • 46. ¿Es IoT ya una Realidad? Trojan room coffee machine, Arduino, tiki tag, nabaztag, chumby, forecast umbrella, Ceiva frame
  • 47. Desafíos de Internet de las Cosas Procesar grandes cantidades de información de “cosas conectadas” y ofrecer servicios en respuesta Investigar en nuevos modos y mecanismos de encontrar, recuperar y transmitir datos dinámicamente Descubrimientode datos sensoriales — en tiempo y espacio Comunicaciónde datos sensoriales: consultas complejas (síncronas), publish/subscribe (asíncronas) Procesamientode gran variedad de streams de datos sensoriales: correlación, agregación y filtrado Dimensión ética y social: mantener el equilibrio entre personalización, privacidad y seguridad
  • 48. Internet de los Servicios 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 Adapted from SAP Research, 2008, and SEEKDA, 2008
  • 49. 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: Internet-scale service oriented computing –permite el acceso a recursos computacionales, datos o software, como servicios Acceso a servicios contextualizado, proactivo y personalizado – context-awareness, interacción multi-modal, end-user empowerment, colaborativo Orquestación de servicios y servicios base – diferentes capas de servicios, desde servicios de infraestructura a servicios específicos con interfaz de usuario.
  • 50. Arquitectura de la Internet de los Servicios
  • 51. 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 serviceplatforms: modularidad de servicios para facilitar su integración por usuarios finales Autonomiccomputing: sistemas autogestionados Green IT: optimización del consumo energético
  • 52. Desafíos de la Internet de los Servicios 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). Los servicios deben ser buscados, identificados y compuestos en componentes de procesos de negocio 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
  • 53. 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
  • 54. 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)
  • 55. 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-projects.html
  • 56.
  • 57. Las máquinas entienden el contenido que han estado alojando y pueden obtener información de la semántica de los documentos
  • 58. Tecnologías: XML, RDF, SPARQL, OWL, µFormats...
  • 60. Provee una framework para exportar capacidades de coordinación de dispositivos a las aplicaciones web
  • 61. Pretende mejorar las capacidades de los navegadores para habilitar nuevos tipos de aplicaciones contextuales
  • 62. 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.
  • 63.
  • 64. 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 frontend 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
  • 66. 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
  • 67.
  • 71.
  • 72. 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)
  • 73.
  • 74. Web 2.0 es la web social colaborativa que pone en contacto a gente y permite entrada y salida (input/output web)
  • 75.
  • 76. 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
  • 77.
  • 78. Los móviles, TVs (y otros dispositivos) incluyen también acceso a servicios de datos mediante pequeños navegadores web
  • 79. Las aplicaciones web deben poder ejecutarse en todo tipo de dispositivos
  • 80. Los lenguajes HTML y JavaScript no son ya sólo utilizados para acceder a la WorldWide Web
  • 81. Pueden definir interfaces de usuario para muchos tipos de aplicaciones locales y remotas, reduciendo el ciclo de desarrollo
  • 82.
  • 83. El Browser como Sistema Operativo
  • 84. 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?
  • 85.
  • 86.
  • 87. 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  buscaDeusto in Wikipedia translate (text) (from language) (to language) map [location | selected text] command-list  te permite pedir ayuda de todos los comandos
  • 89. 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
  • 90. 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
  • 91. 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
  • 92. 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 frameworkJavaScript
  • 93. 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/
  • 94. 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/
  • 95. 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
  • 96. 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
  • 97. 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
  • 98. 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
  • 99. RIA para Todo Tipo de Dispositivos Palm Pre – Web OS Yahoo! TV Widgets Apple iPhone Google NexusOne – Android Nokia N97
  • 100. Todo Web y Todo Multi-táctil Amazon Kindle AsusEeeTop Apple iPad Microsoft Surface
  • 101. 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/
  • 103. Componentes de la Web como SO
  • 104. 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/
  • 107. El Futuro de las Búsquedas Últimamente han aparecido varios servicios similares a buscadores interesantes: Wolfram|Alpha Microsoft Bing and Google Squared RichSnippets & SearchMonkey Real-time SearchEngines
  • 108. 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
  • 110. 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
  • 112. 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 “rollercoasters”) 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
  • 114. Real-Time Web & SearchEngines 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/)
  • 115. 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/)
  • 117. El Futuro de las Búsquedas: Personalizadas y en Tiempo Real
  • 118. 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 “gracefuldegradation” http://www.whatwg.org/specs/web-apps/2005-09-01/
  • 119.
  • 120. 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.
  • 121. É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
  • 122. 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)
  • 123. Características: Modular, distribuido, auto-descriptivo, compartible y desacoplado
  • 124.
  • 125. Arquitectura de software que extiende SOA a aplicaciones basadas en web
  • 126. La información se representa en forma de recursos en la red y es accedida y manipulada mediante el protocolo especificado en la URI.
  • 127. Los recursos se manipulan mediante CRUD HTTP (POST, GET, PUT, DELETE) usando REST.
  • 128. Estos recursos sólo son manipulados por componentes pertenecientes a la red (esencialmente browsers & web servers).
  • 129. Es responsabilidad de los componentes entender la representación y estados de transición válidos de los recursos.
  • 130. Los recursos tienen embebidas URIs que construyen una red más grande de recursos
  • 131.
  • 132.
  • 133. Deriva de un protocolo creado por David Winer en 1998, llamado XML-RPC.
  • 134. Fue creado por Microsoft, IBM, y otros y actualmente se encuentra bajo el auspicio de la W3C.
  • 135. Su arquitectura consiste en varias capas de especificaciones para formato de mensajes:
  • 137. Protocolos de transporte (SMTP y HTTP/S)
  • 138. Modelos de procesado de mensajes
  • 140.
  • 141. Introducido en la tésis doctoral de Roy Fielding en el año 2000.
  • 142. Se refiere a una colección de principios de arquitectura de red, que marcan cómo definir e invocar los recursos.
  • 143. 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.
  • 144.
  • 147. 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
  • 148. 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/
  • 149. El Futuro del Desarrollo Software
  • 150. 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
  • 151. Cloud Computing es … … capacidad computacional y almacenamiento virtualizadaexpuesta 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
  • 152.
  • 153.
  • 155.
  • 158. Características de Cloud Tipos de despliegue Manifestaciones 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 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 AppEngine, 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,…
  • 160. Cloud Computing vs. Centros de Datos Tradicionales
  • 161. Componentes de Cloud Computing
  • 162. Taxonomía de Cloud Computing
  • 163. 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
  • 164. 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
  • 165. Plataformas Cloud Contenedores de aplicaciones Entornos cerrados Ejemplos: Google AppEngine, Heroku, Mosso, Engine Yard, Joyent o Force.com (SalesForceDevPlatform) 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
  • 166. 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
  • 167. 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
  • 168. 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
  • 169. ¿Qué framework o plataforma usar para mis aplicaciones Cloud?
  • 170. 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 RelationalDatabase 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/
  • 173. 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
  • 174. 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
  • 175. 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/,
  • 176. 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 edgelocationsque sirven contenidos a los usuarios finales. Tales edgelocationsse 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/
  • 177. 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/
  • 178. 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
  • 180. Amazon RelationalDatabase 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/
  • 181. 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
  • 182. Registro y Documentación Se puede ver en detalle cómo acceder a AWS: http://www.slideshare.net/ronaldbradford/getting-started-with-mysql-in-amazon-web-services?src=related_normal&rel=3462501 http://docs.amazonwebservices.com/AWSEC2/2009-11-30/GettingStartedGuide/
  • 184. 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ú “AccountActivity” que ilustra el gasto actual incurrido.
  • 185. 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 ResourceIdentifier (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
  • 186. APIs Disponibles por Servicio AWS
  • 187. 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
  • 188. Herramientas para Usar Amazon ScratchPadforSimpleDB 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?externalID=351&categoryID=88
  • 189. Caso práctico de Álbum de Fotos Álbum de fotos que permite subir fotos, organizarlas y visualizarlas Arquitectura tradicional:
  • 190. Caso práctico de Álbum de Fotos Solución Cloud con: S3, SDB, SQS y CloudFront Ejemplo descrito en: http://www.slideshare.net/javasymposium/developing-with-amazon-web-services-highly-scalable-services-that-are-someone-elses-headache-to-maintain-and-develop
  • 191. Ejemplo Plataforma Cloud: Google App Engine Google AppEngine 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 AppEngine 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.)
  • 192. Google AppEngine:Características 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 AppEngine 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/
  • 193.
  • 194. Página de presupuestado y facturación de recursos: http://code.google.com/intl/es/appengine/docs/billing.html
  • 195.
  • 196. AppEngine 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 AppEngine 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. 
  • 197. Funcionalidad de AppEnginefor Java AppEngine 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 AppEngine 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 TaskQueue Java API y la gestión de tareas por Cron.
  • 198. Instalación de AppEnginefor Java Descargar el fichero de: http://code.google.com/intl/es/appengine/downloads.html#Google_App_Engine_SDK_for_Java Descomprimir el fichero .zip Crear una variable de entorno APPENGINE_JAVA_SDK que apunte al directorio raíz de instalación de la SDK Incluir el directorio %APPENGINE_JAVA_SDK%inen la variable de entorno PATH
  • 199. Pasos para crear una Aplicación con Google AppEngine para Java Crear el proyecto de la aplicación Crear la clase servlet Crear el fichero de despliegue de la aplicación: web.xml Crear el archivo appengine-web.xml Ejecutar el proyecto Probar el proyecto: http://localhost:8080/<nombre-aplicación> Subir la aplicación al dominio appspot.com
  • 200. 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%emosew_project_template Las aplicaciones Java de AppEngine 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 sourcecode... META-INF/ ...otherconfiguration... war/ ...JSPs, images, data files... WEB-INF/ ...appconfiguration... classes/ ...compiledclasses... lib/ ...JARsforlibraries...
  • 201. Paso 2: Creando la clase Servlet Crear en el directorio src/guestbook/ un fichero denominado GuestbookServlet.java con el siguiente contenido: packageguestbook;importjava.io.IOException;importjavax.servlet.http.*;publicclassGuestbookServletextendsHttpServlet{publicvoiddoGet(HttpServletRequestreq, HttpServletResponseresp) throwsIOException {    resp.setContentType("text/plain");      resp.getWriter().println("Hello, world");   }}
  • 202. 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 <?xmlversion="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-appxmlns="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>
  • 203. Paso 4: Crear el fichero de configuración de aplicación GAE: appengine-web.xml AppEngine 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: <?xmlversion="1.0" encoding="utf-8"?> <appengine-web-appxmlns="http://appengine.google.com/ns/1.0"> <application>librocitas</application> <version>1</version> </appengine-web-app>
  • 204. Paso 5: Ejecución del Proyecto El SDK de AppEngine incluye un servidor web de pruebas para depurar tu aplicación. El servidor simula los servicios y el entorno AppEngine, que incluyen restricciones en la zona de pruebas, el almacén de datos y los servicios. Con el fichero ant ejecuta: antrunserver Puedes detenerlo con Ctrl-C
  • 205. Paso 6: Subiendo la aplicación Puedes crear y administrar aplicaciones web AppEngine con la consola de administración de AppEngine a través de la siguiente URL: http://appengine.google.com/ Para crear una nueva aplicación, haz clic en el botón "CreateanApplication" (Crear aplicación) 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). Ejecuta el siguiente comando en línea de comandos para subir la aplicación: $ appcfg update www Vete a: http://librocitas.appspot.com/
  • 209. Registrando la aplicación en appengine.google.com
  • 211. Características Avanzadas de Google AppEngine 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
  • 212. Limitaciones Google AppEngine 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 AppEngine 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 AppEngine
  • 213. Google App Engine vs. Amazon Web Services A primera vista Google AppEngine 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 AppEngine 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)
  • 214. Google App Engine vs. Amazon Web Services
  • 215. 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)
  • 216. 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!
  • 217. 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“
  • 218. 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 …
  • 219. 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)
  • 220. 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
  • 221. Formatos de Serialización RDF Formato RDF/XML: 1: <rdf:RDFxmlns: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:Descriptionrdf: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:lirdf:resource="http://www.eside.deusto.es" dc:title="Facultad de Ingeniería"/> 11: <rdf:lirdf: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: @prefixrdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . 2: @prefixdc: <http://purl.org/dc/elements/1.1/> . 3: @prefixgeo: <http://www. w3.org/2003/01/geo/wgs84_pos#> . 4: @prefixedu: <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> .
  • 222. Ejemplo de Grafo RDF Generador de grafos RFD: http://www.w3.org/RDF/Validator/ Conversor entre formatos RDF: http://www.mindswap.org/2002/rdfconvert/
  • 223. ¿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
  • 224. 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
  • 225. 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/>
  • 226. 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
  • 227. Ejemplo SPARQL PREFIX table: <http://www.daml.org/2003/01/periodictable/PeriodicTable#> SELECT ?symbol ?number FROM <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 10 OFFSET 10
  • 228.
  • 229. 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 screenscrapping 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/
  • 230. 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) 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: Un atributo de espacio de nombres para ser incluido en documentos XML xmlns:grddl='http://www.w3.org/2003/g/data-view#' grddl:transformation="glean_title.xsl" 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" />
  • 231. 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!!
  • 232. Web Semántica vs. web semántica
  • 233. 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
  • 234. 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/
  • 235. 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
  • 236. 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
  • 237. 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/
  • 239. Mash-ups: Poniendo en Práctica WOA http://hinchcliffe.org
  • 240. 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
  • 241. Problemática Web 2.0 y Mashups La Web 2.0 social define un portal como un “jardín cerrado” (walledgarden) 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
  • 242. 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
  • 243. 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
  • 244. 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.
  • 245. 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
  • 247. 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)
  • 248. Evento geolocalizado expresado con hCalendar <divid="empresadigital: event1" class="vevent"> <h1><spanclass="summary">OSGI: una Plataforma Modular y Ligera para Construir Aplicaciones basadas en Servicios</span></h1> <h2><abbrtitle="20080401T0900" class="dtstart">22 Mayo del 2008 9am a </abbr><abbrtitle="20080401T1400" class="dtend">2pm</abbr> en <spanclass="location">Parque Tecnológico de Álava, Miñano</span></h2> <abbrclass="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><spanclass="organizervcard">Organizado por</span> <a href="http://www.arabadigitala.com" class="url"><spanclass="fnorg">Araba EnpresaDigitala</span></a>. Contáctanos en <aclass="email"href="mailto:events@enpresadigitala.net"> events@enpresadigitala.net</a> </p> <p><spanclass="logo" content="images/logo_ARABA.gif"> <imgsrc="images/logo_ARABA.gif"/></span></p> </div>
  • 249. 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> ...
  • 250. 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>
  • 251. Consulta que extrae eventos agregados PREFIX 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 ?logo WHERE { ?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;
  • 253. 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 (SemanticallyAnnotated Web Services) SA-REST – añadir semántica a servicios basados en REST Web ApplicationDescriptionLanguage (WADL) https://wadl.dev.java.net/wadl20090202.pdf WSDL 2.0 http://www.ibm.com/developerworks/webservices/library/ws-restwsdl/
  • 254. 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>
  • 255. Ejemplo Herramienta de Composición de Servicios REST
  • 256. 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
  • 257. Referencias EuropeanFuture Internet Portal, http://www.future-internet.eu/ TheFuture 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 VisionDocument, 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 WillWork, 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/ BingSearchEngine, http://en.wikipedia.org/wiki/Bing_(search_engine)

Notas del editor

  1. Message:The future consists of services (the boxes on the ring) and users of services (the others).All interaction is free without central controlStandards are needed for the interactionsIs there a need for a platform / infrastructure to coordinate interactions?SAP Services mantra: Services will become tradable, composed from services of different providers, be offered, delivered &amp; executed automatically &amp; supported by ITThe Internet of Services will offercustomized &amp; personalized servicescommunity involvement to improve services, both for providers &amp; consumers of services seamless &amp; smooth adaptation and integration of services into the user environment These network infrastructures need to support an Internet of dynamically combined services with worldwide service delivery platforms and flexibly enable the creation of opportunities for new market entrant. The &apos;third party generated service&apos; is emerging as a trend supporting the move towards user-centric services, as shown by the advances in Service-Oriented-Architectures and in service front-ends as the interface to users and communities. Virtualisation of resources remains an important research driver enabling the delivery of networked services independently from the underlying platform, an important issue for service providers. Advances in these domains also require breakthroughs in software engineering methods and architectures addressing complexity in distributed, heterogeneous and dynamically composed environments, as well as non-functional requirements.