專利名稱:一種服務化業務流程中人機交互方法
技術領域:
本發明涉及一種服務化業務流程中人機交互方法,屬于服務計算領域,適用于服 務的流程建模和執行。
背景技術:
隨著面向服務的體系結構(Service Oriented Architecture)的廣泛應用,越來 越多的企業將各種企業資源封裝成具有標準接口描述的Web服務,進而使用基于Web服務 的業務流程描述模型,將各種資源以更加快速、靈活、松耦合的方式進行集成,提高資源復 用和集成的效率。實際應用中,業務流程不可避免地包括人機交互任務。許多業務流程的 目的就是為了規范流程中各個環節相關人員的動作,并明確其工作范圍、職責,以幫助任務 執行人員地完成其任務。但目前的服務化業務流程描述模型側重支持對自動化執行的業務 流程,即對無人工參與的自動化Web服務流程進行編排,并不提供人機交互方法。這導致使 用這些流程描述模型時,在服務化業務流程建模階段建模人員無法描述人機交互任務,在 流程運行階段流程無法與任務執行人員進行交互。
發明內容
本發明的目的是提供一種服務化業務流程人機交互方法。使用本發明提供的交 互方法允許在不修改已有服務化業務流程描述模型的前提下,將人機交互服務的建模和執 行無縫集成到服務化業務流程的建模和執行中。本發明包含三部分內容1、服務化業務流 程建模階段人機交互服務的引入;2、基于Web服務描述語言(Web Service Description Language)和富客戶端(Rich Client)技術的人機交互服務自動生成機制;3、服務化業務 流程與人機交互服務運行時刻互操作機制。本發明的技術方案為一種服務化業務流程中人機交互方法,其步驟為1)建立一業務流程模型,并將選取的該業務流程模型中的若干服務設定為人機交 互服務;2)將設定為人機交互服務的服務生成人機交互服務實現;3)將步驟1)所建業務流程模型部署到服務化業務流程引擎上;4)服務化業務流程引擎將所設定的人機交互服務的服務請求發送到人機交互服 務任務引擎上,并掛起該服務請求對應的服務化業務流程實例;5)人機交互服務任務引擎將該服務請求、該服務請求對應的人機交互服務實現以 及該服務請求的服務化業務流程標識符記錄到一待處理任務列表中;6)瀏覽器端實例化該服務請求對應的人機交互服務實現,解析該服務請求供操作 人員處理;7)操作人員提交表單給該人機交互服務實現,生成該服務請求的響應消息并返回 給人機交互服務任務引擎;
8)人機交互服務任務引擎根據服務化業務流程標識符將該響應消息發送給服務 化業務流程引擎;9)服務化業務流程引擎收到該響應消息后,繼續執行該掛起的服務化流程實例。進一步地,將該業務流程模型的服務設定為人機交互服務的方法為將所選取的 人機交互服務的端點值設定為任務引擎的IP地址或域名。進一步地,服務化業務流程引擎根據所設定人機交互服務的端點值確定發送所述 服務請求的任務引擎。進一步地,所述人機交互服務實現為基于瀏覽器的富客戶端人機交互服務實現。進一步地,所述人機交互服務實現的生成方法為任務引擎依據描述服務語言,采 用富客戶端技術生成人機交互服務實現。進一步地,所述人機交互服務實現為一 JavaScript文件。進一步地,所述瀏覽器端設有一任務監聽器,所述任務監聽器定時輪詢所述待處 理任務列表。進一步地,人機交互服務實現解析該服務請求的的方法為首先解析該服務請求 的格式信息,其中格式信息包括服務請求的輸入參數名稱、類型;然后將服務請求的輸入 參數根據其類型進行格式化為字符串;最后將處理后的數據以表格形式顯示到界面上供操 作人員查看。進一步地,所述服務請求為XML格式的服務請求。本發明的各個模塊交互如圖1所示(1)本發明提供的交互方法不需要對已有服務化業務流程描述模型進行修改。在 業務流程建模階段,流程建模人員首先使用已有服務化業務流程描述模型提供的標準Web 服務對業務流程進行建模。此時,業務流程模型并不包含哪些服務作為人機交互服務的信 息。接著,流程建模人員需要在建模完畢的業務流程模型上,設定哪些Web服務是人機交 互服務。這一設定操作通過對將標準Web服務的屬性中的端點(endpoint)值設定為運行 時刻人機交互任務引擎的IP地址或域名來完成。建模階段完成的業務流程模型符合已有 的服務化業務流程描述模型,其中人機交互服務的信息包含在標準Web服務屬性的端點值 中。這一業務流程模型可以被部署到已有的服務化業務流程引擎上,流程引擎根據不同的 端點值決定Web服務請求被發送的位置,其中對人機交互服務的請求會被發送到人機交互 任務引擎上。(2)富客戶端技術是一種綜合了傳統Web客戶端和桌面客戶端優勢的新型Web客 戶端技術。目前主流的富客戶端技術基于Web瀏覽器,具有功能強大、用戶體驗好、無需安 裝部署升級等優勢,適合業務流程建模人員以及人機交互任務執行人員這類非專業開發人 員使用。本發明依據Web服務描述語言(WSDL)使用富客戶端技術自動地生成人機交互服 務。服務化業務流程中的Web服務均使用WSDL描述該服務的詳細輸入輸出。通過對WSDL 文件的解析可以獲得Web服務簡單對象訪問協議(SOAP)請求響應消息的詳細格式,而后使 用以下方法就可以生成人機交互服務 對于SOAP請求消息,人機交互服務解析WSDL中包含的SOAP請求的格式信息。 格式信息中,包含SOAP請求消息的輸入參數名稱、類型(浮點數、日期)信息。而后人機交 互服務將XML格式的SOAP請求中輸入參數根據其類型進行格式化為字符串(例如浮點數保留幾位小數、日期以年月日方式顯示),最后以表格形式顯示到界面上供人機交互服務處
理人員查看; 對于SOAP響應消息,人機交互服務解析WSDL中包含的SOAP響應的格式信息。 格式信息中,包含SOAP響應消息中各個返回值的名稱、類型(浮點數、日期)信息。而后人 機交互服務根據輸出參數的名稱與類型生成表單。該表單使用富客戶端技術,提供基于參 數類型的校驗功能(例如日期類型的返回值不能填寫浮點數值)。在人機交互服務處理人 員提交表單后,人機交互服務會將表單格式的返回值轉化為XML格式的SOAP響應消息。具體人機交互服務生成后,人機交互服務實現代碼、該人機交互服務與SOAP消息 的對應關系會被部署到人機交互任務引擎中。(3)為了在不對已有的服務化業務流程引擎進行修改的前提下,實現服務化業務 流程和人機交互服務的互操作,本發明提供人機交互服務任務引擎和任務監聽器來支持互 操作。人機交互任務引擎表現為一個服務器,獨立于已有服務化業務流程引擎運行。因為在 流程建模階段,人機交互服務的端點值被設定為人機交互任務引擎的IP地址或域名,所以 當業務流程請求一個人機交互服務時,流程引擎會將該SOAP請求消息發送到任務引擎。流 程引擎發送請求后,會將待完成的流程掛起直到接收到SOAP響應消息。任務引擎接到SOAP 請求后,會根據其中記錄的SOAP請求與人機交互服務的對應關系,確定處理該SOAP請求的 人機交互服務,并將SOAP請求、人機交互服務實現以及發起SOAP請求的業務流程惟一標示 符記錄到待處理人機交互服務列表中。人機交互任務監聽器表現嵌入瀏覽器的功能模塊。 任務監聽器定時輪詢任務引擎中待處理人機交互服務列表。當存在待完成服務時,任務監 聽器下載人機交互服務實現代碼,創建對應的人機交互服務富客戶端實例,再根據SOAP請 求與響應格式生成界面。當人機交互服務處理人員發現并完成人機交互服務后,提交的表 單會格式化為SOAP響應消息被發送到任務引擎。任務引擎將根據記錄的業務流程惟一標 示符,將SOAP響應消息發送回業務流程引擎。業務流程引擎收到SOAP響應消息后會讓流 程實例繼續運行。業務流程引擎、任務引擎、任務監聽器以及人機交互服務的交互圖,如圖 2所示。與現有技術相比,本發明的積極效果為1)本發明將人機交互服務的建模和執行無縫集成到服務化業務流程的建模和執 行中。這一交互方法不需要修改已有服務化業務流程描述模型。因此已有服務化業務流程 建模工具、流程引擎可以在本發明的交互方法中使用。熟悉已有工具的業務流程建模人員、 管理維護人員可以使用熟悉的工具即可完成人機交互服務建模。2)本發明使用富客戶端技術作為人機交互服務的實現技術。富客戶端技術具有功 能強大、用戶體驗好、無需安裝部署升級等優勢,適合業務流程建模人員以及人機交互任務 執行人員等非專業開發人員使用。以上兩方面優勢使得本發明提供的交互方法部署成本、 培訓成本、應用成本等較其他方法大大降低。
圖1、本發明的各個模塊交互圖;圖2、本發明的建模階段方法流程圖;圖3、本發明的運行階段方法流程圖。
具體實施例方式本節給出一個包含人機交互的旅館預訂WS-BPEL(以下簡稱BPEL)流程的實現。 BPEL 一種標準的服務化業務流程模型,其基于標準Web服務,使用XML描述業務流程。目前 已存在BPEL建模工具和流程引擎,本發明的交互方法不需修改或擴展這些工具即可將人 機交互服務無縫整合到BPEL流程中。本節實例的旅館預訂服務流程依如下步驟運行1、用戶輸入其期望旅館的查詢條 件(比如入住離店時間、星級等);2、相關人員依據查詢條件流程會向用戶推薦一些旅館; 3、如果用戶找到合適的旅館,則繼續完成預定并支付;4、如果沒有合適的旅館,則返回步驟 1重新進行查詢。這一流程中,步驟2為人機交互服務。圖2展示了本發明建模階段的方法流程圖。為實現實例流程,在建模階段包含以 下步驟1、BPEL流程建模人員使用標準BPEL流程建模工具構建標準BPEL流程,這一流程 包含“輸入查詢參數”、“查詢旅館”、“完成預定”、“付款”等多個Web服務;2、BPEL流程建模 人員修改“查詢旅館”這一 Web服務的端點值,將其設定為任務引擎的IP地址;3、BPEL流 程建模人員將“查詢旅館”這一 Web服務的WSDL文件輸入人機交互服務自動生成工具。人 機交互服務生成工具會根據WSDL文件中的SOAP請求格式信息生成基于瀏覽器的富客戶端 人機交互服務實現,其表現為一個JavaScript文件;4、系統管理員將BPEL建模工具生成 的BPEL流程描述文件部署到標準BPEL流程引擎中;5、系統管理員將人機交互服務實現的 JavaScript文件部署到人機交互服務任務引擎中。圖3展示了本發明運行階段的方法流程圖。為實現實例流程,在流程運行階段包 含以下步驟1、用戶輸入查詢條件;2、BPEL流程引擎啟動新流程實例;3、BPEL流程引擎調 用“查詢旅館”服務,根據服務端點值,將SOAP請求發送到任務引擎,將BPEL流程實例掛起 等到SOAP響應;4、任務引擎接收SOAP請求,查詢到對應的人機交互服務的JavaScript實 現文件;將SOAP請求、實現文件、以及BPEL流程惟一標示符記錄到待處理任務列表中;5、 瀏覽器中的任務監聽器發現新的待處理人機交互任務后,下載JavaScript實現文件,實例 化人機交互服務,解析SOAP請求,將界面顯示到瀏覽器中提醒相關人員處理;6、相關人員 處理完成后,提交表單,結果被編碼為SOAP響應。發送回任務引擎;7、任務引擎接收到SOAP 響應后,根據記錄的BPEL流程惟一標示符,將SOAP響應發送回BPEL引擎;8、BPEL引擎接 收SOAP響應后,將掛起的BPEL流程實例繼續運行。
權利要求
一種服務化業務流程中人機交互方法,其步驟為1)建立一個業務流程模型,并將選取的該業務流程模型中的若干服務設定為人機交互服務;2)將設定為人機交互服務的服務生成人機交互服務實現;3)將步驟1)所建業務流程模型部署到服務化業務流程引擎上;4)服務化業務流程引擎將所設定的人機交互服務的服務請求發送到人機交互服務任務引擎上,并掛起該服務請求對應的服務化業務流程實例;5)人機交互服務任務引擎將該服務請求、該服務請求對應的人機交互服務實現以及該服務請求的服務化業務流程標識符記錄到一待處理任務列表中;6)瀏覽器端實例化該服務請求對應的人機交互服務實現,解析該服務請求,供操作人員處理;7)操作人員提交表單給該人機交互服務實現,生成該服務請求的響應消息并返回給人機交互服務任務引擎;8)人機交互服務任務引擎根據服務化業務流程標識符將該響應消息發送給服務化業務流程引擎;9)服務化業務流程引擎收到該響應消息后,繼續執行該掛起的服務化流程實例。
2.如權利要求1所述的方法,其特征在于將該業務流程模型的服務設定為人機交互服 務的方法為將所選取的人機交互服務的端點值設定為任務引擎的IP地址或域名。
3.如權利要求2所述的方法,其特征在于服務化業務流程引擎根據所設定人機交互服 務的端點值確定發送所述服務請求的任務引擎。
4.如權利要求1所述的方法,其特征在于所述人機交互服務實現為基于瀏覽器的富客 戶端人機交互服務實現。
5.如權利要求4所述的方法,其特征在于所述人機交互服務實現的生成方法為任務 引擎依據描述服務語言,采用富客戶端技術生成人機交互服務實現。
6.如權利要求1或4或5所述的方法,其特征在于所述人機交互服務實現為一 JavaScript
7.如權利要求1所述的方法,其特征在于所述瀏覽器端設有一任務監聽器,所述任務 監聽器定時輪詢所述待處理任務列表。
8.如權利要求1所述的方法,其特征在于人機交互服務實現解析該服務請求的的方 法為首先解析該服務請求的格式信息,其中格式信息包括服務請求的輸入參數名稱、類 型;然后將服務請求的輸入參數根據其類型進行格式化為字符串;最后將處理后的數據以 表格形式顯示到界面上供操作人員查看。
9.如權利要求8所述的方法,其特征在于所述服務請求為XML格式的服務請求。
全文摘要
本發明公開了一種服務化業務流程中人機交互方法,屬于業務流程管理和服務計算領域。本方法為1)選取業務流程模型中的若干服務設定為人機交互服務,并將其生成人機交互服務實現;2)將業務流程模型部署到業務流程引擎上;3)業務流程引擎將所設定服務的服務請求發送到任務引擎上,并掛起該服務請求對應的服務化業務流程實例;4)瀏覽器端實例化該服務請求對應的人機交互服務實現,解析該服務請求供操作人員處理;5)操作人員提交表單給該人機交互服務實現,生成該服務請求的響應消息并返回給任務引擎;6)任務引擎根據業務流程標識符將該響應消息發送給業務流程引擎;7)業務流程引擎收到該響應消息后,繼續執行該掛起的服務化流程實例。
文檔編號H04L29/06GK101957754SQ20101028103
公開日2011年1月26日 申請日期2010年9月14日 優先權日2010年9月14日
發明者劉譞哲, 梅宏, 趙祺, 黃罡 申請人:北京大學