董翔宇
(中國人民解放軍海軍工程大學,武漢 430033)
基于AOP的Web服務容錯技術研究
董翔宇
(中國人民解放軍海軍工程大學,武漢 430033)
為了提供更優(yōu)質的Web服務,本文提出了基于AOP的Web服務容錯模型,使用AOP作為實現(xiàn)服務過程與切面融合的手段,將容錯關注點從功能性關注點中分離并織入到Web服務流程中,利用AOP技術將橫切關注點與核心關注點統(tǒng)一架構的方法,保證核心模塊的高度封裝性。本文設計了一個演示系統(tǒng),綜合了地圖、天氣和查詢訂票服務,并根據(jù)服務的特性構建了主從容錯、緩存容錯、重試容錯、日志容錯四種不同容錯方式。
關鍵詞:Web服務;AOP;容錯;備份;緩存;重試;日志
實現(xiàn)即時查詢同時整合多種服務,并且通過容錯方式提高服務的可靠性,是互聯(lián)時代的新特點。容錯機制主要分為冗余、故障檢測與恢復、替代與補償[1],設計容錯系統(tǒng)要對系統(tǒng)需求、設計實現(xiàn)和應用開發(fā)加以構建。近年來,國內外學者基于三種機制提出了許多容錯規(guī)范和方法。Ko[2]提出了自適應的面向位置敏感的環(huán)境下的容錯算法;卡耐基梅隆大學的文件存取服務Coda[3]通過復制服務器技術進行故障恢復。AOP是一種基于橫切關注點分離的技術,將橫切關注點單獨建模并織入到系統(tǒng)中,通過構建切面,確定連接點和切入點將對象織入系統(tǒng)中。本文以用戶經(jīng)常用到的地圖、天氣等查詢服務為背景,基于AOP實現(xiàn)Web服務的容錯編程,通過對服務器的可用性鑒別,進行監(jiān)測攔截并實現(xiàn)容錯功能,最終建立了基于AOP的容錯演示系統(tǒng)。
主從容錯在系統(tǒng)監(jiān)測上利catch/try方法,在系統(tǒng)運行進行類成員訪問時會被OnInvoke方法攔截并跳轉到容錯Aspect上,當系統(tǒng)運行良好,所有的信息直接由主結點處理,當出現(xiàn)異常時自動執(zhí)行catch語句,在該容錯中將從服務器替換主服務器。Retry(S,number,interval):S代表當前服務,number代表重試次數(shù),interval代表重試時間間隔,重試容錯在服務S異常時重復調用直到其成功或達到指定條件,進而對服務異常進行恢復[4]。Cache技術實現(xiàn)對信息的暫存,方便在服務發(fā)生故障時及時從Cache中調用,用戶可設定Cache緩存時間,在這段時間里緩存數(shù)據(jù)放在Cache中,當用戶查詢的內容在Cache中存在時,可直接進行調用從而減少訪問服務器這一過程。Logging作為一種存檔文件解決了系統(tǒng)錯誤備份恢復問題,本文利用日志容錯記錄系統(tǒng)運行初始、結束時間和運行狀態(tài),并且一旦出錯會記錄出錯時間和異常信息。
3.1 基于AOP的容錯設計
本文利用面向方面編程方法,對AOP架構進行拆分并模塊化,進而對每一模塊分析設計,最后進行重組。將每一個容錯類型做成一個Aspect,本文總共有主從容錯(BackupAttribute)、重試容錯(RetryAttribute)、緩存容錯(CatchAttribute)和日志容錯(LoggingAttribute)四個方面,同時利用try/catch語句進行捕捉錯誤,一旦發(fā)生異常利用OnInvoke方法攔截切入并織入容錯機制。
圖1 錯誤恢復主從容錯模型
橫切在連接點處,共有4個連接點,其作用時機略有不同,當被調用時,cache,backup,retry容錯會自動攔截核心關注點的類成員訪問,實現(xiàn)編譯期織入的過程,而logging容錯一旦被調用則不需要攔截機制,從方法開始到結束都會跟蹤記錄。下面利用錯誤恢復Aspect模型進行詳細介紹。
如圖1所示,類WeatherServes有若干屬性和方法,我們定義了名為BackupAttribute的Aspect進行錯誤恢復,在BackupAttribute中由于是靜態(tài)橫切所以連接點的調用時機是攔截查詢天氣方法(GetWeatherInfo),由于BackupAttribute繼承了MethodInterceptionAspect類,故與該容錯方式相對應的通知使用的是before的橫切規(guī)則,before在切入點前執(zhí)行橫切行為,eventArgs. Proceed方法的實質是連接點指向方法的別名,此處使用方法調用的目的是在將主從容錯方法放入try/catch語句塊中,以捕獲Exception異常,event Args.Proceed方法此處即是主從容錯方法的別名,當系統(tǒng)發(fā)現(xiàn)遠程服務無響應并拋出Exception異常時,容錯機制執(zhí)行catch中語句,將從服務器替換主服務器,進而重新調用服務查詢。同時,4處虛線說明實現(xiàn)容錯Aspect有4個連接點,而本例中只對主從備份容錯進行介紹,除了BackupAttribute外CatchAttribute,RetryAttribute,Logging Attribute都構成切面。其中,CatchAttribute和RetryAttribute都是采用判斷的方式,構建出系統(tǒng)異常情況的處理辦法,RetryAttribute錯誤恢復仍采用try/catch語句,一旦發(fā)生異常等待一段時間后重試,這將在catch語句中實現(xiàn);Catch Attribute判斷系統(tǒng)的cache中是否保留過用戶查詢的信息,如果存在則直接調用。Logging Attribute繼承了類MethodBoundaryAspect,采用around橫切規(guī)則,around是三種橫切規(guī)則中功能最強大的,它既可以在切入點前后執(zhí)行橫切行為,也可以替代切入點執(zhí)行橫切行為,同時它可以在后臺記錄下系統(tǒng)運行情況,提供給用戶進行分析記錄。
3.2 容錯策略
在容錯策略上對每個Aspect進行編碼,當調用主從容錯時,BackupAttribute在連接點進行橫切織入,對服務進行異常判斷,選擇是否將從容錯替換主容錯。當調用重試容錯時,RetryAttribute在連接點處進行橫切織入,我們在Aspect編程中使用了While語句,將用戶設定的重試次數(shù)和間隔傳送到循環(huán)語句中,并在捕捉異常情況時,進行循環(huán)重試。當調用緩存容錯時,根據(jù)最終查詢的服務類別會在系統(tǒng)的不同區(qū)域申請內存空間,之后建立一個cache參數(shù)key作為檢查內存中是否保存曾經(jīng)的查詢信息。當調用日志容錯時,在程序出現(xiàn)異常時跳轉到OnException方法上,輸出異常的時刻,異常信息等,當服務結束,在程序出口處會記錄執(zhí)行結束信息。
圖2 訂票服務
在實現(xiàn)界面上,我們介紹采用日志容錯技術的查詢訂票服務,系統(tǒng)中容錯機制進行跟蹤狀態(tài)和記錄變量值,以便于在發(fā)生錯誤時準確的恢復到原來狀態(tài)。由圖2可以清晰看到,出現(xiàn)錯誤時,系統(tǒng)會自動恢復到上一狀態(tài),即退還用戶金額?!?/p>
[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產品創(chuàng)新獎初評會在京舉行
作為2016年度C C BN展覽會重磅打造的行業(yè)創(chuàng)新活動——“CCBN2016產品創(chuàng)新獎”初評工作會議于2016年1月9日在北京召開。
CCBN2016產品創(chuàng)新獎評選活動于2015年11月正式啟動,共收到參評產品與技術方案近200余項,歷經(jīng)嚴格的資料遞送審核及評審工作,得到了來自行業(yè)技術企業(yè)及專家評委的肯定與支持。來自中央人民廣播電臺、中國國際廣播電臺、中央電視臺、中國網(wǎng)絡電視臺、中國廣播電視網(wǎng)絡有限公司、廣電總局監(jiān)管中心、廣電總局廣播電視衛(wèi)星直播管理中心、廣播科學研究院、廣播電視規(guī)劃院、電影技術質量檢測所、中廣電廣播電影電視設計院、中國傳媒大學等14位行業(yè)專家組成評審專家組參與了評選工作,國家新聞出版廣電總局科學技術委員會副主任杜百川先生主持會議。專家組通過產品展示、分組評分、討論復議等環(huán)節(jié),本著公開、公平、公正的原則,最終評選出制作與播出、傳輸與覆蓋、業(yè)務平臺與終端、融合媒體四大類共55項產品入圍。
據(jù)悉,CCBN2016產品創(chuàng)新獎復評會將于1月23日在北京召開,復評會將最終評選出CCBN2016產品創(chuàng)新獎獲獎產品,獲獎結果將于2016年3月23日CCBN主題報告會期間在北京國際會議中心揭曉并舉行頒獎典禮。
2016年是“十三五”規(guī)劃第一年,十八屆五中全會重點研究制定了國家的“十三五”規(guī)劃,指出經(jīng)濟發(fā)展仍是第一要務,要推動創(chuàng)新,突出市場在資源配置中的決定性作用。2016年CCBN年度產品創(chuàng)新獎將深入貫徹落實黨的十八大五中全會精神,緊扣廣播影視技術“創(chuàng)新、融合、發(fā)展”的行業(yè)格局,挖掘和表彰優(yōu)秀創(chuàng)新產品和企業(yè),促進廣播電視行業(yè)快速發(fā)展。
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