技術とか戦略とか

SIerで証券レガシーシステムを8年いじってからSESに転職した業務系エンジニアによる技術ブログ。

サブシステムとは

1つのシステムでは、様々な業務を実現しています。
そして、場合によっては、業務毎でシステム内で別々のシステムに分かれていることがあり、この分かれているシステムのことを「サブシステム」と呼びます。
 
この記事では、サブシステムが生まれる理由や、サブシステム同士のデータのやりとりについて、一般的なことを説明していきたいと思います。
例として、架空の証券総合取引システムを挙げて説明したいと思います。
 
【サブシステムの例】
今回紹介する証券総合取引システムの例では、「勘定系サブシステム」「取引所接続サブシステム」「Web取引サブシステム」の3つに分かれています。
これらのサブシステムを合わせることで、現代の証券取引を実現しています。
 
それぞれのサブシステムでは、サーバーやRDBMSも分かれているのが一般的であり、一つの会社内・システム内であったとしてもあたかも別のシステムとして扱われています。

f:id:akira2kun:20220115163659j:plain
 
【サブシステムが生まれる理由】
サブシステムが生まれる理由としては主に2つあり、1つは業務の拡大、もう1つは事業の統合です。
以下では、それぞれの理由について詳しく説明します。
 
1.業務の拡大
時代や企業戦略と共に業務が拡大すると、既存のサブシステムを拡張するだけでは技術的に対応が難しく場合があります。
そのような場合に、拡大した業務についてサブシステムを構築して対応するのが望ましくなります。
 
例えば、証券総合取引システムの場合、1980年代までは証券会社の社員が人の手により証券取引所に注文を取り次いでいました。
当時は企業向けの大規模なシステムはメインフレームで構築するのが一般的であったため、メインフレームでシステムを構築することが多かったです。
 
しかし、1990年代に証券取引所がシステム化されることで、証券取引所のシステムとのインターフェースが必要になりました。
インターフェースを合わせるため、また性能要件を満たすために、既存のメインフレームのサブシステムとは別に新たなサブシステムを構築するのが一般的であったと思います。
 
また、2000年代に入ると、インターネットが普及し、個人投資家がWeb画面から直接取引をするのが一般的になりました。
Web画面からの直接取引についても、メインフレームのサブシステムでは実現が難しく、新たなサブシステムを構築するきっかけとなりました。
 
2.事業の統合
部署や会社を合併した場合、システムの一本化が求められます。
システムの一本化の方針の一つとして、お互いのシステムをサブシステムとして寄せ集めるという手法が取られることがあります。
このような理由によっても、サブシステムは生まれます。
 
今回挙げている例では、証券総合取引システムを扱う会社同士の合併により、サブシステムが生まれることが考えられます。
例えば、Web取引サブシステムについて、証券会社毎に見た目や機能が異なるため、証券会社毎でサブシステムを分けるというケースが考えられます。
 
また、現実の例としてはみずほ銀行が有名です。
みずほ銀行は、銀行の合併により、複数のサブシステムに分かれています。
情報も多く出回っているので、調べてみると勉強になると思います。
 
【サブシステム同士のデータのやりとり】
前述の通り、サブシステムはあたかも別のシステムのようなものとして扱われているので、データのやりとりについても他者システムと同じような方法でやりとりが行われます。
一般的には、リアルタイムのやりとりと、定時のやりとりに分かれます。
 
1.リアルタイムのやりとり
これは、電文やAPIによって実現されます。
ある時点でのデータを取得したい場合、及びトランザクションデータが発生した場合に、電文やAPIによりデータを送受信します。
 
例えば、証券会社の社員の手により勘定系サブシステムから注文が入力された場合、勘定系サブシステムから取引所接続サブシステムへ電文を送信することで、取引所接続サブシステムから証券取引所への発注が可能になります。。
また、Web取引サブシステムで株価情報を表示したい場合、取引所接続サブシステムのAPIを呼び出すことで、取引所接続サブシステム内で保持されている株価情報を取得できます。
 
2.定時のやりとり
これは、主にファイルの送受信によって実現されます。
サブシステム内で取りまとめたデータをファイルとして連携することで、サブシステム間のデータの同期を効率的に行うことができます。
 
例えば、Web取引サブシステム内に蓄積された取引履歴をファイルとしてとりまとめて勘定系サブシステムへ送信することで、勘定系サブシステム側でも取引履歴を把握し、ハガキの出力や不正取引がなかったかの分析等が可能になります。