2010年7月20日 星期二

Restlet已發布連接Java和.NET的橋樑


Restlet開源項目(面向Java的輕量級REST框架)主要是溝通連接Java和.NET的橋樑,以方便Java開發者輕鬆使用ADO.NET DataServices。

  近日位於法國的諮詢服務公司Noelios Technologies發布了Restlet開源項目(面向Java的輕量級REST框架)的新版本,該版本包含了針對ADO.NET Data Services的Restlet擴展。 此舉是微軟和NoeliosTechnologies協作的成果,這樣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之間的通信。

下面的組件圖描繪了整體的架構(來源)

resletextentionforadonetdataservicesarchitecture

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