SDO的規格
SDO (Service Data Objects) 是 Java 世界中對於 SOA 資料存取的一個架構。
在這個架構中,其主要的元素包括三個,分別是:Data Object、data graph 以及 Data Access Services (DAS)。
- Data Object 主要是屬於資料面的呈現,在 Data Object 中,保存了一組的屬性 (Property),其實非常類似傳統的Java Bean。
- data graph 包裝 了 Data Object,並且保存了 Data Object 操作的相關屬性(如是否有被更改…等),一般來說,data graph 的來源可以是 Data Source(XML file, EJB或是RDB)或是Service(Web Service、JCA或是JMS)。
- DAS 則是實際操作 data graph 的操作,如將 data graph 的修改註記直接 Commit 到 Data Source 中。
這三者的關係,其實非常類似 .NET Framework 的 ADO.NET 的 Dataset 結構。
Data Object可以類比為 Data Row;data graph 則類似 Dataset;而 DAS 則是 Dataset 的 Data Adapter。
我們可以利用下圖來說明者三者的關係:
在圖 5中表達了這個存取的結構關係。
首先 Client 要求 DAS 進行存取,DAS 到 Data Source 存取 Data Object,並將其包裝為 data graph 後回傳給 Client,此時,data graph 已經和 Data Source 分離,呈現一個 off line 的 data;當 Client 對 data graph 進行操作後,再請 DAS 將該 data graph 更改的情形 Commit 回 Data Source。
根據上圖 5的原理,SDO的API則如下圖所示:
在這個 API 中,其實可以更進一步看出整體 SDO 的相關重要的結構關係。