
| 出版日期:2000-07-24 总期号:941 本年期号:53 |
|
信息家电平台软件体系的 中间件和网络技术
1技术背景 后pc(pc-plus)时代的来临,极大地推动了信息家电平台技术的发展。针对无处不在的网络、无所不在的计算(pervasive computing)概念,世界各著名计算机厂商纷纷提出各自的新技术和解决方案。1999年1月5日,home eftm工作组(home ef wc)公布了“共享无线访问协议(swap)1.0版”,包括ibm、intel等公司,均已承诺生产基于swap的产品。1999年1月7日,微软推出了“通用即插即用”模式(第二代pnp),用于智能化家电与pc进行方便的对等连接和资源共享,这一“简单家庭网络”方案得到了像intel、compaq、cisco等大公司的支持。1999年1月26日,sun公布了jini技术,它提供了安全地利用java技术将一组设备集成在一个服务网络中,使设备之间在任何时候、任何地点都能建立联系。1999年3月12日,alcatel、ibm、motorola、philips、sun等15家公司宣布成立“开放服务网关(open service gateway)”联盟,它们将联合制定用于把消费类产品与小型商用电器连接internet的技术规范。 数字电视广播应用的快速发展成为信息家电平台市场化的首要驱动。atsc(advanced television system committee)制定的数字电视标准dtv(digital tv)以及欧洲广播联盟与欧洲电信标准协会联合技术委员会制定的dvb(digital video broadcast)数字视频广播标准,已越来越多地得到应用,数字电视接收即将成为信息家电平台的首要应用。 微电子工业的迅速发展,使微处理器变得体积更小、性能更强、价格更低,为信息家电的迅猛崛起奠定了硬件基础,ibm推出的romeo stb专用芯片、intel的strongarm嵌入式处理器、sgs-t的st20处理器、motorola的blackbird stb信息家电平台以及philips的trimedia stb平台方案等,都已得到推广应用。 2信息家电平台的功能 信息家电平台主要针对家庭服务的需求,提供浩翰的网络信息服务,同时方便与各种信息家电设备的智能连接。当前的信息家电平台应具有以下功能: 接收并播放数字视频节目。包括cable、陆地、卫星等连接方式的数字视频广播,即接收有线数字电视的64qam调制编码信号、地面数字电视广播的cofdm调制信号和数字卫星qpsk调制信号,使用mpeg-2 mp@ml标准的数字音视频解码,同时输出复合视频信号和s-video信号,支持mpeg-2双声道立体声音频输出或ac3杜比6声道输出。 支持多协议的internet功能,具有良好的web性能。可支持tcp/ip、html、xml、http、dns、ldap等网络协议,使家中设备实现良好的internet连接,包括网络内部及外部的数字共享。 支持多家电网络协议的家庭网络控制中心功能。即支持网络内部各种设备之间的数字通信、实时多媒体数据传输、多媒体交互式操作、即插即用(即家庭网络中的设备必须自动识别、发现、自我构造)等。网络之间也必须对等发现并列举出共享的设备以及服务,提供足够的宽带通信服务接口,如adsl、线缆调制器、卫星通信等。网络传输介质的兼容性与上层控制软件无关,可支持bluetooth、home pna(电话线)、plc(电源线)、home rf(无线射频)、ieee1394、10/100base-t红外等网络媒介,同时还应当能够对家用电器实施各种有效的控制机制。 具有丰富的用户界面和一定的图形控制功能。使用户方便、直观地操作和控制各项应用,同时显示清晰、生动的图形界面,如画中画、多图像叠加等。 具有家庭信息服务器的功能,为家庭事务管理提供必要的数字服务。 最终完成家庭购物、家庭办公、家庭医疗、交互教学、交互游戏、视频邮件、视频点播、会议信息等全方位应用。 3软件设计总体构架 3.1 信息家电平台软件设计总体框架 信息家电平台作为多媒体终端的延伸,其软件构架的发展经历了传统的多层结构、基于构件的多媒体软件构架和分布对象模型三个阶段。 传统的多层结构 目前大多数实用的信息家电平台或多媒体软件终端开发使用的是面向过程的编程方法,特定的应用程序通过调用实时操作系统的多媒体库函数或驱动程序来实现,这种方法存在开发周期长、不易维护等缺点,特别是不能适应嵌入式应用领域中环境的多样性。 基于构件的多媒体软件构架 在这种方式中,由多媒体软件处理控制媒体的交互和内容。从面向对象的观点看,一个应用就是一个对象,它由提供方案的许多其他对象组成,这些对象与不同的媒体和设备连接,一个构件能被各种软件使用或重用,从而提高开发效率与质量。 分布对象模型 该模型用于分布环境,它的连接对象可能来自不同厂家的设备,该模型的关键是建立一种普遍认同的分布式计算和通信标准。目前两种主要的分布式对象标准分别是微软的dcom和国际对象管理集团(omg)的corba,sun公司的java及其jini环境也非常适合异构条件下的分布式应用。
3.2 信息家电平台软件结构具体描述 根据家庭stb所应用的功能,其软件的总体结构可分为驱动程序层、基本操作系统层、逻辑资源层、中间件(middleware)和运行环境以及嵌入式应用层,如表1所示。 设备驱动程序层 就是对信息家电平台根据不同操作系统的设备驱动规则,为应用程序提供透明的、规范的控制机制所采用的软件接口,其实现方式一般由操作系统的核心完成。一方面完成相应设备控制寄存器、中断的设置,另一方面完成设备的数据处理和存储空间管理。对于不同的处理器及硬件结构,设备驱动程序的编写会有差别,尤其是家庭stb平台的中央处理器厂家众多,性能上存在差异,给编程带来较大难度,例如,在ibm redwood平台上的设备驱动,既有块设备rs232、osd等,又有字符设备irda,还有基于解复用、解码等由其它dsp独立处理的设备驱动模式。 基本操作系统层 目前的嵌入式操作系统有嵌入式linux、psos、os open、windows ce、qax等。嵌入式操作系统应当完成普通os的大部分功能,如进程管理、线程管理、内存管理、设备管理、文件系统等,如果操作系统的设备驱动是基于文件系统实施的话,文件系统部分就不可缺少。基本操作系统和微内核的区别在于,前者本身就是一个完整的操作系统,可以直接为应用程序和上层软件提供核心服务,应用程序可直接调用其功能来实现。基本操作系统层的调用界面遵循posix系列标准,以保证应用程序良好的可移植性。 逻辑资源层 处于这一层的软件均为可选择安装的模块,可以根据特定的环境来选用,这一层中常用的模块有: 文件系统:在信息家电平台中,文件系统从基本操作系统中分离出来,作为一个单独的模块,用户可以根据兼容性或其它方面的需要选择不同格式的文件系统,如fat、fat32、nfts、cdfs、i节点等。 tcp/ip模块:tcp/ip协议是计算机通讯的工业标准,是访问internet的基础,也是管理java设备的前提,该模块一般是必需的。 界面系统:信息家电的显示设备可以是液晶的字符显示板,也可以是高分辨率的彩色显示器,有的甚至不配备显示器。针对这种情况,信息家电平台的界面系统也应该是多种形式的,并提供图形窗口系统、字符窗口系统和行字符系统等。 中文环境:中文环境主要用来与界面系统配合使用,主要完成中文的输入、处理和显示。一般包括汉化内核,并移植现有的中文字库,如点阵12×12、16×16和24×24等,以及移植现有的中文输入法,汉化重要的操作系统的必要运行库。 4中间件技术 在信息家电平台的软件结构中,最为复杂和关键的是中间件(middleware)技术。中间件/运行环境层介于应用和操作系统平台之间,采用虚拟机方式,为应用程序提供一个相对统一的开发环境和运行环境,便于应用程序的开发移植,一般插入有pantalk、java、html、mheg5等解释器,同时可管理各种厂商制定的连接网络,并将它们映射到一个统一的管理网中。 中间件在具体应用上完成应用协议处理、用户/业务处理、用户信息处理、机密管理和费用管理,其中ca(condition access)是信息家电平台管理机制的核心,如表2所示。
连接网络的规范包括控制接口、控制协议和组织结构三个层次,在图1表示了这三个层次的关系。
图1 中间件映射过程 在子网到资源网的映射中,起关键作用的是子网和资源网之间的协议翻译器。协议翻译器负责两个网之间的控制协议和组织结构的转换,控制接口及其规范的转换由驱动程序层来完成。 协议翻译器负责将子网中特定的组织结构(如线形和树形等)进行解析,分解成一个个的元素,并在资源网中为每个元素生成一个访问代理元素。在资源网中,各元素之间的关系是集合关系,主要用于资源的登记和统一访问。子网外设备对子网内设备的访问是通过资源网中的访问代理元素来进行的,访问代理元素将资源网中的访问要求通过协议翻译器转换为子网内实际设备的访问,从而实现资源共享。类似的方法也可以用于子网内,这样,子网的设备也可以访问子网外的资源。 中间件技术是信息家电平台软件的关键环节,目前的havi、jini、upnp、java tv等家庭网络方案实质上都是基于中间件概念来完成应用功能的。目前的osgi(open service gateway initiative)服务网关就是将不同种类的中间件规范进行互连和管理,它集成了全部或部分已存在的产品,如(数字或模拟)信息家电平台、线缆调制解调器、集线器、家用网关、报警系统、能源管理系统、消费电子产品、个人计算机等。这种服务网关将采用已有的java标准(如jini),并集成其他非java标准,并把这些设备标准连接到中心管理系统,为服务提供商提供网关机制。 5网络应用和交互式电视的开发工具 在信息家电平台的软件体系中,java技术成为主导技术,它是家庭网络控制平台应用软件开发的重要工具。java平台和java应用程序接口(api)为数字电视的交互式服务提供了一个理想的开发和推广平台。 5.1 适合家庭网络应用的java平台 java平台不同于其他平台,它将程序编译成字节码(bytecode),以实现与硬件的无关性。由java语言写的程序可以在任意的java平台上运行,同时提供了统一的编程接口,使得java代码具有“write once,run anywhere”的特性。利用java平台,可以在网络计算机系统传递和交互高效、安全的程序(application)和应用小程序(applet),开发者可以使用java编写面向对象、多线程、动态连接的程序。 适用于信息家电的java平台有: the java base platform 它是最小的java平台,包括java虚拟机和最小子集的java api、java base api和java applet api,该平台移植性高,不需要其他类库的支持。 the embedded java platform 它不实现核心的api,而是根据设备的要求自行定制api。因为消费型设备的内存都有很大的限制,对于不同的设备便可以选择不同的集合来构成。 personal java 它是为消费型电器网络设计的平台,包括了java虚拟机以及一些专门为网络电话、机顶盒设计的类库,该平台已经在许多消费型设备的嵌入式操作系统上得到使用。它的开发环境进行了优化,并为便携设备提供特殊设计的图像工具包。 java 2 platform micro edition 它属于最新的java 2平台,采用端对端的java技术。它主要的目标是优化运行环境,包括java虚拟机和一系列为不同设备专门设计的api以及各种设置工具,同时保持了java一贯的平台无关性、可移植性和安全性。 5.2 实现信息家电平台数字电视的java tv技术 java tv api针对数字电视接收器独有的功能而设计。用它编写的交互式电视应用有着极强的安全性、可扩展性和对不同电视接收器的可移植性,该技术包括音频和视频的媒体控制、广播数据的访问、服务信息数据访问、调谐和译码器的控制以及屏幕图形处理等功能。此外,它还包括媒体同步和应用软件模块,媒体同步是指电视节目的基本视频和背景音频同步,应用软件模块是指交互式应用软件和传统电视节目的和谐共存。 java tv api是在现有的标准环境中展开的,这些现有的标准和基于标准的源码集成在java tv api框架中,因此java tv api定义在高于硬件和协议的层次,是java平台的垂直扩展。 java tv api运行于数字电视接收器以及相关的设备,数字电视的主要特征是对广播媒体数据通道的控制,这些通道通常拥有通用的功能模块和子系统,比如调谐器和译码器等。java tv api应用程序编写人员无需知道有关硬件的细节,就可以编写相应的应用程序。 java tv api的定义和相关协议包括:关于流选择的广播协议堆、关于流选择的网际互连协议(包括用户数据协议、传输协议和实时协议)、远程通讯协议堆、视频解码协议、图形编码协议等。 6家庭内部网络协议层技术 havi、jini、upnp是目前解决家庭内部网络的较有影响的协议层规范,世界许多著名it厂商已加入这几个标准中,它们对今后信息家电平台的整体应用框架会有较大影响。 6.1 havi体系 havi(home audio/video interoperability)是关于家庭网络中音频/视频电子产品的互连和控制方面的标准,该标准建立在ieee1394的底层协议基础上,主要实现havi设备之间的数字音频/视频内容的传送以及对该内容的操作,如播放、录像、回放。典型的av内容有由信息家电平台接收的数字电视和由数字录像机、数字相机、cd或md产生的内容。互操作性是havi标准的主要特点,一个havi设备上的应用软件可以探测到并使用连入havi网的其他设备提供的功能。 havi的软件基础包括系统软件基础和设备控制模块(dcms),前者包括信息机制、登录机制、事件驱动机制、资源管理机制、信息流管理机制和dcm管理机制,后者控制havi设备的特定功能,比如vcr或相机。dcms和应用软件都是可安装的,在一个havi网络中,它们是否存在取决于相应的设备是否被安装。每种应用软件都有符合havi规范的apis,通过传递消息,一个havi设备的软件可以成为另一个软件的apsi。havi消费机制可以确保消息正确地传递给目标软件,目标软件根据apis的定义执行对应的功能。如果一个havi设备的软件在另一个设备上,消息机制可以负责将消息通过havi网络传递给那个设备上的对等消息机制,然后由其转发给目标软件,该过程对应用软件来说是透明的。几个应用软件可以同时在havi设备上执行。havi定义了一个强大的资源管理机制,它可以在几个不同的应用软件试图控制同一个dcm时,处理可能发生的冲突,资源管理机制允许共享设备,至于能否共享取决于设备本身。 havi的信息管理机制负责对网络中实时av数据流的传送进行初始化和终止运行,它依赖于其他的标准(如iec 61883)来定义havi网络中传送这些内容的方式。havi还定义了相应的apis来控制该内容的播放,比如调节电视中的亮度或功放机的音量,havi通过定义一个“转换dcm”,来支持多种内容格式,如mpeg、dv、ac3、html、gif、jpeg等。当使用相应的apis时,havi设备可以使信息流通过该设备并使其能转换成正确格式。 havi定义了应用软件和dcms的java编程环境,使用java,可以保证应用软件和dcms运行在任何品牌的提供了该类环境的havi设备上。并不是所有的havi设备都提供java编程环境,havi定义了两种类型的设备:iavs(intermediate av devices)和favs(full av devices),后者可以使用java编程环境,而前者只能使用自己的应用软件。 havi体系充分利用ieee1394作为传输媒介,而没有选择ip作为havi协议中的网络协议。一旦ieft(internet engineering task force)完成了ip数据在ieee1394上传输的规范,havi就可以通过信息流管理机制处理它们,就如同现在havi通过ieee1394处理mpeg信息流一样。为了使家庭中任何havi设备都可以访问internet,而无需自己的ip栈,havi定义了一个特殊的web access apis,任何有ip栈的havi设备,如pc或网络电视,均可实现该apis。通过该apis,internet的协议均可被捕获并被传递到没有ip栈的havi设备上。 6.2 jini技术 jini是由一系列java代码组成,它把网络上的各种设备和各种软件部件组合成一个动态的分布式系统,使网络更易于操纵和管理,具有更高的可配置性。通过jini,用户和各种计算终端在网络上可发现的资源将包括更广泛的含义,即硬件设备、软件或是结合了两者的系统都可以看成是资源。jini使得这些网络上的资源可以动态地从网络上加入或删除。jini系统可以看成是一个工作组(workgroup),其规模可以从两三个用户到上千个用户,也可以把几个jini系统集成为一个更大的系统。 jini的基础结构是指规范中定义的最小jini核心,由一系列部件组成,这些部件构成了分布系统中联合服务的基础,共包括:(1)扩展的java远程方法调用(rmi,即remote method invocation)系统,它完成jini系统各服务间的通讯,但它本身并不是一个服务,不像服务那样在发现后启用;(2)分布式安全系统,它把java平台的安全机制扩展到整个分布系统中,同时确定了入口的定义方式以及操作权限;(3)发现协议(discovery protocol),可发现并动态地显示各种服务(可被随时加入或删除);(4)检查服务(lookup service),它可以看成是各种服务的仓库,反映了当前联合体的各个成员。 jini的编程模式是指为基础结构和各种分布式服务提供的编程接口,这些接口扩展了标准java编程模式。它包括:(1)“出租”接口 定义了一个分配与释放资源的模式,即一个服务为某个使用者提供了在一段时间使用该服务的权利,“出租”分为独占型、共享型两种;(2)事件与通知接口 jini中的事件为分布式,一个对象可以允许其他对象对这个对象的某些事件进行登记,当这个事件发生时,相应的对象就可以收到消息;(3)事务接口 事务(transation)是针对一个或多个服务的一系列操作,要么这些操作全部成功,要么这些操作全部取消。 6.3 upnp技术 upnp(universal plug and play)扩展了pnp简单自动的原则,通过使用开放式的硬件软件标准和协议实现家电设备网络控制。upnp技术特点有:(1)支持发现和列举具有网络和服务功能的设备;(2)支持对等(peer to peer)模型结构,在无pc的参与下,使设备可以直接被其他的设备发现并使用;(3)扩展了协议功能发现机制,能够列举每一个设备的独特性,包括通信协议;(4)建立在一个低成本的微处理器asics上,只需1kb的ram和闪存以及其他很少的系统资源;(5)基于xml的描述原则,提供了一种直接、灵活的方式实现设备的功能,不必为新加入的系统资源支付额外的开销;(6)支持现有的重要工业标准,如tcp/ip、html、xml、http、dns、ldap等。 upnp对如下两种家庭网络体系的实现方式如下: (1)ad hoc(serverless,peer to peer)对等、无服务器方式的环境。它通过slp(service location protocol)以及smb(server message block)等协议来发现并在各计算机之间共享文件。如果要确定一个ip地址是否可得,可以使用ping或icmp echo等协议,flood-ping可以用来浏览现在的网络地址以确定哪些地址正在使用。 (2)基于服务器配置的系统。upnp采用dhcp(dynamic host configuration protocol)协议,提供一个将配置信息在tcp/ip网络中传递给主机的框架,并分配临时的或长期的ip地址给主机。dhcp是建立在bootp基础上的,rarp处理网络中的地址发现问题,并包含一个ip地址自动分配机制,系统的配置采用不同的发现服务(ldap、nds),并使用slp在网络中发现其他的服务。 信息家电平台的软件技术目前仍然处于独立的、纵向的发展阶段,各厂家、组织的标准仍存在较大差异。软件体系的层次划分互相交错,功能设置存在差别,硬件的适应性也有不同,所以,信息家电平台软件体系一致性问题亟待解决。现在,已有许多组织和协会正致力于此项工作,相信今后一段时间,该项技术相关的成果将会不断出现,为信息家电平台提供良好的软件支持。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||