连接 Java 和.NET 的 RESTFul Bridge 发布了

  • Dilip Krishnan
  • 张龙

2009 年 10 月 13 日

话题:JavaSOA.NETREST语言 & 开发架构

近日位于法国的咨询服务公司 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 互操作的信息。

查看英文原文:RESTFul Bridge Between Java And .NET Released

JavaSOA.NETREST语言 & 开发架构