[發明專利]客戶端/服務端架構下的調度方法和服務器無效
| 申請號: | 201010563498.4 | 申請日: | 2010-11-26 |
| 公開(公告)號: | CN102025728A | 公開(公告)日: | 2011-04-20 |
| 發明(設計)人: | 丁輝 | 申請(專利權)人: | 中興通訊股份有限公司 |
| 主分類號: | H04L29/06 | 分類號: | H04L29/06;H04L12/56 |
| 代理公司: | 北京康信知識產權代理有限責任公司 11240 | 代理人: | 余剛;吳孟秋 |
| 地址: | 518057 廣*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 客戶端 服務端 架構 調度 方法 服務器 | ||
技術領域
本發明涉及通信領域,具體而言,涉及一種C/S(Client/Server,客戶端/服務端)架構下的調度方法(Double?Level?Lock?Schedule?Method,DL2SM)和服務器。
背景技術
在C/S架構下,同一個服務端需要同時支持多個客戶端,多個客戶端可以并發的訪問服務端。對于服務端所提供的某些功能,同一時刻多個用戶可以通過多個客戶端同時使用。但是,有一些功能,對于客戶端之間是“互斥的”,即在同一時刻不允許多個客戶端同時使用。在面向用戶的應用程序中,有些應用程序所提供的功能在某種程度上有其特殊性,在異常情況下也有其特殊的要求,因此,使用傳統的多線程互斥調度方法往往難以滿足C/S架構下的多客戶端并發訪問服務端的互斥要求。
在OMC(Operation?Management?Center,操作維護中心)中,需要互斥的功能可以分成兩種類型,第一,網元級別的互斥,即對于同一個網元,在同一時刻只能有一個客戶端在操作,如配置參數的修改保存;第二,功能級別的互斥,即不再區分網元,而是對于某一個功能在同一時刻只能有一個客戶端使用,如配置同步,要求同一時刻只能夠有一個客戶端打開配置同步這個功能界面,通常把這種具有功能級別的互斥的功能叫做“單實例”功能,即這個功能只能有一個實例在被使用。
對于網元級別的互斥,可以使用互斥權限來保證,但是對于功能級別的互斥,因為互斥權限是不需要依賴于網元的,因此不能夠使用已有的互斥權限來保證。需要使用一種新的方法來保證功能使用上的互斥。
對于功能上的互斥,以往的方法是使用一種功能鎖的方法:在服務端為每一個單實例功能設置一個互斥鎖屬性,在某客戶端嘗試進入單實例的功能菜單時,要去服務端判斷此功能是否被鎖,如果被鎖,表示其他客戶端正在占用,那么此客戶端無法進入這個功能菜單;如果沒有被鎖,那么向服務端申請鎖住此功能,不允許其他客戶端同時使用,之后打開這個功能菜單,當用戶完成操作,關閉功能頁面時,向服務端通知釋放功能鎖,允許其他客戶端使用。
由于這里使用的功能鎖保證了同一時刻只能有一個客戶端打開單實例功能的操作界面,是操作界面級別的單實例保證,因此在這里把它叫做GUI?Level(界面級別)的功能鎖,由GUI?Level功能鎖實現的單重鎖調度模型如圖1。
使用這種GUI?Level的功能鎖,看上去成功的解決了問題,但是仔細考慮,還有一些情況沒有考慮到。
目前已有的GUI?Level的功能鎖,在正常情況下可以正常運轉,但是,當某獲取到了功能鎖的客戶端異常退出時,比如斷網、斷電、強制結束進程,這個時候客戶端不會主動去要求服務端釋放掉自己已經占用的功能鎖,這時在服務的功能鎖仍在占用狀態,如果其他客戶端嘗試使用此功能,會因為獲取不到功能鎖而無法進入功能界面,但實際上已經沒有其他客戶端占用此功能的功能鎖了,因為占用此功能鎖的客戶端已經退出。
而且,即使客戶端異常退出后功能鎖能夠被釋放,還會存在如下問題:
當客戶端使用單實例功能發起執行請求后,請求在服務端還沒有執行完成的時候,客戶端異常退出,被服務端監聽到,于是釋放掉了這個客戶端占用的功能鎖。這個時候雖然沒有客戶端占用這個功能,但是此功能的請求仍在服務端執行,因此如果有其他客戶端在這一時刻使用這個本來應該是單實例的功能,還會出現問題。例如,客戶端A發起批量參數導出,導出過程需要10分鐘,客戶端A在進入導出界面時向服務端申請了批量參數導出功能鎖,如果導出過程在服務端執行到第5分鐘的時候,客戶端斷電異常退出,服務端的狀態檢測器監聽到了客戶端的退出,釋放掉客戶端A占用的批量參數導出功能鎖,允許其他客戶端使用批量參數導出功能,這個時候問題出現了,因為此時批量參數導出還在服務端執行,并沒有在客戶端異常退出后就真正的結束,此時如果其他客戶端再使用這個功能,就會與單實例功能的設計不符,出現數據混亂等問題。
發明內容
本發明的主要目的在于提供一種C/S架構下的調度方法和服務器,解決了現有技術中由于不能互斥而導致出現數據混亂問題。
根據本發明的一個方面,提供了一種客戶端/服務端架構下的調度方法,包括如下步驟:服務端接收客戶端用于請求單實例的請求消息;服務端判斷客戶端所請求的單實例的界面是否正在被訪問或者客戶端所請求的單實例是否正在被運行;若判斷出客戶端所請求的單實例的界面正在被訪問或者客戶端所請求的單實例正在被運行,則服務端向客戶端發送用于拒絕客戶端接入的響應消息。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中興通訊股份有限公司,未經中興通訊股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201010563498.4/2.html,轉載請聲明來源鉆瓜專利網。





