Slide 1

Slide 1 text

FIXΤϯδϯ࡞ͬͯΈͨɻ Finatext × ΤϒϦʔ ʙελʔτΞοϓ࠷લઢͷGo ͷࣄྫʙ 2020/6/26 Smartplus ୩Ԭ

Slide 2

Slide 2 text

ࣗݾ঺հ • ୩Ԭɹ༞ࢤʢͨʹ͓͔ɹΏ͏͡ʣ • 11೥ؒɺۜߦγεςϜ։ൃʹؔΘ͍͕ͬͯͨɺGoΛ΍Γͨͯ͘Finatextά ϧʔϓͷSmartplusʹɻ • ݱࡏ͸ɺ ূ݊ϓϥοτϑΥʔϜ BaaSͷ։ൃӡ༻ʹܞΘ͍ͬͯΔ • GoͰ͸ɺओʹޱ࠲։ઃؔ࿈ͷΤϯϋϯεͱ͔࣮ࢪதɻ΍ͬͱgo modΛཧղ ͖ͯͨ͠ͱ͜Ζɻ • झຯ͸ɺຊΛങ͏͜ͱɻʢੵΈຊɻʣ

Slide 3

Slide 3 text

͸͡Ίʹ • Fixnatextάϧʔϓͷূ݊ձࣾͰ͋ΔSmartplusͰ͸ɺূ݊ϓϥοτ ϑΥʔϜͰ͋ΔBaaSʢBroker as a Serviceʣͷӡ༻։ൃΛߦͳ͍ͬͯ Δɻ • BaaS͸΄΅͢΂ͯGo Ͱ։ൃɻ • Go Ͱ։ൃͨ͠BaaSͷػೳʹFIXΤϯδϯ͕͋Δɻ

Slide 4

Slide 4 text

FIXΤϯδϯͱ͸ • FIX͸ɺFinancial Information eXchangeͷུɻ • FIXϓϩτίϧʹ४ڌͨ͠ϝοηʔδసૹΛߦ͏ιϑτ΢ΣΞɻ

Slide 5

Slide 5 text

FIXϓϩτίϧͱ͸ • ۚ༥৘ใͷ΍ΓͱΓΛిࢠԽ͢Δ͜ͱΛ໨తʹ։ൃ͞Εͨϓϩτί ϧɻ • FIXϓϩτίϧͷ࢓༷͸ɺෳ਺ͷۚ༥ػؔͷؔ܎ऀͰߏ੒͞Εͨஂ ମɺFIX Protocol LimitedʢFPLʣ͕ॴ༗ɾ؅ཧ͍ͯ͠Δɻ • 1992೥ɺถࠃגࣜചങΛର৅ͱͨ͠ిࢠऔҾͷඪ४ԽΛ໨తʹɺι ϩϞϯϒϥβʔζࣾɺϑΟσϦςΟࣾʹΑͬͯఆٛ͞Εͨɻ

Slide 6

Slide 6 text

• ౤ࢿՈ͔Βͷגࣜͷ஫จΛBaaSͰड͚ɺFIXΤϯδϯʹͯ౦ژূ݊औ ҾॴͱిࢠऔҾʢגࣜͷൃ஫ɺ໿ఆͷड৴ʣ͍ͯ͠Δɻ BaaSͰͷFIXΤϯδϯͷར༻ גࣜൃ஫ #BB4 '*9 Τ ϯ δ ϯ औ࣍ઌ '*9 Τ ϯ δ ϯ ౦ژऔҾূ݊ॴ גࣜൃ஫ גࣜൃ஫ ໿ఆͨ͠ ໿ఆͨ͠ ໿ఆͨ͠ FIXϓϩτίϧ

Slide 7

Slide 7 text

FIXϓϩτίϧɹ • BaaSͰ͸ɺFIXΤϯδϯؒΛTCPͰ௨৴͢Δɻ • BaaSͰ͸ɺFIXϓϩτίϧͷόʔδϣϯ4.2Λར༻͍ͯ͠Δ • LogonΛ࠷ॳʹૹ৴͢ΔଆͷFIXΤϯδϯΛΠχγΤʔλɺड৴͢Δ ଆΛΞΫηϓλͱΑͿɻ • ϝοηʔδຖʹ௨൪͕͋Γɺϝοηʔδͷ࠶ૹ͕Մೳ • FIXΤϯδϯಉ࢜ͷࢮ׆؂ࢹ͕Մೳ

Slide 8

Slide 8 text

FIXϓϩτίϧɹʙిจϑΥʔϚοτʙ • tagܗࣜͷిจϑΥʔϚοτ • tagʹ͸ͦΕͧΕҙຯ͕͋Δɻtag8:Fixόʔδϣϯ etc • ”tag൪߸”=”value” ͷܗࣜ • ۠੾Γ͸ɺ0x01 • ʢαϯϓϧʣLogonϝοηʔδɻ۠੾Γ͸”|”Ͱදࣔɻ 8=FIX.4.2|9=69|35=A|34=1|49=SENDER|52=20200608-22:36:08.683|56=RECVER|98=1|108=30|10=040|

Slide 9

Slide 9 text

FIXϓϩτίϧɹʙ؅ཧܥిจϑϩʔʙ ΞΫηϓλ ΠχγΤʔλ Logon Logout Logout Logon ۀ຿ܥిจ ۀ຿ܥిจ ۀ຿ܥిจ HeartBeat TestRequest HeartBeat ೝূ0,ͷ৔߹ -PHPOΛૹ৴ 5FTU3FRVFTUΛड৴͢ Δͱ)FBSU#FBUΛૹ৴ ҰఆִؒͰ)FBSU#FBU Λૹ৴ ૬खଆ͔ΒҰఆ࣌ؒ಺ ʹ)FBSU#FBU͕དྷͳ͍ ৔߹ʹ͸5FTU3FRVFTU Λૹ৴

Slide 10

Slide 10 text

FIXϓϩτίϧɹʙۀ຿ܥిจϑϩʔʙ ΞΫηϓλ ΠχγΤʔλ ड෇ గਖ਼ड෇ గਖ਼஫จ ໿ఆ ৽ن஫จ ໏ฑ גΛ ԁͰCVZ஫จ ࢢ৔ʹͯ໏ฑ͕ ԁͰג໿ఆ ໏ฑ גΛ ԁͰCVZ஫จʹగਖ਼ గਖ਼׬ྃ

Slide 11

Slide 11 text

FIXϓϩτίϧɹʙ࠶ૹͷ࢓૊Έʙ ΞΫηϓλ ΠχγΤʔλ Logon(seqno=1) Logon(seqno=1) ۀ຿ܥిจ(seqno=2) ۀ຿ܥిจ(seqno=3) ۀ຿ܥిจ(seqno=4) ۀ຿ܥిจ(seqno=5) Resend Request(seqno=2, BeginSeqno=4) ۀ຿ܥిจ(seqno=4, 43=Y) ۀ຿ܥిจ(seqno=5, 43=Y) TFROP͕དྷͣɺ TFROP͕͖ͨͰ࠶ ૹґཔ TFROP͸ͱͲ͔ͣ ࠶ૹґཔ͕͖ͨͷͰॏ ෳϑϥά  Ληοτ ͯ͠࠶ૹ ·ͱΊͯ࠶ૹґཔɺ࠶ૹεΩοϓɺ௨൪ϦηοτཁٻͳͲ΋͋Γɻ

Slide 12

Slide 12 text

BaaSͰͷγεςϜߏ੒ %# ஫จड෇ '*9XSJUFS 0SEFSOPUJpFS '*9QSPYZ %# .2 BaaS ᶃड஫ ᶄDB؅ཧ ᶅFIXۀ຿ܥిจ࡞੒ ᶆFIXΤϯδϯ ᶇૹड৴ిจ؅ཧ ᶈड৴ۀ຿ܥిจॲཧ ᶉরձ ᶊཤྺࢀর ࢢ৔ FIXϓϩτίϧ

Slide 13

Slide 13 text

BaaSͰͷFIXΤϯδϯͷӡߦ • ฏ೔ 7:30ࠒɹ FIXΤϯδϯΛىಈ͠ɺΞΫηϓλʹLogonΛૹ৴ • ฏ೔ 8:00ࠒɹ ࢢ৔΁ൃ஫։࢝ • ฏ೔ 9:00ɹɹ ࢢ৔औҾ։࢝ʢ໿ఆΛड৴࢝͠ΊΔʣ • ฏ೔11:30ɹɹલ৔ऴྃʢ໿ఆ͸ड৴͠ͳ͘ͳΔʣ • ฏ೔12:30ɹɹޙ৔։࢝ʢ໿ఆͷड৴࠶։ʣ • ฏ೔15:00ɹɹࢢ৔ͰͷऔҾऴྃ • ฏ೔15:15ࠒɹdone for day ిจΛड৴ • ฏ೔16:00ࠒɹLogout͠FIXΤϯδϯΛఀࢭ

Slide 14

Slide 14 text

ͦͷଞ • GoͰTCPૹड৴Λهड़͍ͯ͠Δɻ • ૹड৴ΛgoroutineͱchannelͰฒߦॲཧɻ • ిจ࠶ૹͷͨΊͷిจอ࣋ʹDatabaseΛར༻͍ͯ͠Δɻ • ϐʔΫ࣌ؒ͸ɺฏ೔8:00ʙ8:05Ͱ਺ઍ݅΄Ͳͷ৽ن஫จΛૹ৴͍ͯ͠ Δɻ

Slide 15

Slide 15 text

΍ͬͯΈͯ • Ҏલ΋FIXϓϩτίϧͱࣅͨϓϩτίϧΛར༻͍ͯͨ͠ͷͰɺ਌ۙײ ͕͋ͬͨ • ϚΠΫϩαʔϏεͰͷτϥϯβΫγϣϯ؅ཧͷ೉͠͞ • Մ༻ੑ͸ɺࠓޙΑΓΑ͍͖͍ͯͨ͘͠ͱ͜Ζɻ • TCP௨৴ΛϓϩάϥϜͰॻ͘͜ͱʹ͸ͪΐͬͱͨ͠ίπ͕͍Δɻ

Slide 16

Slide 16 text

͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ