Linux 之父出席、干货分享、圆桌讨论,精彩尽在 OpenCloudOS 社区开放日,报名戳 了解详情
写点什么

工作流、服务和模型

  • 2008 年 12 月 07 日
  • 本文字数:2301 字

    阅读完需:约 8 分钟

来自 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

2008 年 12 月 07 日 03:151658
用户头像

发布了 255 篇内容, 共 49.9 次阅读, 收获喜欢 8 次。

关注

评论

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

让超宽带抵达产业互联网:UBBF上演智能联接全面落地

脑极体

芯片破壁者(十七):“硅谷市长”罗伯特•诺伊斯开启的产业法则

脑极体

架构师训练营第 1 期第四周课后练习题

Leo乐

极客大学架构师训练营

怎么才算掌握了JDK中的线程池

AI乔治

Java 编程 架构 jdk 线程池

一次百万长连接压测 Nginx OOM 的问题排查分析

AI乔治

Java nginx 架构 服务端 高性能

如何优雅的搞垮服务器,再优雅的救活

MySQL从删库到跑路

Linux 升级glibc 启动异常 无法进入系统 抢救模式

架构师训练营第四周学习笔记

一马行千里

学习 极客大学架构师训练营

程序员上班打工的认识误区

陆陆通通

程序员 打工

代表Java未来的ZGC深度剖析,牛逼!

AI乔治

Java 架构 ZGC JVM GC调优

系统架构--作业

Nick~毓

如何花“一点点小钱”突破华为云CCE服务的“防线”

华为云开发者联盟

容器 k8s

图解面试题-二叉树的所有路径

9527

Java 面试 算法 LeetCode 二叉树

Java-技术专题-JDK8-HashMap的实现原理

浩宇天尚

一次线上JVM调优实践,FullGC40次/天到10天一次的优化过程

AI乔治

Java 编程 架构 JVM GC

Netty源码解析 -- 客户端启动过程

binecy

Netty nio 源码阅读

ClickHouse最佳实战之分布表写入流程分析

京东科技开发者

数据库

异步excel导出组件设计和实现

Wayne Chu

Java 微服务 EasyExcel SpringCloud 服务治理

程序员黄金年龄25-28岁,我们30+的人该去哪儿?附华为案例;

Java架构师迁哥

12张图带你彻底理解分布式事务产生的场景和解决方案!!

冰河

分布式事务 2PC 可靠消息最终一致 TCC 最大努力通知

算法图解:如何找出栈中的最小值?

王磊

Java 数据结构 算法

一周信创舆情观察(9.28~10.11)

统小信uos

谋生的工作动机,永远是个打工者

陆陆通通

Java 程序员

使用Spring Boot创建docker image

程序那些事

Docker spring Spring Boot Spring Boot 2

为什么学习总是停在开头两页?

Nydia

年轻代频繁ParNew GC,导致http服务rt飙高

AI乔治

Java 学习 架构 JVM GC

打通IO栈:一次编译服务器性能优化实战

AI乔治

Java 编程 架构 io 高性能

重大事故!IO问题引发线上20台机器同时崩溃

AI乔治

Java 架构 多线程 io 并发

Flink周期性水位线分配器-6-3

小知识点

scala 大数据 flink

架构师训练营第四周命题作业

一马行千里

极客大学架构师训练营 命题作业

Apache Pulsar 社区周报:09-26 ~ 10-09

Apache Pulsar

大数据 开源 云原生 Apache Pulsar 消息中间件

架构师训练营第四周作业

脸不大

GPU容器虚拟化:用户态和内核态的技术和实践详解

GPU容器虚拟化:用户态和内核态的技术和实践详解

工作流、服务和模型_SOA_Boris Lublinsky_InfoQ精选文章