谈谈工作流引擎及面向服务编程

相信很多人对于BizTalk Server 2004(简称BTS)都有一种误解,认为这是微软出品的工作流引擎。包括我在内,从没有进入MS以来,一直在围绕着BizTalk Server 2004做开发,而加入后,所做的大部分PoC都是基于BizTalk Server 2004的。当然,我做的都是一些外围开发,而不是一些核心性的BizTalk开发。

所谓的外围开发,就是为工作流做一些UI界面,以便驱动整个工作流能够进行下去。做得久了,经常会有一些疑问,我相信大部分做过BizTalk Server开发的人员都会遇到类似的疑问,因为在我与Partner的研发人员闲聊时,也遇到类似的困惑,那就是为什么有了BizTalk Server 2004这么好的工具,我们做工作流开发还这么累呢??很多时候,为了完成一个简单的公文流转功能,我们用ASP.NET可能几行代码就搞定了,但加上了BizTalk Server 2004后,却发现工作量成倍的增加。

经过这一个月以来,与同事探讨,终于找到了一个原因。因为我们错了,BizTalk Server不是微软的工作流引擎。这话似乎有一点惊世骇俗,但我相信,我们的观点没有错误。

博客堂前段时间一直在探讨SOA(面向服务编程),其实在我看来,BizTalk Server 2004正是为了SOA而做准备的,它是为了整合各个System的Service,而建立的自动流程功能,同时,由于各个System的Service所传递的消息的Schema的不统一,所以BTS里面提供了Mapping的功能。在BizTalk Server 2004的文档中,其功能就列了两点:(1)EAI,企业应用整合;(2)B2B的消息传送。

这种EAI的Service整合,在流程运行时,没有人为因素的干扰,没有UI的驱动,非常适合BTS这种无角色流程引擎进行驱动(BizTalk Server还是有角色的,不过非常淡化)。而类似于OA这种公文工作流的引擎,则BTS根本不适合。

前段时间,非常有幸看到了ADOBE Workflow Server的介绍(本来也想去看看点击科技王志东老大的工作流系统,可是无缘),对此我更有感悟。ADOBE的这套东西,才是真正基于公文工作流的,我们可以比较它的流程图与BTS流程图的异同。BTS的流程图更像我们的软件逻辑图,在这个图中,你很难一眼就从中找到哪个点应该是一个UI,这个UI上应该有哪些单元。但ADOBE的流程图则不一样,它每个节点就是一个UI,在这个节点旁边可以罗列一些选项,比如“同意”、“不同意”、“退回秘书”之类的,然后从这些选项到它们应该到的下一个节点间连一点线。非常清晰的就把这个工作流的UI都给清晰化了。再配合ADOBE Form Server以及Form Designer,则能够很简单的做出来一个公文工作流系统。

且慢,难道微软真的没有工作流软件吗?非也非也。加入微软之前,也很有幸接触到了Teamplate的工作流产品,这是一个微软的全球合作伙伴,它的TeamPlate产品基本上把MS的所有Server都包含进来了,比如BizTalk Server 2004、SharePoint Portal Server 2003、Exchange Server 2003,那么这个工作流产品使用了BizTalk Server 2004的什么特性呢?原来使用的是HWS(工作流服务,Human Workflow Service)。

HWS,翻开BTS的随机文档,发现关于HWS的文档真的是非常珍贵,打印出来估计不到十页纸(估计其中大部分还是HWS的UI方面的,介绍哪个按钮做什么的)。估计没有人能够看得明白,但是再去MSDN Online上找一下,好多了,因为我们发现了BTS的SDK,在Sample里面还是一些料的,不过,我估计再没有人指引的情况下,没有几个人会对这东西能够上手。

HWS,实现的就是ADOBE Workflow Server所实现的东西,但是在目前,它缺少一个Workflow Desinger的设计工具,所以会造成它的曲高和寡的局面。你必须自己手动写代码去完成你的工作流设计,虽然在SDK里面有Step By Step的指导,但似乎还是很难(想想BizTalk Server 2004本身,本来设计流程就是画画那么简单,但MS还是怕很多人不会,还提供了一个免费的Visio插件,供大家做图玩)。

可能很多人读了上面的文章,会认为我在贬低BTS,其实不然。我觉得做BTS始终是MS的大智慧所在,它早在2000年就预示到了SOA的到来。只不过由于其流程图画得那么“好看”,导致大家有一些误解,从而杀鸡用坦克,既不顺手,还劳民伤财。在SOA服务来临之日,BTS更能突显其危力。我们想想Longhorn,那里面有一个Indigo。仔细思考一下,其实Indigo的很多功能似乎与BTS有交集,所以有理由相信,在未来,BTS下一版本又有新的面貌了,至于新貌如何,还请各位看倌拭目以待。

BTW:讲到SOA,想到前段时间博客堂对于SOA中传递消息的讨论,一派人认为SOA应该只传简单类型,一派人认为SOA可以传递复杂自定义对象,甚至包括DataSet在内。我搜集到的材料让我确认第二派会在未来占上方,有时间大家再一起聊聊吧笑脸

个人拙见,欢迎斧正(没有想到会出现在首页上:()

Whidbey抢先预览(视频)

为庆祝本人即将到来的二十八岁大寿(又要写二十八岁祭了),在征得微软中国开发合作部张炜先生的同意后,将其录制的Whidbey的视频上传到博客堂站点上,供大家抢鲜预览Whidbey强大的功能。该压缩包共包括四个独立的视频,均是使用Windows Media Encoder捕获屏幕生成的。分别包括:

  1. 使用C#创建ASP.NET应用程序;
  2. C#语言的改进以及类图设计;
  3. ClickOnce简介(VB.NET);
  4. WhiteHorse的SOA应用;

以上的视频介绍已经涵盖了Whidbey的方方面面笑脸

下载地址: 已经过期

Visual Studio 2005 Community Technology Preview (For MVP)

如果您是Whidbey的Fans,如果您是MVP,那么您现在可以使用MSDN宇宙版订阅权下载Visual Studio 2005 Community Technology Preview 了。

孙展波在上一个随笔中曾经提到过Whidbey将会被推迟到2005年发行,当时引用的是路透社的报道,而现在,基于MSDN 订阅者下载站点中的文件名称,我们可以看出,这个预言已经变成了现实。

这是一个Full DVD的镜像文件,大小共有2.67GB,想下载起来并不是非常容易,让我想起了N年前,下载VS.NET 2002的情景,和一个哥们在他们公司里面,半夜两点使用ISDN进行下载,中间断了无数的线,还好我们有网络蚂蚁笑脸

 

SharePoint Portal Server & Office Research Service

自从得知Kaneboy兄编写了一个基于SPS的信息检索服务之后,就在大功完成的时候,看了一眼SPS的SDK,却发现这东西其实本来就已经有了。看来我又犯了“想当然”的错误。

在开发之前,我一直想寻找SPS是否具有这个功能,但是在看完Kaneboy的文章后,我想当然的以为这东西需要自己开发,于是摩拳擦掌,开始写代码进行实现。中间还遇到种种的问题,分别向moslem以及kaneboy进行了求教。

不过虽然SPS原来就有这种功能,但通过这几天的摸索,还是了解了很多原来不了解的知识,如在SPS上如何开发部署自己的Web Service等等。

大体来说有以下几步:

(1)在Web站点的属性中新增加一个MIME类型,即“.tmp”,并且将其对应到“common/type”;

(2)新建一个Web Service项目。注意,其所选的路径应该为http://portalServer/_layouts/ProjectName。(我是新建了一个虚拟目录,并且在SPS管理中心将其设为排除的路径);

(3)增加Microsoft.SharePoint.dll的引用,然后开始开发其功能;

(4)开发完毕后,将其部署到[driver name]:\Program Files\Common Files\Microsoft Shared\web server extensions\60\ISAPI当中,并且可以使用http://portalserver/_vti_bin/[Name].asmx来访问;

(5)此时使用VS.NET注册会出现HTTP错误,你应该使用命令行工具咧嘴笑脸isco http://portalserver/_vti_bin/[name].asmx来建立一个disco以及wsdl文件,并且按照SDK中的描述对其进行修改及重命名,再部署过来。

恶魔的脸现在就可以像普通的Web Service进行访问了。

另外,SPS自带的信息检索功能其实就在http://portalserver/_vti_bin/search.asmx中,大家可以试一下笑脸

Whidbey & WhiteHorse & 博客堂清理帐号

看到大家这两天都对SOA以及Whidbey非常感兴趣,讨论得热火朝天,其实,在Visual Studio.NET的下一版(Whidbey,或者是Visual Studio.NET 2005)当中,提供了一个SOA的设计工具,即WhiteHorse。

在PDC版本的Whidbey当中,应该没有提供WhiteHorse组件,不过现在互联网上关于这个组件透露的信息越来越多,我也找到几个相关介绍,给大家先睹为快。

先让我们看两个截图:


相信大家在VS.NET 2002以及VS.NET 2003当中都用过Rational XDE以及Borloand Togther或者MS Visio for VS.NET等建模工具。不过单就界面特性来说,Whitehorse更加酷,而且更加直观。

不过如果仅仅是一个支持UML类图的建模工具,WhiteHose就似乎只是酷了一点。其实它还有更酷的特性,就是它支持MDA以及SOA的设计方式。下面是Keith Short先生所给的WhiteHorse的定义:Whitehorse is a suite of graphical design tools to be delivered in ‘Whidbey’ that supports the design and validation of service-oriented applications based on web services, and is targeted at architects, designers, developers and operations analysts. Whitehorse is an early deliverable from the Distributed Systems Initiative, aimed at improving the design, deployment and management of enterprise-class distributed applications.

再让我们看一个WhiteHorse在SOA方面的设计截图。

更多信息:

关于博客堂最新更新:

  1. 博客堂最近成立了管理团队,我们通过内部管理团队对所有问题进行统一管理,管理团队大部分成员为博客堂的堂主以及部分其他人员;
  2. 为了继续维护博客堂作为精品技术社区的氛围,将于最近一段时间内对于博客堂帐号进行清理,本次将清除十余名帐号(名单基本上已经确定),由于是集体决定,不再给予申诉权力;
  3. 所清除帐号予以冻结,冻结期为一周,在一周内,如果您需要您的数据,可以与开心就好说明,我们将把您的数据以XML方式传送给您;
  4. 基于您的意愿,我们可以将您的数据平滑迁移到博客园,或者博客.CN;
  5. 博客堂仍然是一个刚起步的技术社区,我们需要您的任何建议及意见,如果您有建议或者意见,可以通过“联系”向我们提出,但任何关于申请帐号的邮件我们将不再进行回复。

MSN Messenger 6.2抢先预览

很多人可能从新浪新闻上已经看到微软将在下月中旬推出新一版的MSN Messenger:MSN Messenger 6.2。但直到现在为止,关于此版MSN Messenger所透露出来的信息非常的少。不过今天在网上闲逛的时候,却找到了一些关于这方面的消息,以下是新的功能列表:

  • 显示图片将支持动画,我们可以做一些Gif的图片放在自己的签名照上了,整个的聊天过程会更加兴趣盎然;
  • 活力地带将有一个新的名称,在英文版中将由“launch site”改名为“Fun & Games”,现在尚不知道中文名会改为什么;
  • 活力地带中将增加音乐交换服务,不过不知道具体的服务商将是哪一位;
  • 对于MSN用户来说,将支持“共同浏览网站”功能,联想一下前段时间泄露的MSN 9.0;
  • 将增加一个连接诊错的工具,以后遇到因为网络问题上不了MSN的时候,就有自动工具帮你处理了。

更多信息:MSN Messenger 6.2 Feature List

官方站点:英文    中文(建议查看英文站点)

Desktop SideBar、Outlook的日程管理及SPS Web Part开发,以及博客堂帐号申请

大家肯定都知道Longhorn,也知道Longhorn有一个Desktop Sidebar,不过Longhorn却要在2006年才会推出,居现在还有两年的时间,在这之前,如果你对SideBar感兴趣,可以使用我今天推荐的这个软件,Desktop SideBar。而且还有简体中文哟笑脸

试用了两个月,感觉这东西还是非常不错的,终于明白Longhorn要推出SideBar的用心了。当然,这个SideBar不是Longhorn的SideBar,其实现基理也是完全不同的,最简单一点,它不支持LongHorn的那种编程方式调用。

另外,这两天也开始使用Outlook对自己的日程进行管理。在公司里面,eMail成为重要的交流方式,任务的分派及日常报告都会使用eMail进行交流,最常见的一句话就是:给我发一封Mail吧笑脸

假设我今天接受到一个任务,举个例子,有人发邮件,希望我帮他开一个博客堂帐号,而我当前没有时间来处理,我会随手将这封邮件拖拽到Outlook的“任务”栏中,然后会自动在任务栏当中产生一项新的任务。在我完成后,仅需要打一下勾即可。

如果你公司里面安装了Project Server,这个“任务”还可以与你的Project Server进行通讯,在AD集成的环境中,自动获得分配给你的任务,并且进行追踪。

如果你公司里面安装了SharePoint Portal Server 2003,那么“日历”的管理方式则是最方便的,在SPS 2003里面的某一子区域中,创建一个“事件”的Web Part,然后在其上选择“链接到Outlook”,则你的Outlook里面会自动产生一个新的共享日历,不过很遗憾的是,这个日历是只读的。你只能在SPS里面对其增加,而且它是做为团队日历存在的,适合组织一个部门的日程安排。

目前我手头上有一个任务是做一个Web Part,它与事件的区别是:

  • 事件是在SPS里面修改,而在Outlook里面仅能查看;而我要做的是在Outlook里面对自己的日历进行修改,则在Web Part里面能够看到这些修改;
  • 事件是无法区分成员的,而这个Web Part是可以区分成员的;
  • 这个Web Part很类似“我的网站”(SPS中的)中的“我的日历”,但是能够允许其它成员查看你的日程安排。

目前,对这个Web Part的制作尚未任何头绪,希望与大家共同探讨。

BTW: 我已经接管了本网站的管理权限,凡是在2004年1月1日后没有做过更新的成员,我们将对其帐号进行冻结,但不删除资料。在连续发送三次邮件未得到任何响应,或者答复不再需要本帐号时,我们将删除其资料。待帐号清理完毕后,我们再接受的新的申请。新申请成员,请你们一定要仔细考虑:你们真的是来做博客的吗?你们真的有这个激情吗?建议你们先在其它站点(如http://www.blogger.cn或者http://www.donews.net)申请帐号,我们会通过Google查阅在技术及激情上均有所建树的人员,邀请其加入博客堂。这是目前加入博客堂的唯一途径

Desktop SideBar下载地址http://www.desktopsidebar.com/index.html

下载或者定购SPS 2003试用版http://www.microsoft.com/office/sharepoint/prodinfo/trial.mspx

Microsoft Project 2003免费培训http://www.microsoft.com/china/events/2004/Project2003Training.asp

Office评测及中文版发布大会

在MSDN订阅者下载站点现在可以下载到简体中文版的下列软件:

  • Visual Studio Tools for the Microsoft Office System 2003 (Simplified Chinese)
  • Office Visio Professional 2003 (Simplified Chinese)
  • Office SharePoint Portal Server 2003 (Simplified Chinese)
  • Office Project Server 2003 (Simplified Chinese)
  • Office Project Professional 2003 (Simplified Chinese)

微软中国将于11月13日在北京发布Office System 2003,大家可以在下面看到各个城市的发布日程:http://www.microsoft.com/china/events/2003/officesystem.asp。据我所知,在入场的时候,可能会索要各位的手机号,第一个Demo的过程中,将由主讲人利用Office System 2003中的一个功能,让全场的手机一起峰鸣,我想一定会非常壮观吧?

然后我在开发者俱乐部看到了下面的评论:

我真的只剩下这四个字。 登峰造极。
一个最好的基础平台。。 完美灵活的延伸定置性。。综合基本的SERVER功能
用户需要的就是这个。企业内部完美的解决方案。。
说真的。 M$的OFFICE确实。 是值得另人敬佩的软件。。

新的软件InfoPath 2003成为了最好的用户信息收集平台。
加上SharePoint Portal Server就可以完成。。 完美的审核流程了。。。
OUTLOOK和ONE NOTE的结合。。 成为了用户随身信息处理最好的平台。
据说。。 还有IM SERVER。。( 这东西。 我还没用过。。)
企业内部通讯平台。
和NET完美的结合。 对NET的原生支持。。。
InfoPath 的灵活度。
真的是太恐怖了。
说真的OFFICE 2000到XP的升级。。 没给我带来什么感慨。
但是OFFICE SYSTEM。。 真的是。。 让我吃惊了。。

MSDN本地化计划

微软总部决定加大MSDN本地化的力度,而我们计划提升中国MSDN的地位,希望他能成为英语,日文和德文之后,第四大语系的MSDN本地站。按我们的计划新的MSDN中文可能超过德文成为第三。但是现在时间有限,我们很难在一个时间内本地化所有的文档,同时我们也很难保证我们选的文章是开发人员喜欢的,所以需要MVP和整个社区的帮忙。我希望有更多人知道,让它成为一个众人皆知的事情。

详情请查阅http://blog.joycode.com/joy/posts/2432.aspx

欢迎大家多提宝贵意见!!!!

关于VS.NET 2003

VS.NET系列是我用过的最好的开发工具,我想这也是绝大多数开发人员的感受。即使是在Java阵营的同志们,其实对.NET阵营的开发工具也是很羡慕的,无论他们抨击其它的多么厉害。

不过,VS.NET中的Visual Sourcesafe也是令人不能容忍的,在VS.NET套件中,就VSS一直没有任何改观,包括其界面,甚至连图标都是很古老的那种。最主要的是其功能,现在还是使用文件共享方式,导致了病毒滋生,不信可以问问使用VSS协同开发的公司,基本上VSS服务器上的病毒是最多的,因为很多病毒都是在局域网的共享目录中传染的。

当然,我听说下一版就开始支持TCP/IP协议了,感觉前景无限美好,尤其是在下一版中,可能存储方式也会有改观,如果直接与Yukon结合起来,那是多么美好的事情呀?