宮麗



摘要:文章介紹了基于SharePoint平臺的認證輔助系統的設計與實現。該項目將SharePoint與傳統的認證機制相結合,實現了更加易于理解和跟蹤的認證輔助系統,提高了相關部門的工作效率,固化了認證申請流程,加強了產品認證質量管控。
關鍵詞:SharePoint;認證輔助系統;認證質量
1行業現狀與需求
目前認證輔助管理部門都是采用人工手動來處理各種認證申請。包括在提交申請前的咨詢、材料提交、認證材料預審、認證材料提交到政府、認證信息整理等。
但是由于認證申請牽涉到國內眾多的國家級、行業級等多種級別的法律、法規、規范等,需要操作者對國內和行業的各種法律、法規、規范都非常熟悉,且需要通過不斷地關注國內有關法律、法規的更新,及時與各項目組進行溝通。這對操作者的技術經驗要求較高,同時對于人員流動帶來的風險較大。
2技術背景介紹
2.1SharePoint 2013
通過針對SharePoint環境的有效配置,可以提供對企業中的各種文檔和其他信息的針對性個性化訪問,可以有效地提高企業的業務流程效率。
基于SharePoint的二次開發具有如下幾點優勢:
(1)由于SharePoint本身具有訪問控制機制,因此對于用戶權限的分配和配置,無需過多的代碼干預。對于快速開發來說,這一點是非常有利的。
(2)SharePoint提供了Library,List等多種控件,非常易于管理,在Library和List中,還設有視圖的配置,簡化了數據庫的設計與開發,降低了開發成本。
(3)通過對SharePoint的二次開發,可以在SharePoint本身自帶的頁面/功能基礎上,定制化一些企業需要的個性化功能,整個工程建立、發布和部署的過程都相對比較簡單。
2.2UpdatePanel
AJAX擴展中的UpdatePanel主要用于局部刷新。UpdatePanel與ScriptManager的結合運用,可以實現頁面的異步局部更新。其中,UpdatePanel用于設置頁面中需要進行局部更新的區域,還可以根據需要進行嵌套使用。在頁面中嵌套使用UpdatePanel,可以很好地解決由控件聯動引起的局部刷新問題。
3認證輔助系統總體設計
整個系統主要分為Reminder Mail Sender Monitor,Certmanagement,Website Monitor,Scheduled Backup四大模塊。整個系統的結構,如圖1所示。
3.1后臺數據存儲設計
在數據存儲方面,由于SharePoint有自帶的SQL數據庫,只需要基于Library和List建表后,根據需要配置不同的視圖,供用戶交互即可。
在本項目中,本文主要設計了3個List,一個主要用于存儲產品認證申請信息的Product Request,包含:申請人、審批人、目前狀態、申請所需材料、認證類型等;一個主要用于存儲所有產品己完成的認證相關信息的Product Info,例如:證書編號、證書掃描件、證書生效時間、證書發布時間、證書有效期等;還有一個用于記錄所有法律法規類文檔的Library-All Standards&Regulations,用于存放所有與法律法規文件相關的文檔及其相關屬性,例如:有效期、影響的產品功能、文件名、版本、級別、類型、發布日期、負責部門、起草人等。
與此同時,本文還設計了一些輔助類List,例如:RequestType,Cert Type、BG Profile等,以便更好地針對一些字段值屬性值進行配置,避免由于一些字段值或屬性值更新所引起的數據不一致性。
3.2認證申請狀態更新
為了更好地提高終端用戶與管理員之間的交互效率,減少申請等待時間,每次認證申請的狀態發生改變時,系統都會自動發送通知郵件。
認證申請系統通過監聽Product Request的Item Added事件,發送新申請并提交。一旦有新的認證申請提交,系統就會在這個事件中,發送申請狀態改變的通知郵件。當認證申請系統監聽到Product Request的Item Updating事件,說明終端用戶在對認證申請作出修改,這時也會發送一封通知郵件給修改人、產品負責人以及管理員,并將更改后的信息放入通知郵件,供相關人員參考。
認證申請系統通過監聽Product Info的Item Added事件,發送認證獲取信息提醒。一旦有新產品拿到認證,系統會在這個事件中,發送提醒郵件給產品負責人,告知認證結果以及認證相關信息,例如:證書編號、有效期等。
這樣的設計可以有效減少各場景中的等待時間,有效減少終端用戶或管理員頻繁登錄系統進行狀態檢查的成本。
3.3系統監控中心
為了確保認證輔助系統的日常運作的穩定性,也為了幫助維護工程師快速地發現系統出現的任何偏差,本文針對網站和主機作了不同級別的監控。除了針對website的24小時不問斷監控外,還對主機進行了監控,防止由于意外發生時造成服務不可用。
另外,為了可以及時發送一些提醒通知郵件,本文還基于window Service建立了輪詢機制,如果在輪詢中發現部分產品認證距離過期時間不足3個月,那么系統會發出一份提醒郵件,根據系統配置情況發送給相關人,提醒有關人士開始處理該產品的續證的申請工作。
4認證輔助系統界面設計
根據系統的業務需要,部分頁面需要使用自定義頁面實現,其中主要包括2個部分的自定義頁面:第一個部分是認證準備頁面,另一個頁面是認證申請頁面。
認證準備頁面主要是用來規劃產品認證信息用的,主要分為3個部分:第一個部分包含了用戶所在部門的產品認證相關負責人信息,例如:產品負責人、認證負責人、法務相關負責人等;第二個部分則包含了用戶所在部門當年目前己登記的產品規劃列表,當用戶選中某一個產品之后,在已有產品規劃列表下方會顯示該選中產品的詳細信息,包括:產品名、版本號、發布日期、產品大致功能等。這一模塊需要使用局部刷新來實現,以避免整個頁面刷新所帶來的視覺沖突,并達到了降低頁面刷新時間成本的效果。第三個部分則顯示該產品與標準之間的關系,例如:哪些標準對該產品會產生影響,影響的程度是什么,相關的標準名字、標準鏈接等。這個模塊也采用了局部刷新技術來實現。由于頁面內容過多,圖2只是認證申請頁面的前2個部分的界面設計例圖。
認證申請頁面同樣也主要分為3個部分,前2個部分與認證規劃頁面雷同,第3個部分用來提交各種申請文檔,填寫認證申請信息。也同樣采用了局部刷新技術,提高用戶體驗。
圖3是認證申請頁面的第3個部分的界面設計圖,為了可以有一個比較直觀的用戶體驗,這些界面設計圖都是通過在Excel中添加控件后,作了一些格式調整后實現的,作為原型圖供用戶審核與確認。
這2個自定義頁面都綜合運用了UpdatePanel與ScriptManager,實現了異步局部刷新,以體現更好的局部刷新效果,有效降低了網絡數據傳送和頁面刷新成本。
5認證輔助系統安全性設計
本系統采用了基于角色的訪問控制機制,主要采用了用戶、管理員、系統管理員這3種角色。用戶又根據部門進行分組,不同組的用戶只可以訪問自己組內產品的基本信息,提交認證申請;管理員負責認證申請的審批;系統管理員則負責整個網站的安全、配置、權限分配等職責。
由于本系統需要開放給全公司上萬名員工,因此在項目初期權限分配的工作負載略高。另外,根據歷史經驗,該公司每半年可能有一些部門及人員調整,這也給系統管理工作帶來了一定的困難。但也正是由于該系統是面向內部用戶的,因此對于一些惡意、蓄意行為不需要特別關注。
因此,本文設計了一個自我分配機制,首先給everyone賦予讀取權限,當用戶訪問本站點時,會針對他的權限進行判定,判定他是否己被分配組別,如果答案是否定的,會有彈出窗口,要求用戶自行定位自己的組別身份,是屬于某部門普通用戶還是某產品部門認證負責人等。但是這些自我分配僅限于用戶相關權限,并不開放管理員權限和系統管理員權限。
這樣處理的好處在于:
(1)系統管理員不需要過多的干預,用戶可以自行分配自己所在組別。
(2)大部分的用戶都可以通過自我分配機制拿到合適的權限,無需等待審批。
(3)降低了系統管理員的工作負載。
(4)提升了用戶的權限分配體驗,每個用戶都是自己的管理員,可以為自己提供所在部門選擇。
而所有的這些操作也將成為操作日志的一部分,記錄在系統中備查,可以有效避免一些誤解和沖突。管理員會定期檢查操作日志,有效防止一些誤操作引起的問題。
6認證輔助系統配置類功能設計
6.1可維護性設計
為了便于系統的后期維護,在本項目中,很多字段都采用了Lookup類型,尤其是針對一些可能不定期產生變動的數據,防止由于這些變動引起的數據不一致問題。
例如:Cert Type,Request TVpe,Product Function等。這些字段在Product request和Product Info里的相應字段中,都采用了Lookup類型,不僅可以有效地避免由于字段值的改變引起的數據不一致問題,也可以減少一些由于誤填、錯填引起的數據混亂問題。Lookup字段在編輯頁面將會轉換為選項框,同時也為用戶輸入帶來了便捷。
6.2日志設計
在本項目中,采用了多種日志,對項目信息進行記錄,主要包含3種類型的日志:第一種是認證申請的狀態改變日志,每一次狀態改變都會記錄在案,包括操作人、操作日期等,以便于后續跟蹤;第二種是查詢日志,該日志包含了所有用戶在與系統交互時建立的查詢,主要是記錄了查詢條件,便于管理員對這些數據進行統計分析,整理用戶關注點,便于在后續工作中,有針對性地對網站進行優化;第三種則是操作日志,幾乎所有的針對網站的操作都會被記錄,包括操作類型、操作人、操作范圍等。這些日志有助于在網站發生問題后,及時、快速地定位錯誤發生根源,可以幫助系統管理員更好地對網站進行管理。
7結語
基于SharePoint 2013的認證輔助系統相對于傳統的認證機制具有以下幾點優勢:
(1)傳統的認證機制很難將歷時認證經驗和信息進行傳承。
(2)基于SharePoint 2013的認證輔助系統,可以減少整個認證申請中的無效等待時間。
(3)基于SharePoint 2013的認證輔助系統,固化了認證申請流程,從人治轉為了機治。
(4)基于SharePoint 2013的認證輔助系統,有效提高了認證相關部門的工作效率,減少產品認證的冗余工作。有效提升認證申請審核專家的工作效率,集中在解決專業問題上,將認證申請相關的基本信息交互交給系統來完成。
(5)增加了認證申請流程的透明度,加強了審核員與申請者之間的溝通,及時分享進度信息。