What is a platform?

Dictionaries define a "platform" as a flat raised area or structure, something stable on top of which other things can reside. In ICT, a platform is a stable basis on top of which applications can run. Here, one could differentiate between hardware versus software platform. The term "software platform" with no further specification usually refers to the operating system of a device hosting applications. Then, the term "application" would refer to any software unit that can be loaded and directly started by the operating system. 

Apart from the above general considerations, more specific understandings of the term "software platform" are quite common when such a platform is meant to provide an stable basis for running more specific applications. The example relevant for ReAAL is the term "AAL Platform" as the software platform for running "AAL Applications" in the sense of any software unit that can run on top of an AAL Platform.

Why the universAAL platform?

Since 2006 in FP6 Call 6, several EU-funded projects have delved into the widely-known problem of ageing population by delivering Ambient Assisted Living platforms. Most of these research projects aimed at providing a dynamic and distributed architecture that integrated heterogeneous home automation devices, actuators, sensors and computers, following the Ambient Intelligence paradigm, and a specific overlaying framework, in most cases involving semantic services. They wanted to enable developers to compose software applications that benefited from all the available information and capabilities over the environment with the objective of facilitating the life of elderly people. The ultimate purpose of these applications was to assist in the daily life activities, provide help in risky situations, detect abnormal behaviour or monitor health parameters, among others, in order to enable elderly people to live independently for a longer period of time.

Even though most of these projects have achieved their goals in general, none of them has truly reached a breakthrough when it comes to adoption from third party developers in the industry, or establishment of an AAL market, although an enduring ecosystem for AAL services and applications was the desired outcome of the AAL research line.

The universAAL project was granted – as the only project under the competitive FP7 Call 4 – with the mission of studying the results of all previous AAL projects and integrating them into a single, consolidated platform that represents whatever an AAL platform should be. Not only the definition of the architecture is provided but also a reference implementation is developed to demonstrate its soundness. In order to overcome the lack of an AAL ecosystem, it is also addressing the settlement of a developer community with source code and documentation along with a distribution channel to make AAL technologies available to customers, in the fashion of the now widely used app-stores.

The actual platform is organised around three areas that target the whole value chain of stakeholders in the provision of AAL services:

Development Support, Market Support, and Operation Support
  • Operation support: The platform provides a runtime environment enabling a virtual ecosystem for AAL Spaces (physical spaces – such as the home of an assisted person – in which independent-living services are provided to people that need any sort of assistance). In such a virtual ecosystem, hardware as well as software components can “live” while being able to share their capabilities. Additionally, operation support also includes tools for the management of AAL Spaces and their components (e.g., installation, configuration and personalization tools).
  • Development support: it includes all aspects needed to help developers to produce AAL solutions, like tools, software repositories, guidelines, training materials, etc. Main results already available are:
    • Developer depot: it’s the repository where developers can download universAAL software components as well as obtain the open source code of them
    • AAL Studio: it’s a set of easy-to-use development tools oriented specifically to external developers, equivalent to an SDK for AAL applications
    • Developer handbook and tools tutorials: it’s a set of wiki pages and other documentation resources that provides a set of clear instructions and guidelines so that external developers can find their way into the framework.

    These resources can be found at http://depot.universaal.org/.

  • Market support: provides facilities for linking demand and supply. The major result in this area is the uStore, where demand and supply will meet each other. Providers of products and services can use uStore for advertising their offers by providing appropriate metadata, on one side, and find out about open requests and the newest trends, on the other side. End users can find and compare the offers based on certain criteria, purchase any desired application almost directly from its publisher, rate the solutions, report bugs & request new features, and let the system to notify them when for a previously unsuccessful search now matching offers have been introduced.

Support for interoperability

The universAAL platform realizes the concept of AAL Spaces as physical spaces in which independent living services are provided to people that need any sort of assistance. It has been realized with special focus on interoperability without application-specific bias, no matter if interoperability is required within an AAL Space, between different AAL Spaces, or between an AAL Space and service providers. Among others, it allo

  • applications to run on distributed heterogeneous systems, such as mobile phones, general-purpose computing and interaction devices, and STBs (set-top-boxes) and still enables them to share data and functionality,
  • components, such as sensors/actuators and other equipment available on the open market, to be dynamically plugged and played, and
  • application-level services to be added based on composition of existing capabilities.

Within an AAL Space, the universAAL platform facilitates the sharing of three types of capabilities: Context (data based on shared models), Service (control) and User Interaction (view). Therefore, connecting components to the universAAL platform is equivalent to using the brokerage mechanisms of the universAAL platform in these three areas for interacting with other components in the system. Such connectors together with the application logic behind the connected component are called altogether "AAL Applications". An AAL Service Delivery Package may then be composed of an AAL application and the hardware and human resources needed to make it functional.

The universAAL platform and the three flows of information

Platform maturity

When it comes to evaluating the maturity of universAAL, it is worth to remark that the code developed in that project has been subject to a high level of development supervision by applying well-established procedures. One of the objectives of universAAL was to establish a sound integration strategy for imported code and follow it with what is known as Continuous Integration (CI): having the code being tested continuously and reports generated upon any change so that developed code is always evaluated. In addition to tests and CI, software in universAAL has tracker facilities that enable any developer using universAAL platform to report bugs to universAAL staff, and even request new features or ask for technical support. These facilities come in handy when developers overlook small flaws, and improve the maturity of software. The documentation is continuously evolving as well, refining and simplifying the information any developer would need to read in order to work with the code, from newcomers to experienced developers.

The release schedule of universAAL defines several milestones, at which all the latest available stable code of the reference implementation and example AAL services is built, packaged, published and made available to any external developer. At the time being, there is already a functional version of the runtime platform that can be used, but new features, fixes, and improvements are planned until end of 2013 for the core components.

The whole platform is put to test in some of the available "living labs" of the partners in universAAL: a total of 5, counting two in Spain, one in each of Austria, Germany and Greece. In parallel, because third-party developers attending the EvAAL competition must use the universAAL platform for integrating their solutions, the independent opinion of the competitors is being incorporated in the process of evaluating the usability of the universAAL software.

In summary, the universAAL platform presents an adequate level of maturity, with already working releases that is being tested both in the scope of the project and outside. Feedback from these tests is being used to improve the platform, and there are plans for further extension and maintenance based on the open source model. After the universAAL project ends, the maintenance of the platform will be taken over by ReAAL technical partners.