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