Team #3: FTEX
18-749: Fault-Tolerant Distributed Systems
Spring 2006
Team Members:
Team Roles:
- Webmaster
- Database
- Testing
- Application
- Documentation
- Reliability Analysis
- Performance Analysis
- Real Time Analysis
- Client Module
- Server Modules
- CORBA/EJB Development
Role |
Ernest |
Yong Khong |
Han Chun |
Imran |
Arnold |
Webmaster |
|
|
|
X |
|
Databases |
X |
|
|
X |
X |
Testing |
X |
X |
X |
|
|
Application |
|
X |
|
X |
X |
Documentation |
  |
|
X |
|
X |
Reliability Analysis |
X |
X |
X |
  |
  |
Performance Analysis |
X |
X |
|
|
X |
Real-Time Analysis |
|
X |
X |
X |
|
Server Modules |
X |
|
X |
X |
|
Client Module |
|
|
X |
|
|
CORBA/EJB Development |
X |
X |
X |
X |
X |
Replication Manager |
X |
  |
  |
  |
  |
Project Title: Fault-Tolerant Exchange
Baseline Application Description: A fault-tolerant and high-performance market making stock exchange. (i.e. NASDAQ, Island, Archipelago). Matches buy and sell order of multiple clients.
Configuration:
- Middleware - JBoss
- Operating system - Linux
- Language - Java
Third-party software, if any (databases):
Baseline Application Features:
- Allows a customer to view the buy and sell orders books for a stock ( The queue of order prices for a stock placed by all clients )
- Allows a customer to create a profile (name, bank account, address, etc.)
- Allows a customer to put market orders and limit orders into the system
- Stores transaction details of matched buy and sell orders
- Updates the last transaction price
Application Flow Chart

Reliability Requirements:
- Preserves previously-saved customer profiles under a single server failure
- Preserves details of ongoing transaction under single server failure
- Client will receive message to confirm that order was successfully placed
- Client will receive message when placed order has been executed/fulfilled
- Maintains status of current order book accurately under single server failure, all placed orders are still the same upon recovery
Real-Time Requirements:
- Customer receives order confirmation and within 3 seconds of placing order
- Customers(buyer/seller) receives confirmation within 3 seconds once a limit order is executed
- Customer is capable of seeing real-time update for the queue of all previous orders for a stock
Performance Requirements:
- Database can store profiles of up to 10000 customers
- Server handles up to 20 requests at a time
- Server can handle multiple order books for up to 10 different stocks simultaneously
- Each stock will be able to queue up to 100 orders of different prices and quantities
- Capable of unwinding 20 items off book queue simultaneously, should a large matching/market order comes it that clears the order book
Appendix
An example of a working electronic exchange can be seen from www.island.com where during market hours, anyone can see the list of orders (limit order book) for any particular stock on electronic exchanges. An example of such a limit order book can be seen for the stock of Google (GOOG) below.

Glossary
Limit Order: An order to buy and sell a stock at a certain price only. Once transmitted the limit order will enter the limit order book in a queue according to the price of the order. Lower price sell orders move to the top of the list and higher price sell orders go to the top of the list. If there is a match of sell and buy order at the top of the queues then the trade will be executed, matching the buyer and seller.
Market Order: An order to buy or sell at any price currently available. This would reflect the tops of the buy and sell order queues. Buy orders will be matched with the lowest sell order price on the limit book and sell orders are matched with the highest buy order in the limit book
Update (02/13/2006)
Architecture and FTEXServer Interface
Update (03/09/2006)
Fault Tolerant Design
Test Scenario
Javadoc for FTEX
Update (04/05/2006)
Fault Tolerance Evaluation
Update (04/17/2006)
FTEX Real-Time Experimental Evaluation Report(pdf)
Update (04/23/2006)
Phase IV proposal(doc)
Update (05/03/2006)
Final Presentation
Update (05/05/2006)
Final Demo Deliverables
Instructions to run demo