TOPシステム開発> Javaのシステム更改についてありがちな事例と対処法




システムの運用と保守
システムの運用・保守を考えていますか?

第4回:Javaのシステム更改を考慮していますか?

著者:みずほ情報総研  老川 正志   2007/9/28
1   2  3  次のページ
Javaのシステム更改についてありがちな事例と対処法

   これまで3回にわたり、Javaの運用・保守を考慮したシステム開発について説明してきましたが、今回が最終回です。最終回はJavaのシステム更改についてありがちな事例と対処法を説明します。

   システムの運用・保守の段階では、システム更改は必ず発生するものです。お客様の要望による更改、不具合の解消による更改と理由はさまざまですが、読者の皆さんも表1のようなシステム更改に関する経験はないでしょうか。
ケース1
Javaで作成したWebアプリケーションのシステムで、「ブランドロゴの画像ファイルを変えたい」というお客様の要望。お客様はサーバ上の画像ファイルを置き換えるだけだから、作業工数はそれほどかからないと予想。
しかし画像ファイルをWebモジュール(.warファイル)の中に格納しているため、アプリケーションのビルドとアプリケーションサーバへのデプロイが必要となり、作業工数が予想以上にかかってしまった。
ケース2
法律改正に伴い、システムの機能改修が必要となった。システム更改の際、アプリケーションの更新のため、アプリケーションサーバの再起動(=システムの停止)が必要であり、お客様へ「システム更改の際、システムの停止が必要」と説明した。
しかし「業務を止めたくない。システムの停止をしない方法でシステムの更改をして欲しい」というお客様の要望があり、いろいろ対策を検討したが方法が見つからなかった。結局、お客様を説得した上で、業務を停止し、システムの更改を行った。

表1:システム更改に関するトラブル事例:

   ケース1については、画像ファイルのほかに「スタイルシートを更新したい」や「HTMLファイル中にある文章を変更したい」という要望が考えられます。画像ファイルやスタイルシートのような静的コンテンツがWebサーバに配置してある場合なら、ファイルをコピーするだけですみます。

   しかしJavaでWebアプリケーションを作成すると、静的コンテンツをWebモジュール(.warファイル)やエンタープライズ・アプリケーション(.earファイル)の中に格納することがあります。この場合、静的コンテンツを更新するには、アプリケーションのビルドとデプロイが必要になるため、ファイルをコピーするだけの更新と比べて作業工数が増えます。Webモジュール(.warファイル)やエンタープライズ・アプリケーション(.earファイル)の中に格納した構成は、パッケージ単位でのファイル構成管理のメリットがある反面、柔軟性に劣る構成といえるでしょう。

   またケース2については、「業務を停止する」ということを関係者へ事前連絡したり承認をとるといった手続きが必要となることがあります。このような場合は、システム更改に時間がかかります。

   今後起こり得るすべてのシステム更改を考慮したシステム開発はできませんが、システムの要件によって起こり得るケースを予め想定し、システム開発時から定型化作業ができるように考慮する必要があります。今回は、トラブル事例であげた各ケースの対応方法について説明します。


ケース1の対応法:コンテンツ配置の工夫

   ケース1は、画像ファイルなどの静的コンテンツをWebモジュール(.warファイル)の中に格納していることが原因です。対応方法としては、Webアプリケーションを構成するコンテンツを静的コンテンツと動的コンテンツに分離し、静的コンテンツをアプリケーションサーバ以外へ配置するようにします。

   具体的には3層構成のWebアプリケーションのシステムの場合、図1のように画像ファイルなどの静的コンテンツはWebサーバに配置し、サーブレットなどの動的コンテンツはアプリケーションサーバへ配置します。

コンテンツ配置の工夫
図1:コンテンツ配置の工夫
(画像をクリックすると別ウィンドウに拡大図を表示します)

   この工夫のポイントとしては、コンテンツの構成(配置方法)になります。現在のアプリケーションサーバは、オープンソースや商用製品を問わず、Webサーバと連携するプラグインが提供されています。

   このプラグインは、図1のような3層システム構成の場合に特定のディレクトリに対してWebサーバからアプリケーションサーバへHTTPリクエストを転送する機能を持ちます。この機能を使い、画像ファイルなどの静的コンテンツはWebサーバに配置するようにします。

   表2はコンテンツのディレクトリ構成と配置箇所の例になります。

種類 コンテンツ ディレクトリ コンテンツ配置箇所
静的コンテンツ 画像ファイル /images/ Webサーバ
スタイルシート /css/ Webサーバ
JavaScriptファイル /js/ Webサーバ
動的コンテンツ サーブレット、JSP /sample/ アプリケーションサーバ
(Webサーバから転送)

表2:コンテンツのディレクトリ構成と配置箇所の例

1   2  3  次のページ


みずほ情報総研株式会社 老川 正志
著者プロフィール
みずほ情報総研株式会社  老川 正志
技術企画部 システムエンジニア
2001年、株式会社富士総合研究所(現 みずほ情報総研株式会社)入社。システム開発部門への技術支援業務を経験後、データセンター ソリューション「TEXIV(テキシブ)」の立ち上げに参画、2002年から現職。現在は、ホスティングサービス事業の拡大のほか、システム開発効率向上の企画・調査を担当。


この記事の評価をお聞かせください
ボタンをクリックしますとウインドウが開きます。

INDEX
第4回:Javaのシステム更改を考慮していますか?
Javaのシステム更改についてありがちな事例と対処法
  ケース2の対応法:アプリケーションサーバを停止しないアプリケーション更新
  対応法2:Rollout Update
システムの運用・保守を考えていますか?
第1回 Javaで重要なことは開発ではない?
第2回 障害発生を考えていますか?
第3回 システム利用環境を考慮していますか?
第4回 Javaのシステム更改を考慮していますか?
関連記事
Javadocから考える開発ドキュメンテーション
Javaコーディング規約