主要サーバ解説|アプリケーションサーバ|トラムシステム
パソコンを利用するには、サーバーの活用が不可欠です。サーバーには様々な種類がありますが、webサーバー、アプリケーションサーバー、データベースサーバーの3種は特に重要なサーバーとなります。この3種を含む複数のサーバーに処理を振り分けし、負荷分散を行うことで、サーバーは安定して機能します。
本記事では、そのうちの一つであるアプリケーションサーバーについてまとめました。アプリケーションサーバーとは何か、他のサーバーとの違い、用途、ソフト、主要サービスを分かりやすく解説します。サーバーについても簡単に説明しますので、ぜひ参考にして下さい。
サーバーとは
携帯電話で利用するSIPサーバーに関しては、下記の記事で解説していますので、併せてごらんください。
▶︎SIPサーバーとは|SIPサーバーの仕組みを解説
▶︎SIPサーバーの構築と通信方法|呼制御プロトコルデータのやりとりを解説
サーバーとは、ホームページの閲覧やメールの送受信など、インターネットを介してユーザーのリクエストに答える役割を果たすコンピューターの事です。一昔前のパソコンには必ずついていた縦長の細い機器は、サーバー機能を司る機器でした。
サーバーには、メールの送受信を行うメールサーバー、ファイルの転送を行うFTPサーバー、webサイトの閲覧に必要なDNSサーバーなど様々な種類が存在します。インターネットに限らず、駅の券売機やコンビニのATMなどもサーバーを利用してサービスを提供するのが一般的です。サーバーには、物理的に設置する物理サーバーとクラウド上に設置する仮想サーバーの2種類があり、コスト削減や管理体制の充実などのメリットがある仮想サーバーが、現在主流になりつつあります。
webサーバー、アプリケーションサーバー、データベースサーバーは、webサイトの利用に関するサーバーです。この3つで、多くのwebサイトが採用している3階層システムを構成しています。OS(オペレーションシステム)とアプリケーションソフトウェアと中間に入るため、ミドルウェアと呼ばれることもあります。各サーバーのそれぞれの役割は以下の通りです。
・webサーバー~ユーザーがブラウザからリクエストした内容を処理する。
・アプリケーションサーバー~webサーバーからのリクエストを処理する、データベースと連携することもある。
・データベースサーバー~webサイトに関する情報を保存する。
3階層システムを利用してwebサイトを構築すると、2つのメリットがあります。1つ目が、システムを変更する際にコストが安くなることです。1階層の場合、多少の変更でもシステム全体に影響が及びますが、3階層なら最小限に抑えられます。2つ目が、パフォーマンス面でのメリットです。3つのサーバーに処理を分担させることで、スピードが向上しエラーも起こりにくくなります。以前はアプリケーションサーバーを除いた2層構造が主流でしたが、処理速度に問題があり不安定だったため、現在の形になりました。
アプリケーションサーバーとは
アプリケーションサーバーは、上層のwebサーバーや下層のデータベースサーバーとともに、3階層システムを構成するサーバーの一つです。システムのちょうど中間に当たるポジションであり、以下のような機能を持っています。
・データベースへの接続やプログラムの実行
・トランザクションの管理機能で処理を連結する
・業務の流れをビジネスロジックで制御
・セキュリティ要件の処理
・フレームワーク基盤の採用
分かりやすく言えば、「webサーバーから受けたリクエストを処理する、必要な場合はデータベースサーバーから情報を抽出する」のがアプリケーションサーバーの役割です。別々の部署の橋渡しをする中間管理職のようなポジションです。
3階層システムを利用して、リクエストの処理は分散されて行われています。そのため、ECサイトのような短時間で数百件のリクエストが集中するサイトでも問題なく動作します。ホームページのトップ画像などいつみても変わらない静的コンテンツはwebサーバー、ECサイトのショッピングカートのような変動する動的コンテンツはアプリケーションサーバーが担当するのが一般的です。
アプリケーションサーバーは、オンラインショップの経営や企業間の電子商取引で活用されます。大規模なシステムの場合、負荷分散やフェイルオーバーを行い、複数のサーバーで処理を分担する場合もあります。負荷分散は、専用のソフトウェアや機器を導入する、サーバーの設定を変更する事で可能です。
アプリケーションサーバーの種類
最後に、よく使われるアプリケーションサーバーを紹介しましょう。アプリケーションサーバーはJava、PHP、Rubyなどのプログラミング言語で構成されています、それぞれに特徴があるので、自分の使いたい機能に沿ったものを選べるようにしてください。
Java
Javaは世界中で利用されているプログラミング言語です。1995年に誕生したJavaは、動作速度と使い勝手のバランスを考慮して設計されており、業務系のシステム開発で重宝されています。Javaを利用したアプリケーションサーバーは多数ありますが、特に「Tomcat」と「Glass Fish」が人気です。
「Tomcat」は1999年に誕生し、オープンソースで商用アプリケーションサーバーとの試飲和声が高いことから、20年以上業界のスタンダードとして活躍しています。「Glass Fish」はスタンダードでもライセンス料が100万円以上する高価なアプリケーションサーバーで、予算をつぎ込める大企業に向いています。
PHP
web開発に適した汎用スクリプト言語です。初心者でも扱いやすい上に、プログラマーに対して優れた機能を多数与えています。初めての方でも、PHPを初めて数時間でソースコードを書くことができると言われています。
PHPを利用したアプリケーションサーバーは、今の所存在しません。ただし、PHPで構成したwebサーバーである「apache」の設定を変更すると、アプリケーションサーバーとして利用できるようになります。
Ruby
日本人の手によって開発され、国際規格に認証されたスクリプト言語です。シンプルさと高い生産性が特色となります。可読性を重視しており、文章のように読みやすい構造です。Rubyを利用したアプリケーションサーバーは豊富で、「Unicorn」、「Thin」、「Rainbows」、「Puma」などがあります。
まとめ
アプリケーションサーバーは、webサーバーからの指令を真っ先に受ける役割を担います。webサイトの構築に置いて重要な役割を果たしており、うまく機能しないとサイト全体の処理速度が落ちるので注意しましょう。3階層システムを含む概要をよく理解し、環境にあったアプリケーションサーバーを利用するのが重要です。現在利用しているサーバーの現状や改善案が知りたければ、専門家に一度聞いてみましょう。
WRITER
トラムシステム(株)メディア編集担当 鈴木 康人
広告代理店にて、雑誌の編集、広告の営業、TV番組の制作、イベントの企画/運営と多岐に携わり、2017年よりトラムシステムに加わる。現在は、通信/音声は一からとなるが、だからこそ「よくわからない」の気持ちを理解して記事執筆を行う。