介绍
本文用以介绍Microsoft Windows CE操作系统的通信模型。因为应用程序和服务具有不同的通信要求,所以Windows CE提供了一套多样的通信功能选项以及相关的应用程序编程接口APIs。基于Windows CE的设备可实现任意或全部的功能选项。我们将全面讨论对基于Windows CE的设备所提供的支持能力,以及不同的部分是如何融合到整个模型中的。
Windows CE的通信支持能力
通信能力是基于Windows CE的设备的关键特性。它的范围可以从简单的电缆串行输入 (I/O)到使用传输控制协议(TCP/IP)的无线网络。除了内置的通讯硬件,比如串行电缆或红外收发器外,对PCMCIA的支持使得广泛的已投入市场的通信设备能够添加到基本的支持包中。
Windows CE支持三种通信方式:
串行I/O
网络,包括:
Windows Sockets (WinSock)和Infrared Sockets (IRSock)
TCP/IP和IRDA (Infrared Data Association,红外数据传输)
用于局域网的NDIS 4.0 (Network Device/Driver Interface Specification,网络设备/驱动程序接口规范)
通过串行线或modem的点对点协议(PPP ,Point-to-Point Protocol)和串行联接接口协议(SLIP ,Serial Link Interface Protocol)的网络
远程文件访问(Wnet API)
远程访问客户端(RAS)
支持浏览器(WinINET API)
电话API (TAPI)
通信模型图示见图1
图 1. Windows CE通信模型描述示意图
串行通信
串行I/O是Windows CE通信模型中最基本的特性,在所有的设备中都应该能够使用。在硬件上,串行通信通常通过电缆或IR收发器得以实现。
电缆的联接可以通过标准Microsoft Win32 API串行和文件系统函数处理。这些函数用于打开、关闭和操作COM(Component Object Model,组件对象模型)端口,以及从其读出和写入。交替或异步I/O并不被支持。
IR收发器被分配到一个COM端口,这样可以直接使用利用常用串行通信函数的串行I/O。I/O通信是一种“原始的”方式,这意味着,比如它不具有冲突检测。
通过IRSock (一种WinSock的扩展,将在后面讨论)可得到利用IRDA协议的更为强效的串行IR通信。作为一种直接使用IRSock的可选性手段, IRComm仿效了串行通信,不过其内部使用了IRSock和IRDA协议。
网络通信
Windows CE具有一个带有多种不同选项的网络栈。它能够使用各种硬件方式,包括红外、串行、以太网和无线联接。
浏览和远程文件系统
在网络栈的顶层,Windows CE支持WinINET和Wnet APIs的子集,以及一个SMB(server message block,服务器消息块) 重定向程序(redirector)。
WinINET API提供了对Internet浏览协议的支持。这些协议包括文件传输协议(FTP ,File Transfer Protocol)和超文本传输协议(HTTP ,Hypertext Transfer Protocol) 1.0,但不包括Gopher。WinINET API 只支持一个代理( proxy),并不具有缓冲。它还提供了对两种Internet安全协议的访问支持,这两种协议是SSL(Secure Sockets Layer ,安全套接层) 2.0 和3.0以及PCT (Private Communication Technology,私人通信技术) 1.0。
Wnet API提供了对SMB重定向程序的处理以进行远程文件访问。当前只支持对Microsoft Windows 95和Windows NT操作系统的联接。重定向程序支持UNC (Universal Naming Convention,通用命名约定)名(比如//serverXX/shareXX),但不支持驱动器符。
WinSock和IRSock
应用程序正常情况下通过WinSock接口访问网络栈。Windows CE支持WinSock 1.0的一个子集。所有标准WinSock函数都能够被使用,但异步函数(包括大部分WSAxxx 函数)则不行。Windows CE还支持SSL 2.0、3.0以及PCT 1.0安全协议。
IRSock是对WinSock的扩展以实现通过红外收发器的基于socket的通信。它设计用于支持工业标准IRDA协议。虽然一些函数在使用上略有不同,但应用程序使用IRSock与使用传统WinSock非常相似。
远程访问客户端
At the same level in the network stack as WinSock, but serving a different purpose, Windows CE支持RAS( Remote Access Server,远程访问服务器)客户端,其在网络栈中与WinSock位于相同的层次,但却有不同的用途。RAS是一种用于联接远程服务的多协议路由器。Windows CE RAS客户端实质上与Win32的实现是一样的,但它一次只支持一个点对点联接。
传输和地址层
TCP/IP协议是为Internet开发的,或许已成为最为灵活和广泛使用的网络协议。该协议被众多的系统所支持,并构成了Windows CE网络栈的核心。
许多基于Windows CE的移动设备都将具有无线通信能力。不过,常规的TCP/IP栈通常在有线网络里运行良好,而在使用无线技术时可能性能较差。Windows CE TCP/IP栈被设计得能够被配置而有效的支持无线网络。
对于红外网络,Windows CE提供了对IRDA协议的传输层支持。
数据链接层
在网络栈的底部,Windows CE支持两种数据链接层。
许多基于Windows CE的设备都通过串行通信连接方式(比如通过调制解调器)连接到它们的网络中。为了支持这类网络,Windows CE利用了被广泛使用的SLIP和PPP协议。并通过PAP( Password Authentication Protocol,口令验证协议)、CHAP (Challenge Authentication Protocol,挑战验证协议)和Microsoft CHAP提供验证。
对于LANs (Local Area Networks,局域网),Windows CE包含了NDIS 4.0的一个实现方式。当前只支持以太网微端口(Ethernet miniport)驱动程序。对于WANs (Wide Area Networks,广域网),Windows CE并不支持。
TAPI/Unimodem
Windows CE包含了一个用于基于AT(Advanced Technology,高级技术)命令的调制解调器(Unimodem)的TAPI (Telephony API,电话API)服务供应器 。其可被附接的或PCMCIA调制解调器所用。
TAPI是一套工具的集合,这些工具使得应用程序能够充分利用多种电话和通信服务,而不需要对特定技术拥有详细的知识背景。Windows CE 的TAPI实现方式用于解决外出人员的电话问题,并提供了向外拨号和地址翻译服务。拨入电话当前并不支持。对多拨号地点的支持可由Control Panel完成。为了提供硬件选择上的灵活性,TAPI支持可安装的服务供应器。
总结
Windows CE通信模型设计用于能够在多种不同类型的服务上良好地工作。它提供了一种具有不同选项集合的OEM (original equipment manufacturer,原始设备制造商)方式以供从中选择。其模块化的设计使得耗用被降低到最小,因为模型中只有一个特定设备所必需的部分才会被包含于其中。有关根据特定设备调整通信模型的更多细节,请参阅Windows CE OEM Adaptation Kit。
对于应用程序开发人员而言,Windows CE支持绝大多数通信类型。这些通信方式可通过类似的基于Win32的APIs进行处理,这使得开发人员易于在他们的程序中实现有关的通信能力。有关为基于Windows CE的设备编写具有通信功能的应用程序的详细信息,请参阅Windows CE Software Development Kit。