Beyond Workflow : An Introduction to Vitria BusinessWare

 

一、简介

BusinessWare是一款企业应用集成(EAI)软件,更加注重“系统”间的交互,传统工作流只是它的一项普通功能而已;BusinessWare还是一款可扩展的软件,对于已知的未知的系统/协议,它提供可单独配置的部件(Connector/Proxy)来对接,因此,BusinessWare可以看作企业现有系统间的总线/程控交换机

二、组成

2.1 BusinessWare目前版本(4.3.x)由以下几个重要部分组成:

  • 建模工具BME(BusinessWare Modeling Environment):

    全程可视化,代码产生器,自动同步,调试、部署、运行...真是很强大 ,还可以动画显示模型运行过程 ;不过目前听说只有Windows和Solaris的版本,而且试用中发现新建一个project的菜单居然不在File--New中,而是放在"Project--Project Manager"中,真是令初次见面者一头雾水 ;当然,业务逻辑代码还是要自己写,需要有Programmer Reference

  • 集成服务器(Integration Server)

    是BW的运行时,负责执行BME建好的各种模型,并提供事务、安全、持久化等基础服务;Integration Server不是标准的JavaEE服务器,但能够与标准的JavaEE应用服务器进行双向交互(发送/接收等)

  • 模型存储管理

    使用了LDAP服务器来管理EAI模型;BME会将模型发布到LDAP中,而Integration Server将从LDAP取出模型信息并执行

  • 管理监控界面

    BusinessWare提供了基于Web的管理监控界面,并包括统计分析等功能

2.2 BusinessWare下一版本的重要变化:

  1. 建模工具BME(BusinessWare Modeling Environment)

    下一版将基于Eclipse,会极大增加跨平台能力

  2. 集成服务器(Integration Server)

    下一版BusinessWare的模型将可以直接部署、运行在标准JavaEE服务器中 ,现在的Integration Server中只有一小部分功能会作为一个运行时引擎的方式部署到JavaEE服务器中,而事务、安全、持久化等基础服务都将使用JavaEE服务器已经提供的功能,不再需要单独的JVM来运行Integration Server

  3. 模型存储管理

    下一版本BME会将模型打包成标准的EAR包,直接部署在JavaEE服务器上,不再需要单独的LDAP服务器

三、模型与概念

3.1 BusinessWare中的几种基本模型:

  1. 集成模型(Integration Model):顶级模型(root model),是整个应用的集成模型,由代表各种外部系统和内部业务流程的Component组成,直接建模各种外部系统和内部业务流程之间的连接;Integration Model可以嵌套,称为Nested Integration Model,可在运行时动态连接到不同的实际子系统,这样可以使你分层的设计集成模型,隔离了复杂性,利于重用;Integeration Model体现的更多的是数据流,而不是控制流

  2. 流程模型(Process Model): 即企业的业务流程,包括全自动化的流程和需要人参与的流程,基本对应其它系统中的Workflow, 主要由stateaction,transition等组成;不过在BusinessWare中,只有human interactionProcess Model才称为Workflow,而且它是符合WfMC规范的 ;Process Model出了建模数据流外,更多的体现了控制流

  3. 转换模型(Transformer Model): 对于数据类型转换这种常见任务的显式建模,通常用于将一个系统的输出,转换为令一个系统的输入;BME提供了可视化的方式来做这件事,可以在用连线表示将输入字段转换为哪个输出字段,并可以可视化的建立转换表达式,表达式可以使用ECMAScript和任意Java语法、类库;转换模型通常在流程模型中作为一个action来使用

3.2 另外BusinessWare中有一个很重要的“组件(Component)”的概念:

组件(Component):包含在Integration Model中,代表 各种外部系统和内部业务流程,它只是真正的SubSystem的 占位符 ,是一个 Logical Concept ,这样你的整个集成模型(Integration Model)就成了一个逻辑视图,独立与实际的物理子系统,使系统更加灵活的应对变化 ;并且你不需要在一张图上画出全部模型细节,可以使用单个Component来代表整个子模型,从而分层的表达模型

四、常见任务在BusinessWare中的解决方案

  • 对现有系统或资源的集成,答案是Connector:

Connector是外部系统适配器,分两个方向:Source Connector和Target Connector;Connector对适配器显式建模,是EAI的关键;以前自己的系统把这种Connector建模为了自动型活动 ;BusinessWare带有几个基本的Connector,提供了对诸如file systems, email systems, Web servers, channels, 和queues的连接. 很多其它专用的Connector可以单独购买,如database connectors, SAP connectors, 和 Oracle Applications connectors. ;Project启动之后不会自动运行,需要最初的Connector或手工触发、注入事件

  • 与现有对象调用、协议调用的对接,答案是Proxy:

Proxy是外部对象适配器,通常是远程过程调用的代理 ,如RMI,EJB,CORBA,WebService等;Proxy和Connector的区别是:Whereas connectors enable interaction between BusinessWare project components and external systems such as Oracle Applications and SAP, proxies enable interaction with external projects or software objects using specific protocols. BusinessWare提供了与RMI,CORBA,WebService等调用协议的对接

  • 流程模型内不同action,state之间数据的共享,答案是BPO(Business Process Object):

BPO类似工作流中的相关数据,但比"相关数据"模型更清晰,更模块化

  • 数据的持久化,答案是Persistent Store:

Persistent Store完全掩藏了建表语句,根据对象(通常是BPO)自动创建表,只需要指定连接信息即可;可以在各种存储机制中自由切换

  • 异步通信,答案是Channel和Queue:

Channel和Queue是BusinessWare的消息队列,用于异步通信;Channel保证每个订阅者都会得到消息的一份拷贝,Queue则是先到先得;Channel与Queue的持久化由BusinessWare自己维护;对现有消息系统的集成,如IBM和MS的MQ,BusinessWare提供Connector来连接

  • 子流程的复用、共享,答案是Project Module:

Project Module是共享的Project Library,类似编程语言中类库的概念,可以在不同项目中复用;应该超过 sub flow 的复用级别

  • 如何定义模型中的数据类型,答案是Type:

BusinessWare提供了向导来建立自定义类型,或者从IDL文件和java文件中导入;BusinessWare中可以使用所有Java类型,其实BW的Type可以看作IDL和Java类型的合集,在BW内部定义了Type的存储形式,可以使用右键菜单等方式直接将*.idl,*.java转换为BW Type,BW Type也可以导出为IDL;而在编译时,BW的所有运行时代码都会先生成Java源代码,随后被编译为class,并打包成jar;BusinessWare中的Type可以看作元数据:Operations, parameters, exceptions, business process objects (BPOs), and events are all examples of BusinessWare types. To enable BusinessWare to store, transport, and manipulate your data, you describe it to BusinessWare using types. In addition to a generic BPO, you can define specific BPOs that describe your data and operations.

  • 如何定义组件间的接口,答案是Port:

类似UML 2.0的Port,定义Component面向不同Client和Service的接口;Ports并不控制流程走向,只是提供可供调用的接口

五、结论

基本上,在开发EAI应用时,可以将BusinessWare看作Server Side的RAD(快速应用开发工具)

你可能感兴趣的:(workflow)