UPnP 体系架构和基本原理 —— Linux SDK for UPnP Devices
Linux SDK for UPnP Devices
UPnP架构基于Internet和TCP/IP等成熟协议,使之实现与底层硬件无关、与开发的程序设计语言无关、与操作系统无关等特性,故整个UPnP设备的设计开发过程均可由设备制造商按照UPnP规范开发。这虽说提高开发的自由度,但也带来重复开发和资源浪费的问题。
因此,为了降低UPnP设备的开发成本和周期,促进UPnP的发展,2000年Intel公司开放了第一个基于Linux的采用C语言开发的开源UPnP协议栈源代码Linux SDK for UPnP 。
libupnp对UPnP协议规范进行抽象,包含寻址到表达的六个过程,实现了其中SSDP、GENA和SOAP等协议模块,提供了响应的API接口。减少了开发者重复开发的工作量,降低了开发难度和开发周期。
WEB server
WEB server模块主要处理UPnP中使用的标准HTTP GET请求。该WEB server模块管理设备描述文档和服务描述文档的URL地址,当HTTP GET请求到来时提供相应的文档数据。同时,WEB server模块也支持对虚拟路径的HTTP POST请求。
XML解析器
UPnP工作过程中广泛使用了XML,设备描述文档