Tibco EMS против MSMQ против MQ
Не смог найти ответ на этот вопрос, поэтому хотел бы инициировать это:
Tibco EMS против MSMQ против MQ.
Как эти 3 технологии сравниваются? Какой из них лучше и в каких сценариях? В частности, я думаю использовать один из них в среде SOA (.NET + WCF), где сценарий будет развиваться со временем.
У меня есть еще один особый интерес к производительности, о котором важно упомянуть. Таким образом, если предоставляется выбор, производительность имеет решающее значение.
Я был бы признателен иметь таблицу сравнения для четкой картины.
Спасибо!
РЕДАКТИРОВАТЬ:
Я сосредоточен на двух параметрах: производительность и масштабируемость.Масштабируемость - как эти технологии сравниваются по количеству поддерживаемых одновременных пользователей? который может поддерживать больше пользователей? Сценарий не имеет значения, давайте выберем сценарий, который поддерживается всеми ими - например, простые очереди.Производительность - в точно таких же сценариях, которая работает быстрее?
4 ответа
Если вы хотите использовать WCF, то ни один из них не имеет значения. Большинство из них вы получите только тогда, когда будете использовать их прямой API.
MSMQ - технология MS, устанавливаемая при каждой установке Windows. Это только транспортная технология с поддержкой очередей.
Tibco EMS - технология Tibco, поддерживающая как очереди, так и темы (публикация / подписка). Это дорого и больше подходит для корпоративных сценариев. Скорее всего, вам понадобятся другие инструменты и технологии Tibco для реализации полного SOA-решения (пакет продуктов Tibco ActiveMatrix). .NET и WCF будут только приложениями, подключенными к этой инфраструктуре, которая больше предназначена для мира Java. Он также работает на платформах, отличных от Windows, и вместе с Tibco Business Works предлагает разъемы (адаптеры) для многих LOB-приложений. Мне нравятся API для продуктов Tibco, но я действительно не люблю интерфейсы их инструментов.
IBM MQ - технология, поддерживающая очереди IBM, которая также эмулирует темы (публикация / подписка). Опять же, это дорогое коммерческое решение, более подходящее для корпоративных сценариев, где задействованы мэйнфреймы - это самое большое преимущество MQ - оно работает "везде". Но это конец преимуществ. API для Java и.NET ужасны. .NET API полон ошибок и работает не так, как ожидалось. IBM не понимает версионность библиотек.NET, что приводит к ужасным проблемам при переносе клиентского приложения на компьютеры с установленными различными клиентами MQ и т. Д.
Редактировать:
Было несколько вопросов / комментариев о проблемах MQ? В качестве нескольких примеров вы можете проверить мои вопросы MQ. Не каждый вопрос на самом деле является проблемой, но вы найдете несколько из них, указывающих непосредственно на ошибки. Эти проблемы уже могут быть исправлены в новых версиях клиента MQ, но это не значит, что других нет. Вообще я нашел MQ .NET API самой разочаровывающей библиотекой, которую я когда-либо использовал - она даже превосходила ненавистную SharePoint.
С другой стороны, если вам просто нужно отправить и получить какое-то сообщение и не планируете делать что-то особенное или использовать низкоуровневые функции, у вас должно быть все в порядке. В конце API используется некоторое время, и обычные варианты использования должны работать - если вы не достаточно счастливы, чтобы столкнуться с ошибками регрессии.
Для простого сценария интеграции, то есть двух приложений, взаимодействующих по принципу "точка-точка", никакой разницы не будет. Вам лучше проверить поддержку каждой технологии в ваших приложениях. И в таких сценариях вы не должны беспокоиться о производительности, так как время обмена сообщениями не должно быть главной проблемой. С другой стороны, реальный выбор будет основан на целевой модели для интеграции всего вашего предприятия. Например, - выполняете ли вы какие-либо посреднические функции - например, преобразование данных, отображение протокола... и т. Д. - Будете ли вы интегрировать системы в режиме "точка-точка" или вы можете подумать о наличии концентратора / ESB? - Будете ли вы освещать аспекты безопасности в вашем сценарии интеграции (авторизация, аутентификация, аудит, шифрование, обмен сертификатами и т. Д.) Наконец, такое видение даст лучшее понимание того, какие реальные ограничения существуют для вашего дизайна. Лично я бы пошел на WCF, только если не ожидаю сложных сценариев интеграции и не буду тратить деньги на решение. И я бы пошел в IBM, если бы строил фундамент для SOA. И отправлюсь в Tibco, если я планирую интеграцию на основе Java с определенной областью.
Опять же, это дорогое коммерческое решение, более подходящее для корпоративных сценариев, где задействованы мэйнфреймы.
Не уверен, почему вы упомянули мейнфреймы. У многих корпоративных клиентов MQ их нет.
IBM MQ - технологии, поддерживающие очереди IBM, которые также эмулируют темы (публикация / подписка)
MQ v7.0.0 (выпущен в 2008 году) и далее поддерживает темы публикаций / подпрограмм как встроенную функцию, эмуляция не задействована.
API для Java и.NET ужасны.
Классы MQ для Java и JMS развивались более 10 лет и активно используются тысячами предприятий.
.NET API полон ошибок и работает не так, как ожидалось.
.Net API существует уже более 7 лет в нескольких основных выпусках MQ. Я полагаю, что очевидные ошибки уже были бы устранены.
Я сосредоточен на двух параметрах: производительность и масштабируемость.
MQ имеет неограниченную масштабируемость. Производительность очень хорошая, даже без тюнинга.
MQ лучше всего, если вам нужно интегрироваться с большим количеством мэйнфреймов. Pub/Sub реализован плохо, а многие API "странны в использовании".
Если все ваши приложения - Windows, MSMQ может быть хорошим выбором, но будет сложно соединиться с мирами Unix или Java.
Все сообщество Java стандартизировано на JMS, поэтому TIBCO EMS - хороший выбор, если вы когда-нибудь захотите подключить приложения, отличные от Windows.