はじめに
1つ部署や会社のシステムでは様々な業務を実現していますが、場合によっては、業務毎でシステム内で別々のシステムに分かれていることがあります。
この分かれているシステムのことを「サブシステム」と呼びます。
この記事では、サブシステムが生まれる理由や、サブシステム同士のデータの連携について、一般的なことを説明します。
例として、現実のシステムを模した架空の証券総合取引システムを取り上げます。
客先で特定のサブシステムに関する業務を担当する際、担当業務外の部署や担当者との調整が必要になることがありますが、調整をスムーズに進める上で、今回の記事で取り上げるようなことが背景にあると想像することが重要になります。
サブシステムの例
今回紹介する証券総合取引システムの例では、「勘定系サブシステム」「取引所接続サブシステム」「Web取引サブシステム」の3つに分かれています。
これらのサブシステムを合わせることで、現代の証券取引を実現しています。
それぞれのサブシステムでは、サーバーやRDBMSも分かれているのが一般的であり、一つの会社内・システム内であったとしてもあたかも別のシステムとして扱われています。

サブシステムが生まれる理由
サブシステムが生まれる理由としては主に2つあり、1つは業務の拡大、もう1つは事業の統合です。
以下では、それぞれの理由について詳しく説明します。
業務の拡大
時代や企業戦略と共に業務が拡大すると、既存のサブシステムを拡張するだけでは技術的に対応が難しく場合があります。
そのような場合に、拡大した業務についてサブシステムを構築して対応するのが望ましくなります。
例えば、証券総合取引システムの場合、1980年代までは証券会社の社員が人の手により証券取引所に注文を取り次いでいました。
当時は企業向けの大規模なシステムはメインフレームで構築するのが一般的であったため、メインフレームでシステムを構築することが多かったです。
しかし、1990年代に証券取引所がシステム化されることで、証券取引所のシステムとのインターフェースが必要になりました。
インターフェースを合わせるため、また性能要件を満たすために、既存のメインフレームのサブシステムとは別に新たなサブシステムを構築するのが合理的です。
また、2000年代に入ると、インターネットが普及し、個人投資家がWeb画面から直接取引をするのが一般的になりました。
Web画面からの直接取引についても、メインフレームのサブシステムでは実現が難しく、新たなサブシステムを構築するきっかけとなっていました。
事業の統合
部署や会社を合併した場合、システムの一本化が求められます。
システムの一本化の方針の一つとして、お互いのシステムをサブシステムとして寄せ集めるという手法が取られることがあります。 このような理由によっても、サブシステムは生まれます。
今回挙げている例では、証券総合取引システムを扱う会社同士の合併により、サブシステムが生まれることが考えられます。
例えば、Web取引サブシステムについて、証券会社毎に見た目や機能が異なるため、証券会社毎でサブシステムを分けるというケースが考えられます。
サブシステム同士のデータの連携
前述の通り、サブシステムはあたかも別のシステムのようなものとして扱われているので、データの連携についても他社システムと同じような方法で連携が行われます。
一般的には、リアルタイムの連携と、定時処理による連携に分かれます。
リアルタイムの連携
これは、電文やAPIによって実現されます。
ある時点でのデータを取得したい場合、及びトランザクションデータが発生した場合に、電文やAPIによりデータを送受信します。
例えば、証券会社の社員の手により勘定系サブシステムから注文が入力された場合、勘定系サブシステムから取引所接続サブシステムへ電文を送信することで、取引所接続サブシステムから証券取引所への発注が可能になります。
また、Web取引サブシステムで株価情報を表示したい場合、取引所接続サブシステムのAPIを呼び出すことで、取引所接続サブシステム内で保持されている株価情報を取得できます。
定時処理による連携
これは、主にファイルの送受信によって実現されます。
サブシステム内で取りまとめたデータをファイルとして連携することで、サブシステム間のデータの同期を効率的に行うことができます。
例えば、Web取引サブシステム内に蓄積された取引履歴をファイルとしてとりまとめて勘定系サブシステムへ送信することで、勘定系サブシステム側でも取引履歴を把握し、ハガキの出力や不正取引がなかったかの分析等が可能になります。
あとがき
大きなシステムを理解する上で、サブシステムの概念の理解は欠かせないものです。
まずは担当しているサブシステムのプログラミングを上位者の指示に従ってこなせるようになる必要がありますが、その次のステップに進む上で、サブシステム間の連携を考えられるようになると良いでしょう。
株式会社サイゼントでは、即戦力のJavaプログラマーを育てるための書籍「絶対にJavaプログラマーになりたい人へ」をKindleで販売しています。
同じく、Spring Frameworkについてきめ細かく解説した別冊も販売中です。
また、上記の書籍をテキストとして用いたプログラミングスクール「サイゼントアカデミー」も開校しています。
このスクールは、受託開発事業・SES事業である弊社が、新入社員向けの研修で培ったノウハウを詰め込んだものです。
ご興味がある方は、上記画像から個別ページにアクセスしてみてください!
コメント