MUSIC, acrónimo de Self-Adapting Applications for Mobile USers In Ubiquitous Computing Environments (en español, Aplicaciones auto-adaptativas para usuarios móviles en entornos informáticos ubicuos), es un proyecto que implementa un entorno de desarrollo de software, de código abierto (open source), para aplicaciones auto-adaptativas y reconfigurables que se adaptan al usuario dinámico y al contexto de ejecución. Este contexto de ejecución, como se explica debajo, se refiere a la información que puede obtenerse del entorno, como la localización o los recursos del dispositivo. Las aplicaciones que tienen en cuenta el contexto son capaces de explotar el conocimiento sobre condiciones operativas externas, y serán auto-adaptativas si se adaptan durante su ejecución a contextos variantes, como el cambio de las necesidades del usuario o de los entornos operativos.
El proyecto MUSIC pertenece al Sixth Framework Programme (VI Programa Marco de Investigación y Desarrollo) de la Unión Europea, dentro de la temática de las tecnologías de la sociedad de la información (en inglés, Information Society Technologies, IST). El proyecto empezó en octubre de 2006 y terminó en junio de 2010.
Introducción a MUSIC MUSIC es una plataforma tecnológica abierta para los desarrolladores de software, abordando un paradigma de "cualquier red, cualquier dispositivo" con contenido relevante y contexto correcto de una forma segura y de confianza. MUSIC proveerá tecnología para el desarrollo de aplicaciones móviles innovadoras, que representarán un papel en el futuro en las vidas de los ciudadanos europeos. Conforme el público se acostumbra al uso de servicios móviles, las expectativas sobre qué servicios deberían proveerse, dónde deberían estar disponibles y como deben adaptarse a las expectativas de los usuarios se han puesto de actualidad, exigentes. Sin embargo, la gama actual de dispositivos móviles (como PDAs, teléfonos inteligentes, GPS, etc.) y la variedad de infraestructuras han aumentado los retos de construir y mantener esos servicios en una forma cómoda para el usuario. Debido a eso, los desarrolladores de software deben enfrentarse a un número enorme de cuestiones relacionadas con la configuración, las operaciones, el mantenimiento y el manejo de los cambios para poder producir sistemas que puedan adaptarse de forma dinámica, segura y automática a las expectativas públicas en distintos escenarios y circunstancias.
MUSIC proveerá una metodología de diseño y una arquitectura de sistema distribuida para el diseño y la implementación de aplicaciones auto-adaptativas en entornos informáticos ubicuos. Esto se complementará con lenguajes de modelado extendidos para la especificación de las dependencias de contexto y las capacidades de adaptación, soportado por herramientas de especificación de modelos, validación y simulación. Esta plataforma se utilizará para desarrollar servicios de prueba, basados en un conjunto de escenarios de aplicaciones con potencial real de mercado, teniendo un papel central: como fuente de requisitos, para valorar la adecuación técnica de los resultados y para promocionar los resultados.
Investigación previa El proyecto MADAM El proyecto MUSIC parte de la base del proyecto MADAM, también de IST. El proyecto MADAM, Mobility and ADaptation enAbling Middleware (en español, Middleware para permitir movilidad y adaptación) suministró a los ingenieros de software extensiones a los lenguajes de modelado, herramientas y middleware que fomentan colectivamente el diseño, la implementación y la operación de aplicaciones y servicios innovadores para el usuario y el trabajador móviles. Para alcanzar este objetivo, el proyecto ha estudiado los requisitos de adaptación de las aplicaciones móviles y ha desarrollado una teoría de la adaptación. Se ha desarrollado un conjunto de estrategias y mecanismos reutilizables de adaptación, basado en una arquitectura de componentes reconfigurable dinámicamente. El proyecto también ha desarrollado extensiones a los lenguajes de modelado y herramientas permitiendo a los diseñadores de aplicaciones especificar las capacidades de adaptación en el momento del diseño.
MADAM ha proporcionado prototipos implementados en la plataforma del middleware así como extensiones a herramientas de modelado. Las aplicaciones piloto se han desarrollado para validar el enfoque y los prototipos.
El proyecto MADAM terminó en la primavera de 2007.
Relación entre MADAM y MUSIC El enfoque técnico de MUSIC esta fuertemente inspirado en los resultados preliminares del proyecto MADAM. MUSIC extenderá y generalizará las soluciones experimentales desarrolladas en MADAM y las llevará al nivel de madurez necesario para facilitar la captación de la industria del software europea. Hay varias innovaciones comparado con MADAM, incluyendo la generalización a la informática ubicua y a las arquitecturas orientadas a servicios (en inglés, SOA, Service-Oriented Architecture)
Objetivos thumb|300px|Sistema adaptativo de MUSIC. MUSIC proveerá una plataforma abierta que hace técnicamente y comercialmente factible para la amplia industria de las tecnologías de la información (no sólo operadores de telecomunicaciones) el desarrollo de aplicaciones móviles innovadoras que: tengan en cuenta el contexto: entienden el contexto de usuario en el sentido más amplio, incluyendo factores relacionados con los usuarios mismos (función, localización, condiciones ambientales, etc.) y factores relacionados con la cambiante disponibilidad de las facilidades de la informática y las comunicaciones. sean auto-adaptativas: adaptan dinámicamente a cambios en el contexto la funcionalidad y los mecanismos internos de implementación. sean incoherentemente distribuidas en naturaleza, y que puedan involucrar directamente interacciones entre múltiples usuarios. estén dirigidas principalmente a los usuarios móviles, aunque puedan incluir también usuarios fijos. dirijan aspectos extra-funcionales (como seguridad, fiabilidad,...) de acuerdo a las necesidades del usuario. puedan describirse como innovadoras, bien porque provean a los usuarios con servicios enteramente nuevos o porque hagan disponibles los servicios tradicionales de una forma práctica y utilizable en un entorno móvil.
El resultado principal del proyecto será la plataforma, formado por los siguientes componentes principales: Una metodología de diseño para aplicaciones auto-adaptativas. Una arquitectura de sistema distribuida formando una base sólida para el diseño y la implementación de aplicaciones auto-adaptativas en entornos informáticos ubicuos. Un entorno extenso, de código abierto, de desarrollo de software que facilite el desarrollo de software auto-adaptativo y reconfigurable que se adapte al usuario dinámico y al contexto de ejecución, y que mantenga un alto nivel de uso y utilidad de las aplicaciones al cambiar el contexto. Lenguajes de modelado extendidos para la especificación de las dependencias del contexto y las capacidades de adaptación, junto con herramientas de especificación y validación del modelo. Middleware y servicios de infraestructura soportando funcionalidades comúnmente necesitadas en el tipo de aplicaciones móviles adaptables gestionadas en el proyecto. Un ejemplo sería el soporte para realizar decisiones distribuidas sobre adaptaciones colaborativas. Un entorno de testeo y simulación de prototipos, para permitir a los desarrolladores observar y analizar los efectos de los cambios de contexto y adaptaciones y poder realizar así una depuración de la adaptación.
Auto-adaptación y conocimiento del contexto Auto-adaptación Los sistemas de software auto-adaptativos son capaces de adaptarse durante su ejecución a entornos operativos cambiantes. La auto-adaptación hoy en día es compleja y costosa de implementar, y se ha aplicado en dominios particulares donde los sistemas deben tener una fiabilidad garantizada, como por ejemplo, centralitas de telecomunicación o vehículos espaciales. Sin embargo, la auto-adaptación se ha convertido en un requisito para una mayor cantidad de sistemas de software, incluidos sistemas móviles.
MUSIC reducirá la complejidad del desarrollo y la implementación de estas aplicaciones.
Conocimiento del contexto Hoy en día, cada vez más aplicaciones tienen en cuenta el contexto. Por ejemplo, una aplicación de este tipo es la publicidad contextual, en la que los visitantes de la página web ven anuncios que probablemente les impacten, de acuerdo con su situación contextual: de qué país y ciudad son, que términos buscaron recientemente, etc.
Tener en cuenta el contexto es uno de los ingredientes más importantes para alcanzar el paradigma de la informática ubicua.M. Weiser, The Computer for the Twenty-First Century, Scientific American, septiembre de 1991, págs. 94-10 En este paradigma, la gente se protege de sobrecargarse con el requisito de interactuar con sistemas informáticos, parcialmente permitiendo a los sistemas que se auto-configuren de forma indirecta y autónoma. De esta forma, la interacción necesaria (y, por tanto, la atención humana) se minimiza. Aparentemente, para conseguir que la tecnología se sitúe en el fondo (de nuestra consciencia), se tienen que inventar nuevos métodos para que las decisiones necesarias se tomen de forma automática.
En el proyecto MUSIC, uno de los objetivos principales es desarrollar sistemas que puedan auto-adaptarse de forma autónoma y automática, con el propósito constante de optimizar la calidad del servicio (QoS, Quality-of-Service) ofrecida a los usuarios finales. Esto se consigue parcialmente permitiendo a los sistemas recoger continua y automáticamente información acerca del estado del usuario y sus correspondientes aplicaciones. Cuando esta información es suficientemente rica y está modelada de forma apropiada, entonces el sistema puede realizar frecuentemente decisiones que beneficien a los usuarios, sin necesitar ninguna intervención explícita por su parte.
El contexto que MUSIC tiene en cuenta cubre una gran cantidad de información, que se puede clasificar en tres categorías:G. Chen, D. Kotz, A Survey of Context-Aware Mobile Computing Research, Technical Report: TR2000-381, Dartmouth College, Hanover, NH, USA, 2000 Contexto informático:B. Schilit, N. Adams, y R. Want, Context-aware Computing Applications, IEEE Workshop on Mobile Computing Systems and Applications, Santa Cruz, California, diciembre de 1994, IEEE Computer Society Press, págs. 85-90 describe la colección de dispositivos informáticos en el sistema y los enlaces de comunicación entre ellos, proveyendo información sobre su estado actual (por ejemplo, uso, carga,...), capacidades y configurabilidad. Por ejemplo, la información relativa a las redes disponibles y los servicios, el tamaño de la pantalla del dispositivo y su orientación, la memoria y batería disponibles,... Contexto ambiental: en MUSIC, describe las condiciones del ambiente en las que el usuario y las máquinas residen y se mueve. Para detectar y dar una medida de este tipo de datos de contexto, se emplean sensores hardware dedicados. Por ejemplo, la localización, que permite conocer los objetos cercanos al usuario: iluminación, ruido,... Contexto de usuario: los usuarios pueden especificar sus preferencias sobre las propiedades configurables de su dispositivo. Esto puede incluir datos personales, compañía y lugar de trabajo, aficiones, necesidades,...
El middleware MUSIC El desarrollo del middleware MUSIC es el núcleo del proyecto. El middleware tendrá que evaluar el contexto descrito anteriormente y entonces seleccionar automáticamente la mejor configuración disponible que cumple los requisitos dados por el contexto. Este proceso debe ser transparente al usuario.
El middleware se desarrolla en dos partes: el middleware de contexto y el middleware de adaptación.
Middleware de contexto