Windows工作流基础平台概览
工作流是一种自然而然的方法,将一系列工作单元或者行为组织起来,描述一个可执行的工作过程。
WWF(Windows Workflow Foundation,Windows工作流基础平台)通过提供的一组编成框架和开发工具,可以完成广泛多变的基于工作流的应用,例如:文件管理、商业流程应用、贸易页流、IT管理、B2B应用和消费类应用。
正式的,稳固的,长期运行的应用
WWF可以简化异步程序的过程,以创建正式、长时间运行、稳固的流程应用。WWF运行引擎管理流程的运行,并且允许流程长周期的执行而不受计算机重起影响。运行时服务提供一些功能,例如:处理和持久化来温和恰当的管理错误。
工作流模型
WWF提供一个工作流模型,允许开发人员描述对于他们应用需求的处理。这个模型通过创建更高级别的抽象、自然地将应用和商务逻辑与流程控制、状态管理、事务和同步分离开,从而提高开发者的生产力。
可以通过使用和扩展.NET框架的同样的方法使用和扩展工作流模型,因此你也可以创建你自己的定制创作工具。一个图形化的微软Visual Studio创作工具将随着WWF的SDK安装,而安装在Visual Studio当中。
部件重用
WWF提供了大量的行为,所谓行为就是可配置逻辑构造的工作执行单元。如果多次重复使用,这会节省大量的开发、调试和部署的费用。
WWF同样可以简化为你特殊的需求和想法而定制的自己的行为的创建。
WWF同样允许任何应用进程或者服务作为容器来运行工作流,通过将工作流引擎再如到其进程之内。
运行时服务部件是可插拔的,这些服务允许应用在其独立的运行环境来提供。WWF提供的运行时服务的默认执行,可以适应多种类型的应用。
另外,WWF提供对于ASP.NET的hosting的out-of-the-box支持,这将简化在IIS和ASP.NET环境中执行和构建工作流的执行和构建。
我们在创建IIS的虚拟主机的时候,一般都是在本地创建一个目录,然后把虚拟主机的根设置为这个目录。这是一般的方法,所以一班不会有问题,但是在如下两个场景会出现错误:
1.在这个虚拟主机上面创建SPS站点,在登录以后,页面会出现不可访问的错误。部署SPS的具体补丁情况不明确。
2.在这个虚拟主机上面部署YetAnotherForum论坛程序的时候,在一些二级页面会出现页面空白。
这个时候可以采用在服务器上运行“aspnet_regiis -i”来解决。对于第二个场景一定可以解决,对于第一个场景,至少在我现在客户的服务器环境解决了问题。
“aspnet_regiis -i”将为每一个虚拟主机创建一个aspnet_client的文件夹,具体这个文件夹的作用我还说不好,但是可以确定的是一些控件的客户端脚本是在其内的,以及SmartNav的客户端脚本也是在其内的。
这两天重新安装了VPC,但是发现虚拟机里面不多访问外面的网络了,每次启动虚拟机的时候提示:
The network adapter with address "00:00:00:00:00:" of virtual machine "test" failed to initialize because the address is a null address.
同时这个不影响虚拟机的运行。在Google上面搜了一下,找到了解决办法。
http://blogs.msdn.com/virtual_pc_guy/archive/2005/01/17/354971.aspx
场景:单服务器,独立的SQL Server。服务器在安装SPS前安装了Win2003的SP1。每次启动的时候会提示一个服务启动不正常,察看系统事件中有两个错误,发现来源于SharePoint Portal Administration服务。实践内容如下:
1.等待 SharePoint Portal Administration 服务的连接超时(30000 毫秒)。
2.由于下列错误,SharePoint Portal Administration 服务启动失败:
服务没有及时响应启动或控制请求。
原因分析:由于系统安装了Win2003的SP1,怀疑原因是因为安装了这个SP1。故观察了SPS相关的几个服务的可执行文件路径,这几个服务的可执行文件路径都在引号内,和引起SSO服务异常的情景一样,故决定修改注册表,试验一下。
具体步骤:打开注册表编辑器,定位到\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\。下面是SPS服务对应的文件夹的名称:
SharePoint Timer Service SPTimer
SharePoint Portal Administration SPSAdmin
Microsoft SharePointPS Search SharePointPSSearch
SharePoint Portal Alert spsalert
Microsoft Single Sign-on Service ssosrv
在对应的文件夹下面有一个ImagePath节点,双击打开节点,去掉节点值两端的引号。
重新启动服务器,一切正常。
说明:
由于以上的方法纯属实践得来,没有在各种服务器场环境上进行测试,所以本人不为任何的实验行为带来的后果负责。实验前请做备份。
今天开始试验VS2005了,有感于建立一个适应多种开发场景的开发环境,所以写点感想。
感想之一:个人开发用机还是应该向着工作站方向发展,开发用服务器不在考虑之内。开发用的工作站不是图形工作站,所以显卡不需要非常之高级,开发3D游戏不在讨论之内。第一,内存要高,原因后面讨论。第二,硬盘要大,原因与前面的相同,后面讨论。第三,是CPU要快,还是上面的原因。
感想之二:保护开发环境。有感于现在的开发环境,多半是娱乐用途与开发用途混合,多个不同的应用场景相互混合。这样会造成一些混乱,也可能会造成开发工作站环境与目的服务器环境不同带来问题。
解决这个问题的一个方法是使用Vistual PC进行隔离。我们可以将我们的开发环境放入虚拟的PC当中,这样的我们的代码我们的开发环境,我们的运行场景就捆到了一起,而且虚拟PC的宿主还可以作为客户端模拟访问服务器。
当然使用虚拟PC也有一些问题,就是虚拟PC需要在内存中占用一块不能放入页文件的内存,如果内存数量过小,就会影响虚拟PC的运行效果。我想没人愿意自己的开发工作站像蜗牛爬一样,影响开发效率和开发时心情。经验告诉我们如果想使用这种模式开发的话,宿主PC的内存需在1G RAM以上。这个是感想一里面要求打内存的原因。
再说说磁盘空间,如果使用虚拟PC的话,那么宿主PC的一块硬盘就相当于被几个PC所分享,不然你的硬盘很快就会捉襟见肘。CPU快自然不须说,编译程序、进行大型的运算、跑虚拟PC,都需要更快的CPU。
以上是对于开发环境的一点想法,我自己就实现了这样的一个环境。当然还有一些细节的技巧,明天再讲。
场景:用户的SQL Server 2000服务器需要扩容,原本想做SQL Server服务器群,后来客户决定从新建SQL Server服务器,SPS使用新的SQL Server 2000服务器。
方法:
1.在“配置服务器场拓扑结构”中去掉服务器场中所有的服务器角色的设置。
2.在“指定配置数据库服务器”中断开与当前的数据库服务器的连接。
3.将旧的数据库实例暂停,复制SPS的配置数据库和内容数据库的数据文件和事务日志文件到新的数据库实例上面上。
4.在新的数据库实例上面创建配置数据库和内容数据库。数据库的名称不能改变。
5.在新的数据库实例上配置新的帐号。帐号应使用原来的数据库帐号。
6.回到SPS的“指定配置数据库服务器”,当中按照“连接到现有的配置数据库”进行配置。
7.重新启动“SSO”服务,并将服务改为“自动”。
8.重新启动SPS服务器。
说明:第8步,不知道什么服务需要新启动,所以干脆重新启动了服务器。各位同学可以试试看,到底是哪个服务器需要重新启动。
由于以上的方法纯属实践得来,没有在各种服务器场环境上进行测试,所以本人不为任何的实验行为带来的后果负责。实验前请做备份。
近期评论