欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種會(huì)話處理的方法、設(shè)備和系統(tǒng)的制作方法

文檔序號(hào):7783442閱讀:187來(lái)源:國(guó)知局
一種會(huì)話處理的方法、設(shè)備和系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及計(jì)算機(jī)【技術(shù)領(lǐng)域】,尤其涉及一種會(huì)話處理的方法、設(shè)備和系統(tǒng)。用以實(shí)現(xiàn)API調(diào)用設(shè)備先后調(diào)用API代理上的多個(gè)API時(shí)的會(huì)話關(guān)聯(lián)。在本發(fā)明實(shí)施例提供的方法中,API代理在執(zhí)行第一API的處理流程中,緩存第一API對(duì)應(yīng)的會(huì)話的會(huì)話數(shù)據(jù);在執(zhí)行第二API的處理流程中,根據(jù)調(diào)用第二API的請(qǐng)求中包括的用于標(biāo)識(shí)第一API對(duì)應(yīng)的會(huì)話的外部事務(wù)標(biāo)識(shí)ID,獲取在執(zhí)行第一API的處理流程中緩存的會(huì)話的會(huì)話數(shù)據(jù),根據(jù)獲取的會(huì)話數(shù)據(jù)對(duì)會(huì)話進(jìn)行處理。其中,API代理根據(jù)調(diào)用第二API的請(qǐng)求中的外部事務(wù)ID獲取第一API對(duì)應(yīng)的會(huì)話的會(huì)話數(shù)據(jù),并根據(jù)獲取的會(huì)話數(shù)據(jù)進(jìn)行會(huì)話處理,實(shí)現(xiàn)了第一API和第二API會(huì)話關(guān)聯(lián)。
【專利說(shuō)明】一種會(huì)話處理的方法、設(shè)備和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)【技術(shù)領(lǐng)域】,尤其涉及一種會(huì)話處理的方法、設(shè)備和系統(tǒng)。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,越來(lái)越多的服務(wù)都可以通過(guò)互聯(lián)網(wǎng)提供,比如:訂餐、訂票、購(gòu)物等。傳統(tǒng)方式下,互聯(lián)網(wǎng)服務(wù)提供商通過(guò)自己建立的WEB門(mén)戶為用戶提供服務(wù),由于客戶需求經(jīng)常變化時(shí),需要互聯(lián)網(wǎng)服務(wù)提供商根據(jù)客戶需求不斷更新WEB門(mén)戶的界面,維護(hù)難度較大。
[0003]因此,部分互聯(lián)網(wǎng)服務(wù)提供商將提供的服務(wù)以應(yīng)用程序編程接口(ApplicationProgramming Interface, API)的方式對(duì)外開(kāi)放,第三方開(kāi)發(fā)者或互聯(lián)網(wǎng)公司利用這些API開(kāi)發(fā)多種應(yīng)用,以滿足用戶個(gè)性化、多樣性的需求。
[0004]如圖1所示,當(dāng)前的一種常用的開(kāi)放API的方法為:在調(diào)用API的客戶端和真正提供互聯(lián)網(wǎng)服務(wù)的API (API Backend, API后端)之間增加一個(gè)API代理(API代理),終端用戶(End User)通過(guò)客戶端使用API后端提供的服務(wù),運(yùn)行客戶端的本地應(yīng)用程序(NativeApp)或Web應(yīng)用程序(Web App),經(jīng)由API代理訪問(wèn)API后端,使用API后端提供的服務(wù)。
[0005]圖1中的API代理通常也稱作API網(wǎng)關(guān)(API Gateway)、能力開(kāi)放平臺(tái)(Capability Open Platform)或 API 開(kāi)放平臺(tái)(API Open Platform),在 API 代理中實(shí)現(xiàn)API調(diào)用的管理、控制、計(jì)費(fèi)、接口協(xié)議歸一化等功能。
[0006]圖1中終端用戶在運(yùn)行客戶端上的本地應(yīng)用程序或Web應(yīng)用程序時(shí),本地應(yīng)用程序或Web應(yīng)用程序需要調(diào)用API后端的API。為了對(duì)API后端的API調(diào)用進(jìn)行管理、控制或接口格式歸一化等,API后端不直接對(duì)應(yīng)用程序開(kāi)放API,而是開(kāi)放API給API代理,再由API代理開(kāi)放API給應(yīng)用程序。
[0007]在目前的API開(kāi)放過(guò)程中,調(diào)用API代理上的API的調(diào)用設(shè)備,以下簡(jiǎn)稱“API調(diào)用設(shè)備”(可為圖1中的客戶端或API后端等)發(fā)起的多次API調(diào)用之間是獨(dú)立的,無(wú)需建立會(huì)話關(guān)聯(lián)。但對(duì)于某些特殊的業(yè)務(wù)場(chǎng)景下,希望將多次API調(diào)用進(jìn)行會(huì)話關(guān)聯(lián)但利用目前開(kāi)放API的方法卻無(wú)法實(shí)現(xiàn)。
[0008]如,在圖2所示的API調(diào)用的過(guò)程中,消息交互主要流程如下:
[0009]客戶端調(diào)用API I;
[0010]API代理設(shè)置會(huì)話數(shù)據(jù)并保存;
[0011]API代理調(diào)用API后端的API2 ;
[0012]API代理獲取之前設(shè)置的數(shù)據(jù);
[0013]API代理調(diào)用API后端的API3 ;
[0014]API代理根據(jù)API3的返回的數(shù)據(jù)設(shè)置會(huì)話數(shù)據(jù);
[0015]API代理綜合API3調(diào)用返回信息和從會(huì)話中取回的數(shù)據(jù)進(jìn)行邏輯處理;
[0016]API代理返回APIl的調(diào)用返回給客戶端。
[0017]在圖2中所示的流程中,只能在一次客戶端的API調(diào)用流程中進(jìn)行會(huì)話數(shù)據(jù)的設(shè)置和提取,如果客戶端發(fā)起兩次API調(diào)用,則第二次調(diào)用無(wú)法獲取第一次API調(diào)用設(shè)置的會(huì)話數(shù)據(jù)。
[0018]綜上,目前的API開(kāi)放技術(shù)無(wú)法實(shí)現(xiàn)API調(diào)用設(shè)備在先后調(diào)用API代理的多個(gè)API時(shí),后面調(diào)用的API獲取前面API調(diào)用時(shí)設(shè)置的會(huì)話數(shù)據(jù),以實(shí)現(xiàn)多個(gè)API調(diào)用的會(huì)話關(guān)聯(lián)。

【發(fā)明內(nèi)容】

[0019]本發(fā)明實(shí)施例提供一種會(huì)話處理的方法、設(shè)備和系統(tǒng),用以實(shí)現(xiàn)API調(diào)用設(shè)備在先后調(diào)用API代理上的多個(gè)API時(shí)的會(huì)話關(guān)聯(lián)。
[0020]第一方面,本發(fā)明實(shí)施例提供一種會(huì)話處理的方法,所述方法包括:
[0021]API代理接收從調(diào)用第一應(yīng)用編程接口 API的API調(diào)用設(shè)備發(fā)出的調(diào)用第一 API的請(qǐng)求;
[0022]所述API代理根據(jù)調(diào)用第一 API的請(qǐng)求執(zhí)行第一 API的處理流程,在執(zhí)行第一 API的處理流程中,緩存第一 API對(duì)應(yīng)的會(huì)話的會(huì)話數(shù)據(jù);
[0023]所述API代理接收從調(diào)用第二 API的API調(diào)用設(shè)備發(fā)出的調(diào)用第二 API的請(qǐng)求;
[0024]所述API代理根據(jù)調(diào)用第二 API的請(qǐng)求執(zhí)行第二 API的處理流程,在執(zhí)行第二 API的處理流程中,根據(jù)調(diào)用第二 API的請(qǐng)求中包括的用于標(biāo)識(shí)第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)標(biāo)識(shí)ID,獲取在執(zhí)行第一 API的處理流程中緩存的所述會(huì)話的會(huì)話數(shù)據(jù),根據(jù)獲取的所述會(huì)話數(shù)據(jù)對(duì)所述會(huì)話進(jìn)行處理。
[0025]結(jié)合第一方面,在第一種可能的實(shí)現(xiàn)方式中,所述方法還包括:
[0026]所述API代理在執(zhí)行第一 API的處理流程中,確定第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID,并將確定的外部事務(wù)ID通知給調(diào)用第二 API的API調(diào)用設(shè)備;或接收從調(diào)用第二API的API調(diào)用設(shè)備發(fā)出的外部事務(wù)ID,并將接收的外部事務(wù)ID確定為第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID ;
[0027]所述API代理在執(zhí)行第二 API的處理流程中,獲取執(zhí)行第一 API的處理流程中緩存的所述會(huì)話的會(huì)話數(shù)據(jù)之前,判定在執(zhí)行第一 API的處理流程中確定的第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID與調(diào)用第二 API的請(qǐng)求中包括的外部事務(wù)ID —致。
[0028]結(jié)合第一方面,在第二種可能的實(shí)現(xiàn)方式中,所述方法還包括:
[0029]所述API代理在執(zhí)行第一 API的處理流程中,確定第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID,并將確定的外部事務(wù)ID通知給調(diào)用第二 API的API調(diào)用設(shè)備;或接收從調(diào)用第二API的應(yīng)用發(fā)出的外部事務(wù)ID,并將接收的外部事務(wù)ID確定為第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID ;
[0030]所述API代理在執(zhí)行第一 API的處理流程中,在確定第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID之后,根據(jù)第一 API對(duì)應(yīng)的API提供者的標(biāo)識(shí)、第一 API對(duì)應(yīng)的API后端的標(biāo)識(shí),以及確定的外部事務(wù)ID,生成對(duì)應(yīng)的內(nèi)部事務(wù)ID,并記錄生成的內(nèi)部事務(wù)ID與緩存的所述會(huì)話的會(huì)話數(shù)據(jù)的對(duì)應(yīng)關(guān)系;
[0031]所述API代理在執(zhí)行第二 API的處理流程中,獲取執(zhí)行第一 API的處理流程中緩存的所述會(huì)話的會(huì)話數(shù)據(jù)之前,根據(jù)第二 API對(duì)應(yīng)的API提供者的標(biāo)識(shí)、第二 API對(duì)應(yīng)的API后端的標(biāo)識(shí)以及調(diào)用第二 API的請(qǐng)求中包括的外部事務(wù)ID,生成對(duì)應(yīng)的內(nèi)部事務(wù)ID,判定在執(zhí)行第二 API的處理流程中生成的內(nèi)部事務(wù)ID與在執(zhí)行第一 API的處理流程中生成的內(nèi)部事務(wù)ID —致。
[0032]結(jié)合第一方面、第一方面的第一種可能的實(shí)現(xiàn)方式、第一方面的第二種可能的實(shí)現(xiàn)方式,在第一方面的第三種可能的實(shí)現(xiàn)方式中,
[0033]所述API代理執(zhí)行第一 API的處理流程包括:所述API代理基于用于描述第一 API處理流程的可擴(kuò)展標(biāo)記語(yǔ)言XML文件執(zhí)行第一 API的處理流程;
[0034]所述API代理執(zhí)行第二 API的處理流程包括:所述API代理基于用于描述第二 API處理流程的XML文件執(zhí)行第二 API的處理流程。
[0035]第二方面,本發(fā)明實(shí)施例還提供了一種會(huì)話處理的方法,所述方法包括:
[0036]在應(yīng)用編程接口 API代理執(zhí)行第一 API的處理流程中,API調(diào)用設(shè)備從所述API代理處返回的第一 API的響應(yīng)中獲取第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID ;*API調(diào)用設(shè)備向所述API代理發(fā)送外部事務(wù)ID,以使所述API代理將收到的所述外部事務(wù)ID確定為第一API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID。
[0037]所述API調(diào)用設(shè)備向所述API代理發(fā)送調(diào)用第二 API的請(qǐng)求,所述請(qǐng)求中包括所述第一 API對(duì)應(yīng)的所述會(huì)話的外部事務(wù)ID,以使所述API代理根據(jù)所述會(huì)話的外部事務(wù)ID,獲取所述API代理在執(zhí)行第一 API處理流程中緩存的所述會(huì)話的會(huì)話數(shù)據(jù),并根據(jù)獲取的所述會(huì)話的會(huì)話數(shù)據(jù)對(duì)所述會(huì)話進(jìn)行處理。
[0038]第三方面,本發(fā)明實(shí)施例還提供了一種應(yīng)用程序編程接口 API代理,所述API代理包括:
[0039]第一處理模塊,用于接收從調(diào)用第一應(yīng)用編程接口 API的API調(diào)用設(shè)備發(fā)出的調(diào)用第一 API的請(qǐng)求;根據(jù)調(diào)用第一 API的請(qǐng)求執(zhí)行第一 API的處理流程,在執(zhí)行第一 API的處理流程中,緩存第一 API對(duì)應(yīng)的會(huì)話的會(huì)話數(shù)據(jù);
[0040]第二處理模塊,用于接收從調(diào)用第二API的調(diào)用設(shè)備發(fā)出的調(diào)用第二API的請(qǐng)求;根據(jù)調(diào)用第二 API的請(qǐng)求執(zhí)行第二 API的處理流程,在執(zhí)行第二 API的處理流程中,根據(jù)調(diào)用第二 API的請(qǐng)求中包括的用于標(biāo)識(shí)第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)標(biāo)識(shí)ID,獲取所述第一處理模塊在執(zhí)行第一 API的處理流程中緩存的所述會(huì)話的會(huì)話數(shù)據(jù),根據(jù)獲取的所述會(huì)話數(shù)據(jù)對(duì)所述會(huì)話進(jìn)行處理。
[0041]結(jié)合第三方面,在第一種可能的實(shí)現(xiàn)方式中,所述第一處理模塊還用于:在執(zhí)行第
一API的處理流程中,確定第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID,并將確定的外部事務(wù)ID通知給調(diào)用第二 API的API調(diào)用設(shè)備;或接收從調(diào)用第二 API的API調(diào)用設(shè)備發(fā)出的外部事務(wù)ID,并將接收的外部事務(wù)ID確定為第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID ;
[0042]所述第二處理模塊還用于:在執(zhí)行第二 API的處理流程中,獲取所述第一處理模塊執(zhí)行第一 API的處理流程中緩存的所述會(huì)話的會(huì)話數(shù)據(jù)之前,判定在執(zhí)行第一 API的處理流程中確定的第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID與調(diào)用第二 API的請(qǐng)求中包括的外部事務(wù)ID —致。
[0043]結(jié)合第三方面,在第二種可能的實(shí)現(xiàn)方式中,所述第一處理模塊還用于:在執(zhí)行第
一API的處理流程中,確定第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID,并將確定的外部事務(wù)ID通知給調(diào)用第二API的API調(diào)用設(shè)備;或接收從調(diào)用第二API的調(diào)用設(shè)備發(fā)出的外部事務(wù)ID,并將接收的外部事務(wù)ID確定為第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID ;在確定第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID之后,根據(jù)第一 API對(duì)應(yīng)的API提供者的標(biāo)識(shí)、第一 API對(duì)應(yīng)的API后端的標(biāo)識(shí),以及確定的外部事務(wù)ID,生成對(duì)應(yīng)的內(nèi)部事務(wù)ID,并記錄生成的內(nèi)部事務(wù)ID與緩存的所述會(huì)話的會(huì)話數(shù)據(jù)的對(duì)應(yīng)關(guān)系;
[0044]所述第二處理模塊還用于:在執(zhí)行第二 API的處理流程中,獲取所述第一處理模塊執(zhí)行第一 API的處理流程中緩存的所述會(huì)話的會(huì)話數(shù)據(jù)之前,根據(jù)第二 API對(duì)應(yīng)的API提供者的標(biāo)識(shí)、第二 API對(duì)應(yīng)的API后端的標(biāo)識(shí)以及調(diào)用第二 API的請(qǐng)求中包括的外部事務(wù)ID,生成對(duì)應(yīng)的內(nèi)部事務(wù)ID,判定在執(zhí)行第二 API的處理流程中生成的內(nèi)部事務(wù)ID與所述第一處理模塊在執(zhí)行第一 API的處理流程中生成的內(nèi)部事務(wù)ID —致。
[0045]結(jié)合第三方面、第三方面的第一種可能的實(shí)現(xiàn)方式、第三方面的第二種可能的實(shí)現(xiàn)方式,在第三方面的第三種可能的實(shí)現(xiàn)方式中,
[0046]所述第一處理模塊具體用于:基于用于描述第一 API處理流程的可擴(kuò)展標(biāo)記語(yǔ)言XML文件執(zhí)行第一 API的處理流程;
[0047]所述第二處理模塊具體用于:基于用于描述第二 API處理流程的XML文件執(zhí)行第
二API的處理流程。
[0048]第四方面,本發(fā)明實(shí)施例還提供了一種API調(diào)用設(shè)備,所述設(shè)備包括:
[0049]第一處理模塊,用于在應(yīng)用編程接口 API代理執(zhí)行第一API的處理流程中,從所述API代理處返回的第一 API的響應(yīng)中獲取第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID ;或向所述API代理發(fā)送外部事務(wù)ID,以使所述API代理將收到的所述外部事務(wù)ID確定為第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID ;
[0050]第二處理模塊,用于向所述API代理發(fā)送調(diào)用第二 API的請(qǐng)求,所述請(qǐng)求中包括所述第一 API對(duì)應(yīng)的所述會(huì)話的外部事務(wù)ID,以使所述API代理根據(jù)所述會(huì)話的外部事務(wù)ID,獲取所述API代理在執(zhí)行第一 API處理流程中緩存的所述會(huì)話的會(huì)話數(shù)據(jù),并根據(jù)獲取的所述會(huì)話的會(huì)話數(shù)據(jù)對(duì)所述會(huì)話進(jìn)行處理。
[0051]第五方面,本發(fā)明實(shí)施例還提供了一種會(huì)話處理的系統(tǒng),包括應(yīng)用程序編程接口API代理和API調(diào)用設(shè)備,
[0052]所述API代理用于:根據(jù)接收的調(diào)用第一API的請(qǐng)求執(zhí)行第一API的處理流程,在執(zhí)行第一 API的處理流程中,緩存第一 API對(duì)應(yīng)的會(huì)話的會(huì)話數(shù)據(jù);根據(jù)從所述API調(diào)用設(shè)備處接收的調(diào)用第二 API的請(qǐng)求執(zhí)行第二 API的處理流程,在執(zhí)行第二 API的處理流程中,根據(jù)調(diào)用第二 API的請(qǐng)求中包括的用于標(biāo)識(shí)第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)標(biāo)識(shí)ID,獲取在執(zhí)行第一 API的處理流程中緩存的所述會(huì)話的會(huì)話數(shù)據(jù),根據(jù)獲取的所述會(huì)話數(shù)據(jù)對(duì)所述會(huì)話進(jìn)行處理;
[0053]所述API調(diào)用設(shè)備用于:向所述API代理發(fā)送調(diào)用第二 API的請(qǐng)求,所述請(qǐng)求中包括第一 API對(duì)應(yīng)的所述會(huì)話的外部事務(wù)ID。
[0054]結(jié)合第五方面、在第五方面的第一種可能的實(shí)現(xiàn)方式中,所述API代理還用于:在執(zhí)行第一 API的處理流程中,確定第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID,并將確定的外部事務(wù)ID通知給所述API調(diào)用設(shè)備;所述API調(diào)用設(shè)備還用于:在所述API代理執(zhí)行第一 API的處理流程中,接收所述API代理通知的所述會(huì)話的外部事務(wù)ID ;或
[0055]所述API調(diào)用設(shè)備還用于:在所述API代理執(zhí)行第一API的處理流程中,將外部事務(wù)ID發(fā)給所述API代理;所述API代理還用于:接收從所述API調(diào)用設(shè)備發(fā)出的外部事務(wù)ID,并將接收的外部事務(wù)ID確定為第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID ;
[0056]所述API代理還用于:在執(zhí)行第二 API的處理流程中,獲取執(zhí)行第一 API的處理流程中緩存的所述會(huì)話的會(huì)話數(shù)據(jù)之前,判定在執(zhí)行第一 API的處理流程中確定的第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID與調(diào)用第二 API的請(qǐng)求中包括的外部事務(wù)ID —致。
[0057]結(jié)合第五方面、在第五方面的第二種可能的實(shí)現(xiàn)方式中,所述API代理還用于:在執(zhí)行第一 API的處理流程中,確定第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID,并將確定的外部事務(wù)ID通知給所述API調(diào)用設(shè)備;所述API調(diào)用設(shè)備還用于:在所述API代理執(zhí)行第一 API的處理流程中,接收所述API代理通知的所述會(huì)話的外部事務(wù)ID ;或
[0058]所述API調(diào)用設(shè)備還用于:在所述API代理執(zhí)行第一API的處理流程中,將外部事務(wù)ID發(fā)給所述API代理;所述API代理還用于:接收從所述API調(diào)用設(shè)備發(fā)出的外部事務(wù)ID,并將接收的外部事務(wù)ID確定為第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID ;
[0059]所述API代理還用于:在執(zhí)行第一 API的處理流程中,在確定第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID之后,根據(jù)第一 API對(duì)應(yīng)的API提供者的標(biāo)識(shí)、第一 API對(duì)應(yīng)的API后端的標(biāo)識(shí),以及確定的外部事務(wù)ID,生成對(duì)應(yīng)的內(nèi)部事務(wù)ID,并記錄生成的內(nèi)部事務(wù)ID與緩存的所述會(huì)話的會(huì)話數(shù)據(jù)的對(duì)應(yīng)關(guān)系;在執(zhí)行第二API的處理流程中,獲取執(zhí)行第一API的處理流程中緩存的所述會(huì)話的會(huì)話數(shù)據(jù)之前,根據(jù)第二 API對(duì)應(yīng)的API提供者的標(biāo)識(shí)、第二 API對(duì)應(yīng)的API后端的標(biāo)識(shí)以及調(diào)用第二 API的請(qǐng)求中包括的外部事務(wù)ID,生成對(duì)應(yīng)的內(nèi)部事務(wù)ID,判定在執(zhí)行第二API的處理流程中生成的內(nèi)部事務(wù)ID與在執(zhí)行第一 API的處理流程中生成內(nèi)部事務(wù)ID —致。
[0060]結(jié)合第五方面、第五方面的第一種可能的實(shí)現(xiàn)方式、第五方面的第二種可能的實(shí)現(xiàn)方式,在第五方面的第三種可能的實(shí)現(xiàn)方式中,所述API代理具體用于:
[0061]基于用于描述第一 API處理流程的可擴(kuò)展標(biāo)記語(yǔ)言XML文件執(zhí)行第一 API的處理流程;
[0062]基于用于描述第二 API處理流程的XML文件執(zhí)行第二 API的處理流程。
[0063]采用本發(fā)明實(shí)施例提供的會(huì)話處理的方法、設(shè)備和系統(tǒng),API調(diào)用設(shè)備在調(diào)用第二API時(shí),在調(diào)用第二 API的請(qǐng)求中,攜帶了用于標(biāo)識(shí)第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID,使得API代理能夠根據(jù)調(diào)用第二 API的請(qǐng)求中的外部事務(wù)ID獲取執(zhí)行第一 API處理流程中緩存的會(huì)話的會(huì)話數(shù)據(jù),并根據(jù)獲取的會(huì)話數(shù)據(jù)對(duì)會(huì)話進(jìn)行處理,從而實(shí)現(xiàn)了第一 API和第二 API的會(huì)話關(guān)聯(lián)。
[0064]進(jìn)一步地,API代理根據(jù)API提供者的標(biāo)識(shí)、API后端的標(biāo)識(shí),以及外部事務(wù)ID,生成對(duì)應(yīng)的內(nèi)部事務(wù)ID,從而實(shí)現(xiàn)API代理由多個(gè)API提供者提供API,其可與多個(gè)API后端接口。
[0065]進(jìn)一步地,API代理基于用于描述API處理流程的XML文件執(zhí)行API的處理流程,當(dāng)API的處理流程需要修改時(shí),無(wú)需進(jìn)行代碼編譯,重新部署,無(wú)需停止API代理的運(yùn)行就可以實(shí)現(xiàn)對(duì)API處理流程的修改。
[0066]本發(fā)明實(shí)施例還提供了另一種API代理、API生成方法和API執(zhí)行方法,用以解決現(xiàn)有的API生成方法中,采用編碼的方式生成API,方法復(fù)雜,不容易實(shí)現(xiàn)的問(wèn)題。
[0067]第六方面,本發(fā)明實(shí)施例提供了一種應(yīng)用程序編程接口 API代理,所述API代理包括:[0068]API開(kāi)發(fā)器,用于提供圖形化API開(kāi)發(fā)界面,并在提供的所述開(kāi)發(fā)界面上接收用于生成API的API生成指令;根據(jù)接收的所述API生成指令生成用于描述所述API的處理流程的API代理資源;將生成的所述API代理資源發(fā)給API代理引擎;
[0069]API代理引擎,用于保存接收的所述API開(kāi)發(fā)器發(fā)送的所述API代理資源,并在收到API調(diào)用設(shè)備調(diào)用所述API的請(qǐng)求后,根據(jù)調(diào)用所述API的請(qǐng)求執(zhí)行所述API代理資源中所述API的處理流程;若所述API的處理流程中有緩存會(huì)話數(shù)據(jù)的操作,則根據(jù)調(diào)用所述API的請(qǐng)求生成會(huì)話數(shù)據(jù),并將生成的會(huì)話數(shù)據(jù)緩存到數(shù)據(jù)緩存中;若所述API的處理流程中有獲取會(huì)話數(shù)據(jù)的操作,則根據(jù)調(diào)用所述API的請(qǐng)求從數(shù)據(jù)緩存中讀取會(huì)話數(shù)據(jù);
[0070]數(shù)據(jù)緩存,用于緩存API代理引擎生成的會(huì)話數(shù)據(jù),以及將API代理引擎讀取的會(huì)話數(shù)據(jù)發(fā)送給API代理引擎。
[0071]第七方面,本發(fā)明實(shí)施例提供一種生成應(yīng)用程序編程接口 API的方法,所述方法包括:
[0072]API代理中的API開(kāi)發(fā)器在圖形化API開(kāi)發(fā)界面上接收用于生成API的API生成指令;
[0073]所述API開(kāi)發(fā)器根據(jù)接收的所述API生成指令生成用于描述所述API的處理流程的API代理資源;
[0074]所述API開(kāi)發(fā)器將生成的所述API代理資源發(fā)給所述API代理中的API代理引擎,以使所述API代理引擎在收到API調(diào)用設(shè)備調(diào)用所述API的請(qǐng)求后,根據(jù)接收的調(diào)用所述API的請(qǐng)求執(zhí)行所述API代理資源中所述API的處理流程。
[0075]第八方面,本發(fā)明實(shí)施例提供一種執(zhí)行應(yīng)用程序編程接口 API處理流程的方法,所述方法包括:
[0076]API代理中的API代理引擎接收API調(diào)用設(shè)備發(fā)送的調(diào)用API的請(qǐng)求;
[0077]所述API代理引擎根據(jù)接收的調(diào)用所述API的請(qǐng)求,執(zhí)行用于描述所述API的API代理資源中所述API的處理流程,其中所述API資源是所述API代理中的API開(kāi)發(fā)器根據(jù)接收的用于生成所述API的API生成指令生成并發(fā)給所述API代理引擎的;
[0078]若所述API的處理流程中有緩存會(huì)話數(shù)據(jù)的操作,則所述API代理引擎根據(jù)調(diào)用所述API的請(qǐng)求生成會(huì)話數(shù)據(jù),并將生成的會(huì)話數(shù)據(jù)緩存到所述API代理中的數(shù)據(jù)緩存中;若所述API的處理流程中有獲取會(huì)話數(shù)據(jù)的操作,則所述API代理引擎根據(jù)調(diào)用所述API的請(qǐng)求從所述數(shù)據(jù)緩存中讀取會(huì)話數(shù)據(jù)。
[0079]采用本發(fā)明實(shí)施例提供的另一種API代理、API生成方法和API執(zhí)行方法,通過(guò)提供圖形化界面,接收API生成指令,根據(jù)接收的API生成指令生成API代理資源,API代理引擎在收到調(diào)用API的請(qǐng)求后,執(zhí)行API代理資源中的處理流程,從而無(wú)需編碼,容易生成API。
【專利附圖】

【附圖說(shuō)明】
[0080]圖1為當(dāng)前的一種常用的開(kāi)放API的方法的示意圖;
[0081]圖2為當(dāng)前的一種API調(diào)用過(guò)程的流程圖;
[0082]圖3為本發(fā)明實(shí)施例提供的會(huì)話處理系統(tǒng)的結(jié)構(gòu)示意圖;
[0083]圖4為本發(fā)明實(shí)施例提供的第一種API代理的結(jié)構(gòu)示意圖;[0084]圖5為本發(fā)明實(shí)施例提供的API開(kāi)發(fā)器的結(jié)構(gòu)示意圖;
[0085]圖6為本發(fā)明實(shí)施例提供的API代理引擎的結(jié)構(gòu)示意圖;
[0086]圖7為本發(fā)明實(shí)施例提供的事務(wù)ID映射方法示意圖;
[0087]圖8為本發(fā)明實(shí)施例提供的API創(chuàng)建支付的編排界面示意圖;
[0088]圖9為本發(fā)明實(shí)施例提供的會(huì)話參數(shù)設(shè)置界面的示意圖;
[0089]圖10為本發(fā)明實(shí)施例提供的設(shè)置外部事務(wù)ID生成規(guī)則的界面示意圖;
[0090]圖11為本發(fā)明實(shí)施例提供的設(shè)置外部事務(wù)ID的界面示意圖;
[0091]圖12為本發(fā)明實(shí)施例提供的設(shè)置會(huì)話數(shù)據(jù)保存規(guī)則的界面示意圖;
[0092]圖13為本發(fā)明實(shí)施例提供的API創(chuàng)建支付的流程文件的示意圖;
[0093]圖14為本發(fā)明實(shí)施例提供的設(shè)置會(huì)話策略文件的示意圖;
[0094]圖15為本發(fā)明實(shí)施例API確認(rèn)支付的編排界面的示意圖;
[0095]圖16為本發(fā)明實(shí)施例提供的設(shè)置獲取會(huì)話參數(shù)的界面示意圖;
[0096]圖17為本發(fā)明實(shí)施例提供的設(shè)置外部事務(wù)ID獲取規(guī)則的界面示意圖;
[0097]圖18為本發(fā)明實(shí)施例中API確認(rèn)支付和API創(chuàng)建支付的會(huì)話關(guān)聯(lián)的示意圖;
[0098]圖19為本發(fā)明實(shí)施例中,API提供者實(shí)現(xiàn)API會(huì)話關(guān)聯(lián)的方法流程圖;
[0099]圖20為本發(fā)明實(shí)施例一的方法流程圖;
[0100]圖21為本發(fā)明實(shí)施例二的方法流程圖;
[0101]圖22為本發(fā)明實(shí)施例提供的第二種API代理的結(jié)構(gòu)示意圖;
[0102]圖23為本發(fā)明實(shí)施例提供的第三種API代理的結(jié)構(gòu)示意圖;
[0103]圖24為本發(fā)明實(shí)施例提供的第一種會(huì)話處理的方法過(guò)程示意圖;
[0104]圖25為本發(fā)明實(shí)施例提供的第二種會(huì)話處理的方法過(guò)程示意圖;
[0105]圖26為本發(fā)明實(shí)施例提供的第四種API代理的結(jié)構(gòu)示意圖;
[0106]圖27為本發(fā)明實(shí)施例提供的API調(diào)用設(shè)備的結(jié)構(gòu)示意圖;
[0107]圖28為本發(fā)明實(shí)施例提供的一種生成API的方法過(guò)程示意圖;
[0108]圖29為本發(fā)明實(shí)施例提供的一種執(zhí)行API處理流程的方法過(guò)程示意圖。
【具體實(shí)施方式】
[0109]本發(fā)明實(shí)施例提供一種會(huì)話處理的方法、設(shè)備和系統(tǒng),用以實(shí)現(xiàn)API調(diào)用設(shè)備在先后調(diào)用API代理上的多個(gè)API時(shí)的會(huì)話關(guān)聯(lián)。
[0110]在本發(fā)明實(shí)施例提供的一種會(huì)話處理的方法中,API代理接收從調(diào)用第一 API的API調(diào)用設(shè)備發(fā)出的調(diào)用第一 API的請(qǐng)求;API代理根據(jù)調(diào)用第一 API的請(qǐng)求執(zhí)行第一 API的處理流程,在執(zhí)行第一 API的處理流程中,緩存第一 API對(duì)應(yīng)的會(huì)話的會(huì)話數(shù)據(jù);API代理接收從調(diào)用第二 API的API調(diào)用設(shè)備發(fā)出的調(diào)用第二 API的請(qǐng)求;API代理根據(jù)調(diào)用第
二API的請(qǐng)求執(zhí)行第二 API的處理流程,在執(zhí)行第二 API的處理流程中,根據(jù)調(diào)用第二 API的請(qǐng)求中包括的用于標(biāo)識(shí)第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)標(biāo)識(shí)ID,獲取在執(zhí)行第一 API的處理流程中緩存的會(huì)話的會(huì)話數(shù)據(jù),根據(jù)獲取的會(huì)話數(shù)據(jù)對(duì)會(huì)話進(jìn)行處理。
[0111]本發(fā)明實(shí)施例通過(guò)中,調(diào)用第二 API的調(diào)用設(shè)備在調(diào)用第二 API時(shí),在調(diào)用第二API的請(qǐng)求中,攜帶了用于標(biāo)識(shí)第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID,使得API代理能夠根據(jù)調(diào)用第二 API的請(qǐng)求中的外部事務(wù)ID獲取執(zhí)行第一 API處理流程中緩存的會(huì)話的會(huì)話數(shù)據(jù),并根據(jù)獲取的會(huì)話數(shù)據(jù)對(duì)會(huì)話進(jìn)行處理,從而實(shí)現(xiàn)了第一 API和第二 API的會(huì)話關(guān)聯(lián)。
[0112]本發(fā)明實(shí)施例還提供了一種API代理、API生成方法和API執(zhí)行方法,用以解決現(xiàn)有的API生成方法中,采用編碼的方式生成API,方法復(fù)雜,不容易實(shí)現(xiàn)的問(wèn)題。
[0113]本發(fā)明實(shí)施例提供的API代理包括:API開(kāi)發(fā)器,用于提供圖形化API開(kāi)發(fā)界面,并在提供的所述開(kāi)發(fā)界面上接收用于生成API的API生成指令;根據(jù)接收的所述API生成指令生成用于描述所述API的處理流程的API代理資源;將生成的所述API代理資源發(fā)給API代理引擎;API代理引擎,用于保存接收的所述API開(kāi)發(fā)器發(fā)送的所述API代理資源,并在收到API調(diào)用設(shè)備調(diào)用所述API的請(qǐng)求后,根據(jù)調(diào)用所述API的請(qǐng)求執(zhí)行所述API代理資源中所述API的處理流程;若所述API的處理流程中有緩存會(huì)話數(shù)據(jù)的操作,則根據(jù)調(diào)用所述API的請(qǐng)求生成會(huì)話數(shù)據(jù),并將生成的會(huì)話數(shù)據(jù)緩存到數(shù)據(jù)緩存中;若所述API的處理流程中有獲取會(huì)話數(shù)據(jù)的操作,則根據(jù)調(diào)用所述API的請(qǐng)求從數(shù)據(jù)緩存中讀取會(huì)話數(shù)據(jù);數(shù)據(jù)緩存,用于緩存API代理引擎生成的會(huì)話數(shù)據(jù),以及將API代理引擎讀取的會(huì)話數(shù)據(jù)發(fā)送給API代理引擎。
[0114]通過(guò)提供圖形化界面,接收API生成指令,根據(jù)接收的API生成指令生成API代理資源,API代理引擎在收到調(diào)用API的請(qǐng)求后,執(zhí)行API代理資源中的處理流程,從而無(wú)需編碼,容易生成API。
[0115]下面,結(jié)合附圖對(duì)本發(fā)明實(shí)施例進(jìn)行詳細(xì)說(shuō)明。
[0116]圖3為本發(fā)明實(shí)施例提供的會(huì)話處理系統(tǒng)的結(jié)構(gòu)示意圖。如圖3所示,該系統(tǒng)包括:API調(diào)用設(shè)備301和API代理302,其中
[0117]API代理302用于:根據(jù)接收的調(diào)用第一 API的請(qǐng)求執(zhí)行第一 API的處理流程,在執(zhí)行第一 API的處理流程中,緩存第一 API對(duì)應(yīng)的會(huì)話的會(huì)話數(shù)據(jù);根據(jù)從API調(diào)用設(shè)備301處接收的調(diào)用第二 API的請(qǐng)求執(zhí)行第二 API的處理流程,在執(zhí)行第二 API的處理流程中,根據(jù)調(diào)用第二 API的請(qǐng)求中包括的用于標(biāo)識(shí)第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)標(biāo)識(shí)ID,獲取在執(zhí)行第一 API的處理流程中緩存的所述會(huì)話的會(huì)話數(shù)據(jù),根據(jù)獲取的所述會(huì)話數(shù)據(jù)對(duì)會(huì)話進(jìn)行處理;
[0118]API調(diào)用設(shè)備301用于:向API代理302發(fā)送調(diào)用第二 API的請(qǐng)求,請(qǐng)求中包括第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID。
[0119]本發(fā)明實(shí)施例提供的會(huì)話處理系統(tǒng)實(shí)現(xiàn)了第一 API和第二 API的會(huì)話關(guān)聯(lián)。在具體實(shí)現(xiàn)時(shí),根據(jù)不同的應(yīng)用場(chǎng)景,實(shí)現(xiàn)第一 API和第二 API會(huì)話關(guān)聯(lián)的方式至少包括以下兩種:
[0120]方式一
[0121]API代理302在執(zhí)行第一 API的處理流程中,確定第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID,并將確定的外部事務(wù)ID通知給API調(diào)用設(shè)備301 ;
[0122]方式二
[0123]API調(diào)用設(shè)備301在API代理302執(zhí)行第一 API的處理流程中,將外部事務(wù)ID發(fā)給API代理302,API代理302將從API調(diào)用設(shè)備301接收的外部事務(wù)ID確定為第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID。
[0124]方式一的一個(gè)具體的實(shí)施例可參見(jiàn)后面的實(shí)施例一,方式二的一個(gè)具體的實(shí)施例可參見(jiàn)后面的實(shí)施例二。[0125]在上述兩種方式中,API代理302在執(zhí)行第二 API的處理流程中,獲取執(zhí)行第一API的處理流程中緩存的所述會(huì)話的會(huì)話數(shù)據(jù)之前,還需要在判定確定的第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID與調(diào)用第二 API的請(qǐng)求中包括的外部事務(wù)ID —致的情況下,根據(jù)調(diào)用第二 API的請(qǐng)求中包括的外部事務(wù)ID獲取在執(zhí)行第一 API的處理流程中緩存的會(huì)話數(shù)據(jù)。
[0126]這里,API調(diào)用設(shè)備301可以為任何調(diào)用API代理302上的API的API調(diào)用設(shè)備,比如:可為圖1中的客戶端或API后端。
[0127]當(dāng)API調(diào)用設(shè)備301為客戶端時(shí),API調(diào)用設(shè)備301內(nèi)部包括本地應(yīng)用程序和/或Web應(yīng)用程序,API調(diào)用設(shè)備301通過(guò)調(diào)用其內(nèi)的本地應(yīng)用程序或Web應(yīng)用程序,實(shí)現(xiàn)向API代理302發(fā)送調(diào)用API的請(qǐng)求。當(dāng)API調(diào)用設(shè)備301為API后端時(shí),API調(diào)用設(shè)備301通過(guò)調(diào)用其內(nèi)的應(yīng)用程序,向API代理302發(fā)送調(diào)用API的請(qǐng)求。
[0128]一般,API代理302僅由一個(gè)API提供者(API Provider)提供API,且其僅與一個(gè)API后端接口,此時(shí)通過(guò)會(huì)話的外部事務(wù)ID可唯一確定一個(gè)會(huì)話,獲取該會(huì)話的會(huì)話數(shù)據(jù)。本發(fā)明實(shí)施例中,提供了一種可選的方案,采用本可選方案,可實(shí)現(xiàn)API代理302由多個(gè)API提供者提供API,其可與多個(gè)API后端接口,
[0129]當(dāng)API代理302由多個(gè)API提供者提供API時(shí),不同API提供者的外部事務(wù)ID之間可能因重復(fù)而導(dǎo)致沖突;當(dāng)API代理302對(duì)接多個(gè)API后端時(shí),不同API后端的外部事務(wù)ID也可能因重復(fù)而導(dǎo)致沖突。為解決此問(wèn)題,本發(fā)明實(shí)施例的可選方案中,在API代理302內(nèi)部處理時(shí),需要根據(jù)與API調(diào)用設(shè)備301之間交互時(shí)使用的會(huì)話的外部事務(wù)ID生成API代理302內(nèi)部使用的內(nèi)部事務(wù)ID (Inner Transaction ID),根據(jù)生成的內(nèi)部事務(wù)ID能夠區(qū)分不同API提供者和不同的API后端。
[0130]具體地,API代理302在執(zhí)行第一 API的處理過(guò)程中,在確定第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID之后,需要根據(jù)第一 API對(duì)應(yīng)的API提供者的標(biāo)識(shí)、第一 API對(duì)應(yīng)的API后端的標(biāo)識(shí),以及確定的外部事務(wù)ID,生成對(duì)應(yīng)的內(nèi)部事務(wù)ID,并記錄生成的內(nèi)部事務(wù)ID與緩存的會(huì)話的會(huì)話數(shù)據(jù)的對(duì)應(yīng)關(guān)系;
[0131]API代理302在執(zhí)行第二 API的處理流程中,獲取執(zhí)行第一 API的處理流程中緩存的所述會(huì)話的會(huì)話數(shù)據(jù)之前,需要根據(jù)第二 API對(duì)應(yīng)的API提供者的標(biāo)識(shí)、第二 API對(duì)應(yīng)的API后端的標(biāo)識(shí)以及調(diào)用第二 API的請(qǐng)求中包括的外部事務(wù)ID,生成對(duì)應(yīng)的內(nèi)部事務(wù)ID ;
[0132]API代理302在判定執(zhí)行第二 API的處理流程中生成的內(nèi)部事務(wù)ID與在執(zhí)行第一API的處理流程中生成的外部事務(wù)ID—致的情況下,才能獲取在第一 API的處理流程中緩存的會(huì)話的會(huì)話數(shù)據(jù)。
[0133]在API代理302執(zhí)行第一 API的處理流程中,會(huì)緩存生成會(huì)話數(shù)據(jù),比如,API調(diào)用設(shè)備301通過(guò)調(diào)用第一 API的請(qǐng)求發(fā)起支付操作,API代理302可將支付過(guò)程中的短信校驗(yàn)碼作為會(huì)話數(shù)據(jù)緩存,以便后續(xù)與終端用戶輸入的短信校驗(yàn)碼進(jìn)行比對(duì)。API代理302緩存會(huì)話數(shù)據(jù),并根據(jù)會(huì)話的外部事務(wù)ID,生成會(huì)話的內(nèi)部事務(wù)ID,記錄生成的話的內(nèi)部事務(wù)ID與緩存的會(huì)話的會(huì)話數(shù)據(jù)的對(duì)應(yīng)關(guān)系。
[0134]API代理302對(duì)于不同的API,在根據(jù)會(huì)話的外部事務(wù)ID生成會(huì)話的內(nèi)部事務(wù)ID時(shí),是基于后面將要介紹的相同的生成規(guī)則,而對(duì)于同一會(huì)話的不同API,其API提供者相同,API后端也相同,而API調(diào)用設(shè)備301在調(diào)用第二 API的請(qǐng)求中攜帶的第一 API處理流程中會(huì)話的外部事務(wù)ID,因此可實(shí)現(xiàn)在上述第二 API的處理流程中生成的內(nèi)部事務(wù)ID與上述第一 API的處理流程中生成的內(nèi)部事務(wù)ID相同,因而在第二 API的處理流程中可獲得第一 API處理流程中緩存的該會(huì)話的會(huì)話數(shù)據(jù),從而實(shí)現(xiàn)第一 API和第二 API的會(huì)話關(guān)聯(lián)。
[0135]根據(jù)會(huì)話的外部事務(wù)ID生成會(huì)話的內(nèi)部事務(wù)ID的方式有多種,只要能夠區(qū)分不同的API提供者和不同的API后端即可。比如:可通過(guò)如字符串拼接,即內(nèi)部事務(wù)ID=API提供者ID+Transaction ID命名空間+外部事務(wù)ID ;或者使用物理數(shù)據(jù)庫(kù)或內(nèi)存數(shù)據(jù)庫(kù)關(guān)系表保存映射關(guān)系等等。這里Transaction ID命名空間即用于區(qū)分不同的API后端,即不同的API后端具有不同的Transaction ID命名空間。
[0136]這里,API提供者的標(biāo)識(shí)可根據(jù)調(diào)用API的請(qǐng)求中的API的名稱或API的標(biāo)識(shí)來(lái)確定。比如,在API代理302中,約定不同的API提供者提供的API具有不同的名稱前綴,并記錄API名稱的前綴與API提供者標(biāo)識(shí)的對(duì)應(yīng)關(guān)系。這樣當(dāng)API代理302在收到調(diào)用API的請(qǐng)求后,根據(jù)API的名稱的前綴確定API提供者的標(biāo)識(shí)。或者在API代理302中,記錄了API的標(biāo)識(shí)與API提供者標(biāo)識(shí)的對(duì)應(yīng)關(guān)系,API調(diào)用設(shè)備301調(diào)用API的請(qǐng)求中攜帶API的標(biāo)識(shí),API代理302在收到調(diào)用某個(gè)API的請(qǐng)求后,根據(jù)請(qǐng)求中攜帶的API的標(biāo)識(shí)查找已記錄的API的標(biāo)識(shí)與API提供者標(biāo)識(shí)的對(duì)應(yīng)關(guān)系,即可確定該API對(duì)應(yīng)的API提供者的標(biāo)識(shí)。
[0137]或者,API提供者的標(biāo)識(shí)可以根據(jù)API的通用資源標(biāo)識(shí)符(Uniform ResourceIdentifier, URI)來(lái)確定,API的URI中含有API提供者的API命名前綴,通過(guò)API命名前綴即可確定API提供者的標(biāo)識(shí)。
[0138]API后端的標(biāo)識(shí)也可根據(jù)API的名稱或API的標(biāo)識(shí)來(lái)確定,方法與前面確定API提供者的標(biāo)識(shí)的方法類似,這里不再贅述。此外,還可以采用下面的方式=SAPI調(diào)用設(shè)備301為客戶端,則在調(diào)用API的請(qǐng)求中攜帶API后端的信息,比如IP地址、API后端名稱或API后端標(biāo)識(shí)等,API代理302在收到該調(diào)用API的請(qǐng)求后,獲取上述信息,根據(jù)記錄的上述?目息與API后端的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系,確定API后端的標(biāo)識(shí)。若API調(diào)用設(shè)備301為API后端,調(diào)用API的請(qǐng)求中無(wú)需攜帶API后端的信息,API代理302能夠從該調(diào)用API的請(qǐng)求的源地址確定對(duì)應(yīng)的API后端。
[0139]方式一中,在第一 API的處理流程中,API代理302需要確定會(huì)話的外部事務(wù)ID,并將確定的外部事務(wù)ID返回給API調(diào)用設(shè)備301。這里,API代理302確定會(huì)話的外部事務(wù)ID的方法可包括但不限于如下方法:
[0140]方法一、自動(dòng)生成;
[0141]方法二、由調(diào)用第一 API的請(qǐng)求中獲?。?br> [0142]方法三、從API后端的響應(yīng)中獲取。
[0143]需要說(shuō)明的是,雖然圖3中僅示出了一個(gè)API調(diào)用設(shè)備301,但實(shí)際上API代理302可以同時(shí)與多個(gè)API調(diào)用設(shè)備301之間存在會(huì)話。即API代理302可能會(huì)收到多個(gè)API調(diào)用設(shè)備301調(diào)用API的請(qǐng)求,API代理302會(huì)為不同的API調(diào)用設(shè)備301維護(hù)不同的會(huì)話,各會(huì)話對(duì)應(yīng)不同的外部事務(wù)ID,以區(qū)分不同的會(huì)話。從而,API代理302在收到某個(gè)API調(diào)用設(shè)備301調(diào)用第二 API的請(qǐng)求時(shí),根據(jù)該第二 API的請(qǐng)求中攜帶的外部事務(wù)ID來(lái)獲取該會(huì)話的會(huì)話數(shù)據(jù),能夠?qū)崿F(xiàn)不同會(huì)話的會(huì)話數(shù)據(jù)的區(qū)分。
[0144]下面,對(duì)于API代理302中第一 API和第二 API的定義方式加以說(shuō)明。
[0145]通常,API代理中的各API是由一個(gè)或多個(gè)API提供者開(kāi)發(fā)的。在傳統(tǒng)的開(kāi)發(fā)方式下,通過(guò)API提供者編碼來(lái)開(kāi)發(fā)各API,存在代碼編譯、重新部署過(guò)程,可能需要先停止API代理的運(yùn)行才能完成改寫(xiě)后代碼的加載,對(duì)API代理的使用造成了影響。
[0146]本發(fā)明實(shí)施例提供的優(yōu)選方案中,基于用于描述API的可擴(kuò)展標(biāo)記語(yǔ)言(extensible Markup Language,XML)文件執(zhí)行API的處理流程。即不再通過(guò)編寫(xiě)代碼的方式定義API的處理流程,而是采用XML文件來(lái)定義。這樣的好處就是,當(dāng)對(duì)API的處理流程進(jìn)行修改時(shí),無(wú)需進(jìn)行代碼編譯,重新部署,無(wú)需停止API代理的運(yùn)行就可以實(shí)現(xiàn)對(duì)API處理流程的修改。
[0147]因而,可選地,API代理302具體用于:
[0148]基于用于描述第一 API處理流程的XML文件執(zhí)行第一 API的處理流程,基于用于描述第二 API處理流程的XML文件執(zhí)行第二 API的處理流程。
[0149]上面,對(duì)本發(fā)明實(shí)施例提供的會(huì)話處理系統(tǒng)的工作原理進(jìn)行了描述。下面,對(duì)本發(fā)明實(shí)施例提供一種通過(guò)圖形化界面實(shí)現(xiàn)API的API代理加以說(shuō)明。作為該通過(guò)圖形化界面實(shí)現(xiàn)API的API代理的一種可選的實(shí)現(xiàn)方式,該API代理也可應(yīng)用到圖3所示的會(huì)話處理系統(tǒng)中,實(shí)現(xiàn)多個(gè)API之間的會(huì)話關(guān)聯(lián)。
[0150]傳統(tǒng)的API實(shí)現(xiàn)方法中,API提供者通過(guò)編碼實(shí)現(xiàn)各API。編碼的方式對(duì)API提供者的編程水平有較高要求,且在編碼過(guò)程中容易引入錯(cuò)誤(Bug),開(kāi)發(fā)和測(cè)試的周期都會(huì)比較長(zhǎng)。有鑒于此,本發(fā)明實(shí)施例提供了圖4所示的通過(guò)圖形化界面實(shí)現(xiàn)API的API代理。
[0151]圖4為本發(fā)明實(shí)施例提供的第一種API代理的結(jié)構(gòu)示意圖,該API代理以圖形化界面實(shí)現(xiàn)API的開(kāi)發(fā)。如圖4所示,該API代理一側(cè)與一個(gè)或多個(gè)應(yīng)用終端接口,另一個(gè)與一個(gè)或多個(gè)API后端(提供API實(shí)際服務(wù)的系統(tǒng))接口,對(duì)外還提供API開(kāi)發(fā)接口給一個(gè)或多個(gè)API提供者。
[0152]下面,首先對(duì)圖4中的API代理的組成結(jié)構(gòu)加以說(shuō)明,然后對(duì)通過(guò)圖形化API開(kāi)發(fā)界面實(shí)現(xiàn)API的方法進(jìn)行描述。
[0153]首先,如圖4所示,該API代理包括:
[0154]API代理邏輯開(kāi)發(fā)器,簡(jiǎn)稱API開(kāi)發(fā)器(API Builder )401,用于向API提供者提供圖形化API開(kāi)發(fā)界面;
[0155]圖形化開(kāi)發(fā)界面可有多種實(shí)現(xiàn)方式,比如:WEB在線方式的圖形化界面,或圖形用戶界面(graphical user interface, GUI)集成開(kāi)發(fā)環(huán)境(Integrated DevelopmentEnvironment, IDE),比如:Eclipse 的 IDE 界面;
[0156]API代理引擎(API Proxy Engine)402,用于基于API開(kāi)發(fā)器401開(kāi)發(fā)的API代理資源(即用于描述API的處理流程的文件)JASAPI的處理流程(比如:會(huì)話關(guān)聯(lián)邏輯的執(zhí)行,創(chuàng)建會(huì)話、將會(huì)話數(shù)據(jù)保存到數(shù)據(jù)緩存403中、從數(shù)據(jù)緩存403中讀取會(huì)話數(shù)據(jù)、對(duì)應(yīng)用終端提供API,以及調(diào)用API后端提供的API等),可選地,從API后端的API參數(shù)中獲取會(huì)話的外部事務(wù)ID、生成內(nèi)部事務(wù)ID、完成內(nèi)部事務(wù)ID和外部事務(wù)ID的映射;
[0157]數(shù)據(jù)緩存(Data Cache)403,用于緩存當(dāng)前各會(huì)話(即已創(chuàng)建的且還沒(méi)有結(jié)束的會(huì)話)的會(huì)話數(shù)據(jù),可選地,可支持內(nèi)存緩存方式存儲(chǔ),并可通過(guò)連接圖4中的文件系統(tǒng)405或數(shù)據(jù)庫(kù)404支持物理磁盤(pán)方式存儲(chǔ)會(huì)話數(shù)據(jù)。
[0158]具體地,API開(kāi)發(fā)器401,用于提供圖形化API開(kāi)發(fā)界面,并在提供的該開(kāi)發(fā)界面上接收用于生成API的API生成指令;根據(jù)接收的該API生成指令生成用于描述該API的處理流程的API代理資源;將生成的該API代理資源發(fā)給API代理引擎402 ;[0159]API代理引擎402,用于保存接收的API開(kāi)發(fā)器401發(fā)送的上述API代理資源,并在收到API調(diào)用設(shè)備調(diào)用該API的請(qǐng)求后,根據(jù)調(diào)用該API的請(qǐng)求執(zhí)行該API代理資源中該API的處理流程;若該API的處理流程中有緩存會(huì)話數(shù)據(jù)的操作,則根據(jù)調(diào)用該API的請(qǐng)求生成會(huì)話數(shù)據(jù),并將生成的會(huì)話數(shù)據(jù)緩存到數(shù)據(jù)緩存403中;若該API的處理流程中有獲取會(huì)話數(shù)據(jù)的操作,則根據(jù)調(diào)用該API的請(qǐng)求從數(shù)據(jù)緩存403中讀取會(huì)話數(shù)據(jù);
[0160]數(shù)據(jù)緩存403,用于緩存API代理引擎402生成的會(huì)話數(shù)據(jù),以及將API代理引擎402讀取的會(huì)話數(shù)據(jù)發(fā)送給API代理引擎402。
[0161]API代理引擎402將會(huì)話數(shù)據(jù)緩存到數(shù)據(jù)緩存403的典型消息定義可參見(jiàn)示例二,API代理引擎402從數(shù)據(jù)緩存403中獲取會(huì)話數(shù)據(jù)的典型消息定義可參見(jiàn)示例三。
[0162]圖4中所示的API代理中,API開(kāi)發(fā)器401、API代理引擎402、數(shù)據(jù)緩存403均可通過(guò)集群方式擴(kuò)展性能及容量,同時(shí)滿足可靠性的要求。
[0163]可選地,該API代理還包括:數(shù)據(jù)庫(kù)(Database) 404和/或文件系統(tǒng)(File) 405,
[0164]其中,數(shù)據(jù)庫(kù)404用于:將數(shù)據(jù)緩存403中緩存的會(huì)話數(shù)據(jù)通過(guò)數(shù)據(jù)庫(kù)進(jìn)行保存,可在設(shè)備故障情況下提升可靠性或通過(guò)物理存儲(chǔ)擴(kuò)大緩存容量,通用關(guān)系數(shù)據(jù)庫(kù)或非關(guān)系數(shù)據(jù)庫(kù)均可;
[0165]文件系統(tǒng)405,用于將數(shù)據(jù)緩存403緩存的會(huì)話數(shù)據(jù)以文件方式進(jìn)行持久化存儲(chǔ),可在設(shè)備故障情況下提升可靠性或通過(guò)物理存儲(chǔ)擴(kuò)大緩存容量。
[0166]關(guān)于會(huì)話數(shù)據(jù)的存儲(chǔ),可有多種實(shí)現(xiàn)方式,比如,如圖22所示,API代理中不包括數(shù)據(jù)庫(kù)或文件系統(tǒng),會(huì)話數(shù)據(jù)保存在數(shù)據(jù)緩存中?;蛘咴诖鎯?chǔ)會(huì)話數(shù)據(jù)時(shí),采用圖23所示的方式,即API代理中沒(méi)有獨(dú)立的數(shù)據(jù)緩存,直接將會(huì)話數(shù)據(jù)緩存在API代理引擎中。此外,圖22、圖23中,API代理可對(duì)接多個(gè)API后端,并同時(shí)為多個(gè)客戶端提供API調(diào)用接口。
[0167]下面,對(duì)API開(kāi)發(fā)器401進(jìn)行詳細(xì)說(shuō)明。如圖5所示,API開(kāi)發(fā)器401包括:
[0168]Web圖形化界面(Web⑶I Interface)4011,用于向API提供者提供圖形化API提供配置界面;
[0169]API 代理生成模塊(API Proxy Generating Module)4012,用于根據(jù) Web 圖形化界面4011中API提供者的操作產(chǎn)生的配置信息生成API代理資源(API Proxy Resource),API代理引擎402根據(jù)API代理生成模塊4012產(chǎn)生的API代理資源執(zhí)行API代理邏輯。
[0170]可選地,在具體實(shí)現(xiàn)時(shí),可將API代理生成模塊的功能由API代理引擎402實(shí)現(xiàn)。
[0171]API代理引擎402通過(guò)執(zhí)行API代理資源中的邏輯,對(duì)API調(diào)用進(jìn)行邏輯控制和處理,包括對(duì)調(diào)用API的請(qǐng)求、調(diào)用API的響應(yīng)的參數(shù)結(jié)構(gòu)體進(jìn)行解析。在對(duì)調(diào)用API的請(qǐng)求及調(diào)用API的響應(yīng)進(jìn)行解析時(shí),可根據(jù)不同的的接口協(xié)議類型采用對(duì)應(yīng)的諸如Web服務(wù)描述語(yǔ)言(Web Services Description Language, WSDL)、Web 應(yīng)用描述語(yǔ)言(WebApplication Description Language, WADL)、Java 腳本對(duì)象符號(hào)(JavaScript ObjectNotation, JS0N)等業(yè)界通用的API描述語(yǔ)言或數(shù)據(jù)格式進(jìn)行解析。
[0172]生成的API代理資源的邏輯是由Web圖形化界面4011具體設(shè)置,保存為API執(zhí)行流程文件,流程文件由多個(gè)API策略串聯(lián)而成,可選地,這些文件以XML方式保存。如前所述,采用XML方式保存,可避免在傳統(tǒng)的API實(shí)現(xiàn)方法中,在對(duì)API的代碼修改后,對(duì)修改后的代碼進(jìn)行編譯,重新部署的過(guò)程。
[0173]下面,對(duì)API代理引擎402加以說(shuō)明。[0174]如圖6所示,API代理引擎402包括:
[0175]API代理執(zhí)行模塊(API Proxy Execute Module) 4021,用于根據(jù)API請(qǐng)求加載對(duì)應(yīng)的API代理資源執(zhí)行,在執(zhí)行過(guò)程中,如果發(fā)現(xiàn)API處理流程中存在設(shè)置會(huì)話或會(huì)話數(shù)據(jù)的策略,則解析加載的API代理資源文件,以獲取或生成會(huì)話的外部事務(wù)ID,實(shí)現(xiàn)會(huì)話的外部事務(wù)ID與會(huì)話的內(nèi)部事務(wù)ID的映射,會(huì)話數(shù)據(jù)的存儲(chǔ)或獲?。?br> [0176]可選地,API代理引擎402還包括事務(wù)ID映射模塊(Transaction ID MappingModule) 4022,用于實(shí)現(xiàn)外部事務(wù)ID和內(nèi)部事務(wù)ID的映射。
[0177]可選地,API代理執(zhí)行模塊4021還用于,調(diào)用事務(wù)ID映射模塊4022完成外部事務(wù)ID和內(nèi)部事務(wù)ID的映射。API代理執(zhí)行模塊4021調(diào)用事務(wù)ID映射模塊4022完成外部事務(wù)ID和內(nèi)部事務(wù)ID的映射的典型消息如示例一所示??蛇x地,事務(wù)ID映射模塊4022的功能可直接由API代理執(zhí)行模塊4021完成,即將事務(wù)ID映射模塊4022合入API代理執(zhí)行模塊4021中。
[0178]外部事務(wù)ID和內(nèi)部事務(wù)ID的映射方法如圖7所示。圖7中,事務(wù)ID命名空間對(duì)應(yīng)API后端,即不同的API后端具有不同的事務(wù)ID命名空間。事務(wù)ID映射模塊根據(jù)外部事務(wù)ID、API提供者的標(biāo)識(shí)和事務(wù)ID命名空間生成內(nèi)部事務(wù)ID,并存儲(chǔ)于數(shù)據(jù)緩存403中??蛇x地,數(shù)據(jù)緩存403中的會(huì)話數(shù)據(jù)的鍵-值對(duì)(Key-Value)中的值(Value)可以是獨(dú)立的字符串,也可以是包含復(fù)雜格式的數(shù)據(jù)如XML、JS0N,還可以是將數(shù)據(jù)對(duì)象序列化后得到的二進(jìn)制數(shù)據(jù)。
[0179]在實(shí)現(xiàn)時(shí),同一個(gè)API提供者的事務(wù)ID命名空間不能重復(fù),同一個(gè)API提供者的多個(gè)API后端可以使用同一個(gè)事務(wù)ID命名空間,也可以使用不同的事務(wù)ID命名空間,取決于不同的API后端之間是否存在外部事務(wù)ID命名空間的沖突,如果存在沖突,則需要使用不同的事務(wù)ID命名空間,如果不沖突,則可以使用相同的事務(wù)ID命名空間,也可以使用不同的事務(wù)ID命名空間。
[0180]事務(wù)ID映射模塊4022將外部事務(wù)ID映射為內(nèi)部事務(wù)ID的方法有很多,比如,可采用字符串拼接的方式,即內(nèi)部事務(wù)ID=API提供者的標(biāo)識(shí)+TransactionID命名空間+外部事務(wù)ID ;或者使用物理數(shù)據(jù)庫(kù)或內(nèi)存數(shù)據(jù)庫(kù)關(guān)系表保存映射關(guān)系等。
[0181]可選地,圖4所示的API代理可實(shí)現(xiàn)將不同的API進(jìn)行會(huì)話關(guān)聯(lián)。如圖19所示,API提供者實(shí)現(xiàn)AP1:創(chuàng)建支付(createPayment)和AP1:確認(rèn)支付(Conf irmPayment)會(huì)話關(guān)聯(lián)的步驟如下:
[0182]S1901、API提供者進(jìn)入API開(kāi)發(fā)器401的界面(如圖8所示,以API創(chuàng)建支付為例);
[0183]S1902、API提供者設(shè)置API創(chuàng)建支付,在API創(chuàng)建支付中需要設(shè)置會(huì)話和緩存會(huì)話數(shù)據(jù);
[0184]S1903、API提供者在API請(qǐng)求或響應(yīng)流程中放置“設(shè)置會(huì)話(SetSession)I^ API策略的圖標(biāo);
[0185]S1904、API提供者點(diǎn)擊“設(shè)置會(huì)話”的圖標(biāo),打開(kāi)如圖9所示的設(shè)置會(huì)話的參數(shù)設(shè)置界面,在該界面中編輯會(huì)話屬性,其中,會(huì)話屬性可包括:外部事務(wù)ID (即外部事務(wù)ID)獲取方式、外部事務(wù)ID生成規(guī)則(比如:通用唯一識(shí)別碼(Universally Unique Identifier,UUID))、外部事務(wù)ID命名空間、會(huì)話數(shù)據(jù)保存規(guī)則、外部事務(wù)ID設(shè)置規(guī)則等;[0186]在步驟S1904中,API提供者可在設(shè)置會(huì)話的參數(shù)設(shè)置界面點(diǎn)擊“外部事務(wù)ID生成規(guī)則”的“編輯”圖標(biāo)后,打開(kāi)如圖10所示的界面,進(jìn)行外部事務(wù)ID生成規(guī)則的設(shè)置;API提供者可在設(shè)置會(huì)話的參數(shù)設(shè)置界面點(diǎn)擊“外部事務(wù)ID設(shè)置規(guī)則”的“編輯”圖標(biāo)后,打開(kāi)如圖11所示的界面,進(jìn)行外部事務(wù)ID的設(shè)置;API提供者可在設(shè)置會(huì)話的參數(shù)設(shè)置界面點(diǎn)擊“會(huì)話數(shù)據(jù)保存規(guī)則”的“編輯”圖標(biāo)后,打開(kāi)如圖12所示的界面,進(jìn)行會(huì)話數(shù)據(jù)保存規(guī)則的設(shè)置。
[0187]通過(guò)第I步至第3步的設(shè)置,生成的API創(chuàng)建支付的流程文件如圖13所示,從圖13中可以看出,對(duì)于設(shè)置會(huì)話(SetSession),是通過(guò)另一個(gè)文件(269378FC-DF75-D94B-35AA-F3B7D98A373F)定義的。
[0188]通過(guò)在步驟S1904中設(shè)置會(huì)話,生成的設(shè)置會(huì)話(Set Session)策略文件269378FC-DF75-D94B-35AA-F3B7D98A373F.xml 如圖 14 所示。
[0189]S1905、API提供者在如圖15所示的API開(kāi)發(fā)器401的界面中,設(shè)置API確認(rèn)支付(confirmPayment),在該API中需要獲取會(huì)話數(shù)據(jù);
[0190]S1906、API提供者在API請(qǐng)求或響應(yīng)流程中放置“獲取會(huì)話” API策略的圖標(biāo);
[0191]S1907、API提供者點(diǎn)擊“獲取會(huì)話”的圖標(biāo),在如圖16所示的獲取會(huì)話參數(shù)設(shè)置界面中,填寫(xiě)獲取會(huì)話的屬性,其中獲取會(huì)話的屬性可包括:外部事務(wù)ID獲取方式,外部事務(wù)ID命名空間,外部事務(wù)ID獲取規(guī)則。
[0192]在步驟S1907中,API提供者可在設(shè)置會(huì)話的參數(shù)設(shè)置界面點(diǎn)擊“外部事務(wù)ID獲取規(guī)則”的“編輯”圖標(biāo)后,打開(kāi)如圖17所示的界面,進(jìn)行外部事務(wù)ID獲取規(guī)則的設(shè)置。
[0193]從圖16和圖17中可以看出,在API確認(rèn)支付中,外部事務(wù)ID是從API請(qǐng)求中獲取的,而從圖11和圖14中可以看出,在設(shè)置會(huì)話時(shí),將外部事務(wù)ID通過(guò)API創(chuàng)建支付的響應(yīng)中帶回給API創(chuàng)建支付的調(diào)用設(shè)備(response, body, paymentinf0.payment ID),所以當(dāng)API創(chuàng)建支付的調(diào)用設(shè)備在調(diào)用API確認(rèn)支付時(shí),若將之前從API創(chuàng)建支付的響應(yīng)中獲取的外部事務(wù)ID置于調(diào)用API確認(rèn)支付的請(qǐng)求中,則在API確認(rèn)支付的處理流程中,就可通過(guò)該外部事務(wù)ID獲取在API創(chuàng)建支付時(shí)緩存的會(huì)話數(shù)據(jù),從而實(shí)現(xiàn)了 API確認(rèn)支付和API創(chuàng)建支付之間的會(huì)話關(guān)聯(lián)。
[0194]圖18為實(shí)現(xiàn)API確認(rèn)支付和API創(chuàng)建支付的會(huì)話關(guān)聯(lián)的示意圖。如圖18所示,第I步中將API創(chuàng)建支付的響應(yīng)中的“支付標(biāo)識(shí)”設(shè)置為外部事務(wù)ID ;第2步中將API確認(rèn)支付的請(qǐng)求中的“支付標(biāo)識(shí)”賦給外部事務(wù)ID ;在第3步中將第2步得到的外部事務(wù)ID映射成為內(nèi)部事務(wù)ID ;第4步中,根據(jù)第3步中映射得到的內(nèi)部事務(wù)ID獲取會(huì)話數(shù)據(jù)。
[0195]經(jīng)過(guò)圖19進(jìn)行會(huì)話關(guān)聯(lián)后,本發(fā)明實(shí)施例提供的API代理處理API創(chuàng)建支付和處理API確認(rèn)支付的流程可參考實(shí)施例一。
[0196]下面,通過(guò)三個(gè)示例說(shuō)明本發(fā)明實(shí)施例提供的API代理的內(nèi)部消息定義。
[0197]示例一
[0198]API代理引擎402中,API代理執(zhí)行模塊4021調(diào)用事務(wù)ID映射模塊4022完成外部事務(wù)ID和內(nèi)部事務(wù)ID的映射的典型消息定義。
[0199]獲取內(nèi)部事務(wù)ID (API代理執(zhí)行模塊4021-〉事務(wù)ID映射模塊4022)
[0200]I)請(qǐng)求消息定義(如表I):
[0201]表I[0202]
【權(quán)利要求】
1.一種會(huì)話處理的方法,其特征在于,所述方法包括: API代理接收從調(diào)用第一應(yīng)用編程接口 API的API調(diào)用設(shè)備發(fā)出的調(diào)用第一 API的請(qǐng)求; 所述API代理根據(jù)調(diào)用第一 API的請(qǐng)求執(zhí)行第一 API的處理流程,在執(zhí)行第一 API的處理流程中,緩存第一 API對(duì)應(yīng)的會(huì)話的會(huì)話數(shù)據(jù); 所述API代理接收從調(diào)用第二 API的API調(diào)用設(shè)備發(fā)出的調(diào)用第二 API的請(qǐng)求; 所述API代理根據(jù)調(diào)用第二 API的請(qǐng)求執(zhí)行第二 API的處理流程,在執(zhí)行第二 API的處理流程中,根據(jù)調(diào)用第二 API的請(qǐng)求中包括的用于標(biāo)識(shí)第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)標(biāo)識(shí)ID,獲取在執(zhí)行第一 API的處理流程中緩存的所述會(huì)話的會(huì)話數(shù)據(jù),根據(jù)獲取的所述會(huì)話數(shù)據(jù)對(duì)所述會(huì)話進(jìn)行處理。
2.如權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 所述API代理在執(zhí)行第一 API的處理流程中,確定第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID,并將確定的外部事務(wù)ID通知給調(diào)用第二 API的API調(diào)用設(shè)備;或接收從調(diào)用第二 API的API調(diào)用設(shè)備發(fā)出的外部事務(wù)ID,并將接收的外部事務(wù)ID確定為第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID ; 所述API代理在執(zhí)行第二 API的處理流程中,獲取執(zhí)行第一 API的處理流程中緩存的所述會(huì)話的會(huì)話數(shù)據(jù)之前 ,判定在執(zhí)行第一 API的處理流程中確定的第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID與調(diào)用第二 API的請(qǐng)求中包括的外部事務(wù)ID —致。
3.如權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 所述API代理在執(zhí)行第一 API的處理流程中,確定第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID,并將確定的外部事務(wù)ID通知給調(diào)用第二 API的API調(diào)用設(shè)備;或接收從調(diào)用第二 API的應(yīng)用發(fā)出的外部事務(wù)ID,并將接收的外部事務(wù)ID確定為第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID ; 所述API代理在執(zhí)行第一 API的處理流程中,在確定第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID之后,根據(jù)第一 API對(duì)應(yīng)的API提供者的標(biāo)識(shí)、第一 API對(duì)應(yīng)的API后端的標(biāo)識(shí),以及確定的外部事務(wù)ID,生成對(duì)應(yīng)的內(nèi)部事務(wù)ID,并記錄生成的內(nèi)部事務(wù)ID與緩存的所述會(huì)話的會(huì)話數(shù)據(jù)的對(duì)應(yīng)關(guān)系; 所述API代理在執(zhí)行第二 API的處理流程中,獲取執(zhí)行第一 API的處理流程中緩存的所述會(huì)話的會(huì)話數(shù)據(jù)之前,根據(jù)第二 API對(duì)應(yīng)的API提供者的標(biāo)識(shí)、第二 API對(duì)應(yīng)的API后端的標(biāo)識(shí)以及調(diào)用第二 API的請(qǐng)求中包括的外部事務(wù)ID,生成對(duì)應(yīng)的內(nèi)部事務(wù)ID,判定在執(zhí)行第二 API的處理流程中生成的內(nèi)部事務(wù)ID與在執(zhí)行第一 API的處理流程中生成的內(nèi)部事務(wù)ID—致。
4.如權(quán)利要求1~3任一項(xiàng)所述的方法,其特征在于, 所述API代理執(zhí)行第一 API的處理流程包括:所述API代理基于用于描述第一 API處理流程的可擴(kuò)展標(biāo)記語(yǔ)言XML文件執(zhí)行第一 API的處理流程; 所述API代理執(zhí)行第二 API的處理流程包括:所述API代理基于用于描述第二 API處理流程的XML文件執(zhí)行第二 API的處理流程。
5.一種會(huì)話處理的方法,其特征在于,所述方法包括: 在應(yīng)用編程接口 API代理執(zhí)行第一 API的處理流程中,API調(diào)用設(shè)備從所述API代理處返回的第一 API的響應(yīng)中獲取第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID ;*API調(diào)用設(shè)備向所述API代理發(fā)送外部事務(wù)ID,以使所述API代理將收到的所述外部事務(wù)ID確定為第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID ; 所述API調(diào)用設(shè)備向所述API代理發(fā)送調(diào)用第二 API的請(qǐng)求,所述請(qǐng)求中包括所述第一 API對(duì)應(yīng)的所述會(huì)話的外部事務(wù)ID,以使所述API代理根據(jù)所述會(huì)話的外部事務(wù)ID,獲取所述API代理在執(zhí)行第一 API處理流程中緩存的所述會(huì)話的會(huì)話數(shù)據(jù),并根據(jù)獲取的所述會(huì)話的會(huì)話數(shù)據(jù)對(duì)所述會(huì)話進(jìn)行處理。
6.一種應(yīng)用程序編程接口 API代理,其特征在于,所述API代理包括: 第一處理模塊,用于接收從調(diào)用第一應(yīng)用編程接口 API的API調(diào)用設(shè)備發(fā)出的調(diào)用第一API的請(qǐng)求;根據(jù)調(diào)用第一 API的請(qǐng)求執(zhí)行第一 API的處理流程,在執(zhí)行第一 API的處理流程中,緩存第一 API對(duì)應(yīng)的會(huì)話的會(huì)話數(shù)據(jù); 第二處理模塊,用于接收從調(diào)用第二API的調(diào)用設(shè)備發(fā)出的調(diào)用第二API的請(qǐng)求;根據(jù)調(diào)用第二 API的請(qǐng)求執(zhí)行第二 API的處理流程,在執(zhí)行第二 API的處理流程中,根據(jù)調(diào)用第二API的請(qǐng)求中包括的用于標(biāo)識(shí)第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)標(biāo)識(shí)ID,獲取所述第一處理模塊在執(zhí)行第一 API的處理流程中緩存的所述會(huì)話的會(huì)話數(shù)據(jù),根據(jù)獲取的所述會(huì)話數(shù)據(jù)對(duì)所述會(huì)話進(jìn)行處理。
7.如權(quán)利要求6所述的API代理,其特征在于, 所述第一處理模塊還用于:在執(zhí)行第一API的處理流程中,確定第一API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID,并將確定的外部事務(wù)ID通知給調(diào)用第二 API的API調(diào)用設(shè)備;或接收從調(diào)用第二 API的API調(diào)用設(shè)備發(fā)出的外部事務(wù)ID,并將接收的外部事務(wù)ID確定為第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID ; 所述第二處理模塊還用于:在執(zhí)行第二 API的處理流程中,獲取所述第一處理模塊執(zhí)行第一 API的處理流程中緩存的所`述會(huì)話的會(huì)話數(shù)據(jù)之前,判定在執(zhí)行第一 API的處理流程中確定的第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID與調(diào)用第二 API的請(qǐng)求中包括的外部事務(wù)ID—致。
8.如權(quán)利要求6所述的API代理,其特征在于, 所述第一處理模塊還用于:在執(zhí)行第一API的處理流程中,確定第一API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID,并將確定的外部事務(wù)ID通知給調(diào)用第二 API的API調(diào)用設(shè)備;或接收從調(diào)用第二 API的API調(diào)用設(shè)備發(fā)出的外部事務(wù)ID,并將接收的外部事務(wù)ID確定為第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID ;在確定第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID之后,根據(jù)第一 API對(duì)應(yīng)的API提供者的標(biāo)識(shí)、第一 API對(duì)應(yīng)的API后端的標(biāo)識(shí),以及確定的外部事務(wù)ID,生成對(duì)應(yīng)的內(nèi)部事務(wù)ID,并記錄生成的內(nèi)部事務(wù)ID與緩存的所述會(huì)話的會(huì)話數(shù)據(jù)的對(duì)應(yīng)關(guān)系; 所述第二處理模塊還用于:在執(zhí)行第二 API的處理流程中,獲取所述第一處理模塊執(zhí)行第一 API的處理流程中緩存的所述會(huì)話的會(huì)話數(shù)據(jù)之前,根據(jù)第二 API對(duì)應(yīng)的API提供者的標(biāo)識(shí)、第二 API對(duì)應(yīng)的API后端的標(biāo)識(shí)以及調(diào)用第二 API的請(qǐng)求中包括的外部事務(wù)ID,生成對(duì)應(yīng)的內(nèi)部事務(wù)ID,判定在執(zhí)行第二 API的處理流程中生成的內(nèi)部事務(wù)ID與所述第一處理模塊在執(zhí)行第一 API的處理流程中生成的內(nèi)部事務(wù)ID—致。
9.如權(quán)利要求6~8任一項(xiàng)所述的API代理,其特征在于, 所述第一處理模塊具體用于:基于用于描述第一 API處理流程的可擴(kuò)展標(biāo)記語(yǔ)言XML文件執(zhí)行第一 API的處理流程;所述第二處理模塊具體用于:基于用于描述第二 API處理流程的XML文件執(zhí)行第二API的處理流程。
10.一種API調(diào)用設(shè)備,其特征在于,所述設(shè)備包括: 第一處理模塊,用于在應(yīng)用編程接口 API代理執(zhí)行第一 API的處理流程中,從所述API代理處返回的第一 API的響應(yīng)中獲取第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID ;或向所述API代理發(fā)送外部事務(wù)ID,以使所述API代理將收到的所述外部事務(wù)ID確定為第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID ; 第二處理模塊,用于向所述API代理發(fā)送調(diào)用第二API的請(qǐng)求,所述請(qǐng)求中包括所述第一 API對(duì)應(yīng)的所述會(huì)話的外部事務(wù)ID,以使所述API代理根據(jù)所述會(huì)話的外部事務(wù)ID,獲取所述API代理在執(zhí)行第一 API處理流程中緩存的所述會(huì)話的會(huì)話數(shù)據(jù),并根據(jù)獲取的所述會(huì)話的會(huì)話數(shù)據(jù)對(duì)所述會(huì)話進(jìn)行處理。
11.一種會(huì)話處理的系統(tǒng),包括應(yīng)用程序編程接口 API代理和API調(diào)用設(shè)備,其特征在于, 所述API代理用于:根據(jù)接收的調(diào)用第一 API的請(qǐng)求執(zhí)行第一 API的處理流程,在執(zhí)行第一 API的處理流程中,緩存第一 API對(duì)應(yīng)的會(huì)話的會(huì)話數(shù)據(jù);根據(jù)從所述API調(diào)用設(shè)備處接收的調(diào)用第二 API的請(qǐng)求執(zhí)行第二 API的處理流程,在執(zhí)行第二 API的處理流程中,根據(jù)調(diào)用第二 API的請(qǐng)求中包括的用于標(biāo)識(shí)第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)標(biāo)識(shí)ID,獲取在執(zhí)行第一 API的處理流程中緩存的所述會(huì)話的會(huì)話數(shù)據(jù),根據(jù)獲取的所述會(huì)話數(shù)據(jù)對(duì)所述會(huì)話進(jìn)行處理; 所述API調(diào)用設(shè)備用于:向所述API代理發(fā)送調(diào)用第二API的請(qǐng)求,所述請(qǐng)求中包括第一 API對(duì)應(yīng)的所述會(huì)話的外部事務(wù)ID。
12.如權(quán)利要求11所述的系統(tǒng),其特征在于, 所述API代理還用于:在執(zhí)行第一 API的處理流程中,確定第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID,并將確定的外部事務(wù)ID通知給所述API調(diào)用設(shè)備;所述API調(diào)用設(shè)備還用于:在所述API代理執(zhí)行第一 API的處理流程中,接收所述API代理通知的所述會(huì)話的外部事務(wù)ID ;或 所述API調(diào)用設(shè)備還用于:在所述API代理執(zhí)行第一 API的處理流程中,將外部事務(wù)ID發(fā)給所述API代理;所述API代理還用于:接收從所述API調(diào)用設(shè)備發(fā)出的外部事務(wù)ID,并將接收的外部事務(wù)ID確定為第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID ; 所述API代理還用于:在執(zhí)行第二 API的處理流程中,獲取執(zhí)行第一 API的處理流程中緩存的所述會(huì)話的會(huì)話數(shù)據(jù)之前,判定在執(zhí)行第一 API的處理流程中確定的第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID與調(diào)用第二 API的請(qǐng)求中包括的外部事務(wù)ID —致。
13.如權(quán)利要求11所述的系統(tǒng),其特征在于, 所述API代理還用于:在執(zhí)行第一 API的處理流程中,確定第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID,并將確定的外部事務(wù)ID通知給所述API調(diào)用設(shè)備;所述API調(diào)用設(shè)備還用于:在所述API代理執(zhí)行第一 API的處理流程中,接收所述API代理通知的所述會(huì)話的外部事務(wù)ID ;或 所述API調(diào)用設(shè)備還用于:在所述API代理執(zhí)行第一 API的處理流程中,將外部事務(wù)ID發(fā)給所述API代理;所述API代理還用于:接收從所述API調(diào)用設(shè)備發(fā)出的外部事務(wù)ID,并將接收的外部事務(wù)ID確定為第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID ; 所述API代理還用于:在執(zhí)行第一 API的處理流程中,在確定第一 API對(duì)應(yīng)的會(huì)話的外部事務(wù)ID之后,根據(jù)第一 API對(duì)應(yīng)的API提供者的標(biāo)識(shí)、第一 API對(duì)應(yīng)的API后端的標(biāo)識(shí),以及確定的外部事務(wù)ID,生成對(duì)應(yīng)的內(nèi)部事務(wù)ID,并記錄生成的內(nèi)部事務(wù)ID與緩存的所述會(huì)話的會(huì)話數(shù)據(jù)的對(duì)應(yīng)關(guān)系;在執(zhí)行第二 API的處理流程中,獲取執(zhí)行第一 API的處理流程中緩存的所述會(huì)話的會(huì)話數(shù)據(jù)之前,根據(jù)第二 API對(duì)應(yīng)的API提供者的標(biāo)識(shí)、第二 API對(duì)應(yīng)的API后端的標(biāo)識(shí)以及調(diào)用第二 API的請(qǐng)求中包括的外部事務(wù)ID,生成對(duì)應(yīng)的內(nèi)部事務(wù)ID,判定在執(zhí)行第二 API的處理流程中生成的內(nèi)部事務(wù)ID與在執(zhí)行第一 API的處理流程中生成的內(nèi)部事務(wù)ID —致。
14.如權(quán)利要求11~13任一項(xiàng)所述的系統(tǒng),其特征在于,所述API代理具體用于: 基于用于描述第一 API處理流程的可擴(kuò)展標(biāo)記語(yǔ)言XML文件執(zhí)行第一 API的處理流程; 基于用于描述第二 API處理流程的XML文件執(zhí)行第二 API的處理流程。
15.一種應(yīng)用程序編程接口 API代理,其特征在于,所述API代理包括: API開(kāi)發(fā)器,用于提供圖形化API開(kāi)發(fā)界面,并在提供的所述開(kāi)發(fā)界面上接收用于生成API的API生成指令;根據(jù)接收的所述API生成指令生成用于描述所述API的處理流程的API代理資源;將生成的所述API代理資源發(fā)給API代理引擎; API代理引擎,用于保存接收的所述API開(kāi)發(fā)器發(fā)送的所述API代理資源,并在收到API調(diào)用設(shè)備調(diào)用所述API的請(qǐng)求后,根據(jù)調(diào)用所述API的請(qǐng)求執(zhí)行所述API代理資源中所述API的處理流程;若所述API的處理流程中有緩存會(huì)話數(shù)據(jù)的操作,則根據(jù)調(diào)用所述API的請(qǐng)求生成會(huì)話數(shù)據(jù),并將生成的會(huì)話數(shù)據(jù)緩存到數(shù)據(jù)緩存中;若所述API的處理流程中有獲取會(huì)話數(shù)據(jù)的操作,則根據(jù)調(diào)用所述API的請(qǐng)求從數(shù)據(jù)緩存中讀取會(huì)話數(shù)據(jù); 數(shù)據(jù)緩存,用于緩存API代理引擎生成的會(huì)話數(shù)據(jù),以及將API代理引擎讀取的會(huì)話數(shù)據(jù)發(fā)送給API代理引擎。
16.一種生成應(yīng)用程序編程接口 API的方法,其特征在于,所述方法包括: API代理中的API開(kāi)發(fā)器在圖形化API開(kāi)發(fā)界面上接收用于生成API的API生成指令;所述API開(kāi)發(fā)器根據(jù)接收的所述API生成指令生成用于描述所述API的處理流程的API代理資源; 所述API開(kāi)發(fā)器將生成的所述API代理資源發(fā)給所述API代理中的API代理引擎,以使所述API代理引擎在收到API調(diào)用設(shè)備調(diào)用所述API的請(qǐng)求后,根據(jù)接收的調(diào)用所述API的請(qǐng)求執(zhí)行所述API代理資源中所述API的處理流程。
17.一種執(zhí)行應(yīng)用程序編程接口 API處理流程的方法,其特征在于,所述方法包括: API代理中的API代理引擎接收API調(diào)用設(shè)備發(fā)送的調(diào)用API的請(qǐng)求; 所述API代理引擎根據(jù)接收的調(diào)用所述API的請(qǐng)求,執(zhí)行用于描述所述API的API代理資源中所述API的處理流程,其中所述API資源是所述API代理中的API開(kāi)發(fā)器根據(jù)接收的用于生成所述API的API生成指令生成并發(fā)給所述API代理引擎的; 若所述API的處理流程中有緩存會(huì)話數(shù)據(jù)的操作,則所述API代理引擎根據(jù)調(diào)用所述API的請(qǐng)求生成會(huì)話數(shù)據(jù),并將生成的會(huì)話數(shù)據(jù)緩存到所述API代理中的數(shù)據(jù)緩存中;若所述API的處理流程中有獲取會(huì)話數(shù)據(jù)的操作,則所述API代理引擎根據(jù)調(diào)用所述API的請(qǐng)求從所述數(shù)據(jù)緩存中讀取 會(huì)話數(shù)據(jù)。
【文檔編號(hào)】H04L29/08GK103731427SQ201310754454
【公開(kāi)日】2014年4月16日 申請(qǐng)日期:2013年12月31日 優(yōu)先權(quán)日:2013年12月31日
【發(fā)明者】李世華 申請(qǐng)人:華為技術(shù)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
许昌市| 通山县| 洮南市| 崇文区| 讷河市| 莱阳市| 常山县| 竹山县| 马鞍山市| 华坪县| 通辽市| 随州市| 全南县| 湘阴县| 祁连县| 衡东县| 济宁市| 简阳市| 潮安县| 长丰县| 托克逊县| 开江县| 习水县| 冀州市| 岚皋县| 杭锦旗| 河曲县| 新巴尔虎右旗| 永康市| 聂荣县| 拉孜县| 三门峡市| 彭阳县| 辛集市| 宜春市| 巴楚县| 舟山市| 南华县| 巧家县| 揭东县| 延津县|