Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article

Programming dynamically reconfigurable open systems with SALSA

Published: 01 December 2001 Publication History
  • Get Citation Alerts
  • Abstract

    Applications running on the Internet, or on limited-resource devices, need to be able to adapt to changes in their execution environment at run-time. Current languages and systems fall short of enabling developers to migrate and reconfigure application sub-components at program-execution time.In this paper, we describe essential aspects of the design and implementation of SALSA, an actor-based language for mobile and Internet computing. SALSA simplifies programming dynamically reconfigurable, open applications by providing universal names, active objects, and migration. Moreover, SALSA introduces three language mechanisms to help programmers coordinate asynchronous, mobile computations: token-passing continuations, join continuations and first-class continuations.We provide some examples which illustrate how SALSA programs are not only dynamically reconfigurable and open, but also much more concise and easier to follow than comparable Java code. Furthermore, we provide empirical results which show SALSA's performance to be better than Java code using an actor library, and which illustrate the difference between local, local area, and wide area communication and migration. Finally, we discuss the implementation of our preprocessor which translates SALSA code into Java.

    References

    [1]
    G. Agha. Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press, 1986.]]
    [2]
    G. Agha. Abstracting Interaction Patterns: A Programming Paradigm for Open Distributed Systems. In E. Najm and J.-B. Stefani, editors, Formal Methods for Open Object-based Distributed Systems IFIP Transactions. Chapman and Hall, 1997.]]
    [3]
    G. Agha, I. A. Mason, S. F. Smith, and C. L. Talcott. A foundation for actor computation. Journal of Functional Programming, 7:1-72, 1997.]]
    [4]
    J. Aldrich, C. Chambers, E. G. Sirer, and S. Eggers. Static analyses for eliminating unnecessary synchronization from Java programs. In A. Cortesi and G. Filé, editors, Static Analysis, volume 1694 of Lecture Notes in Computer Science, pages 19-38. Springer, 1999.]]
    [5]
    D. F. Bacon, R. E. Strom, and A. Tarafdar. Guava: a dialect of Java without data races. ACM SIGPLAN Notices, 35(10):382-400, Oct. 2000.]]
    [6]
    J. Bogda and U. Hölzle. Removing unnecessary synchronization in Java. In OOPSLA '99 ACM Conference on Object-Oriented Systems, Languages and Applications, volume 34(10) of ACM SIGPLAN Notices, pages 35-46, Denver, CO, Oct. 1999. ACM Press.]]
    [7]
    J.-P. Briot. Actalk: a testbed for classifying and designing actor languages in the Smalltalk-80 environment. In Proceedings of the European Conference on Object Oriented Programming (ECOOP'89), pages 109-129. Cambridge University Press, 1989.]]
    [8]
    L. Cardelli. A language with distributed scope. Computing Systems, 8(1):27-59, Jan. 1995.]]
    [9]
    L. Cardelli and R. Davies. Service combinators for web computing. IEEE Transactions on Software Engineering, 25(3):309-316, May/June 1999.]]
    [10]
    L. Cardelli and A. Gordon. Mobile ambients. In Foundations of System Specification and Computational Structures, LNCS 1378, pages 140-155. Springer Verlag, 1998.]]
    [11]
    C. Chambers. Object-oriented multi-methods in Cecil. In O. L. Madsen, editor, ECOOP '92, European Conference on Object-Oriented Programming, Utrecht, The Netherlands, volume 615 of Lecture Notes in Computer Science, pages 33-56. Springer-Verlag, New York, NY, 1992.]]
    [12]
    A. Chien. Concurrent Aggregates: Supporting Modularity in Massively Parallel Programs. MIT Press, 1993.]]
    [13]
    J.-D. Choi, M. Gupta, M. Serrano, V. C. Sreedhar, and S. Midkiff. Escape Analysis for Java. In L. Meissner, editor, Proceedings of the 1999 ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages & Applications (OOPSLA '99), volume 34.10 of ACM Sigplan Notices, pages 1-19, N. Y., Nov. 1-5 1999. ACM Press.]]
    [14]
    C. Clifton, G. T. Leavens, C. Chambers, and T. Millstein. MultiJava: Modular open classes and symmetric multiple dispatch for Java. In OOPSLA 2000 Conference on Object-Oriented Programming, Systems, Languages, and Applications, Minneapolis, Minnesota, volume 35(10) of ACM SIGPLAN Notices, pages 130-145, Oct. 2000.]]
    [15]
    R. Fagin, J. Halpern, Y. Moses, and M. Vardi. Reasoning about Knowledge. MIT Press, 1995.]]
    [16]
    C. Flanagan and S. N. Freund. Type-based race detection for Java. In Proceedings of the ACM SIGPLAN '00 Conference on Programming Language Design and Implementation, pages 219-232, Vancouver, British Columbia, June 18-21, 2000.]]
    [17]
    M. Fukuda, L. F. Bic, M. B. Dillencourt, and F. Merchant. Intra- and Inter-Object Coordination with MESSENGERS. In P. Ciancarini and C. Hankin, editors, First International Conference on Coordination Languages and Models (COORDINATION '96), number 1061 in LNCS, Berlin, 1996. Springer-Verlag.]]
    [18]
    A. Gontmakher and A. Schuster. Characterizations for Java memory behavior. In Proceedings of the 1st Merged International Parallel Processing Symposium and Symposium on Parallel and Distributed Processing (IPPS/SPDP-98), pages 682-686, Los Alamitos, Mar. 30-Apr. 3 1998. IEEE Computer Society.]]
    [19]
    J. Gosling, B. Joy, and G. Steele. The Java Language Specification. Addison Wesley, 1996.]]
    [20]
    R. Gray, D. Kotz, G. Cybenko, and D. Rus. Mobile agents: Motivations and state-of-the-art systems. Technical report, Darmouth College, April 2000. Available at ftp://ftp.cs.dartmouth.edu/TR/TR2000-365.ps.Z.]]
    [21]
    C. Hewitt. Viewing control structures as patterns of passing messages. Journal of Artificial Intelligence, 8-3:323-364, June 1977.]]
    [22]
    C. A. R. Hoare. Monitors: An operating system structuring concept. Communications of the ACM, 17(10):549-557, Oct. 1974.]]
    [23]
    C. Houck and G. Agha. HAL: A high-level actor language and its distributed implementation. In Proceedings of the 21st International Conference on Parallel Processing (ICPP '92), volume II, pages 158-165, St. Charles, IL, August 1992.]]
    [24]
    E. Jul, H. M. Levy, N. C. Hutchinson, and A. P. Black. Fine-grained mobility in the Emerald system. TOCS, 6(1):109-133, 1988.]]
    [25]
    W. Kim. THAL: An Actor System for Efficient and Scalable Concurrent Computing. PhD thesis, University of Illinois at Urbana-Champaign, May 1997.]]
    [26]
    D. Lange and M. Oshima. Programming and Deploying Mobile Agents with Aglets. Addison-Wesley, 1998.]]
    [27]
    T. Lindholm and F. Yellin. The Java Virtual Machine Specification. Addison Wesley, 1997.]]
    [28]
    J.-W. Maessen, Arvind, and X. Shen. Improving the Java Memory Model Using CRF. In Proceedings of OOPSLA, pages 1-12, 2000.]]
    [29]
    Open Systems Lab. The Actor Foundry: A Java-based Actor Programming Environment, 1998. Work in Progress. http://osl.cs.uiuc.edu/foundry/.]]
    [30]
    W. Pugh. Fixing the Java Memory Model. In Proceedings of ACM Java Grande Conference, pages 89-98, June 1999. See also JMM mailing list at http://www.cs.umd.edu/pugh/java/memoryModel/.]]
    [31]
    E. Ruf. Effective Synchronization Removal for Java. In Proceedings of the Conference on Programming Language Design and Implementation (PLDI), pages 208-218, 2000.]]
    [32]
    T. Sekiguchi and A. Yonezawa. A calculus with code mobility. In H. Bowman and J. Derrick, editors, Formal Methods for Open Object-based Distributed Systems, Volume 2, pages 21-36. Chapman & Hall, 1997.]]
    [33]
    D. Sturman. Modular Specification of Interaction Policies in Distributed Computing. PhD thesis, University of Illinois at Urbana-Champaign, May 1996. TR UIUCDCS-R-96-1950.]]
    [34]
    C. Tomlinson, W. Kim, M. Schevel, V. Singh, B. Will, and G. Agha. Rosette: An object oriented concurrent system architecture. Sigplan Notices, 24(4):91-93, 1989.]]
    [35]
    C. Varela. Worldwide Computing with Universal Actors: Linguistic Abstractions for Naming, Migration, and Coordination. PhD thesis, University of Illinois at Urbana-Champaign, April 2001. http://osl.cs.uiuc.edu/Theses/varela-phd.pdf.]]
    [36]
    C. Varela and G. Agha. A Hierarchical Model for Coordination of Concurrent Activities. In P. Ciancarini and A. Wolf, editors, Third International Conference on Coordination Languages and Models (COORDINATION '99), LNCS 1594, pages 166-182, Berlin, April 1999. Springer-Verlag. http://osl.cs.uiuc.edu/Papers/Coordination99.ps.]]
    [37]
    C. Varela and G. Agha. Linguistic Support for Actors, First-Class Token-Passing Continuations and Join Continuations. Proceedings of the Midwest Society for Programming Languages and Systems Workshop, October 1999. http://osl.cs.uiuc.edu/~cvarela/mspls99/.]]
    [38]
    P. Wojciechowski and P. Sewell. Nomadic Pict: Language and Infrastructure Design for Mobile Agents. IEEE Concurrency, 8(2), April-June 2000.]]
    [39]
    A. Yonezawa, editor. ABCL An Object-Oriented Concurrent System. MIT Press, Cambridge, Mass., 1990.]]

    Cited By

    View all
    • (2024)GreatFree as a Generic Distributed Programming Language and the Foundation of the Cloud-Side Operating SystemInternational Journal of Advanced Network, Monitoring and Controls10.2478/ijanmc-2023-00788:4(66-81)Online publication date: 16-Mar-2024
    • (2024)Improving resource utilization and fault tolerance in large simulations via actorsCluster Computing10.1007/s10586-024-04318-527:5(6323-6340)Online publication date: 28-Feb-2024
    • (2024)Actor-Based Designs for Distributed Self-organisation ProgrammingActive Object Languages: Current Research Trends10.1007/978-3-031-51060-1_2(37-58)Online publication date: 29-Jan-2024
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 36, Issue 12
    December 2001
    77 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/583960
    Issue’s Table of Contents

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 01 December 2001
    Published in SIGPLAN Volume 36, Issue 12

    Check for updates

    Author Tags

    1. SALSA
    2. actors
    3. continuations
    4. internet
    5. java
    6. mobile computing
    7. network computing
    8. open systems
    9. programming languages

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)9
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 10 Aug 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)GreatFree as a Generic Distributed Programming Language and the Foundation of the Cloud-Side Operating SystemInternational Journal of Advanced Network, Monitoring and Controls10.2478/ijanmc-2023-00788:4(66-81)Online publication date: 16-Mar-2024
    • (2024)Improving resource utilization and fault tolerance in large simulations via actorsCluster Computing10.1007/s10586-024-04318-527:5(6323-6340)Online publication date: 28-Feb-2024
    • (2024)Actor-Based Designs for Distributed Self-organisation ProgrammingActive Object Languages: Current Research Trends10.1007/978-3-031-51060-1_2(37-58)Online publication date: 29-Jan-2024
    • (2023)When Concurrency Matters: Behaviour-Oriented ConcurrencyProceedings of the ACM on Programming Languages10.1145/36228527:OOPSLA2(1531-1560)Online publication date: 16-Oct-2023
    • (2023)A Fine-grained Asynchronous Bulk Synchronous parallelism model for PGAS applicationsJournal of Computational Science10.1016/j.jocs.2023.10201469(102014)Online publication date: May-2023
    • (2023)High‐performance extended actorsSoftware: Practice and Experience10.1002/spe.326253:12(2463-2500)Online publication date: 16-Sep-2023
    • (2022)Using Domain-Specific Language for Describing Actor-Oriented Systems2022 IEEE 4th International Conference on Advanced Trends in Information Theory (ATIT)10.1109/ATIT58178.2022.10024176(300-303)Online publication date: 15-Dec-2022
    • (2022)Adaptation Consistency of Distributed Role-Oriented Applications Based on the Actor Model of ComputationProgress in Advanced Information and Communication Technology and Systems10.1007/978-3-031-16368-5_2(35-60)Online publication date: 18-Nov-2022
    • (2020)Enterprise Digital TwinAdvanced Digital Architectures for Model-Driven Adaptive Enterprises10.4018/978-1-7998-0108-5.ch004(68-89)Online publication date: 2020
    • (2020)Composing high-level stream processing pipelinesJournal of Big Data10.1186/s40537-020-00353-27:1Online publication date: 29-Sep-2020
    • Show More Cited By

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media