The universAAL IoT platform resulted from multiple projects co-funded by the FP6, FP7 and CIS EU programs. The consortium was composed of various partners from academia, industry, civil society and research involved in development and piloting of the platform. The development of the platform built upon the outcomes from projects such as PERSONA. During the implementation of the project ReAAL, 30 applications were ported to be compatible with universAAL. These were used by 13 pilot sites across Europe where universAAL was applied as standalone in combination with a cloud solution. As an outcome of the project the non-profit association UniversAAL IoT coalition (UIC)’ was founded to bridge the open source community of universAAL to the market and thus ensure sustainable use of the created services beyond the project.
universAAL is an open source platform that enables ICT industry in Europe to rapidly develop and deploy innovative AAL solutions. The platform provides the end users with a fully customized experience, accelerating and growing the potential for interconnectivity by ensuring that new features and applications are regularly added to integrated systems.
The unique value proposition evolves around the communal actions facilitated by universAAL where all compatible products, services and devices can connect instantly and collaborate to the benefit of the end user that could otherwise have not been achieved in isolation. As a living IoT system, the platform grows with each application being developed and thus contributing to a vast library of resources available automatically to all the end users.
Master repositories for the source code, as well as wikis and issue management are all currently hosted in the GitHub service. Further on, the universAAL platform offers a variety of security functionalities as part of the various layers of the platform, partly relying on existing security features provided by the underlying systems. Grouped authorized universAAL nodes exchange messages encrypted by the group’s shared key. Permissions can be defined for each message type. Communication with the world outside the group can be secured using the standard public key infrastructure. The platform also offers support to all of its users providing a free release history and version upgrade instructions including Javadoc for application developers and documentation on reported suggestions and issues resolved by the community. In the course of its implementation universAAL platform showcased its capabilities on pilot sites across Europe.
The total costs of the project ReAAL amounted to 10.775.000 € whereas 4.994.000 € from the budget were spent for 534 PM on developing applications and rolling out the platform at 13 different pilot sites. Future revenue streams are to be generated through service sale as a part of the ReAAL project goals.
The Physical layer of universAAL contains sensors and actuators, as well as intermediary hubs, which ease the connection between them. In the universAAL world, a single device that is connected to an assistive system is referred to as being a “node”.
In principle, there are two ways of how to integrate a device into an universAAL-based assistive system, assuming that the device in question is networked (can send and receive data using a network protocol, either wired or wireless). The first way is to install a specific piece of the universAAL platform on the device, the so-called “Middleware”. The Middleware software contains the communication infrastructure of the universAAL platform and all devices that run the Middleware can actively participate in the communication of the system. The second way of connecting devices to an universAAL-based assistive system does not require a given device to run the universAAL Middleware.
The device in question is rather connected to a node that runs this Middleware, and this node is used as an intermediary by the system in order to control the additional device. For many devices, such as low-power wireless sensors, this is the only way of connecting them to the system, simply because they cannot run any additional software beyond their firmware. And although these slave-devices cannot actively participate in the communication with the rest of the system (as they are just queried for data), their advantage over regular nodes is that they can (oftentimes) simply be “plug-and-played” into a running system.
Regarding hardware sensor and actuator devices, these are connected through “exporters”, which are just like an application exporting the devices interfaces and information into universAAL platform. There would be a different exporter per technology (KNX, ZigBee, etc.).
Additionally, to the physical devices and the “exporters”, the physical layer of universAAL is composed of three pieces of software, serving specific purposes. These three buses form the heart of the universAAL platform. All communication between universAAL-based applications should happen only in a round-about way via one of them, even if physically, these applications are located on the same node (= are running on the same device). Each of the buses handles a specific type of message/request, and the way that a bus operates is based on the characteristics of this category of information. The three buses are: Context, Service and UI (User Interface) bus.
The Context Bus is used for publishing information about the state of the environment and/or the assistive system. On the Service Bus, an application that offers a service (= can do something) announces this by registering a corresponding service profile, that is a description of what it is capable of doing, with the Service Bus. The counterpart to this are applications that require a service, the “service callers”. They send a service request to the Service Bus, asking for a specific service (as in “I need someone to turn off the lights in the living room, please”). It is up to the Service Bus to then find one or more matching service profiles to the service request and, if a match is available, to forward the request to the corresponding service. The purpose of the UI Bus is to deliver messages that are somehow related to explicit user interaction. For example, an application that wants the user to be notified about a certain event would use the UI Bus. There is actually a fourth bus, the Control Bus, which is responsible for managing the nodes in an uSpace (group of nodes), discovery of new nodes, and deployment of software artifacts.
The Middleware does not provide functionality that an end-user would find very useful. It is rather the basis for the higher level platform components and the functionality providing applications. The Middleware is capable of hiding the distribution and heterogeneity of the diverse devices that make up the system at its core.
The Service layer of universAAL is composed of different “Managers”, which build upon the Middleware. They can be considered low level applications. Together with the Middleware they form the universAAL execution platform and are required for its proper operation. Some are tied to certain buses, while others are more widely used. They usually also provide functional APIs to the above final applications.
On the Application layer, the universAAL platform is not limited to a specific application. Any application can be created to interact with the heterogeneity of devices it is connected to. One understands an application – any piece of software – that can run on the Container and that makes use of the universAAL Buses or Managers, whether by consuming them or providing into them, in order to provide a service or a part of it. An application, in addition to its own business logic, and regardless of its structure, needs one or more of the universAAL “wrappers” presented until now: Context Publisher, Context Subscriber, Service Caller, Service Callee and User Interaction Caller. Each of this must be created at some point during the application execution, at which they will be connected to universAAL. When the application stops, these must be closed.
The Semantic layer of universAAL uses an approach called “goal-based interoperability”. It is based on the principle idea to formulate requests in a semantical and not in a syntactical way, thus stating what is supposed to be done – the “goals” that are to be achieved – rather than how this should be done (which would include the specification of an addressee). The universAAL-platform achieves this through the use of ontological descriptions. The task of finding the appropriate recipient for a message is then left to a mediator that needs to know of all possible recipients that are currently available and must be able to decide, which one of them (if any) is the right one for this specific request. On the downside, however, this means that applications also require well-thought-out strategies for fault tolerance as there can be no guarantees that the dynamic resolution of dependencies through the mediators will actually be successful. In case of failure, when a mediator cannot deliver a message, an application should not simply crash but rather adjust its functionality to this situation, for instance by suspending its execution until a suitable recipient is available.
UniversAAL IoT is a mature open platform for the integration of open distributed systems of systems. It was developed over 15 years, from general conceptual work in German research projects EMBASSI and DynAmITE, over proof of concept with unique problem solving approaches in FP6 PERSONA, consolidation and first tooling in FP7 universAAL, and stress testing in real life in CIP ReAAL, which has led to the creation of the initial universAAL IoT ecosystem.
UniversAAL IoT coalition (UIC) is a worldwide non-profit association based in Belgium since April 2018. However, it is not very active in present days.
UniversAAL is an Open platform (Open API, Open Scope, Open Source Licence, Open Provision, Open Operation, Open Adaptation). It operates under the Apache 2 Licence. It collects sensor data, data from services and applications and can work with data stored locally, and therefore does not need access to cloud solutions.
Due to the characteristic of being an enabler, the universAAL platform does not offer the specific service/application of an informed consent form. However, an application with the features would be supported by the capabilities of the platform. Similarly, there is no data sharing model implemented, however, such functionality would be supported if developed in an end-user application.
The universAAL IoT platform is the catalyst for consumer choice, as service providers across diverse product development sectors are given the ability to interconnect. Without the sharing of knowledge, technology fails to evolve, which is why universAAL breeds alliances.
The ability for devices, services and applications to be configured to communicate on a global scale will dawn a new age of supplier collaboration. One that will enable providers of all sizes equal opportunity in a rapidly developing marketplace.
The universAAL marketplace will allow your developers to find existing products for you to integrate. By reusing applications and components, an ecosystem can be established, one that enables every member to gain equally from the rapid solutions developed. This growing exchange of information will bring greater functionality to consumers, and give providers a seamless pathway into interoperability.
universAAL IoT is a software platform for the integration of open distributed systems of systems. It provides runtime support for distributed service-oriented environments, in which components will provide and consume services by sharing compatible models (ontologies). It is the opportunity for you to empower your customers, through the creation of advanced, intelligent products that are at the forefront of modern technology.
New services and features appear as if by magic, as systems automatically find and communicate with one another. As the community grows, so will the library of applications, all of which will be available automatically to users with universAAL IoT enabled products.
Grouped authorized universAAL nodes exchange messages encrypted by the group’s shared key. Permissions can be defined for each message type. Communication with the world outside the group can be secured using the standard public key infrastructure.
universAAL IoT is an inclusive platform available to all. It is a living system, and as such, will evolve with each application that is developed. Through the growth of a development and distribution community, universAAL IoT offers infinite possibilities.
universAAL IoT is the layer in distributed systems that provides for integration and makes communication possible. It is the software solution to the hardware phenomenon of the Internet of Things, allowing systems and devices to seamlessly share valuable information and functionality. As open source middleware, it can be integrated into any product, service or device, regardless of brand engineering.
When imbedded with universAAL, components will communicate automatically, exchanging data that can be effortlessly processed and reacted to. universAAL IoT introduces a fundamental and positive shift in programming. Thanks to semantic interoperability, a new era of open distributed systems of systems has been developed. One where you can create dynamic constellations of arbitrary components and build your own system of systems without the worry of integration.
The interoperability of the universAAL IoT platform frees you to be creative with connections. As a developer, the expansion of innovative applications and features will enable you to use your ingenuity and develop solutions to the sharing of data and functionality of systems. The universAAL marketplace allows for the reuse and reimagining of products, leading to rapid development and consistent progression.
universAAL IoT minimises integration in development and deployment, reducing overheads and abating complexity. It is the platform that will revolutionise the concept of the app, connecting disparate devices in a way previously un-thought of. As the open source distributed and semantic operating system, it presents the possibility of a competitive consumer marketplace.
Interoperability in different dimensions
Enable your solution to communicate with others in a semantic way. By using ontologies, you can define what your solution does, and what you want from the systems you communicate with.
Make your solution independent from device technologies. With universAAL IoT exporters, you can plug seamlessly into multiple sensor and actuator technologies, including ZigBee, ZWave, EnOcean, KNX and OpenHAB.
The universAAL open platform is compatible with numerous deployment architectures, and is able to run across multiple environments. Use the Java version on OSGi, and embed on everything from a PC to Raspberry Pi. Alternatively, use it as an app on Android, or simply access it as a RESTful API. Whatever you decide, communication is assured.
To understand more about how the universAAL platform is evolving IoT connectivity, click through to the links below, or get in touch directly with the project’s team.