Distributed Trading SWE 622 Spring 2009
Group Members Dave Johnson Akhil Pathania Sohrab Rezvan Nick Ton
Overview Prototype Design Description of Experiments Implementation and Evaluation Plan
Prototype Design Peer to Peer Technology, Asynchronous Messaging
Design Features Configuration Files Trader: name, address, and port for trader (self) and any number of exchanges Exchange: name, address, and port for self Data Exchange Format Registration messages between traders and exchanges: “time in milliseconds, exchange name, registration, trader id, trader port, 0” Buy / Sell messages to exchange: “time in milliseconds, exchange name, buy/sell, product, quantity, price” Berkley Algorithm for time agreement
Program Flow: Trader
Program Flow: Exchange
Class View
Session Management
Description of Experiments
Experiments Test for different fault conditions exchange failure (including latency and disk storage) trader failure (including latency and disk storage) trader session resumption exchange session resumption
Experiments (cont’d) Test implementation between one exchange and one trader Clock skew and average latency during various transactions Test implementation between one exchange and multiple traders Clock skew and average latency during various transactions
Implementation and Evaluation Plan
Implementation Programming divided among four team members Eclipse IDE Zoho.com for file sharing and project management support Local network with four laptops and switch to test latency
Evaluation Scalability of traders vs exchanges (1:1 vs n:1) Analysis with timestamps transmitted with messages Analysis with Ethereal (including latency of echoes, latency of failures, clock skew, and network latency) Transfer exchange and trader data structures to text files to estimate memory used