Article

Architectural Styles of Extensible REST-based Applications

Authors:
To read the full-text of this research, you can request a copy directly from the author.

Abstract

At the beginning of the World Wide Web (WWW or Web), there was no clear set of principles to guide the decisions being made by developers and architects. In these early days, a cacophony emerged without a clear direction to guide the evolution of the Web. If there was any direction during the inception of the Web, it was a weak focus on how communication might occur between machines on the Web and the content that was to be transferred. Within a matter of a few years, scalability and other design concerns threatened the future of the early Web- this led to the introduction of REpresentation State Transfer architectural style (REST). The REST style imposed constraints on the exchange of communication over the Web and provided guidance for further modifications to the underlying protocols. The introduction of REST, through the HTTP/1.1 protocol, restored order to the Web by articulating the necessary constraints required for participation.

No full-text available

Request Full-text Paper PDF

To read the full-text of this research,
you can request a copy directly from the author.

Conference Paper
REpresentational State Transfer (REST) guided the creation and expansion of the modern web. What began as an internet-scale distributed hypermedia system is now a vast sea of shared and interdependent services. However, despite the expressive power of REST, not all of its benefits are consistently realized by working systems. To resolve the dissonance between the promise of REST and the reality of fielded systems, we critically examine numerous web architectures. Our investigation yields a set of extensions to REST, an architectural style called Computational REST (CREST), that not only offers additional design guidance, but pinpoints, in many cases, the root cause of the apparent dissonance between style and implementation. Furthermore, CREST explains emerging web architectures (such as mashups) and points to novel computational structures.
Article
Full-text available
Network information systems reached the public consciousness this year as a result of the phenomenal growth in the use of the Internet. In particular, the software constituting NCSA (National Center for Supercomputing Applications) Mosaic and the World Wide Web have made global hypermedia a widespread reality for the first time. The technology underlying this software is described to explain the protocols behind information spaces. These include the historical predecessors, the current protocols with examples, future directions for the software, and discussion of research systems with different architectures. Reasons for its popularity are given, with the goal of illuminating successful services for the National Information Infrastructure.
Conference Paper
Full-text available
According to its proponents, open source style software development has the capacity to compete successfully, and perhaps in many cases displace, traditional commercial development methods. In order to begin investigating such claims, we examine the development process of a major open source application, the Apache web server. By using email archives of source code change history and problem reports we quantify aspects of developer participation, core team size, code ownership, productivity, defect density, and problem resolution interval for this OSS project. This analysis reveals a unique process, which performs well on important measures. We conclude that hybrid forms of development that borrow the most effective techniques from both the OSS and commercial worlds may lead to high performance software processes
Article
Full-text available
While a large fraction of application code is devoted to graphical user interface (GUI) functions, support for reuse in this domain has largely been confined to the creation of GUI toolkits (“widgets”). We present a novel architectural style directed at supporting larger grain reuse and flexible system composition. Moreover, the style supports design of distributed, concurrent applications. Asynchronous notification messages and asynchronous request messages are the sole basis for intercomponent communication. A key aspect of the style is that components are not built with any dependencies on what typically would be considered lower-level components, such as user interface toolkits. Indeed, all components are oblivious to the existence of any components to which notification messages are sent. While our focus has been on applications involving graphical user interfaces, the style has the potential for broader applicability. Several trial applications using the style are described
Article
The World Wide Web has succeeded in large part because its software architecture has been designed to meet the needs of an Internet-scale distributed hypermedia application. The modern Web architecture emphasizes scalability of component interactions, generality of interfaces, independent deployment of components, and intermediary components to reduce interaction latency, enforce security, and encapsulate legacy systems. In this article we introduce the Representational State Transfer (REST) architectural style, developed as an abstract model of the Web architecture and used to guide our redesign and definition of the Hypertext Transfer Protocol and Uniform Resource Identifiers. We describe the software engineering principles guiding REST and the interaction constraints chosen to retain those principles, contrasting them to the constraints of other architectural styles. We then compare the abstract model to the currently deployed Web architecture in order to elicit mismatches between the existing protocols and the applications they are intended to support.
Chapter
Netscape 6.0 is finally going into its first public beta. There never was a version 5.0. The last major release, version 4.0, was released almost three years ago. Three years is an awfully long time in the Internet world. During this time, Netscape sat by, helplessly, as their market share plummeted.
Article
The World Wide Web Distributed Authoring and Versioning (WebDAV) working group is extending HTTP1.1 to provide a standards-based infrastructure for asynchronous collaborative authoring on the Web. The WebDAV extensions support the use of HTTP for the interoperable publishing of a variety of content, providing a common interface to many types of repositories and making the Web analogous to a large-grain, network-accessible file system. By supporting mechanisms for both shared and exclusive write locking, WebDAV can accommodate a wide range of collaborations.
Introduction to Web Kit Plug-in Programming Topics
  • Computer Apple
  • Inc
Apple Computer Inc. Introduction to Web Kit Plug-in Programming Topics. <http://developer.apple.com/documentation/InternetWeb/Conceptual/WebKit_PluginProgTopic/ index.html>, HTML, August 11, 2005.
Securing I.I.S. 5 and 6 Server
  • M Cook
Cook, M. Securing I.I.S. 5 and 6 Server. <http://escarpment.net/training/ Securing_Microsoft_IIS_5_and_6(slides).pdf>, PDF, February 14, 2005.
Web Teach-a sample CCI application. <http://archive.ncsa.uiuc
  • A Braverman
Braverman, A. X Web Teach-a sample CCI application. <http://archive.ncsa.uiuc.edu/SDG/ Software/XMosaic/CCI/x-web-teach.html>, National Center for Supercomputing Applications,, HTML, September 23, 1994.
  • Frystyk Nielsen
Frystyk Nielsen, H. W3C Libwww Review. W3C, Report, June, 1999. <http://www.w3.org/ Talks/1999/06/libwww/>.
New features added to Servlet 2.5. JavaWorld
  • J Hunter
Hunter, J. New features added to Servlet 2.5. JavaWorld. January 2, 2006. <http://www.javaworld.com/javaworld/jw-01-2006/jw-0102-servlet.html>.
Necko: A new netlib kernel architecture
  • W Harris
  • R Potts
Harris, W. and Potts, R. Necko: A new netlib kernel architecture. <http://www.mozilla.org/ docs/netlib/necko.html>, HTML, April 14, 1999.
Architecture recovery of Apache 1.3-A case study
  • B Gröne
  • A Knöpfel
  • R Kugel
Gröne, B., Knöpfel, A., and Kugel, R. Architecture recovery of Apache 1.3-A case study. In Proceedings of the 2002 International Conference on Software Engineering Research and Practice. Las Vegas, 2002. <http://f-m-c.org/publications/download/groene_et_al_2002architecture_recovery_of_apache.pdf>.
The Apache Modeling Project. Hasso Plattner Institute for Software Systems Engineering
  • B Gröne
  • A Knöpfel
  • R Kugel
  • O Schmidt
Gröne, B., Knöpfel, A., Kugel, R., and Schmidt, O. The Apache Modeling Project. Hasso Plattner Institute for Software Systems Engineering, Report, July 5, 2004. <http://f-m-c.org/ projects/apache/download/the_apache_modelling_project.pdf>.
NSPR: Module Description
  • Mozilla Foundation
Mozilla Foundation. NSPR: Module Description. <http://www.mozilla.org/projects/nspr/ about-nspr.html>, HTML, September 20, 2000.
Application Programmer's Interface for the NCSA Mosaic Common Client Interface (CCI) <http://archive.ncsa.uiuc
  • National Center
  • Supercomputing Applications
National Center for Supercomputing Applications. Application Programmer's Interface for the NCSA Mosaic Common Client Interface (CCI). <http://archive.ncsa.uiuc.edu/SDG/Software/XMosaic/CCI/cci-api.html>, HTML, March 31, 1995.
Optimizing and Performance Tuning IIS 6.0. Informit.com
  • J Smith
Smith, J. Optimizing and Performance Tuning IIS 6.0. Informit.com. September 10, 2004. <http://www.informit.com/articles/article.asp?p=335881>.
Internet Explorer Security: Past, Present, and Future
  • T Chor
Chor, T. Internet Explorer Security: Past, Present, and Future. In Proceedings of the Hack in the Box. Kuala Lumpur, Malaysia, September 26-29, 2005. <http://www.packetstormsecurity.org/hitb05/Keynote-Tony-Chor-IE-Security-Past-Present-and-Future.ppt>.
A High-Performance Gateway Interface
  • M Brown
  • Fastcgi
Brown, M. FastCGI: A High-Performance Gateway Interface. In Proceedings of the Programming the Web-a search for APIs Workshop at Fifth International World Wide Web Conference. Paris, France, May 6, 1996. <http://www.cs.vu.nl/~eliens/WWW5/papers/ FastCGI.html>.
Chapter 13: Creating and Using Components (KParts)
  • D Faure
Faure, D. Chapter 13: Creating and Using Components (KParts). In KDE 2.0 Development, Sweet, D. ed. Sams Publishing, 2000.
Software Architecture in Practice. SEI Series in Software Engineering
  • L Bass
  • P Clements
  • R Kazman
Bass, L., Clements, P., and Kazman, R. Software Architecture in Practice. SEI Series in Software Engineering. Addison Wesley: Reading, MA, 1998.
How Did We Get Here? O'Reilly Web DevCenter
  • S Champeon
  • Javascript
Champeon, S. JavaScript: How Did We Get Here? O'Reilly Web DevCenter. April 6, 2001. <http://www.oreillynet.com/pub/a/javascript/2001/04/06/js_history.html>.
Institute for Software Research
  • J R Erenkrantz
  • Services
  • Soap
  • Semantic Uddi
  • Web
Erenkrantz, J.R. Web Services: SOAP, UDDI, and Semantic Web. Institute for Software Research, Report UCI-ISR-04-3, May, 2004. <http://www.isr.uci.edu/tech_reports/UCI-ISR04-3.pdf>.
Libwww-the W3C Sample Code Library
  • J Kahan
Kahan, J. Libwww-the W3C Sample Code Library. <http://www.w3.org/Library/>, W3C, HTML, September, 2003.
A scalable HTTP server: The NCSA prototype. Computer Networks and ISDN Systems
  • E D Katz
  • M Butler
  • R E Mcgrath
Katz, E.D., Butler, M., and McGrath, R.E. A scalable HTTP server: The NCSA prototype. Computer Networks and ISDN Systems. 27(2), p. 155-164, November, 1994. <http:// dx.doi.org/10.1016/0169-7552(94)90129-5>.
<http://msdn.microsoft.com/library/default.asp?url=/ library/en-us/wcedsn40/html/coconInternetExplorer55Architecture.asp>, Microsoft Windows CE
. Internet Explorer 6.0 Architecture. <http://msdn.microsoft.com/library/default.asp?url=/ library/en-us/wcedsn40/html/coconInternetExplorer55Architecture.asp>, Microsoft Windows CE.NET 4.2, HTML, April 13, 2005.
The Mozilla Foundation
  • G Markham
Markham, G. The Mozilla Foundation. In Proceedings of the Free and Open Source Software Developers' European Meeting (FOSDEM 2005). Brussels, Belgium, February 26-27, 2005. <http://www.gerv.net/presentations/fosdem2005-mofo/>.
Greetings from the Safari team at Apple Computer
  • D Melton
Melton, D. Greetings from the Safari team at Apple Computer. <http://lists.kde.org/?l=kfmdevel&m=104197092318639&w=2>, Email, January 7, 2003.
Internet Engineering Task Force
  • D M Kristol
  • L Montulli
  • Http State Management
  • Mechanism
Kristol, D.M. and Montulli, L. HTTP State Management Mechanism. Internet Engineering Task Force, Request for Comments Report 2109, February, 1997. <http://www.ietf.org/rfc/ rfc2109.txt>.
Mozilla Firefox 1.5 Release Notes
  • Mozilla Corporation
Mozilla Corporation. Mozilla Firefox 1.5 Release Notes. <http://www.mozilla.com/firefox/ releases/1.5.html>, HTML, November 29, 2005.
Networking in Mozilla
  • G Saksena
Saksena, G. Networking in Mozilla. In Proceedings of the O'Reilly Open Source Convention. San Diego, California, 2001. <http://www.mozilla.org/projects/netlib/presentations/osc2001/ >.
Netscape Gecko Plugins. 2
  • I Oeschger
  • Api Reference
Oeschger, I. API Reference: Netscape Gecko Plugins. 2.0 ed. 190 pgs., Netscape Communications, 2002. <http://www.ics.uci.edu/~jerenkra/netscape-plugin.pdf>.
The Event-Driven Internet. Byte.com
  • J Udell
Udell, J. The Event-Driven Internet. Byte.com. December 3, 2001. <http://www.byte.com/ documents/s=1816/byt20011128s0003/1203_udell.html>.
Bucket Brigades: Data Management in Apache 2.0
  • C Woolley
Woolley, C. Bucket Brigades: Data Management in Apache 2.0. In Proceedings of the ApacheCon 2002. Las Vegas, 2002. <http://www.cs.virginia.edu/~jcw5q/talks/apache/bucketbrigades.ac2002.ppt>.
  • G Clemm
  • J Amsden
  • T Ellison
  • C Kaler
  • E J Whitehead
  • Rfc
Clemm, G., Amsden, J., Ellison, T., Kaler, C., and Whitehead, E.J. RFC 3253: Versioning Extensions to WebDAV. IETF, Request for Comments Report, March, 2002.
Mosaic for X 2.0 available. <http://ksi.cpsc.ucalgary.ca/archives/ WWW-TALK/www-talk-1993q4.messages/444.html>, Email
  • M Andreessen
  • Ncsa
Andreessen, M. NCSA Mosaic for X 2.0 available. <http://ksi.cpsc.ucalgary.ca/archives/ WWW-TALK/www-talk-1993q4.messages/444.html>, Email, November 10, 1993.
Mastering Internet Explorer: The Web Browser Control. Visual Basic Web Magazine
  • Bowmansoft
BowmanSoft. Mastering Internet Explorer: The Web Browser Control. Visual Basic Web Magazine. 2001. <http://www.vbwm.com/art_2001/IE05/>.
Apple snub stings Mozilla. CNet News
  • P Festa
Festa, P. Apple snub stings Mozilla. CNet News. January 14, 2003. <http://news.com.com/ 2100-1023-980492.html>.
libwww-perl: WWW Protocol Library for Perl
  • R T Fielding
Fielding, R.T. libwww-perl: WWW Protocol Library for Perl. <http://ftp.ics.uci.edu/pub/ websoft/libwww-perl/>, HTML, June 25, 1998.
Apache Performance Notes
  • D Gaudet
Gaudet, D. Apache Performance Notes. <http://httpd.apache.org/docs/1.3/misc/perf-tuning.html>, HTML, September 30, 1997.
Browsers-Explorer 5 Mac
  • P.-P Koch
Koch, P.-P. Browsers-Explorer 5 Mac. <http://www.quirksmode.org/browsers/ explorer5mac.html>, HTML, November 23, 2004.
Window Toolkit and Applets. The Java(TM) Application Programming Interface. 2, 406 pgs
  • J Gosling
  • F Yellin
Gosling, J. and Yellin, F. Window Toolkit and Applets. The Java(TM) Application Programming Interface. 2, 406 pgs., Addison-Wesley Professional, 1996.
Fiddler PowerToy-Part 1: HTTP Debugging. <http://msdn.microsoft.com/ library/default.asp?url=/library/en-us
  • E Lawrence
Lawrence, E. Fiddler PowerToy-Part 1: HTTP Debugging. <http://msdn.microsoft.com/ library/default.asp?url=/library/en-us/dnwebgen/html/IE_IntroFiddler.asp>, Microsoft Corporation, HTML, January, 2005.
The Life of An HTML HTTP Request
  • A Larsson
Larsson, A. The Life of An HTML HTTP Request. <http://www.mozilla.org/docs/ url_load.html>, Mozilla Foundation, HTML, October 8, 1999.
NCSA's World Wide Web server: design and performance
  • T T Kwan
  • R E Mcgrath
Kwan, T.T., McGrath, R.E., and Reed, D.A. NCSA's World Wide Web server: design and performance. Computer. 28(11), p. 68-74, November, 1995. <http://dx.doi.org/10.1109/ 2.471181>.
Netcraft Web Server Survey
  • Netcraft
Netcraft. Netcraft Web Server Survey. <http://www.netcraft.com/survey/>, HTML, December 2, 2005.
What's New in IIS 6.0? (Part 1 of 2). DevX.com
  • C Peiris
Peiris, C. What's New in IIS 6.0? (Part 1 of 2). DevX.com. August 20, 2003. <http:// www.devx.com/webdev/Article/17085>.
libcurl vs neon for WebDav? <http://curl.haxx.se
  • D Stenberg
Stenberg, D. libcurl vs neon for WebDav? <http://curl.haxx.se/mail/lib-2003-03/0208.html>, Email, March 19, 2003.