Microsoft ActiveSync是如何封装底层的不同连接?
根据ActiveSync帮助文档中的描述,ActiveSync可支持多种与Windows Moblie设备连接的方式:
o USB cable(USB线)
o Serial cable(串口线)
o Infrared(红外线)
o Bluetooth(蓝牙)
o Network(计算机网络)
也就是说,只要在PC与设备之间建立上述任何一种连接,就可以进行PC和设备间的数据交换了。
PC端管理Windows Moblie设备是通过RAPI来实现的,RAPI是MS专门为PC远程管理设备而制定的API,这些API实际上是RPC调用的封装。
问题就来了
1)RAPI是RPC,而RPC是基于tcp/ip网络socket的应用,即没有tcp/ip协议栈,RAPI是无法work的?
2)如果RAPI基于tcp/ip的,那么ActiveSync是如何建立PC与设备之间的tcp/ip的连接,而不论底层的物理连接是什么?可能的方案是,为每一种物理连接添加一个tcp/ip适配层(驱动),屏蔽tcp/ip的传输层。传统上,tcp/ip的传输层是网卡+网线或WiFi,而这个适配层要做的工作是将传输层改为上述任一可用的连接。对于USB连接,这个适配层可能是一个驱动,安装ActiveSync时也发现最后会更新USB驱动。
3)如果不需要建立tcp/ip连接,那么RPC是基于何种连接上实现RPC调用的?
对于这几个问题非常困惑,望指教。先谢过了。