葛建新
摘 要 隨著互聯網的廣泛普及以及用戶計算機數量的劇增,各種數據呈現爆發式增長,其具有來源廣泛,類型各異等特點。數據交換需要提供數據載體對異構數據庫中的數據進行數據描述。XML和CSV作為兩種數據描述語言,具有各自的特點,文章對兩者進行介紹和比較并介紹了數據交換的實現模式。
關鍵詞 XML;CSV;數據交換
中圖分類號:TP39 文獻標識碼:A 文章編號:1671-7597(2014)10-0042-01
Abstract:As the number of the widely spread of the Internet and computer users increasing, various data show explosive growth, which has a wide range of sources, different types of features. Data exchange need to provide data support for data description of the data in the heterogeneous database. XML and CSV as two kinds of data description language, have their own characteristics, this article in carries on the introduction and comparison and further introduces the realization mode of data exchange.
Key Words:XML;CSV;Data exchange
1 XML和CSV數據描述語言比較
1.1 XML語言描述
可擴展置標語言(eXtensible Markup Language,簡稱XML),又稱可擴展標記語言,是一種置標語言。置標指計算機所能理解的信息符號,通過此種標記,計算機之間可以處理包含各種信息的文章等。如何定義這些標記,既可以選擇國際通用的標記語言,比如HTML,也可以使用像XML這樣由相關人士自由決定的標記語言,這就是語言的可擴展性。XML是從標準通用置標語言(SGML)中簡化修改出來的。它主要用到的有可擴展置標語言、可擴展樣式語言(XSL)、XBRL和XPath等。
1.2 CSV介紹
逗號分隔型取值格式(英文全稱為Comma Separated Values,簡稱CSV),是一種純文本格式,用來存儲數據。在CSV中,每一行都對應表中的行,數據的字段由逗號分開,每個字段都對應一個表中的數據項。由于CSV文件格式非常簡單,并支持幾乎所有的電子表格和數據庫管理系統,所以CSV文件常常被用于兩個不同的計算機程序的移動表格數據,例如關系數據庫程序和電子表格程序。許多編程語言提供了庫支持CSV文件。因此該格式廣泛應用于數據的導入和導出。
在計算機科學方面,這種類型的格式是所謂的“平面文件”,因為只有一個表可以存儲在CSV文件。大多數系統都使用了一系列的表來存儲他們的信息,因此往往信息重復幾次,才能創建一個文件。
1.3 XML同CSV比較
1)應用XML可以使用XPath,XML Schema,XSLT這些宣告性(Declarative)的技術,如果用CSV就要用程序性(Procedural)的方式來達到同樣的效果。宣告語句比程序語句更容易維護,換句話說就是CSV中無法包含屬性定義信息,所以要編寫相應的解釋程序,大大增加了編程量。
2)另外XML是一種描述性的跨平臺語言,他可以很方便的表示節點的含義,而CSV在這方面比較弱一些。
3)在C#或java中都有相對應的底層XML處理接口,可以很方便的去操作XML,而CSV則必須重新編寫底層處理接口,這樣也大大的增加了編程量。
4)CSV文件是扁平式的文件格式,只能描述一個表的數據,而XML是具有自描述能力的結構化的文件格式,能夠描述任意多表的數據,以及表之間的關系。
綜上所述,建議選用XML技術來實現數據交換共享。
2 數據交換的實現模式
2.1 面向應用接口的交換模式
面向應用接口的數據交換模式,即通過各個應用接口在接口之間轉換、傳輸數據。通過這種交換模式,開發人員就可以將現有應用捆綁在一起,實現對數據邏輯與信息的共享,但這種交換模式要受到接口特征以及接口功能的限制。
2.2 面向數據的交換模式
面向數據的數據交換一般是在不同系統的數據庫之間進行的,通過將數據從A數據源移植到B數據源來完成數據交換。這種交換模式可以直接在數據訪問層作應用系統開發,而不用對應用邏輯與數據結構作任何改變。但是因為這種模式需要直接對數據庫進行操作,程序員需要對原有數據訪問層做大量修改,而且在修改的同時又必須保證數據的完整性,因此在通過互聯網進行數據交換時,由于系統需要詳細了解交換雙方數據庫的結構以及實現方式,所以需要承擔很高的安全風險,而且,對于不同的應用,這種交換模式還需要作不同的設計,因而系統的可重用性很差。
2.3 面向服務的中間數據交換模式
面向服務的中間數據交換模式,即在網絡環境中的跨平臺應用程序之間,建立一個可供多方共享的中間數據服務層,這些服務與數據庫物理分離,數據接收方通過這些數據服務來獲取對方數據的一種模式。
面向服務的中間數據交換模式對數據接口的開放性和安全性方面來說都是最佳的一種模式。數據提供方通過建立一系列的中間數據服務,針對不同的第三方系統靈活定制不同的數據服務,同時制定不同的開放策略,靈活性很高。數據接收方要獲取數據,必須先獲得調用中間服務的許可權,有了許可權,就可以直接調用開放的中間數據服務來獲取想要的數據。
中間數據服務的開發語言可以有很多種,最常見的有基于.Net或J2EE架構下開發的Web Service服務。Web服務(Web Service)是近年內興起的另一種基于Internet的技術,在近幾年受到了極大的關注。該技術的出現標志著人類已經邁入應用程序開發技術的新紀元,它使得Internet不僅是傳輸數據的平臺,也變成了傳遞服務的平臺。采用面向服務的中間數據交換模式可以實現互聯網環境下的企業應用的松散耦合和集成,使各個應用系統可以方便的集成現有的應用并開發新的應用。
參考文獻
[1]馮延暉,葉毅峰.XML完全手冊[M].北京:中國電力出版社,2000.
[2]Subrahmanyam Allamaraju Cedric Buest John Davies等.J2EE編程指南[M].北京:電子工業出版社,2002.
[3]Natanya Pitts,等.XML技術內幕[M].北京:機械工業出版社,2002.
[4]楊劍,唐慧佳,孫林夫,等.基于XML的異構數據交換系統的研究與實現[J].計算機工程,2005,31(19):195-197.endprint