扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
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")] |
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的总体介绍。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者