基于业务组件化的应用软件进行业务控制的方法和系统的制作方法

文档序号:6579569阅读:157来源:国知局
专利名称:基于业务组件化的应用软件进行业务控制的方法和系统的制作方法
技术领域
本发明涉及软件工程领域,尤其涉及基于业务组件化的应用软件进行业务 控制的方法和系统。
背景技术
基于业务组件化开发方法进行应用软件的开发是行业应用软件构造新方 法,这种方法的基本实施过程是根据应用软件待实现功能确定所述功能对应的
业务流程拓朴;根据所述业务流程拓朴确定当前业务流程所需的业务组件及各 个业务组件之间的连接关系;在获取当前业务流程所需的业务组件后,根据所 述连接关系组装所述业务组件以形成与所述待实现功能对应的应用软件。这 里,业务组件具有业务含义,可以直接表达业务概念,满足了应用软件的业务 需求。
基于业务组件化开发方法进行应用软件开发时,构成应用软件的业务组件 之间功能独立,没有直接的业务联系。应用软件的业务组件之间静态业务逻辑 关系通过业务流程拓朴确定,在应用软件运行时业务组件之间执行时序关系需 要通过具有调度能力的系统来调度。
发明人通过研究发现,由于构成应用软件的业务组件之间在功能是独立 的,所以它们对于数据库的访问是随机的,多个业务组件在业务执行过程中会 频繁并发访问同 一数据库,这样就造成多个并行运行的业务组件竟争访问统一 资源的情况,极易造成数据库过载甚至死锁。

发明内容
有鉴于此,本发明实施例的目的在于提供一种基于业务组件化的业务控制 方法和系统,从根本上解决数据库过载甚至死锁问题。
为实现上述目的,本发明实施例提供了如下技术方案
一种基于业务组件化的应用软件进行业务控制的方法,包括
根据渠道发送的业务连接请求获取一数据緩冲区,所述业务连接请求中携 带有业务功能标识;其中,渠道是指与应用软件在业务功能上相关联的外部系统,用于向应用软件发起业务功能请求。
根据所述业务功能标识获取业务对应的动作顺序表;
根据所述动作顺序表从渠道获取第 一业务数据,并从数据库中获取第二业
务数据;
将所述第 一业务数据和所述第二业务数据存入所述数据緩冲区;
在所述业务对应的各个业务组件利用所述数据緩沖区存储的第 一 业务数 据和第二业务数据执行相关业务功能后,根据所述动作顺序表将所述数据緩沖
区中内容发生变化的第一业务数据和第二业务数据反馈给渠道,并写入数据 库。
可选地,上述方法还包4舌 释放所述数据緩冲区,以供其他业务使用。
所述数据緩沖区包括子緩冲区、緩冲元数组和数据元链表,其中,
所述子緩冲区中记录业务功能标识,占用的緩冲元个数以及其使用的緩冲 元在所述緩冲元数组中的位置;
所述緩沖元数组记录的是各个数据元链表访问地址的指示信息;
所述数据元链表记录的是所述的第 一业务数据和第二业务数据。
所述业务对应的各个业务组件利用所述数据緩冲区存储的第 一 业务数据 和第二业务数据执行相关业务包括
所述业务对应的各个业务组件通过所述数据緩冲区的接口对所述数据緩 冲区中存储的第一业务数据和第二业务数据进行读取和/或写入l乘作。 根据所述动作顺序表从数据库中获取第二业务数据具体为 根据所述动作顺序表一次性从数据库中获取第二业务数据。 根据所述动作顺序表将发生变化的第二业务数据写入数据库,具体为 根据所述动作顺序表将发生变化的第二业务数据一次性写入数据库。 一种基于业务组件化的应用软件进行业务控制的系统,包括
第一获取单元,用于根据渠道发送的业务连接请求获取一数据緩冲区,所 述业务连接请求中携带有业务功能标识;第二获取单元,用于根据所述业务功能标识获取业务对应的动作顺序表; 第三获取单元,用于根据所述动作顺序表从渠道获取第一业务数据,并从
数据库中获取第二业务数据;
第一写入单元,用于将所述第一业务数据和所述第二业务数据存入所述数 据緩冲区;
第二写入单元,在所述业务对应的各个业务组件利用所述数据緩冲区存储
的第一业务数据和第二业务数据执行相关业务后,将发生变化的第一业务数据 和第二业务数据反馈给渠道,并写入数据库。
可选地,上述系统还包括
释放单元,用于释放所述第一获取单元获取的所述数据緩冲区,以供其他 业务使用。
所述数据緩冲区包括子緩沖区、緩冲元数组和数据元链表,其中,
所述子緩冲区中记录业务功能标识,占用的緩冲元个数以及其占有的緩沖 元在所述緩冲元数组中的位置;
所述緩冲元数组记录的是各个数据元链表访问地址的指示信息; 所述数据元《连表记录所述的第 一业务数据和第二业务凄丈据。 可见,在本发明实施例中,根据业务功能标识获取动作序列表,根据所述 动作序列表将执行该业务所需的业务数据都存入获取的数据緩沖区中,该业务 对应的业务组件在执行业务时直接对该数据缓沖区中数据进行操作,同时,在 业务执行完毕后,将发生变化了的业务数据写入至数据库或者反馈给渠道,从 根本上避免了各个业务组件对数据库的直接访问,从而从根本上解决了数据库 过载甚至死锁问题。


图1为本发明一实施例所提供的方法的流程图; 图2为本发明实施例所提供的数据緩冲区的示意图; 图3为本发明一实施例所提供的场景的示意图; 图4为本发明另一实施例所提供的方法的流程图; 图5为本发明一实施例所提供的系统的结构示意图。
具体实施例方式
系统,为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举
实施例,对本发明作进一步详细"i兑明。
图1为本发明一实施例所提供的方法,包括
S101,根据渠道发送的业务连接请求获取一数据緩冲区,所述业务连接请 求中携带有业务功能标识。
其中,渠道是指与当前应用软件在业务功能上相关联的外部系统,用于向 应用软件发起业务连接请求。以银行核心业务系统为例,发起个人存款业务功 能的道可以是银行前台拒面的操作人员,也可以是银行ATM取款机,还可 以是网上^l艮行系统。
数据緩冲区的结构可以参见图2。数据緩冲区包括子緩沖区、缓沖元数组 以及数据元链表。其中,子緩冲区包括子緩冲区名称,该子緩冲区包含的緩冲 元个数以及各个缓冲元在緩冲元数组中的位置指示。緩冲元数组记录的是各个 数据元链表访问地址的指示信息;数据元链表记录的是第一业务数据和第二业 务数据。
一般子緩冲区名称与该子緩冲区存储的业务功能标识相同,用来标明该子 緩冲区所记录的业务功能。业务功能标识的作用即用来区别不同的业务功能, 可以是业务功能编号或者业务功能名称。图2中用业务功能编号标识不同的业 务功能。
图2中以金融行业中的个人账户取款业务,编号为1131为例对数据緩沖 区各个部分进行了说明。子緩冲区1的名称为1131,则说明该子緩冲区记录 的是业务功能编号为1131的业务功能。緩冲元个数为2,说明该业务功能在 该緩冲区的緩冲元数组中对应两个緩冲元,1和10则说明前述两个緩冲元中 的第一个访问地址由位于緩冲元数组的第l位所指向,另一个的访问地址由位 于緩冲元数组的第IO位所指向。
S102,根据所述业务功能标识获取业务功能对应的动作顺序表。
不同的业务功能标识对应了不同的业务功能,每一个业务功能都有一个与之对应的动作顺序表。该动作顺序表预先存储在本地系统中,可以通过业务功 能标识在本地系统中查找获得。
动作顺序表中包含一个业务功能在运行时刻所执行的动作步骤,以及每一 个步骤对应的程序接口 。所以根据所述动作顺序表可以获取完成当前业务功能 所需要的外部数据和内部数据。
以业务功能编号为1131的个人账户耳又款业务为例,该业务功能对应的动 作顺序表中指定的动作步骤包括调用1131读数据包,调用1131读数据库, 调用1131业务程序,调用1131写数据包,调用1131写数据库。
S103,根据所述动作顺序表从渠道获取第一业务数据,并从数据库中获取 第二业务数据。
其中,分别用第一业务数据和第二业务数据来标识从渠道和数据库中获得 的与当前业务功能的实现相关的凄t据。
仍然以业务功能编号为1131的个人账户取款业务为例,此时,通过执行 动作顺序表中的"调用1131读数据包,,步骤从渠道获得第一业务数据,包括 账号、密码、金额等信息;通过执行动作顺序表中的"调用1131读数据库" 步骤从本地数据库中获得第二业务数据,包括账号、户名、账户余额、币种、 密码等信息。动作顺序表中,不同的业务功能标识对应的步骤涉及不同的业务 数据。
5104, 将所述第一业务数据和所述第二业务数据存入所述数据緩冲区。
5105, 所述业务功能对应的各个业务组件利用所述数据緩冲区存储的第一 业务数据和第二业务数据执行相关业务功能。
5106, 根据所述动作顺序表将所述緩沖区中内容发生变化的第一业务数据 和第二业务数据反馈给渠道,并写入数据库。
该业务功能相关的业务组件利用数据緩存区中的第一业务数据和第二业 务数据执行完相关操作后,可能会改变所述第一业务数据或者第二业务数据, 所以需要将所述缓冲区中内容发生变化的第 一业务数据和第二业务数据反馈 给渠道,并写入数据库,这样才能保证渠道数据的一致性和数据库数据的同步性。仍然以业务功能编号为1131的个人账户取款业务为例,假设该业务功能
为从个人账户中取款iooo元,该账户的账户余额会发生变化,此时执行动作 顺序表中的"调用1131写数据包"步骤,将变化后的账户余额信息反馈给渠 道;执行动作顺序表中的"调用1131写数据库"步骤,根据账号将账户余额 信息写入数据库。
可选地,为了避免緩存区被无效占用,提高緩存区的利用率,本发明实施 例所提供的方法还包括
S107,释放所述数据緩冲区,以供其他业务功能使用。
本发明实施例所提供的方法,根据业务功能标识获取动作序列表,根据所 述动作序列表将执行该业务功能所需的业务数据都存入获取的数据緩冲区中, 该业务功能对应的业务组件在执行业务功能时直接对该数据緩冲区中数据进 行操作,同时,在业务功能执行完毕后,将发生变化了的业务lt据写入至凄t据 库或者反馈给渠道,从根本上避免了各个业务组件对数据库的直接访问,从而 从根本上解决了数据库过载甚至死锁问题。
此外,本发明实施例所提供的方法,在业务功能执行前将所需的业务数据 都存入lt据緩沖区,在业务功能执行后将变化了的业务lt据写入数据库或者返 回给渠道,业务功能相关的各个业务组件直接对所述数据緩冲区进行操作,避 免了各个业务组件与数据库之间频繁的交互过程,从而进一步提高了业务处理 的效率。
为使本发明实施例所4是供的方法更加清晰明了 ,下面以金融行业中个人账 户取款业务(业务功能编号为1131)为例,对本发明实施所^是供的方法进行 说明。
图3为本发明实施例所应用的场景的示意图,其中,业务支持系统301 为本发明实施例所提供的方法的执行主体,业务功能程序302为当前应用软件 的业务功能实体,其中包含多个业务组件。数据库303是当前应用软件使用的 内部数据存储管理系统。渠道304则是当前应用软件在业务功能上相关联的外 部系统,在本发明实施例提供的个人账户取款业务中,该渠道可以为ATM自 动取款机。可选地,为了将具体的业务功能实现与接口相分离,渠道、数据库和业务
功能程序可以分别提供访问接口 ,分别是渠道接口 304-1/0、数据库接口 303-I/O 和业务功能程序接口 302-I/O,这三个接口在概念上与软件工程领域通用的应 用程序编程接口 ( API, Application Programming Interface )是一致的,在这种 结构模式下,业务支持系统通过与这些实体的接口通讯实现对实体的访问和控制。
参见图4,在图3所示的场景中,本发明实施例所^是供的方法包括
S401 ,业务支持系统根据渠道发送的个人账户取款业务连接请求获取一数 据緩冲区,所迷业务连接请求中携带有业务功能编号1131。
业务支持系统一直处于监听连接状态,当渠道发起一个业务功能时,通过 渠道接口向运行时支持系统发起业务连接请求,运行时支持系统响应连接,开 始工作。具体包括根据该业务连接请求获取一个空白的,可用的数据緩沖区。
S402,业务支持系统根据所述业务功能编号1131获取业务功能对应的动 作顺序表。
在该业务支持系统调用系统级初始化程序,完成一些基本的系统初始化功 能后,根据该业务功能标识进行查找,找到它对应的动作顺序表。
S403,业务支持系统执行动作顺序表中的"调用1131读数据包,,步骤从 渠道获得第一业务数据,执行动作顺序表中的"调用1131读数据库,,步骤从 本地数据库中获得第二业务数据。
具体地,业务支持系统根据该动作顺序表从渠道(如ATM取款机)获取 当前业务功能所需要的第一业务数据,包括账号、密码、金额等信息;从当前
业务支持系统所连接的数据库中一次性获取当前业务功能所需要的相关第二 业务数据,包括账户余额、币种、密码等信息。
S404,业务支持系统将所述第一业务数据和所述第二业务^:据存入所述数 据緩冲区。
数据緩沖区的具体结构参见图2,从图2中可以看出,第一业务数据包括 账号1234;取4欠金额1000.00以及密码。第二业务数据则包括余额 16050.00;币种人民币以及户名张春牙、L需要说明的是,实际应用中, 一个业务功能可能对应于多个子緩冲区,但 是无论一个业务功能所包含的子緩沖区的个数是多少,每个子緩冲区的结构都 是相同的。
S405,业务支持系统调度执行个人账户取款业务程序,该业务程序的各业 务组件利用所述数据緩冲区存储的第 一 业务数据和第二业务数据执行相关业 务功能。
S406,业务支持系统执行动作顺序表中的"调用1131写数据包"步骤将 账户余额反馈给渠道;并通过执行动作顺序表中的"调用1131写数据库"步 骤,4艮据账号将账户余额信息写入数据库。
执行完相关业务功能后,账户余额由16050.00变成了 15050.00,第二业 务数据有变化,需要将该业务数据写入数据库。因为第二业务数据发生了变化, 为了使该数据保持同步,还需要将变化的第二业务数据反馈给渠道(ATM自 动取款机),供操作人员或者用户阅览。
实际应用中,业务支持系统根据具体业务功能的执行结果确定发生变化的 业务数据,反馈给渠道和/或写入数据库。
S407,业务支持系统释放个人账户取款业务使用的数据緩冲区。
系统的緩冲区是有限的,为了提高緩冲区的利用率,当一业务功能执行完 毕后需要释放该业务功能使用的数据緩冲区,以便其他的业务功能申请使用。
本发明实施例所提供的方法,根据业务功能标识获取动作序列表,根据所 述动作序列表将执行该业务功能所需的业务数据都存入获取的数据緩沖区中, 该业务功能对应的业务组件在执行业务功能时直接对该数据緩冲区中数据进 行操作,同时,在业务功能执行完毕后,将发生变化了的业务数据写入至数据 库或者反馈给渠道,从根本上避免了各个业务组件对数据库的直接访问,从而 从根本上解决了数据库过载甚至死锁问题。
参见图5,本发明实施例还提供一种基于业务组件化的应用软件进行业务 控制的系统,包括
第 一获取单元501 ,用于根据渠道发送的业务 接请求获取一数据緩冲区, 所述业务连接请求中携带有业务功能标识;所述数据緩冲区包括子緩冲区、缓冲元数组和数据元链表,其中,
所述子緩沖区中记录业务功能标识,占用的緩冲元个数以及其占有的緩冲 元在所述緩沖元数组中的位置;
所述緩沖元数组记录的是各个数据元链表访问地址的指示信息; 所述数据元链表记录的是所述的第一业务数据和第二业务数据。 第二获取单元502,用于根据所述业务功能标识获取业务功能对应的动作 顺序表;
第三获取单元503,用于根据所述动作顺序表从渠道获取第 一业务数据, 并从数据库中获取第二业务数据;
第一写入单元504,用于将所述第一业务数据和所述第二业务数据存入所 述数据緩冲区;
第二写入单元505,在所述业务功能对应的各个业务组件利用所述数据緩 冲区存储的第一业务数据和第二业务数据执行相关业务功能后,将发生变化的 第一业务数据和第二业务数据反馈给渠道,并写入数据库。
可选地,为了提高緩冲区的利用率,本发明实施例所提供的系统还包括 释放单元,用于释放所述第一获取单元获取的所述数据緩冲区,以供其他 业务功能使用。
实际应用中,所述业务控制系统可以是图3所示场景中的业务支持系统, 该业务控制系统与周边设备实体的交互可以参见图4对应的方法描述。
本发明实施例所提供的系统,根据业务功能标识获取动作序列表,根据所 述动作序列表将执行该业务功能所需的业务数据都存入获取的数据緩冲区中, 该业务功能对应的业务组件在执行业务功能时直接对该数据緩冲区中数据进 行操作,同时,在业务功能执行完毕后,将发生变化了的业务数据写入至数据 库或者反馈给渠道,从根本上避免了各个业务组件对数据库的直接访问,从而 从根本上解决了数据库过载甚至死锁问题。
此外,本发明实施例所提供的方法,在业务功能执行前将所需的业务数据 都存入数据緩冲区,在业务功能执行后将变化了的业务数据写入数据库或者返 回给渠道,业务功能相关的各个业务组件直接对所述数据緩沖区进行操作,避免了各个业务组件与数据库之间频繁的交互过程,从而进一步提高了业务功能 处理的效率。
本发明可以在由计算机执行的计算机可执行指令的 一般上下文中描述,例 如程序模块。 一般地,程序模块包括执行特定任务或实现特定抽象数据类型的 例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本 发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来 执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地 和远程计算机存储介质中。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通 技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰, 这些改进和润饰也应视为本发明的保护范围。
权利要求
1、一种基于业务组件化的应用软件进行业务控制的方法,其特征在于,包括根据渠道发送的业务连接请求获取一数据缓冲区,所述业务连接请求中携带有业务功能标识;其中,渠道是指与应用软件在业务功能上相关联的外部系统,用于向应用软件发起业务功能请求。根据所述业务功能标识获取业务对应的动作顺序表;根据所述动作顺序表从渠道获取第一业务数据,并从数据库中获取第二业务数据;将所述第一业务数据和所述第二业务数据存入所述数据缓冲区;在所述业务对应的各个业务组件利用所述数据缓冲区存储的第一业务数据和第二业务数据执行相关业务功能后,根据所述动作顺序表将所述数据缓冲区中内容发生变化的第一业务数据和第二业务数据反馈给渠道,并写入数据库。
2,根据权利要求1所述的方法,其特征在于,还包括 释放所述数据緩冲区,以供其他业务使用。
3、 4艮据权利要求1所述的方法,其特征在于,所述数据緩冲区包括子緩 冲区、緩冲元数组和数据元链表,其中,所述子緩冲区中记录业务功能标识,占用的緩冲元个数以及其使用的緩沖 元在所述緩冲元数组中的位置;所述緩冲元数组记录的是各个数据元链表访问地址的指示信息;所述数据元链表记录的是所述的第一业务数据和第二业务数据。
4、 根据权利要求1所述的方法,其特征在于,所述业务对应的各个业务 组件利用所述数据緩冲区存储的第一业务数据和第二业务数据执行相关业务 包括所述业务对应的各个业务组件通过所述数据緩冲区的接口对所述数据緩 冲区中存储的第一业务数据和第二业务数据进行读取和/或写入操作。
5、 根据权利要求1所述的方法,其特征在于,根据所述动作顺序表从数据库中获取第二业务数据具体为根据所述动作顺序表一次性从数据库中获取第二业务数据。
6、 根据权利要求1所述的方法,其特征在于,根据所述动作顺序表将发 生变化的第二业务数据写入数据库,具体为根据所述动作顺序表将发生变化的第二业务数据一次性写入数据库。
7、 一种基于业务组件化的应用软件进行业务控制的系统,其特征在于, 包括第一获取单元,用于根据渠道发送的业务连接请求获耳又一数据緩沖区,所 述业务连接请求中携带有业务功能标识;第二获取单元,用于根据所述业务功能标识获取业务对应的动作顺序表;第三获取单元,用于根据所述动作顺序表从渠道获取第一业务数据,并从 数据库中获取第二业务数据;第一写入单元,用于将所述第一业务数据和所述第二业务数据存入所述数 据緩沖区;第二写入单元,在所述业务对应的各个业务组件利用所述数据緩冲区存储 的第一业务数据和第二业务数据执行相关业务后,将发生变化的第一业务数据 和第二业务数据反馈给渠道,并写入数据库。
8、 根据权利要求7所述的系统,其特征在于,还包括释放单元,用于释放所述第一获取单元获取的所述数据緩冲区,以供其他 业务使用。
9、 根据权利要求7所述的系统,其特征在于,所述数据緩沖区包括子緩 冲区、緩沖元数组和数据元链表,其中,所述子緩冲区中记录业务功能标识,占用的緩冲元个数以及其占有的緩冲 元在所述緩冲元数组中的位置;所述緩冲元数组记录的是各个数据元链表访问地址的指示信息; 所述数据元链表记录所述的第一业务数据和第二业务数据。
全文摘要
本发明实施例公开了基于业务组件化的应用软件进行业务控制的方法和系统,其中,所述方法为根据渠道发送的业务连接请求获取一数据缓冲区,所述业务连接请求中携带有业务功能标识;根据所述业务功能标识获取业务对应的动作顺序表;根据所述动作顺序表从渠道获取第一业务数据,并从数据库中获取第二业务数据;将所述第一业务数据和所述第二业务数据存入所述数据缓冲区;在所述业务对应的各个业务组件执行相关业务后,将数据缓冲区中内容发生变化的第一业务数据和第二业务数据反馈给渠道,并写入数据库,本发明实施例所提的方法从根本上避免了应用软件中各个业务组件对数据库的直接访问,从而从根本上解决了应用软件运行中数据库过载甚至死锁问题。
文档编号G06F17/30GK101625699SQ20091016167
公开日2010年1月13日 申请日期2009年7月28日 优先权日2009年7月28日
发明者建 吕, 韩文学 申请人:大连新中连软件集团有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1