发明内容
本发明提供一种业务应用间的协同处理方法和系统,能够降低接口开发成本。
一种业务应用间的协同处理方法,为每一个业务应用抽取接口构件,将 用于提供接口的接口构件存储在预先设置的接口提供方构件注册表中,以及将用于使用接口的接口构件存储在预先设置的接口使用方构件注册表中;还包括:
接口使用方的业务应用在所述接口提供方构件注册表中查找到要调用的接口构件,并进行接口调用,将信息推送到接口提供方的业务应用;
所述接口提供方的业务应用中所述接口使用方构件注册表中查找到要调用的接口构件,并进行接口调用,将信息处理结果推送到所述接口使用方的业务应用。
优选地,所述每一个接口构件的入参和出参为按照XML格式组织的字符串类型的参数;
所述信息或信息处理结果为XML格式。
其中,所述构件注册表中的信息包括:构件ID,构件名称,业务操作ID,业务操作名称,操作方ID,构件版本以及构件发布日期中的一项或多项。
其中,所述在注册表中查找到要调用的接口构件包括:根据业务操作ID和构件版本,在注册表中查找到要调用的接口构件。
优选地,当业务提供方需要提供业务应用时,执行所述的将用于提供接口的接口构件存储在预先设置的接口提供方构件注册表中;
当业务使用方需要使用业务应用时,执行所述的将用于使用接口的接口构件存储在预先设置的接口使用方构件注册表中;
以及进一步包括:
所述业务提供方针对当前未使用的接口,将对应的接口构件从接口提供方构件注册表中删除;
所述业务使用方针对当前未使用的接口,将对应的接口构件从接口使用方构件注册表中删除。
一种业务应用间的协同处理系统,包括:
数据库,用于保存接口提供方构件注册表和接口使用方构件注册表,其中,所述接口提供方构件注册表中保存用于提供接口的业务应用的接口构件, 所述接口使用方构件注册表中保存用于使用接口的业务应用的接口构件;
接口使用方业务应用装置,在所述数据库的所述接口提供方构件注册表中查找到要调用的接口构件,并进行接口调用,将信息推送到接口提供方的业务应用装置;
接口提供方的业务应用装置,在所述数据库的所述接口使用方构件注册表中查找到要调用的接口构件,并进行接口调用,将信息处理结果推送到所述接口使用方的业务应用。
优选地,所述数据库中,所述每一个接口构件的入参和出参为按照XML格式组织的字符串类型的参数;
所述接口提供方业务应用装置与所述接口使用方业务应用装置交互XML格式的所述信息和信息处理结果。
其中,所述数据库中,构件注册表中的信息包括:构件ID,构件名称,业务操作ID,业务操作名称,操作方ID,构件版本以及构件发布日期中的一项或多项。
其中,所述接口提供方业务应用装置与所述接口使用方业务应用装置根据业务操作ID和构件版本,在所述数据库的注册表中查找到要调用的接口构件。
优选地,所述接口提供方业务应用装置在需要提供业务应用时,执行所述的将用于提供接口的接口构件存储在预先设置的接口提供方构件注册表中,以及进一步针对当前未使用的接口,将对应的构件从接口提供方构件注册表中删除;
所述接口使用方业务应用装置在需要使用业务应用时,执行所述的将用于使用接口的接口构件存储在预先设置的接口使用方构件注册表中,以及进一步针对当前未使用的接口,将对应的构件从接口使用方构件注册表中删除。
可见,本发明实施例能够预先将各种业务应用相互调用时使用的接口程序代码抽取成各个接口构件,基于接口构件注册发布,按照功能分为接口提供方构件注册表和接口使用方构件注册表,统一了接口调用方式,即从预先 形成的构件注册表中查找所需的接口构件,因此,大大降低了接口开发成本,无需业务应用用户具有特定的语言编写及调用能力,降低了业务实现的复杂度。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明一个实施例提出了一种业务应用间的协同处理方法,参见图1,该方法包括:
步骤101:预先为每一个业务应用抽取接口构件。
步骤102:将用于提供接口的接口构件存储在预先设置的接口提供方构件注册表中。
步骤103:将用于使用接口的接口构件存储在预先设置的接口使用方构件注册表中。
步骤104:接口使用方的业务应用在所述接口提供方构件注册表中查找到要调用的接口构件,并进行接口调用,将信息推送到接口提供方的业务应用。
步骤105:所述接口提供方的业务应用中所述接口使用方构件注册表中 查找到要调用的接口构件,并进行接口调用,将信息处理结果推送到所述接口使用方的业务应用。
可见,本发明实施例能够预先将各种业务应用相互调用时使用的接口程序代码抽取成各个接口构件,基于接口构件注册发布,按照功能分为接口提供方构件注册表和接口使用方构件注册表,统一了接口调用方式,即从预先形成的构件注册表中查找所需的接口构件,因此,大大降低了接口开发成本,无需业务应用用户具有特定的语言编写及调用能力,降低了业务实现的复杂度。
在本发明实施例中,协同系统之间为了达到协同要求的过程中使用的消息通知方法,接口提供方调用接口使用方提供的消息接收构件来实现将协同过程中的消息传递给接口使用方,接口使用方通过消息接收构件做出相应反馈动作,从而实现协同的目的。
本发明实施例有效地解决了业务系统模块间相互依赖调用的解耦问题,提高系统间接口的稳定性和扩展性。
本发明实施例还可以支持插拔式,即,当业务提供方需要提供业务应用时,执行所述的将用于提供接口的接口构件存储在预先设置的接口提供方构件注册表中;当业务使用方需要使用业务应用时,执行所述的将用于使用接口的接口构件存储在预先设置的接口使用方构件注册表中所述业务提供方针对当前未使用的接口,将对应的接口构件从接口提供方构件注册表中删除;所述业务使用方针对当前未使用的接口,将对应的接口构件从接口使用方构件注册表中删除。可见,本发明实施例在需要进行接口调用时就在注册表中注册上,对于不在使用的接口,则可以直接从注册表中删除而不必修改接口双方的代码,支持插拔式,大大降低了接口维护成本。
图2是本发明另一个实施例中实现业务应用间的协同处理的流程图。参见图2、图3和图4,该过程包括:
步骤201:为每一个业务应用抽取接口构件。
本步骤中,每一个接口构件的入参和出参可以为按照XML格式组织的 字符串类型的参数。采用XML格式字符串作为数据交换格式,可根据业务需求进行良好的扩展,使其更具有可读性,并能方便地集成到应用系统中。
步骤202:预先设置接口提供方构件注册表,以及预先设置接口使用方构件注册表。
步骤203:当业务提供方需要提供一种业务应用比如业务应用A时,将对应于该业务应用A的用于提供接口的接口构件存储在预先设置的接口提供方构件注册表。
步骤204:当业务使用方需要使用业务应用比如业务应用A时,将对应于该业务应用A的用于使用接口的接口构件存储在预先设置的接口使用方构件注册表中。
在上述步骤203和步骤204中,接口提供方构件注册表和接口使用方构件注册表中的信息可以包括:构件ID,构件名称,业务操作ID,业务操作名称,操作方ID,构件版本以及构件发布日期中的一项或多项。
本步骤的一种具体实现可以包括:
首先,业务接口提供方将业务构件定义信息插入到数据库中的接口提供方构件注册表,记为GSPCOMPONENTFACTORY表中,示例如下:
/**************现金管理插入付款申请单构件******************/
INSERT INTO GSPCOMPONENTFACTORY(COMPONENTID,COMPONENTCODE,COMPONENTNAME,COMPONENTTYPE,RUNATSERVER,MODIFYTIME,COMPONENTCATALOG,DESCRIPTION,XMLFRAGMENT) 
VALUES('TRCRFKSQ','InsertPaymentApp','现金管理插入付款申请单','DotNet','1',″,'GSP0101','现金管理插入付款申请单','<?xml version="1.0"encoding="utf-16"?>
<GSPComponent xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
xmlns:xsd="http://www.w3.org/2001/XMLSchema"ComponnetType="DotNet">
<DotNet Assembly="Genersoft.QYZJ.TR.LocalClient" 
ClassName="Genersoft.QYZJ.TR.LocalClient.TRClient"
MethodName="PaymentsAppInsert">
<FormalParameters>
<FormalParameter Code="appSourceInfo"Name="付款申请单信息"Mode="IN" Type="System.String"/>
<FormalParameter Code="resultInfo"Name="结果信息"Mode="OUT"Type="System.String"/> 
</FormalParameters>
</DotNet>
</GSPComponent>')
GO
其次,业务接口提供方将业务构件注册信息插入到数据库中,表结构如下:
示例如下:网上报销模块注册构件
注意事项: 
LSCOMPONENTINVOKE_YWLYID列要与往业务接收方表中插入的申请单业务来源列数据一致,如与现金管理付款申请单表中的申请来源列一致。
LSCOMPONENTINVOKE_GJID列要与GSPCOMPONENTFACTORY构件表中的ID列一致。
LSCOMPONENTINVOKE_CZID列数据预制要符合预定的规范。
LSCOMPONENTINVOKE_CZFID列数据预制的数据,要与SYMK表中的模块ID数据一致,如果当前业务构件可供多个业务模块调用,可用“ALL”关键字标识。
表结构如下: 
示例如下:现金管理模块注册构件
注意事项: 
LSCOMPONENT_ID列要与GSPCOMPONENTFACTORY构件表中的ID列一致。
LSCOMPONENT__YWLYID列预制业务来源标识。
LSCOMPONENT_BB列预制当前构件的版本,要向下兼容。
步骤205:接口使用方的业务应用在所述接口提供方构件注册表中查找到要调用的接口构件,并进行接口调用,将XML格式的信息推送到接口提供方的业务应用。
本步骤中,可以根据业务操作ID和构件版本,在注册表中查找到要调用的接口构件。
本步骤中的接口调用例如可以包括:
步骤206:所述接口提供方的业务应用中所述接口使用方构件注册表中查找到要调用的接口构件,并进行接口调用,将XML格式的信息处理结果推送到所述接口使用方的业务应用。
在上述步骤205和步骤206中,所述信息或信息处理结果可以为XML格式。
也就是说,在本发明实施例中,可以将XML作为数据交换格式。因为XML格式的解析规范性和可随意添加节点的特性,从而避免了传统的系统间接口受各自系统内部业务逻辑的变更影响而必须变更所提供的接口参数的问题,提高了接口的稳定性和可扩展性。
步骤207:所述业务提供方针对当前未使用的接口,将对应的接口构件从接口提供方构件注册表中删除。
步骤208:所述业务使用方针对当前未使用的接口,将对应的接口构件从接口使用方构件注册表中删除。
通过步骤203和步骤204,以及步骤207和步骤208的处理,实现了接口构件的热插拔。
参见图4,举例来说,业务提供方比如业务方A进行业务发起,根据业务来源和构件版本在数据库中进行相应的构件查找,并进行构件调用,业务使用方比如业务方B进行业务接收以及业务处理执行回写;业务方B根据业务来源和构件版本在数据库中进行构件查找,并调用查找到的构件,然后,业务方A进行后续业务处理。
参见图5,本发明一个实施例提供了一种业务应用间的协同处理系统,包括:
数据库501,用于保存接口提供方构件注册表和接口使用方构件注册表,其中,所述接口提供方构件注册表中保存用于提供接口的业务应用的接口构 件,所述接口使用方构件注册表中保存用于使用接口的业务应用的接口构件;
接口使用方业务应用装置502,在所述数据库501的所述接口提供方构件注册表中查找到要调用的接口构件,并进行接口调用,将信息推送到接口提供方的业务应用装置;
接口提供方的业务应用装置503,在所述数据库502的所述接口使用方构件注册表中查找到要调用的接口构件,并进行接口调用,将信息处理结果推送到所述接口使用方的业务应用。
在本发明一个实施例中,所述数据库501中,所述每一个接口构件的入参和出参为按照XML格式组织的字符串类型的参数;
所述接口提供方业务应用装置与所述接口使用方业务应用装置交互XML格式的所述信息和信息处理结果。
在本发明一个实施例中,所述数据库501中,构件注册表中的信息包括:构件ID,构件名称,业务操作ID,业务操作名称,操作方ID,构件版本以及构件发布日期中的一项或多项。
在本发明一个实施例中,所述接口提供方业务应用装置503与所述接口使用方业务应用装置502根据业务操作ID和构件版本,在所述数据库的注册表中查找到要调用的接口构件。
在本发明一个实施例中,所述接口提供方业务应用装置503在需要提供业务应用时,执行所述的将用于提供接口的接口构件存储在预先设置的接口提供方构件注册表中,以及进一步针对当前未使用的接口,将对应的构件从接口提供方构件注册表中删除;
所述接口使用方业务应用装置502在需要使用业务应用时,执行所述的将用于使用接口的接口构件存储在预先设置的接口使用方构件注册表中,以及进一步针对当前未使用的接口,将对应的构件从接口使用方构件注册表中删除。
在本发明实施例中,协同系统间的消息通知也可以是通过调用接口构件实现的。
在本发明实施例中,接口使用方调用接口提供方提供的接口,生成了接口提供方系统内部的数据,当生成的数据在接口提供方系统内部进行流转时要将这些流转信息通知到接口使用方,接口使用方在接收到消息后做出相对应的反馈。接口使用方将一系列反馈动作抽取为消息接收接口构件,接口提供方系统通过查找接口使用方消息接收接口构件注册表中预制的构件并进行调用来达到系统间消息的传递,实现系统间协同的目的。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。