摘要: 將工作流技術(shù)與Agent技術(shù)相結(jié)合用于選課系統(tǒng)的研究,充分利用工作流靈活性、軟件重用和異構(gòu)軟件的集成特點,發(fā)揮Agent技術(shù)自組織、自學習和協(xié)同分配任務(wù)的能力。將多Agent工作流管理系統(tǒng)進行實例應(yīng)用,設(shè)計了一個智能選課系統(tǒng)模型,協(xié)調(diào)系統(tǒng)中不同角色人員的不同活動,盡量避免沖突,使選課系統(tǒng)更加科學化、高效化、智能化和安全化。
關(guān)鍵詞: Agent; 選課系統(tǒng); 工作流; 產(chǎn)生式規(guī)則; 推理
中圖分類號:TP391 文獻標志碼:A 文章編號:1006-8228(2012)10-34-04
引言
隨著計算機應(yīng)用能力的提高,人們對軟件的功能提出了越來越高的需求,這些需求推動了軟件工程的發(fā)展。在軟件開發(fā)的早期,人們利用功能分解的方法開發(fā)程序,后來又出現(xiàn)了結(jié)構(gòu)化和面向?qū)ο蟮姆椒?,這些方法都提高了軟件的生產(chǎn)效率。但是,隨著軟件的復(fù)雜程度、并行程度的提高,傳統(tǒng)的面向?qū)ο蟮姆椒@現(xiàn)出一定的局限性,人們開始將Agent思想運用到軟件工程中。Yoav Shoham早在1993年就提出了Agent-oriented programming(AOP)。Agent是一種特殊的對象,因此,面向Agent技術(shù)是面向?qū)ο蟮能浖こ痰囊粋€特例,它并不是完全不同于面向?qū)ο蠹夹g(shù)的一套新方法,而是對面向?qū)ο蠹夹g(shù)的發(fā)展,它被譽為“軟件開發(fā)的又一重要突破”。
本文利用面向Agent的軟件開發(fā)方法,結(jié)合軟件工程的基本思想、原理和原則設(shè)計系統(tǒng)模型;同時將工作流技術(shù)與Agent技術(shù)相結(jié)合,設(shè)計多Agent工作流管理系統(tǒng)模型;對選課系統(tǒng)進行實例化,有效地協(xié)調(diào)系統(tǒng)中不同角色人員的不同活動,盡量避免沖突,使選課系統(tǒng)更加科學化、高效化、智能化、安全化。
1 Agent和工作流基本概念
Agent技術(shù)源于分布式人工智能,是人工智能和計算機科學新的綜合,可用來解決復(fù)雜分布的現(xiàn)實問題。Agent按其應(yīng)用,又分為單Agent和多Agent系統(tǒng)兩種。面向Agent的軟件開發(fā)方法是對基于Agent技術(shù)的軟件系統(tǒng)的設(shè)計和開發(fā)。Agent是具有自主性、自動性和智能化的對象,它強調(diào)封裝的概念,使用消息傳遞的通訊方式,并且可以使用繼承和聚集定義結(jié)構(gòu),其結(jié)構(gòu)模型如圖1所示。面向Agent的方法繼承了面向?qū)ο蠛兔嫦蚰K方法的優(yōu)點,具有模塊性、重用性、擴張性、移植性的特點。
工作流是一類能夠完全或者部分自動執(zhí)行的業(yè)務(wù)流程,它根據(jù)一系列過程規(guī)則,使文檔、信息或任務(wù)能夠在不同的執(zhí)行者之間進行傳遞與執(zhí)行,圖2為工作流管理的系統(tǒng)圖。工作流技術(shù)被業(yè)界廣泛應(yīng)用并迅速發(fā)展,它的主要特點是使業(yè)務(wù)的處理流程自動化,使人與應(yīng)用工具之間相互協(xié)調(diào)工作,以完成某項工作。工作流管理的目的是為了讓合適的人或軟件在恰當?shù)臅r間執(zhí)行正確的工作。
目前的工作流系統(tǒng)缺乏健壯性和可重用性,沒有備份機制和有效的恢復(fù)手段,容錯問題基本上也沒有考慮,系統(tǒng)對于出錯的恢復(fù)彈性是極小的。傳統(tǒng)的工作流系統(tǒng)在定義流程時隱含假設(shè)了所有的任務(wù)的實現(xiàn)和它們之間的協(xié)作均能被事先準確、完善地定義,事實上并非如此,大量業(yè)務(wù)流程對環(huán)境變化很敏感。同時,由于許多工作流運行周期長,在運行過程中難免發(fā)生變化,因此,工作流管理系統(tǒng)必須考慮異常情況和例外的處理。
鑒于上述原因,Agent技術(shù)與工作流技術(shù)的結(jié)合成為了如今研究的重點。目前,大多數(shù)工作流管理系統(tǒng)都是獨立地管理單個工作流,忽略了其間的資源約束關(guān)系,而基于Agent的工作流管理系統(tǒng)能夠有效地解決這個問題?;贏gent的工作流技術(shù)對解決傳統(tǒng)的軟件工程方法中的問題有著很重要的作用,它是軟件工程方法發(fā)展的一個必然趨勢。
在工作流管理系統(tǒng)中,利用Agent可以有效地解決下列問題:
⑴ 工作流系統(tǒng)中的資源沖突問題;
⑵ 執(zhí)行中的模式僵化問題;
⑶ 用戶被動地處理工作項問題。
本文提出一個多Agent工作流管理系統(tǒng)。該系統(tǒng)的結(jié)構(gòu)是一個遞階、不確定的動態(tài)結(jié)構(gòu)。其模型結(jié)構(gòu)如圖3所示。
圖3中的模型結(jié)構(gòu),橫向?qū)⒐ぷ髁鞴芾矸譃楣ぷ髁鏖_發(fā)環(huán)境和工作流運行環(huán)境。縱向?qū)⒐ぷ髁鞴芾砼c業(yè)務(wù)流程過程分為定義層、控制管理層和流程建模層。
⑴ 對話定義層
由用戶接口Agent和工作流定義接口Agent組成,是用戶與計算機進行人機對話的接口,也是系統(tǒng)獲取外部信息的接口。
⑵ 控制管理層
由工作流服務(wù)器和Agent服務(wù)器組成。
工作流服務(wù)器借助于一個或多個工作流引擎,解釋過程定義,控制實例的執(zhí)行,控制工作流中各種活動的執(zhí)行順序等。在工作流的創(chuàng)建和執(zhí)行過程中,工作流服務(wù)器同Agent服務(wù)器交互,Agent服務(wù)器根據(jù)工作流服務(wù)器中的流程控制信息,完成相應(yīng)的Agent的生成,調(diào)度和執(zhí)行。例如:在工作流實例的創(chuàng)建過程中,根據(jù)工作流服務(wù)器中的相應(yīng)活動的定義和描述,系統(tǒng)服務(wù)器生成相應(yīng)的任務(wù)Agent,并在跟蹤服務(wù)器中注冊。
Agent服務(wù)器實際上是為任務(wù)Agent提供服務(wù)功能的代理(Agent),它和工作流服務(wù)器交互,保存了重要的過程定義和結(jié)構(gòu)信息。它根據(jù)過程定義在工作流實例化的過程中生成相應(yīng)的任務(wù)Agent,每個任務(wù)Agent對應(yīng)于一個工作流過程實例。Agent服務(wù)器中包含管理和控制兩個Agent部分。控制Agent是整個系統(tǒng)中最關(guān)鍵的核心部件,是工作流運行的“引擎”。負責對活動和問題的分解,子活動和子問題的分配和協(xié)商,以及提供工作流運行控制服務(wù);控制Agent記錄了各種供給其他Agent共享的全局信息,同時監(jiān)督和控制選擇相應(yīng)的Agent。管理Agent 則是對工作流開發(fā)環(huán)境中工作流過程實例的定義和狀態(tài)進行監(jiān)控與管理。
⑶ 流程建模層
流程建模層在工作流開發(fā)環(huán)境中是由工作流模型定義Agent、過程定義Agent和Agent活動定義等多個Agent 組成的;當業(yè)務(wù)流程新增或發(fā)生變化時,對以往不存在的,系統(tǒng)中未包含的業(yè)務(wù)流進行定義,并定義該業(yè)務(wù)流過程Agent,以提供系統(tǒng)使用。
工作流運行環(huán)境中是由任務(wù)Agent、活動Agent等多個Agent組成的;主要是針對流程重組或工作流建模的各子問題及目標,由各任務(wù)Agent根據(jù)其內(nèi)部知識選擇相應(yīng)的資源Agent或多個用戶Agent合作,構(gòu)成相應(yīng)的子業(yè)務(wù)流程或工作流模型。各任務(wù)Agent在構(gòu)建工作流模型過程中,既可單獨也可相互合作,并能通過工作流模型的不斷構(gòu)建進行自我演化、刪除和修改過程的某些成分和無用或過時的活動實例。
⑷ 工作表服務(wù)器
工作表服務(wù)器維護工作流參與人員的任務(wù)信息,而且負責通知任務(wù)Agent有關(guān)動態(tài)修改的信息。它是任務(wù)Agent生成任務(wù)項的惟一場所(生成任務(wù)項的過程為任務(wù)Agent向工作表服務(wù)器查詢用戶Agent信息,并在相應(yīng)的用戶Agent中生成新工作項),故在系統(tǒng)中不可缺少。
2 應(yīng)用實例:基于Agent技術(shù)和工作流技術(shù)的選課系統(tǒng)
目前,高校選課系統(tǒng)的運用,使得學校管理自動化逐步提高。它不僅實現(xiàn)了學生跨學院、跨年級、跨專業(yè)進行選課,還支持學生自主“選教師、選方向、選教材”的行為,體現(xiàn)了以學生為本的教育教學理念。
高校選課系統(tǒng)仍然存在很多問題。如:學生雖可以自由選課,但系統(tǒng)往往不加審核,導(dǎo)致違反教學拓撲規(guī)律現(xiàn)象的產(chǎn)生;學生選課只是一種形式上的確認選課,表明選課信息已進入計算機管理,其實學生只擁有少部分自主選課的權(quán)利;如果管理策略、方法、對象等發(fā)生變化,開發(fā)人員就得修改甚至重新開發(fā)系統(tǒng),現(xiàn)行的系統(tǒng)基本不具備適應(yīng)變化的能力。
針對高校管理的需要,本文將多Agent工作流管理系統(tǒng)實例化,設(shè)計一套具有自動化、適應(yīng)性和靈活性的智能選課系統(tǒng)模型。利用Agent概念及思想解決傳統(tǒng)選課系統(tǒng)所不能解決的問題。同時,在選課系統(tǒng)中,盡量減少手工確認審核的麻煩等,利用Agent自動完成這些工作,讓選課系統(tǒng)真正發(fā)揮它的作用。
⑴ 在選課的過程中,根據(jù)學生的專業(yè)以及該專業(yè)的教學計劃為每個學生生成一個選課列表。在學生選中自己喜歡的課程之后,給出多個這門課的開設(shè)時間、任課教師等信息,學生可以根據(jù)給出的信息進行選擇。
⑵ 在選課的過程中,如果學生選擇了課程B,但系統(tǒng)發(fā)現(xiàn)其課程B的先行課A沒有修或沒有通過,則系統(tǒng)會給出提示,學生必須先修A。
⑶ 如果學生當前的選課學分總數(shù)超過規(guī)定學分,則不允許選課,并給出超出的學分數(shù)。而且當學生的專業(yè)課有兩門及以上沒有通過,則給出提示等。
利用Agent軟件管理學生的選課信息,就能動態(tài)跟蹤學習者的選課行為,根據(jù)學習者先前的選課情況自動組織選課內(nèi)容,從而克服了現(xiàn)階段內(nèi)容松散的超文本結(jié)構(gòu)。Agent的社會屬性能夠滿足建構(gòu)主義協(xié)同選課的需要,可將每個學生和老師都看作獨立的Agent。
根據(jù)選課系統(tǒng)使用者的不同身份,我們提出一種如圖4所示的選課系統(tǒng)模型。該模型將系統(tǒng)劃分為教師Agent、學生Agent、課程Agent、課程計劃Agent、管理Agent。
圖4描述了選課系統(tǒng)的體系結(jié)構(gòu)。一般高校中的選課系統(tǒng),大多數(shù)需要學生輸入課程序號進行選課,而且專業(yè)必修課和專業(yè)選修課區(qū)分不是很明確,學生在選課的過程中會感覺很麻煩。而基于Agent的選課系統(tǒng)在學生進入選課的時候,就可以根據(jù)學生的專業(yè)和所學的先修課程及教學計劃為他們列出一個本學期的可選課列表,并且給出課程的詳細信息,學生可以很清楚地根據(jù)自己的興趣愛好和要求進行選課。
2.1 Agent的形式化定義
⑵ 相關(guān)數(shù)據(jù)庫和推理機制描述
學生基本信息庫:記錄學生的學號、姓名、性別、系所、年齡等基本信息。
成績記錄庫:記錄學生所選課程及分數(shù)。
個性分析推理機:根據(jù)課程計劃Agent提供的相關(guān)選課規(guī)則與學生模型庫的相關(guān)信息,以此作為選課的依據(jù)。在選課的過程中,推理機將不斷地產(chǎn)生、修改學生模型庫,準確反映學生的選課能力。
課程Agent、課程計劃Agent、教師Agent、管理Agent的構(gòu)建與設(shè)計與上述類似。
2.2 知識庫的創(chuàng)建
知識庫的概念是將傳統(tǒng)的數(shù)據(jù)庫技術(shù)和人工智能相結(jié)合的產(chǎn)物?,F(xiàn)在用基于規(guī)則的知識表示方法來設(shè)計Agent。
在SQL Server中,創(chuàng)建規(guī)則可以使系統(tǒng)對輸入的消息流自動做出反應(yīng),并能用預(yù)定義操作來響應(yīng)特定的錯誤情況,或?qū)⑦@些消息整理成一個更明確的異議事件。這些規(guī)則使系統(tǒng)能夠智能地響應(yīng)預(yù)測到的事件模式,觸發(fā)操作。這些規(guī)則也可以將某個事件序列與SQL知識庫中的信息鏈接起來,即時向操作人員提供有關(guān)問題發(fā)生的原因、對特定問題的有效響應(yīng)以及其他相關(guān)信息的連接。
2.2.1 產(chǎn)生式規(guī)則
2.2.2 推理系統(tǒng)的設(shè)計
采用關(guān)系模型表示系統(tǒng)中產(chǎn)生式的規(guī)則知識,使得推理系統(tǒng)的設(shè)計更簡單而且有效。實際上利用現(xiàn)有RDBMS的優(yōu)化查詢能很容易實現(xiàn)。
2.3 用Agent技術(shù)和WFMS實現(xiàn)選課系統(tǒng)
工作流管理系統(tǒng)與傳統(tǒng)的信息系統(tǒng)相比具有很多優(yōu)勢。但是由于目前傳統(tǒng)的工作流管理系統(tǒng)仍然存在著適用范圍窄、對異常情況處理不及時等問題,尤其是在工作流執(zhí)行過程中,不能有效地進行工作流程所涉及的各種業(yè)務(wù)活動的合理調(diào)度和優(yōu)化運行,使得其應(yīng)用受到很大限制。由于Agent具有自主性、交互性、主動性等智能特點,將Agent技術(shù)結(jié)合到工作流管理中,能夠解決工作流的上述不足,非常適合構(gòu)造結(jié)構(gòu)復(fù)雜、靈活、智能的工作流管理系統(tǒng)。Agent技術(shù)和工作流方法結(jié)合起來非常適合選課系統(tǒng)的建設(shè),可以有效地協(xié)調(diào)系統(tǒng)中不同角色人員的不同活動,盡量避免沖突,使選課系統(tǒng)更加科學化、高效化、智能化、安全化。
在選課系統(tǒng)中,我們可以把每個Agent都看成是工作流的節(jié)點。當學生要求選課時,工作流引擎為每個學生提供一個選課流程,首先進入選課界面,系統(tǒng)根據(jù)學生的學號以及選課計劃,列出該學生的選課項。如:信息學院的計算機科學與技術(shù)專業(yè)的學生,進入選課界面,如圖5所示。
接下來學生根據(jù)自己的情況和教學計劃進行選課,點擊“選課”后出現(xiàn)界面如圖6所示。
選課的人數(shù)在選課過程中隨時都會變化(當學生選中這門課的時候,人數(shù)就會下降),而選課Agent,教學計劃Agent,仲裁Agent,課程Agent,學生Agent就會互相協(xié)調(diào),避免發(fā)生錯誤(如選課違反了選課規(guī)則,不符合教學計劃等)。而管理Agent在整個工作流過程與其他Agent的協(xié)調(diào)提高了整個系統(tǒng)的效率和靈活性,使系統(tǒng)發(fā)揮最大的效能。
2.4 選課系統(tǒng)實現(xiàn)模型
當學生要求選課的時候,系統(tǒng)收到選課請求,并對其進行審核(看其是否符合選課規(guī)則),當滿足選課規(guī)則時,就可以進行選課并修改課程清單,最終完成選課。
圖7描述了選課系統(tǒng)功能模塊結(jié)構(gòu),包括用戶登錄、選課、退課、查詢選課、修改密碼等。
3 結(jié)束語
選課系統(tǒng)在很多學校都有使用,它減少了很多手工選課的麻煩,節(jié)省了時間,而基于Agent的選課系統(tǒng)更加自主并智能,可以隨著外部環(huán)境做出相應(yīng)的變化,而不需要對其進行重開發(fā)。工作流的利用使整個選課過程顯得更有條理。本文從產(chǎn)生式規(guī)則的角度出發(fā),設(shè)計Agent的推理機制,并將工作流技術(shù)與Agent技術(shù)相結(jié)合,充分發(fā)揮其優(yōu)勢,具有一定的理論和現(xiàn)實意義。