KDDI 株式会社様

代理店受付システム

品質・保守性の向上を実現した.NET〜Java 連携リッチクライアントシステム

KDDI様の全国販売代理店において、お客様の加入契約、機種変更および情報提供などのサービスを提供するシステム。

開発期間 1年半
開発規模 約180画面
販売代理店数 約2万店
業務数 約130種

(※数字はシステム更改時)

導入背景

OSのサポート期間終了に伴い、システム更改が不可欠に

KDDI様は「通信」を通じて、お客様の生活・ビジネス・コミュニケーションがより豊かになるよう「つながること」を基本に、常にお客様の立場に立って、新しい提案を続けてこられている。代理店受付システムは、お客様の加入契約・機種変更および情報提供を円滑に行うために、KDDI様の販売代理店で導入されているシステムである。どの代理店にも共通的に導入することで、地域、事業者に関係なく全国の代理店で共通のサポートサービスを提供できる環境を実現している。

本システムで使用していた端末のOS(Windows2000)が、Microsoftによるサポート期間の終了を迎えることになり、調達も困難となるため、現行システムの更改が不可欠となった。そこでシステム更改を行い、Windows VistaへのOSアップグレードおよびWindows Vista対応アプリケーションの開発を行うことが決まった。

適用プロダクト

現行システムはクライアント側がVisual Basic 6.0(以下Visual BasicはVBと表記)、サーバ側がJavaで構成されており、VBがJavaサーバを経由して基幹システムと通信していた。サーバ側に関しては、他のシステムもJavaを利用して基幹システムと通信していたため、通信部分を変更することが難しく、現行システムと同じJavaを採用した。
クライアント側に関しては、現行システムと同程度以上の配信要件を満たすためのしくみを検討した結果、リッチクライアント方式が選択された。差分配信の容易さから、当初はシンクライアント化も検討対象となったが、周辺機器が十数個もあることから、クライアントにモジュールを集約する方が良いと判断したためである。また、既存システムからの変更箇所を最小化するため、VBの後継であるVB.NETを選択した。

リッチクライアントに対応したオープンソースフレームワーク

  • TERASOLUNA Client Framework for .NET
  • TERASOLUNA Server Framework for Java

アプリケーションの品質と保守性の向上を狙ったフレームワークの導入

今回の開発の要件としてKDDI様が求めたものの1つに、アプリケーションの保守性の向上があった。しかし、保守性の向上を狙うプロジェクトにとって、VB.NETでの開発には懸念点があった。VB.NETアプリケーションは開発の自由度が高いため、開発ルールを規定しなければ、開発者のレベルごとに様々な仕様が生まれてしまう危険がある。そして、仕様のバラツキは、保守性を下げ、メンテナンスコストが高くなってしまうことが懸念された。そのため、自由度の高いVB.NETアプリケーションの品質を画一化する、フレームワークの仕組みが必要とされた。
そこで、TERASOLUNAフレームワークを導入し、品質を画一化することにより、以後の保守性の向上を狙った。

問題の迅速な解決を実現するTERASOLUNAサービス

アプリケーションの保守性を向上するため、TERASOLUNAフレームワークを採用したが、TERASOLUNAフレームワークの採用自体にも懸念事項があった。
フレームワークを利用した開発はプロジェクトにとって初めてであったため、フレームワークを用いた開発に関するノウハウが少なかった。この問題に対しては、TERASOLUNAの導入研修サービスを利用することで解決した。
導入研修として、TERASOLUNAフレームワークの勉強会を開催した。また、勉強会に参加できないメンバにも、TERASOLUNAから提供しているサンプルやチュートリアルを利用して学習することで、プロジェクトメンバ全体に対して立ち上がりをサポートし、導入をスムーズに進めることができた。加えて、フレームワーク利用時の不明点や、その他技術的な問題が発生した場合は、TERASOLUNAメンバによるテクニカルサポートを利用し、プロジェクトに対する影響を最小限に軽減した。さらに、TERASOLUNAメンバに常駐で開発支援を受けることで、開発時の問題を迅速に解決することができた。

システム概要図

導入効果

フレームワーク導入による生産性・保守性の向上

アプリケーションの生産性・保守性の向上に、フレームワークの導入は高い効果があった。生産性の面では、フレームワーク部分を自力でつくる分の工数を削減できたことに加え、業務アプリケーション部分も可能な限り共通化して設計することで、業務固有の製造を局所化した。このように、開発範囲を削減することで、全てをスクラッチで開発する場合に比べ、開発工数を削減することができた。
また、保守性の面では、フレームワークを適用することで、処理方式の仕様が固まり、品質を高いレベルで画一化させることができた。これにより、保守性が向上し、更改後の数十回の改修にも耐え得るアプリケーションを構築した。

苦労を乗り越えての開発期間短縮

今回の開発に苦労が無かったわけではない。
Java及び.NETという2つの開発環境を用いたことで、Java開発者と.NET開発者を両方集める必要があった。また、個々の技術者だけではなく、Java及び.NET両方の知識を有している人材が必要であったが、そのようなノウハウを持つ技術者を確保することは容易ではなかった。
苦労した点はもう1 点あった。それが、現行のV B 6とVB.NETの差である。VB.NETはVBの後継であるが、VBでは簡単にできたことがVB.NETでは同じように実装できないといった場面が多々生まれた。同じように開発できると見込んでいたことで、開発規模は当初予定より膨らんでしまった。
しかし、それを含めても、TERASOLUNAフレームワークを利用することで、設計、実装における開発期間は短縮することができた。それは、極力フレームワーク部分に手を入れることが無いよう設計を行うことで、フレームワーク部分の開発工数が削減できたためである。その他、業務固有の製造を局所化させることでも、開発工数を削減し、生産性を向上させることができた。フレームワークを理解し、フレームワークに合わせた仕様を作成することによって、設計の決定がスムーズに進んだことが、開発期間短縮の最も大きな要因であった。