沈杰
(上海核工程研究設(shè)計(jì)院有限公司,上海 200233)
SmartPlant P&ID軟件是鷹圖公司開發(fā)的二維工藝流程圖設(shè)計(jì)軟件,它被廣泛應(yīng)用于能源與化工行業(yè),通過多專業(yè)協(xié)同配合完成工廠設(shè)計(jì)任務(wù),能夠有效提高設(shè)計(jì)效率和設(shè)計(jì)質(zhì)量。與傳統(tǒng)的CAD軟件相比,這個(gè)軟件不僅能繪制出美觀的圖面,而且每個(gè)物項(xiàng)上都存儲(chǔ)著大量的數(shù)據(jù)。利用這些存儲(chǔ)在數(shù)據(jù)庫中的大量信息,設(shè)計(jì)人員可以方便地抽取各種報(bào)表,大大提高了設(shè)計(jì)效率和準(zhǔn)確度。
與其他的SmartPlant系列軟件一致,SmartPlant P&ID軟件對(duì)項(xiàng)目的創(chuàng)建和管理工作全部移交到SmartPlant Engineering Manager軟件中完成。作為一款將SmartPlant系列進(jìn)行集中管理的項(xiàng)目管理工具,SmartPlant Engineering Manager為用戶提供了自由建立站點(diǎn)與工廠結(jié)構(gòu),自定義對(duì)應(yīng)數(shù)據(jù)庫、備份數(shù)據(jù),定義用戶與權(quán)限組等功能,從而實(shí)現(xiàn)用戶對(duì)整個(gè)工廠的自由定制和項(xiàng)目管理。
核電項(xiàng)目的設(shè)計(jì)涉及到多專業(yè)的協(xié)同,所以,整個(gè)電站的設(shè)計(jì)都是按階段、按區(qū)域交由不同專業(yè)的設(shè)計(jì)人員來設(shè)計(jì)。因此,為了便于項(xiàng)目工作的順利開展和進(jìn)度控制,經(jīng)常需要對(duì)已完成的區(qū)域或者圖紙進(jìn)行權(quán)限的控制和凍結(jié),從而保證這些圖紙的準(zhǔn)確性。
SmartPlant Engineering Manager軟件對(duì)于角色權(quán)限的定義,都是以工廠為單位設(shè)置的,對(duì)于工廠下的不同區(qū)域乃至不同圖紙,無法采用不同的權(quán)限設(shè)置,這就導(dǎo)致了軟件設(shè)置與項(xiàng)目實(shí)際要求之間的矛盾。
基于上述考慮,為了滿足項(xiàng)目管理的實(shí)際需求,筆者發(fā)明了1種SmartPlant P&ID軟件的精細(xì)化權(quán)限控制方法,通過控制站點(diǎn)文件夾下圖紙的訪問權(quán)限來實(shí)現(xiàn)對(duì)每張圖紙的精細(xì)化權(quán)限管理,大大提高了管理精度和工程質(zhì)量。
權(quán)限控制的基礎(chǔ)就是控制用戶對(duì)圖紙的操作,確保只有被允許的用戶才擁有對(duì)圖紙的編輯權(quán)。對(duì)于SmartPlant P&ID軟件,通過對(duì)SmartPlant Engineering Manager軟件的設(shè)置,所有的圖紙都會(huì)被放置在用戶建立站點(diǎn)時(shí)定義的站點(diǎn)服務(wù)器的特定路徑下,因此,用戶繪制編輯圖紙的過程即是對(duì)于服務(wù)器上圖紙文件的編輯過程。
圖紙的精細(xì)化權(quán)限控制就是指針對(duì)不同的設(shè)計(jì)圖紙,可以有完全不同的可操作用戶組,能夠最精確地控制每個(gè)設(shè)計(jì)人員的設(shè)計(jì)范圍,防止設(shè)計(jì)人員之間存在誤操作從而導(dǎo)致設(shè)計(jì)錯(cuò)誤的發(fā)生,同時(shí),也便于階段性設(shè)計(jì)完成后對(duì)于圖紙的保護(hù)。由于鷹圖公司提供的SmartPlant Engineering Manager軟件無法實(shí)現(xiàn)對(duì)圖紙的精細(xì)化權(quán)限控制,所以,采取控制對(duì)文件的訪問權(quán)限的方法實(shí)現(xiàn)對(duì)不同圖紙的精細(xì)化權(quán)限控制。文件的用戶權(quán)限控制如圖1所示。
由于SmartPlant Engineering Manager無法實(shí)現(xiàn)對(duì)工廠下每張圖紙的精細(xì)化權(quán)限設(shè)置,因此,必須繞開SmartPlant Engineering Manager軟件,另辟蹊徑,實(shí)現(xiàn)對(duì)每張圖紙的訪問權(quán)限的精細(xì)化權(quán)限控制。
整個(gè)P&ID軟件采用C/S模式,所有的站點(diǎn)參考文件和圖紙都存儲(chǔ)在服務(wù)器上。用戶編輯圖紙的過程等同于對(duì)服務(wù)器上的文件進(jìn)行操作,因此,對(duì)于圖紙的控制可以簡化為對(duì)共享文件訪問權(quán)限的控制。
要對(duì)SmartPlant P&ID文件進(jìn)行操作,必須先要對(duì)整個(gè)電站擁有操作權(quán)限,這個(gè)用戶組在SmartPlant Engineering Manager中設(shè)置。除了這個(gè)用戶組內(nèi)的用戶以外,就算在共享文件中賦予權(quán)限,也無法對(duì)P&ID圖紙進(jìn)行操作。因此,在權(quán)限管理過程中,先需要讀取整個(gè)電站下所有對(duì)圖紙擁有操作權(quán)限的用戶。讀取完畢后,再對(duì)這些用戶進(jìn)行編輯,確定將需要的用戶加入對(duì)應(yīng)圖紙的可編輯權(quán)限組中,從而完成對(duì)不同圖紙的差異化權(quán)限控制,如圖2所示。
圖1 文件的用戶權(quán)限控制
圖2 用戶權(quán)限關(guān)系
2.3.1 縮小圖紙使用人員范圍,保障圖紙安全
在1張P&ID圖紙被用戶編輯的情況下,其他用戶對(duì)這張圖紙只有只讀權(quán)限,只有等到編輯中的用戶釋放編輯權(quán)限后才能有下一位用戶編輯。而P&ID軟件并未提供當(dāng)前編輯用戶查詢功能,因此,一旦出現(xiàn)這種情況,只能手動(dòng)逐個(gè)排查所有可能進(jìn)行圖紙編輯的用戶。
在當(dāng)前粗顆粒度的權(quán)限管理的情況下,排查的范圍將會(huì)是整個(gè)項(xiàng)目的權(quán)限組,必然會(huì)浪費(fèi)大量的時(shí)間。而精細(xì)化的權(quán)限管理使得每張圖紙的權(quán)限用戶縮小在一個(gè)可控的范圍,便于用戶排查,節(jié)省大量的時(shí)間。
當(dāng)所有人員對(duì)所有圖紙都有一樣的控制權(quán)限時(shí),容易因?yàn)檎`操作而改動(dòng)本來不屬于自己的圖紙,影響圖紙的準(zhǔn)確性。如果能夠?yàn)槊繌垐D紙?jiān)O(shè)置使用人員,則可以大大減少每張圖紙的使用人數(shù),從而更好地保證圖紙的安全。
2.3.2 方便凍結(jié)項(xiàng)目區(qū)域與圖紙
圖紙的精細(xì)化權(quán)限管理帶來的另一個(gè)好處就是能夠通過對(duì)不同區(qū)域和圖紙?jiān)O(shè)定不同的用戶,來完成對(duì)整個(gè)區(qū)域或者單張圖紙的凍結(jié)。
凍結(jié)區(qū)域和圖紙的作用在于保護(hù)當(dāng)前圖紙的狀態(tài),避免誤操作造成圖紙內(nèi)容的修改。凍結(jié)的方法為將這些區(qū)域和圖紙的可操作人員列表清空。
SmartPlant P&ID的所有站點(diǎn)的工廠結(jié)構(gòu)和圖紙信息都分布在站點(diǎn)數(shù)據(jù)庫下的各個(gè)schema下的table中。詳細(xì)的對(duì)應(yīng)關(guān)系在此不一一贅述,具體可參考SmartPlant P&ID軟件相關(guān)參考文檔。
這里使用Windows自帶的訪問控制機(jī)制來實(shí)現(xiàn)對(duì)文件訪問權(quán)限組控制,整個(gè)過程如圖3所示。
圖3 修改訪問權(quán)限組
修改文件訪問權(quán)限的關(guān)鍵就是對(duì)DACL的修改,通過修改相應(yīng)的組成來完成對(duì)訪問權(quán)限組的修改。其中,DACL為自主訪問控制列表,其內(nèi)部構(gòu)造如圖4所示。
圖4 DACL內(nèi)部結(jié)構(gòu)
權(quán)限控制組記錄最好的方法就是能夠直接讀取文件的DACL并且反饋到程序界面中,不過,在實(shí)際使用中,使用這種方法相當(dāng)煩瑣,代碼冗長。因此,我們單獨(dú)在數(shù)據(jù)庫中對(duì)所有文件的權(quán)限進(jìn)行記錄和跟蹤,建立2張表單,1張表單記錄所有對(duì)權(quán)限組的修改,1張表單則單純記錄每張圖紙有哪些用戶具有編輯權(quán)限。
程序開發(fā)使用C#作為開發(fā)語言,將Microsoft Visual Studio 2010作為開發(fā)環(huán)境。軟件能夠通過讀取配置文件獲得與SmartPlant P&ID Drawing Manager一樣的控制界面,然后針對(duì)每張圖紙?jiān)O(shè)置能夠進(jìn)行操作的用戶組,從而實(shí)現(xiàn)對(duì)每張圖紙的精細(xì)化權(quán)限管理。
如圖5所示,軟件開始需要用戶選定配置文件來完成站點(diǎn)的裝載工作。為了方便用戶使用,軟件設(shè)計(jì)成能夠讀取SmartPlant Engineering Manager生成的ini配置文件的形式。采取讀取配置文件的方法能夠最大限度地提升軟件的適用性,只要是通過SmartPlant Engineering Manager創(chuàng)建的P&ID項(xiàng)目,都能通過此軟件進(jìn)行權(quán)限控制。
圖5 初始化配置界面
圖6 項(xiàng)目站點(diǎn)信息
圖7 圖紙權(quán)限讀取
裝載ini配置文件,軟件會(huì)自動(dòng)從站點(diǎn)的數(shù)據(jù)庫中對(duì)應(yīng)的schema和table中獲取整個(gè)站點(diǎn)下所有工廠以及對(duì)應(yīng)工廠下所有的區(qū)域和圖紙以及其對(duì)應(yīng)的所有信息,包括圖紙的路徑,如圖6所示。
4.2.1 讀取每張圖紙的權(quán)限組
如圖7所示,當(dāng)前選中圖紙中可以使用的設(shè)計(jì)人員為2人,具體的實(shí)現(xiàn)方法為直接讀取記錄表單中的鍵值來獲取對(duì)應(yīng)的用戶。
4.2.2 增減圖紙的控制人員
如圖8所示,軟件能夠自動(dòng)讀取對(duì)站點(diǎn)具有編輯權(quán)限的所有用戶,管理員可以從中找出與圖紙有對(duì)應(yīng)關(guān)系的人員添加到對(duì)應(yīng)圖紙的完全控制權(quán)限組中,當(dāng)然也可以刪除一些不再使用該圖紙的用戶。左側(cè)彈出的對(duì)話框中的用戶列表為在SmartPlant Engineering Manager中定義的所有對(duì)電廠擁有編輯權(quán)限的用戶列表。
圖8 新增權(quán)限組成員
本文從實(shí)際項(xiàng)目管理需求出發(fā),探討了當(dāng)前SmartPlant P&ID軟件自帶的粗顆粒度的用戶權(quán)限管理方式與項(xiàng)目管理需求上日益增長的精細(xì)化管理之間的矛盾,并針對(duì)這一矛盾給出了可行的解決方案——使用文件訪問權(quán)限組控制來實(shí)現(xiàn)權(quán)限精細(xì)化管理的技術(shù)方案。最后,采用C#的開發(fā)語言編寫了權(quán)限管理軟件落實(shí)提出的技術(shù)方案,證明整個(gè)技術(shù)方案的可行性。使用這個(gè)方法有效克服了SmartPlant P&ID軟件在用戶權(quán)限管理上的不足,大幅提高了項(xiàng)目的管理精度和工程質(zhì)量。
[1]Intergraph Corporation.SmartPlant P&ID Programmer's Guide[EB/CD].上海:鷹圖軟件技術(shù)(青島)有限公司上海分公司,2009.