前回は、システム連携におけるインターオペラビリティと課題について述べましたが、その根本的な問題は、個々のシステム(プログラム)が連携の仕組みに関与しなければならないというところにあります。従って解決策は、連携に関わる処理を行う別のものを用意し、それが連携に関わること全てに責任を持つということになります。
ここではそれをシステム連携基盤と呼ぶことにします。
しかし、ただ単にシステム連携基盤が接続の中継を行うだけであるならば、何も改善しません。システム連携基盤が、様々なシステム間接続を調整しながら制御、統制していく必要があります。
システム連携基盤のことはIT業界では、ESB(Enterprise Service Bus)あるいは SOA(Service Oriented Architecture)という言葉で表現されることが多いです。ESBやSOAでインターネットを検索してみると、連携基盤が満たすべき機能の説明を得ることができますので、ここではその詳細には触れません。
インターシステムズは、この概念をもう少しわかりやすく伝えたいと考え、インターオペラビリティの「5R」というものを提唱しています。
「5R」というのは英語の “ 5 Right Things ” の短縮形のことで、日本語に訳すと「5つの正しいこと」となります。
そしてその「5つの正しいこと」とは、
1. 正しいデータを 2. 正しい量で 3. 正しい人に 4. 正しい時間に
与えることによって
5. 人は正しいデータの理解を得る
そして
その正しい理解に基づいて初めて正しい判断、行動につながる。
なんだ当たり前のことじゃないかと感じられるかもしれませんが、そもそもほかのことを考えて作られていないシステム同士が、協調してこれらのことを実現するのは相当難しいはずです。
人間の場合には「あうんの呼吸」などと言われるように、ある程度柔軟に対応が可能かもしれませんが、コンピュータシステムでこれを実現するのは、少なくとも現状の技術では相当難しいといえるでしょう(将来AIが進化することで変わるかもしれませんが)。
ここで人間系のシステムで組織や集団が協調して何かを成し遂げるときに、何が重要か考えてみましょう。
人間系のシステムでは、集団がある程度以上になるとグループ化され、そのグループのとりまとめを行う人、つまり管理者的な人を配置すると思います。その管理者にとって必要な能力は、結局そのグループの業務や事業に関連する知識と経験に集約されると思います。
この知識と経験をITの世界になぞらえてみると、
- 知識は外部から与えられるデータ(外部データソース)
- 経験は内部に蓄えられたデータから得られた知識、記憶
となります。
従ってシステム連携にとって、データを取り扱う能力が非常に重要である、という結論になります。
特に一般的なESBの実装では、外部ソースからデータを取得することはそれほど困難ではありませんが、内部を流れるデータを蓄積して、データベース化し、それを後で様々なプロセスの意思決定に生かす ことについて注力しているものは、私が知る限りありません。
ここにこそ、システム連携基盤であるインターシステムズのデータプラットフォームのユニーク性があります。
当社のデータプラットフォームのシステム連携基盤上では、他システムから流れてくる全てのデータ(メッセージ)は、すべて永続化(データベース化)されます。これによって連携プロセスが実行された後で、実際にどういうデータのやり取りが行われたかを見ることができます。(トレース機能)
この機能は障害が発生した場合などの原因究明に威力を発揮する強力なツールです。また、一連の連携プロセスのある特定箇所で障害が発生し、前に進めなくなったとしても、その障害を取り除いた後に、その障害ポイントからの再開が可能です。このメカニズムがなくて、メッセージが消失している場合には、全て最初からやりなおさなければなりません。
余談ですが、これらの機能のことを英語で「エンドツーエンド管理」と言うのですが、これにぴったりする日本語訳がなく、説明にいつも苦労します。また、これらのメッセージを流用して新たなデータベースを作成することも簡単にできます。(経験を知識として蓄積する。)
もちろん不要なメッセージは削除することも容易です。
全ては、データ管理機能が内蔵されたシステム連携基盤だからこそ、できる技(わざ)なのです。
最後に提案です。
ここまで読み進めてきてインターシステムズのシステム連携基盤を使えば、システム連携に関わる様々な問題が解決できることを理解いただければ幸いですが、それでは、既に構築されているいろいろと不都合なシステムの連携はどうすればいいでしょうか?
理想的には、この新しい仕組みを使って全て作り変えてくださいと言いたいところですが、それは現実的には不可能に近いことだと考えます。既にそれらは、様々なシステムに深く組み込まれ、日々の業務プロセスを支えています。
それらを事細かく紐解き、新しい仕組みに置き換えるためにはものすごい労力が必要でしようし、それに応じたコストもかかります。古い仕組みから新しい仕組みへの切り替えのタイミングも非常に難しいでしょうし、以前の仕組みが新しい仕組みに完全にコピーされているかどうか検証するにも、ものすごい労力と時間が必要です。特に昨今の失敗が絶対に許されない風潮の中では、そういう方向に話を進めるのも困難を極めるでしょう。
一方で、現行の仕組みの限界で、 何かを追加したり、変更したりすることが困難になっている連携システムは、どうしたらいいでしょうか?
我々の提案は、それらの仕組みはそのままにして(塩漬け作戦)、追加機能をその上にかぶせるような形で実装していく方法です。その時に既存の仕組みはなるべくいじらずに、そこからフィードされるデータを使ってシステム連携基盤上で新しい機能を開発していく手法です。
ただし、なるべく既存の仕組みはいじらないといっても、最低限必要なデータをフィードする仕組みは追加する必要があるでしょう。単にフィードするだけでなく、既存のシステムに結果を反映する(フィードバック)仕組みも構築できると、さらに良いでしょう。
そのデータをフィードする仕組みもファイルを出力するという原始的な方法ではなく、SOAP、REST/JSONなどの仕組みで実装することで、より柔軟に連携が可能になると思います。
日本で普及しているパッケージアプリケーションやカスタムアプリケーションと、欧米のそれらを比較してみると、欧米のソフトではAPIが用意されているのが普通ですが、逆に日本のソフトではAPIが用意されている方が稀です。
今後変わっていくことを期待したいところです。
インターシステムズは、このデータ管理機能内蔵型システム連携基盤で、お客様の複雑なシステム連携、統合の問題の解決を支援していきたいと思います。