与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设备,但大多数是打印机。

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

UPnP与Jini面对面相关推荐

  1. linux监听9080,基于UPnP发现与组播技术的IPTV终端实现

    摘 要:本文设计并实现的终端系统工作在mClinux操作系统下,通过应用UPnP中的SSDP服务发现协议,实现在局域网中IPTV终端的自动发现, 并使用IP组播技术将TV视频信号及本地的AV视频信号. ...

  2. 福利 | 给你个机会与俞士纶(Philip S. Yu)面对面交流 !(附俞教授论文合集资源)...

    清华数据科学研究院院长俞士纶(Philip S. Yu),美国伊利诺伊大学芝加哥分校(UIC)特聘主任教授.美国计算机学会(ACM)及美国电气电子工程师学会(IEEE)院士(Fellow),清华大学特 ...

  3. NeurIPS2019:新人与Bengio等大佬面对面交流,还颁发三项论文奖

    2019-12-17 10:09:04 机器之心报道 机器之心编辑部 NeurIPS 2019 已经在温哥华接近尾声.作为人工智能和机器学习领域最顶级的盛会之一,本届大会参会总人数已经超过 13000 ...

  4. 使用UPnP来穿透NAT使内网接口对外网可见

    原文链接http://www.cnblogs.com/mgen/archive/2013/02/03/2890987.html 在写完Object 672后,软件的一个致命问题暴露出来,如果服务器和客 ...

  5. Kali渗透测试——UPNP网关发现工具Miranda

    UPNP网关发现工具Miranda MirandaUPNP 是各种各样的智能设备.无线设备和个人电脑等实现遍布全球的对等网络连接(P2P)的结构.例如,迅雷软件就支持UPNP结构,从而加快软件下载速度 ...

  6. Atitit.upnp SSDP 查找nas的原理与实现java php c#.net c++

    Atitit.upnp SSDP 查找nas的原理与实现java php c#.net c++ 1. 查找nas的原理1 2. 与dlna的关系1 3. 与ssdp的关系1 4. Cling - Ja ...

  7. UPnP协议编程实践

    本专题主要是介绍UPnP的工作原理和基本概念,包括SSDP.GENA和FXPP等基本协议,以及在Linux下如何使用Intel提供的UPnP开发包实现UPnP控制点和设备.本文是这个专题的第一篇,主要 ...

  8. 虚拟服务器设置upnp,TP-Link路由器如何设置UPNP开启【设置步骤】

    本文介绍了TP-Link路由器设置UPNP开启的方法.UPnP是一种用于电脑和智能设备(或仪器)的常见对等网络连接的体系结构.当路由器打开UPNP功能后,如果用户电脑中的软件也支持UPNP协议,路由器 ...

  9. classin安卓手机安装条件_Classin在线学习平台安装指引——从这里打开知识的大门与北京四中网校名师面对面交流学习!...

    中华教育与北京四中网校名师联袂执教,从这里打开知识的大门与北京四中网校名师面对面交流学习! 中华教育 16年精磨教学 北京四中网校 国内教育排头兵 Classin 学习平台下载步骤 登录官网下载Cla ...

最新文章

  1. 《面向对象分析与设计》读书笔记——第一章 复杂性
  2. 高矮不同的人排队问题
  3. Nagios安装部署与Cacti整合文档超精细版本
  4. java用tkmapper分组查询_mybatis example group by count 分组求和 - java分组求和
  5. 《中国人工智能学会通讯》——8.25 基于演化优化的生物网络配准
  6. adam算法效果差原因_干货|快来get中央空调冬天制热效果差的十大原因!
  7. 信息学奥赛一本通(2030:【例4.16】找素数)
  8. Windows 8/8.1 系统备份
  9. reviewboard安装实战
  10. java long 内存溢出_JAVA内存区域与内存溢出异常
  11. 《SolidWorks 2017中文版机械设计从入门到精通)》——2.7 复合草图实例操作
  12. 利用NABCD模型进行竞争性需求分析
  13. Kotlin 的优点
  14. 实现一个左滑删除功能
  15. Android官方教程翻译(2)——运行第一个程序
  16. noip2013提高组初赛(答案+选择题题目+个人分析)
  17. 电路方案分析(一)智能手机FM发射器原理图及方案分析
  18. vfp公交车调度系统
  19. 干货 | 日均5亿字符翻译量,百毫秒内响应,携程机器翻译平台实践
  20. 论AI在叮咚智能音箱中的演进和应用

热门文章

  1. 服务器CPU作用是什么?
  2. php中baseasset,放映员资料库 ~ 影院之家 | The projectionist database - CineAsset 5.2.11 for Win 下载...
  3. 计算机应用1.2版,201303《计算机应用基础》在线作1-2.doc
  4. mysql spj_MySQL查询优化器--非SPJ优化--LIMIT优化
  5. 电脑查服务器型号,怎么在服务器的操作系统中查看服务器的型号
  6. 安卓的第三方sdk是html,第三方SDK目录
  7. eSDK 华为ICT能力开放平台
  8. 电脑录屏没有声音该怎么办
  9. 【APICloud系列|15】上架ios应用到苹果应用市场总结
  10. 【深度学习】01 - 图像识别