[事例研究(番外編)] .NET開発現場レポート
明治生命保険相互会社
次世代の戦略情報基盤として.NETを評価する

構成:デジタルアドバンテージ
2002/01/05

現在、明治生命保険相互会社(以下、明治生命)は、全社的な次世代情報システムとして採用する基盤技術を模索している。現行のC/Sシステムにおける膨大なTCOを削減することに加え、情報システムによる営業支援体制のさらなる強化、将来のBtoCBtoBの拡大をも統合可能な次世代情報システムの基盤として何がふさわしいのか? その選択肢の1つとして同社は、Microsoft .NETの採用を検討しており、これを評価するためにパイロット・プロジェクトを開始した。ここでは、次世代基盤技術選定の背景や、Microsoft .NETに対するパイロット・プロジェクトでの評価について、プロジェクトを統括している明治生命 情報システム部の蔭山誠氏と、プロジェクトで実際に.NETプログラミングを体験した明生システムサービス(株)の森智範氏にお話を伺った。
(聞き手:デジタルアドバンテージ 小川誉久)

―― 現在、明治生命さんは、次世代に向けた情報システム基盤の刷新を検討中とのことですが、その背景について教えてください。

明治生命保険相互会社
情報システム部 副長 
蔭山誠
「.NETも含め、明治生命の次世代情報システムを担う基盤技術として何が適しているのか? それをあれこれ試行錯誤しながら検討している最中です」

蔭山:まず直近の問題として、2002年の4月から10月の展開に向けて、営業拠点向けの支援システムを開発しています。具体的には、顧客管理や保険の設計書作成などを支援するシステムです。すでに全国1300個所にある営業所向けには、Windows NT 3.51サーバとWindows 95クライアントを使って1997年に導入したC/S(クライアント・サーバ)型の営業支援システムがあります。このシステムを更新することと、これまでは十分に整備されていなかった代理店向けの営業支援システムを充実することが当面の目標です。2002年4月までに代理店向けシステムを、2002年10月までに営業所向けシステムを展開する計画です。

―― このプロジェクトにMicrosoft .NETテクノロジを採用するということでしょうか?

蔭山:今回のプロジェクトでは、既存の技術であるマイクロソフトのCOMをベースとした3階層システムを採用することにしました。もちろん、今回のプロジェクトは新しい情報システム構築に向けた第1歩になるのですが、次世代基盤技術の選定については、これとは別に、もう少し時間をかけて評価・検討することにしました。

―― 次世代の情報基盤に必要な要件は何でしょうか?

蔭山:まず大きな方向性として、いま述べた代理店展開や、現行のC/S型システムの反省、BtoCやBtoBのさらなる普及を考えると、インターネット技術をベースとするWeb型システムに向かうべきだと考えています。現行のC/S型システムでは、クライアントとなるWindows 95マシン向けに専用のフロントエンド・アプリケーションをインストールして使用しています。これまでは、自社の営業所向けのみのシステムだったので、これでやってこられましたが、代理店のPC環境をこちらで管理できるわけではないので、Webブラウザだけで何でもできるシン・クライアントでなければシステムの展開や拡大ができません。

 また現行のC/S型システムでは、全国1300拠点ごとに最低でも2台のWindows NT 3.51サーバを配置し、その下にWindows 95クライアントが20〜50台程度接続されています。つまり、全国に数千台のサーバPCがあり、数万台のクライアントPCがあるわけです。サーバのメンテナンスやクライアント・ソフトウェアのバージョンアップなどにかかる運用コストは莫大なものです。これらを見直すには、拠点サーバをなくす方向で考える必要があるでしょう。

 すでに運用を開始していますが、インターネットを利用したダイレクト・チャネルは、インターネットの普及に伴って今後ますます重要になってくるでしょう。これらを総合的に考えると、やはりWeb型システムを指向せざるをえません。

―― そのWeb型システムの基盤技術として、Microsoft .NETの採用を検討しているということですね?

蔭山:そうです。可能性の1つとして評価を開始しました。

―― .NET以外の選択肢としてはどのようなものがあるのでしょうか?

蔭山:C/SシステムからWeb型システムという流れは、水平分散から垂直統合への回帰という側面もあり、Javaやメインフレームを活用したソリューションもありうるのではないかという議論が社内にあります。.NETも含め、明治生命の次世代情報システムを担う基盤技術として何が適しているのか? それをあれこれ試行錯誤しながら検討している最中です。

―― その試行錯誤の1つとして、.NETを利用したパイロット・プロジェクトを開始したのですね?

蔭山:明治生命では、MS-DOSの時代からマイクロソフト製品をクライアントOSとして使ってきており、現行のC/Sシステムも含めて、マイクロソフトOS上でVisual Basic(以下VB)を利用した自社向けソフトウェア開発に長年携わってきました。こうした経験やノウハウを生かし、VBプログラマがWebアプリケーション開発に移行しやすい環境として、.NETを検討するのは必然的なことです。そこで、まだVisual Studio .NET(VS)ベータ1が発表されたばかりの時期だったのですが、マイクロソフトさんの推薦もあって、パイロット・プロジェクトを始めて.NETを体験してみようということになりました。

―― パイロット・プロジェクトの規模や内容はどのようなものですか?

蔭山:現行のC/S型システムの開発や保守に携わった3名のプログラマでチームを編成し、ここにマイクロソフトのコンサルタントの方に入っていただきました。開発するのは、営業所などで必要とされる顧客管理のシミュレーション・システムです。営業所では、氏名や住所、生年月日といった基本情報や、家族構成や趣味などの顧客情報を営業職員が登録し、保険設計書を作成したり、誕生日などの節目情報を検索したりするために使用しています。こうした営業活動の中心となっている顧客情報管理システムを.NETを使ってWeb型システムに作り変えてみるというものです。現行システムの開発や保守に携わったプログラマに実際に.NETを体験してもらい、評価するという目論見です。開発期間は3カ月としました。

―― 開発言語には何を使ったのでしょうか? VB .NETですか? C#ですか?

森:Visual Basicの開発経験があるということから、VB .NETを使うことにしました。

―― 今回実際にVB .NETに触れてみて、いかがでしたか?

明生システムサービス(株)
情報システム開発部
個人営業システム開発室 
森智範
「私たちが最初に遭遇したハードルは.NET Frameworkではなく、Web型のオブジェクト指向プログラミングを理解することでした」

森:私たちが最初に遭遇したハードルは.NET Frameworkではなく、Web型のオブジェクト指向プログラミングを理解することでした。これまで私たちは、C/Sシステム開発の経験しかなく、Web型の3階層モデルのシステムを開発したことはありませんでした。3階層モデルでは、オブジェクト指向のスキルが必須です。そこでプロジェクトの最初の1カ月は、いきなり具体的なパイロット・プロジェクトの設計に入るのではなく、マイクロソフトのコンサルタントの方に講師をお願いして、3階層モデルやオブジェクト指向プログラミング、過去のVBと新しいVB .NETの違いなどの基礎学習にあてました。実際にプロジェクトの設計に入ったのは2カ月目からで、現行システムの設計仕様書を持ってきて、設計を開始しました。これも初めての経験だったのですが、クラス設計では、UML(Unified Modeling Language)を使いました。

―― UMLツールとしては何を使ったのですか?

森:あくまでクラス図を作成するための作画ツールとしてVisioを使いました。VS .NETのエンタープライズ版には、ソースコード生成機能を含むUMLサポート機能を持つVisioが同梱されているようですが、私たちがプロジェクトを開始した時点で提供されていたVS .NETベータ1にはそのような機能は提供されていませんでした。何しろ初めてでしたので、使いこなすというところまでは到底至りませんが、でもUMLを使うことでクラス設計の見通しは非常によくなると思いました。

―― クラス設計は順調に進みましたか?

蔭山:いずれも現行システム開発などにかかわったプログラマだったので、業務分析などは十分にできていたのですが、何をクラスにすればよいのか、答えが簡単には見つかりません。Visioでクラス図を作成し、マイクロソフトのコンサルタントの方に修正をお願いするという作業を繰り返しました。

森:機能単位、処理画面単位で作業を分担して、おのおのがクラス設計にチャレンジしたのですが、最初のうちは3人で意見が大きく食い違いました。コンサルタントの方に意見していただき、修正するうちに意見は集約されていきましたが。

―― VB .NETを使った実装作業はどうでしたか?

森:いま述べたとおり、オブジェクト指向プログラミングという意味では大変苦労しましたが、基本的な言語仕様はVB .NETでも従来と同じなので、コーディング作業自体はそれほど負担ではありませんでした。ただ私は古いVB 4.0の経験しかなく、例えば構造化例外処理(Try〜Catch〜Finally)などのコーディング経験はなかったので多少のとまどいはありました。しかしそれでも、一足飛びにC#に移行するよりは、VB .NETのほうが親和性は高いと感じています。

―― 今回はVS .NETを利用してWebアプリケーションを開発したわけですが、画面設計についてはどうでしたか?

森:VBでのフォーム・デザインと大きく違わずに、簡単にWebページ設計ができました。また、ユーザー・インターフェイス・デザインと、それらの部品に関するプログラミングも、従来のVBとまったく同様に進めることができました。

―― プロジェクトの期間は3カ月とのことですが、予定どおりに進みましたか?

森:とにかくオブジェクト指向設計を学習するという最初の部分で時間がかかってしまいましたから、2カ月目に設計に入ったばかりのころは、当初予定していた機能をすべて実装するのは不可能だと考えていました。けれども結論からいえば、あまりテストに十分な時間を割けなかったとはいえ、当初の機能をすべて盛り込むことができました。プログラミング・モデルへの理解さえクリアしてしまえば、実装にはそれほど時間はかかりません。それだけVS .NETが優れた開発環境だということなのだろうと思います。

―― 最後に、今回のパイロット・プロジェクトと.NETの評価についてお聞かせください。

蔭山:いま述べたとおり、多少の紆余曲折はあれ、予定の期間中に予定の機能を実装できたわけですから、VBプログラマのスキルが生かせるという点も含めて、.NETには好感触を得ています。ただし全社的な基盤技術の選定にあたっては、業界や社会全体の動向に加え、システムの開発効率やメンテナンス性、初期コスト、ランニングコスト、開発要員の問題などをトータルに考慮する必要があると考えています。 End of Article



Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間