NGB TVOS Java应用框架层API的封装模型分析

2015-10-12 08:05:44张定京陈德林
电视技术 2015年13期
关键词:服务端调用底层

张定京,王 颖,黎 政,白 伟,陈德林

(国家新闻出版广电总局广播科学研究院,北京 100866)

NGB TVOS Java应用框架层API的封装模型分析

张定京,王 颖,黎 政,白 伟,陈德林

(国家新闻出版广电总局广播科学研究院,北京 100866)

NGB TVOS是一款面向智能电视终端的核心基础软件平台,内嵌支撑数字电视业务的功能组件,其应用框架层实现了NGB终端中间件标准定义的API,支持NGB-J和NGB-H应用运行。特别地在Java应用框架层中引入了Android应用适配层,可兼容支持Android应用的运行。对Java应用框架层API的封装模型进行分析,阐述应用框架与底层组件之间的调用关系,并比较分析各种模型的特点。通过对封装模型的分析,可清晰地理解Android应用适配层API的封装原理,有助于进一步理解NGB TVOS兼容Android应用的技术原理。

NGB;TVOS;API;软件架构;应用框架;封装模型

1 NGB TVOS软件架构

2013年12月26日,国家新闻出版广电总局发布了下一代广播电视网智能电视操作系统(NGB TVOS)1.0版本参考软件。NGB TVOS是在广电总局科技司领导下、广播科学研究院牵头组织下,联合国内电视领域优势企业共同开发推出的一款真正面向电视领域的智能终端核心基础软件,内嵌支撑数字电视业务的功能组件,应用框架层实现了GY/T 267—2012《下一代广播电视网(NGB)终端中间件技术规范》定义的API,可支持各类NGB-J/NGB-H电视应用从开发、部署、下载到运行的全生命周期管理及资源优化调度管理,并提供硬件、软件、网络、数据、应用等多层次的安全支撑。尤其在Java应用框架层引入Android应用适配层,可兼容支持Android应用,极大丰富与简化电视应用的开发部署[1]。

NGB TVOS作为一款软件平台,运行于嵌入式硬件平台之上,承载着电视直播、视频点播、网页浏览、游戏、购物等各种应用,其软件架构如图1所示[2]。

图1 NGB TVOS软件架构

NGB TVOS的软件架构采用“分层法”设计,按照功能层次从上到下分为:应用框架层、执行环境层、组件层、硬件抽象层(HAL,Hardware Abstract Layer)和Linux内核层[2]。

应用框架层对底层功能组件能力的重用进行了简化,并采用高级语言(Java、JS)封装,上层应用程序调用应用框架层显露的API实现对系统功能组件能力的调用,方便应用程序开发,增加了程序的清晰度,降低了程序设计的难度。NGB TVOS针对Java和Web两种高级编程语言,分别实现了Java应用框架和Web应用框架;Java应用框架层中引入了Android应用适配层,可兼容支持Android应用[3]。

执行环境层是指Java和Web应用代码的执行解释环境。针对Java应用,NGB TVOS实现了TVM,实现对Java字节码的解释执行;针对Web应用,NGB TVOS实现了浏览器,实现对Web页面标签和JS脚本的解释执行。

组件层是NGB TVOS软件平台功能的主要实现体,以后台服务进程或函数库的方式存在,实现了系统窗口管理、应用管理、安装包管理、图形库、标准C库等基本功能。NGB TVOS标准化定义了各个组件对上层的调用接口为“通用组件接口”。Java应用框架通过JNI调用“通用组件接口”,具有了访问组件的能力;Web应用执行环境通过JSNI调用“通用组件接口”,实现了访问组件的能力。

硬件抽象层封装了硬件驱动资源和Linux内核系统资源,使得与底层硬件相关的能力对上层调用透明化、简单化。

Linux内核层担当起实际的操作系统任务,实现了进程管理、存储管理、I/O管理、网络协议栈、安全保护和驱动模型等系统核心服务。

资源管理框架制定了一整套从上至下的资源管理策略,可对系统稀缺资源实现全局高效协同管理。

安全框架制定了一整套从上至下的安全保护策略,实现系统安全的全局防控。

2 Java应用框架层API封装模型

NGB TVOS Java应用框架的实质是Java API封装代码的集合,属于同一功能单元的若干API集中放置在同一个Java包内,Java应用框架包含若干个Java包,所有的Java包最终可打包成一个或者多个.jar文件。

NGB TVOS Java应用框架层的API主要包含3部分:Java ME API、NGB-J API和Android API,NGB-J API遵循GY/T 267—2012《下一代广播电视网(NGB)终端中间件技术规范》。

通过阅读NGB TVOS 1.0版本的原型参考代码,分析得出NGB TVOS的Java应用框架层API主要采用了5种封装模型。

2.1 封装模型一

NGB TVOS Java应用框架层API封装模型一如图2所示。

图2 NGB TVOS Java API封装模型一

Java API其内部功能逻辑基本上采用Java代码实现,不需要或者很少通过JNI调用底层C/C++核心库。应用框架层的代码很厚。

例如:NGB TVOS Java应用框架中绝大多数的Java ME API符合此封装模型。

2.2 封装模型二

NGB TVOS Java应用框架层API封装模型二见图3。

图3 NGB TVOS Java API封装模型二

Java API其内部功能逻辑简单,基本上是通过JNI对等调用底层的C/C++库组件实现API的功能,主要逻辑在底层。库组件以C/C++函数库的形式存在。

例如:NGB TVOS Java应用框架中部分简单一点的 NGB-J API符合此封装模型。

2.3 封装模型三

NGB TVOS Java应用框架层API封装模型三见图4。

图4 NGB TVOS Java API封装模型三

在模型三中,Java API内部功能逻辑简单,基本上是通过JNI对等调用底层的C/C++服务组件实现API的功能。服务组件的主要功能逻辑由服务端代码实现,服务进程一直在后台运行;客户端代码以函数库的方式存在,实现接口供外部模块调用;客户端通过Binder机制访问服务端。Java API通过JNI调用服务组件的客户端。

与模型二相比,服务组件不再是C/C++函数库,而是依照Binder机制开发的、系统启动后一直在后台运行的系统服务[4]。

例如:NGB TVOS Java应用框架中与数字电视功能相关的NGB-J API符合此封装模型。

2.4 封装模型四

NGB TVOS Java应用框架层API封装模型四见图5。

图5 NGB TVOS Java API封装模型四

在模型四中,Java应用框架层代码是依据Binder机制采用Java语言开发的服务组件的客户端,服务组件的服务端由底层C/C++语言实现。服务组件以系统服务的方式运行,主体功能逻辑由服务端代码实现,客户端内部通过Binder机制访问服务端。

与模型三相比,服务组件提供了Java空间和C/C++空间的两种客户端,Java应用框架层直接通过Binder机制访问服务组件的服务端,而不是如模型三中先通过JNI访问C/C++空间的客户端,然后再通过Binder机制访问服务组件的服务端[5]。与模型三相比,Java应用框架层的功能逻辑稍复杂一点。

例如:NGB TVOS Java应用框架中大部分Android API符合此封装模型。Java语言编写的客户端代码划入软件架构图中的“Android应用适配层”,C/C++语言开发的服务端代码沉入到组件层。

2.5 封装模型五

NGB TVOS Java应用框架层API封装模型五见图6。

图6 NGB TVOS Java API装模型五

在模型五中,服务组件的客户端和服务端全部采用Java语言实现,Java应用框架包含客户端代码和服务端代码,服务组件在Java空间以系统服务的方式运行,主体功能逻辑由服务端代码实现,客户端代码实现接口供外部模块调用,客户端内部通过Binder机制访问服务端。

与模型四相比,服务组件的代码全部由Java语言实现。

例如:NGB TVOS Java应用框架中较少一部分Android API符合此封装模型。Java语言编写的客户端代码和服务端代码均划入软件架构图中的“Android应用适配层”。

在NGB TVOS的发展规划中,模型五将逐渐被废弃,由模型四取代。

3 封装模型对比分析

NGB TVOS Java应用框架层API封装模型二和模型一相比,模型一API功能逻辑基本上由Java代码实现,应用框架层的代码很厚,运行效率低,但跨平台移植性好;模型二API功能逻辑主要由C/C++代码实现,应用框架层的代码很薄,运行效率高,但移植性差。

NGB TVOS Java应用框架层API封装模型三和模型二相比,应用框架层的代码都很薄,API功能逻辑主要都由C/C++代码实现,区别就在于模型二底层C/C++组件是以函数库的方式存在,模型三底层C/C++组件是以后台服务的方式存在,模型的选择取决于组件的定义。若不考虑底层组件的差异,模型二和模型三在应用框架层的封装代码基本类似。

NGB TVOS Java应用框架层API封装模型四和模型三相比,底层C/C++服务组件类型一致,都是以后台服务的方式存在,但Java层封装方法不一样,模型三的Java层代码是对底层组件客户端的简单调用,而模型四的Java层代码是按Binder机制实现了同底层一样的客户端,代码实现复杂度比较高。

NGB TVOS Java应用框架层API封装模型五和模型四相比,Java层都一致封装成服务组件的客户端,服务组件的服务端在模型四中采用C/C++代码实现,在模型五中采用Java代

码实现。模型四的运行效率相对高一点,模型五的跨平台移植性好点。

模型五的存在,主要是为了快速跟进Android的版本升级,一旦平台稳定,将全部改写成模型四。在模型四中,服务组件的服务端沉降到组件层,可以方便地被组件层其他组件调用,增强了组件的复用性。

4 小结

本文详细分析了NGB TVOS Java应用框架层API的5种封装模型,以及这5种模型的对比分析,有助于读者清晰理解NGB TVOS Java应用框架的实质,以及NGB TVOS是如何实现对Android应用的兼容。纵观NGB TVOS应用框架层的5种封装模型,不存在谁优谁劣的问题,而是考虑若干因素之后综合选择的结果,确保在决策时能得到最优的选择。

[1] 李学明.广电智能电视操作系统发展浅析[J].电视技术,2013,37(20):1-3.

[2] 陈德林.NGB TVOS的软件架构及其主要技术特点[J].广播电视信息,2013(10):21-25.

[3] 陈德林.Android操作系统与数字电视中间件的对比分析[J].广播与电视技术,2012,39(1):87-91.

[4] 李静.Android中Binder机制研究与应用[J].工业控制计算机,2012,25(4):66-67.

[5] 王汝言.Android下Binder进程间通信机制的分析与研究[J].计算机技术与发展,2012,22(9):100-106.

黎 政(1985— ),工程师,主研计算机技术;

白 伟(1985— ),工程师,主研通信工程技术;

陈德林(1975— ),教授级高工,主研广播电视技术。

责任编辑:许 盈

Analysis of Package Model for NGB TVOS Java Application Framework Layer API

ZHANG Dingjing,WANG Ying,LI Zheng,BAI Wei,CHEN Delin

(AcademyofBroadcastingScienceStateAdministrationofPress,Publicaton,Radio,FilmandTelevision,Beijing100866,China)

NGB TVOS is a core basic software platform for intelligent television terminal, the functional components which support digital television service are embedded in the platform, the API defined by specification of NGB receiver middleware is implemented in platform’s application framework layer, so NGB-J and NGB-H applications are supported. Especially, Android application adaptation layer is imported into the Java application framework layer, so Android applications can be supported to run in TVOS. The relations between the application framework and the underlying components are elaborated by analyzing the package model of Java application framework layer API, characteristics of various package models are compared and analyzed as well. The package principles of the Android application adaptation layer API would be clearly understood by analysis of package model, and it would be helpful on understanding the technical principles of NGB TVOS compatible with Android applications.

NGB; TVOS; API; software architecture; application framework; package model

【本文献信息】张定京,王颖,黎政,等.NGB TVOS Java应用框架层API的封装模型分析[J].电视技术,2015,39(13).

国家“863”计划项目(2014ZX01039101-001)

TN949.6

B

10.16280/j.videoe.2015.13.026

张定京(1978— ),女,高级工程师,主研广播电视技术;

王 颖(1982— ),女,工程师,主研通信工程技术;

2015-03-24

猜你喜欢
服务端调用底层
航天企业提升采购能力的底层逻辑
核电项目物项调用管理的应用研究
LabWindows/CVI下基于ActiveX技术的Excel调用
测控技术(2018年5期)2018-12-09 09:04:46
云存储中基于相似性的客户-服务端双端数据去重方法
新时期《移动Web服务端开发》课程教学改革的研究
消费导刊(2018年8期)2018-05-25 13:19:48
在Windows Server 2008上创建应用
基于系统调用的恶意软件检测技术研究
回到现实底层与悲悯情怀
小说林(2014年5期)2014-02-28 19:51:47
利用RFC技术实现SAP系统接口通信
略论“底层”
杂文选刊(2013年7期)2013-02-11 10:41:11