具体实施方式
本发明的核心在于在创建业务逻辑时,使用现有业务以及业务类别作为新业务的服务提供逻辑,创建抽象业务逻辑,生成组合型业务,以有效地进行业务重用。同时为了支持创建的抽象业务逻辑的运行机制,在该抽象业务逻辑被调用时将其映射为具体的业务逻辑,然后根据该具体业务逻辑找到现有网络中可用的符合要求的业务,提供相应的服务。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和实施方式对本发明作进一步的详细说明。
参照图1,图1是本发明业务创建系统第一实施例的原理框图:
在该实施例中,本发明业务创建系统包括:用户接口单元10、业务类别存储单元11、业务逻辑编辑单元12和业务管理单元。其中,用户接口单元10为业务开发者提供与系统交互的界面;业务类别存储单元11用于存储业务类别目录;业务逻辑编辑单元12用于向通过用户接口单元访问系统的业务开发者提供业务逻辑编辑环境,包括创建具体业务所需的脚本开发及解释翻译环境及根据所述业务类别目录生成的创建抽象业务所需的逻辑编辑环境,并根据业务开发者向用户接口单元输入的指令生成需要开发的业务逻辑;业务管理单元13用于对业务逻辑编辑单元中生成的业务逻辑进行测试及部署,生成所需的业务。
业务逻辑编辑单元12包括:具体业务逻辑生成单元121和抽象业务逻辑生成单元122。其中,具体业务逻辑生成单元121用于向业务开发者提供多级别API(应用编程接口)封装及访问方式,并根据业务开发者向用户接口单元输入的指令生成具体业务逻辑;抽象业务逻辑生成单元122用于根据所述业务类别目录中的现有业务类别及业务开发者向用户接口单元输入的指令生成抽象业务逻辑。
业务管理单元13包括:业务测试单元131和业务部署单元132。其中,业务测试单元131用于对业务逻辑进行测试,分析业务逻辑的正确性、边界条件以及对已部署在业务应用服务器上的业务的影响;业务部署单元132将通过了业务测试单元测试的业务逻辑部署到业务应用服务器上。
本发明业务创建系统可以为用户提供用户接口单元,提供简单方便的业务创建环境,安全的业务测试环境。利用该系统,用户可以创建一般的具体业务,也可以结合现有服务,方便地组合成新的组合业务。
业务开发者通过用户接口单元10登录该系统,并与系统进行交互,
根据交互过程中用户输入的信息,由业务逻辑编辑单元中的具体业务逻辑生成单元为用户生成具体业务逻辑,或者由抽象业务逻辑生成单元根据业务类别存储单元中存储的业务类别目录,为用户生成抽象的业务逻辑。
所述业务类别目录主要有业务类别信息,包括:当前的标准业务分类表,例如:位置服务类、天气预报类等;每个类别的接口说明,例如:输入输出参数类型、个数、参数是否可选等。当然,根据业务应用需要,还可以存储一些其他信息,比如,类别中当前所包含的具体业务信息,与具体业务相关的接口描述信息、服务描述信息等。这些信息可以配合从现有网络中的业务目录获取。
所述具体业务逻辑是指该逻辑中使用的服务是指明了的具体的服务,包括调用具体服务的具体接口信息等。所述抽象业务逻辑是指该逻辑使用高抽象级别的业务逻辑描述,其中并没有具体指明使用哪一个具体的服务以及使用哪一个具体的服务接口。例如,仅指明是“搜索服务”而没有指明是服务提供商1提供的搜索服务还是服务提供商2提供的搜索服务。这样的业务逻辑被调用时并不直接执行,而需要将该抽象业务逻辑转换为具体的业务逻辑,并生成具体的服务接口调用文件才能调用相应的服务。
业务逻辑编辑单元12为业务开发者提供开发业务时的业务逻辑编辑环境,提供各种API封装及访问方式,可以按照开发者的需求进行调用,提供实现定义好的脚本开发及解释翻译环境,使开发者通过写脚本的方式进行业务开发。也就是说,具体业务逻辑生成单元121可以参照现有的各种具体业务创建的方式来实现。
除此之外,业务逻辑编辑单元12还可以通过业务类别存储单元11获知现有业务的类型,以帮助业务开发者开发组合型业务。
在创建业务时,开发者通过用户接口单元将业务需求信息提供给业务逻辑编辑单元12,业务逻辑编辑单元12分析该业务需求,查询现有业务中是否有该类型的业务,如果有,则可以为其建立抽象业务逻辑。如果没有,则为其建立具体业务逻辑。
业务逻辑编辑完成后,业务逻辑编辑单元12将其发送到业务管理单元13,由业务测试单元131对该业务逻辑进行测试,分析业务逻辑的正确性、边界条件、以及对已部署业务的影响等。当业务逻辑通过了业务逻辑测试单元的测试后,就可以由业务部署单元132将相应的业务逻辑部署到业务逻辑运行平台或者应用服务器上。针对业务的特殊需求,还可以与业务路由器及策略中心进行协商以部署相应的业务触发点、业务控制点等。
为了进一步保证业务创建的安全性,还可以在用户接口单元10与业务逻辑编辑单元11之间设置一个安全接入控制单元,如图2所示本发明业务创建系统第二实施例。安全接入控制单元14负责业务开发者的权限控制,根据业务开发者的级别控制其访问业务逻辑编辑单元内不同业务逻辑编辑功能的权限。可以通过认证、数字证书、分级权限等方式来实现对业务开发者的权限控制。
该实施例与图1所示第一实施例的另一个不同之处在于,在业务管理单元13和业务类别存储单元11之间增加了业务类别维护单元15,用以维护业务类别存储单元中存储的业务类别目录。在业务部署单元将开发的新的业务逻辑部署到业务应用服务器上后,由业务类别维护单元15将该业务的类别添加到业务类别目录中。这样,在此后如果开发者需要建立的业务逻辑需要该业务类别,就可以从该目录中查询到,从而方便开发组合型业务。
在进行业务部署时,可以指明以下参数:
(1)业务类。该信息包括:业务类名;业务类的接口期望(可选),接口期望中指明了期望的输入、输出参数。
(2)业务类间的数据流及控制流顺序。该信息包括:业务类的运行顺序;每一个业务类的输入参数及输出参数的处理。
(3)该逻辑抽象状态标记。该标记指明该业务逻辑的抽象状态,例如:
0:具体业务逻辑;
1:指明具体业务但没有接口调用文件的业务逻辑;
2:指明具体业务类别但没有指明具体业务也没有接口调用文件的业务逻辑;
3:没有指明具体业务类别也没有指明具体业务,也没有接口调用文件的业务逻辑。
(4)备选输入参数。该参数指明所对应的业务类,当该业务在被调用的时候用户给出的具体参数不够时,可以作为补充填入。
(5)运行控制参数。该参数指明运行控制中需要参照的数据,例如:定时,当一段抽象业务逻辑被指明运行控制参数为:当总映射处理时间>10秒则失败。
(6)用户提示信息,当该业务逻辑被运行的时候呈现给用户的提示信息。
(7)期望参数。在期望参数部分指明参数的类型,当用户输入数据的时候对该类型进行比较以确定用户输入信息的合法性。
在述参数中,业务类和业务类间的数据流及控制流顺序参数是必须的,其他参数是可选的。
另外,还可以在该系统中设置一个业务信息注册单元16,与业务管理单元13相连,用于将部署到业务应用服务器上的业务逻辑的信息添加到现有网络的业务目录中。根据需要,可以包括以下这些信息:
(1)业务逻辑的接口描述信息(包括输入、输出、通信协议等),典型的如WSDL(Web服务描述语言)描述;
(2)业务逻辑的提供商信息,例如:提供商:AA;地址:XXX;
(3)业务逻辑提供的服务的描述信息,例如:该业务根据输入的地理位置,提供相对应的天气预报等;
(4)业务逻辑所属的类别,例如:位置服务类;
(5)业务逻辑所部署于的业务应用服务器的物理地址或逻辑地址,例如:URL(统一资源定位)地址。
当然,业务应用服务器也可能提供了注册功能。此时,可以直接通过业务应用服务器提供的注册功能将创建的业务逻辑的信息添加到现有网络的业务目录中。
参照图3,图3是本发明业务创建方法的实现流程图,包括以下步骤:
步骤301:建立业务类别目录。
所述业务类别目录包括:与业务类别相关的信息及与业务相关的信息。其中,
与业务类别相关的信息主要有:
1.当前的标准业务分类表,例如:位置服务类、天气预报类等;
2.每个类别的接口说明,例如:输入输出参数类型、个数、参数是否可选。
与业务相关的信息主要有:
1.业务逻辑的接口描述信息(输入、输出、通信协议等),典型的如WSDL描述;
2.业务逻辑的提供商信息,例如:提供商:AA;地址:XXX;
3.业务逻辑的所提供的服务的描述信息,例如:该业务根据输入的地理位置,提供相对应的天气预报;
4.业务逻辑所属的类别,例如:位置服务类;
5.业务逻辑所部署于的业务应用服务器的物理地址或逻辑地址,例如:URL地址。
上述与业务类别相关的信息为必选信息,与业务相关的信息可以根据实际需要来选择,可以配合现有网络的业务目录来共同使用。
步骤302:请求建立新业务。
步骤303:查找所述业务类别目录中是否有符合该新业务的业务类。如果有,则进到步骤304;否则,进到步骤305。
步骤304:根据业务类别目录中的业务类创建抽象业务逻辑。
首先查询业务分类目录是否有符合需要的具体业务的业务类;如果有,则将该业务类代替该具体业务,并指定接口期望;如果没有,则跳过。
反复执行以上步骤,直到需要创建的业务逻辑中的所有需要的具体业务均被处理过。
例如:希望创建某组合业务:“先调用具体位置服务A,接口调用文件为FA,然后调用具体天气预报服务B,接口调用文件为FB,返回结果”。
查询业务的分类目录,没有查询到符合具体天气预报服务B的天气预报类别,查询到位置服务类CA,则用CA代替具体的位置服务A,并指定针对该类服务的接口期望XXX,结果生成抽象业务逻辑:“先调用位置服务类,接口期望为XXX,然后调用具体天气预报服务B,接口调用文件为FB,返回结果”。
步骤305:创建具体业务逻辑。
比如,可以利用预先定义好的脚本开发及解释翻译环境,通过写脚本的方式进行业务开发。
步骤306:对新业务逻辑进行测试。
比如通过预先设定好的测试脚本,模拟运行过程,判断输出是否正确。
步骤307:判断测试是否通过。如果通过,则进到步骤308;否则,返回步骤302,重新创建符合要求的新业务逻辑。
步骤308:将创建的新业务逻辑部署到业务应用服务器上。
在进行业务部署时,首先设置创建的新业务逻辑运行信息,所述运行信息至少包括:业务类及业务类间的数据流及控制流顺序,还可以包括:该逻辑抽象状态标记、备选输入参数、运行控制参数等,具体描述在前面已有说明。然后,将这些运行信息写到业务应用服务器的相关联文件中。
步骤309:将该新业务逻辑的信息添加到业务分类目录中。
在将新业务逻辑布置到业务应用服务器上后,为了方便以后的应用,还可以将该新业务逻辑的信息添加到现有网络的业务目录中。
图4本发明业务执行系统的一个优选实施例的原理框图:
在该实施例中,本发明业务执行系统包括:业务存储单元20、业务逻辑运行单元21和服务映射中心22。其中,业务存储单元20用于存储业务逻辑,所述业务逻辑包括:具体业务逻辑和抽象业务逻辑;业务逻辑运行单元21用于根据用户的请求调用业务存储单元20中的相应业务,根据该业务逻辑为用户提供具体服务;服务映射中心22用于根据业务逻辑运行单元21的指令将业务逻辑运行单元中运行的抽象业务逻辑转换为具体业务逻辑。
由于在业务存储单元20中不仅存储了具体业务逻辑,而且还存储了抽象业务逻辑,因此,在用户需要为其提供某种业务时,首先由业务逻辑运行单元21根据用户的请求,调用相应的业务逻辑。根据用户请求业务时提供的参数,可能找到对应的具体业务逻辑,也可能只找到对应的抽象业务逻辑。对此下面分别进行说明。
如果用户请求的组合业务为具体业务逻辑,即该业务逻辑中指明所需要调用的服务集是具体的服务(在现有网络的业务目录上可查询到的具体服务),例如,该组合业务逻辑中指明:“先调位置服务(业务ID为0001,业务目录地址为1000),再调用搜索服务(业务ID为0002,业务目录地址为1000)”其中位置服务与搜索服务是在现有网络的业务目录上注册了的两个具体的服务。这样的组合业务逻辑被调用时不需要经过服务映射中心进行服务映射,而是由业务逻辑运行单元直接根据该具体业务逻辑中的信息为用户提供该业务。其实现流程的一个实施例如图5所示:
1.用户向业务逻辑运行单元发起业务调用请求,该请求中包括业务ID、输入参数等信息;
2.业务逻辑运行单元根据用户的请求参数从业务存储单元中获取相应的业务逻辑,该业务逻辑为具体业务逻辑;
3.业务逻辑运行单元基于该具体业务逻辑中指明的具体服务集及各服务的调用顺序,开始顺序调用每一个服务。向业务提供端进行服务调用;
4.业务提供端返回调用结果;
5.业务逻辑运行单元返回最终结果给用户。
上述步骤3~4可以多次执行。
如果用户请求的组合业务为抽象业务逻辑,即该业务逻辑中指明所需要调用的服务集不是具体的服务(在业务网络业务目录上可查询到的具体服务),而是对具体服务的一种抽象。例如,该组合业务逻辑中指明:“先调位置服务,再调用搜索服务”其中位置服务与搜索服务仅仅是两个类别的服务,并非某具体服务。这样的组合业务逻辑被调用时需要经过服务映射中心进行服务映射,将该抽象业务逻辑转换为具体的业务逻辑,然后再由业务逻辑运行单元根据该具体业务逻辑中的信息为用户提供该业务。
其实现流程的一个实施例如图6所示:
1.用户向业务逻辑运行单元发起业务调用请求,该请求中包括业务ID、输入参数等信息。
2.业务逻辑运行单元根据用户的请求参数从业务存储单元中获取相应的业务逻辑,该业务逻辑为抽象业务逻辑。
3.业务逻辑运行单元向服务映射中心发送分析逻辑请求,该请求中具体包括了:
(1)用户的输入参数
(2)抽象业务逻辑中具体包括以下参数信息:
a)业务类。该信息包括:业务类名;业务类的接口期望(可选),接口期望中指明了期望的输入、输出参数。
b)业务类间的数据流及控制流顺序。该信息包括:业务类的运行顺序;每一个业务类的输入参数及输出参数的处理。
c)该逻辑抽象状态标记。该标记指明该业务逻辑的抽象状态,例如:0:具体业务逻辑;1:指明具体业务但没有接口调用文件的业务逻辑;2:指明具体业务类别但没有指明具体业务也没有接口调用文件的业务逻辑;3:没有指明具体业务类别也没有指明具体业务,也没有接口调用文件的业务逻辑。
d)备选输入参数。该参数指明所对应的业务类,当该业务在被调用的时候用户给出的具体参数不够时,可以作为补充填入。
e)运行控制参数。该参数指明运行控制中需要参照的数据,例如:定时,当一段抽象业务逻辑被指明运行控制参数为:当总映射处理时间>10秒则失败。
(3)还可以包括辅助服务映射中心进行映射的映射策略,例如:要求映射过程中选择具体业务时业务的通信协议必须为HTTP协议。
4.服务映射中心与现有网络中的业务目录交互,以获得业务的描述、接口等相关信息(该步骤可以单独执行,与本流程是异步的)。
5.服务映射中心分析该抽象业务逻辑,分析出逻辑中所包含的服务的类别。
6.服务映射中心将服务类别按照一定的规则映射为具体的服务。
7.服务映射中心将相关的信息按照具体服务所要求的接口规范生成符合的接口调用请求,并生成新的业务逻辑,该逻辑是指定了具体服务及相应的接口调用文件的具体业务逻辑。
以上第5~第7步会按照所处理的抽象业务逻辑的抽象状态来选择处理,例如:当抽象状态为2(指明具体业务类别但没有指明具体业务也没有接口调用文件的业务逻辑)时,第5步不用处理;同理,状态为1(指明具体业务但没有接口调用文件的业务逻辑)时,第5~第6两步不用处理。
8.服务映射中心将执行结果发送到业务逻辑运行单元,在该步骤中,服务映射中心输出到业务逻辑运行单元的信息包括具体业务逻辑信息,主要有:
a)具体业务间的数据流及控制流顺序;
b)针对具体业务的接口调用文件。
除上述参数外,还可以包括可以代替该具体业务的其他具体业务及接口调用文件,以及服务映射中心执行的情况报告信息。
9.业务逻辑运行单元基于该具体业务逻辑中指明的具体服务集及各服务的调用顺序,开始向具体业务的提供端顺序调用每一个业务。
10.具体业务的提供端返回调用结果。
根据具体业务逻辑中的具体业务的个数,以上第9、10步骤可以多次执行。
11.业务逻辑运行单元返回调用结果给用户。
参照图7,图7是图4所示实施例中本发明业务执行系统中业务逻辑运行单元第一实施例的原理框图:
业务逻辑运行单元包括:用户接口单元211、业务选择单元212、业务执行单元213。其中,用户接口单元211为用户提供与系统交互的界面,获取用户请求业务的参数;业务选择单元212用于根据用户请求业务的参数选择业务存储单元中对应的业务逻辑;业务执行单元213用于判断所述业务选择单元选择的业务逻辑类型,如果是具体业务逻辑,则直接访问对应的服务,如果是抽象业务,则调用服务映射中心将该抽象业务逻辑转换为具体业务逻辑,然后访问该具体业务逻辑对应的服务。
业务逻辑运行单元为用户提供业务的详细过程可参照前面对于图5和图6的描述,在此不再赘述。
参照图8,图8是本发明业务执行系统中业务逻辑运行单元第二实施例的原理框图:
与图7所示实施例不同的是,在业务逻辑运行单元21中增加了具体业务可用性探测单元214,用于在具体业务逻辑中的具体业务被执行前对该具体业务的可用性进行探测,比如,对业务是否可以被访问(没有断开、允许访问等)状态进行探测。可通过向具体服务发送特定的探测消息的方式进行探测。对具体服务的探测不仅可以针对用户请求的业务本身就是具体业务的情况,而且可以针对用户请求的业务本身是抽象业务的情况,在这种情况下,通过服务映射中心将该抽象业务逻辑转换为具体业务逻辑,并将该具体业务逻辑返回业务执行单元后,业务执行单元就可以调用具体业务可用性探测单元214对该具体业务逻辑中所调用的具体业务的可用性进行探测。例如,具体业务逻辑中所调用的具体业务的HTTP地址为HTTP://www.MySevice,则可以通过ping等方式进行可达性探测。又例如,在网络上存在有注册当前业务状态(激活、休眠)的信息中心,则可以查询该中心获得业务是否可用的信息。具体业务可用性探测单元214将探测结果返回给业务执行单元213,业务执行单元根据该探测结果即可决定是否选用该具体业务。
为了进一步选择出符合要求的具体业务,还可以在业务逻辑运行单元21中设置具体业务筛选单元215,以便在具体业务逻辑中的具体业务被执行前根据预先设定的筛选策略确定是否调用该具体业务,以及在该具体业务被调用后确定是否使用该具体业务的返回结果。具体业务筛选单元215将结果返回给业务执行单元213,业务执行单元根据该结果即可决定是否选用该具体业务。
可以在调用具体业务之前或者调用之后,根据事先设定的筛选策略(例如:该业务的提供商必须为AA;该业务的地址必须属于XXX~XXX的地址范围)决定是否调用该具体业务。如果选择该具体业务,则进行正常调用;如果不能调用该具体业务,则可以重新选择其他的候选具体业务。这些候选具体业务可以是服务映射中心在将抽象业务逻辑映射为具体业务逻辑后向业务逻辑运行单元返回的可以候选的具体业务,也可以通过再次调用服务映射中心的相应单元获得。
事先设定的筛选策略也可以是检查调用是否满足预先设定的条件,例如:要求具体业务的运行时间不能超过3S,而某个具体业务超时了,则不满足该条件。此时可以给用户返回调用失败,或者将调用该具体业务的结果作废,选择候选具体业务再次调用。
参照图9,图9是本发明业务执行系统中服务映射中心第一实施例的原理框图:
服务映射中心包括:映射控制单元221、业务类别存储单元222、现有网络业务目录存储单元223、服务需求分析单元224、具体服务映射单元225、请求生成单元226。其中,映射控制单元221用于从业务逻辑运行单元接收抽象业务逻辑;业务类别存储单元222用于存储当前定义了的业务类别目录;现有网络业务目录存储单元223用于存储现有网络中的业务目录;服务需求分析单元224用于根据映射控制单元的控制,对映射控制单元接收的抽象业务逻辑进行分析,并根据所述当前定义了的业务类别目录确定该抽象业务逻辑所调用的业务类别;具体服务映射单元225根据映射控制单元的控制,基于服务需求分析单元分析出的业务类别,选择现有网络业务目录中能够满足该业务类别的具体服务代替服务类别;请求生成单元226用于根据映射控制单元的控制,生成对应于所述具体服务信息的接口调用文件。然后,由映射控制单元将具体服务及与其相应的接口调用文件组成具体业务逻辑(具体业务逻辑即在逻辑中指明了具体要调用的具体服务,以及针对具体服务的接口调用文件的业务逻辑)。
服务需求分析单元224对抽象业务逻辑进行分析,分析出该逻辑所调用的服务类别,这些类别存储于业务类别存储单元222中的业务类别目录中。例如,一段业务逻辑为:“取得13590305088的当前位置,根据其位置向其发送天气预报。”则服务需求分析单元分析出该业务中存在两个服务类别:位置服务类别和天气预报服务类别。
参照图10,图10是本发明业务执行系统中服务映射中心第二实施例的原理框图:
与图9所示实施例不同的是,在该实施例中,增加了服务接口映射单元227、服务探测单元228和服务状态分析单元229。其中,
服务接口映射单元227根据映射控制单元的控制,基于具体服务映射单元确定的具体服务信息,获取具体服务的接口信息,并根据这些信息进行服务接口匹配,判断服务该服务的输入、输出、调用方式、通信协议是否符合要求,然后,向映射控制单元返回映射结果,映射控制单元根据该映射结果决定是否选择该具体服务。
服务接口映射单元227基于具体服务映射单元225所指定的具体服务的信息,查询现有网络中的业务目录,取得具体服务的接口信息,比如WSDL(Web服务描述语言,以端口集合的形式来描述Web服务);查询(向业务目录查询)业务的状态信息(包括当前服务是否激活、是否是漫游状态、服务所在的物理地域等信息),根据业务的状态信息并基于一定的策略对业务的调用所采用的协议进行适配,比如采用SOAP(简单对象访问协议)/HTTP(超文本传输协议)等协议;对调用方式进行适配,比如是否保存会话状态,请求的类别为请求+响应,或者无响应等;对接口格式进行适配,比如现有提供的业务逻辑中的参数是否能够适配业务的所要求的接口要求、以及业务的输出是否能够满足业务逻辑中要求的输出参数要求等。
比如,采用以下策略:当业务状态为漫游的时候不选择该业务;例如:当业务所需的交互协议是HTTP时禁止选择等。
服务探测单元228用于根据映射控制单元的指令探测所述具体服务当前是否可用。例如,具体业务逻辑中所调用的具体业务的HTTP地址为HTTP://www.MySevice则可以通过ping等方式进行可达性探测,然后向映射控制单元返回探测结果。映射控制单元根据该探测结果确定是否选用该具体服务。
服务状态分析单元229用于根据映射控制单元的指令判断所述具体服务当前的状态,包括服务是否激活、是否漫游、服务所在的物理地域,例如,查询网络上业务提供端节点的业务状态维护部分,获得当前业务的状态(可用、不可用)信息,然后向映射控制单元返回分析结果。映射控制单元根据该分析结果即可决定是否选用该具体服务。
在实际应用中,服务接口映射单元、服务探测单元和服务状态分析单元都可以根据需要选用。而且,可以由映射控制单元在服务接口映射单元获取具体服务的接口信息之前或之后对其进行调用。
当业务逻辑运行单元需要运行抽象业务逻辑时,可以采用以下两种方式:
一种为由业务逻辑运行单元控制,分别调用服务映射中心中相应的功能单元(服务需求分析单元、具体服务映射单元、服务接口映射单元)以实现有针对性的服务映射。例如,抽象业务逻辑中已经指明了所调用的具体业务,但没有相应的接口调用文件,则可以由业务逻辑运行单元控制仅调用请求生成单元,生成相应的接口调用文件。
另一种为业务逻辑运行单元传送抽象业务逻辑给服务映射中心,在服务映射中心内的映射控制单元的控制下实现服务映射,生成具体的组合业务逻辑及接口适配请求。
图11示出了第二种方式下的服务映射实施例的流程:
1.业务逻辑运行单元向服务映射中心传送抽象业务逻辑,例如一段业务逻辑是:“取得13590305088的当前位置,根据其位置向其发送天气报告。”。
2.服务映射中心的映射控制单元向服务需求分析单元发送分析业务类别请求。
3.服务需求分析单元通过查询业务类别目录获得现有的标准服务类别。
4.服务需求分析单元分析并对比给定的抽象业务逻辑及现有的标准服务类别(可通过查询业务类别目录获得),分析出抽象业务逻辑中包含的服务类别。在此,所需要进行的操作包括:将业务逻辑中给出的业务类分析出对应于现有服务类别的业务类、根据名字匹配、配合接口期望匹配等技术实现分析。例如,分析出该业务中的两个服务类别:位置服务类和天气预报服务类。
5.服务需求分析单元返回该分析结果给映射控制单元。
6.映射控制单元基于分析结果,重新对业务逻辑进行生成,生成为指定了具体业务类别的抽象业务逻辑。例如:根据位置服务类取得13590305088的位置,将该位置作为参数输入天气预报服务类,返回天气预报服务类的结果。
7.映射控制单元向具体服务映射单元发送基于业务类别分析具体业务的请求,该请求中包括了前述步骤中分析出的业务类别,可选择携带一些帮助选择具体服务所需要的参数,用户给出的时间参数等。
8.具体服务映射单元通过向现有网络业务目录进行查询,获得现有的具体业务的信息。
9.具体服务映射单元分析并对比映射控制单元生成的指定了具体业务类别的抽象业务逻辑及现有的具体业务(通过向现有网络业务目录进行业务查询),选择具体的业务来代替抽象业务逻辑中的服务类别。例如,将位置服务类和天气预报服务类映射到具体的位置服务LocationService_A和天气预报服务WeatherForcast_A。
10.具体服务映射单元返回该分析结果给映射控制单元。
11.映射控制单元向服务探测单元要求探测具体服务映射单元分析出的具体业务是否可用,并基于服务探测单元返回的结果决定采用该具体业务(进行第14步骤)还是再一次调用具体服务映射单元并要求排除该具体业务(进行第7步骤)。
12.映射控制单元向服务状态分析单元要求分析具体服务映射单元分析出的具体业务的状态是否符合要求,并基于服务状态分析单元返回的结果决定采用该具体业务(进行第14步骤)还是再一次调用具体服务映射单元并要求排除该具体业务(进行第7步骤)。
13.映射控制单元向服务接口映射单元要求分析具体服务映射单元分析出的具体业务的接口信息是否符合要求,并基于服务接口映射单元返回的结果决定采用该具体业务(进行第14步骤)还是再一次调用具体服务映射单元并要求排除该具体业务(进行第7步骤)。
以上第11、12、13步骤是可选的,并且没有先后顺序,在实际运行中可以是在具体服务映射单元返回了具体业务后进行,也可以在具体服务映射单元在满足业务类别的多个具体业务进行选择过程中请求进行。
14.映射控制单元基于分析结果,重新对业务逻辑进行生成,生成为指定了具体要调用的业务的具体业务逻辑,例如:根据位置服务LocationService_A取得13590305088的位置,将该位置作为参数输入天气预报服务WeatherForcast_A,返回天气预报服务WeatherForcast_A的结果。
15.映射控制单元向请求生成单元发送基于具体业务查询生成针对具体业务的接口调用文件的请求,该请求中包括了前述步骤中分析出的具体业务,带有业务逻辑中指定的、需要在接口调用中使用的参数,以及用户的输入参数。
16.请求生成单元通过向现有网络的业务目录进行查询获得现有的具体业务的接口描述信息。
17.请求生成单元分析给定的具体业务及针对该业务的接口描述信息(通过查询现有网络的业务目录获得),针对具体业务的接口要求,生成针对具体业务的接口调用文件。例如:针对具体的位置服务LocationService_A的接口文件的格式要求,将参数“13590305088”及其他参数填入,生成具体的接口调用文件,然后针对具体的天气预报服务WeatherForcast_A的接口文件的格式要求,将参数“13590305088”及其他参数填入,生成具体的接口调用文件。
18.请求生成单元返回该结果给映射控制单元。
19.映射控制单元基于分析结果,重新对业务逻辑进行生成,生成为指定了具体要调用的具体业务,以及调用该业务所需要采用的接口调用文件的具体业务逻辑,例如:根据位置服务LocationService_A,采用接口调用文件1,取得13590305088的位置,将该位置作为参数,采用接口调用文件2,输入天气预报服务WeatherForcast_A,返回天气预报服务WeatherForcast_A的结果。
20.映射控制单元将生成的该具体业务逻辑返回给业务逻辑运行单元。
在上述步骤4中服务需求分析单元需要分析并根据抽象业务逻辑及现有业务类别目录中的服务类别,选择标准的服务类别来代替抽象业务逻辑中的服务类别。具体实现时可以有多种实现方式,下面举例说明。
假设传递给服务需求分析单元的业务逻辑如下表1所示:
表1:
<业务类别 是否给出=″全部″><业务类 ID=″1″><名字>物理位置</名字>。。。</业务类><业务类 ID=″2″><名字>天气报告</名字>。。。</业务类></业务类别> |
方式1.精确匹配:
通过对业务类别目录中的业务类别和给出的业务类别进行完全精确匹配来确定,本例中:
物理位置!=位置服务所以匹配不成立。
方式2.建立同义词库:
建立同义词库如下表2所示:
表2:
主名 |
同义词1 |
同义词2 |
... |
... |
位置服务 |
找位置 |
物理位置 |
... |
... |
本例中:物理位置是位置服务的同义词,则匹配成立。将匹配结果代替原有的类别,生成业务逻辑。
经过服务需求分析单元映射后的业务逻辑如下表3所示:
表3:
<业务类别 是否给出=″全部″><业务类 ID=″1″><名字>位置服务</名字>。。。</业务类><业务类 ID=″2″><名字>天气预报服务</名字>。。。</业务类></业务类别> |
在以上的方式中还可以配合服务类别的接口期望进行进一步限定匹配,即在匹配中不但要匹配业务类的名字,还要匹配业务类的接口期望。
例如传递给具体服务映射单元的业务逻辑如下表4所示:
表4:
<业务类ID=″1″><名字>物理位置</名字><说明>取得当前手机号的物理位置信息</说明><接口期望><输入><参数ID=″1″类别=″字符串″></参数></输入><输出><参数ID=″2″类别=″(经度/维度)″></参数></输出></接口期望></业务类> |
现有的业务类别如下表5所示:
表5:
物理位置==位置服务(同义词2);
接口期望(输入)匹配、接口期望(输出)匹配;
所以全部匹配。
经过服务需求分析单元映射后的业务逻辑如下表6所示:
表6:
<业务类别 是否给出=″全部″><业务类 ID=″1″><名字>位置服务</名字>。。。</业务类><业务类 ID=″2″><名字>天气预报服务</名字>。。。</业务类></业务类别> |
在上述步骤9中具体服务映射单元分析并对比映射控制单元生成的指定了具体业务类别的抽象业务逻辑及现有的具体业务(通过向现有网络业务目录进行业务查询),选择具体的业务来代替业务逻辑中的服务类别。其结果延续上面的例子如下表7所示:
表7:
<具体业务 是否给出=″全部″><业务ID=″1″><名字>LocationService_A</名字><描述>.。。。</描述>。。。。。</业务><业务 ID=″2″><名字>WeatherForcast_A</名字><描述>.。。。</描述>。。。。。。</业务></具体业务> |
请求生成单元分析给定的具体业务及针对该业务的接口描述信息(通过查询现有网络的业务目录获得),针对具体业务的接口要求,生成针对具体业务的接口调用文件,根据具体服务的接口信息生成接口调用文件的具体过程为:
(1)按照接口信息中的要求的交互协议格式生成消息格式(例如:要求为SOAP,则生成SOAP格式);
(2)按照接口信息中的操作名生成请求消息体中的操作域;
(3)按照接口信息中的操作的输入参数格式,将用户输入参数、上一具体业务调用的输出参数占位符(如为第一个具体业务则不需要)、备选输入参数(如需要时才填入)按照格式和顺序加入(2)中的操作域,生成接口调用文件。
例如:位置业务的接口信息为:
LocationService_A的接口描述文件(以WSDL为例)
...<message name=″UserPhoneNumber″><part name=″Number″type=″xs:string″/></message><message name=″LocationInfo″><part name=″Location″type=″LocationType″/></message><portType name=″LocationService_A_port″><operation name=″getLocation″><input message=″UserPhoneNumber″/><output message=″LocationInfo″/></operation></portType>... |
经过(1)后按照其要求生成SOAP调用的格式:
<env:Envelope xmlns:env=″http://www.w3.org/2001/12/soap-envelope″><env:Header>。。。</env:Header><env:Body></env:Body></env:Envelope> |
经过(2)后在消息体创建操作域(getLocaton):
<env:Envelope xmlns:env=″http://www.w3.org/2001/12/soap-envelope″><env:Header>。。。</env:Header><env:Body><getLocation></getLocation>。。。</env:Body></env:Envelope> |
经过(3)步后生成的针对LocationService_A的接口调用文件为:
<env:Envelope xmlns:env=″http://www.w3.org/2001/12/soap-envelope″><env:Header>。。。</env:Header><env:Body><getLocation><name>13590305088</name></getLocation>。。。</env:Body></env:Envelope> |
如该具体业务不是业务逻辑中第一个被调用的业务,还需要别的业务的调用输出作为输入,则在第(3)步中将相应的占位符加入进来,例如位置服务之后的天气预报服务的接口调用文件生成如下:
<env:Envelope xmlns:env=″http://www.w3.org/2001/12/soap-envelope″><env:Header>。。。</env:Header><env:Body><getWeatherForcast><location>#占位符:绑定LocationService_A的输出</location></getWeatherForcast>。。。</env:Body></env:Envelope> |
参照图12,图12示出了本发明业务执行方法的实现流程,包括以下步骤:
步骤1201:获取用户请求的业务逻辑。
步骤1202:判断该业务逻辑是否为抽象业务逻辑。如果是,则进到步骤1203;否则,进到步骤1204。
步骤1203:将该抽象业务逻辑转换为具体业务逻辑。
首先,根据已定义了的服务类别确定所述抽象业务逻辑所调用的服务类别;然后,基于所述服务类别和预定策略,选择当前可以访问的具体服务中能够满足该服务类别的具体服务;最后,根据该具体服务的接口信息生成相应的接口调用文件,并将具体服务及相应的接口调用文件组成具体业务逻辑。
步骤1204:根据具体业务逻辑为用户提供服务。
在具体业务逻辑中的具体业务被执行前,为了保证为用户提供可靠的服务,可以在具体业务逻辑中的具体业务被执行前对该具体业务的可用性进行探测。另外,还可以根据预先设定的筛选策略确定是否调用该具体业务,以及在该具体业务被调用后确定是否使用该具体业务的返回结果。这两个过程的执行没有先后顺序,而且也可以需要来选用。
利用本发明系统,可以方便地为用户提供各种服务,尤其是组合业务服务。
参照图13所示利用本发明系统对用户提供服务的组网实施例示意图,在该示例中,一个组合业务为根据用户的手机号取得天气情况,为用户提供业务的流程如下:
(0)业务创建系统创建一段抽象业务逻辑并下发到业务逻辑运行平台,该过程为生成并部署业务逻辑,在以后的业务实际运行中将不再进行。该段逻辑示例如下:
<?xml version=″1.0″encoding=″gb2312″?><业务逻辑 抽象=″是″><描述><业务类别 是否给出=″全部″><业务类 ID=″1″><名字>物理位置</名字><说明>取得当前手机号的物理位置信息</说明><接口期望><输入><参数ID=″1″类别=″字符串″/></输入><输出><参数 ID=″2″类别=″(经度/维度)″/></输出></接口期望></业务类><业务类 ID=″2″><名字>天气报告</名字><说明>根据当前的物理位置返回天气情况</说明><接口期望><输入><参数 ID=″1″类别=″(经度/维度)″/></输入><输出><参数 ID=″1″类别=″天气枚举型″/> |
</输出></接口期望></业务类></业务类别></描述><参数表><期望参数ID=″1″是否必须=″true″type=″字符串″>给用户说明:请输入手机号</期望参数><期望参数ID=″2″是否必须=″false″type=″日期格式″>给用户说明:请输入查询日期,格式如XX/XX/XX</期望参数></参数表><运行控制><运行 ID=″1″><业务类别>1</业务类别><输入 参数 ID=″1″/><输出>保存</输出></运行><运行 ID=″2″><业务类别>1</业务类别><输入>运行1的输出</输入><输出>保存</输出></运行><返回>返回运行2的输出</返回></运行控制></业务逻辑> |
(1)用户终端通过网络连接到业务逻辑运行平台,请求该组合业务。
(2)业务逻辑运行平台根据业务逻辑要求用户输入信息(期望参数)。
(3)用户输入参数(13590305088)。
(4)业务逻辑运行平台发现该业务为抽象业务逻辑,则将用户的输入信息和原有的抽象业务逻辑发送给服务映射中心要求映射为具体业务逻辑。
可以将用户的输入参数和原有的抽象逻辑结合发送,比如:
将原有的:
<参数表><期望参数 ID=″1″是否必须=″true″type=″字符串″>给用户说明:请输入手机号</期望参数><期望参数 ID=″2″是否必须=″false″type=″日期格式″>给用户说明:请输入查询日期,格式如XX/XX/XX</期望参数></参数表> |
替换为:
<参数表><参数 ID=″1″>13590305088</参数></参数表> |
(5)服务映射中心将映射的结果返回给业务逻辑运行平台。
(6)业务逻辑运行平台根据具体业务逻辑的规定调用相应的服务。
(7)业务逻辑运行平台返回最终结果给用户。
为了使各种抽象业务能够正常运行,本发明还提供了一种抽象业务映射系统。图14示出了本发明抽象业务映射系统的一个优选实施例的原理框图:
该系统包括:映射控制单元221、业务类别存储单元222、现有网络业务目录存储单元223、服务需求分析单元224、具体服务映射单元225、请求生成单元226。其中,映射控制单元221用于从业务逻辑运行单元接收抽象业务逻辑;业务类别存储单元222用于存储当前定义了的业务类别目录;现有网络业务目录存储单元223用于存储现有网络中的业务目录;服务需求分析单元224用于根据映射控制单元的控制,对映射控制单元接收的抽象业务逻辑进行分析,并根据所述当前定义了的业务类别目录确定该抽象业务逻辑所调用的业务类别;具体服务映射单元225根据映射控制单元的控制,基于服务需求分析单元分析出的业务类别,选择现有网络业务目录中能够满足该业务类别的具体服务;请求生成单元226用于根据映射控制单元的控制,用于生成对应于所述具体服务信息的接口调用文件。
除此之外,本发明抽象业务映射系统可以还包括:服务接口映射单元227、映射控制单元调用服务探测单元228、服务状态分析单元229。这三个单元可以任意选用,以使抽象业务逻辑映射后的具体业务逻辑更有效。
其中,服务接口映射单元227与映射控制单元相连,根据映射控制单元的控制,基于具体服务映射单元确定的具体服务信息,获取具体服务的接口信息,并根据这些信息进行服务接口匹配,判断服务该服务的输入、输出、调用方式、通信协议是否符合要求,然后向映射控制单元返回映射结果。映射控制单元根据该映射结果决定是否选用该具体服务。
服务探测单元228用于根据映射控制单元的指令探测所述具体服务当前是否可用,例如,在获知了具体服务的地址后通过尝试对该地址进行连接以确定该服务是否正常,并向映射控制单元返回探测结果。映射控制单元根据该探测结果决定是否选用该具体服务。
服务状态分析单元229用于根据映射控制单元的指令判断所述具体服务当前的状态,包括服务是否激活、是否漫游、服务所在的物理地域,例如,在网络上存在有注册当前业务状态(激活、休眠)的信息中心,则可以查询该中心获得业务是否可用的信息。以及查询服务提供端所提供的信息以判断服务是否处于漫游状态,并向映射控制单元返回分析结果。映射控制单元根据该分析结果决定是否选用该具体服务。
服务需求分析单元224对抽象业务逻辑进行分析,分析出该逻辑所调用的服务类别,这些类别存储于业务类别存储单元222中的业务类别目录中。例如,一段业务逻辑为:“取得13590305088的当前位置,根据其位置向其发送天气预报。”则服务需求分析单元分析出该业务中存在两个服务类别:位置服务类别和天气预报服务类别。
图14中的服务需求分析单元的一个实施例的原理如图15所示:
包括:逻辑分析控制单元241和行业知识库243。其中,行业知识库242用于存储行业语义信息;逻辑分析控制单元241用于分析所述抽象业务逻辑是否给出了业务类别,如果给出了业务类别,则检索所述业务类别目录,将给出的业务类别转换为同类的业务类别目录中定义的业务类别;如果未给出业务类别,则利用所述行业知识库中的行业语义信息确定该抽象业务逻辑的业务类别。
对抽象业务逻辑的服务类别的分析过程如下:
1.首先由逻辑分析控制单元分析所给的抽象业务逻辑是否给出了业务类别;
2.如果给出了业务类别,则查询业务类别目录,判断所给出的业务类别是否在业务类别目录中具有相同或者等价的类;如果有,则确定该业务类别;
3.如果没有给出业务类别,则采用预定的策略与行业知识库进行交互,进行业务类别分析,比如进行严格的服务匹配、不进行语义的类别分析等策略;
具体可采用下两种方法进行类别分析:
a)对抽象业务逻辑进行简单的分析,将其中的某部分尝试替换成业务类别目录中存在的类别,这种方法适用于抽象业务逻辑中简单地指出了服务的方式。例如,假设抽象业务逻辑如下表7所示:
表7:
<业务类别 是否给出=″全部″><业务类 ID=″1″><名字>物理位置</名字>。。。</业务类><业务类 ID=″2″><名字>天气报告</名字>。。。</业务类></业务类别> |
而业务类别目录中存在两个业务类:
表8:
主名 |
。。。 |
位置服务 |
。。。 |
天气预报服务 |
。。。 |
方式1.精确匹配:
通过对现有业务类别目录中的业务类别和给出的业务类别进行完全精确匹配来确定,本例中:
物理位置!=位置服务 所以匹配不成立。
方式2.建立同义词库:
建立同义词库如下表9所示:
表9:
主名 |
同义词1 |
同义词2 |
... |
... |
位置服务 |
找位置 |
物理位置 |
... |
... |
本例中:物理位置是位置服务的同义词,则匹配成立。
在以上的方式中还可以配合服务类别的接口期望进行进一步限定匹配,即在匹配中不但要匹配业务类的名字,还要匹配业务类的接口期望。
例如抽象业务逻辑如下表10所示:
表10:
<业务类 ID=″1″><名字>物理位置</名字><说明>取得当前手机号的物理位置信息</说明><接口期望><输入><参数 ID=″1″类别=″字符串″></参数></输入><输出><参数 ID=″2″类别=″(经度/维度)″></参数></输出></接口期望></业务类> |
现有的业务类别目录如下表11所示:
表11:
物理位置==位置服务(同义词2);
接口期望(输入)匹配、接口期望(输出)匹配;
所以全部匹配。
b)通过对抽象业务逻辑进行语义上的分析,与行业知识库(存储有行业语义信息)进行交互,以达到更高的准确度;
4.通过上面a),b)的分析将抽象业务逻辑转换为指明了具体业务类别的业务逻辑,例如,<位置服务>取得13590305088的当前位置,<天气预报服务>根据其位置向其发送天气预报。
基于服务需求分析单元所分析出的服务类别和一定的策略,具体服务映射单元225选择能够满足指定服务类别的具体服务。在进行选择时,可以从现有网络业务目录存储单元223存储的当前可以访问的具体服务目录中选取,也可以按照一定条件查询现有网络中的业务目录。
例如:上例子中的位置服务可以选择为具体的服务提供商1提供的具体的位置服务等。
采用这样的抽象业务执行流程,每次抽象组合业务被调用时,都可以经由服务映射中心生成具体的组合业务逻辑,而这样的具体组合业务并不一定相同,例如:以前业务请求时生成的具体组合业务逻辑中调用的是LocationService_A,而当LocationService_A出现问题的时候,本次业务调用可以生成调用LocationService_B的具体组合业务逻辑,避免了由于LocationService_A出现问题而导致该组合业务不可用。
具体服务映射单元225对抽象业务逻辑中的具体业务的分析过程如下:
1.首先具体服务映射单元访问现有网络业务目录,以获得符合业务逻辑中业务类别的具体业务信息,对应的具体业务可以有多个;
2.对查询到的具体业务进行筛选,筛选过程中可以配合接口期望做判断;
3.将筛选后的业务(可以有多个)按顺序分别进行具体映射。
服务接口映射单元226基于具体服务映射单元225所指定的具体服务的信息,查询现有网络中的业务目录,取得具体服务的接口信息,比如WSDL(Web服务描述语言,以端口集合的形式来描述Web服务);查询(向业务目录查询)业务的状态信息(包括当前服务是否激活、是否是漫游状态、服务所在的物理地域等信息),根据业务的状态信息并基于一定的策略对业务的调用所采用的协议进行适配,比如采用SOAP(简单对象访问协议)/HTTP(超文本传输协议)等协议;对调用方式进行适配,比如是否保存会话状态,请求的类别为请求+响应,或者无响应等;对接口格式进行适配,比如现有提供的业务逻辑中的参数是否能够适配业务的所要求的接口要求、以及业务的输出是否能够满足业务逻辑中要求的输出参数要求等。
比如,采用以下策略:当业务状态为漫游的时候不选择该业务;例如:当业务所需的交互协议是HTTP时禁止选择等。
图16示出了本发明抽象业务映射系统中服务接口映射单元的一个实施例的原理框图:
包括:接口分析控制单元251、接口策略单元252和适配单元253。其中,接口分析控制单元251用于获取所述具体服务映射单元确定的具体服务,并调用接口策略单元和适配单元,根据接口策略单元和适配单元的处理结果向映射控制单元返回使映射控制单元决定是否选择该具体服务的映射结果;接口策略单元252提供具体服务的选择策略,并根据该策略确定所述具体服务是否可以使用;适配单元253对接口策略单元确定的可以使用的具体服务进行适配。
适配单元253包括:接口格式适配子单元261、调用方式适配子单元262、交互协议适配子单元263。其中,交互协议适配子单元263用于根据所述具体服务的相关信息判断该具体服务使用的交互协议是否符合当前业务所要求的交互协议,如果不符合,则根据当前业务所要求的交互协议对所述具体服务使用的交互协议进行适配;调用方式适配子单元262用于根据所述具体服务的相关信息确定该具体服务使用的调用方式;接口格式适配子单元261用于根据所述具体服务的相关信息判断该具体服务的接口参数是否符合当前业务所要求的接口参数,如果不符合,则根据当前业务所要求的接口参数对所述具体服务使用的接口进行适配。
在进行接口格式适配时,需要对具体业务接口文件进行分析,判断当前给定的参数是否满足抽象业务逻辑中要求的输入条件,输出是否满足抽象业务逻辑的要求。比如,抽象业务逻辑中要求的输入条件是一个天气的枚举型参数,而所找到的具体的天气预报服务WeatherForcast_A的接口文件中指定的输入参数为字符串类型的手机号,这时就不能满足要求。
业务的调用方式可以分为几种:
<请求-响应型>,即接受一个请求并且可以返回一个响应;
<只请求-无响应型>,即接受一个请求但是并不返回响应;
<无请求-响应型>,即无需接受请求都会返回响应。
因此,在进行调用方式适配时,需要判断具体业务给定的调用方式是否满足网络要求。比如,需要天气预报返回响应,而具体的天气预报服务WeatherForcast_A为<只请求-无响应型>,则不能被使用。
在进行交互协议适配时,需要基于当前网络设备所要求的交互协议,判断具体业务的交互协议是否符合要求。例如,需要的具体天气预报服务的交互协议为HTTP,而当前具体的天气预报服务WeatherForcast_A的交互协议为SOAP,则不符合要求。
服务接口映射单元对业务接口的映射过程如下:
1.首先服务接口映射单元访问现有网络中的业务目录获得业务的信息及具体的接口信息;
2.从获得的业务信息中取出业务的状态信息并按预定策略进行筛选;
3.判断当前选定的业务是否可用可达,可通过探测的方式对是否可达进行检测,比如发送特定的消息到服务提供端;
4.判断是否符合要求的交互协议、调用方式及接口格式等;
5.判断具体业务是否可选并生成最终的业务调用请求文件。
以上的1~5步骤没有顺序关系,可以按照需要进行,并且可以按照一定的策略选择进行其中的几步。
参照图17,图17是本发明抽象业务映射方法的一个优选实施例的实现流程,包括以下步骤:
步骤1701:根据已定义了的服务类别确定抽象业务逻辑所调用的服务类别。
步骤1702:基于确定的服务类别和预定策略,选择当前可以访问的具体服务中能够满足该服务类别的具体服务。
步骤1703:获取具体服务当前的状态,包括服务是否激活、是否漫游、服务所在的物理地域。
步骤1704:对具体服务进行探测,判断其当前是否可用。如果可用,则进到步骤1705;否则,返回步骤1701。
步骤1705:获取具体服务的接口信息,并根据所述接口信息生成相应的接口调用文件;
步骤1706:将具体服务和与其相应的接口调用文件组成具体业务逻辑。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这些变形和变化而不脱离本发明的精神。