Roy Fielding

Last updated
Roy Fielding
Roy Fielding (cropped).jpg
Fielding speaking at OSCON08
Born
Roy Thomas Fielding

September 1965 (age 58)
Alma mater University of California, Irvine
Known forREST, Apache HTTP Server
Scientific career
Fields Computer science
Thesis Architectural Styles and the Design of Network-based Software Architectures  (2000)
Website roy.gbiv.com

Roy Thomas Fielding (born 1965) is an American computer scientist, one of the principal authors of the HTTP specification and the originator of the Representational State Transfer (REST) architectural style. He is an authority on computer network architecture and co-founded the Apache HTTP Server project. [1] [2]

Contents

Fielding works as a Senior Principal Scientist at Adobe Systems in San Jose, California. [3]

Biography

Fielding was born in 1965 in Laguna Beach, California. He describes himself as "part Maori, Kiwi, Yank, Irish, Scottish, British, and California beach bum". [4] [5] [6] In 1999, the Massachusetts Institute of Technology (MIT) Technology Review TR100 named him one of the top 100 innovators in the world under the age of 35. [7] In 2000, he received his doctorate from the University of California, Irvine. [8]

Contributions

Architectural Styles and the Design of Network-based Software Architectures, Fielding's doctoral dissertation, describes Representational State Transfer (REST) as a key architectural principle of the World Wide Web and received a large amount of attention. Computer engineers frequently hold up REST as an approach to developing web services, [8] as an alternative to other distributed-computing specifications such as SOAP. Fielding has also been heavily involved in the development of HTML and Uniform Resource Identifiers. Fielding co-founded the Apache HTTP Server project [9] [10] and was a member of the interim OpenSolaris Boards until he resigned from the community in 2008. [11] He chaired the Apache Software Foundation for its first three years and sat on its board of directors until May 2014. [12]

Between 2001 and 2006, Fielding worked on Waka, an application protocol intended as "a binary, token-based replacement for HTTP". [13] It was "designed to match the efficiency of the REST architectural style". [14] [15]

He coined the term HATEOAS (Hypermedia As The Engine Of Application State) in 2000 in his doctoral dissertation. [16]

Related Research Articles

<span class="mw-page-title-main">Web crawler</span> Software which systematically browses the World Wide Web

A Web crawler, sometimes called a spider or spiderbot and often shortened to crawler, is an Internet bot that systematically browses the World Wide Web and that is typically operated by search engines for the purpose of Web indexing.

<span class="mw-page-title-main">Software architecture</span> High level structures of a software system

Software architecture is the set of structures needed to reason about a software system and the discipline of creating such structures and systems. Each structure comprises software elements, relations among them, and properties of both elements and relations.

A web service (WS) is either:

CiteSeerX is a public search engine and digital library for scientific and academic papers, primarily in the fields of computer and information science.

Hypermedia, an extension of the term hypertext, is a nonlinear medium of information that includes graphics, audio, video, plain text and hyperlinks. This designation contrasts with the broader term multimedia, which may include non-interactive linear presentations as well as hypermedia. It is also related to the field of electronic literature. The term was first used in a 1965 article written by Ted Nelson.

A stateless protocol is a communication protocol in which the receiver must not retain session state from previous requests. The sender transfers relevant session state to the receiver in such a way that every request can be understood in isolation, that is without reference to session state from previous requests retained by the receiver.

In aspect-oriented software development, cross-cutting concerns are aspects of a program that affect several modules, without the possibility of being encapsulated in any of them. These concerns often cannot be cleanly decomposed from the rest of the system in both the design and implementation, and can result in either scattering, tangling, or both.

REST is a software architectural style that was created to guide the design and development of the architecture for the World Wide Web. REST defines a set of constraints for how the architecture of a distributed, Internet-scale hypermedia system, such as the Web, should behave. The REST architectural style emphasises uniform interfaces, independent deployment of components, the scalability of interactions between them, and creating a layered architecture to promote caching to reduce user-perceived latency, enforce security, and encapsulate legacy systems.

<span class="mw-page-title-main">Dynamic web page</span> Type of web page

A dynamic web page is a web page constructed at runtime, as opposed to a static web page, delivered as it is stored. A server-side dynamic web page is a web page whose construction is controlled by an application server processing server-side scripts. In server-side scripting, parameters determine how the assembly of every new web page proceeds, and including the setting up of more client-side processing. A client-side dynamic web page processes the web page using JavaScript running in the browser as it loads. JavaScript can interact with the page via Document Object Model (DOM), to query page state and modify it. Even though a web page can be dynamic on the client-side, it can still be hosted on a static hosting service such as GitHub Pages or Amazon S3 as long as there is not any server-side code included.

Free/open-source software – the source availability model used by free and open-source software (FOSS) – and closed source are two approaches to the distribution of software.

<span class="mw-page-title-main">Apache Axis2</span> Web service engine

Apache Axis2 is a web service engine. It is a redesign and re-write of the widely used Apache Axis SOAP stack. Implementations of Axis2 are available in Java and C.

In software engineering, a resource-oriented architecture (ROA) is a style of software architecture and programming paradigm for supportive designing and developing software in the form of Internetworking of resources with "RESTful" interfaces. These resources are software components which can be reused for different purposes. ROA design principles and guidelines are used during the phases of software development and system integration.

<span class="mw-page-title-main">Justin Erenkrantz</span>

Justin Erenkrantz was President of the Apache Software Foundation. He previously served as Treasurer for the ASF. Erenkrantz worked as a software engineer for Joost. He is currently working as Head of Compute Architecture at Bloomberg L.P., New York. Erenkrantz has made major coding developments on Apache HTTP Server, APR, mod_mbox, flood and Serf. As of 2010 Erenkrantz graduated from the University of California, Irvine where he received a PhD. His dissertation is titled Computational REST: A New Model for Decentralized, Internet-Scale Applications.

David James Brown is an American computer scientist. He was one of a small group that helped to develop the system at Stanford University that later resulted in Sun Microsystems, and later was a co-founder of Silicon Graphics in 1982.

Web of Things (WoT) describes a set of standards by the World Wide Web Consortium (W3C) for the interoperability of different Internet of things (IoT) platforms and application domains.

Hypermedia as the engine of application state (HATEOAS) is a constraint of the REST application architecture that distinguishes it from other network application architectures.

In the field of software development, an interceptor pattern is a software design pattern that is used when software systems or frameworks want to offer a way to change, or augment, their usual processing cycle. For example, a (simplified) typical processing sequence for a web-server is to receive a URI from the browser, map it to a file on disk, open the file and send its contents to the browser. Any of these steps could be replaced or changed, e.g. by replacing the way URIs are mapped to filenames, or by inserting a new step which processes the files contents.

<span class="mw-page-title-main">API</span> Software interface between computer programs

An application programming interface (API) is a way for two or more computer programs or components to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build or use such a connection or interface is called an API specification. A computer system that meets this standard is said to implement or expose an API. The term API may refer either to the specification or to the implementation. Whereas a system's user interface dictates how its end-users interact with the system in question, its API dictates how to write code that takes advantage of that system's capabilities.

<span class="mw-page-title-main">Apache OODT</span>

The Apache Object Oriented Data Technology (OODT) is an open source data management system framework that is managed by the Apache Software Foundation. OODT was originally developed at NASA Jet Propulsion Laboratory to support capturing, processing and sharing of data for NASA's scientific archives.

RESTfulAPIDLs are formal languages designed to provide a structured description of a RESTful web API that is useful both to a human and for automated machine processing. API description languages are sometimes called interface description languages (IDLs). The structured description might be used to generate documentation for human programmers; such documentation may be easier to read than free-form documentation, since all documentation generated by the same tool follows the same formatting conventions. Additionally, the description language is usually precise enough to allow automated generation of various software artifacts, like libraries, to access the API from various programming languages, which takes the burden of manually creating them off the programmers.

References

  1. "Roy T. Fielding's personal Web site". 2012-11-19. Retrieved 2013-03-04.
  2. "Roy Fielding's publications in Google Scholar". Google Scholar. Retrieved 2013-03-04.
  3. "Roy T. Fielding". LinkedIn . Retrieved 2017-08-28.
  4. "Roy T. Fielding: Life story". University of California, Irvine.
  5. Roy T. Fielding (2011-07-27). "Re: OpenOffice.org branding". www-legal-discuss.
  6. Roy T. Fielding (1999-07-02). "Re: Kiwi Fruit". FoRK mailing list.
  7. "1999 Young Innovators Under 35". Technology Review . 1999. Retrieved 2013-03-04.
  8. 1 2 Fielding, R. T.; Taylor, R. N. (2000). "Principled design of the modern Web architecture". Proceedings of the 22nd international conference on Software engineering - ICSE '00. pp. 407–416. CiteSeerX   10.1.1.420.3952 . doi:10.1145/337180.337228. ISBN   978-1581132069. S2CID   2675076.
  9. Mockus, A.; Fielding, R. T.; Herbsleb, J. (2000). "A case study of open source software development". Proceedings of the 22nd international conference on Software engineering - ICSE '00. pp. 263–272. CiteSeerX   10.1.1.13.1121 . doi:10.1145/337180.337209. ISBN   978-1581132069. S2CID   9075291.
  10. Mockus, A.; Fielding, R. T.; Herbsleb, J. D. (2002). "Two case studies of open source software development: Apache and Mozilla". ACM Transactions on Software Engineering and Methodology. 11 (3): 309–346. CiteSeerX   10.1.1.594.5885 . doi:10.1145/567793.567795. S2CID   1938015.
  11. Roy T. Fielding (2008-02-14). "Sun's Responses to the OpenSolaris Trademark Questions". ogb-discuss.
  12. "Apache Software Foundation Board of Directors Meeting Minutes". 2014-05-21. Retrieved 2014-07-08.
  13. "A conversation with Roy Fielding about HTTP, REST, WebDAV, JSR 170, and Waka". jonudell.net. 2006-08-25.
  14. Roy T. Fielding, Ph.D. (2002-11-19). "waka: A replacement for HTTP" (PPT).
  15. Fielding, Roy T. (2012). "The Waka Protocol" (PDF). IETF.org. Retrieved 2017-03-23.
  16. Fielding, Roy Thomas (2000). "Representational State Transfer (REST)". Architectural Styles and the Design of Network-based Software Architectures (PhD). University of California, Irvine. p. 82. ISBN   0599871180.

Bibliography