文|錢純
淺談上海報(bào)業(yè)集團(tuán)公文統(tǒng)一系統(tǒng)解決方案的應(yīng)用
文|錢純
上海報(bào)業(yè)集團(tuán)是中國最大的報(bào)業(yè)集團(tuán)之一,是整合了解放日?qǐng)?bào)、文匯報(bào)、新民晚報(bào)所有媒體資源的媒體集團(tuán)。形成了日?qǐng)?bào)、早報(bào)、晚報(bào)、周報(bào)、周刊、月刊和出版社等結(jié)構(gòu)合理、品種較全的新聞出版群體。為實(shí)現(xiàn)集團(tuán)內(nèi)部現(xiàn)代、高效的日常辦文,加快集團(tuán)信息化建設(shè)的進(jìn)程,利用集團(tuán)現(xiàn)有計(jì)算機(jī)的網(wǎng)絡(luò)資源及豐富的信息系統(tǒng)資源,開發(fā)了具有實(shí)際應(yīng)用前景的集團(tuán)公文處理系統(tǒng)。開發(fā)和建成的集管理與服務(wù)于一體的公文處理系統(tǒng),極大地促進(jìn)了集團(tuán)的整體信息化。
但是終端系統(tǒng)的發(fā)展給公文系統(tǒng)的便捷使用提出了更高的要求。目前主流的終端系統(tǒng)有安卓、IOS、Windows等系列,而且各個(gè)系統(tǒng)上使用的瀏覽器也花樣繁多,如Firefox、chrome、IE、Safari等。瀏覽器也是各有各的版本,以及各個(gè)終端的分辨率等情況。這些問題都會(huì)造成開發(fā)與測(cè)試周期的成倍增加。除此以外,上海報(bào)業(yè)集團(tuán)自有的開發(fā)團(tuán)隊(duì)人力有限。除了系統(tǒng)的日常維護(hù)外,如果要對(duì)這些系統(tǒng)在不同平臺(tái)上進(jìn)行搭建和測(cè)試,在資源范圍內(nèi)必定無法完成系統(tǒng)設(shè)計(jì)規(guī)劃的開發(fā)時(shí)間。而如果使用外包公司,則需要外包公司了解系統(tǒng)幾乎全部的業(yè)務(wù)邏輯,無法實(shí)現(xiàn)與內(nèi)部資源的有效分工合作,會(huì)嚴(yán)重拉長工期以及增加非常多的開發(fā)費(fèi)用。
針對(duì)以上問題,上海報(bào)業(yè)集團(tuán)公文統(tǒng)一系統(tǒng)解決方案旨在通過明確的業(yè)務(wù)分工,從而解決項(xiàng)目進(jìn)度被拉長以及項(xiàng)目成本增加兩個(gè)問題。
上海報(bào)業(yè)集團(tuán)公文統(tǒng)一系統(tǒng)解決方案,即是將工作系統(tǒng)的接口、業(yè)務(wù)邏輯和通信協(xié)議等全部封裝,通過webservice方式將接口和前臺(tái)展現(xiàn)外包給第三方來實(shí)現(xiàn)。這樣做的優(yōu)勢(shì)如下:
加快工程進(jìn)度:上海報(bào)業(yè)集團(tuán)的開發(fā)團(tuán)隊(duì)對(duì)集團(tuán)工作系統(tǒng)的業(yè)務(wù)邏輯非常清楚,整個(gè)業(yè)務(wù)系統(tǒng)的調(diào)研也不需要外包公司參與,從而減少了系統(tǒng)在開發(fā)時(shí)的調(diào)研時(shí)間。
分工明確:外包公司只需要關(guān)注前臺(tái)展現(xiàn)的美工和布局,不需要了解工作系統(tǒng)的業(yè)務(wù)邏輯與行為和數(shù)據(jù)內(nèi)容。
業(yè)務(wù)保密:外包公司對(duì)項(xiàng)目的數(shù)據(jù)庫沒法完全掌控,他們只能通過數(shù)據(jù)的調(diào)用來獲得某些方面的數(shù)據(jù)以用于前臺(tái)展現(xiàn),從而避免了整個(gè)數(shù)據(jù)庫和內(nèi)部業(yè)務(wù)邏輯對(duì)外的公開程度。
系統(tǒng)通過采用.NET面向?qū)ο蠛蚗ML結(jié)合來編寫Webservice應(yīng)用程序來實(shí)現(xiàn)將接口對(duì)外公布。
Webservice技術(shù)能使得運(yùn)行在不同機(jī)器上的不同應(yīng)用無須借助附加的、專門的第三方軟件或硬件,就可相互交換數(shù)據(jù)或集成。依據(jù)WebService規(guī)范實(shí)施的應(yīng)用之間,無論它們所使用的語言、平臺(tái)或內(nèi)部協(xié)議是什么,都可以相互交換數(shù)據(jù)。WebService是自描述、自包含的可用網(wǎng)絡(luò)模塊,可以執(zhí)行具體的業(yè)務(wù)功能。WebService也很容易部署,因?yàn)樗鼈兓谝恍┏R?guī)的產(chǎn)業(yè)標(biāo)準(zhǔn)以及已有的一些技術(shù),諸如標(biāo)準(zhǔn)通用標(biāo)記語言下的子XML、HTTP。WebService減少了應(yīng)用接口的花費(fèi)。WebService為整個(gè)企業(yè)甚至多個(gè)組織之間的業(yè)務(wù)流程的集成提供了一個(gè)通用機(jī)制。圖1為Webservice體系結(jié)構(gòu)。
圖1 Webservice體系結(jié)構(gòu)
圖2 系統(tǒng)架構(gòu)圖
1系統(tǒng)架構(gòu)
系統(tǒng)采用B/S的體系結(jié)構(gòu)。在功能結(jié)構(gòu)上采用模塊化結(jié)構(gòu),即把整個(gè)信息系統(tǒng)按功能劃分為若干個(gè)模塊,這種模塊結(jié)構(gòu)功能分明、操作簡(jiǎn)潔方便、易于系統(tǒng)的功能擴(kuò)展,使得系統(tǒng)具有可擴(kuò)展性和開放性。既能實(shí)現(xiàn)對(duì)各種辦公事務(wù)的管理,又能適應(yīng)新的工作需要,不斷完善升級(jí)(圖2)。
整個(gè)系統(tǒng)由用戶管理系統(tǒng)、公文管理系統(tǒng)、消息訂閱服務(wù)、內(nèi)部協(xié)作控制、日志記錄服務(wù)等構(gòu)成。用戶管理系統(tǒng)主要包括應(yīng)用程序授權(quán)、用戶授權(quán)等;公文管理系統(tǒng)包括公文信息接口、公文流轉(zhuǎn)接口、操作權(quán)限判定接口等;消息推送服務(wù)主要以事務(wù)提醒、內(nèi)容推送為主要目的,以求達(dá)到信息的及時(shí)性、準(zhǔn)確性、有效性、完整性,并以手機(jī)短信、電子郵件、app消息推送等方式來體現(xiàn);日志記錄服務(wù):用戶登錄認(rèn)證、訪問業(yè)務(wù)系統(tǒng)等操作的日志記錄。
2系統(tǒng)實(shí)現(xiàn)
2.1系統(tǒng)模塊結(jié)構(gòu)
后臺(tái)數(shù)據(jù)庫管理系統(tǒng)采用S q lServer2008,Web服務(wù)器操作系統(tǒng)采用Windows2008Server,Web服務(wù)器管理軟件采用運(yùn)行于Win2008上的IIS,開發(fā)工具采用VisualStudio2008,開發(fā)語言采用.Net和JavaScript等。系統(tǒng)模塊結(jié)構(gòu)由用戶驗(yàn)證、權(quán)限控制、安全通信、消息推送服務(wù)、內(nèi)部協(xié)作控制、操作日志記錄等接口組成。圖3所示。
2.2系統(tǒng)實(shí)現(xiàn)
根據(jù)圖三,對(duì)幾個(gè)主要的功能做一個(gè)簡(jiǎn)單的介紹:
(1)用戶驗(yàn)證部分,以移動(dòng)的方案為例,如圖4所示。
應(yīng)用程序啟動(dòng)后,通過試訪問的模式,確定APP客戶端的版本;在整個(gè)移動(dòng)辦公中,所有的數(shù)據(jù)請(qǐng)求均使用加密方式請(qǐng)求數(shù)據(jù);用戶登錄信息將與硬件序列號(hào)進(jìn)行邦定,確保系統(tǒng)的安全使用;用戶賬號(hào)統(tǒng)一為單一賬號(hào),對(duì)于其他接入系統(tǒng)將采用賬號(hào)映射的方式,由移動(dòng)辦公統(tǒng)一處理;移動(dòng)辦公將記錄APP客戶端的所有操作日志。
圖3 系統(tǒng)模塊結(jié)構(gòu)
圖4 用戶驗(yàn)證模塊
圖5 用戶內(nèi)部驗(yàn)證模塊
圖6 用戶內(nèi)部驗(yàn)證模塊
在這個(gè)過程中,集團(tuán)開發(fā)團(tuán)隊(duì)對(duì)圖4中2、3兩部分涉及到的數(shù)據(jù)處理打包以做接口,以Webservice方式開放給開發(fā)公司使用,從而避免了將內(nèi)部處理邏輯暴露出去。開發(fā)公司需要做1部分的app版本驗(yàn)證以及通過接口處理后得到的數(shù)據(jù)通過分析終端操作類型來分別展示最后結(jié)果。
圖5所示即團(tuán)隊(duì)內(nèi)部解決方案流程,而此流程的內(nèi)部處理順序和返回值不需要第三方外包公司考慮。
通過這樣的分工可以看到,整個(gè)項(xiàng)目的70%的代碼都是由集團(tuán)內(nèi)部完成,且這部分的內(nèi)容可以被其他第三方公司重復(fù)使用。而第三方公司只需知道Webservice接口的輸入、輸出,而接口內(nèi)的各種邏輯處理則不需要他們關(guān)心。
(2)內(nèi)部協(xié)作控制:這是整個(gè)系統(tǒng)最重要的部分,涉及到辦公的各個(gè)方面。這部分的所有接口以及使用實(shí)現(xiàn)也如(1)中所述方式來實(shí)行。
(3)消息推送服務(wù),如圖6所示。
消息推送服務(wù)主要以事務(wù)提醒、內(nèi)容推送為主要目的。以求達(dá)到信息的及時(shí)性、準(zhǔn)確性、有效性、完整性。
在圖6中,MessageSendThread和MessageReceiveThread在IMServiceServer中以獨(dú)立線程的模式進(jìn)行單獨(dú)工作,互不干擾;但在整個(gè)IMService.Server進(jìn)程中,將使用同一套配置信息。不同類型的Message發(fā)送將以Adapter的模式進(jìn)行擴(kuò)充。IMServiceServer的Adapter將以配置方式動(dòng)態(tài)加載。所有第三方系統(tǒng),均通過IMService.Client類庫進(jìn)行消息的發(fā)送MessageDBAccess庫是以數(shù)據(jù)庫為存儲(chǔ)介質(zhì),以Access.DBAccess為基類的數(shù)據(jù)庫訪問層而消息推送服務(wù)以以下渠道為主:
★ 手機(jī)短信:強(qiáng)調(diào)信息的及時(shí)性
★ 電子郵件:強(qiáng)調(diào)信息的準(zhǔn)確性和完整性
★ APP消息推送:與APP集成,用戶體驗(yàn)好
表1
2.3系統(tǒng)接口
對(duì)于上海報(bào)業(yè)集團(tuán)開發(fā)人員,在這里提供了所有業(yè)務(wù)操作的接口,以便于前臺(tái)展示調(diào)用。具體列表1所示。
隨著互聯(lián)網(wǎng)的進(jìn)一步發(fā)展,操作系統(tǒng)級(jí)瀏覽器越來越展現(xiàn)出多樣化和定制化,系統(tǒng)的統(tǒng)一展現(xiàn)會(huì)越來越成為一個(gè)突出問題。
上海報(bào)業(yè)集團(tuán)的“集團(tuán)公文統(tǒng)一系統(tǒng)解決方案”,在這一問題上做了有效的嘗試和突破,成功解決了工作系統(tǒng)在不同終端上統(tǒng)一展示的問題,同時(shí)滿足了系統(tǒng)性能、安全性、降低成本等方面的要求。這一系統(tǒng)的上線為今后這一問題的解決提供了一個(gè)很好的樣板。
進(jìn)一步發(fā)展:上海報(bào)業(yè)集團(tuán)的“集團(tuán)公文統(tǒng)一系統(tǒng)解決方案”的解決方法雖然解決了統(tǒng)一接口的問題,但是對(duì)前端展現(xiàn)還是使用定制化客戶端。這一方法雖然在本項(xiàng)目中可以滿足需求,但是這意味著針對(duì)不同操作系統(tǒng)和瀏覽器都要進(jìn)行定制化的客戶端開發(fā),這一方法會(huì)隨著操作系統(tǒng)和瀏覽器的增多而繼續(xù)增加工作量。在今后的項(xiàng)目中,會(huì)繼續(xù)考慮采用統(tǒng)一客戶端的嘗試,繼續(xù)尋找既能滿足工作系統(tǒng)需求,又減少開發(fā)工作量的方法。
(作者單位:上海報(bào)業(yè)集團(tuán)信息技術(shù)中心開發(fā)科)