CN100488199C - 一种媒体发布系统及方法 - Google Patents

一种媒体发布系统及方法 Download PDF

Info

Publication number
CN100488199C
CN100488199C CNB2005100862733A CN200510086273A CN100488199C CN 100488199 C CN100488199 C CN 100488199C CN B2005100862733 A CNB2005100862733 A CN B2005100862733A CN 200510086273 A CN200510086273 A CN 200510086273A CN 100488199 C CN100488199 C CN 100488199C
Authority
CN
China
Prior art keywords
service
mbean
jmx
layer
assembly
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB2005100862733A
Other languages
English (en)
Other versions
CN1741525A (zh
Inventor
林荣
林镇武
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BEIJING WUXIAN XINRUI NETWORK TECHNOLOGY Co Ltd
Original Assignee
BEIJING WUXIAN XINRUI NETWORK TECHNOLOGY Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by BEIJING WUXIAN XINRUI NETWORK TECHNOLOGY Co Ltd filed Critical BEIJING WUXIAN XINRUI NETWORK TECHNOLOGY Co Ltd
Priority to CNB2005100862733A priority Critical patent/CN100488199C/zh
Publication of CN1741525A publication Critical patent/CN1741525A/zh
Application granted granted Critical
Publication of CN100488199C publication Critical patent/CN100488199C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明涉及一种全新架构的媒体发布系统,包括服务提供者模块、服务消费者模块,内核层,采用即插即用组件的管理框架;传输层,采用远程JMX和GSSAPI库,分离网络传输和安全协议,并可以根据需要动态的插入不同的协议实现;服务层,所有的基础模块和功能模块按照SOA规范进行封装,向服务总线ESB进行注册;并且按照JMX的MBean规范设计接口,保证MBean Server可以动态装载、管理这些Service;应用层,所有模块在此暴露其接口,通过用户界面进行调用、管理;服务总线,以软件总线的形式贯穿整个系统,系统内的所有服务组件都在此注册,负责管理不同组件之间的路由、状态管理,隐藏组件的位置、平台、协议、编程语言。具有可管理、易扩展、低耦合的特点。

Description

一种媒体发布系统及方法
技术领域
本发明涉及媒体发布平台,尤其涉及一种能够集成企业现有系统和IT基础设施的架构方案。
背景技术
现有媒体发布系统的架构,见图1。许多提供发布的企业中IT被严重拆分。因为这些企业允许每个业务部门选择它自己的IT需求,而不是依赖于集中管理的IT组织。因此,传统的媒体发布系统也被拆分。通常,公司可能有一些内容审批、财务、报表软件,以及类似的支持不同业务方面的系统。这些部门安装“最佳”软件,而不考虑同其它部门或应用程序的集成。后来他们发现,在原有基础架构中加入新的应用时非常困难。图1正是目前一些企业中IT基础架构的例子:
从图1中可以注意到一个IT难题,那就是大多数应用程序之间直接相互通信。如应用区域A中的应用1与应用2直接通信,应用2与应用3直接通信等等。当应用程序需要修改或淘汰时,这种依赖便成为一个实际问题。任何修改都可能会更新每条唯一的通信线路。因此,这种变更可能代价高昂。这种情况被称为应用程序间的紧耦合,也逐渐成为让一些企业头疼的问题。
JMX介绍
JMX即Java管理扩展(Java Management Extensions),是由Sun公司提出的一种管理框架。其目的就是为现有的应用程序、系统植入管理功能的框架。Sun定义的架构分为三层,可以参见图四。
第一层是设备层:所有被管理的资源都在这一层,被管理的资源要符合Mbean规范;
第二层是代理层:位于被管理资源和管理者之间,提供许多基础服务,其中最主要的是Mbean Server服务,它是代理层乃至整个JMX的核心,所有的Mbean都在此注册,管理者也必须通过它才能操纵被管理资源。这一层还提供许多其他基础服务,比如协议适配器、监视服务等。
第三层是分布层:对于这一层,sun并没有给出一个明确的规范,只是给出了简要描述,这一层的主要目的就是使管理者可以不受地理限制来管理资源。
SOA架构介绍
SOA(面向服务架构)是一种构建分布式系统的设计方法,传统的分布式系统如Web Service,客户端和服务端是紧耦合的,二者必须使用相同的协议、知道对方位置,开发出来的系统很容易成为‘信息孤岛’,因为很难和其他系统无缝连接。
而SOA就是为了解决客户端和服务端的强耦合、位置依赖,并保证用最小代价和其它系统集成,重用企业已经建好的IT基础设施。
SOA通过引入叫做ESB(企业服务总线)的基础设施,隔离客户端和服务端,并可以支持多种协议,任何一方只需要和ESB进行会话,不需要知道另一端的位置、协议、编程语言等细节。所有这些工作全部由ESB代劳。
通过上面的介绍可见,JMX和SOA分别针对不同的问题域,JMX目的是为系统提供管理手段,而SOA目的是为了集成不同系统。本发明把二者集成在一起,提供一个可管理、易集成的系统平台。
可以看出,现有技术的媒体发布系统存在如下问题:
1.实现方案都基于点对点的调用方式,见图2;
传统的分布式系统,大部分是基于Web Service或RMI甚至是DCOM进行调用,这种方式好处就是实现简单。但是限制诸多,如通讯双方都要使用相同的协议;相互连接安全可靠无法保证,如果需要可靠的连接,需要开发者自己编码实现,增加了实现的难度。
对于简单的拓扑结构,这种设计方式简单易于实现。特别是节点数量少时,这种方式工作的很好。当客户、服务节点增多时,需要管理的连接数成指数增多,增加了管理难度。
传统的分布式系统虽然可以实现不同系统间的重用,但是前提条件是作为Service Consumer(消费者)和Service Provider(提供者)的两个系统必须使用相同的通信协议,如都使用RMI、SOAP等等。对于新开发的系统,可以通过强制使用一个协议来满足这个前提,但对于大量已经现存的系统而言,修改是不现实的。见图2,传统的分布式系统示意图。
比如图2中的第一部分单用户模式1,当只有1个客户端和三个服务时,需要提供三个连接;但多用户模式2中,当有三个客户端时,连接就增加到9个。并且每个客户和服务之间都要使用相同的协议绑定在一起。
不同的协议需要使用不同的端口,在网络上暴露更多的端口,增加了安全隐患。这些连接的安全、维护需要技术人员自己实现,降低了系统的可靠性。
2.无法在线调整系统
现有系统一旦上线后,其功能就固定下来,很难动态的添加、修改模块,即使个别小模块的升级,也必须把整个系统停下来,重新发布新系统。无法保证7*24小时的模式。
3.差的响应变化能力
商务世界充满了变化,任何产品在设计之初都无法预见到所有的问题领域,目前信息产品的普遍做法是,由客户或商务经理描述商务规则,技术经理在确信了解这些规则后,通过某种技术框架最终以代码的形式实现这些规则,因为产品对后续需求的应变能力是企业领先于竞争对手的技术保证。现有的解决方案面对需求改变时,都要对整个产品重新设计、开发、测试,大量的相关代码可能要推倒重写和仔细测试,然后才能发布,这个周期相对于商务变化显得漫长、拖沓。
作为一个企业级的java应用,体系庞大,组成复杂,各个服务模块和数据库接口通常由不同的团队开发,彼此之间一无所知,整个产品的配置、部署对于实施人员可说是一个噩梦。每一个微小组件的升级,都需要重新编译、分发、部署、重启多个步骤,并且需要在多个节点上重复执行,极易出错。如果能够提供一种图形界面、鼠标拖拽的方式就能完成整个平台的升级,将大大减轻管理员的工作强度,减少错误几率。
4.系统安全和保密管理
传统的解决方案会把安全、加密、权限控制放在数据库中,通过界面提供配置接口,然后在代码中处理这些数据,对于相同的用户,在不同的系统或不同的服务器上都需要重复这些步骤。并且不能有效利用企业已有的安全基础设施,导致资源浪费,重复开发。
电信信息系统的安全性要求很高,并且在现有的IT安全基础设施中已经进行了巨大的投入,如何善用现有系统,最大程度保证客户利益,避免重复投资,应该作为解决方案设计的指导原则。
发明内容
本发明为了解决上述问题,提出了一种媒体发布方法及系统,并且具有可管理、易扩展、低耦合的特点。可管理性,即本发明可提供全国范围内多点网络接入,中央控制及管理。易扩展性,即本发明可适应移动通讯高速发展的要求,以允许各种类型的已知,甚至未知媒体类型在该平台上进行管理和发布,而且快速适应不断变化的商务需求。低耦合性,即本发明开发的各个模块之间、模块和整体之间的依赖性很低,可以随时用新的技术实现某个模块,替换下原有的模块,对其他模块、系统没有任何影响。
为了实现上述目的,本发明公开了一种媒体发布系统,包括服务提供者模块、服务消费者模块,还包括:
内核层,采用即插即用组件的管理框架;
传输层,采用远程JMX和GSSAPI库,分离网络传输和安全协议,并可以根据需要动态的插入不同的协议实现;
服务层,所有的基础模块和功能模块按照SOA规范进行封装,向服务总线ESB进行注册;并且按照JMX的MBean规范设计接口,保证MBean Server可以动态装载、管理这些Service;
应用层,所有模块在此暴露其接口,通过用户界面进行调用、管理;
服务总线,以软件总线的形式贯穿整个系统,系统内的所有服务组件都在此注册,负责管理不同组件之间的路由、状态管理,隐藏组件的位置、平台、协议、编程语言。
所述内核层包括设备层、代理层、分布服务层,其中:
设备层,用于驻留被管理资源,每个被管理资源按照MBean的接口规范进行定义和实现;
代理层,位于被管理资源和管理者之间,用来管理资源;
分布服务层,用于集成了JMX REMOTING技术,分离出传输协议,独立于其他层单独实现,实现随时插入需要的协议,并保证所有的JMX信息无限制的传递。
所述代理层还包括连接器和协议适配器,以实现远程管理,并把MBean信息转换成符合特定信息的视图。
本发明公开了一种媒体发布方法,该方法包括:
(1)采用即插即用组件的管理框架设置一内核层;
(2)采用远程JMX和GSSAPI库,分离网络传输和安全协议,并根据需要动态的插入不同的协议实现;
(3)所有的基础模块和功能模块按照SOA规范进行封装,向服务总线ESB进行注册;并且按照JMX的MBean规范设计接口,保证MBean Server可以动态装载、管理这些Service;
(4)暴露所有模块的接口,通过用户界面进行调用、管理;
(5)以软件总线的形式贯穿整个系统,系统内的所有服务组件都在此注册,负责管理不同组件之间的路由、状态管理,隐藏组件的位置、平台、协议、编程语言。
所述步骤(1)包括:
(51)设置一设备层,用于驻留被管理资源,每个被管理资源按照MBean的接口规范进行定义和实现;
(52)设置一代理层,位于被管理资源和管理者之间,用来管理资源;
(53)设置一分布服务层,用于集成了JMX REMOTING技术,分离出传输协议,独立于其他层单独实现,实现随时插入需要的协议,并保证所有的JMX信息无限制的传递。
所述步骤(51)具体包括:
(61)所有的模块以SOA的Service模式进行设计开发;
(62)对每个Service,再按照MBean的规范进行封装,使用统一的方法进行操作或修改。
所述步骤(62)中所述按照MBean的规范进行封装包括:所有的属性都通过getAttribute/setAttribute来读取;可执行的操作通过Invoke方法调用;事件传播使用Notification、NotificationListener实现;描述MBean信息的辅助元数据,必须实现MBeanInfo接口。
所述步骤(52)还包括:
(81)在JMX内植入一个Installer Serivce来实现控件的即插即用管理;
(82)每个需要发布的类有两个部分组成,一个XML格式的文本文件叫做Descriptor,服务的二进制代码如java的jar包。
(83)部署时先把Descriptor发给Installer Service,Service收到这个文本文件后,解析其中内容,获得代码的URL,下载该代码包并实例化该组件,然后再Mbean Server中注册,随后,这个新的组件就可以被调用,同时可以被管理。
所述步骤(53)具体包括:
(91)在系统控制中心有一个Provisioning Warehouse,所有的组件在这里集中注册、保存副本;
(92)控制中心、工作站、组件会在管理员的界面上以节点的形式表示;
(93)当要发布新的组件、或升级旧的组件时,在图形界面上以拖拉的方式进行操作;
(94)控制中心接到指令后,先把组件的Descriptor文件下发给工作站;
(95)工作站接到这个文件后,把它交给Installer Service模块;
(96)Installer Service对文件解析,得到地址信息;
(97)Installer Service服务模块从控制中心的代码库中下载组件的二进制包;
(98)MBean Server对组件进行实例化,并采集信息;
(99)采集到的信息通过协议适配器进行格式转换,再由连接器以多播的形式发布给感兴趣的监控台;
(910)监控台上立即显示出这些组件的状态,可配制的属性、可执行的操作。
所述步骤(2)还包括:所有的安全个体申请证书,个体间通讯之前根据证书进行身份验证,验证通过后,使用对称加密算法对数据进行加密,而加密密钥利用用户的公钥进行保护传递。
本发明还公开了一种利用权利要求1所述媒体发布系统或者权利要求4所述媒体发布方法分离商务规则和技术的方法,包括如下步骤:
(111)按照SOA的要求进行重构企业的遗留系统,把各专业应用分解成一个或多个服务,以Service Component的形式存在于系统中,并可以利用上一部分的“即插即用”功能,在SOA的ESB上进行注册,动态管理;
(112)使用支持Service的工作流引擎,根据企业的业务流程,对这些Service进行选择、排序,生成流程图;整个流程的推进由工作流引擎驱动,引擎根据流程图调用相应的服务,并根据返回结果判断下一步前进方向;因为采用SOA,各种系统不用考虑彼此间的通讯协议、连接方式、连接状态,只需要把调用请求提交给Service Bus,剩下的工作全由Service Bus代理
(113)对于专注于特殊功能的应用,把其中的处理规则从代码中剥离出来,放到规则引擎中,把公司策略从应用中分离出来,并且可被其他应用重用。
本发明公开的媒体发布系统及架构,具有如下优点及技术效果:
1、基于SOA架构实现异构平台的集成,消除服务提供者和消费者之间的点对点连接方式,解耦二者的依赖关系;
2、基于JMX微内核的平台设计和SOA架构,所有提供的功能都以服务模块的形式发布到系统,并且所有这些模块都是“热插拔”的,无论产品的升级、维护都以在线进行,确保7*24服务;
3、图形界面方式定义工作流和商务规则,把商务和技术分离开来,客户可以不依赖于技术人员,自助式的定义规则,确保系统最快的市场适应速度;
3、松耦合的域结构和对标准安全方案的全面支持,可以最大程度的利用企业现有的安全基础设施,减少客户的重复投资,确保客户利益;
附图说明
图1为传统媒体发布系统的架构示意图;
图2为传统的分布式系统示意图;
图3为本发明的SOA与JMX REMOTING架构图;
图4为本发明的JMX Kernel和Installer Service;
图5为本发明的SOA、工作流、规则引擎;
图6为本发明的安全架构;
图7为本发明的系统架构示意图;
图8为本发明的接口示意图;
图9为本发明的即插即用原理图;
图10为本发明的即插即用示意图;
图11为本发明的域结构示意图;
图12为本发明的安全交互示意图。
具体实施方式
本发明从以下几个方面集成JMX和SOA框架:
基于JMX微内核,扩展它的MBean规范,使其支持SOA中定义的SerivceBean;
集成JMX和JMX Remoting,利用JMX Remoting技术使得信息传递独立于
网络协议,并且可以随时插入不同协议,如HTTPS;
所有的服务模块,采用SOA模式进行设计,并结合JMX的动态加载技术,
使所有的模块可以即插即用,降低了模块与整体之间的耦合度。
从以下几方面集成SOA框架和工作流引擎,分离商务规则和技术实现,提供快速反应的软件产品。
技术人员考虑最基本的服务单元,按照SOA的规范定义接口并提供实现。这些单元组成企业范围的组件库;
工作流引擎提供最基本的流转控制功能;
商务人员利用图形界面从组件库中进行选择、排序,完成一个完整的商务流程,并且立刻就可以开始运转。
开发符合JSR-94标准的规则引擎,结合工作流引擎,分离业务规则和技术实现。
集成Kerberos和PKI的安全方案,利用企业现有的基础设施。
1.集成SOA和JMX REMOTING,解耦服务提供者和消费者,解决了点对点连接方式的缺陷;
传统的分布式系统虽然可以实现不同系统间的重用,但是前提条件是作为Service Consumer(服务消费者)和Service Provider(服务提供者)的两个系统必须使用相同的通信协议,如都使用RMI、SOAP等等。对于新开发的系统,可以通过强制使用一个协议来满足这个前提,但对于大量已经现存的系统而言,修改是不现实的。见图2,传统的分布式系统示意图。
SOA架构(Service-Oriented Architecture,面向服务架构)在服务提供者和服务消费者之间引入一个叫做服务总线(Enterprise Service Bus,ESB)的基础设施,服务消费者和服务提供者之间不再直接交互,而是由服务总线进行路由。ESB还提供了其他有用的功能。
1、1 组成,见图3,SOA与JMX REMOTING架构图。
Service提供者:新系统或遗留系统中对外提供的服务,以Service Bean(服务包)的形式存在,在ESB上注册,可以实现一种或几种通讯协议;
Service消费者:需要调用Service的客户端应用,可以独立于Service提供者而独立实现;
ESB:服务总线,各种Service Bean在ESB上注册,并提供其他功能。
JMX Remoting(Java Management Extension Remoting,远程Java管理扩展):提供ESB和Service提供者、Service消费者之间的数据传输通道,负责具体的连接工作。
1、2 各组成部分的作用和联系
无论是新开发的系统或企业遗留系统,把其功能模块封装成Service Bean(代码包)的形式,并按照特定的规范向外暴露其接口;并在ESB中注册,注册内容包括服务位置列表、实现的通讯协议、负载状态;而ESB在Service消费者和Service提供者之间起到连接桥梁的作用,并提供状态维护、负载均衡、故障转移、格式转换等基础功能。
当Service消费者需要调用服务时,把请求发送给ESB,ESB定位Service的位置,并均衡Service的负载,根据Service注册信息,选择相应的通讯协议,向Service发出调用。具体的通讯过程由JMX Remoting负责完成,Service处理结果返回给ESB,再由ESB返给Service消费者。
2、面向服务的即插即用系统
基于JMX和SOA架构的面向服务的系统架构,以透明的方式为服务组件的即插既用提供基础设施;可随时添加新的服务组件以增加对新的业务的支持,或替换旧的模块,而不影响原有的功能模块。
2、1 组成
参见图4:以分层的形式进行描述其组成。
JMX Kernel:JMX即Java管理扩展,是由Sun公司提出的一种管理框架。其目的就是为现有的应用程序、系统植入管理功能的框架。图中Instrument和Agent两层组成了JMX Kernel。
Service Bean:按照SOA架构实现的、提供完整功能的代码包,被热插拔的对象。图中Service Bean驻留在Instrument Layer中。
Installer Service:自行定义并实现的动态加载服务,嵌入到JMX中,对“即插即用”提供支持的基础设施。图中Installer Service驻留在AgentLayer中。
2、2 各组成部分的作用和联系
JMX Kernel(JMX内核):所有需要管理的资源称为Service Bean,逻辑上位于图中的Instrument(设备)层,这些资源的接口、属性、方法的定义必须符合JMX规范,按照这种标准定义的对象,部署到符合JMX规范的容器内之后,位于Agent(代理)层的Mbean Server(Mbean服务)就会自动发现这个资源,读取其属性,并形成关于资源属性、状态的视图,通过Adaptor(适配器)格式化后,把视图发送到远端的客户机上进行显示。
Service Bean:提供完整功能的代码包,如果完全按照JMX规范去实现管理功能,会发现管理的粒度过于精细,如果在用户屏幕上罗列出一大堆类、对象,用户会掉入信息的海洋而无所适从,并且过细的管理会造成巨大的性能开销。
为了提供一个切实可行的管理方案,把JMX的MBean进行了扩展,扩展成Service MBean。通过定义新的接口,把原来的若干MBean封装成为一个MBean,对原来的Mbean进行了更高一层的抽象,每个Service Bean已经不再是抽象、不好理解的类,而代表一个完整的功能单元,被赋予了新的内涵。
通过这种更高层的抽象设计,最终系统内需要管理的资源数量大大减少了,并且每一个Service Bean都有一个明确的功能描述,用户界面更加友好。
Installer Service(动态加载服务):提供即插即用功能的动态加载服务。
嵌入到Agent Layer的Installer Service相当于JMX Kernel的软总线,它的主要工作是支持热插拔服务组件、对服务组件的生存期进行管理。基于这种设计对于软件部署提供了新的可能。
3.基于SOA的规则引擎和工作流引擎,分离商务规则和技术实现
在瞬息变幻的商业环境中,作出反应的速度往往决定着企业的成败。随需应变的能力表现在以下几个方面:首先,需要创建一个快速响应的环境,以便对市场上的任何变化作出快速反应,而不管这种变化是内部的还是外部的;其次,企业随机应变的成本应该最小。这就要求企业需要一个有弹性的、健壮的基础设施。本设计中通过结合SOA、工作流引擎、规则引擎实现商务和技术的分离。
3、1 组成 参见图5
企业组件库:企业内部各个部门的“专业软件”提供符合规范的接口,集中注册,建立企业的组件库;
工作流引擎:利用图形化的工作流引擎工具,对组件进行选择、排序、执行;把企业范围内的应用集成起来,并把业务流程从软件中分离出来;
规则引擎:对于专注于特殊功能的应用,比如用户验证、授权系统,把其中的处理规则从代码中剥离出来,放到规则引擎中,把公司策略从应用中分离出来,并且可被其他应用重用。
3、2 各组成部分的作用和联系
企业组件库:通过对企业的遗留系统按照SOA的要求进行重构,把各专业应用分解成一个或多个服务,以Service Bean的形式存在于系统中,并可以利用上一部分的“即插即用”功能,在SOA的ESB上进行注册,动态管理;
工作流引擎:使用支持Service的工作流引擎,根据企业的业务流程,对这些Service进行选择、排序,生成流程图;整个流程的推进由工作流引擎驱动,引擎根据流程图调用相应的服务,并根据返回结果判断下一步前进方向;因为采用SOA,各种系统不用考虑彼此间的通讯协议、连接方式、连接状态,只需要把调用请求提交给ESB,剩下的工作全由ESB代理;请求方只需要关心返回结果就可以了;
规则引擎:对于各个应用内部设计到的业务规则,可以进一步的提取成规则对象,保存到规则库中;应用程序只需要构造数据对象,然后把它丢给规则引擎,规则引擎负责用相应的规则交验这些数据,返回结果。
4.安全架构和LDAP的松散的域控制
运行在开放式网络上的分布系统,安全设计四个方面:身份验证、授权、机密性、完整性;身份验证是指验证实体身份(是用户、计算机还是程序)的过程。该过程确定实体是它所声称的身份,这是确保数据机密性、完整性的前提。
本系统地将KERBEROS和PKI(公钥架构)结合在一起,集中一点对属于安全域中的实体进行身份验证(实体包括用户、计算机、程序);并可以采用多种加密协议对机密数据进行加密,进一步加强了安全力度。
4、1 组成,见图6
KDC:密钥分发中心(Key Distribute Center),用于局域网内身份验证;
CA:证书颁发中心,用于颁发企业证书,对广域网的用户进行身份验证;
DC:域控制器(Domain Controller),用于存放企业范围内的安全策略,对用户进行授权;
GSSAPI:通用安全服务编程接口(Gerneral Security Service API),各种应用通过GSSAPI调用库函数,完成身份验证、加密等工作。
4、2 各部分的作用和联系
对于局域网的用户、应用、机器之间的通讯,使用Kerberso协议来满足安全需求,KDC作为密钥分发中心负责安全域内所有安全实体的身份验证;
对于广域网内的用户,需要到企业CA申请安全证书,以后访问企业资源时,必须出示证书,验证通过后才能进入;
DC作为企业的标识管理中心,存放包括计算机用户帐户、WEB用户帐户、应用程序帐户等标识信息,同时还存储所用用户的权限列表、企业的安全策略。用户身份验证后,从DC上获得其权限列表,并结合资源的访问策略共同决定用户的操作权限。所有这些操作过程都通过GSSAPI调用实现。
下面再具体对本发明作进一步说明。
1.系统架构
整个系统从逻辑上可以分作四层:见图7
1)内核层:采用基于JMX的微内核技术,已经实现了即插即用组件的管理框架;
2)传输层:采用JMX Remoting和GSSAPI库,分离网络传输和安全协议,并可以根据需要动态的插入不同的协议实现。
3)服务层:所有的基础模块和功能模块按照SOA规范进行封装成ServiceBean,向ESB进行注册;并且按照JMX的MBean规范设计接口,保证MBeanServer可以动态装载、管理这些Service Bean;
4)应用层:所有模块在此暴露其接口,通过用户界面进行调用、管理。
5)服务总线:以软件总线的形式贯穿这个系统,系统内的所有服务组件都在此注册,负责管理不同组件之间的路由、状态管理,隐藏组件的位置、平台、协议、编程语言等细节。
2、基于JMX的即插即用和可视化管理
在本发明中对JMX整个架构分三层实现,设备层、代理层、分布服务层:见图4
设备层:这一层是被管理资源驻留的地方,每个被管理资源按照MBean的接口规范进行定义和实现;具体定义方式见图8
1)所有的模块以SOA的Service模式进行设计开发;
2)对每个Service,再按照MBean的规范进行封装,使用统一的方法进行操作或修改;
如本系统规定,所有的属性都通过getAttribute/setAttribute来读取;
可执行的操作通过Invoke方法调用;
事件传播使用Notification、NotificationListener实现;
描述MBean信息的辅助元数据,必须实现MBeanInfo接口;
3)这些标准的资源就可以被MBean Server自动发现、读取属性、执行操作;
4)提供的信息对于用户是好理解的,用户很容易判断管理界面所提供信息的含义。
代理层:代理层位于被管理资源和管理者之间,用来管理资源,为了能够实现远程管理,还实现连接器和协议适配器;协议适配器是用来把MBean信息转换成符合特定信息的视图,如HTTP适配器可以使得Mbean信息在Web页面上进行显示。
通过Installer Service(动态加载服务),本系统实现了即插即用的控件管理。详细原理如图9,即插即用。
1)在JMX内植入一个Installer Serivce来实现控件的即插即用管理;
2)每个需要发布的类有两个部分组成,一个XML格式的文本文件叫做Descriptor(描述符),服务的二进制代码如java的jar包。
3)部署时先把Descriptor(描述符)发给Installer Service,Service收到这个文本文件后,解析其中内容,获得代码的URL,下载该代码包并实例化该组件,然后再Mbean Server中注册,随后,这个新的组件就可以被调用,同时可以被管理。并且Installer Service实现了多种协议,包括Http、Https以确保代码的安全、可靠。
分布服务层:为了保证所有的JMX信息都能不受限制的传递,本系统在这一层中集成了JMX REMOTING技术,把传输协议分离出来,独立于其他层单独实现,这样就可以随时插入需要的协议实现。
具体实现步骤如下,参见图10:即插即用示意图
1)在系统控制中心有一个Provisioning Warehouse(版本库),所有的组件在这里集中注册、保存各种版本的副本;
2)控制中心、工作站、组件会在管理员的界面上以节点的形式表示;
3)当要发布新的组件、或升级旧的组件时,管理员在图形界面上以拖拉的方式进行操作;
4)控制中心接到指令后,先把组件的Descriptor(描述符)文件下发给工作站;
5)工作站接到这个文件后,把它交给Installer Service模块;
6)Installer Service对文件解析,得到地址信息;
7)Installer Service服务模块从控制中心的代码库中下载组件的二进制包;
8)因为这些组件严格按照MBean接口规范定义,MBean Server会立即对组件进行实例化,并采集信息;
9)采集到的信息通过协议适配器进行格式转换,再由连接器以多播的形式发布给感兴趣的监控台;
10)监控台上立即显示出这些组件的状态,可配制的属性、可执行的操作。
3.利用松散的域模型集中管理用户验证与授权
在确保数据安全之后,本系统采用了符合LDAP标准的产品,把所有的用户信息、策略设置集中存放在企业的目录服务数据库中,集中控制用户的授权。
见图11,域结构示意图:
1)整个系统采用单域模型,整个企业范围定义一个根域,根据地理属性或职能属性划分不同的子域。
2)域控制器作为KDC(密钥分发中心),对局域网内的安全实体进行验证;域控制器作为企业CA(证书颁发中心),对广域网内的安全实体进行验证;
3)所有的企业信息,如用户权限、安全策略全部存放在根域控制器中,所有的域控制器之间相互信任;所有配置、修改工作都在根域控制器上进行,然后自动分发到各个站点,在整个企业范围内生效。
4)各种资源包括主机、数据库、应用程序、甚至函数都定义自己的安全需求,根据安全实体的权限来允许或禁止用户的访问;
5)利用这种松散的域结构,大大简化了维护企业信息安全、集中管理的技术复杂性。
2.安全控制过程
分布式系统需要面对用户认证、数据完整性、数据私有性、用户授权四个方面的挑战,现在流行的解决方案可以分成两大类。一种是基于对称加密算法的Kerberos安全架构,另一种是基于非对称加密算法的PKI架构;这两种方法都提供了完整的认证、完整性、私有性的解决方案,但这两种方法都有不同程度的不足。
Kerberos架构的对称加密算法具有效率高,消耗资源少,可以依赖简单的密码产生密钥等优点,但是通讯中的安全个体都要信任KDC,并且每个个体和KDC之间都有共享一个密钥;这不可避免的引起了密钥分发的问题。
基于非对称算法的PKI架构,完美的解决了公钥分发的问题,但是PKI架构中的密钥一般都是512或者1024位,无论加密还是解密都需要消耗大量的资源、效率差,甚至必须提供专门的硬件才能满足效率需求。
本系统综合了两种流行方案的优点,所有的安全个体都需要从公司的企业CA申请证书,个体间通讯之前根据证书进行身份验证,验证通过后,使用对称加密算法对数据进行加密,而加密密钥利用用户的公钥进行保护传递;采用这种方法,既可以安全的分发密钥,同时保证了加密算法的效率。见图12,安全交互示意图:
1)用户登录系统,向KDC发送证书和TGT请求,请求用用户的私钥进行数字签名;
2)KDC先检查证书来验证用户,然后检查签名确认数据没有被篡改;检查通过后KDC产生会话秘钥、TGT,连同KDC的证书、数字签名发给用户;
3)用户验证KDC身份,检查数字签名,检验通过后得到了和KDC的会话秘钥
4)当用户需要访问其他服务器或程序时,需要从KDC申请针对该服务的ticket;
5)用户向KDC提交TGT,以及ticket申请;
6)KDC验证TGT,产生该服务的ticket,返回给用户,并且用服务器的公钥进行加密;
7)客户把ticket、证书提交给服务器,服务器验证用户,生成和用户之间的会话秘钥,用服务器的私钥进行签名;用用户的公钥加密;
8)用户接到服务器证书,验证服务器身份,验证数据签名,得到会话秘钥;
9)用户和服务器之间开始加密通讯,使用对称加密算法。
4.基于SOA的架构集成工作流、规则引擎
SOA是针对分布式服务的一种开发模式,并没有明确的规范参考。传统的分布式开发,Service Consumer和Service Provider之间是点对点连接。SOA引入一个叫做ESB(企业服务总线)的基础设施,它支持多种协议,提供独立于实现的接口定义标准。
引入ESB后,Service Provider和Serivce Consumer之间的耦合解除,两个系统可以独立开发,不用考虑对方的平台、编程语言。真正的实现了分布系统集成。总线结构大大减少了需要维护的连接数量。参见图3,SOA架构
基于SOA,把异构系统集成到工作流引擎,规则引擎上,提供业务流程管理。工作流引擎在技术世界里已经存在很长时间,但传统的工作流技术只能用在单一的软件产品内。直到Web Service的出现,特别是SOA架构的提出,才使得不同厂家、不同平台的应用集成到一个工作流引擎上成为可能。
具体技术细节,见图5,SOA、BPM(Business Process Management业务流程管理)
1)对企业的遗留系统按照SOA的要求进行重构,提取出功能独立的并符合Mbean规范的Service Bean;
2)这些Service Bean在SOA的ESB上进行注册;
3)使用支持Service的工作流引擎,根据企业的业务流程,对这些Service进行选择、排序,生成流程图;
4)整个流程的推进由工作流引擎驱动,引擎根据流程图调用相应的服务,并根据返回结果判断下一步前进方向;
5)遗留系统、新系统不用考虑彼此间的通讯协议、连接方式、连接状态,只需要把调用请求提交给ESB,剩下的工作全由ESB代理;请求方只需要关心返回结果就可以了;
6)对于各个应用内部设计到的业务规则,可以进一步的提取成规则对象,保存到规则库中;
7)应用程序只需要构造数据对象,然后把它丢给规则引擎,规则引擎负责用相应的规则交验这些数据,返回结果。

Claims (11)

1.一种媒体发布系统,包括服务提供者模块、服务消费者模块,其特征在于,还包括:
内核层,采用即插即用组件的管理框架;
传输层,采用远程JMX和GSSAPI库,分离网络传输和安全协议,并根据需要动态的插入不同的协议实现;
服务层,所有的基础模块和功能模块按照SOA规范进行封装,向服务总线ESB进行注册;并且按照JMX的MBean规范设计接口,保证MBean Server动态装载、管理Service;
应用层,所有模块在此暴露其接口,通过用户界面进行调用、管理;
服务总线,以软件总线的形式贯穿整个系统,系统内的所有服务组件都在此注册,负责管理不同组件之间的路由、状态,隐藏组件的位置、平台、协议、以及编程语言。
2.如权利要求1所述的媒体发布系统,其特征在于,内核层包括设备层、代理层、分布服务层,其中:
设备层,用于驻留被管理资源,每个被管理资源按照MBean的接口规范进行定义和实现;
代理层,位于被管理资源和管理者之间,用来管理资源;
分布服务层,用于集成了JMX REMOTING技术,分离出传输协议,独立于其他层单独实现,实现随时插入需要的协议,并保证所有的JMX信息无限制的传递。
3.如权利要求2所述的媒体发布系统,其特征在于,代理层还包括连接器和协议适配器,以实现远程管理,并把MBean信息转换成符合特定信息的视图。
4.一种媒体发布方法,其特征在于,该方法包括:
(1)采用即插即用组件的管理框架设置一内核层;
(2)采用远程JMX和GSSAPI库,分离网络传输和安全协议,并根据需要动态的插入不同的协议实现;
(3)所有的基础模块和功能模块按照SOA规范进行封装,向服务总线ESB进行注册;并且按照JMX的MBean规范设计接口,保证MBean Server动态装载、管理Service;
(4)暴露所有模块的接口,通过用户界面进行调用、管理;
(5)以软件总线的形式贯穿整个系统,系统内的所有服务组件都在此注册,负责管理不同组件之间的路由、状态,隐藏组件的位置、平台、协议、编程语言。
5.如权利要求4所述的媒体发布方法,其特征在于,所述步骤(1)包括:
(51)设置一设备层,用于驻留被管理资源,每个被管理资源按照MBean的接口规范进行定义和实现;
(52)设置一代理层,位于被管理资源和管理者之间,用来管理资源;
(53)设置一分布服务层,用于集成了JMX REMOTING技术,分离出传输协议,独立于其他层单独实现,实现随时插入需要的协议,并保证所有的JMX信息无限制的传递。
6.如权利要求5所述的媒体发布方法,其特征在于,所述步骤(51)具体包括:
(61)所有的模块以SOA的Service模式进行设计开发;
(62)对每个Service,再按照MBean的规范进行封装,使用统一的方法进行操作或修改。
7.如权利要求6所述的媒体发布方法,其特征在于,所述步骤(62)中所述按照MBean的规范进行封装包括:所有的属性都通过MBean Server的方法getAttribute和setAttribute来读取;可执行的操作通过MBean Server的方法Invoke来调用;事件传播使用通告Notification、通告监听器NotificationListener实现;描述MBean信息的辅助元数据,必须实现MBeanInfo接口。
8.如权利要求5所述的媒体发布方法,其特征在于,所述步骤(52)还包括:
(81)在JMX内植入一个安装服务Installer Serivce来实现控件的即插即用管理;
(82)每个需要发布的类有两个部分组成,一个XML格式的文本文件叫做部署脚本Descriptor,和一个包含java类的二进制代码包;
(83)部署时先把Descriptor发给Installer Service,Installer Service收到这个文本文件后,解析其中内容,获得代码的URL,下载该代码包并实例化该组件,然后在Mbean Server中注册,随后,这个新的组件就被调用,同时被管理。
9.如权利要求8所述的媒体发布方法,其特征在于,所述步骤(53)具体包括:
(91)在系统控制中心有一个组件分发仓库Provisioning Warehouse,所有的组件在这里集中注册、保存副本;
(92)控制中心、工作站、组件会在管理员的界面上以节点的形式表示;
(93)当要发布新的组件、或升级旧的组件时,在图形界面上以拖拉的方式进行操作;
(94)控制中心接到指令后,先把组件的Descriptor文件下发给工作站;
(95)工作站接到这个文件后,把它交给Installer Service模块;
(96)Installer Service对文件解析,得到地址信息;
(97)Installer Service服务模块从控制中心的代码库中下载组件的二进制包;
(98)MBean Server对组件进行实例化,并采集信息;
(99)采集到的信息通过协议适配器进行格式转换,再由连接器以多播的形式发布给感兴趣的监控台;
(910)监控台上立即显示出组件的状态,可配制的属性、可执行的操作。
10.如权利要求4所述的媒体发布方法,其特征在于,所述步骤(2)还包括:所有的安全个体申请证书,个体间通讯之前根据证书进行身份验证,验证通过后,使用对称加密算法对数据进行加密,而加密密钥利用用户的公钥进行保护传递。
11.一种权利要求4所述的媒体发布方法,其特征在于,包括如下步骤:
(111)按照SOA的要求进行重构企业的遗留系统,把各专业应用分解成一个或多个服务,以服务组件Service Component的形式存在于系统中,并利用上一部分的“即插即用”功能,在SOA的ESB上进行注册,动态管理;
(112)使用支持Service的工作流引擎,根据企业的业务流程,对Service进行选择、排序,生成流程图;整个流程的推进由工作流引擎驱动,引擎根据流程图调用相应的服务,并根据返回结果判断下一步前进方向;因为采用SOA,各种系统不用考虑彼此间的通讯协议、连接方式、连接状态,只需要把调用请求提交给服务总线Service Bus,剩下的工作全由Service Bus代理;
(113)对于专注于特殊功能的应用,把其中的处理规则从代码中剥离出来,放到规则引擎中,把公司策略从应用中分离出来,并且可被其他应用重用。
CNB2005100862733A 2005-08-23 2005-08-23 一种媒体发布系统及方法 Expired - Fee Related CN100488199C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2005100862733A CN100488199C (zh) 2005-08-23 2005-08-23 一种媒体发布系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2005100862733A CN100488199C (zh) 2005-08-23 2005-08-23 一种媒体发布系统及方法

Publications (2)

Publication Number Publication Date
CN1741525A CN1741525A (zh) 2006-03-01
CN100488199C true CN100488199C (zh) 2009-05-13

Family

ID=36093738

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100862733A Expired - Fee Related CN100488199C (zh) 2005-08-23 2005-08-23 一种媒体发布系统及方法

Country Status (1)

Country Link
CN (1) CN100488199C (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100459551C (zh) * 2006-06-30 2009-02-04 华为技术有限公司 一种减轻企业服务总线负荷的系统和方法
EP2360586B1 (en) * 2010-02-15 2018-08-22 Accenture Global Services Limited Open gateway framework for a service platform architecture
CN102609261B (zh) * 2012-02-10 2017-07-28 天津市电力公司 智能电网可视化的视图集成控制方法
CN104506486B (zh) * 2014-11-15 2018-04-27 北京锐安科技有限公司 一种跨平台、跨语言的高安全级别的软件服务接口调用方法和系统
US10469464B2 (en) * 2015-06-09 2019-11-05 Intel Corporation Self-configuring key management system for an internet of things network
CN105007304B (zh) * 2015-06-09 2019-04-12 杭州闪捷信息科技有限公司 基于soa架构的企业信息技术系统数据的交换与整合系统
CN106331080A (zh) * 2016-08-19 2017-01-11 明算科技(北京)股份有限公司 基于soa的资源协作系统和方法
CN107577541A (zh) * 2017-09-05 2018-01-12 浪潮通用软件有限公司 一种应用及一种组件的调用方法
CN108491265A (zh) * 2018-03-06 2018-09-04 中国船舶重工集团公司第七二四研究所 一种基于软总线的负载均衡计算资源调度方法

Also Published As

Publication number Publication date
CN1741525A (zh) 2006-03-01

Similar Documents

Publication Publication Date Title
CN100488199C (zh) 一种媒体发布系统及方法
JP7000442B2 (ja) ブロックチェーンクラウドサービスのためのインターフェイスを提供するためのシステムおよび方法
CN101127606B (zh) 传输数据对象的方法和装置
CN102025710B (zh) 多应用智能卡及智能卡多应用管理系统和方法
CN112583802B (zh) 基于区块链的数据共享平台系统、设备以及数据共享方法
EP1934827B1 (en) System and methods for secure service oriented architecture
CN100502307C (zh) 一种集中用户安全管理方法及装置
US9946984B2 (en) System and method for transporting a document between a first service provider and a second service provider
CN101729541B (zh) 多业务平台的资源访问方法及系统
CN113114498B (zh) 一种可信区块链服务平台的架构系统及其构建方法
CN106411857A (zh) 一种基于虚拟隔离机制的私有云gis服务访问控制方法
CN106302334A (zh) 访问角色获取方法、装置及系统
CN101296230B (zh) 基于PKI和PMI的Web服务安全控制方法
CN107070894A (zh) 一种基于企业云服务平台的软件集成方法
CN106911627A (zh) 一种基于eID的真实身份安全控制方法及其系统
CN104580081A (zh) 一种集成式单点登录系统
Le et al. Resource sharing and trading of blockchain radio access networks: Architecture and prototype design
CN101789973A (zh) 一种构建糅合应用的方法及系统
Papaioannou et al. Using mobile agents to improve the alignment between manufacturing and its IT support systems
Lin et al. User-managed access delegation for blockchain-driven IoT services
CN110493175A (zh) 一种信息处理方法、电子设备和存储介质
Meinecke et al. Modeling Federations of Web Applications with WAM
CN106060032B (zh) 用户数据整合与再分配方法及系统
CN103533053B (zh) 一种开放应用程序编程接口的审批方法、服务器及系统
CN113821813B (zh) 一种基于点对点网络进行跨部门高效协同的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090513

Termination date: 20200823

CF01 Termination of patent right due to non-payment of annual fee