[検証実験]Webシステム開発の効率化を検証する
第1回 検証の趣旨と準備作業
石原篤一テンアートニ
2002/4/16
Webアプリケーション開発を立ち上げるのは 簡単ですか? |
現在、J2EEベースでのWebシステム構築は、ECサイトやBtoB、イントラネットに至るまで、幅広い分野で一般的になってきました。
これまでJ2EEベースのWebシステム構築に携わってきた企業や組織では、Webアプリケーション開発に関する基礎的な技術やノウハウをすでに習得し、現在ではより高度な機能を備えたシステム、大規模システム、パフォーマンスやスケーラビリティ、アベイラビリティに優れたシステムなど、基幹業務やよりクリティカルな要件にこたえるシステム構築の実現に向けて進んでいる段階にあるといえます。
その一方で、J2EEベースのWebアプリケーションを重要な手段ととらえつつも、これまで本格的に取り組むには至らなかった企業もあるでしょう。しかし、現在のJ2EEベースのシステム開発の普及を受けて、既存の業務アプリケーションや社内イントラのJ2EE化に取り組もうとしている企業や組織も非常に多くなったのではないでしょうか。
そのような組織が、ある日突然J2EEベースのWebアプリケーションの開発を立ち上げなければならない状況になったとき、どのようなやり方で進めていくでしょうか。マネージャ的な立場から1つの単純な例を考えてみます。
- Javaを触ったことのある人がいなければ、Javaの講習に参加させる
- Javaの基本を覚えたら、Webシステム構築の講習に参加させる
- 2.のような人たちを何人かつくり、プロトタイプを作らせる
- プロトタイプができたら、その組織内で使うための小規模なシステムをテスト的に作らせてみる
- 実際に使用可能な小規模システムができる程度の技術力が付いたら、当初の目標に向けて具体的なプロジェクトを開始する
基本的に、自分たちで一から作っていく、というスタンスです。このような取り組み方の場合、経験上、大まかに2点の困難さが待ち受けていると思います。
1点目は、「開発環境をどう構築すればよいか分からない」という問題です。上の例では、2.から3.への段階で出てきます。講習を受けて、MVCモデルによる簡単なサンプルは作れるようになった(と思う)が、自分の組織に戻って開発環境をどう構築してよいか分からない、アプリケーションサーバは何を使えばよいのか? いくらかかるのか? どう設定すればよいのか? 作ったクラスファイルはどこにどのようにして置けばよいのか? といったものです。
2点目は、「システムの基盤アーキテクチャを設計・開発するのが難しく、安定したものができるまでには相当時間がかかる」という問題です。上の例では、4.と5.で出てくると思われます。なぜ難しいか、なぜ安定するまでに時間がかかるのか、の理由としては大きく2つ考えられます。1つは、J2EEベースのWebアプリケーションとして、MVCモデルの上にどのような構造を作っていけばよいか、また、ブラウザやHTTPを使うといったWebシステムの特徴にどう対応すればよいかなど、考慮すべき課題が非常に多いことです。もう1つは、それらの課題が、実用レベルのシステムを開発していく段階にならないとなかなか表面化せず、試行錯誤を繰り返していかなければならないことです。つまり、始めの段階では分かっていない課題が、実は山ほどあり、それらは手探りで進んでいく中でようやく少しずつ見えてくる、という状況です。大変さがお分かりいただけるかと思いますが、それでは、相当時間がかかる、とはどの程度でしょうか。経験上の感覚から乱暴にいってしまえば、小規模なWebアプリケーションの基盤アーキテクチャであっても、1.から5.まで進み、ある程度安定したものを構築するまで、早くても半年はかかると思われます。
1点目の問題で出ばなをくじかれ、開発が本格化してきたところで、2点目の問題で大きなリスクを抱える。現在、あるいはこれからWebアプリケーションの開発を立ち上げようという方々にとっては、このような状況を受け入れる余裕はないのではないでしょうか。これらの困難をどう乗り越えていけばよいのでしょう。
困難を乗り越えるには…… |
■開発環境の構築について
初期の開発環境としては、安価に入手でき、インストールも簡単で、動作の軽いアプリケーションサーバの選択をお勧めします。
初期の開発環境として、J2EEの最新仕様に完全準拠した、高価で、ハードウェアも高いスペックが要求される本格的アプリケーションサーバを選択することが最善であるかどうかは、検討する必要があるでしょう。本格的アプリケーションサーバは、重厚なシステム構築が可能である分、システム設定やアプリケーション配備に時間を取られる可能性もあります。
手軽な開発環境の構築を第1の要件とするならば、J2EEの仕様の中のServlet、JSPに対応した、Webコンテナだけを搭載するサーバ製品を選択することも、1つの方法です。開発立ち上げ時に扱う案件は、小規模から中規模のシステムであり、これらのうちの多くは、Servlet、JSPでカバーできます(図1)。
図1 |
また、選択したサーバ製品への、アプリケーション配備に対応した統合開発環境(IDE)を導入すると、より便利です。
■基盤アーキテクチャ構築のリスクについて
現在では、J2EEベースでのWebアプリケーション開発のためのフレームワーク製品が複数登場しています。それらを利用することで、基盤アーキテクチャを一から構築する必要がなくなり、自身のビジネスロジック構築に、より集中できるようになります。ビジネスロジック自体は、J2EEベースのWebアプリケーションで実現するからといって、特別難しさが増すわけではありませんので、リスクは大きく軽減することになります。また、基盤アーキテクチャは、案件ごとの内容の違いが少ないため、一度フレームワークを導入すれば多くの案件に対応できます(図2)。
図2 |
しかし、フレームワークの導入といっても、アプリケーションが個別の製品に依存してしまうことや、基盤アーキテクチャの部分の技術がいつまでも身に付かないのではないかという疑問で、不安感を持たれる方も多いでしょう。確かにフレームワーク製品への依存は避けられませんが、リスクを負ってでも自前で基盤アーキテクチャを構築した方がよいのか、あるいは、フレームワークに依存してでも、まずは安定した基盤の上でビジネスロジックの素早い実現を目指すのか、何を目的としているかによる、ということではないでしょうか。また、基盤アーキテクチャ部分の技術習得ですが、しばらくはブラックボックスとしてフレームワークを使ったとしても、J2EEベースのWeb開発に早く慣れ、フレームワークの構造に対する理解が深まってくることで、この部分に対しても取り組みやすくなる効果はあると思います。
実際に試してみよう |
それでは実際に、開発環境の構築と、フレームワークを使った開発を、皆さんにも一緒に試していただけるような形でご紹介していこうと思います。
開発環境の例としては、Windows環境とLinux環境の2種類を取り上げます。サーバ製品は、評価版がダウンロード可能な「iPlanet Web Server」(iWS)を使います。それに合わせて、統合開発環境として、無償の「Forte for Java Community Edition」 (FFJCE)を使います。iWSの主な特徴や、環境の構築手順については、すぐ後でご紹介します。また、フレームワーク製品は、テンアートニの「WebWorkBench DeveloperCafe」(WWB WDC)を使います。今回は、検証のための環境構築までを解説します。実際の開発については、次回ご紹介する予定です。
COLUMN 「iWSの特徴」 iWSはWebサーバという名前が付いていますが、Webコンテナを実装しています。Webコンテナを利用するための特別な設定というものはなく、インストール後、すぐにServletやJSPを実行できます。インストール作業もとてもシンプルです。 今回は最新バージョンの「iWS Enterprise Edition 6.0」を使いますが、このバージョンに実装されているWebコンテナの、主な機能を挙げます。
|
1/4 |
INDEX |
||
[検証実験]Webシステム開発の効率化を検証 第1回 |
||
Page1 Webアプリケーション開発を立ち上げるのは簡単ですか? 困難を乗り越えるには…… |
||
Page2 Windowsにおける環境構築 iWSのインストール Forteのインストール |
||
Page3 Linuxにおける環境構築 iWSのインストール Forteのインストール |
||
Page4 開発環境の動作確認 |
||
Java Solution全記事一覧 |
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (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に関する基礎知識を解説する。
|
|