The foundation of this work comes from observations of the mobile ecosystem. Most notably, it features over a billion of activated devices based on Android platform with considerable and growing computing power and a rich set of sensors. Mobile devices e.g. smart phones and tablets are present in all sorts of human activity environments. As people are creatures of a habit thus mobile devices are also used with noticeable patterns that can empower mobile applications.
The simplest pattern one may think of are, for instance, frequency of battery charging or handover of Internet connection between Wi-Fi and cell-phone networks.
This ubiquity of devices and presence of patterns raises a question whether the aggregated power of many mobile devices can present interesting and useful properties.
To make mobile-based software smarter we need to efficiently monitor the devices and recognize patterns of mobiles device use. This monitoring feature is clearly a separate concern from application business logic and should be managed independently.
In this poster we present an event-driven platform that can be used as building block in user-pattern aware mobile appreciation. In this platform mobile devices are modelled as software components that provide well-defined functionality e.g. script execution in further presented Social Computing Cloud application.
Most commonly a given mobile-based software system has to handle large pool of devices and process a frequently varying stream of data in a responsive and scalable way. To address this issue, the platform follows an Event Driven Architecture with application of Complex Event Processing. This duo has already proved to be effective in adaptive systems with dynamic components, in scalable processing of a variable stream of monitoring events and in enabling the platform to aptly respond to changes in the monitored devices.
Platform maintains an event-driven state of the mobile ecosystem atop of which mobile applications can be build. Technically, Google Cloud Messaging system is used to communicate with the devices under platform supervision and to trigger those devices to respond with the events describing their state.
The Social Computing Cloud (SCC) application was developed to illustrate platform features. It is a voluntary computing application that uses mobile devices as computing task executors. It takes advantage of the following features and observations of Android platform:
• install & forget approach - application can work as background services without user supervision,
• scheduler handles the background task execution to minimize their impact on user experience
• user tend to connect to Wi-Fi whenever it is possible
• patterns in battery consumption and charging can be observed
The second use case is more intriguing, in which we shift focus from device internal state to its surrounding. Biological tracking systems such as UvA BiTS often suffer from limitations of the wireless (ZigBee) communication. Certain specimens frequently escape from a range of base stations and cannot be effectively monitored.
We propose to use the Event-driven Mobile Application Platform to build a human-assisted distributed sensor network that can extend BiTS tracking systems capabilities and leverage platforms features: monitoring, management and coordinating of mobile device pools.
When bird watchers come close to an interesting specimen a mobile application on the device with ZigBee transceiver can detect the vicinity of a bird. In the next step it can analyse bird's coordinate and movements and notify another human tracker that in his area. System can also assist in the transmission of the data from bird tracking devices to the central BiTS server.
The outcome of this work is a platform that can facilitate building smarter mobile application. Social Computing Cloud application served as a feasibility study of using mobile devices as a software components and effective device pool management. Our next goal is realization of the second presented BiTS use case and further investigation of users patterns.