PHP и ESB (с Mule) (ESB: Enterprise Service Bus) - PullRequest
11 голосов
/ 12 мая 2011

Где, когда и почему вы использовали ESB в PHP-проекте?

Где, когда и почему вы думаете, что имеет смысл использовать ESB в PHP-проекте?

Предоставляет ли ESB (и ESB-фасилитаторы, такие как Mule) какие-либо возможности, которых нет у PHP и нет родных LAMP-технологий?

Редактировать

Моя мотивация на этот вопрос:исходя из моего предположения, что тебе на самом деле никогда не нужен Мул.Мул облегчит связь с внешними сервисами, с которыми вы могли бы работать без мулов.В конце дня Мул также создаст затраты и накладные расходы.Поэтому мой вопрос сводится к тому, чтобы кто-то рассказал мне о сценариях, в которых вы действительно выигрываете от ESB и таких инструментов, как Mule, или подкрепите мое предположение глубокими знаниями.

Edit 2

Относительно ответа Houcem на мой комментарий к его сообщению ... каким будет LAMP-ответ для ESB / Mule?

Edit 3

Похоже на Tuxedo может быть более естественной PHP-альтернативой Mule / ESB.У кого-нибудь есть опыт использования этого инструмента?

Ответы [ 4 ]

3 голосов
/ 19 мая 2011

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 голосов
/ 15 мая 2012

ESB - это общее решение проблемы масштабируемости; проблема в управлении накладными расходами, стоимостью и сложностью большого количества интерфейсов приложений. Я написал небольшую статью об обосновании решений ESB / EAI на http://psicom.com.au/solutions/eai

По общему признанию, большинство сайтов PHP являются небольшими и обычно затрудняют обоснование административных и технологических издержек ESB. Но теперь вполне возможно удовлетворить все потребности бизнес-приложений с помощью продуктов OSS PHP, а также на растущую нагрузку на организации, поэтому я ожидаю, что будет все больше магазинов PHP, которые начнут испытывать трудности роста о котором я писал. Это может заставить их пересмотреть свои проблемы интеграции приложений, и ESB является хорошим решением этой проблемы.

Насколько я знаю, в PHP нет продуктов ESB, и я не ожидаю увидеть это в ближайшем будущем. Но, FWIW, многие продукты ESB предоставляют привязки для PHP и других платформ OSS, поэтому платформа, на которой работает ESB, не имеет решающего значения.

2 голосов
/ 16 марта 2013

Я бы порекомендовал Windows Azure Service Bus, которая предоставляет PHP SDK здесь https://github.com/WindowsAzure/azure-sdk-for-php

служебная шина - это здорово, но поддерживать ее нельзя.Windows Azure Service Bus решила для вас все накладные расходы, и она совместима с PHP.Вы даже можете легко общаться с приложениями, написанными на Java, C #, VS C ++ из PHP.

2 голосов
/ 17 мая 2011

ESB можно использовать по-разному:

  • Предоставление асинхронной обработки: Пример: если у вас есть веб-сайт, который выполняет много электронных писем ... и отправка электронного письма занимает много времени, что может заблокировать выполнение вашей страницы: вы можете использовать ESB для отправьте данные электронной почты в Mule и направьте их на исходящий канал электронной почты. Таким образом, вы можете сказать, что реализовали очередь почтовых сообщений. Другая форма асинхронной обработки: использование mule для выполнения сценариев php (с использованием командной строки) неблокирующим способом.

  • Интеграция с Java-приложениями. Вы можете отправлять сообщения на mule, используя php, и реализовывать некоторые java-приложения, используя mule API в java, сообщения php будут приниматься вашими бизнес-компонентами java. Это используется на больших веб-сайтах, которые выполняют много сложной обработки и нуждаются в гибком и мощном языке, таком как java.

Что вам нужно знать: ESB следует использовать как шину, что означает сбор данных из разнородных сред в стандартной форме (сообщения Mule) .. выполнять бизнес-логику и затем выводить данные (после маршрутизации) в другую среду

В мире PHP нет встроенной интеграции php с Mule. Для этого следует использовать веб-сервисы (SOAP)

...