Ambient-Oriented Programming in AmbientTalk

  • Jessie Dedecker
  • Tom Van Cutsem
  • Stijn Mostinckx
  • Theo D’Hondt
  • Wolfgang De Meuter
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4067)

Abstract

A new field in distributed computing, called Ambient Intelligence, has emerged as a consequence of the increasing availability of wireless devices and the mobile networks they induce. Developing software for mobile networks is extremely hard in conventional programming languages because the network is dynamically demarcated. This leads us to postulate a suite of characteristics of future Ambient-Oriented Programming languages. A simple reflective programming language, called AmbientTalk, that meets the characteristics is presented. It is validated by implementing a collection of high level language features that are used in the implementation of an ambient messenger application.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Agha, G.: Actors: a Model of Concurrent Computation in Distributed Systems. MIT Press, Cambridge (1986)Google Scholar
  2. 2.
    Agha, G., Hewitt, C.: Concurrent programming using actors. Object-oriented concurrent programming, 37–53 (1987)Google Scholar
  3. 3.
    Briot, J.-P., Guerraoui, R., Lohr, K.-P.: Concurrency and distribution in object-oriented programming. ACM Computing Surveys 30(3), 291–329 (1998)CrossRefGoogle Scholar
  4. 4.
    Callsen, C.J., Agha, G.: Open heterogeneous computing in ActorSpace. Journal of Parallel and Distributed Computing 21(3), 289–300 (1994)CrossRefGoogle Scholar
  5. 5.
    Caporuscio, M., Carzaniga, A., Wolf, A.L.: Design and evaluation of a support service for mobile, wireless publish/subscribe applications. IEEE Transactions on Software Engineering 29(12), 1059–1071 (2003)CrossRefGoogle Scholar
  6. 6.
    Cardelli, L.: A Language with Distributed Scope. In: Proceedings of the 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 286–297. ACM Press, New York (1995)CrossRefGoogle Scholar
  7. 7.
    Cugola, G., Jacobsen, H.-A.: Using publish/subscribe middleware for mobile systems. SIGMOBILE Mob. Comput. Commun. Rev. 6(4), 25–33 (2002)CrossRefGoogle Scholar
  8. 8.
    Dedecker, J., Van Cutsem, T., Mostinckx, S., D’Hondt, T., De Meuter, W.: Ambient-Oriented Programming. In: OOPSLA 2005: Companion of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, ACM Press, New York (2005)Google Scholar
  9. 9.
    D’Hondt, T., De Meuter, W.: Of first-class methods and dynamic scope. RSTI - L’objet no. 9/ 2003. LMO 2003, pp. 137–149 (2003)Google Scholar
  10. 10.
    Eugster, P., Felber, P., Guerraoui, R., Kermarrec, A.-M.: The many faces of publish/subscribe. ACM Comput. Surv. 35(2), 114–131 (2003)CrossRefGoogle Scholar
  11. 11.
    Gelernter, D.: Generative communication in Linda. ACM Transactions on Programming Languages and Systems 7(1), 80–112 (1985)MATHCrossRefGoogle Scholar
  12. 12.
    IST Advisory Group. Ambient intelligence: from vision to reality (September 2003)Google Scholar
  13. 13.
    Haahr, M., Cunningham, R., Cahill, V.: Supporting corba applications in a mobile environment. In: MobiCom 1999: Proceedings of the 5th annual ACM/IEEE international conference on Mobile computing and networking, pp. 36–47. ACM Press, New York (1999)CrossRefGoogle Scholar
  14. 14.
    Halstead Jr., R.: Multilisp: a language for concurrent symbolic computation. ACM Trans. Program. Lang. Syst. 7(4), 501–538 (1985)MATHCrossRefGoogle Scholar
  15. 15.
    Hewitt, C.: Viewing control structures as patterns of passing messages. Artificial Intelligence 8, 323–364 (1977)CrossRefGoogle Scholar
  16. 16.
    Hui, B.: Go wild wirelessly with bluetooth and java. Java Developer’s Journal 9(2) (February 2004)Google Scholar
  17. 17.
    Jefferson, D.R.: Virtual time. ACM TOPLAS 7(3), 404–425 (1985)CrossRefMathSciNetGoogle Scholar
  18. 18.
    Joseph, A.D., Tauber, J.A., Kaashoek, M.F.: Mobile computing with the rover toolkit. IEEE Transactions on Computers 46(3), 337–352 (1997)CrossRefGoogle Scholar
  19. 19.
    Jul, E., Levy, H., Hutchinson, N., Black, A.: Fine-grained mobility in the Emerald system. ACM Transactions on Computer Systems 6(1), 109–133 (1988)CrossRefGoogle Scholar
  20. 20.
    Kahn, K., Saraswat, V.A.: Actors as a special case of concurrent constraint (logic) programming. In: OOPSLA/ECOOP 1990: Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications, pp. 57–66. ACM Press, New York (1990)CrossRefGoogle Scholar
  21. 21.
    Kaminsky, A., Bischof, H.-P.: Many-to-many invocation: a new object oriented paradigm for ad hoc collaborative systems. In: OOPSLA 2002: Companion of the 17th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pp. 72–73. ACM Press, New York (2002)CrossRefGoogle Scholar
  22. 22.
    Lieberman, H.: Using prototypical objects to implement shared behavior in object-oriented systems. In: Conference proceedings on Object-oriented Programming Systems, Languages and Applications, pp. 214–223. ACM Press, New York (1986)Google Scholar
  23. 23.
    Liskov, B., Shrira, L.: Promises: linguistic support for efficient asynchronous procedure calls in distributed systems. In: Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation, pp. 260–267. ACM Press, New York (1988)CrossRefGoogle Scholar
  24. 24.
    Mamei, M., Zambonelli, F.: Programming pervasive and mobile computing applications with the TOTA middleware. In: PERCOM ’04: Proceedings of the Second IEEE International Conference on Pervasive Computing and Communications, p. 263. IEEE Computer Society Press, Los Alamitos (2004)CrossRefGoogle Scholar
  25. 25.
    Mascolo, C., Capra, L., Emmerich, W.: Mobile Computing Middleware. In: Advanced lectures on networking, pp. 20–58. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  26. 26.
    Masuhara, H., Matsuoka, S., Yonezawa, A.: Implementing parallel language constructs using a reflective object-oriented language. In: Proceedings of Reflection Symposium 1996, April 1996, pp. 79–91 (1996)Google Scholar
  27. 27.
    Miller, M., Tribble, E.D., Shapiro, J.: Concurrency Among Strangers. In: De Nicola, R., Sangiorgi, D. (eds.) TGC 2005. LNCS, vol. 3705, pp. 195–229. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  28. 28.
    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 Press, Los Alamitos (2001)CrossRefGoogle Scholar
  29. 29.
    Reynolds, P., Brangeon, R.: DOLMEN - service machine development for an open long-term mobile and fixed network environment (1996)Google Scholar
  30. 30.
    Schill, A., Bellmann, B., Bohmak, W., Kummel, S.: Infrastructure support for cooperative mobile environments. In: Proceedings of the Fourth Workshop on Enabling Technologies: Infrastructure for Collaborative Enterprises, pp. 171–178 (1995)Google Scholar
  31. 31.
    Taura, K., Matsuoka, S., Yonezawa, A.: Abcl/f: A future-based polymorphic typed concurrent object-oriented language - its design and implementation. In: Proceedings of the DIMACS workshop on Specification of Parallel Algorithms. Dimacs Series in Discrete Mathematics and Theoretical Computer Science, vol. 18, pp. 275–292 (1994)Google Scholar
  32. 32.
    Terry, D.B., Petersen, K., Spreitzer, M.J., Theimer, M.M.: The case for non-transparent replication: Examples from Bayou. IEEE Data Engineering Bulletin 21(4), 12–20 (1998)Google Scholar
  33. 33.
    Ungar, D., Chambers, C., Chang, B.-W., Hölzle, U.: Organizing programs without classes. Lisp Symbolic Computing 4(3), 223–242 (1991)CrossRefGoogle Scholar
  34. 34.
    Ungar, D., Smith, R.: Self: The power of simplicity. In: Conference proceedings on Object-oriented Programming Systems, Languages and Applications, pp. 227–242. ACM Press, New York (1987)CrossRefGoogle Scholar
  35. 35.
    Varela, C., Agha, G.: Programming dynamically reconfigurable open systems with salsa. SIGPLAN Not. 36(12), 20–34 (2001)CrossRefGoogle Scholar
  36. 36.
    Varela, C., Agha, G.: What after java? from objects to actors. In: WWW7: Proceedings of the seventh international conference on World Wide Web 7, pp. 573–577. Elsevier Science Publishers B. V., Amsterdam (1998)Google Scholar
  37. 37.
    Watanabe, T., Yonezawa, A.: Reflection in an object-oriented concurrent language. In: Conference proceedings on Object-oriented programming systems, languages and applications, pp. 306–315. ACM Press, New York (1988)CrossRefGoogle Scholar
  38. 38.
    Weiser, M.: The computer for the twenty-first century. Scientific American, 94–100 (September 1991)Google Scholar
  39. 39.
    Yonezawa, A., Briot, J.-P., Shibayama, E.: Object-oriented concurrent programming in ABCL/1. In: Conference proceedings on Object-oriented programming systems, languages and applications, pp. 258–268. ACM Press, New York (1986)Google Scholar
  40. 40.
    Zachariadis, S., Capra, L., Mascolo, C., Emmerich, W.: Xmiddle: information sharing middleware for a mobile environment. In: ICSE 2002: Proceedings of the 24th International Conference on Software Engineering, pp. 712–712. ACM Press, New York (2002)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Jessie Dedecker
    • 1
  • Tom Van Cutsem
    • 1
  • Stijn Mostinckx
    • 1
  • Theo D’Hondt
    • 1
  • Wolfgang De Meuter
    • 1
  1. 1.Programming Technology LaboratoryVrije Universiteit BrusselBelgium

Personalised recommendations