|
|
Dynamic applicationsIn a diverse domains, including automation, building management, and power distribution, we are currently investigating ways to use the Internet to exploit data embedded in smart devices. Several business and technical challenges complicate the ability to develop and manage such services; putting e-services in place in an industrial context requires providers to build large-scale distributed systems in complex, heterogeneous environments in which site topologies, network addresses, security policies are dynamic and differ from one customer to the next. Most services also have stringent requirements regarding security and evolvability. For instance, most customers own their industrial installations and won't open extra connections to allow e-services. Their security policies must be used as they are. Similarly, industrial customers must be able to regularly change their installations, despite the presence of e-services. Moreover, remote exploitation of embedded data presents technical challenges regarding complexity, dynamism, and security. In order to address such complex requirements, we believe that three aspects should be carefully worked out: " Run-time platforms allowing dynamic and autonomic behaviors. These platforms can be placed at different architectural levels, from powerful IT servers down to resource constrained embedded devices, " Mediation middleware allowing secure, scalable and dependable data exchange between IT servers and embedded devices, " Tools providing support and guidance in all the life-cycle phases of these applications (see CADSEs above). Service Oriented ComputingWe believe that the service orientation provides the level of flexibility required by modern applications. It however comes with many issues in terms of heterogeneity and complexity. Today, SOC is technology - driven. Developers deal with numerous technologies for describing, publishing and composing services. The adoption of a service-oriented approach makes more difficult the work of a developer. He/she has both to solve complex domain-specific problem and handle the complexity of the technical solution to this problem. Also, service composition turns out to be complex for several reasons. An autonomic management framework for building and executing pervasive applications has been designed. The framework is based on a Service Oriented Component technology, iPOJO, which was extended with support for monitoring and effector touch-points. Hierarchical autonomic management architecture was devised on top of this platform to facilitate the creation of autonomic solutions with multiple levels of abstraction and authority. Mediation middlewareMediation is the process of integrating disparate information sources in a timely fashion. Mediation software aims to collect data from different places and present it to business applications in a usable form. Applying mediation to the integration of business applications and field devices raises challenging new issues, not least because we're dealing with a public, heterogeneous network in the Internet, whereas devices are often located in private places (plants, buildings, offices, or houses) governed by very heterogeneous - and generally inflexible - policies regarding network management, security, and so on. To do so, we use loosely coupled services which help provide the flexibility and adaptability that applications need to keep up with industrial e-services changing requirements. We also seek to dynamically use the available resources on both the IT and operational sides, distributing operations over a network of business and operational machines to create the most effective mediation chains. The challenge is placing the mediation operations at the best locations for reducing the communication load and increasing the detection rate of important information (to generate alarms, for instance). Autonomic computingAutonomic Computing is a relatively new research domain that aims at enabling computer systems to manage themselves. The goal is to progressively automate administrative tasks, in order to facilitate and to minimize human interventions on running computer applications. The initial Autonomic Computing experiments and results indicate that the important, ambitious goals of autonomic management applications require complex, adaptable processing capabilities that prove extremely difficult to conceive and implement. This is a natural consequence of the very purpose that autonomic management systems must serve: absorb the complexity of currently manual management tasks and leave simplified, intuitive and high-level interfaces for human administrators. Our research goal is to provide reusable architectures, frameworks and methodologies that facilitate the development and maintenance of complex, adaptable autonomic management applications for administrating large-scale, distributed software systems. The main preoccupations consist of: i) the decomposition of autonomic management logic into reusable and replaceable parts; and ii) the integration of the individual parts for producing globally coherent and dependable administrative behaviors. Decomposition can be applied to the internal logic of a single Autonomic Manager, or in distributing the logic to multiple collaborating Autonomic Managers. A single Autonomic Manager may be organized into multiple layers, featuring progressive abstraction and/or authority levels. The goal is to separate simple, reactive mechanisms with limited knowledge, from sophisticated reasoning mechanisms holding a more general system view. The second decomposition axis consists in assigning a different Autonomic Manager to each individual resource. It is particularly convenient when different managed resources belong to separate administrative authorities, as it is typically the case in pervasive applications. This allows autonomic management applications to scale up and to address the continual adaptation and evolution of autonomic management logic because individual managers can be dynamically added, updated and removed when components are dynamically added, updated and removed. The second major preoccupation when developing autonomic management systems consists of integrating the various functional parts into a reliable, coherent whole. Integration generally involves the concepts of communication, collaboration and control. We adopt a flexible, dynamic integration solution, based on:
When adopting such solutions, a trade-off must be made between absolute system control and system flexibility and survivability. We intend to pursue the following directions for better understanding and trying to alleviate the risks involved:
Major results Oct. 2006-Oct. 2009:The major and more visible result are directly related to our activity around OSGi, the world wide de facto standard for dynamic applications. Our team developed OSCAR, the first OSGi open source implementation, and is at the origin of the Apache Felix project (Richard Hall). The Humberto Cervantes thesis (thèse UJF) became the Dynamic Service part of the OSGi R4 specification. iPOJO, designed and developed in the team, which is also an Apache project, is becoming widely used and may be integrated in future OSGi specifications. We are an important contributer of many open source software around OSGi, in the Apache foundation. For domain specific environment, we developed for Schneider the Docosoc environment which has been experimented by Schneider. We have developed the HOmega dynamic platform for home office, and we have developed SAM, a high level dynamic platform which are used in many research projects. Perspectives:This work opens many perspectives in many dimensions; and raises many issues. More than a decade will be needed to reach satisfactory solutions, but since these solutions are needed by industry, no doubt that much effort will be invested in these areas. As an example consider only the issue of adaptive systems: a trade-off must be made between absolute system control and system flexibility and survivability. We intend to pursue the following directions for better understanding and trying to alleviate the risks involved:
|