Shuttle ESB介绍

news/2025/1/12 5:54:18/

背景介绍

背景一

项目中使用到消息中间件。之前是采用另一位同事的思路实现:主要通过OPC通道,检测前端的消息。一旦发现有新消息,马上发送到各个终端,终端再根据自己的业务需要进行各自的显示以及处理。不过这样实现,系统对接时,出现了很多问题。如项目中很多WPF事件无法触发。几经探索,还是困难重重。所以,就改为今天的思路了。


背景二

技术调研后,经理还是决定使用同事推荐的Shuttle ESB做为消息中间件。也就是放弃了之前OPC的尝试,采用ESB作为消息路由。即前端监测点检测到数据。然后以消息的形式,经过消息中间件发送到各个终端。


Shuttle ESB

Shuttle ESB是一个免费的.NET开源项目。它为面向消息的事件驱动架构系统的开发提供一个新思路。Shuttle项目兴起时间不长,成形的产品也只有南非有一个案例。

Shuttle主要包含以下内容

1、基于C#开发(.NET FrameWork3.5);

2、核心功能不依赖任何第三方的东西;

3、既支持命令消息,又支持事件消息;

4、具有集成的消息分发功能;

5、能够自动重试,增强了容错能力。


几个要点

Shuttle服务总线依赖两个东西:1、消息;2、队列。

队列基础设施可以是任何实现。目前,Shuttle提供现成支持有两种队列:微软的消息队列MSMQ和Sql Server基于表的队列 Table-based queues。Shuttle已经提供好了接口,这两种实现是Shuttle最初版本中实现的。如果你想支持其他队列,只需要参照现有实现,在写一个实现类就可以了。


命令消息和事件消息

Shuttle中的消息有分为命令消息和事件消息。命令消息(command)会发送到单独的终结点,这就要求命令消息要发送一个需求明确的请求。为了发送消息,你需要知道那个终结点实现的某个行为。所以命令消息是高度耦合的。

刚好相反,事件消息(event)可能没有或者有多个订阅者。事件发布后,每个订阅者都会收到一个消息。


PS:命令消息与事件消息,完全类似于与JavaEE中的Ejb规范中的JMS。命令消息类似于与P2P模式的,而事件消息类似于Pub/Sub模式。


各种ESB产品,包括Shuttle ESB,都是SOA的软件架构模型,为相互作用的软件应用程序之间的交互进行设计和实现。Shuttle ESB作为一种分布式计算的软件架构模型,有人称之为 客户端服务器架构的变体。主要用途就是在异构、复杂的情况下进行企业集成。


我们项目用到的Shuttle

1、前方监测点检测到数据,以命令消息形式发送到服务终端;

2、使用发布订阅模式,各个显示终端订阅消息事件,服务终端接受到命令消息后,向各个订阅的终端发送消息;

3、终端进行相应处理及显示。


参考

维基百科http://en.wikipedia.org/wiki/Event-driven_architecture

http://en.wikipedia.org/wiki/Extensibility


以及

http://www.infoq.com/articles/Shuttle-Service-Bus



http://www.ppmy.cn/news/869719.html

相关文章

A Singing Shuttle

A Singing Shuttle project presentation the video shows how it works how it work laser cut part we use the software “Lasermaker” 1. practice first we can print some templates provided. then we can try to create our own pattern another practice: …

上天入地Shuttle多穿再升级!

导语 大家好,我是智能仓储物流技术研习社的社长,你的老朋友,老K。 新书上市《智能物流系统构成与技术实践》 知名企业 更多推荐 如何将AGV,堆垛机,RGV连上5G? 最强盘点!16种不同堆垛机让你一次看…

Shuttle安装以及配置简介

本文说明: 本文介绍Shuttle的安装以及配置,主要是根据Github上的官方文档进行翻译说明,还有自己的一些补充,如果习惯直接看文档的朋友,可以直接关掉这篇文章了~ 本文说明 Shuttle是什么Shuttle怎么用 安装ShuttleShutt…

Shuttle 学习

见 http://blog.csdn.net/liu765023051/article/details/38521039 转载于:https://www.cnblogs.com/lhxsoft/p/8535055.html

shuttle介绍

2019独角兽企业重金招聘Python工程师标准>>> http://shuttle.github.io/shuttle-esb/architecture/ 该网址的翻译 概念 本页提供的阳历代码并不代表着一个样例或者解决方案,但是,确实演示了一些概念在 Shuttle ESB中的应用。为了帮助整合你的…

Mac下shuttle的配置

1.配置 点击快捷菜单的shuttle小图标,设置-编辑。打开配置文件。 {"_comments": ["Valid terminals include: Terminal.app or iTerm","In the editor value change default to nano, vi, or another terminal based editor.",&quo…

【Rust日报】2022-09-11 Shuttle 创建和部署带有ShuttleSerenity的 Discord 机器人!

Shuttle v0.5.1 已发布 ━ 创建和部署一个带有Shuttle & Serenity 的 Discord 机器人! 对于任何想要让 Discord 机器人启动并运行(使用 Rust)的人 - 穿梭 v.0.5.1 已经发布,增加了Serenity支持。 提醒大家,shuttle…

Mac Shuttle 安装

1.下载 Shuttle.app.zip 2.转移至应用中 3.菜单栏中选择 设置-编辑 4.编辑好命令 即可 我的编辑命令如下(酌情修改即可): {"_comments": ["Valid terminals include: Terminal.app or iTerm","In the editor v…