RESTFul已發布 連接Java和.NET的橋梁
近日位于法國的咨詢服務公司Noelios Technologies發布了Restlet開源項目(面向Java的輕量級REST框架)的新版本,該版本包含了針對ADO.NET Data Services的Restlet擴展。此舉是微軟和Noelios Technologies協作的成果,這樣Java開發者就可以輕松使用ADO.NET Data Services了。
通過ADO.NET Data Services框架,我們可以創建RESTful服務以及使用這些服務的客戶端。根據MSDN所述:
ADO.NET Data Services框架包含了很多模式與程序庫,以此創建并使用Web上的數據服務。該框架的目標是簡化數據服務的創建,使用戶能夠輕松創建與Web集成良好、靈活的數據服務。因此,ADO.NET Data Services使用URI指向數據片段并通過簡單、眾所周知的格式來代表數據,比如JSON和ATOM(基于XML的feed格式)。
微軟技術布道者Jean-Christophe Cimetiere撰寫了一篇文章對ADO.NET Data Services(此前叫做“Project Astoria”)進行了詳盡的介紹,并說明了該框架可以通過RESTful服務公開關系及非關系數據的原因。
為了讓系統能夠理解并利用數據上的語義,ADO.NET Data Services使用Entity Data Model(EDM,一種實體關系衍生物)并通過數據服務來對數據進行建模。這樣就會以“實體類型”實例或“實體”的形式來組織數據并管理實體之間的關聯關系。
對于關系數據來說,ADO.NET Data Services可以暴露由ADO.NET Entity Framework所創建的EDM模型。對于其他數據源(比如非關系數據)或是其他的數據庫訪問技術(比如LINQ to SQL)來說,ADO.NET Data Services又提供了一種機制將這些數據源建模為實體和關系(比如通過EDM schema描述)并將其暴露為數據服務。
大家可以通過此鏈接深入了解ADO.NET Data Services。
根據Restlet站點所述,Restlet是一個輔助開發RESTful客戶端與服務端應用的框架。Restlet框架包含了一個Restlet API,該API提供了一套核心契約集來注冊Restlet實現。這些實現可以是開源項目,也可以是商業產品。Cimetriere說到:
ADO.NET Data Services的Restlet擴展提供了一個高層次的client API來擴展Restlet框架的核心功能:可以訪問位于ASP.NET服務器或是Windows Azure云計算平臺上的遠程數據服務。
Java開發者可以通過擴展的代碼生成器創建符合ADO.NET Data Services所暴露的數據實體的Java類。之后Java應用就可以通過一個簡單的方法調用訪問這些數據了。Restlet引擎和擴展的運行時組件會負責Java客戶端應用與ADO.NET Data Services之間的通信。
下面的組件圖描繪了整體的架構(來源)。

由微軟領導的其他Java互操作技術還有Apache Stonehenge(跨平臺的SOA/Web服務互操作)和Azure .NET Services SDK for Java。大家可以通過www.interoperabilitybridges.com/projects/tag/Java.aspx了解更多關于Java-.NET互操作的信息。
【編輯推薦】