ウェブアプリケーションフレームワーク
[Wikipedia|▼Menu]
.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%;font-size:90%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}html.client-js body.skin-minerva .mw-parser-output .mbox-text-span{margin-left:23px!important}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}

この記事は検証可能参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方
出典検索?: "Webアプリケーションフレームワーク" ? ニュース ・ 書籍 ・ スカラー ・ CiNii ・ J-STAGE ・ NDL ・ dlib.jp ・ ジャパンサーチ ・ TWL(2021年6月)

Web アプリケーションフレームワーク(: Web Application Framework)は、動的なWebサイトWebアプリケーションWebサービス開発をサポートするために設計されたフレームワークである。

Webアプリケーションフレームワークの目的は、Web開発で用いられる共通した作業に伴う労力の軽減である。たとえば、多数のフレームワークがデータベースへのアクセスのためのライブラリやテンプレートエンジンWebテンプレートも参照)、セッション管理を提供し、コードの再利用を促進させるものもある。
Webアプリケーションフレームワークの発展の歴史
Common Gateway Interface (CGI)

World Wide Webの設計は元々ダイナミックなものではなく、初期のハイパーテキストWebサーバ上で公開されたハードコードHTMLでできていた。

公開されたページについての変更はページの作者が行う必要があった。ユーザーからの入力を反映したコンテンツを提供するため、Webサーバが外部のアプリケーションとやり取りするためのCommon Gateway Interface (CGI) 標準が導入された。[1]CGIでは各リクエストが別々のプロセスを開始しなければならないため、サーバの負荷に悪い影響を与えることがある。
密結合

高いトラフィックに対応したWebアプリケーションを実現するため、プログラマはWebサーバとの密な結合を望んだ。Apache HTTP Serverは、例えば、Webサーバが任意のコードを実行したり(mod pythonなど)、特定のリクエストを動的なコンテンツを扱えるWebサーバに転送するような(mod_jk(英語版)など)モジュールをサポートしている。Javaなどの言語で書かれた動的なコンテンツをWebサーバで扱うことができるよう設計されたものもある(Apache Tomcatなど) 。
Web言語

同じころWeb用途に特化してPHPActive Server Pagesなどの新しい言語が開発された。
Webライブラリ

Webページの動的な生成に用いられる大半のプログラミング言語が、共通した作業を行うためのライブラリを持っているが、WebアプリケーションHTMLの生成(たとえば JavaServer Faces)などWebアプリケーションで有用なライブラリを必要とすることが多い。
フルスタック

成熟した「フルスタック」フレームワークが登場した。これは、複数のWeb開発に有用なライブラリを一つに結合したWeb開発者向けの ソフトウェアスタックとして集約したものである。例として、Jakarta EE、OpenACS、Ruby on Railsなどがある。
ポートレット

従来のフレームワークは基本的に横型に分割されているため、ユーザ機能を追加 / 変更 / 削除する場合は、アプリケーションを入れ替える必要があった。ポータルフレームワークはユーザ機能を縦型に分割し、ユーザ機能毎にホット・デプロイ / アンデプロイできる。デプロイされたポートレットをドラッグ・アンド・ドロップ操作でWebページに配置することができるのが特徴である。

なお、ポートレット毎にエンティティインターフェース(モデル)、表示(ビュー)、業務ロジックが含まれているため、ポートレット毎に異なるスタック技術を利用することもできる。例えばJSFで作成したポートレットとSpring Frameworkで作成したポートレットを1つのWebページに配置することができる。また、異なった言語でポートレットを記述することもできる。例えばJava、Ruby、PHPで記述したポートレットを一つのWebページに配置できる。

ユーザ機能を随時に追加/置き換え/削除することができるため、ポートレットフレームワークはアジャイル開発のように継続的に開発を行う場合に適している。例えばScrumの各ユーザストリーをプラグインにすることができる。

ポートレットフレームワークを利用したWebシステムの例として、liferayAlfrescoなどがある。その中でliferayは開発者向けのツールが揃っている。
アーキテクチャ
Model view controller

多数のフレームワークが、データモデルビジネスロジックユーザーインターフェイスを分割するためにMVCモデルに従っている。


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:33 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef