`
chelsea
  • 浏览: 117794 次
  • 来自: ...
社区版块
存档分类
最新评论

Vitria BusinessWare: 平台与软件总线

    博客分类:
 
阅读更多

经过一段时间的使用,对BusinessWare有了些许了解

如果没有路由器,HUB之类的硬件设备,或具有类似概念/功能的硬件设备,互联网/局域网的出现是不可能的,一根网线连两台机器组成对等网,三台机器就要三根,四台就是六根......

如果没有BusinessWare之类的集成平台,连接两个应用需要写一段代码,四个应用就是六段,八个应用就是二十八段代码

尽管<<Enterprise Service Bus>>这本书里说类似网络路由器功能的EAI平台已经是上一代集成平台了,但实际上由于ESB尚未成熟,规范存在诸多争论之处,实际应用中仍然是BusinessWare之类的Software Route占主流;而BusinessWare中SOA的成分也越来越多,此是后话

 

1,建模环境BME

BME基于NetBeans,能够稳定的运行在NetBeans能够运行的平台上,各种配置参数也就是NetBeans的配置参数,比如:

  • 切换user dir,类似Eclipse的workspace,可以在启动时加入 -userdir /home/chelsea

  • 切换临时目录,防止不同用户产生的临时文件互相干扰,可在bme/bin/ide.cfg中加入 -J-Djava.io.tmpdir=/var/tmp/gli

  • 切换Locale,可在bme/bin/ide.cfg中加入 -J-Duser.language=zh -J-Duser.country=CN

 

2,运行时

BusinessWare的运行时类似JavaEE应用服务器,也具有Server,Container,Component等概念,之间的具体关系用户其实不必太关心,文档里有这么一段,可作为参考:

Projects are loaded and run in containers. A container provides deployment and runtime services for project components and insulates projects from each other. Containers exist and run within an Integration Server.

An Integration Server can host multiple containers, but containers cannot be shared among projects. Each project or version of a project is run in its own container. If you have a large project, or one whose components differ in their demand for computing resources, you can improve performance by partitioning the project among multiple Integration Servers running on different hosts.

 

 

3,Workflow

BusinessWare采用了Code Generation的方式,为模型(不光是工作流模型,包括所有的集成模型,流程模型)产生Java代码,编译执行;其工作流模型采用UML图示和概念,并遵循WfMC定义的松散的规范;听说后续版本会支持BPEL,不知会不会增加解释执行的部分

BusinessWare的组织模型令我有知音之感,和我之前的设计几乎一模一样:Role,User,Relationship,这三个概念足以表达绝大多数组织模型,巧合的是,在我们的发布版和目前BusinessWare的发布版中,都暂且只支持一种Relationship,我们是“上级”,BusinessWare是“BW Manager”

 

4,vtadmin

BW提供了实用命令行工具vtadmin,其语法的优雅程度媲美任何一种DSL,如SQL之类;其实我一直觉得每个命令与它的命令行参数都构成了一种DSL,只不过大量繁琐丑陋不直观的命令行参数降低了大家把他们作为一种语言的直觉,这是后话,以后再表;举个vtadmin的例子:

  • vtadmin deploy project OrderProcess.jar

  • vtadmin start project /Projects/OrderProcess/initialversion

  • vtadmin start server "cn=bserv1, cn=Servers"

够直观的吧;另外vtadmin的输出是std::err的,因此要重定向的话需要加2:

  • vtadmin deploy project OrderProcess.jar 2> e.txt

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics