UBC Theses and Dissertations

UBC Theses Logo

UBC Theses and Dissertations

Flows : a novel infrastructure for communication in distributed systems Warfield, Andrew Kent

Abstract

We believe that the lack of advancement in the development of novel distributed systems is the direct result of a lack of necessary functionality to correctly describe and implement their communication requirements. Existing communication protocols, specifically the TCP/IP suite, cater strictly to static point-to-point data streams. The current state of the Internet clearly reflects the strengths and weaknesses of this model: Popular applications are almost universally structured as client-server. The difficulties in realizing effective service location and client mobility are the consequence of a network abstraction in which only endpoints may be named and messages travel only from point to point. By naming individual data streams and allowing the network to resolve changing endpoint participation, these goals become very easy to address. The existing communications infrastructure is the inevitable result of long-standing preconceptions of network and distributed system composition. The network is non-wholistically treated as a collection of disjoint endpoints. Messages are treated as second-class objects in an environment where only endpoints are named. Goals of transparency are implemented at the lowest possible point in the system through abstractions such as RPC[4] which, in an attempt to make procedure calls seem local, makes it impossible to publish distribution-related fault and control messages to applications. The existing network infrastructure does not meet the needs of emerging distributed systems. For this reason, it is a relevant time to reconsider the desirable functionality of the network infrastructure. This paper introduces the concept of a communications flow. The flow is in many ways an extension of previous work regarding data stream-centric communication [12] that has been augmented specifically to support the demands of large-scale distributed systems. A flow is a named entity that provides a handle on the network resources associated with a data stream in the same manner that a process ID associates local resources with a computational job [19].

Item Media

Item Citations and Data

Rights

For non-commercial purposes only, such as research, private study and education. Additional conditions apply, see Terms of Use https://open.library.ubc.ca/terms_of_use.