1553-877X (c) 2013 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See
http://www.ieee.org/publications_standards/publications/rights/index.html for more information.
This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI
10.1109/COMST.2014.2371813, IEEE Communications Surveys & Tutorials
the time. In addition, RoadSpeak only provides a voice chat
service. Its extension support is merely for the grouping of
membership in this service, and not for application developers
to extend it to provide other services and functions for VSNs.
Thus, it can hardly fulfill the diverse service requirements of
different users in a VSN.
3) AmbientTalk
AmbientTalk [33] is a high-level, object-oriented
programming language for developing distributed mobile
applications over MANETs. The basic idea of the AmbientTalk
programming paradigm is that it can incorporate network
failures in its programming model. AmbientTalk employs a
purely event-driven concurrency framework based on actors.
Actor executions can be concurrent with asynchronous actor
method invocations; thus AmbientTalk is very suitable for
highly dynamic networks. Also, the implementation of
AmbientTalk combines the Java virtual machine (JVM) as a
platform, which makes it easy for AmbientTalk programs to use
Java libraries, and Java objects can easily use AmbientTalk as
an embedded scripting language. However, AmbientTalk is a
completely new language, which means that programmers have
to spend time to climb the learning curve before using it to
develop applications for MSN systems. Furthermore,
AmbientTalk does not provide a library of existing application
services, so it is not efficient for use in developing applications.
4) MobiSoC
MobiSoC [34] is a middleware that provides a common
platform for the rapid development of mobile social computing
applications (MSCA), and for distributing such applications on
multiple servers in order to achieve scalable operations.
Through capturing the social states of physical communities,
and mining previously unknown patterns from emergent
geo-social data with social states, a mechanism is designed to
share the data on social states among the mobile devices to
support real-time MSN applications. As the architecture of
MobiSoC is based on the Service-Oriented Architecture (SOA),
it supports evolution by providing modularity, extensibility, and
language independence as well. Two prototype applications for
smartphones, Tranzact and Clarissa, were designed and
implemented based on MobiSoC. Experimental results
involving these applications showed that MobiSoC can provide
a reasonable performance in mobile devices. Nevertheless, a
major shortcoming of MobiSoC is that mobile devices can only
run the SOA client of MobiSoC, which uses the Simple Object
Access Protocol (SOAP) to access a central server designed for
enterprise-oriented applications. All services needed for
interactions or message exchanges between mobile devices are
hosted in the server. Thus, MobiSoC is not suitable for mobile
devices interacting over MANETs.
5) MobiClique
MobiClique [6] is a middleware for MSNs. It integrates
existing social networks and opportunistic contacts between
smartphones to form ad-hoc communities that are based on
opportunistic communications for social networks and social
graphs. Different from previous solutions (e.g., RoadSpeak and
MobiSoC) for MSNs, MobiClique does not depend on a central
server or infrastructure connectivity, and it supports
opportunistic connections directly between neighboring mobile
devices. MobiClique enables mobile devices to set up an
ad-hoc MSN through Bluetooth, using a store-carry-forward
technique to disseminate contents around this network, which
forms an overlay packet switched network capable of providing
new network services. Moreover, MobiClique also provides an
open API to encourage third parties to develop new services
and applications based on it.
6) Haggle
Haggle [35] is a data-centric networking framework that
separates application logic from network bindings. Haggle
enables seamless network connectivity and application
functionality so that applications can adapt to network
conditions using the channel with the best connectivity. In other
words, Haggle allows mobile applications to take advantage of
both infrastructure and ad-hoc networks. When an
infrastructure network is not available, Haggle can work in a
distributed manner such that mobile devices are networked
dynamically. For example, users can still send messages via
ad-hoc connectivity over Bluetooth or search for information in
contents cached in the neighborhood. Besides, with the use of a
publish/subscribe model, users can declare their interests by
keywords and receive data items that match the keywords from
other users. Haggle supports many platforms, including
Android, iOS, Windows Phone (WP), Linux, and Mac OS X.
C. Mobile Operating Systems
Mobile devices play a critical role in MSNs, and most MSN
applications, platforms, and research on mobile networks are
largely based on smartphones, in which the OSs are the
essential software component that provides the services that
make smartphones smart. For instance, OSs in mobile devices
provide the basic libraries and drivers of hardware modules,
which are the foundations of the software development kits
(SDKs) of the popular MSNs (e.g., Facebook). They provide
the distributed computing capabilities that enable easy
implementation of various kinds of MSN applications/
platforms. Moreover, the use of multiple sensor modules in
smartphones to obtain sensing data is becoming important.
Mobile OSs provide the necessary APIs for such modules,
which enable the sensing data to be processed and linked to
different MSN applications dynamically, thus improving the
context-awareness and cyber-physical capacity of these MSN
applications. Therefore, mobile OSs are crucial for MSNs.
Android, iOS and WP are currently the dominant mobile OSs
that are deployed widely in smartphones.
In general, each mobile OS has its specific advantages to
MSNs. For example, since open source is an intrinsic feature of
Android, many researchers are also conducting their studies on
MSNs based on the Android system. Some researchers are
focusing on designing middleware in Android, so as to support
mobile social ecosystems [38, 39]. Haggle and AmbientTalk,
which we reviewed in Section II-B, are also based on the
Android OS. Since version 4.0, Android supports Wi-Fi Direct
for peer-to-peer connections without a hotspot or Internet
connection, which is essential for setting up opportunistic
networks (one of the core capabilities of future MSNs). Unlike
other mobile OSs, iOS is only licensed for use on Apple
products. All applications can be built based on a precise
configuration so that developers can test for one standard when
developing iOS mobile applications. Thus, iOS is an ideal OS