12

您在 PHP 项目中的何处、何时以及为何使用 ESB?

您认为在 PHP 项目中使用 ESB 的地点、时间和原因是什么?

ESB(以及像 Mule 这样的 ESB 促进者)是否确实提供了 PHP 和本地 LAMP 技术所缺乏的任何功能?

编辑

我提出这个问题的动机源于我的假设,即您实际上从未真正需要 Mule。Mule 将促进与您无需 mule 即可处理的外部服务的通信。归根结底,Mule 也会产生成本和间接费用。所以我的问题是让有人告诉我你真正受益于 ESB 和 Mule 等工具的场景,或者用扎实的知识来支持我的猜测。

编辑 2

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

编辑 3

似乎Tuxedo可能是 Mule/ESB 的 PHP 原生替代品。有人有使用此工具的经验吗?

4

4 回答 4

3

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

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

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

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

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

于 2011-05-17T08:32:03.813 回答
3

ESB(Enterprise Service Bus)是一种用于整合企业多种异构应用程序的骨干,它可能来自不同的供应商、技术,甚至是冗余的。

与 PHP 或任何其他语言相比,它似乎与 Java 世界的联系更紧密的事实是,大公司的信息系统通常由以下材料构成

  • 开源开发和软件编辑器工具(包括 ERP)的组合。为了依赖 Java EE 堆栈(及其供应商 IBM、Oracle 等),通常使用 Java EE 进行开发
  • 完全微软(无需 ESB,微软提供类似 EAI/ESB 的工具)

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

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

PHP 应用程序的一个潜在用例是旅行社的 Internet 站点,该站点查询多个航班/火车/酒店公司。即使在这种情况下,开发一个完整的交叉查询系统也不会很疯狂,因为它是这样一个站点/公司的业务核心。

于 2011-05-19T13:54:36.237 回答
3

ESB 是可伸缩性问题的通用解决方案;管理大量应用程序接口的开销、成本和复杂性的问题。我在http://psicom.com.au/solutions/eai上写了一篇关于 ESB/EAI 解决方案基本原理的短文

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

据我所知,目前还没有用 PHP 开发的 ESB 产品,而且我不希望在不久的将来看到这种情况。但是 FWIW,很多 ESB 产品都为 PHP 和其他 OSS 平台提供绑定,所以 ESB 运行的平台并不重要。

于 2012-05-15T05:20:32.597 回答
2

我会推荐 Windows Azure 服务总线,它在这里提供了一个 PHP SDK https://github.com/WindowsAzure/azure-sdk-for-php

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

于 2013-03-15T22:45:48.263 回答