6

個人的および大学の研究上の理由から、私はサービス指向アーキテクチャーを使用して単純なCRMを構築することを考えています。その意味は、アーキテクチャ自体を説明することであり、商用利用ではありません。

シンプルな分析サービスとカスタマーケア(ユーザーの保存、個人的なコメント、その他いくつか)を提供するCRMの実装を考えていました。

私が設計しているアーキテクチャは、次のように定義しています。-WebGUI(他のサービスのクライアント)-AnalyticsService(データを受信し、分析して収集するサービス)-CustomerCareService(RESTful APIを使用してCRUD操作を適用するサービス)。

各サービスには独自のデータベースがあり、他のサービスから完全に独立しています。それらはパブリックインターフェースを公開します。もちろん、インターフェースは、自動化されていない要求を拒否するために、ある種の認証を提供する必要があります。

この種のアーキテクチャで説明したい利点は、すべてのものを独立させることができることと、それらを組み合わせて新しいサービスを提供できることです(たとえば、注文を処理するOrderServiceがあった場合、それを簡単に組み合わせることができます。パブリックAPIを使用しているお客様)。私にとっての大きな利点は、これらのサービスを使用する他のクライアントを簡単に構築できることです。

実装が簡単な優れた認証方法が何であるかわかりません。また、このAPIを作成する方法もわかりません(GET /POSTデータでXMLまたはプレーンRESTAPIを使用します)。私はAmazon、PayPal、その他の会社のAPIを使用してきましたが、RESTサービス(paypalは醜い_cmd GETパラメーターを使用しますがAmazonはより良いURIを使用します)を使用して何をすべきかを知っているようですが、SOAについて何かを読むと、人々も使用しているようですXML。もちろん、Webインターフェイスがログインしたユーザーを認識し、アクセス許可(トークンなど)を取得し、それをサービスで使用して情報を表示できる必要があることも考慮する必要があります。ですから、SOAが私が実際に構築している種類のアーキテクチャであるかどうかはわかりません...それはSOAではなくSaaSですか?RESTfulアプリケーションを使用する方が良いと思います。

明確にするために、ここに私の質問をリストします:

  1. この種のアーキテクチャはSOAまたはSaaS(あるいはその両方)と呼ばれていますか?
  2. 私が取得したいものの良い実装は何ですか?(できるだけ詳しく説明してください)
  3. クライアントに適した認証の種類(ユーザートークンとOAuthまたは類似)
  4. この種のプロジェクトについて何か提案はありますか?

私はそれを行うのに約3か月あるので、本当に複雑なことをすることはできません(1人のプログラマーにとっては現実的ではないという事実を除けば)。

Python(WSGIフレームワーク)、Ruby on Rails、C / C ++、その他の言語(.netを除く)を知っています。Linux環境(MySQLまたはPostgres、さらにはNoSQL)で開発したいと思います。正しい選択)、これらのサービスに依存しないプログラムであるいくつかの言語を組み合わせることもできます。

ここで私が望んでいるのは、いくつかの良い視点といくつかの良い提案をすることです。

ありがとう!

4

2 に答える 2

1

私はSaaSをアーキテクチャではなくビジネスモデルとして定義します。ただし、すべてのビジネスドメイン要件と同様に、システムアーキテクチャに影響しますが、それ自体は影響しません。定義したものは、サービス指向アーキテクチャーに不可欠です。

「独立していて、それらを組み合わせて新しいサービスを提供する能力」というあなたの声明は、SOAを示唆する本質的な非機能設計要件です。

SOAの優れた実装とは、明確に定義された柔軟なインターフェースを持ち責任を明確に描写することです。しかし、それについて規範的にすることは難しい主題です。証拠は食べることにあります。それはその柔軟な再利用を提供しますか?私の提案は、SOAデザインパターンリソースを読むことに時間を費やし、使用する適切なコンテキストに関して定義する特性を理解することです。次に、単一責任の原則を適切なレベルの抽象化に適用します。cf (ドメイン)スペースベースのアーキテクチャは一種のSOAメタパターンです。

承認に関しては、サービスアプローチに従い、オープンLDAPなどの配布ディレクトリサービスシステムを使用することをお勧めします。これは、サービスの提供とユーザーが独自の資格情報を持ち、メッセージの署名に官民鍵を使用できるため、完全に合理的であることに注意してください。

主な提案は、他の人の経験から学び、学ぶことです。

于 2012-04-17T11:48:01.743 に答える
0

SOAはXMLの使用を強制しません。

現在、Webテクノロジーが支配的であり、未来を定義しています。そのため、私の会社では、基盤としてJSONRESTfulサービスを選択しました。そして原則としてSOA。

SOAと適切な実装の目的は、任意の言語またはフレームワークを使用できるようにすることであるため、言語を提案する意味はありません。

(参考までに、Spring MVCベースのWebサービス、Node.js、PHPでJavaを使用しています)

于 2013-05-08T10:51:47.717 に答える