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

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