李文龍
(貴州財(cái)經(jīng)大學(xué),貴州 貴陽 550004)
當(dāng)前,深化計(jì)算機(jī)網(wǎng)絡(luò)物流改革的同時(shí),投入資金,加快物流各信息架構(gòu)體系的整合,形成從采購、生產(chǎn)、銷售的閉環(huán)物流管理系統(tǒng),有利于提高物流的整體效益。計(jì)算機(jī)網(wǎng)絡(luò)物流生產(chǎn)過程復(fù)雜,運(yùn)用計(jì)算機(jī)進(jìn)行管理是加快物流發(fā)展的必須手段,所以建設(shè)一套能夠協(xié)調(diào)從生產(chǎn)、安全、銷售、管理各環(huán)節(jié)的綜合架構(gòu)體系是十分重要的手段。這些架構(gòu)體系產(chǎn)生的信息多樣,信息之間的關(guān)系復(fù)雜而混亂,各架構(gòu)體系之間協(xié)調(diào)運(yùn)作十分困難。運(yùn)用有效的技術(shù)手段,開發(fā)一個(gè)復(fù)合的架構(gòu)體系,簡化管理的難度,實(shí)現(xiàn)綜合處理和動(dòng)態(tài)跟蹤,使彼此孤立的業(yè)務(wù)能夠和諧運(yùn)作,具有十分重要的實(shí)際意義。
在計(jì)算機(jī)網(wǎng)絡(luò)物流架構(gòu)體系設(shè)計(jì)時(shí),采用計(jì)算機(jī)網(wǎng)絡(luò)雙總線的架構(gòu)模式:服務(wù)總線和數(shù)據(jù)總線。服務(wù)總線負(fù)責(zé)業(yè)務(wù)服務(wù)的封裝、業(yè)務(wù)邏輯的處理、協(xié)調(diào)、編排等任務(wù);數(shù)據(jù)總線負(fù)責(zé)各業(yè)務(wù)子架構(gòu)體系之間的數(shù)據(jù)統(tǒng)一集成,對(duì)外提供統(tǒng)一的共享數(shù)據(jù)視圖。
計(jì)算機(jī)網(wǎng)絡(luò)物流架構(gòu)體系中物流服務(wù)總線與物流數(shù)據(jù)總線的協(xié)同作用,降低了架構(gòu)體系耦合度,減小了各架構(gòu)體系的復(fù)雜性。
計(jì)算機(jī)網(wǎng)絡(luò)物流內(nèi)部管理信息集成到物流服務(wù)總線和物流數(shù)據(jù)總線上的各內(nèi)部管理信息架構(gòu)體系,包括安全管理子架構(gòu)體系、運(yùn)營管理子架構(gòu)體系、決策分析子架構(gòu)體系,這些子架構(gòu)體系又包括人員定位、人員考勤、運(yùn)輸環(huán)境監(jiān)測、采購管理、銷售管理等子架構(gòu)體系;物流服務(wù)總線為各應(yīng)用架構(gòu)體系提供細(xì)粒度、可編排流程的業(yè)務(wù)服務(wù);物流數(shù)據(jù)總線是構(gòu)建在物流服務(wù)總線之上的物流核心業(yè)務(wù)主數(shù)據(jù)管理平臺(tái),為各應(yīng)用架構(gòu)體系提供業(yè)務(wù)主數(shù)據(jù)的共享;工作流引擎在計(jì)算機(jī)網(wǎng)絡(luò)物流架構(gòu)體系中實(shí)現(xiàn)對(duì)架構(gòu)體系的審批等業(yè)務(wù)流程的管理;自動(dòng)集成和同步對(duì)數(shù)據(jù)的ETL等操作制定定時(shí)任務(wù)或手工數(shù)據(jù)同步等操作;主數(shù)據(jù)庫數(shù)據(jù)來源包括各應(yīng)用架構(gòu)體系的業(yè)務(wù)數(shù)據(jù),也包括外部導(dǎo)入的數(shù)據(jù)經(jīng)過ETL(抽取、轉(zhuǎn)換、加載)等操作而得到的數(shù)據(jù),如圖1所示。
在計(jì)算機(jī)網(wǎng)絡(luò)物流信息架構(gòu)體系架構(gòu)過程中,將服務(wù)封裝多個(gè)抽象的層次,每個(gè)層次封裝特定的邏輯,在本架構(gòu)體系架構(gòu)過程中,將架構(gòu)體系劃分為應(yīng)用層、服務(wù)接口層、業(yè)務(wù)流程層。架構(gòu)體系的分層服務(wù)架構(gòu)圖如圖2所示。
通過圖2可以看出,服務(wù)接口層位于業(yè)務(wù)流程層和應(yīng)用層之間的高級(jí)的抽象,所以該架構(gòu)既能夠封裝應(yīng)用邏輯,也可以封裝業(yè)務(wù)流程邏輯。通過這樣的封裝,可以把服務(wù)追加到傳統(tǒng)的分散的架構(gòu)體系中,也可以用于封裝遺留架構(gòu)體系的業(yè)務(wù)邏輯,合成新的服務(wù)。例如在人員考勤架構(gòu)體系中就需要調(diào)用人員定位架構(gòu)體系產(chǎn)生的物流返回和物流出發(fā)的數(shù)據(jù),兩個(gè)架構(gòu)體系對(duì)外提供相應(yīng)的服務(wù),然后再合成新的服務(wù),圖3為兩個(gè)人員定位架構(gòu)體系與考勤架構(gòu)體系進(jìn)行服務(wù)合成的示意圖。
通過圖3所示的服務(wù)合成,將歷史遺留的、分散的、彼此不能信息共享、對(duì)接的架構(gòu)體系,分解為WEB服務(wù),進(jìn)行重新編排,提供給流程層或表現(xiàn)層,形成更加靈活的信息架構(gòu)體系。
經(jīng)過分析,確定了架構(gòu)體系需要構(gòu)建哪些服務(wù),而無論這些服務(wù)的形式或規(guī)模如何,都需要由大量的技術(shù)組件實(shí)現(xiàn)?;谟?jì)算機(jī)網(wǎng)絡(luò)實(shí)現(xiàn)是架構(gòu)體系開發(fā)過程中最重要的一環(huán),通過使用WebServices進(jìn)行服務(wù)的編排、融合,將計(jì)算機(jī)網(wǎng)絡(luò)物流各子架構(gòu)體系整合在一起。
計(jì)算機(jī)網(wǎng)絡(luò)物流信息架構(gòu)體系是構(gòu)建于分散的歷史遺留架構(gòu)體系之上的架構(gòu)體系,需要分布式技術(shù)平臺(tái)提供開發(fā)和運(yùn)行時(shí)的技術(shù)支持。計(jì)算機(jī)網(wǎng)絡(luò)物流歷史遺留架構(gòu)體系涉及到多個(gè)異構(gòu)平臺(tái),這些平臺(tái)開發(fā)環(huán)境各異,包括J2EE、Delphi、.net。這些歷史遺留架構(gòu)體系在信息化建設(shè)過程起到了關(guān)鍵的作用,有很多架構(gòu)體系依然對(duì)安全、生產(chǎn)起到關(guān)鍵的作用。計(jì)算機(jī)網(wǎng)絡(luò)物流信息架構(gòu)體系實(shí)現(xiàn)和部署圖如圖4所示。
圖4中所示的A、B表示物流返回、物流出發(fā)數(shù)據(jù)提取服務(wù),C表示新/舊認(rèn)證映射服務(wù),D表示舊認(rèn)證服務(wù),E表示新認(rèn)證服務(wù),F(xiàn)表示認(rèn)證服務(wù)(由C,D,E服務(wù)組合而成),G表示生成訂單服務(wù),H表示采購物品服務(wù),I表示財(cái)務(wù)服務(wù),J表示采購服務(wù)。
本架構(gòu)體系運(yùn)用計(jì)算機(jī)網(wǎng)絡(luò)和.NET并結(jié)合XML將各應(yīng)用架構(gòu)體系的業(yè)務(wù)服務(wù)實(shí)現(xiàn)為WebService。以上基于計(jì)算機(jī)網(wǎng)絡(luò)架構(gòu)的技術(shù),將計(jì)算機(jī)網(wǎng)絡(luò)物流歷史遺留架構(gòu)體系通過標(biāo)準(zhǔn)化的服務(wù)接口連接起來,打破了不同編程語言、不同應(yīng)用平臺(tái)、不同數(shù)據(jù)庫架構(gòu)體系之間形成的天然壁壘,實(shí)現(xiàn)數(shù)據(jù)的共享、實(shí)時(shí)的數(shù)據(jù)通信。
計(jì)算機(jī)網(wǎng)絡(luò)作為一種體系架構(gòu),具有標(biāo)準(zhǔn)化、規(guī)范化、部署靈活等特點(diǎn),可以實(shí)現(xiàn)物流歷史遺留架構(gòu)體系和新架構(gòu)體系的整合和業(yè)務(wù)靈活配置。下面通過示例說明計(jì)算機(jī)網(wǎng)絡(luò)體系架構(gòu)思想在計(jì)算機(jī)網(wǎng)絡(luò)物流信息架構(gòu)體系中的應(yīng)用。
3.2.1 單點(diǎn)登錄與集中授權(quán)。計(jì)算機(jī)網(wǎng)絡(luò)物流信息架構(gòu)體系提供單點(diǎn)登錄、集中授權(quán)的方法,對(duì)于有特殊業(yè)務(wù)需求的架構(gòu)體系,提供WebService的驗(yàn)證接口,用戶只需要通過門戶架構(gòu)體系登錄一次,不需要再在不同的子架構(gòu)體系進(jìn)行二次登錄,即可以進(jìn)入不同的子架構(gòu)體系。使原有架構(gòu)體系和新的架構(gòu)體系整合接入平臺(tái),為各架構(gòu)體系提供統(tǒng)一的認(rèn)證管理,支持多種平臺(tái)的綜合門戶。計(jì)算機(jī)網(wǎng)絡(luò)物流信息架構(gòu)體系實(shí)現(xiàn)單點(diǎn)登錄要實(shí)現(xiàn)的效果如圖5所示。
管理者或用戶只需通過計(jì)算機(jī)網(wǎng)絡(luò)物流架構(gòu)體系的門戶進(jìn)行一次登錄,即可以實(shí)現(xiàn)登錄到計(jì)算機(jī)網(wǎng)絡(luò)物流信息架構(gòu)體系和遺留的子架構(gòu)體系。
在計(jì)算機(jī)網(wǎng)絡(luò)物流信息架構(gòu)體系單點(diǎn)登錄分為以下兩個(gè)過程:
當(dāng)用戶要登錄其中一個(gè)遺留子架構(gòu)體系A(chǔ)時(shí),A子架構(gòu)體系跳轉(zhuǎn)到信息架構(gòu)體系要求用戶輸入賬號(hào)和密碼,登錄后產(chǎn)生主站憑證,同時(shí)產(chǎn)生唯一標(biāo)識(shí)令牌,再跳轉(zhuǎn)回遺留子架構(gòu)體系A(chǔ),此時(shí)遺留子架構(gòu)體系A(chǔ)檢測到當(dāng)前用戶擁有令牌信息,遺留子架構(gòu)體系A(chǔ)用令牌再次到計(jì)算機(jī)網(wǎng)絡(luò)信息架構(gòu)體系獲取用戶憑證,當(dāng)令牌獲取成功后允許用戶訪問子架構(gòu)體系A(chǔ)的頁面,同時(shí)在遺留子架構(gòu)體系A(chǔ)中產(chǎn)生本地憑證。
在遺留子架構(gòu)體系A(chǔ)要登錄到遺留子架構(gòu)體系B,在上一過程中描述過的A已經(jīng)登錄完成獲取了令牌,所以在遺留子架構(gòu)體系B會(huì)用此令牌到計(jì)算機(jī)網(wǎng)絡(luò)物流信息架構(gòu)體系獲取用戶登錄憑證.當(dāng)從計(jì)算機(jī)網(wǎng)絡(luò)物流信息架構(gòu)體系獲取成功后,允許訪問遺留子架構(gòu)體系授權(quán)的頁面,同時(shí)產(chǎn)生遺留子架構(gòu)體系B的本地憑證,在下次訪問時(shí)先訪問本地的憑證,減少網(wǎng)絡(luò)的訪問量。
計(jì)算機(jī)網(wǎng)絡(luò)物流信息架構(gòu)體系提供的授權(quán)管理分為架構(gòu)體系級(jí)訪問權(quán)限控制和架構(gòu)體系內(nèi)多粒度訪問權(quán)限控制。
單點(diǎn)登錄和集中授權(quán)實(shí)現(xiàn)的關(guān)鍵步驟和核心代碼如下所述:
人員定位管理架構(gòu)體系將物流返回、物流出發(fā)、考勤信息上傳到FTP服務(wù)器后,考勤管理信息架構(gòu)體系從FTP服務(wù)器下載考勤信息XML文件,然后解析XML文件,轉(zhuǎn)變?yōu)榭记谛畔ⅲ⒂?jì)算績效信息,存儲(chǔ)到考勤管理信息架構(gòu)體系的數(shù)據(jù)庫中,計(jì)算機(jī)網(wǎng)絡(luò)物流信息架構(gòu)體系通過定時(shí)任務(wù)調(diào)用此服務(wù)的接口,生成人員考勤信息文件。其主要代碼如下所示:
Basic Http Binding check Work Binding=new Basic Http Binding();
System.Service Model.Channels.Http Request Message Property http=new Http Request Message Property();
myBinding.Security.Mode=Basic Http Security Mode.None;
Address Header header=Address Header.Create Address Header(“計(jì)算機(jī)網(wǎng)絡(luò)PAction”,wsd lURL,checkwork);
Jax Rpc Axis Service Clientjrpc=new Jax RpcAxis Service Client(check Work Binding,ea);
Jrpc.get Check Work Xml File();//調(diào)用人員定位架構(gòu)體系提供的服務(wù)接口
通過C#解析XML文件
string content=string.Empty;
Xml Document xml Doc=new Xml Document();
Xml Attribute xml Attribute=null;
……部分代碼略……
xml Doc.Load(xml FileName);//加載XML文檔
Xml Node xml Node=xmlDoc.Select Single Node(xpath);
if(xmlNode!=null)
{
if(xml Node.Attributes.Count>0)
{
xml Attribute=xml Node.Attributes[xml AttributeName];
}}
部分代碼略。
3.2.2 采購訂單功能開發(fā)。在基于計(jì)算機(jī)網(wǎng)絡(luò)構(gòu)建物流信息架構(gòu)體系時(shí),運(yùn)用分層設(shè)計(jì)的思想,將架構(gòu)體系分為數(shù)據(jù)庫、組件層、物流總線、服務(wù)接口層、客戶端幾個(gè)層次,物流服務(wù)總線為服務(wù)提供一個(gè)統(tǒng)一的平臺(tái),并屏蔽組件之間的差異性,服務(wù)可以低耦合地接入到服務(wù)總線上。以采購管理子架構(gòu)體系的采購訂單跟蹤表的實(shí)現(xiàn)過程為例,說明基于計(jì)算機(jī)網(wǎng)絡(luò)思想開發(fā)架構(gòu)體系功能的主要步驟.管理子架構(gòu)體系的采購訂單跟蹤表功能的界面截圖如圖6所示。
實(shí)現(xiàn)的關(guān)鍵步驟:表示層界面的開發(fā),在計(jì)算機(jī)網(wǎng)絡(luò)物流信息架構(gòu)體系界面層的設(shè)計(jì)過程中以.net的wpf作為界面設(shè)計(jì)的主要技術(shù),并可實(shí)現(xiàn)由表示層(下轉(zhuǎn)第353頁)(上接第350頁)或其它架構(gòu)體系調(diào)用,主要示例代碼如下:
Namespace App.Server.App Service.Purchase Order
{ public class Purchase Order Service:Base App Service
{//提取采購訂單信息集合
public IList find Purchase OrderList(Purchase Order purchase-Order)
{
return purchase Order Dao.Query Purchase OrderList(purchase Order,null);
}
}
}
部分類似代碼略。
基于計(jì)算機(jī)網(wǎng)絡(luò)構(gòu)建物流信息架構(gòu)體系是建立在對(duì)計(jì)算機(jī)網(wǎng)絡(luò)物流遺留架構(gòu)體系整合的基礎(chǔ)上的信息架構(gòu)體系。計(jì)算機(jī)網(wǎng)絡(luò)物流早期建設(shè)遺留的應(yīng)用架構(gòu)體系有的是物流的關(guān)鍵業(yè)務(wù),不能全部替換或放棄,而新的應(yīng)用架構(gòu)體系基于新的技術(shù)和體系架構(gòu),與原有的體系架構(gòu)有很大的差異。在本次信息化建設(shè)過程中,運(yùn)用計(jì)算機(jī)網(wǎng)絡(luò)的思想對(duì)現(xiàn)有的架構(gòu)體系進(jìn)行集成,實(shí)現(xiàn)各遺留架構(gòu)體系的整合、對(duì)接、集成,充分利用現(xiàn)有的資源,實(shí)現(xiàn)計(jì)算機(jī)網(wǎng)絡(luò)物流,優(yōu)化生產(chǎn)、安全、管理流程。
[1]費(fèi)圣英.電力物流信息化計(jì)算機(jī)網(wǎng)絡(luò)實(shí)踐[M].南京:南京大學(xué)出版社,2010.
[2]池英軍.數(shù)據(jù)庫設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,2010.
[3]劉偉琴,劉洪濤.軟件需求[M].北京:清華大學(xué)出版社,2010.
[4]Thomas Erl.Principles of Service Design[M].北京:北京電子工業(yè)出版社,2010.
[5]Thomas Erl.Service-Oriented Architecture:[M].北京:北京電子工業(yè)出版社,2010.