林國富
(廣州大學(xué)松田學(xué)院 廣東 廣州 511370)
在我們國家,政府采購是政府財政支出的重要部分。隨著國家GDP 的日益增長,國家財政收入和支出也日益增長,政府采購已經(jīng)成為社會主義經(jīng)濟的重要經(jīng)濟行為。為了提高政府采購效率和規(guī)范采購行為,適應(yīng)市場經(jīng)濟的發(fā)展,杜絕各種可能滋生腐敗的行為。某市信息化建設(shè)中心面向社會公開招標(biāo)開發(fā)一套政府采購系統(tǒng)。我司中標(biāo)了該項目,我負(fù)責(zé)架構(gòu)設(shè)計和項目技術(shù)相關(guān)事務(wù),全程參與了整個項目的開發(fā)[1]。
根據(jù)客戶業(yè)務(wù)需求,政府采購系統(tǒng)由政府采購監(jiān)督管理平臺、政府采購項目管理平臺、基礎(chǔ)庫建設(shè)、數(shù)據(jù)服務(wù)四個子系統(tǒng)組成。政府采購監(jiān)督管理平臺包括項目監(jiān)管、代理機構(gòu)監(jiān)管、采購人監(jiān)管、專家監(jiān)管、統(tǒng)計報表等。政府采購項目管理平臺包括采購預(yù)算管理、采購計劃管理、采購項目管理、招投標(biāo)管理、專家抽取、采購門戶等。專家?guī)旖ㄔO(shè)包括專家?guī)?、采購人、代理機構(gòu)庫、供應(yīng)商庫等。數(shù)據(jù)服務(wù)包括對下級單位提供數(shù)據(jù)采集服務(wù),對上級單位提供數(shù)據(jù)上報服務(wù)。
除了業(yè)務(wù)功能需求,客戶還提出系統(tǒng)使用簡單(操作性需求)、易于擴展和維護(可維護性)、運行穩(wěn)定(可用性)等非功能性需求。
為了實現(xiàn)系統(tǒng)功能,按時按質(zhì)完成系統(tǒng)開發(fā)。經(jīng)過分析,我們在系統(tǒng)中使用了復(fù)合架構(gòu)的設(shè)計方案,同時使用了B/S 架構(gòu)、面向構(gòu)件的架構(gòu)、面向服務(wù)的架構(gòu)等架構(gòu)設(shè)計。
B/S 架構(gòu)即瀏覽器(browser)/服務(wù)器(server)架構(gòu),是相對于C/S(客戶端/服務(wù)器)架構(gòu)來說的。也可以把B/S 架構(gòu)看成是C/S 架構(gòu)的一種特殊形式。在一般的C/S 架構(gòu)中,用戶需要在本地終端(如電腦、手機等)安裝對應(yīng)的客戶端程序才能使用系統(tǒng)。對用戶來說不太方便。B/S 架構(gòu)只需要客戶終端有瀏覽器就可以直接訪問系統(tǒng)??蛻綦娔X、手機等終端一般都安裝有瀏覽器,所以使用起來很方便。因此,系統(tǒng)采用B/S 架構(gòu)設(shè)計。
面向構(gòu)件的軟件架構(gòu)是基于構(gòu)件來構(gòu)造應(yīng)用系統(tǒng)。它主要包含構(gòu)件的標(biāo)識、檢索與提取,修改或開發(fā)新構(gòu)件,更新構(gòu)件的相互作用,組裝構(gòu)件,系統(tǒng)測試等工作。
目前軟件行業(yè)間的競爭很激烈,很多公司都采用996工作時間,對于開發(fā)公司來說,開發(fā)的很多產(chǎn)品存在重復(fù)的功能模塊,直接導(dǎo)致了項目周期以及成本不必要的增加。因此,利用已有的軟件項目構(gòu)造新的系統(tǒng),可以提高開發(fā)效率,降低客戶的成本,提高公司利潤。另一方面,面向構(gòu)件的架構(gòu)可以通過加載不同的構(gòu)件來增加或刪減系統(tǒng)的功能,如果要修改系統(tǒng)某個功能,只需要修改或替換對應(yīng)的構(gòu)件。系統(tǒng)具備很好的可維護性,更好地滿足客戶需求。因此,政府采購系統(tǒng)使用了面向構(gòu)件的架構(gòu)設(shè)計。
擁有構(gòu)件庫是基于構(gòu)件開發(fā)軟件的前提。因此,我們在已經(jīng)成功實施的項目中,提取一些共有的模塊作為單獨的組件,封裝其內(nèi)部操作,對外提供一致的調(diào)用接口。例如,一些常用的模塊例如登錄模塊、權(quán)限管理模塊,只需要很少的改動就可以復(fù)用到新的系統(tǒng)中。通過提取整理,形成了公司的企業(yè)構(gòu)件庫,為基于構(gòu)件的架構(gòu)開發(fā)準(zhǔn)備提供了基礎(chǔ)。
選用合適的構(gòu)件是基于構(gòu)件開發(fā)的重要步驟。構(gòu)件的選擇有多種途徑:一是從構(gòu)件庫中提取符合要求的構(gòu)件,二是從遺留系統(tǒng)中提取合適的構(gòu)件,三是從市場上購買現(xiàn)成的或使用開源的構(gòu)件,四是開發(fā)新的構(gòu)件。在本次項目中,我們選擇的構(gòu)件包括了三種來源。下面介紹政府采購系統(tǒng)采用的主要構(gòu)件。
(1)從以前成功的項目案例中,我們提取出了很多構(gòu)件,形成了公司的企業(yè)構(gòu)件庫。我從中選取了合適的作為新系統(tǒng)的構(gòu)件,有登錄注冊構(gòu)件、權(quán)限管理構(gòu)件、菜單導(dǎo)航構(gòu)件、流程審批構(gòu)件、組織機構(gòu)管理構(gòu)件等。
(2)系統(tǒng)使用NHibernate 開源的第三方構(gòu)件作為對象/關(guān)系數(shù)據(jù)庫映射構(gòu)件。
(3)政府采購系統(tǒng)根據(jù)需求還開發(fā)了智能搜索構(gòu)件。新系統(tǒng)需要提升用戶體驗,采用即時響應(yīng)的搜索技術(shù),在用戶輸入搜素文字時,提示用戶備選文字選擇,并快速響應(yīng)用戶的搜素結(jié)果。以前的系統(tǒng)沒有這個功能,考慮到以后這個功能的需求是通用的,所以開發(fā)了這個新構(gòu)件[2-3]。
政府采購系統(tǒng)的數(shù)據(jù)服務(wù)子系統(tǒng)的需求包括對下級單位提供數(shù)據(jù)采集服務(wù),對上級單位提供數(shù)據(jù)上報服務(wù)。經(jīng)過和客戶的深入溝通,客戶原有系統(tǒng)由其他公司研發(fā)和維護,基于安全考慮,不提供其系統(tǒng)所使用的技術(shù)、文檔、數(shù)據(jù)庫等任何資料,如舊系統(tǒng)有變更需要則由該開發(fā)公司完成。因此,我們對客戶的其他系統(tǒng)情況一無所知,不能根據(jù)特定系統(tǒng)使用定制方法進行對接。經(jīng)過分析,我們建議使用面向服務(wù)架構(gòu)設(shè)計數(shù)據(jù)服務(wù)功能,同時需要客戶其他系統(tǒng)通過訪問政府采購系統(tǒng)的數(shù)據(jù)服務(wù),配合完成上傳和采集數(shù)據(jù),客戶采用了我們的建議。
面向服務(wù)架構(gòu)(SOA)是一種應(yīng)用框架,將企業(yè)業(yè)務(wù)應(yīng)用劃分為單獨的業(yè)務(wù)功能服務(wù)和流程,通過采用良好定義的接口和標(biāo)準(zhǔn)協(xié)議將這些服務(wù)關(guān)聯(lián)起來?;赟OA系統(tǒng)架構(gòu)的應(yīng)用系統(tǒng)之間的交互,不受操作系統(tǒng)、程序設(shè)計語言及運行環(huán)境的限制,從而提高業(yè)務(wù)流程的靈活性,降低企業(yè)開發(fā)成本。Web Service 是目前實現(xiàn)SOA主要的技術(shù)手段。SOA 的設(shè)計原則是無狀態(tài),單一實例,明確定義接口,自包含和模塊化,粗粒度,可重用,互操作性。
在政府采購系統(tǒng),用戶有兩個數(shù)據(jù)需求需要和已有系統(tǒng)對接:(1)新系統(tǒng)需要能夠從客戶下級單位舊系統(tǒng)里對接數(shù)據(jù)到新系統(tǒng),減少人工錄入數(shù)據(jù)。例如,下級單位把采購預(yù)算的數(shù)據(jù)從舊系統(tǒng)自動傳輸?shù)叫孪到y(tǒng);(2)新系統(tǒng)需要能夠把數(shù)據(jù)自動上報到上級單位的其他系統(tǒng)里。例如,把中標(biāo)項目的數(shù)據(jù)發(fā)送到上級平臺進行統(tǒng)一監(jiān)管和統(tǒng)計。我們使用Web Service 實現(xiàn)了數(shù)據(jù)采集和數(shù)據(jù)上報兩個服務(wù)。同時客戶也需要對原有系統(tǒng)進行增量開發(fā),增加了使用我方服務(wù)上傳和接收數(shù)據(jù)的功能開發(fā)。雖然涉及到了客戶原有系統(tǒng)的變更,但是面向架構(gòu)服務(wù)的開發(fā)是自包含和模塊化、粗粒度的,客戶原有系統(tǒng)只是增添了組件,對原有業(yè)務(wù)功能沒有影響,變更的成本比較低,客戶可以接受。
政府采購系統(tǒng)采用基于B/S 架構(gòu)開發(fā),其中政府采購監(jiān)督管理平臺、政府采購項目管理平臺、基礎(chǔ)庫建設(shè)采用了面向構(gòu)件的架構(gòu)設(shè)計,數(shù)據(jù)服務(wù)采用了面向服務(wù)的架構(gòu)。項目自啟動后,歷時10 個月成功上線,系統(tǒng)上線后運行穩(wěn)定,獲得了客戶的好評。該項目能夠順利完成,一方面得益于公司的大力支持、團隊的共同努力,另一方面也得益于應(yīng)用了復(fù)合架構(gòu)的設(shè)計。