AOKell is a reflective and open implementation of the Fractal component model. So far, software components are used in various application domains (for embedded systems to e-commerce web sites). However the model of a component is different in each of these domains with solutions such as EJB, CCM, .NET, Accord/UML, ArchJava, OpenCOM, K-Component, etc. This variety hinders the broad adoption of component based techniques. The challenge we are addressing with AOKell is to design and implement a component model adaptable to various application domains. To achieve this goal, AOKell is a reflective component model with two dimensions: the business dimension and the control dimension. The former is concerned with the programming of application functionalities, while the latter is concerned with control and non-functional services needed by the application. The control dimension is fully programmable in AOKell with the same artefacts (component, binding, components assembly) that are available for the business dimension. The integration of these two dimensions is achieved with aspect-oriented programming. The work on AOKell is conducted in the context of a France Telecom R&D research grant.
AOKell is LGPL open source software available at http://fractal.objectweb.org/aokell