Recently, mobile ad hoc networks (MANET) have gained an enormous popularity, which has led to an increasing need for the development of MANET applications. Developing MANET applications, however, is not an easy task. Developers have to deal with difficulties inherent from the wireless network environments.In this thesis, the design of a middleware that abstracts the functionalities of an unstructured overlay network is proposed. The main non-functional requirements that our design tries to achieve are portability, efficiency, and usability. Portability is achieved by following the J2ME platform specifications. The middleware has been implemented and tested on a real time ad hoc network using different platform devices. The performance measurements of the middleware show that it achieves its efficiency requirements. Furthermore, the middleware's usability is validated by showing how different applications can be designed and deployed easily on top of it. It provides a simple MBR-based file-search and path establishment mechanisms which we have proved to be the basis for implementing a wide range of applications, such as file sharing, ALM and gaming applications.