Сравнение библиотеки Java SMPP

Мы собираемся начать проект, который требует использования SMPP в качестве основного канала обмена интеграцией. Теперь, поскольку SMS не обязательно является основным для нашего бизнеса, я бы хотел использовать библиотеку SMPP для Java, которая будет наименее сложной. Помимо верховой езды по фактическому протоколу, маловероятно, что нам понадобятся фантастические способности или когда-нибудь подстройте под капотом.

С этой целью я кратко изложил некоторые из возможных вариантов, которые у нас есть:

  • Logica Open SMPP
  • Apache Camel
  • JSMPP
  • Twitter Cloudhopper

Может ли кто-то, кто более опытен в своих целях, бросить некоторые из своих переживаний на моем пути?

EDIT: просто для того, чтобы предоставить возможности для использования, мы будем отправлять и получать SMS-сообщения, чтобы библиотека, надеюсь, облегчила жизнь как с действием клиента, так и с реализацией сервера.

7 ответов

Я использовал jsmpp и cloudhopper-smpp для отдельных проектов, которые включали отправку и получение SMS-сообщений по smpp в обстоятельствах, которые касались:

  • Получение среднего количества MO.
  • Отправка большого количества MT (до 70 секунд).

Обе библиотеки хорошо справились, и IMO jsmpp более удобен для перехода и начала кодирования сразу. Но я столкнулся с несколькими ошибками, используя последнюю версию github, которая по-прежнему остается незафиксированной.

После использования cloudhopper, я считаю, что это хорошо стоит кривой обучения, которая является крутой бит по сравнению с jsmpp (субъективным).


Просто обновлено до того, что я наконец решил (и как просмотрели библиотеки):

  • Logica: Кажется перспективным, но я был обеспокоен отсутствием обновлений/активности сообщества в целом. Последняя значимая сборка была ***** ago, поэтому я не хотел инвестировать в нее.

  • Apache Camel: мы начали использовать это, но были некоторые ограничения для их библиотеки (нам нужно было вставлять пользовательские главы в наши пакеты SMPP). Справедливости ради следует сказать, что они довольно оперативно реагировали на вопросы на своих форумах, но их цикл сборки занимал слишком много времени для моих спринтов, поэтому мы поцарапали это.

  • JSMPP: Это тот, который мы использовали. Было довольно просто, что ему казалось, что у вас уже есть неплохая идея SMPP в целом. Вещи находятся в стадии постановки, поэтому я не могу рассказать вам, как он работает при рабочей нагрузке. Будет обновляться, когда он будет жить.

  • Cloudhopper: Честно говоря, это был тот, который я очень хотел использовать, но больше, потому что, как любой выродка, я хотел прыгнуть на самую свежую новейшую игрушку. Я действительно не получал адекватных ответов на любые запросы, сделанные нами, поэтому было опасно попасть на борт. Нет причин принимать библиотеку, которая потребует от меня пробраться через их коды, когда будут доступны другие более документированные параметры.


В настоящее время я реализую решение SMPP по Java, используя библиотеку Logica. Он очень прост в использовании. В следующей информации указывается результат тестов:

Приложение: Enterprise Java Beans Приложение, развернутое в Glassfish 3.1.2.2 Язык: Java (с использованием JMS) Библиотека: Logica SMPP (версия 1.3) Происхождение (ESME): localhost Назначение (SMSC): симулятор Logica SMSC на сервере разработки (размещен на веб-сервисах Amazon) Тип: Транссибирский асинхронный Средняя скорость передачи (80%): 246 msg/sec Низкая скорость передачи (15%): 50 msg/sec Высокая скорость передачи (5%): 255 msg/sec

Это очень эффективно, если вы придерживаетесь асинхронного режима. Если вам необходимо поддерживать корреляцию между сообщением и его ответом, используйте "порядковый номер", который как в сообщении, так и в ответе.


Наш SMSC был написан на Logica SMPP (v 1.3), он по-прежнему отлично работает с корпоративными нагрузками. В библиотеке было всего несколько небольших вопросов, главным образом с message_payload, честно говоря, я не помню других проблем. Но это легко восстановить, потому что это продукт с открытым исходным кодом.

Хотя я лично доверяю источникам логики, для маленьких клиентов я использую jsmpp. Я согласен с @Farhan, что он немного более дружелюбен, а разработка простого клиента занимает меньше времени.


Я использовал jsmpp и smppapi и нашел последнее намного лучше, потому что в то время jsmpp имел только синхронный режим блокировки (2010 ) - не уверен, что это еще так.

Блокирующий характер jsmpp становится источником больших проблем, когда сервер SMPP, с которым я подключался, испытывал некоторые проблемы с производительностью и реагировал медленнее, чем обычно. Внезапно я обнаружил, что все мои потоки ждут ответов. Очевидно, что миграция в smppapi решила проблемы.


Я использовал Logica SMPP для производственного проекта. Он не активно поддерживается, и есть несколько встроенных ошибок, которые привели к необходимости создавать обходные пути или фактически разблокировать исправление кода. Сказав это, я нашел API очень стабильным и эффективным (300 мс/с).

Я кратко рассмотрел JSMPP, и у него гораздо более удобный API, чем Logica, хотя, похоже, большое количество дефектов не было исправлено, несмотря на то, что в списке проблем уже давно существует.

Просто наткнулся на Cloudhopper SMPP, который, кажется, был закодирован в более современном стиле, но опять же ему нужно больше примеров. Принуждение к работе с кодовой базой не привлекательно. Однако примеры gituhub улучшаются.


Cloudhopper - лучший выбор, Apache Camel также хорош, но это очень большой проект, который имеет много интерфейсов для pdf, salesforce...., которые вам не нужны. Другой проект не обновляется до настоящего времени. Cloudhopper поддерживает Telestax, и они добавляют некоторые полезные функции и выглядят так, как будто они будут поддерживать его в будущем

Здесь стеки для упрощения конфигурации Cloudhopper https://github.com/RestComm/smpp-extensions Здесь вилка Cloudhopper по telestax (очень актуально): https://github.com/RestComm/cloudhopper-smpp Также JainSlee Resource Adapter для тех, кто работает в телекоммуникационном поле https://github.com/RestComm/jain-slee.smpp

licensed under cc by-sa 3.0 with attribution.