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