DTN middleware

  • Duration: Aug 2012 - Dec 2013
  • Languages used: Java, Javascript
  • Platform: Android


I developed a middleware for Android that supports Delay-Tolerant Network (DTN) applications. Forwarding protocols can be dynamically loaded, replaced, and customized, at run-time, to suit diverse application requirements and network scenarios. Using the middleware, I developed a mobile web application to help wheelchair people board buses easily.


Delay/Disruption-Tolerant Networks (DTN) are networks where the nodes are frequently subjected to disruptions, due to mobility or interference. Traditional network protocols like TCP do not work in these networks, since it is often impossible to create a stable end-to-end path between source and destination nodes. For example, the network of phones carried by moving people, or the network of sensor nodes subjected to highly unpredictable and frequent wireless interferences, are examples of DTNs. Numerous protocols for DTNs have been proposed, though which protocol to use is best decided by the application itself and the network scenario.

Experience gained

Android programming, remote binder IPC, OSGi, AJAX


I developed a middleware for Android that supports dynamic loading, modification, and customization, of DTN protocols at run-time. The application has complete control and flexibility on which protocol to use. The size of the middleware is minimized to the protocols actually in use. This is in contrast to existing middleware in the literature, that are static, and use inflexible protocol stacks. To dynamically load protocols (written in Java), I used OSGi. To communicate between Android applications and the middleware, I used remote binder interfaces for IPC, while I used AJAX to communicate between web applications and the middleware.


Using the middleware, I developed a web application that helps people in wheelchairs to board buses easily, by notifying the driver in advance while they are approaching the bus-stop or terminal pick up point. The driver lets the wheelchair person board first, and other passengers after. This is particularly helpful in large crowded bus-stops, where wheelchair people have difficulty signaling to the bus driver that they want to board.