郭愛魯
(鐵道部資金清算中心 信息處, 北京 100038)
隨著鐵路改革進(jìn)程的不斷深化和發(fā)展方式的轉(zhuǎn)變,鐵路企業(yè)財務(wù)管理逐步由延續(xù)多年的多利益主體財務(wù)分配形式轉(zhuǎn)向提升理財分配權(quán)限、統(tǒng)籌資金運用、全面預(yù)算管理的集團財務(wù)管理體系。這對鐵路財務(wù)會計信息化建設(shè)中的重要組成部分“財務(wù)會計核算系統(tǒng)”提出了更高的要求:(1)用戶由現(xiàn)在的非法人基層運輸站段為主體,轉(zhuǎn)向集團和以多種產(chǎn)權(quán)形式的母、子公司;(2)用戶的需求從側(cè)重基本核算轉(zhuǎn)為側(cè)重集中管理和過程監(jiān)控,財務(wù)應(yīng)用目的也從替代手工、提高效率轉(zhuǎn)化為業(yè)務(wù)運作分析和監(jiān)控。
根據(jù)《財務(wù)會計管理信息系統(tǒng)專項規(guī)劃》,財務(wù)會計核算系統(tǒng)應(yīng)確保鐵路行業(yè)在財務(wù)會計上做到“核算精細(xì)、監(jiān)控高效”,全面、真實、準(zhǔn)確地反映各級單位生產(chǎn)經(jīng)營狀況,及時發(fā)現(xiàn)問題,準(zhǔn)確分析預(yù)測,為正確決策和有效監(jiān)管各鐵路局、站段等提供一個強有力的支持平臺,并為全路財務(wù)管理及戰(zhàn)略管理等應(yīng)用打下基礎(chǔ)。
在技術(shù)層面,需充分考慮鐵路企業(yè)當(dāng)前管理模式與鐵路全行業(yè)計算機硬件、網(wǎng)絡(luò)環(huán)境情況等現(xiàn)實條件,采用適合于目前鐵路行業(yè)的開發(fā)工具、通信機制、后臺數(shù)據(jù)庫、運行平臺。
為此,在設(shè)計新的鐵路財務(wù)會計核算系統(tǒng)時突破了單一應(yīng)用程序的傳統(tǒng)架構(gòu),采用了面向服務(wù)的體系結(jié)構(gòu)(SOA)。借助SOA通用、自動集成和高效的特點,重點關(guān)注系統(tǒng)中不同業(yè)務(wù)模塊的集成和集團化應(yīng)用,提升易用性與穩(wěn)定性,成功實現(xiàn)了賬務(wù)處理、固資管理、工資管理、應(yīng)收應(yīng)付管理、報表處理等子系統(tǒng)的高度集成,并已在鐵道行業(yè)全面投入使用,取得了較好的經(jīng)濟效益。
SOA架構(gòu)中有3類組件:(1)服務(wù)提供者:發(fā)布自己的服務(wù),并且對服務(wù)請求進(jìn)行響應(yīng);(2)服務(wù)注冊中心:注冊已經(jīng)發(fā)布的服務(wù),對其進(jìn)行分類,并提供搜索服務(wù);(3)服務(wù)請求者:利用服務(wù)中心查找所需要的服務(wù),然后使用該服務(wù)。各組件互相配合的工作流程如圖1。
圖1 SOA架構(gòu)各組件工作流程
SOA架構(gòu)中有3類操作:(1)發(fā)布操作:為了使服務(wù)可訪問,需要發(fā)布服務(wù)描述以使服務(wù)使用者可以發(fā)現(xiàn)它。(2)查找操作:服務(wù)請求者定位服務(wù),方法是查詢服務(wù)注冊中心找到滿足其標(biāo)準(zhǔn)的服務(wù)。(3)綁定操作:在檢索到服務(wù)描述之后,服務(wù)使用者繼續(xù)根據(jù)服務(wù)描述中的信息來調(diào)用服務(wù)。
在SOA中要執(zhí)行的相關(guān)標(biāo)準(zhǔn)包括:Web服務(wù)描述語言(WSDL),統(tǒng)一描述、發(fā)現(xiàn)和集成(UDDI),簡單對象訪問協(xié)議(SOAP)。WSDL用來描述服務(wù),UDDI用來注冊和查找服務(wù),而SOAP作為傳輸層,用來在使用者和服務(wù)提供者之間傳送消息。使用者可以在UDDI注冊表中查找服務(wù),取得服務(wù)的WSDL描述后通過SOAP來調(diào)用服務(wù)。實際應(yīng)用中服務(wù)調(diào)用流程如圖2。
圖2 服務(wù)調(diào)用流程
本系統(tǒng)采用SOA架構(gòu),可在全國鐵路部門實現(xiàn)分層部署。除數(shù)據(jù)庫服務(wù)器外,應(yīng)用程序的不同功能單元被設(shè)計為不同的服務(wù),存放于應(yīng)用服務(wù)器上。系統(tǒng)架構(gòu)如圖3。
圖3 系統(tǒng)架構(gòu)
2.1.1 客戶端展現(xiàn)層
客戶端展現(xiàn)層(UI)是客戶端的界面展現(xiàn),使用Portlet方案實現(xiàn)。門戶的主體由Master頁作為主題的界面樣式,Master頁也是Portlet的容器,Portlet以用戶控件(User Control)、自定義控件(Customer Control)或COM Control組成獨立功能的用戶界面。
2.1.2 用戶界面處理層
用戶界面處理層(UIP)是對UI層界面邏輯的組織,以任務(wù)和流程來組合一個完整的流程,為簡化客戶端的邏輯,將其部署到服務(wù)端,狀態(tài)在ASP.NET狀態(tài)服務(wù)器中保存。
2.1.3 調(diào)用接口層
調(diào)用接口層(CI)是業(yè)務(wù)服務(wù)層(BF)在客戶端的調(diào)用接口,可理解為BF對象在客戶端的代理,負(fù)責(zé)同服務(wù)器進(jìn)行通信。CI將客戶端UIP層的請求進(jìn)行解析并封裝成SOAP業(yè)務(wù)對象,發(fā)送SOAP請求給服務(wù)器。
2.1.4 服務(wù)端
服務(wù)端包括服務(wù)接口層(SI)、業(yè)務(wù)服務(wù)層(BF)和業(yè)務(wù)組件層(BO)。(1)SI是發(fā)布在IIS上的業(yè)務(wù)服務(wù),BF對象通過SI將自身暴露給客戶,SI對象和BF對象的接口是一致的。CI對象和SI對象是成對出現(xiàn)、業(yè)務(wù)無關(guān)的服務(wù)接口對象,CI是服務(wù)端SI的代理,SI是BF的代理,也就是說CI、SI在邏輯上是透明的,對于客戶端,就好像直接調(diào)BF一樣。(2)BF對象是業(yè)務(wù)組件對象(BO)的組合,是將不同BO按照業(yè)務(wù)需要進(jìn)行功能性組合的結(jié)果,即展現(xiàn)給用戶的業(yè)務(wù)外觀。服務(wù)端僅BF對象對于客戶端可見。(3)BO對象是具體的業(yè)務(wù)邏輯組件,其業(yè)務(wù)粒度較BF對象更細(xì),包含具體業(yè)務(wù)規(guī)則,并負(fù)責(zé)業(yè)務(wù)數(shù)據(jù)持久化,控制事務(wù)邊界,對客戶端不可見。
服務(wù)端接收到SOAP請求后,對SOAP封裝的業(yè)務(wù)信息進(jìn)行解析,根據(jù)SI對象解析出的請求信息選擇調(diào)用適當(dāng)?shù)腂F處理本次業(yè)務(wù)請求,并將處理結(jié)果封裝為SOAP格式,返回給CI層。
2.1.5 系統(tǒng)工作流程
當(dāng)用戶開始一項業(yè)務(wù)時,首先在UI層與系統(tǒng)進(jìn)行交互;UIP層梳理用戶請求,包括用戶錄入的提報資料和提請的各種申請;CI層將資料和申請解析并封裝成SOAP業(yè)務(wù)對象,發(fā)送SOAP請求給服務(wù)器;服務(wù)器端由SI層接收SOAP請求并解析,根據(jù)請求的業(yè)務(wù)類型選擇調(diào)用適當(dāng)?shù)臉I(yè)務(wù)服務(wù),比如是否需進(jìn)行相關(guān)的數(shù)據(jù)庫處理流程;處理完成后同樣由SI層將處理結(jié)果進(jìn)行SOAP封裝后傳回CI層。實現(xiàn)了用戶體驗、應(yīng)用服務(wù)、業(yè)務(wù)處理模塊各自獨立,具備易維護、高可用、伸縮性強等特點。
數(shù)據(jù)庫中主要的信息表如下:
(1)賬務(wù)余額表:期初余額方向、期初余額、本期借方累計、本期貸方累計、本年借方累計、本年貸方累計、期未余額方向、期未余額等。
(2)憑證主表:憑證主鍵編號、憑證號即憑證字第號、期間代碼、公司信息編碼、年份、憑證日期、記賬日期、憑證類型代碼、參考說明、附件說明等。
(3)憑證子表:憑證主鍵編號、憑證行項目、公司信息編碼、年份、科目代碼基礎(chǔ)核算單位編號、摘要文本、借貸方向等。
(4)科目余額表:科目代碼基礎(chǔ)核算單位編號、科目內(nèi)置代碼、年份、公司信息編碼、公司科目名稱會計科目名稱等。
(5)憑證類別表:憑證類別代碼、憑證類別名稱、簡稱、模塊 、年份標(biāo)識、一借多貸控制標(biāo)識,一貸多借控制、打印默認(rèn)模板、創(chuàng)建日期。
(6)報表任務(wù):賬套編碼、任務(wù)編碼、任務(wù)名稱、應(yīng)用、任務(wù)類別、任務(wù)年度、備注、創(chuàng)建時間。
(7)報表主表:賬套編碼、任務(wù)編碼、報表編碼、報表簡碼、報表名稱、匯總類型、報表類型、金額單位、制定者。
(8)報表行:公司信息碼、任務(wù)編碼、報表編碼、期間、系統(tǒng)行、行標(biāo)、行類型、行數(shù)據(jù)。
系統(tǒng)功能結(jié)構(gòu)見圖4。
圖4 系統(tǒng)功能結(jié)構(gòu)圖
2.3.1 賬務(wù)處理
(1)憑證管理:是賬務(wù)處理的起點,是登記賬簿的依據(jù),也是所有數(shù)據(jù)查詢的一個主要來源,憑證管理主要完成對記賬憑證的錄入、修改、打印、匯總、審核和記賬等工作。
(2)賬簿管理:用于查詢統(tǒng)計各級科目的本期發(fā)生額、累計發(fā)生額和余額等。傳統(tǒng)的總賬, 是以總賬科目分頁設(shè)賬, 而余額表則可輸出某月或某幾個月的所有總賬科目或明細(xì)科目的年初余額、期初余額、本期發(fā)生額、期末余額以及本年累計發(fā)生額。
(3)輔助核算:用來反映系統(tǒng)中設(shè)置輔助核算信息的會計科目對應(yīng)的輔助核算經(jīng)濟業(yè)務(wù)發(fā)生情況。它相對于科目明細(xì)賬查詢更細(xì)致,科目明細(xì)賬只是反映各級科目的經(jīng)濟業(yè)務(wù)發(fā)生情況,而輔助明細(xì)賬則反映了科目對應(yīng)輔助信息的詳細(xì)情況。
(4)期末處理:將本月的期末余額結(jié)轉(zhuǎn)為下月的期初余額,并形成下月的累計發(fā)生;本月如果有未記賬憑證,未記賬憑證所涉及的科目余額不含未記賬部分,月份余額結(jié)轉(zhuǎn)操作在未結(jié)賬以前可以進(jìn)行多次重復(fù)操作。系統(tǒng)將根據(jù)當(dāng)前注冊日期自動執(zhí)行月份或年度結(jié)轉(zhuǎn);年度結(jié)轉(zhuǎn)要對成本科目清零,科目累計發(fā)生清零,結(jié)轉(zhuǎn)憑證類別字典,結(jié)轉(zhuǎn)輔助賬。
(5)基礎(chǔ)設(shè)置:是賬務(wù)處理系統(tǒng)中的基礎(chǔ)設(shè)置,主要是指對會計科目的設(shè)置。
2.3.2 報表處理
(1)報表數(shù)據(jù):是報表處理的核心功能之一,是基層單位編制決算報表的必要手段。它的主要功能包括:數(shù)據(jù)生成(由公式形成數(shù)據(jù))、錄入修改、重設(shè)表樣和收入報表導(dǎo)入。
(2)報表審核:此功能可以驗證取數(shù)、計算公式形成的報表數(shù)據(jù)的正確性,并顯示審核結(jié)果。
(3)匯總合并:本功能主要是上級單位對所屬下級單位報表數(shù)據(jù)的再處理,主要包括報表數(shù)據(jù)的匯總和報表數(shù)據(jù)的舍入。報表的數(shù)據(jù)匯總是本系統(tǒng)的核心功能之一,利用該功能完成對下屬單位報表數(shù)據(jù)的匯總,生成反映匯總單位整體財務(wù)狀況的匯總報表。
(4)報表查詢:可以實現(xiàn)任意單位的任意報表的簡單查詢,每打開一張報表就會在窗口下面形成一個新工作表,便于用戶在不同表之間進(jìn)行快速的切換查看。
(5)打印傳輸:完成已生成報表的打印、導(dǎo)出及上報等功能。
(6)基礎(chǔ)定義:完成報表處理需要進(jìn)行的相關(guān)基礎(chǔ)設(shè)置。
(7)格式定義:提供工具讓用戶自行設(shè)計報表,包括表頭和表尾、報表中間的數(shù)據(jù)類型和顯示方式、數(shù)據(jù)來源、取得公式等。
2.3.3 系統(tǒng)維護
(1)賬套管理:創(chuàng)建、刪除賬套,創(chuàng)建賬套包括創(chuàng)建數(shù)據(jù)庫用戶,建立數(shù)據(jù)庫結(jié)構(gòu),導(dǎo)入基礎(chǔ)參數(shù);備份、恢復(fù)賬套數(shù)據(jù);維護集團和下級單位的賬套關(guān)系,為集團財務(wù)建立數(shù)據(jù)訪問的鏈路。
(2)權(quán)限設(shè)定:增加、刪除用戶,用戶口令管理,用戶的停用和啟用;增加、刪除角色,維護用戶角色對應(yīng)關(guān)系;對用戶、角色進(jìn)行功能權(quán)限管理;選擇數(shù)據(jù)權(quán)限方案,對用戶、角色進(jìn)行數(shù)據(jù)權(quán)限管理。
(3)基礎(chǔ)字典維護:定義基礎(chǔ)字典數(shù)據(jù)的編碼規(guī)則,便于分級統(tǒng)計和管理;定義核算單位字典,設(shè)置單位之間的關(guān)系;維護會計核算的處理周期,維護會計年度、會計季度和每個會計期間的開始終了日期;設(shè)置基準(zhǔn)和輔助計量單位,并設(shè)置計量單位之間的換算關(guān)系;增加刪除貨幣檔案,并設(shè)置貨幣檔案的匯率信息;設(shè)置銀行結(jié)算方式;維護部門檔案,設(shè)置部門上下級關(guān)系;維護客戶/供應(yīng)商檔案;設(shè)置輔助核算的項目分類、維護具體的項目對象。
(4)集團控制:維護統(tǒng)一的科目、項目、存貨、客戶、供應(yīng)商、會計期間、幣種以及計量單位等基礎(chǔ)檔案、編碼規(guī)則數(shù)據(jù)和默認(rèn)的控制規(guī)則(例如是否可修改以及修改的級次或范圍);選擇字典,控制規(guī)則下發(fā)到下級單位的賬套,覆蓋下級單位的基礎(chǔ)數(shù)據(jù),可采用推、拉方式。
2.4.1 集成性
系統(tǒng)的集成性主要體現(xiàn)在底層技術(shù)、物理數(shù)據(jù)庫、基礎(chǔ)業(yè)務(wù)字典、業(yè)務(wù)功能模塊之間、集團單位之間、外部系統(tǒng)接口等方面。系統(tǒng)的集成是實時的,同時也是業(yè)務(wù)驅(qū)動的,這就保證了業(yè)務(wù)數(shù)據(jù)在模塊間的流轉(zhuǎn),同時保證實現(xiàn)核算的準(zhǔn)確、及時并有很好的持續(xù)性,為將來的財務(wù)管理系統(tǒng)和財務(wù)戰(zhàn)略應(yīng)用打下一個良好的基礎(chǔ)。
2.4.2 集團化應(yīng)用
系統(tǒng)除能滿足一般企業(yè)的會計核算處理功能以外,還實現(xiàn)從底層應(yīng)用平臺、基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)到業(yè)務(wù)處理功能的集團化處理能力。包括支持集團的集中會計核算處理、分布式會計核算、跨網(wǎng)的應(yīng)用查詢、集團內(nèi)部交易處理、遠(yuǎn)程報賬等功能。同時,集團化應(yīng)用還可以對整個會計核算系統(tǒng)進(jìn)行統(tǒng)一監(jiān)控。
2.4.3 易用性與穩(wěn)定性
系統(tǒng)在打印輸出、大規(guī)模并發(fā)操作、海量數(shù)據(jù)處理等方面充分考慮現(xiàn)有系統(tǒng)所存在的問題,同時在操作方面借鑒國內(nèi)外主流商用財會軟件的經(jīng)驗,充分保證了操作的便捷和系統(tǒng)的穩(wěn)定。
系統(tǒng)采用Visual Studio.Net開發(fā),采用C#編程語言和Oracle數(shù)據(jù)庫實現(xiàn)。
本文提出了一個采用SOA體系結(jié)構(gòu)實現(xiàn)鐵路財務(wù)會計核算系統(tǒng)的方案。本系統(tǒng)采用SOA理念進(jìn)行設(shè)計,具有易維護性、高可用性、和可伸縮性的特點。系統(tǒng)能有效實現(xiàn)鐵路財務(wù)會計核算各項業(yè)務(wù)的全過程管理,目前已經(jīng)在鐵道部內(nèi)全面投入使用,為大型企業(yè)財務(wù)管理提供及時準(zhǔn)確的信息,為提高企業(yè)的經(jīng)濟效益作出貢獻(xiàn)。
[1]鐵道部財務(wù)司,鐵道部資金清算中心,鐵道部信息辦,財務(wù)管理信息系統(tǒng)專項規(guī)劃[Z]. 2005.
[2](美)Paul C.Brown SOA實踐指南—應(yīng)用整體架構(gòu)[M]. 胡鍵. 北京:機械工業(yè)出版社,2009.
[3]Simon Robinson、Christian Nagel. C#高級編程[M]. 李敏波.北京:清華大學(xué)出版社,2005.
[4](美)Thomas Erl. SOA服務(wù)設(shè)計原則[M]. 郭 耀.北京:人民郵電出版社, 2009.
[5]Stewart Fraser、Steven Livingstone . C#XML入門經(jīng)典[M].毛堯飛,崔 偉. 北京:清華大學(xué)出版社, 2003.
[6](美)Thomas Erl.SOA Web Service合約設(shè)計與版本化[M].郭 耀. 北京:人民郵電出版社,2010.