Abstract
Pervasive applications running on mobile ad hoc networks have to be conceived as loosely-coupled event-driven architectures because of the dynamic nature of both the underlying network and the applications running on top of them. Such architectures can become tedious to develop and understand when the number of events and event handlers increases. The reason is that the control flow of the application is driven by event handlers or callbacks which are triggered independently and are scattered throughout the application code. In this paper, we propose a number of language constructs that reconcile the elegant processing of events of a reactive programming system with the loose coupling of a publish/subscribe system that is required to cope with the dynamic nature of mobile ad hoc networks.
Keywords
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Kaminsky, A., Bischof, H.P.: Many-to-many invocation: a new object oriented paradigm for ad hoc collaborative systems. In: OOPSLA ’02: Companion of the 17th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pp. 72–73. ACM, New York (2002)
Meier, R., Cahill, V.: Steam: Event-based middleware for wireless ad hoc networks. In: ICDCSW ’02: 22nd International Conference on Distributed Computing Systems, Washington, DC, USA, pp. 639–644. IEEE Computer Society, Los Alamitos (2002)
Murphy, A., Picco, G., Roman, G.C.: Lime: A middleware for physical and logical mobility. In: Proceedings of the The 21st International Conference on Distributed Computing Systems, pp. 524–536. IEEE Computer Society, Los Alamitos (2001)
Grimm, R.: One world: Experiences with a pervasive computing architecture. IEEE Pervasive Computing 3(3), 22–30 (2004)
Carzaniga, A., Rosenblum, D.S., Wolf, A.L.: Achieving scalability and expressiveness in an internet-scale event notification service. In: PODC ’00: Proceedings of the nineteenth annual ACM symposium on Principles of distributed computing, pp. 219–227. ACM Press, New York (2000)
Cugola, G., Nitto, E.D., Fuggetta, A.: The jedi event-based infrastructure and its application to the development of the opss wfms. IEEE Trans. Softw. Eng. 27(9), 827–850 (2001)
Meier, R., Cahill, V.: Taxonomy of distributed event-based programming systems. In: ICDCSW ’02: 22nd International Conference on Distributed Computing Systems, Washington, DC, USA, pp. 585–588. IEEE Computer Society, Los Alamitos (2002)
Chin, B., Millstein, T.: Responders: Language support for interactive applications. In: Thomas, D. (ed.) ECOOP 2006. LNCS, vol. 4067, pp. 255–278. Springer, Heidelberg (2006)
Haller, P., Odersky, M.: Event-based programming without inversion of control. In: Lightfoot, D.E., Szyperski, C. (eds.) JMLC 2006. LNCS, vol. 4228, pp. 4–22. Springer, Heidelberg (2006)
Adya, A., Howell, J., Theimer, M., Bolosky, W.J., Douceur, J.R.: Cooperative task management without manual stack management. In: USENIX Annual Technical Conference, pp. 289–302. USENIX Association, Berkeley (2002)
Verissimo, P., Casimiro, A.: Event-driven support of real-time sentient objects. In: 8th IEEE International Workshop on Object-Oriented Real-Time Dependable Systems, Guadalajara, Mexico (January 2003)
Levis, P., Culler, D.: Mate: A tiny virtual machine for sensor networks. In: International Conference on Architectural Support for Programming Languages and Operating Systems, San Jose, CA, USA (October 2002)
Kasten, O., Römer, K.: Beyond event handlers: programming wireless sensors with attributed state machines. In: IPSN ’05: 4th international symposium on Information processing in sensor networks, Piscataway, NJ, USA. IEEE Press, Los Alamitos (2005)
Dedecker, J., Van Cutsem, T., Mostinckx, S., D’Hondt, T., De Meuter, W.: Ambient-Oriented Programming. In: OOPSLA ’05: Companion of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications. ACM Press, New York (2005)
Van Cutsem, T., Mostinckx, S., Gonzalez Boix, E., Dedecker, J., De Meuter, W.: Ambienttalk: object-oriented event-driven programming in mobile ad hoc networks. In: Proceedings of the XXVI International Conference of the Chilean Computer Science Society (SCCC 2007), pp. 3–12. IEEE Computer Society, Los Alamitos (2007)
Van Cutsem, T., Mostinckx, S., De Meuter, W.: Linguistic symbiosis between event loop actors and threads. Computer Languages Systems & Structures 35(1) (2008)
Miller, M., Tribble, E.D., Shapiro, J.: Concurrency among strangers: Programming in E as plan coordination. In: De Nicola, R., Sangiorgi, D. (eds.) TGC 2005. LNCS, vol. 3705, pp. 195–229. Springer, Heidelberg (2005)
Van Cutsem, T.: Ambient References: Object Designation in Mobile Ad Hoc Networks. PhD thesis, Vrije Universiteit Brussel, Software Languages Lab (May 2008)
Elliott, C., Hudak, P.: Functional reactive animation. In: ACM SIGPLAN International Conf. on Functional Programming, vol. 32(8), pp. 263–273 (1997)
Wan, Z., Taha, W., Hudak, P.: Real-time FRP. In: International Conference on Functional Programming, ICFP’01 (2001)
Peterson, J., Hudak, P., Elliott, C.: Lambda in motion: Controlling robots with haskell. In: Gupta, G. (ed.) PADL 1999. LNCS, vol. 1551, p. 91. Springer, Heidelberg (1999)
Courtney, A.: Frappé: Functional reactive programming in Java. In: Third International Symposium on Pratical Aspects of Declarative Languages (March 2001)
Cooper, G.H., Krishnamurthi, S.: Embedding dynamic dataflow in a call-by-value language. In: Sestoft, P. (ed.) ESOP 2006. LNCS, vol. 3924, pp. 294–308. Springer, Heidelberg (2006)
Johnston, W.M., Hanna, J.R.P., Millar, R.J.: Advances in dataflow programming languages. ACM Comput. Surv. 36(1), 1–34 (2004)
Mansouri-samani, M., Sloman, M.: Gem: A generalized event monitoring language for distributed systems. IEE/IOP/BCS Distributed Systems Engineering Journal 4, 96–108 (1997)
Chen, G., Kotz, D.: Context aggregation and dissemination in ubiquitous computing systems. In: WMCSA ’02: Fourth IEEE Workshop on Mobile Computing Systems and Applications, Washington, DC, USA. IEEE Computer Society, Los Alamitos (2002)
Mainland, G., Morrisett, G., Welsh, M.: Flask: staged functional programming for sensor networks. In: 13th ACM SIGPLAN international conference on Functional programming, pp. 335–346. ACM, New York (2008)
Dagand, P.E., Kostić, D., Kuncak, V.: Opis: reliable distributed systems in ocaml. In: TLDI ’09: Proceedings of the 4th international workshop on Types in language design and implementation, pp. 65–78. ACM, New York (2009)
Ni, Y., Kremer, U., Stere, A., Iftode, L.: Programming ad-hoc networks of mobile and resource-constrained devices. In: ACM SIGPLAN conf. on Programming language design and implementation, pp. 249–260. ACM, New York (2005)
Eugster, P.T., Garbinato, B., Holzer, A.: Location-based publish/subscribe. In: NCA ’05: Proceedings of the Fourth IEEE International Symposium on Network Computing and Applications, Washington, DC, USA, pp. 279–282. IEEE Computer Society, Los Alamitos (2005)
Cherniack, M., Balakrishnan, H., Balazinska, M., Carney, D., Çetintemel, U., Xing, Y., Zdonik, S.: Scalable distributed stream processing. In: CIDR (2003)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Lombide Carreton, A., Mostinckx, S., Van Cutsem, T., De Meuter, W. (2010). Loosely-Coupled Distributed Reactive Programming in Mobile Ad Hoc Networks. In: Vitek, J. (eds) Objects, Models, Components, Patterns. TOOLS 2010. Lecture Notes in Computer Science, vol 6141. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-13953-6_3
Download citation
DOI: https://doi.org/10.1007/978-3-642-13953-6_3
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-13952-9
Online ISBN: 978-3-642-13953-6
eBook Packages: Computer ScienceComputer Science (R0)