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