Java活用にまつわる諸問題を解決し、アプリケーションの長期利用を可能にするミドルウェアとは?変化を続ける企業システムへの潤滑油

従来からのCOBOLやCに代わり、企業システムの多くにはJavaが開発言語に用いられているのが現状だ。だが、Javaアプリケーションを運用する上では、サーバ更改のたびにアプリケーションの改修が発生したり、運用の安定性確保に苦労したりするなど課題も多い。これらの問題を抜本的に解決し、「アプリケーションの長期利用」と「システムの安定運用」を実現する切り札が、富士通のアプリケーションサーバ「Interstage(インターステージ)」だ。

» 2011年11月16日 10時00分 公開
[PR/ITmedia]
PR

Javaアプリケーションが直面するいくつかの課題

 企業システムは時代の要請に応えるべく、その姿をさまざまに変えてきた。障害対策の高度化のために、ホットスタンバイ型からロードシェア型へとシステム構成は進化し、利用形態もオンプレミスから各種クラウドを組み合わせたものへと発展を遂げつつあるが、システム部門の現場では、業務ベースの課題が山積みだ。その例として、Javaの利用機会増に代表される実行環境の変化や、それに伴うアプリケーション側の対応などは、多くのシステム管理者にとって頭痛の種となっている。

 アプリケーション開発の現場で長らく利用されてきたプログラミング言語であるCOBOLやCに代わり、再利用性を向上させ開発効率を高めるために、基幹システムにおいてもJavaが開発言語に採用されることはもはや珍しくはない。ただし、Javaとひと口で言ってもバージョンはいくつも存在し、それらの互換性は完全には保たれていないのが実情だ。そのため、長年のシステム運用の過程において、サーバ更改などにより実行基盤が刷新された場合には、非互換性に対応するためのアプリケーション側の改修作業が必須となる。そのために多大な手間とコストを要することが、既存アプリケーションの長期利用における“壁”となっていたのである。

 また、JavaアプリケーションはそもそもFull GC(ガベージ・コレクション)という技術的な問題を抱えている。これは、メモリ解放に伴うアプリケーションスレッドの停止がアプリケーションに不具合をもたらす現象だが、細かなチューニングによってFull GCの発生回数こそ減らせるものの、完全に抑え込むことは原理的に難しい。そして、“Stop the World”とも揶揄されるこの現象によって、Javaアプリケーションは運用の安定性確保にも苦労を強いられているのである。

富士通 ミドルウェア事業本部 アプリケーションマネジメント ミドルウェア事業部 第一開発部 マネージャー 木戸秀一氏 富士通 ミドルウェア事業本部 アプリケーションマネジメント ミドルウェア事業部 第一開発部 マネージャー 木戸秀一氏

 さらに、ICT資産を最適化していく上では、仮想化技術を活用したハードウェアの集約がここにきて大きな注目を集めている。クラウド環境への移行も、その1つである。が、すでに述べたJavaの非互換性がここでも壁となっている。富士通 ミドルウェア事業本部 アプリケーションマネジメント ミドルウェア事業部で第一開発部 マネージャーを務める木戸秀一氏は、「業務システムごとに個別導入してきたサーバを集約し、運用効率を高めるとともにコストの削減にもつなげたいとのニーズが急速に盛り上がっています。ただし、統合したいシステムは極めて膨大な数に上り、それぞれで実行基盤などに細かな違いがあることから、具体的に作業をどう進めていくべきかに悩むお客さまは決して少なくありません」と現状を説明する。

 では、長期利用や安定運用に向けて、企業はどう対策を講じるべきなのか。その解決に向けた“切り札”と位置付けられるのが、分散オブジェクト技術仕様であるCORBA(コルバ)に準拠したアプリケーションサーバとして10年も前に登場し、以来、JavaやJ2EE、Webサービスといった標準技術をいち早くサポートしてきた富士通の「Interstage」である。 Interstageは、複数バージョンのJavaをサポートしてアプリケーションの長期利用を可能にするとともに、富士通独自のFull GC抑止技術などにより、Full GCによって起きる弊害を回避する機能を備えている(関連記事:Interstage開発者インタビュー[富士通])。

サポート手厚く、アプリの長期利用を支援

 一般に企業向けのサーバはサポート切れや老朽化などを理由に約5年ごとに更改される。その際にOSやミドルウェアも併せて更新されることが、アプリケーション改修が必要なそもそもの理由である。安定稼働していたアプリケーションに手を加えた際には、それが原因で問題が生じるリスクを覚悟する必要があった。

 Interstageの特長は「1サーバで複数バージョンのJavaをサポートする点」にある。サーバ更改の前後のシステム環境を見極め、適切に導入すれば、アプリケーションに手を加えることなく移行作業を完了できる。つまり、サーバ更改に伴う手間とリスクを大幅に低減できるわけだ。

 「安定した既存のJavaアプリケーションをそのまま利用し続けたいとのニーズは根強いですが、Interstageであれば、そうした要望にも柔軟に応えられます。一方で、実行基盤の段階的な刷新に活用することで、システム刷新の抜本的な見直しに向けた事前準備を進めることも可能です」(木戸氏)

 一般的なミドルウェア製品は出荷開始から約5年で標準サポートが終了することも長期利用を阻害する原因になっている。アプリケーションの開発から運用までは「トータルで7年ほどを要することも珍しくはない」(木戸氏)ため、場合によっては運用期間中にサポート切れを迎える可能性も否定できない。だが、Interstageは販売終了から5年間、または出荷開始から7年間もの長期サポートを提供する。このことから、アプリケーションの長期利用におけるInterstageの有効性は明らかである。

販売終了から5年間または出荷開始から7年間のサポートで、アプリケーションの長期利用を可能に 販売終了から5年間または出荷開始から7年間のサポートで、アプリケーションの長期利用を可能に

トラブルの予兆検出から原因の究明まで

 FULL GCへの対応はどうか。この問題を解決すべくInterstageが実装する機能が、アプリケーションの各スレッドでGCを意図的に発生させてメモリをこまめに解放し、FULL GCの発生頻度を大幅に削減する富士通独自のFull GC抑止技術である。その効果は大きく、従来のパラレルGCと比べてFULL GCの発生回数を93%も抑えられ、レスポンスも20%向上することが、実測結果において確認できているという。

 「サーバに搭載されるメモリが数ギガを超え、Javaのヒープサイズも巨大化しつつあることから、FULL GCによる停止時間は長引くことが多いです。実際に、あるお客さまでは1時間おきに数十秒もアプリケーションが停止する事態が発生していましたが、Interstageの採用によって、この問題も抜本的に解決されています」(木戸氏)

 Interstageでは予兆監視機能を活用することで、トラブルの発生を未然に検知した際は対応を促すためのアラートを発するとともに、その原因を探るための調査資料を自動的に採取する。

 また、予期せぬアクセスの急増などに対しても、スレッドの自動拡張/縮退や上限設定を可能にした「スレッド制御」と、プロセスの多重度設定や動的追加による処理能力の増強を実現した「プロセス制御」を組み合わせることで、極めて高い安定性を確保。万一のトラブルの発生時にも、Java VMの異常終了の検出から代替プロセスの起動、無応答アプリケーションの代替プロセスへの切り替えまでが自動化されており、システムのダウンタイムを最小限に抑えられる。さらに、自動採取された調査資料を基に、トラブルの根本的な原因と解決法を突き止めることもできるのである。

アプリケーションの特性に応じたGC制御により安定レスポンスを実現 アプリケーションの特性に応じたGC制御により安定レスポンスを実現

システムの大規模化も踏まえて機能を強化

 これらの利便性が総合的に高く評価され、中堅企業から大企業まで業種業態を問わず、さまざまな企業にInterstageが導入されているという。用途の裾野も、サーバ集約から最近ではシステム統合を通じたデータ共有/活用の促進まで広がりをみせる。そうした中での富士通の強みは、製品ラインナップを幅広く展開している点にある。

 「クラウドやデータベースなど、富士通は数多くの商品やサービス、さらにシステム構築におけるフレームワークを取り揃えています。Interstageにより強固なシステム基盤を構築した上で、それらを柔軟に組み合わせることで、お客さまの求めるあらゆるシステムを提供することができます」(木戸氏)

 アプリケーションの長期利用とシステムの安定運用をもたらし、さらにはICT資産の最適化にも大きく貢献するInterstage。システムがさらに複雑化する中、ICTコストをいかに抑えて効率的な運用をしていくかが企業で求められる今、その存在感はさらに増すことになりそうだ。

開発者に聞く、これからのアプリケーションサーバに求められる要件

Copyright © ITmedia, Inc. All Rights Reserved.


提供:富士通株式会社
アイティメディア営業企画/制作:ITmedia エンタープライズ編集部/掲載内容有効期限:2012年1月30日