您所在的位置: 首页>>开发>>.Net>>

MindTouch Dream:一个REST SDK和轻量单机服务器

http://developer.51cto.com  2007-10-18 09:30  John McClean  infoq.com  我要评论(0)
  • 摘要:MindTouch提供了一个编程库和单机运行的服务器,用于开发和发布RESTful Web Service。Dream "Denim" 1.4.1也在上个星期已经发布。
  • 标签:.NET  Web服务  REST  开源项目发布

MindTouch提供了一个编程库和单机运行的服务器,用于开发和发布RESTful Web Service。Dream "Denim" 1.4.1也在上个星期已经发布。

MindTouch Dream是一个基于LGPL的开源项目。完全用C#编写,运行于Microsoft .NET 2.0以及Novell Mono 1.2.5之下。根据Steve Bjorg——MindTouch的共同创立者的说法,“描述它的最好方法是提这样一个问题:随着面向服务世界的不断增长而建立起来的以Web为中心的编程环境会是什么样子?”

“Dream区别于.NET的其他框架(如Windows Communication Foundation)的几个重要特性是:

◆它是轻量级的
◆它是跨平台的
◆它是遵从业界标准的
◆它是开源的
◆且它没有使用SOAP ”

Dream的核心概念是Web Serivce。一个Web Service被运行时实例化,并提供一些为名“features”的入口点。Features是藉由HTTP请求来调用,由服务名称和一个URI模式(类似GET,PUT,POST,DELETE这样的HTTP动词)扩展得到的 Dream Host 基本地址构成。一个Feature通过Dream Attribute映射到一个CLR方法上,其定义了动词和URI模式。

[DreamFeature("GET:addresses", "Get all addresses")]
public Yield GetAddresses(DreamContext context, DreamMessage request,
TaskYield response)
{}

DreamFeature属性的第一个参数通过冒号分隔定义了动词和模式。Dream服务和消费端以XML或二进制数据流的格式来交换数据。通常Dream服务使用XML文档方式。这些文档被DreamMesseage实例包装着。

Dream SDK通过XDoc类(包装了.NET XML类的功能)提供了一种简易的方式来生成XML文档,这样减轻了XML文档的创建和使用程度:

“XDoc是一个处理XML的所有事情的瑞士军刀。它是对XmlDocument、XmlElement、XmlText和XmlNodeList类轻量级的封装,以让它们更容易地被创建、查询和编辑XML文档。有了XDoc,你不需要知道任何.NET XML类,因为XDoc把所有操作都包含其中了,它真的让所有事情变得简单!
Dream提供了一系列通用的Features ,可用于所有的服务和一个核心服务库 “在编写任何有意思的Web service和Web应用程序的时候来处理常规问题”。 ”

Dream服务能被托管于一个控制台宿主应用程序中或一个自定义环境里,比如NT服务。控制台宿主应用程序提供了一个命令行接口来创建新的Dream托管环境。Dream托管环境则通过Dream Host来实现。运行时也能被托管在IIS6中 。HTTP请求则被包含其中的Dream HTTPHandler说处理。Dream运行时:

“负责着所有交互的协调。它利用HttpListener 类来构建,因此在目标设备上无需预先安装web-server。它也负责着服务的实例化、消息的路由和缩短服务到服务(service-to-service)的通讯(当两者都一起被定位的时候,意思就是说它们被加载到同一个AppDomain中)。 ”

Plugs是一个很方便的功能,当服务被一起加载到同一个AppDomain的时候,它能够把HTTP通讯转换到内存中的通讯。

“Plugs能非常简单地和Web资源进行交互。而且,当服务需要通过定位(例如托管于同一个AppDomian中)的时候,Plugs还能检测并替换WebRequest。在这种情况下,Plugs使用直接的内存通讯,而不是使用昂贵的序列化/反序列化操作。Plugs也能轻易地通过调整目标服务的URI,指向特定的想用的Feature或可选的处理过程上。 ”

MindTouch Wiki提供了一个Dream概念的报告幻灯片,介绍了面向服务分布式构架(Service-Oriented Distributed Architecture,SODA ),描述了由MindTouch Dream推广的一种应用程序编程模型,以及REST web services的总体介绍。

查看英文原文MindTouch Dream: REST SDK & Lightweight Standalone Server

【责任编辑:dizzarz TEL:(010)68476606】

专题:ASP.NET 2.0基础开发指南
.NET移动与嵌入式技术专题
.NET Framework新手入门专题
VS.NET实用开发专题
ADO.NET实用技巧专题
 
 验证码: (点击刷新验证码)   匿名发表
  • Visual C++ 完全自学宝典

  • 作者:强锋科技,朱洪波
  • Visual C++ 6.0是微软公司为程序人员提供的Visual Studio 6.0工具套件中的重要组成部分。本书由浅入深地介绍使用Visual C++ 6.0..
Copyright©2005-2008 51CTO.COM 版权所有