《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業(yè)界動態(tài) > 基于即時協(xié)同工作的辦公信息平臺

基于即時協(xié)同工作的辦公信息平臺

2008-04-22
作者:劉克勤1, 文俊浩2

  摘 要: 針對傳統(tǒng)的信息交流模式只能實現(xiàn)靜態(tài)工作流" title="工作流">工作流方式的弊端,,提出一種動態(tài)即時協(xié)同工作" title="協(xié)同工作">協(xié)同工作的信息交流平臺,。并以辦公系統(tǒng)為背景,,將Java技術,、XML技術,、工作流技術及消息傳遞中間件技術有機結合,,實現(xiàn)了用戶間在協(xié)同辦公平臺" title="辦公平臺">辦公平臺內的在線信息交流,。
  關鍵詞: 動態(tài)協(xié)同 工作流驅動 中間件技術


  信息社會對信息交流方式的要求越來越高,,傳統(tǒng)的靜態(tài)工作模式已不適應即時獲取信息滿足協(xié)同工作的需要,。本文以辦公系統(tǒng)為背景,將Java技術,、XML技術,、工作流技術及消息傳遞中間件技術有機結合,構建了一個動態(tài)即時協(xié)同工作的信息平臺,。該平臺基于XML協(xié)同動態(tài)工作流驅動和可視化的工作流建模工具(X-Wrokflow),,滿足了用戶可視化流程自定義要求;基于XML的協(xié)同消息服務驅動,,實現(xiàn)了用戶間在協(xié)同辦公平臺內的在線信息交流,,實時性好,滿足了人們對信息即時協(xié)同的工作需要,。以下就有關功能實現(xiàn)問題進行討論,。
1 協(xié)同動態(tài)工作流驅動及X-Workflow的實現(xiàn)
1.1 引擎的結構
  工作流引擎主要包含下列功能:解釋流程定義;生成過程實例,;控制流程實例的創(chuàng)建,、激活、掛起和終止等,,實現(xiàn)流程活動導航,;引導流程活動的進行,包括順序和并行操作期限調度工作流相關數(shù)據(jù)解釋等,;確定需要用戶處理的工作項,,提供用戶交互接口;維護工作流控制數(shù)據(jù)和工作流相關數(shù)據(jù),與用戶或應用程序" title="應用程序">應用程序傳遞工作流相關數(shù)據(jù),;調用外部應用程序和連接工作流相關數(shù)據(jù)的接口,;跟蹤具體流程實例的歷史等。一個工作流引擎[1]的過程流轉系統(tǒng)可以表示為一個三元組,其中,,D表示過程定義,,I表示過程實例,M表示過程流轉控制系統(tǒng),。過程實例是過程流轉的主體,,它是在系統(tǒng)控制下由過程定義模型復制并添加相應的狀態(tài)信息生成的??刂葡到y(tǒng)控制多個實例,、監(jiān)控和修改實例的狀態(tài)。圖1表示過程定義,、實例與流轉控制的關系,。


1.2 基于XML的公文流轉系統(tǒng)工作流過程模型DT-XPDL
  工作流模型描述表現(xiàn)形式有兩種:描述性語言和圖形設計工具。前者用語句描述工作流動規(guī)則,,后者采用結點表示人,、設備、應用程序等實體對象,,用鏈表示文檔傳遞,、請求、指令等,。為了方便交互和在不同的模型之間實現(xiàn)轉換,,人們提出了稱之為“工作流過程規(guī)范語言”的規(guī)范描述語言。現(xiàn)有的工作流過程建模語言主要有以下幾類:(1)基于IPO(Input-Process-Output)的語言,,如在IBM MQSeries Workflow使用的活動網(wǎng)絡,,過程中的每一個基本活動都由輸入(I)、處理(P),、輸出(O)三個部分組成,。這類語言按照活動執(zhí)行順序描述工作流過程。(2)基于對話行為(Speech-Act-based)的方法,,有時也叫做語言行為方法,。(3)基于約束的建模方法,如由GLANCE 提出的廣義過程結構語法(Generalized Process Structure Grammar),。(4)基于角色建模的過程描述方法,,如角色活動圖RAD(Role Activity Diagrams)。(5)基于形式化表示的建模方法,,如基于Petri網(wǎng)的建模方法,。
  (1)工作流過程定義語言WPDL
  1994年WfMC推出的工作流過程定義語言WPDL(Workflow Process Definition Language)是為創(chuàng)建工作流過程模型的輸入,、輸出而建立的一種元語言。WPDL的關鍵詞是基于WfMC詞匯表中所定義的術語,,術語清晰地描述了元模型中的過程實體,。WPDL的實體類型不能再被擴展,但用戶定義的屬性可添加到單個實體類型中,,工作流過程定義包括一個或多個工作流過程活動,。
  (2)XML過程定義語言XPDL
  WfMC支持異構工作流管理系統(tǒng)與產(chǎn)品之間的互操作性。由于Internet與Web的普及和標準化以及XML的良好特點,,可利用Internet,、Web及XML來解決互操作問題。2001年WfMC發(fā)布了一個基于XML描述的工作流過程定義接口規(guī)范——XML過程定義語言XPDL(XML Process Definition Language)[2],。XPDL與WPDL都是基于同一個工作流過程的元模型,,只是在XML描述格式基礎上對WPDL進行映射并做了適當?shù)奶砑雍托薷摹S捎赬ML具有不可比擬的優(yōu)點,,基于XML描述的過程定義語言大大擴展了WfMC在基于B/S結構的應用范圍,因此,,XPDL已成為工作流過程模型的主要描述形式,。
  (3)面向公文流轉系統(tǒng)的基于XML的過程定義語言DT-XPDL
  參考WfMC推出的WPDL/XPDL,結合我國辦公系統(tǒng)中公文流轉業(yè)務流程特點,,建議采用面向公文流轉系統(tǒng)的基于XML的過程定義語言DT-XPDL (Document Transfer XML-based Process Definition Language),,以實現(xiàn)工作流過程引擎。
1.3 動態(tài)工作流引擎的實現(xiàn)
  (1) 過程實例的狀態(tài)
  過程模型實例[3]有四個轉換狀態(tài):初始,、運轉,、暫時、結束,。四個狀態(tài)在工作流控制系統(tǒng)控制下可相互轉移,,如圖2所示由圖可見,對完成的過程實例,,將移出工作流運轉系統(tǒng),,以保證完成的實例不再占用系統(tǒng)資源,從而避免了對活動實例處理效率的影響,。


  (2) 實例管理
  引擎通過輪詢控制狀態(tài)的轉換,。對于過程實例,引擎用XML的元素對其進行描述。在DOM數(shù)的構造中,這些實例處于樹的最底層,,相當于葉子結點,引擎通過元素名對它們逐次訪問,。當用戶登錄進入系統(tǒng)時,引擎會將待處理元素的信息返回給用戶,,如果沒有該用戶要處理的信息,,引擎不采取任何行動,。當用戶進入系統(tǒng)時,如有用戶要處理的實例,,則該實例將進入新的待處理隊列,,由用戶發(fā)送處理請求,直到實例處理或用戶推出系統(tǒng),,實例將掛在待處理隊列中等待處理,。
  (3) 主動式
  為實現(xiàn)主動交互和協(xié)調,實例運轉時,,可通知客戶處理事件,,由客戶行為驅動下一步運轉方向和狀態(tài),在運轉中改變工作流程,,以實現(xiàn)“動態(tài)工作流”,。因此必須有某種機制引擎,在需要時主動通知客戶進行下一步處理,。由于協(xié)作是基于Web的,,并使用了XML技術,為了在瀏覽器中解析XML,,可利用Applet,、Servlet和JSP相結合的方法。服務器的Servlet和瀏覽器端的Applet通過XML在Web上交換信息,。當服務器有消息要通知客戶時,,Servlet向Applet發(fā)送XML格式的信息,Applet通過瀏覽器執(zhí)行Javascript解析XML,,獲得所需信息,,以窗口消息方式通知客戶。主動式交互的機制如圖3所示,??蛻襞c服務器的通信信息都是XML格式的信息,這種格式是自定義的,,利用XML作為通信格式,,不僅易于擴充,在當前基于Web的實現(xiàn)中,,還具有易于跨越網(wǎng)絡代理和防火墻的優(yōu)點,。


  (4) 動態(tài)工作流引擎的實現(xiàn)
  動態(tài)工作流引擎負責讀取由可視化流程設計器生成的XML流程定義文件,并對其進行解析和運行,。當用戶需要創(chuàng)建流程實例時,,流程引擎先創(chuàng)建該流程對應的XML描述文件的副本,作為整個流程運行中的參考,,流程引擎的XML解析器負責把設計期的流程和對象轉化為運行期的流程實例和對象,,即把基于XML存儲的信息,,轉化為基于數(shù)據(jù)庫存儲的信息。在這個過程中,,借助數(shù)據(jù)持久化技術實現(xiàn)數(shù)據(jù)庫層的隔離,。流程實例創(chuàng)建后將在流程引擎的控制框架下被動運行。流程引擎負責流程的調度,、接收用戶端的輸入,,根據(jù)用戶的輸入和流程規(guī)則進行流程分支的選擇,按照條件進行流程的跳轉,、暫停,、恢復和中斷。
  流程引擎分為四個包:①engine包,。負責讀取流程配置信息,,創(chuàng)建和銷毀流程實例,定義流程對象基類,、流程監(jiān)聽接口等,。②designtime包。復制解析設計期的XML文件,,并分解相應的對象,,以方便傳輸?shù)綌?shù)據(jù)庫。③runtime包,。負責對運行期對象進行管理,如動態(tài)解析流程參與者,、動態(tài)路由選擇,、流程事件監(jiān)聽、用戶腳本支持等,。④organization包,。定義了流程運行所需參與者類型,如:員工,、角色,、部門、小組等,,該包以接口的形式存在,,以適應工作流系統(tǒng)跨應用系統(tǒng)運行。以下是對其中關鍵的對象原型設計[4]的討論,。
1.4 可視化流程設計器的實現(xiàn)
  為了更好地使用協(xié)同辦公平臺,,對工作流系統(tǒng)實現(xiàn)完全圖形化和可視化操作界面是非常有必要的。由于協(xié)同辦公平臺是基于Web實現(xiàn)的,,為與平臺保持兼容和易于使用,,可視化流程設計器的設計應注意以下幾點:(1)必須采用純Web技術實現(xiàn),。(2)支持所見即所得的設計,采用拖拉方式對流程進行設計和修改,,隱藏技術細節(jié),,讓用戶能更專注于自己關心的流程。(3)能生成標準化的XML流程定義文件,。在系統(tǒng)的可視化流程設計中,,采用純Web技術進行開發(fā),而不采用任何類似于ActiveX插件,、Java Applet等本地化技術,,使設計器能更好地兼容各種瀏覽器和操作系統(tǒng)平臺。(4)在支持所見即所得方面,,設計器可采用Html+JavaScript+XML的技術進行開發(fā),,以完全實現(xiàn)流程元素的動態(tài)創(chuàng)建、拖曳,、粘接,、自動驗證等功能??梢暬鞒淘O計的結果是一個標準的XML文檔,,它是對所設計流程的一個XPDL描述。該XML文檔將作為流程引擎創(chuàng)建并運行于流程的入口,,參與流程運行的全過程,;可視化流程設計的另一個結果是一個XML文件,該文件由動態(tài)工作流引擎進行解釋并執(zhí)行,。按上述分析和設計,,即可實現(xiàn)基于XML的動態(tài)工作流的可視化設計器[5](X-WorkFlow,XWF),,用戶只需按要求生成流程,,無需編程。
1.5 流程跟蹤監(jiān)控的實現(xiàn)
  流程跟蹤監(jiān)控是流程引擎的外圍模塊,,用于給用戶提供操作接口,。流程參與者通過這個接口,可以實時,、可視化地對流程的流轉情況進行跟蹤,,對處理情況進行查詢。而流程管理者還可以在流程圖上對流程進行管理,,包括對參與者的管理,、對流程流向的控制以及改變流程狀態(tài)等。其功能主要有:經(jīng)辦流程跟蹤查詢,;經(jīng)辦流程統(tǒng)計,;流程超期提醒,;所有流程統(tǒng)計;流程監(jiān)控等,。
1.6 可視化流程頁面編輯器的實現(xiàn)
  可視化流程頁面編輯器[5-7]是可視化流程設計器的一個輔助設計工具,,其作用是讓用戶的可視化設計在流程中能提供需要使用的相關表單界面。其結果將作為流程設計器的相關屬性,,在運行時由控制框架調用,,并展現(xiàn)給用戶??梢暬鞒添撁婢庉嬈鲗嵸|上是一個基于瀏覽器的可視化HTML編輯器,,其輸出結果就是一段HTML代碼,其功能有:文件上傳功能,;上傳文件類型限定功能,;圖文混排功能;所見即所得功能,;表格功能,;表單及常用控件支持;Word文件轉換功能等,。
2 協(xié)同消息服務中間件SCMS的實現(xiàn)
2.1 消息傳遞機制

  SCMS系統(tǒng)負責將信息按照通信協(xié)議所定義的消息格式進行打包,,然后將打包后的消息放入消息發(fā)送隊列,并釋放一個信號,。該信號觸發(fā)發(fā)送線程,,使其從消息發(fā)送隊列中讀出消息,通過消息通道代理利用傳輸協(xié)議和物理連接將消息發(fā)送到遠程系統(tǒng),。任一成員系統(tǒng)信息發(fā)送,,只需直接調用JMS規(guī)范提供的應用接口函數(shù)[8]。SCMS是根據(jù)消息的目的地址綁定接收對象的,,又通過通道代理調用接收對象的接口函數(shù),,將消息放入接收對象的消息接收隊列,。因此,,在發(fā)送方完成消息發(fā)送的同時,接收方也完成了消息接收,。接收方只需直接從自身消息接收隊列中讀出消息,、解包,并根據(jù)消息的類型進行相應的處理,。SCMS的工作模式參照了JMS中所描述的點對點模式和發(fā)布/訂閱模式,,消息傳送有三種形式:一對一、一對多,、多對多,。在JMS規(guī)范中,,一對一采用點對點模式,一對多和多對多采用發(fā)布/訂閱模式,。
  點對點傳輸消息建立在消息隊列基礎上,,每個客戶端" title="客戶端">客戶端對應一個消息隊列,客戶端發(fā)送消息到對方的消息隊列中,,從自己的消息隊列讀取消息,。隊列將發(fā)送給它們的消息一直保留,直到消息被消費或消息到期,。發(fā)布訂閱模式(Pub/Sub)是客戶將消息提交給某個主題,,發(fā)布者和訂閱者通常是匿名的,并能動態(tài)發(fā)布或訂閱消息,,Pub/Sub系統(tǒng)必須保證某個主題的所有發(fā)布者(Publisher)發(fā)布的信息準確無誤地發(fā)送到這個主題的所有消息訂閱者(Subscriber),。主題把消息分發(fā)給當前的調用者之后就不再保留這些消息。
2.2 點對點模式的具體實現(xiàn)
  SCMS利用共享內存提供模擬發(fā)送隊列和接收隊列,,提供核心和應用之間的一個消息傳輸通道,,起到對發(fā)送消息和接收消息的控制和緩沖作用,如圖4所示,??蛻舳薃對應隊列QA,客戶端B對應隊列QB,??蛻舳薃要發(fā)消息給客戶端B,則客戶端A把消息發(fā)到客戶端B的隊列QB中,,客戶端B再從隊列QB中讀取消息,。同樣,客戶端B要發(fā)消息給客戶端A,,則客戶端B把消息發(fā)到客戶端A再的隊列QA中,,客戶端A從隊列QA中讀取消息。


3 SCMS基于Web的客戶端實現(xiàn)
  由于整個協(xié)同辦公平臺是基于瀏覽器應用的,,但瀏覽器又不直接支持JMS的相關服務,,因此在瀏覽器端采用Java Applet技術實現(xiàn)符合JMS規(guī)范的無界面消息收發(fā)的應用程序,并使用JavaScript腳本對其進行封裝,。這樣Web程序就可以用操作普通對象的方式來操作消息對象,,使用基于互聯(lián)網(wǎng)的消息服務。如圖5所示,,瀏覽器端主要由三個對象組成:Message,、MessageServer和MessageClient。Message對象是對XML消息對象的一個封裝,以方便JavaScript對消息進行操作,,同時它也是MessageClient和MessageServer之間傳遞的標準對象,;MessageServer對象主要實現(xiàn)消息轉發(fā)的功能,即接收服務器端的消息,,并轉發(fā)給已注冊的本地窗口,,同時接收本地待發(fā)送的消息,并發(fā)送到服務器端,;MessageClient對象負責接收本地服務器轉發(fā)的消息,,并給應用程序提供相關的接口以進行消息的收發(fā),該對象是瀏覽器端程序直接使用的對象,。


  本文介紹了基于動態(tài)即時協(xié)同工作的辦公系統(tǒng)總體框架,,著重分析了在SCOA系統(tǒng)中如何實現(xiàn)動態(tài)工作流定義、流轉控制及在線交流,,用Java開發(fā)基于XML的動態(tài)工作流引擎和可視化流程設計器,,實現(xiàn)了基于Java的消息服務中間件(SCMS)的在線交流平臺。
參考文獻

[1] 竇萬春,,李東波,,張世琪.基于對象和實例互操作行為模型的工作流研究[J].計算機學報,2001,,(2):197-201.
[2] ?周航濱,,夏安邦,張長昊.基于Web服務的跨企業(yè)信息集成框架計算機集成制造系統(tǒng)——CIMS[J]. 計算機學報,,2003,,(1):1-5.
[3] ?柴曉路,良宇奇.Web Services技術,、架構和應用[M].北京:電子工業(yè)出版社,,2003.
[4] ?LEYMANN F, ALTENHUBER W. Managing business processes as an information resource. IBM Systems Journal,1994,(33):326-348.
[5] ?沈軍營,黃進,,嚴雋琪.虛擬企業(yè)中的工作流技術研究[J]. 計算機科學,,2000,(2):7-10.
[6] ?鄒冰,,張旭,,伊曉強,等.一類基于IPO的工作流過程建模語言規(guī)范分析[J].計算機工程與應用, 2002,,(21):54-58.
[7] ?GLANCE N S,,PAGANI D S, PARESCHI R. Generalized process structure grammars(GPSG) for flexible representations of work. CSCW’96: Proceedings of the Conference on Computer Supported Cooperative Work. Boston, MA, 1996:180-189.
[8] ?張旭,,鄒冰,,伊曉強,等.總線型多工作流引擎接口系統(tǒng)的研究與應用[J].計算機工程與應用,,2002,,(23):75-77.

本站內容除特別聲明的原創(chuàng)文章之外,,轉載內容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點,。轉載的所有的文章,、圖片、音/視頻文件等資料的版權歸版權所有權人所有,。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯(lián)系確認版權者,。如涉及作品內容、版權和其它問題,,請及時通過電子郵件或電話通知我們,,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]