450 likes | 587 Views
RSMS Final Presentation. COMP 415 December 5, 2005. Remember!. Please put in your name for the raffle for a free copy of Visual Studio 2005 Professional and SQL Server 2005 Standard. “Real World” Software Engineering. Fictitious Software Company Six students One semester development cycle
E N D
RSMS Final Presentation COMP 415 December 5, 2005
Remember! Please put in your name for the raffle for a free copy of Visual Studio 2005 Professional and SQL Server 2005 Standard
“Real World” Software Engineering • Fictitious Software Company • Six students • One semester development cycle • Real Customer: HBK Investments • Student lead customer interaction • Conference XP Meetings • Customer Resources Sharepoint Site and E-mail • Trip to Dallas
Stock Market Simulator • Plug-in HBK stock market participants • Push market information to the clients • Interact with historical market data • Implement some broker behaviors A Robust, Scalable, Extensible
Stock Market Overview • NYSE, NASDAQ, NIKKEI • Auction-Style • Post Bids • Post Offers • Transact if they match • Time critical • Huge data throughput • Market strategy critical to success
Development Life Cycle Developer Customer
Customer Driven Development • Initial specification • Proof of concept code • Small development cycles
Customer Driven Development Customer Feedback Development Release
Development Environment • Venture into new technologies and architectures • .NET Framework 2.0 Development (August CTP => RTM) • Visual Studio 2005 Team Suite Edition • Visual Studio 2005 Team Foundation Server • SQL Studio 2005 Enterprise Edition/Developer Edition • Microsoft SharePoint Technologies
Development Environment • Unit Testing Capabilities built into the Development Environment • Performance Profiling • Refactoring Capabilities • Team Collaboration through SharePoint, Team Foundation Server
Work Items Version Control TeamBuild Team Foundation Server Visual Studio 2005 SharePoint Team Site Team Foundation Server Client Team Foundation Server
Market Engine Broker Layer Market Statistics Aggregation RSMS Architecture Market • Pushes (vs. Polling) Market Data • Best Bids and Offers • Extensible Quote Server • Human • Historical Data • Unmanaged C++ Client Client
Overall Architecture CLIENT Human Participant ITCH Participant C++ Participant SERVER Market Web Service Quote Server Market Data-Store
Market CLIENT Human Participant ITCH Participant C++ Participant ASP.NET Web Service Market Web Service SERVER Data-Store Adaptor Quote Server SQL Server 2005 Database Market Data-Store
Market • Service Oriented Architecture (SOA) • Use of ASP.NET Web Services • Exposes Service Contracts • Stateless Architecture
Market • Advantages • Focus ourselves on exposing services to be consumed by others • Interoperability between different Platforms • Built upon existing technologies such as HTTP, IIS and XML • Scalable Architecture
Market Overview RSMS Market Web Service Proxy HTTP/IIS Web Service Façade Quote Server Data-Store Adaptor SQL 2005 Database
Roles of the Market • Market Engine • Accepts orders • via Web Services • Stores orders • via SQL technology • Matches orders • via SQL queries • Generates and Stores transactions • Pushes data to Quote Servers (using MSMQ – Microsoft Message Queuing)
Role of the Market • Simulated Time • Allows the Market to run faster or slower than real-time (for Historical Data) • Broker Layer • Encapsulates Market Intelligence • Market Statistics Aggregation • Participant/Stock Statistics, Total Traded Volume/Amount, etc.
Quote Server CLIENT Human Participant ITCH Participant C++ Participant Windows Application/Service ASP.NET Web Service MSMQ SERVER Market Web Service Data-Store Adaptor Quote Server Data-Store Adaptor SQL Server 2005 Database Market Data-Store
The Quote Server • Allows Clients to • Listen to Market Events • New, Modified and Deleted Orders • Listen to Transactions • Listen to Changes in Best Bids/Offers • Pushes data to Clients via .NET Remoting
Reliable Message Passing • Use of MSMQ (Microsoft Message Queuing) • Allows a cluster of Market Servers to pass messages to another cluster of Quote Servers using Multicasting • .NET Programmability Support means passing of managed objects (serialized)
Scalability Concerns • Market (Web Service) • Application can be deployed as Web Gardens/Web Farms • Backend SQL Database can also be deployed as a fail-over SQL cluster • High Availability and Scalability • Quote Server (Windows Service/Application) • Application/Service can be deployed on multiple servers • MSMQ Multicasting causes virtually no overhead for adding Quote Servers to the Market
The Big Picture Quote Servers MSMQ IP Message Multicast Event ASP.NET Web Service Market Web Service Cluster Offer Bid SQL Server 2005 Market Data-Store Transact
Benchmark • Dell Precision Workstation • Dual Intel Xeon 3.4Ghz Processor • 1GB DDR2 Ram • Western Digital 80GB Hardrive • Windows 2003 Enterprise Edition • SQL Server 2005 Enterprise Edition • Market Web Service on IIS 6.0 • Quote Server Enabled (no Clients Connected)
Server Management Console Resetting Market Viewing/Querying Bids and Offers Browsing Past Transactions and Market Orders Viewing Market Statistics Displaying Participant Information and Statistics Displaying Stock Information and Statistics
Server Benchmarking Demonstration Load Testing
Client CLIENT Human Participant ITCH Participant C++ Participant .NET Remoting SOAP Web Service Calls Market Web Service SERVER Quote Server Market Data-Store
Client API Overview RSMS Client (Inherits AParticipant) Policy Enforcer Layer Quote Server Adaptor Market Network Adaptor Validation Unified Data Representation Initialization & Discovery
The Client • Scalable Application Framework • Participant API • Enforcer Layer • Major participants: • Human Participant • Historical Data Participant • Unmanaged C++ Participant Human Participant ITCH Participant C++ Participant
The Human Participant • Post Bids and Offers • Cancel orders • View market events • Market data is pushed to the GUI • Graphs market information Human Participant
The Historical Data Participant • Reads historical data from files • Uses parsers for specific file formats • ITCH • Uses market time to send orders ITCH Participant
The Unmanaged C++ Client • Interacts with black box applications • Listens for events from applications • Pushes market data to applications • External applications are decoupled from RSMS C++ Participant
Architecture Extensibility • Architecture decoupled and scalable • Participant Framework • Allows any proprietary protocol to interact with the market • Easily extended • Policy Enforcer Framework • Transparent and secure • Ensures participant integrity • Not specific to any type of market Transparent Secure Extensible
Client Initialization Form Log in Specify Market Specify Participant Connect to Quote Server
Client Human Participant GUI Market tab Current bids and offers Sort Cancel bid or offer Post matching bid or offer External modification of orders pushed to GUI Pump historical data Graphical data analysis Query best prices
Conclusion Client Architecture Market Web Service Quote Server • Service Oriented Architecture • High Availability • Scalability • SOAP/XML • SQL Database • Transactions • MSMQ • .NET Remoting • Pushes Market Events • Extensible • Scalable • Extensible • Secure • Market Adaptor • Quote Server Adaptor • Policy Enforcers • Complete Architecture for Stock Market Simulation/Strategy Testing
Thank you for Coming! And the winner is…