「WebシステムであってもC/Sシステムと同様の操作性を実現する」ことがリッチクライアントの特徴です。すでに動作しているC/SシステムをWebシステム化する場合どんな考慮が必要なのでしょうか。
C/Sシステムの代表格はVB(Visual Basic)により構築されたシステムです。Webシステムへ移行する際のポイントは、システム形態の違いと開発言語です。Webシステムへの移行の方法は2つあり、1つはCitrix Presentation Server(旧MetaFrame)に代表されるターミナルソリューソンを利用する方法です。
ターミナルソリューションはサーバですべての処理を行い、クライアントはシンクライアントでもよいという、サーバを有効に利用するアプローチです。
一方、リッチクライアントはクライアントの充分なスペック、CPUパワーを有効に利用しようというアプローチです。この2つのアプローチは対極にあるといってよいでしょう。
ターミナルソリューションでは、クライアント数の増加はサーバの台数やリソースの増加に直結します。例えば、「サーバに費やすコストが、VB資産を捨てて新規に開発するコストより少ない」「クライアントには一切データを転送せずにセキュリティ確保したい」といった場合には有効です。また、ターミナルソリューションは単にアプリケーションをWeb化するということでなく、「クライアントを統合する」という大きな構想のもとに行うものだと思います。
ここではターミナルソリューションを利用せずにVBでのシステムをリッチクライアントに移行した事例を紹介します。
まず、以下のことが要件としてあげられました。
- 既存資産を有効活用
-
- GUIおよび入力インタフェースを継承
- 運用にあたっての再教育の不要
- 短期間での移行作業
- 将来性を見据えたシステム構築
-
- 既存システムの操作性/応答速度の実現
- アプリケーションの再配布が不要
表:ターミナルソリューションなしでリッチクライアントへ移行する要件
システム資産としては、フォームが31画面、標準モジュールが8ファイル、VB総ステップ数が80kステップ。また他の特殊な処理として、DB-Gridを使用した印刷が17帳票、Excelとの連携を使用した印刷が19帳票でした。
要件を考慮した結果、VBによるシステムをBiz/BrowserのCRS環境に変換する「VB/Bizコンバータ」(開発元:株式会社エム・アール・オー)を利用してWeb化したソリューションを説明します。
図1:VBの画面 (画像をクリックすると別ウィンドウに拡大図を表示します)
図1のVBでの画面を「VB/Bizコンバータ」を通してBiz/Browserの画面に変換したものが図2となります。
図2:Biz/Browserの画面 (画像をクリックすると別ウィンドウに拡大図を表示します)
レイアウトについてはほぼ同じですので、既存システムの操作性はWebシステム化しても継承しています。ではC/SシステムからWebシステム化への「移行」はこれだけで済むのかといえば、もちろんそうではありません。Biz/Browserはクライアント側での処理ですから、データベースアクセス部分をどうするのかという検討が必要です。
また、このシステムはExcelと連携して印刷も行っています。画面に対するコンバートだけでなく、サーバ側の構築も含めた「VBコンバージョンサービス」の概要図が図3です。
図3:コンバージョンサービス (画像をクリックすると別ウィンドウに拡大図を表示します)
「画面レイアウト」「ビジネスロジック」はCRSに変換し、データベースアクセス部分は「TableDesigner」というツールを利用して.NET、Java対応のモジュールに変換します。
図4はデータベースアクセス部分のコンバート例であり、カスタマイズを可能とするためにコメントを付加しています。
図4:コンバート例 (画像をクリックすると別ウィンドウに拡大図を表示します)
こういったサーバ側へのアクセスロジック部分は自動変換され、システムに拡張性を持たせるためにXML対応も同時に行っています。Excelとの連携を使用した印刷は既存のExcelシートにマクロ定義を追加し、Biz/Browserのローカルへのファイルアクセス機能を利用し、「Biz/Browser → CSVファイル → Excelファイル」といったファイル変換の連携で代替処理を実現しました。
結果として、拡張性の確保とリッチクライアントによるサーバコストの軽減を実現し、設計の開始から本稼動まで5ヶ月という短期間で移行を完了しました。新規に開発を行った場合には、おそらく2倍の期間では収まらなかったでしょう。
続いて、Webシステム化する際にフロントエンドとしてBiz/Browserを利用し、既存システムや資産を有効に利用した上で開発生産性を高める手段として、Biz/Browser側の画面を自動作成する他の例を紹介します。
|