当前位置: 首页 > 专利查询>马丰文专利>正文

一种软件系统内部组件数据交互方法技术方案

技术编号:3857019 阅读:195 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种软件系统内部组件数据交互方法,该方法在软件系统的集成框架上建立一个公共数据交互代理,所有组件之间的数据交互通过所述代理和组件提供的接口完成,组件之间不直接建立的联系,数据交互采用主动方单边双向“请求”与“响应”机制实现,即:数据的交互始终以数据发起的主动方为主,既可通过数据代理向其它组件请求所需数据,也可通过代理向其它组件主动发送有关数据。本发明专利技术降低了数据交互对系统资源的消耗,提高了系统整体运行效率;避免了组件开发的关联度,增强了系统集成的灵活性和适应性;简化了组件开发与集成的难度,有利于系统集成的标准化与规范化。

【技术实现步骤摘要】

本专利技术涉及 一 种软件系统内部各功能组件间数据交互的实现方 法,特别是涉及在一个综合集成系统中,在各个由不同开发者采用不 同编程语言开发的功能组件之间实现自由数据信息交互的方法。
技术介绍
综合集成是目前各种大型、复杂软件系统建设所普遍采用的一条 基本技术路线,它不仅能够使复杂问题得以简化,易于实现,而且能够在集成中使系统功能及性能的跃升,获得更大的应用效益;同时, 综合集成对软件系统的开发也开辟了新的创作思路,软件的重用、按 需组合应用已成为目前计算机软件研制的基本要求。然而,综合集成 并不是相关功能组件或系统的简单拼凑和捆绑,而是要使集成的各功 能组件或系统相互间构成有机的联系,使集成后得到的系统真正成为 一个有机的整体,发挥出"1 + 1>2"的效果,要达到这个目的,关 键在于集成的各组件或系统之间的数据信息交互。目前,对于集成系统内部各个集成的功能组件间的数据交互问题 研究已有一些成果,如规则动态库(DLL)、 MFC扩展动态库(DLL)、 COM组件、Web服务等,均设计或釆用了某种相应的数据交互方法, 实现集成组件间的信息交互问题。然而,计算机技术的飞速发展,在 极大地促进和带动社会各行各业的发展同时,也为计算机应用本身提 出了新的发展要求,其规模越来越复杂、庞大,往往需要多家单位共 同协作开发,特别是行业、融合及领域发展,需要将原有的、各自分 离的软件系统按需要进行改造(组件化)、集成,而这些都涉及到系 统集成中各集成组件间有机融合的问题,同时更重要的是要解决采用 不同编程工具开发的功能组件或系统在集成中的数据交互问题,使系统能够具备良好的适应能力,能够满足各种不同系统集成、拓展需要 的能力。针对软件系统开发的这种现实需要,目前已有许多研究,一 些解决方案是可行的,但是对于用不同程序语言开发的组件或系统的 集成,这些方法尚存在一定的局限性或应用上有些复杂。一是数据类型的转换存在问题。通常,不同的编程语言,其遵循 的标准以及所拥有的数据类型不尽相同,因此在系统集成数据交互 中,需要进行对应的数据类型转换,以保证系统各组成部分能够正常 运行,而目前的一些解决方法尚不能很好的支持这种需求。二是解决 方法的灵活性不够好。对于一个软件应用系统而言,其自身的适应性、 可拓展性和灵活性对系统的应用效益有着紧密的联系,而数据交互解 决方法的优劣则直接影响着系统性能指标的提升,特别是对集成组件 或系统的即插即用,灵活、简便的集成等有着直接的影响,这在目前 流行的数据交互方法中解决的还不够理想。本专利技术正是针对以上问题和需求,通过具体实践,研究总结了一 套解决系统集成中各集成组件之间数据交互的方法。
技术实现思路
(一) 专利技术目的本专利技术的目的是提供一种软件系统内部组件数据交互的方法,该 方法解决了上述问题。(二)
技术实现思路
,该方法是在软件系统的集 成框架上建立一个公共数据交互代理,所述组件之间的数据交互通过所述代理和组件提供的接口完成,包括步骤S101:请求数据组件按照数据交互协议向代理发出请求; S102:代理解析所述数据交互协议,锁定拥有数据的组件; S103:代理根据系统交互数据注册表,为此次数据交互在代理自身开辟的公共数据缓冲区内创建请求控制数据块RCB ( RequestControl Block),并将RCB对象句柄返给请求数据组件;S104:代理通过数据拥有组件提供的接口回调函数获取该组件数 据存贮区以及数据实例总数;S105:代理按照拥有数据组件所提供的接口获取其数据,并对其 按照请求数据组件的要求进行过滤、转换处理,将处理后的数据存放 于RCB所标识的数据块中;S106:请求数据组件通过提出请求时获得的RCB对象句柄,直接 从代理缓冲区相应的RCB对象中读取数据;S107:代理根据获取的交互数据实例对象总数判断是否还有数 据,若有则继续读取,若无则结東数据交互过程;S108:请求数据组件回调代理提供的释放函数释放RCB对象。其中,还包括步骤S201:发送数据组件将需要传输发布的数据准备好,并按照数据 交互协议向代理发出请求;S202:代理解析所述数据交互协议,根据系统交互数据注册表, 在自身的数据缓冲区按协议要求分配创建相应的RCB对象,并将 RCB对象句柄返回给发送数据组件;S203:代理通过发送数据组件提供的接口回调函数获取该组件数 据存贮区以及数据实例总数;S204:代理按照发送数据组件所提供的接口获取其数据,并对其 按照接收数据组件的要求进行过滤、转换处理,将处理后的数据存放 于RCB所标识的数据块中;S205:代理将通过接收数据组件向代理提供的接口函数,向接收 数据组件发出接收数据的消息,并将RCB对象句柄提供给接收数据 组件;S206:接收数据组件在该消息的触发下,通过代理所提供的RCB 对象句柄读取数据;S207:代理根据获取的交互数据实例对象总数判断是否还有数据,若有则继续读取,若无则结束数据交互过程;S208:发送数据组件回调代理提供的释放函数释放RCB对象。 其中,在所述步骤S101和S201前还包括组件在代理提供的系统数据交互注册表中注册自身数据的步骤。其中,所述系统数据交互注册表包括注册数据的组件的名称、提供单位和人、类型、文件名、该组件对外提供的数据类及其属性。 其中,所述交互协议包括请求数据的拥有组件或数据传送的接收组件、数据请求类型、具体请求或发送的数据项。基于所述的软件系统内部组件数据交互方法的系统,包括 用于请求数据组件按照数据交互协议向代理发出请求的模块; 用于代理解析所述数据交互协议,锁定拥有数据的组件的模块; 用于代理根据系统交互数据注册表,为此次数据交互在代理自身开辟的公共数据缓冲区内创建RCB,并将RCB对象句柄返给请求数据组件的模块;用于代理通过数据拥有组件提供的接口回调函数获取该组件数 据存贮区以及数据实例总数的模块;用于代理按照拥有数据组件所提供的接口获取其数据,并对其按 照请求数据组件的要求进行过滤、转换处理,将处理后的数据存放于 RCB所标识的数据块中的模块;用于请求数据组件通过提出请求时获得的RCB对象句柄,直接从 代理缓冲区相应的RCB对象中读取数据的模块;用于代理根据获取的交互数据实例对象总数判断是否还有数据, 若有则继续读取,若无则结束数据交互过程的模块;用于请求数据组件回调代理提供的释放函数释放RCB对象的模块。其中,该系统还包括9用于发送数据组件将需要传输发布的数据准备好,并按照数据交 互协议向代理发出请求的模块;用于代理解析所述数据交互协议,根据系统交互数据注册表,在自身的数据缓冲区按协议要求分配创建相应的RCB对象,并将RCB对象句柄返回给发送数据组件的模块;用于代理通过发送数据组件提供的接口回调函数获取该组件数据存贮区以及数据实例总数的模块;用于代理按照发送数据组件所提供的接口获取其数据,并对其按 照接收数据组件的要求进行过滤、转换处理,将处理后的数据存放于 RCB所标识的数据块中的模块;用于代理将通过接收数据组件向代理提供的接口函数,向接收数据组件发出接收数据的消息,并将RCB对象句柄提供给接收数据组 件的模块;用于接收数据组件在该消息的触发下,通过代理所提供的RCB 对象句柄读取数据的模块;用于代理本文档来自技高网
...

【技术保护点】
一种软件系统内部组件数据交互方法,其特征在于,在软件系统的集成框架上建立一个公共数据交互代理,所述组件之间的数据交互通过所述代理和组件提供的接口完成,包括步骤: S101:请求数据组件按照数据交互协议向代理发出请求; S102: 代理解析所述数据交互协议,锁定拥有数据的组件; S103:代理根据系统交互数据注册表,为此次数据交互在代理自身开辟的公共数据缓冲区内创建请求控制数据块RCB,并将RCB对象句柄返给请求数据组件; S104:代理通过拥有数据组件提 供的接口回调函数获取该组件数据存贮区以及数据实例总数; S105:代理按照拥有数据组件所提供的接口获取其数据,并对其按照请求数据组件的要求进行过滤、转换处理,将处理后的数据存放于RCB所标识的数据块中; S106:请求数据组件通 过提出请求时获得的RCB对象句柄,直接从代理缓冲区相应的RCB对象中读取数据; S107:代理根据获取的交互数据实例对象总数判断是否还有数据,若有则继续读取,若无则结束数据交互过程; S108:请求数据组件回调代理提供的释放函数 释放RCB对象。...

【技术特征摘要】

【专利技术属性】
技术研发人员:马丰文邓桂龙王军
申请(专利权)人:马丰文
类型:发明
国别省市:11[]

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

1