#php #soap #drools
#php #soap #drools
Вопрос:
С одной стороны, у меня есть PHP-приложение, которое моя компания решила внедрить. Мы уже внедрили механизм правил (Drools) для нашего Java-приложения. Все выполняется через платформу промежуточного программного обеспечения с помощью обмена сообщениями SOAP. Я знаю, что нам придется создать кучу пользовательских классов для нашего PHP-приложения, чтобы обрабатывать ситуации, которые могут быть обработаны с помощью механизма правил.
Как мне интегрировать Drools с нашим PHP-приложением? Должен ли я просто придерживаться обмена сообщениями SOAP из приложения PHP через наш ESB в механизм правил и обратно?
Ответ №1:
Старайтесь не добавлять больше движущихся частей в и без того сложную систему. Я бы порекомендовал вам следовать своему инстинкту и отправлять данные для обработки в Java-приложение через SOAP. Таким образом, вы можете объединить свою бизнес-логику в одной области и повторно использовать ее в нескольких местах. Это действительно сила распределенных систем.
Ответ №2:
Вы могли бы вызвать Java-часть с Java Native Interface (JNI) из PHP. Часть Java будет иметь открытый интерфейс, который принимает вызовы с PHP, обрабатывает информацию через Drools, а затем возвращает anser в PHP. Делая это, вам не нужно изменять текущее Java-приложение, вам просто нужно указать точку входа из PHP.
Начните с простого! Просто отправив несколько примитивных типов (чисел) и извлекая их. Затем строки и так далее, и, наконец, передача нескольких параметров и сложных объектов.
Существует проект, который помогает сделать мост между PHP и Java: http://php-java-bridge.sourceforge.net/pjb /
В документации PHP говорится о собственных вызовах Java: http://www.php.net/manual/en/book.java.php
Ответ №3:
С уже установленным ESB и тем фактом, что вы уже собираетесь использовать SOAP для устранения языковых барьеров, вам следует просто пройти ESB.
Не связывайте ваше приложение, когда уже есть ESB, а в ESB есть модули BPM, которые могут быть конечными точками.
В PHP есть клиенты AMQP и Stomp для интеграции сообщений, или вы, конечно, можете использовать SOAP для службы.
В идеале, ваше Java-приложение, если оно в настоящее время подключено к движку правил, также будет использовать для этого сервис через ESB. Тогда и PHP-приложение, и Java получат доступ к одному и тому же движку правил. Правила, конечно, будут разделяться и управляться централизованно. В худшем случае вам может понадобиться Java-компонент или преобразователь сообщений между запросом PHP и ответом механизма правил.
Что касается сложности ESB, если в вашей компании он уже есть, этого требует сложность организации. Используйте инструмент для разделения систем и управления компонентами.
Смотрите Эти ссылки для примеров: