アプリケーションのデザイン上の検討事項
この記事では、インターネットのプログラミングで考慮すべきいくつかの設計上の問題について説明します。
この記事では、次のトピックについて説明します。
プログラムを作成する準備が整ったら、「MFC アプリケーションの作成」を参照してください。
イントラネットとインターネットの比較
多くのアプリケーションはインターネット上で実行され、ブラウザーとインターネット アクセスがあればだれでもアクセスできます。 企業には、TCP/IP プロトコルと Web ブラウザーを使用した企業規模のネットワークであるイントラネットも導入されています。 イントラネットは、全社的な情報を一元化した、容易にアップグレードできるソースを提供します。 ソフトウェアのアップグレード、アンケートの配布と集計、カスタマー サポート、情報配信にそれらを使用できます。 次の表は、インターネットとイントラネットの機能を比較したものです。
Internet | イントラネット |
---|---|
低帯域幅 | 高帯域幅 |
データとシステムのセキュリティが高くない | データとシステムへのアクセスが管理されている |
コンテンツの管理が最小限 | コンテンツの管理が高度 |
クライアントまたはサーバー アプリケーション
アプリケーションは、クライアント コンピューターまたはサーバー コンピューターで実行されることが考えられます。 サーバーに格納したアプリケーションをインターネット経由でクライアント コンピューターにダウンロードして実行することもあるでしょう。 クライアント アプリケーションにファイルをダウンロードさせるためには、MFC WinInet のクラスを使用します。 ファイルやコントロールのプロパティをダウンロードするには、MFC と非同期モニカーのクラスを使用します。 クライアント アプリケーションや、サーバーからクライアントにダウンロードして実行するアプリケーションでは、ActiveX コントロールとアクティブ ドキュメントのクラスを使用します。
Web ページ: HTML、アクティブ ドキュメント、ActiveX コントロール
Microsoft では、Web ページ上のコンテンツを提供するための方法をいくつか用意しています。 Web ページでは、標準の HTML または HTML 拡張機能 (オブジェクト タグなど) を使用して、ActiveX コントロールなどの動的コンテンツを提供できます。
Web ブラウザーでは、通常、HTML ページが表示されます。 アクティブ ドキュメントでは、COM 対応ブラウザーの簡単なポイント アンド クリック インターフェイスでアプリケーションのデータを表示することもできます。 アクティブ ドキュメント サーバーは、クライアント領域全体にフル フレームのドキュメントとその独自のメニューやツール バーを表示できます。
作成した ActiveX コントロールは、サーバーから非同期的にダウンロードして Web ページに表示できます。 VBScript などのスクリプト言語を使用すれば、クライアント側で情報を検証してからサーバーに送信することができます。
ブラウザーまたはスタンドアロン アプリケーション
ActiveX コントロールを作成して、ブラウザーに表示される HTML ページやアクティブ ドキュメント サーバーに埋め込むことができます。 要求の送信ボタンを含んだ HTML ページを作成して、ISAPI アプリケーションを Web サーバーで実行することができます。 ブラウザー アプリケーションを使用しなくても、インターネット プロトコルを使用して、ファイルをダウンロードしたりユーザーに情報を表示したりすることのできるスタンドアロン アプリケーションを作成できます。
インターネット上の COM
ActiveX コントロール、アクティブ ドキュメント、非同期モニカーには、いずれも COM (コンポーネント オブジェクト モデル) のテクノロジが使用されています。
ActiveX コントロールは、インターネット サイト上のドキュメントやページに動的コンテンツを提供します。 COM があることで、ActiveX コントロールやフルフレームのドキュメントをアクティブ ドキュメントを使って作成できます。
非同期モニカーは、データの増分ダウンロードやプログレッシブ ダウンロードなど、インターネット環境でのコントロールの適切な働きを可能にする機能を提供します。 コントロールは、そのデータを非同期で同時に取得する可能性のある他のコントロールともうまく連携する必要があります。
クライアント データ ダウンロード サービス
クライアントへのデータ転送には、WinInet と非同期モニカーの 2 つの API セットが役立ちます。 HTML ページに大きな .gif や .avi ファイル、ActiveX コントロールがある場合、非同期モニカーを使用するか WinInet を非同期的に使用してダウンロードを非同期的に行うことにより、ユーザーに対する応答性を高めることができます。
データの転送は、インターネットで普通に行われるタスクです。 既にアクティブ テクノロジを使用している場合 (既に ActiveX コントロールを利用しているなど)、非同期モニカーを使用することで、ダウンロードの進行中にプログレッシブにデータをレンダリングできます。 WinInet を使用すると、HTTP、FTP、Gopher など、一般的なインターネット プロトコルでデータを転送できます。 どちらの方法もプロトコルに依存せず、WinSock と TCP/IP の使用に対する抽象レイヤーを備えています。 さらに、WinSock を直接使用することもできます。
次の表は、MFC を使用してインターネットでデータを転送するいくつかの方法をまとめたものです。
使用するプロトコル | 条件 | 使用するクラス |
---|---|---|
非同期モニカーを使用したインターネット ダウンロード | COM、ActiveX コントロール、および任意のインターネット プロトコルを使用した非同期転送。 | CAsyncMonikerFile、CDataPathProperty |
Wininet | HTTP、FTP、Gopher のインターネット プロトコル。 データは同期的または非同期的に転送でき、システム全体のキャッシュに格納されます。 | CInternetSession、CFtpFileFind、CGopherFileFind、その他多数 |
WinSock | 最大限の効率と制御。 ソケットと TCP/IP プロトコルについての理解が必要です。 | CSocket、CAsyncSocket |
関連項目
MFC インターネット プログラミングの作業
MFC インターネット プログラミングの基礎
Win32 インターネット拡張機能 (WinInet)
インターネット上の非同期モニカー