IPTV中间件的架构日趋清晰
作者:杨景 来源:流媒体网
尽管是在休假中,我对流媒体网上对中间件的讨论一直十分关注。回到北京,应该“提笔”写一些想法了。
对于中间件的概念,专家们从不同角度说了很多。杨昆的判断是有理由的。IPTV中间件到底是什么,至今仍然是各说各话。如果是这样,中间件的必要性显然存在问题。
我一直觉得难以理解的是,中间件这样一个在IT界广泛使用多年的概念,为什么在电信界得到这样的结果?甚至那些互联网软件的开发商,也在中间件和协议的问题上绕起了弯子。
显然,问题出在中间件的概念及其分类上,因为IPTV中间件可以以不同的形态实现多种的功能。不同公司的IPTV中间件产品通过不同的形态实现不同的功能。这就是问题的核心。
其实这个问题容易解决。用中间件到Wikipedia上检索一下,就可以对中间件的概念和形态得到相当令人满意的结果。(我在以前的Blog中曾经引用过)现在把原文拷贝如下:
Middleware is computer software that connects software components or applications. It is used most often to support complex, distributed applications. It includes web servers, application servers, content management systems, and similar tools that support application development and delivery. Middleware is especially integral to modern information technology based on XML, SOAP, Web services, and service-oriented architecture.
Definition:
Middleware is the enabling technology of Enterprise application integration. It describes a piece of software that connects two or more software applications so that they can exchange data.
ObjectWeb defines middleware as: "The software layer that lies between the operating system and the applications on each side of a distributed computing system in a.network."
Origins
Middleware is a relatively new addition to the computing landscape. It gained popularity in the 1980s as a solution to the problem of how to link new applications to older legacy systems, although the term had been in use since 1968. It also facilitated distributed processing – the connection of multiple applications to create a larger application, usually over a network.
显然,IPTV的中间件,可以分成许多种。仅就视频服务而言包括:
第一种是位于机顶盒中操作系统和应用程序之间的“浏览器”和媒体播放器,以及用于扩充能力的插件如Ajax引擎等。
第二种是IPTV系统用户门户(媒体控制引擎)与机顶盒、流媒体服务器、EPG服务器、组播控制器和内容管理服务器之间的中间件,用于视频内容(业务)的聚合,并支持用户的访问和服务资源的调度。
第三种是分发网络的各个边缘服务器与头端(节目提供商)、业务管理服务器之间的中间件。用于支持分发网络分配资源时的协同计算。
第四种是头端和业务提供商的服务器、以及业务管理服务器之间的中间件,用于支持节目/业务/内容的接入、流化和控制。
第五种是位于用户门户、业务提供商的服务器(包括互联网和专网的)以及业务管理服务器只见的中间件。这种中间件通常和具体的业务相关。
还有更多,......
第一种中间件的形态是主机模式的。这是最容易理解的一种。
第二种中间件的形态是网络式的,它以用户门户为控制核心,其他服务器(包括机顶盒)中驻留对应的客户端驱动。这些客户端是位于各自的操作系统和应用程序之间的。在门户的管理和控制下,客户端之间是直接互操作的。
第三种至第五种中间件的形态也是网络式的,依业务管理服务器为控制核心,其他服务器中驻留对应的客户端驱动。这些客户端也是位于各自的操作系统和应用程序之间的。在业务管理器的管理和控制下,这些客户端直接进行互操作。
中间件是否需要协议?这是无需争议的。中间件可以采用XML, HTTP,Web Services等作为承载的协议。至于涉及到不同节点之间的应用,协议也是必需的。
有一点是要区分的,应用层协议究竟包含消息,还是要同时包含“业务逻辑”?这是和体系结构相关的。在面向业务的体系结构中,例如Web Services中的业务逻辑不是通过结点之间的“协议”实现的,而是通过WSDL的API提供的。这样,在不同的节点间的应用交互需要的仅仅是消息标准化,而不是业务逻辑标准化。这一点,和传统电信网的“远过程调用”是完全不同的。
我们最后看到,中间件讨论会上,所有人说的原理基本都对。因为每个人都把自己的产品定位为上述五种类型之一的中间件。但是,没有说清楚的是,自己的中间件到底是上述那一种,各自如何分解IPTV的功能,中间件各自具有什么功能、表现为什么形态。
所以,距离中间件清晰的概念,其实只差一步。