Mobile Server Framework
UI Design Intuitive UI design.
Cloak Mode allows users to flip the current
Cloak Mode application to another application. This allows
the user to hide the application from the
outsider which is useful in closed societies.
The Presence module handles the presence
Presence SIP information while Messaging component
& allow users to communicate with each other
Messaging XMPP once they are connected. Both will be
implemented using SIP & XMPP (Jabber)
User Tiny The Content Management handles how
Space HTTP information is passed between devices and
also the mechanism of file sharing. This
project will either employ SAMBA, FTP or
Samba SIP, after more research and tests are done.
File Sharing FTP
It also manages the kind of information user
wants to put on his/her space for users to
browse, through Tiny HTTP.
Authentication Authentication validates the identity of the
Device Discovery Device Discovery discovers the devices and
connects them together.
Mac Address of the devices will be encrypted
IP Allocation (IPV6) in MD5 to generate a IPV6’s IP Address for
Wi-Fi WiFi-Direct enables device-to-device
Connection connection with any Wi-Fi Certified devices.
For more information, refer to the following page.
A. Presence and Messaging
1. Extensible Messaging and Presence Protocol (XMPP) 
Formerly known as Jabber, Extensible Messaging and Presence Protocol (XMPP) is an
open-standard communications protocol for message-oriented middleware based on
Extensible Markup Language (XML). It was developed by the Jabber open-source
community for, near-real-time, extensible instant messaging (IM), presence information, and
contact list maintenance. It is used widely in today’s VoIP and file transfer signaling types of
applications. XMPP is currently supported by Android.
B. Content Management
1. User Space
TinyHTTP can be used as a webserver in the application to allow user to host the profile
content, so that other user can browse it. This approach has been used by current Android
application called kWS.
kWS is a lightweight and fast web server especially designed for android mobile devices. It
can be used to host websites and to serve files over HTTP. kWS implements HTTP-1.0 with
basic & digest authentication schemes and supports Dyn DNS updates, directory downloads
2. File Sharing
The most common protocol to share files is via HTTP and FTP protocols. The obvious
advantage is the ubiquity of the protocol while the disadvantage would be allocation and
mapping of the devices based on IP address, given the mobile nature of phones.
SAMBA server can be a viable method for file sharing. Samba assigns NETBIOS type of
hostname and hence it will show up in the network browser of other computers. Such a setup
will enable file sharing between wifi enabled laptops as well, apart from android phones.
Session Initiation Protocol (SIP) is a signalling protocol, widely used for controlling
multimedia communication sessions, over Internet Protocal (IP). It can used for creating,
modifying and terminating two-party (unicast) ot multiparty (multicasts) sessions, consists of
one or several media streams. It can also be used for video conferencing, streaming
multimedia distribution, instant messaging, presence information, file transfer and online
File sharing on Android devices is not uncommon. Presently, there are many applications
which allows user share files over the network. However, all the applications currently require
a common access point (LAN or WLAN) and cannot work between phones. The “Mobile
Server” application aims to overcome this limitation as well as to allow for anonymous
Overview of current Android File Sharing Applications:
During our research, we found four file sharing applications.However, they all require a
central access point. None of them can be used for peer-to-peer connection environment.
1. FrostWire 
FrostWire for Android allows multiple Android users connected to a Wi-Fi network to Chat
and Share Files at very high speeds in a peer to peer fashion, no third parties involved
shareAnywhere launched by T-Mobile for Android devices. It is designed to share files
primarily at your workplace. Presentations and documents can be easily shared between
several Android users. Files can be extracted from a central repository over the Internet
provided you have the rights to access –Login details. It can be downloaded from the
3. On Air
On Air allows you to easily transfer files over your Wi-Fi connection by accessing it as if were
a drive, from within your Finder.
4. ES File Explorer- ManagES
This is a File Explorer for Android that offers the ability to launch Samba shares as remote
drives, enables you to mount and share it on your local network. Transferring files works fine,
with the exception of a large data transfer. Streaming audio isn’t supported; therefore
copying MP3 files before listening is mandatory. A little more challenging are the sub-menus
to access simple functions like copy and past, but there are some keyboard short cuts for
more frequent users. ES File Explorer is a free app.
During our research, we have found the following methods to make peer-to-peer connection
on Android platform.
1. Wi-Fi Direct 
The Wi-Fi Alliance has announced the emergence of WiFi Direct, which is capable of
making device-to-device connection, in October 2010. This is an important leap in
connecting devices anywhere, anytime. With Wi-Fi Direct certification, devices can
form connections with nearly all the Wi-Fi CERTIFIED devices. One Wi-Fi Direct
device can connect one-to-one to another Wi-Fi device or connect to multiple devices
at a same time. Wi-Fi certified devices can connect with older Wi-Fi CERTIFIED
devices, enlarging its pool of devices. It includes a push-button set up mechanism,
employs the latest WPA2TM security protections, and bring typical Wi-Fi throughput
and range. Currently, two phones are already available with Wifi Direct capability
(Samsung Galaxy S and LG Optimus Black). More are expected in the months to
come. There has been some discussion that future version of the iPhone and the
Symbians phones will support Wi-Fi Direct.
2. Wifi Ad Hoc Network 
Another way to connect two peer-to-peer device is through an Adhoc Network. Two
students had developed an ad-hoc library protoype to run mobile ad-hoc network for
Android app, as part of their undergraduate thesis. The library comprises a routing
protocol module (based on AODV) and a setup module for creating and stopping an
ad-hoc network on supported Android devices.
As this project is only a proof of concept, its current implementation requires manual
configuration on the Android phones, for the creation and termination of the ad-hoc
networks. This library can only be used on the rooted phones and there are still room
for enhancements, as the AODV protocol is not fully optmised, according to
conclusion in the thesis. The library has been tested with HTC Hero and Nexus One.
In the near future, we foresee that more Wifi-Direct phones will be shipped to the market.
This means that more phones will be able to connect peer-to-peer to another device, as
long as they are all wifi enabled. Hence, we see that there’s no reason to reinvent the
wheel, to spend time and resources to continue the research of mobile ad-hoc network.
This project will adopt Wifi-Direct as the mean to establish the connection between two
D. IP Address Allocation
Currently, WiFi Direct does not handle dynamic IP allocation yet. So, part of the
challenge for this project is to solve the dynamic IP allocation. For the ease of IP
allocation, we will use the Mac Address of the devices with MD5 encryption to generate a
IPV6’s IP Address.
Mac address: 01:23:45:67:89:ab
After MD5 Encryption: da95:9d98:4a94:62f2:68db:07d7:50cd:8ab1
 Jabber, http://en.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol
 kWS, http://www.androidzoom.com/android_applications/communication/kws-android-
 SIP, http://www.sip-communicator.org/index.php/Development/FileTransfer
 FrostWire, http://frostwire.wordpress.com/2010/06/15/introducing-frostwire-for-android/
 Wi-Fi Direct, http://www.wi-fi.org/Wi-Fi_Direct.php
 Ad-hoc Network on Android, http://code.google.com/p/adhoc-on-android/