一、Sashulin Message Broker简介
Sashulin Message Broker(消息代理,简称SMB)是一款可编程的消息流处理软件,它使应用程序、系统和服务能够相互通信并交换信息。通过消息传递和转换,实现不同平台和不同语言编写的服务间的直接“对话”,最终进行业务逻辑实现。
SMB为开发人员提供了标准化的业务组件。通过组件间的连接,实现业务流程流转,让开发人员专注于核心逻辑的实现。
SMB可以验证、存储、路由消息并将其传递到相应的目标。它们充当其他应用程序之间的中介,允许发送者在不知道接收者在哪里、它们是否处于活动状态或有多少接收者的情况下发出消息。这有助于系统内流程和服务的解耦。
SMB是商业产品,针对SN过期后不会停止工作,但性能会有所降价。
下载地址:https://sourceforge.net/projects/sashulin/files/SashulinMessageBroker2024/
二、SMB的能力
1、可视图业务流程编排
SMB提供了丰富的组件库,通过拖拽控件,并将控件尾首连接起来,实现业务流程编排。
2、Java编程与调试
在General组件库中,提供了Java Compute控件,将该控件拖入业务流程,双击该控件,进入到Java编程界面,并可以设置断点,运行时会停留在断点处。另外提供了表达式、step over、step out、setp in、stop、Continue等调试手段。
3、动态路由
业务流程有分支的情况下,需要根据业务情况走某个或某几个分支,这种是通过Java Compute来控制。成员变量:routeLabels 默认为空,根据业务的逻辑赋予不同的路由位置,值必须是Java Compute节点out节点之一。 如果routeLabels为空,则调用所有的out分支流程,如果指定了路由位置,则调用指定流程,可以指定多个路由位置,使用逗号分隔。如:routeLabels = "DLL1,DLL2"。
3、封装与扩展
4、服务容器
提供了Http、Ftp、Socket、WebSocket、WebService服务容器组件,拖入编排界面中即可生成服务器。特别是Http Input组件,拥有Web服务器能力。
5、集群部署
SMB的集群能力依赖于Nginx等第三方工具。同一个业务流,可以部署在多个Sashulin引擎中,通过Nginx映射出去。
6、远程控制
引擎提供了startupApp、stopApp、restartApp三个API来供控制中心使用,控制中心可以动态控制终端设备中服务的运行情况。
其他能力在后续章节中介绍。
三、SMB成功应用案例
在医疗信息化行业,基于SMB成功开发出全院统一危急值管理平台(包含7个子系统)、全院消息通讯平台、全院不良事件统一上报平台。这些业务系统目前已应用于国内30+大型三甲医院,包含重庆儿童医院、齐鲁医院(青岛)、广东省第二人民医院、山东省肿瘤等著名医院。
四、SMB应用行业
SMB是通用性中间件,适用于众多行业的信息化,如果某些组件不满足,可以通过自定义组件方式设计符合自己的业务组件。