Advertisement

Role-Based Declarative Synchronization for Reconfigurable Systems

  • Vlad Tanasescu
  • Paweł T. Wojciechowski
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3350)

Abstract

In this paper we address the problem of encoding complex concurrency control in reconfigurable systems. Such systems can be often reconfigured, either statically, or dynamically, in order to adapt to new requirements and a changing environment. We therefore take a declarative approach and introduce a set of high-level programming abstractions which allow the programmer to easily express complex synchronization constraints in multithreaded programs. The constructs are based on our model of role-based synchronization (RBS) which assumes attaching roles to concurrent threads and expressing a synchronization policy between the roles. The model is illustrated by describing an experimental implementation of our language as a design pattern library in OCaml. Finally, we also sketch a small application of a web access server that we have implemented using the RBS design pattern.

Keywords

Mobile Agent Policy Type Shared Object Constraint Language Empty List 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Benton, N., Cardelli, L., Fournet, C.: Modern concurrency abstractions for C#. In: Magnusson, B. (ed.) ECOOP 2002. LNCS, vol. 2374, p. 415. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  2. 2.
    Courtois, P.J., Heymans, F., Parnas, D.L.: Concurrent control with “readers” and “writers”. Communications of the ACM 14(10), 667–668 (1971)CrossRefGoogle Scholar
  3. 3.
    Fessant, F.L., Maranget, L.: Compiling join-patterns. In: Proc. HLCL 1998 (Workshop on High-Level Concurrent Languages) (1998)Google Scholar
  4. 4.
    Fournet, C., Gonthier, G., Lévy, J.-J., Maranget, L., Rémy, D.: A calculus of mobile agents. In: Sassone, V., Montanari, U. (eds.) CONCUR 1996. LNCS, vol. 1119, Springer, Heidelberg (1996)Google Scholar
  5. 5.
    Frølund, S., Agha, G.: A language framework for multi-object coordination. In: Nierstrasz, O. (ed.) ECOOP 1993. LNCS, vol. 707, pp. 346–360. Springer, Heidelberg (1993)CrossRefGoogle Scholar
  6. 6.
    Gosling, J., Joy, B., Steele, G., Bracha, G.: The Java Language Specification, 2nd edn. Addison Wesley, Reading (2000)Google Scholar
  7. 7.
    Hiltunen, M.A., Schlichting, R.D.: A configurable membership service. IEEE Transactions on Computers 47(5), 573–586 (1998)CrossRefGoogle Scholar
  8. 8.
    Hursch, W., Lopes, C.: Separation of concerns. Technical Report NU-CCS-95-03, College of Computer Science, Northeastern University (February 1995)Google Scholar
  9. 9.
    Jagadeesan, R., Jeffrey, A., Riely, J.: A calculus of untyped aspect-oriented programs. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743. Springer, Heidelberg (2003)Google Scholar
  10. 10.
    Jones, S.P., Gordon, A., Finne, S.: Concurrent Haskell. In: Proc. POPL 1996 (23rd ACM Symposium on Principles of Programming Languages) (January 1996)Google Scholar
  11. 11.
    Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.: Getting started with AspectJ. Communications of the ACM 44(10), 59–65 (2001)CrossRefGoogle Scholar
  12. 12.
    Lopes, C.V.D.: A Language Framework for Distributed Programming. PhDthesis, College of Computer Science, Northeastern University, December 1997 (1998)Google Scholar
  13. 13.
    Matsuoka, S., Yonezawa, A.: Analysis of inheritance anomaly in object-oriented concurrent programming languages. In: Research Directions in Concurrent Object- Oriented Programming, pp. 107–150. MIT Press, Cambridge (1993)Google Scholar
  14. 14.
    Mena, S., Schiper, A., Wojciechowski, P.T.: A step towards a new generation of group communication systems. In: Endler, M., Schmidt, D.C. (eds.) Middleware 2003. LNCS, vol. 2672. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  15. 15.
    Milicia, G., Sassone, V.: Jeeg: A programming language for concurrent objects synchronization. In: Proc. ACM Java Grande/ISCOPE Conference (November 2002)Google Scholar
  16. 16.
    Milicia, G., Sassone, V.: Jeeg: Temporal constraints for the synchronization of concurrent objects. Technical Report RS-03-6, BRICS (February 2003)Google Scholar
  17. 17.
    Objective Caml, http://caml.inria.fr
  18. 18.
    Panangaden, P., Reppy, J.: The Essence of Concurrent ML. In: Nielson, F. (ed.) ML with Concurrency: Design, Analysis, Implementation, and Application, pp. 5–29. Springer, Heidelberg (1997)Google Scholar
  19. 19.
    Pierce, B.C., Turner, D.N.: Pict: A programming language based on the picalculus. In: Plotkin, G., Stirling, C., Tofte, M. (eds.) Proof, Language and Interaction: Essays in Honour of Robin Milner. MIT Press, Cambridge (2000)Google Scholar
  20. 20.
  21. 21.
    Ramirez, R., Santosa, A.E.: Declarative concurrency in Java. In: Proc. HIPS 2000 (5th IPDPS Workshop on High-Level Parallel Programming Models and Supportive Environments) (May 2000)Google Scholar
  22. 22.
    Ramirez, R., Santosa, A.E., Yap, R.H.C.: Concurrent programming made easy. In: Proc. ICECCS (6th IEEE International Conference on Engineering of Complex Computer Systems) (September 2000)Google Scholar
  23. 23.
    Ren, S., Agha, G.A.: RTsynchronizer: Language support for real-time specifications in distributed systems. In: Proc. ACM Workshop on Languages, Compilers, & Tools for Real-Time Systems (1995)Google Scholar
  24. 24.
    Sewell, P., Leifer, J.J., Wansbrough, K., Allen-Williams, M., Nardelli, F.Z., Habouzit, P., Vafeiadis, V.: Acute: High-level programming language design for distributed computation. Design rationale and language definition. Technical Report 605, University of Cambridge Computer Laboratory (October 2004); Also published as INRIA RR-5329Google Scholar
  25. 25.
    Sewell, P., Wojciechowski, P.T., Pierce, B.C.: Location-independent communication for mobile agents: A two-level architecture. In: Bal, H.E., Cardelli, L., Belkhouche, B. (eds.) ICCL-WS 1998. LNCS, vol. 1686, pp. 1–31. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  26. 26.
    Stroustrup, B.: The Design and Evolution of C++. Addison-Wesley, Reading (1994)Google Scholar
  27. 27.
    W3C. Web Services Architecture, http://www.w3.org/TR/ws-arch/
  28. 28.
    Wojciechowski, P.T.: Concurrency combinators for declarative synchronization. In: Chin, W.-N. (ed.) APLAS 2004. LNCS, vol. 3302, pp. 163–178. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  29. 29.
    Wojciechowski, P.T., Sewell, P.: Nomadic Pict: Language and infrastructure design for mobile agents. IEEE Concurrency. The Computer Society’s Systems Magazine 8(2), 42–52 (2000)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2005

Authors and Affiliations

  • Vlad Tanasescu
    • 1
  • Paweł T. Wojciechowski
    • 1
  1. 1.Ecole Polytechnique Fédérale de Lausanne (EPFL)LausanneSwitzerland

Personalised recommendations