1.65k likes | 1.77k Vues
This paper presents a novel framework for distributed data flow languages tailored for multi-party protocols. It examines the design and implementation of user-defined objects within distributed peer-to-peer systems, focusing on multicast, commit, locking, and replication mechanisms. Key concepts include protocol composition, decision-making logic, and efficiency enhancements. We discuss frameworks such as Ensemble and BAST, highlighting challenges in higher-level and lower-level logic integration. This framework aims to improve flexibility and reduce error rates in protocol design and implementation for collaborative computing environments.
E N D
Distributed Data Flow Languagefor Multi-Party Protocols Krzysztof Ostrowski†, Ken Birman†, Danny Dolev§ †Cornell University, §Hebrew University {krzys|ken}@cs.cornell.edu, dolev@cs.huji.ac.il
http://liveobjects.cs.cornell.edu distributed peer-to-peer protocols
http://liveobjects.cs.cornell.edu distributed peer-to-peer protocols multicast commit locking replication
http://liveobjects.cs.cornell.edu shared content distributed peer-to-peer protocols multicast commit locking replication
http://liveobjects.cs.cornell.edu replicated content distributed peer-to-peer protocols multicast commit locking replication
http://liveobjects.cs.cornell.edu synchronization, coordination replicated content distributed peer-to-peer protocols multicast commit locking replication
http://liveobjects.cs.cornell.edu basic building block
http://liveobjects.cs.cornell.edu basic building block
http://liveobjects.cs.cornell.edu basic building block
http://liveobjects.cs.cornell.edu need lots of different objects (protocols)
http://liveobjects.cs.cornell.edu user-defined objects need lots of different objects (protocols)
How to Implement New Objects? custom user-defined object
How to Implement New Objects? Java / C# / C++ custom user-defined object protocol composition Frameworks (Ensemble, BAST, Appia) MACE, P2, etc.
How to Implement New Objects? Java / C# / C++ custom user-defined object protocol composition Frameworks (Ensemble, BAST, Appia) MACE, P2, etc.
How to Implement New Objects? Java / C# / C++ custom user-defined object protocol composition Frameworks (Ensemble, BAST, Appia) MACE, P2, etc.
How to Implement New Objects? higher-level logic (making decisions) Java / C# / C++ protocol composition Frameworks (Ensemble, BAST, Appia) intermingled, tightly-coupled lower-level logic (e.g., ACKs, timeouts, building rings/trees, internal bookkeeping) MACE, P2, etc.
How to Implement New Objects? higher-level logic (making decisions) intermingled, tightly-coupled lower-level logic (e.g., ACKs, timeouts, building rings/trees, internal bookkeeping)
How to Implement New Objects? higher-level logic (making decisions) intermingled, tightly-coupled lower-level logic (e.g., ACKs, timeouts, building rings/trees, internal bookkeeping)
How to Implement New Objects? harder to write/debug Java / C# / C++ error-prone protocol composition Frameworks (Ensemble, BAST, Appia) less sophisticated less flexibility MACE, P2, etc.
How to Implement New Objects? harder to write/debug Java / C# / C++ error-prone protocol composition Frameworks (Ensemble, BAST, Appia) less sophisticated less flexibility MACE, P2, etc.
How to Implement New Objects? harder to write/debug Java / C# / C++ error-prone protocol composition Frameworks (Ensemble, BAST, Appia) less sophisticated less flexibility MACE, P2, etc.
How to Implement New Objects? harder to write/debug Java / C# / C++ error-prone protocol composition Frameworks (Ensemble, BAST, Appia) less sophisticated less flexibility MACE, P2, etc.
How to Implement New Objects? separation of concerns higher-level logic (making decisions) lower-level logic (e.g., ACKs, timeouts, building rings/trees, internal bookkeeping)
How to Implement New Objects? separation of concerns programmer compiler and runtime
How to Implement New Objects? separation of concerns programmer compiler and runtime