アプリケーションサーバ

アプリケーションサーバとは



アプリケーションサーバは、ビジネスロジックなどのアプリケーションソフトウェアの実行に特化したサーバコンピュータ、またはその実行を管理するミドルウェアです。特に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アプリケーションサーバ


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 - アプリケーションサーバーの役割

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。