文 斌 羅自強(qiáng)
(1.海南師范大學(xué)信息科學(xué)技術(shù)學(xué)院 海口 571158)(2.海南師范大學(xué)云計(jì)算與大數(shù)據(jù)研究中心 ???571158)
基于服務(wù)系統(tǒng)的運(yùn)行時(shí)異常處理機(jī)制研究與應(yīng)用
文 斌1,2羅自強(qiáng)1,2
(1.海南師范大學(xué)信息科學(xué)技術(shù)學(xué)院 ???571158)(2.海南師范大學(xué)云計(jì)算與大數(shù)據(jù)研究中心 海口 571158)
軟件服務(wù)成為接入和放大各類硬件基礎(chǔ)設(shè)施能力的基本途徑,服務(wù)計(jì)算成就資源共享價(jià)值,其核心是個(gè)性化定制和按需聚合實(shí)現(xiàn)離散服務(wù)增值。目前基于服務(wù)的軟件系統(tǒng)缺乏運(yùn)行時(shí)異常處理和服務(wù)再聚合迭代過程考慮,沒有從需求出發(fā)直接對(duì)接服務(wù)系統(tǒng)的自適應(yīng)機(jī)制以克服運(yùn)行時(shí)各種例外和應(yīng)對(duì)客觀存在的服務(wù)資源不足、上下文環(huán)境變化問題。論文主要貢獻(xiàn): 1) 構(gòu)建服務(wù)資源自適應(yīng)異常處理體系結(jié)構(gòu); 2) 設(shè)計(jì)應(yīng)對(duì)需求和服務(wù)場(chǎng)景變化的運(yùn)行時(shí)自適應(yīng)調(diào)節(jié)機(jī)制; 3) 結(jié)合海南熱帶農(nóng)產(chǎn)品電商平臺(tái)獲取實(shí)現(xiàn)能支持自適應(yīng)SOA的運(yùn)行時(shí)處理能力的CASE工具功能性需求和相關(guān)性能評(píng)估。理論研究與實(shí)證相結(jié)合,嘗試為服務(wù)軟件系統(tǒng)的運(yùn)行時(shí)需求演化和異常處理構(gòu)建自適應(yīng)機(jī)制、提升SOA運(yùn)行時(shí)自適應(yīng)能力方面提供一種可行的解決方案。
SBS; 異常處理; 架構(gòu)演化; 運(yùn)行時(shí); 海南農(nóng)產(chǎn)品電商平臺(tái)
Class Number TP313.5
軟件和資源使用是以走進(jìn)云基礎(chǔ)設(shè)施,以服務(wù)的形式為消費(fèi)者所用。軟件服務(wù)成為接入和放大各類硬件基礎(chǔ)設(shè)施能力的基本途徑,服務(wù)計(jì)算成就資源共享價(jià)值。大數(shù)據(jù)研究中的分析即服務(wù)(AaaS)以及云計(jì)算中最常提到的軟件即服務(wù)(SaaS)、平臺(tái)即服務(wù)(PaaS)、基礎(chǔ)設(shè)施即服務(wù)(IaaS)中最核心的就是服務(wù),而近年來服務(wù)計(jì)算相關(guān)研究也多涉及基礎(chǔ)設(shè)施上的資源共享和應(yīng)用集成[1~2]。
服務(wù)計(jì)算領(lǐng)域知名會(huì)議ICSOC2013在2013年11月3日由ACM和IEEE雙Fellow的Carlo Ghezzi發(fā)表的大會(huì)主題演講,旨在關(guān)注面向服務(wù)構(gòu)建系統(tǒng)中的自適應(yīng)性,指出服務(wù)系統(tǒng)的自適應(yīng)性研究是推動(dòng)軟件技術(shù)發(fā)展的主要挑戰(zhàn)[3]。2014年11月3日舉辦的IOSOC2014論文集前言同樣強(qiáng)調(diào)“服務(wù)適應(yīng)動(dòng)態(tài)環(huán)境要求的服務(wù)變化管理是一個(gè)核心、關(guān)鍵研究主題”[4]。
目前基于服務(wù)的軟件生產(chǎn)方法通常流程為:服務(wù)提供者生產(chǎn)服務(wù)資源→發(fā)布服務(wù)→服務(wù)消費(fèi)者選擇服務(wù)→服務(wù)聚合(按需服務(wù)資源綁定、組合),類似瀑布模型或自頂向下與自下向上中間對(duì)齊的混合模式,缺乏運(yùn)行時(shí)例外處理和服務(wù)再聚合迭代過程考慮。只是一個(gè)從需求出發(fā)聚合服務(wù)資源的單向渠道,用戶與服務(wù)資源缺乏直接聯(lián)系,沒有從需求出發(fā)直接對(duì)接服務(wù)系統(tǒng)的自適應(yīng)機(jī)制以克服運(yùn)行時(shí)各種例外和應(yīng)對(duì)客觀存在的服務(wù)資源不足、上下文環(huán)境(Context)變化問題。
因此,建立用戶需求到服務(wù)資源的直接定制反饋通道、實(shí)現(xiàn)SOA軟件系統(tǒng)運(yùn)行時(shí)自適應(yīng)調(diào)整能力、完善基于服務(wù)的軟件生產(chǎn)方式,由此構(gòu)建適應(yīng)性SOA正是本文的研究動(dòng)機(jī)和意義。
資源是一個(gè)很寬泛的概念,其內(nèi)涵和抽象粒度差異很大,涉及計(jì)算資源、網(wǎng)絡(luò)資源、存儲(chǔ)資源、數(shù)據(jù)資源和服務(wù)資源等諸多形態(tài)。本文中服務(wù)資源表示為良定義可互操作的Web軟構(gòu)件的集合。
服務(wù)資源供應(yīng)的重要性主要體現(xiàn)在: 1) 充足的、滿足個(gè)性化要求的服務(wù)資源是服務(wù)聚合和服務(wù)軟件生產(chǎn)的物質(zhì)基礎(chǔ); 2) 有效的服務(wù)資源供應(yīng)方法是服務(wù)軟件生產(chǎn)順利實(shí)施、高效完成的保障。
圖1 服務(wù)請(qǐng)求者為中心的支持自適應(yīng)性SOA結(jié)構(gòu)
SOA(面向服務(wù)體系結(jié)構(gòu))變服務(wù)資源的供應(yīng)從直接端到端提供為間接尋址方式,通過注冊(cè)機(jī)制解耦軟件表示和實(shí)際服務(wù)資源的直接聯(lián)系,比較有效地解決了服務(wù)資源的分布式定位,SOA由此成為分布式互聯(lián)網(wǎng)計(jì)算的經(jīng)典體系結(jié)構(gòu)。帶有異常處理的服務(wù)請(qǐng)求者為中心的支持自適應(yīng)性SOA結(jié)構(gòu)如圖1所示。
由于Web執(zhí)行環(huán)境的動(dòng)態(tài)鏈接和盡力而為的服務(wù)資源供應(yīng)機(jī)制,在組合服務(wù)的過程中會(huì)自然發(fā)生各種服務(wù)資源供應(yīng)異常[5]。異常情況,指的是服務(wù)失效(故障)、網(wǎng)絡(luò)錯(cuò)誤和資源或需求變化引起的異常事件。缺乏異常處理機(jī)制導(dǎo)致的問題如性能低下、資源浪費(fèi)、非優(yōu)化服務(wù)供應(yīng)甚至是失敗的流程執(zhí)行。
而用戶的偏好和需求不斷變化,僅僅依賴當(dāng)前可得到的服務(wù)資源進(jìn)行組合來構(gòu)建應(yīng)用非常困難。業(yè)界的主要服務(wù)軟件開發(fā)平臺(tái),如IBM RSA、ActiveBPEL、WebsphereIntegeration Developer等也同樣缺乏服務(wù)資源主動(dòng)供應(yīng)方面的設(shè)計(jì)考慮,由此也影響這些工具在實(shí)際使用上的方便性、實(shí)用性。
以上問題造成的結(jié)果是:大型、分布式軟件開發(fā)中投入大量的人力、物力和工具進(jìn)行服務(wù)資源的建設(shè),但投入高、產(chǎn)出少,作用不明顯。
主要原因:
1) 傳統(tǒng)SOA不具備運(yùn)行時(shí)自適應(yīng)調(diào)節(jié)機(jī)制以適合需求和服務(wù)場(chǎng)景變化能力。
2) 服務(wù)資源被動(dòng)供應(yīng)、靜態(tài)綁定。缺乏服務(wù)聚合運(yùn)行時(shí)服務(wù)資源自適應(yīng)主動(dòng)供應(yīng)機(jī)制。
因此,調(diào)整運(yùn)行時(shí)架構(gòu)以適應(yīng)需求和上下文環(huán)境變化、解決服務(wù)資源供應(yīng)的動(dòng)態(tài)自適應(yīng)異常處理就成為目前SBA(基于服務(wù)的應(yīng)用系統(tǒng))發(fā)展中需要迫切解決的問題之一。
對(duì)于問題域的需求模型如何根據(jù)異常情況自適應(yīng)變化,最終驅(qū)動(dòng)軟件架構(gòu)執(zhí)行級(jí)元素聯(lián)動(dòng)變化,提出一個(gè)基于日志歷史的預(yù)測(cè)控制自適應(yīng)異常處理方法。該方法彌補(bǔ)了目前沒有綜合考慮時(shí)間、需求、軟件體系結(jié)構(gòu)三要素模型的缺陷。其核心是采用小波變換建立與時(shí)間域的關(guān)系,通過歷史日志關(guān)聯(lián)時(shí)間變化進(jìn)而預(yù)測(cè)服務(wù)資源供應(yīng)的能力和變化,遇到運(yùn)行時(shí)異常時(shí)需求描述發(fā)生實(shí)時(shí)演化同時(shí)驅(qū)動(dòng)軟件架構(gòu)使能元素變化。同時(shí)采用服務(wù)虛擬化機(jī)制,從用戶需求出發(fā),基于個(gè)性化定制進(jìn)行服務(wù)資源動(dòng)態(tài)自適應(yīng)生產(chǎn)和遺留軟件服務(wù)化的方法進(jìn)行服務(wù)資源運(yùn)行時(shí)自適應(yīng)異常處理。
服務(wù)軟件虛擬化方法和技術(shù)旨在屏蔽IT資源分布異構(gòu)的物理特性,解耦軟件的抽象表示和具體的IT資源,通過虛擬化機(jī)制實(shí)現(xiàn)語義等價(jià)的IT層面Web服務(wù)到用戶業(yè)務(wù)功能需求抽象的映射。
借助服務(wù)虛擬化,探索需求主導(dǎo)的服務(wù)資源個(gè)性化主動(dòng)定制,以完成服務(wù)聚合運(yùn)行時(shí)無法匹配的服務(wù)構(gòu)件資源的即時(shí)、按需生產(chǎn),努力彌補(bǔ)研究社區(qū)在按需服務(wù)資源自適應(yīng)定制方面的缺失,完善服務(wù)資源供應(yīng)方式。同時(shí)需要預(yù)測(cè)控制機(jī)制監(jiān)控需求變化,在運(yùn)行時(shí)將需求描述或需求演化映射到軟件架構(gòu)執(zhí)行級(jí)元素上。
在項(xiàng)目實(shí)驗(yàn)載體研究中,我們選擇基于Internet的軟件系統(tǒng),聚焦海南農(nóng)產(chǎn)品電子商務(wù)服務(wù)領(lǐng)域。因?yàn)樵诿嫦蚍?wù)的海南農(nóng)產(chǎn)品電商服務(wù)中,該領(lǐng)域面臨的涉眾用戶比較豐富、個(gè)性化需求多樣、開發(fā)的服務(wù)資源多、采用SOA體系結(jié)構(gòu),由此導(dǎo)致多樣的個(gè)性化定制要求,同時(shí)有關(guān)農(nóng)產(chǎn)品信息加工處理的遺留軟件眾多,符合項(xiàng)目實(shí)證載體特征要求。
前期已經(jīng)系統(tǒng)研究了需求模型制導(dǎo)下涉眾群體參與的需求獲取技術(shù)、需求語義驅(qū)動(dòng)的服務(wù)聚合生產(chǎn)以及服務(wù)資源運(yùn)行時(shí)主動(dòng)定制生產(chǎn),取得了階段性成果,下面闡述基于個(gè)性化定制的服務(wù)資源供應(yīng)自適應(yīng)運(yùn)行時(shí)異常處理研究方案。
3.1 服務(wù)資源供應(yīng)的異常處理機(jī)制
圖2 服務(wù)資源供應(yīng)自適應(yīng)運(yùn)行時(shí)異常處理體系結(jié)構(gòu)
服務(wù)資源供應(yīng)自適應(yīng)運(yùn)行時(shí)異常處理體系結(jié)構(gòu)見圖2。該體系結(jié)構(gòu)采用Atom數(shù)據(jù)聚合方式封裝和傳遞服務(wù)需求,通過Atom的subscribe和inform完成服務(wù)資源需求描述的創(chuàng)建、訂閱、主動(dòng)推送功能。
配合服務(wù)聚合與再聚合,由此設(shè)計(jì)帶有定制處理的服務(wù)聚合流程和自適應(yīng)定制優(yōu)化算法、異常處理算法、異常處理監(jiān)控運(yùn)行,共同完成自適應(yīng)異常處理功能。
3.2 服務(wù)資源自適應(yīng)定制優(yōu)化
伴隨服務(wù)資源定制生產(chǎn)系統(tǒng),主要研究核心算法在于服務(wù)定制者優(yōu)先選擇算法和帶有定制處理的服務(wù)聚合算法、服務(wù)資源定制自適應(yīng)優(yōu)化算法、服務(wù)評(píng)價(jià)算法、定制管理流程算法、定制信息反饋、加入定制服務(wù)資源后服務(wù)聚合再運(yùn)行等及其應(yīng)用實(shí)效分析。
Algorithm 1 SSOA算法偽代碼。
INPUT:solution set (population)
OUTPUT:優(yōu)化空間
1: Begin
2: Initialization;
3: 1) Initialize a solution set (population) at random.
4: 2) Opposition-based space search.
5: While (the termination conditions are not met)
6: IF (rand(0,1) 7: Local space search; 8: 1) Generate a new space: Generate a new space based on threes given solutions. 9: 2) Search the new space: Reflection, Expansion, and Contraction. 10: Global space search: Cauchy search (Cauchy mutation). 11: Else 12: Opposition-based space search. 13: End While 14: End 服務(wù)資源定制自適應(yīng)優(yōu)化算法部分采用項(xiàng)目組前期成果SSOA(空間搜索優(yōu)化算法)(具體見Algorithm 1),在定制資源提供選擇方面提高資源供應(yīng)搜索效率??臻g搜索算法借助空間搜索操作實(shí)現(xiàn):即從已知解出發(fā),產(chǎn)生新的子空間并搜索該子空間。 算法特點(diǎn):SSOA具有更強(qiáng)的局部搜索能力,例如:目前大部分DE算法;SSOA算法具有相對(duì)較強(qiáng)的全局搜索能力,這是由于算法中具有柯西變異操作;SSOA算法具有較快的收斂速度。 算法優(yōu)點(diǎn):與目前一些著名的改進(jìn)DE算法對(duì)比,實(shí)驗(yàn)結(jié)果表明SSOA具有更快的收斂速度,且有更大的可能性獲得精確解或更為精確的近似解;尤其在高維優(yōu)化問題上該優(yōu)點(diǎn)更為突出。 共包含兩種空間搜索操作: 1) 局部空間搜索:基于單純形算法思想進(jìn)行改進(jìn)(增加了約束條件的搜索),具有較高的局部搜索能力。 2) 全局空間搜索:實(shí)質(zhì)就是柯西變異操作。反向操作:引用“反向數(shù)字”加速算法收斂速度,該操作已經(jīng)被證明比純粹的隨機(jī)搜索更優(yōu)。 3.3 服務(wù)資源定制管理監(jiān)控的運(yùn)行機(jī)制 按需服務(wù)資源定制需要聚合運(yùn)行時(shí)監(jiān)控異常以便觸發(fā)服務(wù)資源定制過程,為此需要系統(tǒng)研究服務(wù)質(zhì)量評(píng)價(jià)度量標(biāo)準(zhǔn),需要界定異常時(shí)定制觸發(fā)的邊界條件,同時(shí)這也是一個(gè)實(shí)時(shí)系統(tǒng),必須滿足實(shí)時(shí)觸發(fā)、發(fā)布和反饋的要求。 異常發(fā)生時(shí),服務(wù)聚合流程中斷。當(dāng)缺失服務(wù)資源定制完成,聚合流程需要重新啟動(dòng),再聚合流程工作。實(shí)施方法是借鑒科學(xué)工作流中的事務(wù)機(jī)制,完整流程要么完成、要么終止,同時(shí)保留相關(guān)流程運(yùn)行數(shù)據(jù)。對(duì)于終止流程再聚合時(shí),流程重新開始不會(huì)影響服務(wù)資源提供方。為此需要在系統(tǒng)數(shù)據(jù)庫(kù)中設(shè)計(jì)相關(guān)數(shù)據(jù)表,通過數(shù)據(jù)記載為再聚合提供支持。 服務(wù)資源定制管理的運(yùn)行方法要點(diǎn)為: 1) 提出服務(wù)請(qǐng)求者為中心的支持自適應(yīng)性SOA結(jié)構(gòu); 2) 設(shè)計(jì)完整的服務(wù)資源自適應(yīng)定制、服務(wù)聚合重啟動(dòng)、異常處理即時(shí)監(jiān)控等用戶服務(wù)異常情況下的體系結(jié)構(gòu)和實(shí)現(xiàn)方法,重點(diǎn)關(guān)注實(shí)現(xiàn)可行性和執(zhí)行簡(jiǎn)便有效; 3) 通過服務(wù)資源自適應(yīng)定制優(yōu)化算法等數(shù)學(xué)模型構(gòu)建以優(yōu)化、量化服務(wù)資源應(yīng)對(duì)異常處理的自適應(yīng)定制能力。 3.4 應(yīng)對(duì)需求和服務(wù)場(chǎng)景變化的運(yùn)行時(shí)異常處理自適應(yīng)調(diào)節(jié)機(jī)制 面對(duì)運(yùn)行時(shí)異常,通過及時(shí)調(diào)整運(yùn)行時(shí)軟件架構(gòu)執(zhí)行元素以適應(yīng)需求和上下文環(huán)境的變化(如異常),并保證其在動(dòng)態(tài)負(fù)載下的QoS。由于缺乏貫通時(shí)間、需求和架構(gòu)三種變化的有效方法,因此問題域的需求模型變化自適應(yīng)驅(qū)動(dòng)解空間上的架構(gòu)元素就成為了一個(gè)核心問題?;陬A(yù)測(cè)控制的運(yùn)行時(shí)異常處理自適應(yīng)調(diào)節(jié),就是采用了結(jié)合需求模型級(jí)和軟件架構(gòu)級(jí)一致性聯(lián)動(dòng)變化來驅(qū)動(dòng)SOA系統(tǒng)的自適應(yīng)。該方法通過歷史日志學(xué)習(xí)基于小波變換的模型以準(zhǔn)確/柔性預(yù)測(cè)服務(wù)資源的變化,并通過預(yù)測(cè)控制誘導(dǎo)需求模型實(shí)時(shí)變化聯(lián)動(dòng)實(shí)現(xiàn)運(yùn)行時(shí)軟件架構(gòu)的演化,達(dá)到SOA系統(tǒng)的運(yùn)行時(shí)異常處理自適應(yīng)調(diào)整。 圖3 應(yīng)對(duì)需求和服務(wù)場(chǎng)景變化的運(yùn)行時(shí)異常處理自適應(yīng) 運(yùn)行時(shí)自適應(yīng)調(diào)節(jié)是目前面向Internet軟件系統(tǒng)的難題,需要解決如何在運(yùn)行時(shí)將需求模型變化映射到架構(gòu)單元[6~7]。通過預(yù)測(cè)控制驅(qū)動(dòng)SaaS組件誘導(dǎo)需求進(jìn)化,實(shí)現(xiàn)運(yùn)行時(shí)架構(gòu)變化,并證實(shí)預(yù)測(cè)控制在需求/架構(gòu)演化方面的有效性[8],但未推廣到SOA層次上考慮運(yùn)行時(shí)需求變化驅(qū)動(dòng)架構(gòu)演化。如圖4所示,提出的運(yùn)行時(shí)異常處理自適應(yīng)調(diào)節(jié)方案是結(jié)合有效的預(yù)測(cè)控制方法[8]和MAPE-K[9]控制回路模型的,方案分為運(yùn)行時(shí)監(jiān)控、實(shí)時(shí)分析引擎、軟件架構(gòu)調(diào)節(jié)管理器、Aspect執(zhí)行引擎和日志管理等部分。 方案的核心關(guān)注點(diǎn)如下: 1) 運(yùn)行時(shí)服務(wù)資源的服務(wù)質(zhì)量QoS值的預(yù)測(cè)方法(采用小波變換,比如選擇Morlet母小波基函數(shù))。 Algorithm 2 基于QoS變化預(yù)測(cè)的軟件架構(gòu)調(diào)算法。 INPUT:SOA軟件系統(tǒng)中運(yùn)行時(shí)t和t+1時(shí)服務(wù)資源的QoS值,期望輸出的QoS值 OUTPUT:t+1時(shí)刻的控制操作向量 1: Begin 2: 初始化:訓(xùn)練分類預(yù)測(cè)模型;訓(xùn)練需求模型的標(biāo)記改進(jìn)點(diǎn); 3: IF 分類預(yù)測(cè)(運(yùn)行時(shí)t和t+1時(shí)服務(wù)資源的QoS值,期望輸出的QoS值)=需求 4: THEN 5:t+1時(shí)刻的控制操作向量=標(biāo)記改進(jìn)點(diǎn)(運(yùn)行時(shí)t和t+1時(shí)服務(wù)資源的QoS值,期望輸出的QoS值) 6: ELSE 7:t+1時(shí)刻的控制操作向量=架構(gòu)演化(運(yùn)行是t和t+1時(shí)服務(wù)資源的QoS值,期望輸出的QoS值) 8: END IF 9: RETURNt+1時(shí)刻的控制操作向量 10: End 傅里葉變換方法在電磁學(xué)、軍民用電力、移動(dòng)通信等許多方面都有普遍和成功的應(yīng)用,主要功能是能將時(shí)間序列數(shù)據(jù)轉(zhuǎn)換為頻率序列數(shù)據(jù)以抽取時(shí)間序列的特征。但是傅里葉變換本質(zhì)上具有時(shí)域和頻域局部化矛盾,不能有效解決全局預(yù)測(cè)效能,而使用小波變換分析和描述應(yīng)用在各個(gè)單位時(shí)間內(nèi)運(yùn)行時(shí)服務(wù)資源的QoS值隨時(shí)間的變化規(guī)律進(jìn)而預(yù)測(cè)未來變化,該變換可以較好解決了上述矛盾。 2) 基于QoS變化預(yù)測(cè)的軟件架構(gòu)調(diào)節(jié)機(jī)制 根據(jù)預(yù)測(cè)的服務(wù)資源QoS值Yi(t+1)與三元組(系統(tǒng)監(jiān)控控制節(jié)點(diǎn)在t時(shí)刻對(duì)于服務(wù)資源i的控制操作)集合CON中生成t+1時(shí)刻的控制操作向量為CON(t+1)。預(yù)測(cè)控制過程包括需求模型初始化、運(yùn)行時(shí)異常觸發(fā)的需求描述演化、架構(gòu)執(zhí)行級(jí)元素調(diào)節(jié)等。 運(yùn)行時(shí)自適應(yīng)架構(gòu)調(diào)節(jié)算法設(shè)計(jì)如Algorithm 2。 自適應(yīng)架構(gòu)調(diào)節(jié)主要包括兩大部分:初始化部分、預(yù)測(cè)控制部分。初始化工作,即采集日志記錄數(shù)據(jù)通過支持向量機(jī)SVM模型進(jìn)行學(xué)習(xí)、挖掘,提煉出可行的、經(jīng)過驗(yàn)證的需求描述模型。 3) 面向需求變化的元模型設(shè)計(jì) 面向運(yùn)行時(shí)需求變化,必須擴(kuò)展已有的需求模型以支持運(yùn)行時(shí)需求描述模型在線改變,為此擴(kuò)展我們以前的需求描述元模型。由于需求模型采用XML格式,通過在其中增加相關(guān)面向變化描述的元素,如方面Aspect、本體表示等以提高XML標(biāo)簽的語義互操作性。運(yùn)行時(shí)通過這些標(biāo)簽的改變反映需求模型的即時(shí)變化。 4) 面向方面Aspect的軟件架構(gòu)執(zhí)行級(jí)演化 面向方面Aspect的軟件架構(gòu)執(zhí)行級(jí)演化機(jī)制包括需求演化和運(yùn)行時(shí)架構(gòu)模型變換兩個(gè)方面。其中需求模型演化需要解決的主要問題是異常出現(xiàn)時(shí)如何即時(shí)進(jìn)行新的需求模型生成。 (1)根據(jù)2)中基于QoS變化預(yù)測(cè)的軟件架構(gòu)調(diào)節(jié)機(jī)制,分析與獲取變更需求對(duì)應(yīng)的控制操作向量; (2)需求模型演化。根據(jù)第一步得到的操作向量搜尋演化需求模型庫(kù)(項(xiàng)目組前期研究成果)獲得支持異常處理的新需求描述模型。 圖4 支持運(yùn)行時(shí)軟件架構(gòu)自適應(yīng)調(diào)節(jié)的軟件架構(gòu)演化元模型 (3)利用面向方面的需求演化建模分析方法(支持運(yùn)行時(shí)軟件架構(gòu)自適應(yīng)調(diào)整),對(duì)初始需求描述模型,匹配對(duì)應(yīng)的軟件體系結(jié)構(gòu)執(zhí)行級(jí)元素-如方面Aspect(圖4),模型中采用OWL-SA作為需求語義級(jí)描述語言,在需求變化階段建立需求演化語義,為體系結(jié)構(gòu)執(zhí)行級(jí)提供原始驅(qū)動(dòng)。描述語言O(shè)WL-SA采用橫切點(diǎn)-通告方式將需求模型與軟件架構(gòu)執(zhí)行級(jí)元素(方面Aspect)聯(lián)系起來。方面(Aspect)對(duì)應(yīng)服務(wù)軟件系統(tǒng)的需求規(guī)格說明,其需求描述包括多個(gè)橫切點(diǎn)-通告對(duì)。橫切點(diǎn)表示運(yùn)行時(shí)架構(gòu)演化發(fā)生適應(yīng)性改變的位置,通告表示需求變化的具體要求。通過方面切入達(dá)到運(yùn)行時(shí)軟件架構(gòu)元素重組,可以完成運(yùn)行時(shí)架構(gòu)演化。 通過表征SOA系統(tǒng)運(yùn)行時(shí)質(zhì)量的QoS值預(yù)測(cè)控制來驅(qū)動(dòng)軟件架構(gòu)演化的自適應(yīng)調(diào)節(jié)方法,其采用了結(jié)合需求和架構(gòu)驅(qū)動(dòng)服務(wù)系統(tǒng)的自適應(yīng)。通過實(shí)時(shí)分析SOA運(yùn)行時(shí)日志信息,基于小波變換的學(xué)習(xí)模型來預(yù)測(cè)下一確定時(shí)刻相應(yīng)服務(wù)資源的服務(wù)質(zhì)量屬性;通過基于QoS預(yù)測(cè)生成運(yùn)行時(shí)架構(gòu)改變,實(shí)現(xiàn)運(yùn)行時(shí)的自適應(yīng)需求變化,利用面向方面技術(shù)支持運(yùn)行時(shí)架構(gòu)元素自適應(yīng)調(diào)整,完成SOA軟件系統(tǒng)運(yùn)行時(shí)演化。 項(xiàng)目實(shí)驗(yàn)載體領(lǐng)域研究選擇基于Internet的軟件系統(tǒng)即集成物聯(lián)網(wǎng)、云應(yīng)用、大數(shù)據(jù)等技術(shù)打造面向服務(wù)的海南農(nóng)產(chǎn)品電子商務(wù)平臺(tái)-“農(nóng)博商城”升級(jí)版,探討O2O(線上線下相結(jié)合)農(nóng)產(chǎn)品電子商務(wù)模式,實(shí)現(xiàn)消費(fèi)者與農(nóng)業(yè)生產(chǎn)企業(yè)、生產(chǎn)基地信息全流程對(duì)接,并向終端消費(fèi)者提供準(zhǔn)確及時(shí)的農(nóng)產(chǎn)品生產(chǎn)履歷、倉(cāng)儲(chǔ)、物流配送等信息,打造海南“三品一標(biāo)”熱帶農(nóng)產(chǎn)品第一交易門戶。 因?yàn)樵诿嫦蚍?wù)的海南農(nóng)產(chǎn)品電商服務(wù)平臺(tái),該領(lǐng)域面臨的涉眾用戶比較豐富、個(gè)性化需求多樣,由此導(dǎo)致多樣的個(gè)性化定制要求,同時(shí)采用SOA體系開發(fā),已經(jīng)開發(fā)了大量服務(wù)資源(包括微軟Asmx或Java Axis),符合探索支持適應(yīng)性SOA項(xiàng)目實(shí)證載體特征要求。海南農(nóng)博網(wǎng)科技公司是海南熱帶特色農(nóng)產(chǎn)品電商平臺(tái)-農(nóng)博商城維護(hù)運(yùn)營(yíng)方,筆者所在項(xiàng)目組是農(nóng)博商城線上/線下設(shè)計(jì)技術(shù)支撐合作單位,雙方緊密合作關(guān)系有助于項(xiàng)目科研成果及時(shí)、有效應(yīng)用于海南農(nóng)產(chǎn)品電商平臺(tái)實(shí)踐中,通過不斷迭代得到較全面的支持自適應(yīng)SOA能力的CASE工具需求。 電商平臺(tái)本身設(shè)計(jì)了大量服務(wù),僅以農(nóng)產(chǎn)品追溯信息服務(wù)為例,其WCF接口服務(wù)地址為 http://218.77.186.198:8000/TracesDataService.svc Web服務(wù)接口地址為 http://218.77.186.198:8000/TracesDataWebService.asmx 其身份識(shí)別碼: 2C516EF7-CBD8-4C1C-9EE0-00EB34AFBCB5 測(cè)試數(shù)據(jù) PID(批次號(hào)):A003121910013001 PRID(種植編號(hào)):XH03020130401 如:生產(chǎn)履歷批次號(hào)查詢: ProductionHistoryGetProductionHistoryByPID(stringPID,string IDs) 參數(shù)說明:PID:16位批號(hào)號(hào),IDs:身份識(shí)別碼,返回一個(gè)ProductionHistory對(duì)象。 主要的數(shù)據(jù)結(jié)構(gòu),例如ProductionHistory(生產(chǎn)履歷)類結(jié)構(gòu)如下: 〈summary〉批次號(hào)〈/summary〉 publicstring PID {get;set;} 〈summary〉種植編號(hào)〈/summary〉 publicstring PRID {get;set;} 〈summary 〉種植時(shí)間〈/summary 〉 publicDateTimePlantTM {get; set;} 〈summary 〉采摘時(shí)間〈/summary 〉 publicDateTimePickTM {get; set;} 〈 summary 〉農(nóng)藥記錄集〈/summary 〉 publicList〈PesticideHistory〉PesticideHistoryList {get; set;} 〈summary 〉施肥記錄集〈/summary 〉 publicList〈FertilizerHistory〉FertilizerHistoryList {get; set;} 圖5 電商平臺(tái)使用異常處理機(jī)制效果比較 除平臺(tái)自身開發(fā)的服務(wù)以外,系統(tǒng)還調(diào)用了大量外部服務(wù),如地圖服務(wù)、天氣服務(wù)、物理服務(wù)等,是典型的SBS應(yīng)用。平臺(tái)初期運(yùn)行極為不穩(wěn)定,究其原因是沒有采用相應(yīng)的運(yùn)行時(shí)異常處理相關(guān)機(jī)制,圖5是通過兩套相同系統(tǒng)平臺(tái)同時(shí)運(yùn)行30天的比較結(jié)果(其中一套系統(tǒng)平臺(tái)運(yùn)行了本文設(shè)計(jì)的部分異常處理機(jī)制),比較結(jié)果表明運(yùn)行時(shí)異常處理機(jī)制的加入明顯提升了平臺(tái)應(yīng)對(duì)各種不確定狀態(tài)的能力。 基于服務(wù)的應(yīng)用系統(tǒng)(SBA)一方面實(shí)現(xiàn)了關(guān)注點(diǎn)分離和高度簡(jiǎn)化構(gòu)建SBA的設(shè)計(jì)努力,另一方面由于引入了SBA自身與被使用的服務(wù)資源之間的關(guān)鍵依賴,導(dǎo)致可能出現(xiàn)無法通知的變化或不可預(yù)知時(shí)間的應(yīng)用失效?;诜?wù)的軟件系統(tǒng)中的適應(yīng)性是指具有適應(yīng)不可預(yù)測(cè)變化的應(yīng)對(duì)能力[10]??蛇m應(yīng)性的SBA在操作條件下改變它們的行為、重新配置軟件結(jié)構(gòu)及通過不斷演化以應(yīng)對(duì)變化,目的是持續(xù)滿足用戶的期望[11]。 通過使用Salesforce.com自身固有的編程語言Apex,用戶可以開發(fā)任何自定義的操作:定制流程和布局以滿足不同客戶的需要,以及對(duì)客戶所提供的一種服務(wù)進(jìn)行狀態(tài)的跟蹤定制。但Salesforce.com只是可以類比到服務(wù)資源的個(gè)性化定制,主要關(guān)注服務(wù)結(jié)果的交付(如SaaS),沒有系統(tǒng)研究個(gè)性化定制的服務(wù)資源有效供應(yīng),即服務(wù)軟件的生產(chǎn)方法(如SOA)。 目前一些SBA開發(fā)方法主要基于傳統(tǒng)的軟件工程和系統(tǒng)工程,難于便利SBA的自適應(yīng)性。SBA的開發(fā)方法如SOUP、ASTRO或文獻(xiàn)[12]所提方法僅支持一定程度的自適應(yīng)性。文獻(xiàn)[13]系統(tǒng)綜述了SBA開發(fā)方法,其標(biāo)識(shí)的57種方法中僅有8種處理自適應(yīng)性,而8種方法中僅有4種關(guān)注服務(wù)資源的自適應(yīng)性,其它則考慮SBA整體的適應(yīng)性。 自適應(yīng)性分為兩種:靜態(tài)自適應(yīng)性和動(dòng)態(tài)自適應(yīng)性[14]。靜態(tài)自適應(yīng)性中自適應(yīng)性機(jī)制在開發(fā)階段硬編碼進(jìn)應(yīng)用。動(dòng)態(tài)自適應(yīng)允許運(yùn)行時(shí)自適應(yīng)邏輯更改或代替,并且不能造成系統(tǒng)當(dāng)機(jī)。動(dòng)態(tài)自適應(yīng)比靜態(tài)自適應(yīng)更具有彈性,但它在運(yùn)行時(shí)需要一些過程來指導(dǎo)人工干預(yù)。文獻(xiàn)[15]為了防止運(yùn)行時(shí)違反SLA要求,設(shè)計(jì)了基于成本-代價(jià)優(yōu)化的方法,選取服務(wù)組合策略以自適應(yīng)于SLA變化,重點(diǎn)考慮適應(yīng)性應(yīng)對(duì)反應(yīng)的成本。 文獻(xiàn)[16]中開發(fā)和執(zhí)行了一個(gè)個(gè)性化情境感知服務(wù)PerCAS,其能在運(yùn)行時(shí)適應(yīng)特定用戶的適應(yīng)性要求。方法是用戶定義的適應(yīng)性邏輯被編碼為規(guī)則,通過面向方面(AOP)機(jī)制織入基本工作流程。運(yùn)行時(shí),動(dòng)態(tài)的用戶定義規(guī)則集依賴于調(diào)用服務(wù)對(duì)象而被觸發(fā)執(zhí)行。PerCAS的執(zhí)行平臺(tái)采用模型驅(qū)動(dòng)方式。文獻(xiàn)[17]提出了一種基于軟件Agent和組織抽象來支持自適應(yīng)軟件系統(tǒng)運(yùn)行的方法。 支持自適應(yīng)性SOA方面已經(jīng)有相關(guān)基礎(chǔ)和應(yīng)用研究給出了各種類型的解決方案和工具支持,但在從用戶需求著手進(jìn)行服務(wù)系統(tǒng)架構(gòu)重組及服務(wù)資源應(yīng)對(duì)異常處理的自適應(yīng)性實(shí)現(xiàn)和完成運(yùn)行時(shí)架構(gòu)按需服務(wù)聚合演化機(jī)制方面仍然存在較大差距。此外,現(xiàn)有的服務(wù)系統(tǒng)運(yùn)行時(shí)演化方法,往往將服務(wù)資源創(chuàng)建過程和用戶個(gè)性化需求獨(dú)立開來。 綜上所述,國(guó)際上目前服務(wù)系統(tǒng)的自適應(yīng)性研究主要考慮系統(tǒng)整體的自適應(yīng)性策略,而關(guān)注服務(wù)系統(tǒng)動(dòng)態(tài)自適應(yīng)性實(shí)現(xiàn)方法不多,尤其未重點(diǎn)考慮從用戶需求著手進(jìn)行服務(wù)架構(gòu)重組及服務(wù)資源應(yīng)對(duì)異常處理的自適應(yīng)性實(shí)現(xiàn)機(jī)制,以完成運(yùn)行時(shí)按需服務(wù)聚合演化。 面向個(gè)性化定制的自適應(yīng)SOA運(yùn)行時(shí)異常處理機(jī)制研究,重點(diǎn)關(guān)注兩個(gè)方面: 1) 一是基于個(gè)性化需求驅(qū)動(dòng)的運(yùn)行時(shí)異常處理,針對(duì)服務(wù)組合中無法得到的服務(wù)資源,采用切片或分割方法獲取整體需求中針對(duì)該服務(wù)資源的個(gè)性化需求(描述),通過即時(shí)向服務(wù)提供者發(fā)出定制要求,采用一系列自動(dòng)化定制管理手段,服務(wù)提供者主動(dòng)按需生產(chǎn); 2) 二是設(shè)計(jì)應(yīng)對(duì)需求和服務(wù)場(chǎng)景變化的運(yùn)行時(shí)自適應(yīng)調(diào)節(jié)機(jī)制,提出一個(gè)基于預(yù)測(cè)控制的自適應(yīng)調(diào)節(jié)方法,采用結(jié)合需求模型和軟件架構(gòu)來驅(qū)動(dòng)SOA系統(tǒng)的自適應(yīng)。 進(jìn)一步的工作包括:完成相關(guān)運(yùn)行時(shí)異常處理機(jī)制理論對(duì)應(yīng)的全部模塊設(shè)計(jì)任務(wù);對(duì)于電商平臺(tái)的性能評(píng)估應(yīng)該設(shè)計(jì)更加全面的評(píng)估方案;同時(shí)采用公開的測(cè)試數(shù)據(jù)集(如:Web Service Challenge 等)或真實(shí)QoS數(shù)據(jù)集對(duì)比測(cè)評(píng)以期得到更加客觀的性能評(píng)測(cè)結(jié)果。 [1] L. Liu. Editorial: Service computing in 2015[J]. IEEE Transactions on Services Computing,2015,8(1):1-1. [2] 文斌.面向云計(jì)算的按需服務(wù)軟件工程[M].北京:國(guó)防工業(yè)出版社,2014:1-3. WEN Bin. On-demand Service Software Engineering for Cloud Computing[M]. Beijing: National Defense Industry Press,2014:1-3. [3] C. Ghezzi. Surviving in a world of change: Towards evolvableand self-adaptive service-oriented systems[C]//Keynotespeech at 11th International Conference on Service OrientedComputing(ICSOC 2013). Springer,2013:2-8. [4] F. Toumani, B. Pernici, D. Grigori, et al. Service-Oriented Computing[C]//Proceedingsof Service-Oriented Computing - ICSOC 2014, ser. LectureNotes in Computer Science 8954. Paris, France: Springer International Publishing Switzerland,2015:1-2. [5] A. L. Lemos, F. Daniel, B. Benatallah. Web service composition: A survey of techniques and tools[J]. ACM Comput. Surv.,2015,48(3):1-41. [6] Z. Chouiref, A. Belkhir, K. Benouaret, et al. A fuzzy framework for efficient user-centric web serviceselection[J]. Applied Soft Computing,2016,41:51-65. [7] L. Baresi, M. Miraz, P. Plebani. A distributed architecturefor efficient web service discovery[J]. Service OrientedComputing and Applications,2016,10(1):1-17. [8] 熊偉,李兵,陳軍,等.一種基于預(yù)測(cè)控制的saas系統(tǒng)自適應(yīng)方法[J].計(jì)算機(jī)學(xué)報(bào),2016,39(2):364-376. XIONG Wei, LI Bing, CHEN Jun, et al. A self-adaptation approach based on predictive control for SaaS[J]. Chinese Journel of Computer,2016,39(2):364-376. [9] J. O. Kephart, D. M. Chess. The vision of autonomiccomputing[J]. Computer,2003,36(1):41-45. [10] A. Bucchiarone, C. Cappiello, E. Nitto, et al. Design for Adaptation of Service-Based Applications: Main Issues and Requirements[C]//Berlin, Heidelberg: Springer Berlin Heidelberg,2010:467-476. [11] S. Lane, A. Bucchiarone, I. Richardson. Soadapt: Aprocess reference model for developing adaptable servicebasedapplications[J]. Informaton And Software Technology,2012,54(3):299-316. [12] D. Linner, H. Pfeffer, I. Radusch, et al. Biologyas inspiration towards a novel service life-cycle, ser[J]. LectureNotes In Computer Science,2007,4610:94-102. [13] S. Lane, I. Richardson. Process models for service-basedapplications: A systematic literature review[J]. Information And Software Technology,2011,53(5):424-439. [14] P. K. McKinley, S. M. Sadjadi, E. P. Kasten, et al. Composing adaptive software[J]. Computer,2004,37(7):56-64. [15] P. Leitner, W. Hummer, S. Dustdar. Cost-based optimizationof service compositions[J]. IEEE Transactions on Services Computing,2013,6(2):239-251. [16] J. Yu, J. Han, Q. Z. Sheng, et al. PerCAS: AnApproach to Enabling Dynamic and Personalized Adaptationfor Context-Aware Services[M]. Berlin, Heidelberg: Springer Berlin Heidelberg,2012:173-190. [17] 毛新軍,董孟高,齊治昌,等.開放環(huán)境下自適應(yīng)軟件系統(tǒng)的運(yùn)行機(jī)制與構(gòu)造技術(shù)[J].計(jì)算機(jī)學(xué)報(bào),2015,38(9):1893-1906. MAO Xinjun, DONG Menggao, QI Zhichang, et al. Running mechanism and implementation technique of self-adaptive software in open environment[J]. Chinese Journal of Computer,2015,38(9):1893-1906. Research and Application of Runtime Exception Handling and its Applications Based on Service System WEN Bin1,2LUO Ziqiang1,2 (1. School of Information Science and Technology, Hainan Normal University, Haikou 571158) (2. Cloud Computing and Bigdata Research Center, Hainan Normal University, Haikou 571158) Service computing achieves resource sharing value and its core is personalization and on-demand aggregation to realize value-added services. But now, service-based system lacks of runtime exception handling and iterative reaggregation process consideration. In this paper, the main contributions are as follow. Self-adaptive exception handling architecture for services resource has been built. Runtime adaptive adjustment mechanism has been designed to deal with requirements and context changes. Combination of theoretical research and empirical validation, the paper tries to provide a technical operational and cost-effective solution with adaptive mechanism for runtime requirements evolution and exception handling. service-based system, exception handling, architecture evolution, runtime, Hainan agricultural E-business platform 2016年8月12日, 2016年9月29日 國(guó)家自然科學(xué)基金(編號(hào):61562024);海南省自然科學(xué)基金(編號(hào):20156236);科技部國(guó)際合作項(xiàng)目(編號(hào):2014DFA13140)資助。 文斌,男,博士,教授,研究方向:服務(wù)計(jì)算、適應(yīng)性軟件系統(tǒng)。羅自強(qiáng),男,博士,副教授,研究方向:軟件可靠性、復(fù)雜網(wǎng)絡(luò)、云模型等。 TP313.5 10.3969/j.issn.1672-9722.2017.02.0094 實(shí)驗(yàn)實(shí)證分析
5 相關(guān)工作比較
6 結(jié)語