rApp – Mobile Device Apps Framework
Together with Mobile Devices the Apps enter the world of Embedded Systems (the Internet of Things, IoT).
Using the rApp Framework provides IoT makers the possibility to create and deploy their Mobile Device Apps together with their IoTs – so to say remotely – instead of using the conventional App stores.
The underlying idea of rApp: the traditional roles (the IoT runs as a server, the Mobile Device acts as a client) will be reversed. The rApp Player, a generic App for Mobile Devices provides SOA services (Service Oriented Architecture) and will be remotely controlled by the IoT. All activities are initiated by the IoT, the rApp Player will act as a server. As a consequence, all the functions of the Mobile Devices are available on the IoT as well - besides displaying the user interface via the (touch) screen access to all the sensors, actors and the Mobile Devices’ connectivity (e.g. the IoT is able to use the Mobile Device as a gateway into the Internet). The rApp player is available for systems like iOS, Android, Windows Phone as well as Windows and Linux.
Flexible and transparent communication
In order to be able using the services of Terminals (a Mobile Device is just a subset of a User Interface Terminal) the IoT has to establish a communication link to them. There are a variety of possible communication means the rApp framework provides to the user. Prior to the very first use the IoT and the Terminal have to be linked to each other, this is called Pairing.
This Pairing includes setting up the available communication means and routes (e.g. via Bluetooth and/or via the Internet). The Pairing process can be accomplished by manually input a IoT specific code and password or by simply taking a photo of the corresponding QR code which is mounted to the IoT. After the Pairing has been finished connecting the Terminal with the corresponding IoT is fully transparent for the user. This means there is no difference for the user whether the connection is done locally (on premise), via Bluetooth/WIFI or via the Internet – the user simply selects the desired IoT which is presented graphically in the rApp Player, the Player then will automatically find and use the optimal connection to the IoT.
Maximum security by reversing the client/server roles
Device security is considered the most important security issue. Therefore, all communication over the Internet are going through outbound ports only, no inbound ports as used on Web Servers are open. Furthermore, all communication is based on modern security mechanisms like encryption and certificates, thus a high level on security can be achieved, once the communication has been set up. Another, major aspect regarding security is provided by the concept of reversing the traditional client server roles: all activities are initiated and controlled by the IoT, the Terminal plays the passive role (server). The IoT application software can decide, whether a Terminal is allowed to determine the existence and/or connect with the IoT. Based on hardware characteristics (e.g. the EMEI), the IoT can restrict access to a pre-selected number of Terminals.
These very basic security checks before even setting up the connection between the IoT and the Terminal provide an additional level of security before traditional authentication mechanisms like username and password on application level follows. If connected with the Internet (the cloud), the IoT can decide itself at which time or at which case (or even if at all) it connects with the cloud, for example only in case of malfunctions and/or only at pre-defined time intervals. Thus, using the rApp framework one can achieve that the IoT has the full control over both, the communication activities as well as over the Terminal – not vice-versa!