孫瑤 于肇賢 吳杰 田洋 張子恒 趙宇
[摘 要] 按照以黨發一號文件出臺的《關于進一步加強改進三基工作的實施意見》的要求,在新時期,勝利油田要進一步夯實以新提出的《基層單位管理手冊》《基層崗位操作手冊》《員工價值積分管理手冊》為中心的基礎工作,加快編制并推廣應用“三冊”,由此,新的系統構想應運而生。該系統基于B/S模式結構,采用MVC框架下的三層架構,使用迭代開發模式,實現了基層管理和應用集成所需的功能,具有很強的操作性、靈活性和穩定性。
[關鍵詞] 油田;三冊;基層管理;應用集成
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2018. 23. 026
[中圖分類號] F270.7;TP315 [文獻標識碼] A [文章編號] 1673 - 0194(2018)23- 0061- 06
1 概 述
1.1 設計背景
在新時期,以黨發一號文件出臺的《關于進一步加強改進三基工作的實施意見》已成為勝利油田三基工作的新燈塔。其中最大的創新點和最緊要的任務,就是以《基層單位管理手冊》、《基層崗位操作手冊》和《員工價值積分管理手冊》(簡稱“三冊”)為推手,抓實基層、打牢基礎、強化管理。
油田召開的2017年三基工作例會圍繞“三冊”管理、“三標”(標準化崗位、標準化班組、標準化現場)建設、基層幫扶等三基重點工作,進行了階段總結和安排部署。
本系統著眼于簡便、實用、高效,對基層現有管理制度、崗位職責、操作流程、資料報表進行優化整合,實現“一套文本支撐多個體系”,讓制度落地、責任生根。
1.2 建設目標
以手冊內容信息化為核心,以價值積分應用集成為重點,以軟件系統為工具,全面實現融會貫通,達到全面提升基層管理水平的目的。主要包括以下內容:
(1)使職工學習掌握手冊,達到快速宣貫的目的;
(2)使手冊在基層日常生產管理中發揮作用,落地實施;
(3)使信息系統能夠在全油田靈活、統一推廣應用;
(4)使手冊為上層管理提供支撐。
2 需求分析
2.1 功能需求分析
系統包含如下功能需求。
2.1.1 數據庫建設
(1)完成基礎平臺相關數據表及表間邏輯關系的設計;
(2)完成用于《基層單位管理手冊》、《基層崗位操作手冊》和《員工價值積分管理手冊》的維護與管理的相關數據表的設計;
(3)完成價值積分應用集成及與“三冊”數據庫融合的相關數據表及表間邏輯關系的設計。
2.1.2 基礎平臺開發
(1)完成組織機構管理、用戶管理、用戶權限管理、角色管理、崗位管理、單位崗位配置、功能模塊管理、模塊URL管理、訪問日志、流程管理、待辦消息管理等模塊的開發;
(2)實現大數據量和大并發訪問的優化技術。
2.1.3 單位管理手冊與崗位操作手冊
(1)手冊維護:實現手冊的結構化存儲,確保各章節條目的管理與維護流程化運行;
(2)手冊查閱:實現文本快速檢索,支持按章節、按條目的分類索引,可自定義查詢,支持手冊下載等;
(3)手冊管理與應用:實現手冊的集中、分類管理,完善手冊修訂的審核機制,將手冊條款標準與價值積分系統關聯起來;
(4)為不同崗位用戶提供相應操作主頁,包括我的任務、我的崗位等模塊。
2.1.4 價值積分手冊管理與應用
(1)手冊維護:實現手冊的結構化存儲功能,確保各章節條目的管理與維護流程化運行;
(2)按基層崗位用戶、基層管理用戶、管理區、采油廠四個等級實現不同層級的價值積分統計與分析功能;
(3)實現各單位價值積分標準的維護與積分審核功能,支持批量導入數據;
(4)實現價值積分數據的圖形化對比功能,支持導出圖形界面;
(5)實現我的積分、班站積分等個性化工作界面的展示功能,可以清晰了解積分現狀與趨勢;
(6)將價值積分與獎金、效益工資相關聯;
(7)將價值積分與HR系統相關聯。
2.2 非功能需求分析
針對所有管理區,初步估計用戶數量在20 000以上,系統壓力較大。為保證價值積分體系在出現指標變動及計算邏輯調整后數據仍然準確,系統需要滿足以下非功能需求。
(1)系統應有一定的并發處理能力,數據庫并發時,用戶不應等待太長時間;前端頁面并發時,系統也應能夠及時響應用戶的請求,并且不會因為用戶對同一數據的請求與處理導致數據死鎖時間過長或者因為對單例變量的訪問導致數據不一致;
(2)界面簡潔美觀、操作方便,錄入界面接近表格的原始格式;
(3)為保證數據的準確性,系統對用戶錄入的基礎數據應采取無損失的保存方式(即完整保存而不采用四舍五入的保存方式),并且應有自動校驗功能;
(4)系統具有自適應性,能從不同業務版塊的價值積分體系中抽象出標準模型,價值積分標準庫中積分類別與標準可靈活配置。
2.3 資源需求分析
2.3.1 基本配置
客戶端:CPU主頻1 G、內存256 M、硬盤空間20 G、網卡100 M、操作系統Windows XP。
服務器端:CPU主頻4 G、內存2 G、硬盤空間80 G、網卡100 M/1000 M、操作系統Windows 2008服務器版、數據庫Oracle 11g、WEB服務器Tomcat 7.0及更高版本。
2.3.2 推薦配置:
客戶端:CPU主頻2 G、內存1 G、硬盤空間80 G、網卡100 M、操作系統Windows 7。
服務器端:CPU 主頻6 G、內存4 G、硬盤空間800 G以上、網卡100 M/1000 M;操作系統Windows 2010服務器版、數據庫Oracle 11g、WEB服務器Tomcat 7.0及更高版本。
建議數據庫服務器和WEB服務器分別配置。
2.4 需重點解決的問題
(1)系統具有自適應性,能從不同業務版塊的價值積分體系中抽象出標準模型;
(2)價值積分標準庫中積分類別與標準可靈活配置;
(3)用于生成自定義復雜報表的在線實時計算、統計技術;
(4)支持萬級用戶量的大并發技術;
(5)由于不同專業下的手冊存在著明顯的差異性,所以需要做兼容處理,這就需要文檔的結構化分析與處理技術;
(5)全文檢索技術;
(6)文檔內容(表格、圖片等)在線編輯技術,支持多人同時在線編輯的權限控制技術。
3 特殊功能要求
3.1 靈活查詢與圖形展示
“三冊”手冊、積分標準等各種各樣的信息會在系統中逐步累積,所以系統提供了查詢統計模塊,該模塊支持多條件組合查詢、多重排序、查詢結果導出、在線打印等功能,并會根據查詢結果自動展示對應樹形圖和列表,通過點擊圖形列表還可進一步查詢每部分的詳細數據。
3.2 加密的用戶密碼
鑒于目前很多網站的數據庫易被攻擊者獲得用戶名和密碼而直接暴露的情況,本系統采用MD5加密的方式保存用戶名和密碼,MD5是主流的加密算法,具有安全性高且單向的特點,這樣即使攻擊者獲得數據庫訪問權限也不能查看到用戶密碼。
4 系統功能設計
4.1 主要功能設計
4.1.1 平臺公共模塊
按照局級用戶、廠處級用戶、管理區科室用戶、基層班站用戶四個層次,該模塊提供了不同的定制服務,將各層次信息統計并直觀展示出來。
該模塊還提供了用戶崗位職責查詢、積分查詢、積分統計和排名查看、工作任、手冊綜合查詢等功能。
4.1.2 管理/操作手冊模塊
用戶使用該功能模塊對管理手冊和操作手冊進行相關操作。
管理手冊部分包括樹結構工具、基本情況、業務職責、管理制度、業務流程等功能。
操作手冊部分包括崗位描述、操作規程、操作標準、應急處置程序等功能。
4.1.3 價值積分管理與應用
價值積分模塊提供了價值積分手冊維護、積分標準設置、積分明細查詢、價值積分統計等功能。根據價值積分的統計結果可進一步實現積分排名、獎金計算、手機微信查詢等功能。
4.1.4 系統管理模塊
系統管理模塊由功能管理和信息接口兩部分組成。
功能管理主要包括:
(1)組織結構管理。基層的組織結構框架管理、邏輯關系管理等;
(2)崗位管理。崗位與組織結構的邏輯關系、崗位標準化、職責管理等;
(3)員工管理。員工的崗位管理、員工手機綁定等;
(4)其他管理。角色、權限、模塊的配置等。
信息接口功能為其他信息系統提供必要的信息接口,如:生產即時通、基層資料管理系統、生產指揮系統等。
系統設計如圖1所示。
5 系統詳細設計
5.1 總體架構
為保證系統的可擴展性和可維護性,系統架構需要符合“高內聚,低耦合”思想,所以應采用界面層(UI)、業務邏輯層(BLL)、數據訪問層(DAL)分離的架構方式。層是一種弱耦合結構,層與層之間的依賴是向下的,底層對于上層而言是“無知”的,改變上層的設計對于其調用的底層而言沒有任何影響。如果在分層設計時遵循了面向接口設計的思想,那么這種向下的依賴也應該是一種弱依賴關系。因而在不改變接口定義的前提下,理想的分層式架構應該是一個可抽取替換的“抽屜”式架構。三層結構適合群體開發,每名開發人員負責不同的模塊,協同工作使效率倍增、開發風險降低。而且三層架構具有較高的安全性,程序只能通過業務邏輯層來訪問數據層,減少了入口點,能把很多危險的操作屏蔽。
(1)數據訪問層:JDBC + Memcached + Hibernate。
(2)業務邏輯層:Spring。
(3)界面層:JSP + Servlet + Ajax + HTML + JavaScript。
5.2 網絡負載架構
考慮到系統的用戶數量非常龐大,必須從硬件與軟件結合的角度來進行優化。
(1)負載均衡器:Nginx 1.13穩定版,支持最大并發數30 000;
(2)Web服務器:Tomcat 7.0,單機支持最大并發數600,集群部署;
(3)Oracle 11g數據庫:最大進程數2 000(取決于服務器CPU性能與內存容量);
(4)數據讀寫優化:分庫管理、大數據表讀寫分離等。
5.3 技術路線
使用當前較為先進與適合的開發方式,相關技術規范將嚴格遵守中石化和油田的統一要求。
(1)采用分布式、多線程、負載均衡等多種優化技術,提升系統的運行效率;
(2)建立科學的系統架構,各類基礎信息均可由用戶靈活配置,如組織機構、相關公式、任務與崗位、評價方法、評價因素等;
(3)建立與數據中心、生產指揮中心、數據采集源的相關接口,避免采集重復信息,提高平臺拓展性和用戶體驗。
5.4 設計原則
為保證系統的應用效果能夠達到預期,在實際工作中方便人員的使用,降低出錯率,起到輔助管理的作用,使之真正成為基層管理工作中有效的工具,該系統的設計遵循以下原則。
5.4.1 針對性原則
根據油田的管理和操作人員、網絡及計算機軟硬件等條件,有針對性地進行系統設計。
5.4.2 穩定性原則
系統運行應穩定可靠,能夠處理各種異常,不會因操作不當或者非法數據引起系統崩潰。
5.4.3 準確性原則
系統數據的計算應精確可靠,采用合法性校驗與完整性約束機制以保證系統中數據的一致性和準確性。
5.4.4 友好性原則
系統的人機交互圖形界面應易學易用,系統提供多種易于操作的功能,用戶通過簡單培訓甚至無須培訓就能使用。
5.4.5 高效率原則
軟件的效率性一般用程序的執行時間和所占用的硬件資源來度量。在達到功能要求的前提下,系統應能及時響應用戶操作并返回結果。系統響應時間應盡量短且占用硬件資源應盡量少。
5.4.6 擴展性原則
提前考慮用戶業務的發展與需求的變更并適應這種變化,在未來能以較少投資實現系統的升級擴充。
5.4.7 先進性原則
系統開發、運行環境中的元素(如開發技術、體系架構、開發語言、數據庫、組件等)應有生命力,符合現在和未來應用集成和技術發展的要求。
5.5 技術選型
5.5.1 系統結構的選擇
目前軟件系統結構分為B/S與C/S兩種。B/S結構即瀏覽器/服務器結構。在這種結構下,用戶工作界面在瀏覽器中呈現,極少部分事務邏輯在前端實現,主要事務邏輯在服務器端實現。
系統結構的選擇主要從以下幾個方面考慮。
(1)維護和升級。采用B/S架構的系統,所有的維護和升級工作都在服務器上進行,不需要跑遍所有的節點,這樣就算增加新的單位或新的工作節點也不會增加工作量,而且通過多年的信息化網絡建設,各管理區的網絡都能夠和總部連通,這是系統選擇采用B/S結構的重要因素;
(2)運行成本。B/S結構運行成本低而且選擇多。現在Windows系統在計算機中應用十分廣泛,瀏覽器也成為必備配置,對于B/S架構的系統來說,只要將服務器部署完成,那么基本所有的用戶不需要額外投資就可以正常使用;
(3)硬件環境。勝利油田的局域網已建設多年,歷經幾次升級改造,其網絡已經可以覆蓋到所有單位,有良好的通信條件。這些情況非常符合B/S結構的系統對運行環境的要求。
綜合以上因素,決定采用B/S結構來設計系統。
5.5.2 數據庫的選擇
本系統需要的數據量較大,評估關系和計分邏輯復雜,并且要在數據庫上運行存儲過程、觸發器等程序以實現數據校驗、計算、遷移等功能,同時本系統對數據的安全性要求較高,所以數據庫應該采用大型關系型數據庫。目前常用的此類數據庫有Oracle和SQL Server,由于現有已部署好的Oracle服務器,所以本系統采用Oracle數據庫。
5.5.3 開發語言與工具的選擇
(1)軟件開發工具包:JAVA1.6及以上版本;
(2)集成開發環境:Eclipse/MyEclipse/Intellij IDEA;
(3)Web服務器:Tomcat 7.0及以上版本;
(4)設計建模工具:PowerDesigner 13及以上版本;
(5)配置工具:SVN。
5.6 架構詳細設計
5.6.1 數據訪問層(DAL)說明
DAL層采用DAL Interface抽象出數據訪問邏輯,并以DAL Factory作為數據訪問層對象的工廠模塊。對于DAL Interface而言,分別由支持MS-SQL的SQL Server DAL和支持Oracle的Oracle DAL具體實現。而Model模塊則包含了數據實體對象,用于與實際的數據表進行數據交互。在數據訪問層中,完全采用了“面向接口編程”思想。抽象出來的IDAL模塊脫離了與具體數據庫的依賴,從而使得整個數據訪問層利于數據庫遷移。DAL Factory模塊專門管理DAL對象的創建以便于業務邏輯層訪問。SQLServer DAL和Oracle DAL模塊均實現IDAL模塊的接口,其中包含的邏輯就是數據庫的Select、Insert、Update和Delete操作。因為數據庫類型的不同,對數據庫的操作也有所不同,代碼也會因此有所區別。抽象出來的IDAL模塊,除了解除了向下的依賴之外,對于其向上的業務邏輯層同樣僅存在弱依賴關系。具體如圖2所示。
5.6.2 業務邏輯層(BLL)說明
BLL是業務邏輯層的核心模塊,它處于數據訪問層與界面層中間,起到了數據交換中承上啟下的作用,它包含了整個系統的核心業務。在業務邏輯層中,必須通過數據訪問層訪問數據庫。該層對數據訪問層的調用是通過接口模塊IDAL來完成的,與具體的數據訪問邏輯無關,層與層之間的關系是松散耦合的。如果需要修改數據訪問層的具體實現,只要不涉及IDAL的接口定義,
業務邏輯層就不會受到任何影響。具體如圖3所示。
5.6.3 界面層(UI)說明
UI層主要負責界面的展現,其展現的數據均來自BLL模塊而不需要直接訪問數據庫。該層中的組件用于形成報表格式以將獲取的數據展現給用戶,同時獲取用戶對系統的操作指令和錄入的數據并將這些數據提交給BLL模塊進行業務邏輯的處理。
具體如圖4所示。
5.7 數據庫設計要求
(1)數據庫表的每一列都是不可分割的基本數據項,同一列中不能有多個值,即實體中的某個屬性不能重復或有多個值。如果出現重復屬性,則需要定義一個新的實體,新的實體由重復的屬性構成,新實體與原實體之間為一對多的關系。
(2)數據庫表中的每個實例或行必須能被唯一地區分。實體的屬性完全依賴于主關鍵字。所謂完全依賴是指不能存在僅依賴主關鍵字一部分的屬性,如果存在,那么此屬性和主關鍵字的對應部分應分離出來形成一個新實體,新實體與原實體之間為一對多的關系。
(3)數據庫表中盡量不包含已在其他表中存在的非主關鍵字信息。
(4)數據庫的兩個實體間不得存在多對多的關系,如果必須存在,則應轉化為兩個一對多的關系。
(5)盡量將數據庫表分割成盡可能小的實體,排除表中所有的冗余。
5.8 編碼設計要求
(1)變量、類、方法、屬性的命名應規范。
(2)代碼必須將功能完整描述。
(3)采用分層設計,界面層、業務邏輯層、數據訪問層各層分開。
(4)對所有程序運行中可能出現的異常要充分考慮并有相應的處理方法,將導致異常的原因反饋給用戶。
(5)封裝的類的功能盡量單一,避免出現大而全的類。
(6)代碼的注釋必須詳細,尤其是與業務相關的代碼部分。
(7)通用類與業務類分開組織與封裝。
5.9 界面設計要求
界面層是軟件與用戶交互最直接的層,界面的好壞決定用戶對軟件的第一印象,而且設計良好的界面能夠引導用戶完成相應的操作,起到向導的作用。頁面設計通過CSS語言來規范各頁面要素,同時有以下幾點約定。
(1)頁面在1024×768分辨率下設計。外圍表的寬度必須指定,內嵌表格可以用百分比方式指定寬度。在表頭行為各欄指定寬度的同時,必須有一個欄不用指定寬度,這樣瀏覽器能自動調節其寬度使表格整體無變形。
(2)按鈕一律由CSS語言中的TD標簽來定義。按鈕應單獨放入一個表以避免受宿主表某些格式的限制而導致變形。
(3)彈出窗口大小合適并居中以避免在窗體上出現較大的空白無用區域。
(4)菜單欄收起時,內容部分無變形。
(5)利用Frame屬性將界面中相同或相近的功能框起來。
(6)完成同一功能或任務的元素應放在集中位置以減少鼠標移動的距離。
(7)同一界面上的控件數不要超過10個。
(8)界面空間較小時使用下拉框代替選項框。
(9)根據界面內容的專業度合理選擇專業術語和日常詞匯。
6 安全設計
如何保證系統的安全性是一個重要的問題,其最大挑戰之一就是總可能有完全不符合所有已知模式的新型安全缺陷出現。隨著計算機技術的發展,會出現許多新的軟件攻擊手段,這就需要運用合理的開發策略與技術手段進行安全設計以保護系統免受各種攻擊。
6.1 數據庫權限設置
系統運行時連接Oracle數據庫的用戶不具有建立和刪除表、存儲過程、觸發器的權限,防止注入攻擊時被惡意刪除表和其他數據庫對象。
6.2 使用參數化語句
系統在對數據庫進行讀寫操作時,通過參數來傳遞變量,即用戶的輸入內容絕對不能夠直接被嵌入到SQL語句中,這樣可以有效地防止SQL注入式攻擊。
6.3 對用戶輸入內容進行驗證
在用戶界面中,所有相關控件應能控制用戶的輸入內容,對于不合法的內容,系統應能自動屏蔽。如驗證輸入的數據類型是否合法、字段長度是否符合數據庫的字段定義等。
6.4 系統架構分層
系統使用三層架構,具有較高的安全性,程序只能通過業務邏輯層來訪問數據層,這樣減少了入口點,能把很多危險的操作屏蔽。
6.5 使用MD5方式對用戶密碼進行加密
鑒于目前很多網站的數據庫易被攻擊者獲得用戶名和密碼而直接暴露的情況,本系統采用MD5加密的方式保存用戶名和密碼,MD5是主流的加密算法,具有安全性高且單向的特點,這樣即使攻擊者獲得數據庫訪問權限也不能查看到用戶密碼。
6.6 用戶權限控制
本系統采用二進制數據轉換為十進制數據的方式保存用戶權限,只有合法的用戶才能訪問頁面,對于在某個頁面輸入地址后,系統會對用戶進行權限檢查以判斷是否合法,如果不合法則直接轉到錯誤頁面,這樣就保證了系統頁面的安全性。
7 預期建設成果
本次油田基層管理與應用集成系統的建設著眼于簡便、實用、高效,對基層現有管理制度、崗位職責、操作流程、資料報表進行優化整合,實現“一套文本支撐多個體系”。同時,為價值積分的量化提供了標準與依據。從而提升了工作效率、推進了資源共享、穩固了減負成果。
(1)通過手冊內容信息化,將崗位職責、工作要素、行為標準等信息結構化存儲,以滿足不同崗位的需要(PC端與移動端)。建立數據采集模塊,按照手冊的要求實現基層數據的統一采集,自動生成報表。
(2)建立積分模型,將崗位工作內容與考核標準關聯起來,做到有標準可依,實現不同崗位的積分計算和統計功能,將獎金、效益工資與積分關聯起來,實現與HR系統的聯動。
(3)在遵循中石化和油田統一標準的前提下,實現基層各單位應用系統的集成功能,達到與辦公平臺、一體化平臺、生產指揮平臺、經營管理平臺、專業應用平臺等系統集成的技術條件。建立專題分析模塊,結合手冊實現相關的統計、分析、考核等功能。
主要參考文獻
[1][英]Jeremy Keith,[加]Jeffrey Sambells.JavaScript DOM 編程藝術[M].第2版.楊濤,譯.北京:人民郵電出版社,2011.
[2]孫衛琴.Tomcat與Java Web開發技術詳解[M].第2版.北京:電子工業出版社,2009.
[3]中國石油化工集團公司勝利石油管理局.關于進一步加強改進三基工作的實施意見[Z].2016.