董翔宇
(中國人民解放軍海軍工程大學,武漢 430033)
基于AOP的Web服務容錯技術研究
董翔宇
(中國人民解放軍海軍工程大學,武漢 430033)
為了提供更優質的Web服務,本文提出了基于AOP的Web服務容錯模型,使用AOP作為實現服務過程與切面融合的手段,將容錯關注點從功能性關注點中分離并織入到Web服務流程中,利用AOP技術將橫切關注點與核心關注點統一架構的方法,保證核心模塊的高度封裝性。本文設計了一個演示系統,綜合了地圖、天氣和查詢訂票服務,并根據服務的特性構建了主從容錯、緩存容錯、重試容錯、日志容錯四種不同容錯方式。
關鍵詞:Web服務;AOP;容錯;備份;緩存;重試;日志
實現即時查詢同時整合多種服務,并且通過容錯方式提高服務的可靠性,是互聯時代的新特點。容錯機制主要分為冗余、故障檢測與恢復、替代與補償[1],設計容錯系統要對系統需求、設計實現和應用開發加以構建。近年來,國內外學者基于三種機制提出了許多容錯規范和方法。Ko[2]提出了自適應的面向位置敏感的環境下的容錯算法;卡耐基梅隆大學的文件存取服務Coda[3]通過復制服務器技術進行故障恢復。AOP是一種基于橫切關注點分離的技術,將橫切關注點單獨建模并織入到系統中,通過構建切面,確定連接點和切入點將對象織入系統中。本文以用戶經常用到的地圖、天氣等查詢服務為背景,基于AOP實現Web服務的容錯編程,通過對服務器的可用性鑒別,進行監測攔截并實現容錯功能,最終建立了基于AOP的容錯演示系統。
主從容錯在系統監測上利catch/try方法,在系統運行進行類成員訪問時會被OnInvoke方法攔截并跳轉到容錯Aspect上,當系統運行良好,所有的信息直接由主結點處理,當出現異常時自動執行catch語句,在該容錯中將從服務器替換主服務器。Retry(S,number,interval):S代表當前服務,number代表重試次數,interval代表重試時間間隔,重試容錯在服務S異常時重復調用直到其成功或達到指定條件,進而對服務異常進行恢復[4]。Cache技術實現對信息的暫存,方便在服務發生故障時及時從Cache中調用,用戶可設定Cache緩存時間,在這段時間里緩存數據放在Cache中,當用戶查詢的內容在Cache中存在時,可直接進行調用從而減少訪問服務器這一過程。Logging作為一種存檔文件解決了系統錯誤備份恢復問題,本文利用日志容錯記錄系統運行初始、結束時間和運行狀態,并且一旦出錯會記錄出錯時間和異常信息。
3.1 基于AOP的容錯設計
本文利用面向方面編程方法,對AOP架構進行拆分并模塊化,進而對每一模塊分析設計,最后進行重組。將每一個容錯類型做成一個Aspect,本文總共有主從容錯(BackupAttribute)、重試容錯(RetryAttribute)、緩存容錯(CatchAttribute)和日志容錯(LoggingAttribute)四個方面,同時利用try/catch語句進行捕捉錯誤,一旦發生異常利用OnInvoke方法攔截切入并織入容錯機制。

圖1 錯誤恢復主從容錯模型
橫切在連接點處,共有4個連接點,其作用時機略有不同,當被調用時,cache,backup,retry容錯會自動攔截核心關注點的類成員訪問,實現編譯期織入的過程,而logging容錯一旦被調用則不需要攔截機制,從方法開始到結束都會跟蹤記錄。下面利用錯誤恢復Aspect模型進行詳細介紹。
如圖1所示,類WeatherServes有若干屬性和方法,我們定義了名為BackupAttribute的Aspect進行錯誤恢復,在BackupAttribute中由于是靜態橫切所以連接點的調用時機是攔截查詢天氣方法(GetWeatherInfo),由于BackupAttribute繼承了MethodInterceptionAspect類,故與該容錯方式相對應的通知使用的是before的橫切規則,before在切入點前執行橫切行為,eventArgs. Proceed方法的實質是連接點指向方法的別名,此處使用方法調用的目的是在將主從容錯方法放入try/catch語句塊中,以捕獲Exception異常,event Args.Proceed方法此處即是主從容錯方法的別名,當系統發現遠程服務無響應并拋出Exception異常時,容錯機制執行catch中語句,將從服務器替換主服務器,進而重新調用服務查詢。同時,4處虛線說明實現容錯Aspect有4個連接點,而本例中只對主從備份容錯進行介紹,除了BackupAttribute外CatchAttribute,RetryAttribute,Logging Attribute都構成切面。其中,CatchAttribute和RetryAttribute都是采用判斷的方式,構建出系統異常情況的處理辦法,RetryAttribute錯誤恢復仍采用try/catch語句,一旦發生異常等待一段時間后重試,這將在catch語句中實現;Catch Attribute判斷系統的cache中是否保留過用戶查詢的信息,如果存在則直接調用。Logging Attribute繼承了類MethodBoundaryAspect,采用around橫切規則,around是三種橫切規則中功能最強大的,它既可以在切入點前后執行橫切行為,也可以替代切入點執行橫切行為,同時它可以在后臺記錄下系統運行情況,提供給用戶進行分析記錄。
3.2 容錯策略
在容錯策略上對每個Aspect進行編碼,當調用主從容錯時,BackupAttribute在連接點進行橫切織入,對服務進行異常判斷,選擇是否將從容錯替換主容錯。當調用重試容錯時,RetryAttribute在連接點處進行橫切織入,我們在Aspect編程中使用了While語句,將用戶設定的重試次數和間隔傳送到循環語句中,并在捕捉異常情況時,進行循環重試。當調用緩存容錯時,根據最終查詢的服務類別會在系統的不同區域申請內存空間,之后建立一個cache參數key作為檢查內存中是否保存曾經的查詢信息。當調用日志容錯時,在程序出現異常時跳轉到OnException方法上,輸出異常的時刻,異常信息等,當服務結束,在程序出口處會記錄執行結束信息。

圖2 訂票服務
在實現界面上,我們介紹采用日志容錯技術的查詢訂票服務,系統中容錯機制進行跟蹤狀態和記錄變量值,以便于在發生錯誤時準確的恢復到原來狀態。由圖2可以清晰看到,出現錯誤時,系統會自動恢復到上一狀態,即退還用戶金額。■
[1] 歐陽建權,王懷民,史殿習.普適計算的可信研究[J].計算機應用研究,2008.15(12):111-132
[2] Koen. An adaptive fault tolerance for situation aware ubiquitous computing[C].Washington DC:IEEE Computer Society,2005:144-149.
[3] Bram P J. The Coda distributed file system[J].Linux Journa1,1998.50(6):10-20.
[4] 夏永霖.復合服務自恢復關鍵技術研究[D].中國科學技術大學,2010:19-20
CCBN2016產品創新獎初評會在京舉行
作為2016年度C C BN展覽會重磅打造的行業創新活動——“CCBN2016產品創新獎”初評工作會議于2016年1月9日在北京召開。
CCBN2016產品創新獎評選活動于2015年11月正式啟動,共收到參評產品與技術方案近200余項,歷經嚴格的資料遞送審核及評審工作,得到了來自行業技術企業及專家評委的肯定與支持。來自中央人民廣播電臺、中國國際廣播電臺、中央電視臺、中國網絡電視臺、中國廣播電視網絡有限公司、廣電總局監管中心、廣電總局廣播電視衛星直播管理中心、廣播科學研究院、廣播電視規劃院、電影技術質量檢測所、中廣電廣播電影電視設計院、中國傳媒大學等14位行業專家組成評審專家組參與了評選工作,國家新聞出版廣電總局科學技術委員會副主任杜百川先生主持會議。專家組通過產品展示、分組評分、討論復議等環節,本著公開、公平、公正的原則,最終評選出制作與播出、傳輸與覆蓋、業務平臺與終端、融合媒體四大類共55項產品入圍。
據悉,CCBN2016產品創新獎復評會將于1月23日在北京召開,復評會將最終評選出CCBN2016產品創新獎獲獎產品,獲獎結果將于2016年3月23日CCBN主題報告會期間在北京國際會議中心揭曉并舉行頒獎典禮。
2016年是“十三五”規劃第一年,十八屆五中全會重點研究制定了國家的“十三五”規劃,指出經濟發展仍是第一要務,要推動創新,突出市場在資源配置中的決定性作用。2016年CCBN年度產品創新獎將深入貫徹落實黨的十八大五中全會精神,緊扣廣播影視技術“創新、融合、發展”的行業格局,挖掘和表彰優秀創新產品和企業,促進廣播電視行業快速發展。
Web Services Fault-tolerant Technology Research Based AOP
Dong Xiangyu
(Naval University of Engineering, PLA, Wuhan, 430033)
We put forward the model of Web Services fault-tolerance based on the AOP so as to provide better Web Services. It was used for the entire service implementation procedure and the fusion of sections , detaching fault-tolerant concerns from functional attention and woven into a Web service in the process. The high-level encapsulation of core module is ensured by the AOP, which construct the transverse concerns and core concerns. We designed a demonstration system, composed of the service of maps, weather and booking query. According to the characteristics of service, four ways of fault-tolerance are set up, including master-slave model, cache, retry model and logging.
Web Service; AOP; Fault-tolerance; Backup; Cache; Retry; Logging


10.3969/J.ISSN.1672-7274.2016.01.008
TP31
A
1672-7274(2016)01-0034-03