21

SOA (WCF) を提唱する記事はたくさんありますが、私の質問は、SOA の失敗から何を学ぶべきではないかということです。WCF は SOA を実装する方法です。WCF を使用する場合、それは SOA を実装していることを意味します。確かに、C# を使って保守不可能なコードを書いている人はたくさんいます。

4

5 に答える 5

15

私はあなたが正しいと思います。私の現在の割り当て (Web 開発) では、データベースへのすべてのアクセスがサービスとして実装されています。リードアーキテクトが言ったように、私たちは「PURE SOA」です... うわー!

実際、これはすべてに多くの複雑さを追加します。単純なテーブルの内容を読みたい場合、8 つのプロジェクト、42 個のファイル、8 個のアセンブリ、そしておそらく 9 個の構成ファイルを生成する必要があります。

私が言ったように多くの複雑さ。誰かがどこかで 1 つのファイルを忘れる可能性があります... 単純なプロセスをサービスとして公開するのはばかげています。

私の本では、次の場合にプロセスをサービスとして公開する必要があります。

  • さまざまな言語やフレームワークを使用する多くのアプリケーションは、独自のものを呼び出す必要があります。
  • 関連するプラットフォームは複数あります (Windows、Unix...)。
  • 扱うデータは企業の中核です。

また、サービスはサービスとして設計する必要があり、サービスの設計は少なくともライブラリの設計と同じくらい複雑であることに注意してください。エラー トラップは慎重に作成する必要があり、ロギングは十分に柔軟でなければならず、ドキュメントは完全でなければなりません。

ご覧のとおり、私が毎日使用するサービスのほとんどは、他の人が使用することはありません。ドキュメントがない、エラー処理が不十分、コードが頻繁に変更される、2 番目のゾーンのデータ...

非常に興味深い質問です。1点 :o)

于 2009-01-29T19:54:12.077 に答える
7

概念としての SOA は素晴らしいアイデアです。

HTTP-WS/BPEL などを使用して実装された SOA は、それほど謙虚でない私の見解では死に値するジョークです。分散トランザクションの唯一の概念が補償トランザクションであることを知った直後に、私はシステムを真剣に考えるのをやめました...bzzt NEXT!!

于 2009-01-15T16:56:45.430 に答える
4

私が認識している主なアンチパターンが 2 つあります。

  • サービス層を介してビジネス層からオブジェクトを直接公開する
  • ビジネス層のメソッドなど、特定のきめの細かいメソッドを公開する

推奨事項は、サービス レイヤーに粗粒度の一般的なメソッドを含め、ある程度大きなメッセージ ベースの要求と応答を受け入れて返すことです。目標は、サービスがどのように使用されるかについてあまり大きな仮定をせず、基本的な機能を実現するために多数の呼び出しを必要とせずに、かなり一般的なインターフェイスを提供することです。Web サービス呼び出しの数を最小限に抑えるようにしてください。

高レベルでの優れたアドバイスを次に示します。

ガイドが話している「メッセージ」クラスのタイプの具体的な例と、WCF での実装方法を次に示します。 -3-messaging-messagecontracts.aspx

于 2009-06-10T04:46:41.033 に答える
4

いくつかの SOA アンチパターンを公開しました

ポイントは、多くの人が SOA を Web サービスのフロントエンドをロジックの前に置くものと見なし、結果として生じる RPC の意味を忘れていることです (分散コンピューティングの誤謬としても知られています) 。

于 2011-11-24T04:21:19.623 に答える
3

SOA は、よく提示されていない概念の 1 つです。SOA はアーキテクチャ スタイルであり、Web サービスやその他のテクノロジとは何の関係もありません。SOA を Web サービスと BPEL で説明するのは誤解を招きやすいことに同意します。通常、BPEL は SOA とは何の関係もありませんが、代わりに WS オーケストレーションを実装する方法です。ベンダーはそれをひどく混乱させました。

SOA とは何かを実際に説明している、非常に優れたダウンロード可能な本をお勧めします。

http://www.infoq.com/minibooks/enterprise-soa

次に、この興味深いブログエントリを読むことができます

よろしく

于 2009-01-31T02:25:43.830 に答える