□ 張 杰 □ 田錫天
西北工業(yè)大學(xué)CAPP與制造工程軟件研究所 西安 710072
目前,工裝管理系統(tǒng)往往針對某一企業(yè)的特定需求進行分析、設(shè)計和開發(fā),這樣的系統(tǒng)雖然能較好地滿足目標(biāo)企業(yè)當(dāng)前的業(yè)務(wù)需求,但存在著推廣不便、相對開發(fā)成本較高、系統(tǒng)靈活性和適應(yīng)性差等弱點,很難適應(yīng)因企業(yè)的發(fā)展導(dǎo)致的工裝管理業(yè)務(wù)活動的變化[1]。
針對現(xiàn)有工裝管理系統(tǒng)存在的問題,可配置的工裝管理系統(tǒng)能夠根據(jù)企業(yè)具體應(yīng)用環(huán)境及業(yè)務(wù)需求靈活配置,一方面提高了軟件的靈活性和適應(yīng)性,便于科研成果的推廣應(yīng)用;另一方面大大縮短了軟件開發(fā)周期,為制造企業(yè)提供了一種實施周期短、成本低、可配置能力強的工裝管理解決方案,可有效縮短企業(yè)部署工裝管理系統(tǒng)的周期,降低部署成本,促進企業(yè)的工裝管理信息化水平的提升[2]。
從國內(nèi)外的研究現(xiàn)狀來看,學(xué)者們對信息系統(tǒng)的可配置性進行了多方面的研究,目前還沒有統(tǒng)一完善的解決方案和應(yīng)用系統(tǒng)。大部分可配置信息系統(tǒng)的信息模型可配置程度不高[3],這類系統(tǒng)在信息模型幾乎不變的情況下,也許能夠很好地體現(xiàn)出功能與業(yè)務(wù)流程的柔性變更,能夠?qū)崿F(xiàn)優(yōu)秀的可配置操作。然而一旦信息模型發(fā)生了變化,就不能很好地滿足客戶的需求,也不能很好地體現(xiàn)出系統(tǒng)對于環(huán)境變化的適應(yīng)性。
可配置的工裝管理系統(tǒng)采用了可配置的工裝信息模型建立技術(shù)和基于.NET平臺的組件描述與組件動態(tài)配置技術(shù)來實現(xiàn)系統(tǒng)的可配置[4],該系統(tǒng)通過水平的軟件層次劃分和垂直的功能組件劃分,將系統(tǒng)分解成十字交叉的可配置組件集,然后通過各層的配置策略實現(xiàn)各層的相應(yīng)配置,系統(tǒng)運行時依次解析各層配置信息并加載各層相應(yīng)組件,形成完整的適應(yīng)特定應(yīng)用需求的工裝管理系統(tǒng)。因此,可配置的工裝管理系統(tǒng)必須具備4個方面的內(nèi)容:信息模型可配置、業(yè)務(wù)功能組件可配置、用戶權(quán)限可配置、數(shù)據(jù)源可配置。
目前現(xiàn)有的工裝管理信息模型都是根據(jù)企業(yè)的特定需求提前確定下來的,這就大大限制了工裝管理系統(tǒng)的靈活性和適應(yīng)性[5]。通過信息模型可配置技術(shù)的研究,能夠?qū)崿F(xiàn)工裝信息模型的動態(tài)配置。
可配置工裝管理系統(tǒng)采用面向?qū)ο蟮男畔⒔7椒?,涉及實體、關(guān)系、屬性等,同時運用封裝、繼承、多態(tài)等機制來構(gòu)造信息系統(tǒng),可以一致地描述從工裝需求分析、概念設(shè)計、詳細(xì)設(shè)計到制造、使用等各階段中需要關(guān)注的對象信息,消除了由于數(shù)據(jù)表達差異而引起的不同階段、不同資源的模型分歧,使模型的可重用性和可集成性大大增強。因此,在該基礎(chǔ)上提出了工裝信息統(tǒng)一表示方法來建立工裝信息模型動態(tài)配置機制。
工裝信息統(tǒng)一表示方法是把所有的信息實體都看作某個信息類的一個對象,這個對象由一組帶值的屬性組成,如圖1所示。這樣做的好處是為應(yīng)用程序中的信息提供一種統(tǒng)一的表示和處理方式,把數(shù)據(jù)的變化與應(yīng)用程序的功能變化盡可能地分離,以減少或在一定程度上消除信息模型的變化對程序功能的影響。
圖1 信息實體示例
每一個工裝信息實體都是由一系列的屬性及屬性值構(gòu)成,其中某個屬性是某個信息實體的唯一標(biāo)識(類似數(shù)據(jù)庫中“主鍵”的概念),這樣,這個標(biāo)識屬性就統(tǒng)領(lǐng)著一系列屬性。例如標(biāo)識為GZ00001-01的工裝:工裝(夾具);工裝代號[GZ0001]、工裝編號[01] ……計量單位(套)。
從程序的實現(xiàn)角度考慮,如圖 2所示,EntityInfo可以由用戶構(gòu)造,用戶操作時主要對EntityInfo進行操作。考慮在EntityInfo上可能執(zhí)行操作的全集,也就是透過EntityInfo可以加在數(shù)據(jù)庫上操作的全集。
圖2 信息實體的程序?qū)崿F(xiàn)
由上述信息實體的構(gòu)成可以看出,信息實體是由類和一組相關(guān)屬性及屬性值來表示,所以只要提供類和屬性定義的機制就可以實現(xiàn)信息模型的配置。
事實上,類和屬性的定義就對應(yīng)著信息模型的配置,配置的結(jié)果形成模型信息數(shù)據(jù)庫。然后,可配置的工裝管理系統(tǒng)的信息模型維護模塊自動將其翻譯為數(shù)據(jù)庫的表結(jié)構(gòu),并屏蔽不同數(shù)據(jù)源的差異。信息模型數(shù)據(jù)庫是系統(tǒng)的信息結(jié)構(gòu)的基礎(chǔ),存儲了系統(tǒng)的功能模塊所對應(yīng)的信息模型。
系統(tǒng)業(yè)務(wù)功能組件描述的是可配置工裝管理系統(tǒng)中與具體業(yè)務(wù)邏輯處理有關(guān)的系統(tǒng)組件,在系統(tǒng)的應(yīng)用過程中,不同權(quán)限的用戶往往會用到不同的功能組件集,完成特定的業(yè)務(wù)活動。有了層次結(jié)構(gòu)清晰的組件功能,就可以為不同的用戶配置不同的組件集,這樣既滿足了用戶業(yè)務(wù)活動的需求,又減少了系統(tǒng)的資源占用率,提高了系統(tǒng)的性能。
本文采用XML文件實現(xiàn)業(yè)務(wù)功能組件配置。首先,定義一個組件注冊接口,各個業(yè)務(wù)功能組件都可以接入該接口。然后,在配置文件中記錄該功能組件對應(yīng)程序集的位置,這樣當(dāng)系統(tǒng)主框架啟動時就會檢測配置文件,得到所有已配置組件的程序集位置并逐一加載。可配置的工裝管理系統(tǒng)的啟動及組件加載的完整流程如圖3所示。
圖3 業(yè)務(wù)功能組件加載
系統(tǒng)啟動時,主框架先啟動,然后解析組件配置文件,得到加載的業(yè)務(wù)功能組件的列表,獲取組件對應(yīng)的程序集位置,然后系統(tǒng)動態(tài)加載各業(yè)務(wù)功能組件,并通過約定好的注冊接口 (各個業(yè)務(wù)功能組件都必須實現(xiàn)這個接口)注冊各個業(yè)務(wù)功能組件,主框架根據(jù)組件加載情況動態(tài)構(gòu)建系統(tǒng)界面,形成工裝管理系統(tǒng)主界面。
業(yè)務(wù)功能組件配置文件是完成組件配置的重要部分,它記錄著系統(tǒng)應(yīng)加載的功能組件的清單,包含業(yè)務(wù)功能組件名稱、對應(yīng)程序集名稱以及組件加載的先后順序,該配置文件是一個XML文件。一個業(yè)務(wù)功能組件配置文件的片斷如圖4所示。
圖4 組件配置文件
該配置文件顯示了4個待加載的業(yè)務(wù)功能組件,其中第3~9行為系統(tǒng)主界面的配置信息,包含主界面的窗體標(biāo)題、主界面的寬度、高度、背景圖片等信息。第11~13、15~17、19~21、23~25 行分別對應(yīng)著四個功能組件的配置信息。可以看出4個業(yè)務(wù)功能組件分別為:工裝設(shè)計管理組件,工裝信息管理組件,工裝庫存管理組件,工裝檢驗管理組件。每個組件的DllName屬性記載了該組件對應(yīng)的程序集的路徑及文件名,如果沒有配置程序集的完整路徑,則默認(rèn)該程序集與主框架程序集同路徑。
用戶權(quán)限配置的目的是使不同的用戶擁有不同的功能,從而實現(xiàn)“各司其職”。在很多實際應(yīng)用中,用戶并不是可以訪問的客體信息資源的所有者,訪問控制應(yīng)該基于員工的職務(wù)而不是基于員工在哪個組或誰是信息的所有者,即訪問控制是由各個用戶在部門中所擔(dān)任的角色來確定的。
系統(tǒng)的用戶訪問權(quán)限控制分為兩個方面:一方面是對系統(tǒng)功能模塊訪問的權(quán)限控制,即功能訪問控制;另一方面是對系統(tǒng)管理信息實體訪問權(quán)限的控制,即信息訪問控制。
系統(tǒng)采用為各個功能模塊編碼的方式給各個單獨功能模塊賦予一個唯一的標(biāo)識碼,再通過角色授權(quán)機制給不同的角色賦予不同的功能訪問權(quán)限集。當(dāng)用戶登錄系統(tǒng)時,系統(tǒng)根據(jù)用戶的不同權(quán)限集設(shè)置各個功能模塊的可用性,以達到功能訪問控制的目的。其實現(xiàn)流程為:開發(fā)功能組件,權(quán)限編碼,角色設(shè)置,權(quán)限分派,用戶登錄,權(quán)限驗證。
可配置工裝管理系統(tǒng)其功能訪問控制的用戶權(quán)限管理模型如圖5所示。系統(tǒng)的每個用戶可以有一個或多個角色,而每個角色也可以有一個或多個功能權(quán)限。系統(tǒng)部署完成后,根據(jù)企業(yè)的具體應(yīng)用需要設(shè)置系統(tǒng)角色,然后再依據(jù)用戶所需的功能將角色賦予各用戶。
圖5 功能訪問控制權(quán)限模型
系統(tǒng)采用類授權(quán)、實體授權(quán)與屬性授權(quán)相組合的方式進行信息訪問控制。系統(tǒng)通過類授權(quán)機制為每一角色設(shè)置可以訪問的信息類,相當(dāng)于控制角色可以訪問的數(shù)據(jù)表;通過實體授權(quán)機制為每一角色設(shè)置可訪問的信息實體的標(biāo)識,相當(dāng)于控制角色可以訪問數(shù)據(jù)庫中的哪些記錄行;通過屬性授權(quán)機制為每一角色設(shè)置可以訪問信息實體的哪些屬性,相當(dāng)于控制角色可以訪問數(shù)據(jù)庫中的哪些字段。同時,對于信息類來說,信息訪問權(quán)限又細(xì)分為查詢、添加、修改、刪除四類。
如圖 6所示,通過類授權(quán)、實體授權(quán)和屬性授權(quán)的組合,系統(tǒng)可以靈活配置出滿足任意用戶真實信息訪問需要的信息訪問控制模型。控制用戶只能對指定類型的、指定信息實體的、指定屬性進行指定的操作。
圖6 信息訪問控制模型
如圖7所示,當(dāng)用戶要執(zhí)行某項功能操作某一信息實體時,系統(tǒng)首先檢驗用戶是否有對該實體所屬的信息類的相應(yīng)操作權(quán)限,若用戶沒有該信息類的相應(yīng)操作權(quán)限則拒絕訪問,否則繼續(xù)檢驗其是否具有該信息實體的訪問權(quán)限;若用戶無該實體的訪問權(quán)限則拒絕訪問,否則繼續(xù)檢驗用戶對該信息類的屬性的訪問權(quán)限。然后系統(tǒng)根據(jù)用戶可以操作的信息類的屬性集,完成相應(yīng)的操作動作,若無屬性訪問權(quán)限則拒絕操作。
圖7 信息訪問控制權(quán)限驗證過程
通過功能訪問控制和信息訪問控制的組合,系統(tǒng)可以靈活、精確地控制用戶能夠接觸到的信息,并能控制用戶在這些信息上執(zhí)行的操作。
對系統(tǒng)數(shù)據(jù)源進行配置的目的,一方面使其能夠適應(yīng)不同的開發(fā)和使用環(huán)境,另一方面從信息安全的角度考慮,各個子系統(tǒng)可以使用單獨的數(shù)據(jù)庫,用戶只可以查看自身職責(zé)所在的數(shù)據(jù)記錄[6]。
可配置的工裝管理系統(tǒng)支持不同數(shù)據(jù)源,并可以在不同的數(shù)據(jù)源間平滑切換。系統(tǒng)的模型數(shù)據(jù)庫和模塊信息數(shù)據(jù)庫,都可以在不同的DBMS下實現(xiàn)。在系統(tǒng)開發(fā)過程中,筆者建立了常用數(shù)據(jù)類型與常見DBMS數(shù)據(jù)類型之間的映射關(guān)系,表1為抽象數(shù)據(jù)類型與DBMS的映射關(guān)系,表中的行、列都是可以擴展的。也就是說,隨著系統(tǒng)配置出的信息模型的逐漸豐富以及支持的數(shù)據(jù)源類型的增加,可以有更多的抽象數(shù)據(jù)類型和數(shù)據(jù)源類型加入到系統(tǒng)中來。 有了數(shù)據(jù)類型映射關(guān)系,系統(tǒng)的“模型數(shù)據(jù)庫”中存儲的“模塊信息數(shù)據(jù)庫的數(shù)據(jù)庫結(jié)構(gòu)”就可以很容易轉(zhuǎn)換到不同的DBMS下。同時,底層的數(shù)據(jù)訪問組件也可以根據(jù)數(shù)據(jù)類型的映射關(guān)系,對不同的數(shù)據(jù)源進行更有針對性的數(shù)據(jù)操作。
表1 抽象數(shù)據(jù)類型與DBMS的映射關(guān)系
本文對可配置的工裝管理系統(tǒng)實現(xiàn)組件配置的幾項關(guān)鍵技術(shù)進行了詳細(xì)闡述。組件描述是實現(xiàn)組件配置的基礎(chǔ),通過動態(tài)加載組件的技術(shù),為系統(tǒng)的組件配置的實現(xiàn)奠定了基礎(chǔ)。系統(tǒng)的組件配置主要體現(xiàn)在信息模型的可配置、業(yè)務(wù)功能組件的可配置、用戶權(quán)限的可配置、數(shù)據(jù)源的可配置等方面。通過對各層面的配置技術(shù)及實現(xiàn)方案的詳細(xì)分析和說明,論證了可配置的工裝管理系統(tǒng)的組件配置的可行性。
通過組件配置技術(shù)可以使所開發(fā)的系統(tǒng)能夠在一定范圍內(nèi),通過配置更改適應(yīng)不同企業(yè)的工裝管理需求??朔爽F(xiàn)有的、針對某一企業(yè)的信息管理需求的工裝管理系統(tǒng)存在的適應(yīng)性差、相對開發(fā)成本高等問題,便于科研成果的推廣應(yīng)用。
[1] 王君,陳誠,王文,等.基于三層結(jié)構(gòu)和Web的工裝管理系統(tǒng) [J].機械制造,2002 (10):48-50.
[2] 鞠曉華,張振明,田錫天,等.航空企業(yè)工裝管理系統(tǒng)的研究 [J].機械與電子,2006 (10):11-14.
[3] 魏法杰,周艷,邢軍.航空企業(yè)工裝管理分層計劃方法研究 [J].航空學(xué)報,2001 (1):78-82.
[4] 薛進,孫樹棟,魏平,等.Net框架下四層體系結(jié)構(gòu)的工裝管理系統(tǒng)的設(shè)計與實現(xiàn) [J].制造業(yè)自動化,2004(10):56-59.
[5] 韓潔,王仲奇,康永剛,等.飛機工裝設(shè)計知識庫系統(tǒng)的研究 [J].機械制造,2011 (2):92-95.
[6] Akturk M.S.,Onen S.,Dynamic Lot Sizing and Tool Management in Automated Manufacturing Systems [J],Computers&Operations Research,2002,29(8):1059-1079.