web-dev-qa-db-ja.com

Java SMPPライブラリの比較

SMPPを主要な統合交換チャネルとして使用する必要があるプロジェクトを開始しようとしています。 SMSは必ずしも私たちのビジネスの中核ではないので、Javaの場合、最も手間がかからないSMPPライブラリを使用したいと思います。実際のプロトコルに乗っているので、より洗練された能力が必要になることや、内部で微調整することはほとんどありません。

そのために、私は私たちが持っている可能なオプションのいくつかを候補リストに載せました:

  • LogicaのオープンSMPP
  • Apacheのラクダ
  • JSMPP
  • TwitterのCloudhopper

使用経験のある人は、自分の経験の一部を私のやり方で投げることができますか?

編集:ユースケースに範囲を与えるために、SMSの送信と受信の両方を行うので、ライブラリはクライアントアクションとサーバーリスナーの実装の両方で作業を楽にするはずです。

18
Michael

私は jsmppcloudhopper-smpp の両方を使用して、次のような状況でSMSを介してSMSを送受信するプロジェクトに使用しました。

  • 中〜多数のMOを受信します。
  • 多数のMTを送信します(最大70 /秒)。

どちらのライブラリも順調に進んでおり、IMO jsmppは、すぐに参加してコーディングを開始する方がユーザーフレンドリーです。しかし、githubの最新バージョンを使用しているときにいくつかのバグに遭遇しましたが、それはまだ修正されていません。

クラウドホッパーを使用した後は、jsmpp(主観的)と比較して少し急な学習曲線の価値があると思います。

14
Farhan

私が最終的に決定したこと(およびライブラリのレビュー方法)を更新しただけです。

  1. Logica:有望なようですが、コミュニティ全体の更新/アクティブ性の欠如が心配でした。最後の意味のあるビルドは何年も前だったので、私がしたかった投資ではありませんでした。

  2. Apache Camel:これを使い始めましたが、ライブラリにいくつかの制限がありました(SMPPパケットにカスタムヘッドを挿入する必要がありました)。公平を期すために、彼らはフォーラムの問題にかなり迅速に対応しましたが、ビルドサイクルは私のスプリントには少し時間がかかりすぎたので、これをスクラッチしました。

  3. JSMPP:これは私たちが最終的に使用したものです。全体的にはかなり単純でしたが、SMPP全般についてすでにかなり良いアイデアを持っていることを期待しているように感じました。物事はステージング中であるため、本番環境でどのように機能するかはわかりません。公開時に更新されます。

  4. Cloudhopper:正直なところ、これは私が使いたがっていたものでしたが、他のオタクと同じように、入手可能な最も光沢のある最新のおもちゃに飛び乗りたかったのです。オフからの質問に対しては十分な回答が得られなかったため、参加するのが不安でした。他のより文書化されたオプションが利用可能であったときに、コードを通り抜ける必要があるライブラリを採用する理由はありません。

7
Michael

私は現在、Logicaのライブラリを使用してJavaを介してSMPPソリューションを実装しています。非常に使いやすいです。次の情報は、テストの結果を示しています。

アプリケーション:Enterprise Java Glassfish3.1.2.2にデプロイされたBeansアプリケーション
言語:Java(JMSを使用)
ライブラリ:Logica SMPP(バージョン1.3)
オリジン(ESME):localhost
宛先(SMSC):開発サーバーのLogica SMSCシミュレーター(Amazon Web Servicesでホストされています)
タイプ:トランシーバー非同期
平均送信率(80%):246メッセージ/秒
送信率が低い(15%):50メッセージ/秒
高い送信率(5%):255メッセージ/秒

非同期モードに固執する限り、それは非常に効率的です。メッセージとその応答の間の相関関係を維持する必要がある場合は、メッセージと応答の両方にある「シーケンス番号」を使用してください。

5

私たちのSMSCはLogicaSMPP(v 1.3)で書かれていますが、それでもエンタープライズローディングで非常にうまく機能します。ライブラリに関しては、主にmessage_payloadに関する小さな問題がいくつかありましたが、正直なところ、他の問題は覚えていません。しかし、それはオープンソース製品であるため、修理は簡単です。

私は個人的にlogicaのソースを信頼していますが、小規模なクライアントにはjsmppを使用しています。 @Farhanはもう少しユーザーフレンドリーで、単純なクライアントの開発にかかる時間が短いことに同意します。

2
DenisD

私はjsmppと smppapi の両方を使用しましたが、当時(2010)jsmppには同期ブロッキングモードしかなかったため、後者の方がはるかに優れていることがわかりました-それがまだ当てはまるかどうかはわかりません。

接続していたSMPPサーバーでパフォーマンスの問題が発生し、通常よりも応答が遅くなると、jsmppのブロッキングの性質が大きな問題の原因になります。突然、すべてのスレッドが応答を待っていることに気付きました。 smppapiへの移行により、明らかに問題が解決しました。

2

私は実稼働プロジェクトにLogicaSMPPを使用しました。それはもはや積極的に維持されておらず、回避策を作成するか、実際に修正するためにコードベースをフォークする必要が生じたいくつかの固有のバグがあります。そうは言っても、APIは非常に安定していてパフォーマンスが高い(300msg/s)ことがわかりました。

JSMPPを簡単に見てみましたが、長い間問題リストに載っていたにもかかわらず、修正されていない欠陥が多数あるようですが、Logicaよりもはるかに優れたAPIを備えています。

より最新のスタイルでコーディングされているように見えるCloudhopperSMPPに出くわしたばかりですが、ここでもさらに多くの例が必要です。コードベースを雑用しなければならないのは魅力的ではありません。ただし、gituhubの例は改善されています。

1
Big Kahuna

Cloudhopperが最良の選択であり、ApacheのCamelも優れていますが、PDF、Salesforceなどへの多くのインターフェイスを備えた非常に大きなプロジェクトであり、必要ありません。他のプロジェクトは現在まで更新されていません。 CloudhopperはTelestaxによって保守されており、いくつかの便利な機能が追加されており、将来的に強力なサポートを提供するようです。

設定を簡単にするためのスタックは次のとおりですCloudhopper https://github.com/RestComm/smpp-extensions これがtelestaxによってフォークされたCloudhopperです(非常に最新): https://github.com/ RestComm/cloudhopper-smpp テレコム分野で働いているJainSleeリソースアダプターも https://github.com/RestComm/jain-slee.smpp

0
huu nhan Tran