|
基幹システムのオープン化の流れの中で、従来メインフレームやオフコンが担ってきた大規模システムをJavaで構築する事例が登場し始めた。Javaはエンタープライズ・システムの主役として、すでに十分な実力を身に付けたのだろうか? 当フォーラムが実施した第9回読者調査から、Javaシステム構築にかかわるエンジニアの実感を聞いてみよう。
■Javaシステム開発案件の内容は?
はじめに、読者が現在Javaでどのようなシステムを開発しているのか尋ねたところ、「イントラネット/社内情報系システム」および「情報配信やECなどの社外Webシステム」の2種類で、全体の約6割を占めた(図1)。いまのところ、Java開発案件の中心は、やはりWeb系システムであるといえる。ただしその一方、「財務会計や生産/販売管理などの基幹系システム」との回答も2割弱に上っており、Javaが基幹システム領域へも浸透し始めている様子がうかがえる。
図1 最近開発した主なJavaシステムの種類(N=390) |
■Javaシステムの開発/実行環境は?
では上記のようなJavaシステムの開発/実行環境には、現在どのようなプラットフォームが使われているのだろうか? まず開発環境を見ると、Windowsの利用率が8割を超え、ほかを大きく引き離している(図2 青棒)。Javaの開発ツールには、その性格上マルチ・プラットフォーム対応のものが多いが、開発環境としてのWindowsの優位性は、当分揺るぎそうにないもようだ。
一方で実行環境では、Windowsに加えてSolarisやLinuxなどの利用率も高まっており、プラットフォームの多様化が見られる(図2 黄棒)。これを図1の案件種別ごとに分析すると、Webシステム用途ではLinux、基幹系用途では各種商用UNIXの利用率が、より高くなる傾向にあった。このように、特定の開発環境から、利用目的に合わせたさまざまなプラットフォームにデプロイできる特徴が、Javaの用途を広げる原動力となっているようだ。
図2 Javaシステムの主な開発/実行環境(N=390) |
■Java基幹システム構築への実感
次にJavaによる基幹システムの普及の見込みに関するエンジニアの“実感”を尋ねたところ、「Javaによる基幹システムはまだ一般的でないが、技術的には充分可能」との意見がトップとなった(図3)。が、続いて「Javaによる基幹システム構築は、すでに一般的である」「Javaで基幹システムを構築するには、まだ多くの問題点がある」という相反した見解が拮抗しており、総じて前向きでありながらも、まだ全面的にはJava基幹システムにコミットしきれない、エンジニアの微妙な心情が表れているようだ。
図3 Javaによる基幹システム構築への実感(N=390) |
■Java基幹システム構築/運用上の課題とは?
では、読者がJavaで基幹システムを構築する際、いまどのような問題を感じているのだろうか? 複数回答で尋ねた結果、全体の過半数が「Javaで基幹システムを構築できるスキル/ノウハウの不足」を挙げている(図4)。Javaに限らず、現代のような変化の激しい時代に新しいテクノロジが普及するためには、その分野に関する教育・学習環境の充実が必須といえそうだ。
また人的側面に続いては、「パフォーマンス監視や障害切り分けなどのシステム運用管理」「連続稼働時のシステムの信頼性/可用性」「既存システムに比べた処理性能」といった項目が続いている。これらの中では、可用性や性能など大規模システムに必須な要件以上に、運用管理面のポイントが高くなったのが注目される。J2EEシステムは、旧来のホスト系システムと異なり、さまざまなベンダから提供されるハードウェア/ミドルウェアなどを組み合わせて構成することができる。しかしその自由度の高さ故、パフォーマンス監視や問題の切り分けが難しくなっていることは否めない。Java基幹システムがこの課題を乗り越えられるかどうかは、オープンシステムそのものの将来性を左右するものとなりそうだ。
図4 Javaによる基幹システム構築・運用上の課題(N=390 複数回答) |
■Javaシステムの負荷テスト/パフォーマンス管理状況
さて後半では、上述したJavaによる基幹システムの課題と関連して、Javaシステム構築/運用時の負荷テスト/パフォーマンス管理状況がどうなっているのか、見ていくことにしよう。
図5は、読者がJavaでシステムを構築する際、稼働前の負荷テストや稼働後のパフォーマンス管理をどの程度実施しているのかについて尋ねた結果だ。負荷テスト/パフォーマンス管理とも、「常に実施している」のは全体の2割前後にとどまっており、「予算と時間があれば実施している」「実施予定はないが、必要性は感じている」との回答が大勢を占めた。“分かっちゃいるけど、やれていない”のが、負荷テスト/パフォーマンス管理の現状であるようだ。
Javaのスキルを持った人材が不足しているし、基幹系システムは習得しなければならない範囲が広すぎ、なかなか負荷テストやパフォーマンス管理まで手を付けられないのが現状(製造業:SE) |
図5 Javaシステムの負荷テスト/パフォーマンス管理実施状況(N=390) |
こうした状況の中で、経験やノウハウの不足をカバーし、エンタープライズJavaシステムを構築するためには、ツールの活用が有効となるだろう。
まだ情報や技術が確立されているとは思えない。このため、われわれの技術蓄積や経験が遅れていると思う。今後、自分たちだけでゼロからやるのは難しいので、ツールをうまく活用したい(SI業:SE) |
では負荷テストやパフォーマンス管理に関して、具体的にどのようなツールが活用されているのだろうか?
■負荷テストツールの利用状況は?
まず負荷テストツールの利用状況を見ると、現在は「開発メンバーなどによる手動テスト」がメインであり、ツール類の活用はあまり進んでいない様子が分かる(図6 青棒)。もちろん手動テストであってもやらないよりはマシだが、本番環境に近い大規模トランザクションのテストを行うには、心もとない状況だ。
一方、読者が今後利用を予定/検討しているツールでは、Jakartaプロジェクトの「Apache JMeter」がトップに挙げられた(図6 黄棒)。市販ツールに比べて機能的には劣るものの、無償でソースも公開されているJMeterを利用することから、負荷テストの有効性を検証してみてはいかがだろうか?
図6 Javaシステムの負荷テストツール利用状況(N=390 複数回答) |
■パフォーマンス管理ツールの利用状況は?
最後に、Javaシステムのパフォーマンス管理ツールに関する、読者の利用状況を見てみよう。この分野では、現在のところ「OpenView」(日本ヒューレット・パッカード)や「Tivoli」(日本アイ・ビー・エム)といったシステム統合運用管理ツールのアプリケーション管理モジュールが、比較的利用されているようだ(図7 青棒)。最近ではそれらに加えて、J2EEパフォーマンス管理の専用ツールも登場しており、複雑なJ2EEシステムの問題発見と解決を支援する環境が整いつつある。当フォーラムでもJ2EEパフォーマンス管理についてさまざまな情報を提供しているので、関心のある方は下記の関連記事をぜひご参照いただきたい。
図7 Javaシステムのパフォーマンス管理ツール利用状況(N=390 複数回答) |
■調査概要
- 調査方法:Java Solutionフォーラムからリンクした Webアンケート
- 調査期間:2003年7月7日〜8月1日
- 有効回答数:390件
■関連記事
- Webサイト構築に必要なさまざまなテスト手法(連載:サーバサイドJava初心者のためのWebシステム入門)
- J2EEパフォーマンス管理の勘所
- 連載:J2EEパフォーマンスチューニング
- J2EE開発のパフォーマンス管理術(Development Style)
- 製品紹介:Wily4 Introscope
- J2EEミッションクリティカル時代のソリューションセミナーレポート(@IT [FYI])
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9)
ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 - Chatwork、LINE、Netflixが進めるリアクティブシステムとは何か (2017/4/27)
「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します - Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6)
ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について - プログラミングとビルド、Androidアプリ開発、Javaの基礎知識 (2017/4/3)
初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
|
|