• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于XML文檔技術(shù)的數(shù)據(jù)通訊組件的設(shè)計(jì)與實(shí)現(xiàn)

      2017-10-11 07:06:10孫學(xué)波楊明威
      關(guān)鍵詞:數(shù)據(jù)通訊結(jié)點(diǎn)文檔

      孫學(xué)波,楊明威

      (遼寧科技大學(xué) 軟件學(xué)院,遼寧 鞍山 114051)

      基于XML文檔技術(shù)的數(shù)據(jù)通訊組件的設(shè)計(jì)與實(shí)現(xiàn)

      孫學(xué)波,楊明威

      (遼寧科技大學(xué) 軟件學(xué)院,遼寧 鞍山 114051)

      為了解決分布式ERP系統(tǒng)中各結(jié)點(diǎn)之間的信息同步、界面實(shí)時(shí)更新和實(shí)時(shí)數(shù)據(jù)交換等技術(shù)問(wèn)題,同時(shí)也為了降低軟件各組成部分之間的耦合以及提高軟件的可復(fù)用程度,本文提出了一種基于TCP/IP協(xié)議并使用XML文檔格式的數(shù)據(jù)傳輸技術(shù),并將其封裝成一個(gè)可復(fù)用的軟件組件。該組件使用XML文檔格式描述數(shù)據(jù)對(duì)象,采用TCP/IP數(shù)據(jù)傳輸技術(shù),可應(yīng)用于分布式ERP系統(tǒng)內(nèi)部的數(shù)據(jù)通訊。本文分析了ERP系統(tǒng)在信息實(shí)時(shí)處理(RIP)和實(shí)時(shí)信息交換(RIE)等方面的軟件需求,詳細(xì)地給出了這個(gè)數(shù)據(jù)通訊組件的具體設(shè)計(jì)和實(shí)現(xiàn)方案,并介紹了這個(gè)組件在鞍鋼鐵路運(yùn)輸ERP系統(tǒng)中的實(shí)際應(yīng)用情況。

      XML;信息實(shí)時(shí)處理;實(shí)時(shí)信息交換;數(shù)據(jù)通訊組件;序列化

      目前,企業(yè)資源計(jì)劃系統(tǒng)(Enterprise resource planning,ERP)已經(jīng)獲得了非常廣泛的應(yīng)用。近幾年來(lái),ERP系統(tǒng)的形式、內(nèi)容和應(yīng)用領(lǐng)域都得到了較大的發(fā)展[1-2]?;诮M件的ERP系統(tǒng)的分析與設(shè)計(jì)以及ERP系統(tǒng)的實(shí)時(shí)性問(wèn)題也已經(jīng)成為當(dāng)前ERP領(lǐng)域的熱點(diǎn)問(wèn)題。

      傳統(tǒng)的ERP系統(tǒng)主要應(yīng)用于制造業(yè),目的是為企業(yè)提供有效的物資、資金和信息資源的一體化管理的企業(yè)信息管理系統(tǒng)。隨著信息技術(shù)的不斷發(fā)展,ERP系統(tǒng)的應(yīng)用范圍已經(jīng)擴(kuò)大到國(guó)內(nèi)各種類型的企業(yè),如食品生產(chǎn)和物流等企業(yè)。同時(shí),ERP系統(tǒng)的目標(biāo)也從優(yōu)化企業(yè)業(yè)務(wù)流程轉(zhuǎn)換成提高企業(yè)的核心競(jìng)爭(zhēng)力。這個(gè)變化也使得ERP的結(jié)構(gòu)發(fā)生了較大的變化。不同行業(yè)類型企業(yè)的ERP的結(jié)構(gòu)也會(huì)表現(xiàn)出較大的差異。

      從ERP系統(tǒng)目標(biāo)的角度來(lái)看,實(shí)時(shí)性必然是ERP系統(tǒng)的本質(zhì)特征之一。從宏觀的角度來(lái)看,任何ERP系統(tǒng)都需要對(duì)環(huán)境變化做出及時(shí)有時(shí)甚至是實(shí)時(shí)的響應(yīng)。從微觀的角度來(lái)看,系統(tǒng)局部狀態(tài)的改變往往會(huì)引起其相關(guān)或相鄰部分狀態(tài)的改變,有時(shí)甚至是系統(tǒng)全局狀態(tài)的變化,這都要求系統(tǒng)做出及時(shí)或?qū)崟r(shí)的響應(yīng)。并且越是局部的變化,對(duì)其響應(yīng)的實(shí)時(shí)性的要求往往越高,但影響的范圍也越小。這個(gè)特點(diǎn)也為實(shí)時(shí)ERP系統(tǒng)提供了實(shí)現(xiàn)的可能性。

      在數(shù)據(jù)通訊服務(wù)軟件領(lǐng)域,各種開(kāi)發(fā)環(huán)境都提供了不同層次和形式的通訊服務(wù)軟件包或通訊服務(wù)組件。低層的有封裝了各種通訊協(xié)議的軟件包,高層的有擁有不同目的和特性的各種數(shù)據(jù)通訊組件。它們擁有各自不同的特點(diǎn)和適用范圍。例如,微軟公司的MQ(Message Queue)就是一個(gè)著名的數(shù)據(jù)通訊服務(wù)組件。其主要特點(diǎn)是異步通訊的方式提供可靠的通信服務(wù)。即它關(guān)注是通訊的可靠性而不是實(shí)時(shí)性,因此不適合需要實(shí)時(shí)響應(yīng)的通訊需求。再如Microsoft.NET Remoting組件提供了一種允許遠(yuǎn)程對(duì)象之間進(jìn)行交互的框架,也可以支持?jǐn)?shù)據(jù)通訊。但這個(gè)組件提供的服務(wù)仍然屬于比較低層的服務(wù),使用這個(gè)組件并不十分適合本文討論的ERP系統(tǒng)實(shí)時(shí)性問(wèn)題[3-5]。

      本文從ERP系統(tǒng)的實(shí)時(shí)數(shù)據(jù)交換技術(shù)問(wèn)題的角度出發(fā),分析了ERP系統(tǒng)在信息實(shí)時(shí)處理(RIP)和實(shí)時(shí)交換(RIE)方面的需求,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于XML數(shù)據(jù)文檔的數(shù)據(jù)通訊組件,并概要地介紹了這個(gè)組件在實(shí)際的ERP項(xiàng)目中的具體應(yīng)用。

      1 需求分析

      現(xiàn)代ERP系統(tǒng)通常是一個(gè)分布式計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng),系統(tǒng)中各個(gè)結(jié)點(diǎn)之間的信息傳遞可分為數(shù)據(jù)信息傳遞和控制信息傳遞兩種方式,這兩種信息傳遞的實(shí)時(shí)性要求通常是不同的。其中的控制信息傳遞的實(shí)時(shí)性要求往往會(huì)更高[6-7]。

      ERP系統(tǒng)的大部分功能均集中在信息處理方面,系統(tǒng)的運(yùn)作通常以人機(jī)交互操作方式為主。因此,ERP在數(shù)據(jù)通訊方面的實(shí)時(shí)性要求并不太高,不同結(jié)點(diǎn)之間的響應(yīng)時(shí)間通??梢源_定在秒級(jí)。

      1.1 通訊類型分析

      ERP系統(tǒng)內(nèi)的實(shí)時(shí)通訊主要指系統(tǒng)內(nèi)各部各個(gè)結(jié)點(diǎn)之間的數(shù)據(jù)通訊,通訊內(nèi)容可以是一個(gè)簡(jiǎn)單的消息、一個(gè)復(fù)雜的實(shí)體對(duì)象,也可以是一個(gè)用戶文檔。如一個(gè)WORD文檔或一張圖片等。

      前者主要用于協(xié)調(diào)系統(tǒng)中各結(jié)點(diǎn)之間的協(xié)作關(guān)系,用以實(shí)現(xiàn)分布式系統(tǒng)的實(shí)時(shí)更新。例如,一個(gè)結(jié)點(diǎn)更新了系統(tǒng)狀態(tài)時(shí),向相關(guān)結(jié)點(diǎn)發(fā)布一個(gè)更新消息,收到消息的結(jié)點(diǎn)就可以刷新系統(tǒng)狀態(tài),以保持系統(tǒng)狀態(tài)的一致。后者則用于支持各結(jié)點(diǎn)用戶之間的協(xié)作。

      1.2 通訊數(shù)據(jù)類型

      從應(yīng)用角度出發(fā),可以把通訊數(shù)據(jù)劃分成即時(shí)消息、用戶數(shù)據(jù)和系統(tǒng)內(nèi)部控制信息等三類。

      (1)即時(shí)消息:系統(tǒng)用戶之間交換的消息。如通知、公告和用戶間的聊天信息等。

      (2)用戶數(shù)據(jù):包括單個(gè)記錄,表格和數(shù)據(jù)文檔等。

      (3)系統(tǒng)內(nèi)部控制信息:由系統(tǒng)定義的在分布式系統(tǒng)中不同進(jìn)程間的協(xié)作信息,主要用于控制進(jìn)程間的協(xié)作。這類信息通常對(duì)用戶來(lái)說(shuō)是透明的。

      從系統(tǒng)設(shè)計(jì)或信息結(jié)構(gòu)角度,可以把通訊數(shù)據(jù)劃分為簡(jiǎn)單對(duì)象、復(fù)雜對(duì)象和文檔對(duì)象等三種類型。不同類型的通訊可選用不同的對(duì)象支持。

      (1)簡(jiǎn)單對(duì)象:指應(yīng)用系統(tǒng)中使用的某個(gè)實(shí)體對(duì)象,其主要特征是其各屬性均為簡(jiǎn)單的數(shù)據(jù)類型。通常用于傳遞系統(tǒng)的狀態(tài)增量信息,也可以表示用戶之間傳遞的簡(jiǎn)單信息。

      (2)復(fù)雜對(duì)象:由若干個(gè)簡(jiǎn)單對(duì)象聚合而成的對(duì)象。如商品訂單就是由訂單明細(xì)聚合而成的對(duì)象。

      (3)文檔對(duì)象:封裝了某個(gè)用戶文檔的數(shù)據(jù)對(duì)象。這種對(duì)象由文檔的描述信息和文檔數(shù)據(jù)組成。如傳遞一個(gè)word文檔,一個(gè)圖片等。系統(tǒng)不解析此對(duì)象的文檔內(nèi)容。

      1.3 基本功能需求

      從通訊類型分析的角度出發(fā),同時(shí)為保證通訊的實(shí)時(shí)性和可靠性,定義如下五個(gè)用例。圖1給出了通訊組件的用例模型。

      圖1 數(shù)據(jù)通訊組件的用例圖Fig.1 Use case diagram of communication diagram

      (1)注冊(cè)(Login)。某個(gè)結(jié)節(jié)啟動(dòng)時(shí)向通訊服務(wù)器發(fā)出注冊(cè)請(qǐng)求,通訊服務(wù)器將該節(jié)點(diǎn)的信息加入到在線結(jié)點(diǎn)列表,并向注冊(cè)結(jié)點(diǎn)返回當(dāng)前在線結(jié)點(diǎn)列表。同時(shí)向所有在線結(jié)點(diǎn)發(fā)出在線結(jié)點(diǎn)列表更新消息。

      (2)注銷(Logout)。當(dāng)某個(gè)結(jié)點(diǎn)關(guān)閉時(shí),向通訊服務(wù)器發(fā)出注銷通知消息,通訊服務(wù)器將該結(jié)點(diǎn)的信息從在線結(jié)點(diǎn)列表中刪除,并向所有在線結(jié)點(diǎn)發(fā)出在線結(jié)點(diǎn)列表更新消息。

      (3)發(fā)送對(duì)象(Send)。當(dāng)某個(gè)結(jié)點(diǎn)的狀態(tài)發(fā)生變化或需要發(fā)送用戶消息時(shí),結(jié)點(diǎn)向通訊服務(wù)器發(fā)出數(shù)據(jù)通訊請(qǐng)求,通訊服務(wù)器接收到數(shù)據(jù)后將數(shù)據(jù)轉(zhuǎn)發(fā)給指定的結(jié)點(diǎn)。

      (4)廣播(Broadcast)。當(dāng)某個(gè)結(jié)點(diǎn)的狀態(tài)發(fā)生變化需要通知所有其他結(jié)點(diǎn)時(shí),結(jié)點(diǎn)向通訊服務(wù)器發(fā)出數(shù)據(jù)通訊請(qǐng)求,通訊服務(wù)器接收到數(shù)據(jù)后將數(shù)據(jù)轉(zhuǎn)發(fā)給在線結(jié)點(diǎn)列表中的所有其它結(jié)點(diǎn)。

      (5)接收(Receive)。通訊服務(wù)器向客戶結(jié)點(diǎn)發(fā)出數(shù)據(jù)通訊請(qǐng)求,客戶結(jié)點(diǎn)接收到通訊請(qǐng)求后,將數(shù)據(jù)提交給特定的數(shù)據(jù)接收模塊解析并實(shí)例化相應(yīng)的數(shù)據(jù)對(duì)象,系統(tǒng)將根據(jù)接受到的數(shù)據(jù)對(duì)象的具體內(nèi)容作進(jìn)出相應(yīng)的處理。

      1.4 通訊組件的非功能需求

      本通訊構(gòu)件的非功能需求主要體現(xiàn)在時(shí)間性和互操作性兩個(gè)方面。

      本組件的時(shí)間性取決于由系統(tǒng)的體系結(jié)構(gòu),能夠滿足除過(guò)程控制等領(lǐng)域之外的實(shí)時(shí)信息處理等方面的需求?;ゲ僮餍詣t指系統(tǒng)與外界或系統(tǒng)與系統(tǒng)之間的相互作用能力。

      本組件將使用環(huán)境無(wú)關(guān)的通訊協(xié)議(TCP/IP)和基于文本的XML文檔技術(shù)加以實(shí)現(xiàn),以盡可能提高系統(tǒng)通訊的時(shí)間性和互操作性[7-9]。

      2 數(shù)據(jù)通訊組件的結(jié)構(gòu)設(shè)計(jì)

      2.1 數(shù)據(jù)對(duì)象的XML文檔表示

      為提高系統(tǒng)的互操作性,本組件將通訊數(shù)據(jù)轉(zhuǎn)換成一個(gè)XML文檔。根據(jù)通訊數(shù)據(jù)類型的劃分和組件的功能需求,本組件定義了實(shí)體XML、聚合XML和文檔XML等多種XML文檔格式,以滿足系統(tǒng)的通訊需求[10-18]。

      2.1.1 簡(jiǎn)單對(duì)象的XML文檔結(jié)構(gòu) 實(shí)體XML用于表示應(yīng)用系統(tǒng)中的簡(jiǎn)單實(shí)體對(duì)象。其結(jié)構(gòu)定義如圖2所示。

      圖2 實(shí)體XML文檔結(jié)構(gòu)圖Fig.2 Document structure for entity object

      例如,一本書(shū)的信息可以描述成如下的形式。

      <?xml version=/"1.0/"encoding=/"utf-8/"?>

      <Book catology=/”Entity/”>

      <ISBN>0764544020</ISBN>

      <Title>Beginning Access 2002 VBA</Title>

      <Date>2000-04-01</Date>

      <Author>Dave Sussman</Author>

      </Book>

      其中,Entity ID為實(shí)體對(duì)象的標(biāo)識(shí)符,在本文檔中被作為文檔標(biāo)識(shí)符。catology=/”Entity/”表示本文檔為一個(gè)實(shí)體型文檔。

      2.1.2 聚合對(duì)象的XML文檔表示 本文中,聚合XML文檔用于表示一個(gè)聚合對(duì)象,聚合XML文檔由這個(gè)實(shí)體集對(duì)象自身的屬性值和聚合對(duì)象組成。文檔格式定義如圖3所示。

      其中,EntitySet ID為實(shí)體集對(duì)象的標(biāo)識(shí)符,在本文檔中被作為文檔標(biāo)識(shí)符。AttributeName和AttributeValue分別為實(shí)體集對(duì)象的屬性名和屬性值。EntityID為聚集中每個(gè)實(shí)體對(duì)象的標(biāo)識(shí)符。

      2.1.3 文檔對(duì)象的XML表示 文檔對(duì)象的本質(zhì)就是一個(gè)預(yù)定義的簡(jiǎn)單對(duì)象,其中的文檔的描述信息將包括文檔名(Document Name)、文檔類型(Document Type)和文檔長(zhǎng)度(Document Length)組成。文檔內(nèi)容則被定義成一個(gè)二進(jìn)制數(shù)組。

      圖3 聚合對(duì)象的XML文檔結(jié)構(gòu)圖Fig.3 Document structure for aggregation object

      例如,一個(gè)名為“MyDocument.doc”的Word文檔將被轉(zhuǎn)換成如下的XML文檔。

      此時(shí),文檔對(duì)象的XML文檔定義如下所示。

      <DocID catology=/”User Document/”>

      <Doc Name> MyDocument</Doc Name>

      <Doc Type> DOC </Doc Type>

      <Doc Length> Length of MyDocument.DOC </Doc Length>

      <DocContent >ContentofMyDocument.DOC </Doc Content>

      <DocID>

      2.2 體系結(jié)構(gòu)設(shè)計(jì)

      2.2.1 組件的體系結(jié)構(gòu) 本通訊組件的整體結(jié)構(gòu)被設(shè)計(jì)成一個(gè)三層的體系結(jié)構(gòu),分為應(yīng)用界面、數(shù)據(jù)轉(zhuǎn)換和傳輸控制三個(gè)層次。其底層使用TCP/IP通訊協(xié)議。

      (1)應(yīng)用界面層(Application Interface)??蛻舫绦蜇?fù)責(zé)組織和管理通訊數(shù)據(jù),通過(guò)應(yīng)用界面層提供的外部接口,傳輸和接收用戶的數(shù)據(jù)對(duì)象。

      圖4 對(duì)象通訊組件的體系結(jié)構(gòu)Fig.4 Architecture of component

      (2)數(shù)據(jù)轉(zhuǎn)換層(Data Mapping)。發(fā)送數(shù)據(jù)時(shí),負(fù)責(zé)將數(shù)據(jù)對(duì)象序列化成相應(yīng)的XML文檔。接收數(shù)據(jù)時(shí),負(fù)責(zé)根據(jù)接收到的XML文檔創(chuàng)建相應(yīng)的數(shù)據(jù)對(duì)象。

      (3)數(shù)據(jù)傳輸層(Data Transform)。將XML文檔視為二進(jìn)制流,使用TCP/IP協(xié)議實(shí)現(xiàn)XML文檔二進(jìn)制流的傳輸過(guò)程。

      2.2.2 XML數(shù)據(jù)接口 為實(shí)現(xiàn)數(shù)據(jù)對(duì)象到XML文檔的轉(zhuǎn)換,組件對(duì)外提供了一個(gè)名為IObjectForXML的接口,通過(guò)這個(gè)接口,客戶程序可以定義可序列化成XML文檔的數(shù)據(jù)對(duì)象。不同的是,這個(gè)接口被定義成一個(gè)抽象類。IObjectForXML接口的具體定義如圖5所示。

      圖5 可通訊的數(shù)據(jù)接口類圖Fig.5 Class Diagram for Data Object needs to be transferred

      為支持不同的數(shù)據(jù)通訊類型,組件中還同時(shí)定義了可通訊的實(shí)體對(duì)象類(IEntityForXML)、聚合類(IAggregationForXML)、文檔類(IDocument-ForXML)和即時(shí)消息類(IMessageForXML)等四個(gè)派生類。這些類分別為不同的可通訊數(shù)據(jù)對(duì)象給出了一個(gè)更具體的序列化接口。

      實(shí)體對(duì)象類僅包含具有簡(jiǎn)單數(shù)據(jù)類型的屬性,它需要實(shí)現(xiàn)IObjectForXML接口的全部方法。

      聚合對(duì)象主要由一組可通訊的數(shù)據(jù)對(duì)象構(gòu)成的集合組成。每個(gè)聚合對(duì)象類均必須實(shí)現(xiàn)IObjectForXML接口。在用戶定義的具體派生類中,只需要實(shí)現(xiàn)接口的WriteMemberTo和ReadMemberFrom兩個(gè)方法即可。

      與聚合實(shí)體對(duì)象類相似,復(fù)合對(duì)象類的定義也要求其數(shù)據(jù)成員必須是可通訊的。

      可通訊的文檔對(duì)象類定義了一組與文檔有關(guān)的屬性,這些屬性給出了文檔的元數(shù)據(jù)描述,其序列化過(guò)程與實(shí)體類相似,用戶可以直接使用,也可以按照模板方法模式[19]繼承這個(gè)類,以實(shí)現(xiàn)個(gè)性化的文檔通訊過(guò)程。

      2.2.3 簡(jiǎn)單工廠接口(ISimpleFactory)設(shè)計(jì) 簡(jiǎn)單工廠接口(ISimpleFactory)用于定義在通訊過(guò)程中根據(jù)接收到的XML數(shù)據(jù)創(chuàng)建數(shù)據(jù)對(duì)象所需要的操作,這個(gè)接口的具體實(shí)現(xiàn)必須由用戶提供,可以用單件模式[19]實(shí)現(xiàn)。

      2.2.4 名字空間(Naming Space)設(shè)計(jì) 名字是指本組件為封裝各種數(shù)據(jù)對(duì)象使用的標(biāo)識(shí)符,用于標(biāo)識(shí)XML文檔中存儲(chǔ)的數(shù)據(jù)。名字空間則是指組件使用的所有名字構(gòu)成的集合,稱為名字空間。

      組件的內(nèi)部名字空間定義于組件的內(nèi)部,對(duì)用戶透明。用戶名字空間由用戶自行定義,服從于用戶系統(tǒng)的命名空間。二者處于系統(tǒng)的不同層次,不存在命名沖突問(wèn)題。

      組件內(nèi)部名字主要包括“數(shù)據(jù)對(duì)象的分類標(biāo)識(shí)”和“文檔類的屬性標(biāo)識(shí)”,其具體定義可參見(jiàn)表1和表2。

      用戶自定義的名字空間,用于標(biāo)識(shí)用戶數(shù)據(jù)對(duì)象,它依賴于用戶系統(tǒng)的類空間或?qū)ο罂臻g,是用戶自定義的類和屬性標(biāo)識(shí)符等符號(hào)構(gòu)成的集合,主要用于數(shù)據(jù)文檔的序列化過(guò)程,是數(shù)據(jù)對(duì)象進(jìn)行通訊的基礎(chǔ),也是一個(gè)應(yīng)用層的通訊協(xié)議。

      表1 數(shù)據(jù)對(duì)象的分類標(biāo)識(shí)Tab.1 Classifier for data objects

      表2 文檔類的屬性標(biāo)識(shí)Tab.2 Classifier for attributes of data object

      2.3 應(yīng)用接口設(shè)計(jì)

      組件對(duì)外的功能接口集中在組件的應(yīng)用接口層,它負(fù)責(zé)組件與其客戶程序之間的交互。本組件的應(yīng)用接口設(shè)計(jì)如圖6所示。

      圖6 應(yīng)用接口設(shè)計(jì)Fig.6 Class diagram for application interface

      UserList是當(dāng)前用戶列表。_CurrentUser表示系統(tǒng)當(dāng)前用戶。_pListener偵聽(tīng)線程對(duì)象的引用。_MessageQueue實(shí)時(shí)一個(gè)隊(duì)列,用于緩存通訊過(guò)程接收到的數(shù)據(jù)對(duì)象。_DataTransfer:則是一個(gè)數(shù)據(jù)轉(zhuǎn)換器,負(fù)責(zé)數(shù)據(jù)格式的轉(zhuǎn)換

      組件的主要操作包括LogOn、LogOut、SendTo和BroadCasting等。組件的主要事件則包括Received an Immediate Message和Received an Object等。

      2.4 數(shù)據(jù)映射層的設(shè)計(jì)

      組件定義了DataMapper類以實(shí)現(xiàn)數(shù)據(jù)對(duì)象與XML的相互轉(zhuǎn)換功能。具體設(shè)計(jì)如圖7所示。

      圖7 DataMaper類定義Fig.7 Class diagram for DataMaper

      DataMapper類的主要屬性包括:一個(gè)用于創(chuàng)建數(shù)據(jù)對(duì)象的簡(jiǎn)單工廠對(duì)象(_SimpleFactory)。一個(gè)數(shù)據(jù)轉(zhuǎn)換器(_ DataTransfer)和一個(gè)數(shù)據(jù)偵聽(tīng)線程對(duì)象(_DataListener)。

      主要操作包括:ConvertObjectToXML(DataO-bject:IObjectForXML,DestHost:String)//將數(shù)據(jù)對(duì)象轉(zhuǎn)換成XML文檔,并發(fā)送出去。

      ParseXMLDocumen(XMLDocument:XMLDocument)//解析接收到的文檔,并根據(jù)接收到的文檔內(nèi)容創(chuàng)建相應(yīng)的數(shù)據(jù)對(duì)象。

      FiretheEventForDataArrived(Object:IObject-ForXML)//激活接收到數(shù)據(jù)對(duì)象事件。

      2.5 數(shù)據(jù)傳輸層(Data Transfer)設(shè)計(jì)

      數(shù)據(jù)傳輸層主要負(fù)責(zé)XML文檔數(shù)據(jù)的傳輸。發(fā)送數(shù)據(jù)時(shí),將接收到的XML文檔,打包成流數(shù)據(jù),并將流數(shù)據(jù)發(fā)送到指定的主機(jī)。接收數(shù)據(jù)過(guò)程則與之相反。

      2.5.1 數(shù)據(jù)傳輸層的結(jié)構(gòu) 數(shù)據(jù)傳輸層由數(shù)據(jù)發(fā)送對(duì)象(Data Ttransformer)和數(shù)據(jù)幀聽(tīng)對(duì)象(Data Listener)兩個(gè)對(duì)象組成。數(shù)據(jù)發(fā)送對(duì)象隨系統(tǒng)運(yùn)行的需要?jiǎng)討B(tài)創(chuàng)建并發(fā)送數(shù)據(jù);數(shù)據(jù)偵聽(tīng)對(duì)象則是一個(gè)靜態(tài)對(duì)象,負(fù)責(zé)監(jiān)聽(tīng)并接受數(shù)據(jù)。

      2.5.2 數(shù)據(jù)發(fā)送過(guò)程 數(shù)據(jù)發(fā)送過(guò)程負(fù)責(zé)發(fā)送用戶數(shù)據(jù),發(fā)送之前,數(shù)據(jù)被打包成數(shù)據(jù)包格式:文檔類型(4個(gè)字節(jié))+數(shù)據(jù)長(zhǎng)度(8個(gè)字節(jié))+數(shù)據(jù)內(nèi)容。

      數(shù)據(jù)發(fā)送過(guò)程由Datatransfer類的SendData方法實(shí)現(xiàn)。其基本步驟如下:

      (1)將數(shù)據(jù)對(duì)象DataObject轉(zhuǎn)換成XML文檔;

      (2)按字節(jié)計(jì)算XML文檔的長(zhǎng)度;

      (3)建立到通訊服務(wù)器的連接,依次將XML文檔的標(biāo)識(shí)、長(zhǎng)度和內(nèi)容發(fā)送到通訊服務(wù)器;

      (4)通訊服務(wù)器根據(jù)通訊的類型,將數(shù)據(jù)轉(zhuǎn)發(fā)到相應(yīng)的結(jié)點(diǎn);

      (5)結(jié)束。

      2.5.3 數(shù)據(jù)接收過(guò)程 接收數(shù)據(jù)過(guò)程由單獨(dú)一個(gè)線程實(shí)現(xiàn)。其執(zhí)行過(guò)程如下:

      (1)建立到通訊服務(wù)器的連接;

      (2)重復(fù)下列步驟,直到本線程終止:

      ①啟動(dòng)偵聽(tīng)程序,等待接收數(shù)據(jù);

      ②開(kāi)始接收數(shù)據(jù)流;

      ③接收并獲取XML文檔標(biāo)識(shí)和XML文檔長(zhǎng)度;

      ④按XML文檔長(zhǎng)度接收數(shù)據(jù),并存放在一個(gè)臨時(shí)文檔中;

      ⑤將接收到的XML文檔保存在隊(duì)列中,通知數(shù)據(jù)映射層接收到一個(gè)XML文檔;

      (3)關(guān)閉連接,結(jié)束接收過(guò)程。

      3 通訊組件的應(yīng)用實(shí)例

      在鞍鋼鐵運(yùn)公司的鐵路運(yùn)輸ERP系統(tǒng)項(xiàng)目[20]中,應(yīng)用了包括此組件在內(nèi)的多種組件成功地構(gòu)建起了一個(gè)基于網(wǎng)絡(luò)的分布式車輛調(diào)度平臺(tái),解決了項(xiàng)目中的實(shí)時(shí)信息交換方面的技術(shù)難題,如車輛分布信息的實(shí)時(shí)更新、車輛調(diào)度作業(yè)技術(shù)圖表的實(shí)時(shí)生成自動(dòng)與刷新、作業(yè)區(qū)車流統(tǒng)計(jì)的自動(dòng)生成和車輛調(diào)度作業(yè)命令的實(shí)時(shí)傳遞,為項(xiàng)目的成功奠定了堅(jiān)實(shí)的技術(shù)基礎(chǔ)。

      鞍鋼鐵路運(yùn)輸ERP系統(tǒng)的目標(biāo)是對(duì)該公司的整個(gè)運(yùn)輸過(guò)程實(shí)現(xiàn)有效的控制和管理,提高該公司的運(yùn)輸效率和管理水平,提高企業(yè)的經(jīng)濟(jì)效益和社會(huì)效益。

      該公司的鐵路運(yùn)輸指揮系統(tǒng)是一個(gè)由90多個(gè)結(jié)點(diǎn)構(gòu)成的具有層次結(jié)構(gòu)的城域網(wǎng)絡(luò)系統(tǒng),其網(wǎng)絡(luò)結(jié)點(diǎn)被劃分成總調(diào)度室、車站和作業(yè)區(qū)等三級(jí)調(diào)度結(jié)點(diǎn)。其中的低層結(jié)點(diǎn)(作業(yè)區(qū)調(diào)度)負(fù)責(zé)完成各種具體的車輛調(diào)度作業(yè),如裝車、卸車、編組、調(diào)車和行車等。中層結(jié)點(diǎn)(車站調(diào)度)負(fù)責(zé)指揮車站內(nèi)各作業(yè)區(qū)之間的車輛調(diào)配和運(yùn)轉(zhuǎn)、還要負(fù)責(zé)組織完成與其他車站之間的行車作業(yè)。中層結(jié)點(diǎn)還要監(jiān)控轄區(qū)內(nèi)各個(gè)作業(yè)區(qū)的工作狀態(tài)。高層結(jié)點(diǎn)(總調(diào)度室)不僅要負(fù)責(zé)指揮、控制和管理轄區(qū)內(nèi)各車站以及各個(gè)作業(yè)區(qū)的各種調(diào)度作業(yè)和行車作業(yè),還要重點(diǎn)關(guān)注主要作業(yè)區(qū)的車輛分布、車輛調(diào)度作業(yè)以及車小時(shí)統(tǒng)計(jì)等具有可視化特征的信息。另外,系統(tǒng)中任何兩個(gè)結(jié)點(diǎn)之間還需要實(shí)時(shí)傳遞車輛預(yù)報(bào)、車輛確報(bào)和車流信息。最后,低層結(jié)點(diǎn)與機(jī)車之間還需要實(shí)時(shí)地傳遞各種車輛調(diào)度命令信息。這些特點(diǎn)決定了這個(gè)運(yùn)輸系統(tǒng)所具有的多樣化的實(shí)時(shí)性要求,同時(shí)也決定了該系統(tǒng)結(jié)構(gòu)的復(fù)雜性。

      為了解決系統(tǒng)的復(fù)雜性問(wèn)題,使用了一種比較新的面向組件的軟件體系結(jié)構(gòu)設(shè)計(jì)。將系統(tǒng)中的車輛分布、車輛調(diào)度作業(yè)技術(shù)圖表、列車運(yùn)行圖和數(shù)據(jù)通訊等主要模塊設(shè)計(jì)成可獨(dú)立修改和擴(kuò)充的二進(jìn)制組件。這個(gè)體系結(jié)構(gòu)有效地降低了系統(tǒng)的復(fù)雜性。不僅充分地實(shí)現(xiàn)了系統(tǒng)的各項(xiàng)需求,同時(shí)也為系統(tǒng)帶來(lái)了更好的可維護(hù)性和可重用性。圖8描述了這個(gè)鐵路運(yùn)輸ERP系統(tǒng)的軟件體系結(jié)構(gòu),其中的組件(Data Communication Component)就是本文所描述的數(shù)據(jù)通訊組件。

      在這個(gè)體系結(jié)構(gòu)中,數(shù)據(jù)通訊組件(Data Communication Component)與用戶界面層(User Interface Layer)中的車輛分步組件(Traffic Distribution)、調(diào)度圖表組件(Scheduling Diagram)、班計(jì)劃(Auxiliary Planning)以及系統(tǒng)維護(hù)(System Maintain)等組件之間具有比較密切的依賴關(guān)系。當(dāng)某個(gè)組件改變了一個(gè)結(jié)點(diǎn)的狀態(tài),如完成某個(gè)車輛調(diào)度作業(yè)、修改了某項(xiàng)場(chǎng)地信息的修改時(shí),該組件將及時(shí)通過(guò)數(shù)據(jù)通訊組件向相關(guān)結(jié)點(diǎn)發(fā)出或廣播一個(gè)更新消息,這使得收到更新消息的結(jié)點(diǎn)可以及時(shí)有效更新其相關(guān)的狀態(tài)。從而使系統(tǒng)得以實(shí)時(shí)地維持在一個(gè)統(tǒng)一并且一致的狀態(tài)。

      另外,系統(tǒng)中還包括了其它一些需要使用數(shù)據(jù)通訊組件的組成部分,如結(jié)點(diǎn)之間傳遞的非結(jié)構(gòu)化的短消息和文檔等方面的數(shù)據(jù)通訊等,這些部分的應(yīng)用取代了原系統(tǒng)中使用的某些依賴于傳統(tǒng)電話的通訊方式。

      圖8 數(shù)據(jù)通訊組件的應(yīng)用實(shí)例Fig.8 An implicational example of Data Communication Component

      基于XML文檔技術(shù)的數(shù)據(jù)通訊組件的應(yīng)用,實(shí)現(xiàn)了鐵路運(yùn)輸ERP系統(tǒng)中的非常重要的實(shí)時(shí)性目標(biāo),實(shí)現(xiàn)了整個(gè)系統(tǒng)中,各結(jié)點(diǎn)的車輛分布、車輛調(diào)度技術(shù)作業(yè)圖表和列車運(yùn)行圖以及相應(yīng)的統(tǒng)計(jì)圖表等信息的整體一致性,使得整個(gè)系統(tǒng)可以全天候運(yùn)行。

      目前。這個(gè)項(xiàng)目已經(jīng)得到了成功的實(shí)施和應(yīng)用,并創(chuàng)造取得了巨大的經(jīng)濟(jì)效益和社會(huì)效益。并分別獲得了鞍山鋼鐵集團(tuán)、鞍山市和冶金部等部門頒發(fā)的多個(gè)科技獎(jiǎng)項(xiàng)。

      4 結(jié)論

      在基于組件的分布式ERP系統(tǒng)中,基于XML文檔技術(shù)的數(shù)據(jù)通訊組件能夠比較充分地滿足系統(tǒng)運(yùn)行時(shí)所需要的各種數(shù)據(jù)通訊需求。從而支持分布式系統(tǒng)所需要的信息更新、界面刷新、實(shí)時(shí)統(tǒng)計(jì)以及實(shí)時(shí)數(shù)據(jù)交換方面的需求。

      在這個(gè)基于XML文檔技術(shù)的數(shù)據(jù)通訊組件中,一方面,XML文檔技術(shù)的應(yīng)用降低了數(shù)據(jù)通訊雙方的數(shù)據(jù)耦合。使傳統(tǒng)的數(shù)據(jù)通訊方式中存在的數(shù)據(jù)的類型、傳輸順序、數(shù)據(jù)內(nèi)容和數(shù)據(jù)格式方面耦合降低到數(shù)據(jù)名字空間方面的耦合。另一方面,組件技術(shù)的應(yīng)用,不僅有效地降低了體系結(jié)構(gòu)內(nèi)部各個(gè)組件之間的耦合,即使各組件之間的依賴降低到接口依賴那樣最低程度的依賴。而且也可以獨(dú)立地修改和更新各個(gè)組件從而提高軟件的可維護(hù)性。

      實(shí)踐證明,本文提出的組件可以有效地解決項(xiàng)目開(kāi)發(fā)中與實(shí)時(shí)性方面有關(guān)的技術(shù)難題,更可以有效地降低軟件的開(kāi)發(fā)和維護(hù)成本,更適用于具有一定規(guī)模、結(jié)點(diǎn)較多且結(jié)點(diǎn)之間又有較多交互的分布式ERP系統(tǒng)。

      [1]朱宗乾,劉慶.ERP實(shí)施領(lǐng)域研究熱點(diǎn)國(guó)內(nèi)外比較研究[J].情報(bào)雜志,2015(3):125-131.

      [2]李巖,陶樹(shù)平.ERP系統(tǒng)架構(gòu)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2003,29(12):153-155.

      [3]許丹奇,徐艷玲.利用.NET和MSMQ技術(shù)實(shí)現(xiàn)分布式應(yīng)用程序[J].微計(jì)算機(jī)應(yīng)用,2007,28(6):593-596.

      [4]王正桓,蔡明.MS.NET Remoting的分布式技術(shù)應(yīng)用研究[J].計(jì)算機(jī)應(yīng)用與軟件,2005,22(3):140-142

      [5]盧彬,陳家琪.ERP中基于COM+的三層財(cái)務(wù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].儀器儀表學(xué)報(bào),2006,27(z3):2506-2507.

      [6]顧洪軍,張佐,吳秋峰,等.網(wǎng)絡(luò)控制系統(tǒng)的實(shí)時(shí)特性分析及數(shù)據(jù)傳輸技術(shù)[J].計(jì)算機(jī)工程與應(yīng)用,2001,37(6):38-40.

      [7]陳少波,桂衛(wèi)華.基于Internet網(wǎng)過(guò)程控制遠(yuǎn)程監(jiān)控系統(tǒng)實(shí)時(shí)性研究[J].信息技術(shù),2008,32(3):31-33.

      [8]李偉平,范玉順.工作流技術(shù)在ERP系統(tǒng)中的應(yīng)用[J].高技術(shù)通訊,2004,14(8):56-61.

      [9]宋利康,崔德剛,周儒榮,等.企業(yè)模型與ERP系統(tǒng)間映射技術(shù)[J].航空學(xué)報(bào),2007,28(6):1513-1520.

      [10]魏代森,李學(xué)慶,張家重,等.協(xié)同制造環(huán)境下ERP軟件演化及其實(shí)現(xiàn)[J].計(jì)算機(jī)集成制造系統(tǒng),2016,22(6):1558-1569.

      [11]陳伯成,葉偉雄,孫靜,等.企業(yè)資源規(guī)劃ERP軟件簡(jiǎn)化的流程集成模型[J].清華大學(xué)學(xué)報(bào):自然科學(xué)版,2003,43(6):721-724.

      [12]黃雙喜,范玉順.基于工作流的ERP系統(tǒng)開(kāi)發(fā)與實(shí)施[J].計(jì)算機(jī)集成制造系統(tǒng),2004,10(2):139-143.

      [13]孔令波,唐世渭,楊冬青,等.XML數(shù)據(jù)的查詢技術(shù)[J].軟件學(xué)報(bào),2007,18(6):1400-1418.

      [14]陳君鵬,廖湖聲,蘇航,等.面向XQuery語(yǔ)言的XML樹(shù)模式識(shí)別方法[J].計(jì)算機(jī)研究與發(fā)展,2013,50(z1):12-22.

      [15]李發(fā)金,廖湖聲,高紅雨,等.XML查詢中具有位置謂詞的樹(shù)模式匹配方法[J].計(jì)算機(jī)研究與發(fā)展,2013,50(z1):1-11.

      [16]蔡文青,李凡長(zhǎng).基于JMS和XML的數(shù)據(jù)交換模型設(shè)計(jì)[J].計(jì)算機(jī)工程與設(shè)計(jì),2007,28(14):3529-3531.

      [17]梅宏,陳鋒,馮耀東,等.ABC:基于體系結(jié)構(gòu)、面向構(gòu)件的軟件開(kāi)發(fā)方法[J].軟件學(xué)報(bào),2003,14(4):721-732.

      [18]張世琨,張文娟,常欣,等.基于軟件體系結(jié)構(gòu)的可復(fù)用構(gòu)件制作和組裝[J].軟件學(xué)報(bào),2001,12(9):1351-1359.

      [19]GAMMA E,HELM R,JOHNSON R,et al.Design patterns:elements of reusable object-oriented software[M].Addision-Wesley,1995:144,360.

      [20]孫學(xué)波,李昕妍.分布式鐵路車輛分布組件的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2014,35(1):163-170.

      [][]

      Data communication component based on XML document techniques

      SUN Xuebo,YANG Mingwei

      (School of Computer Software,University of Science and Technology Liaoning,Anshan 114051,China)

      A new data transmission technique based on TCP/IP protocol and using the XML document format was proposed and packaged to be a reusable software components,in order to solve the technological problems such as information synchronization,real-time update interface and real-time data exchange between different nodes within a distributed ERP system,and also in order to reduce the coupling between various components of software and also to enhance the reuse of the software.The data communication component is able to be used for data communication within the distribute ERP system,based on XML XML document technology and TCP/IP technique.The basic requirements about real-time information processing(RIP),real-time information exchange(RIE)and other aspects within the ERP system were analyzed in this paper.The concrete design data communication component based on XML were introduced in detail,and the practical applicational situation of this component in the ANSHAN Iron&STEEL Corporation’s Railway Transportation ERP system was introduced briefly.

      XML;real-time information process;real-time information exchange;component for data communication;serialization

      April 3,2017)

      TP311.5

      A

      1674-1048(2017)03-0217-09

      10.13988/j.ustl.2017.03.012

      2017-04-03。

      2012年鞍山市科技基金項(xiàng)目。

      孫學(xué)波(1964—),男,遼寧鞍山人,教授。

      猜你喜歡
      數(shù)據(jù)通訊結(jié)點(diǎn)文檔
      有人一聲不吭向你扔了個(gè)文檔
      機(jī)器視覺(jué)系統(tǒng)與PLC的數(shù)據(jù)通訊
      Ladyzhenskaya流體力學(xué)方程組的確定模與確定結(jié)點(diǎn)個(gè)數(shù)估計(jì)
      基于RI碼計(jì)算的Word復(fù)制文檔鑒別
      Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat
      基于C#的船舶電力推進(jìn)監(jiān)控系統(tǒng)的數(shù)據(jù)通訊設(shè)計(jì)
      智能電能表數(shù)據(jù)通訊安全性分析
      基于Raspberry PI為結(jié)點(diǎn)的天氣云測(cè)量網(wǎng)絡(luò)實(shí)現(xiàn)
      不讓他人隨意下載Google文檔
      電腦迷(2012年4期)2012-04-29 06:12:13
      基于DHT全分布式P2P-SIP網(wǎng)絡(luò)電話穩(wěn)定性研究與設(shè)計(jì)
      通化县| 汝南县| 准格尔旗| 长岭县| 六盘水市| 辽阳市| 旬邑县| 洪泽县| 正安县| 五原县| 房山区| 汽车| 府谷县| 长子县| 法库县| 富裕县| 鄂伦春自治旗| 浮山县| 滁州市| 清河县| 遂宁市| 富民县| 阳城县| 郯城县| 乌兰浩特市| 天祝| 壶关县| 广德县| 博客| 额济纳旗| 合阳县| 襄汾县| 太和县| 青岛市| 抚宁县| 漯河市| 景东| 南康市| 昆明市| 木里| 扬中市|