MES中消息传递及在fab300中的实现

来源:互联网 发布:淘宝卖家要身份证照片 编辑:程序博客网 时间:2024/05/25 13:34

    一套 MES 一般不会只部署在一台服务器上,因为一方面MES太重要了,承担不去软件硬件crash的后果,另一方面一套MES服务压力是非常大的,一台服务器无法承担如此繁重的任务。所以一般MES 系统都是分布式系统。

   分布式系统,就好涉及到数据在各台服务器,各个模块组件中的传递,而且需要保障安全。我不是很清楚市面上其他的MES系统是如何实现消息传递的,以我所接触的两套系统,一套是使用微软的MSMQ来异步传递消息,另外一套是通过RV来同步传递消息。MSMQ和RV具体如何传递消息可以参考这两个产品的相关技术文档,下面我就介绍一下Fab300 使用MSMQ的思路。

   这边先介绍fab300 中的硬件架构,

   以fab300最新的3.31版本来说 一般包含 两台DB Server(shear disk),两台Event service server 一台 Terminal server ,n台 Application server。

  在这些server间数据通信采用的微软的MSMQ和MSDTC。系统建立的时候就建立了一系列的专有消息队列,这些消息队列存储在DB中以方便做routing。

 以一次消息通信为例,一般是有Terminal server发起一个消息,这个消息会传送到对应的消息队列,然后有Event Service Server 接收这个消息,通过转换指派某一台AP server具体执行本次操作。

 对于RV 一般都是起一些路的listen,发生不同的subject到不同的listener,由listener执行具体的事务。