UPnP与Jini面对面

来源:互联网 发布:安卓拒接电话软件 编辑:程序博客网 时间:2024/04/28 03:18

与Jini的魔力象征相比,UPnP的名字更贴切,也更实际,从名字就可以知道它最主要的特色:通用、即插即用。

与Jini类似,UPnP的目标也是希望延伸到家庭中的每个设备,从各种数码A/V设备到各种信息家电设备。用过Windows的人都知道,在PC上插入一个新硬件的时候,Windows会自动识别到新硬件的加入,并自动引导驱动程序的安装,其中起作用的就是微软的PnP(即插即用)技术;如果将计算机的概念扩展到网络,在网络上有新硬件加入的时候,网络的其他设备就能知道它的存在,并可与新硬件进行互操作,那么需要用到的就是UPnP技术。

UPnP论坛成立于1999年6月,当年年底与推进家电产品结构标准化组织Hom API合而为一。到目前为止,其成员包括微软、Intel、IBM、惠普、Axis Communication、Siemens、松下、三菱、飞利浦等公司。

扩展即插即用

UPnP从PnP技术发展而来,而PnP是随着Windows 95的风行而普及的PC机设备标准。UPnP最基本的概念是设备模型,设备可以是物理设备,比如数码相机,也可以是逻辑设备,比如一套软件模拟的音响设备。UPnP的通信基于TCP/IP协议,所以不同底层连接技术的设备都可以通过UPnP相连(如图1所示)。虽然这一点与Jini颇为类似,但它们的实现方式实际上是不同的,Jini是通过Java虚拟机实现跨平台能力。

在UPnP实际工作时,用户控制点(User Control Point)是非常重要的角色。它实际上就是一组软件模块,用来和受控设备进行通信,通常包括发现程序、描述程序和命令转换器,这是一个用户控制点的最小配置(如图2所示)。此外,还可以包含可视化导航程序、事件订阅程序、浏览器、应用程序执行环境等。一个用户控制点可以控制多个受控设备,而用户控制点所在的设备可以同时是一个受控设备。

当用户控制点启动发现程序时,受控设备中的发现程序会返回一个URL,指向受控设备的描述页面,用户控制点收到URL之后由描述程序访问受控设备上的描述页面。描述页面包含了对受控设备上各种服务的控制URL和可接受服务控制的协议说明,用户控制点可以根据说明来对相应的服务进行访问。通常由用户控制点本地的应用程序进行本地调用,然后由命令转换器将调用转换为符合受控设备服务控制协议说明的信息传递给受控设备的相应服务。在受控设备状态发生变化时,可根据要求将状态变化通知用户控制点。

利用PC的成就

在2002年7月的“NetWorld+Interop 2002 Tokyo”展览会上,微软展出了支持UPnP的立体声音响(如图3所示)以及打印机和扫描仪,分别来自飞利浦和理光两家公司。从表面上看,该音响设备没有什么特别之处,但其背面却配有LAN接口,如果将该设备与PC相连,其UPnP功能会被Windows XP自动识别,并可用来播放各种声音文件。除了PC机,它还可以与电视机、MP3播放机等直接连接。同时展示的打印机和扫描仪也可以被自动识别,与现有打印机、扫描仪的最大区别就是没有了复杂的IP地址等方面的设置工作。不过这些设备都还只是样机,并没有投产计划。

除此之外,Intel、D-Link、ARESCOM、Buffalo、NetGear、Linksys等厂商也都一致看好UPnP,并纷纷推出支持UPnP的路由器、网络摄像机、网络打印机等产品。

UPnP的发展来源于PC机,所以它的应用除了在家庭网络方面,可以说与目前的计算机应用联系最为密切。比如支持UPnP的路由器可以使用户的计算机从局域网转到广域网时,无需更改IP地址,完全由路由器自动实现全球IP与私人IP地址的转换。因为UPnP提供NAT Traversal功能,它可以将服务提供商分配的全球IP地址等信息通知给LAN内的计算机,LAN内的PC机收到来自路由器的信息之后,可以向互联网传送WAN方面的IP地址信息。

强力挑战Jini

UPnP是Jini目前最有力的竞争者,它们的体系结构很相似,只是UPnP支持双节点对等连接。比如数码相机的照片可以不通过计算机作为中介就直接送到打印机打印。另外,UPnP还支持现有的各种工业标准,包括TCP/IP、HTML、XML、DCP,而Jini的通信是通过Java语言定义的接口来实现远程功能调用。从逻辑层次上看,Jini更接近分布式API共用环境,从而能够提供比UPnP更高的安全性、更好的编程环境和更强的跨平台能力。

去年下半年的时候,曾经因为UPnP而导致Windows XP存在安全隐患,相信大家还记忆犹新,虽然后来微软及时发布了补丁程序,但这是UPnP的架构导致的。Jini的逻辑层次比UPnP要高,而且Java语言本身的优势,使得Jini在安全和应用耦合方面更胜一筹,但代价是牺牲效率。

虽然UPnP与Jini的竞争激烈,不过2000年下半年,Sun公司加入了UPnP论坛。有人称Sun进入了敌人的领地;有人怀疑Sun是不是要放弃Jini。不过Sun表态说,Sun做这个决定并不意味着放弃了Jini,Sun加入UPnP只是为了获得一些信息,而要获得最新信息就必须成为其他组织的成员,因为对Sun来说了解其他世界的发展现状很重要。对于这样的变化,微软无疑很欢迎。

吸取同族的优点

除了Jini与UPnP还有Salutation、JetSend等可选的对等连通技术。Salutation来自Consortium公司,其架构看起来比其他规范更务实。它的特色在于试图提供通信协议的独立性,即可以根据不同的情况选择不同的通信方式。其驱动程序集中在操作系统上,对于同等设备与网络的互连,由信息服务器向设备询问自身的描述信息,然后将适合该类设备的信息下载。

JetSend来自惠普公司,与前三者的不同之处在于,它没有服务发现程序,而是为设备规定了一种语言以共享信息,一旦它们相互发现就可以使用这种语言进行对话。惠普公司1997年就推出了该技术,到目前市场上也有一些JetSend设备,但大多数是打印机。

从技术角度来说,这几种规范各有千秋,但能否在家庭网络领域盛行,不只在于技术的优劣,更何况目前的技术还远没能解决连通方面的所有问题。我们也许可以说现在是处于标准大战的时候,但更准确的说法或许应该是现在正是各种规范自由发展的阶段,除了竞争,它们目前最需要的是技术的突破性进展和相互之间的学习借鉴。


原创粉丝点击