Sunday, October 16, 2016

Bond Trading System Architecture

Elektroniese Trading Tutoriaal 13 Wanneer dit kom by die elektroniese handel, vir die meeste individuele beleggers, met 'n langtermyn-koop-en-hou-benadering is waarskynlik die beste strategie. Die meeste van ons eenvoudig nie die tyd of die kundigheid om handel te dryf vir 'n lewe. Maar vir een of ander beleggers, kan handel 'n uiters winsgewende beroep wees. Daar was nog altyd professionele mense wat hul lewe gemaak uit van die saak. Dit was nie tot onlangs, egter, dat die tegnologie in staat gestel individue wat werent werk vir 'n makelaar om direkte toegang tot die markte. Hierdie handleiding sal delf in die werking van die elektroniese stelsels wat hierdie direkte toegang toelaat. Wel ook praat oor die verskille tussen die New York Aandelebeurs (NYSE) en die Nasdaq en leer hoe mark ambagte uitgevoer word, sowel deur die mark makers en deur spesialiste. Of jy nou 'n aspirant-handelaar of 'n gesoute belegger op soek om uit te vind hoe dit alles werk, hierdie handleiding verduidelik al die nitty-gritty elektroniese handel stelsels in laymans terme. Is elektroniese handel 'n nuwe manier vir jou om julle op te bou eie portefeulje Lees verder om uit te vind (As jy vertroud is met voorrade en handel oor die aandelemark Arent, lees Stock Basics handleiding.) Trading Systems: Ontwerp jou stelsel - Deel 1 13 Die voorafgaande afdeling van hierdie handleiding gekyk na die elemente wat make-up 'n handel stelsel en bespreek die voor - en nadele van die gebruik van so 'n stelsel in 'n lewendige handel omgewing. In hierdie artikel, ons bou op die kennis van die ondersoek wat markte is veral goed geskik vir stelsel handel. Ons sal dan 'n meer in-diepte kyk na die verskillende genres van handel stelsels. Trading in verskillende aandelemarkte Markte Die aandelemark is waarskynlik die mees algemene mark om handel te dryf in, veral onder beginners. In hierdie arena, groot spelers soos Warren Buffett en Merrill Lynch oorheers, en tradisionele waarde en groei te belê strategieë is by verre die mees algemene. Tog het baie instellings aansienlik in die ontwerp, ontwikkeling en implementering van handel stelsels belê. Individuele beleggers by hierdie tendens, hoewel stadig. Hier is 'n paar belangrike faktore om in gedagte te hou wanneer die gebruik van handel stelsels in aandelemarkte: 13 Die groot hoeveelheid aandele beskikbaar stel handelaars om stelsels te toets op baie verskillende tipes aandele - alles van uiters wisselvallige oor-die-toonbank (ODT) aandele aan nie-vlugtige uitsoekaandele. Die doeltreffendheid van handel stelsels kan beperk word deur die lae likiditeit van 'n paar aandele, veral OTC en pienk vel probleme. Kommissies kan eet in winste wat gegenereer word deur suksesvolle ambagte, en kan verliese verhoog. OTC en pienk vel aandele aangaan dikwels addisionele kommissie fooie. Die belangrikste handel stelsels wat gebruik word, is dié wat kyk vir waarde - dit wil sê, stelsels wat verskillende parameters gebruik om te bepaal of 'n sekuriteit is onderwaardeer in vergelyking met sy prestasie in die verlede, sy eweknieë, of die mark in die algemeen. Valutamarkte Die buitelandse valuta mark, of forex. is die grootste en mees vloeibare mark in die wêreld. Die wêreld se regerings, banke en ander groot instellings handel triljoene dollars op die forex mark elke dag. Die meerderheid van die institusionele handelaars op die Forex staatmaak op handel stelsels. Dieselfde geld vir individue op die forex, maar 'n paar handel op grond van ekonomiese verslae of belangstelling payouts. Here is 'n paar belangrike faktore om in gedagte te hou wanneer die gebruik van handel stelsels in die forex mark: die likiditeit in die mark - as gevolg van die groot volume - maak handel stelsels meer akkuraat en doeltreffend. Daar is geen kommissies in hierdie mark, net versprei. Daarom, sy baie makliker om baie transaksies te maak sonder die koste te verhoog. In vergelyking met die bedrag van aandele of kommoditeite beskikbaar, die aantal geldeenhede handel te dryf, is beperk. Maar as gevolg van die beskikbaarheid van eksotiese geldeenheid pare - dit is, geldeenhede van kleiner lande - die verskeidenheid in terme van wisselvalligheid is nie noodwendig beperk. Die belangrikste handel stelsels wat gebruik word in forex is dié wat tendense te volg ( 'n gewilde gesegde in die mark is die tendens is jou vriend), of stelsels wat te koop of te verkoop op breakouts. Dit is omdat ekonomiese aanwysers veroorsaak dikwels groot prysbewegings op 'n tyd. Futures Equity, markte forex, en kommoditeit al bied Futures Trading. Dit is 'n gewilde voertuig vir stelsel handel as gevolg van die hoër bedrag van die hefboom beskikbaar en die verhoogde likiditeit en wisselvalligheid. Tog kan hierdie faktore beide maniere sny: hulle kan óf versterk jou winste of versterk jou verliese. Om hierdie rede, is die gebruik van termynkontrakte gewoonlik gereserveer vir gevorderde individuele en institusionele stelsel handelaars. Dit is omdat handel stelsels in staat te kapitaliseer op die termynmark veel groter aanpassing verg, gebruik meer gevorderde aanwysers en neem baie langer om te ontwikkel. So, wat is die beste Dit is aan die individuele belegger om te besluit watter mark is die beste geskik is om te handel - elkeen het sy eie voordele en nadele. Die meeste mense is meer vertroud is met die aandelemarkte, en hierdie kennis maak die ontwikkeling van 'n handel stelsel makliker. Dit is egter forex algemeen beskou as die uitstekende platform om handel stelsels hardloop wees - veral onder meer ervare handelaars. Verder, as 'n handelaar besluit om munt te slaan uit verhoogde hefboom en wisselvalligheid, die termynmark alternatief is altyd oop. Uiteindelik is die keuse lê in die hande van die stelsel developer. Types van handel stelsels Trend-volgende stelsels Die mees algemene metode van stelsel handel is die tendens - Spring stelsel. In sy mees basiese vorm, hierdie stelsel net wag vir 'n aansienlike prys beweging, dan koop of verkoop in daardie rigting. Hierdie tipe stelsel banke op die hoop uitgespreek dat hierdie prysbewegings die tendens sal handhaaf. Bewegende gemiddelde Systems Algemene gebruik in tegniese ontleding. 'n bewegende gemiddelde is 'n aanduiding dat net toon die gemiddelde prys van 'n voorraad oor 'n tydperk van tyd. Die essensie van tendense is afgelei van hierdie meting. Die mees algemene manier om te bepaal toe - en uittrede is 'n crossover. Die logika agter dit is eenvoudig: 'n nuwe tendens kom tot stand wanneer die prys bo of onder sy historiese prys gemiddelde (tendens) val. Hier is 'n grafiek wat beide die prys (blou lyn) en die 20-dag MA (rooi lyn) van IBM plotte: Breakout Systems Die fundamentele konsep agter hierdie tipe stelsel is soortgelyk aan dié van 'n bewegende gemiddelde stelsel. Die idee is dat wanneer 'n nuwe hoë of lae gevestig, die prys beweging is waarskynlik om voort te gaan in die rigting van die tempo. Een aanwyser wat gebruik kan word in die bepaling van breakouts is 'n eenvoudige Bollinger Band oortrek. Bollinger Bands wys gemiddeldes van 'n hoë en 'n lae pryse, en breakouts voorkom wanneer die prys aan die kante van die bands. Hier is 'n grafiek wat die prys (blou lyn) en Bollinger Bands (grys lyne) van Microsoft plotte: Nadele van Trend-volgende stelsels: Empiriese Besluitneming Vereiste - By die bepaling van tendense, is daar altyd 'n empiriese element om te oorweeg: die duur van die historiese tendens. Byvoorbeeld, kan die bewegende gemiddelde vir die afgelope 20 dae of vir die afgelope vyf jaar, sodat die ontwikkelaar moet bepaal watter een is die beste vir die stelsel. Ander te bepaal faktore is die gemiddelde hoogtepunte en laagtepunte in tempo stelsels. Sloerende Nature - bewegende gemiddeldes en tempo stelsels sal altyd agter. Met ander woorde, kan hulle nooit druk op die presiese bo-of onderkant van 'n tendens. Dit lei onvermydelik in 'n verbeuring van potensiële wins, wat soms beduidende kan wees. Geheel verslaan effek - Onder die mark kragte wat skadelik vir die sukses van die tendens volgende stelsels is, dit is een van die mees algemene. Die geheel verslaan effek vind plaas wanneer die bewegende gemiddelde genereer 'n valse sein - dit wil sê, wanneer die gemiddelde daal net in omvang, dan skielik omkeer rigting. Dit kan lei tot massiewe verliese nie, tensy doeltreffende stop-verlies en risikobestuur tegnieke in diens. Sywaarts Markte --Trend volgende stelsels, deur die natuur, in staat is om geld te maak net in markte wat eintlik tendens doen. Maar markte sywaarts beweeg ook. bly binne sekere grense vir 'n lang tydperk van die tyd. Uiterste wisselvalligheid Mag gebeur - Soms, kan-tendens volgende stelsels sommige van die uiterste wisselvalligheid beleef, maar die handelaar moet vashou aan sy of haar stelsel. Die onvermoë om dit te doen, sal daartoe lei dat verseker mislukking. Countertrend Systems Kortom, die doel met die countertrend stelsel is te koop teen die laagste laag en verkoop teen die hoogste hoog. Die belangrikste verskil tussen hierdie en die tendens volgende stelsel is dat die countertrend stelsel is nie selfkorrigerende. Met ander woorde, daar is nie 'n vasgestelde tyd om posisies te verlaat, en dit lei tot 'n onbeperkte nadeel potensiaal. Tipes Countertrend Systems Baie verskillende tipes stelsels word beskou countertrend stelsels. Die idee hier is om te koop wanneer momentum in een rigting begin vervaag. Dit is die mees dikwels bereken deur ossillators. Byvoorbeeld, kan 'n sein gegenereer word wanneer Stochastics of ander relatiewe sterkte aanwysers hieronder sekere punte val. Daar is ander vorme van countertrend handel stelsels, maar almal van hulle dieselfde fundamentele doelwit te deel - lae te koop en verkoop hoog. Nadele van Countertrend volgende stelsels: E mpirical Besluitneming Vereiste - Byvoorbeeld, een van die faktore die stelsel ontwikkelaar moet besluit oor die punte waarteen die relatiewe sterkte aanwysers vervaag. Uiterste wisselvalligheid Mag gebeur - Hierdie stelsels kan ook sommige van die uiterste wisselvalligheid en 'n onvermoë om te hou met die stelsel ten spyte van hierdie wisselvalligheid sal lei tot verseker mislukking ervaar. Unlimited Nadeel - Soos voorheen genoem, is daar 'n onbeperkte nadeel potensiaal omdat die stelsel is nie selfkorrigerende (daar is nie 'n vasgestelde tyd om posisies te verlaat). Ten slotte Die belangrikste markte waarvoor handel stelsels is geskik is die aandele, buitelandse valuta en termynmarkte. Elkeen van hierdie markte het sy voordele en nadele. Die twee hoof genres van handel stelsels is die tendens-volgende en die countertrend stelsels. Ten spyte van hul verskille, beide tipes stelsels, in hul ontwikkelingstadia, vereis empiriese besluitneming aan die kant van die ontwikkelaar. Ook hierdie stelsels is onderhewig aan uiterste wisselvalligheid en dit kan 'n paar stamina eis - dit is noodsaaklik dat die stelsel handelaar hou met sy of haar stelsel in hierdie tye. In die volgende paaiement, goed neem 'n nader kyk na hoe om 'n handel stelsel te ontwerp en te bespreek 'n paar van die sagteware wat stelsel handelaars gebruik om hul lewens makliker te maak. Trading Systems: Ontwerp jou stelsel - Deel 2Subscribe om nuus te gebruik vir die nuutste insigte en analysisMessaging Patrone 187 integrasie in die praktyk 187 Gevallestudie: Bond Trading System (Deur Jonathan Simon) Dit is maklik om jouself te distansieer van 'n groot versameling van patrone of 'n patroon taal. Patrone is die onttrekking van 'n idee in 'n herbruikbare vorm. Dikwels is die baie generiese aard van patrone wat hulle so nuttig maak maak ook hulle moeilik om te begryp. Soms is die beste ding om te help om te verstaan ​​patrone is 'n tasbare voorbeeld. Nie 'n geforseerde scenario van wat kan gebeur, maar wat eintlik gebeur en wat sal gebeur. Hierdie hoofstuk is patrone vir probleme met behulp van 'n ontdekking proses op te los. Die stelsel sal ons bespreek 'n band handel stelsel wat ek saam met twee jaar uit die aanvanklike ontwerp deur produksie. Ons sal scenario's en probleme wat ondervind is en hoe om dit op te los met patrone verken. Dit behels die besluit proses van die keuse van 'n patroon, asook hoe om te kombineer en patrone aan te pas by die behoeftes van die stelsel aan te pas. En dit is al gedoen met inagneming van die magte teëgekom in real stelsels insluitend maatskappy se behoeftes, besluite kliënt, argitektoniese en tegniese vereistes, sowel as nalatenskap stelsel integrasie. Die bedoeling van hierdie benadering is om 'n beter begrip van die patrone self voorsien deur praktiese toepassing. Die bou van 'n stelsel 'n groot Wall Street beleggingsbank sit om 'n verband pryse te bou in 'n poging om die workflow van hul verband handel lessenaar meer vaartbelyn te maak. Tans, band handelaars moet pryse vir 'n groot aantal verbande te stuur na verskillende handel plekke, elk met sy eie gebruikerskoppelvlak. Die doel vir die stelsel is om die besonderhede van die pryse al hul effekte gekombineer met 'n gevorderde analitiese funksies wat spesifiek op die effektemark in 'n enkele vervat gebruikerskoppelvlak te verminder. Dit beteken integrasie en kommunikasie met verskeie komponente oor verskeie kommunikasie protokolle. Die hoë vlak vloei van die stelsel lyk soos volg: Eerstens, mark data in die stelsel kom. Mark data is data met betrekking tot die prys en ander eienskappe van die band wat wat mense bereid is om te koop en verkoop van die verband vir die vrye mark. Die mark data is onmiddellik gestuur na die ontleding enjin wat die data verander. Analytics verwys na wiskundige funksies vir finansiële programme wat die pryse en ander eienskappe van bindings te verander. Dit is generiese funksies wat insette veranderlikes te gebruik om die resultate van die funksie op maat om 'n bepaalde band. Die kliënt aansoek wat sal loop op elke handelaar lessenaar sal die ontleding enjin instel op 'n per handelaar basis, die beheer van die besonderhede van die analise vir elke band die handelaar is die pryse. Sodra die ontleding is van toepassing op die mark data, is die van die gewysigde data uitgestuur om verskeie handel plekke waar handelaars van ander maatskappye kan koop of verkoop nie die boeie verdien nie. Argitektuur met patrone met hierdie oorsig van die workflow van die stelsel, kan ons 'n paar van die argitektoniese probleme wat ons ondervind tydens die ontwerpproses te benader. Kom ons neem 'n blik op wat ons weet tot op hede. Handelaars het 'n baie ontvanklik aansoek op beide Windows NT en Solaris werkstasies. Daarom het ons besluit om te implementeer die kliënt aansoek as 'n Java dik kliënt as gevolg van sy platform onafhanklikheid en sy vermoë om vinnig te reageer op die gebruiker se toevoer en data mark. Op die bediener kant, is ons erfgename nalatenskap C komponente wat ons stelsel sal gebruik. Die mark data komponente te kommunikeer met die TIBCO inligting Bus (TIB) messaging infrastruktuur. Ons is erfgename van die volgende komponente: Mark data Prys Feed Server. Publiseer inkomende mark data na die TIB. Analytics Engine. Voer analytics op inkomende mark data en uitsendings die gewysigde mark data na die TIB. Bydrae Server. Voer alle kommunikasie met handel plekke. Die handel plekke is komponente derde party nie beheer word deur die bank. Legacy Mark data Subsystem Legacy Bydrae Subsystem Ons moet besluit hoe die afsonderlike substelsels (Java dik kliënt, data mark, en bydrae) gaan om te kommunikeer. Ons kan die dik kliënt direk te kommunikeer met die nalatenskap bedieners, maar dit sou te veel sake logika op die kliënt vereis. In plaas daarvan, asook die bou van 'n paar van Java poorte met die nalatenskap serversThe Pryse Gateway te kommunikeer vir markdata n bydrae Gateway vir die stuur van pryse te handel plekke. Dit sal lekker inkapseling van die besigheid logika wat verband hou met hierdie gebiede te bereik. Die huidige komponente in die stelsel word hieronder getoon. Die verbindings gemerk as. dui daarop dat ons steeds onseker hoe sommige van die komponente sal kommunikeer. Die stelsel en sy komponente Die eerste kommunikasie vraag is hoe om die Java dik kliënt en die twee Java-bediener komponente te integreer ten einde ruil data. Kom ons kyk na die vier integrasie style in hierdie boek voorgestel: File Transfer. Gedeelde databasis. Remote Procedure aktivering. en boodskappe. Ons kan onmiddellik uit gedeelde databasis, want ons wil 'n laag van abstraksie tussen die kliënt en die databasis te skep en dit nie wil databasis toegang kode in die kliënt. File Transfer kan insgelyks uitgesluit aangesien minimale latency is nodig om te verseker die huidige pryse is uitgestuur om die handel plekke. Dit laat ons met 'n keuse tussen Remote Procedure Beroep of Messaging. Die Java-platform bied ingeboude ondersteuning vir beide Remote Procedure Beroep en boodskappe. RPC-styl integrasie bereik kan word met behulp van afstand Metode Beroep (RMI), CORBA, of Enterprise Java Beans (EJB). Die Java Messaging Service (JMS) is die algemene API vir boodskappe-styl integrasie. So beide integrasie style is maklik om te implementeer in Java. So wat sal beter wees vir hierdie projek, Remote Procedure Beroep of Messaging werk. Theres net een voorbeeld van die pryse Gateway en een voorbeeld van die bydrae Gateway in die stelsel, maar gewoonlik baie Dik Kliënte gelyktydig verbind tot hierdie dienste (een vir elke band handelaar wat gebeur met aangeteken op 'n bepaalde tyd). Verder sal die bank dit graag 'n generiese prys stelsel wat gebruik kan word in ander programme wees. So behalwe 'n onbekende aantal Dink Kliënte, is daar dalk 'n onbekende aantal ander programme met behulp van die pryse data uit te kom van die Gateways wees. N dik kliënt (of ander aansoek met behulp van die pryse data) kan redelik maklik gebruik RPC om oproepe te maak na die poorte na pryse data te kry en roep verwerking. Dit sal egter pryse data voortdurend word gepubliseer, en sekere kliënte is in sekere data slegs geïnteresseerd, so om die relevante inligting om die regte kliënte in 'n tydige wyse kan moeilik wees. Die kliënte kan die Gateways skeer, maar dit sal 'n baie oorhoofse skep. Dit sou beter wees vir die poorte na die data beskikbaar is om die kliënte so gou as wat dit beskikbaar te maak. Dit sal egter elke Gateway vereis om tred te hou van wat kliënte is tans aktief te hou, en wat wat betrokke data dan wil, wanneer 'n nuwe stuk data beskikbaar raak (wat verskeie kere per sekonde sal gebeur), die Gateway sal moet maak 'n RPC aan elke belangstellende kliënt om die data te slaag om die kliënt. Die ideaal is dat alle kliënte gelyktydig in kennis gestel word, sodat elke RPC gemaak moet word in sy eie konkurrente draad. Dit kan werk, maar is steeds baie baie vinnig ingewikkeld. Boodskappe vergemaklik grootliks hierdie probleem. Met Boodskappe. kan ons afsonderlike kanale vir die verskillende tipes van pryse data definieer. Dan, wanneer 'n Gateway kry 'n nuwe stuk van data, sal dit 'n boodskap met die data te voeg die Publiseer-Betaal Channel vir daardie tipe data. Intussen sal alle kliënte wat belangstel in 'n sekere tipe data op die kanaal vir daardie tipe luister. Op hierdie manier, kan die Gateways maklik uitstuur nuwe data aan wie belangstel, sonder om te weet hoeveel luisteraar aansoeke daar of wat hulle is. Die kliënte moet nog in staat wees om gedrag te roep in die Gateways sowel. Aangesien daar ooit net twee Gateways, en die kliënt kan waarskynlik blok terwyl die metode sinkronies uitgeroep is, hierdie kliënt-tot-Gateway aanroepingen kan redelik maklik geïmplementeer word met behulp van RPC. Maar, aangesien ons reeds boodskappe met behulp van vir Gateway-tot-kliënt kommunikasie, boodskappe is waarskynlik net so goed 'n manier om te implementeer kliënt-tot-Gateway kommunikasie sowel. Daarom sal alle kommunikasie tussen die Gateways en die kliënte word bereik deur boodskappe. Omdat al die komponente in Java geskryf is, JMS bied 'n maklike keuse vir die boodskap-stelsel. Dit is effektief skep van 'n boodskap bus of 'n argitektuur wat dit moontlik sal maak vir toekomstige stelsels te integreer met die huidige stelsel met min of geen veranderinge aan die boodskap infrastruktuur. Op hierdie manier kan die besigheid funksies van die aansoek maklik gebruik word deur ander aansoek die bank ontwikkel. Java komponente Kommunikasie met JMS JMS is bloot 'n spesifikasie en ons moet besluit op 'n JMS voldoen boodskap-stelsel. Ons het besluit om IBM MQSeries JMS gebruik omdat die bank is 'n IBM winkel, met behulp van WebSphere Application bedieners en baie ander IBM produkte. As gevolg hiervan, sal ons MQSeries gebruik aangesien ons het reeds 'n ondersteuning infrastruktuur in plek en 'n webwerf lisensie van die produk. Die volgende vraag is hoe om die MQSeries boodskap-stelsel aan te sluit met die selfstandige C Bydrae bediener en die TIBCO gebaseer Mark data en Analytics Engine bedieners. Ons moet 'n manier vir die MQSeries verbruikers om toegang tot die TIB boodskappe het. Maar hoe Miskien kan ons die boodskap Translator patroon gebruik om TIB boodskappe vertaal in MQSeries boodskappe. Hoewel die C kliënt vir MQSeries dien as 'n boodskap Translator. gebruik dit sou JMS bediener onafhanklikheid opoffer. En hoewel TIBCO het wel 'n Java API, die kliënt argitek en bestuurder het dit verwerp. As gevolg hiervan, die boodskap Translator benadering moet laat vaar word. Die brug van die TIB bediener na die MQSeries bediener vereis kommunikasie tussen C en Java. Ons kan CORBA gebruik, maar wat dan van die boodskap 'n nader kyk na die boodskap Translator patroon toon dit is verwant aan die Kanaal Adapter in sy gebruik van kommunikasie protokolle. Die hart van 'n kanaal Adapter is om nie-boodskappe stelsels aan te sluit op boodskapstelsels. 'N paar van kanaal adapters wat twee boodskapstelsels verbind is 'n Messaging brug. Die doel van 'n Messaging brug is om boodskappe oor te dra van een boodskap-stelsel na 'n ander. Dit is presies wat ons doen met die bykomende kompleksiteit van die intra-Java te C kommunikasie. Ons kan die kruis taal Boodskappe Bridge met behulp van 'n kombinasie van Channel Adapter s en CORBA implementeer. Ons sal bou twee ligte Channel Adapter bedieners, een in C besturende kommunikasie met die TIB, en een in Java besturende kommunikasie met JMS. Hierdie twee Channel Adapter. wat Boodskap eindpunt s hulself, sal met mekaar via CORBA kommunikeer. Soos ons keuse vir MQSeries, sal ons CORBA eerder as JNI gebruik aangesien dit 'n maatskappy standaard. Die boodskap brug implemente die doeltreffende gesimuleerde boodskap vertaling tussen oënskynlik onversoenbare boodskapstelsels en verskillende tale. Translator boodskap met behulp van Channel Adapters Die volgende diagram toon die huidige stelsel ontwerp, insluitend die Gateways en ander komponente. Dit is 'n goeie voorbeeld van patroon aansoek. Ons gekombineer twee Channel Adapter s met 'n nie-boodskappe protokol vir die boodskap Translator patroon te implementeer, doeltreffend deur middel van 'n voorbeeld te wees vir 'n ander patroon te implementeer. Daarbenewens het ons verander die kanaal Adapter se konteks twee boodskapstelsels skakel met 'n nie-boodskappe taal kruis vertaling protokol eerder as die koppeling van 'n boodskap-stelsel om 'n nie-boodskap-stelsel. Die huidige stelsel met die Kanaal Adapters Strukturering kanale 'n sleutel tot die werk met patrone is nie net om te weet wanneer om te gebruik wat patroon, maar ook hoe om die mees doeltreffende gebruik. Elke patroon implementering moet in ag neem die besonderhede van die tegnologie platform sowel as ander ontwerp kriteria. Hierdie afdeling geld dieselfde ontdekking proses om die mees doeltreffende gebruik van vind die Publiseer-Betaal Kanaal in die konteks van die mark data bediener kommunikasie met die ontleding enjin. Real-time mark data afkomstig van die mark data voed, 'n C-bediener wat data mark uitsendings op die TIB. Die mark data voer gebruik 'n aparte Publiceren-Betaal Channel vir elke band dit publiseer pryse vir. Dit kan 'n bietjie uiterste lyk aangesien elke nuwe band sy eie nuwe kanaal nodig het. Maar dit is nie so erg omdat jy nie werklik nodig het om kanale te skep in TIBCO. Inteendeel, is kanale verwys deur 'n hiërargiese stel onderwerp name genoem vakke. Die TIBCO bediener filters dan 'n enkele boodskap vloei deur onderwerp, stuur elke unieke onderhewig aan 'n enkele virtuele kanaal. Die gevolg hiervan is 'n baie ligte boodskap kanaal. Ons kan 'n stelsel wat publiseer op 'n paar kanale en intekenaars net vir pryse wat hulle is geïnteresseerd in kon luister skep. Dit sal intekenaars vereis om 'n boodskap Filter of selektiewe verbruikers gebruik om die hele data vloei vir interessante verband pryse te filtreer, besluit of elke boodskap moet verwerk soos dit ontvang. Gegewe dat die mark data on-band toegewyde kanale is gepubliseer, kan intekenaars vir updates op 'n reeks van effekte. Dit laat effektief intekenaars te filtreer deur selektief te teken op kanale en net ontvang updates van belang, eerder as die besluit na die boodskap ontvang. Dit is belangrik om daarop te let dat die gebruik van verskeie kanale te filter te vermy is 'n nie-standaard gebruik van messaging kanale. In die konteks van die TIBCO tegnologie egter, is ons regtig besluit of implementeer of eie filters of gebruik maak van die kanaal gefilter gebou in TIBCO - eerder as of soveel kanale te gebruik. Die volgende komponent wat ons nodig het om te ontwerp is die ontleding enjin, 'n ander C / TIB bediener wat die mark data sal verander en rebroadcast dit aan die TIB. Alhoewel dit buite die omvang van ons Java / JMS ontwikkeling, is ons werk nou saam met die C-span om dit te ontwerp omdat ons die analise enjins primêre kliënt. Die probleem op hande is om die kanaal struktuur wat die meeste effektief die nuwe gewysigde mark data rebroadcast vind. Aangesien ons reeds een toegewyde boodskap Kanaal per band geërf het uit die mark data prys voer, sou dit logies wees om die mark data verander en rebroadcast die gewysigde mark data op die band toegewyde boodskap Kanaal. Maar dit sal nie werk nie, aangesien die analise wysiging van die effekte pryse is handelaar spesifieke. As ons rebroadcast die gewysigde data op die band boodskap Kanaal. ons sal die data integriteit te vernietig deur die vervanging van generiese data mark met handelaar spesifieke data. Aan die ander kant, kan ons 'n ander boodskap tipe vir handelaar spesifieke mark data wat ons publiseer op dieselfde kanaal sodat intekenaars om te besluit watter boodskap wat hulle is geïnteresseerd in om te verhoed dat die data integriteit te vernietig het. Maar dan kliënte sal hê om hul eie filters te implementeer om te skei uit boodskappe vir ander handelaars. Daarbenewens is daar 'n aansienlike toename in boodskappe ontvang deur intekenaars, plaas 'n onnodige las op hulle. Daar is twee opsies: One Channel per Trader: Elke handelaar het 'n aangewese kanaal vir die gewysigde mark data. Op hierdie manier, die oorspronklike mark data bly ongeskonde en elke handelaar aansoek kan sy spesifieke handelaars boodskap Kanaal luister vir die gewysigde prys updates. One Channel per handelaar per Bond: Skep 'n boodskap Kanaal per handelaar per band uitsluitlik vir die gewysigde mark data van daardie band. Byvoorbeeld, sou die mark data vir band ABC gepubliseer word op kanaal Bond ABC terwyl die gewysigde mark data vir handelaar A op Message Channel Trader A, Bond ABC sal gepubliseer word, verander die mark data vir handelaar B op Trader B, Bond ABC, en so aan. Een kanaal per handelaar 'n kanaal per band per handelaar Daar is voordele en nadele aan elke benadering. Die per-band benadering, byvoorbeeld, gebruik 'n baie meer Message Channel. In die ergste geval scenario, sal die aantal boodskap Kanaal die aantal verbande in total vermenigvuldig met die aantal handelaars. Ons kan bogrense op die aantal kanale wat geskep sal word omdat ons weet dat daar slegs sowat 20 handelaars en hulle nooit die prys meer as 'n paar honderd effekte. Dit plaas die boonste perk onder die 10,000 reeks, wat nie so vreemd in vergelyking met die byna 100,000 boodskap Kanaal die mark data prys voer gebruik. Ook, omdat ons met behulp van die TIB en boodskap Kanaal is baie goedkoop, die aantal boodskap Kanaal s is nie 'n ernstige probleem. Aan die ander kant, kan die groot aantal Message Channel se 'n probleem vanuit 'n bestuursoogpunt wees. Elke keer as 'n band is 'n kanaal vir elke handelaar bygevoeg moet gehandhaaf word. Dit kan ernstige in 'n baie dinamiese stelsel. Ons stelsel is egter in wese statiese. Dit het ook 'n infrastruktuur vir outomaties besturende boodskap Kanaal s. Dit gekombineer met die geërf argitektuur van 'n nalatenskap komponent met behulp van 'n soortgelyke benadering verminder die negatiewe kant. Dit is nie te sê dat ons moet 'n onnodig oormatige aantal Message Channel se maak. Inteendeel, kan ons 'n argitektoniese benadering wat 'n groot aantal Message Channel se gebruik wanneer daar 'n rede te implementeer. En daar is 'n rede in hierdie geval dat af kom by die plek van logika. As ons die per handelaar benadering te implementeer, die Analytics Engine moet logika groep toevoer en afvoer kanale. Dit is omdat die insette kanale van die Analytics Engine is per band en die uitset boodskap Kanaal s per handelaar sou wees, die Analytics Engine vereis om roete al Analytics insette van verskeie effekte vir 'n spesifieke handelaar om 'n handelaar spesifieke uitset boodskap Kanaal. Dit blyk effektief die ontleding enjin in 'n inhoudgebaseerde Router te implementeer persoonlike routing logika vir ons aansoek. Na aanleiding van die boodskap Bus struktuur, die Analytics Engine is 'n generiese bediener wat gebruik kan word deur 'n paar ander stelsels in die. Sodat ons nie wil dit wolk, met groot stelsel spesifieke funksies. Aan die ander kant, die per-band benadering werk sedert die idee van 'n handelaar besit van die analise uitvoer van effektepryse is 'n maatskappy aanvaarde praktyk. Die per-band benadering hou die boodskap Kanaal skeiding van die mark data voed ongeskonde, terwyl die toevoeging van 'n paar meer Message Channel se. Voordat ons die kliënt te bereik, wil ons 'n inhoudgebaseerde Router om hierdie verskillende kanale te kombineer in 'n hanteerbare aantal kanale. Ons dont wil die kliënt aansoek wat uitgevoer word op die handelaars lessenaar te luister na duisende of tienduisende boodskap Kanaal s. Nou is die vraag word waar die inhoudgebaseerde Router sit. Ons kan eenvoudig nie die C / TIB Channel Adapter vorentoe al die boodskappe aan die pryse Gateway op 'n enkele boodskap Kanaal. Dit is sleg vir twee redes waarom ons sou wees verdeel die besigheid logika tussen C en Java, en ons sal die voordeel van die afsonderlike boodskap Kanaal s verloor op die TIB kant wat ons toelaat om die filter later in die data vloei te vermy. As ons kyk na ons Java komponente, kan ons óf plaas dit in die pryse Gateway of skep 'n tussenganger komponent tussen die pryse Gateway en die kliënt. In teorie, as ons die band gebaseer skeiding van Message Channel se volgehou al die pad na die kliënt, die pryse Gateway sal prysinligting met dieselfde kanaal struktuur as die pryse Gateway en Analytics Engine rebroadcast. Dit beteken 'n duplisering van al die band toegewyde TIB kanale in JMS. Selfs as ons 'n tussenganger komponent tussen die pryse Gateway en die kliënt te skep, sal die pryse Gateway nog al die kanale te dupliseer in JMS. Aan die ander kant, die implementering van logika direk in die pryse Gateway stel ons in staat om te verhoed dat duplisering van die groot aantal kanale in JMSallowing ons 'n baie kleiner aantal kanale te skep in die orde van een per handelaar. Die pryse Gateway registreer homself deur die C / TIB Channel Adapter as 'n verbruiker vir elke band van elke handelaar in die stelsel. Dan sal die pryse Gateway elke spesifieke kliënt stuur net die boodskappe wat verband hou met daardie spesifieke handelaar. Op hierdie manier, ons gebruik slegs 'n klein aantal Message Channel se op die JMS einde, terwyl die maksimalisering van die voordele van die skeiding van die TIB einde. As jy nog steeds op die terrein, stem jy in tot die gebruik van koekies op hierdie webwerf. Sien ons Gebruikers ooreenkoms en Privaatheidsbeleid. Slide gebruik koekies om te verbeter funksies en prestasie, en om jou te voorsien met relevante advertensies. As jy nog steeds op die terrein, stem jy in tot die gebruik van koekies op hierdie webwerf. Sien ons Privaatheidsklousule en Gebruikers ooreenkoms vir meer inligting. ).


No comments:

Post a Comment