今回はWebサーバーアプリケーション開発事例についてご紹介します。
①Webサーバーアプリケーションでイメージすること。
多くの方がヤフー、Gooなどのポータルサイトや楽天、メルカリなどのショッピングモールサイト等々、ブラウザでネットサーフィンする時に表示される様々なサイトの開発のことを指すのだろうと思い浮かべるでしょう。
ただ、それだけでなくブラウザで表示できるような画像をもたないWebサーバーも存在します。この両者に大きな違いはありません。
違いはサーバーがブラウザ等で代表されるようなクライアントからリクエスト(HTTPリクエスト)を受け取った後、クライアントへ返す返事(HTTPレスポンス)にブラウザで表示できるようなページ情報を含むか含まないかの違いだけで、内部の設計構成は大きく異なる>ことは少ないです。
②Webサーバーアプリケーションの著名開発方法
(1)LAMP(ランプ)
ウィキペディアによりますと、
「LAMP(ランプ)とは、OSであるLinux、WebサーバであるApache HTTP Server、データベースであるMySQL、スクリプト言語であるPerl、PHP、Pythonを総称した頭文字から成る造語である。
動的(ダイナミック)なウェブコンテンツを含むウェブサイトの構築に適した、オープンソースのソフトウェア群である。・・・(割愛)・・」
私が初めて耳にした頃はPythonは含まれていなかったのですが、時代の流れでしょうね
(と同時にPythonの頭文字がPでなかったらどうなっていたのだろう...)
(2)Javaサーブレット(ジャバサーブレット)
ウィキペディアによりますと、
「Javaサーブレットとは、サーバ上でウェブページなどを動的に生成したりデータ処理を行うために、Javaで作成されたプログラム及びその仕様である。・・・(割愛)・・・この機能を用いてショッピングサイトやオンラインバンキングなどをはじめとする多種多様な動的なWebサイトが構築されている。・・・(割愛)・・」
その他にマイクロソフトが提供するASPなどがありますが、シェア面では人気を2分するという状況でしょう。
③LAMP、Javaサーブレットで開発することのメリット
(1)安い
ただで商用サイトが構築できる。人件費を除いた材料費の原価を0にすることが可能。
(2)開発実績について文句なし
多くのメーカー、ベンダー、SIer、ソフトハウス等で20年ほど前から採用されている。
(3)無償の開発環境が豊富
開発実績が豊富なこともあり、カスタマイズするだけで立派なサイトが作れるような環境がオープンソースの形で公開されていることが少なくない。
(4)開発に必要な技術情報が豊富
開発に必要な技術情報は、書籍はもちろん、インターネット上でも溢れかえっており、情報面で困ることがない。
④LAMP、Javaサーブレットで開発することのデメリット
・思い浮かびませんが、強いてあげれば、無料な分、ベンダー等からのサポートが受けられないということでしょうか(Linuxパッケージ(RedHat等)を有償で購入等の場合は除く)。
⑤LAMPによる開発事例
(1)動作環境
- OS ==> Linux
- Webサーバ ==> Apache HTTP Server
- データベース ==> MySQL
- スクリプト言語 ==> PHP
(2)事例
ホテル、病院、レンタカー等の予約受付システム
⑥Javaサーブレットによる開発事例
(1)動作環境
- OS ==> Linux
- Webコンテナ
==> Apache Tomcat(※)
※Javaサーブレットを動かすために必要なもの、Apacheのようなサーバー機能も包含しているため、Apache HTTP Serverを改めて入れる必要がない。 - Javaサーブレット
==> OpenJDK
Javaの開発環境です。Oracle Javaの場合、ライセンス面で注意が必要かも。 - データベース
==> MySQLまたはPostgreSQL
Oracle Databaseは有償、大規模開発でなければ、MySQLまたはPostgreSQLで十分事足りる。
(2)事例
大規模なポータルサイト、グループウェアから小さな画面を持たない情報中継サーバーまでまさに多種多様で可能性は無限大(言いすぎかな?)
⑦LAMP、Javaサーブレットの違い
(1)CGIのしくみ
両者の違い(本質的な違い)を一言でいえばCGIのしくみでしょう。
CGIとはWEBサーバーを介して受け取ったリクエストを処理するためのアプリケーションです。
このアプリケーションこそ、Webサーバーアプリケーションなのです。
- LAMPのCGIの実現手段 ==>Perl、PHP、Python(スクリプト言語)
- Javaサーブレットの実現手段 ==> Java(コンパイル言語)
このため、処理速度の面ではコンパイル言語をベースにするJavaサーブレットに軍配が上がります。
⑧LAMP、Javaサーブレットどちらがベター?
Javaサーブレットだと思います。
処理速度、ポータルサイト向けオープンソースの豊富さ、統合開発環境の充実度(JavaにはEclipseなどありますが、Perl、PHP、Pythonにはありません。)の点で、Javaサーブレットに軍配が上がります。
LAMPがJavaサーブレットに勝る点が思いつきません(もし、ありましたらご指南のコメント頂けますと幸いです)
次回は、Javaサーブレットについてもう少し踏み込んでご紹介したいと思います。
(もし、何か興味がある課題がありましたら、コメント頂ければうれしいです)。