Mobile systems and mobile applications have gained a lot of importance and magnitude both in research and industry over the last years. This is mainly due to the introduction of mobile devices such as the iPhone and the most modern Android-based devices that changed radically the concept of smart-phone thanks to:
Hardware specifications that allow to compare these devices to miniaturised computers, situated — thanks to the use of practically every kind of known connectivity (GPS, WiFi, bluetooth, etc.) — in a computational network which is becoming more and more similar to the vision presented by both the Internet of Things and ubiquitous computing
The evolution of both the smart-phone O.S. (Apple iOS, Android, Meego) and their related SDK.
All these innovations produce a twofold effect: on the one side, they open new perspectives, opportunities and application scenarios for these new mobile devices; on the other side, they introduce new challenges related to the development of the mobile applications, that are continuously increasing their complexity. These applications — due to the introduction of new usage scenarios — must be able to address issues such as concurrency, asynchronous interactions with different kinds of services (Web sites/Services, social-networks, messaging/mail clients, etc.) and must also expose a user-centric behaviour governed by specific context information (geographical position of the device, presence/absence of different kinds of connectivity, events notification such as the reception of an e-mail, etc.).
JaCa-Android is a developing framework/middleware that allows to easily tackle the development of new generation smart mobile applications on top of the Android platform thanks to an agent-oriented level of abstraction. Under the hood there is a programming model, named JaCa, rooted on:
Jason: an interpreter for an extended version of AgentSpeak, it implements the operational semantics of that language, and provides a platform for the development of multi-agent systems
CArtAgO: (Common ARTifact infrastructure for AGents Open environment), a general purpose framework/infrastructure that makes it possible to define and create computational work environments in agent-based applications, engineered upon the principles of the A&A (Agents and Artifacts) meta-model.
By adopting the JaCa programming model, a mobile Android application can be realised as one or multiple workspaces in which Jason agents are used to encapsulate the logic and the control of tasks involved in the mobile application, and artifacts are used as tools for agents to seamlessly exploit available Android device/platform components and services (ex. GPS, Sensors, etc.).
Part of this project has been realised with the founding of the Multi-Agent Oriented programming project (CMIRA project founded by the Rhone Alpes region).