本プロジェクトでは先行して「ITアーキテクト」を指名しました。ITアーキテクトは以下の項目を重要な要素として選び、指名します。
今回指名したのは2〜3名です。技術や実装において“とがった”思想を持つ人物に依頼しました。
彼らは早速、想定されている環境を前提として、ローカルマシンにアプリケーション・サーバやデータベースをインストールし、簡易版の機能を作成しました。いわゆるプロトタイプの作成です。この段階で、技術的な素養、チームへの適合性などを確かめます。そして、実際に機能の1つを適当な仕様で作り、実装者の多くにITアーキテクトの作成したプロトタイプのまねをしてもらい、実装作業の簡素化を目指しました。
プロトタイプは実装方法の横展開を容易にするだけでなく、コーディング規約を反映させて規約の横展開も容易にします。特に、規約のような(プログラムの動作にあまり影響しない)ものは、実装者がコード上だけで指針を読み取れるようにできる仕組みを作っておくべきでしょう。実装のたびにコード規約を読み直すのは効率のいいことではありません。このような方法は、規約に準拠したコードを得るうえでも非常に効果があります。
なお、今回、コード規約を作成しましたが、その細かい規定はチェックスタイルで自動化を図りました。結果として、コードの品質を統一することに有効でした。
実装の一環として行う単体テストにはJUnitを使用しました。失敗したのは、JUnitで完全に自動化すべきところを、SQLだけを外に出したために、データの設置をあらかじめ手で行わねばならず、完全に自動化ができなかったことです。実装者からの評判もあまり良くありませんでした。
MQで苦労したのは文字コードです。金融の基幹システムではどんなささいな文字化けも許されません。システム連携で使用することが決められた文字に関しては、100%フォローする必要があります。このときに、VMベンダ(例えばIBMなど)の文字コード指定は、結構な数の文字を化けさせることがあります。
よくWebで「〜」などが文字化けしてマッピングをすることと思いますが、それとは別の次元で、全文字のテストが必要です。
実際金融機関はNEC、IBM、富士通などのそれぞれの汎用機が独自に拡張した文字コードを投げ込んできます。VMの文字コードの指定によってMQは自動的に文字コードをカバーしようとしていますが、実は中には「〜」のように特定の文字だけ化けるケースがあります。その際に化けたコードを対応すればよい……とはなりません。多くの金融基幹システムは、解釈できない文字があるとその場でアベンドします。そのときに、もし本番稼働後であれば、かなり厳しい責任追求が待っているでしょう。
またVMベンダにクレームを付けても、アプリケーションが動作している環境の問題を理由に完全なフォローをしてもらうのは非常に難しいことが予想されます。
基幹システム連携用のアプリケーションはたくさん出ています。MQ、HTTP、FTP、HULFT、Webサービスなどを統合的に扱い、1つのロジックから自由に呼び出せることを想定した、基幹統合プラットフォームはかつて、CORBAも含めさまざまな試みが行われてきました。しかし、それらのアプリケーションを使うには、いくつかの重要なリスクを伴います。
それは、
などです。
本システムでは、基本的にベンダの提供するその手のモジュールは一切使わず、デザインパターンを用いて、オリジナルを作成しました。
MQはもともと、そのシンプルさが堅牢さに結び付いている部分があり、実装もシンプルにまとまるケースが多く、統合アプリケーションを利用しなくても意外と開発コストが掛かりません。もちろん、テストのコストはミッションクリティカルなシステムだけに十二分に掛かりますが、それはベンダの統合アプリケーションを入れても同じことでしょう。他社の基幹システムやオリジナルの環境での動作をベンダが手放しで保証するわけがなく、結局、製品を使っているいないにかかわらず、非常に入念なテストが必要になるでしょう。
Copyright © ITmedia, Inc. All Rights Reserved.