問題タブ [publish-subscribe]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
139 参照

networking - 分離された低遅延の通信メカニズム

分離された(送信者と受信者がお互いを知らない/気にしない)メッセージトランスポートの経験があり、分散およびおそらくリモートの相互作用イベントの待ち時間が短い人はいますか? それらは存在しますか?

私は、デバイスが接続されている同じシステムに存在する場合と存在しない場合があるソフトウェアを制御する、有形の相互作用デバイス (つまり、物理的なボタン、ノブ、スライダー、RFID センサー/アクチュエーター) の相互作用技術を研究/開発しています。

一般に、ある種の pub/sub アプローチは、私が行きたい方法です。なぜなら、各エンティティには、それが生成するイベントとそれ自体の機能だけに関心を持たせたいからです。言うまでもなく、デバイスは不定に接続および切断される可能性があります。

この分野で人気のあるテクノロジーの 1 つにEventHeapがあります。これは、IBM のタプル スペースの実装であるTSpacesに基づいて構築されています。イベントをバッグに押し込み、それを引き出すことができます。しかし、タプル スペースの実装の一般的なパフォーマンスの制限は、高い待機時間です。レイテンシーは時々ぎくしゃくしたり、決定論的ではありません。これは、きめの細かい相互作用には受け入れられません。

EventHeap ソース

0 投票する
8 に答える
3566 参照

linux - D-Bus のようなものを複数の Linux マシンで (おそらくファイアウォールを介して) 動作させるには、どのような良い方法がありますか?

D-Bus 仕様によると、

D-Bus は、アプリケーションが互いに通信するための簡単な方法です...現在、通信するアプリケーションは 1 台のコンピューター上にあります...

D-Bus のようなものが欲しいのですが、複数の Linux マシンで動作するようにしたいのですが、ファイアウォールが関係している可能性があります。たとえば、メール サーバーが重要なメッセージを受信したと判断した場合、自宅のコンピューターが認識できるバスにイベントを投稿し、linpopupウィンドウを起動して応答できるようにしたいと考えています。

私が興味を持っているイベントは比較的まれなので、低パフォーマンスの手法で問題ありません。しかし、車輪の再発明はしたくありません。また、可能な限りシェル スクリプトやその他の高水準言語で記述し、C で記述することはできるだけ少なくしたいと考えています (ただし、それが必要な場合は、C API を呼び出しても構わないと思っています)。

私が D-Bus の公式 Web ページを解釈すると、D-Bus が複数のコンピュータと通信できるようになればいいのですが、うまくいきません

編集:D-Busについて私にとって魅力的なのは、公開と購読のモデルです:

  • 興味深いイベントを観察するマシンは、そのイベントを「システム」に公開します。

  • 特定のイベントに関心のあるマシンは、それらのイベントのみをサブスクライブします。イベントが発生すると、「システム」がマシンに知らせます。

D-Bus では、「システム」は単一のマシンです。複数のマシンで同様のものが必要です。これにより、マシン間の TCP や SMTP 通信などの直接的なソリューションが除外されます。しかし、すべての出版と購読のリクエストを受け取る中央サーバーがあることをうれしく思います。Advanced Message Queuing Protocol (AMQCP)を理解するよりも、独自のプロトコルを作成する方が簡単だと思い始めています。

パフォーマンスは問題ありません。シンプルさは間違いなくオブジェクトです。

もう一度: どのソフトウェアを見ればよいですか?

0 投票する
9 に答える
8908 参照

soa - 最優秀パブリッシュ/サブスクライブ「ミドルウェア」

私は、優れたオープン ソース ネットワーク ベースの Pub/Sub (オブザーバー パターン) ライブラリを探しています。気に入ったものが見つかりませんでした:

  • JMS - Java に関連付けられており、メッセージの内容をダム バイナリ BLOB として扱います

  • NDDS - $$、IDL の使用

  • CORBA/ICE - Pub/Sub は RPC の上に構築され、CORBA API は直感的ではありません

  • JBOSS/ESB - あまり詳しくない

そのようなパッケージが次のことができればいいのですが:

  • ネットワークベース

  • ペイロード データを認識しているため、ユーザーはエンディアン/シリアライゼーションの問題を心配する必要はありません。

  • 多言語サポート (C++、ruby、Java、python がいいでしょう)

  • 自動生成コードなし (IDL なし!)

  • 直感的なサブスクリプション/トピック管理

楽しみのために、私は自分自身を作成し​​ました。考え?

0 投票する
1 に答える
1405 参照

nservicebus - nServiceBus で複数のパブリッシャーからのメッセージをサブスクライブする

パブリッシャーのエンドポイントを指定せずに nServiceBus を使用して、タイプのすべてのメッセージをサブスクライブできるかどうか疑問に思います。

この背景には、nServiceBus のディストリビューター インフラストラクチャを使用して、ネットワーク上の分散ワーカーにサブの問題を委任する分散アルゴリズムがあります。

タスクが終了したら、ワーカーは送信者に通知するメッセージを送信する必要があります。

IBus.Reply() を使用して通知することもできますが、これらのメッセージにも関心のあるいくつかの監視およびログ サービスもあります。受信したすべての返信を送信者に再公開させるのは正しくないように思えます。

nServiceBus で複数のパブリッシャーからのメッセージを購読できますか?

0 投票する
1 に答える
1218 参照

xmpp - XMPP PubSub 通知は同時にブロードキャストされますか、それともキューのようになりますか?

xmpp パブリッシュ/サブスクライブ機能がすべてのサブスクライバーに同時に通知を送信するか (ブロードキャスト)、またはキューで通知を 1 つずつ送信するかを知りたいです。

jaxl は一度に 1 人のユーザーのキューにプッシュ メッセージを送信するため、私が使用している pub-sub クラスと jaxl クラスの違いを知りたいです。

0 投票する
2 に答える
1256 参照

c# - C# - パブリッシャー サブスクライバーはこれを解決しますか?

緊急チケットを提供する科学者 (医療) のさまざまなグループがあるとします。共通プール (グループ) に緊急チケットが届いた場合、いつでも 1 人の科学者だけがチケットを受け取ることができますが、他の科学者には、この特定の人がチケットを処理していることを自動的に通知することができます。

注 : 1 人の担当者が、締め切りが異なる複数のチケットに取り組むことができます。

チケットが複雑すぎて解決できない場合は、チケットを受け取った人が同じグループまたは別のグループの他の人に渡すことができます。そのような場合、そのような引き渡しの理由は、他の人に直ちに伝播されるべきです。

極端に必要な場合は、単一チケットのタスクを分解してグループ間で分散できます。タスクが分割され、単一のチケットのグループ間で共有されている場合、チケットを共有している担当者は、新しいチケットを取得したり、他の既存のチケットで作業したりすることはできません (そうすることで、彼は共有に取り組んでいることが通知されます)チケット)。


私の質問は次のとおり
です。Observer パターンはサービスに通知するための最良の選択ですか、それともスムーズに処理するために他の設計パターンを使用できますか (自由にデッドロックします)。

0 投票する
2 に答える
457 参照

ruby - Ruby のブログ用の PubSubHubbub (Merb)

私は自分のブログを書いています(誰もがそうすべきです、それは良い経験です)。私は Atom フィードと RSS フィードを実装しており、多くのリーダーに使用されています。それらの読者のほとんどは Google Reader を使用しており、Google Reader は現在、私のサイトを定期的にポーリングして更新を求めています。

ここに記載されているように、パブリッシュ サブスクライブ (PubSubHubbub) オプションをセットアップしたいと思います。また、独自のハブとして機能したいと考えています。これは、別のものを維持したり、3 番目のものに依存したりするのではなく、アプリにハブ プロトコルを統合したものです。パーティ。

私の質問は次のとおりです。

  1. これを行うと、どのフィード読み取りサービスがポーリングに優先してこのプロトコルを使用しますか?
  2. これを起動して実行するには、自分の側で何を実装する必要がありますか?