Remember! Please put in your name for the raffle for a free
copy of Visual Studio 2005 Professional and SQL Server 2005
Standard
Slide 3
Real World Software Engineering Fictitious Software
CompanyFictitious Software Company Six students One semester
development cycle Real Customer: HBK InvestmentsReal Customer: HBK
Investments Student lead customer interaction Conference XP
MeetingsConference XP Meetings Customer Resources Sharepoint Site
and E-mailCustomer Resources Sharepoint Site and E-mail Trip to
DallasTrip to Dallas
Slide 4
What does HBK want?
Slide 5
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
Slide 6
Stock Market Overview NYSE, NASDAQ, NIKKEINYSE, NASDAQ, NIKKEI
Auction-StyleAuction-Style Post Bids Post Offers Transact if they
match Time criticalTime critical Huge data throughputHuge data
throughput Market strategy critical to successMarket strategy
critical to success
Slide 7
Development Life Cycle Developer Customer
Slide 8
Customer Driven Development Initial specificationInitial
specification Proof of concept codeProof of concept code Small
development cyclesSmall development cycles
Slide 9
Customer Driven Development Development Customer Feedback
Release
Slide 10
Development Environment Venture into new technologies and
architecturesVenture 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
Slide 11
Development Environment Unit Testing Capabilities built into
the Development EnvironmentUnit Testing Capabilities built into the
Development Environment Performance ProfilingPerformance Profiling
Refactoring CapabilitiesRefactoring Capabilities Team Collaboration
through SharePoint, Team Foundation ServerTeam Collaboration
through SharePoint, Team Foundation Server
Slide 12
Team Foundation Server Team Foundation Server Team Foundation
Server Client Visual Studio 2005 Version Control Work Items Team
Build SharePoint Team Site
Slide 13
RSMS Architecture Market EngineMarket Engine Broker LayerBroker
Layer Market Statistics AggregationMarket Statistics Aggregation
Market QuoteServer Client Pushes (vs. Polling) Market DataPushes
(vs. Polling) Market Data Best Bids and OffersBest Bids and Offers
ExtensibleExtensible HumanHuman Historical DataHistorical Data
Unmanaged C++ ClientUnmanaged C++ Client
Slide 14
Quote Server Market Web Service Overall Architecture CLIEN T
SERV ER Market Data-Store Human Participant ITCH Participant C++
Participant
Slide 15
Quote Server Market Web Service Market CLIEN T SERV ER Market
Data-Store Human Participant ITCH Participant C++ Participant
Data-Store Adaptor ASP.NET Web Service SQL Server 2005
Database
Slide 16
Market Service Oriented Architecture (SOA)Service Oriented
Architecture (SOA) Use of ASP.NET Web ServicesUse of ASP.NET Web
Services Exposes Service ContractsExposes Service Contracts
Stateless ArchitectureStateless Architecture
Slide 17
Market AdvantagesAdvantages 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
Slide 18
Market Overview RSMS Market Web Service Proxy Data-Store
Adaptor SQL 2005 Database HTTP/IIS Web Service Faade Quote
Server
Slide 19
Roles of the Market Market EngineMarket Engine Accepts orders
via Web Servicesvia Web Services Stores orders via SQL
technologyvia SQL technology Matches orders via SQL queriesvia SQL
queries Generates and Stores transactions Pushes data to Quote
Servers (using MSMQ Microsoft Message Queuing)
Slide 20
Role of the Market Simulated TimeSimulated Time Allows the
Market to run faster or slower than real-time (for Historical Data)
Broker LayerBroker Layer Encapsulates Market Intelligence Market
Statistics AggregationMarket Statistics Aggregation
Participant/Stock Statistics, Total Traded Volume/Amount, etc.
Slide 21
Quote Server Market Web Service Quote Server CLIEN T SERV ER
Market Data-Store Human Participant ITCH Participant C++
Participant MSMQ Data-Store Adaptor ASP.NET Web Service Windows
Application/Service SQL Server 2005 Database
Slide 22
The Quote Server Allows Clients toAllows Clients to Listen to
Market Events New, Modified and Deleted OrdersNew, Modified and
Deleted Orders Listen to Transactions Listen to Changes in Best
Bids/Offers Pushes data to Clients via.NET RemotingPushes data to
Clients via.NET Remoting
Slide 23
Reliable Message Passing Use of MSMQ (Microsoft Message
Queuing)Use of MSMQ (Microsoft Message Queuing) Allows a cluster of
Market Servers to pass messages to another cluster of Quote Servers
using MulticastingAllows 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).NET Programmability Support means passing of managed
objects (serialized)
Slide 24
Scalability Concerns Market (Web Service)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)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
Slide 25
The Big Picture Offer Event Bid Quote Servers Market Web
Service Cluster MarketData-Store SQLServer2005 ASP.NETWebService
MSMQ IP Message Multicast Transact
Slide 26
Benchmark Dell Precision WorkstationDell Precision Workstation
Dual Intel Xeon 3.4Ghz ProcessorDual Intel Xeon 3.4Ghz Processor
1GB DDR2 Ram1GB DDR2 Ram Western Digital 80GB HardriveWestern
Digital 80GB Hardrive Windows 2003 Enterprise EditionWindows 2003
Enterprise Edition SQL Server 2005 Enterprise EditionSQL Server
2005 Enterprise Edition Market Web Service on IIS 6.0Market Web
Service on IIS 6.0 Quote Server Enabled (no Clients Connected)Quote
Server Enabled (no Clients Connected)
Slide 27
Benchmark Results
Slide 28
Slide 29
Slide 30
Server Management ConsoleManagement 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
Slide 31
Server Benchmarking DemonstrationBenchmarking Demonstration
Load TestingLoad Testing
Slide 32
Quote Server Market Web Service Client CLIEN T SERV ER Market
Data-Store Human Participant ITCH Participant C++ Participant.NET
Remoting SOAP Web Service Calls
Slide 33
Client API Overview RSMS Client (Inherits AParticipant) Policy
Enforcer Layer Initialization & Discovery Unified Data
Representation Market Network Adaptor Quote Server Adaptor
Validation
Slide 34
The Client Scalable Application FrameworkScalable Application
Framework Participant API Enforcer Layer Major participants:Major
participants: Human Participant Historical Data Participant
Unmanaged C++ Participant Human Participant ITCH Participant C++
Participant
Slide 35
The Human Participant Post Bids and OffersPost Bids and Offers
Cancel ordersCancel orders View market eventsView market events
Market data is pushed to the GUI Graphs market informationGraphs
market information Human Participant
Slide 36
The Historical Data Participant Reads historical data from
filesReads historical data from files Uses parsers for specific
file formatsUses parsers for specific file formats ITCH Uses market
time to send ordersUses market time to send orders ITCH
Participant
Slide 37
The Unmanaged C++ Client Interacts with black box
applicationsInteracts with black box applications Listens for
events from applicationsListens for events from applications Pushes
market data to applicationsPushes market data to applications
External applications are decoupled from RSMSExternal applications
are decoupled from RSMS C++ Participant
Slide 38
Architecture Extensibility Architecture decoupled and
scalableArchitecture decoupled and scalable Participant Framework
Allows any proprietary protocol to interact with the marketAllows
any proprietary protocol to interact with the market Easily
extendedEasily extended Policy Enforcer Framework Transparent and
secureTransparent and secure Ensures participant integrityEnsures
participant integrity Not specific to any type of market Extensible
Secure Transparent
Slide 39
Client Initialization FormInitialization Form Log inLog in
Specify MarketSpecify Market Specify ParticipantSpecify Participant
Connect to Quote ServerConnect to Quote Server
Slide 40
Client Human Participant GUIHuman 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
Slide 41
Conclusion MSMQ .NET Remoting Pushes Market Events Extensible
Scalable Market Web Service Quote Server Client Architecture
Service Oriented Architecture High Availability Scalability
SOAP/XML SQL Database Transactions Extensible Secure Market Adaptor
Quote Server Adaptor Policy Enforcers Complete Architecture for
Stock Market Simulation/Strategy Testing