LindFinancialTM API - PowerPoint PPT Presentation

1 / 26
About This Presentation
Title:

LindFinancialTM API

Description:

Interactions driven by: API binaries and not by published document schemas ... Publishing of XML document structure (schema) is not required ... – PowerPoint PPT presentation

Number of Views:55
Avg rating:3.0/5.0
Slides: 27
Provided by: drernesto1
Category:

less

Transcript and Presenter's Notes

Title: LindFinancialTM API


1
LindFinancialTM API
  • XML Technology
  • for
  • Electronic Order Entry and Management

Ernesto L. Aparcedo, Ph.D. Director Systems
Development Lind-Waldock Inc., a division of
Refco LLC
2
Agenda
  • Design Aspects of an XML API
  • Implementing the LindFinancial API
  • Developing Order Entry Solutions with the
    LindFinancial API
  • Impact of the New API Architecture
  • Trends and Future Directions

3
Why a new API Architecture?
  • Provide a consistent and scalable
    Business-Centric API
  • Maintain High Performance for Interface Clients
    and Server Applications
  • Minimize costs in software development
    maintenance and upgrades
  • Separate data presentation from business
    processing
  • Encoding and Decoding data via XML
  • Provide abstracted interface to Order Routing
    Engine
  • Establish foundations for Order Routing growth
  • Preserve current Order Routing investment

4
API Technical Challenges
  • Scalable and Extensible API
  • Multiple development platforms client, servers,
    desktop, web, wireless, tablet
  • Multiple Operating Systems Microsoft Windows,
    Linux, AIX, Solaris, etc.
  • Support for different transports
  • Data must be portable across different computer
    architectures

5
Todays Order Entry World
  • Notable characteristics
  • Fixed and variable length records. Flat Records.
  • Records are transmitted remotely through various
    communication protocols
  • Various Message Queuing Systems are being used
    (MSMQ, MQ Series)
  • Must implement a combination of technologies
    Multithreading, sockets, etc.
  • Consequences
  • Clients require substantial software development
    and maintenance costs
  • Limited portability and scalability

6
Common API Design
7
Flat Record Data Encoding
  • FIX Record
  • 8FIX.4.2919935D341049VENDOR115CUSTOMER
    144CHICAGO EQ56BROKER57DOT143NY522000090
    7-09255811ORD_1212110100055KO221482
    774611095416020000907-09255638500040244
    62.515USD47A1010165
  • CUSTOM Record
  • ORDER FIRMXX2837485 683321 FIRMXX 6
    200210291BUY 2 MAY03BO24 PUT 180 EW

8
Progressive API design
  • Separate Interfacing, Data Encoding/Decoding and
    Transport
  • XML for Data Portability and Distribution
  • Exposure of Transport payloads must be minimized
  • Abstract technology implementation by using the
    Business-centric concepts in its interface
    functions
  • Symmetric construction of functions for clients
    and servers
  • Object Oriented design with portable language
  • Interactions driven by API binaries and not by
    published document schemas
  • Truly Portable Must run everywhere!

9
LindFinancial API Design
10

XML Data Encoding
  • ltordergt
  •   ltacct f"532" a"322480" /gt
  •   ltfid t"new" i"342380-N20916164" /gt
  • ltleg s"BUY" qo"6"gt
  •   ltcc c"ES" mH" y"2003" /gt
  •   ltprice p"1180" /gt
  •   lt/leggt
  • ltleg s"SELL" qo6"gt
  •   ltcc c"ES" m"Z" y"2003" /gt
  •   lt/leggt
  •   ltmsg t"clerk" m"Clerk message from EAPARCED"
    /gt
  •   ltmsg t"order" m"Ticket message from EAPARCED"
    /gt
  • lt/ordergt

11
LindFinancial API Technical Objectives
  • Preserve Order Routing functionality
  • Provide a highly scalable and portable system
    (Windows, Linux, AIX, Solaris)
  • Present a consistent API to both the Web, Backend
    Server and Order Entry clients
  • Lay the foundations for an scalable, portable and
    distributed Order Routing System
  • Maintain high performance processing while using
    XML
  • Abstract Transport Layer from Client Experience

12
LindAccess Common Programmatic Interface (CPI)
Framework
  • LindFinancial API Library
  • Generic Application Programming Interface (API)
  • Casino
  • Data Transport and Multitasking Classes

13
LindAccess CPI Architecture
14
LindFinancial APIBasic Characteristics
  • Asynchronous Business-centric XML API for Order
    Entry Clients and backend processing Servers
  • Full Abstraction of business functionality from
    technical implementation
  • Extensive support for
  • Orders, Fills, Status, Alerts, Quotes, Cancels,
    Cancel-Replace, Positions, Requests, Funds,
    Checks and Heartbeats.
  • API functionality Over 875 functions, methods,
    properties and callbacks.
  • All Data Encoding in XML
  • C API Object Oriented Library
  • Portable to multiple operating systems
  • Microsoft Windows (98, NT, 2000, XP, .NET, etc.)
  • Unix (AIX, Linux, Solaris, etc.),

15
LindFinancial APIAdvanced Features
  • Provides a platform for distributed Order Entry
    System
  • Fully Extensible API library
  • Order management
  • Data communication and transports are abstracted
  • Fully object oriented its functionality can be
    inherited or overridden by other libraries
  • Order Batching and Replay applications
  • Flexible XML design to support hot technologies
    like Web Services
  • Leverage XML design to support data
    transformations (XSLT), storage and presentation.
    Ready for B2B use.
  • Readily integrates with software development
    technologies and programmatic clients (COM, ATL,
    Microsoft .NET, dynamic linking)

16
LindFinancial API XML Features
  • Automatic Encoding and Decoding (Parsing)
  • Publishing of XML document structure (schema) is
    not required
  • Flexibility in providing access to internal XML
  • To get the order/fill XML
  • Order_XML GetOrder()
  • Fill_XML GetFill()
  • Transform XML as required (with XSLT)
  • LindFinancial XML to FIXML
  • XML to HTML for Web
  • XML to WML for wireless devices
  • Can import XML into Databases

17
Transport ClassesCasino
  • Data Communications and Transport C classes
  • Relevant Transport Protocols can be built as
    needed
  • LindAccess protocol
  • Efficient Threading model for multitasking
  • Automatic and integrated Logging
  • Fast Message Queuing System Orders and Fills are
    saved to disk for order/fill recovery and post
    processing
  • Fully Integrated with LindFinancial API and
    portable to other operating systems

18
LindFinancial APICurrent Applications
  • Desktop Clients
  • C Windows
  • C/MFC - COM Windows
  • Visual Basic - COM Windows - LindXpress
  • C Linux (Automated Trading System)
  • Middleware Order Processing Server
  • Web Site clients
  • Direct Access clients
  • Order Routing Engine Order Processing
  • Order and Fills Routing

19
A LindFinancial API Client LindXpress
20
A LindFinancial API Client LindXpress
D E S K T O P C L I E N T
D E S K T O P C L I E N T
Visual Basic Front End
XML COM Component
Client Entry Point
LindFinancial API
Casino
21
LindFinancial APICOM Client
  • Entering an order in a Visual Basic client (e.g.
    LindXpress)
  • Dim IOrder As LIND_ACCESS_COMPONENTLib.iOrder
  • Dim ILeg As LIND_ACCESS_COMPONENTLib.iLeg
  • IOrder.recordType RT_ORDER
  • IOrder.firm "532"
  • IOrder.account "L2248"
  • IOrder.firmIdentifier 371034258796296
  • IOrder.enteredBy EAPARCED
  • IOrder.clerkMessage "LindFinancial Futures -
    Clerk msg"
  • IOrder.orderMessage "LindFinancial
    Futures - Order msg"
  • IOrder.numberOfLegs LEG_1
  • ILeg.buyOrSell TT_BUY
  • ILeg.quantity 8
  • ILeg.month MT_MAR
  • ILeg.year "03"
  • ILeg.commodityCode "ES"
  • ILeg.orderType OT_LIMIT

22
LindFinancial APIDirect Order Entry
  • Entering an Order (C direct access)
  • Order order
  • Leg leg
  • order.PutOrder(BLANK)
  • order.PutNumberOfLegs(order.LEG_1)
  • order.PutRecordType(order.RT_ORDER)
  • order.PutFirm("532")
  • order.PutAccount("L2248")
  • order.PutFirmIdentifier(371034258796296)
  • order.PutEnteredBy("EAPARCED")
  • order.PutClerkMessage("LindFinancial Futures -
    Clerk msg")
  • order.PutOrderMessage("LindFinancial Futures -
    Order msg")
  • leg.PutLeg(BLANK)
  • leg.PutBuyOrSell(leg.TT_BUY)
  • leg.PutQuantity(8)
  • leg.PutMonth(leg.MT_MAR)
  • leg.PutYear(3)
  • leg.PutCommodityCode("ES")

23
LindFinancial APIInternal XML Document
  • Resultant Order XML
  • ltordergt
  •   ltacct f"532" aL2248" /gt
  •   ltfid t"new" i"371034258796296" eEAPARCED
    /gt
  • ltleg s"BUY" qo8"gt
  • ltcc c"ES" mH" y"2003" /gt
  •   ltprice p"108000 /gt
  •  lt/leggt
  •   ltmsg t"clerk" m"LindFinancial Futures - Clerk
    msg" /gt
  •  ltmsg t"order" m"LindFinancial Futures - Order
    msg" /gt
  • lt/ordergt

24
Casino ClassesPayload Transport
  • Pass Through Interface
  • const char LindBaseSend (const char
    Transmit_XML_Record)
  • if (latp-gtWrite(GetRecordCategory(Transmit_XML_
    Record),
  • strlen(Transmit_XML
    _Record), (char)Transmit_XML_Record) -1)
  • return EMPTY
  • return Transmit_XML_Record

25
Future Enhancements
  • Portable Order Routing Engine
  • Able to install in multiple independent
    distributed nodes
  • Develop a Web Service implementation
    (SOAPXMLHTTP)
  • Enhance LindFinancial API to support maintenance
    and system management functions
  • Enhance API to support Plug-and-Play transports
  • Apply LindFinancial API to Web presentation
    experience
  • Develop a native XML database for seamless storage

26
Summary
  • Design Overview of a Distributed XML API
  • LindFinancial API
  • Truly Scalable and Portable implementation for
    client and server solutions
  • Demonstrated that XML technology can be readily
    adapted to Order Entry
  • I propose consideration of
  • XML technology as a Standard for Order Entry
Write a Comment
User Comments (0)
About PowerShow.com