Skip to main content

Role-Based Declarative Synchronization for Reconfigurable Systems

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNPSE,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.

Research supported by the Swiss National Science Foundation under grant number 21-67715.02 and Hasler Stiftung under grant number DICS-1825.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  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)

    Chapter  Google Scholar 

  2. Courtois, P.J., Heymans, F., Parnas, D.L.: Concurrent control with “readers” and “writers”. Communications of the ACM 14(10), 667–668 (1971)

    Article  Google Scholar 

  3. Fessant, F.L., Maranget, L.: Compiling join-patterns. In: Proc. HLCL 1998 (Workshop on High-Level Concurrent Languages) (1998)

    Google Scholar 

  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. 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)

    Chapter  Google Scholar 

  6. Gosling, J., Joy, B., Steele, G., Bracha, G.: The Java Language Specification, 2nd edn. Addison Wesley, Reading (2000)

    Google Scholar 

  7. Hiltunen, M.A., Schlichting, R.D.: A configurable membership service. IEEE Transactions on Computers 47(5), 573–586 (1998)

    Article  Google Scholar 

  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. 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. 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. 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)

    Article  Google Scholar 

  12. Lopes, C.V.D.: A Language Framework for Distributed Programming. PhDthesis, College of Computer Science, Northeastern University, December 1997 (1998)

    Google Scholar 

  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. 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)

    Chapter  Google Scholar 

  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. Milicia, G., Sassone, V.: Jeeg: Temporal constraints for the synchronization of concurrent objects. Technical Report RS-03-6, BRICS (February 2003)

    Google Scholar 

  17. Objective Caml, http://caml.inria.fr

  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. 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. Python, http://www.python.org/

  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. 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. 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. 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-5329

    Google Scholar 

  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)

    Chapter  Google Scholar 

  26. Stroustrup, B.: The Design and Evolution of C++. Addison-Wesley, Reading (1994)

    Google Scholar 

  27. W3C. Web Services Architecture, http://www.w3.org/TR/ws-arch/

  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)

    Chapter  Google Scholar 

  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 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2005 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Tanasescu, V., Wojciechowski, P.T. (2005). Role-Based Declarative Synchronization for Reconfigurable Systems. In: Hermenegildo, M.V., Cabeza, D. (eds) Practical Aspects of Declarative Languages. PADL 2005. Lecture Notes in Computer Science, vol 3350. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-30557-6_6

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-30557-6_6

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-24362-5

  • Online ISBN: 978-3-540-30557-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics