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.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
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)
Courtois, P.J., Heymans, F., Parnas, D.L.: Concurrent control with “readers” and “writers”. Communications of the ACM 14(10), 667–668 (1971)
Fessant, F.L., Maranget, L.: Compiling join-patterns. In: Proc. HLCL 1998 (Workshop on High-Level Concurrent Languages) (1998)
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)
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)
Gosling, J., Joy, B., Steele, G., Bracha, G.: The Java Language Specification, 2nd edn. Addison Wesley, Reading (2000)
Hiltunen, M.A., Schlichting, R.D.: A configurable membership service. IEEE Transactions on Computers 47(5), 573–586 (1998)
Hursch, W., Lopes, C.: Separation of concerns. Technical Report NU-CCS-95-03, College of Computer Science, Northeastern University (February 1995)
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)
Jones, S.P., Gordon, A., Finne, S.: Concurrent Haskell. In: Proc. POPL 1996 (23rd ACM Symposium on Principles of Programming Languages) (January 1996)
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)
Lopes, C.V.D.: A Language Framework for Distributed Programming. PhDthesis, College of Computer Science, Northeastern University, December 1997 (1998)
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)
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)
Milicia, G., Sassone, V.: Jeeg: A programming language for concurrent objects synchronization. In: Proc. ACM Java Grande/ISCOPE Conference (November 2002)
Milicia, G., Sassone, V.: Jeeg: Temporal constraints for the synchronization of concurrent objects. Technical Report RS-03-6, BRICS (February 2003)
Objective Caml, http://caml.inria.fr
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)
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)
Python, http://www.python.org/
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)
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)
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)
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
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)
Stroustrup, B.: The Design and Evolution of C++. Addison-Wesley, Reading (1994)
W3C. Web Services Architecture, http://www.w3.org/TR/ws-arch/
Wojciechowski, P.T.: Concurrency combinators for declarative synchronization. In: Chin, W.-N. (ed.) APLAS 2004. LNCS, vol. 3302, pp. 163–178. Springer, Heidelberg (2004)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)