Windows CE 5.0
Guy Smith
1997年9月
はじめに
この記事の目的は、Microsoft(R) Windows(R) CEオペレーティング システムの通信モデルを提示することです。アプリケーションやデバイスの通信ニーズはそれぞれに異なるため、Windows CEは、各種多様な通信オプションや関連アプリケーション プログラミング インターフェイス(API)をサポートします。Windows CEベースのデバイスは、利用できるオプションのいずれかまたはすべてを実装できます。この記事では、Windows CEベースのデバイスに対する通信サポートをすべて紹介し、異なる構成要素を組み合わせて全体的なモデルを作り上げる方法を説明します。
Windows CEの通信サポート
通信機能は、Windows CEベースのデバイスの主要な特徴です。通信機能は、ワイヤ経由の単純なシリアル入力(I/O)からTransport Control Protocol(TCP/IP)によるワイヤレス ネットワーキングまで、多様な形態をとります。PCMCIAサポート機能は、シリアル ケーブルや赤外線(IR)トランシーバなどの内蔵通信ハードウェアのほか、基本パッケージに追加が可能な、市場で流通している広範な通信デバイスを利用できるようにします。
Windows CEは3つのタイプの通信をサポートします。
シリアルI/O
以下を含むネットワーキング サポート
- Windows Sockets(WinSock)およびInfrared Sockets(IRSock)
- TCP/IPおよびInfrared Data Association(IRDA)
- ローカル エリア ネットワーキング用Network Device/Driver Interface Specification(NDIS)4.0
- シリアル接続やモデム接続を介したネットワーキング用のPoint-to-Point Protocol(PPP)およびSerial Link Interface Protocol(SLIP)
- リモート ファイル アクセス(Wnet API)
- リモート アクセス クライアント(RAS)
- ブラウザ サポート(WinINET API)
テレフォニーAPI(TAPI)
図1は、通信モデルの概念図です。
図1:
Windows CE通信モデルの概念図
シリアル通信
シリアルI/Oは、Windows CE通信モデルの最も基本的な特徴であり、実際すべてのデバイスで利用できるはずです。シリアル通信は、通常、ハードウェア レベルでは、ケーブルやIRトランシーバを介してアクセスします。
ケーブル接続は、標準的なMicrosoft Win32(R) APIシリアルおよびファイル システム機能によって処理されます。これらは、Component Object Model(COM)ポートを開いたり、閉じたり、操作するほか、それらとの間で読み書きするのに使用できます。オーバーラップIOや非同期I/Oはサポートされていません。
IRトランシーバは、COMポートに割り当てられ、通常のシリアル通信機能を使用し、直接シリアルI/Oが利用できます。I/Oは「ロー(raw)」であるため、例えば、衝突検出などはありません。
IRSock(後述するWinSockの拡張機能)を介して、IRDAプロトコルを使用し、より堅牢なシリアルIR通信が利用できます。直接にIRSockを使用する代わりに、IRCommがシリアル通信をエミュレートし、内部的にIRSockおよびIRDAプロトコルを使用します。
ネットワーク通信
Windows CEはネットワーク スタックをもち、多くの異なるオプションが利用できます。Windows CEは、赤外線、シリアル、Ethernet、ワイヤレス リンクなど多様なハードウェアを使用できます。
ブラウジングおよびリモート ファイル システム
Windows CEは、ネットワーク スタックをベースに、WinINETやWnet APIのサブセット、サーバー メッセージ ブロック(SMB)のリダイレクタをサポートします。
WinINET APIは、File Transfer Protocol(FTP)やHypertext Transfer Protocol(HTTP)1.0など、インターネット ブラウジング プロトコルに対するサポートを提供します(Gopherはサポートされません)。プロクシは1つしかサポートされておらず、キャッシングはありません。また、Secure Sockets Layer(SSL)2.0および3.0、Private Communication Technology(PCT)1.0の2つのインターネット セキュリティ プロトコルへのアクセスを提供します。
Wnet APIは、リモート ファイル アクセス用のSMBリダイレクタへのアクセスを提供します。現在、Microsoft Windows 95とWindows NT(R)オペレーティング システム接続しかサポートされていません。リダイレクタは、Universal Naming Convention(UNC)形式の名前(//serverXX/shareXXなど)をサポートしていますが、ドライブ文字は使用できません。
WinSockおよびIRSock
通常、アプリケーションはWinSockインターフェイスを介してネットワーク スタックにアクセスします。Windows CEは、WinSock 1.0のサブセットをサポートします。標準的なWinSock関数はすべて実装されていますが、非同期関数は実装されていません(WSAxxx関数を含め)。またWindows CEは、SSL 2.0、3.0およびPCT 1.0セキュリティ プロトコルをサポートしています。
IRSockは、赤外線トランシーバを介してソケットベースの通信を利用できるようにする、WinSockの拡張機能です。IRSockは、業界標準IRDAプロトコルをサポートするよう設計されています。アプリケーションは従来のWinSockとほぼ同じ方法でIRSockを実装しますが、機能の一部はやや使用方法が異なります。
リモート アクセス クライアント
Windows CEは、ネットワークでWinSockと同じレベルで異なる目的のために、リモート アクセス サーバー(RAS)クライアントをサポートします。RASは、リモート デバイスを接続するため使われるマルチプロトコル ルータです。Windows CE RASクライアントは、まったくWin32実装と同じですが、一度に1つのポイント ツー ポイント接続しかサポートしません。
トランスポート層およびアドレス層
TCP/IPスイートは、インターネット用に開発され、おそらく最も柔軟で広範に実装されているネットワーク プロトコルです。これは広範なシステムによってサポートされ、Windows CEネットワーク スタックの核をなしています。
Windows CEベースの多くのモバイル デバイスは、ワイヤレス通信機能をもっています。しかし、従来のTCP/IPスタックは、ワイヤード ネットワークで効率的に機能するよう設計されており、ワイヤレス技術では余り効率的に機能しません。Windows CE TCP/IPスタックは、ワイヤレス ネットワークを効率的にサポートする構成がとれるように設計されています。
赤外線ネットワークの場合、Windows CEは、IRDAプロトコルに対してトランスポート層をサポートします。
データ リンク層
Windows CEは、ネットワーク スタックをベースに、2つのデータ リンク層をサポートしています。
Windows CEベースの多くのデバイスは、モデムなどのシリアル通信リンクを介してネットワークに接続します。Windows CEは、このようなタイプのネットワーキングをサポートするため、広く使われているSLIPとPPPを実装しています。認証は、Password Authentication Protocol(PAP)、Challenge Authentication Protocol(CHAP)、Microsoft CHAPを介して提供されます。
Windows CEには、ローカル エリア ネットワーク(LAN)用にNDIS 4.0が実装されています。現在のところ、サポートされているのはEthernetミニポート ドライバだけです。広域ネットワーク(WAN)はサポートされていません。
TAPI/ユニモデム
Windows CEには、Advanced Technology(AT)コマンド ベースのモデム(ユニモデム)対応テレフォニーAPI(TAPI)サービス プロバイダが含まれています。これは内臓モデム、またはPCMCIAモデムで使用できます。
TAPIは、特定の技術の詳しい知識がなくても、アプリケーションが広範な電話および通信サービスを活用できるユーティリティの集合です。Windows CEのTAPI実装は、呼の発信に照準を定めており、発信ダイヤリングおよびアドレス翻訳サービスを提供します。現在、着呼はサポートされていません。複数の所在地のサポートは、コントロール パネルを通じて実装されています。TAPIはハードウェアの選択の柔軟性を提供するため、インストール可能サービス プロバイダをサポートしています。
まとめ
Windows CE通信モデルは、非常に異なるタイプの多様なデバイスで十分に機能するよう設計されています。Windows CE通信モデルは、OEM業者が多様な選択肢から選べるようにします。モジュール型の設計により、特定のデバイスが必要とするモデルの部品だけ組み込めばよいため、オーバーヘッドが最小限に抑えられます。特定のデバイスへの通信モデルの適応については、Windows CE OEM Adaptation Kitをご覧ください。
Windows CEは、アプリケーション開発者用に最も一般的なタイプの通信をサポートしています。これらは、親しみやすいWin32ベースのAPIを介してアクセスでき、開発者は、アプリケーションに対して簡単に通信機能を実装できます。多くの場合、わずかな変更だけで、あるいはまったく変更しないで既存コードが使えます。Windows CEベースのデバイス用に通信機能搭載アプリケーションを作成する方法については、Windows CE Software Development Kitをご覧ください。