鐘興
關(guān)鍵詞:煙草行業(yè);信息化建設(shè);系統(tǒng)集成;軟件體系結(jié)構(gòu);軟件總線
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2023)03-0051-03
1 引言
近年來(lái),在煙草行業(yè)高質(zhì)量發(fā)展的要求下,越來(lái)越多的業(yè)務(wù)通過(guò)信息化實(shí)現(xiàn)了從線下到線上的轉(zhuǎn)換,比如辦公自動(dòng)化系統(tǒng)、統(tǒng)一營(yíng)銷平臺(tái)、物流管控平臺(tái)、專賣管理系統(tǒng)、安全管理系統(tǒng)、人事系統(tǒng)、財(cái)務(wù)報(bào)銷系統(tǒng)等[1]。這些系統(tǒng)的使用給業(yè)務(wù)工作的開(kāi)展帶來(lái)了很大的便利,有效降低了企業(yè)的成本,提高了企業(yè)的生產(chǎn)效率[2]。
但是,各個(gè)信息系統(tǒng)的建設(shè)往往都是單獨(dú)建設(shè)的,缺少統(tǒng)一的規(guī)劃和設(shè)計(jì),從而暴露出一些問(wèn)題:一是使用上不夠人性化,系統(tǒng)過(guò)多導(dǎo)致密碼容易遺忘、操作煩瑣的問(wèn)題;二是產(chǎn)生運(yùn)維管理難題,系統(tǒng)存在的一些安全漏洞對(duì)網(wǎng)絡(luò)安全帶來(lái)了很大的威脅[3];三是造成資源浪費(fèi),系統(tǒng)建設(shè)過(guò)多,會(huì)造成資金、軟硬件資源的浪費(fèi);四是系統(tǒng)眾多卻缺少集成,就會(huì)造成信息孤島持續(xù)增加[4]。因此,對(duì)煙草行業(yè)信息系統(tǒng)集成技術(shù)的研究就顯得十分重要。
2 軟件總線
2.1 軟件總線的概念
軟件總線這個(gè)概念從計(jì)算機(jī)的硬件總線中衍生而來(lái)。硬件總線是計(jì)算機(jī)中各種功能部件之間的公共信息傳輸通道。與硬件總線的功能相似,軟件總線通過(guò)為軟件系統(tǒng)中的功能構(gòu)件提供統(tǒng)一的接口規(guī)范,為各個(gè)功能構(gòu)件之間的信息交互提供了虛擬的公共傳輸通道,因此可以看作一種虛擬的硬件總線[5]。
如圖1所示,在基于軟件總線的系統(tǒng)中,系統(tǒng)功能實(shí)現(xiàn)的基本單元是功能構(gòu)件。通過(guò)為功能構(gòu)件提供標(biāo)準(zhǔn)接口,軟件總線為系統(tǒng)內(nèi)各功能構(gòu)件之間的信息交互提供了虛擬的公共數(shù)據(jù)通道和接口服務(wù)。任何一個(gè)功能構(gòu)件只要是根據(jù)軟件總線提供的接口規(guī)范來(lái)設(shè)計(jì)開(kāi)發(fā),就都可以在系統(tǒng)內(nèi)實(shí)現(xiàn)“即插即用”,并與系統(tǒng)內(nèi)的其他功能構(gòu)件進(jìn)行通信,實(shí)現(xiàn)軟件系統(tǒng)的集成[6]。
2.2 軟件總線的優(yōu)勢(shì)
軟件總線的使用增強(qiáng)了功能構(gòu)件之間的獨(dú)立性,實(shí)現(xiàn)了系統(tǒng)的“高內(nèi)聚、低耦合”,實(shí)現(xiàn)了功能構(gòu)件的復(fù)用,節(jié)約了軟件的開(kāi)發(fā)時(shí)間和成本,提高了系統(tǒng)的可擴(kuò)展性、可維護(hù)性和可靠性[7-8]。
采用軟件總線后,由于系統(tǒng)中各個(gè)功能構(gòu)件之間沒(méi)有直接的依賴關(guān)系,可以根據(jù)實(shí)際需要方便地對(duì)功能構(gòu)件進(jìn)行修改、替換,對(duì)系統(tǒng)功能進(jìn)行新增、擴(kuò)展、重組,從而為信息系統(tǒng)不斷增長(zhǎng)的規(guī)模提供有效的解決方案。
3 軟件體系結(jié)構(gòu)設(shè)計(jì)
為了解決煙草行業(yè)信息系統(tǒng)建設(shè)中存在的使用煩瑣、管理困難、網(wǎng)絡(luò)安全隱患、資源浪費(fèi)、信息孤島等問(wèn)題,本文研究了軟件總線技術(shù)在煙草行業(yè)信息系統(tǒng)集成中的應(yīng)用。在該系統(tǒng)集成方法中,煙草行業(yè)的各項(xiàng)具體的業(yè)務(wù)被封裝為一個(gè)個(gè)構(gòu)件(如專賣管理構(gòu)件、卷煙銷售構(gòu)件等),并通過(guò)軟件總線來(lái)為各個(gè)功能構(gòu)件提供統(tǒng)一的通信方式和管理服務(wù)。
如圖2所示為基于軟件總線的信息系統(tǒng)集成軟件體系結(jié)構(gòu),按照層次關(guān)系由上到下分為四層:應(yīng)用層、傳輸支持層、傳輸層和軟件總線層。
3.1 應(yīng)用層
在基于軟件總線的信息系統(tǒng)集成軟件體系結(jié)構(gòu)中,應(yīng)用層是系統(tǒng)業(yè)務(wù)功能的具體實(shí)現(xiàn),由系統(tǒng)中的各個(gè)能解決特定業(yè)務(wù)問(wèn)題的功能構(gòu)件組成??梢愿鶕?jù)煙草行業(yè)的各項(xiàng)業(yè)務(wù)來(lái)分別設(shè)置對(duì)應(yīng)的功能構(gòu)件,功能構(gòu)件的顆粒度可大可小,例如專賣管理業(yè)務(wù)可以單獨(dú)設(shè)置為一個(gè)功能構(gòu)件,也可以細(xì)分為證件管理構(gòu)件、案件管理構(gòu)件、執(zhí)法管理構(gòu)件等。功能構(gòu)件的顆粒度越小,功能構(gòu)件之間的耦合度就越低。
每一個(gè)功能構(gòu)件只需要考慮自身內(nèi)部如何進(jìn)行功能邏輯的實(shí)現(xiàn),而不需要考慮如何從其他功能構(gòu)件中獲取數(shù)據(jù)。功能構(gòu)件與功能構(gòu)件之間的信息交互通過(guò)統(tǒng)一的接口規(guī)范由軟件總線來(lái)間接實(shí)現(xiàn)。各功能構(gòu)件要將其構(gòu)件名稱、話題名稱、消息類型等具體信息向軟件總線進(jìn)行注冊(cè),這樣才能夠正常使用。
在實(shí)際使用中,可以根據(jù)每個(gè)使用人員的職責(zé)不同,為其配置履行崗位職責(zé)所需要使用到的功能構(gòu)件,從而實(shí)現(xiàn)了對(duì)系統(tǒng)功能的靈活配置。當(dāng)人員發(fā)生調(diào)崗時(shí),只需要將其不需要使用的功能構(gòu)件注銷掉,再為其配置新崗位所需要的功能構(gòu)件,就可以靈活地為用戶進(jìn)行系統(tǒng)功能授權(quán)。
3.2 傳輸支持層
傳輸支持層的主要功能是實(shí)現(xiàn)消息的序列化與反序列化。消息的序列化是指將功能構(gòu)件之間傳輸?shù)南?shù)據(jù)轉(zhuǎn)換成二進(jìn)制串的過(guò)程。反序列化是指將二進(jìn)制串轉(zhuǎn)換成功能構(gòu)件之間傳輸?shù)南?shù)據(jù)的過(guò)程。
通過(guò)進(jìn)行消息的序列化和反序列化,可以屏蔽各個(gè)功能構(gòu)件之間的差異,從而提高系統(tǒng)的兼容性。
3.3 傳輸層
傳輸層負(fù)責(zé)進(jìn)行功能構(gòu)件之間的消息傳輸。傳輸層為功能構(gòu)件之間提供端到端的消息傳輸服務(wù),不需要知道功能構(gòu)件之間傳輸?shù)南⒌木唧w內(nèi)容。在傳輸層中,經(jīng)過(guò)序列化處理后的二進(jìn)制消息能夠可靠無(wú)誤地傳輸?shù)侥康墓δ軜?gòu)件。
3.4 軟件總線層
在基于軟件總線的信息系統(tǒng)集成軟件體系結(jié)構(gòu)中最核心的部分就是軟件總線層。軟件總線層的功能包括構(gòu)件管理、消息管理和數(shù)據(jù)管理三個(gè)功能。
軟件總線要對(duì)所有功能構(gòu)件進(jìn)行管理,包括構(gòu)件注冊(cè)管理和狀態(tài)監(jiān)測(cè)管理。構(gòu)件注冊(cè)管理是為每一個(gè)功能構(gòu)件提供注冊(cè)服務(wù),維護(hù)著其相關(guān)信息。軟件總線也需要實(shí)時(shí)監(jiān)測(cè)系統(tǒng)中各個(gè)功能構(gòu)件的狀態(tài),包括其CREATE(創(chuàng)建)、START(啟動(dòng))、RUN(運(yùn)行)、STOP(停止)的全生命周期。
消息管理主要是進(jìn)行消息路由和資源調(diào)度。消息的路由負(fù)責(zé)將消息轉(zhuǎn)發(fā)到需要的功能構(gòu)件上。資源調(diào)度是對(duì)系統(tǒng)中的消息根據(jù)其優(yōu)先級(jí)和功能構(gòu)件的負(fù)載進(jìn)行合理的調(diào)度,使得系統(tǒng)資源得到合理使用。
數(shù)據(jù)管理主要是對(duì)消息數(shù)據(jù)和構(gòu)件信息進(jìn)行管理,通過(guò)維護(hù)消息列表和構(gòu)件列表來(lái)實(shí)現(xiàn)。消息列表記錄了消息的具體內(nèi)容,包括各個(gè)字段的類型和含義。構(gòu)件列表記錄了所有與功能構(gòu)件相關(guān)的信息,包括構(gòu)件ID、構(gòu)件名稱、消息類型、生命狀態(tài)等。
4 通信機(jī)制
為了解決功能構(gòu)件與功能構(gòu)件之間的信息交互問(wèn)題,該軟件體系結(jié)構(gòu)采用了基于消息的交互機(jī)制,有效降低了系統(tǒng)的耦合度。
4.1 消息通信方式
在基于軟件總線的信息系統(tǒng)集成軟件體系結(jié)構(gòu)中,軟件總線為各個(gè)功能構(gòu)件提供了一種“發(fā)布/訂閱”的信息交互方式。
在發(fā)布/訂閱通信方式下,發(fā)送消息的功能構(gòu)件稱為發(fā)布者,接收消息的功能構(gòu)件稱為訂閱者。發(fā)布者和訂閱者之間的信息交互通過(guò)話題來(lái)進(jìn)行,只要發(fā)布者將消息朝某一個(gè)特定的話題進(jìn)行發(fā)布,那么系統(tǒng)中訂閱了該話題的所有訂閱者就都能夠接收到發(fā)布者發(fā)布的消息。一個(gè)話題既可以有一個(gè)或多個(gè)發(fā)布者,也可以有一個(gè)或多個(gè)訂閱者,這樣就實(shí)現(xiàn)了功能構(gòu)件之間的一對(duì)一、一對(duì)多和多對(duì)多通信。如圖3所示為發(fā)布/訂閱通信方式的示意圖。
發(fā)布/訂閱通信方式中的話題具有唯一性,每一個(gè)話題都有其對(duì)應(yīng)的消息類型,并由軟件總線負(fù)責(zé)進(jìn)行管理。在這種通信方式下,進(jìn)行通信的功能構(gòu)件按照定義好的話題和消息類型進(jìn)行消息封裝即可,而具體的消息路由則交給軟件總線來(lái)實(shí)現(xiàn)。
4.2 消息通信協(xié)議
在基于消息的交互機(jī)制下,需要定義統(tǒng)一的通信協(xié)議格式。每個(gè)功能構(gòu)件均需要按照這個(gè)統(tǒng)一的通信協(xié)議格式進(jìn)行信息交互,這樣才能成功解析對(duì)方發(fā)出的消息。
如表1所示為功能構(gòu)件之間的消息通信協(xié)議。消息由消息頭和消息體兩個(gè)部分組成。消息頭中的字段都是固定的,記錄了整條消息的基本信息,如起始標(biāo)記、消息類型、話題名稱、消息負(fù)載長(zhǎng)度、序列號(hào)、時(shí)間戳等信息。消息體,即消息負(fù)載,記錄的是消息的具體內(nèi)容。消息負(fù)載中的內(nèi)容是可變的,要根據(jù)其對(duì)應(yīng)的話題來(lái)進(jìn)行填充。
5 應(yīng)用場(chǎng)景
下面以卷煙銷售到零售戶的場(chǎng)景為例,介紹基于軟件總線的信息系統(tǒng)集成軟件體系結(jié)構(gòu)在煙草行業(yè)的實(shí)際應(yīng)用。
實(shí)現(xiàn)該一場(chǎng)景涉及專賣管理、卷煙銷售和物流配送三個(gè)方面的業(yè)務(wù)。零售戶首先需向當(dāng)?shù)氐臒煵輰Yu局申請(qǐng)煙草專賣零售許可證,然后進(jìn)行卷煙訂貨,最后煙草公司為其進(jìn)行分揀配送?,F(xiàn)有的系統(tǒng)開(kāi)發(fā)方式是為這三個(gè)方面的業(yè)務(wù)開(kāi)發(fā)獨(dú)立的專賣、營(yíng)銷、物流系統(tǒng),系統(tǒng)之間缺少交互對(duì)接,數(shù)據(jù)共享大多由人工進(jìn)行。而采用基于軟件總線的信息系統(tǒng)集成軟件體系結(jié)構(gòu)對(duì)該應(yīng)用場(chǎng)景進(jìn)行改進(jìn)后,設(shè)計(jì)了如圖4所示的系統(tǒng)結(jié)構(gòu)。對(duì)功能構(gòu)件的設(shè)計(jì)采用了“高內(nèi)聚、低耦合”的原則,根據(jù)實(shí)際對(duì)專賣管理、卷煙銷售和物流配送業(yè)務(wù)進(jìn)行了細(xì)化,設(shè)計(jì)了許可證申請(qǐng)構(gòu)件、實(shí)地核查構(gòu)件、證件管理構(gòu)件、客戶管理構(gòu)件、卷煙訂貨構(gòu)件、訂單處理構(gòu)件、倉(cāng)儲(chǔ)分揀構(gòu)件、卷煙送貨構(gòu)件。每一個(gè)功能構(gòu)件都只關(guān)注于自身業(yè)務(wù)邏輯的實(shí)現(xiàn),而功能構(gòu)件之間的信息交互則采用“發(fā)布/訂閱”的方式通過(guò)統(tǒng)一的消息通信協(xié)議由軟件總線來(lái)實(shí)現(xiàn)。
基于軟件總線的信息系統(tǒng)集成軟件體系結(jié)構(gòu)應(yīng)用之后,對(duì)現(xiàn)有的卷煙銷售過(guò)程進(jìn)行了改進(jìn),更具有優(yōu)勢(shì)。具體表現(xiàn)為:1) 現(xiàn)有的各個(gè)業(yè)務(wù)系統(tǒng)是分散的、獨(dú)立的,缺乏集成,而軟件總線則將各個(gè)業(yè)務(wù)系統(tǒng)進(jìn)行了充分的集成,形成了一個(gè)整體;2) 現(xiàn)有的各個(gè)業(yè)務(wù)系統(tǒng)之間的數(shù)據(jù)缺乏共享,不少情況下需要人工進(jìn)行數(shù)據(jù)的導(dǎo)入導(dǎo)出,而軟件總線則高效地實(shí)現(xiàn)了各個(gè)業(yè)務(wù)系統(tǒng)之間的數(shù)據(jù)傳輸與共享;3) 現(xiàn)有的各個(gè)業(yè)務(wù)系統(tǒng)耦合度高,可維護(hù)性差,一般需要對(duì)整個(gè)業(yè)務(wù)系統(tǒng)進(jìn)行停機(jī)運(yùn)維,而基于軟件總線的體系結(jié)構(gòu)中由于構(gòu)件具有高內(nèi)聚、低耦合、“即插即用”的特點(diǎn),便于對(duì)構(gòu)件進(jìn)行升級(jí)、維護(hù),只要構(gòu)件遵守統(tǒng)一的標(biāo)準(zhǔn)和協(xié)議,就能集成到系統(tǒng)中擴(kuò)展系統(tǒng)的功能。
6 結(jié)束語(yǔ)
本文研究了軟件總線技術(shù)在煙草行業(yè)信息系統(tǒng)集成中的應(yīng)用,闡述了一種基于軟件總線的分層軟件體系結(jié)構(gòu),并從消息通信方式和消息通信協(xié)議兩個(gè)方面介紹了系統(tǒng)的通信機(jī)制。這種軟件體系結(jié)構(gòu)有效地解決了信息系統(tǒng)集成的問(wèn)題,能夠靈活適應(yīng)不斷變化的信息系統(tǒng)規(guī)模,打通各個(gè)信息系統(tǒng)之間的數(shù)據(jù)孤島,實(shí)現(xiàn)系統(tǒng)之間數(shù)據(jù)的高效共享。