Был сегодня на девклубе где тема была - интеграция. Когда в рамках одной компании начинают использоваться софт от нескольких IT-компаний (что типично для выросших фирм), то возникает проблема интеграции этого разноплатформенного софта в обзоре общих бизнес-процессов фирмы.
Термины
Business process management - управление бизнес-процессов (логики и правил) с ориентацией на клиента, т.е. быстрое и гибкое, но со вмешательством человека
Enterprise Service Bus - общая шина для общения нескольких программ на разных серверах с разными протоколами (XML, SOAP)
Business process integration language (BPEL) - по сути тот же набор правил интеграции нескольких программ который работает без прямого вмешательства человека
Софт
FioranoMQ - сервер на основе JMS и визуальный постройщик потоков. Например если есть несколько работающих программ на разных серверах, то заплатив "всего 50 тыс $" можно добавить в визуальный редактор эти программы-серверы, между ними настроить связи и всё будет магически работать. Принцип ESB здесь подразумевает что эти все отдельные программы предоставляют лишь интерфейсы данных для Fiorano, который будет направлять их правильно друг с другом. В качестве проблем были отмечены баги, трудность масштабируемости и поддержки.
Apache Camel как я понял - более лёгкий способ интеграции нескольких интерфейсов чем JBI, основан на Spring платформе, внутри сообщения хранит в виде Java-объектов и достаточно легко может перекидывать данные с синтаксисом вида from(a).to(b);
Apache Servicemix - как раз основан на JBI. В отличие от Fiorano тут один формат шины к которому должны быть приведены все входящие данные (через компоненты - подобие драйверов со своими endpoint'ами). Внутри формат шины на самом деле в XML - WSDL 2 без некоторых параметров (binding'ов нет).