2012-01-29 115 views
4

我正在一个项目中,我们将基于一套更大的定制技术基于OSGi服务迁移一个主要软件系统。为此,我们可能需要一些类似OSGi服务的消息总线。OSGi服务的消息总线

  • 同步和异步传送
  • 点至点仅
  • 保证交付 - 优选经由文件持久
  • 来自同一客户端(异步模式)有序
  • 严格消息,但不一定来自不同客户端
  • 支持流程到流程和节点到节点的不错,但没有严格要求

开源解决方案w ^生病是首选,但不是必需的。

我已经看过eventbus(按照https://stackoverflow.com/a/1953453/796559的建议),但这似乎不起作用。

所以问题是,哪些技术符合上述?

回答

5

的Tonny,

刚走来自一个非常相似,并且成功的项目,请让我分享我的经验与您节省时间和你的公司一些钱。首先,ESB在8年前提出时是一个非常好的主意。而且,他们解决了一个重要问题:您如何定义一个业务问题,以便那些讨厌的编码员能够理解?我们的目标是开发一个系统,让商业人士创建一个软件解决方案,不需要很少讨厌的开发人员交互,从而消耗更多花在管理奖金上的资金。

为了回答这个问题,许多组织的好人提出了JBI,BPMN和其他一系列解决方案,让业务人员对他们想要“数字化”的业务流程进行建模。但实际上,它们在非常关键的层面上都存在缺陷:它们解决的是业务问题,而不是整合问题。因此,除非由一些高价位的顾问完成,否则这些实施中的许多实施都是不成功的,即使这样,您的前景也很粗糙。

与此同时,在非常90年代末一些很聪明的人出版了一本书,叫其确定用于解决常见的集成问题,超过60的设计模式“企业集成模式”。许多执行ESB的人意识到他们的问题不是商业模型。问题在于如何整合现有的应用程序。为了帮助解决这个问题,Michael Strachan和一些非常聪明的人开始了Apache Software Foundation Project“Camel”。骆驼是企业集成模式的严格实施,除了大量的组件设计,允许像你和我这样的人把东西钩在一起。

所以,如果你认为你的业务流程简单地需要从一个应用程序发送到另一个数据到另一个,之间适当的数据转换,那么骆驼是你的答案。现在,如果您想将“路由”(您想发送数据的特定系列应用程序端点)从一组数据库中的一组可配置规则中取出来?那么,骆驼也可以做到这一点!有一个终点!总之,不要做传统的ESB,它的老旧和破坏。绝对做骆驼的事情。

请让我知道这是否有帮助。

+0

感谢您的意见。我完全同意。我正在寻找一种非常低级的方式来帮助跨越更大的产品基础以常见的方式连接到服务......我不寻找任何种类的业务建模。所以......我会看看骆驼,看看它可能适合哪里...... – 2012-02-03 07:18:35

1

你不是在找一个ESB吗? ServiceMix是:

灵活的,开放源码的集成容器统一的功能和Apache ActiveMQCamelCXFODEKaraf的功能整合到一个强大的运行平台,你可以用它来构建自己的集成解决方案。它提供了一个完全的企业级ESB,它完全由OSGi提供支持。

+0

谢谢,那很快:-)我会尽快检查ServiceMix。 – 2012-01-29 20:21:14

0

貌似你在说ESB在这里。如果是这样的话,那么你可以看看wso2 ESB。它由apache synapse供电。它使用OSGi作为模块化框架,以便您可以根据需要添加/删除功能。基于相同的OSGi核心平台,来自wso2的整个product stack,如消息代理,业务流程服务器(ODE)等。

免责声明:我为wso2工作。

+0

谢谢,我会看看。 – 2012-01-30 07:40:54

4

OSGi规范定义组件“事件管理”,这是一个轻量级发布 - 订阅事件子系统。 从RFC0157:

事件联系指定装置的事件源事件发送到 事件侦听器。事件源可以创建一个主题, 属性和请求事件管理活动提供的事件事件已宣布在特定事件主题和/或 属性值的兴趣 听众。事件源可以请求同步(以及无序)或异步(和有序)传送。

比起你的要求,将比分如下:

  • 同步和异步交付:检查
  • 点至点只:号发布 - 订阅
  • 保证交付 - 优选经由文件的持久性:NO
  • 严格messag E从同一客户端排序(异步模式):YES
  • 支持进程到进程:如果(过程== OSGi服务) - >是
  • 支持节点到节点:尚未。 分布式OSGi的家伙一直在努力,但我还没有看到任何具体的东西 。

我喜欢骆驼的概念,但最近决定去(轻)事件管理员,因为我的要求是有限的。麦克骆驼动机+1。我会研究它,然后在决定之前比较选项。

相关问题