Cluster Computing

, Volume 4, Issue 1, pp 39–47 | Cite as

Multiple Bypass: Interposition Agents for Distributed Computing

  • Douglas Thain
  • Miron Livny


Interposition agents are a well-known device for attaching legacy applications to distributed systems. However, agents are difficult to build and are often large, monolithic pieces of software which are suited only to limited applications or systems. We solve this problem with Bypass, a language and a tool for quickly building multiple small agents that can be combined together to create powerful yet manageable software.

interposition agent distributed system remote execution 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    A. Alexandrov, M. Ibel, K. Schauser and C. Scheiman, UFO: A personal global file system based on user-level extensions to the operating system, ACM Transactions on Computer Systems (August 1998) 207–233.Google Scholar
  2. [2]
    D. Thain and M. Livny, Bypass: A tool for building split execution systems, in: Ninth IEEE Symposium on High Performance Distributed Computing (August 2000) pp. 79–85.Google Scholar
  3. [3]
    R. Balzer and N. Goldman, Mediating connectors, in: 19th IEEE International Conference on Distributed Computing Systems (June 1999).Google Scholar
  4. [4]
    J. Bester, I. Foster, C. Kesselman, J. Tedesco and S. Tuecke, GASS: A data movement and access service for wide area computing systems, in: 6th Workshop on I/O in Parallel and Distributed Systems (May 1999).Google Scholar
  5. [5]
    A.D. Birrell and B.J. Nelson, Implementing remote procedure calls, ACM Transactions on Computer Systems 2(1) (February 1984) 39–59.Google Scholar
  6. [6]
    I. Foster and C. Kesselman, Globus: A metacomputing intrastructure toolkit, International Journal of Supercomputer Applications 11(2) (1997) 115–128.Google Scholar
  7. [7]
    D.P. Ghormley, D. Petrou, S.H. Rodrigues and T.E. Anderson, SLIC: An extensibility system for commodity operating systems, in: USENIX Annual Technical Conference (June 1998).Google Scholar
  8. [8]
    A.S. Grimshaw, W.A. Wulf et al., The Legion vision of a worldwide virtual computer, Communications of the ACM 40(1) (January 1997) 39–45.Google Scholar
  9. [9]
    G. Hunt and D. Brubacher, Detours: Binary interception of Win32 functions, Technical Report MSR-TR–98–33, Microsoft Research (February 1999).Google Scholar
  10. [10]
    IEEE/ANSI, Portable operating system interface (POSIX): Part 1, system application program interface (API): C language (1990).Google Scholar
  11. [11]
    S.C. Johnson, YACC - Yet another compiler-compiler, Comp. Sci. Tech. Rep. 32, Bell Labs, Murray Hill, NJ (July 1975).Google Scholar
  12. [12]
    M.B. Jones, Interposition agents: Transparently interposing user code at the system interface, in: Proceedings of the 14th ACM Symposium on Operating Systems Principles (1993) pp. 80–93.Google Scholar
  13. [13]
    M.E. Lesk and E. Schmidt, LEX - a lexical analyzer generator, Comp. Sci. Tech. Rep. 39 (Bell Labs, Murray Hill, NJ, 1975).Google Scholar
  14. [14]
    M. Litzkow, M. Livny and M. Mutka, Condor - a hunter of idle workstations, in: Proceedings of the 8th International Conference of Distributed Computing Systems (June 1988).Google Scholar
  15. [15]
    R. Srinivasan, RFC-1831: RPC: Remote procedure call protocol specification version 2, Network Working Group Requests for Comments (August 1995).Google Scholar
  16. [16]
    R. Srinivasan, RFC-1832: XDR: External data representation standard, Network Working Group Requests for Comments (August 1995).Google Scholar
  17. [17]
    SunMicrosystems, rpcgen Programming Guide (Sun Microsystems Inc., Mountain View, CA, 1987).Google Scholar

Copyright information

© Kluwer Academic Publishers 2001

Authors and Affiliations

  • Douglas Thain
    • 1
  • Miron Livny
    • 1
  1. 1.Computer Sciences DepartmentUniversity of WisconsinMadisonUSA

Personalised recommendations