一种策略驱动的移动中间件开发方法

文档序号:6650721阅读:149来源:国知局
专利名称:一种策略驱动的移动中间件开发方法
技术领域
本发明是一种分布式计算和软件开发技术的解决方案。主要用于解决移动中间件的开发和应用问题,属于分布式计算和软件工程学技术交叉领域。
背景技术
移动中间件技术是随着Internet(因特网)的发展而出现的一种新兴技术,它较好的适应了Internet的特点,有效简化分布式系统的设计、实现和维护。一般来讲,移动中间件是指一个独立的计算机软件实体,它按照一定的规程,能够自主的在异构的网络上移动,代表用户完成特定的任务。移动中间件的优势主要有两点一方面,它实现了计算向所需资源的靠拢,这可以节省网络的带宽并具有异步功能;另一方面,允许程序动态发布到主机。由于移动中间件的诸多优点,它在电子商务、网络管理、移动计算、Internet信息的智能检索等方面都有较好的应用前景,对移动中间件技术的研究正成为学术界和工业界的热点之一。
移动中间件的关键技术包括移动机制、通讯机制以及安全机制,目前现有的移动中间件的平台有IKV++提供的Grasshopper、IBM公司的Aglet等等。由于移动中间件的移动机制、通讯机制以及安全机制都非常依赖于移动中间件平台的支持,因而当前,在一个基于移动中间件的应用中,通常只能使用一种移动中间件平台,如果要将某个移动中间件平台环境下开发的应用移植到其它平台上,需要对代码进行大量修改,甚至需要重新开发。
移动中间件的移动机制通常可以分为基础移动机制和高级移动机制。前者指基本的迁移能力,由底层平台提供;后者指迁移中涉及到的路由选择等能力,由移动中间件自身提供。由于具有基础迁移能力,移动中间件在执行时其代码中的控制流非常容易发生混乱,从而陷入不可知的状态。移动中间件在很多应用中都存在着进行高级迁移的需求,但是目前各种移动中间件平台都不支持动态配置的高级迁移方法。
由于各种移动中间件平台之间通讯机制的差异,不同平台的移动中间件之间通常不能进行信息的交互。基于CORBA(Common Object Request BrokerArchitecture,通用对象请求代理体系结构)的移动中间件平台可以解决不同平台之间的互联问题,但不能解决互通问题,虽然业界对交互语言的规范化进行了深入的研究,但是由于其复杂性使其难以广泛投入实际应用中。
移动中间件的安全机制对于该技术的广泛应用非常重要,但是由于不能动态的配置和更新安全机制,静态配置方法使得目前移动中间件的应用范围受到极大的限制。

发明内容
技术问题本发明的目的是提供一种使用策略驱动的移动中间件以及开发策略驱动移动中间件的整个方法流程,用于解决当前移动中间件应用范围狭窄、开发困难等问题。本发明可显著的提高移动中间件的应用能力,并降低移动中间件应用的开发成本。
技术方案本发明是一种策略性方法,可以应用于各种现有的移动中间件平台,也可根据本发明开发全新的移动中间件平台。本发明通过将策略引入到移动中间件的开发中,其目标是通过功能简单的策略的组合来构建功能复杂的移动中间件,动态的改变移动中间件的能力,降低移动中间件的开发难度和存在的安全风险。
实现一种依赖策略来驱动的移动中间件,它应具有如下特征移动中间件的整个生命周期都由策略来驱动,可以在现有的移动中间件平台上实现;策略在移动中间件的整个生命周期中其形态不断发生改变;移动中间件可以动态的载入或裁剪各种用途的策略,改变自身的大小和功能。
本发明中的策略定义为构成移动中间件,并指导移动中间件整个生命周期的方法和规则。图1给出了使用策略驱动移动中间件的整个过程。在这个过程中,策略外在的表现形态是发生变化的,但其内在的实质是不变的。策略的形态主要有高层、中间层、低层3个层次的变化,与移动中间件的形成过程紧密关联。
策略在语义上可以分解为描述执行背景的策略条件和描述执行动作的策略行动,例如策略“如果完成了任务就迁移到下一主机”,可分解为策略条件“完成了任务”和策略行动“迁移到下一主机”,当满足策略条件时就执行策略行动。这样,可以将一条简单的策略分解为一个或多个策略条件和策略行动,由它们相互关联形成一条策略,多条简单策略可以组合成为一条复杂策略。我们将策略分解的最小单位策略条件和策略行动均称为策略颗粒,它包括条件策略颗粒(策略条件)和行动策略颗粒(策略行动)。
使用策略驱动移动中间件,即是用策略来指导移动中间件的行动方法,使用到的策略不仅包括用于指导移动中间件完成移动中间件基本功能的策略,也包括指导移动中间件完成特定任务的策略。我们首先将策略分为以下几种功能策略指用于实现具体任务的策略,如完成网络管理功能的策略、完成电子交易的策略等,这些策略决定了移动中间件的主要功能和能力。
迁移策略指与移动中间件的迁移行为相关的策略,包括基本的迁移策略(移动中间件的指定目的迁移)、高级的迁移策略(如路由选择策略)等。
安全策略指与移动中间件安全相关的策略,用来保护移动中间件抵御可能存在的安全威胁,包括访问控制策略、鉴权策略、加密策略、可信节点选择策略等等。
方法流程策略驱动的移动中间件开发方法所包含的步骤步骤1).进行需求分析,将结果表示为类似“如果满足……条件,执行……行动”形式的高层策略;步骤2).将步骤1中得到的高层策略进行分解和归纳,生成高层表示的策略颗粒,包括策略条件和策略行动;步骤3).依赖于步骤2)所得到的结果,将高层策略颗粒翻译成粒度更细小的中间层策略颗粒,中间层策略的表示符合特定的标准;步骤4).将步骤3)产生的中间层策略颗粒存储到策略仓库中,并将策略颗粒进行组合,形成完整策略的同时将策略颗粒之间的关联存储到策略仓库中;步骤5).若已经存在某移动中间件平台相应的移动中间件框架代码和移动中间件生命周期控制逻辑,直接转入步骤7),否则继续执行步骤6);步骤6).选择一种或多种移动中间件平台,开发该平台下的移动中间件框架代码和移动中间件生命周期控制逻辑,本步骤可以与步骤1)同时开始,并独立于其它步骤;步骤7).根据移动中间件框架代码使用的移动中间件平台,将步骤4)产生的中间层策略颗粒翻译成低层的策略代码;步骤8).集成移动中间件框架代码和低层策略代码,进行测试,如果通过,说明步骤7)完成正确继续步骤9),否则转步骤7)重新翻译;步骤9).如果网络中已经部署移动中间件生命周期控制逻辑、策略仓库和移动中间件平台,则转步骤11),否则继续执行步骤10);步骤10).在网络中部署移动中间件生命周期控制逻辑、策略仓库和移动中间件平台;步骤11).向移动中间件指派高层策略;步骤12).通过移动中间件生命周期控制逻辑启动移动中间件;步骤13).移动中间件初始化,根据步骤11)指派的高层策略获取相应的中间层策略或低层策略、策略索引,保存到数据区的策略信息库中;步骤14).移动中间件执行迁移策略,在网络中进行迁移,到达下一个部署了移动中间件平台的网络节点;步骤15).移动中间件执行基本的策略代码;步骤16).如果发现所需要策略的可执行代码不存在于自身的策略信息库中,则通过外部策略访问器从网络中的策略仓库获得相应的策略;步骤17).继续执行策略代码,顺序是先执行安全策略,通过安全认证之后再执行功能策略以完成高层赋予的任务;步骤18).如果执行功能策略或安全策略的过程中,发现外部环境满足迁移策略定义的策略条件,则转步骤14)执行;步骤19).在每条功能策略执行完毕之后,检查该功能策略是否不再使用,如果不再使用丢弃该策略以减少自身大小;步骤20).如果移动中间件执行某功能策略销毁自身,则移动中间件整个生命周期结束;步骤21).移动中间件在当前主机执行完所有预定功能策略之后,转步骤14)执行,或者返回源地址。
策略驱动移动中间件的开发过程具体如下步骤一制定描述性语言的高层策略。首先要根据需要完成任务需求,将移动中间件需要完成的任务描述出来,使用人们易于理解的习惯语言来表述,选择类似于“当……时/之后,就……”这样的语法形式。例如需求“当访问节点的CPU使用率超过80%时,就进行自身迁移”,“当获得策略信息之后,就对获得的信息进行加密”。然后将高层策略进行细分和归纳,将含义相同或类似的策略条件/策略行动归纳为一条条件策略颗粒/行动策略颗粒,这样就获得粒度较大的、高层形式表示的策略颗粒。这一步的主要工作实质等同于需求分析和总体设计,但是其结果不是表示为普通的图标或文字,而是表示成易于理解的高层策略的形式。
步骤二将高层策略翻译成中间层策略。高层策略的表示取决于需求分析人员的习惯,低层策略的表示取决于编程语言的细节,它们在事实上都难以产生统一的标准。而中间层策略是独立于高层描述和低层编码实现的表示,使用中间层策略开发具体的移动中间件符合中间件的开发要求,可以向下屏蔽低层不同的移动中间件平台实现细节,并向上屏蔽不同的高层开发方法。中间层策略使用统一的标准来表示,目前业界可用的标准有IETF(Internet Engineering Task Force,互联网工程任务组)制定的策略核心信息模型及其扩展,DMTF(DistributedManagement Task Force,分布式管理任务标准协会)的CIM(Common InformationModel,公共信息模型)中策略信息模型,英国伦敦帝国大学的PONDER语言等。中间层策略的特征是将高层策略颗粒分解为功能更加具体、粒度更加细小的中间层表示的策略颗粒,通过多个策略颗粒的相互关联可形成一条特定含义的策略。策略颗粒可以是多条策略共有的(可复用的),也可以是某条策略特有的(不可复用的)。
我们使用策略仓库来存储策略颗粒,并将策略颗粒之间的关联方法也存储到策略仓库中,从而将策略存储在策略仓库中。策略仓库可以使用关系数据库或者目录等,前者将策略(策略颗粒与关联信息)存储在关系表中,后者将策略颗粒存储在叶结点条目中,在策略颗粒的上级条目中,将关联信息存储在条目或者转化为上下级包含关系。策略仓库还可同时用于存储与移动中间件相关的其它信息。
步骤三将中间层策略翻译为低层策略。低层策略是面向特定设备、基于特定语言的策略,移动中间件一般可以在主机上直接执行低层策略。中间层策略到低层策略的翻译采取一对一类型翻译的方式,每种类型的策略颗粒对应一条存储在策略仓库中的代码,在翻译时根据中间层策略的策略颗粒的组成,直接从仓库中取出低层策略代码片断,再组合成一条完整的低层策略。低层策略的表现形式是高级语言编写的代码,它与上层的策略颗粒一一对应。代码通常依赖于移动中间件平台的实现细节,由中间层策略可以映射出多种依赖于不同移动中间件平台的低层策略。
步骤四将策略融入到移动中间件框架中形成完整的移动中间件。首先是功能策略的融入,根据目前业界的现状,将功能策略融合到移动中间件框架中有两种方法。其一,将低层策略代码加入到移动中间件框架代码中,即将两者合为一体形成功能特定的移动中间件,这种方法适用于在现有的移动中间件平台上进行开发。其二,不将所有低层策略直接加入到移动中间件框架代码中,为了保证移动中间件的执行效率,只将常用的低层策略代码加入到框架代码中,而对其它策略建立功能策略索引,指明这些策略的位置和访问方法等;移动中间件携带功能策略索引和功能策略代码,或者只携带功能策略索引,在需要时可远程访问可执行的策略代码。第二种方法实现灵活,功能策略可以动态的增减,移动中间件的功能就可以动态的增强或裁减。但是现有的移动中间件平台实现比较复杂,最佳的选择是开发出支持这种方法的新型的移动中间件平台。
迁移策略和安全策略使用建立普通策略索引的方法,移动中间件在执行环境中将根据当前状态和普通策略索引动态的选择和载入所需的策略。
步骤五在网络中部署基于策略驱动的移动中间件应用的基础设施。如图2所示,一个典型的该类应用通常需要下面几个部件(1)移动中间件生命周期控制逻辑负责发起和控制整个应用中的移动中间件的生命周期,选择策略来生成/驱动移动中间件。策略驱动的移动中间件是应用主要的功能载体,在各个网络节点之间进行迁移,在到达目的节点之后在移动中间件平台的支撑下完成特定的任务。
(2)策略仓库存储策略信息以及移动中间件相关信息,向应用主控程序和移动中间件提供策略检索等功能。
(3)移动中间件平台部署在各种具有可执行能力的网络节点上,向移动中间件提供基本的服务设施,包括移动中间件的执行环境、迁移支持、安全保护支持等。
部署完基础设施之后就可以开始使用策略驱动的移动中间件执行软件应用。体系结构图3给出了典型的使用策略驱动方法开发的移动中间件的体系结构,具有策略驱动的移动中间件的典型特征。与传统的移动中间件体系结构相比较,该体系结构具有策略映射逻辑、策略执行逻辑、策略信息库和外部策略访问器四个模块,这四个模块由移动中间件主控模块统一进行控制。
下面给出这几个模块的具体说明策略映射逻辑根据存储在移动中间件私有数据区的策略索引以及策略获取策略,或从自身的策略信息库或者外部策略访问器来获取策略,并根据策略执行逻辑的需要,将获得的策略映射成可执行的低层策略。
策略执行逻辑对策略映射逻辑传递过来的策略,在移动中间件平台的支持下执行。策略执行逻辑的能力依赖于移动中间件平台提供的服务设施,该模块具有向移动中间件其它模块屏蔽移动中间件平台的功能。
策略信息库策略信息库某种结构(例如树状结构)组织和存储策略颗粒,它的规模很小,主要存储常用的策略信息。策略映射逻辑和外部策略访问器可以直接访问策略信息库,并且可以动态的更新策略信息库中的内容。
外部策略访问器移动中间件通过外部策略访问器可以检索网络节点上的策略仓库,通常这些策略仓库提供目录服务或者数据库访问服务。外部策略访问器提供策略检索、下载、上传等功能。外部策略访问器通常由策略映射逻辑调用。
有益效果本发明方法提出了策略驱动移动中间件的新型开发方法,以及使用该方法开发出的新型策略驱动移动中间件的体系结构。本发明使用简单的策略颗粒组合形成复杂的移动中间件,具有如下一些显著优点,都是目前其它移动中间件及其开发方法所不具备的(1)实现功能的细分和降低开发难度使用策略驱动的方法,将复杂的移动中间件功能分解为简单的策略颗粒,功能的细分增加了任务执行和分派的合理性,减小了传统移动中间件任务集成的开发难度,提高了开发的效率。同时,开发出来的策略颗粒可以很方便的被复用于各种功能的移动中间件,极大的提升了代码的可复用性。
(2)提高应用开发的抽象性策略具有高度的抽象能力,并且可以从高层策略到低层策略保持功能上的一致性。一方面,在生成实际的移动中间件应用时,可以直接在高层通过管理、指派高层策略来定制应用,屏蔽了复杂的低层代码实现,无需程序员的干涉;另一方面,可以通过将标准的中间层策略映射成不同平台相应的低层策略代码,降低多平台移动中间件应用开发的工作量。
(3)动态形成和改变移动中间件的功能可以通过功能策略的不同组合动态的生成不同能力的移动中间件,去完成各种各样的任务。移动中间件还可以通过更新策略来动态的增加或删减自身的功能,极大的增强移动中间件对网络环境和任务需求的适应能力。
(4)提高移动中间件的安全性通过动态的更新移动中间件的安全策略和迁移策略,可以及时和有效的保护移动中间件抵御网络环境中的各种安全威胁。移动中间件可以不需要明显增加自身大小,仅根据需要从外部策略仓库获取安全策略来应对不同的状况。
(5)提供移动中间件相互之间的交互能力目前各种移动中间件之间缺乏简单、标准的信息交互语言,可以将标准的中间层策略作为移动中间件之间信息交互的语言。对于某平台的移动中间件,只需要将获得的中间层策略翻译成自己相应的低层策略,就可以与其它平台的移动中间件进行交流。


图1是策略驱动移动中间件应用示意图。自上而下表示典型的策略驱动移动中间件开发的整个流程。
图2是策略驱动移动中间件应用部署示意图。表示使用本发明方法的应用部署时包括的组件示例。
图3是策略驱动的移动中间件的结构示意图。表示本发明方法中一种典型的策略驱动的移动中间件的体系结构。
具体实施例方式
为了方便描述,我们假定有如下应用实例开发一个基于移动中间件的网络管理应用,应用的基本需求是在网络管理站创建移动中间件,并将它派遣到网络中的各个被管理节点,并在被管理节点主机本地执行网络管理任务。
具体实施方案为(1)开发人员根据需求创建实现网络管理功能的初步高层策略(总体设计);(2)开发人员将高层策略归纳和分解生成功能具体、细小的策略颗粒,以高层策略形式表示(详细设计);(3)开发人员将高层策略颗粒翻译和分解生成粒度更加细小、功能更加具体的中间层形式的策略颗粒,它符合IETF的CIM相关规范,并将中间层策略颗粒存储到策略仓库目录D(代号)中,同时存储各策略颗粒组合形成策略的关联信息;(4)开发人员选择移动中间件平台如Grasshopper平台,开发可以动态嵌入策略的移动中间件框架代码和独立的移动中间件生命周期控制逻辑,此步骤可以与具体实施方式
(1)(2)(3)同时进行;(5)网络管理人员根据需要,在网络节点主机上部署网络管理站、策略仓库和移动中间件平台;(6)网络管理人员根据相应的网络管理需求,从高层指派给移动中间件A(代号,此时A并未被真实创建)若干具体的网络管理策略(功能策略、迁移策略和安全策略);(7)网络管理站应用程序调用移动中间件生命周期控制逻辑,创建移动中间件A,此时A开始整个生命周期;(8)移动中间件A初始化,根据策略列表访问目录D,获得必要的策略存储到自身的策略信息库中,主要包括功能策略和常用的安全策略、迁移策略;(9)A开始执行预定的功能策略,在移动中间件平台的支撑下开始迁移;(10)A到达目的地管理主机I(代号),并在当地移动中间件平台的支撑下开始执行网络管理任务;(11)A执行基本的安全策略,发现主机I是可信任节点,即主机I通过安全认证;
(12)A执行功能策略,使用SNMP(Simple Network Management Protocol,简单网络管理协议)协议访问主机I上的SNMP代理,获得主机I所在网段的流量信息,进行样本统计运算,将结果保存到私有数据区中;(13)A发现功能策略“当主机I通过认证后,收集主机I所在网段流量的样本统计信息”已经不再需要,动态的卸载这条策略相关的代码以减少自身大小;(14)A通过自身的环境监测接口发现主机I的CPU使用率已经到达85%,执行迁移策略“当主机的CPU使用率超过80%时立即迁移到其它节点”,根据选路策略确定下一目标节点,开始迁移;(15)A到达中间节点主机II(代号),在本地移动中间件平台的支撑下开始执行;(16)A执行基本的安全策略,发现主机II可信任级别较低,在通过所有基本安全策略认证之后,还需要通过某高级安全策略的认证;(17)A通过自己的外部策略访问器向目录D请求该高级策略,使用安全的LDAP(Lightweight Directory Access Protocol,轻量目录访问协议)协议获得该高级策略;(18)A执行该高级策略成功,主机II通过安全认证;(19)主机II通过访问接口向移动中间件A请求访问A携带的网络管理站信息和访问节点信息,A遍历策略信息库找不到相应的处理策略;(20)A通过自己的外部策略访问器使用LDAP协议访问目录D,检索对主机II发出请求的处理策略;(21)A从目录D获得相应的功能策略,动态的增加功能策略改变自身的能力;(22)A对主机II的请求进行应答,允许主机II获得网络管理站的信息,同时拒绝主机II获得访问节点信息;(23)A执行迁移策略进行选路,向下一个目的节点迁移,继续执行网络管理任务;(24)A执行完所有预定的网络管理任务,动态裁剪不再使用的功能策略,并增加安全策略以保护执行任务所获得的数据;(25)A最终迁移回到网络管理站,移动中间件生命周期控制程序将A所携带的数据交给网络管理应用处理,并结束A的整个生命周期。
权利要求
1.一种策略驱动的移动中间件开发方法,其特征在于策略驱动的移动中间件开发方法所包含的步骤为步骤1).进行需求分析,将结果表示为类似“如果满足……条件,执行……行动”形式的高层策略;步骤2).将步骤1中得到的高层策略进行分解和归纳,生成高层表示的策略颗粒,包括策略条件和策略行动;步骤3).依赖于步骤2)所得到的结果,将高层策略颗粒翻译成粒度更细小的中间层策略颗粒,中间层策略的表示符合特定的标准;步骤4).将步骤3)产生的中间层策略颗粒存储到策略仓库中,并将策略颗粒进行组合,形成完整策略的同时将策略颗粒之间的关联存储到策略仓库中;步骤5).若已经存在某移动中间件平台相应的移动中间件框架代码和移动中间件生命周期控制逻辑,直接转入步骤7),否则继续执行步骤6);步骤6).选择一种或多种移动中间件平台,开发该平台下的移动中间件框架代码和移动中间件生命周期控制逻辑,本步骤可以与步骤1)同时开始,并独立于其它步骤;步骤7).根据移动中间件框架代码使用的移动中间件平台,将步骤4)产生的中间层策略颗粒翻译成低层的策略代码;步骤8).集成移动中间件框架代码和低层策略代码,进行测试,如果通过,说明步骤7)完成正确继续步骤9),否则转步骤7)重新翻译;步骤9).如果网络中已经部署移动中间件生命周期控制逻辑、策略仓库和移动中间件平台,则转步骤11),否则继续执行步骤10);步骤10).在网络中部署移动中间件生命周期控制逻辑、策略仓库和移动中间件平台;步骤11).向移动中间件指派高层策略;步骤12).通过移动中间件生命周期控制逻辑启动移动中间件;步骤13).移动中间件初始化,根据步骤11)指派的高层策略获取相应的中间层策略或低层策略、策略索引,保存到数据区的策略信息库中;步骤14).移动中间件执行迁移策略,在网络中进行迁移,到达下一个部署了移动中间件平台的网络节点;步骤15).移动中间件执行基本的策略代码;步骤16).如果发现所需要策略的可执行代码不存在于自身的策略信息库中,则通过外部策略访问器从网络中的策略仓库获得相应的策略;步骤17).继续执行策略代码,顺序是先执行安全策略,通过安全认证之后再执行功能策略以完成高层赋予的任务;步骤18).如果执行功能策略或安全策略的过程中,发现外部环境满足迁移策略定义的策略条件,则转步骤14)执行;步骤19).在每条功能策略执行完毕之后,检查该功能策略是否不再使用,如果不再使用丢弃该策略以减少自身大小;步骤20).如果移动中间件执行某功能策略销毁自身,则移动中间件整个生命周期结束;步骤21).移动中间件在当前主机执行完所有预定功能策略之后,转步骤14)执行,或者返回源地址。
全文摘要
策略驱动的移动中间件开发方法是一种分布式计算和软件开发技术的解决方案。主要用于解决移动中间件的开发和应用问题,实现一种依赖策略来驱动的移动中间件,它应具有如下特征移动中间件的整个生命周期都由策略来驱动,可以在现有的移动中间件平台上实现;策略在移动中间件的整个生命周期中其形态不断发生改变;移动中间件可以动态的载入或裁剪各种用途的策略,改变自身的大小和功能。策略定义为构成移动中间件,并指导移动中间件整个生命周期的方法和规则。策略外在的表现形态是发生变化的,但其内在的实质是不变的。策略的形态主要有高层、中间层、低层3个层次的变化,与移动中间件的形成过程紧密关联。
文档编号G06F9/44GK1776613SQ20051012284
公开日2006年5月24日 申请日期2005年12月6日 优先权日2005年12月6日
发明者王汝传, 黄海平 申请人:南京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1