- Capacidades y Desafíos de los integrantes de la plataforma PROMETEO
- Agenda de Investigación Estratégica de la Plataforma PROMETEO
En ATENEA se identifican cuatro dominios tecnológicos estratégicos a desarrollar en los paquetes de trabajo definidos:
- Los diseños de referencia y arquitecturas. Aparecen como retos científico-tecnológicos: La seguridad y confiabilidad de los sistemas; la capacidad para trabajar en tiempo real y en sistemas críticos; aspectos de control inteligente; aspectos de plataformas hardware y los periféricos e interfaces necesarios.
- Los aspectos de conectividad y middleware. Entre los retos científico-tecnológicos actuales destacamos: Arquitecturas de middleware distribuidas, incluyendo aspectos de interoperabilidad, seguridad y trabajo en tiempo real; interpretación semántica y tratamiento ontológico de la información; adaptación a contextos de aplicación; inteligencia artificial distribuida.
- Los métodos y herramientas para el diseño de sistemas. Retos científico-tecnológicos importantes son: Diseño de sistemas en base a modelos; desarrollo de sistemas con inteligencia integrada; verificación formal y validación de modelos y sistemas; reducción de los plazos y de los costes de lanzamiento de productos.
Diseños de Referencia y Arquitectura
Dentro de una organización la posibilidad de reutilización disminuyendo los tiempos de desarrollo y manteniendo la calidad está intrínsecamente relacionada con la definición de Diseños y Arquitecturas de referencia. También es esencial la relación entre ambos.Para promover la colaboración entre distintas organizaciones estos aspectos siguen siendo válidos, consituyendo un catalizador relevante para la identificación de proyectos en colaboración y posibles demostradores.
Conectividad y Middleware
El gran número de tecnologías en despliegue actualmente para proporcionar una conectividad global refuerza la importancia del middleware. La WWW (World Wide Web) cada día tiende más hacia tecnologías que permitan una interoperabilidad entre aplicaciones y dispositivos para explotar su verdadero potencial. La necesidad de desarrollar más rápido promueve avances en tecnologías de integración tales como arquitecturas orientadas a servicios (SOA) y tecnologías de servicios web (WS) para construir sistemas de manera más rápida. Las especificaciones de servicios web existentes, trata a estos como entidades indivisibles orientadas a la interacción y que poseen la ventaja de ser independientes de la tecnología de implementación. Está claro que el próximo paso requerirá tratar con tecnologías para describirlos de forma que permitan obtener unos servicios con mayor nivel de composición basados en los ya existentes. Aunque se utiliza distinta terminología en la industria para tratar estas necesidades (coordinación, colaboración...) el problema abordado es el mismo.El WSDL (Web Services Definition Language) ha demostrado ser valido para describir un único servicio. Sin embargo, los pasos siguientes requieren detallar con un lenguaje preciso aspectos tales como el modo en que se hace uso del servicio y la QoS (Calidad del Servicio) del mismo. Existen iniciativas como el WSCI (Web Service Choreography Interface) que proponen un lenguaje de interfaces basado en XML para describir el intercambio de mensajes entre servicios que interactúan entre si. Esto probablemente proveería de una equivalencia semántica que usaría las tecnologías RDF (Resource Description Framework) y OWL (Ontology Web Language). Una tendencia importante es la web semántica como aproximación para explotar las propiedades de la Web, de forma que puedan ser automáticamente procesadas. La web semántica usa la actual infraestructura web (XML, URIs, HTTP) y provee una representación estándar de los datos (XML/RDF) y de las estructuras conceptuales (Esquema RDF, WOL). Existe una clara sinergia futura entre ambas aproximaciones dado que el contenido web será procesado por servicios web los cuales también serán recursos de la Web.
En paralelo a todo lo anterior, también hay gran interés en sistemas extensibles dinámicamente, los cuales son convenientes a la hora de soportar una aproximación orientada a servicios y el conocimiento del contexto. Todo esto está contribuyendo a una visión futura de infraestructura de inteligencia ambiental proactiva y altamente dinámica. En este campo, la plataforma OSGi define un entorno estándar orientado a componentes para servicios en red. Esto añade la capacidad de manejar el ciclo de vida de los componentes software en los dispositivos en cualquier lugar de la red. Los componentes software pueden ser instalados, actualizados o eliminados en tiempo de ejecución sin tener que interrumpir la operación del dispositivo. La especificación UDDI (Universal Description, Discovery and Integration) se vislumbra como uno de los candidatos para implementar directorios en el ámbito de las arquitecturas orientadas a servicios. UDDI permite que las aplicaciones puedan descubrir y usar dinámicamente servicios web. UDDI también permite manejar registros operacionales. La mayoría de los proveedores de plataformas y software lo soportan hoy en día. El despliegue y configuración combinados con sistemas extensibles es actualmente un campo de investigación bastante activo. Los proveedores de sistemas operativos y las comunidades de código libre han desarrollado unas infraestructuras de despliegue y configuración automáticas usando la ventajas que proporciona Internet (Debian fue una de las primeras distribuciones GNU/Linux con herramientas que permitían tareas de despliegue tales como: resolución de dependencias, instalación, configuración y actualización de paquetes; MS Windows Update permite a los usuarios de MS Windows mantener su sistema operativo al día; Installshield o IBM Tivo son ejemplos significativos de herramientas comerciales orientadas al despliegue de aplicaciones).
Los proveedores de aplicaciones basadas en componentes poseen una referencia en la especificación de la OMG para el despliegue y configuración de aplicaciones distribuidas basadas en componentes. La especificación sigue la aproximación de MDA (Model Driven Architecture) y propone un modelo independiente de plataforma (PIM, Platform Independent Model) y un modelo específico de plataforma (PSM, Platform Specific Model) para el modelo de componentes CORBA. El PIM se divide en tres partes: componente software, entorno y ejecución. Esta división se basa en el proceso de despliegue y está dirigida a separar los aspectos relacionados con sus diferentes etapas, aislando la necesidad de conocimiento de cada una de las etapas. La combinación de despliegue de servicios con las redes P2P (que es una alternativa a los actuales modelos cliente-servidor) proporciona nuevos desafíos en el campo del despliegue de componentes. Aunque éstas son algunas soluciones de despliegue de software existentes, aún se está lejos del sistema de despliegue ideal que debería ser capaz de manejar la dinámica de SOA, teniendo en cuenta requisitos no funcionales tales como el rendimiento, seguridad, conocimiento del contexto, disponibilidad o escalabilidad. La introducción de un alto nivel de semántica en las descripciones de despliegue de componentes software, con el empleo de OWL, será de gran ayuda para afrontar estas tareas de forma automática.
Métodos y Herramientas para diseño de sistemas
Sin duda el reto actual en los sistemas empotrados en muchos campos industriales es el aumento en la productividad y la transición hacia su integración en Internet manteniendo los requisitos de calidad (ej. Fiabilidad, tolerancia a fallos, etc.) que habitualmente caracterizan a estos sistemas. Por otra parte, los dispositivos cada vez más están integrados con otros por lo que las vistas transversales de los sistemas son cada vez más importantes.Hoy en día están disponibles múltiples herramientas de desarrollo y configuración pero no suelen estar integradas entre sí ni se construyen en base a estándares. Los proveedores de software, en general, proporcionan herramientas que soportan sus propias tecnologías. Estas frecuentemente tienen limitaciones en extensibilidad y adaptabilidad. Como alternativa las herramientas abiertas están teniendo un auge creciente soportando un gran número de sistemas operativos; y con muy diferentes posibilidades de interfaz.