專利名稱:一種基于工作流引擎實現的通用框架的制作方法
技術領域:
本發明屬于中間件內核框架結構領域,特別是在JEE的內核框架 領域。
技術背景框架是一種特殊的軟件產品,其本質是一種通過容器容納某種由系統中應用框^技術的意義i于框架可以提高軟件系統的可擴展性、 靈活性,從而提高整個系統適應變化的能力。框絮從結構上可以分為兩部分,即框架引擎和容器。框架引擎是框架對容器中擴展的構件按配置的要求進行運行管理 的模塊,是一個框架區別于另一個框架的原因所在,是一個框架的核 心,是一個框架靈魂與生命。容器是存放開發者所實現的構件的模塊,容器要定義擴展點。擴 展點定義了明確的接口 ,開發者所實現的構件要實現這些接口 。框架運行的基本原理是通過配置擴展開發者自己實現的構件,框 架引擎模塊根據配置的信息,按某種特定的運行機制調用構件的功能, 從而完成某種定制的功能。目前,大部分框架實現的容器部分大同小異,而核心部分差別很 大,從而體現出面向不同領域的應用特點。某一具體框架的核心部分 的實現也大都是固定的,也就是說其運行機制是固定的。這種框架的 問題就在于,當框架核心部分所提供的功能不能滿足應用的要求時, 應用者將無能為力,因為框架本身的行為是不能改變的。這種框架另 外一個問題在于,容器所提供的擴展點是固定的, 一種容器只能容納 某種特定類型的構件,當有其它類型的構件時,需要采用其它類型的 框架實現,從而導致一個系統中可能存在多種不同類型的框架技術, 給應用者帶來了極大的不便。 發明內容針對目前框架技術的核心功能不能定制的問題,本發明專注于實 現一種通用性的框架,該框架的行為可改變,從而適應不同領域的需 要。針對框架所容納的構件類型不能擴展的問題,本發明通過在通用 框架之上提供一類特殊的容器,稱之為"容器的容器,,,實現了容器本 身的可擴展,從而可以通過擴展容器來容納新的構件。本發明采用工作流技術,解決了前文所提到的框架核心功能不可 定制的問題。工作流技術是一種常用的技術,用于實現執行過程可變 的任務調度與控制功能。通過工作流建模工具,可對容器中的構件進 行流程編排,從而達到定制框架行為的目的。該框架在工作流引擎之 上要增加構件之間的數據交換的處理。構件之間的數據格式映射由應 用開發時完成,引擎負責執行實際的交換過程。該框架提供面向JavaBean及Webservice的容器實現,應用開發 者可基于框架實現自己所需要的JavaBean或Webservice來擴展框架 的功能。同時,更為重要的是,該框架提供容器的擴展點,應用開發 者可以實現自己的容器并配置到框架中,該容器可接收面向特定領域 的構件的擴展實現。通過這種方式,開發者可以把該框架打造成一個 領J或框架,/人而才及大地方Y更領i或內的應用開發。本方案是通過如下技術措施來實現的,它包括工作流引擎用于根據開發者所定義的過程信息調度構件,對構 件的調用最終通過適配層完成;構件適配層構件適配層面向工作流引擎屏蔽構件不同協議的差 別,完成構件的輸入輸出面向工作流引擎的格式映射及轉換;容器注冊表容器注冊表提供了容器集成注冊與管理的空間,并 且規范了實現容器所要遵循的接口 ;容器容器容納開發者自定義構件,并通過配置指明在運行時加 載的構件。所述容器可以面向特定領域的構件實現自定義,并擴展到框架中。 容器通過框架所規定的統一的接口向引擎提供構件。 本發明的優點是1. 框架行為可自定義;2. 方便實現面向特定領域的框架,從而提高應用系統的可擴展性、 靈活性或者說適應變化的能力;3. 擴展了工作流引擎的應用范圍,可以使用工作流引擎控制程序流 程、組裝系統的各個模塊,同時也可以控制業務流程。
圖l為本發明實施例的框架的總體結構圖; 圖2為本發明實施例運行原理流程圖; 圖3為本發明實施例中運行流程的流程圖。
具體實施方式
具體實施方式
下面將對本發明的實施方式進行詳細說明。一種基于工作流引擎實現的通用框架,如圖1所示為該框架的總體結構圖。本方案是通過如下技術措施來實現的,它包括工作流引擎104:用于根據開發者所定義的過程信息調度構件, 對構件的調用最終通過適配層完成;構件適配層103:構件適配層面向工作流引擎屏蔽構件不同協議 的差別,完成構件的輸入輸出面向工作流引擎的格式映射及轉換;容器注冊表102:容器注冊表提供了容器集成注冊與管理的空間, 并且規范了實現容器所要遵循的接口;容器101:容器容納開發者自定義構件,并通過配置指明在運行 時加載的構件。所述容器101可以面向特定領域的構件實現自定義,并擴展到框 架中。容器通過框架所規定的統 一 的接口向引擎提供構件。本發明采用工作流技術,解決了前文所提到的框架核心功能不可 定制的問題。工作流技術是一種常用的技術,用于實現執行過程可變 的任務調度與控制功能。通過工作流建模工具,可對容器中的構件進 行流程編排,從而達到定制框架行為的目的。該框架在工作流引擎之 上要增加構件之間的數據交換的處理。構件之間的數據格式映射由應用開發時完成,引擎負責執行實際的交換過程。該框架提供面向JavaBean及Webservice的容器實現,應用開發 者可基于框架實現自己所需要的JavaBean或Webservice來擴展框架 的功能。同時,更為重要的是,該框架提供容器的擴展點,應用開發 者可以實現自己的容器并配置到框架中,該容器可接收面向特定領域 的構件的擴展實現。通過這種方式,開發者可以把該框架打造成一個 領域框架,從而極大地方便領域內的應用開發。本方案的運行過程為首先,接收應用通過API調用發出的請求,即步驟201,請求的 發出一般是直接通過API調用發出的,在B/S結構的程序中,請求可 能來自于一個Servlet。然后進入步驟202, API中包含了采用哪個流程處理這個請求的信 息,引擎根據此信息到流程定義庫中找到此配置信息。開始步驟203,啟動并執行此流程的過程如下步驟2031,啟動此流程。進入步驟2032,創建第一個節點,并執行此節點要調用的構件。 然后執行步驟2033,實例化構件代理,此代理根據構件的輸入參 數組織數據。進而開始步驟2034,通過代理調用構件的方法,代理為構件提供 了必要的運行環境。然后進入步驟2035,代理獲取構件返回值,并轉化成應用在框架 引擎一層所要求的數據格式。在步驟2036中,判斷是否是最后一個節點,如果不是則按順序循 環執行此流程中的每一個構件。在步驟2036中,如果判斷是最后一個構件,則最后進入步驟204、 流程執行結束,返回調用請求。
權利要求
1.一種基于工作流引擎實現的通用框架,其特征在于包括工作流引擎用于根據開發者所定義的過程信息調度構件,對構件的調用最終通過適配層完成;構件適配層構件適配層面向工作流引擎屏蔽構件不同協議的差別,完成構件的輸入輸出面向工作流引擎的格式映射及轉換;容器注冊表容器注冊表提供容器集成注冊與管理的空間,并且規范實現容器所要遵循的接口;容器容器容納開發者自定義構件,并通過配置指明在運行時加載的構件。
2. 根據權利要求1所迷的基于工作流引擎實現的通用框架,其特 征在千上述—^遵-tt架奸規定的統一的接口向引擎提供構件。
全文摘要
一種基于工作流引擎實現的通用框架,屬于中間件內核框架結構領域,特別是在JEE的內核框架領域。本方案是通過如下技術措施來實現的,它包括工作流引擎用于根據開發者所定義的過程信息調度構件,對構件的調用最終通過適配層完成;構件適配層構件適配層面向工作流引擎屏蔽構件不同協議的差別,完成構件的輸入輸出面向工作流引擎的格式映射及轉換;容器注冊表容器注冊表提供了容器集成注冊與管理的空間,并且規范了實現容器所要遵循的接口;容器容器容納開發者自定義構件,并通過配置指明在運行時加載的構件。本發明專注于實現一種通用性的框架,該框架的行為可改變,從而適應不同領域的需要。
文檔編號G06F9/44GK101246421SQ20081001428
公開日2008年8月20日 申請日期2008年2月22日 優先權日2008年2月22日
發明者民 劉, 靖 劉, 劉江寧, 健 姜, 景新海, 牛文強, 程建平, 峰 高, 高隆林, 黃三偉 申請人:山東中創軟件工程股份有限公司