基於SOA的人事管理系統架構

才智咖 人氣:1.88W

SOA以藉助現有的應用來組合產生新服務的敏捷方式,提供給企業更好的靈活性來構建應用程式和業務流程。國內目前己有多種通用的人事管理系統軟體供企業單位選擇使用,應該說,企業人事管理系統的開發與應用在國內已經進入了相對成熟期,其在企業中的作用也越來越大。隨著SOA技術的不斷髮展,中國的SOA架構模型和應用推廣已經有了良好的需求環境。面向服務方式將是未來企業人事管理系統的發展方向。

基於SOA的人事管理系統架構

1 引言

管理資訊系統的業務功能、系統架構和應用模式的發展依賴於計算機技術的發展。從計算機軟體開發方法的角度看,管理資訊系統的開發經歷了“面向過程”、“物件導向”、“面向流程”和“面向服務”四個發展階段。“面向服務”體系結構(Service Oriented Architecture, SOA)是一種進行系統開發的新型體系架構。SOA將應用程式的不同功能單元稱為服務,具體應用程式的功能是由一些鬆耦合並且具有統一介面定義方式的元件(也就是Service)組合構建起來的,因對迅速變化的業務環境具有良好適應力而備受關注。SOA提供了這樣一種框架:一個系統上的軟體可以安全而且可靠地提出請求並獲得其他系統上的計算資源,而不再需要一臺中央伺服器來管理和控制整個端到端的網路。

SOA的出現給傳統的資訊化產業帶來新的概念,不再是各自獨立的架構形式,能夠輕鬆的互相聯絡組合共享資訊。可複用以往的資訊化軟體。基於SOA的協同軟體提供了應用整合功,能夠將ERP、CRM、HR等異構系統的資料整合。

2 主要內容及關鍵技術

2.1 面向服務的企業人事管理系統架構

採用多層分散式架構,將資料庫語句定義在資料訪問層,將外部操作定義在表示層,以實現核心的業務邏輯層,通過JavaScript實現表示層和業務邏輯層的互動和服務抽取,設計符合SOA要求的介面;接著對資料訪問層進行設計,使得系統能在資料庫方面具有可移植性。

2.2 人事管理系統的功能服務設計

圍繞人事管理系統的需求分析,考慮面向服務的實現架構,設計系統的功能模組圖,重點是研究對功能模組的服務化封裝,給出相關的服務描述。

2.3 人事管理系統的服務介面設計

為了實現人事管理系統中功能服務的對外發布,滿足不同業務部門對人事資訊的訪問,需要對各功能服務之間的互動關係進行深入分析,給出互動介面的服務化描述文件。

2.4 人事管理系統的實現

採用Microsoft Visual Studio 2010作為開發工具,以MySQL作為資料庫,管理工具採用SVN。系統實現以後,使用者通過該系統能夠實現對員工、機器裝置、軟體安裝和管理資訊的自動化管理,同時,使用者可以實現資訊的上傳和下載。

3 系統分析與實現

3.1 多角度的需求分析

為了更全面的瞭解企業人事管理系統的需求,擬從資訊操作、業務流程、安全性、執行環境等多個角度進行分析。

從資訊操作的角度分析,系統需要實現員工資訊管理服務,對員工資訊進行增、刪、改、查;實現裝置資訊管理服務,對電腦和電話資訊進行新增、刪除和分配;查詢服務,根據員工的編號、姓名或入職時間進行查詢;實現資料匯入匯出服務,該系統涉及大量的人員資訊,需要對大量的資訊進行匯入和匯出的操作。

從業務流程角度分析,登入系統後,可以對座位、人員、裝置的資訊進行修改,可以檢視基本的資訊,檢視資訊之後可以選擇下載資訊儲存到本地,最後退出系統。人事管理系統的基本業務流程如圖1所示。

從部門業務流程角度分析,公司部門包括人力資源(HR)部門、行政管理(Admin)部門、網路管理(Iteam)部門、裝置管理(Facility)部門等,具體需求分析如下:

(1)人力資源(HR)部門:使用者在All Staff頁面進行操作,可以修改員工資訊。使用者在offer頁面,可以新增員工的資訊,當資訊填好提交以後,如果新增成功,該資訊在頁面就會消失,在Admin頁面中出現新新增的資訊,否則資訊依然保留在原來的頁面。

(2)行政管理(Admin)部門:使用者在create ID頁面進行操作,可以分配員工ID,當ID建立完成之後,該資訊在該頁面消失,該資訊在Account, PC prepare, Phone, Seat四個頁面中出現。

(3)網路管理(Iteam)部門:使用者在PC prepare頁面進行操作,為新職工分配requestID,用於分配機器裝置。分配完成後,該記錄將在PC setup頁面出現,使用者對phone頁面進行操作,對員工分配phone,分配完成後,該記錄進入phone pool頁面,在這個頁面中記錄的是phone的所有資訊,包括phone分配資訊,phone mac, phone number等等。

(4)裝置管理(Facility)部門:使用者對seat頁面進行操作,分配員工位置。

從安全性要求出發,資訊系統資料庫中放置了企業、部門、個人的大量資料,其中許多資料是非常關鍵、機密的,如果系統不能嚴格地保證資料的安全性,就會影響到系統的應用。具體包括兩方面。在系統安全方面,要求對使用者進行身份識別,在使用者許可權管理中,採用使用者角色的方法,設定每個使用者的角色身份,以便能區分每個使用者的職能。對於系統資料安全,要求採用價效比比較高的方案對系統資料迸行處理,以使系統具有容錯、容災功能。

從系統軟硬體環境需求分析,軟體方面,資料庫伺服器採用MySQL資料庫,並使用和JavaScript指令碼等程式設計,管理工具採用SVN。硬體方面,市面上現有的硬體效能完全可以滿足該系統的`要求且價格適中。

3.2 系統架構的設計

本系統擬將整個業務應用劃分為三個層次:表示層(Presentation Layer)、業務邏輯層(Business Logic Layer, BLL)和資料訪問層(Data Access Layer, DAL)。   表示層位於最外層(最上層)。用於顯示資料和接收使用者輸入的資料,為使用者提供一種互動式操作的介面。業務邏輯層是系統架構中體現核心價值的部分,負責系統主要功能和業務邏輯的處理,關注點主要集中在業務規則的制定、業務流程的實現、合法性校驗等與業務需求有關的系統設計。資料訪問層負責資料庫的訪問,可以訪問資料庫系統、二進位制檔案、文字文件或是XML文件。簡單的說法就是實現對資料表的Select、Insert、Update、Delete操作。

三層系統架構是一種弱耦合結構,層與層之間的依賴是向下的,底層對於上層而言是“無知”的,改變上層的設計對於其呼叫的底層而言沒有任何影響。業務邏輯層處於資料訪問層與表示層中間,起到了資料交換中承上啟下的作用。對於資料訪問層而言,它是呼叫者;對於表示層而言,它卻是被呼叫者。通常情況下,客戶端不直接與資料庫進行互動,而是通過COM/DCOM通訊與中間層建立連線,再經由中間層與資料庫進行互動。

3.3 面向服務的功能設計和實現

人事管理系統的功能需求可以分為7個部分:人力資源資訊管理,行政資訊管理,網路資訊管理,裝置資訊管理,軟體資訊管理,資訊查詢,資料匯入匯出。人力資源資訊管理和行政資訊管理,主要的需求是對員工資訊的增刪改查操作;網路資訊管理,主要的需求是對機器裝置資訊的管理;裝置資訊管理,主要的需求是對座位資訊的分配和管理;軟體資訊管理,主要的需求是對軟體安裝和使用情況的管理。

具體的功能服務設計如下:

(1)員工資訊管理服務:人力資源部門對員工資訊進行新增、修改和刪除操作。新增員工資訊,系統自動生成職工編號基本資訊包括姓名、性別、年齡、出生日期、住址、E-mail、入職時間,離職時間等。修改職工資訊,對所選員工的資訊進行修改。刪除職工資訊,從列表中選擇需要刪除的職工資訊,然後進行刪除操作。

(2)裝置資訊管理服務: 網路管理部門對電腦和電話資訊進行新增、刪除以及分配操作,裝置包括電腦和電話。新增資訊,在列表的最後加入新裝置的資訊;刪除資訊,從列表中選擇要刪除的裝置,然後進行刪除操作。分配裝置,在列表中選中待分配裝置分配給相應員工。

(3)資料匯入匯出服務:系統涉及大量的人員資訊,需要對資訊進行匯入和匯出的操作,匯入資料需要將資料從Excel匯入到資料庫中,實現Excel和資料庫的轉換。匯出資料需要將資料庫中的資料匯出成HTML格式,再轉換為Excel格式,實現資料庫和Excel的轉換。每次匯入和匯出都做好資料的備份,有利於資料的還原。

為了實現上述功能服務,本系統中定義了基礎模組(Infrastructure Module)為業務提供一些公用的底層功能。從整體設計層次的粗粒度上來剖析,可以將webserver和appserver看做兩個模組,為了降低模組之間的依賴,將介面的方式定義成服務契約。按照依賴倒置的設計原則,通過抽象將介面和實現相互分離,避免基於實現的依賴。介面是穩定的,而實現則是易變的,基於介面服務呼叫能夠有效的應對實現的變化帶來的影響。

系統的功能模組包括人員資訊管理(UserInfo)、裝置資訊管理(DeviceInfo)和基礎模組(Infrastructure)。各自都包含了多個專案,反映了模組內部的層次劃分。BusinessEntity:提供業務實體型別的定義;DataAccess:資料訪問層,提供對資料庫的訪問;BusinessComponent:業務邏輯層,業務邏輯的實現;rface:定義WCF服務的契約介面;Service:用於定義實現上述契約介面的服務;UserInfo/DeviceInfo:為本模組提供基本的功能,包括對服務的呼叫,也包括必要的邏輯處理;Interface:用於提供給和其他模組的介面。

3.4 介面設計與實現

本系統擬設計的介面如下:

人員資訊介面:人員資訊包含多種型別的資料,需要從中提取出需要的資訊轉換成統一的儲存格式。介面設計思想:資料獲取時介面通過TCP協議完成資料的傳輸,把所要求的入口引數提供給介面,介面通過通訊協議採集到所要的資料並形成XML檔案,然後利用協議轉換器讀取XML檔案。

資料庫通用介面:資料庫通用介面規定了向第三方提供操作訪問資料庫的程式設計介面,其包括許可權判斷、資料存取等功能,在外部系統接入介面的過程中,所有功能由系統接入介面和資料操作介面提供服務。

匯入匯出介面:Visual2010自帶的Excel介面,但是格式和樣式單一,需要重新進行ObjToExcel介面的封裝,實現系統資料,Excel和HTML格式之間的轉換,使用泛化的方式過載原有的介面,Visual自帶的Excel介面不可以傳遞引數,該系統由於不同部門上傳和下載的Excel中資料的格式不一致,所以需要重新封裝原有的Excel介面,將其引數化,同時實現了多個過載,有利於擴充套件和使用。

上述服務介面的定義都在各自模組的rface中,rface 同時部署在webserver和AppServer層中,這樣通過Interface中定義的介面,在兩層服務之間定義了一種契約。