PHP和ESB(使用Mule)(ESB:企业服务总线)

时间:2011-05-12 08:53:46

标签: java php esb mule

在PHP项目中何时,何时以及为何使用ESB?

在哪里,何时以及为什么认为在PHP项目中使用ESB是有意义的?

ESB(以及像Mule这样的ESB辅导员)是否提供PHP和本机LAMP技术所缺乏的任何功能?

修改

我对这个问题的动机源于我的假设,你实际上从未真正需要骡子。骡子将促进与外部服务的沟通,您可以在没有骡子的情况下处理。在一天结束时,Mule也会产生成本和开销。所以我的问题是指导有人告诉我你真正受益于ESB和Mule这样的工具的场景,或者凭借扎实的知识来猜测。

修改2

关于Houcem对我的评论的回复......什么是ESB / Mule的原生LAMP答案?

编辑3

似乎Tuxedo可能是Mule / ESB的PHP本地替代品。有人有使用这个工具的经验吗?

4 个答案:

答案 0 :(得分:3)

ESB(企业服务总线)是企业的多个异构应用程序集成的一种主干,可能来自不同的供应商,技术,甚至是多余的。

与Java或任何其他语言相比,它似乎更多地与Java世界相关联的事实是通常大公司信息系统由以下组成:

  • 开源开发和软件编辑工具(包括ERP)的组合。开发通常使用Java EE来依赖Java EE堆栈(及其供应商IBM,Oracle,......)
  • 完整的Microsoft(不需要ESB,Microsoft提供类似EAI / ESB的工具)

PHP最常用于Web应用程序(即使是大公司,但面向Web)。

ESB是一项巨大的成本,只有在互连应用程序数量增加时才有用/需要。 当您只有很少的连接(在Java,PHP或其他之间)时,您可以在网络级别使用DNS处理它,在应用程序级别使用配置键处理它,并为每个点对点连接执行协议交换和小型业务集成。 / p>

PHP应用程序的潜在用例将是旅行社的一个互联网站点,该网站查询多个航班/火车/酒店公司。即使在这种情况下,它不会是疯了,开发出全十字quering系统,因为它是企业对这样的网站/公司的核心。

答案 1 :(得分:3)

ESB是可伸缩性问题的通用解决方案;管理大量应用程序接口的开销,成本和复杂性的问题。我在http://psicom.com.au/solutions/eai

写了一篇关于ESB / EAI解决方案基本原理的简短文章

不可否认,大多数PHP站点规模较小,通常很难证明ESB的管理和技术开销是合理的。但现在用OSS PHP产品满足所有业务应用程序的需求是相当可行的,组织的成本压力也在增加,所以我预计会有越来越多的PHP商店开始感受到我写的各种成长的痛苦。这可能会使他们重新评估他们的应用程序集成问题,而ESB是解决该问题的良好解决方案。

据我所知,没有用PHP开发的ESB产品,我不希望在不久的将来看到这一点。但是,FWIW,许多ESB产品都为PHP和其他OSS平台提供绑定,因此ESB运行的平台并不重要。

答案 2 :(得分:2)

ESB可以以不同的方式使用:

  • 提供异步处理:示例:如果您的网站发送了大量电子邮件...并且发送电子邮件需要花费大量时间来阻止页面的执行:您可以使用ESB将电子邮件数据发送到Mule并将其路由到电子邮件出站通道,这样您就可以说已实现了邮件消息队列。另一种形式的异步处理:使用mule以非阻塞方式执行php脚本(使用命令行)。

  • 与java应用程序集成:您可以使用php将消息发送到mule并使用java中的mule API实现一些java业务,您的Java业务组件将接收php消息。这用于大型网站,它们进行大量复杂的处理,需要灵活而强大的语言,如java。

您需要了解的内容:ESB应该像Bus一样使用,这意味着以标准形式(Mule消息)从异构环境中收集数据..执行业务逻辑,然后输出数据(路由后)到不同的环境

PHP世界中没有与Mule的本机php集成。为此,您应该使用Web服务(SOAP)

答案 3 :(得分:2)

我建议使用Windows Azure Service Bus,它提供了一个PHP SDK https://github.com/WindowsAzure/azure-sdk-for-php

服务总线很棒,但保持一个不是。 Windows Azure Service Bus为您解决了所有维护开销,并且与PHP兼容。您甚至可以轻松地与PHP中使用Java,C#,VS C ++编写的应用程序进行通信。