SPONET is implemented on the Android protocol stack and validated correct operation on a Nexus One, Nexus S, Samsung Galaxy S, and HTC Desire. It is currently under maintenance and will be released soon.

SPONET User Interface.

User checks status of SPONET (a), view the list of landmarks he/she visited (b), by selecting a landmark user sees detailed information on landmark in (c) which includes a cellular network information, nearby Wi-Fi access points, visit time and duration, and encountered neighbors. Map view in (d) shows approximate location of landmarks as “star” icon. Active (green indicator) and inactive (gray indicator) neighbors are shown in (d). User configures SPONET using settings window (f).

 (a) Status and Progress View  (b) Landmark List  (c) Landmark Extended Information
 
 (d) Map View (e) Neighbor List View   (f) Settings

Application Programming Interfaces

The API modules of typical peer-to-peer data exchange system offer methods for communication. Our system also provides user context, which is geographical and social history of encountering. SPONET has a number of callback functions to extend its functionalities such as adding new routing protocol and implementing neighbor discovery methods. We categorize SPONET’s API into three groups: Context Transportation Interface (CTI) and Local Context Access Interfaces (LCAI), and Configuration and Control Interface (CCI).

CTI implements the advertisement, delivery and download of data from other peers. Applications may use delivery functions to share data with others. The application port must be specified to deliver data to intended application. Applications should use a unique port although duplicated ports are allowed for the purpose of delivering the same data to multiple applications. Applications optionally specify deadline for delivery that may facilitate delivery and avoid unnecessary distribution of data. To receive data, applications register callback for data receiving and specify a port. When MM receives data, it checks the application port and forwards data to applications with matched port number.

LCAI has components of social and geographical context access methods. User’s social context is neighbor information which could link to relevant temporal and spatial encounter histories. Geographical context organizes information corresponding to specific landmark, which includes visit duration and visit number, transition and etc. These contexts can be used in both applications and external routing protocols. Applications use contexts for designing networking applications and user-centric applications. For example, using landmark information, transition between landmarks “Digital Diary” or “Appointment Scheduler” application can be implemented.

In CCI, we provide access for control and configuration mechanisms on resource sharing, data exchange and location privacy levels. APIs in this group are designed for routing protocols implementation, controlling behavior of SPONET on neighbor discovery and data exchange. CCI assists to set parameters of routing protocols. In order to reduce SPONET’s complexity, we placed APIs for external routing protocols in CCI, so that it will apply to all attached applications. In our future work, we plan to add more detailed settings, for instance, the social privacy accessible degree and the designation of routing options for each application or even each message and etc. Applications that run on SPONET needs to import the SPONET-specific classes such as Neighbor, Landmark, Visit, and RPA-Header, and use Android Interface Definition Language (AIDL).

Sample Application

MusiShan /myuˈzɪʃən / is a media sharing application with search and download function.  Users select their desired contents to share and add tags. The list of shared contents is stored in database including title of content, size, and tags. Also, additional information can be stored according to the type of content. In case of music, the information is singer name, album title, genre of music, album year, etc. In order to search for contents users insert keywords, select content type, set download deadline, and press search button. MusiShan generates search query and calls the deliver_to_all API function. The API uses Epidemic routing and delivers query to every encountered device. The query is then delivered to MusiShan on other device, and MusiShan generates response including actual content. To deliver response, MusiShan calls deliver_to function indicating query generator node as destination. SPONET then uses one of active routing protocols, e.g., Spray & Focus, and delivers content to the destination. Content is usually transferred in a single transmission between devices but for convenience the application shows download progress. With only two API functions, contents can be easily shared between smartphones on demand.

 (a) Search  (b) Share  (c) Download

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>