Ubiquitous computing has introduced a new era of computing. Compared to traditional distributed systems, ubiquitous computing systems feature increased dynamism and heterogeneity. In traditional computing environments (mainframe and PC), users actively choose to interact with computers. Ubiquitous computing applications are likely to be different, where computing systems are available anywhere but not visible. The underlying ubiquitous computing infrastructures are more complex and bring up many issues. In this work we survey the literature to demonstrate, in detail, the characteristics and the challenges of the ubiquitous computing as well as the requirements for building ubiquitous software that brings these characteristics into reality. Furthermore we present some existing middleware solutions for ubiquitous environments, and propose our middleware-based architecture to facilitate the user interaction in such environment. To the best of our knowledge this is the first work proposing DDS-based solution for ubiquitous computing as a unified middleware. 1. Introduction “The most profound technologies are those that disappear. They weave themselves into the fabric of everyday life until they are indistinguishable from it.” Mark Weiser, 1991. Mark Weiser, by stating this, was dreaming of a world that would be flooded with embedded devices, note pads, and electronic dust. The remarkable advances that have been achieved over the past ten years in the manufacturing of semiconductor devices and microsystems have shown that there can be no doubt about the question whether or not Mark’s dream will come true [1, 2]. At that time, Weiser  was searching for a term to describe his vision of an embedded computing world within which computers would be an invisible part of our everyday lives. Ahead of their time, Weiser and colleagues used the terms ubiquitous and pervasive computing interchangeably to describe how computing was going to change from desktop, personal computing to a more distributed, mobile, and embedded form. But what does the term ubiquitous actually mean? Despite being used interchangeably with the term “pervasive,” they do refer to different forms of computing. Ubiquitous computing refers to building a global computing environment where seamless and invisible access to computing resources is provided to the user. It deals with giving users the ability to access information services, applications, and resources globally available through any device over different kinds of networks all the time and irrespective to their location. Pervasive
J.-Y. Tigli, S. Lavirotte, G. Rey et al., “WComp middleware for ubiquitous computing: aspects and composite event-based Web services,” Annals of Telecommunications, vol. 64, no. 3-4, pp. 197–214, 2009.
J. P. Sousa and D. Garlan, “Aura: an architectural framework for user mobility in ubiquitous computing environments,” in Proceedings of the 3rd Working IEEE/IFIP Conference on Software Architecture, Montreal, Canada, 2002.
B. D. Noble, D. Narayannan, J. E. Tilton, J. Flinn, and K. R. Walker, “Agile application-aware adaptation for mobility,” in Proceedings of the 16th ACM Symposium on Operating Systems Principles, Saint Malo, France, 1997.
Z. Jaroucheh, X. Liu, and S. Smith, “A perspective on middleware-oriented context-aware pervasive systems,” in Proceedings of the 33rd Annual IEEE International Computer Software and Applications Conference (COMPSAC '09), pp. 249–254, July 2009.
R. Nossenson, O. Yudilevich, and O. Markowitz, “Client-server architecture and algorithms for ubiquitous video service,” in Proceedings of the 10th IEEE International Symposium on Parallel and Distributed Processing with Applications (ISPA '12), pp. 762–769, July 2012.
B. Al-Madani, A. Al-Roubaiey, and T. Al-Shehari, “Wireless video streaming over Data Distribution Service middleware,” in Proceedings of the 3rd IEEE International Conference on Software Engineering and Service Science (ICSESS '12), pp. 263–266, June 2012.
A. Detti, P. Loreti, N. Blefari-Melazzi, and F. Fedi, “Streaming H.264 scalable video over data distribution service in a wireless environment,” in Proceedings of the IEEE International Symposium on A World of Wireless, Mobile and Multimedia Networks (WoWMoM '10), pp. 1–3, June 2010.
P. Boonma and J. Suzuki, “Toward interoperable publish/subscribe communication between wireless sensor networks and access networks,” in Proceedings of the 6th IEEE Consumer Communications and Networking Conference (CCNC '09), pp. 1–6, January 2009.