繁体   English   中英

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

[英]PHP and ESB (with Mule) (ESB: Enterprise Service Bus)

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

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

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

编辑

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

编辑2

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

编辑3

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

在PHP世界中没有与Mule的本机php集成。 要做到这一点,你应该使用Web服务(SOAP)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM