工作流、服务和模型

阅读数:1081 2008 年 12 月 7 日

话题:SOA.NET语言 & 开发架构文化 & 方法

来自 Chappell & Associates 的 David Chappell,在其新的白皮书中,率先对微软的最新技术进行了介绍:WF 4.0、Dublin 和 Oslo。除了介绍每个技术,更重要的是他介绍了如何把这些技术组合起来创建并运行那些基于工作流、面向服务和模型驱动的应用程序。

WF 虽然目前已被应用广泛采用,但 WF 4.0 的目的则在于让它的使用更简单。通过包含以下这些新的特性得以达成:

  • 新的 WF 工作流设计器具有更高效的用户体验。这个设计器运行于在 Visual Studio 内部,并允许开发者使用图形来创建工作流和活动。然而,设计器的使用不是必需的——开发人员可以完全用代码或者基于 XML 的可扩展应用标记语 言(XAML)自由地创建工作流和活动。这个设计器也可以被重新植入到其他环境中,如 ISV 自己的产品,像这类事情在 WF 4.0 中做起来要简单得多。
  • 内置了更多的活动。WF 的基础活动库原先主要集中于控制流和通信。在 WF 4.0 中,微软还将提供诸如数据访问、PowerShell cmdlet 调用这样的活动。其目的是为了能将现有活动装配到工作流中,使应用创建变得更容易。
  • 新的流程图(flow chart)工作流类型。在 WF 初具规模的时候,它提供了两个内置的工作流类型:顺序(Sequential),针对于相对简单的流程;状态机 (State Machine),应用范围更广但使用也更难。把流程图作为第三种内置工作流类型意味着结合了两者的优势,同时还简化了使用。

除此之外,WF 4.0 还有大量的改进,包括性能提升,数据处理的简化等等。

扩展了 Windows Server 的 Dublin 构建在 Internet Information Server(IIS)和 Windows Process Activation Service(WAS)提供的基础之上。除了“包装”由这些底层技术提供的基础服务之外,Dublin 还添加了一些新的功能:

  • 自动启动:缺省情况下,WCF 服务会在收到第一条消息时启动。Dublin 自动启动功能允许在服务配置完成就自动加载一到多个服务。这对于那些使 用非活动信道(即不自动启动服务的 WCF 通信机制)的服务很有用,如 FTP 或 SMTP。自动启动也会提高那些在处理第一次请求之前需要执行初始化任务的服 务的响应时间。
  • 实例重启:应用可能要求服务实例总是处于可用状态。为了满足这个需求,实例重启功能会监测所有 Dublin 服务的心跳。一旦某个实例在心跳期限内没有响应,就会被重新启动。对于基于 WF 的服务来说,工作流会将从它上次保存的持久化状态继续执行。
  • 消息转发:这个功能提供了基于内容的路由,允许开发者根据消息内容定义一系列路由策略。一旦完成这些,Dublin 能够根据它们的内容将消息路由到不同服务。
  • 跟踪:对于一个服务来说,将事件写入存储以跟踪它的行为是非常有用的。Dublin 跟踪服务允许任何服务(不论它是否是使用 WF 创建)都能做到这一点。对于基于 WF 的服务来说,Dublin 在 WF 的现有支持基础上添加了一系列工具和其他功能。

说到 Oslo,许多人似乎都在疑惑,这东西到底是干嘛的。典型的问题 是:

  • Oslo 是微软的下一个 Web 服务平台么?
  • Oslo 如何整合或者代替 BizTalk 服务器?
  • Oslo 是微软对 ESB 所做的回应么?
  • Oslo 会变成微软的 BPM 平台么?

根据 Don Box 的帖子

对于 Oslo,我们正在做两件事:
  • 我们正致力于简化人们以行话记录事物的工作——这一过程俗称建模。
  • 我们正致力于允许人们在程序执行期间访问平台组件的工作。
为了使第一项任务的用户体验尽量流畅,我们构建了一门 语言,它能让人们自如地以文本方式表达模型,而这也是让大多数人 (尤其是开发者) 喜欢的方式。可视化设计 [“Quadrant”] 界面是大多数人喜欢的另 一种工具,我们为此构建了一个设计工具,它能使用那些由以文本为中心的使用者生产和消费的相同信息内容。

Doug Purdy 强调了Oslo 的重要性

情况很简单,这个平台对软件开发和管理来说将是转折性的……

Dave Chappell 解释说:

Oslo 的目标就是为创建模型驱动应用和其他围绕 IT 组织工作方式模型的用法提供一个基础。Oslo 可用于多种途径……起 初,Oslo 的使用重点似乎在于跟基于 WF 的应用协作……技术导向的业务分析师会使用 Quadrant 去创建或更改 WF 工作流……另外一种可能是技术导向 的业务分析师和开发者在同一个 WF 工作流上进行合作,但每个人使用的工具不同……

尽管所描述的每项技术都能独立使用,但要想了解其中的愿景就需要看看它们的协作方式。Dave Chappell 据此给出了一个描述企业业务流程改进场景的例子,Oslo 作为知识库,用来存放业务流程、应用程序、它们的关系以及新流程定义所使用的设 计工具;WF 作为新流程的实现技术;Dublin 作为部署平台。

文中所说的技术还处于演变之中,有大量的不定因素,并且也不要指望能一次全部发布。暂定的发布计划如下:

  • WF 4.0 将随.NET Framework 4.0 和 Visual Studio 2010 一起发布。.Framework 和 Visual Studio 的这些新的发布还将包含其他内容,如 WCF 的最新版本。
  • Dublin 首先将以独立包的形式提供下载,随后会作为 Windows Server 的一部分提供。它可能会在.NET Framework 4.0 和 Visual Studio 2010 发布后不久发布。
  • Oslo 建模技术也会一并发布,包括知识库,M 语言和 Quadrant。
随着这些新技术的可用,组织可以以任何他们喜欢的组合方式来采用它们。比如,可以使用 Oslo 或者单独使用 Visual Studio 创建 WF 4.0 应用。一旦写成,这个应用就能部署到一个用户编写的主机或者 Dublin 上。

在 Dave 的白皮书中,他描述了微软对基于 SOA 的下一代分布式系统的愿景,其内容令人印象深刻。在这个愿景中,知识库包含了现有的企业服务,这些 服务通过工作流被编配到一起,通过模型来定义,通过执行环境来监测。愿景中中唯一的遗漏似乎就是模拟环境,有了它,甚至可以在模型变更被部署之前对其影响 进行评估。

查看英文原文

Workflows, Services and Models