Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2889443.2889452acmotherconferencesArticle/Chapter ViewAbstractPublication PagesmodularityConference Proceedingsconference-collections
research-article

CPL: a core language for cloud computing

Published: 14 March 2016 Publication History
  • Get Citation Alerts
  • Abstract

    Running distributed applications in the cloud involves deployment. That is, distribution and configuration of application services and middleware infrastructure. The considerable complexity of these tasks resulted in the emergence of declarative JSON-based domain-specific deployment languages to develop deployment programs. However, existing deployment programs unsafely compose artifacts written in different languages, leading to bugs that are hard to detect before run time. Furthermore, deployment languages do not provide extension points for custom implementations of existing cloud services such as application-specific load balancing policies. To address these shortcomings, we propose CPL (Cloud Platform Language), a statically-typed core language for programming both distributed applications as well as their deployment on a cloud platform. In CPL, application services and deployment programs interact through statically typed, extensible interfaces, and an application can trigger further deployment at run time. We provide a formal semantics of CPL and demonstrate that it enables type-safe, composable and extensible libraries of service combinators, such as load balancing and fault tolerance.

    References

    [1]
    N. Benton, L. Cardelli, and C. Fournet. Modern concurrency abstractions for C#. ACM TOPLAS, 26(5):769–804, Sept. 2004.
    [2]
    N. Bobroff, A. Kochut, and K. A. Beaty. Dynamic Placement of Virtual Machines for Managing SLA Violations. In Integrated Network Management, pages 119–128. IEEE, 2007.
    [3]
    O. Braˇcevac, S. Erdweg, G. Salvaneschi, and M. Mezini. CPL: A Core Language for Cloud Computing. Technical report, Software Technology Group, Technische Universität Darmstadt, http://arxiv.org/abs/1602.00981, 2016.
    [4]
    M. Bravenboer, E. Dolstra, and E. Visser. Preventing Injection Attacks with Syntax Embeddings. GPCE ’07, pages 3–12. ACM, 2007.
    [5]
    L. Cardelli and A. D. Gordon. Mobile ambients. Theoretical Computer Science, 240(1):177 – 213, 2000.
    [6]
    C. Chambers, A. Raniwala, F. Perry, S. Adams, R. R. Henry, R. Bradshaw, and N. Weizenbaum. FlumeJava: Easy, efficient data-parallel pipelines. PLDI ’10, pages 363–375, 2010.
    [7]
    J. Dean and S. Ghemawat. MapReduce: Simplified Data Processing on Large Clusters. Commun. ACM, 51(1):107–113, Jan. 2008.
    [8]
    M. Felleisen and R. Hieb. The Revised Report on the Syntactic Theories of Sequential Control and State. Theoretical Computer Science, 103(2):235–271, 1992.
    [9]
    M. Felleisen, R. B. Findler, and M. Flatt. Semantics Engineering with PLT Redex. MIT Press, 2009.
    [10]
    R. C. Fernandez, M. Migliavacca, E. Kalyvianaki, and P. Pietzuch. Integrating Scale Out and Fault Tolerance in Stream Processing using Operator State Management. In SIGMOD ’13, pages 725–736. ACM, June 2013.
    [11]
    F. L. Fessant and L. Maranget. Compiling Join-Patterns. Electronic Notes in Theoretical Computer Science, 16(3):205 – 224, 1998. HLCL’98.
    [12]
    C. Fournet and G. Gonthier. The reflexive CHAM and the join-calculus. In POPL ’96, pages 372–385. ACM, 1996.
    [13]
    C. Fournet, J.-J. Lévy, and A. Schmitt. An Asynchronous, Distributed Implementation of Mobile Ambients. TCS ’00, pages 348–364. Springer-Verlag, 2000.
    [14]
    P. Haller and T. Van Cutsem. Implementing Joins Using Extensible Pattern Matching. In COORDINATION ’08, volume 5052 of LNCS, pages 135–152. Springer, 2008.
    [15]
    C. A. R. Hoare. Communicating Sequential Processes. Commun. ACM, 21(8):666–677, Aug. 1978.
    [16]
    M. Isard and Y. Yu. Distributed Data-parallel Computing Using a High-level Programming Language. SIGMOD ’09, pages 987–994. ACM, 2009.
    [17]
    Y. Jarraya, A. Eghtesadi, M. Debbabi, Y. Zhang, and M. Pourzandi. Cloud calculus: Security verification in elastic cloud computing platform. In CTS’12, pages 447–454, May 2012.
    [18]
    R. Lämmel. Google’s MapReduce programming model — Revisited. Science of Computer Programming, 70(1):1 – 30, 2008.
    [19]
    X. Meng, V. Pappas, and L. Zhang. Improving the Scalability of Data Center Networks with Traffic-aware Virtual Machine Placement. In INFOCOM, pages 1154–1162. IEEE, 2010.
    [20]
    R. Milner. A Calculus of Communicating Systems. Springer-Verlag New York, Inc., Secaucus, NJ, USA, 1982.
    [21]
    R. Milner, J. Parrow, and D. Walker. A Calculus of Mobile Processes, I. Information and Computation, 100(1):1 – 40, 1992.
    [22]
    M. Odersky. An Introduction to Functional Nets. In Applied Semantics, volume 2395 of LNCS, pages 333–377. Springer, 2002.
    [23]
    C. Olston, B. Reed, U. Srivastava, R. Kumar, and A. Tomkins. Pig Latin: A Not-so-foreign Language for Data Processing. SIGMOD ’08, pages 1099–1110. ACM, 2008.
    [24]
    B. C. Pierce. Types and Programming Languages. MIT press, 2002.
    [25]
    H. Plociniczak and S. Eisenbach. JErlang: Erlang with joins. In COORDINATION ’10, volume 6116 of LNCS, pages 61–75. Springer, 2010.
    [26]
    C. Russo. The joins concurrency library. In PADL ’07, volume 4354 of LNCS, pages 260–274. Springer, 2007.
    [27]
    A. S. Tanenbaum and M. v. Steen. Distributed Systems: Principles and Paradigms (2nd Edition). Prentice-Hall, Inc., Upper Saddle River, NJ, USA, 2006.
    [28]
    A. J. Turon and C. V. Russo. Scalable Join Patterns. In OOPSLA ’11, pages 575–594. ACM, 2011.
    [29]
    J. M. Van Ham, G. Salvaneschi, M. Mezini, and J. Noyé. JEScala: Modular Coordination with Declarative Events and Joins. MODULARITY ’14, pages 205–216. ACM, 2014.
    [30]
    L. M. Vaquero, L. Rodero-Merino, J. Caceres, and M. Lindner. A Break in the Clouds: Towards a Cloud Definition. SIGCOMM Comput. Commun. Rev., 39(1):50–55, Dec. 2008.
    [31]
    A. Wright and M. Felleisen. A Syntactic Approach to Type Soundness. Information and Computation, 115(1):38 – 94, 1994. ISSN 0890-5401.

    Cited By

    View all
    • (2024)Bridging Between Active Objects: Multitier Programming for Distributed, Concurrent SystemsActive Object Languages: Current Research Trends10.1007/978-3-031-51060-1_4(92-122)Online publication date: 29-Jan-2024
    • (2019)Formal foundations of serverless computingProceedings of the ACM on Programming Languages10.1145/33605753:OOPSLA(1-26)Online publication date: 10-Oct-2019
    • (2019)A fault-tolerant programming model for distributed interactive applicationsProceedings of the ACM on Programming Languages10.1145/33605703:OOPSLA(1-29)Online publication date: 10-Oct-2019
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Other conferences
    MODULARITY 2016: Proceedings of the 15th International Conference on Modularity
    March 2016
    145 pages
    ISBN:9781450339957
    DOI:10.1145/2889443
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    In-Cooperation

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 14 March 2016

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Cloud deployment
    2. cloud computing
    3. computation patterns
    4. join calculus

    Qualifiers

    • Research-article

    Funding Sources

    Conference

    Modularity '16

    Acceptance Rates

    Overall Acceptance Rate 41 of 139 submissions, 29%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

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

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Bridging Between Active Objects: Multitier Programming for Distributed, Concurrent SystemsActive Object Languages: Current Research Trends10.1007/978-3-031-51060-1_4(92-122)Online publication date: 29-Jan-2024
    • (2019)Formal foundations of serverless computingProceedings of the ACM on Programming Languages10.1145/33605753:OOPSLA(1-26)Online publication date: 10-Oct-2019
    • (2019)A fault-tolerant programming model for distributed interactive applicationsProceedings of the ACM on Programming Languages10.1145/33605703:OOPSLA(1-29)Online publication date: 10-Oct-2019
    • (2018)Towards safe modular composition of network functionsCompanion Proceedings of the 2nd International Conference on the Art, Science, and Engineering of Programming10.1145/3191697.3213804(81-86)Online publication date: 9-Apr-2018
    • (2017)A Calculus of Virtually Timed AmbientsRecent Trends in Algebraic Development Techniques10.1007/978-3-319-72044-9_7(88-103)Online publication date: 8-Dec-2017

    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