アプリケーションサーバとは
アプリケーション
サーバは、ビジネスロジックなどの
アプリケーションソフトウェアの実行に特化した
サーバコンピュータ、またはその実行を管理する
ミドルウェアです。特にWebアプリケーション
サーバは、WebクライアントからのHTTPリクエストを処理する
Web[[サーバ]]と、バックエンドの
データベース管理システム(RDBMS)との間で、データの加工などの処理を行います。
アプリケーションサーバの主な機能
アプリケーション
サーバは、一般的に以下の3つの機能を提供します。
1.
プログラム実行環境とデータベース接続機能: アプリケーションが動作するための環境と、
データベースへの接続機能を提供します。
2.
トランザクション管理機能: 複数の処理をまとめた
トランザクションの管理を行います。
3.
ビジネスロジックの実装: 業務処理の流れを制御するビジネスロジックを実装します。
ただし、アプリケーション
サーバの機能に関する厳密な定義はなく、上記以外の機能を持つものや、これらの機能の一部を持たないものも存在します。
Web3層構成におけるアプリケーションサーバの役割
多くのWebシステムは、「Web3層構成」と呼ばれるアーキテクチャで設計されています。この構成は、以下の3つの層で構成されます。
1.
Web[[サーバ]]層: WebブラウザからのHTTPリクエストを分散処理します。
2.
Webアプリケーション層: HTTP
トランザクションの一貫性を保持し、システム固有の処理や
データベースの検索・加工処理を行います。
3.
データベース層: システムのデータや管理情報を管理します。
この3層構成により、各層ごとにスケールアウトが可能になり、システムの拡張性やコストパフォーマンスが向上します。また、従来の2層システムに比べて、システムの変更や更新が容易になり、柔軟性が高まります。
アプリケーションサーバの歴史
1990年代前半、クライアント
サーバシステムでは、クライアント側を専用端末とするリッチクライアント型システムが主流でした。しかし、
インターネットの普及に伴い、Webブラウザをクライアントに用いるシステムへのニーズが高まりました。これにより、
サーバサイドで各種アプリケーションを用意する必要性が生まれました。
サーバサイド
コンピュータの高性能化、ネットワークの高速化、
Javaなどのプログラム言語の処理高速化技術などの進展により、クライアントから
サーバへの処理の移行が可能になりました。そして、Webブラウザをクライアントとし、様々な処理を
サーバ側で行うシステムが一般化しました。
大規模システムでは、
Web[[サーバ]]だけでなく、アプリケーション
サーバを導入することで、より大量の
トランザクション処理に対応できるようになりました。1998年頃から、本格的なアプリケーション
サーバ製品が登場し始めました。
Webアプリケーションサーバに求められる機能
Webアプリケーション
サーバは、以下のような要件を満たすように開発が進められています。
スケーラビリティ
高
可用性
セキュリティ
トランザクション管理
接続管理
分散処理
アプリケーションサーバの分類
広義には、
プログラミング言語で実装された
アプリケーションソフトウェアを動作させる
サーバサービスを指します。
特にWebアクセスに特化したアプリケーション
サーバは、主にMicrosoft製品と
Javaベースの製品に分類されます。
Jakarta EEは、
Java SEに
Web[[サーバ]]に必要な機能を追加した標準仕様であり、この仕様に準拠したものを
Jakarta EEアプリケーション
サーバと呼びます。
Javaを
プログラミング言語として採用し、WebモジュールはJSFやFaceletsで構築され、バックエンドのプログラムはEJB、データアクセスモジュールはJPA仕様に準拠して開発されます。また、Webモジュール部分のみを対象としたWeb Profileサブセットも存在します。
Windowsプラットフォームのアプリケーションサーバ
Windowsプラットフォームで動作する代表的なアプリケーション
サーバとして、Internet Information Services(IIS)があります。IISは
Web[[サーバ]]とアプリケーション
サーバの両方の機能を持つため、どちらの役割を担うかによって呼び方が変わることがあります。
IIS上で動作するフレームワークとして、
.NET Frameworkに準拠したものがあり、多くの機能を含んでいます。また、オープンソースや商用のアプリケーション
サーバも存在します。
その他のアプリケーションサーバ
Jakarta EE以外の言語セットやフレームワークを使用し、ビジネスロジックを実装できるアプリケーション
サーバも存在します。
ポータルサイト製品は、
Jakarta EEアプリケーション
サーバ製品と、ユーザ
認証機能を提供するLDAP、シングルサインオンを実現する拡張機能を連携させており、アプリケーション
サーバ機構の一種として捉えることができます。
関連項目
クライアントサーバモデル
コンテンツ管理システム (CMS)
Webブラウザ
Java
Java Servlet
JavaServer Pages
Webコンテナ
Web[[サーバ]]
Hypertext Transfer Protocol (HTTP)
UNIX
Microsoft Windows
トランザクションモニター
Web Services Interoperability (WS-I)
外部リンク
IBMのアプリケーション
サーバー:WebSphere Application Serverが選ばれる7つの理由
@IT:Linuxで動くJavaアプリケーションサーバ・カタログ
The Server Side(
英語) :
サーバサイド技術専門のウェブサイト
* Microsoft - アプリケーション
サーバーの役割