基于CORBA中间件的轻量级事件服务方法及系统技术方案

技术编号:34894084 阅读:18 留言:0更新日期:2022-09-10 13:53
本发明专利技术提供了一种基于CORBA中间件的轻量级事件服务方法及系统,其中方法包括:建立事件服务模型,基于CORBA对所述事件服务模型进行初始化,建立所述事件提供者和所述事件消费者之间的透明连接;所述事件提供者将事件发送至所述事件服务模型,所述事件服务模型采用推模式异步发送事件的方式,将事件依次发送给与所述事件提供者对应绑定的一个或多个所述事件消费者,实现事件的分发;完成对轻量级事件服务。本发明专利技术采用基于内存的事件缓冲器及基于状态机的事件分发机制,保证事件的分发的实时性;采用推模型的事件分发方式,简化了事件分发的操作步骤及复杂度,解决了分布式系统中软件组件之间异步通信问题。件组件之间异步通信问题。件组件之间异步通信问题。

【技术实现步骤摘要】
基于CORBA中间件的轻量级事件服务方法及系统


[0001]本专利技术涉及高端电子装备
,具体地,涉及一种基于CORBA中间件的轻量级事件服务方法及系统,同时提供了一种相应的终端及计算机可读存储介质。

技术介绍

[0002]CORBA中间件是分布式系统中一种常用的通信中间件,实现异构资源之间跨进程通信。CORBA中间件采用客户端/服务端结构,通过对象请求调用的方式实现客户端与服务端之间的通信。事件服务是系统中必不可少而且非常重要的软件服务,主要解决各个独立软件组件之间事件异步传输问题。并且事件服务必须高实时、高可靠、轻量化的特点,能通过CORBA中间件实现分布式系统中共用的事件实时分发服务。
[0003]当前的分布式系统中的事件服务无法同时满足高实时、高可靠、轻量化的要求,尤其在资源受限的处理器中表现的尤为明显。因此,如何实现一种能够同时满足高实时、高可靠、轻量化要求的事件服务,成为本领域亟待解决的问题。目前没有发现同本专利技术类似技术的说明或报道,也尚未收集到国内外类似的资料。

技术实现思路

[0004]本专利技术针对现有技术中存在的上述不足,提供了一种基于CORBA中间件的轻量级事件服务方法及系统,同时提供了一种相应的终端及计算机可读存储介质。
[0005]根据本专利技术的一个方面,提供了一种基于CORBA中间件的轻量级事件服务方法,包括:
[0006]建立事件服务模型,所述事件服务模型,包括:
[0007]提供者管理对象,用于实现事件提供者与事件通道第一步的连接,为客户端提供获取事件消费者代理的接口;
[0008]事件消费者代理,用于实现事件提供者与事件通道第二步的连接,继承PushConsumer接口;
[0009]事件通道,用于实现事件提供者与事件消费者之间异步传输事件的连接通道;
[0010]事件消费者管理对象,用于实现事件消费者与事件通道的第一步连接,为客户端提供获取事件提供者代理的接口;
[0011]事件提供者代理,用于实现事件提供者与事件通道第二步连接,继承PushSupplier接口;
[0012]其中:
[0013]所述提供者管理对象管理所有的所述事件消费者代理;
[0014]一个所述事件消费者代理对应一个事件提供者;
[0015]所述事件消费者管理对象管理所有的所述事件提供者代理;
[0016]一个所述事件提供者代理对应一个事件消费者;
[0017]基于CORBA对所述事件服务模型进行初始化,建立所述事件提供者和所述事件消
费者之间的透明连接;
[0018]所述事件提供者将事件发送至所述事件服务模型,所述事件服务模型采用推模式异步发送事件的方式,将事件依次发送给与所述事件提供者对应绑定的一个或多个所述事件消费者,实现事件的分发;
[0019]通过以上步骤,完成轻量级事件服务。
[0020]可选地,所述基于CORBA对所述事件服务模型进行初始化,包括:
[0021]通过CORBA的ORB对象,获取RootPOA对象引用;
[0022]基于所述RootPOA对象引用,进行如下操作:
[0023]创建所述事件通道的伺服对象,并配置所述事件通道的伺服对象初始化参数;
[0024]创建所述事件消费者管理对象的伺服对象,并配置所述事件消费者管理对象的伺服对象初始化参数;
[0025]创建所述提供者管理对象的伺服对象,并配置所述提供者管理对象的伺服对象初始化参数;
[0026]激活所述事件通道、所述事件消费者管理对象和所述提供者管理对象的伺服对象,开始进入工作状态;
[0027]创建所述事件通道的对象引用,将所述事件通道的对象引用返回给作为调用者的所述事件消费者代理和/或所述事件提供者代理;
[0028]通过上述步骤,完成对所述事件服务模型的初始化。
[0029]可选地,所述创建所述事件通道的伺服对象,包括:
[0030]构建事件缓冲器,用于暂存正在分发的事件和控制所述事件的收发同步;
[0031]创建事件分发线程,启动事件处理状态机,所述事件处理状态机用于对事件缓冲器进行不同的状态处理。
[0032]可选地,所述构建事件缓冲器,包括:
[0033]为所述事件的输入输出结构体分配内存空间;其中,所述输入输出结构体包括:事件最大容量、缓存指针、事件数量、事件锁和条件的变量;
[0034]对所述输入输出结构体的变量赋初值;
[0035]申请缓存空间,所述缓存空间的大小根据所述事件最大容量进行设置,并将所述缓存空间的地址赋给所述缓存指针,用于暂存正在分发的事件;
[0036]初始化所述事件锁和条件,用于控制所述事件的收发同步。
[0037]可选地,所述事件处理状态机的状态,包括:空闲中、停止中、运行中、合并中及已停止;
[0038]根据所述事件处理状态机的状态的变换,对事件缓冲器进行如下对应的状态处理:
[0039]‑
所述事件处理状态机处于空闲中状态,如果有新的事件到来,所述事件缓冲器状态从空闲中状态转移到运行中状态,开始执行事件分发操作;
[0040]‑
所述事件处理状态机处于运行中状态,当存在分离的事件消费者和已连接的事件消费者时,所述事件缓冲器状态从运行中状态转移到合并中状态;此时将分离的事件消费者和已连接的事件消费者进行合并处理,完成之后所述事件缓冲器状态再次转移到运行中状态;
[0041]‑
所述事件处理状态机处于运行中状态,当完成事件分发后,所述事件缓冲器状态立即从运行中状态转移到空闲中状态;
[0042]‑
所述事件处理状态机处于运行中状态,当接收到停止命令时,所述事件缓冲器状态立即从运行中状态转移到停止中状态,停止事件分发操作;当所述事件缓冲器完成停止的处理任务时,所述事件处理状态机将从停止中状态转移到已停止状态,所述事件缓冲器释放所占用的内存资源。
[0043]可选地,所述事件通道的伺服对象初始化参数,包括:通道最大尺寸、通道分发模式、代理最大数量和代理堆栈空间最大值。
[0044]可选地,所述事件消费者管理对象的伺服对象初始化参数,包括:哈希值和事件通道。
[0045]可选地,所述提供者管理对象的伺服对象初始化参数,包括:哈希值和事件通道。
[0046]可选地,所述事件提供者将事件发送至所述事件服务模型,所述事件服务模型采用推模式异步发送事件的方式,将所述事件依次发送给与所述事件提供者对应绑定的一个或多个所述事件消费者,实现事件的分发,包括:
[0047]将新到达事件依次插入所述事件服务模型,然后事件提供者返回;所述事件服务模型的事件通道按照先入先出的原则,依次弹出事件;当有事件弹出时,进入下一步;否则,进入下溢状态,等待新事件到达,继续执行弹出事件的步骤;
[0048]开始传递事件,将事件依次传递给与所述事件通道绑定的一个本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于CORBA中间件的轻量级事件服务方法,其特征在于,包括:建立事件服务模型,所述事件服务模型,包括:提供者管理对象,用于实现事件提供者与事件通道第一步的连接,为客户端提供获取事件消费者代理的接口;事件消费者代理,用于实现事件提供者与事件通道第二步的连接,继承PushConsumer接口;事件通道,用于实现事件提供者与事件消费者之间异步传输事件的连接通道;事件消费者管理对象,用于实现事件消费者与事件通道的第一步连接,为客户端提供获取事件提供者代理的接口;事件提供者代理,用于实现事件提供者与事件通道第二步连接,继承PushSupplier接口;其中:所述提供者管理对象管理所有的所述事件消费者代理;一个所述事件消费者代理对应一个事件提供者;所述事件消费者管理对象管理所有的所述事件提供者代理;一个所述事件提供者代理对应一个事件消费者;基于CORBA对所述事件服务模型进行初始化,建立所述事件提供者和所述事件消费者之间的透明连接;所述事件提供者将事件发送至所述事件服务模型,所述事件服务模型采用推模式异步发送事件的方式,将事件依次发送给与所述事件提供者对应绑定的一个或多个所述事件消费者,实现事件的分发;通过以上步骤,完成轻量级事件服务。2.根据权利要求1所述的基于CORBA中间件的轻量级事件服务方法,其特征在于,所述基于CORBA对所述事件服务模型进行初始化,包括:通过CORBA的ORB对象,获取RootPOA对象引用;基于所述RootPOA对象引用,进行如下操作:创建所述事件通道的伺服对象,并配置所述事件通道的伺服对象初始化参数;创建所述事件消费者管理对象的伺服对象,并配置所述事件消费者管理对象的伺服对象初始化参数;创建所述提供者管理对象的伺服对象,并配置所述提供者管理对象的伺服对象初始化参数;激活所述事件通道、所述事件消费者管理对象和所述提供者管理对象的伺服对象,开始进入工作状态;创建所述事件通道的对象引用,将所述事件通道的对象引用返回给作为调用者的所述事件消费者代理和/或所述事件提供者代理;通过上述步骤,完成对所述事件服务模型的初始化。3.根据权利要求2所述的基于CORBA中间件的轻量级事件服务方法,其特征在于,所述创建所述事件通道的伺服对象,包括:构建事件缓冲器,用于暂存正在分发的事件和控制所述事件的收发同步;
创建事件分发线程,启动事件处理状态机,所述事件处理状态机用于对事件缓冲器进行不同的状态处理。4.根据权利要求3所述的基于CORBA中间件的轻量级事件服务方法,其特征在于,所述构建事件缓冲器,包括:为所述事件的输入输出结构体分配内存空间;其中,所述输入输出结构体包括:事件最大容量、缓存指针、事件数量、事件锁和条件的变量;对所述输入输出结构体的变量赋初值;申请缓存空间,所述缓存空间的大小根据所述事件最大容量进行设置,并将所述缓存空间的地址赋给所述缓存指针,用于暂存正在分发的事件;初始化所述事件锁和条件,用于控制所述事件的收发同步。5.根据权利要求3所述的基于CORBA中间件的轻量级事件服务方法,其特征在于,所述事件处理状态机的状态,包括:空闲中、停止中、运行中、合并中及已停止;根据所述事件处理状态机的状态的变换,对事件缓冲器进行如下对应的状态处理:

所述事件处理状态机处于空闲中状态,如果有新的事件到来,所述事件缓冲器状态从空闲中状态转移到运行中状态,开始执行事件分发操作;

所述事件处理状态机处于运行中状态,当存在分离的事件消费者和已连接的事件消费者时,所述事件缓冲器状态从运行中状态转移到合并中状态;此时将分离的事件消费者和已连接的事件消费者进行合并处理,完成之后所述事件缓冲器状态再...

【专利技术属性】
技术研发人员:常坤吴二龙姜华夏
申请(专利权)人:上海介方信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1