应用组件中交易调用的处理方法和装置的制造方法

文档序号:10724563阅读:573来源:国知局
应用组件中交易调用的处理方法和装置的制造方法
【专利摘要】本发明提供了应用组件中交易调用的处理方法和装置。该方法包括:将应用组件的代码按照预定工程结构约束,其中,所述预定工程结构包括:各应用组件所需的公共方法工程、各应用组件内的模块工程以及打包部署工程;对所述公共方法工程、所述模块工程和所述打包部署工程进行配置;将所述公共方法工程的代码和配置、所述打包部署工程的代码和配置和所述模块工程的代码和配置合并,并打包成war包进行合并部署,以便所述模块工程能够访问应用组件的交易的报文对象。根据本发明,能够在不修改应用组件代码的前提下,在合并部署时,使一个模块可以访问另一模块的交易。
【专利说明】
应用组件中交易调用的处理方法和装置
技术领域
[0001] 本发明涉及应用组件处理,更为具体而言,涉及一种应用组件中交易调用的处理 方法和装置。
【背景技术】
[0002] 在银行产品系统的应用组件开发中,具有实现各种不同功能的应用组件,不同的 应用组件通常由不同的开发人员开发,代码的书写习惯和风格也各不相同。这些不同功能 的应用组件可以接收联机交易,也可以被其他模块调用。然而,在将应用组件基于应用的需 要进行部署的过程中,通常需要对应用组件的相关代码进行修改,由于不同应用组件的代 码书写习惯和风格等各不相同,导致部署中代码的修改处理需要花费大量的时间和精力, 从而导致应用组件部署的整体效率较低。

【发明内容】

[0003] 为解决上述技术问题,本发明提供了一种应用组件中交易调用的处理方法,能够 在不修改应用组件代码的前提下,在应用组件合并部署时,使一个模块工程可以访问另一 模块工程的交易。
[0004] 根据本发明实施方式的第一方面,提供了一种应用组件中交易调用的处理方法, 所述方法包括:将应用组件的代码按照预定工程结构约束,其中,所述预定工程结构包括: 各应用组件所需的公共方法工程、各应用组件内的模块工程以及打包部署工程,所述公共 方法工程定义交易的报文对象基类,所述模块工程包括交易的报文对象并且依赖于所述公 共方法工程;对所述公共方法工程、所述模块工程和所述打包部署工程进行配置;将所述公 共方法工程的代码和配置、所述打包部署工程的代码和配置和所述模块工程的代码和配置 合并,并打包成war包进行合并部署,以便所述模块工程能够访问应用组件的交易的报文对 象。
[0005] 在本发明的一些实施方式中,所述对所述公共方法工程、所述模块工程和所述打 包部署工程进行配置包括:对所述公共方法工程的公共表的数据库访问文件、公共代码中 的错误码映射到错误描述进行配置;对所述打包部署工程的关联的数据源和日志进行配 置;对所述模块工程的关联表的数据访问文件、所属应用组件内的错误码映射到错误描述、 联机报文映射关系、所属应用组件提供的交易码与服务类的映射关系以及所述模块工程关 联的数据源和日志进行配置。
[0006] 在本发明的一些实施方式中,通过以交易码和被调用交易的输入报文对象为输入 参数的跨模块接口确定被调用交易的输出报文对象。
[0007] 在本发明的一些实施方式中,通过以交易码和被调用交易的输入报文对象为输入 参数的跨模块接口确定被调用交易的输出报文对象包括:保存当前交易码和当前交易环境 变量,构建所述交易码和所述交易码对应的交易环境变量作为新的交易环境,在所述新的 交易环境中从本地服务注册目录中查询所述交易码对应的服务类,将所述被调用交易的输 入报文对象作为输入参数调用所述服务类得到输出报文对象,销毁所述新的交易环境,恢 复所述当前交易码和当前交易环境变量,并返回所述输出报文对象。
[0008] 在本发明的一些实施方式中,通过以交易码和被调用交易的输入报文对象为输入 参数的跨模块接口确定被调用交易的输出报文对象包括:从远端服务注册目录中查询所述 交易码对应的服务器的地址信息;将所述被调用交易的输入报文对象转换为输入数据报文 发送到所述服务器的地址信息对应的服务器;接收所述服务器返回的输出数据报文,并将 所述输出数据报文转换为所述被调用交易的输出报文对象,并返回所述输出报文对象。
[0009] 在本发明的一些实施方式中,所述方法还包括:定期生成模块工程,并将所述定期 生成的模块工程打包成jar包,其中,所述定期生成的模块工程的代码来源于每个模块工程 的接口对象。
[0010]根据本发明实施方式的第二方面,提供了一种应用组件中交易调用的处理装置, 所述装置包括:预处理模块,用于将应用组件的代码按照预定工程结构约束,其中,所述预 定工程结构包括:各应用组件所需的公共方法工程、各应用组件内的模块工程以及打包部 署工程,所述公共方法工程定义交易的报文对象基类,所述模块工程包括交易的报文对象 并且依赖于所述公共方法工程;以及,对所述公共方法工程、所述模块工程和所述打包部署 工程进行配置;合并模块,将所述公共方法工程的代码和配置、所述打包部署工程的代码和 配置和所述模块工程的代码和配置合并,并打包成war包进行合并部署,以便所述模块工程 能够访问应用组件的交易的报文对象。
[0011] 在本发明的一些实施方式中,所述预处理模块对所述公共方法工程、所述模块工 程和所述打包部署工程进行配置包括:对所述公共方法工程的公共表的数据库访问文件、 公共代码中的错误码映射到错误描述进行配置;对所述打包部署工程的关联的数据源和日 志进行配置;对所述模块工程的关联表的数据访问文件、所属应用组件内的错误码映射到 错误描述、联机报文映射关系、所属应用组件提供的交易码与服务类的映射关系以及所述 模块工程关联的数据源和日志进行配置。
[0012] 在本发明的一些实施方式中,所述装置还包括:跨模块调用接口,该接口用于以交 易码和被调用交易的输入报文对象为输入参数确定被调用交易的输出报文对象。
[0013] 在本发明的一些实施方式中,所述接口以交易码和被调用交易的输入报文对象为 输入参数确定被调用交易的输出报文对象包括:保存当前交易码和当前交易环境变量,构 建所述交易码和所述交易码对应的交易环境变量作为新的交易环境,在所述新的交易环境 中从本地服务注册目录中查询所述交易码对应的服务类,将所述被调用交易的输入报文对 象作为输入参数调用所述服务类得到输出报文对象,销毁所述新的交易环境,恢复所述当 前交易码和当前交易环境变量,并返回所述输出报文对象。
[0014] 在本发明的一些实施方式中,所述接口以交易码和被调用交易的输入报文对象为 输入参数确定被调用交易的输出报文对象包括:从远端服务注册目录中查询所述交易码对 应的服务器的地址信息;将所述被调用交易的输入报文对象转换为输入数据报文发送到所 述服务器的地址信息对应的服务器;接收所述服务器返回的输出数据报文,并将所述输出 数据报文转换为所述被调用交易的输出报文对象,并返回所述输出报文对象。
[0015] 在本发明的一些实施方式中,所述装置还包括:单独部署模块,用于定期生成模块 工程,并将所述定期生成的模块工程打包成jar包,其中,所述定期生成的模块工程的代码 来源于每个模块工程的接口对象。
[0016] 本发明实施方式提供的应用组件中交易调用的方法和装置,在不修改应用组件代 码的前提下,合并部署和单独部署均能够使一个模块工程访问另一模块工程的联机交易。
【附图说明】
[0017] 图1是根据本发明一种实施方式的应用组件中交易调用的处理方法的流程示意 图。
[0018] 图2是根据本发明一种实施方式的应用组件中交易调用的处理装置的结构示意 图。
【具体实施方式】
[0019] 以下结合附图和【具体实施方式】对本发明的各个方面进行详细阐述。其中,众所周 知的模块、单元及其相互之间的连接、链接、通信或操作没有示出或未作详细说明。并且,所 描述的特征、架构或功能可在一个或一个以上实施方式中以任何方式组合。本领域技术人 员应当理解,下述的各种实施方式只用于举例说明,而非用于限制本发明的保护范围。还可 以容易理解,本文所述和附图所示的各实施方式中的模块或单元或处理方式可以按各种不 同配置进行组合和设计。
[0020] 本发明实施方式的应用组件可以指业务功能、业务流程、实现模式相近,针对同一 类别业务产品或服务的具体实现的集合。产品服务系统是由基础技术组件和应用组件组 成,可以接收/发送联机交易、处理业务逻辑的系统。交易通常为联机交易,还可以是与联机 交易类似的其他交易。
[0021] 图1是根据本发明一种实施方式的应用组件中交易调用的处理方法的流程示意 图。
[0022]参见图1,本发明的应用组件中交易调用的处理方法可包括:步骤S11、步骤S12和 步骤S13,接下来对上面三个步骤进行具体说明。
[0023]步骤S11,将应用组件的代码按照预定工程结构约束,例如,可以将应用组件按照 预定工程结构进行代码开发。其中,预定工程结构包括:各应用组件所需的公共方法工程、 各应用组件内的模块工程以及打包部署工程,其中,公共方法工程定义交易的报文对象基 类,模块工程包括交易的报文对象并且依赖于公共方法工程。公共方法工程可以使用XXX-C0MM0N形式进行命名,属于java工程,其中,XXX为应用组件的名称,XXX-C0MM0N为名称为 XXX的应用组件所需要的公共方法;模块工程可以使用XXX-PR0D-YY形式进行命名,属于web 工程,其中,XXX为应用组件的名称,YY为细分的模块,XXX-PR0D-YY为名称为XXX的应用组件 内细分的模块工程;打包部署工程可以使用XXX-DEPL0Y形式进行命名,属于java工程,其 中,XXX为应用组件的名称,XXX-DEPL0Y为打包部署工程,定义公共配置文件。
[0024]在一种具体的实施例中,预定的工程结构可以如下表1。
[0025]表 1
[0027] XXX-C0MM0N工程中定义了报文对象基类,包括输入报文对象基类Base InVo和输出 报文对象基类Base0utV〇;XXX-PR0D-YY工程中有联机交易服务相关逻辑及配置文件,依赖 于XXX-C0MM0N工程,XXX-PR0D-YY工程中有一个包vo (指的是接口对象)专门放置报文对象 InVo和OutVo,也就是一只交易的输入值合集对象、输出值合集对象。每个PROD工程可以作 为Web工程单独部署。COMMON工程和PROD工程都使用Spring框架作为bean注册获取工具和 事务管理工具,能够提供统一的对象容器,有助于实现单例,管理对象;方便面向接口编程; 支持JDBC和集成0RM框架等等。Spring提供了基于aop的声明式事务管理机制,使得应用代 码中不需要显式地调用开启事务、提交/回滚事务等操作,降低出错风险等。需要说明的是, 在另外一些实施方式中,COMMON工程和PROD工程都可以不使用Spring框架,而是采用其他 方式。
[0028] 步骤S12,对开发出的公共方法工程、模块工程和打包部署工程进行配置。具体而 言,可包括:对各应用组件的公共方法工程的公共表的数据库访问文件、公共代码中的错误 码映射到错误描述进行配置;对应用组件的打包部署工程的关联的数据源和日志进行配 置;对各应用组件中模块工程的关联表的数据访问文件、该模块工程所属应用组件内的错 误码映射到错误描述、联机报文映射关系、该模块工程所属应用组件提供的交易码与服务 类的映射关系以及所述模块工程关联的数据源和日志进行配置。需要指出的是,上述的公 共方法工程、打包配置工程和模块工程的配置并不仅限于上述列出的配置,还可包括其他 的配置。
[0029] 在一种具体的实施例中,对公共方法工程的配置可包括对公共表的数据库访问文 件进行配置(例如,ibatis的sql-map文件、sql-map-config文件)以及对公共代码中涉及到 的错误码映射到错误描述进行配置;对打包部署工程的配置可包括对合并部署的配置,例 如,对关联的数据源、日志的配置,以使该工程能够独立运行;对模块工程的配置可以是对 模块工程的联机交易服务注册配置,包括:该模块工程所属的应用组件的关联表的数据库 访问文件配置(例如,ibatis的sql-map文件、sql-map-conf ig文件)、该模块工程所属应用 组件内的错误码映射到错误描述的配置,联机报文映射关系配置(报文->inV〇,〇utV〇->报 文),该模块工程所属的应用组件提供的交易码_>服务类的映射关系,还有工程相关的配置 如数据源配置、日志配置等使得该模块工程可以独立运行。
[0030] 步骤S13,将公共方法工程的代码和配置、所述打包部署工程的代码和配置和所述 模块工程的代码和配置合并,并打包成war包进行合并部署,以便所述模块工程能够访问应 用组件的交易的报文对象。具体而言,在合并部署时,将XXX-C0MM0N的所有代码和配置、 XXX-DEPL0Y的所有代码和配置、每个XXX-PR0D-YY工程的代码和联机交易服务注册配置合 并,并打成一个war包部署,这样每个PROD工程也可以访问到应用组件内每一只交易的报文 对象。DEPLOY工程由于主要放置公共的配置文件,在一些情形下,DEPLOY工程和PROD工程可 能会有冲突,例如,名称一样,这是由于PROD工程会有一些用于单独部署的配置文件的名称 与DEPLOY工程中的公共配置文件的名称一样。在这样的情形下,以DEPLOY工程的公共配置 文件的名称为准。
[0031] 上面描述了合并部署的情形,本发明的应用组件中交易调用的方法除了包括合并 部署的情形之外,还可包括单独部署的情形,在单独部署的情形下,本发明的方法还可包 括:定期生成模块工程,并将定期生成的模块工程打包成jar包,其中,定期生成的模块工程 的代码来源于每个模块工程的接口对象,也就是一只交易的输入值合集对象、输出值合集 对象。在一种具体的实施例中,在开发阶段和单独部署时,定期生成XXX-PR0D-V0的工程并 打成jar包,该工程的代码来源于每个PROD工程的V0(接口对象,一只交易的输入值合集对 象、输出值合集对象),这个V0工程编译出来的jar包被各个PROD工程依赖。这样,每个PROD 工程可以访问到该应用组件内每一只交易的报文对象。通过上述方式可以在本模块访问其 他模块的报文对象。本发明的方法还可包括提供跨模块调用接口,能够在本模块访问其他 模块的联机交易服务。跨模块调用接口使用交易码和被调用交易的输入报文对象作为输入 参数,将被调用交易的输出报文对象作为输出参数,也就是说,根据交易码和被调用交易的 输入报文对象确定被调用交易的输出报文对象。例如,在一种具体实施例中,跨模块调用接 口可以使用下述的形式:
[0032] BaseOutVo invoke(String serviceId,BaseInVo remotelnVo)
[0033]其中,输入参数为字符串string形式的交易码serviceid和输入报文对象基类 BaselnVo,输出参数为输出报文对象基类BaseOutVo。
[0034] 本发明的跨模块调用接口有两个实现类,分别是本地调用实现类和远程调用实现 类。
[0035] 对于本地调用实现,通过以交易码和被调用交易的输入报文对象为输入参数的跨 模块接口确定被调用交易的输出报文对象包括包括:保存当前交易码和当前交易环境变量 (例如,可以使用threadlocal机制创建的线程级的交换区,在其中放置当前系统的一些配 置,如营业日期、是否对外营业、是否处于日终状态等))以及当前交易的报文对象等,构建 输入参数中的交易码和该交易码对应的交易环境变量(例如,营业日期、是否对外营业、是 否处于日终状态等环境变量)作为新的交易环境,在新的交易环境中从本地服务注册目录 (例如,可包括交易码_>服务类beanid的K->V映射关系等)中查询所述交易码对应的服务 类,将所述被调用交易的输入报文对象作为输入参数调用所述服务类得到输出报文对象, 销毁所述新的交易环境,恢复所述当前交易码和当前交易环境变量,并返回所述输出报文 对象。
[0036] 在一种具体的实施方式中,本地调用实现可包括下述步骤:保存原交易现场,例 如,使用threadlocal机制创建的线程级的交换区,在该交换区中放置当前交易码、当前交 易的环境变量和当前交易的报文对象等;构造新的交易环境,例如,使用输入的交易码以及 该交易码对应的新的环境变量等;从本地服务注册目录中查询新的交易码对应的服务类, 调用该服务类,传入输入报文对象;得到输出报文对象,销毁新交易的交易环境;恢复原交 易现场,例如,恢复交换区中放置的当前交易码、当前交易的环境变量和当前交易的报文对 象等;返回输出报文对象。
[0037] 对于远程调用实现,通过以交易码和被调用交易的输入报文对象为输入参数的跨 模块接口确定被调用交易的输出报文对象包括:从远端服务注册目录(例如,可包括交易 码_>服务器ip的κ->ν映射关系)中查询所述交易码对应的服务器的地址信息(例如,服务器 ip);将所述被调用交易的输入报文对象转换为输入数据报文发送到所述服务器的地址信 息对应的服务器,远端服务器有交易码与服务类beanid的映射关系,在接收到输入数据报 文之后,将输入数据报文转换成报文对象InVo,调用指定交易对应的服务类,生成输出报文 对象OutVo,再转换为输出数据报文;接收所述服务器返回的输出数据报文,并将所述输出 数据报文转换为所述被调用交易的输出报文对象,并返回所述输出报文对象。
[0038] 在一种具体的实施例中,远程调用实现可包括:从远端服务注册目录中查询交易 码(即接口的输入参数之一:交易码)对应的服务器id;将本地输入报文对象(即接口的输入 参数之一:被调用交易的输入报文对象)转换成输入数据报文,根据查询到的服务器id发送 到指定的服务器,该指定服务器将输入数据报文转换成报文对象InVo,调用指定交易对象 的服务类,生成OutVo,再转换成返回的输出数据报文。
[0039] 在合并部署时,可以将本地调用实现类注册在spring容器中,id为一个固定的id; 在单独部署时,可以将远程调用实现类注册在spring容器中,id与合并部署时的固定id相 同;应用代码中要调用其他模块时,统一注入该固定id的javabean调用接口方法即可。这样 同一套应用代码无论在合并部署模式还是独立部署模式下,都可以访问到其他模块的交 易。
[0040] 上面结合具体实施例描述了本发明的应用组件中交易调用的方法,下面将结合具 体实施例描述与上述方法对应的装置。
[0041] 图2是根据本发明一种实施方式的应用组件中交易调用的处理装置的结构示意 图。
[0042]参见图2,本发明的应用组件中交易调用的处理装置可包括预处理模块21和合并 模块22。
[0043]预处理模块21可用于将应用组件的代码按照预定工程结构约束,例如,可以将应 用组件按照预定工程结构进行代码开发,其中,预定工程结构包括:各应用组件所需的公共 方法工程、各应用组件内的模块工程以及打包部署工程,其中,公共方法工程定义交易的报 文对象基类,模块工程包括交易的报文对象并且依赖于公共方法工程。公共方法工程可以 使用XXX-C0MM0N形式进行命名,属于java工程,其中,XXX为应用组件的名称,XXX-C0MM0N为 名称为XXX的应用组件所需要的公共方法;模块工程可以使用XXX-PR0D-YY形式进行命名, 属于web工程,其中,XXX为应用组件的名称,YY为细分的模块,XXX-PROD-YY为名称为XXX的 应用组件内细分的模块工程;打包部署工程可以使用XXX-DEPLOY形式进行命名,属于java 工程,其中,XXX为应用组件的名称,XXX-DEPLOY为打包部署工程,定义公共配置文件。在一 种具体的实施例中,预定的工程结构可以如表1。
[0044] 预处理模块21还可用于对开发出的公共方法工程、模块工程和打包部署工程进行 配置。具体而言,可包括:对各应用组件的公共方法工程的公共表的数据库访问文件、公共 代码中的错误码映射到错误描述进行配置;对应用组件的打包部署工程的关联的数据源和 日志进行配置;对各应用组件中模块工程的关联表的数据访问文件、该模块工程所属应用 组件内的错误码映射到错误描述、联机报文映射关系、该模块工程所属应用组件提供的交 易码与服务类的映射关系以及所述模块工程关联的数据源和日志进行配置。需要指出的 是,上述的公共方法工程、打包配置工程和模块工程的配置并不仅限于上述列出的配置,还 可包括其他的配置。
[0045] 在一种具体的实施例中,对公共方法工程的配置可包括对公共表的数据库访问文 件进行配置(例如,ibatis的sql-map文件、sql-map-config文件)以及对公共代码中涉及到 的错误码映射到错误描述进行配置;对打包部署工程的配置可包括对合并部署的配置,例 如,对关联的数据源、日志的配置,以使该工程能够独立运行;对模块工程的配置可以是对 模块工程的联机交易服务注册配置,包括:该模块工程所属的应用组件的关联表的数据库 访问文件配置(例如,ibatis的sql-map文件、sql-map-config文件)、该模块工程所属应用 组件内的错误码映射到错误描述的配置,联机报文映射关系配置(报文->inV 〇,〇utV〇->报 文),该模块工程所属的应用组件提供的交易码_>服务类的映射关系,还有工程相关的配置 如数据源配置、日志配置等使得该模块工程可以独立运行。
[0046] 合并模块22将公共方法工程的代码和配置、所述打包部署工程的代码和配置和所 述模块工程的代码和配置合并,并打包成war包进行合并部署,以便所述模块工程能够访问 应用组件的交易的报文对象。具体而言,在合并部署时,将XXX-C0MM0N的所有代码和配置、 XXX-DEPLOY的所有代码和配置、每个XXX-PR0D-YY工程的代码和联机交易服务注册配置合 并,并打成一个war包部署,这样每个PROD工程也可以访问到应用组件内每一只交易的报文 对象。DEPLOY工程由于主要放置公共的配置文件,在一些情形下,DEPLOY工程和PROD工程可 能会有冲突,例如,名称一样,这是由于PROD工程会有一些用于单独部署的配置文件的名称 与DEPLOY工程中的公共配置文件的名称一样。在这样的情形下,以DEPLOY工程的公共配置 文件的名称为准。
[0047] 上面描述了合并部署的情形,本发明的应用组件中交易调用的方法除了包括合并 部署的情形之外,还可包括单独部署的情形,在单独部署的情形下,本发明的装置还可包 括:单独部署模块,其定期生成模块工程,并将定期生成的模块工程打包成jar包,其中,定 期生成的模块工程的代码来源于每个模块工程的接口对象,也就是一只交易的输入值合集 对象、输出值合集对象。在一种具体的实施例中,在开发阶段和单独部署时,定期生成XXX-PR0D-V0的工程并打成jar包,该工程的代码来源于每个PROD工程的V0(接口对象,一只交易 的输入值合集对象、输出值合集对象),这个V0工程编译出来的jar包被各个PROD工程依赖。 这样,每个PROD工程可以访问到该应用组件内每一只交易的报文对象。
[0048] 通过上述方式可以在本模块访问其他模块的报文对象。本发明的装置还可包括跨 模块调用接口,能够在本模块访问其他模块的联机交易服务。跨模块调用接口使用交易码 和被调用交易的输入报文对象作为输入参数,将被调用交易的输出报文对象作为输出参 数,也就是说,根据交易码和被调用交易的输入报文对象确定被调用交易的输出报文对象。
[0049] 本发明的跨模块调用接口有两个实现类,分别是本地调用实现类和远程调用实现 类。
[0050] 对于本地调用实现,通过以交易码和被调用交易的输入报文对象为输入参数的跨 模块接口确定被调用交易的输出报文对象包括包括:保存当前交易码和当前交易环境变量 (例如,可以使用threadlocal机制创建的线程级的交换区,在其中放置当前系统的一些配 置,如营业日期、是否对外营业、是否处于日终状态等))以及当前交易的报文对象等,构建 输入参数中的交易码和该交易码对应的交易环境变量(例如,营业日期、是否对外营业、是 否处于日终状态等环境变量)作为新的交易环境,在新的交易环境中从本地服务注册目录 (例如,可包括交易码_>服务类beanid的K->V映射关系等)中查询所述交易码对应的服务 类,将所述被调用交易的输入报文对象作为输入参数调用所述服务类得到输出报文对象, 销毁所述新的交易环境,恢复所述当前交易码和当前交易环境变量,并返回所述输出报文 对象。
[0051] 对于远程调用实现,通过以交易码和被调用交易的输入报文对象为输入参数的跨 模块接口确定被调用交易的输出报文对象包括:从远端服务注册目录(例如,可包括交易 码_>服务器ip的K->V映射关系)中查询所述交易码对应的服务器的地址信息(例如,服务器 ip);将所述被调用交易的输入报文对象转换为输入数据报文发送到所述服务器的地址信 息对应的服务器,远端服务器有交易码与服务类beanid的映射关系,在接收到输入数据报 文之后,将输入数据报文转换成报文对象InVo,调用指定交易对应的服务类,生成输出报文 对象OutVo,再转换为输出数据报文;接收所述服务器返回的输出数据报文,并将所述输出 数据报文转换为所述被调用交易的输出报文对象,并返回所述输出报文对象。
[0052] 在合并部署时,可以将本地调用实现类注册在spring容器中,id为一个固定的id; 在独立部署时,可以将远程调用实现类注册在spring容器中,id与合并部署时的固定id相 同;应用代码中要调用其他模块时,统一注入该固定id的javabean调用接口方法。这样同一 套应用代码无论在合并部署模式还是独立部署模式下,都可以访问到其他模块的交易。
[0053] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助 软件结合硬件平台的方式来实现。基于这样的理解,本发明的技术方案对【背景技术】做出贡 献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介 质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算 机,服务器,智能手机或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述 的方法。
[0054]本发明说明书中使用的术语和措辞仅仅为了举例说明,并不意味构成限定。本领 域技术人员应当理解,在不脱离所公开的实施方式的基本原理的前提下,对上述实施方式 中的各细节可进行各种变化。因此,本发明的范围只由权利要求确定,在权利要求中,除非 另有说明,所有的术语应按最宽泛合理的意思进行理解。
【主权项】
1. 一种应用组件中交易调用的处理方法,其特征在于,所述方法包括: 将应用组件的代码按照预定工程结构约束,其中,所述预定工程结构包括:各应用组件 所需的公共方法工程、各应用组件内的模块工程以及打包部署工程,所述公共方法工程定 义交易的报文对象基类,所述模块工程包括交易的报文对象并且依赖于所述公共方法工 程; 对所述公共方法工程、所述模块工程和所述打包部署工程进行配置; 将所述公共方法工程的代码和配置、所述打包部署工程的代码和配置和所述模块工程 的代码和配置合并,并打包成war包进行合并部署,以便所述模块工程能够访问应用组件的 交易的报文对象。2. 根据权利要求1所述的方法,其特征在于,所述对所述公共方法工程、所述模块工程 和所述打包部署工程进行配置包括: 对所述公共方法工程的公共表的数据库访问文件、公共代码中的错误码映射到错误描 述进行配置; 对所述打包部署工程的关联的数据源和日志进行配置; 对所述模块工程的关联表的数据访问文件、所属应用组件内的错误码映射到错误描 述、联机报文映射关系、所属应用组件提供的交易码与服务类的映射关系以及所述模块工 程关联的数据源和日志进行配置。3. 根据权利要求1所述的方法,其特征在于,所述方法还包括: 通过以交易码和被调用交易的输入报文对象为输入参数的跨模块接口确定被调用交 易的输出报文对象。4. 根据权利要求3所述的方法,其特征在于,通过以交易码和被调用交易的输入报文对 象为输入参数的跨模块接口确定被调用交易的输出报文对象包括: 保存当前交易码和当前交易环境变量,构建所述交易码和所述交易码对应的交易环境 变量作为新的交易环境, 在所述新的交易环境中从本地服务注册目录中查询所述交易码对应的服务类,将所述 被调用交易的输入报文对象作为输入参数调用所述服务类得到输出报文对象, 销毁所述新的交易环境,恢复所述当前交易码和当前交易环境变量,并返回所述输出 报文对象。5. 根据权利要求3所述的方法,其特征在于,通过以交易码和被调用交易的输入报文对 象为输入参数的跨模块接口确定被调用交易的输出报文对象包括: 从远端服务注册目录中查询所述交易码对应的服务器的地址信息, 将所述被调用交易的输入报文对象转换为输入数据报文发送到所述服务器的地址信 息对应的服务器, 接收所述服务器返回的输出数据报文,并将所述输出数据报文转换为所述被调用交易 的输出报文对象,并返回所述输出报文对象。6. 根据权利要求1所述的方法,其特征在于,所述方法还包括: 定期生成模块工程,并将所述定期生成的模块工程打包成jar包,其中,所述定期生成 的模块工程的代码来源于每个模块工程的接口对象。7. -种应用组件中交易调用的处理装置,其特征在于,所述装置包括: 预处理模块,用于将应用组件的代码按照预定工程结构约束,其中,所述预定工程结构 包括:各应用组件所需的公共方法工程、各应用组件内的模块工程以及打包部署工程,所述 公共方法工程定义交易的报文对象基类,所述模块工程包括交易的报文对象并且依赖于所 述公共方法工程;以及,对所述公共方法工程、所述模块工程和所述打包部署工程进行配 置; 合并模块,将所述公共方法工程的代码和配置、所述打包部署工程的代码和配置和所 述模块工程的代码和配置合并,并打包成war包进行合并部署,以便所述模块工程能够访问 应用组件的交易的报文对象。8. 根据权利要求7所述的装置,其特征在于,所述预处理模块对所述公共方法工程、所 述模块工程和所述打包部署工程进行配置包括: 对所述公共方法工程的公共表的数据库访问文件、公共代码中的错误码映射到错误描 述进行配置; 对所述打包部署工程的关联的数据源和日志进行配置; 对所述模块工程的关联表的数据访问文件、所属应用组件内的错误码映射到错误描 述、联机报文映射关系、所属应用组件提供的交易码与服务类的映射关系以及所述模块工 程关联的数据源和日志进行配置。9. 根据权利要求7所述的装置,其特征在于,所述装置还包括:跨模块调用接口,该接口 用于以交易码和被调用交易的输入报文对象为输入参数确定被调用交易的输出报文对象。10. 根据权利要求9所述的装置,其特征在于,所述接口以交易码和被调用交易的输入 报文对象为输入参数确定被调用交易的输出报文对象包括: 保存当前交易码和当前交易环境变量,构建所述交易码和所述交易码对应的交易环境 变量作为新的交易环境, 在所述新的交易环境中从本地服务注册目录中查询所述交易码对应的服务类,将所述 被调用交易的输入报文对象作为输入参数调用所述服务类得到输出报文对象, 销毁所述新的交易环境,恢复所述当前交易码和当前交易环境变量,并返回所述输出 报文对象。11. 根据权利要求9所述的装置,其特征在于,所述接口以交易码和被调用交易的输入 报文对象为输入参数确定被调用交易的输出报文对象包括: 从远端服务注册目录中查询所述交易码对应的服务器的地址信息, 将所述被调用交易的输入报文对象转换为输入数据报文发送到所述服务器的地址信 息对应的服务器, 接收所述服务器返回的输出数据报文,并将所述输出数据报文转换为所述被调用交易 的输出报文对象,并返回所述输出报文对象。12. 根据权利要求7所述的装置,其特征在于,所述装置还包括: 单独部署模块,用于定期生成模块工程,并将所述定期生成的模块工程打包成jar包, 其中,所述定期生成的模块工程的代码来源于每个模块工程的接口对象。
【文档编号】G06F9/445GK106095424SQ201610395737
【公开日】2016年11月9日
【申请日】2016年6月7日 公开号201610395737.7, CN 106095424 A, CN 106095424A, CN 201610395737, CN-A-106095424, CN106095424 A, CN106095424A, CN201610395737, CN201610395737.7
【发明人】聂砂, 白彧斐, 李卓
【申请人】中国建设银行股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1