UCI/ICS

WebSoft
Building a Global Software Engineering Environment

The WebSoft project is a concerted effort to understand the software engineering principles behind network-based software architectures, to use that understanding in the design of new application protocols, to deploy those protocols via IETF standards and our own connector software products, and to use the resulting infrastructure and experience to support future coordination of collaborative software development.

WebSoft:
Scope
and
Success
Network-based
Software Architectures
Representational State Transfer (REST)
Internet-scale Event Notification (ISEN)
C2 + REST
Application-layer
Protocols
URI
HTTP, WebDAV
HTML, XML
Connector Software Apache httpd
libwww-perl, libwww-ada95
MOMspider, wwwstat
Coordination and
Collaboration
gSEE
Collaborative Open Source
The Apache Foundation

Global Software Engineering Environment (gSEE)

The WebSoft project is investigating the use of the World Wide Web (WWW) as the infrastructure and external integration mechanism for a global software engineering environment (gSEE). A gSEE is an environment that can seamlessly support the evolution of a software product from the idea stage through maintenance of an implementation, regardless of the location or number of individuals involved. Such an environment should be able to support the expansion, contraction, and migration of participants in the software process without requiring changes to the environment infrastructure, and thus reducing the impact of changes on the project as a whole.

The global scale of a gSEE has several unique impacts on the process of developing software:

These characteristics make a global software engineering environment ideal for supporting the evolutionary design of complex systems.

World Wide Web Standards: Promotion and Development

Most of the activity on the WebSoft project focuses on the specification and standardization of the WWW protocol suite (HTTP, HTML, and URI), such that each of the protocol elements include the mechanisms necessary to support the features of a global software engineering environment. This standardization is necessary to promote the development of a large number of tools which share these common features, allowing the gSEE to be composed using commercial, off-the-shelf tools and systems rather than just research prototypes.

Our work on the WWW standards, in collaboration with the World Wide Web Consortium (W3C) and the Internet Engineering Taskforce (IETF), has included authoring the core protocol specifications for the Hypertext Transfer Protocol (HTTP) and Uniform Resource Identifiers (URI), as well as significant involvement in the specification of the Hypertext Mark-up Language (HTML).

Our current focus is on the next layer needed to support collaborative software engineering: Distributed Authoring and Versioning on the World Wide Web. At present, any web browser can contact any HTTP server, download content, and display it to the user. This should hold true for distributed web content authoring tools. Any authoring tool should be able to contact any write-capable server, and be able to modify content on that server (provided the user has appropriate access permissions).

Tools and Technologies

The WebSoft suite of tools and technologies is an expanding base of software to support collaborative software engineering using the World Wide Web. It includes our work on the wwwstat HTTP access log analysis tools, the multi-owner maintenance spider (MOMspider) for automating coherency analysis of distributed hypertext webs, and WWW client protocol libraries for the Perl and Ada95 languages.
libwww-ada95
A library of Ada95 packages that provides a simple network streams programming interface to the World Wide Web. This is a new library, so currently only the network interface is available. However, that's a far cry better than writing your own! Hopefully, libwww-ada95 will become a community-supported collaborative effort to assist the further development of useful Ada95 clients and tools.
libwww-perl
A library of Perl packages that provides a simple and consistent programming interface to the World Wide Web. This library is being developed as a collaborative effort to assist the further development of useful WWW clients and tools.
MOMspider
A web-roaming robot that specializes in the maintenance of distributed hypertext infostructures (i.e. wide-area webs).
wwwstat
A package for processing a sequence of httpd access_log files and printing a log summary in HTML format suitable for publishing or further analysis.
We also co-founded and are actively involved in the Apache HTTP Server Project.

Publications

Shared Leadership in the Apache Project
Roy T. Fielding. Communications of the ACM, 42(4), April 1999, pp. 42-43.

Web-based Development of Complex Information Products
Roy T. Fielding, E. James Whitehead, Jr., Kenneth M. Anderson, Gregory A. Bolcer, Peyman Oreizy, Richard N. Taylor. Communications of the ACM, 41(8), August 1998.

Hypertext Transfer Protocol -- HTTP/1.1
Roy T. Fielding, Jim Gettys, Jeffrey C. Mogul, Henrik Frystyk Nielsen, Larry Masinter, Paul Leach, and Tim Berners-Lee. Internet Draft Standard RFC 2616, June 1999. (PDF). [Obsoletes RFC 2068.]

Hypertext Transfer Protocol -- HTTP/1.0
Tim Berners-Lee, Roy T. Fielding, and Henrik Frystyk Nielsen. Internet Informational RFC 1945, May 1996. (postscript)

Uniform Resource Identifiers (URI): Generic Syntax
Tim Berners-Lee, Roy T. Fielding, and Larry Masinter. Internet Draft Standard RFC 2396, August 1998.

Relative Uniform Resource Locators
Roy T. Fielding. Internet Proposed Standard RFC 1808, June 1995.

World Wide Web Distributed Authoring and Versioning (WEBDAV): An Introduction
E. James Whitehead, Jr. ACM StandardView, March, 1997.

The Apache HTTP Server Project
Roy T. Fielding, Gail Kaiser. IEEE Internet Computing, 1(4), July/Aug. 1997.

Collaborative Work: Distributed Authoring and Versioning
Gail Kaiser, Jim Whitehead. IEEE Internet Computing, 1(2), Mar./Apr., 1997, pages 76-77.

Distributed Authoring on the World Wide Web, Informal Working Group Meeting
E. James Whitehead, Jr. World Wide Web Journal, Fall 1996, Vol. 1, No. 4, pages 75-77.

Requirements on HTTP for Distributed Content Editing
E. James Whitehead, Jr. Internet-Draft (work-in-progress), reprinted in the World Wide Web Journal, Fall 1996, Vol. 1, No. 4, pages 239-244.

Fusing WWW and Link Server Technology: One Approach
E. James Whitehead, Jr., Roy T. Fielding, and Kenneth M. Anderson. In Proceedings of the 2nd Workshop on Open Hypermedia Systems, Hypertext'96, Washington, DC, March, 1996, pages 81-86.

Maintaining Distributed Hypertext Infostructures: Welcome to MOMspider's Web.
Roy T. Fielding. Computer Networks and ISDN Systems, 27(2), November 1994.

Conditional GET Proposal for HTTP Caching.
Roy T. Fielding. Published on the WWW, January 1994.

Roy T. Fielding and E. James Whitehead, Jr.
Department of Information and Computer Science,
University of California, Irvine, CA 92697-3425
Last modified: 08 Oct 1999

This material is based upon work sponsored by the Air Force Materiel Command, Rome Laboratory, and the Defense Advanced Research Projects Agency under Contract Numbers MDA972-91-J-1010 and F30602-94-C-0218. The content of the information does not necessarily reflect the position or the policy of the Government and no official endorsement should be inferred.