精华内容
下载资源
问答
  • 常用的中间件标准

    2013-06-15 18:45:33
    常用的中间件标准
  • 1、前言 数字电视中间件技术与标准,大家都非常熟悉了。自2001年,DVB推出MHP中间件技术标准以来,全世界 ...
  • 互动数字电视中间件标准解读(GEM篇) 【编者按】数字电视时代,各种互动应用、增值业务应运而生。作为支撑这些业务和应用的中间件,世界各国(地区)和技术标准组织都积极行动并制定了相关的标准。正确理解并选择...

    互动数字电视中间件标准解读(GEM)

    【编者按】数字电视时代,各种互动应用、增值业务应运而生。作为支撑这些业务和应用的中间件,世界各国(地区)和技术标准组织都积极行动并制定了相关的标准。正确理解并选择合适的标准,作为企业或单位产品和业务的开发基准,搭建尽可能开放的运营环境,对于数字电视产业链的健康发展和聚变式跨越都至关重要。

    【摘要】本文专门介绍由DVB标准化组织制订的GEM标准,内容包括GEM的由来和特点、标准的体系架构和组成部分、市场推广和应用情况以及标准未来的发展趋势等。

    【关键词】IPTVGEMMHPDVB

    GEM是什么和为什么?

    1.GEM是什么?

    DVB-GEM(GloballyExecutableMHP)是由DVB项目组制定的互动电视中间件标准。它有如下主要特点:

    ●它的出台使得基于GEM的交互应用既能够跨广播和宽带网络运行,同时也适用于基于蓝光光碟的业务平台。

    ●GEM基于Java,提供了一个和硬件平台独立的应用执行环境,可为不同的设备和市场生成各种互动业务。

    ●GEM建立在JavaME(JavaMicroEdition)之上,并为电视特有功能,附加了各种相关的API。

    ●GEM并不限定于特定的广播信令,而是定义了一套公共的抽象概念适用于各种不同的电视系统。该公共概念的核其实是一套API和相关的语义规则,适用于所有的GEM终端。在公共核的基础上,各种特定的市场对API进行扩展就形成了所谓的Profile(功能集)。

    目前GEM已经被许多国际机构采用,其中包括CableLabs、ATSC、ARIB和蓝光联盟(Blu-rayDiscAssociation)。GEM同时也是ITU-T(国际电信联盟)推荐的互动电视的中间件标准。

    2.为什么需要GEM

    GEM起源于DVB项目组织和北美CableLabs的合作,起初是根据OCAP和MHP中间件平台的公共交集而开发制定出来,其第一版本于2003正式颁布。

    MHP是建立较早并被广为接受的数字电视中间件标准,它定义了一个综合的业务平台,使得各种互动电视业务都可以在基于MHP标准的设备中运行。MHP定义了MHP终端的标准,并可以接受基于各种传输标准的数字电视广播业务。这些传输类型包括有线、卫星、地面、微波和TCP/IP等;传输层的协议可以是DVB-T/T2、DVB-C/C2、DVB-S/S2或者TCP/UDP/IP等。

    也许要问,既然已经有了数字电视中间件标准MHP,为什么其他国家和地区不能直接采用?现实情况是在一些国家和地区,完全采用MHP标准是不切实际的。例如,在美国,已经有大量投资有线电视网络设施,不可能轻易地转变成MHP。在日本,其地面广播系统非常类似DVB-T,但并不完全相同,要想完全在其终端系统中照搬MHP标准也是不切实际的。除去这些地区性的差异,理想情形下是可以在不同的有线电视网络体系中把运行GEM应用作为业务的一部分,前提是中间件的标准支持同样的APIs和语义规范。GEM就是定义了这样一套APIs、语义和内容格式等规范。换句话说,这种假设是依赖于所有的互动电视标准都支持GEM应用,任何一个基于GEM的标准都必须把GEM作为一个整体来参考,并必须实现GEM所有规范性的需求。GEM标准没有为终端设备提供一个完备的规范,需要其他标准提供相关的补充,比如需要MHP提供基于DVB-S、DVB-T和DVB-C传输系统方面协议的支持。(关于GEM和其他国际标准之间的关系,可以参见2009年9月《中国数字电视》上作者文章中的相关章节,在此不再赘述――编者按)

    GEM支持的应用和定义的Profile

    GEM定义了三大目标应用领域:广播、打包媒体和IPTV。前两个领域又可以进一步细分成增强广播应用和交互广播应用。增强型广播应用组合了数字视音频的广播业务和可下载的应用以提供本地的互动性,该类应用无需回传信道;互动广播应用包括许许多多和广播业务相关或独立的各种互动业务,这类应用需要回传信道的支持。到目前为止,GEM具体支持的目标应用包括:

    ●广播类,包括MHP、OCAP、ATSC和ARIB等

    ●打包媒体类,如基于蓝光光碟的应用

    ●IPTV类,如基于GEM-IPTV和OpenIPTVForum

    一方面,并不是所有的GEM实现方案都能支持所有的应用领域;另一方面,随着时间的推移,会有更多的应用领域和业务的演化,因此GEM采用的策略是使用Profile,不同的Profile支持不同的应用领域。最新的GEM1.2.2对应上述应用目标定义了5大Profiles,它们是:

    ●打包媒体互动Profile

    ●打包媒体增强型Profile

    ●广播互动Profile

    ●广播增强型Profile

    ●IPTVProfile

    图1展示了这些Profile及和应用目标之间的关系。

    图1

    GEM的体系架构

    图2显示了基本的GEM模型,包括资源层、系统软件和应用层。

    从应用的角度来看,API介于应用层和系统软件层之间。

    图2

    平台中的硬件具有各种功能,通过硬件资源和软件资源的形式表现出来。它们之间如何组合,标准不做任何假设。一个总平台可能包含多个硬件实体,但是从抽象的角度来看,逻辑资源是对应到一个硬件实体还是多个硬件实体没有任何区别。重要的是资源对于应用是透明的,它能够访问到,对它而言就是一个硬件实体。

    1.系统软件

    应用不能直接访问资源,而是要通过系统软件的抽象间接访问。该中间层把应用和硬件隔离开来,目的是使得应用可移植。

    2.应用管理器

    系统软件包括了应用软件的管理功能,负责管理所有应用的生命周期。

    3.应用和API

    作为软件运行在各种硬件平台上,应用实现各种互动业务。应用程序接口(API)是从应用的角度来看系统软件,图2给出的是一个理想化的系统架构模型。应用管理器属于系统软件并且和具体的实现紧密相关,它和所有的应用进行交互。系统软件通过对下属内容的抽象来实现API,并通过API为应用程序提供相应的服务:

    ●通过不同的源和通道传输和播放的节目码流

    ●命令和事件

    ●数据记录和文件

    ●硬件资源

    4.GEM应用和GEM终端间的接口

    应用通过各种API来访问接收机的各种资源,这些资源包括数据库、流媒体解码器、静态内容(如图片和文本等)解码器及各种通信资源。这些资源是接收机的功能单元,并最终映射到相关的硬件。图3是应用和终端之间的接口示意图。

    图3

    图4

    图4描述了GEM应用和GEM平台子系统之间的接口关系。GEM标准只定义这些接口,不涉及各具体模块的实现细节,这些细节由各自的方案提供商根据相关的标准自行实现。

    GEM标准内容介绍

    接下来就最新发布的GEM1.2.2标准文本做一简单介绍,该文本长达1052页。

    1.内容概要

    GEM标准文本主要有正文和附录两大组成部分,其中正文主要规范了下列内容:

    ●传输协议

    ●内容格式

    ●应用模型

    ●应用信令

    ●DVB-J平台

    ●安全机制

    ●图形参考模型

    ●系统集成情形

    ●细化的平台规范定义

    ●常量定义

    ●因特网访问客户端

    附录部分包括:

    ●相关的外部参考、更正、澄清和例外

    ●广播文件系统和触发器传输

    ●GEM涉及到的相关技术的书目

    ●文本呈现

    ●字符集

    ●应用创作和实现指南

    ●最小的平台能力集

    ●GEM的扩展

    ●DVB-J的基本类

    ●DVB-J事件的API

    ●DVB-J永久存储体的API

    ●SI访问API

    ●流媒体API的扩展

    ●JavaTVSIAPI的集成

    ●广播传输协议的访问

    ●数据包Socket缓存控制

    ●DVB-J回传信道连接管理API

    ●应用列表和发起(Launching

    ●权限(Permissions

    ●扩展的图形API

    ●DVB-J示例

    ●测试支持

    ●应用间和Xlet间的通信API

    ●GEM环境下的业务,业务上下文和应用

    ●Inner应用

    ●Plug-inAPI

    ●驻留应用API

    ●因特网客户端API

    ●为加密而定义的DVB扩展

    ●加密业务的安装

    ●扩展业务选择API

    ●扩展内容参考API

    ●智能卡读卡器API

    ●ProviderAPI

    ●业务和业务列表

    ●JavaTV和业务发现及选择之间的对照关系

    ●JavaTV和宽带节目内容指南之间的对照关系

    ●AIT表的XML编码

    ●IPTV用例

    ●应用管理API

    ●IPTV内容参考API

    ●扩展业务列表API

    ●DVB业务发现和选择的API

    ●DVB宽带节目内容指南的API

    ●TV-Anytime和JavaTV的集成

    ●MHP终端硬件API

    2.传输协议

    针对不同的应用目标,GEM终端需要支持的传输协议也不同。对于纯广播业务而言,系统只需一个从业务提供商到消费者的下行通道;而互动业务则额外需要一个回传信道;对于诸如蓝光光盘类的应用,GEM终端可以从光盘中获取AV码流,并通过IP网络和外界进行互动。

    (1)广播信道协议

    图5描述了各种广播信道的传输协议及其层次关系。有关Carousel的内容,读者可以参见有关文献。

    图5

    (2)交互信道协议

    图6展示了回传信道的协议栈。

    图6

    (3)IPTV协议

    为了支持IPTV应用,GEM定义了传送GEM业务和业务信息的协议。GEM终端规范可以对下列协议进行强制要求:

    ●业务发现和选择的协议

    ●宽带节目内容指南的协议

    ●如何使用RTP协议

    ●如何使用RTSP协议

    3.内容格式

    GEM支持多种内容格式,具体包括:

    ●静态内容

    ○Bitmap图形格式包括JPEG、PNG和GIF

    ○MPEG-2的I帧

    ○MPEG-2的视频“drip”

    ○单媒体格式的音频片段,即MPEG-1层一和层二的音频ES数据

    ○单媒体格式的文本

    ●广播流媒体格式

    ○音频

    ○视频

    ○字幕

    ●驻留字体

    ●可下载的字体

    ○PFR

    ○OpenType

    ●色彩

    ●MIME类型

    4.应用模型

    讲到应用模型,先介绍几个概念以帮助理解和阅读标准文本。绑定应用(BoundApplication),该类应用和电视节目捆绑在一起,节目结束,业务也随之结束,比如和节目相关的投票应用;非绑定应用(UnboundApplication),该应用不和任何电视节目捆绑,某个节目结束,该业务仍然可以为用户服务,比如电子节目指南。特权应用(PrivilegedApplication),一种非绑定的应用,由有线电视运营商或业务运营商控制,用于管理其他各种应用,也包括一些设备管理功能。非绑定应用和特权应用都源自于OCAP标准,GEM借用了这些思想并进行了一些修改。

    在应用模型部分,GEM定义了下列内容:

    ●业务绑定类应用

    ●DVB-J模型

    ●应用间的资源管理

    ●和传统业务无关的业务和应用

    ●访问因特网应用的生命周期

    ●插件的管理

    ●驻留和缓存应用

    ●GEM和本地应用生命周期的交互关系

    ●图形限制对应用模型的影响

    ●非绑定应用

    ●Provider(这是一个原本JavaSE中所使用的概念,通过标准的API来扩展平台的功能。它们通常是一些在标准API实现和市场特定协议之间的软件适配器,使用标准的API并且和各种特定的实现无关,因此运营商可以将它们发布到现场而无需进行软件升级――作者注)

    5.应用信令

    应用信令主要涵盖的内容包括:标识及发起和业务相关的应用;使得运营商能够管理应用生命周期的信令需求。具体来说,对于任何GEM应用,其最小的信令需求包括:提供某种形式的应用描述信息足以:

    ●标识应用程序代码和其他资产(asset)的来源

    ●标识应用的应用ID和机构ID

    ●标识应用的名称

    对于DVB-J应用,额外附加的最小信令需求包括:为DVB-J提供某种形式的应用描述信息足以:

    ●标识应用的信令参数

    ●标识应用的起始类

    6.DVB-J平台

    DVB-J基于JavaMEPBP1.1,并对相关部分进行了修改。这部分的内容相当多,好在Java已经普及,这里就不做进一步的介绍。

    7.安全机制

    GEM对安全机制做了较为详细的规范,具体包括:

    ●应用的认证

    ●应用的安全策略

    ●回传信道通信的认证和隐私保护

    ●安全证书管理

    (1)应用的安全框架

    GEM定义的应用安全框架使得接收机能够认证应用程序和其他文件的来源。对于一些敏感的资源,认证机制会建议接收机给予某个应用的相应访问权限来访问这些资源。系统采用3种不同的认证消息:

    ●加密哈希码(Hashcode

    ●签名(signature

    ●证书(Certificate

    (2)建立可信应用机制

    如何建立一种机制使得应用可以被信赖并需要额外的权限?一种有效的办法就是签名。基于GEM的终端规范可以引入其他机制来帮助建立应用的可信机制,如各种形式的代码签名等。任何一种安全框架,不管是否涉及代码签名,都应该:

    ●可信的应用要能够在众多的签名应用中通过application_id被标识出来。

    ●拒绝向任何未签名应用授予不在范围之内的权限,除非这些权限是通过信令做了专门的请求。

    ●安全机制必须在GEM终端标准中有完整的定义。

    8.图形参考模型

    GEM为应用提供了一种机制来定位:通过输出设备显示的视频、用户界面构件,如按钮和列表和图形原语。每个和GEM终端相连的屏幕逻辑上都有3个平面,从后到前分别是背景、视频和图形平面。图7描述了这三者之间的关系。

    图7

    根据实现方案的不同,字幕平面的特性会有所差异,但是GEM提供了相应的API,使得这些特性能够预测。每个应用都拥有图形平面的一个连续矩形区域供其画图,应用能够把视频、界面元素和图形放入该矩形区域。应用还可以在视频平面上控制在AWT层次之外的视频,并且能够把静止图像、视频Drip或者纯色图形放置在背景平面上。基于GEM的终端能够在同一时间支持多个不同的应用,每个应用拥有屏幕的一部分区域,这些区域可以重叠。如果一个应用的显示是半透明的,那么透过它就可以看到另外应用的视频或背景。

    GEM的发展规划

    GEM目前正在自我完善,在2009年7月份对GEM和MHP规范完成了重大的修订工作,并在第80届DVB年会上得到批准。此次修订的目的主要是修改GEM和MHP参考的次序,以前是GEM参考MHP标准,现在修改为MHP参考GEM标准。此次修改带来的一个最直接的好处就是,其他的标准,如OCAP,就只用参看GEM标准而无需通过GEM再参考MHP的相关版本了。今后GEM主要的发展规划是涵盖更多的新兴市场的需求。

    市场应用和推广情况

    GEM是一个成功的标准,适用于各种应用领域,并被其他标准组织作为基准而广泛采用,基于它的产品被世界各国和地区大量采用:

    ●超过3300万和GEM相兼容的设备已经部署在世界各地,包括:

    o2100万台蓝光播放器

    o1000万台MHP接收机

    ●GEM设备的市场部署还包括:

    o在有线电视网络中的OCAP/Tru2way产品(主要用在北美和韩国)

    o地面数字电视网络中的ACAP产品(主要运用在北美和韩国)

    o日本的基于ARIBB.23的产品。

    oGEM-IPTV(到截稿为止,韩国和欧洲用户接近100万)

    ●GINGA-J

    o巴西采用了基于日本的ISDB-T传输系统,GINGA-J也是基于GEM标准

    ●GEM同时还是IPTV标准OpenIPTVForum的基石

    产品和业务运营示例

    鉴于篇幅,仅列举三大类应用的1~2个例子:

    图8

    小结

    GEM是一套公共的APIs核以及定义这些APIs行为的相关语义规范。节目制作者可以用它们来制作全球可用的互动内容,这些内容可以适用于各种基于GEM的设备

    ●目前GEM主要针对三类不同的应用领域或目标:

    o广播类,采用有线、卫星和地面传输的数字电视系统

    oIPTV类,针对IPTV机顶盒

    o光碟类,针对基于大容量光碟的业务,如蓝光光碟

    上述三类目标共享同一种应用模型和一套公共的核心类。

    ●针对每类应用目标和相关的Profile,GEM终端规范涵盖了下列强制和可选的部分:

    o内容格式(音频、视频和图像)

    o传输协议(广播和因特网协议)

    o应用模型

    o应用信令机制

    o基于Java的应用平台

    ●GEM允许制订功能和上述部分等同的替代模块。总的说来,不同GEM应用的根本区别还是在于不同环境中其下支撑网络及其信令的不同,如北美的有线和地面系统、DVB、ISDB-T、IPTV和蓝光光碟等。

    ●GEM与网络无关:

    oGEM规范提供了业务抽象,没有引入任何信令或者和底层传输系统相关的网络部分

    o允许开发互动电视或者Web2.0的应用,而无需知道任何承载这些应用的网络细节信息

    ●存在大量基于GEM的应用:

    o电子节目指南、邮件、聊天、短信、增强型TV、新闻、天气预报和游戏等等

    o基于GEM的应用可以直接在标准的Web服务器上运行,并且很容易支持Web2.0的特性,如RSSfeeds、P2P和用户上载内容等

    原本为电影光碟开发的互动功能或额外的花絮,可以很容易地移植到基于有线电视网络或其他宽带网的视频点播系统中。

     


    展开全文
  •  对于数字电视中间件目前没有一个官方的或者标准的定义,目前来讲数字电视中间件系统,一般是指嵌入在电视接收终端、位于接收设备驱动层软件之上、隔绝交互应用与系统资源的软件层。中间件使得应用程序独立于接收机...
  • 对于重大组件、中间件的选型,首先要明确短期、中长期的需求,根据需求,列出一些重点考虑的需求特性,根据这些特性,列出一些测试用例,在选型时,用这些测试用例对入围产品进行测试,根据测试结果来评判各个产品的...

     

    一、选型流程

        对于重大组件、中间件的选型,首先要明确短期、中长期的需求,根据需求,列出一些重点考虑的需求特性,根据这些特性,列出一些测试用例,在选型时,用这些测试用例对入围产品进行测试,根据测试结果来评判各个产品的优劣以及与需求的匹配程度。(对应下面的第3、4项)

     

    1 初步收集和整理需求,可以参考比较主流的方案和中间件的功能

        ------>相关资料-------> 

        2 召集领导、技术骨干、架构师等,讨论需求和使用中间件的必要性

            ------> (1) 需要自研-------> <自研流程......>

            ------> (2) 选用中间件-------> 由领导发起中间件选型任务(主要由基础技术平台来具体负责)

            3 (选型负责人)广泛调研和收集符合需求的中间件,发布初步《调研报告》,召开讨论会

                -----> (1) 不符合要求,需要自研-------> <自研流程......>

                -----> (2) 决定选出2到4款拿来做最终的对比测试

                4 发起对比测试(根据具体情况进行,可能涉及到性能、稳定性、安全性等各个方面,如果测试复杂,需要性能测试团队参与)

                5 编写中立的《选型报告》和《测试结论》,完成后,召开讨论和评审会议,决定要用哪一款中间件

                    -----> (1) 所有备选的中间件,都不完全满足需求,需要二次开发或者调整需求 -------> <领导做决定......>

                    -----> (2) 决定选择某一个款中间件 ------->

                    6 由基础技术平台负责该中间件的部署或二次开发 - the end

     

    注意,1、对于第一点 - “需求的提出和收集”,可以由任何方面发起,包括研发组、架构组、基础技术组等。

    2、选型负责人,主要由基础技术平台来具体负责,一般来说,必须是高级工程师以上,有丰富经验的一线架构师来负责,《调研报告》、《选型报告》、《测试结论》等文档,必须是专业的,能说服人的,没有这个效果就得重写!

     

    二、重大版本更新流程

    1 由版本更新的发起方(例如基础技术平台,或者业务需求方也可以提出更新)来确定更新内容,召开讨论会议,收集反馈意见并 决定是否有升级的必要

        --------> (1) 决定暂不升级

        --------> (2) 决定升级

        2 中间的负责人,准备好新版本(可能还包括二次开发),新版本准备好后,发起测试,通过测试后,发布测试结论;

        3 制定升级计划(如有必要,可以召集使用方 开会确定升级计划),并准备升级手册和资料;

        4 由基础技术平台负责该中间件的新版本部署 - the end

     

     

    三、选型标准

     

    列表和举例如下:

    标准 说明 SpringMVC ZolltyMVC
    满足需求
    1. 能否满足功能需求及技术指标(比如性能要求)(满足眼前的需求);

    2. 能否适应未来的发展,满足未来的需求(适可而止,不一定是越多越好)。

    很多,很强,以至于一般都用不完 也很难一一列举完。(10分) 涵盖MVC的基本功能,包括Bean管理/依赖注入、RequestMapping、Restful、拦截器、模型驱动和多视图等。(6分)
    成熟度
    1. 产品正式版本发布时间和次数;

    2. 产品是否被长期、广泛的在生产环境使用;

    3. 是否经过业界各种复杂场景及苛刻要求的验证;

    4. 在互联网上的资料是否丰富。

    开源10多年;

    发布的版本数以百计;

    被全世界广泛使用、占有率绝对第一;

    网上文档和资料非常丰富;(10分)

    发布已有5年,有十余个版本,使用案例很少,仅仅有3、5个小项目在用,市场检验不足;文档资料很少。(3分)
    可靠性
    1. 产品bug数量多少;

    2. 正式版本是否被发现有严重bug;

    3. 是否有安全漏洞和隐患;

    4. 产品是否经过测试和质量、安全上的检测;

    5. 是否具备容灾能力(比如支持集群、副本等);

    稳定可靠,十几年来,被无数公司使用,很少发现严重缺陷和不稳定的情况。(10分) 简单使用来看,还算稳定可靠,但是没有经过太多场景的检验。(6分)
    产品活力
    1. 是否开源;

    2. 如果开源,参与开发的人有多少,是否深入,是否活跃;

    3. 用户和各种参与者人数多少,是否活跃;

    4. bug修复频率,版本发布的频率和稳定性,是否有过停止更新,或者经常发布延期等情况。

    代码和资料完全开源;

    已形成广大的社区,拥有大量的维护者和开发者;

    近十几年,一直再不停的维护更新,每年都会有很多个版本发布;(10分)

    代码和资料完全开源;只有一个维护和开发者,且很少有人关注和互动;近几年来更新频率很低,大概1年左右发布一次版本。(3分)
    业界案例
    1. 业界的主流方案是什么?最先进的方案又是什么?

    2. 业界的流行趋势是什么?

    3. 业界(国内、外)知名公司是怎么做的,他们的方案是什么?

       
    口碑和行业认可度
    1. 有多少公司也采用了这种产品、技术或方案,效果和口碑如何?

       
    服务支持能力
    1. 开源还是商业?能否得到官方及时有力的支持?

       
    可维护性
    1. 是否容易安装/升级/更新;

    2. 是否容易日常维护;

    3. 是否有安装和维护等操作说明文档;

    4. 是否支持监控;

    5. 是否支持灰度发布、平滑升级。

       
    可测试性
    1. 对其本身或相关的功能,是否容易测试,是否容易定位问题;

    2. 是否支持自动化测试。

       
    性能效率
    1. 响应时间、吞吐量、并发、资源利用率等,是否在同类产品中胜出;

    2. 是否支持通过水平扩展、负载均衡等方式来提高性能。

    由于本身比较复杂,性能效率不算高,但是从各大公司的使用来看,能满足99.99%的场景。 简单轻量,对比来看,各方面的性能效率很高。
    安全性
    1. 功能上是否有各种安全策略和保障(比如支持认证、加密等,支持防SQL注入、重放攻击等)

    2. 是否暴露出有安全漏洞或隐患

    3. 是否经过安全上的检测;

    被广泛使用,几乎没有安全方面的漏洞和隐患。

    简单使用来看,还算安全,但是没有经过太多的测试检验。

    二次开发

     

    1. 采用的什么编程语言和核心技术,是否能够掌握,掌握的难度如何;

    2. 代码和文档是否清晰,有无代码注释、设计说明、二次开发说明等。

    完全开源,容易进行二次开发,但是由于功能过剩、又有强大的社区支持,几乎不需要自己进行二次开发和维护。 完全开源,代码简单,容易进行二次开发、扩展。
    功能的可扩展性
    1. 设计上是否具备功能上或代码级别的可扩展能力;

    2. 扩展是否方便。

       
    易用性
    1. 教程、详细说明文档、API文档、参考示例等是否齐全、完善、清晰易懂;

    2. 是否容易上手使用;

    3. 其功能和设计,是否容易理解。

     

    由于功能强大,设计和代码比较复杂,但是由于文档和资料非常丰富,易用性比较好。 由于功能简单、代码少,复杂度不高,易用性很好。
    复杂度和冗余度
    1. 在满足需求的情况下,复杂度越低越好(衡量复杂度的方式,包括代码量、步骤的多少等数据指标);

    2. 是否有大量冗余、很可能用不上的功能,且会对资源利用和易用性等方面造成不好的影响;

    3. 性能上是否远远超过预期且会造成一些不必要的浪费和其他方面负面的影响。

       
    法律风险
    1. 是否开源,开源的协议是什么

       
     

     

     

       

     

    总的来说,SpringMVC在 功能性、产品成熟度和活力 上胜出,而ZolltyMVC在 性能效率、复杂度和易用性上胜出。

    注意,1、此列表仅为示例,每一项写得并不详细,正式的调研报告和选型报告,应该详细列举每一项的对比数据(以数据说话,每一项约2页左右)。

    2、限于格式,这里没有列出每一项的权重。在实际对比时,可以给每一项,根据自身的需求,来确定每一项的权重,然后分别乘以每一项得分,所有项得分相加,得出总分数。

     

    一个真实案例:分布式文件存储系统选型

     

     

     

    展开全文
  • 绍RFID中间件的概念;...通过建立底层数据通信接口组件、设备网络接口组件、设备参数接口组件、对标签读写操作接口组件和数据库接口组件5个接口组件,提出一种对RFID中间件进行标准化的思路。
  • 智能家居产品互联互通中间件技术标准 中国智能家居产业联盟
  • 消息中间件与JMS标准

    2019-10-06 05:09:26
    初识消息中间件 维 基百科上对于消息中间件的定义是"Message-oriented middleware(MOM) is software infrastructure focused on sending and receiving messages between distrubuted systems"。解释起来就是消息...

    初识消息中间件

    维 基百科上对于消息中间件的定义是"Message-oriented middleware(MOM) is software infrastructure focused on sending and receiving messages between distrubuted systems"。解释起来就是消息中间件是在分布式系统中完成消息的发送和传递的基础软件。看张图来更直观地理解消息中间件:

    看到消息中间件有两个好处:

    1、异步

    2、解耦

    应用A和应用B都和消息中间件打交道,这两个应用之间并不直接联系,这样就完成了解耦,目的是希望收发消息的双方彼此不知道对方的存在,也不受对方的影响,所以将消息投递给接收者实际上都采用了异步的方式。

     

    透过示例看消息中间件对应用的解耦

    以苹果的App Store为例吧,App Store有一个功能:用户充值成功后向用户手机发送一条短信,算是一个安全选项。最直观的,我们会这么实现:

    然后,我们需要把用户付款的信息(用户名、时间、IP等数据)传给安全系统,安全系统会根据安全策略进行相关的判断和处理,因此结构变成:

    这么看起来还好,那么如果再增加一些要被调用的系统呢?比如:

    这会让付款系统变得非常复杂,每增加一个在付款成功之后需要调用的系统,就需要修改付款系统来进行相关的调用。优雅一点的实现是把这个付款成功后的 服务调用变为一种可扩展的配置,甚至可以动态生效,但这只能降低变更时的开发和部署成本,并没有降低复杂性。付款系统被迫要依赖非常多的系统。

     

    引入消息中间件进行服务解耦

    可以考虑一下,从付款的角度看,这些系统是付款系统必须依赖的吗?答案是否定的, 付款系统只需要验证用户账号、付款账号、付款密码的合法性,所以付款系统依赖的是能够系统用户账号、付款账号、付款密码的系统,而上图中的系统其实都不是 付款系统必须依赖的系统。相反,这些系统都是必须依赖付款系统的,因为它们都关心付款是否成功。

    在这样的场景中,我们需要通过消息中间件把上面的结构解耦,上面结构中的服务调用将会被固定格式的消息传递所取代。付款系统负责向消息中间件发送消息,而其他的系统则向消息中间件来订阅这个消息,然后完成自己的工作,如图所示:

    这样,通过消息中间件,付款系统就不需要关心到底有多少个系统需要知道付款成功这 件事情了,也不用关心如何通知它们,只需要把登陆成功这件事情转化为一个消息发送到消息中间件就好了,这样,需要了解付款成功这件事情的系统自己去消息中 间件订阅就行了,并且各个系统之间也是互不影响的。

     

    JMS概述

    JMS是Java Message Service的缩写,即Java消息服务,它是Java EE中一个关于消息的规范,而Hornetq、ActiveMQ等产品是对这个规范的实现。如果是企业内部或者一些小型的系统,直接使用JMS的实现产品 是一个经济的选择,而在大型系统中有一些场景不适合使用JMS。

    在大型互联网中,我们采用消息中间件可以进行应用之间的解耦以及操作的异步,这是消息中间件两个最基础的特点,也正是我们所需要的。在此基础上,我们着重思考的是消息的顺序保证扩展性可靠性业务操作与消息发送一致性,以及多集群订阅者等方面的问题。当然,这些我们要思考的东西,JMS都已经想到了,先看下JMS能帮开发者做什么:

    1、定义一组消息公用概念和实用工具

    所有Java应用程序都可以使用JMS中定义的API去完成消息的创建、接收与发送,任何实现了JMS标准的MOM都可以作为消息的中介,完成消息的存储转发

    2、最大化消息应用程序的可移植性

    MOM提供了有保证的消息发送,应用程序开发人员无需了解远程过程调用(PRC)和网络/通信协议的细节,提供了程序的可移植性

    3、最大化降低应用程序与应用程序之间的耦合度

    由于MOM的存在,各个应用程序只关心和MOM之间如何进行消息的接收与发送,而无须关注MOM的另一边,其他程序是如何接收和发送的

     

    JMS两种消息模型

    1、点对点模型

    点对点模型(Pointer-to-Pointer)类似这样:

    这种模型总结几点:

    (1)一个消息中间件关联多个队列生产者和消费者

    (2)一条消息仅仅能被一个消费者消费

    (3)多个消费者正在监听队列上的消息,那么中间件将根据先来先得的原则确定由哪个消费者接收下一条消息,如果没有消费者正在监听队列,那么消息将保留在中间件中,直至消费者连接到中间为止

    (4)收到消息后消费者必须确认消息已被接收,否则中间件江认为该消息没有被接收,那么这条消息仍然可以被其他消费者接收。程序可以自动确认,不需要人工干预

    (5)生产者和消费者的运行先后没有限制

    (6)此模型中,消息不是自动推送给消费者的,而是要消费者中间件中请求获得

    2、发布/订阅模型

    发布/订阅(Publish-Subscribe)模型类似这样:

    这种模型中,还是以分点的形式总结:

    (1)有一个重要的概念topic,可以认为是主题

    (2)生产者发布消息,消费者订阅感兴趣的消息,生产者将消息和一个特定的topic(主题)连在一起,中间件将根据消费者注册的topic,将消息传递给消费者

    (3)发布/订阅模式允许多个消费者接收同一条消息,只要这些消费者注册了同一个主题

    (4)消费者必须先运行,订阅主题,然后再等待生产者运行,这么点对点模型有所差别

    (5)该模型中,消息会自动广播,消费者无须通过主动请求或者轮训主题的方法来获得新的消息

     

    JMS为提供的要素

    JMS为发开者提供了很多的要素,看一下比较重要的几个:

    要    素 作    用
    Destination 表示消息所走通道的目标定义,,用来定义消息从发送端发出后要走的通道,而不是接收方。Destination属于管理类对象
    ConnectionFactory 顾名思义,用于创建连接对象,ConnectionFactory属于管理类的对象
    Connection 连接接口,所负责的重要工作时创建Session
    Session 会话接口,这是一个非常重要的对象,消息发送者、消息接收者以及消息对象本身,都是通过这个会话对象创建的
    MessageConsumer 消息的消费者,也就是订阅消息并处理消息的对象
    MessageProducer 消息的生产者,也就是用来发送消息的对象
    XXXMessage 指各种类型的消息对象,包括ByteMesage、ObjectMessage、StreamMessage和TextMessage这5种

    在JMS消息模型中,根据点对点模式和发布/订阅模式,这些要素由扩展出了各自的内容:

    JMS标准 点对点模式 发布/订阅模式
    ConnectionFactory QueueConnectionFactory TopicConnectionFactory
    Connection QueueConnection TopicConnection
    Destination Queue Topic
    Session QueueSession TopicSession
    MessageProducer QueueSender TopicPublisher
    MessageConsumer QueueReceiver TopicSubscriber

    JMS是一个标准,具体还是依赖实现,当前常见的JMS实现有ActiveMQ、ZeroMQ、RabbitMQ等,Kafka是一种类似JMS的实现,下一篇文章将会重点讲解一下Kafka,至于为什么,还是和以前写文章一样的原因,因为工作用,呵呵。

     

    转载于:https://www.cnblogs.com/szlbm/p/5588550.html

    展开全文
  • 中间件技术在IPTV系统中可应用于不同的层面,目前经常讨论的IPTV中间件技术包括系统设备的设计、系统设备间接口的设计、系统和终端间接口的设计以及终端设备的底层设计等几个方面。其中目前阶段最受关注的是系统和...
  • 在EPC技术和射频识别(RFID)技术的迅速发展和广泛应用...本文讲述了EPC系统,RFID中间件,并在这基础上设计了一个基于EPCglobal ALE标准的嵌入式RFID中间件,使标准的RFID中间件可以集成在阅读器上,实现一体化思想。
  • 中间件

    2018-08-17 21:21:21
    中间件是位于平台(硬件和操作系统)和应用之间的通用服务,它们之间的关系如图1所示,其具有标准的程序接口和协议。 或者是:中间件是基础软件,处于操作系统(或网络协议)与分布式应用之间。  图1 2、中间件...

    1、中间件定义

    中间件是位于平台(硬件和操作系统)和应用之间的通用服务,它们之间的关系如图1所示,其具有标准的程序接口和协议。
    或者是:中间件是基础软件,处于操作系统(或网络协议)与分布式应用之间。

                     图1

    2、中间件种类

    根据中间件在软件支撑和架构的定位来看,基本上可以分为三大类产品:
    (1)应用服务类中间件
    (2)应用集成类中间件
    (3)业务架构类中间件

    3、常见的中间件

    tomcat , jboss, weblogic, websphere

     

     

     

    展开全文
  • 中间件涉及的标准

    千次阅读 2016-05-27 10:26:02
    XOpen DCE CORBA WebService Message Queue XML POSIX SOA CICS TUDEXO
  • 伴随着移动OA的发展,移动中间件这几年也是风生水起,似乎获得了较快速的发展。更准确的说,其实是移动中间件为移动OA的发展起着重要的支撑。 移动中间件的主要作用在于屏蔽终端差异化的开发和与原有OA系统的对接...
  • microcache 实现作为Go中间件的非标准HTTP缓存
  • 使用消息中间件是企业应用中降低模块间耦合的重要方式,开源和商用的消息中间件产品也很多,这些产品都遵循一种或多种消息中间件技术标准。在消息中间件领域有两类技术标准: 1、面向接口的消息服务标准:这类标准...
  • 消息中间件有时候又被人们成为消息队列,目前基本没有针对于消息中间件标准的定义。一般将消息中间件认为是松耦合的分布式系统中的一个子系统,关注于数据的发送与接收,利用高效可靠的异步消息传递机制对分布式各个...
  • 中间件支持不断发展和重叠的工业及家庭自动化物联网标准领域的更改。 • 家庭和工业物联网系统的主要区别是什么? •现有工业物联网标准是否会为开发人员带来更多麻烦? • 中间件是否是应对标准过时的最佳...
  • 中间件的分类

    千次阅读 2007-03-13 21:56:00
    中间件的产品种类很多,根据中间件在...一个最典型的例子就是ODBC,ODBC是一种基于数据库的中间件标准,它允许应用程序和本地或者异地的数据库进行通信,并提供了一系列的应用程序接口API,当然,在多数情况下这些API都
  • 本文简述了物联网EPC技术并分析了Savant中间件软件系统的主要功能和...在深入研究EPCgloabal后,借鉴EPCgloabl的中间件标准ALE,给出了一种Savant中间件软件系统的设计思路,并从逻辑上验证了该系统的完整性与有效性。
  • 如果说操作系统、数据库是地基,应用系统是大厦,那么中间件就是高楼大厦的框架。◆工作流中间件 测试科诺KA-2、...中间件性能测试环境和标准  如果说操作系统、数据库是地基,应用系统是大厦,那么中间件就是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,815
精华内容 1,526
关键字:

中间件标准