PRIMERJAVA BORZNIH TRGOVALNIH INFORMACIJSKIH SISTEMOV BTS IN XETRA

Similar documents
Donosnost zavarovanj v omejeni izdaji

KAKO GA TVORIMO? Tvorimo ga tako, da glagol postavimo v preteklik (past simple): 1. GLAGOL BITI - WAS / WERE TRDILNA OBLIKA:

Navodila za uporabo čitalnika Heron TM D130

Navodila za uporabo tiskalnika Zebra S4M

EU NIS direktiva. Uroš Majcen

Razvoj poslovnih aplikacij za informacijski sistem SAP R3

PRESENT SIMPLE TENSE

Razvoj mobilne aplikacije za pomoč študentom pri organizaciji študija

Sistemi za podporo pri kliničnem odločanju

UNIVERZA V LJUBLJANI EKONOMSKA FAKULTETA MAGISTRSKO DELO BLAŽ DOBROVOLJC

Mobilna aplikacija za odčitavanje in ocenjevanje izdelkov

STATISTIKE LJUBLJANSKE BORZE APRIL 2018 LJUBLJANA STOCK EXCHANGE STATISTICS APRIL 2018

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE

RAZVOJ MOBILNE APLIKACIJE»OPRAVILKO«ZA MOBILNO PLATFORMO ios

KLJUČNI DEJAVNIKI USPEHA UVEDBE SISTEMA ERP V IZBRANEM PODJETJU

STATISTIKE LJUBLJANSKE BORZE MAREC 2017 LJUBLJANA STOCK EXCHANGE STATISTICS MARCH 2017

ALTA GROUP PREDAVANJE TRG DELNIC (TEORIJA) BINE PANGRŠIČ

Andrej Laharnar. Razvoj uporabniškega vmesnika oddelčnega proizvodnega informacijskega sistema za vodje izmen

Ogrodje mobilne aplikacije mfri

Podešavanje za eduroam ios

OCENJEVANJE SPLETNIH PREDSTAVITEV IZBRANIH UNIVERZ IN PISARN ZA MEDNARODNO SODELOVANJE

1. LETNIK 2. LETNIK 3. LETNIK 4. LETNIK Darinka Ambrož idr.: BRANJA 1 (nova ali stara izdaja)

NADGRADNJA INFORMACIJSKEGA SISTEMA NACIONALNEGA STORITVENEGA CENTRA CARINSKE UPRAVE

Intranet kot orodje interne komunikacije

OMREŽNA SKLADIŠČA PODATKOV (NAS)

Kontrolni sistem pospeševalnika delcev v okolju LabVIEW

Sistem za oddaljeni dostop do merilnih naprav Red Pitaya

ŠOLSKI CENTER ZA POŠTO, EKONOMIJO IN TELEKOMUNIKACIJE LJUBLJANA

POROČILO PRAKTIČNEGA IZOBRAŽEVANJA

PRENOVA SISTEMA OSEBNEGA KLICA Renovation of the Paging System

Eduroam O Eduroam servisu edu roam Uputstvo za podešavanje Eduroam konekcije NAPOMENA: Microsoft Windows XP Change advanced settings

Milan Nedovič. Metodologija trženja mobilnih aplikacij

NAČRTOVANJE IN STRATEGIJA SISTEMA ZA UPRAVLJANJE Z DIGITALNIMI IDENTITETAMI

CJENOVNIK KABLOVSKA TV DIGITALNA TV INTERNET USLUGE

VSŠ VIŠJA STROKOVNA ŠOLA MARIBOR

Družbeni mediji na spletu in kraja identitete

Biznis scenario: sekcije pk * id_sekcije * naziv. projekti pk * id_projekta * naziv ꓳ profesor fk * id_sekcije

DIPLOMSKO DELO INTRANET SODOBNO ORODJE INTERNE KOMUNIKACIJE

Sistem opazovanja, obveščanja in alarmiranja

Upravitelj opravil Task Manager

UPORABA IN STROŠKOVNA ANALIZA SISTEMA ZA UPRAVLJANJE SPLETNIH VSEBIN

UNIVERZA V LJUBLJANI EKONOMSKA FAKULTETA DIPLOMSKO DELO ANALIZA TRGA NEPREMIČNIN V SREDIŠČU LJUBLJANE

Javna naročila po Zakonu o javnih naročilih (ZJN-1-UPB1) (Uradni list RS, št. 36/04) Gradnje

NAČRTOVALSKI VZORCI ZA UPRAVLJANJE MATIČNIH PODATKOV

PRENOVA PROCESA REALIZACIJE KUPČEVIH NAROČIL V PODJETJU STEKLARNA ROGAŠKA d.d.

ISLANDIJA Reykjavik. Reykjavik University 2015/2016. Sandra Zec

Učinkovita tehnična nadgradnja SAP sistema Dušan Gatalo. 4/4/ IBM Corporation

72 prvo. STROKOVNE INFORMACIJE strokovne informacije. četrtletje

Tehnologiji RFID in NFC in njuna uporaba

UNIVERZA V LJUBLJANI EKONOMSKA FAKULTETA DIPLOMSKO DELO PRENOVA ERP SISTEMA V PODJETJU LITOSTROJ E.I.

UNIVERZA V LJUBLJANI EKONOMSKA FAKULTETA MAGISTRSKO DELO EVALVACIJA ORODIJ ZA AVTOMATSKO TESTIRANJE TELEKOMUNIKACIJSKE OPREME

Izgradnja podatkovnega centra

Izbrana poglavja iz sodobne teorije organizacije Klasična teorija organizacije

MESEČNE STATISTIKE LJUBLJANSKE BORZE OKTOBER 2008 Letnik XIV, št. 10/08

UNIVERZA V LJUBLJANI EKONOMSKA FAKULTETA DIPLOMSKO DELO ANALIZA JAVNIH PONUDB NA ZAGREBŠKI BORZI

MESEČNE STATISTIKE LJUBLJANSKE BORZE MAREC 2011 Letnik XVII, št. 03/11

MAGISTRSKO DELO UPORABA ''BENCHMARKINGA'' V GLOBALNI KORPORACIJI ZA ODLOČITEV O INVESTICIJI ZA ZAGOTAVLJANJE TRAJNOSTNEGA EKOLOŠKEGA RAZVOJA

vozni red / timetable 1 Vozni red letov velja Flight Timetable

Spletne ankete so res poceni?

ALI UPORABLJAŠ MAPO UČNIH DOSEŽKOV?

UNIVERZA V LJUBLJANI EKONOMSKA FAKULTETA DIPLOMSKO DELO NENSI URDIH

Mihael PETEK. Mentorica:

Zbirno poročilo za dobave blaga in storitev v druge države članice Skupnosti. za obdobje poročanja od do: leto: mesec: (obvezna izbira)

GO. (Primer iz prakse) Vloga: BPM, CEO, CIO, BA

KONCEPT INFORMACIJSKEGA SISTEMA ZA UPORABO NADGRAJENE RESNIČNOSTI IN BIM-a NA GRADBIŠČU

UPORABA PODATKOVNEGA RUDARJENJA PRI ODKRIVANJU NEZAŽELENE ELEKTRONSKE POŠTE

AMRES eduroam update, CAT alat za kreiranje instalera za korisničke uređaje. Marko Eremija Sastanak administratora, Beograd,

KORPORACIJSKO UPRAVLJANJE V SLOVENIJI: PREGLEDNOST POSLOVANJA JAVNIH GOSPODARSKIH DRUŽB

Igor Koselj

Elementi implementacije spletne trgovine

DELNIŠKI VZAJEMNI SKLAD MP-WATER.SI

Microsoft Courses Schedule February December 2017

TRAFFICDESIGN PARKIRNISISTEMI. Parkirni sistemi

SLOVENSKI GIMP-PORTAL

Krmilnik za morski akvarij

V šestem delu podajam zaključek glede na raziskavo, ki sem jo izvedel, teorijo in potrjujem svojo tezo.

Splošni pogoji poslovanja s predplačniško kartico z možnostjo polnitve Addiko

UNIVERZA V LJUBLJANI VREDNOTENJE SPLETNIH PREDSTAVITEV NA TEMO VZAJEMNIH SKLADOV

VPLIV TRGOVANJA Z EMISIJAMI NA POSLOVANJE LETALSKIH DRUŽB: PRIMER ADRIE AIRWAYS

Revizijsko poročilo Učinkovitost in uspešnost delovanja informacijskega sistema organa upravljanja

POGAJANJA V NABAVI V PODJETJU MERCATOR D.D.

BREZPLAČNA TELEFONSKA ŠTEVILKA 080 KOT TRŽNOKOMUNIKACIJSKO ORODJE: ŠTUDIJA PRIMERA MODRE ŠTEVILKE

UNIVERZA V NOVI GORICI POSLOVNO-TEHNIŠKA FAKULTETA. Diplomsko delo PREDLOGI ZA POSODOBITEV INFORMACIJSKEGA SISTEMA ZA VODENJE TRANSPORTA

VSE, KAR SO HOTELI, SO DOBILI

OPREDELJEVANJE CILJNIH TRGOV ZA BODOČE ZDRAVILIŠČE RIMSKE TOPLICE

OPTIMIRANJE SISTEMA VZDRŽEVANJA V PODJETJU STROJ d.o.o. S POUDARKOM NA VZDRŽEVANJU KLJUČNIH TEHNOLOGIJ

PODATKOVNA BAZA (Uporaba IKT pri poslovanju)

coop MDD Z VAROVANIMI OBMOČJI DO BOLJŠEGA UPRAVLJANJA EVROPSKE AMAZONKE

Uporaba HTML 5 in CSS3 v spletnih kvizih

UNIVERZA V LJUBLJANI FAKULTETA ZA DRUŽBENE VEDE

Razvoj informacijskega sistema Lisjak

Matija Lovrić VPELJAVA GEST Z MIŠKO IN NADGRADNJA FUNKCIONALNOSTI KLASIČNEGA UPORABNIŠKEGA VMESNIKA

Dr. Marjan Odar UVODNIK 3. Dušan Hartman NAJPOGOSTEJŠE POMANJKLJIVOSTI IN NAPAKE PRI IZDELAVI LETNEGA POROČILA 5

UNIVERZA V LJUBLJANI EKONOMSKA FAKULTETA DIPLOMSKO DELO VANJA KASTELIC

KONSTRUKTIVNI PRISTOP K NACRTOV ANJU OSEBNE KARIERE

Port Community System

REVIDIRANO LETNO POROČILO DRUŽBE MEDVEŠEK PUŠNIK BORZNO POSREDNIŠKA HIŠA D.D. LJUBLJANA IN SKUPINE MEDVEŠEK PUŠNIK ZA LETO 2008

Univerza na Primorskem/University of Primorska Fakulteta za humanistične študije/faculty of Humanities

UNIVERZA V LJUBLJANI FAKULTETA ZA DRUŽBENE VEDE. Tina Häuschen Poker med stereotipi in teorijo Diplomsko delo

STORITVE IZOBRAŽEVALNE IN RAZISKOVALNE MREŽE ZA SREDNJE ŠOLE

Transcription:

UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Gregor Malenšek PRIMERJAVA BORZNIH TRGOVALNIH INFORMACIJSKIH SISTEMOV BTS IN XETRA DIPLOMSKO DELO UNIVERZITETNI ŠTUDIJSKI PROGRAM PRVE STOPNJE RAČUNALNIŠTVO IN INFORMATIKA Mentor: doc. dr. Rok Rupnik Ljubljana, 2011

Rezultati diplomskega dela so intelektualna lastnina Fakultete za računalništvo in informatiko Univerze v Ljubljani. Za objavljanje ali izkoriščanje rezultatov diplomskega dela je potrebno pisno soglasje Fakultete za računalništvo in informatiko ter mentorja. Besedilo je oblikovano z urejevalnikom besedil Microsoft Word.

IZJAVA O AVTORSTVU diplomskega dela Spodaj podpisani Gregor Malenšek, z vpisno številko 24011682, sem avtor diplomskega dela z naslovom: Primerjava borznih trgovalnih sistemov BTS in Xetra S svojim podpisom zagotavljam, da: sem diplomsko delo izdelal samostojno pod mentorstvom doc. dr. Roka Rupnika so elektronska oblika diplomskega dela, naslov (slov., angl.), povzetek (slov., angl.) ter ključne besede (slov., angl.) identični s tiskano obliko diplomskega dela soglašam z javno objavo elektronske oblike diplomskega dela v zbirki»dela FRI«. V Ljubljani, dne 14.10.2011 Podpis avtorja:

Zahvala Zahvaljujem se svojemu mentorju, doc. dr. Roku Rupniku, za strokovno pomoč in nasvete pri izdelavi diplomske naloge. Posebna zahvala je namenjena vsem domačim za podporo in spodbudo skozi celoten študij.

Kazalo Povzetek... 1 Abstract... 2 1 Uvod... 3 1.1 Trgovanje na moderni elektronski borzi... 3 1.2 Borzni trgovalni sistem... 3 1.3 Namen diplomske naloge... 4 2 Sistem BTS... 5 3 Sistem Xetra... 7 4 Prilagodljivost... 10 4.1 BTS... 10 4.1.1 Različice izvorne kode... 10 4.1.2 Kdaj je čas za nadgradnjo?... 10 4.1.3 Povezava na druge sisteme... 10 4.1.4 Lokalizacija... 11 4.1.5 Dodatna poročila... 11 4.2 Xetra... 12 5 Povezljivost... 13 5.1 BTS... 13 5.1.1 Spletne storitve... 13 5.1.2 FIX protokol... 14 5.2 Xetra... 17 5.2.1 Values API... 17 5.2.2 Datoteke... 19 6 Razpoložljivost... 20 6.1 BTS... 20 6.1.1 Enojni strežnik... 20 6.1.2 Replikacija podatkov... 21 6.1.3 Gruča (cluster)... 21 6.1.4 Rezervna lokacija... 22 6.1.5 Vzdrževanje... 22 6.1.6 Spremljanje (monitoring)... 23 6.2 Xetra... 23 6.2.1 Vzdrževanje... 25

6.2.2 Spremljanje... 25 6.3 Razpoložljivost v praksi... 25 7 Sklepne ugotovitve... 27 Kazalo slik... 28 Literatura in viri... 29

Seznam uporabljenih kratic API (angl. Application Programming Interface) aplikacijski programski vmesnik CSD (angl. Central Securities Depository) centralni depozitorij vrednostnih papirjev FIX (angl. Financial Information exchange) protokol za izmenjavo finančnih podatkov GDI (angl. Graphics Device Interface) Windows vmesnik za prikaz na ekran HTML (angl. HyperText Markup Language) označevalni jezik za razvoj spletnih strani MISS (angl. Member Integration System Server) komunikacijski strežnik v sistemu Xetra SQL (angl. Structured Query Language) strukturiran povpraševalni jezik za pisanje poizvedb SVN (angl. Subversion) sistem za hranjenje vseh verzij različnih datotek VPN (ang. Virtual Private Network) simulacija privatne linije s kodiranjem podatkov v javnem omrežju internetu. XML (angl. Extensible Markup Language) jezik za grajenje strukturiranih dokumentov W3C (angl. World Wide Web Consortium) mednarodna organizacija za spletne standarde

1 Povzetek Namen diplomskega dela je primerjava borznih trgovalnih informacijskih sistemov BTS in Xetra po tehničnih kriterijih: Prilagodljivost Povezljivost z drugimi sistemi Razpoložljivost BTS je sistem za manjše borze. Razvoj in prva namestitev sta bila opravljena v Sloveniji, kasneje je bil prodan v več drugih držav. Teče na PC strežnikih in operacijskem sistemu Windows Server. V funkcionalnosti in hitrosti procesiranja ne dosega Xetre, je pa bistveno bolj fleksibilen, njegovi vmesniki so enostavnejši za uporabo, v določenih konfiguracijah celo dosega boljšo razpoložljivost. Xetra je sistem za velike borze. Razvit je bil v Nemčiji. Teče v gruči mainframe računalnikov znotraj dveh procesnih centrov v bližini Frankfurta. V teh dveh centrih se odvija procesiranje v oblaku za več evropskih borz. Posamezne borze so povezane s centroma z optičnimi linijami in same skrbijo le za delovanje odjemalcev. Strežniški del uporabljajo kot storitev in zanj plačujejo mesečno najemnino. Xetra je manj prilagodljiva kot BTS, njeni vmesniki so togi, vendar zaradi števila uporabnikov predstavljajo standard. Za razpoložljivost je načeloma dobro poskrbljeno, vendar zaradi večje kompleksnosti in oddaljenosti končnih uporabnikov lahko pride do težav, ki jih je težje odpraviti kot pri enostavnejšem sistemu BTS. Ključne besede: Borzni trgovali sistem, BTS, Xetra, Prilagodljivost, Povezljivost, Razpoložljivost

2 Abstract Purpose of this thesis is a comparison of stock exchange trading information systems BTS and Xetra based on technical criteria: Flexibility Connectivity with other systems Availability BTS is a trading system for smaller exchanges. Development and first installation were carried out in Slovenia, and later it was sold to several other countries. It is running on PC servers using Windows Server operating system. While the functionality and processing speed do not reach Xetra, it is significantly more flexible, its interfaces are easier to use and in some configurations it can achieve better availability than Xetra. Xetra is a system for large exchanges. It was developed in Germany and there are also located two processing centers, where Xetra is running on a cluster of mainframe computers. In these two centers, cloud computing takes place for several European exchanges. Individual exchanges are connected with the centers with optical lines and their IT staff only takes care for the equipment of their clients. Server part is used as a service and they only need to pay a monthly fee. Xetra is less flexible than BTS, its interfaces are awkward but represent a standard because a number of users. Availability is principally well designed, but due to greater complexity and remoteness of end users the problems may occur. The problems are harder to resolve than on a simpler BTS system. Key words: Stock exchange trading system, BTS, Xetra, Flexibility, Connectivity, Availability

3 1 Uvod 1.1 Trgovanje na moderni elektronski borzi Borza je kraj, kjer se srečujejo kupci in prodajalci določenih dobrin ter sklepajo posle po vnaprej znanih pravilih. Naloga borze je zagotavljanje varnih in poštenih pogojev za trgovanje. V preteklosti so bile borze dobesedno tržnice, kamor so ljudje pripeljali dobrine (živino, pridelke) in z njimi trgovali. Kasneje so te pridelke zamenjali vrednostni papirji, s katerimi pa so borzni posredniki še vedno fizično prihajali na borzo in jih ob sklenjenem poslu tudi izmenjali. Danes se na praktično vseh borzah po svetu trguje elektronsko. Borzni posredniki več ne prihajajo na borzo, ampak se nanjo priklapljajo iz svojih pisarn preko računalnikov. Vrednostni papirji niso več natisnjeni na papirju, ampak se nahajajo na elektronskem računu v centralnem registru. Ob uspešno sklenjenem poslu na borzi, si kupec in prodajalec izmenjata elektronski denar (preko bančnega sistema) in elektronske vrednostne papirje (preko informacijskega sistema v centralnem registru). 1.2 Borzni trgovalni sistem Borzni trgovalni sistem je informacijski sistem, na katerem teče simulacija ročnega trgovanja, seveda ob bistveno hitrejšem izvajanju in natančni kontroli predpisanih pravil. Borzni posrednik, ki želi kupiti ali prodati določen vrednostni papir, najprej preveri po kakšni ceni se v tistem trenutku trguje na trgu. Nato vnese svoje nakupno oz. prodajno naročilo za določeno količino papirjev in po izbrani ceni. V kolikor se na drugi strani trga pojavi protinaročilo z enako ali boljšo ceno, se sklene posel. Če take priložnosti ni, naročilo ostane na trgu. Posrednik se potem lahko odloči, da bo čakal, popravil svojo ceno ali naročilo umaknil. Osnovna logika trgovanja je torej enostavna, zato so tudi osnovni ekrani vseh borznih sistemov podobni. Slika na naslednji strani prikazuje primer takega ekrana: V zgornjem delu je seznam vseh vrednostnih papirjev z osnovnimi informacijami o trgovanju, kot so trenutna najboljša ponudba, najboljše povpraševanje in cena zadnjega sklenjenega posla V sredini so podatki o vseh odprtih ponudbah in povpraševanjih za izbrani papir. Spodaj so izpisana sporočila sistema. Bistvene razlike med sistemi pa se pojavijo z večanjem števila uporabnikov. Na velikih borzah naenkrat trguje nekaj 100 borznih posrednikov, zato se stanje na trgu lahko zelo hitro spreminja. Nekateri posredniki si pomagajo s programi za trgovanje, kar še povečuje število transakcij. Ker dobra priložnosti nikoli ne čaka dolgo, je zelo pomembno, da so odzivni časi sistema čim krajši (običajno pod 2 sekundi) in da se zahtevki obdelujejo v istem vrstnem redu, kot so sprejeti.

4 Slika 1.1: Tipičen trgovalni ekran Z večanjem števila udeležencev se tudi povečuje število poizkusov manipulacije cen (npr. dogovorjeno trgovanje med povezanimi osebami) ali prekomernih tveganj (npr. prodaje papirjev, ki jih prodajalec še nima). Dober trgovalni sistem mora med samim trgovanjem prepoznati čim več škodljivih aktivnosti in jih preprečiti oz. o njih obvestiti nadzor trgovanja. Na tehnološkem nivoju so trgovalni sistemi kombinacija klasičnih poslovnih aplikacij in sistemov v realnem času, kar jih dela nekoliko bolj zahtevne, obenem pa tudi bolj zanimive za programiranje. 1.3 Namen diplomske naloge Namen diplomske naloge je tehnološka primerjava dveh borznih trgovalnih sistemov. Izbrali smo sistem BTS, ki je tipičen predstavnik sistemov za manjše borze in sistem Xetra, ki poganja nekaj največjih svetovnih borz. Prvi teče na PC strežnikih, drugi v oblaku mainframe računalnikov. Sistema smo primerjali po kriterijih: Prilagodljivost Povezljivost z drugimi sistemi Razpoložljivost Kjer je bilo možno, smo tudi podali mnenje o poslovni upravičenosti ene ali druge rešitve.

5 2 Sistem BTS BTS je trgovalni sistem, ki je bil razvit v Sloveniji. Prva različica je bila predana v uporabo leta 1999 na Ljubljanski borzi. Sistem se je od tedaj ves čas razvijal dalje in prodajal novih strankam. Danes deluje na 8 borzah na različnih koncih sveta. Sistem se prodaja kot paket programov, pripadajoče dokumentacije in izvorne kode. Stranka namesti sistem na lastne strežnike, sama skrbi za njegovo delovanje in se na proizvajalca obrne le v primeru večjih tehničnih težav ali razvoja novih funkcionalnosti. Kranj (rezervna lokacija) Ljubljana Banja Luka Sarajevo Podgorica Skopje 1 Skopje 2 (rezervna lokacija) Slika 2.1: BTS teče na lokacijah posameznih borz Sistem je bil razvit z Microsoftovimi razvojnimi orodji. Prvotno je bil v celoti napisan v jeziku C++, kasneje so se performančno manj zahtevni deli prepisali v C# zaradi lažjega vzdrževanja. Teče na operacijskem sistemu Windows Server in uporablja bazo podatkov SQL Server. Ta kombinacija se je izkazala kot nezahtevna za vzdrževanje, administratorje je možno najti celo v deželah tretjega sveta. Pri testiranju zmogljivosti se je BTS izkazal za dovolj zmogljivega za regionalne borze. V dobri uri brez težav izvedel 100.000 transakcij, ker je približno 10x več od rekordnega dnevnega prometa na Ljubljanski borzi. Na velikih borzah se lahko dnevno sklene tudi preko milijona poslov, zato taka tehnologija zanje ni primerna. Pa tudi če bi bila, velike borze svojih strateško pomembnih sistemov ne kupujejo na trgu.

6 Arhitektura sistema BTS je 4-nivojska: Slika 2.2: Arhitektura sistema BTS Na podatkovnem nivoju se uporablja baza Microsoft SQL Server. Za zagotavljanje redundančne kopije podatkov je priporočena uporaba replikacije baze. Poslovna logika vsebuje implementacijo vseh borznih trgovalnih pravil. Implementirana je kot Windows servis. Zaradi hitrejšega delovanja drži kopijo delovnih podatkov ves čas v pomnilniku in bazo uporablja predvsem kot dnevnik. Zaradi zagotavljanja vrstnega reda obdelave zahtevkov lahko naenkrat teče le ena instanca poslovne logike, druga instanca čaka v pripravljenosti in lahko v nekaj sekundah prevzame funkcijo prve. Komunikacijski strežniki imajo nalogo avtentikacije uporabnikov, avtorizacije njihovih zahtevkov in zagotavljanja varnosti komunikacije z enkripcijo podatkov. Delujejo lahko v farmi s skupnim IP naslovom in si med seboj porazdeljujejo promet. Na predstavitvenem nivoju imajo uporabniki na voljo klasično Windows aplikacijo, ki se odlikuje po hitrosti delovanja (napisana je v C++), nekoliko enostavnejši spletni vmesnik ali razvoj lastnega odjemalca s pomočjo priložene komunikacijske knjižnice. V produkciji stranke uporabljajo med 3 in 6 strežnike, odvisno od zahtev po odzivnosti in razpoložljivosti. Testno okolje je možno postaviti na enem samem strežniku, ki je lahko tudi virtualni.

7 3 Sistem Xetra Xetra je trgovalni sistem Frankfurtske borze. Razvoj prve verzije je bil zaključen leta 1997. Od takrat naprej se približno enkrat na leto izda nova verzija, trenutno je to Rel. 12. V začetku je bil sistem namenjen samo potrebam Frankfurtske borze, kasneje pa so na njem začele trgovati tudi druge borze. Sistem je povsem centraliziran vsi transakcije se odvijajo v dveh računalniških centrih v bližini Frankfurta (primarna in rezervna lokacija), posamezne borze imajo pri sebi nameščene le komunikacijske strežnike, ki posredujejo zahtevke strank preko najetih optičnih linij proti Frankfurtu. Slika 3.1: Xetra teče v oblaku Xetra je tipičen primer procesiranja v oblaku. Posamezne borze niso lastnice sistema in opreme v procesnih centrih v Frankfurtu. Pravzaprav niti točno ne vedo, na kakšnem hardveru teče njihovo poslovanje. Po pogodbi imajo zagotovljeno določeno hitrost procesiranja, razpoložljivost in dostop do klicnega centra.

8 Slika 3.2: Arhitektura sistema Xetra Arhitektura sistema Xetra je 4-nivojska: Nivo poslovne logike sestavlja gruča mainframe računalnikov na dveh lokacijah. Procese je možno seliti med člani gruče, zato se število računalnikov po potrebi povečuje ali zmanjšuje. Vsaka borza ima dve vstopni točki, ki sta fizično predstavljena kot dva strežnika. Delujeta v gruči in eden lahko prevzame funkcijo drugega. Z obema procesnima centroma sta povezana preko dveh zakupljenih optičnih povezav. Poleg običajnih opravil komunikacijskih strežnikov, ta dva tudi prevzemata vse pripravljene datoteke in jih zadržujeta na lastnih diskih, dokler jih borzni posredniki ne prevzamejo. Na lokaciji vsake borzno posredniške hiše se nahaja eden ali več komunikacijskih strežnikov. Preko dveh dveh povezav so ti strežniki povezani z obema vstopnima točkama na borzi. Povezave v tem primeru niso več nujno zakupljene, lahko se uporabi tudi VPN ali klicna linija. Komunikacijski strežniki na lokaciji odjemalca prinašajo eno pomembno prednost v primeru velikega števila odjemalcev se podatki iz borze prenesejo samo enkrat in šele na lokalnem omrežju razpošilja vsakemu

odjemalcu. Slabost pa je seveda konfiguracija in vzdrževanje takih strežnikov na lokaciji strank. Na predstavitvenem nivoju Xetra ponuja klasično namizno aplikacijo, napisano delno v jeziku C (komunikacijska knjižnica) in delno v Javi (grafični vmesnik). Aplikacija deluje na operacijskih sistemih Windows in Solaris. Druga možnost je uporaba komunikacijske knjižnice in razvoj lastnega sistema. Predvsem pri večjih borzno posredniških hišah se praviloma uporabljajo lastni sistemi, ki omogočajo izvajanje natančnih politik investiranja ali celo avtomatsko trgovanje. 9

10 4 Prilagodljivost Prilagodljivost je možnost prilagajanja sistema zahtevam naročnika zaradi razlik v zakonodaji, drugačnega načina uporabe ali enostavno prijaznosti do končnih uporabnikov. Nekaj tipičnih zahtev naročnika je: V naši državi smo imeli veliko inflacijo, zato omogočite vnos cen z več ciframi Pri nas ne želimo dovoliti spremembe naročila prej kot 1 minuto po vnosu Sedaj smo dobro stestirali sistem in ne želimo ničesar menjati naslednji 2 leti Naša vlada je po hitrem postopku spremenila zakon. Imamo časa 14 dni, da prilagodimo trgovalna pravila. Naša vlada se boji, da bi tujci pokupili vsa podjetja. Sistem mora preprečiti nakup tujcem, ko njihov delež preseže 25% Naši uporabniki slabo razumejo angleško, želimo grafični vmesnik v Portugalščini Želimo dodatna poročila za nadzor trgovanja Vse zgornje zahteve so s stališča posamezne stranke smiselne, vendar pride do težav, kadar več strank uporablja isto različico sistema in pošlje izključujoče zahteve. 4.1 BTS 4.1.1 Različice izvorne kode Izvorna koda sistema BTS je shranjena v repozitoriju SVN. Praviloma se razvija zadnja različica in ko je le-ta stestirana, se izvorno kodo v SVN prekopira v svojo vejo. Pri dodajanju novih funkcionalnosti, ki so smiselne samo za nekatere stranke je obvezna parametrizacija. Če administrator določeno funkcijo vklopi, se pojavi v sistemu, sicer ne. V nekaterih primerih pa stranke zahtevajo funkcije, ki bi bistveno zakomplicirale ali upočasnile sistem in niso koristne za druge uporabnike. V tem primeru se modifikacija izvede samo na njeni kopiji izvorne kode in se nikoli ne pojavi v skupni različici. 4.1.2 Kdaj je čas za nadgradnjo? Borze so finančne institucije, ki materialno in kazensko odgovarjajo za pravilno obdelavo podatkov. Zaradi tega so zelo konzervativne in nikakor ne želijo uvajati nove različice sistema, če ni nujno potrebno. V okviru sistema BTS imajo možnost, da nekaj let ostanejo na isti različici, za katero se izvorna koda vodi ločeno. Ponavadi nadgradijo sistem šele, ko se pojavi zares mamljiva nova funkcionalnost ali ko jih prisili zakonodaja. 4.1.3 Povezava na druge sisteme Zahteva stranke, da bi BTS preprečil tujcem nakup preko 25% podjetja, je tehnično izvedljiva z vpogledom v CSD sistem, ki teče znotraj centralne klirinško depotne družbe. Ker zahteva po hitrosti in skoraj 100% razpoložljivosti ne gre skupaj s klicanjem drugega sistema med izvedbo vsake transakcije, je bilo potrebno razviti vmesni program, ki hodi po zahtevane podatke in z njimi ves čas osvežuje lokalno kopijo baze. Vsa sinhronizacija z zunanjim

11 sistemom je izolirana v posebnem programu, zato se je glavni sistem le malo spremenil in je bilo možno spremembo obdržati v glavni veji izvorne kode. 4.1.4 Lokalizacija Večina zahodnih borznih posrednikov dobro govori angleško, ni pa to pravilo po vsem svetu. V nekaterih državah tudi zaradi političnih razlogov ne želijo gledati angleščine na ekranih. Pri razvoju odjemalcev sistema BTS je bilo uporabljeno Unicode kodiranje znakov, poleg tega so vsi opisi shranjeni v ločenih resource datotekah. Nekaj večji izziv je predstavljala lokalizacija v arabščino, ker je bilo potrebno zaradi pisanja z desne proti levi prezrcaliti cel grafični vmesnik. Večino dela je opravil kar Windows GDI z upoštevanjem stila WS_EX_LAYOUTRTL. Nekaj hroščev je bilo vseeno potrebno odpraviti. 4.1.5 Dodatna poročila Slika 4.1: BTS trgovalna postaja je prevedena v več jezikov Poročila so poglavje, ki se nikoli povsem ne zapre. BTS ima zato vse poizvedbe in poročila implementirane v ločeni spletni aplikaciji. Odzivni časi pri poročilih niso bistveni, pomembna je enostavnost spreminjanja. Najpomembnejše pa je, se s prilagajanjem poročil ne destabilizira centralni del trgovalnega sistema.

4.2 Xetra Na produkcijski opremi je vedno nameščena le ena različica Xetre in stranke nimajo možnosti izbire, kdaj bodo ali ne bodo nadgradile sistema. Nove različice se razvijajo po točno določenem planu. Nekaj tednov pred uvedbo nove različice v produkcijo je le ta na voljo na testnem sistemu. Stranke imajo možnost zahtevati dodatne funkcionalnosti v novih različicah Xetre, vendar končno odločitev o implementaciji sprejme razvojna ekipa. Je pa potrebno priznati, da tudi brez modifikacij Xetra ponuja veliko več funkcionalnosti kot BTS. Velika ekipa analitikov je analizirala vse največje svetovne trge in vpeljala veliko smiselnih funkcij. Grafični vmesnik se ne lokalizira. Edina verzija je angleška in še ta se le minimalno razvija. Lastniki Xetre želijo, da bi postali najpomembnejši svetovni center za izvedbo trgovanja, zato dajejo prednost hitrosti procesiranja in jasnim vmesnikom, stranke pa naj bi si svoje odjemalce, poročila ali dodatne obdelave razvijale same oz. kupovale le te od tretjih oseb. Za razvoj odjemalcev ali povezanih sistemov si lahko razvijalec najame dostop do testnega sistema in tehnične podpore. Mesečni znesek najemnine ni majhen. Tudi za delovanje testnega sistema je vnaprej objavljen urnik, kjer je navedeno ob katerih dnevih od katere do katere ure bo deloval. Faze predtrgovanja, trgovanja, priprave datotek in ugašanja sistema se izvajajo enako, kot na produkciji. Za razvijalce povezanih sistemov je tak način dela nekoliko zamuden namesto da bi v primeru težav resetiral sistem ali ga pustil prižganega še malo dlje, je bilo večkrat potrebno prekiniti delo in nadaljevati naslednji dan. 12

13 5 Povezljivost Poleg osnovne trgovalne postaje oba sistema ponujata tudi različne elektronske vmesnike za vnos zahtevkov in sprejem borznih podatkov. Elektronski vmesniki se uporabljajo v dva namena: Zajem podatkov in prikaz na alternativnem mediju. V to kategorijo spadajo veliki LED prikazovalniki, finančne internetne strani, časopisi in profesionalni posredniki informacij (npr. Reuters ali Bloomberg). Podatki se pobirajo v intervalih, zakasnitev nekaj minut ni kritična, pomemben je poceni dostop (preko interneta) in enostaven razvoj odjemalca. Posredovanje naročil direktno v borzni sistem. Donedavnega so borzni posredniki sprejemali naročila stranke preko telefona in jih ročno vtipkavali borzni sistem. V zadnjem času večina posrednikov omogoča strankam vpogled v podatke in oddajo naročil preko interneta, njihov sistem pa preko elektronskega vmesnika posreduje zahtevke naprej na borzo. V tem primeru je hitrost in zanesljivost vmesnika bistveno bolj pomembna. 5.1 BTS 5.1.1 Spletne storitve Spletne storitve sistema BTS so vmesnik za branje borznih podatkov. Napisane so v jeziku C# in uporabljajo najbolj osnovne tipe, da bi bile čim bolj dosegljive široki množici programerjev. Ker je možno preko spletnih storitev zahtevati podatke za več mesecev nazaj, bi velike poizvedbe lahko upočasnile delovanje trgovalnega sistema. Da do tega ne pride, spletne storitve nimajo dostopa do primarne trgovalne baze, ampak do njene replike. Vsi uporabniki spletnih storitev se morajo najprej prijaviti z veljavnim uporabniškim imenom in geslom. Po uspešnem klicu metode Login dobijo piškotek, s pomočjo katerega lahko potem kličejo vse ostale metode. Parametre v zahtevku in podatke v odgovoru preveri poslovna logika, ki je zadolžena za avtorizacijo in po potrebi zahtevek zavrne ali odfiltrira določen del podatkov. Slika 5.1: Klic BTS spletne storitve

14 Vsebinsko so metode organizirane v tri sklope: PublicTradingData seznam aktivnih vrednostnih papirjev, borznih posrednikov, javni podatki o sklenjenih poslih (čas, količina, cena) in uradna tečajnica konec dneva. MemberTradingData seznam lastnih odprtih in strgovanih naročil, posli z vsemi privatnimi podatki (številka računa stranke, provizija), denarne obveznosti in terjatve SurveillanceTradingData dodatne poizvedbe za nadzor trgovanja, npr. iskanje trgovanja v ciklih, poizkusi manipulacij tik pred odpiranjem ali zapiranjem trga, stanje na trgu ob določenem času. Posamezni sklopi so dosegljivi samo določenim uporabnikom. 5.1.2 FIX protokol FIX (Financial Information exchange) je protokol za izmenjavo finančnih informacij. Specifikacija protokola je v javna (objavljena na spletni strani www.fixprotocol.org) in dovoljuje brezplačno implementacijo v svojih produktih. Protokol vzdržuje organizacija FIX Protocol Ltd, ki deluje na osnovi prispevkov članov. Včlani se lahko vsak. S plačilom članarine dobi podjetje ali posameznik pravico do predlaganja izboljšav v naslednjih verzijah standarda. Ta mehanizem zaenkrat dobro deluje in število uporabnikov FIX protokola strmo raste. FIX sporočila so sestavljena iz: Glave (header) - nosi informacije o tipu sporočila, zaporedni številki, pošiljatelju, prejemniku, kodiranju Telesa (body) podatki Zaključka (trailer) kontrolna vsota, digitalni podpis Primer FIX sporočila za zahtevek»kupim 10 delnic KRKG po ceni 100«: 8=FIX.4.4 9=143 35=D 49=Broker1 56=LJSE 34=4 52=20080410-21:54:22.619 11=ID3712 1=C1234 55=KRKG 54=1 60=20080410-21:53:19.322 38=10 40=2 44=100 59=0 10=181 Glava: 8 = BeginString (verzija FIX protokola) 9 = BodyLength 35 = MsgType (D = NewOrderSingle) 49 = SenderCompID 56 = TargetCompID 34 = MsgSeqNum (4) 52 = SendTime

15 Telo: 11 = Client Order ID 55 = Symbol (KRKG) 1 = Account (type + number) 54 = Side (Buy) 60 = Transact Time 38 = Order Qty 40 = Order Type (limit) 44 = Price 59 = Time In Force (daily) Zaključek: 10 = Checksum BTS podpira vsa FIX 4.4 sporočila na nivoju seje: Logon Hartbeat Test Request Resend Request Reject Sequence Reset Logout In naslednja sporočila na aplikacijskem nivoju: New Order Single vnos novega naročila Execution Report potrditev sprejema ali izvršitve naročila Order Cancel preklic naročila Order Cancel / Replace sprememba naročila Order Status status naročila Market Data podatki o stanju na trgu Security List seznam vrednostnih papirjev Security Status status vrednostnih papirjev Trading Session Status stanje trga Trade Capture posli Posameznih tipov FIX sporočil na tem mestu ne bomo opisovali, ker obstaja na spletni strani http://fixprotocol.org/fiximate3.0 odlično brezplačno orodje za pregledovanje strukture sporočil.

16 Slika 5.2: Orodje FIXimate za prikaz strukture FIX sporočil Uporabniki sistema BTS dobijo v brezplačno uporabo FIX knjižnico (implementacija komunikacijskega kanala preko SSL in parserja FIX sporočil), ter demo odjemalca z izvorno kodo. S tem odjemalcem lahko programerji v primeru dvoma preizkusijo delovanje BTS implementacije FIX protokola, ali pa ga uporabijo kot osnovo za svoj nadaljnji razvoj. Slika 5.3: FIX demonstracijski odjemalec

17 5.2 Xetra 5.2.1 Values API Values API je Xetrina komunikacijska knjižnica, nad katero je zgrajen njihov uradni odjemalec, možno pa jo je tudi uporabiti za razvoj lastnih aplikacij. Knjižnica je napisana jeziku C in je prenosljiva med sistemoma Windows in Solaris. Za razvijalce jo distribuirajo v obliki.h in.lib datotek. Zaradi zagotavljanja združljivosti s predhodnimi verzijami zasnove knjižnice niso veliko spreminjali, zato je programiranje z njo nekoliko okorno in spominja na razvoj programov v 90-ih letih. Vsa komunikacija poteka preko asinhronih klicev. Uporabnik napolni določeno C strukturo s parametri, pokliče funkcijo v knjižnici in čaka na sprejem odgovora. Vseh funkcij je v vmesniku samo sedem: VCI_Connect, VCI_Disconnect priklop in odklop iz komunikacijskega strežnika VCI_Login, VCI_Logout prijava in odjava VCI_Subscribe, VCI_Unsubscribe naročanje in preklic naročila na določene tipe obvestil iz borze VCI_Submit ključna funkcija vmesnika za pošiljanje zahtevka na borzo. Za vsak tip zahtevka je predpisana določena struktura v jeziku C. V zadnji različici sistema je teh struktur že preko 80. Posamezna polja so večinoma tipa char[n], kar pomeni, da mora programer brez podpore prevajalnika pravilno nastaviti parametre. VCI_Dispatch funkcija za sprejem naslednjega odgovora ali obvestila iz čakalne vrste. En nivo nižje, na transportu po mreži, se podatki delijo na javne in privatne, ter ponovljive in neponovljive. Ponovljivi paketi se shranjujejo na komunikacijskih strežnikih in je možno zahtevati njihovo ponovno pošiljanje v primeru prekinitve linije. Odjemalec enostavno sporoči strežniku prvo in zadnjo zaporedno številko in strežnik mu jih ponovno pošlje. Ponavljanje je omejeno znotraj enega dneva. Po koncu dneva se logi zbrišejo. Primer ponovljivega paketa je potrditev sklenjenega posla. Neponovljivi paketi potujejo direktno po žici brez vmesnega shranjevanja, zato je njihova dostava hitrejša in manj obremenjujoča za komunikacijske strežnike. Za dostavo javnih neponovljivih paketov Xetra uporablja UDP multicast protokol, za privatne neponovljive pa TCP protokol. Primer neponovljivega paketa je trenutno stanje na trgu. V kolikor odjemalec paket izpusti, nebi imelo nobenega smisla zahtevati ponovnega prenosa, ker se v naslednjem trenutku že razpošilja novo stanje.

18 Xetra pozna 14 različnih tipov podatkovnih tokov, na katere se lahko odjemalec selektivno naroča s pomočjo funkcij VCI_Subscribe in VCI_Unsubscribe: Ime podatkovnega toka Inside Market State Change News Order Execution All Order Execution Trade Confirmation Ticker All Trade Prices Opis Podatki o najboljši ponudbi in povpraševanju ter ceni zadnjega sklenjenega posla Spremembe stanja papirja na trgu (trguje, ne trguje, predtrgovanje, zaključna avkcija, zadržan) Novice z borze Potrditve sprejema in izvedbe»persistent«naročil Potrditve sprejema in izvedbe vseh naročil Privaten Ponovljiv Potrditev sklenjenih poslov Da Da Zadnje cene poslov Obveščanje o sklenjenih poslih (nekaj več informacij kot v podatkovnem toku Ticker) OTC Information Sklenjeni posli izven uradnega trga (OTC = over the counter) Quote Execution Quote Request DS/LM Quote Request Issuer Specific Information Specialist Specific Information Informacija o vnosu/spremembi/umiku naročila vzdrževalca likvidnosti Informacija o trenutni nakupni in prodajni ceni vzdrževalca likvidnosti Posredovanje zahtevkov Quote Request (prejšnji tip) vzdrževalcu likvidnosti. Vzdrževalec nanje odgovarja z pošiljanjem informacij o trenutni nakupni in prodajni ceni. Dodatne informacije za izdajatelja vrednostnega papirja. Uporabno samo v načinu trgovanja z izdajatelji. Dodatne informacije za pooblaščenega specialista za določen vrednostni papir. Uporabno samo v načinu trgovanja s specialisti. Da Da Da Da Da Da Da Da Da Da Da Da Ideja o različnih podatkovnih tokovih, ki so glede na vrsto podatkov implementirani v različnih tehnologijah je zelo zanimiva. Omogoča paralelno procesiranje in ne zavira prenosa

19 pomembnih zahtevkov (npr. nakup ali prodaja ob dobri priložnosti) z manj pomembnimi informacijami (npr. novice ali obveščanje o že sklenjenih poslih). Ima pa ta koncept tudi eno težavo v kolikor bi odjemalec želel kombinirati podatke iz dveh ali več neodvisnih tokov, je potrebno veliko sinhronizacijske logike, da pravilno reagira na vse kombinacije prekinitve ali zakasnitve na uporabljenih tokovih. Primer, kjer zgornji koncept ne prinese prednosti: Na manjši regionalni borzi se dnevno sklene 1000 poslov. Na vsak sklenjen posel pridejo v povprečju 4 vnosi ali spremembe naročila. Skupno torej 5000 podatkovnih paketov. Pri povprečni velikosti paketa 200 bytov je to 1 MB podatkov, ki se razporedijo v obdobju 4 ur, kolikor je trg odprt. Pri hitrosti povezave 10 Mbit bi bilo možno vse dnevne podatke prenesti v 1 sekundi, torej nima nobenega smisla programirati sinhronizacije 14 različnih podatkovnih tokov. Sistem BTS ravno zaradi tega uporablja za vsakega uporabnika le po eno TCP povezavo. Kljub zapleteni uporabi ima Values API eno pomembno prednost v nespremenjeni obliki je na voljo že mnogo let in na trgu obstajajo že razvite finančne aplikacije, ki znajo delati s tem vmesnikom. 5.2.2 Datoteke Na koncu trgovalnega dne poseben proces v Xetri generira 8 različnih tipov tekstovnih datotek in jih odloži na MISS strežnike. Datoteke vsebujejo naslednje podatke: Instrument seznam vrednostnih papirjev, s katerimi se je trgovalo v tem dnevu Member, Trader podatki o aktivnih borzno posredniških hišah in njihovih posrednikih Instrument Statistics statistični podatki o dnevnem trgovanju, npr. število poslov, najvišja in najnižja cena, zaključna cena, % spremembe. Order, Stop order podatki o vnosih, spremembah, umikih, aktivaciji in izvedbi naročil za nakup ali prodajo papirjev Order position stanje naročil na začetku dneva Trade podatki o sklenjenih poslih Generiranje in prenašanje tekstovnih datotek izgleda z današnjega vidika zelo arhaično, vendar imajo te datoteke svoj namen. V sistemih, kjer se dnevno obračajo velike količine denarja, je potrebno na koncu dneva vse podatke še enkrat preveriti. Zahteva je, da se za kontrolo podatkov ne uporabljajo isti programi ali algoritmi, ki so podatke prej zgenerirali. Zato se te datoteke ločeno prenesejo in z drugimi programi primerjajo z originalnimi podatki. Datoteke se tudi zelo enostavno posnamejo na DVD in shranijo v trezorju za arhiv.

20 6 Razpoložljivost Razpoložljivost borznega trgovalnega sistema je zelo pomemben kriterij. Veliki investitorji imajo pretežni del svojega likvidnega premoženja shranjen v obliki vrednostnih papirjev in zelo pomembno je, da lahko te papirje kupijo ali prodajo natanko tisti trenutek, ko potrebujejo denar ali želijo izvesti določeno poslovno transakcijo. Zato si borza enostavno ne more privoščiti, da njen sistem sredi dneva ne deluje. Nekaj minutni izpad pomeni veliko sramoto za borzo in izpad prihodkov od provizij, celodnevni izpad pa bi lahko povzročil resne poslovne težave investitorjem. 6.1 BTS Pri razvoju sistema BTS je bilo potrebno upoštevati, da se prodaja različno velikim borzam, pri katerih ima minuta izpada različno ceno. Večje borze se zato odločajo za podvojene strežnike in komunikacijsko opremo, manjšim pa je dovolj, da lahko v razumnem času ročno zaženejo sistem na rezervnem strežniku. 6.1.1 Enojni strežnik Uporaba enega strežnika je najenostavnejša možna postavitev sistema BTS. Ne omogoča nikakršne redundance in je primerna le za testna okolja. V primeru, da ima ta strežnik vsaj zrcaljene diske (RAID 1) ali redundančno polje (RAID 5), ECC pomnilnik in podvojene napajalnike, ga je že možno uporabiti tudi v produkciji. Ena izmed majhnih borz dejansko trguje na takem sistemu. Slika 6.1: Postavitev BTS na samo enem strežniku V primeru izpada edinega strežnika je možna postavitev sistema iz namestitvenih DVDjev na povsem nov strežnik in restavriranje baze iz prejšnjega dne (običajno se dela varnostna kopija konec dneva). V primeru, da bi želeli rešiti dnevne podatke, je potrebno vsaj usposobiti diske prvotnega strežnika.

6.1.2 Replikacija podatkov BTS sistem je narejen tako, da poslovna logika vse pomembne podatke sproti beleži v SQL bazo in se lahko iz nje kadarkoli nazaj zažene in nadaljuje s procesiranjem. Cenovno ugodna je instalacija poslovne logike na dva strežnika, od katerih je eden aktiven, na drugem pa je isti servis nameščen vendar ugasnjen. Baza podatkov se iz prvega strežnika replicira na drugega v skoraj realnem času. Zakasnitev med zaključkom transakcije na prvem strežniku in prenosom na drugega je manj kot 5 sekund. Komunikacijska strežnika nimata nobenega stanja, zato sta enostavno podvojena in performančno nekoliko predimenzionirana, da lahko katerikoli prevzame funkcijo obeh. 21 Slika 6.2: BTS z replikacijo baze V primeru izpada primarnega transakcijskega strežnika je potrebno ročno zagnati servise na sekundarnem strežniku in preusmeriti komunikacijske strežnike na drug IP naslov. Ročni preklop traja nekaj minut. Zaradi asinhrone replikacije podatkov obstaja možnost, da se izgubi zadnjih nekaj sekund transakcij. Veliko manjših borz uporablja to rešitev in je pripravljenih sprejeti riziko krajšega izpada v zameno za običajni hardver in preprosto administracijo. Možno prekinitev ali celo izgubi nekaj zadnjih sekund podatkov so enostavno rešili v pogodbah o nivoju nudenja storitev (service level agreement). 6.1.3 Gruča (cluster) Aktivno-pasivna gruča je način delovanja dveh (ali več) strežnikov, kjer na enem program obdeluje podatke, na drugem pa čaka v pripravljenosti za preklop. Gruča uporablja skupno diskovno polje in skupni navidezni IP naslov. Skupno diskovno polje omogoča, da so isti podatki takoj po preklopu na voljo drugemu strežniku. Zaradi istega IP naslova pa po preklopu ni potrebno prekonfigurirati odjemalcev. Oba strežnika ves čas kominicirata med seboj (t.i. srčni utrip) in takoj ko eden zazna, da drugi ni dosegljiv, prevzame njegovo

22 funkcijo. Na gručo je smiselno namestiti SQL strežnik in poslovno logiko. Komunikacijski strežniki ostajajo podvojeni na enak način, kot v prejšnjem primeru. Slika 6.3: BTS v gruči strežnikov V primeru izpada enega strežnika med preklopom še vedno pride do prekinitve storitve, vendar po nekaj sekundah poslovna logika že teče na drugem strežniku, kar poizkuša BTS pred uporabniki zakriti z avtomatskim ponovnim priklopom komunikacijskih strežnikov. V kolikor preklop traja dlje časa, uporabniki dobijo obvestilo, da storitev začasno ni na voljo. 6.1.4 Rezervna lokacija Bolj zahtevne stranke uporabljajo kombinacijo gruče in replikacije na rezervno lokacijo. Gruča jih ščiti pred izpadi posameznih strežnikov na primarni lokaciji, replikacija na rezervno lokacijo pa omogoča hitro ponovno vzpostavitev delovanja v primeru nesreč, kot so požar, potres ali poplave. 6.1.5 Vzdrževanje Vse zgoraj opisane konfiguracije predvidevajo, da se napaka dogodi na hardveru. Vendar izkušnje kažejo, da večkrat pride do sesutja ali napačnega delovanja sistema zaradi napake v programski opremi ali celo v specifikacijah naročnika. V takem primeru je pomembno, da proizvajalec sistema nudi hitro in kompetentno tehnično podporo.

23 Za sistem BTS proizvajalec nudi vsem strankam podporo med delavniki znotraj časa trgovanja. Ker se stranke nahajajo v različnih časovnih conah (od Azije do Amerike) in delajo ob različnih dnevnih (npr. arabski delavnik je od nedelje do četrtka), to dejansko pomeni podporo 24 ur x 365 dni na leto. 6.1.6 Spremljanje (monitoring) Kritične napake se običajno ne pojavijo iznenada. Velikokrat se že prej pojavijo indikatorji, kot so npr. slabi odzivni časi, povečana poraba pomnilnika ali krajše prekinitve delovanja. Delovanje sistema BTS je možno spremljati z orodji za nadzor, eno takih orodij je Microsoft System Center Operations Manager. Preko standardnih agentov za SQL bazo, TCP protokol, http protokol in event log se nadzorni sistem v intervalih priklaplja na komponente trgovalnega sistema in preverja odzive. Izmerjene rezultate shrani v svoji bazi, v primeru kritičnih odstopanj pa lahko tudi takoj kontaktira skrbnika po elektronski pošti ali mobitelu. 6.2 Xetra Sistem Xetra na strani procesnih centrov ne predvideva nobenih kompromisov. Vse procesiranje se odvaja v gruči mainframe računalnikov, ki teče na dveh lokacijah v bližini Frankfurta. Vsaka borza potrebuje dve optični povezavi do obeh procesnih centrov in mora postaviti dva komunikacijska strežnika. Ponudnik storitve ob vsaki nadgradnji na novo različico sistema objavi spisek testiranih strežnikov in komunikacijske opreme in uporabniki morajo zagotoviti tako opremo. Pri končnih uporabnikih hardvera ne predpisujejo, zahtevajo le določeno verzijo operacijskega sistema Windows oz. Solaris. Izbira med različnimi tehničnimi opcijami je možna pri povezavi borzno posredniške hiše na borzo: lahko se uporabljata dve najeti liniji lahko se uporablja primarna najeta linija in rezervna povezava preko interneta (VPN) lahko se uporablja zgolj povezava preko interneta (VPN) Število komunikacijskih (MISS) strežnikov ni predpisano. Lahko je eden ali več. Če jih je več, se jih konfigurira v gručo in v primeru okvare preostali avtomatsko preusmerijo promet nase.

24 Slika 6.4: Povezava preko dveh najetih linij in dveh MISS strežnikov Slika 6.5: Povezava preko primarne najete linije in preko interneta Slika 6.6: Povezava preko interneta in samo en MISS strežnik

6.2.1 Vzdrževanje Vzdrževanje sistema skupaj s 24-urnim dostopom do tehnične podpore je vključeno v ceno storitve. Ker strežniški del teče na lokaciji razvijalca sistema, stranke s tehničnimi detajli in problemi detajli niso seznanjene. Vnaprej so le obveščene le o planiranih vzdrževalnih delih in možnih posledicah. Za komunikacijske linije, komunikacijske strežnike in trgovalne postaje skrbijo tehnični oddelki posameznih borz. Operaterji obiskujejo predpisana izobraževanja in lahko kadarkoli po telefonu ali elektronski pošti kontaktirajo tehnično podporo. Tehnična podpora se je izkazala za zelo kompetentno, npr. sredi noči so korektno rešili težavo pri uporabi njihove komunikacijske knjižnice iz jezika C. 6.2.2 Spremljanje Nadzorni center v Frankfurtu spremlja tako delovanje svojih mainframe računalnikov kot tudi komunikacijske opreme pri strankah preko sistema za nadzor. To je tudi eden od razlogov, da strankam predpisujejo točno določene modele opreme. 25 6.3 Razpoložljivost v praksi Za analizo razpoložljivosti obeh sistemov v praksi bomo uporabili primer Ljubljansko borze. Ta borza je vrsto let uspešno uporabljala sistem BTS, po prevzemu s strani tujega lastnika pa je konec leta 2010 prešla na sistem Xetra. Večina borznih posrednikov kot tudi tehnikov v IT oddelku je istih, podobno je tudi število transakcij, zato je direktna primerjava možna. Ker smo bili osebno udeleženi v obeh projektih in imamo podpisano pogodbo o varovanju poslovnih tajnosti, ne moremo na tem mestu pisati o internih nesrečah in pripetljajih, ki so bili bolj ali manj uspešno odkriti še preden so povzročili prekinitev delovanja sistema. V spodnji tabeli so navedene le velike napake, ki so pripeljale do zaustavitve borze in so tudi javno objavljene na njeni spletni strani. Leto Sistem Napaka Trajanje Razpoložljivost 2005 BTS Sesutje sistema 9 min 99,98% 2006 BTS - 100,00% 2007 BTS - 100,00% 2008 BTS - 100,00% 2009 BTS Komunikacije 39 min 99,92% 2010 BTS + Xetra - 100,00% 2011 Xetra Komunikacije Napaka v sistemu 57 min 59 min 99,80%

Kljub bistveno večjim stroškom je razpoložljivost novega borznega sistema manjša. Število izpadov se je povečalo, prav tako čas njihove odprave. Razlog pripisujemo povečani kompleksnosti (več različnih komponent) in ločenim ekipam vzdrževalcev v Frankfurtu in Ljubljani. 26

27 7 Sklepne ugotovitve V diplomskem delu sem primerjal arhitekturo dveh vsebinsko podobnih informacijskih sistemov, od katerih je bil eden razvit v majhni razvojni skupini, drugi pa znotraj velike korporacije s skoraj neomejenimi viri. Kot načrtovalcu manjšega od sistemov mi je bilo v veliko veselje primerjati rezultate in razlike med sistemoma. Ker med izgradnjo našega sistema nismo imeli dostopa ali informacij o drugih sistemih, smo se odločali na osnovi lastnega znanja ali meritev. Zanimivo je bilo svoje takratne odločitve primerjati z odločitvami druge ekipe. Zelo pogosto se je izkazalo, da smo oboji reševali probleme na enak način. Celo polja in nabori vrednosti v obeh bazah se ne razlikujejo veliko. Zadnja različica Xetre prinaša dodaten aplikacijski vmesnik na osnovi FIX protokola. Po informacijah iz spletne strani naj bi vključeval FAST standard za kompresijo podatkov in bil nasplošno zelo hiter. Žal v času mojega testiranja in programiranja s Xetro vmesnik še ni bil dosegljiv, kasneje pa nam je potekla pogodba za dostop do testnega sistema. V kolikor bom še kdaj delal s tem okoljem, bom vsekakor dopolnil primerjavo še s tem. Iz poslovnega vidika ne morem podati enolične ocene, kateri sistem je boljši. BTS je enostavnejši, zato je njegovo uvajanje cenejše. Ravno tako vzdrževanje in modifikacije. V kriznih časih so lahko majhni stroški prednost. Xetra je funkcionalno in tehnično kompleksnejša. Cena letnega najema je višja od cene nakupa BTS. Vendar so na Xetro že priklopljeni vsi veliki igralci na finančnih trgih, kar bi za majhno borzo lahko pomenilo takojšen prihod tujih investitorjev. Ali novi investitorji odtehtajo povečane IT stroške pa je vprašanje, na katerega v tem trenutku ne znajo odgovoriti niti direktorji borz v regiji. Dve sta prešli na velike sisteme in še čakata izboljšanje rezultatov, druge ostajajo na manjših sistemih in jih opazujejo. Odgovor bo verjetno znan šele čez nekaj let.

28 Kazalo slik Slika 1.1: Tipičen trgovalni ekran... 4 Slika 2.1: BTS teče na lokacijah posameznih borz... 5 Slika 2.2: Arhitektura sistema BTS... 6 Slika 3.1: Xetra teče v oblaku... 7 Slika 3.2: Arhitektura sistema Xetra... 8 Slika 4.1: BTS trgovalna postaja je prevedena v več jezikov... 11 Slika 5.1: Klic BTS spletne storitve... 13 Slika 5.2: Orodje FIXimate za prikaz strukture FIX sporočil... 16 Slika 5.3: FIX demonstracijski odjemalec... 16 Slika 6.1: Postavitev BTS na samo enem strežniku... 20 Slika 6.2: BTS z replikacijo baze... 21 Slika 6.3: BTS v gruči strežnikov... 22 Slika 6.4: Povezava preko dveh najetih linij in dveh MISS strežnikov... 24 Slika 6.5: Povezava preko primarne najete linije in preko interneta... 24 Slika 6.6: Povezava preko interneta in samo en MISS strežnik... 24

29 Literatura in viri [1] (2011) Xetra tehnična dokumentacija. Dostopno na: http://deutscheboerse.com/dbag/dispatch/en/kir/gdb_navigation/technology/20_applications [2] (2011) C++. Dostopno na: http://en.wikipedia.org/wiki/c%2b%2b [3] (2011) C#. Dostopno na: http://en.wikipedia.org/wiki/c_sharp_(programming_language) [4] (2011).NET Framework. Dostopno na: http://en.wikipedia.org/wiki/.net_framework [5] (2011) Windows Server. Dostopno na: http://en.wikipedia.org/wiki/windows_server [6] William M. Stanek,»SQL Server 2005«, Microsoft Press, 2005. [7] (2011) Version Control With Subversion. Dostopno na: http://svnbook.red-bean.com/ [8] (2011) FIX protokol. Dostopno na: http://www.fixprotocol.org/specifications/