導航:首頁 > 數據處理 > 數據互操作性什麼意思

數據互操作性什麼意思

發布時間:2022-11-05 19:03:16

『壹』 什麼叫程序的互操作性

應用程序互操作性:互用性基本原理
發布者:[本站編輯] 來源:[] 瀏覽:[] 評論:[] 字體:大 中 小

面對互用性的挑戰
在最基本的層次上,實現應用程序平台之間的互用性要涉及到數據的交換。 當實現一個 .NET 和 J2EE 互用性項目時,面臨三種主要的數據交換挑戰。 這三個挑戰如下:

• 原始數據類型映射。

• 不存在的數據類型

• 復雜數據類型

注原始數據類型是基於 .NET 或 Java 的基本類型系統的組件,例如:整型、字元串、雙精度等。

所有的挑戰都涉及到類型兼容性,並有可能阻礙或阻止數據傳輸。

這三個挑戰分解如下:

• 原始數據類型映射 鈥_ 您可能知道「String」類型在 CLR 和 Java 中都存在。 然而,這並不意味著 Java 中的 java.lang.String 完全映射為 .NET 中的 System.String。 如果示例公開 java.lang.String,您如何將之映射為 CLR 中的相當成分?

• 不存在的數據類型 鈥_ 如何映射一個平台上有而另一個平台上沒有的數據類型? 例如,System.Collections.Specialized.HybridDictionary 是一個在 CLR 中被證實存在的數據類型,但在 Java 中卻沒有相似的數據類型。 Java 中存在類似情況,例如 Java.util.Vector,它在 .NET 中沒有相似的數據類型。

• 復雜數據類型鈥_ 您的應用程序可能公開復雜數據類型,由數量眾多的原始數據類型或者嵌套的原始數據類型組成。 此時需要公開復雜數據類型以便其他平台可以使用它。

考慮如圖 3.1 所示的集成一個 ASP.NET 表示層和一個 J2EE 業務層的示例。 在此示例中,J2EE 業務層中的一個 EJB 公開了一個 ASP.NET 表示層隨後調用的方法。 在一個生產應用程序中,該返回數據不可能是簡單的「Hello World」字元串,它可能包含復雜元素。

圖 3.1: ASP.NET 表示層連接到 J2EE 業務層

幸運的是,已經存在許多方法可使應用程序在不同平台之間交換不同類型的數據,並且第 4 章和第 5 章將詳細地描述這些選擇。 然而,在能夠在兩個平台間建立連接之前,您必須在它們試圖進行交換之前確保雙方理解特定的數據類型,除此之外也有一個使雙方都可以使用的傳遞數據的方法。 下一部分講述如何使用序列化實現該傳遞。

使用序列化
序列化是使一個對象或類編碼成為永久的或可傳輸狀態的過程。 這使您接受一個復雜數據類型,然後編碼、保存、傳遞和解碼,並可能使用一個單獨的進程處理解碼。

有兩個主要的序列化類型:

• 二進制序列化 鈥_ 接受數據類型並且將其轉換為二進制流。

• XML 序列化 鈥_ 將數據類型轉換為可以隨後轉換為 XML 文檔的 XML 流。

可以從任一種序列化類型中接受輸出,並將其存儲在內存中、放在文件中,還可以通過網路連接進行傳輸。 例如,您的應用程序可能有一個已經定義的復雜數據類型 CustomerData,它存儲著有關客戶的信息(如姓名、地址、電話號碼等)。 可以使用序列化將 CustomerData 數據類型轉換為一個二進制或 XML 流,這樣您可以跨越進程邊界進行傳輸或者將它保存為一個文件稍候使用。 當該對象存在於二進制或 XML 格式中時,就已經被序列化了。

反序列化是一個將已經序列化的對象轉換回它原始形式的過程。 通常,將對象反序列化為它們的原始類型。 因此,如果將 CustomerData 數據類型序列化為一個二進制流或一個 XML 文檔,能夠將其反序列化回數據類型 CustomerData 而不能反序列化為數據類型 OrderData。OrderData.

.NET和 J2EE 在同一平台內應用程序間的數據交換都使用序列化。 通過將序列化對象傳遞給其他平台以進行反序列化,還可以使用序列化在不同平台上的應用程序間交換數據。 以下部分考查如何在 .NET 和 Java 上實現二進制和 XML 序列化。

理解二進制序列化
二進制序列化是接受一種復雜數據類型(或對象),並將其編碼為一個二進制流、更改為永久狀態、傳輸然後解碼(反序列化)回原始復雜數據類型的過程。

Java 和 .NET 兩者都包含一個能將任何可序列化的數據類型轉換為一個位元組流的二進制序列化程序。 各個平台上執行該序列化的類是相似的,並且實現起來很簡單。

對 .NET 和 Java 兩者的二進制序列化而言,首先必須使用一個標簽以指示要序列化一個類型。 在 .NET 中,可以使用 [Serializable] 屬性或實現 ISerializable 介面。. 在 Java 中,同樣的方法是使用類實現 java.io.serializable。

不幸的是,.NET 和 Java 的序列化程序不兼容。 因此,無法將由 Java 序列化程序序列化的 CustomerData 對象直接流式傳輸到 .NET 版本中去,反之亦然。 即使可以這樣做,還是要面對如下挑戰:讓 .NET 框架應用程序理解 Java 序列化程序產生的 CustomerData 對象。 .NET 一方可能沒有一個等同的 CustomerData 數據類型來接受來自 Java 方的 CustomerData 反序列化對象。

只要使用同樣的格式化程序執行對象的序列化和反序列化,就可以 使用二進制序列化程序連接 .NET 到 Java。 創建來自數據類型的位元組流格式,必須與接收位元組流並且重新構造對象的格式完全匹配。

有兩種可以用來避免默認的 J2EE 和 .NET 二進制序列化程序不兼容的方法。 它們是:

• 創建一個在 Java 和 .NET 中共享相同格式選項的自定義序列化程序。

• 在 .NET 框架中使用一個處理二進制格式化程序的第三方產品,如 JaNET 或 JNBridgePro。

有關使用 JaNET 和 JNBridgePro 實現二進制序列化的更多信息,請參閱第 4 章「互用性技術: 點對點。」

理解 XML 序列化
XML 序列化是接受一個復雜數據類型(或對象)並將其解碼為 XML 流的過程。 然後,可以將 XML 流轉變為一個 XML 文檔形式的持久化狀態,進行傳輸,再將其解碼(反序列化)回其原始復雜數據類型(或對象)。

為了理解 XML 序列化過程,必須對 XML 有一個基本的了解。 XML 是一個基於文本的包含結構化的和可擴展數據的文檔標記語言。 因為 XML 是基於文本的,所以可以像一個正常的文本一樣讀它;並且因為它是可擴展的,所以可以使用它描述幾乎所有的信息類型。 因此 XML 文檔可以包括:

• 文本

• 圖片

• 程序設置

• 數據架構

• 批註

• 插入

XML 文檔也可以包括關於如何使用文檔自身中的數據的指導。

有關 XML 的更多信息,請參閱 Microsoft XML Web site。

在「理解二進制序列化」一節中,您可以看到 .NET 和 Java 平台的二進制序列化程序是如何互相不兼容的。 然而,XML 是與平台無關的。. 如果在一個平台中可以將一個對象或數據類型序列化為 XML 文檔,應該很容易讀取、理解和反序列化該文檔為另一個平台的對象或數據類型。 不幸的是,並非總是如此,但在大多數情況下 XML 序列化的確提供了一個互用性通道。

分析 XML 文檔
在 .NET 和 J2EE 內,有幾種不同的方法可以讀、寫和編輯 XML 文檔。 該過程就是 XML 分析,並且兩個平台都具有穩定成熟的 XML 分析器。 使用分析器,您可以在人工地從一個 XML 文檔中讀取數據的應用程序內編寫代碼,然後將數據插入到一個復雜數據類型對象。 例如,可以使用分析從 J2EE 應用程序產生的 XML 文檔中讀取數據,然後將數據插入到 .NET 數據類型。 分析允許在 .NET 和 J2EE 之間交換數據。

讀寫 XML 文檔的分析器通常主要分三種類型:

• 雙方平台上的文檔對象模型 (DOM)

• 僅在 Java 上的用於 XML 的簡單 API (SAX)

• 僅在 .NET 上的 Pull model 分析

DOM XML 分析器將整個文檔載入到內存,這具有一些優點,也有一些缺點。 整個文檔位於內存中,可以簡單快速地遍歷 XML 層,但大量的文檔會因為內存的消耗而影響性能和響應。

SAX 只根據需要讀取 XML 文件的一部分。 由於是按需要讀文件,則對性能的影響較小,但由於阻止向後分析而降低了靈活性。

Pull model 分析使用一個只進、只讀的 XmlReader 游標。XMLReader 提供快速、無緩存的流去訪問輸入數據,允許提取數據和忽略不感興趣的記錄。 因為 XmlReader 處於 pull model,必要時應用程序可從讀取器中提取節點。 Pull model 提供了一些便利,如狀態管理、多輸入流、避免額外的字元串復制以及有選擇性地處理。 有關使用 XmlReader 的更多信息,請參閱 MSDN 上的「Reading XML with the XmlReader」。

System.Xml 命名空間提供 XmlDocument 和 XmlElement 兩個類使您能夠在 .NET 中分析 XML。 還提供一些方法,能夠在 XML 文檔內添加和修改元素並且遍歷那些文檔。

在 Java 中,可以使用 Document 和 Element 類達成相似的結果。

XML 分析的局限性
您需要了解一些 XML 分析的局限性。 當從一個 XML 文檔訪問和讀取不同的數據元素時,分析工作進行正常。 然而,對文檔本身操作信息可能很快就會變得很困難。 而且,分析器沒有內部方法可用於將 XML 文檔中的對象映射為 Java 或 .NET 中的類。 將 XML 文檔中的數據映射為應用程序的對象和類中需要將 XML 序列化。

XML 分析被認為是一種實現 XML 序列化的低效方法,並且不建議使用此方法作為在 .NET 和 Java 間交換 XML 數據的方法。 .NET 和 J2EE 都具有包含分析功能的 XML 序列化程序。

當創建 XML 文檔時,XML 序列化提供顯著的改進。 它使您脫離沉悶的 XML 分析過程,關注開發應用程序本身和相關數據類型。 XML 序列化將 .NET 中的對象收集任務簡化,將其轉換為 XML 文檔並且可以讓一個 Java 應用程序去讀取,反之亦然。

在 .NET 平台上實現 XML 序列化
.NET 框架為 XML 序列化提供大量的類和 API。 其中一個主要的類就是 System.Xml.Serialization.XmlSerializer 類。 該類將 .NET 框架類型序列化為 XML文檔,並且可將 XML 文檔序列化回來。 XML 序列化只將一個對象的公共欄位和屬性轉換(或序列化)為一個 XML 流,但是二進制序列化將對象的公共和私有欄位連同類名以及包括該類的程序集轉換為位元組流。

可以使用 [Serializable] 屬性指明要序列化的類型,如同二進制序列化一樣。 還可以使用該數據類型類實現 ISerializable 介面。

XML 序列化使用與二進制序列化不同的規則。 例如,不必使用 [Serializable] 屬性標明 .NET 數據類型,盡管這仍是建議的做法。 然而,.NET 數據類型必須有一個有效的默認公共構造函數。

將 .NET 對象序列化為 XML
以下示例說明在 .NET 下如何使用 XMLSerializer 將一個 CustomerData 類的實例(稱為 custData)轉換為一個 XML 流。 該示例假設 .NET 框架應用程序已經具有一個被定義為 CustomerData 的標記為可序列化的數據類型類。

XmlSerializer serializer = new XmlSerializer(typeof(CustomerData));
serializer.Serialize(fileStream, custData);

XMLSerializer 類的 Serialize 方法序列化CustomerData 對象的內容 custData,並且產生一個文件流輸出。 該流指向一個文件,該文件是一個 XML 文檔,它代表 CustomerData 對象的序列化版本 custData。

將 XML 中的對象反序列化到 .NET 中去
下一個示例說明如何使用 .NET 中的 XMLSerializer 從一個存儲為文件的 XML 文檔返回 CustomerData 對象的實例 custData。

XmlSerializer serializer = new XmlSerializer(typeof(CustomerData));
CustomerData custData =
(CustomerData)serializer.Deserialize(fileStream);

此處使用類 XmlSerializer 的方法 Deserialize 從一個作為流傳遞到序列化程序中的 XML 文檔返回一個 CustomerData 對象 custData。

注Deserialize 方法返回一個具有 System.Object 類型的對象。 在將返回對象分配給目標類型前確保對返回的對象進行了適當的強制轉換。

序列化可能因為某些原因而失敗:

• 反序列化的 XML 文檔包括序列化程序無法處理的欄位。

• 對象無法序列化,如實現 IDictionary 介面的任何對象。

• 對象未被聲明為公共。

• 對象不包括一個有效的無參數構造函數。

注在試圖序列化一個滿足上面講的四種類別之一的對象時,從 XmlSerializer.中生成一個 System.InvalidOperationException。 當調試 XML 序列化時,應該檢查並且處理任何滿足這種異常的實例。

為 Java 平台實現 XML 序列化
無論對 J2SE 還是 J2EE 而言,對象的 XML 序列化都不是核心規范的一部分。 因此,需要使用一個第三方序列化程序,幾個選擇如下:

• Electric XML

• Apache Cocoon

• Open XML Framework (OXF)

• Java Architecture for XML Binding (JAXB)

盡管無需使用 Web 服務來使用 XML 序列化特性,許多序列化程序仍舊構成了較大的 Web 服務軟體包的一部分。 Java 序列化程序結合使用反射 和映射 將對象數據寫為正確的 XML 格式。 反射是一種檢查對象結構的技術,而映射類似於一個可擴展樣式表語言轉換 (XSLT) 文檔,將對象中的欄位名映射為 XML 文檔的元素或屬性。

使一個 Java 類可序列化,需要實現 Serializable 介面。 因此 CustomerData 的類聲明如下。

public class CustomerData implements java.io.Serializable

可序列化的類也必須具有一個無參數構造函數。 還可以使用 serialPersistentFields 成員去顯式聲明哪些欄位可被序列化,或者使用瞬態關鍵字指出無法序列化的欄位。 不可序列化欄位的示例可能是包含敏感數據的欄位。

為了控制保存和讀信息,在 Java 中標記為序列化的類還可實現 readObject 和 writeObject 方法,以及 writeReplace 和 readResove 方法以指定替換對象。

為對類的序列化進行完全控制,還可實現 Externalizable 而不是 Serializable。 當使用 Externalizable 時,必須實現 writeExternal 和 readExternal 方法寫數據內容以及數據格式和相關的元數據。

接下來兩個使用 Electric XML 的示例說明如何序列化和反序列化一個 Java 對象。 此處您可以看到 Electric XML 對 .NET 使用相似的方式處理序列化和反序列化過程。

將 Java 對象序列化為 XML
下面的示例假設 Java 應用程序定義一個可序列化的數據類型類 OrderData,該數據類型類實現了 java.io.serializable。 它說明了在 J2EE 中如何使用 Electric XML 序列化程序將該類的命名實例 order 轉換為一個 XML 文檔。

electric.xml.io.IWriter writer = new LiteralWriter(xmlNameSpace,OrderData);
writer.writeObject(order);
electric.xml.Document document = writer.getDocument();

在該示例中,首先創建了類型 electric.xml.io.IWriter 的一個實例,將要創建的 XML 文檔的 XML 命名空間和對象類型 (OrderData) 作為參數傳入。 IWriter 對象的 writeObject 方法序列化 OrderData 對象的內容 order。 最後,對象 IWriter 的方法 getDocument 返回包含對象 OrderData 的已序列化內容的 XML 文檔。 隨後可以將該文檔寫入到流。

從 XML 反序列化對象到 Java
下一個示例說明在 J2EE 中如何使用 Electric XML 序列化程序從名為 xmlDocument 的 XML 文檔中返回 OrderData 對象的一個實例 order。

electric.xml.io.IReader reader = new LiteralReader(xmlDocument);OrderData order = (OrderData)reader.readObject(OrderData.class);

這里使用 IReader 類的 readObject 方法從作為參數傳到讀取器的 XML 文檔中返回 OrderData 對象的一個實例 order。

注readObject 方法返回類型 java.lang.Object 的一般對象。 在給目標類型分配返回對象之前,必須對此返回對象進行適當的強制轉換。

有關 Java 平台上的 XML 序列化的其他示例,請參閱第 7 章 「在表示層集成 .NET」。

使用 XML 架構確保類型兼容性
您現在已經了解了在一個平台上如何使用 XML 序列化將一個對象序列化為一個 XML 格式,然後在另一個環境中將其反序列化為原來的對象類型。 然而,僅 XML 序列化還不能解決 .NET 和 Java 間交換數據的問題。

當使用序列化技術時主要考慮的問題是確保在從一個平台產生一個 XML 文檔時,這個文檔與另一個平台兼容。 不應想當然地認為一定兼容。 XML 架構 提供了為 XML 文檔指定格式的互用性協定。 正是該組件為成功進行 .NET 和 Java 互聯提供了模板。

XML 文檔本身沒有在這個文檔內定義數據類型。 因此值 4.56 可能是 string、double 或者 float。 這使接收平台很難正確導入該值。 類似地,這兩個平台都可以實現類型 OrderData,而 .NET 版本的類型與 Java 中的同名類型完全沒有關系。

例如,如果在 .NET 平台上將 OrderData 對象序列化為一個 XML 文檔,並且將其傳入要使用的 Java 應用程序中,需要回答以下問題:

• Java 應用程序怎樣知道如何對 OrderData 對象進行反序列化?

• 在 Java 中有一個數據類型 OrderData 等同於 .NET 中的數據類型 OrderData 嗎?

• Java 中的數據類型 OrderData 與 .NET 中的數據類型 OrderData 若不存在相同點又會怎樣?

這些問題都指向為使 .NET 與 Java 間可以交換數據而需要解決的數據類型兼容性問題。

理解 XML 架構文檔
XML 架構通過定義 XML 文檔格式,憑借幫助在 .NET 和 J2EE 間交換數據的 XML 架構文檔 (XSD) 提供了一個連接框架。 一個 XSD 文件指定一個 XML 架構,並且 XSD 文件本身就是另一個具有固定結構的 XML 文檔。 XSD 內的節點和元素定義相關的 XML 文檔中的元素和數據類型。. XSD 也包含 XML 文檔中的每個元素的任何約束。

在 XSD 文件內,您可以指定以 XML 格式存儲的數據類型的定義。 例如,當在 XSD 中定義數據類型 OrderData 時,可以指定這個對象中欄位的名稱和個數,如 orderID、itemDescription 和 price。 也可以指定對象 OrderData 中的 price 欄位的值 (4.56) 的類型是 double。

XSD 使您可以定義 XML 命名空間。 XML 命名空間允許聲明唯一類型並且也允許標識可能有相同名稱的不同數據類型。

XSD 中的一個必需組件是公共命名空間。 這使您可以聲明元素(如 xs:complexType)在文檔中是唯一的。 有關 XSD 命名空間的更多信息,請參閱 the W3Consortium Web site。

Visual Studio .NET 包括一個 XML 設計器工具,使您可容易地設計 XML 架構。 XML 設計器使您可在架構的圖形表示和表示 XML 架構的 XSD 文檔間切換模式。 XML 設計器創建了獨立於平台的 XSD,它符合 W3C 標准。. 有關 Visual Studio.NET 生成架構的更多信息,請參閱 Visual Studio .NET 幫助。

IBM Websphere Studio Application Developer 5.0 也包括一個使您可輕松地設計 XML 架構的工具。 XSD 設計器使您能夠在正在設計的架構的圖形表示和表示 XML 架構的實際 XSD 文檔間切換模式。 在 IBM WebSphere Studio Application Designer 中設計的 XSD 也是與平台無關的,並且符合 W3C 組織的 XSD 標准。

使用 XSD 確保類的兼容性
前一節講述了如何在一個 XSD 中實現一個 XML 架構以定義一個 XML 文檔的格式。 您可以使用該知識解決最後的數據交換的難題。

事實是 .NET 和 Java 平台在數據類型上達成一致的可能性很小。 然而,利用 XSD 這兩個平台可以 在 XML 文檔格式上統一。 如果說互用性如同國際外交,XSD 將是走向世界和平的一個主要的里程碑。

.NET 和 Java 都具有允許將一個類映射為已經定義的 XML 架構的工具,反之亦然。 當映射一個類到一個 XML 架構時,通過序列化該類的實例而生成的 XML 文檔與 XSD 定義的 XML 格式相匹配。 通過將每個平台的類映射為公共 XML 架構,可以確保這些平台間能夠交換 XML 數據。

例如,在 .NET 和 Java 平台上將類 CustomerData 映射為一個公共 XML 架構文件 CustomerData.xsd。 然後,將能夠將 Java 類 CustomerData 的實例序列化為一個 XML 文檔,然後將它反序列化為一個 .NET 類 CustomerData 的實例。

使用 Java 和 .NET 中的 XML 架構映射工具,主要有兩種設計交換數據的公共格式的方法:

• 從一個公共的 XML 架構開始,然後在兩個平台上產生數據類型類。 該方法確保建立與平台無關的數據類型和架構。

• 從一個現有的數據類型類(從任意的平台)開始,由它生成一個 XML 架構,然後根據生成的 XML 架構產生另一個平台的相應數據類型類。

注如果該類在兩個平台上都不存在,第一個技術是最好的。 如果它們在一個或另一個平台上確實存在,則必須使用第二種方法。

對兩個方法中的任意一個,技術不同點在於工作在 Java 還是 .NET 平台。

在 .NET 中映射 XSD 和類
.NET 框架提供一個 XML 架構定義工具 Xsd.exe,可以用來映射 .NET 類到 XML 架構並且再將其映射回來。 使用該工具,您可以:

• 從一個 XSD 生成一個 .NET 類。

• 從一個 .NET 類生成一個 XSD。

例如,如果為一個名為 ProctsData 的數據類型定義一個 XML 架構文檔 ProctsData.xsd,可以使用 Xsd.exe 產生一個名為 ProctsData 的可序列化的 .NET 類。 序列化一個 .NET ProctData 類實例產生與一個定義在 XML 架構文檔內的 XML 格式相匹配的 XML 文檔。

如果在 .NET 中定義一個可序列化的類 ProctsData,還可以使用 Xsd.exe 生成一個 XML 架構 ProctsData.xsd,它定義了包含 ProctsData 對象的一個可序列化版本的 XML 文檔的格式。

注Xsd.exe 僅允許您遵循 WWW 聯盟的 XML 架構定義語言的實施標准對 XML 架構進行操作。

有關 XML 架構定義工具的更多信息,請參閱 MSDN 上的 XML Schema Definition Tool。

有關如何使用 XML 架構定義工具的其他示例,請參閱 Simon Guest 撰寫的 Microsoft .NET and J2EE Interoperability Toolkit 一書的第 3 章。

在 Java 中映射 XSD 和類
在 Java 平台上,可使用多個工具將 Java 類映射為 XML 架構,反之亦然。示例如下:

• Electric XML 的 schema2java 和 java2schema

• Java Architecture for XML Binding (JAXB)

注大多數 XML 序列化工具的供應商提供相當於 schema2java 和 java2schema 的實用工具。 然而,本書中的示例使用 Electric XML 版本。

schema2java 和 java2schema 工具提供的功能與 .NET 上的 Xsd.exe 非常相似。 使用 Electric XML 工具可以:

• 使用 schema2java 生成一個來自 XSD 的 Java 類。

• 使用 java2schema 生成來自 Java 類的 XSD。

可以使用帶有同一 XML 架構文件 ProctsData.xsd 的 schema2java 工具(ProctsData.xsd 是在 .NET 示例中為名為 ProctsData 的數據類型定義的)生成一個名為 ProctsData 的可序列化 Java 類。

java2schema 工具允許執行相反的過程。 如果在 Java 中定義一個名為 ProctsData 的可序列化類,可以使用 java2schema 生成一個 XML 架構 ProctsData.xsd。該文檔 定義包括 Java ProctsData 對象的序列化版本的 XML 文檔格式。

注只能從已編譯的類產生 XSD,而不是從源代碼產生。

有關 schema2java 和 java2schema 的更多信息,請參閱本章結束部分的參考部分中包含的 electric.xml io tool 軟體包。

有關如何使用 Electric XML 工具映射 Java 類和 XML 架構的示例,請參閱 Microsoft .NET and J2EE Interoperability Toolkit 的第 3 章 70 至 80 頁。

在前面章節的 .NET 和 Java 示例中,因為 Java 類 ProctsData 和 .NET 類 ProctsData 都來源於 ProctsData.xsd,所以兩個類都被序列化為同一 XML 格式。 因此可以將某個平台的 ProctsData 類實例序列化為一個 XML 文檔,然後將其反序列化為另一個平台的 ProctsData 類的一個實例。

使用 XSD 生成類型是非常有效的,它對提供跨平台的互用性大有幫助。 XSD 也是 WSDL 中的一個基礎元素。 當在 XML Web 服務中查看數據類型轉換時,理解 XSD 結構非常有益。

映射 XSD 類型
前面的部分描述了如何在 .NET 和 Java 中映射類和 XSD。 但是,當使用該技術創建交換數據的一個公共格式時,具有一些限制性。 在大多數情況下,您使用的在 .NET 和 Java 中存儲數據的復雜數據類型由原始類型組成。 不幸的是,不是所有的原始類型在 .NET 和 Java 之間都有一個直接的映射。

XSD 公共命名空間定義了

『貳』 什麼是GIS互操作

GIS---Geographic Information System,地理信息系統。是一種基於計算機的工具,它可以對在地球上存在的東西和發生的事件進行成圖和分析。 GIS 技術把地圖這種獨特的視覺化效果和地理分析功能與一般的資料庫操作(例如查詢和統計分析等)集成在一起。這種能力使 GIS與其他信息系統相區別,從而使其在廣泛的公眾和個人企事業單位中解釋事件、預測結果、規劃戰略等中具有實用價值。

地理信息系統是將計算機硬體、軟體、地理數據以及系統管理人員組織而成的對任一形式的地理信息進行高效獲取、存儲、更新、操作、分析及顯示的集成。

我國GIS的發展較晚,經歷了四個階段,即起步(1970-1980)、准備(1980-1985)、發展(1985-1995)、產業化(1996以後)階段。GIS已在許多部門和領域得到應用,並引起了政府部門的高度重視。從應用方面看,地理信息系統已在資源開發、環境保護、城市規劃建設、土地管理、農作物調查與結產、交通、能源、通訊、地圖測繪、林業、房地產開發、自然災害的監測與評估、金融、保險、石油與天然氣、軍事、犯罪分析、運輸與導航、110報警系統公共汽車調度等方面得到了具體應用。

國內外已有城市測繪地理信息系統或測繪資料庫正在運行或建設中。一批地理信息系統軟體已研製開發成功,一批高等院校已設立了一些與GIS有關的專業或學科,一批專門從事GIS產業活動的高新技術產業相繼成立。些外,還成立了「中國GIS協會「和「中國GPS技術應用協會「等。

『叄』 互操作性的相關定義

數據交換至少要涉及到兩個計算機系統參與方:即發送方計算機系統和接受方計算機系統。數據交換旨在為所有的參與方計算機系統,或者交換雙方或其中之一帶來有用的結果。不過,這些參與方計算機系統的所有用戶事先已經就有關何謂有用結果的規定達成了一致意見。只有當參與方計算機系統之間所交換的數據能夠得到對方正確處理和使用的情況下,才能稱為實現了語義協同工作能力。

『肆』 GIS互操作

地理數據互操作
地理數據互操作是指通過規范介面自由處理所有種類地理數據的能力和在GIS 軟體平台通過網路處理地理數據的能力。開放的地理數據互操作規范———OpenGIS(Open Geo ndataInteroperability Specification) 是由OGC(Open GIS Consortium) 提出的有關地理信息互操作的框架和相關標准和規范。OGIS 框架主要由三部分組成: 開放的地理數據模型, 開放的服務模型和信息群模型。在OGIS 互操作框架下, OGC 又制定了一系列的抽象規范和實現規范用於指導應用GIS 互操作的構建,從標準的格式、結構和功能等方面介紹了14 個主題,
後者是與抽象規程具體實現相關的11 個主題[7n9] 。通過遵循抽象規程和實現規程, 支持一種公開透明的格式表達, 數據產品才會有更多的應用價值, 有利於數據共享和知識挖掘,最終消除地理信息流通領域中的信息孤島。

參考資料:地理信息共享與互操作框架研究 張書亮, 陶 陶, 閭國年 (南京師范大學地理信息科學江蘇省重點實驗室,江蘇南京 210097)

『伍』 實現互操作性對衛生信息共享有什麼意義

互操作性(interoperability)是指兩個或多個系統或 組件交換信息,以及使用交換信息的能力。互操作性一般包括兩方面的內容,一是語法互操作性;二是語義互操作性。在2010年1月5日召開的全國衛生工作會 議上,衛生部部長陳竺指出,2010年是全面推進醫葯衛生體制改革承上啟下的關鍵一年,加強信息標准化研究,完善數據標准和通訊標准體系,促進信息互認共 享是2010年醫葯衛生信息系統建設的中心工作之一。提高衛生信息系統互操作的目的是實現不同系統之間的信息交換和共享。

『陸』 互操作性的介紹

互操作性(Interoperability )又稱互用性,是指不同的計算機系統、網路、操作系統和應用程序一起工作並共享信息的能力。互操作性有不同的層面,比如語法層面的互操作性和語義層面的互操作性。

『柒』 什麼是互操作

所謂的互操作是指一種能力,使得分布的控制系統設備通過相關信息的數字交換,能夠協調工作,從而達到一個共同的目標。傳統上互操作是指「不同平台或編程語言之間交換和共享數據的能力(Interoperability is the ability to communicate and share data across programming languages and platforms)」。為了達到「平台或編程語言之間交換和共享數據」的目的,需要包括硬體、網路、操作系統、資料庫系統、應用軟體、數據格式、數據語義等不同層次的互操作,問題涉及運行環境、體系結構、應用流程、安全管理、操作控制、實現技術、數據模型等。
個人理解:互就是交互,信息交互、數據交互,形成共享機制;操作指的是本系統之間的控制操作和多系統之間的聯動操作,形成一套操作流程或操作規范。通過互操作,使資源配比優化,系統自身之間和多個系統之間達到工作效率和利用率的最大化。

『捌』 什麼是軟體的互操作性

互操作性是指不同廠商的設備,應用通用的數據結構和傳輸標准設置,使之可以互換數據和執行命令的解決方案。

對軟體來講,就是信息要有能夠在技術的體系裡,來進行數據的交換,也就是說來彼此交談。互操作性從信息產業一開始就非常的重要,在電腦當時還沒有進行聯接的時候,電腦本身就要進行互操作,在內部里,包括CPU,硬碟、軟盤之間的互操作,以後一個電腦就必須跟其他的電腦進行互操作,最後形成了全球的聯網,隨著我們到了網頁的服務,我們看到互操作性的重要,因為不只是電腦彼此要談話,而且是程序要彼此能夠對話,數據套件也要進行互相的對話,因此互操作性就變成了一個核心的領域來研發,IT進一步的發展。

『玖』 什麼是網路互操作性,有那些文獻或書籍啊

互操作性,互用性 Interoperability
互操作性分為不同的級別,這是因為兩個系統連接並共享信息,不能簡單地認為用戶也能從自己的應用程序中訪問這些信息。例如,一台UNIX工作站能用TCP/IP通信協議與一台Novell NetWare伺服器相連。但是,UNIX工作站的用戶除非使用兼容的文件協議,否則不能訪問伺服器上的文件。在這個例子中,載入到NetWare文件伺服器上的Novell NetWare NFS將允許UNIX用戶和NetWare客戶一樣以一種集成化無縫的方式訪問文件及其它的網路資源。

但是即使是這種級別的互操作性也不能保證UNIx用戶有可能打開和編輯他在NetWare伺服器上所訪問的文件。用戶訪問非兼容的文件格式,將需要翻譯器和轉換器。在某些情況下,應用程序自身就能訪問操作在其它環境中的應用程序所生成的文件格式。主要的軟體供應商如Microsoft,通過生成工作在多個環境中的應用程序,部分地緩解了這種差異性。例如,Microsoft Excel電子表格程序能工作在Windows環境和Macintosh環境。如果一個Windows用戶傳輸一個文件到一個Macintosh用戶,則這個Macintosh用戶能打開這個文件並使用這個文件所提供的格式化代碼。
以上是網路對網路互操作性的定義,具體的書籍的話,可能這只是一個很大的概念,要具體點才能找到。你可以上網搜下。

閱讀全文

與數據互操作性什麼意思相關的資料

熱點內容
為什麼安裝程序已在運行中 瀏覽:163
大數據二維碼是什麼 瀏覽:565
手機拍照有哪些技術 瀏覽:880
山西清香型酒有哪些代理品牌 瀏覽:171
希捷是做什麼產品的 瀏覽:496
上海做老房子交易的中介有哪些 瀏覽:673
數據線車載藍牙鄭州哪裡有賣的 瀏覽:214
演算法中代理模型是什麼 瀏覽:717
excel數據怎麼導入外部 瀏覽:436
如何入住微信小程序 瀏覽:976
哪個微信小程序可以看戶型圖 瀏覽:587
奶粉dha含量看哪個數據 瀏覽:335
練吃雞技術在哪裡練 瀏覽:325
存在的科學技術問題是什麼意思 瀏覽:414
怎麼測量產品孔的角度 瀏覽:643
昆明的菜市場為什麼都關了 瀏覽:198
白天菜市場有什麼好吃的 瀏覽:38
什麼是攝影信息特性 瀏覽:428
遠洋市場帝王蟹多少錢 瀏覽:468
督促程序的范圍是什麼 瀏覽:699