Quality Money Management : Process Engineering and Best Practices for Systematic Trading and Investment

(Michael S) #1

202 CHAPTER ◆ 2 1 Design System Architecture


21.7. LOOP 3: Design Network Architecture


A trading/investment system is implemented as a network of nodes, each node config-
ured with hardware and software. The three software layers in the logical view (presenta-
tion, business, and data) are coded and deployed onto these nodes. Software designers,
however, need to understand the physical layer, too, in order to decrease latency, improve
speed, and avoid network bottlenecks.
Computer speed has usually been defined in terms of MHz or GHz (cycles per sec-
ond), though a computer with higher MHz rating may not necessarily have faster speed.
Manufacturers now measure speed in terms of MHz and processor cache. More speed and
more cache make for faster processing. Memory, bus speeds, and the quality of the written
code will also influence processing speed.
Latency is how long it takes to complete a process. Throughput is the amount of work
done per unit of time. Interrupt latency is the guaranteed maximum response time of the sys-
tem to an event. There are trade-offs among different design choices: adding cache usually
increases latency (which is bad) but makes throughput better. As you can imagine, computers
that run automated trading/investment systems need low interrupt latencies—a real-time trad-
ing strategy may lose money if market data is not analyzed within a specified amount of time.
Benchmarking hardware and network technology should take all these factors into
account by measuring the time a computer takes to run through a series of test programs.
As we have seen with other vendor-supplied technology, some vendors optimize their
products to execute specific tests quickly to meet a benchmark. The same system may not
perform as well in a different environment.
Nevertheless, a new system will likely involve new hardware. This means software
designers will need to develop programs to interface with the physical level. A system cannot
be fully tested until the hardware is benchmarked and ready, but concurrent development of
hardware and software is usually a recipe for long development cycles. We recommend that
designing a network architecture should be performed using an ATAM process, including:

● Review specifications and quality attributes requirements of the network.
● Predictions of network traffic.
● Location and types of terminals, servers, and their required protocols.
● Technical specifications and pricing of vendors ’ products.
● Documentation of the network design.

21.8. Summary


Technology design transforms requirements into the technologically feasible solutions
and selects optimal architectures. It is a search for the technologies that will generate
superior trading/investment performance. We recommend test-driven development, where
tests are designed first, prior to design and development of a three-tier (or n -tier) architec-
ture—business tier, data access tier, presentation tier.
An iterative process of decomposition, test design, conceptual design, and evaluation/
benchmarking should enable a development team to build the technology to specification
and meet the technology quality attribute requirements efficiently. Given the short life
cycles of hardware and network components, we recommend network design come last.
Lastly, we recommend the use of the ATAM method for evaluation when possible, and
creation of a software architecture document as a primary deliverable for Gate 3.
Free download pdf