[發明專利]一種調用外部系統服務的方法及裝置在審
| 申請號: | 201210179618.X | 申請日: | 2012-06-01 |
| 公開(公告)號: | CN103455366A | 公開(公告)日: | 2013-12-18 |
| 發明(設計)人: | 王冬 | 申請(專利權)人: | 阿里巴巴集團控股有限公司 |
| 主分類號: | G06F9/46 | 分類號: | G06F9/46 |
| 代理公司: | 北京同達信恒知識產權代理有限公司 11291 | 代理人: | 郭潤湘 |
| 地址: | 英屬開曼群島大開曼*** | 國省代碼: | 開曼群島;KY |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 調用 外部 系統 服務 方法 裝置 | ||
技術領域
本申請涉及通信技術領域,尤其涉及一種調用外部系統服務的方法及裝置。
背景技術
目前,一個運行的系統或多或少的需要與其他的外部系統進行信息交互,也就是說,本地系統向用戶提供某些服務時,需要依賴于外部系統向本地系統提供的相應子服務。而本地系統要依賴于外部系統的子服務才能提供的服務根據其對外部系統的依賴性,又可分為強依賴服務和弱依賴服務。
強依賴服務是指,如果外部系統不能向本地系統提供相應的子服務,那么本地系統則不能向用戶提供的服務。例如,本地系統為銀聯系統,外部系統為銀行A的系統和銀行B的系統,銀聯系統為用戶提供在銀行A和銀行B之間轉賬的服務,那么該服務必須依賴于銀行A的系統和銀行B的系統分別提供相應的子服務才能進行,如果銀行A的系統和銀行B的系統中的任何一個不能提供相應的子服務,則銀聯系統就不能提供在銀行A和銀行B之間轉賬的服務。因此,銀聯系統提供的該在銀行A和銀行B之間轉賬的服務就是強依賴服務。
弱依賴服務是指,如果外部系統不能向本地系統提供相應的子服務,那么本地系統實際仍然可以向用戶提供部分服務的服務。例如,本地系統為機票查詢系統,外部系統為航空公司A的系統、航空公司B的系統、航空公司C的系統,機票查詢系統為用戶提供查詢機票的服務,那么該服務要依賴于航空公司A的系統、航空公司B的系統、航空公司C的系統提供相應的子服務,如果航空公司A的系統不能提供相應的子服務,則機票查詢系統仍然可以從航空公司B的系統和航空公司C的系統中查詢機票,只是查詢的機票中不包括航空公司A的機票。因此,機票查詢系統為用戶提供的該查詢機票的服務就是弱依賴服務。
然而,在現有技術中,本地系統向用戶提供服務時,并不區分用戶請求的服務是強依賴服務還是弱依賴服務,如圖1所示。圖1為現有技術中本地系統向用戶提供服務的過程,具體包括以下步驟:
S101:本地系統接收用戶發送的服務請求。
S102:本地系統建立各個調用任務,在各個線程上分別執行各個調用任務,以調用相應外部系統的子服務。
本地系統針對每個要調用的外部系統的子服務,建立一個調用任務,在一個線程上執行建立的調用任務,以調用外部系統的子服務。
S103:判斷是否在接收到該服務請求后的設定時間長度內獲取到調用的所有子服務的服務結果,若是,則執行步驟S104,否則執行步驟S105。
在實際應用中,用戶向本地系統請求的服務通常都會對應一個預設的請求超時時間長度,該請求超時時間長度即為步驟S103中的設定時間長度。
如果本地系統在接收到服務請求后的該設定時間長度內,獲取到了調用的所有子服務的服務結果,則將獲取到的服務結果處理后返回給用戶,也即執行步驟S104。如果本地系統在接收到服務請求后的該設定時間長度內未獲取到所有子服務的服務結果,則提供的該服務失敗,也即執行步驟S105。
S104:將服務結果進行處理后返回給該用戶。
S105:通知該用戶本次請求的服務失敗,不向該用戶返回服務結果。
當用戶請求的服務是弱依賴服務時,如上例中的查詢機票服務,如果航空公司A的系統出現故障,不能向本地系統提供相應的子服務,則在上述步驟S103中,本地系統勢必會確定在設定時間長度內未獲取到所有子服務的服務結果(未獲取到航空公司A的系統的子服務的服務結果),因此執行步驟S105,通知該用戶本次服務失敗,不向該用戶返回任何服務結果。而此時本地系統畢竟已經成功獲取到了航空公司B的系統和航空公司C的系統的子服務的服務結果,現有技術中直接通知用戶本次服務失敗,這無疑降低了本地系統提供服務的質量。用戶也很有可能會再次請求該服務,使本地系統再次調用各外部系統的子服務,這也增加了本地系統和各外部系統的負擔。
發明內容
本申請實施例提供一種調用外部系統服務的方法及裝置,用以解決現有技術中本地系統提供服務的質量較低,本地系統和外部系統的負擔較大的問題。
本申請實施例提供的一種調用外部系統服務的方法,包括:
第一系統向用戶提供弱依賴服務時,確定需要調用的每個第二系統的子服務并調用;以及
判斷是否在第一設定時間長度內獲取到調用的所有子服務的服務結果;
當判斷結果為否時,將在所述第一設定時間長度內獲取到的服務結果進行處理并返回給所述用戶。
本申請實施例提供的一種調用外部系統服務的裝置,包括:
調用模塊,用于向用戶提供弱依賴服務時,確定需要調用的每個第二系統的子服務并調用;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于阿里巴巴集團控股有限公司,未經阿里巴巴集團控股有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210179618.X/2.html,轉載請聲明來源鉆瓜專利網。





