アフィリエイトの商材
インターネットを利用したクライアントサーバシステムでは、サーバ側に多種多様な機能が求められる。例えばeコマースサイトでは、商品情報を表示し、複数の商品の購入チェックボックスをチェックして、最終的に商品の決済を行う必要がある。このサービスを実装するには、対話型の処理の保障と、認証/個人情報の保護といったセキュリティ面の確保、安定性・可用性の確保といった各種要件・機能を保障する必要がある。 携帯アフィリエイト、モバイルアフィリエイト サーバが高性能化したとはいえ、大規模なシステムにおいては、これらの要求に全て対処していくのは困難である。そこで、従来Webサーバだけで処理してきた内容をWebサーバとアプリケーションサーバの2つに分離することで、より大量のトランザクション処理にも対応できる方式(3層構造システム)が実用化された。 1998年頃から本格的な製品が登場し始めている。 大森マンション、大田区マンション [編集] Webアプリケーションサーバに求められる機能 Webアプリケーションサーバは、以下のような要件を取り込むべく作成が進められ、実装されている。 セミナー 機能要件 要件説明 備考 システムの拡張性と可用性 コンシューマを対象とした電子取引商用システムなどの場合、処理要求数が非常に多く(数万件/分といったものも多い)なり、水平(サーバを増やす)/垂直(サーバを機能単位に切り分ける)方向の負荷分散を考慮する必要がある。Webアプリケーションサーバにおいては、垂直方向として認証機能とそれに付随する認証用データベースをLDAPサーバ (ディレクトリ・サービス) として切り分ける事が一般化している。水平方向においては、サーバの台数を動的に増やして対処し、ロードバランサ及びWebサーバの振り分け機能により1台辺りの処理要求アクセス数を調整する。また、処理サーバ台数を増やし、分散する事により、システムとしての可用性を確保する。 リフォームマンション セッション管理機能 システムへの接続や処理リクエストが増えると、単一のWebアプリケーションサーバのみにてサービスを提供する事が不可能となる。そのため、Webアプリケーションサーバのプロセスを増やしたり、サーバ自体を増やす水平分散が必要となる。 その際、ロードバランサのセッションパーシステンス機能により、仕掛かり中の処理が特定のアプリケーションサーバに割り当てられるが、アプリケーションサーバに異常が発生した際に、他アプリケーションサーバへ処理が引き渡される。これをセッション管理機能によって、再ログイン処理や最初からの対話処理のやり直しをおこなうのではなく、特定の位置までのロールバック処理にて情報を引き継ぎ、ユーザにストレス無く処理を続ける必要がある。 高速バス トランザクション管理機能 ウェブブラウザを使用する場合、通信プロトコルはHTTPを用いたものとなり、トランザクションは要求―応答の単発とならざるを得ない。そのため、一連のアクセスを一貫性を持たせたトランザクションとして管理する必要が発生する。こういったトランザクションの一貫性を保持するトランザクションモニターの機能も必要となる。 データ復旧 トランザクションの高速処理機能 従来のCGIと比較して、サーバサイドJava (Java EE) 及びスクリプト言語の環境ではプロセス内の処理はスレッド単位で時分割処理される。プロセスの生成は負荷が高いが、1つのjavaプロセス内に複数のスレッドを同時に起動できるため、効率的に処理を行うことができ、必要スペックを小さく出来る。 渋谷 賃貸 データベース接続性/応答性機能 ユーザの要求処理毎に、データベースとの接続とその開放を繰り返すと、大きなボトルネックになる。これを回避するため、JDBCプーリングといったDB接続を保持し、それを使い廻す機能を提供する。 セキュリティ機能 アプリケーションサーバとして、処理を行う上での各種セキュリティ要件が発生する。これを単にHTTPベースのセキュリティ面(SSLの採用/電子認証)だけでなく、トランザクションベースでも確保する必要がある。 クレジットカード 現金化、ショッピング枠現金化 システム開発期間の短縮化可能な共通的なフレームワーク基盤の採用 Webアプリケーション採用の利点として、Javaなどのプログラム言語とそのアプリケーションフレームワークの採用による開発工程の簡易化と短縮がある。Webアプリケーションサーバでは、開発環境やプログラム群の利用環境を整備することで、それらの利点を活かせるようにしている。 SSL [編集] アプリケーションサーバの分類 広義な意味でのアプリケーションサーバという用語はプログラミング言語で実装されたアプリケーションソフトウェアを動作させるサーバサービスを意味する。 特にWebアクセスに特化アプリケーションサーバは、マイクロソフト社製品とJavaベースの製品とに大別できる。特にJava Platform, Enterprise Edition (Java EE) の成功により、アプリケーションサーバという用語は J2EEアプリケーションサーバを示すことが多くなった。現在ではJ2EEのことを Java EE と呼ぶように呼称が変更されている。 [編集] Java EE アプリケーションサーバ 定義 Java EE は、標準機能セットである Java Platform, Standard Edition (Java SE) に、Webサーバに必要な各種機能を追加したもので、Javaモジュールを格納するコンテナ機能などを提供するものをJ2EEアプリケーションサーバと呼称している。 補足 Java EE アプリケーションサーバ製品上でアプリケーション動作を規定するプログラミング言語として採用されているのはJavaである。通常、Webモジュールは Java Servlet や JavaServer Pages (JSP) で構築され、バックエンドのプログラムはEnterprise JavaBeans (EJB) として開発される。Servletは、Webコンテナ内で実行されるJavaプログラムで、CGIスクリプトに相当する。 JSPはサーバロジックへのリファレンスを埋め込んでおくことでHTMLページを生成する技術である。 Java Beansはサン・マイクロシステムズのJavaアーキテクチャ上で、クラスの部品化及びその組み合わせ方法を規定する技術仕様である。 また、このServletコンテナ上で動作させるWebアプリケーションのアプリケーションフレームワークとして Apache Struts (Apache Jakartaプロジェクト)などがある。このフレームワークにも多くの種類があり、互いに影響を与え合って、発展している。 [編集] その他のアプリケーションサーバ 定義 J2EE以外の言語セット・フレームワークを使用し、ビジネスロジックを実装し得るアプリケーションサーバのこと。 代表的な例として、Windows 2000 以降の安定性とWindowsでのユーザ認証機能を基に、多くの機能を含有した.NETフレームワークに準じたものがある。 補足 .Netフレームワークに準じたもので、オープンソースや商用のアプリケーションサーバもある。Base4アプリケーションサーバやZopeが例として挙げられる。マイクロソフトのWindows Communication Foundationはアプリケーションサーバというよりも、通信フレームワークかミドルウェアと言うべきものである。 ただし、.Net連携の場合もWindowsのユーザ認証機能とそのLDAPを利用したものがある。 しかし、.NET系アプリケーションサーバの採用数は非常に低く、公式なリリースも報じられていない。 [編集] ポータルサイト製品 多くのポータルサイト製品は、Java EE アプリケーションサーバ製品とユーザ認証機能を提供するLDAP、さらにシングルサインオンを実現する拡張機能を連携させており、一般的なアプリケーションサーバ機構と言える。 WebSphere Application Server や OracleApplicationServer、BEA WebLogic Server などの統合化された有償の商用製品では、1つのエントリポイントから、どんなデバイスからも全てのWebサービスにアクセスできるように設計されており、柔軟性に富んでいる。