14

Cloud Java アプリケーションに通知システムを実装するよう依頼されました。前提として、アプリケーションの管理者またはコンポーネントは、個々のユーザーに特定のメッセージを送信するか、すべてのユーザーにアナウンスをブロードキャストできます。

通知は、重大度、タイプ (停止、新しいサービスなど)、および対応するコンポーネントによって分類されます。

ユーザーは、関心のあるタイプとコンポーネントを選択し、それらの通知を受け取る方法 (電子メール、ダッシュボードに表示されるだけ、SMS など) を選択できます。ユーザーは通知を承認または削除できるため、そのユーザーには表示されなくなります。

これを最初から実装するのは興味深いと思いますが、既存のシステム、Apache プロジェクト、商用プロジェクトなどでこれを実行し、車輪を再発明する必要がないように感じます。

私の質問は次のとおりです。既存のアプリケーションに統合でき、すべてのバックエンドを自動的に処理できる通知追跡用のフレームワークを推奨できる人はいますか? ライセンス条件が商用に適している限り、商用またはオープン ソースは問題ありません (GPL または LGPL は使用しないでください)。

4

2 に答える 2

17

あなたが探しているのは、 Amazon Simple Notification Service (SNS)に似たものだと思います。しかし、最初にいくつかのことをまっすぐに設定しましょう。

  • メール/SMSを送信しようとしています-フレームワーク/ライブラリだけでなく、両方ともInfrastructureが必要です。あなたのクライアント (またはそのクライアント) はどこかで実行されている電子メール サーバーを持っていると思いますので、直接的なコストの影響はありません。ただし、SMS を送信すると、インフラストラクチャのオーバーヘッドが発生します。
  • すぐに使えるソリューションはありません。インフラストラクチャを追加することになるため、少なくともこのインフラストラクチャとの適切なレベルの統合を作成することになります。

これらすべてを念頭に置いて、難易度順にリストされたオプションを以下に示します。

  • アマゾンSNSを利用する
  • Cloud Message Bus (CMB)を使用します。これは、Amazon SNS のオープンソース クローンです。Amazon SNS と同じ API 形式なので、Amazon SNS と同じように使用できます。
  • さまざまな電子メール/SMS コンポーネントでApache Camelを使用します。Apache Camel は、エンタープライズ ルーティング フレームワークです。開発者がメッセージをプッシュできるメッセージ キューがあり、これらのメッセージを取得して別の場所に送信するさまざまなルーターがあります。すぐに使用できる電子メール/ SMSを送信するためのルーターがあります。まず、メッセージを投稿するトピックを作成します。次に、ユーザーが電子メール通知に登録するときに、電子メール エンドポイントを追加します。彼/彼女のために。そして、彼らが電子メールをオプトアウトすると、そのエンドポイントが削除されます。基本的には、独自のソリューションの設計に非常に近いものです。ただし、SMS/E メールを送信するためのコードを記述する必要はなく、それを行うためのすぐに使用できるコンポーネントがあり、それらを追加するための統合コードを記述するだけで済みます。ユーザーが通知をサブスクライブするときのエンドポイント。
  • 自分で巻いてください。あなたのソリューションは、Apache Camel アプローチと非常によく似たものになります。メッセージキューがあり、トピックとリスナーがあります。ただし、すべての電子メール/SMS を送信するための独自のコードを作成する必要があります。

編集:マイナーな説明

于 2013-06-04T18:14:38.540 に答える
1

あなたの要件は、ブラウザベースの Web アプリケーションのライブデータのようなものです。それが正しければ、HTML 5 API の一部、特に Web ソケットで大きな進歩がありました。

Websocket は、クライアントとサーバー間の双方向チャネル通信を可能にする HTTP プロトコルの拡張です。ただし、欠点があります。信じられないかもしれませんが、ブラウザのサポートはまだかなり不足しており、http プロキシが実際に使用されていると複雑な問題が発生します。

通常、広く受け入れられているサポートの欠如を回避するために、本当に有望と思われるかなりの数の JavaScript/サーバー側フレームワークが表面化しています。これらのフレームワークは通常、Websocket がサポートされていない場合にフォールバック サポートを処理します。一部のフォールバック テクノロジには、サーバー送信イベント、jsonp、ロング ポーリング、ショート ポーリングなどがあります。

2 つの優れたオープンソース プロジェクトが思い浮かびます。

1)。雰囲気: https://github.com/Atmosphere/atmosphere

2)。ソケット io - http://socket.io/

于 2013-06-04T16:15:54.160 に答える