Web アプリケーションについて

最終更新日 : 2021年12月20日

Dreamweaver 以降では、ユーザーインターフェイスが簡素化されています。 そのため、この記事で説明されているオプションの一部が Dreamweaver 以降には存在しない場合があります。 詳しくは、こちらの記事を参照してください。

Web アプリケーションについて

web アプリケーションとは、部分的または完全に未確定のコンテンツを含むページで構成された web サイトです。ページの最終的なコンテンツは、訪問者が web サーバーにページをリクエストした時にのみ決定されます。ページの最終的なコンテンツは、訪問者のアクションに基づいてリクエストごとに変化するため、この種のページは動的ページと呼ばれます。

web アプリケーションは、さまざまな課題や問題に対処するために構築されます。このセクションでは、web アプリケーションの一般的な使用方法について説明し、簡単な例を示します。

Web アプリケーションの一般的な用途

Webアプリケーションには、サイト訪問者と開発者の両方にとって多くの用途があります。以下はその例です:

  • コンテンツが豊富な web サイトで、訪問者が情報を迅速かつ簡単に見つけられるようにします。

    この種の web アプリケーションは、訪問者が必要に応じてコンテンツを検索、整理、ナビゲートする機能を提供します。例として、会社のイントラネット、Microsoft MSDN(www.msdn.microsoft.com)、および Amazon.com(www.amazon.com)があります。

  • サイトビジターから提供されるデータを収集、保存、および分析する

    以前は、HTML フォームに入力されたデータは、処理のために従業員への電子メールメッセージまたは CGI アプリケーションとして送信されていました。Web アプリケーションは、フォームデータを直接データベースに保存し、そのデータを抽出して分析用の Web ベースのレポートを作成することもできます。例として、オンラインバンキングページ、ストアのチェックアウトページ、サーベイ、ユーザーフィードバックフォームなどがあります。

  • 頻繁に変更されるコンテンツを含む Web サイトを更新する

    web アプリケーションにより、web デザイナーはサイトの HTML を継続的に更新する必要がなくなります。ニュース編集者などのコンテンツプロバイダーがwebアプリケーションにコンテンツを提供し、webアプリケーションがサイトを自動的に更新します。例として、Economist(www.economist.com)および CNN(www.cnn.com)があります。

Web アプリケーションの例

Janet は、1000 人の従業員を擁する中規模会社のイントラネットと Internet サイトの維持管理を担当するプロフェッショナルな web デザイナーであり、長年の Dreamweaver ユーザーです。ある日、人事部の Chris が問題を抱えて彼女のところにやってきました。HR は従業員フィットネスプログラムを管理しており、従業員がウォーキング、サイクリング、ランニングで 1 マイル移動するごとにポイントを与えています。各従業員は月間マイル数の合計を Chris に電子メールでレポートする必要があります。月末に、Chris はすべての電子メールメッセージを収集し、ポイント合計に応じて従業員に少額の現金賞品を授与します。

Chris にとって問題なのは、フィットネスプログラムがうまく行きすぎているということです。 現在、非常に多くの従業員が参加しているため、Chris は月末にメールが殺到しています。Chris は Janet に web ベースのソリューションが存在するかどうか尋ねます。

Janet は以下のタスクを実行するイントラネットベースの web アプリケーションを提案します:

  • 従業員がシンプルな HTML フォームを使用して web ページでマイル数を入力できるようにする

  • 社員の走行マイル数をデータベースに格納する

  • 走行マイルのデータに基づいたフィットネスポイントを計算する

  • 毎月の進捗を従業員にトラッキングさせる

  • 月末に Chris がワンクリックでポイント合計にアクセスできるようにする

    Janet は、Dreamweaver を使用して昼食時間前にアプリケーションを動作させます。Dreamweaver には、この種のアプリケーションを迅速かつ簡単に作成するために必要なツールが揃っています。

Web アプリケーションのしくみ

Web アプリケーションは、静的および動的な Web ページのコレクションです。静的 web ページとは、サイト訪問者がリクエストしたときに変更されないページのことです。web サーバーは、ページを変更することなく、リクエストしたブラウザーに送信します。対照的に、動的 web ページは、リクエストしたブラウザーに送信される前にサーバーによって変更されます。ページの変化する性質により、動的と呼ばれています。

例えば、フィットネス結果を表示するページをデザインし、特定の情報(従業員名や結果など)は、特定の従業員がページをリクエストしたときに決定されるようにすることができます。

次のセクションでは、Webアプリケーションがどのように機能するかについて詳しく説明します。

静的 Web ページの処理

静的 web サイトは、web サーバーを実行しているコンピューター上でホストされる、関連する HTML ページとファイルのセットで構成されています。

web サーバーは、ブラウザーからのリクエストに応答して web ページを提供するソフトウェアです。ページリクエストは、訪問者が web ページ上のリンクをクリックしたり、ブラウザーでブックマークを選択したり、ブラウザーのアドレステキストボックスに URL を入力したりすることで生成されます。

静的 web ページの最終的な内容は、ページデザイナーによって決定され、ページがリクエストされても変更されません。以下に例を示します:

<html>

<head>

<title>Trio Motors Information Page</title>

</head>

    <body> 

<h1>About Trio Motors</h1>

<p>Trio Motorsは大手自動車メーカーです。</p>

</body>

</html>

ページの HTML コードの各行は、ページがサーバーに配置される前に、デザイナーによって記述されます。HTML がサーバー上に配置された後は変更されないため、この種のページは静的ページと呼ばれます。

厳密に言うと、静的ページは必ずしも常に「静的」なわけではありません。 例えば、ロールオーバーイメージや Flash コンテンツ(SWF ファイル)を使用すると、静的なページに動きを与えることができます。 ただし、本マニュアルでは、変更されずにブラウザーに送信されるページを「静的ページ」と呼びます。

web サーバーが静的ページのリクエストを受信すると、サーバーはリクエストを読み取り、ページを見つけて、次の例に示すように、リクエストしたブラウザーに送信します:

静的 Web ページの処理

A. Web ブラウザーが静的ページを要求します。 B. Web サーバーがページを検索します。 C. Web サーバーが要求元ブラウザーにページを返します。 

web アプリケーションの場合、訪問者がページをリクエストした時点で、コードの特定の行が未確定です。これらの行は、ページがブラウザーに送信される前に、何らかのメカニズムによって決定される必要があります。メカニズムについては、次のセクションで説明します。

動的ページの処理

Webサーバーが静的Webページのリクエストを受信すると、サーバーはページを直接リクエスト元のブラウザーに送信します。ただし、web サーバーが動的ページのリクエストを受信した場合は、異なる動作をします。サーバーはページを、ページの完成を担当する特別なソフトウェアに渡します。この特別なソフトウェアをアプリケーションサーバーと呼びます。

アプリケーションサーバーはページ上のコードを読み込み、コード内の指示に従ってページを完成させ、その後、ページからコードを削除します。その結果、静的ページがアプリケーションサーバーから web サーバーに戻され、web サーバーがそのページをリクエスト元のブラウザーに送信します。ページが到着したときにブラウザーが受け取るのは、純粋な HTML のみです。以下は、処理の図です。

動的ページの処理

A. Web ブラウザーが動的ページを要求します。 B. Web サーバーがページを検索してアプリケーションサーバーに渡します。 C. アプリケーションサーバーは、ページから命令をスキャンしてページを完成させます。 D. アプリケーションサーバーが完成したページを Web サーバーに返します。 E. Web サーバーが完成したページを要求元ブラウザーに返します。 

データベースへのアクセス

アプリケーションサーバーを使用すると、データベースなどのサーバーサイドリソースを操作できます。例えば、動的ページは、アプリケーションサーバーにデータベースからデータを抽出して、ページの HTML に挿入するよう指示する場合があります。詳しくは、www.adobe.com/go/learn_dw_dbguide_jp を参照してください。

データベースを使用してコンテンツを保存することで、web サイトのデザインと、サイトユーザーに表示したいコンテンツを分離できます。すべてのページに対して個別の HTML ファイルを作成する代わりに、提供したい情報の種類ごとに、ページまたはテンプレートを 1 つ作成するだけで済みます。その後、コンテンツをデータベースにアップロードし、ユーザーリクエストに応じて web サイトがそのコンテンツを取得できます。また、単一の引用元で情報を更新し、各ページを手動で編集することなく、web サイト全体にその変更を反映することもできます。Adobe Dreamweaver を使用して、データベースからデータを挿入、更新、または削除するための web フォームを設計できます。

データベースからデータを抽出する指示を database query と呼びます。クエリは、SQL(Structured Query Language)と呼ばれるデータベース言語で表現された検索条件で構成されます。SQL クエリは、ページのサーバーサイドスクリプトまたはタグに記述されます。

アプリケーションサーバーは、データベースの独自形式によってデータが判読不可能になるため、データベースと直接通信することはできません。これは、Microsoft Word 文書を Notepad や BBEdit で開いた場合に判読不可能になるのと同様です。アプリケーションサーバーは、データベースドライバーという仲介役を通じてのみデータベースと通信できます。データベースドライバーは、アプリケーションサーバーとデータベース間の通訳として機能するソフトウェアです。

ドライバーが通信を確立すると、データベースに対してクエリが実行され、レコードセットが作成されます。recordsetは、データベース内の1つまたは複数のテーブルから抽出されたデータのセットです。レコードセットはアプリケーションサーバーに返され、アプリケーションサーバーはそのデータを使用してページを完成させます。

以下は、SQL で記述された簡単なデータベースクエリーです。

SELECT lastname, firstname, fitpoints

FROM employees

このステートメントは3列のレコードセットを作成し、データベース内のすべての従業員の姓、名、フィットネスポイントを含む行を格納します。詳しくは、www.adobe.com/go/learn_dw_sqlprimer_jp を参照してください。

次の例は、データベースにクエリを実行してブラウザーにデータを返すプロセスを示しています。

データベースへのアクセス

A. Web ブラウザーが動的ページを要求します。 B. Web サーバーがページを検索してアプリケーションサーバーに渡します。 C. アプリケーションサーバーがページをスキャンして命令を検索します。 D. アプリケーションサーバーがクエリーをデータベースドライバーに送信します。 E. ドライバーがデータベースに対するクエリーを実行します。 F. レコードセットがドライバーに返されます。 G. ドライバーがレコードセットをアプリケーションサーバーに渡します。 H. アプリケーションサーバーがデータをページに挿入し、そのページを Web サーバーに渡します。 I. Web サーバーが完成したページを要求元ブラウザーに返します。 

web アプリケーションでは、適切なデータベースドライバがサーバーにインストールされている限り、ほぼどのようなデータベースでも使用できます。

小規模で低コストなアプリケーションを作成する予定の場合は、Microsoft Accessで作成されたもののようなファイルベースのデータベースを使用できます。堅牢で業務に重要なアプリケーションを作成する予定の場合は、Microsoft SQL Server、Oracle 9i、MySQLで作成されたもののようなサーバーベースのデータベースを使用できます。

データベースが web サーバーとは別のシステムにある場合、web アプリケーションが迅速かつ効率的に動作できるよう、2つのシステム間に高速接続があることを確認してください。

動的ページのオーサリング

動的ページをオーサリングするには、HTML を記述し、サーバーサイドのスクリプトまたはタグを HTML に追加して、ページを動的にします。 完成したコードを表示すると、ページの HTML の中に言語が埋め込まれています。 したがって、これらの言語は HTML 埋め込み型のプログラミング言語と呼ばれます。 次の基本的な例では、CFML(ColdFusion Markup Language)を使用しています。

注意:CFMLサポートはDreamweaverから削除されました。

<html>

<head>

<title>Trio Motors Information Page</title>

</head>

    <body> 

<h1>About Trio Motors</h1>

<p>Trio Motors is a leading automobile manufacturer.</p>

<!--- embedded instructions start here --->

<cfset department="Sales">

<cfoutput>

<p>#department#ページにアクセスしてください。</p>

</cfoutput>

<!--- embedded instructions end here --->

</body>

</html>

このページの埋め込み命令は次のアクションを実行します:

departmentという変数を作成し、文字列「Sales」を割り当てます。

変数の値「Sales」をHTMLコードに挿入します。

アプリケーションサーバーは次のページを web サーバーに返します:

<html>

<head>

<title>Trio Motors 情報ページ</title>

</head>

    <body> 

<h1>Trio Motors について</h1>

<p>Trio Motors は大手自動車メーカーです。</p>

<p>弊社のセールスページもぜひご覧ください。</p>

</body>

</html>

web サーバーはページをリクエストしたブラウザーに送信し、ブラウザーは次のように表示します:

Trio Motors について

Trio Motors は大手自動車メーカーです。

セールスページを必ずご覧ください。

サーバーで利用可能なサーバーテクノロジーによって、使用するスクリプトまたはタグベースの言語を選択します。Dreamweaver でサポートされるサーバーテクノロジーで人気の言語は次のとおりです:

サーバーテクノロジ

言語

ColdFusion

CFML(ColdFusion Markup Language)

ASP(Active Server Pages)

VBScript[VBScript]

JavaScript

PHP

PHP

Dreamweaver では、ページが動作するために必要なサーバーサイドスクリプトやタグを作成できます。また、Dreamweaver のコーディング環境で手動で記述することもできます。

Web アプリケーションの用語

このセクションでは、web アプリケーションに関してよく使用される用語を定義します。

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

サーバーサイドスクリプトやタグを含む web ページの処理を web サーバーがおこなうために役立つソフトウェア。そのようなページがサーバーからリクエストされると、web サーバーはページをブラウザーに送信する前に、処理のためにアプリケーションサーバーにページを渡します。詳しくは、web アプリケーションの動作方法 を参照してください。

一般的なアプリケーションサーバーには、ColdFusion と PHP があります。

データベース

テーブルに保存されたデータのコレクション。テーブルの各行は 1 つのレコードを構成し、各列はレコード内のフィールドを構成します。次の例を参照してください:

データベース

データベースドライバー

web アプリケーションとデータベースの間でインタープリターとして動作するソフトウェア。データベース内のデータは、独自の形式で保存されます。データベースドライバーを使用すると、web アプリケーションは、そうでなければ解読不可能なデータを読み取り、操作することができます。

データベース管理システム

(DBMS、またはデータベースシステム)データベースの作成と操作に使用されるソフトウェア。Microsoft Access、Oracle 9i、MySQL などが一般的なデータベースシステムです。

データベースクエリー

データベースからレコードセットを抽出する操作。 クエリは、SQL と呼ばれるデータベース言語で表現された検索条件で構成されます。例えば、クエリでは、特定の列または特定のレコードのみをレコードセットに含めるように指定できます。

動的ページ

ブラウザーに送信される前に、アプリケーションサーバーによってカスタマイズされた web ページ。

レコードセット

次の例のように、データベース内の1つ以上のテーブルから抽出されたデータのセット

レコードセット

リレーショナルデータベース

複数のテーブルを含み、テーブル間でデータを共有するデータベース。DepartmentID 列を 2 つのテーブルで共有しているため、次のデータベースはリレーショナルです。

リレーショナルデータベース

サーバーテクノロジ

アプリケーションサーバーが実行時に動的ページを修正するために使用するテクノロジー。

Dreamweaver 開発環境では、以下のサーバーテクノロジーをサポートしています:

  • Adobe® ColdFusion®

  • Microsoft Active Server Pages(ASP)

  • PHP:Hypertext Preprocessor(PHP)

    また、Dreamweaver のコーディング環境を使用して、上記にリストされていない他のサーバーテクノロジー用のページを開発することもできます。

静的ページ

ブラウザーに送信される前に、アプリケーションサーバーによって修正されない web ページ。詳しくは、静的 web ページの処理を参照してください。

Web アプリケーション

部分的または完全に未確定のコンテンツを持つページを含む web サイト。これらのページの最終的なコンテンツは、訪問者が web サーバーにページを要求した時にのみ決定されます。ページの最終的なコンテンツは、訪問者の操作に基づいてリクエストごとに変わるため、この種のページは動的ページと呼ばれます。

Web サーバー

web ブラウザーからの要求に応答して web ページを送信するソフトウェア。ページ要求は、訪問者がブラウザーの web ページ上のリンクをクリック、ブラウザーでブックマークを選択、またはブラウザーのアドレステキストボックスに URL を入力したときに生成されます。

一般的な web サーバーには、Microsoft Internet Information Server(IIS)や Apache HTTP Server があります。