The recent profusion of mobile devices such as the iPhone and Android-powered smartphones has given rise to a new type of applications that exploit the physical location of users to help people interact on the move, so-called mobile social networking applications. Developing such highly distributed, location-dependent applications is a challenge.
In this work we propose Urbiflock, a software platform for the development of mobile social applications running on Android phones interacting via wireless networks. The framework is built on the concept of flocks, a declarative representation of user groups. Flocks represent the user’s social network in terms of intensionally specified sets. To interact and exchange data with these sets the framework incorporates a tuple-based communication library.
Urbiflock is a Facebook-like application framework for mobile devices. As in Facebook, users that join Urbiflock can meet other users and interact with them. For example users may broadcast announcements to each other, they can browse one another’s profile, launch interactive polls, etc. The framework takes care of managing a user’s social networks, called “flocks”. A flock represents a loosely-defined group of users. A flock can be compared to a Facebook group (for example, a group of your old classmates), but it additionally allows for the definition of groups of proximate flockrs (for example, a group of all of your friends that are currently nearby).
Users can also build applications and plug them into the Urbiflock framework. Several core applications are currently available in the Urbiflock framework, such as flock creators and profile viewers. The framework also counts with two user applications I rate you (IR8U) that allows users to ask proximate users to rate them on a certain subject, and Guanotes that allows user to send message to each other.
The Urbiflock framework has been written in the AmbientTalk language. As such, no configuration is required to be able to quickly script new applications on it once AmbientTalk is running on the target platform.
AmbientTalk runs on a regular J2SE Java Virtual Machine supporting version 1.3 or higher, Java 2 micro edition (J2ME) platform, under the connected device configuration (CDC), and Android Platform version 1.6 or higher.
We have implemented a AWT UI interface for Urbiflock's deployment on HTC touch cruise phones running J2ME. In order to configure your HTC Touch device for our framework you can follow the instruction here.
We are currently working on an Android UI interface for Urbiflock's deployment on a number of Android phones ( HTC Hero, Legend and Desire, and Sony Xperia X10 series).
The Urbiflock framework is available in the AmbientTalk distribution library under the frameworks/ folder. Visit our google code repository to download the AmbientTalk distribution.
The architecture of the Urbiflock framework shown below is divided in three layers: applications, Urbiflock core, and Urbiflock infrastructure.
The application layer includes the API of an “application object” to be plugged in the framework. There exists several core applications:
There are also several user applications in the framework:
The Urbiflock's core is composed of three main facilities specially designed to enable social interactivity and deal with the highly dynamic environment to which mobile devices exposes them: flockr, user profile and the TOTAM framework for flock communications.
The infrastructure layer consists of three low-level abstractions on which the framework core is based: a RETE engine which orchestrates the flock composition, and the service discovery and communication APIs to discover and communicate with nearby applications, respectively.
Flocks: Enabling Dynamic Group Interactions in Mobile Social Networking Applications. E. Gonzalez Boix, A. Lombide Carreton, C. Scholliers, T. Van Cutsem, W. De Meuter, T. D'Hondt. To appear in Mobile Computing and Applications Track at 26th Annual ACM Symposium on Applied Computing (SAC 2011), ACM, Taiwan, March 2011. (pdf)