• 
    

    
    

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

      通用應(yīng)用協(xié)議處理引擎

      2015-05-30 10:48:04黃群群
      中國新通信 2015年9期
      關(guān)鍵詞:鏈表引擎數(shù)據(jù)包

      黃群群

      【摘要】 在信息系統(tǒng)建設(shè)過程中,數(shù)據(jù)交互是必不可少的一環(huán)。其中與異構(gòu)系統(tǒng)進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)交互,并進(jìn)一步進(jìn)行業(yè)務(wù)處理是最為頻繁的。在一般的處理過程,數(shù)據(jù)的集合和散列往往和業(yè)務(wù)處理耦合在一起,這樣的話就會有很多重復(fù)開發(fā)。本文提出了一個(gè)通用的數(shù)據(jù)解析和組合引擎,根據(jù)配置的策略,對接收的數(shù)據(jù)包進(jìn)行解析,對要發(fā)送的數(shù)據(jù)進(jìn)行組合。

      【關(guān)鍵詞】 數(shù)據(jù)處理引擎 網(wǎng)絡(luò)協(xié)議處理

      在傳統(tǒng)的應(yīng)用網(wǎng)絡(luò)協(xié)議開發(fā)過程中,往往要根據(jù)協(xié)議規(guī)范去進(jìn)行設(shè)計(jì)編碼。應(yīng)用協(xié)議多種多樣,信息系統(tǒng)建設(shè)人員對每一個(gè)應(yīng)用協(xié)議都會進(jìn)行重新的設(shè)計(jì)開發(fā)。要提高開發(fā)的效率,首先就要將網(wǎng)絡(luò)數(shù)據(jù)的接收解碼、編碼發(fā)送從業(yè)務(wù)的邏輯處理中解耦出來。

      一、引擎總體架構(gòu)

      根據(jù)協(xié)議規(guī)范,數(shù)據(jù)包可劃分為若干域,每個(gè)域都可以抽象為某一種域類型。數(shù)據(jù)包中的這些域,有各種各樣的用途,但總體來說可以分為兩類:數(shù)據(jù)域和控制域。整個(gè)系統(tǒng)應(yīng)該包括策略配置模塊,引擎模塊,域?qū)ο竽K。其中配置模塊負(fù)責(zé)在初始化階段讀取配置文件,獲得處理策略,引擎模塊根據(jù)這些策略進(jìn)行數(shù)據(jù)處理。

      二、域?qū)ο竽K

      數(shù)據(jù)包中的域根據(jù)功能劃分,可以分為數(shù)據(jù)域和控制域。數(shù)據(jù)域主要是一些業(yè)務(wù)數(shù)據(jù),不影響數(shù)據(jù)包中其他域的行為??刂朴?,可以對數(shù)據(jù)包的一些行為進(jìn)行控制。

      對于一些通用的域類型,系統(tǒng)已經(jīng)提供對應(yīng)的類。而對于外部系統(tǒng)的一些個(gè)性化的域,可以擴(kuò)展到域?qū)ο竽K中。所有的域類都應(yīng)該實(shí)現(xiàn)公共接口。該域應(yīng)接口該如下定義:

      Class Field

      {

      Puhlic,:

      Parse(char%uf);,/解析

      Marshal(char*bllD;/,組包

      Verification(char *buf)

      Exception0;

      Bool IsControlField;//區(qū)分是控制域還是數(shù)據(jù)域

      Int size,

      }

      處理引擎提供若干常用的域類型,每個(gè)域類型都繼承這個(gè)基類。并可以擴(kuò)展更多域類型。控制域類型也是繼承于Field類,但是有更多的操作。定義如下

      Class CtrIField:puhlic Field

      {

      Public.:

      Parse(char *buf)

      {

      }

      Marshal(char *buf)

      {

      }

      Char*RcvCtrl(char *huf,int fd);

      Char * SendCtrl (char *buf,int fd);

      int ParseCtrl(char *buf,int index);

      int MarhalCtrl(char *bufint index);

      }

      其中Rcv Ctrl和SendCtrl在接收和發(fā)送階段對數(shù)據(jù)進(jìn)行控制處理,而ParseCtrl和MarshalCtrl在解析和組合數(shù)據(jù)包過程中進(jìn)行控制處理。所有的控制域都繼承該類。

      三、引擎模塊

      引擎模塊作為系統(tǒng)的核心部分,從配置模塊獲得對應(yīng)數(shù)據(jù)包類型的策略,根據(jù)策略對接收或者發(fā)送的數(shù)據(jù)包進(jìn)行處理。處理策略其實(shí)就是根據(jù)配置的包的域順序,構(gòu)造的鏈表,引擎根據(jù)該鏈表,順序的取出每個(gè)域,并調(diào)用該域的方法。整個(gè)策略引擎分為數(shù)據(jù)的接收和發(fā)送過程。

      Class Packet

      {

      Map parse(char*buffer);

      Char * marshal (Map map);

      Send(char *huffer);

      Rcv(char *buffer)

      Listlist:,/策略鏈表

      Preproc(char* buffer);//預(yù)處理

      mProc,(char* buffer);//中處理

      Afterproc(Map map);//后處理

      List

      猜你喜歡
      鏈表引擎數(shù)據(jù)包
      基于二進(jìn)制鏈表的粗糙集屬性約簡
      跟麥咭學(xué)編程
      SmartSniff
      基于鏈表多分支路徑樹的云存儲數(shù)據(jù)完整性驗(yàn)證機(jī)制
      藍(lán)谷: “涉藍(lán)”新引擎
      商周刊(2017年22期)2017-11-09 05:08:31
      無形的引擎
      河南電力(2015年5期)2015-06-08 06:01:46
      基于Cocos2d引擎的PuzzleGame開發(fā)
      基于Libpcap的網(wǎng)絡(luò)數(shù)據(jù)包捕獲器的設(shè)計(jì)與實(shí)現(xiàn)
      鏈表方式集中器抄表的設(shè)計(jì)
      電測與儀表(2014年1期)2014-04-04 12:00:22
      視覺注意的數(shù)據(jù)包優(yōu)先級排序策略研究
      平舆县| 东丰县| 孟津县| 句容市| 阳谷县| 新巴尔虎右旗| 莫力| 增城市| 正蓝旗| 巫溪县| 滨州市| 西乌珠穆沁旗| 资讯 | 朝阳县| 桑日县| 房山区| 保定市| 河南省| 陆丰市| 阜康市| 石林| 南开区| 太谷县| 双城市| 金坛市| 宜黄县| 邵阳市| 惠东县| 泸州市| 美姑县| 英德市| 虞城县| 封丘县| 伊春市| 青阳县| 长春市| 西和县| 南宁市| 涡阳县| 新竹市| 祁阳县|