Loading
|
@IT > 基幹業務システム構築にオープンソースを使うのは、本当に低コストなのか? |
手軽でライセンスが無料であることなどにより、SIの現場でオープンソースのアプリケーションサーバ(以下、APサーバ)を採用したという声を聞くが、本当にオープンソースは低コストなのだろうか? システム開発全体のコストで考えると、決してそうとは限らない。日立製作所の統合システム構築基盤「Cosminexus(コズミネクサス)」の中核であるAPサーバを例にとって、さまざまな観点から考察してみた。 SIの現場でオープンソースの採用が増えているという。手軽に入手できるオープンソースのAPサーバとして「Tomcat」をご存じの方も多いだろう。サーバサイドシステムの構築におけるAPサーバの選定において、Javaは標準技術であるが故にその差別化が難しい。そのため、商用製品ではなくオープンソースを選択してもよいのではという意見を聞くこともある。 オープンソースのAPサーバを用いたシステムは数多くあるが、業務向けアプリケーションの構築を考えたとき、アプリケーションの実行環境に加え、トランザクション管理やデータベース(以下、DB)連携など、さまざまな要素が要求される。加えて、開発生産性や保守性、拡張性の高さも求められることになる。特に、大規模システムや基幹系システムでは、これらの要件に対する要求は高くなるだろう。 その場合、システムを構築し安定した運用をする場合に、オープンソースのみで構築されたシステムは本当に低コストとなるのだろうか? ライセンスは無料だが、システム開発全体のコストで見ると、関連製品・サポート体制の充実した商用のAPサーバの方が安価になる場合も見受けられる。 日立製作所の統合システム構築基盤「Cosminexus」の中核であるAPサーバ「uCosminexus Application Server」(以下、Cosminexus APサーバ)では、SIの観点に立った強力な機能を用意しており、導入・運用コストを低減できる。Cosminexus APサーバは拡張されたJava VMのパフォーマンスと可用性、豊富な対障害機能が特長だ。基幹系システムで多くの実績があり、統合システム運用管理「JP1」との連携や高速なJavaバッチ処理を可能にしている(図1)。
今回は、コスト面での観点を中心にCosminexus APサーバのアドバンテージを7点に絞ってまとめてみた。1つ1つ具体的に見ていこう。
まず、環境構築のフェイズを見てみよう。Tomcatに代表されるオープンソースのAPサーバなどを採用したWebシステムの場合、環境構築のための各種パラメータ設定において非常に難儀しやすいのではないだろうか。一方、Cosminexus APサーバでは、基本的な環境構築は構成パターンと接続先DBを選択するだけのウィザードで設定できる。加えて、各種パラメータ設定については、典型的なシステム構成に対応するパターンに適したパラメータを自動設定してくれるので、必要最小限の設定のみでサーバを構成できるようになっている。 また、オープンソースのAPサーバでのアプリケーション開発は、統合開発環境にEclipseを利用するのが標準的なスタイルであろう。しかし、Eclipseは柔軟な開発環境であるが故に、プラグインの選択などが開発者に任され開発環境の整備に時間がかかることがあるのではないだろうか。その点Cosminexus APサーバには、開発環境に日本語版MyEclipseが提供されている。 MyEclipseは、必要なEclipseプラグインが始めから用意されているので、開発環境の整備の手間がなく、すぐにアプリケーション開発を開始できる。さらに、テスト環境上でのテスト/デバッグなどの操作も、すべてMyEclipse上で実行できるのだ(この詳細については、連載 「開発マネージャーのMyEclipse指南塾」を参照してほしい)。 また環境構築のフェイズでは、サポートも重要なテーマだが、日立製作所のサポート力に関しては、後ほどのポイント【3】で詳しく説明しよう。 次は、アプリケーション開発を効率化し、メンテナンス性を高めるミドルウェアの選択についてだ。業務統合/拡張/連携を、既存のパッケージを利用せずにすべて独自のシステムとして開発するのは大きなリスクを伴うといって過言ではない。 前述のように、CosminexusにはSIの現場で切磋琢磨されたミドルウェアが豊富なので、開発の生産性やトータルでのコストを考えると、大きな効果が期待できる。
Cosminexus APサーバは、業務統合や業務拡張を実現するSOAの概念に基づくSIのコアとなるエンジンだ。ERPパッケージなどの会計システムや、そのほかの業務システム、レガシーアプリケーションなどをプロセス統合、対話ワークフローによって統合・拡張できる。 また、すばやく始めるポイントソリューションから大きく描くトータルソリューションまで、豊富に用意されたミドルウェアを組み合わせて実現可能な点も魅力である。これらを、オープンソースをベースに独自に開発するとなると、相当な工数になるはずだ(図2)。
オープンソースのソフトウェアを使ううえで最も覚悟しなければならないのは、基本的にサポートサービスが受けられない点だ。その点、商用製品では、製品を提供するベンダからサポートが受けられる。しかし、そのサポートの度合いも企業によって差があるといわざるを得ない。Cosminexus APサーバの場合は、問い合わせや対応のための窓口を一本化し、国産という強みを活かした身近できめ細かいサポートサービスを提供している。 また、多くの商用サーバが海外製であるのに対し、Cosminexus APサーバは日立製作所の技術者が自ら開発を行っている。Java VMについても自ら拡張しているため、コードレベルでのきめの細かなサポートが実現できるのだ。さらに、問題の発生条件や回避策、重大なバグなどの情報は、常に日立製作所からユーザーにプッシュで配信されている。加えて、新バージョンで発覚した問題を旧バージョンにも反映しているそうだ。 数値的に見ると、発生した障害の解決は1日以内で55%が解決し、約90%は1週間以内で解決しているという(図3)。
Cosminexus APサーバでは、アプリケーションやリソースの稼働状態を監視して、障害の予兆を検知し、障害発生を予防できる。また、“しきい値”を設定して監視することで、“しきい値”を超えた場合に自動的に対処するためのアクションも定義できる。 例えば、リクエストの集中でフルガベージコレクション(以下、フルGC※)が多発しシステムがスローダウンする前に、その回数を制限してパフォーマンスの低下を防ぐことができる。
オープンソースのAPサーバだと、アプリケーションを作り込むことによってフルGCの多発を予見しリクエスト数に制限をかける対処法が一般的だったが、Cosminexus APサーバは標準の機能としてこれを備えている。もちろん、フルGCの“しきい値”を超えた場合にリクエスト数(同時実行回数)を減らす処理を自動実行することも可能だ(図4)。
Cosminexus APサーバは、障害発生時の可用性を高めるために、きめ細やかなタイムアウトの設定が可能になっている。例えば、以下の通信間などできめ細かくタイムアウトが設定できる。
これによって、通信先のマシンに障害が発生している場合でも数秒で障害を検知でき、無応答などによってサービスを停滞させることがない。さらに、アプリケーションのメソッドレベルの処理にもタイムアウトを設定できるため、無限ループの発生に対しては速やかに処理をキャンセルし、業務を継続できる。 障害時の解析のしやすさでもCosminexus APサーバは定評がある。Java VMを拡張し、通常では取得できない詳細なJava VMレベルでのログ収集を実現している。さらにトレース機能も充実させることで、障害発生時の要因分析やシステムの状態確認が容易になっている。そして、このログを利用し、適切なチューニングを実施することで、システムの可用性向上が図れる。
コンプライアンス確立のための重要な要素に、内部統制の強化がある。内部統制の目的は、いつ、誰が、どんな業務を実行したかを把握して、業務が各種法規制に準拠して遂行されていることを検証することだ。 検証するためには、「担当者が適切に業務を実施したかを検証できる」ということだけでなく、「その検証が確かであることを、監査の担当者に証明できる」ことも必要だ。Cosminexus APサーバは、この内部統制のための機能を日立製作所のRDBMS「HiRDB」と組み合わせて実現できる。 Cosminexus APサーバでは、DBが出力する「監査証跡情報」(「誰が」「いつ」「どのようなDBアクセスを実行したか」を示す情報)に、APサーバのどのリクエストでDBアクセスが実行されたのかを示す情報を出力できる。この情報とJava EEアプリケーションで出力するログ情報などを組み合わせると、APサーバのどのユーザーの操作の延長としてDBアクセスが実行されたのかを追跡できるのだ(図5)。
Javaを基幹系で使用するためには、超えなければならないハードルがある。パフォーマンスはもちろんだが、メインフレーム同様のスケジューラやジョブ制御などの機能を実現することだ。しかし、オープンソースのAPサーバだけではこれらの機能を実現するのは容易ではない。 一方、Cosminexus APサーバは標準でバッチジョブに対応し、オープン環境であるJavaの実行環境で基幹業務への対応を可能にしている。メインフレーム上で実現されているバッチジョブをオープン環境で実現することに加え、Javaのメリットである柔軟性や運用の容易性が提供できることが大きな特長である。さらに、バッチアプリケーションを常駐型のJava VMプロセスであるバッチサーバで実行することによって、ジョブを実行するたびにJava VMを起動するコストを抑えられ、起動性能の問題を解決できるという(図6)。
さらに、Cosminexus APサーバはバッチジョブを実行するうえでのJavaの構造的なデメリットを改善している。前述したJava VMのフルGCが実行されると、そのJava VM上での処理はすべて中断される。バッチサーバ上のアプリケーションがリソースを排他状態で使用しているときにフルGCが実行されると、排他したままでも処理が中断されてしまうのだ。さらに、同じリソースを使用したいオンライン処理の実行も中断されてしまう。 Cosminexus APサーバは、この問題をフルGCの実行タイミングを制御することで解決している。リリースが排他されていないタイミングを見計らって、フルGCを実行。意図しないタイミングでのフルGCを抑制できるのだ。 ◇ 以上、Cosminexusのアドバンテージをいくつか見てきたが、SIという観点に立ったとき、つまりビジネスの拡大に伴い基幹システムへのJavaの適用を考えたときに、その適用効果は高いといえるだろう。そして、トータルコストにおいては、「ライセンス」といった観点だけでなく、構築、運用、保守などの観点も含めたうえで、コストについて把握する必要があることをご理解いただけたと思う。 さらに日立製作所では、Tomcatからの移行を検討中の方や、システムの運用コストや保守コストに悩んでいる方を対象に、「TomcatからCosminexusへの移行体感セミナー」を定期的に開催している。今後のシステム更改や拡張をお考えの方は、一度参加してみてはいかがだろうか。
提供:株式会社日立製作所 企画:アイティメディア 営業局 制作:@IT編集部 掲載内容有効期限:2008年3月31日 |
|