亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種可配置的客戶端引擎及利用其調用服務的方法與流程

文檔序號:11778522閱讀:213來源:國知局

本發(fā)明涉及webservice客戶端引擎的技術領域,尤其涉及了一種可配置的客戶端引擎及利用其調用服務的方法。



背景技術:

目前webservice服務端實現(xiàn)技術有axis,axis2,xfire,cxf等多種實現(xiàn)方式,那么客戶端調用webservice時就必須采用不同的客戶端實現(xiàn),需要通過生成工具生成客戶端代碼,以及通過客戶端編程方式,這樣使得每個webservice服務的客戶端引擎調用都是需要編程的方式實現(xiàn)一套在客戶端的程序代碼比較繁瑣。

為了解決這類問題,我們研發(fā)了webservice客戶端調用引擎框架,屏蔽了服務端的技術,通過簡單的配置,實現(xiàn)了統(tǒng)一的webservice客戶端調用。



技術實現(xiàn)要素:

本發(fā)明所要解決的技術問題是:現(xiàn)有技術中的每個webservice服務的客戶端引擎調用都是需要編程的方式,并且實現(xiàn)一套在客戶端的程序代碼比較繁瑣,耗費時間以及成本。

為解決上面的技術問題,本發(fā)明提供了一種可配置的客戶端引擎,該客戶端引擎包括:服務注冊配置模塊、客戶端服務類配置模塊、服務參數(shù)配置模塊、服務調用配置模塊、服務返回配置模塊;

所述服務注冊配置模塊,其用于配置服務名稱及所述服務名稱與服務參數(shù)配置的映射關系;

所述客戶端服務類配置模塊,其用于配置客戶端接口、與所述服務名稱對應的服務實現(xiàn)類、所述客戶端接口協(xié)議以及與所述客戶端接口協(xié)議對應的遠程服務文件;

所述服務參數(shù)配置模塊,其用于配置所述服務參數(shù)配置、調用所述服務實現(xiàn)類的入?yún)?、以及所述服務參?shù)配置與服務返回配置的映射關系;

所述服務調用配置模塊,其用于配置所述遠程服務文件與所述客戶端接口協(xié)議的映射關系;

所述服務返回配置模塊,其用于配置所述服務返回配置,并接收服務返回的報文。

本發(fā)明的有益效果:通過研發(fā)了可配置的客戶端引擎調用框架,屏蔽了服務端的技術,通過簡單的配置,實現(xiàn)了統(tǒng)一的客戶端引擎調用,減化客戶端引擎調用的開發(fā),大大簡化了客戶端引擎調用服務的難度,同時提高了開發(fā)效率,降低了開發(fā)成本。

進一步地,所述服務參數(shù)配置模塊還用于配置所述客戶端引擎的前置任務信息和后置任務信息。

進一步地,所述服務返回配置模塊還用于將服務返回報文格式配置成xsl格式并輸出。

本發(fā)明還涉及一種利用可配置的客戶端引擎調用服務的方法,該方法包括如下步驟:

s1,將所述客戶端引擎中的配置進行初始化,并將初始化后的所述配置緩存到內(nèi)存中;

s2,驅動前置任務信息進行校驗,根據(jù)校驗結果判斷是否正常,若校驗正常,則執(zhí)行s3,若校驗不正常,則結束,返回s1;

s3,根據(jù)所述客戶端接口協(xié)議,選擇與所述客戶端接口協(xié)議對應的客戶端調用線程,同時解析所述服務實現(xiàn)類的入?yún)?并將解析后的所述入?yún)⑵唇映上鄳姆杖雲(yún)笪?,再驅動所述客戶端調用線程對服務入?yún)笪倪M行調用;

s4,接收服務返回的出參報文并將其解析,將接收的服務返回報文按照xsl的格式輸出,再執(zhí)行后置任務信息。

本發(fā)明的有益效果:通過研發(fā)了可配置的客戶端引擎調用框架,屏蔽了服務端的技術,通過簡單的配置,實現(xiàn)了統(tǒng)一的客戶端引擎調用,減化客戶端引擎調用的開發(fā),大大簡化了客戶端引擎調用服務的難度,同時提高了開發(fā)效率,降低了開發(fā)的成本。

進一步地,所述s1中,通過靜態(tài)單例方式加載所述客戶端引擎中的配置,并將所述客戶端引擎中的配置進行初始化。

進一步地,所述s2中,前置任務信息校驗包括:渠道校驗或參數(shù)校驗。

上述進一步地有益效果:用來檢驗調用方是否有權限等以及用來檢驗服務參數(shù)是否合法,參數(shù)類型或大小滿足要求等。

進一步地,所述s3中,采用多線程的方式驅動客戶端調用線程。

進一步地,所述客戶端調用線程包括:客戶端同步調用線程或客戶端異步調用線程。

上述進一步地有益效果:支持同步和異步的應用場景,同步即阻塞,能保證順序執(zhí)行,異步即避免阻塞,能提高響應效率。

附圖說明

圖1為本發(fā)明一種利用可配置的客戶端引擎調用服務的方法的流程圖。

具體實施方式

以下結合附圖對本發(fā)明的原理和特征進行描述,所舉實例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。

實施例1

本實施例1中一種可配置的客戶端引擎,該客戶端引擎包括:服務注冊配置模塊、客戶端服務類配置模塊、服務參數(shù)配置模塊、服務調用配置模塊、服務返回配置模塊;

所述服務注冊配置模塊,其用于配置服務名稱及所述服務名稱與服務參數(shù)配置的映射關系;

所述客戶端服務類配置模塊,其用于配置客戶端接口、與所述服務名稱對應的服務實現(xiàn)類、所述客戶端接口協(xié)議以及與所述客戶端接口協(xié)議對應的遠程服務文件;

所述服務參數(shù)配置模塊,其用于配置所述服務參數(shù)配置、調用所述服務實現(xiàn)類的入?yún)ⅰ⒁约八龇諈?shù)配置與服務返回配置的映射關系;

所述服務調用配置模塊,其用于配置所述遠程服務文件與所述客戶端接口協(xié)議的映射關系;

所述服務返回配置模塊,其用于配置所述服務返回配置,并接收服務返回的報文。

我們需要對上述實施例1中的客戶端引擎進行具體的解析,在本實施例1中我們是先構造出一個客戶端引擎框架,配置一個可以使用多種協(xié)議的客戶端引擎,這個客戶端引擎框架里面包括:服務注冊配置模塊、客戶端服務類配置模塊、服務參數(shù)配置模塊、服務調用配置模塊、服務返回配置模塊;所述服務注冊配置模塊在這個客戶端引擎模塊中是為了配置服務名稱及所述服務名稱與服務參數(shù)配置的映射關系,例如下述:我們編輯的代碼,服務注冊配置模塊代碼:

business.xml(服務注冊配置模塊)

<drivers>

<!—demows服務名稱-->

<businessname="demoservice",conf="demo_business.xml"/>

</drivers>

所述服務注冊配置模塊是用于配置服務名稱及所述服務名稱與服務參數(shù)配置的映射關系,也是我們代碼中<businessname="demoservice"代表的就是我們需要配置的服務名稱,而conf="demo_business.xml"/></drivers>代表的就是服務參數(shù)配置。

然后,我們還需要說明的是所述客戶端服務類配置模塊在本實施例1中是用于配置客戶端接口、與所述服務名稱對應的服務實現(xiàn)類、所述客戶端接口協(xié)議以及與所述客戶端接口協(xié)議對應的遠程服務文件;其中在我們編輯的代碼中thirdbusiness.xml(客戶端調用實現(xiàn)類配置);

<business>

<!—demo客戶端接口-->

<interface是本實施例1中的客戶端接口;

name="democlient"是指服務名稱對應的實現(xiàn)類,也就是服務實現(xiàn)類的內(nèi)容;而本實施例1中的class="xx.orderthirdwebaxisservice"代表的是不同的接口對應不同的協(xié)議,客戶端調用會根據(jù)不同的協(xié)議(type)會指定不同的實現(xiàn)類(class),調用遠程的ws服務(conf),這個客戶端調用通過(name)提供給使用者。其中conf="demo_conf.xml代表的是遠程服務的文件,type="webservice"/>代表的是客戶端接口協(xié)議以及與所述客戶端接口協(xié)議對應的遠程服務文件;

另外,我們還需要說明的是所述服務參數(shù)配置模塊是用于配置所述服務參數(shù)配置、調用所述服務實現(xiàn)類的入?yún)?、以及所述服務參?shù)配置與服務返回配置的映射關系,在本實施例1中所述服務參數(shù)配置我們采用的代碼是demo_business.xml(服務參數(shù)配置)

<?xmlversion="1.0"encoding="utf-8"?>

<engine>

<!--drive表示一個驅動-->

<driver>

<condition>

<!--前置任務-->

<keyname="type"value="demo"/>

</condition>

<before>

</before>

<!--business表示業(yè)務驅動-->

<!--interface表示接口的名稱,和thirdbusiness.xml中interface的name屬性匹配-->

<!--sync表示對該接口的調用是否同步,0表示異步,1表示同步,默認為0-->

<!--times表示在失敗的情況下重試的次數(shù),默認為1,即不需要重試--><!--delay表示失敗后間隔多長時間進行重試,單位為毫秒-->

<businessinterface="demows"sync="true"times="1"delay="0"

isrequestnomal="1">

<request>

<adapter></adapter>

<select></select>

<!--fields表示業(yè)務接口的參數(shù)字段,按照field的順序來賦值-->

<fields>

<fieldname="param0"type="string"key="phoneno"/><!--手機號碼--></fields>

</request>

<dataadapter="xml"format="xml">

<!--data.adapter定義了對業(yè)務結果的適配器的類型-->

<!--success.adapter為業(yè)務驅動成功的情況下,對結果的標準化驅動配置文件-->

<successadapter="demo_return.xsl"></success>

<failedadapter="sdemo_return.xsl"></failed>

</data>

</business>

<!--后置任務-->

<after>

</after>

</driver>

</engine>

在本實施1中我們還需要說明的是所述服務調用配置模塊是用于配置所述遠程服務文件與所述客戶端接口協(xié)議的映射關系;所述服務返回配置模塊是用于配置所述服務返回配置,并接收服務返回的報文。

可選地,我們還對上述做了進一步地細化,在本實施例1中所述服務參數(shù)配置模塊還用于配置所述客戶端引擎的前置任務信息和后置任務信息。

可選地,所述服務返回配置模塊還用于配置服務返回報文格式,將接收的服務返回報文按照xsl的格式輸出。

通過上述實施例1我們研發(fā)了可配置的客戶端引擎調用框架,屏蔽了服務端的技術,通過簡單的配置,實現(xiàn)了統(tǒng)一的客戶端引擎調用,減化客戶端引擎調用的開發(fā),大大簡化了客戶端引擎調用服務的難度,同時提高了開發(fā)效率。

實施例2

如圖1所示,在本實施例2中還涉及一種利用可配置的客戶端引擎調用服務的方法,該方法包括如下步驟:

s1,將所述客戶端引擎中的配置進行初始化,并將初始化后的所述配置緩存到內(nèi)存中;

s2,驅動前置任務信息進行校驗,根據(jù)校驗結果判斷是否正常,若校驗正常,則執(zhí)行s3,若校驗不正常,則結束,返回s1;

s3,根據(jù)所述客戶端接口協(xié)議,選擇與所述客戶端接口協(xié)議對應的客戶端調用線程,同時解析所述服務實現(xiàn)類的入?yún)?并將解析后的所述入?yún)⑵唇映上鄳姆杖雲(yún)笪?,再驅動所述客戶端調用線程對服務入?yún)笪倪M行調用;

s4,接收服務返回的出參報文并將其解析,將接收的服務返回報文按照xsl的格式輸出,再執(zhí)行后置任務。

我們需要對上面的實施例2進行詳細的解析,首先,我們是先將實施例1中配置好的客戶端引擎中的一些配置進行初始化,再將這些初始化好的所述配置緩存到內(nèi)存當中,便于后續(xù)執(zhí)行調用時從內(nèi)存讀取這些相關的配置;接著我們需要在執(zhí)行調用的時候,對客戶端引擎進行前置任務的校驗,比如:渠道校驗或者參數(shù)校驗等這些前置動作,根據(jù)校驗結果判斷是否正常,若校驗正常,則執(zhí)行s3,若校驗不正常,則結束,返回s1。

再其次,我們還根據(jù)所述客戶端接口協(xié)議,選擇與所述客戶端接口協(xié)議對應的客戶端調用線程,同時解析所述服務實現(xiàn)類的入?yún)?并將解析后的所述入?yún)⑵唇映上鄳姆杖雲(yún)笪模衮寗铀隹蛻舳苏{用線程對服務入?yún)笪倪M行調用;客戶端引擎調用的時候是根據(jù)客戶端接口應不同的協(xié)議,客戶端調用會根據(jù)不同的協(xié)議(type)會指定不同的服務實現(xiàn)類(class),調用遠程的ws服務(conf),這個客戶端引擎調用通過(name)提供給使用者。

最后,客戶端會接收服務返回的出參報文并將其解析,將接收的服務返回報文按照xsl的格式輸出,再執(zhí)行后置任務。

可選地,在本實施例2中我們在進一步地細化,在步驟s1中,通過靜態(tài)單例方式加載所述客戶端引擎中的配置,并將所述客戶端引擎中的配置進行初始化。

可選地,所述s2中,前置任務信息校驗包括:渠道校驗或參數(shù)校驗。

可選地,所述s3中,采用多線程的方式驅動客戶端調用線程。

可選地,所述客戶端調用線程包括:客戶端同步調用線程或客戶端異步調用線程。

在本實施例2中,開始調用遠程webservice服務;采用多線程技術方式,開啟執(zhí)行調用webservice服務的線程,支持持同步或異步的調用,調用的方式及其它特性支持可配置

比如:同步/異步調用:

同步:指發(fā)送一個請求,需要等待返回,然后才能夠發(fā)送下一個請求,有個等待過程;

在本實施例2中客戶端異步調用是:指發(fā)送一個請求,不需要等待返回,隨時可以再發(fā)送下一個請求,即不需要等待。

本實施例2同步或異步的調用區(qū)別:客戶端異步調用是需要等待,而客戶端同步調用是不需要等待,在部分情況下,我們的默認都會優(yōu)先選擇不需要等待的異步調用的方式;

在本實施例在2中客戶端調用時會發(fā)生自動重試,發(fā)生自動重試情況是當調用發(fā)生異?;蚴r,自動重新發(fā)起調用;在客戶端調用發(fā)生自動重試時,會順便記錄自動重試的次數(shù);另外,在客戶端調用時還包括了超時設置,所述超時設置是指客戶端需要等待服務返回報文的時間;驅動后置任務:根據(jù)xx_return.xml(服務返回報文)配置,利用xslt(擴展樣式表轉換語言)解析返回的出參報文,進行格式化轉換;驅動后任務,如果配置了后置的任務,比如記錄日志等后續(xù)動作,將自動驅動后續(xù)任務執(zhí)行。

在本說明書中,對上述術語的示意性表述不必須針對的是相同的實施例或示例。而且,描述的具體特征、結構、材料或者特點可以在任一個或多個實施例或示例中以合適的方式結合。此外,在不相互矛盾的情況下,本領域的技術人員可以將本說明書中描述的不同實施例或示例以及不同實施例或示例的特征進行結合和組合。

以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1