2012-04-29 35 views
3

私はSOA設計のWebアプリケーションを実装したいと考えています。私はこれを行うには、ジャンゴと一緒にセロリを使用することを考えています。しかし、私はいくつかの質問を持っている:セロリを使用したDjangoでのSOAの実装

  1. は、これは私がDjangoフレームワーク内の認証を達成するだろうか、これは移動するための方法であると仮定すると、Djangoの
  2. ため
  3. をSOAの設計を実装するために行くための正しい方法です。具体的には、認証をプロデューサと消費者のパターンと切り離したいと思います。こうすることで、REST API(またはそれに関するもの)を使用して認証資格情報を生成し、コンシューマ(Djangoフレームワーク内)を使用して資格情報を読み込んで動作させることができます。

また、私はジャンゴのセロリで上記を行う必要がありますか?

+0

Rubyコミュニティ(具体的にはRails)は、SOAの構築と使用に熟練しているようです。 RubyとRailsを使って_Service-Oriented designという本を手に入れました。これは、RailsでSOAパラダイムを実装する方法を明らかにするでしょう。私はPythonをRailsよりも少し好きですから、Djangoを使って同じことを達成したいと思います。だから私は、この本に記載されているコンセプトがDjangoに翻訳されるかどうかを見極めるつもりです。私はここに報告します。しかし、プッシュが押されると、私はRails(これはかなり気の利いた言語だと思います)を使用します。 –

答えて

4

Djangoは実際にSOA用に構築されていません。認証の場合、Djangoはよく定義された認証フレームワークを持っており、Web、APIなどで簡単に再利用できます。

一般に、独自のアーキテクチャを柔軟に定義したい場合は、Djangoはおそらくisnあなたのためではありません。 web.pyのようなもっとミニマルなものを考えてみてください。

+1

Djangoには独自の認証モジュールが組み込まれていますが、DJango内でセロリを使用できるのであれば、SOAアプローチを使用してこれらのプロセスを分離できないのはなぜですか? –

+2

あなたは確かにそうすることができますが、あなたがこのような方法で問題にアプローチしようとするなら、あなたは本当にフレームワークをあまり利用していません。そのような場合、より軽量のフレームワークがより適切と思われます。 –

9

メッセージ・キュー(セロリによって仲介されるrabbitmqなど)は、SOAコンポーネント間の通信を完全に良好に処理する方法です。さらに、サービス間でデータベースを共有せずにリアルタイム通信が必要な場合は、基本的にRESTがこのために作られています。 Djangoの上にRESTサービスを実装するためのいくつかのオプションがあります。TastypieとDjango-Rest-Frameworkは一般的な選択です。

コンポーネント間で認証を渡す場合、Djangoにはいくつかのオプションがあります。一般的な意見とは対照的に、Djangoの認証フレームワークは非常に柔軟で、バックエンドを書くことができるものに対する認証/認証をサポートしています。これについては、https://docs.djangoproject.com/en/dev/topics/auth/#writing-an-authentication-backendを参照してください。

本の多数の例がすでにあります

として:django-social-authまたはdjango-allauth

  • は、LDAPを消費します認証情報を公開する場合、オプションは少なくなりますが、これには次のものが含まれます:

    私は強く、すでにあなた自身をロールの上に構築し、テストしたプロバイダパッケージを使用することをお勧め。 SSOの実装は信じられないほどトリッキーです。

  • 関連する問題