Я недавно сталкивался с этим постом и, будучи сотрудником 60East Technologies, почувствовал, что он заслуживает более полного ответа.
Если вы спрашиваете, с точки зрения «какой роли в архитектуре они служат", тогда вы правы: оба они относятся к широкой категории промежуточного программного обеспечения, ориентированного на сообщения.Это оба способа координации и обмена данными между процессами, основанные на концепции сообщений как единиц обмена данными.
JMS - это стандартный API для Java и один из наиболее популярных способов обработки сообщений.Существует несколько реализаций от нескольких поставщиков.Поскольку это стандарт, все они похожи по интерфейсу и имеют разные реализации.Продукты, поддерживающие JMS, могут также поддерживать стандарты проводов, такие как AMQP, чтобы обеспечить уровень взаимодействия для компонентов, которые не написаны на Java.
AMPS (усовершенствованная система обработки сообщений) немного менее широко известна.Это продукт для обмена сообщениями, разработанный 60East Technologies, Inc. Поскольку это продукт, а не стандарт, существует одна реализация.Это система на основе брокера, поэтому в AMPS весь трафик сообщений проходит через брокера.AMPS поддерживает несколько языков программирования (сейчас доступны клиенты для Java, C # /. Net, Python, JavaScript и C ++).AMPS поддерживает различные форматы полезных сообщений (FIX, JSON, XML, буферные протоколы, MessagePack и т. Д.).AMPS также поддерживает несколько различных стилей доставки сообщений: очереди сообщений (как это делает JMS), публикация и подписка с разветвлением, «запрос и подписка», когда приложение получает текущие значения для набора записей, а затем получает push-обновления, когда записиизменение и историческое воспроизведение («подписка на закладки»), которое точно воспроизводит поток сообщений любое количество раз.AMPS также предоставляет такие вещи, как встроенное преобразование / обогащение сообщений, возможность агрегировать сообщения и представления проектов (аналогично тому, как СУБД может проецировать представление базовой таблицы).
Изначально AMPS был разработан для очень высокой производительности.объемные приложения и приложения с низкой задержкой (такие как пересекающиеся механизмы / пересекающиеся сети в финансовом секторе)AMPS делает упор на производительность и дает представление о производительности по всей системе.То есть производительность рассматривается с того момента, когда производитель начинает отправлять сообщение в точку, в которой потребитель может воздействовать на сообщение, а не только в отношении времени в брокере.
Чтобы суммировать егоВверх: AMPS является продуктом, а не стандартом, поддерживает несколько языков программирования, предоставляет широкий спектр возможностей и выходит за пределы очередей сообщений, и разработан для очень высокой производительности
Ryan
60East Technologies