3

SOでそのテーマを中心に展開するいくつかの質問を見てきましたが、本当に満足できる答えはありません。

自分が感じたことを言葉にしようとしているのに、いつも周りの人を納得させるほど明確に表現できずにいます。私が間違っているのかもしれません。適切な議論を見つけるには、私の理解が十分に深くないのかもしれません。

「従来の」API アプローチではなく「サービス指向アプローチ」に従ってアプリケーションを開発することをどのように比較しますか?

ここではっきりさせておきたいのは、サービスとは、必ずしも Web サービスを意味しているわけではないということです。

ここに私が見るいくつかの違いがあります。私が間違っている場合は修正してください:

  • サービスは、与えられた明示的なプロトコルに従って、会話できる「生き物」です。ライブラリはアプリケーションのランタイムを使用しますが、サービスには独自のランタイムがあります。その「生き物」を好きなところに移動できる
  • ライブラリはコードベースの統合を可能にしますが、サービスは伝統的にメッセージベースの統合を使用します (ただし、メッセージの交換に基づいてライブラリを作成することを実際に妨げるものは何もありません)。
  • サービスは発見可能です
  • コントラクトは明示的であり、実行中のコードの「外部」で表現されます
  • サービスは自律的です (ただし、ここでも、自律型 API を作成できますよね?)
  • 境界は明示的です

ここで何が欠けていますか?サービスと高レベル API を実際に区別するものは他にあるでしょうか?

4

2 に答える 2

1

サービス指向アーキテクチャーは、公開されたインターフェースがクライアントが実行されているのと同じホスト上に存在せず、サービスがクライアントコードから完全に分離されていることを意味します(緩い結合)。同じノードで必要なライブラリをロードしてコードを実行することで、APIを簡単に呼び出すことができます。APIを定義するのではなく、サービス指向アーキテクチャーは機能に重点を置いており、多くの場合、異なるプロトコルを使用して同じ機能にアクセスできます。

SOAとAOAを区別するものがあれば、緩いコード結合を選びます。

于 2012-10-23T05:47:13.403 に答える
1

最も重要なポイントをカバーしました。私は1つ追加します:

通常、Service はステートレスです。各サービス リクエストは独立しています。これは、目的の結果を得るためにシーケンスで特定の呼び出しを行う可能性があるライブラリ インターフェイスとは対照的です。

于 2012-10-23T05:24:21.517 に答える