20
1 Apache/Tomcat ~Servlet プログラムの問題点について~ 2012年1月18日 阪南大学 経営情報学部 経営情報学科 5108238 藤田 雄樹

Apache/Tomcat ~Servlet プログラムの問題点について~

Embed Size (px)

Citation preview

Page 1: Apache/Tomcat ~Servlet プログラムの問題点について~

1

Apache/Tomcat

~Servlet プログラムの問題点について~

2012年 1月 18日

阪南大学 経営情報学部 経営情報学科

5108238 藤田 雄樹

Page 2: Apache/Tomcat ~Servlet プログラムの問題点について~

2

目次

第1章 はじめに ............................................................................................................... 3

第2章 関連研究 ............................................................................................................... 4

2-1 Webアプリケーションの仕組み ............................................................................ 4

2-1-1 Webサーバについて ................................................................................... 4

2-1-2 Webアプリケーションについて ................................................................. 4

2-2 Apacheについて ................................................................................................... 6

2-2-1 Apache の歴史 ............................................................................................ 6

2-2-2 普及率と信頼性 ......................................................................................... 6

2-3 Tomcatについて ................................................................................................... 7

第3章 JavaServletについて .............................................................................................. 8

3-1 JavaServlet について .......................................................................................... 8

3-2 JavaServlet の特徴 .............................................................................................. 8

3-2-1 コールバック方式 ...................................................................................... 9

第4章 研究内容の詳細 ....................................................................................................... 11

4-1 研究のきっかけ ................................................................................................... 11

4-2 問題の詳細 .......................................................................................................... 11

4-2-1 画像表示の実行結果 ................................................................................ 12

4-2-2 画像形式の変更 ....................................................................................... 14

4-2-3 サンプルコードの改変 ............................................................................ 15

4-3 問題の推測 ......................................................................................................... 16

第5章 考察 ........................................................................................................................ 17

5-1 Apacheの問題点 ................................................................................................. 17

5-2 Apacheの今後 ..................................................................................................... 17

第6章 まとめ .................................................................................................................... 18

参考文献 ............................................................................................................................. 189

謝辞 ....................................................................................................................................... 20

Page 3: Apache/Tomcat ~Servlet プログラムの問題点について~

3

第1章 はじめに

現在 Web サーバソフトウェアとして利用されている Apache HTTP Server(以降 Apache)

は、世界でも高い普及率を獲得している。Apache が使用されるのは Tomcat ととの連携に

よる Web アプリケーション開発や Perl などの開発言語を使用した CGI の作成などが主で

ある。

近年、その Web アプリケーションを目にする機会も増えてきた。Web アプリケーションと

いうと実態が見えない、あるいは何か難しいような印象を受ける。しかし、実は我々が身

近に利用している掲示板やオンラインショッピング、今流行りの SNS なども Web アプリケ

ーションの 1 つの形である。今やほとんどの Web サイトに Web アプリケーションが使用さ

れていると言っても過言ではない。このように広く利用されている Web アプリケーション

だが、それらのシステムに使用されているのが Apache や Tomcat、JavaServlet 等の技術

である。

しかし、実際の Web アプリケーションや JavaServlet が具体的には一体どのようなもの

なのかは深く理解していないままであった。そのため、今回サンプルプログラムを利用し

て Web アプリケーションの開発を試みた。これによって Web アプリケーションそのものの

仕組みを確認するとともに、Apache や JavaServlet に関する知識と理解を深められると考

えたためである。

しかし、Web アプリケーションを開発する工程の途中で問題が発生した。高いシェア率

を誇る Apache や Tomcat を使用しているにも関わらず、開発工程にて問題が発生したとい

うことは、他の開発ユーザーにおいても同じ事例が発生している可能性があると考えた。

その後インターネットを利用して同様の事例が発生したかどうかについて調査してみた

が、全く同じ事例を見つけることができなかった。そのため、今後同じようなケースに陥

らないためにも、発生した問題について深く追求し、さらにその問題を回避する方法につ

いても考察していく。

本論文では、2章で Web アプリケーションの仕組みや Apache についてなどの関連研究

を記述し、3章では Servlet プログラムについて記述する。4章では実際に作成した作成

物や発生した問題の詳細について記述し、5章では4章を踏まえての今後の展開などにつ

いての考察を記述する。6章では考察を終えてのまとめを記述する。

Page 4: Apache/Tomcat ~Servlet プログラムの問題点について~

4

第2章 関連研究

本章では、本研究に使用されたシステムと技術についての説明を行う。第1節では、

Web アプリケーションの仕組みについて記述する。第2節では Apache について記述し、第

3節では Tomcatについて記述する。

2-1 Webアプリケーションの仕組み Web アプリケーションについて説明を行う前に、アプリケーションの動作に必要な Web

サーバについて説明する。

2-1-1 Webサーバについて Web サーバの動作は2つであり、Web サーバに蓄積された HTML ファイルを Web ブラウザ

の要求に応じて HTTP のルールに則って返すことと、Web ブラウザから要求されたプログラ

ムを実行した結果を返すことの2つである(図1参照)。初期の Web サーバはあらかじめ

用意された HTML ファイルや画像データなどを送信する機能しか持たなかったが、技術発

達とともに JavaServlet や JSP などによって動的なコンテンツの提供も可能になった。

Web サーバの条件としては、グローバル IP アドレスが与えられ、常にインターネットに接

続されている状態である。その上で、Apache などの Web サーバソフトウェアがインストー

ルされ、起動中されているコンピュータである。この二つをクリアすれば、自宅のコンピ

ュータであろうが会社のコンピュータであろうが性能はどうあれ Web サーバにすることが

できる。Web サーバソフトウェアで代表的な物は、本研究でも使用された Apache の他に

Internet Information Service なども存在する。こちらはマイクロスフト社製の Windows

上でのみ動作する Web サーバソフトウェアである。対して Apache は Windows 以外にも Mac

や Linuxでも動作するのが特徴的だと言える[1]。

2-1-2 Webアプリケーションについて

要求

リクエスト

応答

レスポンス

クライアント Webサーバ

図1 Web アプリケーションの処理

Page 5: Apache/Tomcat ~Servlet プログラムの問題点について~

5

1章でも少し触れたが、SNS やショッピングサイトはプログラムが自動でユーザーに動

的なコンテンツをサービスとして提供している。これらの多くは Web アプリケーションに

よって実現されている。

一定時間や特定のアクセスに応じて、サーバ内にデータを受け取ることでプログラムが起

動し、自動的に Web ブラウザにデータを返答する。この一連の動作がコンピュータにイン

ストールされたアプリケーションのように動作することから Web アプリケーションと呼ば

れる。最大の特徴としては、コンピュータに様々なアプリケーションをインストールする

必要がないにも関わらず、Web ブラウザがインストールされているだけでアプリケーショ

ンと同等のサービスが受けられる点である。

本学でも Web アプリケーションを使用したシステムが採用されており、学内の HInT シ

ステムは Web アプリケーションによって成り立っている。ユーザー(この場合学生)が ID

とパスワードを入力すると、個人の時間割や予定、連絡事項などが表示される。これらは

Web アプリケーションによって実現された動的なコンテンツであり、HTML 単体などでは表

現できないものである。また、このような学校に対する Web アプリケーションによる独自

のシステムが使われ始めたのはつい最近であり、この点からも Web アプリケーションは

年々普及率が上がってきていることが伺える。

Web ブラウザを使うユーザーはそれのみで様々なコンテンツやサービスを受けられる利

点があり、今日では多数の Web サイトで使用されている。以下に Web アプリケーションを

使ったおもな Webサイトをカテゴリ別に記述する[2][3]。

(1) 検索エンジン……google、Yahoo!、msnなど

(2) 電子掲示板……2ちゃんねる、Yahoo!知恵袋など

(3) SNS……mixi、facebook、twitterなど

(4) ショッピングサイト……Amazon、楽天市場など

Web アプリケーションにもメリット、デメットがある。表1はそれらをまとめたもので

ある。上記にように、Web アプリケーションはコンピュータにインストールされたアプリ

ケーションに対し、Web ブラウザがインストールされていればサービスの提供を受けられ

る。そのため、バージョンアップが容易に行えるほか、不具合の修正なども開発者側が行

うだけでクライアント側に反映される。よって開発者側は管理が低コストで済むうえに、

クライアントは最新サービスを受けることができる。しかし、そのためにはネットワーク

環境が必須になるほか、使用する Web ブラウザによっては動作に差異が生じる可能性があ

る。そのため適切なサービスを受けられない可能性がある。

長所 短所クライアント側はWebブラウザがあればサービスを受けることができる

クライアント側がどのWebブラウザを使用するかによって、動作が異なる場合がある

バージョンアップや更新は開発者側が行うだけでよい

Webブラウザのみで提供が受けられるため、多数の利用者を想定した設計が必要

クライアント側は常に最新のサービスを利用できる

ネットワーク環境が必須条件になる

表1 Webアプリケーションのメリット・デメリット

Page 6: Apache/Tomcat ~Servlet プログラムの問題点について~

6

2-2 Apache について Apache は 1 章でも少し触れたように、世界で最も使用されている Web サーバソフトウェ

アである。本研究で使用したものから改良され、従来から性能を高めつつ安定性を確保し

ている Ver2.0 と、最新機能が盛り込まれた Ver2.2 の2種類がサポートされている。現在

では本研究で使用した Ver1.3 のサポートは 2010 年 1 月をもって終了しており、2.2 系へ

の移行が推奨されている。

2-2-1 Apache の歴史 1995 年、当時の Web サーバソフトウェアは欧州原子核研究機構(CERN)が開発した

CREN HTTPd と米国立スーパーコンピュータ応用研究所(NCSA)が開発した NCSA HTTPd の

2種類が存在した。NCSA HTTPd は初の CGI を採用することなどによって高い普及率を誇っ

ていた。しかしその後はメンテナンスが行われなくなりしばらく放置されていたのだが、

数名の有志が改良とサポートを行うためのグループを作りはじめた。そのグループは自分

たちを Apache Group と名付けたのがそもそもの Apache という名前のはじまりである。し

かし、Apache Groupも次第に Apacheに興味を失ってしまい再び更新が途絶えた。

ところが 1999 年にユーザーの1人だった Brian Behlendorf が自分のサーバを使ってユ

ーザーのためのサポートを再開した。これが現在での Apache ソフトウェア財団の前身と

なる。余談ではあるが、現在の Apache のソースコードは Apache ソフトウェア財団によっ

て再構成されているため NCSA HTTPdのソースは残っていない[4]。

2-2-2 普及率と信頼性 Apacheの高普及率の理由について Apacheを使用するメリットから検討する。

Apache を利用するメリットとしては 2 種類ある。1つはフリーソフトウェアであるとい

うこと、もう1つはオープンソースソフトウェアであるということである。この2つがメ

リットの理由は、サーバソフトウェアは Web アプリケーション開発や Web サーバを運営す

る、あるいはユーザーに向けてのソフトウェアであるため有償のソフトウェアの場合が多

い。しかし Apache はフリーソフトウェアであるため、無料で開発や Web サーバの運営を

行うことができる。さらに、オープンソースソフトウェアでもあるため、誰でも開発・改

良・再配布が行える。これによって自分好みにカスタマイズすることも可能な上、セキュ

リティ面に対する対応が迅速に行える[5]。

このセキュリティ面の性能の高さこそが Apache 最大の魅力であり、Web サーバソフトウ

ェアにおいて最も重要なことである。Web サーバは長時間連続して(ほぼ半永久的に)稼

動しなければならないため、常に何らかの攻撃を受ける可能性がある。それゆえにあらゆ

る対抗策を講じる必要があるのだが、オープンソースによって無数のユーザーが経験した

危険や脅威の局面をフィードバックされているため、非常にセキュリティ性が高い。

これらが Apache の人気の要因であると考えられる。また、このセキュリティ性の高さ

や入手の容易さから企業でも Apache を採用している企業が多い。こういった点も信頼性

Page 7: Apache/Tomcat ~Servlet プログラムの問題点について~

7

という面から個人ユーザーの人気を獲得していると考えられる。現に Yahoo!は 1996 年か

ら Apache を利用している。独自の改良はされているものの1日に数十億ものアクセスを

処理していることからも Apacheの性能や信頼性の高さがうかがえる。

2-3 Tomcat について Tomcat は、Jakarta プロジェクトと呼ばれる Java に関連するソフトウェアを開発する

プロジェクトのサブプロジェクトとして開発されたソフトウェアである[6]。JavaServlet、

JPS を処理するアプリケーションサーバであり、Tomcat 単体でも Web サーバとしての運用

が可能だが、一般的には Apache や IIS のプラグインとして利用されている。また、Java

の使用を決定する組織である JCP(JavaCommunityProcess)から、Servlet や JSP のリフ

ァレンス実装として認められたソフトウェアであり、利用者が非常に多い。Apache

Software License というライセンスに基づいて開発されており、誰でも無償で利用・改

変・再配布が可能である[7]。

本研究においても、図2のように Apacheのプラグインとして利用していく。

図2 Apache Tomcat起動画面

Page 8: Apache/Tomcat ~Servlet プログラムの問題点について~

8

第3章 JavaServlet について

本章では、本研究の Web アプリケーションで使用されたプログラムとその仕様について

紹介する。第1節では Servlet についての具体的な内容を記述する。第2節ではどういっ

た特徴があるかを説明する。

3-1 JavaServlet について Servlet と似た形式に Applet が存在する。Applet というのは、Web ブラウザ上で Java

プログラムを動作させるための仕組みであり、クライアント側で実行される形式である。

一方 Servlet は、Web サーバ側で Java プログラムを動作させる仕組みであり、サーバ側で

実行される形式である。この点が Servlet と Applet の違いの1つである。サーバ側で

Java プログラムを動作させるだけなら、JavaApplication を動作させる方法もある。しか

し、Servlet は Web アプリケーションでの使用をメインとして想定されているため、Web

サーバと連携しながらクライアントと情報のやり取りを行い、処理するのが特徴である

[8]。

通常、Web サイトは Web サーバ上のファイルを Web ブラウザがリクエストし、それに対

して Web サーバがリクエストされたファイルを Web ブラウザに返し、それが Web ページと

して表示されている。しかし Web サーバのみでサイトを作成している場合、その内容は固

定されたものになってしまう。つまりどのユーザーがいつどこでそのサイトにアクセスし

ても同じ内容のものしか提供できないということである。

しかしながら近年、インターネットの普及と技術の発達により、いわゆる静的なコンテ

ンツの提供だけでは多種多様なサービスを提供するのが困難になったため(第2章に記述

した Web アプリケーションを使用した主なサイトにあるような、検索エンジンや個人ユー

ザーに向けての動的なコンテンツ)、それらを解消するための仕組みの1つが

JavaServlet なのである。さらにこの JavaServlet は使用言語に文字通り Java を使用して

いるため、Java が持っている様々な利点を同じように持っている。たとえば、対応可能な

OS が幅広く、サーバ構築において信頼性の高い UNIX を OS として選択できることや、プロ

グラミングにおいてのセキュリティの高さ、堅牢さなどから Servlet が利用されることは

多い[9]。

つまり、Servlet の特徴は近年増えてきている動的なコンテンツを作成するのに都合が

よく、選択できる OS も幅広い。この汎用性によって高い信頼性とシェアを獲得している

のである。

3-2 JavaServlet の特徴 Servlet と用途が同じような技術には、Perl を使用した CGI、関数を主体とした PHP、

マイクロソフトが提供する ASP などがある。CGI などは、クライアント側からのリクエス

トがあるとその都度初期化を行い、新しくプロセスを構築する。それに対して Servlet は

Page 9: Apache/Tomcat ~Servlet プログラムの問題点について~

9

一度起動されるとメモリに常駐し、リクエストがあるまで待機状態になる。2回目以降の

リクエストではプロセスではなく、スレッドを起動するため動作が軽快である。さらにそ

のスレッドはマルチスレッドに対応しており、複数のクライアントから同じリクエストが

行われても、最初のリクエストが終了せずに新たなクライアント用に別のスレッドを用意

する。これに新しくリクエスト割り当てることができるため応答処理の効率がよい[8]。

そのほかには、CGI 等と違う点としてはライフサイクルがあり、それに従いプログラムが

動作する。Servlet は記述されたメソッドをコンテナ(Servlet のエンジンのような部

分)がライフサイクルに則った形で呼び出すことで処理が行われる(図3参照)。

このようにコンテナがプログラムを順番に実行する形式をコールバック方式と呼ぶ(コ

ールバック方式については3-2-1で詳しく記述する)。また、Servlet の一部として

JSP(JavaServerPages)がある。JSP は HTML に Java のコードを埋め込み実行結果を出力

させるものである。これが随所で触れている動的なコンテンツを実現させることができる

仕組みであり、クライアント側からの要求に応じた実行結果を Web ブラウザなどを通して

表示させることが可能になる。

3-2-1 コールバック方式 通常のプログラムは、全体の枠組みをプログラミングし、特定のモジュールはライブラ

リを利用する形式が一般的である。それに対し、コールバック方式はプログラム全体の枠

組みが提供され、その一部を独自にカスタマイズして機能を実装する形式である。Java で

は継承やオーバライドの機能によって、コールバック方式が実装できる。コールバック方

式は開発量が一般的な開発よりも少量で抑えられるため、生産性が向上する。しかし、前

述の通り全体の枠組みが決まっているため、実現可能な機能は限られてくるというデメリ

ットがあるため、目的によっては使用できないこともある[10]。

図3 Servletのライフサイクル

出所)「J2EE入門 2章:サーブレット 富士通」

http://jp.fujitsu.com/solutions/sdas/technology/j2ee/02-servlet.html

Page 10: Apache/Tomcat ~Servlet プログラムの問題点について~

10

コールバック方式の枠組みとして Java の HttpServlet というクラスが使用される。枠

組みの指定は HttpServlet を継承することで行われる。主なメソッドとして以下のものが

あげられる。

(1) ・init メソッド・・・Servlet が起動された際に一度だけ呼び出される。データベー

スのオープンなどの実行環境を整える作業を記述する。

(2) ・service メソッド・・・クライアントからのリクエストがあると呼び出される。応

答内容や処理を記述する。

(3) ・doGet メソッド、doPost メソッド・・・Http リクエストには Get と Post の2種類

がある。一般的に service メソッドに定義するよりもこちらのメソッドに定義する。

(4) ・destroy メソッド・・・Servlet が破棄される前に一度だけ呼び出される。データ

ベースのクローズなど、終了処理を記述する。

Page 11: Apache/Tomcat ~Servlet プログラムの問題点について~

11

第4章 研究内容の詳細

本章では、実際に研究した内容に関して記述していく。第1節では、研究のきっかけを

記述する。第2節では、研究に関連するシステムについて記述し、第3節では本研究の内

容について詳しく記述する。

4-1 研究のきっかけ 現在 Web アプリケーションは Web サイト作成において無くてはならない存在になりつつ

ある。そんな中、開発技術として最も高い普及率を獲得している技術を用いたにも関わら

ず、開発工程において問題が発生した事は例え些細なことであったとしても、社会的に原

因究明を行う価値があると考えた。またその原因そのものを理解することによって、Web

アプリケーション開発に関する知識と理解を深めると共に、今後の開発に役立てられるの

ではないかと考えた。

4-2 問題の詳細 本来は Web アプリケーションを開発する事が目的であったため、参考書籍[11]を元に

Web アプリケーションの開発に取り掛かった。Web アプリケーションを開発するにあたっ

て、まず、Servlet がどのようなものかを理解するためにサンプルプログラムを実行し、

Web ブラウザ上に指定された画像を表示させるというフェーズがあった。しかし、参考書

籍の通りにサンプルプログラムを実行したが、画像が適切に表示されないという問題が発

生した。その問題に対して次のようなアプローチを実施することにした。

(1) 指定の画像を別の形式の画像に変更する。

(2) 用意されたサンプルコードを改変する。

以降は以上の2点を踏まえた研究の手順と結果を記述していくこととする。

Page 12: Apache/Tomcat ~Servlet プログラムの問題点について~

12

4-2-1 画像表示の実行結果

図4は参考書籍に記載されているソースコードを抜粋したものである。これを実行する

と図5のようになるはずであった。

しかし本研究にて実行した結果、図6のようになった。

図4 サンプルプログラムのソースコード

図5 Servlet実行時の成功画面

Page 13: Apache/Tomcat ~Servlet プログラムの問題点について~

13

図6を見てわかるように、画像が適切に表示されない現象に陥った。そこで原因を究明

するために画像が適切な認識をされているかをプロパティにて確認する。

図7はプロパティを確認した状態である。確認画面のように、プロトコル・種類・URL

などの項目が全て利用不可と表示されている。これは画像そのものが認識されていない可

能性があると判断し、ソースコードのパスが間違えているのではないかと考えた。

図6 Servlet実行時の失敗画面

図7 失敗時のプロパティ

Page 14: Apache/Tomcat ~Servlet プログラムの問題点について~

14

図8の下線部が、図4のソースコードで画像の場所をあらわすコードだが、

getRealPath()によって絶対パスを取得しているので、パスの間違いは考えられない。ま

た、画像も適切な場所に配置しておいたので間違えている可能性はなかった。そのためま

ずアプローチの(1)である、画像形式の変更から実施した。

4-2-2 画像形式の変更 指定された画像の形式が jpg だったが、何らかの設定により jpg 形式の画像が表示され

ない可能性を考え、gif形式に画像を変更して再度実行した。

図9のように表示に成功した。画像が認識されているかどうか確認するためにプロパテ

ィを確認する。

図9 gif形式の実行結果

図8 失敗時のソースコードのパス指定部分

Page 15: Apache/Tomcat ~Servlet プログラムの問題点について~

15

図10のようにプロパティも先ほどとは違い、プロトコル・種類・URL などが適切に表

示されている。この結果から画像形式を変更することによって、画像表示が適切にされな

い問題を回避することが確認できた。しかし、肝心の原因に関してはまだ不透明なままで

あったため、次のアプローチである(2)を実施する。

4-2-3 サンプルコードの改変 4-2-2の方法以外での回避方法を探ると共に、原因追求を目的としてサンプルコー

ドの改変を実施する。4-1-1では getRealPath()によって絶対パスを取得しているた

め、間違いはないと記述した。しかし、問題の明確な原因がまだ発覚していなかったため、

サンプルコード中のパスの記述方法を相対パスに変更する。すると、前述の図5のように

画像の表示に成功した。画像が適切に認識されているかどうかプロパティを確認する。

図10 gif形式のプロパティ

Page 16: Apache/Tomcat ~Servlet プログラムの問題点について~

16

図11の通りプロパティも適切に表示されており、表示に成功した。この結果と4-2

-2の結果を踏まえると、画像形式に問題があるのではなくパスの記述方法に問題があっ

たことがわかる。

4-3 問題の推測 今回の研究では、結果として明確な原因を追求することが出来なかった。4-2の結果

を受けて様々な原因を推測した結果、Tomcat の設定に問題があるかもしれないと考えた。

Tomcat にはデフォルトで4つの xml ファイルが配置されている。この xml ファイルによっ

て絶対パスが何らかの形で取得できなくなっているのではないかという考えた。以下に4

つの xmlファイルの概要を記述する。

(1) server.xml・・・Tomcat 全体の設定ファイル。使用ポートや Web アプリケーショ

ンで使用する宣言なども記述されている。

(2) server-minimal.xml・・・ユーザー独自の server.xml を作成するためのファイ

ル。必要最低限の情報しか記載されていないため、サーバをカスタマイズする際

はこれを編集し、server.xmlにリネームするのが簡単な方法である。

(3) tomcat-user.xml・・・ユーザーの権限情報が記述されている。

(4) web.xml・・・Tomcat で実行されるすべてのアプリケーションから参照される。

Servletの定義などが記述されている。

以上の内容から web.xml または server.xml に何らかの形で障害が発生しているのでは

ないかという推測に至った。そのほかには、実行環境の問題やネットワークの問題も推測

したが、どちらも特殊な環境で実行したわけではなかったので問題の原因にはなりえない

という結論に至った。

図11 相対パス実行時の成功画面

Page 17: Apache/Tomcat ~Servlet プログラムの問題点について~

17

第5章 考察

本章では、第4章を受けての様々な考察について記述する。第1節では使用した Apache

についての問題点に関して記述する。第2節では、今後の Apache の展望や今後の展開に

ついての考察を記述する。

5-1 Apache の問題点 Apache をオープンソースソフトウェアであり、そのメリットを第2章の Apache の項目

で記述してきたが、メリットだけではなくデメリットもあることが理解できた。その1つ

が今回本研究でも発生した、問題に対する対応ができないという点である。オープンソー

スソフトウェアは誰でも開発・改良・再配布が行える。しかし、利用する際のライセンス

にはいかなる場合も Apache ソフトウェア財団は責任を取らないという旨の記述がある。

今回のような軽い問題なら大きな被害にもならないが、コンピュータに重大な異常が発生

しても責任は誰も取らないし、取れないのである。そのため、今回の研究のように原因を

究明することができない可能性もある。

もう1つのデメリットとしては、設定方法や操作方法がまとめられていないという点で

ある。Apache は IIS などと比較しても GUI を持たない点や、幅広い開発言語に対応してい

るため、一定以上の知識と技術がなければ扱うことが難しい。本研究においての例として

複数の xml ファイルの内容を理解するに至らなかった点などがあげられる。Apache の利用

ユーザーによるコミュニティやまとめサイトなどに情報が載っている場合もあるが、それ

らにない問題に遭遇する可能性も十分考えられる。現に今回は調査したが同じ現象が発生

したケースは無かった。

5-2 Apache の今後 本論文で何度も触れている通り、Web アプリケーションは Web サイトにとってなくては

ならない存在になりつつある。今後は時代と共にさらに技術が発達し、より高度で多種多

様な動的コンテンツが増えてくると予想される。そうなると Web アプリケーションが利用

される頻度もより多くなり、Apache、Tomcat も改良が繰り返されることで今以上に性能が

高くなると考えられる。現段階ですでにフリーソフトウェアの中でもシェアウェアと遜色

のない高いパフォーマンスを獲得している Apache だが、今後の発展や進化にも目が離せ

ないソフトウェアだと言える。

Page 18: Apache/Tomcat ~Servlet プログラムの問題点について~

18

第6章 まとめ 参考文献に基づいて Apache と Tomcat を使用して Web アプリケーション開発を実施した。

開発工程の序盤にて Servlet の理解を深める事が目的のサンプルコードを使用した jpg 形

式の画像を表示させる工程があった。しかしサンプルで用意されていた Servlet を実行し

ても指定された jpg 形式の画像が適切に表示されない問題が発生した。そこで本来は Web

アプリケーションの開発を目指す予定だったが、まずその問題を解決する方法について考

察することにした。問題の解決方法を考えた結果、画像形式を jpg から gif に変更するこ

とによって問題を回避することはできた。しかしそれだけでは問題そのものの原因がわか

らなかったため、あらかじめ用意されていたサンプルコード中の画像のパスが間違えてい

る可能性を考え、コード中のパスを絶対パス取得のコードから相対パスに改編を行った。

結果、gif 形式に変更する必要なく jpg 形式の画像を適切に表示させることに成功した。

しかし、以上2点のアプローチを行ったにも関わらず未だ原因に関しては何もわからな

かった。

今回の研究を終えての今後の課題としては、問題点の原因が一体何なのかを究明するこ

とである。まずは xml 形式のファイルを理解し、その内容からの原因の追及を行う。そし

て問題の根本を発見、そして理解したうえで本来の目的であった Web アプリケーションの

完成を目指す。それによって、実際に開発しなければ理解できない Web アプリケーション

の利点や問題点についてもさらに理解を深め、考察していく。

Page 19: Apache/Tomcat ~Servlet プログラムの問題点について~

19

参考文献

1. 「Webアプリケーションの仕組み」

http://www.actlink.co.jp/text/php/01/01.html

2. 「Javaによる Webアプリケーション入門」

http://www.wakhok.ac.jp/~tomoharu/web2004/text/

3. 「ウェブアプリケーション – Wikipedia」

http://ja.wikipedia.org/wiki/%E3%82%A6%E3%82%A7%E3%83%96%E3%82%A2%E3%83%97%E

3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3

4. 「Apache HTTP Server - Wikipedia」

http://ja.wikipedia.org/wiki/Apache_HTTP_Server

5. 「Apacheでマイ web サーバーをつくろう!1」

http://linux-topics.com/setting/setting/003-apache/01-apache.htm

6. 「Tomcatとは【Apache Tomcat】 - 意味-解説-説明-定義 : IT用語辞典」

http://e-words.jp/w/Tomcat.html

7. 「Tomcatとは - OSS 用語 Weblio辞書」

http://www.weblio.jp/content/Tomcat

8. 「Java Solution FAQ:サーブレットとは何でしょうか?」

http://www.atmarkit.co.jp/fjava/javafaq/servlet/servlet01.html

9. 「ひよこサーブレット」

http://homepage3.nifty.com/uzblend/servlet/

10. 「J2EE入門 2章:サーブレット 富士通」

http://jp.fujitsu.com/solutions/sdas/technology/j2ee/02-servlet.html

11. Javaによる Webプログラミング-基礎からわかる完全入門- 著:柏原正三

Page 20: Apache/Tomcat ~Servlet プログラムの問題点について~

20

謝辞

本論文を作成するにあたって、ご自身の研究プロジェクトにお誘い頂き、またその研究

中に様々なサポートをして頂いた福本昌生氏に感謝致します。研究中に発生した問題に関

してアドバイス頂いた尾花将輝氏に感謝します。卒業論文を完成させるにあたって期日直

前まで終了せず、一緒に卒論マラソンに参加した同ゼミの平健太氏、高萩大樹氏、竹恵佑

氏、原田敏志氏、山岡浩平氏に感謝します。そして最後に数多くの助言や丁寧な指導、ご

自身の仕事があるにもかかわらず添削やアドバイスを頂いた花川典子教授に感謝します。

お世話になりました。ありがとうございました。