Communication and Capability URLs in COAST-based Decentralized Services

Decentralized systems are systems-of-systems whose services are governed by two or more separate organizations under distinct spheres of authority. Coordinated evolution of the various elements of a decentralized system may be difficult, if not impossible, as individual organizations evolve their service offerings in response to organization- and service-specific pressures, including market demand, technology, competitive and cooperative interests, and funding. Consequently, decentralized services offer unique challenges for evolution and adaptation that reach well beyond any one single organizational boundary. Client-driven service customization and tailoring is a powerful tool for meeting conflicting, independent client demands in an environment where disorderly and uneven service evolution predominates. COmputAtional State Transfer (COAST) relies on capability security to minimize the risks of client-driven customization, for which fine-grain management of communication capability is critical. We introduce the Capability URL (CURL) as the unit of communication capability and show how two distinct mechanisms, communication capability and mobile code, can be combined to express and enforce constraints on the communications among decentralized computations.

[1]  Michael Scott Wolfe SCURL Authentication A decentralized approach to entity authentication , 2011 .

[2]  Matthew Flatt,et al.  Memory accounting without partitions , 2004, ISMM '04.

[3]  David K. Gifford,et al.  Remote evaluation , 1990, TOPL.

[4]  David K. Gifford,et al.  Implementing Remote Evaluation , 1990, IEEE Trans. Software Eng..

[5]  Norman Hardy,et al.  The Confused Deputy: (or why capabilities might have been invented) , 1988, OPSR.

[6]  Adrien Pierard,et al.  Towards a Portable and Mobile Scheme Interpreter , 2007 .

[7]  G. Clark,et al.  Reference , 2008 .

[8]  George Cybenko,et al.  AGENT TCL: Targeting the Needs of Mobile Computers , 1997, IEEE Internet Comput..

[9]  David Halls,et al.  Applying Mobile Code to Distributed Systems , 1997 .

[10]  Giovanni Vigna,et al.  Understanding Code Mobility , 1998, IEEE Trans. Software Eng..

[11]  Luís Valente,et al.  Mobile agent security and Telescript , 1996, COMPCON '96. Technologies for the Information Superhighway Digest of Papers.

[12]  Michael M. Gorlick,et al.  CREST: principled foundations for decentralized systems , 2011, OOPSLA Companion.

[13]  Jeffrey S. Chase,et al.  The role of accountability in dependable distributed systems , 2005 .

[14]  Suresh Jagannathan,et al.  Metalevel building blocks for modular systems , 1994, TOPL.

[15]  Jonathan Rees,et al.  A security kernel based on the lambda-calculus , 1995 .

[16]  Chris Okasaki,et al.  Purely functional data structures , 1998 .

[17]  Robert Wahbe,et al.  Efficient software-based fault isolation , 1994, SOSP '93.

[18]  Jerome H. Saltzer,et al.  Protection and the control of information sharing in multics , 1974, CACM.

[19]  Jonathan S. Shapiro,et al.  Paradigm Regained: Abstraction Mechanisms for Access Control , 2003, ASIAN.

[20]  Joe Armstrong,et al.  Programming Erlang: Software for a Concurrent World , 1993 .

[21]  Úlfar Erlingsson,et al.  Language-independent sandboxing of just-in-time compilation and self-modifying code , 2011, PLDI '11.

[22]  Mark S. Miller,et al.  Robust composition: towards a unified approach to access control and concurrency control , 2006 .

[23]  Jack B. Dennis,et al.  Programming semantics for multiprogrammed computations , 1966, CACM.

[24]  Duncan A. Grove,et al.  Non-delegatable authorities in capability systems , 2008, J. Comput. Secur..

[25]  Matthias Felleisen,et al.  The theory and practice of first-class prompts , 1988, POPL '88.

[26]  Roy T. Fielding,et al.  Principled design of the modern Web architecture , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[27]  Bruce Jay Nelson Remote procedure call , 1981 .

[28]  Rich Salz,et al.  A Universally Unique IDentifier (UUID) URN Namespace , 2005, RFC.

[29]  Arnar Birgisson,et al.  Capabilities for information flow , 2011, PLAS '11.

[30]  Patricia Florissi,et al.  On remote procedure call , 1992, CASCON.

[31]  Richard N. Taylor,et al.  Computational rest: a new model for decentralized, internet-scale applications , 2009 .

[32]  David Mazières,et al.  Separating key management from file system security , 1999, SOSP.

[33]  Gul A. Agha,et al.  ACTORS - a model of concurrent computation in distributed systems , 1985, MIT Press series in artificial intelligence.

[34]  Peter Braun,et al.  Mobile Agents: Basic Concepts, Mobility Models, and the Tracy Toolkit , 2004 .

[35]  Suresh Jagannathan,et al.  Higher-order distributed objects , 1995, TOPL.

[36]  Toby C. Murray Analysing the security properties of object-capability patterns , 2010 .

[37]  Glenn Cater,et al.  Service Oriented Architecture (SOA) , 2011, Encyclopedia of Information Assurance.

[38]  Richard N. Taylor,et al.  Harmonizing Architectural Dissonance in REST-based Architectures , 2006 .

[39]  Michael M. Gorlick,et al.  From representations to computations: the evolution of web architectures , 2007, ESEC-FSE '07.

[40]  Michael M. Gorlick,et al.  Flow Webs : Architecture and Mechanism for Sensor Webs , 2007 .

[41]  Michael M. Gorlick,et al.  COAST: An Architectural Style for Decentralized On-Demand Tailored Services , 2012, 2012 Joint Working IEEE/IFIP Conference on Software Architecture and European Conference on Software Architecture.

[42]  Andrew P. Black,et al.  Fine-grained mobility in the Emerald system , 1987, TOCS.

[43]  Jack B. Dennis,et al.  Programming semantics for multiprogrammed computations , 1966, CACM.

[44]  Frank Yellin,et al.  The Java Virtual Machine Specification , 1996 .

[45]  Michael M. Gorlick,et al.  Rethinking Web Services from First Principles , 2007 .

[46]  Richard N. Taylor,et al.  CREST: A new model for Decentralized, Internet-Scale Applications , 2009 .

[47]  Neha Narula,et al.  Native Client: A Sandbox for Portable, Untrusted x86 Native Code , 2009, IEEE Symposium on Security and Privacy.

[48]  Jonathan S. Shapiro,et al.  The KeyKOS Nanokernel Architecture , 1992, USENIX Workshop on Microkernels and Other Kernel Architectures.

[49]  Gian Pietro Picco,et al.  Understanding code mobility , 1998, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[50]  Andrew Birrell,et al.  Implementing remote procedure calls , 1984, TOCS.

[51]  Bennet S. Yee,et al.  Native Client: A Sandbox for Portable, Untrusted x86 Native Code , 2009, 2009 30th IEEE Symposium on Security and Privacy.

[52]  Jonathan M. Smith,et al.  Eros: a capability system , 1999 .

[53]  Andrew P. Black,et al.  Emerald: A general‐purpose programming language , 1990, Softw. Pract. Exp..