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

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