CN105100117A - 一种用于访问组合服务的方法及装置 - Google Patents
一种用于访问组合服务的方法及装置 Download PDFInfo
- Publication number
- CN105100117A CN105100117A CN201510543550.2A CN201510543550A CN105100117A CN 105100117 A CN105100117 A CN 105100117A CN 201510543550 A CN201510543550 A CN 201510543550A CN 105100117 A CN105100117 A CN 105100117A
- Authority
- CN
- China
- Prior art keywords
- services
- sub
- call
- serial number
- ognl
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Telephonic Communication Services (AREA)
- Exchange Systems With Centralized Control (AREA)
Abstract
本发明实施例公开了一种用于访问组合服务的方法及装置,涉及互联网技术领域,包括:接收发送端发送的针对目标组合服务的访问指令;创建目标组合服务基于OGNL的上下文环境;根据预设的服务组合规则确定目标组合服务对应的各个子服务的调用顺序;调用目标组合服务对应的各个子服务,获得各个子服务的处理结果,并根据所获得的各个子服务的处理结果,确定目标组合服务的处理结果;根据预设的基于OGNL的输出表达式、基于OGNL的上下文环境以及目标组合服务的处理结果,计算目标组合服务的输出参数;向发送端反馈目标组合服务的输出参数。应用本发明实施例提供的方案,能够实现对组合服务的访问。
Description
技术领域
本发明涉及互联网技术领域,特别涉及一种用于访问组合服务的方法及装置。
背景技术
近年来Web服务在企业中得到了大规模的应用,开发基于Web服务的软件过程中,开发人员会收集整理企业的各类业务需求,然后根据所收集到的需求进行定制开发实现相应的服务。
由于现有技术中各类服务是定制开发的,访问任一种服务时,访问过程均比较简单。首先,发送端确定要访问的目标服务,然后将该服务对应的输入参数发送给接收端,接收端接收到目标服务的输入参数后直接调用目标服务进行处理,并将处理结果反馈给发送端,即完成了一次对目标服务的访问,其中,上述的发送端可以是一台物理机,也可以是物理机中的一个发送模块。
然而,实际应用中各个服务之间所涉及的很多部分往往是相同的,例如,针对员工绩效考核的服务涉及整个企业员工的分类查询部分,针对员工考勤记录的服务也涉及整个企业员工的分类查询部分,若单独定制开发上述两种服务,则整个企业员工的分类查询部分需重复开发,从而导致代码的可重用性低,增加了开发人员的工作量,因此,开发过程中,越来越多的开发人员倾向于开发细粒度的子服务,然后通过子服务组合的方式得到满足业务需求的组合服务。但是,这样一来现有技术中的用于访问以定制方式开发的服务的方法无法适应对组合服务的访问。
发明内容
本发明实施例公开了一种用于访问组合服务的方法及装置,以能够访问组合服务。
为达到上述目的,本发明实施例公开了一种用于访问组合服务的方法,所述方法包括:
接收发送端发送的针对目标组合服务的访问指令,其中,所述目标组合服务为:由多个子服务按照预设的服务组合规则组合得到的服务,所述访问指令中至少包含:所述目标组合服务的输入参数;
创建所述目标组合服务基于OGNL的上下文环境;
根据所述预设的服务组合规则确定所述目标组合服务对应的各个子服务的调用顺序;
根据所述输入参数、所述基于OGNL的上下文环境以及预设的基于OGNL的输入表达式,按照所述调用顺序,调用所述目标组合服务对应的各个子服务,获得各个子服务的处理结果,并根据所获得的各个子服务的处理结果,确定所述目标组合服务的处理结果;
根据预设的基于OGNL的输出表达式、所述基于OGNL的上下文环境以及所述目标组合服务的处理结果,计算所述目标组合服务的输出参数;
向所述发送端反馈所述目标组合服务的输出参数。
在本发明的一种具体实现方式中,所述根据所述输入参数、所述基于OGNL的上下文环境以及预设的基于OGNL的输入表达式,按照所述调用顺序,调用所述目标组合服务对应的各个子服务,获得各个子服务的处理结果,包括:
设置顺序号i的初始值为0;
判断是否满足顺序号为i的所述目标组合服务对应的子服务的调用条件;
若满足,获得顺序号为i的上述子服务对应的调用次数Numi,Numi次调用顺序号为i的上述子服务,获得针对顺序号为i的子服务的处理结果;
更新顺序号i的值为i+1,并返回所述判断是否满足顺序号为i的所述目标组合服务对应的子服务的调用条件的步骤,直到遍历所述调用顺序中的最后一个子服务;
其中,所述调用顺序号为i的上述子服务,包括:
根据所述基于OGNL的上下文环境和预设的基于OGNL的输入表达式中针对顺序号为i的子服务的输入表达式,计算顺序号为i的子服务的输入参数;
根据上述计算得到的输入参数调用顺序号为i的子服务,获得本次调用顺序号为i的子服务得到的处理结果;
根据所获得的本次调用子服务得到的输出结果更新所述基于OGNL的上下文环境。
在本发明的一种具体实现方式中,所述判断是否满足顺序号为i的所述目标组合服务对应的子服务的调用条件,包括:
判断顺序号为i的上述子服务的调用属性是否为空;
若为空,则判定满足顺序号为i的上述子服务的调用条件;
若不为空,则根据顺序号为i的上述子服务对应的预设的基于OGNL的调用表达式和所述基于OGNL的上下文环境,判断是否满足顺序号为i的上述子服务的预设调用条件,若满足,则判定满足顺序号为i的上述子服务的调用条件。
在本发明的一种具体实现方式中,所述获得顺序号为i的上述子服务对应的调用次数Numi,包括:
判断预设的顺序号为i的子服务的调用次数标识是否为空;
若为空,确定顺序号为i的上述子服务对应的调用次数Numi为1;
若不为空,根据顺序号为i的上述子服务对应的预设的基于OGNL的调用次数表达式和所述基于OGNL的上下文环境,计算所述调用次数Numi。
在本发明的一种具体实现方式中,所述子服务为:
原子服务;
或者,
由多个原子服务组成的服务。
为达到上述目的,本发明实施例公开了一种用于访问组合服务的装置,所述装置包括:
访问指令接收模块,用于接收发送端发送的针对目标组合服务的访问指令,其中,所述目标组合服务为:由多个子服务按照预设的服务组合规则组合得到的服务,所述访问指令中至少包含:所述目标组合服务的输入参数;
上下文环境创建模块,用于创建所述目标组合服务基于OGNL的上下文环境;
调用顺序确定模块,用于根据所述预设的服务组合规则确定所述目标组合服务对应的各个子服务的调用顺序;
处理结果获得模块,用于根据所述输入参数、所述基于OGNL的上下文环境以及预设的基于OGNL的输入表达式,按照所述调用顺序,调用所述目标组合服务对应的各个子服务,获得各个子服务的处理结果;
处理结果确定模块,用于根据所获得的各个子服务的处理结果,确定所述目标组合服务的处理结果;
输出参数计算模块,用于根据预设的基于OGNL的输出表达式、所述基于OGNL的上下文环境以及所述目标组合服务的处理结果,计算所述目标组合服务的输出参数;
输出参数发送模块,用于向所述发送端反馈所述目标组合服务的输出参数。
在本发明的一种具体实现方式中,所述处理结果获得模块,包括:初始值设置子模块、调用条件判断子模块、调用次数获得子模块、子服务调用子模块、处理结果获得子模块、顺序号更新子模块;
其中,所述初始值设置子模块,用于设置顺序号i的初始值为0;
所述调用条件判断子模块,用于判断是否满足顺序号为i的所述目标组合服务对应的子服务的调用条件;
所述调用次数获得子模块,用于在所述调用条件判断子模块的判断结果为是的情况下,获得顺序号为i的上述子服务对应的调用次数Numi,并Numi次触发所述子服务调用子模块调用子服务;
所述子服务调用子模块,用于调用顺序号为i的上述子服务;
所述处理结果获得子模块,用于获得针对顺序号为i的子服务的处理结果;
所述顺序号更新子模块,用于更新顺序号i的值为i+1,并触发所述调用条件判断子模块判断调用条件直到遍历所述调用顺序中的最后一个子服务;
所述所述子服务调用子模块,包括:
输入参数计算单元,用于根据所述基于OGNL的上下文环境和预设的基于OGNL的输入表达式中针对顺序号为i的子服务的输入表达式,计算顺序号为i的子服务的输入参数;
处理结果获得单元,用于根据上述计算得到的输入参数调用顺序号为i的子服务,获得本次调用顺序号为i的子服务得到的处理结果;
上下文环境更新单元,用于根据所获得的本次调用子服务得到的输出结果更新所述基于OGNL的上下文环境。
在本发明的一种具体实现方式中,所述调用条件判断子模块,包括:
调用属性判断单元,用于判断顺序号为i的上述子服务的调用属性是否为空;
第一调用条件判定单元,用于在所述调用属性判断单元的判断结果为是的情况下,判定满足顺序号为i的上述子服务的调用条件;
第二调用条件判定单元,用于在所述调用属性判断单元的判断结果为否的情况下,根据顺序号为i的上述子服务对应的预设的基于OGNL的调用表达式和所述基于OGNL的上下文环境,判断是否满足顺序号为i的上述子服务的预设调用条件,若满足,则判定满足顺序号为i的上述子服务的调用条件。
在本发明的一种具体实现方式中,所述调用次数获得子模块,包括:
调用次数标识判断单元,用于判断预设的顺序号为i的子服务的调用次数标识是否为空;
调用次数确定单元,用于在所述调用次数标识判断单元的判断结果为是的情况下,确定顺序号为i的上述子服务对应的调用次数Numi为1;
调用次数计算单元,用于在所述调用次数标识判断单元的判断结果为否的情况下,根据顺序号为i的上述子服务对应的预设的基于OGNL的调用次数表达式和所述基于OGNL的上下文环境,计算所述调用次数Numi。
在本发明的一种具体实现方式中,所述子服务为:
原子服务;
或者,
由多个原子服务组成的服务。
由以上可见,本发明实施例提供的方案中,接收到发送端发送的针对目标组合服务的访问指令后,首先创建目标组合服务给予OGNL的上下文环境,再确定目标组合服务对应的各个子服务的调用顺序,然后按照调用顺序调用目标组合服务对应的各个子服务,获得各个子服务的处理结果,并确定目标组合服务的处理结果,最后计算目标组合服务的输出参数,并向发送端反馈上述输出参数。应用本发明实施例提供的方案,能够有效访问由多个子服务组合得到的组合服务。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的用于访问组合服务的方法的第一种流程示意图;
图2为本发明实施例提供的用于访问组合服务的方法的第二种流程示意图;
图3为本发明实施例提供的用于访问组合服务的装置的第一种结构示意图;
图4为本发明实施例提供的用于访问组合服务的装置的第二种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的用于访问组合服务的方法的第一种流程示意图,该方法包括:
S101:接收发送端发送的针对目标组合服务的访问指令。
其中,上述的目标组合服务为:由多个子服务按照预设的服务组合规则组合得到的服务,具体的,子服务可以是原子服务,也可以是由多个原子服务组成的服务。
需要说明的是,这里提到的原子服务可以理解为服务的最小单位。
另外,当上述子服务为由多个原子服务组成的服务的情况下,可以理解为该子服务为组合服务,第一种情况下,该子服务是由多个原子服务直接组合得到的组合服务,第二种情况下,该子服务可以是由组合服务与原子服务组成的组合服务,第三种情况下,该子服务可以是由组合服务与组合服务组成的组合服务等等。可以理解的是,第二种情况和第三种情况中涉及到的组合服务均可以向下划分,划分为多个原子服务。
具体的,上述访问指令中至少需包含:目标组合服务的输入参数,当然,实际应用中该访问指令中还可以包含其他参数,本申请并不对此进行限定。
值得一提的是,上述的发送端可以是一台物理机,也可以是一台物理机中的一个具有数据发送功能的模块,本申请并不对此进行限定。
S102:创建目标组合服务基于OGNL的上下文环境。
OGNL(Object-GraphNavigationLanguage),它是一种功能强大的表达式语言,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能等等。使用OGNL时,可以通过相同的表达式去存取对象的属性。
目标组合服务基于OGNL的上下文环境可以理解为目标组合服务涉及到的OGNL对象的信息。
S103:根据预设的服务组合规则确定目标组合服务对应的各个子服务的调用顺序。
由于目标组合服务是由多个子服务组成的,在调用这些子服务时,各个子服务之间的调用优先级通常不同,所以,在调用各个子服务之前,需先确定各个子服务的调用顺序。
S104:根据输入参数、基于OGNL的上下文环境以及预设的基于OGNL的输入表达式,按照调用顺序,调用目标组合服务对应的各个子服务,获得各个子服务的处理结果。
本领域内的技术人员可以理解的是,实际应用中可以设置每个子服务的调用条件,只有在满足调用条件的情况下才调用该子服务,另外,还可以设置每个子服务的调用次数等信息。
在本发明的一种具体实现方式中,参见图2,提供了用于访问组合服务的方法的第二种流程示意图,其中,根据所述输入参数、基于OGNL的上下文环境以及预设的基于OGNL的输入表达式,按照调用顺序,调用目标组合服务对应的各个子服务,获得各个子服务的处理结果(S104),包括:
S104A:设置顺序号i的初始值为0。
S104B:判断是否满足顺序号为i的目标组合服务对应的子服务的调用条件,若满足,执行S104C。
具体的,每个子服务的调用条件可以是开发阶段由开发人员根据具体的应用情况定义好的,优选的该调用条件可以是以基于OGNL的表达式定义的。
在本发明的一种可选实现方式中,判断是否满足顺序号为i的目标组合服务对应的子服务的调用条件时,可以先判断顺序号为i的上述子服务的调用属性是否为空,若为空,则默认未定义该子服务的特殊调用条件,必须调用该子服务,即:判定满足顺序号为i的上述子服务的调用条件;若不为空,则根据顺序号为i的上述子服务对应的预设的基于OGNL的调用表达式和所述基于OGNL的上下文环境,判断是否满足顺序号为i的上述子服务的预设调用条件,若满足,则判定满足顺序号为i的上述子服务的调用条件。
当然,本申请只是以上述为例进行说明,实际应用中判断是否满足顺序号为i的目标组合服务对应的子服务的调用条件的方法并不仅限于此,例如,在判断得顺序号为i的子服务的调用属性为空时,可以判定不满足顺序号为i的上述子服务的调用条件等等。
S104C:获得顺序号为i的上述子服务对应的调用次数Numi,Numi次调用顺序号为i的上述子服务,获得针对顺序号为i的子服务的处理结果。
由于通常情况下每次调用一个子服务均会带来基于OGNL的上下文环境信息的变化,所以,在本发明的一种可选实现方式中,调用顺序号为i的上述子服务时,可以根据基于OGNL的上下文环境和预设的基于OGNL的输入表达式中针对顺序号为i的子服务的输入表达式,计算顺序号为i的子服务的输入参数,然后根据上述计算得到的输入参数调用顺序号为i的子服务,获得本次调用顺序号为i的子服务得到的处理结果,再根据所获得的本次调用子服务得到的输出结果更新基于OGNL的上下文环境,这样能够保证每次调用一个子服务后,当前基于OGNL的上下文环境信息为最新的基于OGNL的上下文环境信息。
具体的,对于每一个子服务而言,其调用次数可以是预先定义好的,当然也可以是根据实际运行情况动态确定的,本申请并不对此进行限定。
在本申请的一种可选实现方式中,获得顺序号为i的上述子服务对应的调用次数Numi时,可以通过判断预设的顺序号为i的子服务的调用次数标识是否为空的方式获得,具体的,当判断得顺序号为i的子服务的调用次数标识为空时,确定顺序号为i的上述子服务对应的调用次数Numi为1,当然,也可以确定Numi为其他值,例如,0、2、3等等,这一值可以是开发人员在开发过程中设定的;当判断得顺序号为i的子服务的调用次数标识不为空时,根据顺序号为i的上述子服务对应的预设的基于OGNL的调用次数表达式和基于OGNL的上下文环境,计算调用次数Numi。
Numi次调用顺序号为i的上述子服务后,所获得的针对顺序号为i的子服务的处理结果可以存在多种情况,列举如下:
一种情况:每次调用顺序号为i的子服务后得到的处理结果为下一次调用该子服务时的输入信息,这样最后所获得的针对顺序号为i的子服务的处理结果可以是最后一次调用该子服务后得到的处理结果;
另一种情况,每次调用顺序号为i的子服务后得到的处理结果不作为下一次调用该子服务时的输入信息,但是上述的处理结果会影响当前基于OGNL的上下文环境,进而会影响下一次调用该子服务时的输入信息,这种情况下会得到Numi个针对顺序号为i的子服务的处理结果,这Numi个处理结果可以一起作为最终的处理结果,也可以对这Numi个处理结果进行变化处理之后的结果作为最终的处理结果。
本申请只是以上述两种情况为例进行说明,实际应用中并不仅限于此。
S104D:更新顺序号i的值为i+1。
S104E:判断i是否小于目标组合服务对应的子服务的数量,若为是,返回S104B,否则,执行S105。
需要说明的是,若上述所涉及到的各个子服务为组合服务,则调用每个子服务的过程可以理解为递归调用的S104A-S104E各个步骤的过程。
S105:根据所获得的各个子服务的处理结果,确定所述目标组合服务的处理结果。
S106:根据预设的基于OGNL的输出表达式、基于OGNL的上下文环境以及目标组合服务的处理结果,计算目标组合服务的输出参数。
S107:向发送端反馈目标组合服务的输出参数。
由以上可见,上述各个实施例提供的方案中,接收到发送端发送的针对目标组合服务的访问指令后,首先创建目标组合服务给予OGNL的上下文环境,再确定目标组合服务对应的各个子服务的调用顺序,然后按照调用顺序调用目标组合服务对应的各个子服务,获得各个子服务的处理结果,并确定目标组合服务的处理结果,最后计算目标组合服务的输出参数,并向发送端反馈上述输出参数。应用上述各个实施例提供的方案,能够有效访问由多个子服务组合得到的组合服务。
与上述用于访问组合服务的方法相对应,本发明实施例还提供了一种用于访问组合服务的装置。
图3为本发明实施例提供的用于访问组合服务的装置的第一种结构示意图,该装置包括:
访问指令接收模块301,用于接收发送端发送的针对目标组合服务的访问指令,其中,所述目标组合服务为:由多个子服务按照预设的服务组合规则组合得到的服务,所述访问指令中至少包含:所述目标组合服务的输入参数;
上下文环境创建模块302,用于创建所述目标组合服务基于OGNL的上下文环境;
调用顺序确定模块303,用于根据所述预设的服务组合规则确定所述目标组合服务对应的各个子服务的调用顺序;
处理结果获得模块304,用于根据所述输入参数、所述基于OGNL的上下文环境以及预设的基于OGNL的输入表达式,按照所述调用顺序,调用所述目标组合服务对应的各个子服务,获得各个子服务的处理结果;
处理结果确定模块305,用于根据所获得的各个子服务的处理结果,确定所述目标组合服务的处理结果;
输出参数计算模块306,用于根据预设的基于OGNL的输出表达式、所述基于OGNL的上下文环境以及所述目标组合服务的处理结果,计算所述目标组合服务的输出参数;
输出参数发送模块307,用于向所述发送端反馈所述目标组合服务的输出参数。
具体的,所述子服务可以为:
原子服务;
或者,
由多个原子服务组成的服务。
在本发明的一种具体实现方式中,参见图4,提供了用于访问组合服务的装置的第二种结构示意图,与前述实施例相比,本实施例中,所述处理结果获得模块304,包括:初始值设置子模块3041、调用条件判断子模块3042、调用次数获得子模块3043、子服务调用子模块3044、处理结果获得子模块3045、顺序号更新子模块3046。
其中,所述初始值设置子模块3041,用于设置顺序号i的初始值为0;
所述调用条件判断子模块3042,用于判断是否满足顺序号为i的所述目标组合服务对应的子服务的调用条件;
所述调用次数获得子模块3043,用于在所述调用条件判断子模块3042的判断结果为是的情况下,获得顺序号为i的上述子服务对应的调用次数Numi,并Numi次触发所述子服务调用子模块调用子服务;
所述子服务调用子模块3044,用于调用顺序号为i的上述子服务;
所述处理结果获得子模块3045,用于获得针对顺序号为i的子服务的处理结果;
所述顺序号更新子模块3046,用于更新顺序号i的值为i+1,并触发所述调用条件判断子模块3042判断调用条件直到遍历所述调用顺序中的最后一个子服务;
所述所述子服务调用子模块3044,包括:
输入参数计算单元,用于根据所述基于OGNL的上下文环境和预设的基于OGNL的输入表达式中针对顺序号为i的子服务的输入表达式,计算顺序号为i的子服务的输入参数;
处理结果获得单元,用于根据上述计算得到的输入参数调用顺序号为i的子服务,获得本次调用顺序号为i的子服务得到的处理结果;
上下文环境更新单元,用于根据所获得的本次调用子服务得到的输出结果更新所述基于OGNL的上下文环境。
可选的,所述调用条件判断子模块3042可以包括:
调用属性判断单元,用于判断顺序号为i的上述子服务的调用属性是否为空;
第一调用条件判定单元,用于在所述调用属性判断单元的判断结果为是的情况下,判定满足顺序号为i的上述子服务的调用条件;
第二调用条件判定单元,用于在所述调用属性判断单元的判断结果为否的情况下,根据顺序号为i的上述子服务对应的预设的基于OGNL的调用表达式和所述基于OGNL的上下文环境,判断是否满足顺序号为i的上述子服务的预设调用条件,若满足,则判定满足顺序号为i的上述子服务的调用条件。
可选的,所述调用次数获得子模块3043可以包括:
调用次数标识判断单元,用于判断预设的顺序号为i的子服务的调用次数标识是否为空;
调用次数确定单元,用于在所述调用次数标识判断单元的判断结果为是的情况下,确定顺序号为i的上述子服务对应的调用次数Numi为1;
调用次数计算单元,用于在所述调用次数标识判断单元的判断结果为否的情况下,根据顺序号为i的上述子服务对应的预设的基于OGNL的调用次数表达式和所述基于OGNL的上下文环境,计算所述调用次数Numi。
由以上可见,上述各个实施例提供的方案中,接收到发送端发送的针对目标组合服务的访问指令后,首先创建目标组合服务给予OGNL的上下文环境,再确定目标组合服务对应的各个子服务的调用顺序,然后按照调用顺序调用目标组合服务对应的各个子服务,获得各个子服务的处理结果,并确定目标组合服务的处理结果,最后计算目标组合服务的输出参数,并向发送端反馈上述输出参数。应用上述各个实施例提供的方案,能够有效访问由多个子服务组合得到的组合服务。
对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种用于访问组合服务的方法,其特征在于,所述方法包括:
接收发送端发送的针对目标组合服务的访问指令,其中,所述目标组合服务为:由多个子服务按照预设的服务组合规则组合得到的服务,所述访问指令中至少包含:所述目标组合服务的输入参数;
创建所述目标组合服务基于OGNL的上下文环境;
根据所述预设的服务组合规则确定所述目标组合服务对应的各个子服务的调用顺序;
根据所述输入参数、所述基于OGNL的上下文环境以及预设的基于OGNL的输入表达式,按照所述调用顺序,调用所述目标组合服务对应的各个子服务,获得各个子服务的处理结果,并根据所获得的各个子服务的处理结果,确定所述目标组合服务的处理结果;
根据预设的基于OGNL的输出表达式、所述基于OGNL的上下文环境以及所述目标组合服务的处理结果,计算所述目标组合服务的输出参数;
向所述发送端反馈所述目标组合服务的输出参数。
2.根据权利要求1所述的方法,其特征在于,所述根据所述输入参数、所述基于OGNL的上下文环境以及预设的基于OGNL的输入表达式,按照所述调用顺序,调用所述目标组合服务对应的各个子服务,获得各个子服务的处理结果,包括:
设置顺序号i的初始值为0;
判断是否满足顺序号为i的所述目标组合服务对应的子服务的调用条件;
若满足,获得顺序号为i的上述子服务对应的调用次数Numi,Numi次调用顺序号为i的上述子服务,获得针对顺序号为i的子服务的处理结果;
更新顺序号i的值为i+1,并返回所述判断是否满足顺序号为i的所述目标组合服务对应的子服务的调用条件的步骤,直到遍历所述调用顺序中的最后一个子服务;
其中,所述调用顺序号为i的上述子服务,包括:
根据所述基于OGNL的上下文环境和预设的基于OGNL的输入表达式中针对顺序号为i的子服务的输入表达式,计算顺序号为i的子服务的输入参数;
根据上述计算得到的输入参数调用顺序号为i的子服务,获得本次调用顺序号为i的子服务得到的处理结果;
根据所获得的本次调用子服务得到的输出结果更新所述基于OGNL的上下文环境。
3.根据权利要求2所述的方法,其特征在于,所述判断是否满足顺序号为i的所述目标组合服务对应的子服务的调用条件,包括:
判断顺序号为i的上述子服务的调用属性是否为空;
若为空,则判定满足顺序号为i的上述子服务的调用条件;
若不为空,则根据顺序号为i的上述子服务对应的预设的基于OGNL的调用表达式和所述基于OGNL的上下文环境,判断是否满足顺序号为i的上述子服务的预设调用条件,若满足,则判定满足顺序号为i的上述子服务的调用条件。
4.根据权利要求2或3所述的方法,其特征在于,所述获得顺序号为i的上述子服务对应的调用次数Numi,包括:
判断预设的顺序号为i的子服务的调用次数标识是否为空;
若为空,确定顺序号为i的上述子服务对应的调用次数Numi为1;
若不为空,根据顺序号为i的上述子服务对应的预设的基于OGNL的调用次数表达式和所述基于OGNL的上下文环境,计算所述调用次数Numi。
5.根据权利要求1所述的方法,其特征在于,所述子服务为:
原子服务;
或者,
由多个原子服务组成的服务。
6.一种用于访问组合服务的装置,其特征在于,所述装置包括:
访问指令接收模块,用于接收发送端发送的针对目标组合服务的访问指令,其中,所述目标组合服务为:由多个子服务按照预设的服务组合规则组合得到的服务,所述访问指令中至少包含:所述目标组合服务的输入参数;
上下文环境创建模块,用于创建所述目标组合服务基于OGNL的上下文环境;
调用顺序确定模块,用于根据所述预设的服务组合规则确定所述目标组合服务对应的各个子服务的调用顺序;
处理结果获得模块,用于根据所述输入参数、所述基于OGNL的上下文环境以及预设的基于OGNL的输入表达式,按照所述调用顺序,调用所述目标组合服务对应的各个子服务,获得各个子服务的处理结果;
处理结果确定模块,用于根据所获得的各个子服务的处理结果,确定所述目标组合服务的处理结果;
输出参数计算模块,用于根据预设的基于OGNL的输出表达式、所述基于OGNL的上下文环境以及所述目标组合服务的处理结果,计算所述目标组合服务的输出参数;
输出参数发送模块,用于向所述发送端反馈所述目标组合服务的输出参数。
7.根据权利要求6所述的装置,其特征在于,所述处理结果获得模块,包括:初始值设置子模块、调用条件判断子模块、调用次数获得子模块、子服务调用子模块、处理结果获得子模块、顺序号更新子模块;
其中,所述初始值设置子模块,用于设置顺序号i的初始值为0;
所述调用条件判断子模块,用于判断是否满足顺序号为i的所述目标组合服务对应的子服务的调用条件;
所述调用次数获得子模块,用于在所述调用条件判断子模块的判断结果为是的情况下,获得顺序号为i的上述子服务对应的调用次数Numi,并Numi次触发所述子服务调用子模块调用子服务;
所述子服务调用子模块,用于调用顺序号为i的上述子服务;
所述处理结果获得子模块,用于获得针对顺序号为i的子服务的处理结果;
所述顺序号更新子模块,用于更新顺序号i的值为i+1,并触发所述调用条件判断子模块判断调用条件直到遍历所述调用顺序中的最后一个子服务;
所述所述子服务调用子模块,包括:
输入参数计算单元,用于根据所述基于OGNL的上下文环境和预设的基于OGNL的输入表达式中针对顺序号为i的子服务的输入表达式,计算顺序号为i的子服务的输入参数;
处理结果获得单元,用于根据上述计算得到的输入参数调用顺序号为i的子服务,获得本次调用顺序号为i的子服务得到的处理结果;
上下文环境更新单元,用于根据所获得的本次调用子服务得到的输出结果更新所述基于OGNL的上下文环境。
8.根据权利要求7所述的装置,其特征在于,所述调用条件判断子模块,包括:
调用属性判断单元,用于判断顺序号为i的上述子服务的调用属性是否为空;
第一调用条件判定单元,用于在所述调用属性判断单元的判断结果为是的情况下,判定满足顺序号为i的上述子服务的调用条件;
第二调用条件判定单元,用于在所述调用属性判断单元的判断结果为否的情况下,根据顺序号为i的上述子服务对应的预设的基于OGNL的调用表达式和所述基于OGNL的上下文环境,判断是否满足顺序号为i的上述子服务的预设调用条件,若满足,则判定满足顺序号为i的上述子服务的调用条件。
9.根据权利要求7或8所述的装置,其特征在于,所述调用次数获得子模块,包括:
调用次数标识判断单元,用于判断预设的顺序号为i的子服务的调用次数标识是否为空;
调用次数确定单元,用于在所述调用次数标识判断单元的判断结果为是的情况下,确定顺序号为i的上述子服务对应的调用次数Numi为1;
调用次数计算单元,用于在所述调用次数标识判断单元的判断结果为否的情况下,根据顺序号为i的上述子服务对应的预设的基于OGNL的调用次数表达式和所述基于OGNL的上下文环境,计算所述调用次数Numi。
10.根据权利要求6所述的装置,其特征在于,所述子服务为:
原子服务;
或者,
由多个原子服务组成的服务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510543550.2A CN105100117B (zh) | 2015-08-28 | 2015-08-28 | 一种用于访问组合服务的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510543550.2A CN105100117B (zh) | 2015-08-28 | 2015-08-28 | 一种用于访问组合服务的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105100117A true CN105100117A (zh) | 2015-11-25 |
CN105100117B CN105100117B (zh) | 2018-07-13 |
Family
ID=54579662
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510543550.2A Active CN105100117B (zh) | 2015-08-28 | 2015-08-28 | 一种用于访问组合服务的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105100117B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109408216A (zh) * | 2018-11-12 | 2019-03-01 | 北京字节跳动网络技术有限公司 | 任务生成方法、装置、设备及存储介质 |
CN109858607A (zh) * | 2019-03-08 | 2019-06-07 | 网宿科技股份有限公司 | 一种模型应用方法、管理方法、系统及服务器 |
CN110249594A (zh) * | 2017-02-08 | 2019-09-17 | 日本电信电话株式会社 | 通信装置和通信方法 |
CN110750271A (zh) * | 2019-10-21 | 2020-02-04 | 珠海格力电器股份有限公司 | 服务聚合、聚合服务的执行方法、装置和电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101350023A (zh) * | 2008-08-29 | 2009-01-21 | 北京航空航天大学 | 一种基于服务组合的可定制查询方法与平台 |
EP2107712A1 (en) * | 2007-08-31 | 2009-10-07 | Huawei Technologies Co., Ltd. | Method, apparatus and system for composite service process, replacement and concrete service invocation |
-
2015
- 2015-08-28 CN CN201510543550.2A patent/CN105100117B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2107712A1 (en) * | 2007-08-31 | 2009-10-07 | Huawei Technologies Co., Ltd. | Method, apparatus and system for composite service process, replacement and concrete service invocation |
CN101350023A (zh) * | 2008-08-29 | 2009-01-21 | 北京航空航天大学 | 一种基于服务组合的可定制查询方法与平台 |
Non-Patent Citations (1)
Title |
---|
蔡海尼: "《基于语义的Web服务集成研究及其应用》", 《中国博士学位论文全文数据库》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110249594A (zh) * | 2017-02-08 | 2019-09-17 | 日本电信电话株式会社 | 通信装置和通信方法 |
CN109408216A (zh) * | 2018-11-12 | 2019-03-01 | 北京字节跳动网络技术有限公司 | 任务生成方法、装置、设备及存储介质 |
CN109858607A (zh) * | 2019-03-08 | 2019-06-07 | 网宿科技股份有限公司 | 一种模型应用方法、管理方法、系统及服务器 |
CN110750271A (zh) * | 2019-10-21 | 2020-02-04 | 珠海格力电器股份有限公司 | 服务聚合、聚合服务的执行方法、装置和电子设备 |
CN110750271B (zh) * | 2019-10-21 | 2021-07-23 | 珠海格力电器股份有限公司 | 服务聚合、聚合服务的执行方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN105100117B (zh) | 2018-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8296198B2 (en) | Method and system for distribution of information | |
CN100421070C (zh) | 用于管理动态配置数据的方法和系统 | |
US8918709B2 (en) | Object templates for data-driven applications | |
US20080027965A1 (en) | Multiple source data management using a conflict rule | |
JP2007148469A (ja) | ビジネスプロセス定義を用いた事前リソース割り当て方法 | |
CN103473696A (zh) | 一种收集、分析和分发网络商业信息的方法和系统 | |
CN105100117A (zh) | 一种用于访问组合服务的方法及装置 | |
CN112416425B (zh) | App构建方法、装置、计算机设备及存储介质 | |
CN102946415B (zh) | 一种移动终端本地应用的实现方法和装置 | |
CN111258565A (zh) | 小程序的生成方法、系统、服务器及存储介质 | |
CN100596139C (zh) | 使用元数据定义映射来构建组件应用程序的系统和方法 | |
CN106569880A (zh) | 一种Android应用间动态共享资源的方法及系统 | |
CN112965710A (zh) | 计算图的处理方法、装置和系统 | |
CN110602227A (zh) | 一种智能合约管理的方法以及相关装置 | |
US8874622B2 (en) | Flexible order of authoring for data integration solutions | |
CN110276605B (zh) | 规则生成方法、装置、电子设备及可读存储介质 | |
CN114185941A (zh) | 报表数据查询的方法、装置、电子设备和存储介质 | |
CN111831868A (zh) | 金融产品配置的方法和装置 | |
CN105653341A (zh) | 一种网络发票客户端的升级方法、装置及系统 | |
CN108334374A (zh) | 组件动态加载与执行的方法和装置 | |
CN110471718A (zh) | 一种任务处理方法及设备 | |
CN110166272B (zh) | 提供终端设备指标仲裁服务的方法、装置及系统 | |
US20100325604A1 (en) | System and method for performing cost estimation in a service provider environment | |
CN110971664B (zh) | 一种接口服务管理系统 | |
CN115857878A (zh) | 一种开发框架生成方法及应用方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |