近日位于法国的咨询服务公司NoeliosTechnologies发布了Restlet开源项目(面向Java的轻量级REST框架)的新版 本,该版本包含了针对ADO.NETDataServices的Restlet扩展。此举是微软和NoeliosTechnologies协作的成果,这 样Java开发者就可以轻松使用ADO.NETDataServices了。
通过ADO.NETDataServices框架,我们可以创建RESTful服务以及使用这些服务的客户端。根据MSDN所述:
ADO.NETDataServices框架包含了很多模式与程序库,以此创建并使用Web上的数据服务。该框架的目标是简化数据服务的创建, 使用户能够轻松创建与Web集成良好、灵活的数据服务。因此,ADO.NETDataServices使用URI指向数据片段并通过简单、众所周知的格式 来代表数据,比如JSON和ATOM(基于XML的feed格式)。
微软技术布道者Jean-ChristopheCimetiere撰写了一篇文章对ADO.NETDataServices(此前叫做“ProjectAstoria”)进行了详尽的介绍,并说明了该框架可以通过RESTful服务公开关系及非关系数据的原因。
为了让系统能够理解并利用数据上的语义,ADO.NETDataServices使用EntityDataModel(EDM,一种实体关系衍生物)并通过数据服务来对数据进行建模。这样就会以“实体类型”实例或“实体”的形式来组织数据并管理实体之间的关联关系。
对于关系数据来说,ADO.NETDataServices可以暴露由ADO.NETEntityFramework所创建的EDM模型。对于 其他数据源(比如非关系数据)或是其他的数据库访问技术(比如LINQtoSQL)来说,ADO.NETDataServices又提供了一种机制将这些 数据源建模为实体和关系(比如通过EDMschema描述)并将其暴露为数据服务。
大家可以通过此链接深入了解ADO.NET Data Services。
根据Restlet站点所述,Restlet是一个辅助开发RESTful客户端与服务端应用的框架。Restlet框架包含了一个 RestletAPI,该API提供了一套核心契约集来注册Restlet实现。这些实现可以是开源项目,也可以是商业产品。Cimetriere说到:
ADO.NETDataServices的Restlet扩展提供了一个高层次的clientAPI来扩展Restlet框架的核心功能:可以访问位于ASP.NET服务器或是WindowsAzure云计算平台上的远程数据服务。
Java开发者可以通过扩展的代码生成器创建符合ADO.NETDataServices所暴露的数据实体的Java类。之后Java应用就可 以通过一个简单的方法调用访问这些数据了。Restlet引擎和扩展的运行时组件会负责Java客户端应用与ADO.NETDataServices之间 的通信。
下面的组件图描绘了整体的架构(来源)。