???????? Service Data Object(SDO)是Service Oriented Architecture(SOA)體系中的基本技術(shù)之一。近來(lái),BEA,IBM,ORACLE,SAP,IONA,SIEBEL和Sybase都發(fā)布了他們支持SOA使能規(guī)范的框架,就是常說(shuō)的Service Component Architecture(SCA)。SDO在這些框架中提供了最基本的數(shù)據(jù)表示功能。
??????? 目前,大多電信,企業(yè)應(yīng)用都采用了關(guān)系數(shù)據(jù)庫(kù)作為數(shù)據(jù)存儲(chǔ)介質(zhì)。在傳統(tǒng)的開(kāi)發(fā)過(guò)程中,開(kāi)發(fā)者通常要了解一些關(guān)系數(shù)據(jù)庫(kù)的基本知識(shí),比如SQL語(yǔ)法,存儲(chǔ)過(guò)程等。SDO的出現(xiàn),極大的改善了這一狀況。精通數(shù)據(jù)庫(kù)的項(xiàng)目成員可以專注于數(shù)據(jù)庫(kù)部分,業(yè)務(wù)開(kāi)發(fā)者可以專注于開(kāi)發(fā)業(yè)務(wù)邏輯,他們只用了解SDO的一些接口即可,他們不用關(guān)心后端的存儲(chǔ)源到底是什么。
??????? SDO給我們帶來(lái)了以下的好處:
??????? 1.? 它以無(wú)連接的方式表示數(shù)據(jù)庫(kù)的一個(gè)view,這樣可以降低應(yīng)用對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)頻率,降低server負(fù)載。
??????? 2.? 它能夠自動(dòng)跟蹤所有對(duì)數(shù)據(jù)圖的更改。
??????? 3.?? 相對(duì)關(guān)系數(shù)據(jù)庫(kù)的數(shù)據(jù)存儲(chǔ)模型,SDO的樹狀數(shù)據(jù)模型更符合客觀世界,降低了數(shù)據(jù)冗余。
??????? 4.? SDO能夠很容易的序列化為XML格式數(shù)據(jù)。
??????? 5.? SDO能夠屏蔽后端的數(shù)據(jù)源,業(yè)務(wù)開(kāi)發(fā)者不用關(guān)注后端數(shù)據(jù)源具體是什么。(有可能但不限于是XML,DB,其它組件,EJB等)
其中上面的第4個(gè)特性為我們帶來(lái)了巨大的好處,這使SDO能夠成為各個(gè)組件之間的通信橋梁,從而使SDO成為SOA體系中不可或缺的一部分。
??????? 不過(guò)當(dāng)前的SDO(2.0)規(guī)范只定義了數(shù)據(jù)模型層,對(duì)DAS層沒(méi)有規(guī)范出來(lái),SDO3.0規(guī)范會(huì)加入對(duì)DAS的定義。期待ing。