定義
SCM(Software Configuration Management,軟體配置管理)是一種標識、組織和控制修改的技術。它套用於整個軟體生存期。在軟體建立時會經常產生變更,而變更加劇了項目中軟體人員之間的混亂。之所以產生混亂,是因為在進行變更前沒有仔細分析,或沒有進行變更控制。因為變更在任何時刻都可能發生,因此軟體配置管理活動的目標就是為了標識變更,控制變更,確保變更正確地實現,向其他有關的人報告變更。軟體配置管理是一組追蹤和控制活動,它們開始於軟體開發項目開始之時,結束於軟體被淘汰之時。從某種角度講,SCM是一種標識、組織和控制修改的技術,目的是使錯誤降為最小並最有效地提高生產效率。
軟體配置管理(Software Configuration Management,SCM)作為CMM2級的一個關鍵域(Key Practice Area,KPA),在整個軟體的開發活動中占有很重要的位置。正如Pressman所說的:“軟體配置管理是貫穿於整個軟體過程中的保護性活動,它被設計來(1)標識變化,(2)控制變化,(3)保證變化被適當的發現,以及(4)向其他可能有興趣的人員報告變化。” 所以,我們必須為軟體配置管理活動設計一個能夠融合於現有的軟體開發流程的管理過程,甚至直接以這個軟體配置管理過程為框架,來再造組織的軟體開發流程。
原因
如果沒有軟體配置管理,最大的麻煩是工作成果無法回溯。為了避免成果被覆蓋,包括我自己在內的很多人早期採用手工管理版本的方式,例如當一個新版本產生時用當時的日期來命名資料夾,然後再複製一下以後的修改在複製的資料夾內進行,這樣上一個版本就被保存下來了,周而復始不同的版本不會被覆蓋。雖然這種方式可以從某種程度上解決版本的回溯問題,但他存在的缺點是顯而易見的:第一點如果保留結果過於頻繁,將會導致產生大量的有著重複內容的資料夾,龐大的物理空間,管理起來很麻煩;如果保留舊版本的時間間隔太長,可能產生某些有用的老程式無法回溯。第二容易產生版本的混亂,如果是團隊開發軟體,這種簡單的方法更難解決問題的本質了。
關鍵
配置管理的方法是成熟的,而且相應的軟體工具也是成熟的,基本上不存在看不懂、不會用的問題。配置管理的執行效果如何,完全是事在人為。妨礙配置管理的主要問題是人們嫌麻煩和僥倖心理作怪。
在沒出亂子的情況下,執行版本控制看起來有些麻煩。每次修改工作的時候總是要Get Latest Version,接著Check Out,修改完後又要Check In,多做了三步。其實這三步加起來也就十幾秒鐘,而且不費腦子,根本沒有添加多少麻煩,僅僅是個人感覺不爽而以。然而不執行版本控制的話,萬一發生工作成果被覆蓋或丟失等問題,麻煩就大了。
規範
軟體研發和管理過程中會產生許許多多的工作成果,例如文檔、程式和數據等,他們都應當妥善地保管起來,以便查閱和修改。如果把所有檔案一股腦的塞進計算機里,那么使用起來很麻煩。
凡是納入配置管理範疇的工作成果統稱為配置項,配置項主要有兩大類:一類是屬於產品的組成部分,例如需求文檔、設計文檔、原始碼、測試用例等等;另一類是在管理過程中產生的文檔,例如各種計畫、報告等。
每個配置項的主要屬性有名稱、標識符、檔案狀態、版本、作者、日期等。配置項及歷史紀錄反映了軟體的演化過程。
基線由一組配置項組成,這些配置項構成了一個相對穩定的邏輯實體。基線中的配置項被凍結後,不能再被任何人隨意更改。基線通常對應於開發過程中的里程碑。通常將交付該客戶的基線稱為一個Release,為內部開發用的基線稱為一個Build。
版本控制的目的是按照一定的規則保存配置項的所有版本,避免發生版本丟失或混亂等現象。配置項的狀態有三種:“草稿”、“正式發布”和“正在修改” 。
配置項的版本號與配置項的狀態緊密相關:
(1) 處於“草稿”狀態的配置項的版本號格式為:0.YZ
(2) 處於“正式發布”狀態的配置項的版本號格式為:X.Y。
一般只是Y值遞增,當Y值到達一定的範圍時X值才發生變化。
(3) 處於“正在修改”狀態的配置項的版本號格式為:X.YZ。
一般只增大Z值,當配置項修改完畢,狀態重新變成“正式發布”時,將Z值變為0,增加X.Y值。
發展史
配置管理的概念源於美國空軍,為了規範設備的設計與製造,美國空軍1962年制定並發布了第一個配置管理的標準“AFSCM375-1,CM During the Development & Acquisition Phases”。
而軟體配置管理概念的提出則在20世紀60年代末70年代初。當時加利福利亞大學聖巴巴拉分校的Leon Presser教授在承擔美國海軍的航空發動機研製契約期間,撰寫了一篇名為“Change and Configuration Control”的論文,提出控制變更和配置的概念,這篇論文同時也是他在管理該項目(這個過程進行過近一千四百萬次修改)的一個經驗總結。
Leon Presser在1975年成立了一家名為SoftTool的公司,開發了配置管理工具:Change and Configuration Control(CCC),這是最早的配置管理工具之一。
隨著軟體工程的發展,軟體配置管理越來越成熟,從最初的僅僅實現版本控制,發展到現在的提供工作空間管理、並行開發支持、過程管理、許可權控制、變更管理等一系列全面的管理能力,已經形成了一個完整的理論體系。同時在軟體配置管理的工具方面,也出現了大批的產品,如:最著名的ClearCase;開源產品CVS;入門級工具Microsoft VSS;新秀Hansky Firefly。
在國外已經有30多年歷史的軟體配置管理,但在國內的發展卻是在21世紀這幾年的事。但是通過專家們的介紹,我們感受到,國內的軟體配置管理已經取得了迅速發展,並得到了軟體公司的普遍認可。
基本目標
軟體配置管理是在貫穿整個軟體生命周期中建立和維護項目產品的完整性。它的基本目標包括:
目標 1: 軟體配置管理的各項工作是有計畫進行的。
目標 2: 被選擇的項目產品得到識別,控制並且可以被相關人員獲取。
目標 3: 已識別出的項目產品的更改得到控制。
目標 4: 使相關組別和個人及時了解軟體基準的狀態和內容。
方針
為了達到上述目標, 如下的方針應該得到貫徹執行:
技術部門經理和具體項目主管應該使用和遵循XSSC的OSSP中所描述的軟體配置管理的工作過程。
施行軟體配置管理的職責應被明確分配。相關人員得到軟體配置管理方面的培訓。
技術部門經理和具體項目主管應該明確他們在相關項目中所擔負的軟體配置管理方面的責任。
軟體配置管理工作應該享有足夠的資金支持,這需要在客戶,技術部門經理和具體項目主管之間協商。
軟體配置管理應該實施於如下產品:對外交付的軟體產品,以及那些被選定的在項目中使用的支持類工具等。
軟體配置的整體性在整個項目生命周期中得到控制。
軟體質量保證人員應該定期審核各類軟體基準以及軟體配置管理工作。
使軟體基準的狀態和內容能夠及時通知給相關組別和個人。
工具
現在常用的軟體配置管理工具主要分為三個級別:
Rational ClearCase,CA CCC/Havest
Merant PVCS
Microsoft VSS,CVS
角色職責
對於任何一個管理流程來說,保證該流程正常運轉的前提條件就是要有明確的角色、職責和許可權的定義。特別是在引入了軟體配置管理的工具之後,比較理想的狀態就是:組織內的所有人員按照不同的角色的要求、根據系統賦予的許可權來執行相應的動作。因此,在本文所介紹的這個軟體配置管理過程中主要涉及下列的角色和分工:
項目經理(Project Manager,PM):
項目經理是整個軟體研發活動的負責人,他根據軟體配置控制委員會的建議批准配置管理的各項活動並控制它們的進程。其具體職責為以下幾項:
制定和修改項目的組織結構和配置管理策略;批准、發布配置管理計畫;決定項目起始基線和開發里程碑;接受並審閱配置控制委員會的報告。
配置控制委員會(Configuration Control Board,CCB):
負責指導和控制配置管理的各項具體活動的進行,為項目經理的決策提供建議。其具體職責為以下幾項:
定製開發子系統;定製訪問控制;制定常用策略;建立、更改基線的設定,審核變更申請;根據配置管理員的報告決定相應的對策。
配置管理員(Configuration Management Officer,CMO):
根據配置管理計畫執行各項管理任務,定期向CCB提交報告,並列席CCB的例會。其具體職責為以下幾項:
軟體配置管理工具的日常管理與維護;提交配置管理計畫;各配置項的管理與維護;執行版本控制和變更控制方案;完成配置審計並提交報告;對開發人員進行相關的培訓;識別軟體開發過程中存在的問題並擬就解決方案。
系統集成員(System Integration Officer,SIO):
系統集成員負責生成和管理項目的內部和外部發布版本,其具體職責為以下幾項:
集成修改;構建系統;完成對版本的日常維護;建立外部發布版本。
開發人員(Developer,DEV):
開發人員的職責就是根據組織內確定的軟體配置管理計畫和相關規定,按照軟體配置管理工具的使用模型來完成開發任務。
過程描述
一個軟體研發項目一般可以劃分為三個階段:計畫階段、開發階段和維護階段。然而從軟體配置管理的角度來看,後兩個階段所涉及的活動是一致,所以就把它們合二為一,成為“項目開發和維護”階段。
項目計畫階段
一個項目設立之初PM首先需要制定整個項目的計畫,它是項目研發工作的基礎。在有了總體研發計畫之後,軟體配置管理的活動就可以展開了,因為如果不在項目開始之初制定軟體配置管理計畫,那么軟體配置管理的許多關鍵活動就無法及時有效的進行,而它的直接後果就是造成了項目開發狀況的混亂並注定軟體配置管理活動成為一種“救火”的行為。所以及時制定一份軟體配置管理計畫在一定程度上是項目成功的重要保證。
在軟體配置管理計畫的制定過程中,它的主要流程應該是這樣的:
CCB根據項目的開發計畫確定各個裡程碑和開發策略;
CMO根據CCB的規劃,制定詳細的配置管理計畫,交CCB審核;
CCB通過配置管理計畫後交項目經理批准,發布實施。
項目開發維護階段
這一階段時項目研發的主要階段。在這一階段中,軟體配置管理活動主要分為三個層面:(1)主要由CMO完成的管理和維護工作;(2)由SIO和DEV具體執行軟體配置管理策略;(3)變更流程。這三個層面是彼此之間既獨立又互相聯繫的有機的整體。
在這個軟體配置管理過程中,它的核心流程應該是這樣的:(1)CCB設定研發活動的初始基線;(2)CMO根據軟體配置管理規劃設立配置庫和工作空間,為執行軟體配置管理就阿做好準備;(3)開發人員按照統一的軟體配置管理策略,根據獲得的授權的資源進行項目的研發工作;(4)SIO按照項目的進度集成組內開發人員的工作成果,並構建系統,推進版本的演進;(5)CCB根據項目的進展情況,審核各種變更請求,並適時的劃定新的基線,保證開發和維護工作有序的進行。
這個流程就是如此循環往復,直到項目的結束。
當然,在上述的核心過程之外,還涉及其他一些相關的活動和操作流程,下面按不同的角色分工予以列出:
各開發人員按照項目經理髮布的開發策略或模型進行工作;
SIO負責將各分項目的工作成果歸併至集成分支,供測試或發布;
SIO可向CCB提出設立基線的要求,經批准後由CMO執行;
CMO定期向項目經理和CCB提交審計報告,並在CCB例會中報告項目在軟體過程中可能存在的問題和改進方案;
在基線生效後,一切對基線和基線之前的開發成果的變更必須經CCB的批准;
CCB定期舉行例會,根據成員所掌握的情況、CMO的報告和開發人員的請求,對配置管理計畫作出修改,並向項目經理負責。
關鍵活動
配置項識別
Pressman對於配置項(Software Configuration Item,SCI)識別給出了一個比較簡單的定義:“軟體過程的輸出信息可以分為三個主要類別:(1)電腦程式(原始碼和可執行程式),(2)描述電腦程式的文檔(針對技術開發者和用戶),以及(3)數據(包含在程式內部或外部)。這些項包含了所有在軟體過程中產生的信息,總稱為軟體配置項。”
由此可見,配置項的識別是配置管理活動的基礎,也是制定配置管理計畫的重要內容。
軟體配置項分類軟體的開發過程是一個不斷變化著的過程,為了在不嚴重阻礙合理變化的情況下來控制變化,軟體配置管理引入了“基線(Base Line)”這一概念。IEEE對基線的定義是這樣的:“已經正式通過複審核批准的某規約或產品,它因此可作為進一步開發的基礎,並且只能通過正式的變化控制過程改變。”
所以,根據這個定義,我們在軟體的開發流程中把所有需加以控制的配置項分為基線配置項和非基線配置項兩類。
配置項的標識和控制
所有配置項都都應按照相關規定統一編號,按照相應的模板生成,並在文檔中的規定章節(部分)記錄對象的標識信息。在引入軟體配置管理工具進行管理後,這些配置項都應以一定的目錄結構保存在配置庫中。
所有配置項的操作許可權應由CMO嚴格管理,基本原則是:基線配置項向軟體開發人員開放讀取得許可權;非基線配置項向PM、CCB及相關人員開放。
工作空間管理
在引入了軟體配置管理工具之後,所有開發人員都會被要求把工作成果存放到由軟體配置管理工具所管理的配置庫中去,或是直接工作在軟體配置管理工具提供的環境之下。所以為了讓每個開發人員和各個開發團隊能更好的分工合作,同時又互不干擾,對工作空間的管理和維護也成為了軟體配置管理的一個重要的活動。
一般來說,比較理想的情況是把整個配置庫視為一個統一的工作空間,然後再根據需要把它劃分為個人(私有)、團隊(集成)和全組(公共)這三類工作空間(分支),從而更好的支持將來可能出現的並行開發的需求。
每個開發人員按照任務的要求,在不同的開發階段,工作在不同的工作空間上。當然,由於選用的軟體配置管理工具的不同,在對於工作空間的配置和維護的實現上有比較大的差異,但對於CMO來說,這些工作是他的重要職責,他必須根據各開發階段的實際情況來配置工作空間並定製相應的版本選取規則,來保證開發活動的正常運作。在變更發生時,應及時做好基線的推進。
版本控制
版本控制是軟體配置管理的核心功能。所有置於配置庫中的元素都應自動予以版本的標識,並保證版本命名的唯一性。版本在生成過程中,自動依照設定的使用模型自動分支、演進。除了系統自動記錄的版本信息以外,為了配合軟體開發流程的各個階段,我們還需要定義、收集一些元數據(Metadata)來記錄版本的輔助信息和規範開發流程,並為今後對軟體過程的度量做好準備。當然如果選用的工具支持的話,這些輔助數據將能直接統計出過程數據,從而方便我們軟體過程改進(Software Process Improvement,SPI)活動的進行。
對於配置庫中的各個基線控制項,應該根據其基線的位置和狀態來設定相應的訪問許可權。一般來說,對於基線版本之前的各個版本都應處於被鎖定的狀態,如需要對它們進行變更,則應按照變更控制的流程來進行操作。
變更控制
在對SCI的描述中,我們引入了基線的概念。從IEEE對於基線的定義中我們可以發現,基線是和變更控制緊密相連的。也就是說在對各個SCI做出了識別,並且利用工具對它們進行了版本管理之後,如何保證它們在複雜多變得開發過程中真正的處於受控的狀態,並在任何情況下都能迅速的恢復到任一歷史狀態就成為了軟體配置管理的另一重要任務。因此,變更控制就是通過結合人的規程和自動化工具,以提供一個變化控制的機制。
變更管理的一般流程是:
A) (獲得)提出變更請求;
B) 由CCB審核並決定是否批准;
C) (被接受)修改請求分配人員為,提取SCI,進行修改;
D) 複審變化;
E) 提交修改後的SCI;
F) 建立測試基線並測試;
G) 重建軟體的適當版本;
H) 複審(審計)所有SCI的變化;
I) 發布新版本。
在這樣的流程中,CMO通過軟體配置管理工具來進行訪問控制和同步控制,而這兩種控制則是建立在前文所描述的版本控制和分支策略的基礎上的。
狀態報告
配置狀態報告就是根據配置項運算元據庫中的記錄來向管理者報告軟體開發活動的進展情況。這樣的報告應該是定期進行,並儘量通過CASE工具自動生成,用資料庫中的客觀數據來真實的反映各配置項的情況。
配置狀態報告應根據報告應著重反映當前基線配置項的狀態,以作為對開發進度報告的參照。同時也能從中根據開發人員對配置項的操作記錄來對開發團隊的工作關係作一定的分析。
配置狀態報告應該包括下列主要內容:
A) 配置庫結構和相關說明;
B) 開發起始基線的構成;
C) 當前基線位置及狀態;
D) 各基線配置項集成分支的情況;
E) 各私有開發分支類型的分布情況;
F) 關鍵元素的版本演進記錄;
G) 其它應予報告的事項。
配置審計
配置審計的主要作用是作為變更控制的補充手段,來確保某一變更需求已被切實實現。在某些情況下,它被作為正式的技術複審的一部分,但當軟體配置管理是一個正式的活動時,該活動由SQA人員單獨執行。
總之,軟體配置管理的對象是軟體研發活動中的全部開發資產。所有這一切都應作為配置項納入管理計畫統一進行管理,從而能夠保證及時的對所有軟體開發資源進行維護和集成。因此,軟體配置管理的主要任務也就歸結為以下幾條:(1)制定項目的配置計畫;(2)對配置項進行標識;(3)對配置項進行版本控制;(4)對配置項進行變更控制;(5)定期進行配置審計;(6)向相關人員報告配置的狀態。
配置管理收益
國內很多軟體企業已經逐漸認識到配置管理的重要性,都希望通過實施配置管理來提高軟體開發管理的水平,增強企業自身的競爭力,應對市場的壓力。
具體而言,用戶可以在資金、管理水平和保護知識財富等方面得到切實收益。
節約用戶資金
Hansky配置管理系統的總體實施成本低;對硬體系統性能的要求低,可以跨平台使用,節約了用戶的投資;安裝簡單,易於維護,無需專職的系統管理員;功能簡潔、實用,易於學習和掌握,可以有效縮短配置管理系統投入實際使用的周期;良好的擴展性和靈活的License管理方式,以及組件式的解決方案,使得我們的配置管理系統既支持小組模式的用戶,也能夠支持大規模團隊的協同開發工作,並且能夠方便地進行擴展,用戶可以根據實際需要,靈活的配置,大大降低了降低初期投入的資金;具有前瞻性,保護用戶的投資。Hansky公司的軟體配置管理產品採用最新的技術(如純TCP/IP技術、J2EE技術、MS .NET的開發環境等)和全新的套用模式(如三層結構、B/S套用結構等),確保系統在較長的時間內不會落後於同類產品或不需要技術上的更新;自帶存儲庫增量備份/恢復功能,節約用戶在備份方面的支出。
縮短用戶的產品開發周期
利用Hansky的Firefly系統對開發資源進行版本管理和跟蹤,可以建立公司級的代碼知識庫,保存開發過程中的所有歷史版本,這樣大大提高了代碼的復用率,還便於同時維護多個版本和進行新版本的開發,最大限度地共享代碼。利用Butterfly組建開發團體之間的問題跟蹤及訊息通訊機制,通過與電子郵件系統的結合大大增強了開發團體之間的溝通能力,通過豐富的報表功能可對發現的問題進行整理、以報表方式分類報出,作為開發的指導。通過使用Hansky的配置管理套件可以提高開發效率和產品質量,避免了代碼覆蓋、溝通不夠、開發無序的混亂局面,大大縮短了產品的開發周期。
降低產品的部署費用
使用Hansky的軟體配置管理解決方案後,用戶可以在Hansky技術專家的幫助下建立規範的配置管理流程,所有的軟體產品將得到統一有效的管理。藉助Firefly和Butterfly,工程人員可以通過訪問伺服器直接獲取所需的最新版本,查找公司的知識庫,提交變更請求,收集用戶的反饋意見。開發人員無需到現場即可再現用戶環境,集中解決問題,發布補丁。這樣可以同時回響多個地點的項目,防止開發人員分配到各個項目點、力量分散、人員不夠的弊端,同時節約大量的旅差費用。
提高軟體開發管理的水平
(1) 改進用戶的開發工作模式
使用Hansky的配置管理解決方案,可以有效地改進用戶的軟體開發模式和過程,提高企業軟體能力成熟度的級別。
藉助Firefly和Butterfly,用戶可以:
有效的管理工作空間,各個成員的具有獨立的工作空間,並能記錄其變更集和整個生命周期中的完整變更歷史;
簡便建立分支,支持分支之間的比較與合併,歸併,管理基線;
支持並行開發模式,提高開發效率;
支持異地開發,Firefly通過自動或手動同步不同開發地點的的存儲庫,為地理分布的開發團隊提供很好的支持;
集成變更請求管理與項目生存周期中的變更記錄與追蹤,最佳化測試流程;
完善的發布管理,可以方便的回溯任意版本,為不同的用戶定製應用程式的版本,促進系統的快速部署,提供發布版本內容的審計能力;
支持變更集和原子事務,確保變更的一致性;
支持離線的版本管理,幫助用戶記錄項目證明周期內的完整歷史;
內置Defect、RFE、Task(問題、建議、任務)工作流,符合正規軟體公司的軟體開發流程。科學的工作流系統可以使公司人員工作起來得心應手,有條不紊,從而大大提高工作效率。
(2) 加強項目管理能力
通過瀏覽器,項目負責人可以方便地查看項目進展情況以及員工工作情況;
利用Web界面即可實現代碼複查和項目狀態複查;
豐富的圖表、報告功能,可以自動生成變更統計報告、配置審計報告,支持過程管理與進度分析,能夠幫助管理者進行決策。
(3) 量化工作量考核
傳統的開發管理中,工作量一直是難以估量的指標。靠開發人員自己把握,隨意性過大;靠管理人員把握,主觀性又太強。採用Firefly和Butterfly管理後,系統能夠客觀的記錄員工的工作內容和質量,可以作為工作量的衡量指標。
(4) 規範測試流程
Butterfly和Firefly集成後,可以有效地跟蹤和處理軟體的變更,完整地記錄測試人員的工作內容,測試有了實實在在的工作,測試人員根據修改描述細節對每一天的工作做具體的測試。對測試人員也具有相應的可考核性,這樣環環相扣,有效地增強了對測試的管理。
(5) 加強協調與溝通,增加團隊競爭力
使用Firefly保存公司的所有知識財富、利用Butterfly的FAQ、檢索以及Email自動通知功能,有效地加強了項目成員之間的溝通,做到有問題及時發現、及時修改、及時通知,卻又不會額外增加很多的工作量,大大提高了開發團隊的協同工作效率。
保護企業的知識財富
從整個企業的發展戰略來說,如何在技術日新月異、人員流動頻繁的情況下,本公司的知識庫及經驗庫,把個人的知識及經驗轉變為公司的知識和經驗,這對於提高工作效率、縮短產品周期以及提高公司的競爭力都具有至關重要的作用。採用科學的配置管理思想,輔之以先進的配置管理工具,可以幫助用戶在內部建立完善的知識管理體系。
(1) 代碼對象庫
軟體代碼是軟體開發人員腦力勞動的結晶,也是軟體公司的寶貴財富,長期開發過程中形成的各種代碼對象就像一個個零件一樣,是快速生成系統的組成部分。然而長期以來的一個事實是:一旦某個開發人員離開工作崗位,其原來所編寫的代碼便基本成為垃圾,無人過問;或者由於文檔不全,無從考究。究其原因,就是沒有專門對每個開發人員的代碼、組件和文檔進行科學的管理,將其套用範圍擴大到公司一級,進行規範化,加以說明和普及。Firefly為代碼管理提供了一個平台和倉庫,有利於建立公司級的代碼對象庫,增進代碼復用,提高開發重用率和軟體質量。
(2) 業務及經驗庫
通過Firefly和Butterfly,可自動生成完整的開發日誌及問題集合,用文字記錄開發的整個過程,不會因某人的流動而消失,有利於公司積累業務經驗,無論對軟體維護或版本升級,都具有重要的指導作用。此外,利用Butterfly內建的FAQ模組,可以建立檢索方便的經驗庫,傳播和共享集體的智慧。
(3) 安全性和可靠性
由於配置管理系統集中存儲了企業的重要知識財富,因此對其安全性和可靠性有極高的要求。Firefly可以對所有存儲的檔案進行冗餘校驗,使用MD5作為檔案的校驗和,並提供備份和恢復工具,確保了數據的可靠性。同時Firefly支持用戶身份驗證和訪問控制,支持用戶組,便於許可權設定。訪問控制可以針對分支、目錄,甚至單個檔案設定,採用類似Windows NTFS的許可權管理方式,既靈活又安全。這些措施使得企業的知識財富得到了安全可靠的存儲和保護。
另外,由於Hansky的產品採用了三層結構設計,其存儲庫完全不依賴於網路檔案體統,無需共享存儲目錄,能夠有效防止病毒攻擊所導致的存儲庫癱瘓或損壞,同時杜絕網路非法訪問。