當前位置:學問君>人在職場>職業培訓>

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

學問君 人氣:1.9W

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中定義的接口,在兩層服務之間定義了一種契約。