問題タブ [distributed]

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 投票する
2 に答える
2423 参照

distributed - 同期の悪夢-IISなしで2つのSQLCEインスタンス間でマージレプリケーション(またはRDA)を使用することは可能ですか?

以下の同期を維持することを含む次の問題に直面しています。

  • 1集中型サーバー(IIS / MSSQL 2005)
  • ClickOnceによって配布される多くのデスクトップWPFクライアント
  • 多くのモバイルクライアント-(Windows CE)

代替テキストhttp://img502.imageshack.us/img502/8246/deployment.png

これらの厄介な制約がある場合:

  • すべての同期関係は双方向です
  • デスクトップとモバイルノードにはオフラインモードが必要です
  • モバイルノードは中央サーバーと同期できませんが、USB経由でデスクトップノードと同期します。デスクトップノードは、中央サーバーではなく、モバイルクライアントのサーバーとして機能します。次に、モバイルノードからの更新は、デスクトップと同期し、そのデスクトップを中央サーバーと同期することにより、中央サーバーに伝播する必要があります。 おい

不快な。

デスクトップとサーバーを同期するには、Merge Replicationを使用できることがわかっています。サーバーはプロバイダーであり、デスクトップはサブスクライバーです。しかし、モバイルノードとデスクトップノードの同期についてはどうでしょうか。どうやらデスクトップはSQLサーバー+ISSなしではパブリッシャーにはなれませんよね?MSSQLCEはデスクトップにのみ展開できます。

この場合でも、ノードはサブスクライバーとパブリッシャーの両方になることができますか?この配置はMergeReplicationアーキテクチャではサポートされていないようです。サポートされているモデルはハブアンドスポークだけのようです。

考えられる解決策としてRDAまたはマージレプリケーションを排除できるかどうかを判断しようとしています。そうであれば、おそらくMSSyncFrameworkを追求するでしょう。

おそらく、私たちが検討できる他のテクノロジーはありますか?

皆さんありがとう、

アシュリー

更新:MS Sync Frameworkを使い始めたばかりで、すばらしいです。

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

data-modeling - 分散データモデル

私はフィールドロボティクスで働いており、中央サーバーが車両の状態、環境の状態、タスク、タスクのグループ化などに関係するデータのヒープ全体を追跡しています。このデータのさまざまな部分を処理するプロセスと、特定の部分が変更されたときに更新する必要があるユーザーインターフェイスがあります。

私が欲しいのは、システムが中央サーバーに接続し、データの一部をサブスクライブする方法です。彼らはすべてのデータを彼らにパイプダウンし、変更が発生すると送信されます。さらに、特定の更新を統合できることを指定できるようにしたいと思います。車両が3回移動したが、接続されたUIの帯域幅が、最新の位置だけが送信されるよりも少ない場合です。

現在、クライアントサブスクリプションクエリを追跡し、それらに送信するデルタを計算するインメモリデータベースを考えています。データモデルを配布するためのより良い方法または既存のソリューションはありますか?

0 投票する
15 に答える
36580 参照

java - ディスクに保持できる memcached の代替

私は現在、Java アプリで memcached を使用していますが、全体的にうまく機能しています。

私にとって最も重要な memcached の機能は次のとおりです。

  • 読み取りと書き込みはメモリ内で行われ、ディスクに触れないため、高速です
  • それは単なるキー/値ストアです (それが私のアプリに必要なすべてであるため)
  • 配布されています
  • 各オブジェクトを 1 つのサーバー上に配置することで、メモリを効率的に使用します。
  • オブジェクトがデータベースからのものであるとは想定していません(私のオブジェクトはデータベースオブジェクトではないため)

ただし、me​​mcached ではできないことを 1 つ実行したいと考えています。定期的に (おそらく 1 日に 1 回) キャッシュの内容をディスクに保存したいと考えています。そして、保存したディスク イメージからキャッシュを復元できるようにしたいと考えています。

ディスク保存はそれほど複雑である必要はありません。保存中に新しいキー/値が追加された場合、それが保存に含まれているかどうかは気にしません。また、保存中に既存のキー/値が変更された場合、保存された値は古い値または新しい値のいずれかである必要がありますが、どちらでもかまいません。

私にとって重要な memcached 機能のすべて (またはかなりの割合) を備え、キャッシュ全体をディスクから保存および復元する機能を備えた別のキャッシング ソリューション (無料または商用) を推奨できる人はいますか?

0 投票する
0 に答える
637 参照

distributed - Microsoft Sync Framework (v2 CTP 2) を使用してクライアントの機密データを分割する方法は?

中央データベースは、ハブ & スポーク方式で同期されます。

クライアント データがそのクライアントにのみローカルにレプリケートされるように、データを分割できる必要があります。

誰もこの問題に直面しましたか?

MSF は同期スコープを提供します - テーブルの宣言は、filtercolumn とフィルター句を指定するオプションを使用して同期されますが、パラメーター (clientID など) をフィルターに渡す方法はないようです。

msdn ドキュメントの例を次に示します。

私たちの問題は、実行時パラメーターとして clientID を除外するフィルターが必要なことです。

これは MSF でサポートされていますか?

そうでない場合は、複数のスコープを宣言することでこれを実現できます。clientID を指定する filterclause を使用して、クライアントごとにスコープを宣言します。これには、新しいクライアントを作成するたびにサーバーを再プロビジョニングする必要があります....そうですか?

SqlSyncScopeProvisioning クラスを使用して、既存のスコープで既にプロビジョニングされているデータベースに新しいスコープを追加できるかどうかは誰にもわかりませんか?

MSF は複数のスコープをサポートするように設計されているようですが、SqlSyncScopeProvisioning クラスを使用してスコープを追加する方法がよくわかりません。

0 投票する
5 に答える
8102 参照

java - 単純な分散コンピューティング問題のためのJavaフレームワーク/ツール

数万人のクライアントの毎月の財務残高に関するデータを含むPDFファイルを生成します。ピーク時には(年末に100.000ファイル)、5台のサーバー間で負荷を分散してプロセスが完了するまでに5日ほどかかる場合があります。ワークロードの分散は手動プロセスです(たとえば、サーバー1はクライアント1から20.000のPDFを生成し、サーバー2は20.001から40.000のPDFを生成します)。

私たちはJavaを使用しているので、 BOINC(BOINCはJavaでコーディングされていません)と同様の方法でJavaツールまたはフレームワークを使用したいと思います。

  • サーバーがデータとコードをワーカーに自動的に配布し、それらを管理します
  • ワーカー(無料の(またはそうではない)CPUサイクルを使用するプレーンなデュアルコアデスクトップ)サーバーから送信されたコードを受信し、データを入力として使用して実行し、ステータスフィードバックを提供し、最後に出力で何かを実行します。PDFで生成されたファイルをネットワークストレージに送信します。

今のところ、GlobusToolkitなどの強力で強力なツールキットは試したくありません。

¿私たちのニーズに適したJavaフレームワーク/ツールを知っていますか?オープンソースがあればいいのですが、商用ソリューションを破棄することはありません。

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

.net - 応答をリッスンするためのポートを選択/ソケットを開いたままにしますか?

サーバーに接続して待機するために登録する必要があるクライアントアプリを持っています。つまり、サーバーが何らかの処理を完了したときに通知を受け取る必要があります。理想的には、このクライアントをできるだけシンプルに保ちたいのですが、問題は「待機登録」の方法です。ソケットを開いたままにしてブロッキング読み取りを実行すると、サーバーが完了するとすぐにクライアントにデータが送信され、完了です。残念ながら、これはサーバー上の 1 つのポートをかなりの時間ブロックします。

どのような代替手段がありますか? クライアント側でランダムなポートを選択し、そこで接続をリッスンすることもできますが、これには空いているランダムなポートを選択する必要があります-そして、C# でこれを最善の方法で行う方法がわかりませんか? サーバーへの送信中に使用されるローカルポートを確認し、これを再利用することを考えました。これを解決するための推奨される方法があるかどうか疑問に思います。終了から通知までの時間が長すぎてはならないため、クライアントからのポーリングは問題外です。

0 投票する
3 に答える
2072 参照

c# - オブジェクトのデルタを計算する

クライアントとサーバーがオブジェクト モデルを共有するアプリケーションに取り組んでおり、オブジェクト グラフがかなり大きくなる可能性があります。

オブジェクトをクライアントからサーバーに保存するには、理想的には、ネットワーク トラフィックを最小限に抑えるために、違いだけをネットワーク経由で送信したいと考えています。サーバー上の元のオブジェクト グラフを取得し、それにデルタを適用できます。

そこにツールやプロジェクトがあるかどうか、または誰かがそのようなことをした経験があるかどうか..

どうもありがとう

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

nhibernate - モノの分散キャッシング

Javaのテラコッタやインフィニスパンに似た、モノラルでの分散キャッシングソリューションを探しています。nhibernate のレベル 2 キャッシュとして使用したいと考えています。Velocity と sharedcache には mono サポートがなく、memcached には分散も高可用性もありません。

よろしく、 シルマック

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

msmq - MSMQ を使用して、同じドメインにないマシンにメッセージを送信できますか?

私は今まで MSMQ について十分に読んだり、使用したりしていません。何年もの間、私はそれらが存在することしか知りませんでした。したがって、私の質問がこの件に関する初歩的な知識の欠如を示している場合は、ご容赦ください。

マシン A からマシン B にメッセージを送信する必要があるが、それらが同じネットワーク上にない場合、メッセージ配信メカニズムとして MSMQ を使用できますか?

MSMQ のパブリック キューは、地理的に離れていても同じドメインにあるマシン間でのみメッセージを送信できると思います。

0 投票する
4 に答える
255 参照

tcp - 分散環境のオブザーバー

マシン A はマシン B にメッセージを送信する必要があります。マシン A には静的 IP がありますが、マシン B にはありません。

この問題を解決するために考えられる 1 つのオプションは、マシン B がマシン A への TCP 接続を開き、マシン A がデータ/メッセージをマシン B に送信することです。ただし、この解決策には次の制限があります。

a) マシン B のようにデータの送信先のマシンが多数ある場合、スケーラブルではありません。マシン A のリソースを奪う可能性があります。

b) 必要なときにデータを送信する必要があるのはマシン A です。マシン B は、そのデータがいつ存在するかを知りません。現在の設計では、マシン B は、データがあるかどうかを尋ねる TCP 接続を使用して、マシン A を繰り返しポーリングし続ける必要があります。多くのマシン B がある場合、これは高くつく可能性があります。

この問題を解決する安価な方法はありますか? オブザーバーのデザインパターンが思い浮かびます。マシン B は、マシン A からの通知にサブスクライブして、データが利用可能になったときに通知することができます。しかし、マシン B が静的 IP を持っていない場合、分散環境でパターンをどのように実装するのでしょうか?

オブザーバーはさておき、マシン A の raw ソケットを使用してそのデータをマシン B に送信する以外に、コストがかからない方法はありますか?