Computational rest: a new model for decentralized, internet-scale applications

REpresentational State Transfer (REST) guided the creation and expansion of the modern web. The reformations introduced with REST permitted the web to achieve its goal as an internet-scale distributed hypermedia system. Yet, the web has now seen the introduction of a vast sea of shared and interdependent services. Despite the expressive power of REST, these new services have not consistently realized the anticipated benefits from REST. In order to better understand the unwritten axioms necessary to realize these anticipated benefits, we survey the history and evolution of the web's infrastructure - including Apache HTTP Server, Firefox, and Squid. We also recount our experiences developing such systems and the challenges we faced due to the lack of thorough design guidance. We then critically examine these new services from the vast sea - including Serviceoriented architectures, RESTful Web Services, and AJAX - to glean previously undocumented lessons about how these services are constructed and why they do not consistently realize the benefits expected from REST. Based on this, this dissertation presents a new architectural style called Computational REST (CREST). This style recasts the web from a model where content is the fundamental measure of exchange to a model where computational exchange is the primary mechanism. This crucial observation keys a number of new axioms and constraints that provide new ways of thinking about the construction of web applications. We show that this new style pinpoints, in many cases, the root cause of the apparent dissonance between style and implementation in critical portions of the web's infrastructure. CREST also explains emerging web architectures (such as mashups) and points to novel computational structure. Furthermore, CREST provides the necessary design guidance to create new web applications which have not been seen before. These applications are characterized by the presence of recombinant services which rely upon fine-grained computational exchange to permit rapid evolution.

[1]  Steven Tuecke,et al.  The Physiology of the Grid An Open Grid Services Architecture for Distributed Systems Integration , 2002 .

[2]  Jim Waldo,et al.  A Note on Distributed Computing , 1996, Mobile Object Systems.

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

[4]  Gerald J. Sussman,et al.  Structure and interpretation of computer programs , 1985, Proceedings of the IEEE.

[5]  Richard C. Holt,et al.  A reference architecture for Web servers , 2000, Proceedings Seventh Working Conference on Reverse Engineering.

[6]  Sam Ruby,et al.  RESTful Web Services , 2007 .

[7]  LamportLeslie Time, clocks, and the ordering of events in a distributed system , 1978 .

[8]  Xiang Fu,et al.  Analysis of interacting BPEL web services , 2004, WWW '04.

[9]  Jeffrey Wong,et al.  Making mashups with marmite: towards end-user programming for the web , 2007, CHI.

[10]  Matei Ripeanu,et al.  Amazon S3 for science grids: a viable solution? , 2008, DADC '08.

[11]  Bruce M. Maggs,et al.  Globally Distributed Content Delivery , 2002, IEEE Internet Comput..

[12]  Manish Parashar,et al.  Latency Performance of SOAP Implementations , 2002, 2nd IEEE/ACM International Symposium on Cluster Computing and the Grid (CCGRID'02).

[13]  Arie van Deursen,et al.  Invariant-based automatic testing of AJAX user interfaces , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[14]  Michelle Butler,et al.  A Scalable HTTP Server: The NCSA Prototype , 1994, Comput. Networks ISDN Syst..

[15]  Nigel McFarlane Rapid Application Development with Mozilla , 2003 .

[16]  Michel Dubois,et al.  Memory access buffering in multiprocessors , 1998, ISCA '98.

[17]  Brendan Eich JavaScript at ten years , 2005, ICFP '05.

[18]  E. James Whitehead,et al.  HTTP Extensions for Distributed Authoring - WEBDAV , 1999, RFC.

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

[20]  Victoria Ungureanu,et al.  Law-governed interaction: a coordination and control mechanism for heterogeneous distributed systems , 2000, TSEM.

[21]  Jim Amsden,et al.  Versioning Extensions to WebDAV , 1999 .

[22]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[23]  Arie van Deursen,et al.  A component- and push-based architectural style for ajax applications , 2008, J. Syst. Softw..

[24]  Richard N. Taylor,et al.  Architectural support for trust models in decentralized applications , 2006, ICSE.

[25]  Christian Queinnec,et al.  The influence of browsers on evaluators or, continuations to program web servers , 2000, ICFP '00.

[26]  Carl Hewitt,et al.  Laws for Communicating Parallel Processes , 1977, IFIP Congress.

[27]  Frank Thomson Leighton,et al.  Improving performance on the internet , 2008, CACM.

[28]  Scott G. Miller,et al.  SISC: A Complete Scheme Interpreter in Java , 2003 .

[29]  Werner Vogels,et al.  Building reliable distributed systems at a worldwide scale demands trade-offs between consistency and availability. , 2022 .

[30]  Jia Wang,et al.  A survey of web caching schemes for the Internet , 1999, CCRV.

[31]  大島 正嗣,et al.  Simple Object Access Protocol と,その応用としてのソフトウェアの組み合わせについて (渡邉昭夫教授退任記念号) , 2001 .

[32]  Ken Perlin,et al.  Dreme: for life in the net , 1995 .

[33]  Matthias Felleisen,et al.  Automatically Restructuring Programs for the Web , 2004, Automated Software Engineering.

[34]  Steve Vinoski,et al.  Scala and Lift Functional Recipes for the Web , 2009, IEEE Internet Computing.

[35]  George Pallis,et al.  Insight and perspectives for content delivery networks , 2006, CACM.

[36]  Dennis M. Ritchie,et al.  A stream input-output system , 1990 .

[37]  Jesse James Garrett Ajax: A New Approach to Web Applications , 2007 .

[38]  Wilson C. Hsieh,et al.  Bigtable: A Distributed Storage System for Structured Data , 2006, TOCS.

[39]  Michael W. Godfrey,et al.  Secrets from the Monster: Extracting Mozilla’s Software Architecture , 2000 .

[40]  Mike P. Papazoglou,et al.  Service-oriented computing: concepts, characteristics and directions , 2003, Proceedings of the Fourth International Conference on Web Information Systems Engineering, 2003. WISE 2003..

[41]  David Moore,et al.  Code-Red: a case study on the spread and victims of an internet worm , 2002, IMW '02.

[42]  Michael Franz,et al.  Efficient bytecode verification and compilation in a virtual machine , 2006 .

[43]  Alex Rousskov,et al.  A performance study of the Squid proxy on HTTP/1.0 , 2004, World Wide Web.

[44]  David Robinson,et al.  The WWW Common Gateway Interface Version 1.1 , 1996 .

[45]  Hasso Plattner,et al.  Architecture recovery of Apache 1.3 — A case study , 2002 .

[46]  Kori Inkpen Quinn,et al.  An examination of user perception and misconception of internet cookies , 2006, CHI Extended Abstracts.

[47]  Krishna P. Gummadi,et al.  An analysis of Internet content delivery systems , 2002, OPSR.

[48]  Michael W. Godfrey,et al.  A reference architecture for Web browsers , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[49]  Shriram Krishnamurthi,et al.  Advanced control flows for flexible graphical user interfaces: or, growing GUIs on trees or, bookmarking GUIs , 2002, ICSE '02.

[50]  Jorge S. Cardoso,et al.  Complexity analysis of BPEL Web processes , 2007, Softw. Process. Improv. Pract..

[51]  William E. Weihl,et al.  Edgecomputing: extending enterprise applications to the edge of the internet , 2004, WWW Alt. '04.

[52]  Audris Mockus,et al.  A case study of open source software development: the Apache server , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[53]  E.J. Whitehead,et al.  WEBDAV: IETF Standard for Collaborative Authoring on the Web , 1998, IEEE Internet Comput..

[54]  B R Schatz,et al.  NCSA Mosaic and the World Wide Web: Global Hypermedia Protocols for the Internet , 1994, Science.

[55]  Daniel A. Reed,et al.  NCSA's World Wide Web Server: Design and Performance , 1995, Computer.

[56]  Yannis Manolopoulos,et al.  CDNs Content Outsourcing via Generalized Communities , 2009, IEEE Transactions on Knowledge and Data Engineering.

[57]  Leslie Lamport,et al.  Time, clocks, and the ordering of events in a distributed system , 1978, CACM.

[58]  James A. Gosling,et al.  Window Toolkit and Applets , 1996 .

[59]  Richard N. Taylor,et al.  Extending the Representational State Transfer (REST) architectural style for decentralized systems , 2004, Proceedings. 26th International Conference on Software Engineering.

[60]  Verónica Dahl,et al.  Under Consideration for Publication in Theory and Practice of Logic Programming High-level Networking with Mobile Code and First Order And-continuations , 2003 .

[61]  John A. Michon,et al.  Design considerations , 1993, Generic Intelligent Driver Support.

[62]  Fabio Casati,et al.  Supporting the dynamic evolution of Web service protocols in service-oriented architectures , 2008, TWEB.

[63]  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.

[64]  Werner Vogels,et al.  Dynamo: amazon's highly available key-value store , 2007, SOSP.