摘要:隨著企業(yè)各獨立業(yè)務系統(tǒng)已日臻完善,業(yè)務系統(tǒng)間的水平集成需求越來越明顯。本文基于SOA架構,通過BizTalk Server,提出某建筑設計研究院人事信息同步平臺架構。在充分利用其原有系統(tǒng)及功能,及保證其靈活性的前提下,為其人事信息進行服務集成。
關鍵詞:SOA;BizTalk Server;服務集成
中圖分類號:C931.6 文獻標識碼:A 文章編號:1007-9599 (2012) 18-0000-02
隨著信息化發(fā)展,許多企業(yè)為不同的業(yè)務定制了不同的業(yè)務系統(tǒng)。而進一步的系統(tǒng)發(fā)展則需要這些獨立的業(yè)務系統(tǒng)數(shù)據(jù)共享。如何共享這些數(shù)據(jù),統(tǒng)一流程成為一個問題。面向服務架構(SOA)作為一種靈活的,松耦合的架構風格,可以很好地解決這一問題。
某建筑設計研究院的業(yè)務信息系統(tǒng)包括了人事系統(tǒng)、建筑設計辦公系統(tǒng)、檔案系統(tǒng)等多個專業(yè)系統(tǒng),而各系統(tǒng)分別采用不同的同步模式,一個系統(tǒng)的修改很可能極大地影響其他系統(tǒng)。同時,隨著建筑設計相關業(yè)務不斷完善和擴大,需要各個系統(tǒng)能快速適應新的業(yè)務變化的要求。
本文在SOA架構下,基于BizTalk Server對該研究院的各業(yè)務系統(tǒng)進行服務集成,以人事信息部分為例,概括介紹了數(shù)據(jù)、流程整合的設計思路以及開發(fā)實例。
1 面向服務的體系結(jié)構(SOA)
面向服務的體系結(jié)構(service—oriented architecture, SOA)是一種架構風格。它將業(yè)務劃分為一系列粗粒度的業(yè)務服務,再將這些業(yè)務服務組裝成業(yè)務流程。
SOA的分析和設計步驟:
(1)服務發(fā)現(xiàn):發(fā)現(xiàn)服務的候選者,主要有自上而下、自下而上和中間對齊三種方式。(2)服務規(guī)約:確定哪些服務候選者將被暴露為服務,并規(guī)范性地描述服務的各個方面的屬性,包括輸入輸出消息、安全約束、響應時間等等。(3)服務實現(xiàn):服務實現(xiàn)需要對現(xiàn)有系統(tǒng)進行分析,根據(jù)服務的規(guī)約,最終設計并實現(xiàn)各個服務和服務的編排。
2 Biztalk server
BizTalk Server是微軟推出的一套信息交換與應用整合系統(tǒng)。它提供了一個功能強大的基于Web的開發(fā)和執(zhí)行環(huán)境,具有松耦合的集成和長期運行的業(yè)務流程。它可以處理長期的交易,運行數(shù)周或數(shù)月,而不只是幾分鐘或幾小時。BizTalk Server通過Internet發(fā)送和接收文件,并提供一系列的服務,以確保數(shù)據(jù)的完整性,可交付性,安全性,并支持BizTalk框架和其他重要文件格式。
3 人事信息同步平臺設計
3.1 人事信息交互現(xiàn)狀及問題
本文所涉建筑設計研究院原有信息系統(tǒng)較多,涉及人事信息的主要有人事管理系統(tǒng),建筑設計辦公系統(tǒng)(以下簡稱辦公系統(tǒng)),即時聊天系統(tǒng)及圖檔系統(tǒng)。且各系統(tǒng)都在開發(fā)過程中或計劃中,尚不成熟,故對靈活性要求較高。
該研究院原有信息系統(tǒng)的交互方式是直接共享數(shù)據(jù)庫,采用觸發(fā)器、視圖等方法同步不同系統(tǒng)間的數(shù)據(jù),技術上較為簡單,但是一旦更改一個系統(tǒng)的數(shù)據(jù)庫結(jié)構,其他系統(tǒng)勢必受到影響。另外,由于人力資源信息具有一定保密性,數(shù)據(jù)庫層面的操作存在潛在的安全隱患。而該研究院的信息系統(tǒng)仍在不斷發(fā)展,當未來增加新的系統(tǒng)或?qū)εf系統(tǒng)進行升級時,還需大量修改原有系統(tǒng),其成本也會非常高。
總而言之,該研究院目前的數(shù)據(jù)同步方式需要各個系統(tǒng)人員的大量交流,靈活性較差,維護成本高,出錯概率也較高。
3.2 人事信息同步平臺服務設計
人事流程基本可分為錄用,調(diào)職,離職以及其他日常維護。其中錄用調(diào)職離職流程由人事管理系統(tǒng)驅(qū)動。員工首先在人事部門完成人事流程后,數(shù)據(jù)被發(fā)送到其他各系統(tǒng),再由其他系統(tǒng)分別完成一系列流程,并對數(shù)據(jù)進行修改。日常維護則主要分為信息勘誤和背景信息的更新。根據(jù)維護內(nèi)容不同,員工本人由辦公系統(tǒng),或人事部門由人事管理系統(tǒng)中發(fā)起,經(jīng)過審核等流程后,完成系統(tǒng)內(nèi)部的數(shù)據(jù)修改;再將需要共享的數(shù)據(jù)通過共享平臺同步到其他系統(tǒng)并完成其他流程。
依照SOA架構的分析設計流程,分別為以上功能發(fā)現(xiàn)服務、規(guī)約服務并最終實現(xiàn)服務。
以人事錄用為例,主要流程如下:
(1)首先由人事管理系統(tǒng)輸入數(shù)據(jù),完成人事流程;(2)人事系統(tǒng)將數(shù)據(jù)發(fā)送到同步平臺。同步平臺將數(shù)據(jù)分別轉(zhuǎn)發(fā)到辦公系統(tǒng),圖檔系統(tǒng)和即時聊天系統(tǒng);(3)在辦公系統(tǒng)中完成一定流程,如計算機室給員工分配網(wǎng)絡賬號,電腦等,然后將企業(yè)郵箱地址發(fā)回同步平臺;(4)其他各系統(tǒng)以相似方法完成一定流程,修改并同步數(shù)據(jù)。
服務發(fā)現(xiàn):
按照現(xiàn)有系統(tǒng)及功能,在不暴露系統(tǒng)內(nèi)部流程,盡量保持現(xiàn)有功能的情況下,相關服務候選者有:
人事管理系統(tǒng):新員工錄用、員工信息更新
辦公系統(tǒng):員工添加、員工信息更新
圖檔系統(tǒng):員工添加、員工信息更新
即時聊天系統(tǒng):員工添加、員工信息更新
服務規(guī)約:
(1)決定需要暴露服務:由于新員工錄用由人事系統(tǒng)發(fā)起,而不是由其他系統(tǒng)或平臺調(diào)用的功能,所以無需暴露為服務。其他系統(tǒng)的人事初始信息都需要從外部獲得,所以員工添加是必要的服務。圖檔系統(tǒng)和即時聊天系統(tǒng)都需要從外部獲得員工賬號等更新信息,所以這兩個系統(tǒng)都需要員工信息更新服務。而辦公系統(tǒng)和人事系統(tǒng)的員工信息更新雖有必要,但與錄用流程無關,可以留待其他流程中再行規(guī)約。
(2)服務的輸入輸出:人事管理系統(tǒng)調(diào)用平臺接口時,平臺接口的輸入數(shù)據(jù)為該員工的全部數(shù)據(jù)。
辦公系統(tǒng)的輸入數(shù)據(jù)為該員工的全部數(shù)據(jù)。其輸出數(shù)據(jù)為操作結(jié)果。
圖檔系統(tǒng)和即時聊天系統(tǒng)并不需要全部人事信息,所以將人事基本數(shù)據(jù)精簡后,只將必需的信息發(fā)送給相應系統(tǒng),而某些詳細信息如身份證、家庭住址等詳細信息或其他保密的信息則不被發(fā)送。
服務實現(xiàn):
依照同步平臺的服務設計,各原有系統(tǒng)保持內(nèi)部流程不變,只需將相關功能按規(guī)約暴露為服務。即人事系統(tǒng)調(diào)用同步平臺的錄用流程服務,辦公系統(tǒng)、圖檔系統(tǒng)和及時聊天系統(tǒng)分別重新包裝其人員添加,信息更新服務。
4 人事信息同步平臺實例
BizTalk Server的數(shù)據(jù)流如圖3.3 - 1,BizTalk Server通過接收位置接收數(shù)據(jù)、創(chuàng)建消息, 經(jīng)接收管道處理后,將其存儲到MessageBox數(shù)據(jù)庫,然后根據(jù)映射關系將輸入消息轉(zhuǎn)換為另一種架構的輸出消息,再將轉(zhuǎn)換后的消息由發(fā)送管道處理之后經(jīng)發(fā)送端以相應的格式發(fā)送給目標端。
仍以錄用的步驟二為例,信息同步平臺部分的實現(xiàn)主要有以下幾個步驟:
(1)創(chuàng)建消息架構,即按照服務規(guī)約定義的輸入輸出。本例中主要有人事全部信息、人事精簡信息和操作結(jié)果;(2)創(chuàng)建管道以完成XML的拆裝工作;(3)創(chuàng)建數(shù)據(jù)映射,即將人事全部信息映射為人事精簡信息,以及將人事全部信息的關鍵信息映射到操作結(jié)果中;(4)創(chuàng)建業(yè)務流程及端口,主要業(yè)務流程如下:
1)平臺接收數(shù)據(jù);2)檢查數(shù)據(jù)(檢查工號、姓名不為空),并設置錯誤信息;3)如果通過數(shù)據(jù)檢查,則將輸入數(shù)據(jù)直接發(fā)送給辦公系統(tǒng),并等待辦公系統(tǒng)結(jié)果;4)如果辦公系統(tǒng)結(jié)果正常:
a由輸入數(shù)據(jù)構造精簡數(shù)據(jù)(圖檔系統(tǒng)和聊天系統(tǒng)的暫使用相同數(shù)據(jù)架構);
b將精簡數(shù)據(jù)發(fā)送給圖檔系統(tǒng);
d將精簡數(shù)據(jù)發(fā)送給聊天系統(tǒng)(圖檔系統(tǒng)和聊天系統(tǒng)由于數(shù)據(jù)簡單,不再進行返回值的判斷,默認操作成功);
1>如果辦公系統(tǒng)結(jié)果錯誤:
a設置錯誤信息;
2>構造結(jié)果信息,并為錯誤信息賦值;
3>將結(jié)果信息返回;
5)部署系統(tǒng),設置接收位置等。
5 結(jié)語
本文結(jié)合研究院的實際需要,設計實現(xiàn)了基于SOA的人事信息同步平臺。SOA架構使集成工作可以充分利用原有系統(tǒng)和功能,而無需大量的重新開發(fā)工作。而BizTalk Server的開發(fā)及日常維護工作較為簡單。即使大規(guī)模開發(fā)結(jié)束,各系統(tǒng)開發(fā)人員退出企業(yè)后,企業(yè)的維護人員也可進行日常維護,甚至對業(yè)務流程進行簡單編排,無需相關系統(tǒng)的開發(fā)人員大量參與,這將大大降低企業(yè)維護成本。各系統(tǒng)內(nèi)部的流程仍在各系統(tǒng)內(nèi)部完成,單一系統(tǒng)的更改幾乎不影響其他系統(tǒng),即松散耦合。同時,各系統(tǒng)可以更改需要暴露的服務,可以超越系統(tǒng)邊界進行編排,這使該平臺能跟隨業(yè)務的發(fā)展,做到“隨需應變”。
參考文獻:
[1]毛新生.SOA原理方法實踐[M].北京:電子工業(yè)出版社,2007.
[2]Microsoft. Microsoft BizTalk Server[EB/OL].http://msdn.microsoft.com/zh-cn/library/dd547397.aspx,2012,10.
[3]胡風華,袁繼軍.基于SOA的數(shù)據(jù)交換服務在高校數(shù)字檔案館中的實現(xiàn).教育部直屬高校檔案工作協(xié)會第六次會員代表大會暨學術研討會,2010,9.
[4]Microsoft. BizTalk Server 教程[EB/OL].http://msdn.microsoft.com/zh-CN/library/aa560110(v=bts.10).aspx,2012,10.