2009-06-09 13 views
16

私は最近、私たちのアーキテクトの1人と会話しました。彼はSOAの使用を「サービスを使用する唯一の時間は、SOA(サービス指向アーキテクチャ)を使用する場合

私はこの文について考えていましたが、パブリッシュ・サブスクライブ・モデルではサービスがうまくいくので論理的に見えますが、SOAを使用するためにどのようなシナリオを検討するべきか疑問に思っていましたか?

答えて

23

データソースに直接接続できないため、お客様にサービスを提供しています。

WCFを使用してさまざまなテクノロジに展開するのが簡単なため、サービスを公開しています。

同じデータソースに対して異なるユーザーインターフェイスがあるため、サービスが公開されています。サービスを利用するときには、作業の3分の1を節約します。

これは、非同期処理のためだけではありません。

+0

同じデータソースに対する異なるユーザーインターフェイスのシナリオでは、すべてのUIコンポーネントを使用するためのDLLを公開できない理由はありますか? – lomaxx

+2

これが可能なシナリオがあります。ほとんどの場合、Web-UIとDesktop-UIがあります。どちらがdllで動作しません。 – albertjan

+5

非常に異質なウェブUI環境、Java、.Net、PHP、RoRをお持ちの場合、DLLを出荷するのはあまり役に立ちません。非常に異種の環境を克服するためにサービスを使用することも、SOAの一般的な使用方法です。 –

3

別のシナリオは、多くの独立したコンポーネントまたはシステムが互いに通信する統合シナリオです。

+1

でこの上のいくつかのより多くのリソース私は同意するだろう。私は、SOAとは、さまざまな異種システムが相互に通信する必要がある場合に、特に社内の統合問題を解決する方法です。 – Daryl

2

SOAは、サブシステムの実装の詳細を隠す手段として使用できます。たとえば、顧客に製品情報が必要な場合は、製品データベースまたは在庫サブシステムを包括的なサービスにまとめて、顧客が必要とする機能とデータのサブセットのみを公開することをお勧めします。次に、そのサブシステムを交換またはアップグレードする必要がある場合は、その変更をユーザーに透過的にし、顧客がソフトウェアインターフェイスに直面するようにすることができます。

+3

別の方法として、実装を実装から分離するために使用します。 –

1

異なる技術を統合して同じリソースにアクセスする。それらの異なるテクノロジに対して一定レベルのトランザクション分離を実現すること。 1つのビジネスロジックを1つの場所に書き込むことができます(このロジックを変更するときには、問題はありません)...

9

異種テクノロジスタックを統合する場合もあります。

つまり、DBがポストグルで、Java、Perl、Python、およびC++のコードを持っている場合は、ストアドプロシージャを記述して各プログラミング言語で呼び出すことができます。 procsが格納されていないDBを使用して作業している場合、またはそれらを切り替える機能が必要な場合、またはポート80で実行したい場合は、SQL呼び出しをサービス指向のレイヤーにラップすることができます誰でも誰でも呼び出すことができるwebsphereと思う)、SOAレイヤーに認証と認可ロジック(LDAPに接続するもの)を置くことができます。

SOAレイヤーを使用して、請求書を管理したり、顧客のためにステートメントを作成したりする古いCOBOLボックスで「stuff」を実行する論理ルーチンを構築することもできます。

したがって、販売システムと倉庫システム、注文予測システムとの相互接続を望む多数のレガシーシステムがある場合、SOAはその目標を達成する1つの方法かもしれません。 (「サービスバス」を使用して、変更を編成するより良い方法として、イベント駆動型システムを作成することもできます)。

私はおしゃべりしています。

+0

サービスバスがSOAにどのように関係しているか説明できますか?私は両者がどのように関連しているのか理解しようとしています。ありがとう。 – DoodleKana

6

サービスを利用することで多くのシナリオがあります。これらのシナリオの中には、業界の専門家(SOA名声のThomas Erlなど)によってコード化されているものもあります。、(同じプロセスの複数のユースケース)

  • 実装の抽象化(プラットフォーム

    • レガシーアプリケーションの再利用
    • ビジネス・プロセスの再利用:

      SOAPatterns

      私はあなたが見てみたいと思います言語、パーシスタンス抽象化)

    あなたのcolleaガウは慎重にするのが正しいです。 Webサービスの導入には、多くのデプロイメント変数とサポート変数が導入されています。

  • 2

    テレコム(IMHO)がライフラインとして把握しているように見えるSOAのポイントは、SOA対応システムを使用することで、従来の技術と堅実なテクノロジーを利用して、ユーザーは、社内のすべてを再構築する必要なしに、新しいアイデアや考えられなかったアイデアを開発します。

    インターフェイスとして統一言語(WSDL)を使用することで、テクノロジサイロを相互運用できるように準備することができます。今すぐSOAを実装することで、データソースに直接アクセスするのではなく、あなたが考慮していない当事者やビジネスニーズによってデータソースを自動的に消耗させることができます。

    WSDLは最終的にコーバの作品です。

    2

    一般的に、WSDLとSOAPは同じ問題を抱えています。CORBAとDCOMの違い:契約バージョン管理は悪夢です。これは、すべてのクライアントとサーバーを完全に制御している縮退したケースではそれほど問題ではありませんが、システムの連合を開始すると醜くなります。

    この時点では、典型的なSOAP-as-RPCモデルの対話の代わりに、イベント駆動型アーキテクチャのアプローチに迫られています。これはESBの使用を意味するものではありませんが、企業間の接続をESB間の接続として見ることは非常に便利です。

    トランスポートとしてSOAPに頼っても、醜いです。反対のWebサービスを使用して双方向の対話を行う必要があるだけでなく、バ​​ージョニングの問題がまだ残っています。多くの場合、SOAPメソッドは、別の方法で定義された "blob"(別のXMLスキーマなど)の周りの小さなラッパーに浪費します。

    回答はありますが、決して簡単なものではありません。 Best practices for Web services versioningでは、その2つについて説明します。

    しかし、SOAは、非同期をまったく意味しません。 SOAを実装するのは賢明な方法です。 SOAは疎結合についてのものです。 SOAのEDAサブセットは、デカップリングについてです。

    0

    私は組織内の時間に、おそらく他の組織にも拡張されるシステムでSOAを使用します。

    変更の可能性のある製品については、その部分を少しでも置き換えることができます。

    最後に一緒に参加するレゴレンガがたくさんあります。

    2

    SOAD(Service Orientated Application Design)と呼ばれる関連する考えの別の学校があります。システムのすべてのコンポーネントがサービスであったからです。これは、ビルドされた環境(EJB、WCF)によって提供される利点を活用することです。つまり、多くの無料の配管工事を手に入れます。

    Building a SOA

    SOA Design Pattern

    Achieving integrity in a SOA

    Achieving Flexibility/Maintainability in a SOA

    関連する問題