在公司加入了一个新的项目组,被分配去研究 WebSphere MQ Workflow,Workflow是有些基本的了解,但是MQ和JMS还不是很清楚,更主要的是环境不知道怎么去搭建,也不知道MQ与Workflow有什么关系。
最开始只知道有一个软件是WebSphere MQ Workflow,于是安装它吧,没想我无论是选择安装服务器端还是客户端都提示我需要MQSeries这个东西,我该到哪儿去找这个东西呢?而此时我旁边的同事却把Workflow给装上了,怎么回事呢?他说他的添加删除程序里有一个WebSphere MQ,他也不知道是几时安装的,查查安装路径才知道是WAS5.1自己带的一个MQ。于是我也装上WAS 5.1的MQ部件,果然Workflow也能安装上了。
那么如何去用MQ Workflow呢,MQSeries和Workflow是什么关系呢,带着这些疑问去CSDN上查了查,没找到好的文章,只找到一个人的MSN,好像那人对MQ比较熟悉的。
前面讲了那么多,现在就让我把我有幸遇见的那么朋友推出来,他就是负责MQ和WebSphere的技术支持工程师。我先只是把他的MSN加到我的联系人中,我没有搭话,过了好一阵是他先给我打招乎,于是我就请教了他一些问题,我从他的回复中得知(抽些关键的):
Workflow是为MQ提供服务的,是MQ的一个应用程序,安装Workflow之前还必须本地安装有MQ Series
Workflow要配合数据库来使用,而MQ不需要数据库
Workflow目前只支持四种平台分别是Windows、AIX、HP-UX和Solaris,而不支持Linux系统
Workflow3.3开始支持Oracle数据库,以前版本只支持DB2;Workflow在其的系统下好象还是不能像在Windows上那样有界面配置数据库
Workflow使用Oracle时处理中文有些问题;点击这里,Workflow的配置需求说明
Workflow不出Linux版是开发产品的人认为这个市场太小,不值得投资;Workflow与MQ之间传递一些控制信息
用Workflow提供的一套JAR来写程序,发请求给Workflow服务器,由Workflow服务器去数据库里查到实例的信息,然后返回给应用程序,Workflow的数据库的内部及结构很复杂,可不要去了解
MQ Series V6开始可以通过界面来配置消息通道,之前版本必须用命令配置;WAS5.1所带的MQ其实是一个简化版的MQ,是不能和外界(其他进程,另一个队列管理器)的MQ通讯的
要与能外界通信就必须要一个货真价实的MQ,而不是那个偷工减料的MQ;WAS5.1中为什么放一个无实际用途的MQ还有一段很长的故事----在WebSphere v4的时候,J2EE的版本还是1.2向1.3过渡的阶段,那时的标准没有要求J2EE服务器一定要带一个JMS服务器,IBM也就没有在意,反正他有一个MQ,通过MQ提供的一套JAR包,就可以写JMS程序,放在WEBSPHERE上访问MQ了,结果J2EE 1.3不是这么说,说一定要在产品里面带一个JMS服务器,IBM就傻眼了,被BEA揪住不放,说WEBSPHERE没有带这个东西,所以不满足J2EE 1.3,很多人也不问清楚,就认为IBM的东西是比较落后一点,IBM吃了一次亏,下次就学精了,就直接从一个不支持J2EE 1.3的产品变成了一个支持J2EE 1.3的产品,是不是很搞笑。
可作为JMS服务器的MQ和WAS不在同一个进程中运行,只不过在WebSphere的启动脚本里面有启动MQ的命令,,除此之外这个WAS自带的MQ与WAS本身是没有什么关系了。
IBM的红皮书 MQSeries Primer http://www.redbooks.ibm.com/abstracts/redp0021.html?Open
MQ Series跟JMS的关系就像ORACLE数据库跟JDBC的关系一样
一般我们说的消息通道都是指两个MQ队列管理器间的通道,所以两台机器间要建立消息通道,当然要在两台机器上都要安装MQ,如果只有一台机器装了MQ,另一台是以客户端的身份,通过调用JAR包来访问,那就是另一回事了
MQ客户端连接MQ服务器也是要在MQ服务器上定义一个通道(一个服务器连接通道),但是这个通道和一般意义上的通道又不一样,它不是一个实体,只是一个入口的名字,和两个MQ服务器间的通道不一样。两个MQ服务器间的通道两边是真的各有一个收发进程的。总之只要明白它是这么工作的就可以了,名字上怎么叫无所谓了
MQ Workflow有一个很丑陋的工作流设计器叫做Buildtime,要先配置好一个CONFIGURATION ID才可能用Buildtime
IBM声称前后花在LINUX上的钱不过几十亿,每年花在自己服务器软硬件研发的费用不下一百亿($)。IBM一年的营业额九百多亿,利润却只有不到八十亿,钱到哪里去了?难道真是减价让利不成
Workflow现在有一个替代产品 WebSphere Process Server,比workflow好很多,而且是运行在WAS的环境里的,也支持LINUX。WebSphere Process Server和Workflow只有核心有些相同,开发起来就大不一样,但对于使用的人来说根本看不到。WORKFLOW用的是FDL,流程描述语言,WPS用的是BPEL。BPEL是现在的工业标准,所以IBM也不再打算继续发展WORKFLOW了。有计划要做3.7,但是什么时候能做完就不知道了。
本文链接 https://yanbin.blog/websphere-mq-workflow-ibm-support/, 来自 隔叶黄莺 Yanbin Blog
[版权声明] 本文采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可。
我想问下:mq workflow 在实际的应用程序中是怎么使用的,我是个新手,最近咋学习mqworkflow,麻烦能给点意见不?
在设计器里设计好了自己的工作流程 fdl 文件,工作流程文件可以设计的很复杂,条件分支,循环嵌套,数据输入输出等,然后用代码,支持 Java/C++,好像,就可以创建一个个工作流实例,其他的工作就是系统自动按照流程文件所设计来运转,直至流程完程。例如,订单的流程,由创建定单(需输入定单相关的数据),流程创建好后会自动进到下一个审批人的工作列表里,那人可以审批或打回去,只要是你自己想要的流程,直至定单完成。mq workflow 需结合 mq series 来使用。mq workflow 是个比较老旧的东西,现在可以使用 IBM 的 wps,即 workflow process server,或用更通用的 bpel,像 JBoss 的 JBPM 等。
不错的文章哦,对我帮助很大
Was5.1 恐怕是很难找到地方下载了,我应该能找到 Linux 和 Windows 平台下的 Was 5.1,可以传个给你。不过现在 Was 用得多的版本还是 6.1,5.1 太老了,支持到的 JDK 仍然为 1.4。
您好 很好的文章 请教下 Webs Application Server 5.1 在哪儿能下到呢??谢谢啦
Was5.1 恐怕是很难找到地方下载了,我应该能找到 Linux 和 Windows 平台下的 Was 5.1,可以传个给你。不过现在 Was 用得多的版本还是 6.1,5.1 太老了,支持到的 JDK 仍然为 1.4。