CommerceNet developer and UC Santa Cruz graduate student Elias Sinderson will be previewing his advancement-to-candidacy presentation at our Thursday Tech Talk series on April 13th…
The Web has, perhaps somewhat arguably, become the preferred platform
for building distributed applications. Even given the power of current
toolkits, however, it is unfortunately difficult to build truly
collaborative, Web-based applications of a sufficiently interesting size
due to the inherent difficulties of reasoning about the interaction and
coordination of multiple systems or services.
We outline a research
agenda centered on exploring the parallels that have been identified
between the tuplespace programming model and the REST architectural
style as realized by the Web, as well as the implications thereof. As
operational hypothesis for this work, we make the following assertions.
First, that the Web may be regarded as a kind of tuplespaces and,
second, that the HTTP + WebDAV protocol stack may be treated formally as
a coordination language. We claim that the intersection of the
tuplespace programming model and the REST architectural style is fertile
ground, worthy of further research, and that the development and
application of formalisms to reason about Web-based applications will be
a lasting contribution to the field.
Tuplespaces are broadly applicable, from parallel programming tasks to
service provisioning in distributed systems to providing the foundation
for collaborative environments in CSCW applications. If the above
hypotheses hold, then these types of systems should be able to leverage
the existing web infrastructure to their advantage.
Further, we note
that there are no widely accepted methods for reasoning formally about
the behavior of large distributed and / or decentralized systems built
upon web technologies. If the formal approaches that have been developed
to reason about coordination languages and tuplespace systems are
successfully applied to application layer protocols (HTTP + WebDAV) and
Web-based systems, the impact upon web application engineering would be
Highlighting the parallels that exist between these domains
will provide design beacons for Web-based applications, illuminating a
familiar landscape with known architectural principles and design
patterns. In doing so, hopefully, this work will serve to encourage good
software engineering practices and further advance the state of the art
in distributed systems design.