簡體   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