《電子技術應用》
您所在的位置:首頁 > 其他 > 業界動態 > 一個基于Email的數據交換模型

一個基于Email的數據交換模型

2010-01-29
作者:崔學榮,李 娟

摘   要: 提出一種具有平臺獨立性的基于Email的5層數據交換模型,以實現在異構的網絡、操作系統和數據庫管理系統之間交換數據。分析了該模型的工作原理和使用環境,分層設計并實現了該模型,最后給出了具體應用實例。
關鍵詞: Email  數據交換  防火墻  SMTP  POP3

  網絡技術和數據庫技術已經成為計算機軟件應用領域的二大熱點,同時,基于Intranet/Internet環境下企業、部門之間數據交換的次數越來越多,情況也越來越復雜。使用傳統的編程模式很難滿足一些特殊數據交換的要求。例如,勝利油田物資供應處價格管理科需要把所有供應商的產品報價及時匯總,進行統計、比較。這些供應商中有一部分是油田內部的企業(這些企業只能與油田局域網連通),還有一部分是分布在全國各地的供應商(這些企業只能與Internet連通)。如何通過網絡將數據進行匯總,一直是一個難題。解決該問題最簡單的方法就是使用B/S模式建立一個Web服務器,所有用戶都通過Web瀏覽器訪問該服務器。但是因為油田Intranet和外部Internet之間除了可以發送和接收電子郵件外,其他服務(如FTP、HTTP等)均被防火墻斷開。所以必須在Intranet和Internet上分別建立2個Web服務器,本文將介紹如何用Email數據交換模型來合并這2個服務器上的數據。
1  Email數據交換模型的工作原理
  在Internet上,Email是常用的網上服務之一。用戶將郵件提交給郵件服務器后,還需要由服務器進行一系列的傳遞操作,才能將郵件傳送到目的地址所在的郵件服務器。這一傳送過程的實現依賴于簡單郵件傳輸協議(Simple Mail Transfer Protocol,SMTP)。SMTP定義了一套有效的郵件傳遞規則,它以協議的方式規定了網絡中全部郵件服務器共同遵守的準則。電子郵件服務除了依賴于SMTP之外,還需要郵局協議(Post Office Protocol,POP)的支持。SMTP負責郵件的傳遞:從客戶機到郵件服務器,以及服務器之間的傳遞工作。在傳遞過程中,如果網絡忙或者線路狀況不好,郵件服務器會每隔一定時間重新嘗試發送郵件,所以即使網絡不是很穩定,也可以發送成功。而POP協議能夠讓客戶檢索到由SMTP發送來的郵件,并將其下載到用戶本機。
  該模型使用SMTP將需要交換的數據發送到特定的郵件服務器中,然后由郵件服務器完成郵件的發送工作;在接收端使用POP協議,定時檢測郵件服務器中是否有新郵件到達。如果有則判斷是否合法,若合法,則自動將數據下載到客戶端,然后自動保存到本地數據庫中。
2  Email數據交換模型的設計與實現
  Email數據交換模型的體系結構如圖1所示。可以看到,該模型共分為5層。最底層(第1層)是Email服務器層(Email Server Layer),負責數據文件的發送和接收;最高層(第5層)是數據庫管理系統層(DBMS Layer),在通信終端存儲管理數據;中間各層分別是數據文件層(Data File Layer)、壓縮文件層(Compressed file Layer)和Email層;它們分別完成數據的導出、導入,壓縮、解壓數據文件,將壓縮文件封裝成Email、拆分提取數據文件等。

2.1 DBMS Layer的設計
  數據庫管理系統層是最高層,用于存儲管理數據。在基于Internet或Intranet的異構數據庫環境中,數據庫可能包括Oracle、Sybase、MS SQL Server、DB2和ACCESS等類型。
2.2 Data File Layer的設計與實現
  由于各終端的數據庫對數據的存儲結構、組織方式、信息描述存在差異,同時各個操作系統(Windows、Unix、Linux等)也可能存在差異,所以,這一層要完成2個功能:①導出,從源數據庫將特定條件下的數據轉換到指定格式的數據文件。②導入,把導出的數據文件轉換到目的數據庫中。根據不同的應用環境要求,數據文件可以是以下3種。
  (1)XML半結構化數據文件
  XML(Extensible Markup Language)是專門為Web應用設計的SGML(Standard Generalized Markup Language)的一個優化子集。數據交換是XML最重要的用途之一。由于XML具有可擴展性、自描述性和跨平臺性,所以使得不同計算機應用系統之間交換數據變得容易起來。XML同HTML類似,也是一種元標記語言,具有自描述性,同時也具有可擴展性,即使用者可以根據系統的要求創建新的標記。此外,XML是一種跨平臺的獨立于系統的標記語言。XML現已成為網絡系統中應用較廣的一種數據交換格式。
  在導入、導出XML數據時,可以使用常用的編程語言,調用XML文件的接口SAX(Simple API for XML)或者DOM(Document Object Model)等對XML文件進行讀寫。
  總體上看,XML能很好地實現異構數據庫之間的透明互操作,是一個不錯的數據交換媒介。但是如果每次導出部分數據,而且可能多次導出時,這種方法可能在目的數據庫中存在重復的數據,此時必須在插入數據前,先刪除重復的數據。
  (2)SQL語句集合文件
  SQL語句集合文件就是系統將源數據庫端的數據操縱語言都記錄下來,當用戶導出數據時,將這些操縱數據的SQL語句另存為固定格式的文件。在目的數據庫端,再重新執行這些SQL語句。SQL語句集合文件示例如下:
  DELETE FROM 報價WHERE 廠家=′Intel′;
  UPDATE報價SET 價格=2000 WHERE物碼=′20050501001′;
  INSERT INTO 廠家VALUES(′intel′,′北京′,′010-88888888′,′CPU′);
  這種方法在編寫導入、導出程序時非常簡單。但要注意,如果在異構數據庫之間交換數據,部分SQL語句可能要進行適當改寫。例如:如果源數據庫是ORACLE,則語句“UPDATE報價set物碼=substr(物碼,8,3)”,在目的數據庫SQL Server中應該是“UPDATE報價set物碼=substring(物碼,8,3)”,在目的數據庫ACCESS中應該是“UPDATE報價set物碼=mid(物碼,8,3)”。這些轉換影響了系統的跨平臺性。
  (3)結構化數據庫文件的設計
  結構化數據庫文件就是指類似ACCESS、EXCEL、DBF和TXT等的數據庫文件。這些基于文件管理的數據庫可以作為數據交換的媒介。在源數據庫端,將要傳輸的數據插入到中間數據庫文件中。在目的數據庫端將這些中間數據庫文件的數據插入到數據庫中。
在這類文件中,需要保證源數據庫、中間數據庫和目的數據庫中表的結構相同。這樣導入和導出程序就可以直接查詢,然后插入即可。
  這種方法編寫程序簡單,但也存在跨平臺的問題,存在像XML那樣的可能會出現重復記錄的問題。用戶可以根據自己的實際情況,選擇不同的中間數據文件。
2.3 Compressed File Layer的設計與實現
  在源數據庫端對導出的文件進行壓縮,在目的數據庫端對接收到的數據文件進行解壓,以便減小文件的大小,提高傳輸的速度。
  可以在編程語言中調用一些常用壓縮文件,如Winzip。以下是在ASP(Active Server Pages)編程語言中調用Winzip的示例。
  Set WshShell=server.CreateObject(″Wscript.Shell″)
  path=Server.MapPath(″\″)
  IsSuccess=WshShell.Run(path&″\wzzip.exe ″& path&″\import.zip″&path &″\dbf_downld\*.*″,1,true)
  如果交換的數據文件都較小,則可以不對數據文件進行壓縮和解壓。
2.4 Email Layer的設計
  發送端在這一層完成Email的封裝工作,接收端完成郵件的拆分工作。一個Email主要包括標題(Subject)、正文(Body)和附件(Attachment)等。其中在Attachment中加入壓縮文件,在Body中加入相關的備注信息,在Subject中加入特定的標識(以便系統能自動識別是否為需要傳輸的文件,避免其他垃圾郵件)。例如,在標題中用“EDC:”開始,這樣在接收到郵件后,就要首先判斷標題是否是以“EDC:”開始,如果是則為合法郵件,否則就不是。目的數據庫端主要流程如圖2所示。

2.5 Email Server Layer的設計與實現
  發送端在這一層用SMTP協議完成Email的發送工作,接收端用POP3協議完成郵件的接收工作。在系統中,可以使用Socket編程完成郵件的發送和接收。但是,這種方法編寫程序比較復雜,本文不予討論。也可以使用一些第三方組件來完成郵件的發送和接收。例如:W3 Jmail可以滿足該模型的要求。以下是用該組件在VB中實現郵件的發送和接收。
  //發送郵件
  Dim msg As New jmail.Message
  msg.MailServerUserName=txtUsername
  msg.MailServerPassWord=txtPassword
  msg.From=txtFromEmailAddress
  msg.AddRecipient txtToEmailAddress
  For i=0 To lstAttachments.ListCount - 1
     lstAttachments.ListIndex=i
     msg.AddAttachment(lstAttachments.Text)
  Next i
  msg.Subject=txtEmailSubject
  msg.Body=txtEmailBodyOfMessage
  msg.Send(txtEmailServer)
  //接收郵件
  Dim pop3 As New jmail.pop3
  pop3.Connect txtUsername,txtPassword,txtEmailserver
  For i=1 To pop3.Count
     Set msg=pop3.Messages.Item(i)
     Print msg.Body
     Print msg.Subject
     pop3.DeleteSingleMessage(i)
  Next
3  基于Email的數據交換實例
  該實例可以解決本文開頭提出的勝利油田物資供應處價格管理科的供應商報價問題。其系統的拓撲結構如圖3所示。

  系統分別在油田的Intranet和外部Internet上設立2個Web服務器,分別供油田內部企業和全國各地其他企業上報產品價格。Internet網上的用戶在報完價格后,在本地保存,同時用戶可以點擊上報,將數據文件導出、壓縮、封裝郵件、發送郵件;局域網內的Web服務器定時到Email服務器(該Email服務器在Intranet和Internet上都可以訪問)上收取郵件、解壓、導入數據。最終在Intranet上的數據是完整的數據,供應處的領導可以隨時進行查詢,對各個廠家的報價、同一廠家各個時間的報價等進行比較。
  這樣,該系統就可以穿過油田局域網和外部Internet的HTTP、FTP等協議的防火墻,通過SMTP和POP3協議完成數據的匯總,極大地方便了用戶的使用。
4  結束語
  基于Email的數據交換模型是使用SMTP協議和POP3協議,完成不同數據庫數據的交換。該模型可以跨越除SMTP/POP3之外的防火墻,具有平臺獨立性,可以在異構的網絡、操作系統和數據庫管理系統之間交換數據,適應惡劣的網絡環境,完成傳統的數據交換模型無法或者很難完成的工作。該模型具有非常廣的應用和推廣價值。
參考文獻
1   朱韻篪,程代杰.基于XML的分布式數據交換中間件模型設計.計算機工程與設計,2003;24(8)
2   黃紅明,尹志兵,熊桂喜.基于XML的數據交換技術的研究及其在大型系統中的應用.計算機應用研究,2003;20(12)
3   劉驚雷,王香紅,華臻.基于WinSock的電子郵件后臺監聽程序設計.計算機工程,2003;29(1)

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产麻豆一精品一av一免费| 91久久亚洲| 免费日韩视频| 久久久久成人精品| 欧美在线视频免费观看| 亚洲手机成人高清视频| 亚洲免费激情| 日韩视频免费观看| 99精品国产在热久久| 亚洲精品在线视频观看| 亚洲黄一区二区| 亚洲国产乱码最新视频| 亚洲国产中文字幕在线观看| 亚洲第一二三四五区| 久久精品视频99| 亚洲第一天堂av| 亚洲高清免费视频| 亚洲国产三级| 最新国产の精品合集bt伙计| 亚洲国产精品一区| 亚洲黄色高清| 亚洲精品国产品国语在线app| 亚洲激情在线激情| 亚洲精品视频一区二区三区| 亚洲精品在线观看视频| 一区二区三区三区在线| 99精品视频免费观看视频| 中文精品视频一区二区在线观看| 亚洲一区久久久| 欧美一级在线亚洲天堂| 久久激情五月丁香伊人| 久久综合福利| 欧美日韩 国产精品| 欧美色精品天天在线观看视频| 国产精品国产三级欧美二区 | 欧美日本不卡高清| 国产精品jizz在线观看美国 | 日韩天堂av| 亚洲自拍偷拍福利| 久久久国产午夜精品| 欧美电影在线免费观看网站| 欧美人与禽猛交乱配| 国产精品久久久久9999高清| 国产欧美精品一区二区色综合| 国产在线精品一区二区中文| 亚洲国产视频直播| 亚洲色图在线视频| 久久国产66| 一区二区国产精品| 欧美主播一区二区三区美女 久久精品人| 久久久夜精品| 欧美日韩亚洲91| 国产午夜一区二区三区| 亚洲第一天堂av| 亚洲视频在线观看免费| 欧美在线亚洲综合一区| 99re热这里只有精品视频| 亚洲欧美日韩在线综合| 久热这里只精品99re8久| 欧美日韩免费一区| 国产一区二区三区在线观看网站| 亚洲国产日韩欧美一区二区三区| 一区二区三区日韩欧美| 亚洲福利视频网站| 午夜国产不卡在线观看视频| 久久婷婷久久| 国产精品99一区二区| 尤物yw午夜国产精品视频| 亚洲视频免费在线观看| 亚洲高清视频中文字幕| 亚洲在线视频观看| 欧美aⅴ99久久黑人专区| 国产欧美精品国产国产专区| 亚洲黄色有码视频| 欧美一区二区在线免费播放| 一区二区三区你懂的| 久久久久久久久岛国免费| 欧美日韩裸体免费视频| 黑丝一区二区| 亚洲午夜精品久久久久久浪潮 | 国产精品一区一区三区| 亚洲精品一区二区在线观看| 欧美中文在线观看| 亚洲男人天堂2024| 欧美激情一区二区三区四区| 国产视频一区在线观看| 中国日韩欧美久久久久久久久| 亚洲啪啪91| 久久久青草婷婷精品综合日韩| 国产精品国产馆在线真实露脸 | 亚洲二区免费| 久久激情五月激情| 国产精品久久国产精麻豆99网站| 亚洲欧洲精品一区二区三区 | 一区二区激情视频| 欧美激情精品| 一区二区三区在线视频观看 | 亚洲大胆人体视频| 欧美一级二级三级蜜桃| 欧美日韩国产一区二区三区地区| 在线欧美影院| 亚洲电影免费观看高清完整版| 欧美在线一二三四区| 国产精品久久久999| 一区电影在线观看| 一区二区三区高清视频在线观看| 欧美成人免费视频| 伊伊综合在线| 亚洲第一区在线| 久久精品首页| 国产欧美亚洲精品| 亚洲欧美一区二区精品久久久| 亚洲欧美电影院| 欧美天堂亚洲电影院在线观看| 亚洲日本va在线观看| 日韩午夜三级在线| 欧美精彩视频一区二区三区| 亚洲福利视频网站| 亚洲人成77777在线观看网| 久久亚洲一区| 影音先锋日韩有码| 91久久精品一区二区别| 免费看的黄色欧美网站| 一区二区三区在线不卡| 亚洲国产中文字幕在线观看| 欧美成年人网| 亚洲毛片视频| 亚洲午夜一区二区| 国产精品一区二区男女羞羞无遮挡 | 亚洲精品美女久久久久| 日韩天堂在线视频| 欧美日韩一区精品| 在线亚洲自拍| 欧美亚洲综合在线| 国内一区二区三区在线视频| 久久国产精品久久国产精品 | 国产日韩一区二区三区| 欧美在线视频二区| 久久综合网hezyo| 亚洲经典自拍| 亚洲在线视频一区| 国产日韩精品久久久| 久久精品国产亚洲精品| 美女视频黄 久久| 亚洲精品视频一区| 亚洲综合日本| 国产亚洲女人久久久久毛片| 亚洲黄色一区| 欧美日韩高清在线播放| 亚洲视频成人| 久久久av毛片精品| 亚洲国产另类精品专区 | 小黄鸭精品密入口导航| 国产一区自拍视频| 亚洲人成艺术| 国产精品久久久久久久久久免费看| 亚洲欧美美女| 美女999久久久精品视频| 亚洲欧洲日本专区| 午夜精品视频| 伊人成人开心激情综合网| 一本色道久久88精品综合| 国产精品一卡二卡| 亚洲欧洲另类国产综合| 国产精品wwwwww| 久久国产精品免费一区| 欧美日韩精品伦理作品在线免费观看| 在线视频日韩精品| 久久中文精品| 一区二区三区成人| 久久色在线观看| 日韩亚洲欧美精品| 久久精品视频免费| 日韩一区二区久久| 久久久夜夜夜| 夜夜爽www精品| 裸体歌舞表演一区二区| 一本色道久久99精品综合| 久久久久久婷| 日韩一级二级三级| 久久男人av资源网站| 99国产精品99久久久久久粉嫩| 久久精品免费播放| 亚洲免费av电影| 老鸭窝毛片一区二区三区| 亚洲深夜福利| 欧美激情亚洲精品| 欧美亚洲一区二区在线| 欧美日韩调教| 亚洲激情成人在线| 国产精品一区二区三区久久| 日韩一区二区精品| 韩国免费一区| 欧美永久精品| 亚洲精品乱码久久久久久按摩观| 久久九九久精品国产免费直播| 一本大道久久a久久精二百| 免费在线亚洲欧美| 欧美诱惑福利视频| 国产精品日韩一区|