最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

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

  • 2007-10-16
  • 本文字数:1473 字

    阅读完需:约 5 分钟

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

2007-10-16 20:37812
用户头像

发布了 254 篇内容, 共 53.4 次阅读, 收获喜欢 2 次。

关注

评论

发布
暂无评论
发现更多内容

CorelDraw2023主要功能特性

茶色酒

CorelDraw2023 CorelDraw

算法题学习---链表的奇偶重排

桑榆

算法题 11月月更

LeetCode题解:783. 二叉搜索树节点最小距离,栈,JavaScript,详细注释

Lee Chen

JavaScript 算法 LeetCode

Scrum Patterns:产品的自豪感(Product Pride)

Bruce Talk

Scrum 敏捷 Agile Scrum Patterns

Redis分布式锁剖析和几种客户端的实现

C++后台开发

redis 分布式 后端开发 C++开发

有限状态机

二哈侠

Verilog 11月月更 Melay FSM

cap理论和base理论

急需上岸的小谢

11月月更

两阶段提交与三阶段提交

急需上岸的小谢

11月月更

网页基本代码

我叫于豆豆吖.

11月月更

架构误区系列5:滥用分布式锁

agnostic

分布式锁

CleanMyMac2023Mac系统电脑磁盘优化软件

茶色酒

CleanMyMac CleanMyMac2023

网站与应用

我叫于豆豆吖.

11月月更

ABBYY FineReader16最新版PDF编辑器功能介绍

茶色酒

abbyy

FL Studio21最新版编曲DJ舞曲制作软件

茶色酒

FL Studio FL Studio 21

EasyExcel导出数据超过Excel单表上限解决方案

@下一站

大数据 技术 Excel Java core 11月月更

数据预处理和特征工程-特征选择-相关性过滤-互信息法 & F检验

烧灯续昼2002

人工智能 机器学习 算法 特征工程 11月月更

OSPF路由协议三

初学者

网络 11月月更

云原生系列 二【轻松入门容器基础操作】

叶秋学长

云原生 华为云 沙箱实验 11月月更

微服务连接:Subset子集划分算法

董哥的黑板报

微服务 云原生 连接 RPC 集群

赞不绝口!仅靠阿里P9分享的 Redis 工作手册,拿到60W年薪Offer

程序知音

Java 数据库 redis 后端技术 Redis 6.0

Camtasia2023免费电脑录屏视频软件使用教程

茶色酒

Camtasia Camtasia2023

架构实战营模块 5 作业

陌生流云

架构实战营

聊聊香港优才-续篇(58/100)

hackstoic

香港优才

一篇文章彻底理解 HDFS 的安全模式

明哥的IT随笔

hadoop hdfs

TCC

急需上岸的小谢

11月月更

FL Studio水果软件V21完整版本全面升级支持简体中文语言界面

茶色酒

FL Studio 水果FL Studio FL Studio 21

OSPF高级配置——虚链路介绍与配置

我叫于豆豆吖.

11月月更

API渗透测试4个关键步骤

阿泽🧸

11月月更 API渗透测试

精选2022年大厂高频Java面试真题集锦(含答案),面试一路开挂

程序知音

java面试 大厂面试 java架构 后端技术 Java面试八股文

代码的衡量标准

Lemoon Can

写好代码 好代码的衡量标准

python中封装和继承

乔乔

11月月更

MindTouch Dream:一个REST SDK和轻量单机服务器_.NET_Hartmut Wilms_InfoQ精选文章