Architecture 工作流服务器的体系结构是什么?

Architecture 工作流服务器的体系结构是什么?,architecture,workflow-foundation-4,workflow-foundation,Architecture,Workflow Foundation 4,Workflow Foundation,我们计划使用Microsoft WF4开发wf服务器 需求是为工作流、客户端应用程序创建最终用户设计器,以便每个用户跟踪任务 此服务器的最佳体系结构是什么 我感谢你的帮助 更多详情: 我们正在开发一个文档管理系统,我们需要创建像Ultimus这样的工作流系统,当然不是像这样大,但概念相同;wf服务器和wf设计器、wf客户端 1-因此wf设计器将连接到wf服务器,以管理保存的wf,如签入、签出、删除 2-在wf客户端,普通用户将连接到服务器,以获得他们的任务,如批准、拒绝、bla-bla 3-在w

我们计划使用Microsoft WF4开发wf服务器 需求是为工作流、客户端应用程序创建最终用户设计器,以便每个用户跟踪任务

此服务器的最佳体系结构是什么

我感谢你的帮助

更多详情:

我们正在开发一个文档管理系统,我们需要创建像Ultimus这样的工作流系统,当然不是像这样大,但概念相同;wf服务器和wf设计器、wf客户端

1-因此wf设计器将连接到wf服务器,以管理保存的wf,如签入、签出、删除

2-在wf客户端,普通用户将连接到服务器,以获得他们的任务,如批准、拒绝、bla-bla

3-在wf客户端,管理员用户将连接到服务器以获取任务,并监控wfs,获取任何工作流的状态

我以前使用过ultimus,您只需在服务器上安装ultimus服务器,客户端就可以连接到服务器,这些客户端可以是web、移动或桌面

这是系统的要求


我需要知道软件架构

最佳架构取决于您的需求,例如:这是一个只在内部使用的工具,还是您打算出售它?有多少用户?用户在何处以及如何访问系统?您需要考虑很多质量问题

事实上,您处理的是WF4并没有那么重要——像这样连接到后端服务器“服务”是相当常见的。WF4可能有一些特殊的方法可以与之集成,但我不知道这些具体细节是什么——也许它们就是你想要的

高级体系结构

这里不需要什么花哨的东西,主要有4层:

UI层:您可能有多个UI,希望它们可以共享代码。 业务逻辑:尽管MSWF服务器将承担WF的所有繁重工作,但您仍然希望有一个可以放置公共逻辑的地方。 集成层:这将是一些事情,可能是DI或MS WF服务器的一部分,这样当MS进行更改时,您就不会显式地与它们绑定。您可能还需要自己的数据访问层—使用此集成层来抽象和集成该层,以及您想要提供或使用的任何其他服务。 数据存储库和自定义WF服务:用于保存您自己的数据,并与WF4深度集成。 UI-WF设计器

设计工作流程不是一件小事,构建一个用户界面/系统,让用户能够做到这一点更加困难,所以我猜你会想要一种能够进行丰富交互的用户界面技术——也许SilverLight是一种选择?这将允许您在需要时通过互联网交付应用程序,这可能对远程连接的用户有好处

其他选项包括HTML think HTML5或厚客户端:这就是用户环境的重要性所在-您对它有什么控制级别/对您有什么约束

UI-工作流监控

这里有很多选项,您需要在这里与用户进行对话,看看他们想要什么。您可能希望提供几种方法来监视工作流的执行:

丰富的用户界面,允许全面监控管理员和高级用户;假设您将SilverLight用于WF设计器,它可能再次成为竞争者。 假设它是只读的,你也许可以使用一种更开放/低技术的方法——比如纯HTML,但现在HTML不一定是低技术的。请记住,如果您想显示工作流的图形表示,您基本上是在构建WF designer的精简版本。 如果人们只想要真正基本的摘要信息,那么你可以使用较小的小部件来扩展主UI,用户可以使用这些小部件来关注关键的WF,比如FireFox插件、小型任务栏监视器等。 业务逻辑

这应该是直截了当的,但要仔细考虑如何与WF集成—一方面,直接绑定到WF将提供一些很好的机会来快速提供酷的功能—但另一方面,您将与WF紧密耦合:如果它发生变化,您将陷入麻烦

我想BL将需要使用来自不同地方的信息——其中一些是你自己发明的:这些都应该在接口DI后面抽象出来

您还可以提供一些用于填充AJAX驱动的UI控件、驱动小部件等的服务;在BL中放入尽可能多的逻辑,并通过UI和集成层提供不同的通道

我猜这将需要包装成一个Windows服务;如果您保持核心逻辑的清晰定义,您还应该能够在网站、Web服务等中重用它

集成层

这可能比较薄,看看一些DI 在你开始你自己的滚动之前;WCF也是一个显而易见的选择

数据存储库和自定义WF服务

该层将保存您创建的任何数据存储库的具体实现。它还将包含您制作的任何自定义WF组件。请记住,这些层首先是逻辑层,但在很多情况下也会转换为物理层。在某种程度上,您需要编写直接针对WF4运行的代码——这很酷,但您希望确保代码尽可能小,并且易于丢弃;这里描述的体系结构应该允许这样做。因此,当您开发与WF4深度集成的代码组件时,请保持它们的小型化和模块化—易于更换,通过集成层使用它们;你所要做的就是记住:DI等等

最后考虑

一旦您对高级体系结构有了一些想法,就可以浏览一下WF4 documentnation—您正在寻找的是适合您的集成选项。 如果您只讨论文档管理的简单工作流,那么您可能会采取这样一种方法:用户不设计工作流,而只是配置它们;在这种情况下,您不需要复杂/智能的WF设计器。同时,您还需要设计您的系统,以便轻松部署新的工作流以供使用/配置。
最佳架构取决于您的需求,例如:这是一个只在内部使用的工具,还是您打算出售它?有多少用户?用户在何处以及如何访问系统?您需要考虑很多质量问题

事实上,您处理的是WF4并没有那么重要——像这样连接到后端服务器“服务”是相当常见的。WF4可能有一些特殊的方法可以与之集成,但我不知道这些具体细节是什么——也许它们就是你想要的

高级体系结构

这里不需要什么花哨的东西,主要有4层:

UI层:您可能有多个UI,希望它们可以共享代码。 业务逻辑:尽管MSWF服务器将承担WF的所有繁重工作,但您仍然希望有一个可以放置公共逻辑的地方。 集成层:这将是一些事情,可能是DI或MS WF服务器的一部分,这样当MS进行更改时,您就不会显式地与它们绑定。您可能还需要自己的数据访问层—使用此集成层来抽象和集成该层,以及您想要提供或使用的任何其他服务。 数据存储库和自定义WF服务:用于保存您自己的数据,并与WF4深度集成。 UI-WF设计器

设计工作流程不是一件小事,构建一个用户界面/系统,让用户能够做到这一点更加困难,所以我猜你会想要一种能够进行丰富交互的用户界面技术——也许SilverLight是一种选择?这将允许您在需要时通过互联网交付应用程序,这可能对远程连接的用户有好处

其他选项包括HTML think HTML5或厚客户端:这就是用户环境的重要性所在-您对它有什么控制级别/对您有什么约束

UI-工作流监控

这里有很多选项,您需要在这里与用户进行对话,看看他们想要什么。您可能希望提供几种方法来监视工作流的执行:

丰富的用户界面,允许全面监控管理员和高级用户;假设您将SilverLight用于WF设计器,它可能再次成为竞争者。 假设它是只读的,你也许可以使用一种更开放/低技术的方法——比如纯HTML,但现在HTML不一定是低技术的。请记住,如果您想显示工作流的图形表示,您基本上是在构建WF designer的精简版本。 如果人们只想要真正基本的摘要信息,那么你可以使用较小的小部件来扩展主UI,用户可以使用这些小部件来关注关键的WF,比如FireFox插件、小型任务栏监视器等。 业务逻辑

这应该是直截了当的,但要仔细考虑如何与WF集成—一方面,直接绑定到WF将提供一些很好的机会来快速提供酷的功能—但另一方面,您将与WF紧密耦合:如果它发生变化,您将陷入麻烦

我想BL将需要使用来自不同地方的信息——其中一些是你自己发明的:这些都应该在接口DI后面抽象出来

您还可以提供一些用于填充AJAX驱动的UI控件、驱动小部件等的服务;在BL中放入尽可能多的逻辑,并通过UI和集成层提供不同的通道

我猜这将需要包装成一个Windows服务;如果你保持你的核心逻辑 根据定义,您还应该能够在网站、Web服务等中重复使用它

集成层

这可能相对较薄,在开始使用自己的DI框架之前,先看看一些DI框架;WCF也是一个显而易见的选择

数据存储库和自定义WF服务

该层将保存您创建的任何数据存储库的具体实现。它还将包含您制作的任何自定义WF组件。请记住,这些层首先是逻辑层,但在很多情况下也会转换为物理层。在某种程度上,您需要编写直接针对WF4运行的代码——这很酷,但您希望确保代码尽可能小,并且易于丢弃;这里描述的体系结构应该允许这样做。因此,当您开发与WF4深度集成的代码组件时,请保持它们的小型化和模块化—易于更换,通过集成层使用它们;你所要做的就是记住:DI等等

最后考虑

一旦您对高级体系结构有了一些想法,就可以浏览一下WF4 documentnation—您正在寻找的是适合您的集成选项。 如果您只讨论文档管理的简单工作流,那么您可能会采取这样一种方法:用户不设计工作流,而只是配置它们;在这种情况下,您不需要复杂/智能的WF设计器。同时,您还需要设计您的系统,以便轻松部署新的工作流以供使用/配置。
您可能希望首先仔细查看Windows Server AppFabric,因为它是Microsoft在IIS 7之上构建的工作流服务主机的第一个版本。

您可能希望首先仔细查看Windows Server AppFabric,因为它是Microsoft在IIS 7之上构建的工作流服务主机的第一个版本。

你在谈论软件、操作系统还是硬件架构?你在谈论软件、操作系统还是硬件架构?