  The evolution of mobile devices with various capabilities (e.g., smartphones
and tablets), together with their ability to collaborate in impromptu ad hoc
networks, opens new opportunities for the design of innovative distributed
applications. The development of these applications needs to address several
difficulties, such as the unreliability of the network, the imprecise set of
participants, or the presence of malicious nodes. In this paper we describe a
middleware, called SITAN, that offers a number of communication, group
membership and coordination services specially conceived for these settings.
These services are implemented by a stack of Byzantine fault-tolerant
protocols, enabling applications that are built on top of them to operate
correctly despite the uncertainty of the environment. The protocol stack was
implemented in Android and NS-3, which allowed the experimentation in
representative scenarios. Overall, the results show that the protocols are able
to finish their execution within a small time window, which is acceptable for
various kinds of applications.
