TechTarget中国网站推荐

最佳实践、差距及获得的经验教训

2008-8-5  选择字号:  | |
打印本文章
正在加载数据...

  本系列讨论如何开发组合应用程序来支持业务服务,本文是其中的第五篇文章。组合业务服务组件符合服务组件体系结构的要求,是使用集成工具集开发的,此集成工具集包括IBM WebSphere Business Modeler(WBM)和IBM WebSphere Integration Developer(WID)。这些工具生成的构件的运行时是IBM WebSphere Process Server。本文将说明有关使用WBM V6进行业务流程的建模、组装和部署的最佳实践。另外,本文还将确定在WBM和WID集成中存在的一些差距,并说明在示例流程建模工作(基于本文中描述的一个实际使用情况)中获得的经验教训。

  引言

  WebSphere Business Modeler(WBM)Advanced Edition V6支持业务分析人员为组合业务服务(Composite Business Service,CBS)构造业务模型,而不会陷入软件开发的技术细节中。WBM还提供导出功能,可以将其模型构件转换为IBM WebSphere Integration Developer(WID)构件。WBM Advanced Edition可以进行以下转换:

  ·将业务流程转换为业务流程执行语言(Business Process execution Language,BPEL)框架
  ·将接口转换为Web服务描述语言(Web Services Description Language,WSDL)文件
  ·将业务项和其他类型定义转换为XML模式定义(XML Schema Definition,XSD)文件和业务对象(Business Object,BO)定义

  将业务流程转换为BPEL框架存在一些挑战。本文将说明有关使用WBM V6进行业务流程的建模、组装和部署的最佳实践。另外,本文还将标识在WBM和WID集成中存在的一些差距,并说明在示例流程建模工作(基于本文中描述的信用卡申请 实际使用情况)中获得的经验教训。

  信用卡申请用例示例介绍

  信用卡申请场景的示例实现(请参见图1)演示了各个最佳实践。在此用例中,银行客户使用银行的门户申请信用卡产品。用户界面(User Interface,UI)调用从客户的配置文件检索其社会保险号(Social Security Number,SSN)的BPEL流程,以调用credit score服务。基于该服务返回的信用记录,将自动对信用卡申请进行拒绝、批准或转发到经理进行人工复审。通过业务规则集基于信用记录对决策进行控制。如果自动拒绝申请,会记录状态,并向客户发送通知。如果请求自动批准,会记录状态,启动信用卡发卡流程,并向客户发送通知。如果有必要进行人工审批,将启动第二个工作流(如图2中所示)。

  图1. WBM中的信用卡申请流程
 
  注意:提供了图1的较大视图。

  当信用卡申请需要进行人工审批时,银行员工将复审有关申请人和产品的其他信息。然后,该银行员工将批准或拒绝申请。如果拒绝申请,会记录此申请,并向客户发送通知。如果批准申请,会通过决策(通过业务规则实现)确定是否还需要银行经理进行审批。如果不需要,会记录申请状态,启动信用卡发卡流程,并向客户发送通知。如果需要银行经理审批,则将记录银行员工的审批结果,并将申请发送给银行经理。银行经理批准或拒绝申请。将记录银行经理的决策并向客户发送通知。

  图2. 信用卡审批流程
 
  注意:提供了图2的较大视图。

  最佳实践

  本文将说明有关使用WBM V6进行业务流程的建模、组装和部署的最佳实践。

  使用高效的业务模型组装技术

  如果需要更改现有业务流程,可以采用以下方法之一进行处理:

  ·使用WBM建模和模拟更改,然后为该流程生成BPEL。
  ·直接在可部署构件中实现更改。

  对于较小的更改,可以在WID内更改、测试和部署BPEL流程。目前尚没有将WID BPEL导回WBM的功能。这个限制表明,为了保持WBM和WID模型同步,需要在WBM中进行所有更改,然后重新生成BPEL来导入到WID中。如果对BPEL的更改并不会大幅度更改WBM中的模型的流,最好直接在WID中进行更改。对于业务流程的重要更改,应该从WBM重新生成BPEL模型并导入到WID中。这样,流程组合将继续使用之前业务流程中已经存在的资产。

  避免重复SCA组件

  可以在流程关系图中使用全局或局部任务。通过将图标从项目树拖到流程关系图中,可以将相同的全局任务多次添加到一个或多个业务流程中。通过这样,就可以在转换过程中为该全局任务创建单个SCA组件。如果转而采用从流程关系图选择面板将不同的局部任务图标添加到关系图中,以标识相同服务的多个实例,尽管这些不同的局部任务图标实际表示相同的服务,也会在转换过程中将其视为不同的任务。在这种情况下,会创建重复的SCA组件。在图3中,Credit Card Request流程中有两个局部Log Credit Card Request任务。WBM 中的转换实用工具会将每个局部任务视为不同的服务,该实用工具将在SCA模块为每个局部任务生成唯一的SCA组件。在此示例中,每个局部日志任务都会产生一个SCA组件。为了溢出冗余内容,请手动对生成的组装关系图的结构进行修改。

  注意:为了获得最好的结果,业务分析人员应该确定可重用业务任务,然后在WBM中将这些任务作为全局任务创建。

  图3. 重复SCA组件
 
  注意:提供了图3的较大视图。

  WBM与WID间的差距

  为了将流程转换为BPEL流程框架,请在WBM中使用WebSphere Process Server编辑模式建模业务流程。请注意有关此模型中可以使用的建模元素类型的限制,以使流程兼容BPEL。以下元素类型在Process Server模式中不可用:

  ·业务项实例
  ·Do-while循环
  ·For循环
  ·通知广播器
  ·通知接收器
  ·观察器
  ·全局存储库
  ·计时器

  在客户环境中,可能需要使用上面的某个建模元素类型,而这就是纯业务模型或流程WBM构造与WID中的BPEL流程之间的差距。只要采用WBM Basic模式,可以将上面列出的所有不可用的元素类型包括到流程中。Basic模式中的流程是纯 业务流程,对特定技术(如BPEL或WebSphere MQ工作流的 FDL)没有依赖性。当从Basic模式切换到WebSphere Process Server模式时,以上任何元素类型都可能导致出错。

  所获得的经验教训

  本文将说明获得的有关使用WBM V6进行业务流程的建模、组装和部署的经验教训。

  在WBM中支持流程依赖关系

  有时候会希望描述依赖于其他BPEL流程的BPEL流程,例如:A将B作为服务调用。可通过使用全局流程在WBM中完成此工作。通过指定其间的依赖关系来连接两个全局流程(请参见图1中的流程依赖关系)。尽管WBM中有子流程 的概念,但业务流程中的子流程将转换为父BPEL流程中的流 结构,而不是独立的BPEL流程。另外,尽管在WBM的技术属性视图中可以将任务指定为可稍后转换为独立BPEL的流程,但不能在WBM中对该独立流程进行建模。有时候需要能够进行建模以进行生成的独立 BPEL流程,因为您将在不同的场景中重用该BPEL流程。或者,您可能需要使得该 BPEL流程成为长期运行的流程,而其父BPEL流程却是仅短时间内运行的流程。对于这种依赖关系,请使用全局流程。如果要使用局部流程,请在运行转换流程之后通过手动修改生成的BPEL流程框架来创建依赖关系。

  使用Java代码片段时考虑任务粒度

  WID支持将Java代码片段嵌入到BPEL流程内。SCA编程模型还将Java体系结构作为SCA组件的实现类型提供。通常,如果在BPEL流程内需要较小的功能(如简单的计算),可以将此代码嵌入到BPEL流程内的Java代码片段中。不过,如果需要重用Java代码的业务逻辑或业务逻辑非常复杂,则可以将此逻辑放入独立的Java类型SCA组件中,BPEL流程可将此组件作为普通SCA服务引用。使用WBM建模流程且希望将该流程转换为BPEL流程时,请仔细考虑每个任务的粒度。如果任务的粒度恰当(实现简单功能),则在WBM中相应地使用map元素;可以在生成的BPEL流程框架中将此元素转换为空的Java代码片段。

  图4. Java代码片段示例
 
  在图4中,有一个Auto Approve the Request map元素。将此流程导出为BPEL框架后,此map元素将转换为生成的BPEL框架内的Java代码片段,而不是独立的SCA组件。

  使用技术属性视图

  WBM中的技术属性视图(如图5中所示)提供了一种可选的方式,用以指定用于在WPS上实现流程、全局任务或服务的技术细节。通过使用此视图中提供的各种功能,可以简化下游实现任务。使用WPS导出功能导出业务流程时,将为技术属性提供缺省值。可以使用技术属性视图来指定各个值,从而重写这些缺省值。对于流程、任务和服务,技术属性视图中的Implementation页包含元素的SCA信息。此信息用于将元素作为SCA组件实现。WPS建模模式的技术属性视图中提供了五个实现类型:

  ·状态机
  ·业务规则组
  ·人工任务
  ·Java
  ·流程

  例如,如果您选择任务实现类型为业务规则类型,则可以在WBM中添加具体的业务规则需求描述。将WBM项目转换为BPEL并将项目导入到WID中时,会将原始WBM任务转换为业务规则组组件,此组件的需求描述与在WBM中添加的需求描述完全相同。然后可以在WID中设计业务规则集,以实现这些需求。

  图5. 技术属性视图
 
  注意:提供了图5的较大视图。

  人工任务是一个特例。运行转换流程后,此任务将转换为独立的人工任务组件。如果不需要独立的人工任务,请在技术属性视图中将实现类型保留为none,并转到属性视图中将staff角色分配给此任务。转换流程之后,此任务将转换为嵌入的人工任务,而不是独立的人工任务组件。

  生成WID BPEL流程

  要在WID中生成Credit Card Request和Credit Card Approval流程(请参见图6),请运行导出与转换向导来生成信用卡申请和审批BPEL框架。然后,调整并添加代码,以对生成的BPEL框架进行充实,从而生成可稍后部署到WPS 6的流程。

  图6. WID流程
 
  注意:提供了图6的较大视图。

  总结

  本文介绍了使用WBM V6进行流程建模的过程中所总结的最佳实践、发现的差距以及获得的经验教训。这包括:

  ·最佳实践

  使用高效的业务模型组装技术
  避免重复SCA组件

  ·WBM与WID间的差距
  ·所获得的经验教训

  在WBM中支持流程依赖关系
  使用Java代码片段时考虑任务粒度
  使用技术属性视图

  作者简介

  Qiang Wang是China Technology Institute, China Software Development Laboratory的一位软件工程师。他的工作重点是IBM Incubator Project和SOA相关主题。他的兴趣包括J2EE、SOA、MDA/MDD、AOP和RUP。他当前从事与WBM、WebSphere Integration Developer和WPS相关的开发工作。
 
  Mary Taylor是一名高级软件工程师。她在Strategic Technology Architecture and Incubation团队工作,目前正在进行一项SOA CBS试验。她感兴趣的领域包括DB2和DataStage。


构建SOA组合业务服务
 开发SOA组合应用程序来支持业务服务
 构建SOA组合业务服务
 使用REST体系结构样式构建可使用的Web服务
 使用公共事件基础设施开发可测量的组合应用程序
 最佳实践、差距及获得的经验教训
 自动化构建与部署步骤
 为组合业务服务提供多分租支持
 组合业务服务CBS的开发(一)
 组合业务服务CBS的开发(二)
 面向灵活性和可配置性的业务流程并行活动模式
 提供对服务消费的治理

原文出处:http://www.ibm.com/developerworks/cn/webservices/ws-soa-composite5/index.html
来源:IBM    作者:Qiang Wang,Mary Taylor    
中间件市场2008年第2季度整体规模达到3.69亿人民币,环比上升达到10.6%,同比增长24.3%.同比增速低于前一个季度,也低于去年同季度,主要是因为宏观经济环境的变化……
服务组件体系结构(Service Component Architecture,SCA)是下一代编程模型,此编程模型提供了三种异步调用模式。您可以使用那些模式异步地调用目标SCA服务……
在SOA概念普及、技术筹备之后,一些中间件巨头正通过具体的产品,将SOA推进到全面实施阶段。然而,正如Sun公司总裁Jonathan Schwartz所指出的,中间件还存在着种种弊端……
端对端包括所有运行时的建模,但是这里的标准还需要经过仔细推敲才行,webMethods' So“这也就是建模和BPMN以及BPEL之间的二分法。”“这两个标准不能同时起作用。”……
BPM和SOA前途光明,但是我们可能还会遇到许多问题。据分析家观点,业务流程管理和面向服务架构将产生一个能够将业务和业务流程附近的IT结合在一起的平台……
JBoss将jBPM系统看作是其开放源JBoss Enterprise Middleware Suite(JEMS)的组成部分。3.1版本在JBoss Seam中添加了多进程语言支持和集成……
信息系统综合集成的水平反映了一个企业、一个部门,乃至整个国家信息化建设的水平。面对复杂多变的网络世界,中间件已经成为信息系统综合集成的利器……
在调用JSP文件以后,JSP页面上选择的参数被传递给Caller组件的Java实现(请参见清单4)。该实现将根据参数发出特定的异步调用……
SOA能够优化业务需求与IT的一致性,能够将业务流程活动从服务实现中分离出来,还能够降低操作成本。只有在不固定供应商的情况下才能真正实现这些功能,此时面向SOA……
面向服务的架构(SOA)是一种基于可以重用的服务的,新的开发应用的架构体系. 近年来, 企业界对于SOA的需求越来越急切. 为了满足这样的需求, 一系列的SOA基础架构产品被推出. 主要的厂商如Oracle, BEA System, IBM都提供了SOA平台产品. 在一个包含各类应用的复杂的IT系统中, 要使用适配器并且在一个符合业务需求的流程中将各类应用串连在一起是一个非常困难的事情, 但是现在的SOA平台将困难转变成了容易。
Web 2.0是2003年之后互联网的热门概念之一,不过对什么是Web2.0并没有很严格的定义。一般来说Web 2.0是相对Web1.0的新的一类互联网应用的统称。
Ruby on Rails, 也称RoR或简称Rails, 是一个使用Ruby语言写的开源网络应用框架,它是严格按照MVC结构开发的。它努力使自身保持简单,来使实际的应用开发时的代码更少,使用最少的配置。
最新更新
专家答疑
技巧
Jason Bloomberg
企业是否应该意识到,云计算有许多积极因素,是否也有负面影响呢?重要的是要记住,云计算仍然非常新,而且在许多方面比vaporware更现实……
Ron Schmelzer,Jason Bloomberg
我们正在进入多元化的银行和金融服务,我们处理客户关系管理CRM,BI,遗产系统,产品J2EE和.NET和其他异构平台。如果我们想要转移到一个共同的平台,为什么要选择SOA……
Ed Tittel
在您最近的博客中提到,在XML.com中有你喜欢的XML内容。关于XML的信息还可通过什么途径可以得到?请与我们分享更多的来源……