2013-06-28 5 views
6

これはMeteorのアーキテクチャに非常に精通している人のための質問です。アプリを別々のインスタンスに透過的に分離する流星スマートパッケージを設計するにはどうすればよいですか?

私は、Meteorアプリケーションの複数の「コピー」を透過的に実行できるスマートパッケージを設計しようとしています。つまり、既存のMeteorアプリケーションといくつかの事前定義されたユーザーグループがある場合、パッケージは半自動的にアプリケーションを「分離」することができます。つまり、ユーザーグループごとにという形で実行します。アプリ

この機能は、どのアプリケーションにも合わせてカスタム設計できます。しかし、私はスマートパッケージがMeteorのCollectionの使用を考慮して、既存のアプリケーションの上にこの機能を提供する最も簡単な方法を探しています。したがって、以下を多かれ少なかれ満たす必要があります:

  • これは、通常の流星アプリと同じくらい効率的でなければなりません。
  • このシステムを使用するために既存のMeteorアプリケーションを変換するには、最小限のコード変更が必要です。
  • パッケージは、メテオを変更またはオーバーライドする必要はなく、比較的将来の保証が必要です。ここで

は、私はこの問題のことについて考えてきたいくつかのアプローチとそれに対応する欠点がある:すべてのコレクションの正規流星アプリの

  • 使用、およびグループを表す追加のIDを持つ各文書にタグを付けること各ユーザーのパブリケーション/サブスクリプションは、同じグループIDを持つドキュメントのみをプルします。
  • Meteor.Collectionをオーバーライドして(または同じインターフェイスを実装して)、これらの異なるグループを認識させ、クライアントの観点からは、現在のユーザーのグループがアプリ全体であるかのように動作します。

私は実際に流星のシステムを知っている人から良いアイデアを探しています。 Meteorアプリケーションの大部分を簡単に変換して(つまり、非常に脆いクレイジーハックを避ける)、Meteorの上に実装するのは簡単で効率的な方法で、この機能を設計するにはどうすればよいですか?

(あなたがNYCエリアで流星の第一人者であれば、私はこれを議論する夕食にあなたを取るために幸せになる!)

+0

あなたはこの質問への良い答えを見つけたことがありますか?あるいは実際にそれらを試したことさえあるでしょうか? – tuomassalo

+1

@tuomassalo私は自分自身を構築しています。今後数ヶ月にわたって機能がさらに充実していく実装については、https://github.com/HarvardEconCS/turkserver-meteorを参照してください。 –

答えて

6

私はこの問題に私の仕事を取り、にそれを引き抜いてきました流星スマートパッケージ。私の質問で私が指摘したすべての要件を満たしています。詳細については、ドキュメントと手順を参照してください。

https://github.com/mizzao/meteor-partitioner

私はすでに実際には、これを使用してきたので、コードはかなり安定しており、テストの良いセットを持っています。コメントと貢献は大歓迎です。

はこれを使用してパッケージの例は以下の通りです:

https://github.com/HarvardEconCS/turkserver-meteor

+0

こんにちはAndrew、これは本当に涼しくて、これに取り組んでくれてありがとう。私は、コレクションを分割するこのコンセプトの周りに頭を抱えています。これが、Slackに似ているWebアプリケーションというパーティションに行く方法だと思いますか?独自のカスタムドメインを設定して、その特定のドメインにユーザーを参加させることができますか?または、特定のメールアドレス([email protected])を持つ人だけが接続できる、学校のネットワークを持つWebアプリケーション(そのうちの1つはハーバード)ですか?あなたはそのタイプのアーキテクチャにどのようにアプローチしますか?アイデアがあればこれについてお話したいと思います! – mousesports

+0

これは間違いなく軽量パーティショニングシステムです。同じサーバーなどで実際に実行する必要のない大規模なシステムをパーティション化するためにこれを使用することはおそらくありません。 –

+0

ありがとう、ありがとう。あなたが時間があるときにこれにアプローチする方法についてあなたの脳を選ぶのが大好きです。 – mousesports

関連する問題