我們正在着手新的中間層服務,它允許內部客戶端系統在一些底層數據存儲中創建和更新和查詢記錄。該服務將聚合多達3個獨立的基礎數據存儲。對於這個問題的目的,假設:API設計:公開XML或對象
數據存儲#1:專有XML數據庫。
數據存儲#2:現成的關係數據庫。
數據存儲#3:平面文件存儲(以二進制形式存儲的文件)。
客戶端將不知道(也不在乎)的數據存儲他們查詢/ udpating。新服務將作出這一決定。我的問題是:我的API應該公開XML還是對象?例如。新的API將有一個添加方法。假設我們的系統是汽車的存儲系統,那麼API的加載方法可能如下:
AddNewCar(CarObject car)
或者,它可能是這樣的:
AddNewCar(string carXml)
現在,儘管第2方法在輸入時很弱類型化,XML將立即針對架構進行驗證,作爲最低限度。
新的服務將在C#編寫(不是哪個版本尚未決定,但可能是3/3.5與WCF)。 API的客戶端可以是C#/ VBA/VB.Net/C++/Java)。
更多詳情請讓我知道。謝謝
更新:請注意,API也將通過消息總線發佈XML。例如。當添加新車時,汽車XML將會發布,以便任何對新車感興趣的人都會收到通知。
只有最好的,如果你想要的對象。例如。如果你想創建一個報告,那麼XML可能是最好的,因爲你可以運行XSLT來生成報告。我不知道,也不能在現階段假設我的客戶實際上會對數據做什麼。 – ng5000 2008-12-15 14:44:48