劉 暢,劉慶杰,牟玉松,劉 輝
(成都飛機(jī)工業(yè)(集團(tuán))有限責(zé)任公司,四川 成都 610092)
國(guó)內(nèi)企業(yè)標(biāo)準(zhǔn)數(shù)據(jù)不統(tǒng)一,絕大多數(shù)的工具和管理方法都是針對(duì)單個(gè)企業(yè)、單個(gè)數(shù)據(jù)源或者單個(gè)行業(yè)的數(shù)據(jù)標(biāo)準(zhǔn)的管理[1]。中國(guó)航空工業(yè)集團(tuán)公司開(kāi)發(fā)了標(biāo)準(zhǔn)智能化平臺(tái),為集團(tuán)公司唯一標(biāo)準(zhǔn)數(shù)據(jù)源,部署在集團(tuán)本部及成員企業(yè),具有標(biāo)準(zhǔn)體系架構(gòu)及標(biāo)準(zhǔn)清單管理、標(biāo)準(zhǔn)數(shù)據(jù)管理、標(biāo)準(zhǔn)研制與實(shí)施過(guò)程管理、專(zhuān)家資源管理、個(gè)人辦公等5大功能。集團(tuán)標(biāo)準(zhǔn)智能化平臺(tái)為B/S結(jié)構(gòu),集“項(xiàng)目-任務(wù)-流程-數(shù)據(jù)-專(zhuān)家”于一體。集團(tuán)本部與成員企業(yè)的集團(tuán)標(biāo)準(zhǔn)智能化平臺(tái)間通過(guò)專(zhuān)網(wǎng)實(shí)時(shí)傳輸數(shù)據(jù),成員企業(yè)擁有內(nèi)部門(mén)戶(hù)網(wǎng)站[2],集成了郵箱、OA辦公、PDM數(shù)據(jù)庫(kù)、業(yè)務(wù)系統(tǒng)等。
成員企業(yè)將標(biāo)準(zhǔn)智能化平臺(tái)與門(mén)戶(hù)網(wǎng)站集成需要解決兩個(gè)技術(shù)問(wèn)題:一是實(shí)現(xiàn)“單點(diǎn)登錄”,即允許企業(yè)用戶(hù)在門(mén)戶(hù)網(wǎng)站認(rèn)證后,可以不再重新輸入賬號(hào)密碼而訪問(wèn)標(biāo)準(zhǔn)智能化平臺(tái);二是實(shí)現(xiàn)“待辦集成”,將標(biāo)準(zhǔn)智能化平臺(tái)的信息整合到公司級(jí)的統(tǒng)一消息平臺(tái),第一時(shí)間通知員工處理,實(shí)現(xiàn)自動(dòng)推送。為解決上述技術(shù)問(wèn)題,設(shè)計(jì)了標(biāo)準(zhǔn)智能化平臺(tái)與企業(yè)門(mén)戶(hù)網(wǎng)站間的單點(diǎn)登錄和集成待辦的通用接口。
標(biāo)準(zhǔn)智能化平臺(tái)分別部署于集團(tuán)公司及成員企業(yè)服務(wù)器中,通過(guò)專(zhuān)網(wǎng)(金航網(wǎng))傳輸數(shù)據(jù)。企業(yè)用戶(hù)通過(guò)局域網(wǎng)訪問(wèn)本地服務(wù)器中的標(biāo)準(zhǔn)智能化平臺(tái),無(wú)法直接訪問(wèn)集團(tuán)服務(wù)器的標(biāo)準(zhǔn)智能化平臺(tái),部署示意圖見(jiàn)圖1。
圖1 標(biāo)準(zhǔn)智能化平臺(tái)部署示意圖
用戶(hù)訪問(wèn)企業(yè)本地服務(wù)器標(biāo)準(zhǔn)智能化平臺(tái)時(shí),在WEB瀏覽器中輸入標(biāo)準(zhǔn)智能化平臺(tái)的網(wǎng)址,彈出登錄頁(yè)面后輸入賬號(hào)、密碼即可進(jìn)入,登錄界面如圖2所示。
圖2 標(biāo)準(zhǔn)智能化平臺(tái)登錄界面
標(biāo)準(zhǔn)智能化平臺(tái)的主要功能有標(biāo)準(zhǔn)體系管理、標(biāo)準(zhǔn)數(shù)據(jù)管理、標(biāo)準(zhǔn)業(yè)務(wù)過(guò)程管理、專(zhuān)家資源管理、個(gè)人辦公等(如圖3所示)。標(biāo)準(zhǔn)智能化平臺(tái)首頁(yè)中有任務(wù)通知、我的待辦,主要顯示推送的標(biāo)準(zhǔn)數(shù)據(jù)、待辦流程、相關(guān)通知等。
門(mén)戶(hù)網(wǎng)站與標(biāo)準(zhǔn)智能化平臺(tái)間的單點(diǎn)登錄采用JWT(JsonWebToken)實(shí)現(xiàn)。JWT是一種基于Json格式的Web token,定義了一個(gè)緊湊的自包含方式在不同實(shí)體之間安全傳輸信息[3,4]。企業(yè)用戶(hù)登錄門(mén)戶(hù)網(wǎng)站后,點(diǎn)擊標(biāo)準(zhǔn)智能化平臺(tái)圖標(biāo)時(shí),由門(mén)戶(hù)網(wǎng)站調(diào)用JWT認(rèn)證服務(wù)Rest接口生成加密token,并在訪問(wèn)標(biāo)準(zhǔn)智能化平臺(tái)的URL地址后面以參數(shù)的形式將token傳遞至標(biāo)準(zhǔn)智能化平臺(tái),標(biāo)準(zhǔn)智能化平臺(tái)獲取到token參數(shù)后,調(diào)用門(mén)戶(hù)網(wǎng)站JWT認(rèn)證Rest接口驗(yàn)證token合法性,由JWT驗(yàn)證接口返回驗(yàn)證結(jié)果,標(biāo)準(zhǔn)智能化平臺(tái)根據(jù)驗(yàn)證結(jié)果進(jìn)行業(yè)務(wù)邏輯處理[5,6]。
設(shè)計(jì)的單點(diǎn)登錄驗(yàn)證方式具有通用性,所有信息化系統(tǒng)集成到企業(yè)門(mén)戶(hù)網(wǎng)站可以參考使用。
用戶(hù)登錄門(mén)戶(hù)網(wǎng)站后,點(diǎn)擊標(biāo)準(zhǔn)智能化平臺(tái)圖標(biāo),通過(guò)request.getParameter(“token”)獲取門(mén)戶(hù)網(wǎng)站傳遞的token加密串,然后調(diào)用門(mén)戶(hù)網(wǎng)站提供的token認(rèn)證接口進(jìn)行token合法性驗(yàn)證。
門(mén)戶(hù)網(wǎng)站單點(diǎn)訪問(wèn)業(yè)務(wù)系統(tǒng)url:
http://172.16.**.**:**/login?token=*
業(yè)務(wù)系統(tǒng)獲取token參數(shù):
String token =
request.getParameter(“token”)
3.2.1 Token認(rèn)證接口
門(mén)戶(hù)網(wǎng)站token認(rèn)證校驗(yàn)Rest接口定義如圖4所示。
圖4 Token認(rèn)證接口參數(shù)定義
輸入?yún)?shù)JSON格式:
{
"token":"***"
}
輸出參數(shù)JSON格式:
{
"sucess":“true”,
"resultMessage":"成功",
"userId":"admin",
"appId":"portal",
"generateTime":""
}
3.2.2 Token生成接口
標(biāo)準(zhǔn)智能化平臺(tái)調(diào)用門(mén)戶(hù)網(wǎng)站提供的JWT token生成接口,獲取token值,每次獲取的token值在2h內(nèi)有效,過(guò)期需重新獲取。參數(shù)定義如圖5所示。
圖5 Token生成接口參數(shù)定義
輸入?yún)?shù)JSON格式:
{
"userId":"**",(**為員工工號(hào))
"appId":"portal"
}
輸出參數(shù)JSON格式:
{
"sucess":“true”,
"resultMessage":"成功",
"token":"***"
}
基于Http Restfull規(guī)范設(shè)計(jì)門(mén)戶(hù)網(wǎng)站待辦接口,與標(biāo)準(zhǔn)智能化平臺(tái)進(jìn)行集成。統(tǒng)一待辦模塊涉及的接口包括:被動(dòng)待辦接入接口、主動(dòng)待辦接入接口。
被動(dòng)方式提供統(tǒng)一的web服務(wù)給標(biāo)準(zhǔn)智能化平臺(tái)進(jìn)行待辦事項(xiàng)的處理。統(tǒng)一待辦服務(wù)接口如下:
Post
/portal-uniontask-service/addTask;添加待辦信息
Post
/portal-uniontask-service/completeTask;完成待辦事項(xiàng),將待辦庫(kù)中的記錄移到歷史記錄表中
Post
/portal-uniontask-service/completeTaskUpdate ;待辦ID相同且多人處理的業(yè)務(wù),完成待辦時(shí)需要指定用戶(hù)。
Post
/portal-uniontask-service/sychTaskSmall;小數(shù)據(jù)量待辦同步接口
Post
/portal-uniontask-service/completeTaskBatch;批量完成待辦接口。
4.1.1 添加待辦
添加待辦接口輸入?yún)?shù)JSON格式如下:
{
"username":"portal",
"password":"**",
"tasks":
{
"appID":"Stand Database",
"taskName":"待辦事項(xiàng)信息標(biāo)題",
"appTaskID":"**",
"taskType":"**",
"appSendUID":"**",
"appReceiveUID":"**",
"sendTime":"**",
"endTime":"**",
"url":"http:// **..........",
"taskDesc":"待辦事項(xiàng)信息描述",
"priorityID":"2"
}
4.1.2 完成待辦
完成待辦接口輸入?yún)?shù)JSON格式如下:
{
"username":"portal",
"password":"**",
"appTaskID":"**",
"appID":" Stand Database ",
"handleTime":"**"
}
通過(guò)被動(dòng)接入方式接入待辦,當(dāng)接口調(diào)用因網(wǎng)絡(luò)等因素接口調(diào)用異常,導(dǎo)致門(mén)戶(hù)網(wǎng)站和標(biāo)準(zhǔn)智能化平臺(tái)中的待辦不一致時(shí),根據(jù)被動(dòng)接入方式規(guī)范中的待辦同步接口要求實(shí)現(xiàn)待辦與門(mén)戶(hù)的待辦同步業(yè)務(wù)處理。待辦同步觸發(fā)接口需要標(biāo)準(zhǔn)智能化平臺(tái)將與門(mén)戶(hù)的待辦同步提供一個(gè)Http Rest接口,方便門(mén)戶(hù)適時(shí)調(diào)用觸發(fā)標(biāo)準(zhǔn)智能化平臺(tái)進(jìn)行待辦同步業(yè)務(wù)處理。被動(dòng)待辦同步觸發(fā)接口處理流程見(jiàn)圖6。
圖6 被動(dòng)待辦同步觸發(fā)接口處理流程圖
主動(dòng)待辦接入接口輸入?yún)?shù)JSON格式定義如下:
{
"username":"portal",
"password":"**"
"userId":"**",
"rows":"**"
}
輸出參數(shù)JSON格式定義如下:
{
"success":“true”,
"message":"成功",
"totalnumber":20,
"pendingwork":[
{
"taskName":"待辦1",
"appSendName":"**",
"taskType":"標(biāo)準(zhǔn)審查",
"sendTime":"**",
"endTime":"**",
"priority":"2",
"url":"http://**/..........",
"taskDesc":"待辦的描述"
},
{
"taskName":"待辦2",
"appSendName":"**",
"taskType":"標(biāo)準(zhǔn)征求意見(jiàn)",
"sendTime":"**",
"endTime":"**",
"priority":"2",
"url":"http://**/..........",
"taskDesc":"待辦的描述"
}
]
}
主動(dòng)待辦接入接口方式說(shuō)明:(1)主動(dòng)待辦接口調(diào)用設(shè)置超時(shí)機(jī)制,默認(rèn)超時(shí)時(shí)間為3000ms,可根據(jù)實(shí)際情況進(jìn)行調(diào)整。(2)接口調(diào)用如果超過(guò)設(shè)置的超時(shí)時(shí)間還未響應(yīng),客戶(hù)端則斷開(kāi)連接。(3)門(mén)戶(hù)網(wǎng)站主動(dòng)待辦接口監(jiān)控程序通過(guò)定時(shí)輪詢(xún)調(diào)用接口的方式檢查主動(dòng)待辦接口是否異常。
集團(tuán)本部及成員企業(yè)分別部署了集團(tuán)標(biāo)準(zhǔn)智能化平臺(tái),針對(duì)成員企業(yè)標(biāo)準(zhǔn)智能化平臺(tái)與企業(yè)門(mén)戶(hù)網(wǎng)站集成的需求,設(shè)計(jì)了單點(diǎn)登錄、待辦信息推送通用接口,實(shí)現(xiàn)了在不輸入賬號(hào)密碼的情況下直接訪問(wèn)標(biāo)準(zhǔn)智能化平臺(tái)功能,將標(biāo)準(zhǔn)智能化平臺(tái)中的待辦事項(xiàng)推送到門(mén)戶(hù)網(wǎng)站中,可提高工作效率和使用體驗(yàn)感。