PHP и ESB (с Mule) (ESB: Enterprise Service Bus)
Где, когда и почему вы использовали ESB в PHP-проекте?
Где, когда и почему вы считаете, что имеет смысл использовать ESB в PHP-проекте?
Предоставляют ли ESB (и ESB-посредники, такие как Mule) какие-либо возможности PHP и собственные LAMP-технологии отсутствуют?
Edit
Моя мотивация для этого вопроса связана с моим предположением о том, что на самом деле вам действительно не нужен Mule. Мул облегчит общение с внешними службами, с которыми вы могли бы справиться без мула. В конце концов, также Mule создаст затраты и накладные расходы. Поэтому мой вопрос заключается в том, чтобы кто-нибудь рассказывал мне о сценариях, где вы действительно пользуетесь ESB и инструментами, такими как Mule, или, во-вторых, с моей уверенностью в надежных знаниях.
Изменить 2
относительно ответа Houcem на мой комментарий к его сообщению... что было бы родным LAMP-ответом ESB/Mule?
Изменить 3
Похоже, Tuxedo может быть альтернативой Mule/ESB на PHP. Кто-нибудь получил опыт использования этого инструмента?
Ответы
Ответ 1
ESB можно использовать по-разному:
-
Предоставление асинхронной обработки: Пример. Если у вас есть веб-сайт, который много пишет по электронной почте.. и отправка электронной почты занимает много времени, что может заблокировать выполнение вашей страницы: вы можете использовать ESB для отправьте данные электронной почты в Mule и направьте их на исходящий канал электронной почты, таким образом вы можете сказать, что вы внедрили очередь почтовых сообщений. Другая форма асинхронной обработки: использование mule для выполнения сценариев php (с использованием командной строки) неблокирующим способом.
-
Интеграция с java-приложениями: вы можете отправлять сообщения в mule с помощью php и реализовывать какой-либо java-бизнес, используя mule API в java, php-сообщения будут получены вашими бизнес-компонентами java. Это используется на больших веб-сайтах, которые выполняют много сложной обработки и нуждаются в гибком и мощном языке, таком как java.
Что вам нужно знать: ESB следует использовать как шину, что означает сбор данных из гетерогенных сред в стандартной форме (сообщения Mule).. выполнять бизнес-логику, а затем выводить данные (после маршрутизации) в другую среду
В PHP не существует встроенной php-интеграции с Mule. Для этого вы должны использовать веб-службы (SOAP)
Ответ 2
ESB (Enterprise Service Bus) является своего рода основой для интеграции нескольких гетерогенных приложений предприятия, которые могут исходить от разных поставщиков, технологий и даже быть избыточными.
Тот факт, что он, похоже, больше связан с миром Java, чем PHP или любой другой язык, состоит в том, что обычно используются информационные системы крупных компаний:
- Сочетание инструментов разработки и разработки программного обеспечения с открытым исходным кодом (включая ERP). Разработка часто выполняется с использованием Java EE, чтобы полагаться на стеки Java EE (и его поставщики IBM, Oracle,...)
- Полная версия Microsoft (нет необходимости в ESB, Microsoft предоставляет инструменты EAI/ESB)
PHP больше всего используется для веб-приложений (даже для крупных компаний, но ориентированных на веб-сайты).
ESB является большой стоимостью и полезен только при увеличении количества взаимосвязанных приложений.
Когда у вас есть только несколько подключений (между Java, PHP и т.д.), Вы можете обрабатывать его на сетевом уровне, используя DNS и на уровне приложений, используя ключи конфигурации, а также выполнять обмен протоколами и интеграцию малого бизнеса для каждого подключения к точке.
Потенциальным прецедентом для приложения PHP будет интернет-сайт туристического агентства, предлагающий несколько компаний полеты/поезде/гостиницам. И даже в таком случае не будет безумным разработать полную систему кросс-запросов, поскольку она является основой бизнеса для такого сайта/компании.
Ответ 3
ESB является общим решением проблемы масштабируемости; проблема в управлении накладными расходами, стоимости и сложности большого количества интерфейсов приложений. Я написал короткую статью о обосновании решений ESB/EAI на http://psicom.com.au/solutions/eai
По общему признанию, большинство сайтов PHP являются небольшими и обычно затрудняют обоснование административных и технологических накладных расходов ESB. Но теперь вполне возможно удовлетворить все потребности бизнес-приложений с помощью продуктов OSS PHP, а также усиливает давление на организации, поэтому я ожидаю, что будет увеличиваться количество магазинов PHP, которые начнут ощущать растущие боли о котором я писал. Это может заставить их переоценить проблемы интеграции приложений, и ESB является хорошим решением этой проблемы.
Насколько я знаю, в PHP нет продуктов ESB, и я не ожидаю увидеть это в ближайшем будущем. Но FWIW, многие продукты ESB обеспечивают привязки для PHP и других платформ OSS, поэтому платформа, на которой работает ESB, не имеет решающего значения.
Ответ 4
Я бы порекомендовал Windows Azure Service Bus, которая предоставляет PHP SDK здесь
https://github.com/WindowsAzure/azure-sdk-for-php
сервисная шина велик, но поддерживать ее не стоит. Служебная шина Windows Azure решила все ваши служебные накладные расходы, и она совместима с PHP. Вы даже можете общаться с приложениями, написанными на Java, С#, VS С++ из PHP легко.