59

荒らしと呼んでもいいかもしれませんが、私は真剣です。新しい SOA のトレンドは、私が 15 年前に構築していたクライアント サービス アーキテクチャとどのように違うのでしょうか? SOA という言葉をよく耳にしますが、私たちがこれまでやってきたこととどう違うのかわかりません。

10 年前、私の会社には、同じサービスと通信する複数のクライアント (複数の言語) がありました。それは XML ではなく (Microsoft DCOM と呼ばれるバイナリ プロトコルでした)、WSDL による自動検出はありませんでしたが、ドキュメントを読むのは簡単だったので問題ありません。私たちのシステムは、第三者が私たちのサービスと対話できるように十分に文書化したという意味で、「オープン」でさえありました。私たちはパイオニアではありませんでした.10年前に私が知っていた他のすべての会社は同じことをしていました.

当時と現在の唯一の違いは、10 年前は各顧客がサービスの独自のインスタンスをホストしていたのに対し、現在はインターネット上で利用できるサービスが 1 つしかないことです。しかし、これはアーキテクチャの問題ではありません。サービスが物理的に存在する場所は、サービスを使用するすべての人にとって透過的です。

では、私たちが何年もやってきたものとは異なる SOA とは正確には何なのでしょうか? SOA は、はるか昔に実際に一般的になったベスト プラクティスを表す単なるマーケティング用語ですか? それとも、私たちがこれまでずっとやってきたこととは異なる、SOA に微妙に欠けているものがありますか?

4

12 に答える 12

88

XML のことは忘れてください。WSDL のことは忘れてください。SOA は購入できるテクノロジではありませんが、そのように宣伝されることがよくあります。

SOA の本当のポイントは、IT組織に関するものです。SOA のポイントは、分離されたデータ プールを持ち、相互にまったく通信しない (そのためデータが重複することが多い) か、アダプター層を介した非効率的でバグのある方法でのみ使用される大量の「アプリケーション」を回避することです。またはEAIシステム。

大企業にとって、これは深刻な問題です。統合が不十分な文字通り何百もの個別のアプリがあります。重複した一貫性のないデータがいたるところにあり、その結果、請求部門がキャンセルされた注文の請求書​​を送り続け、注文追跡でキャンセルされたために顧客サービス担当者が注文を見つけることさえできないため、顧客は腹を立て、実際のお金が失われます。課金システムではありません。

SOA は、他のアプリがデータにアクセスでき、データを複製する必要がないように、すべてのアプリをゼロから設計して標準化されたクロスプラットフォームの方法でサービスを公開することで、これを解決することになっています。

ビジネスの観点から、これは非常に望ましいことです。流行語の誇大宣伝と頭字語のスープは、その望ましさを利用しようとする IT 企業の試みにすぎません。残念なことに、これは CEO を含む多くの人々に、SOA は購入できる製品であり、魔法のように IT をより効率的にすると信じ込ませてしまいました。場合によってはビジネス ユニットも) SOA 互換にする必要があります。

于 2009-07-07T16:35:52.133 に答える
14

統合地獄の有名な鞭打ち少年、テルコを使おう。

90 年代にさかのぼると、携帯電話会社は、90 年代半ばの通信規制緩和によって可能になった長距離再販業者とほぼ同じくらい、私の近所に多忙でした。さて、時が経ち、Bell Atlantic は Verizon という大国になり、会社を次々と (そして少なくとも 1 つの Baby Bell を) 飲み込んでいきます。これらの企業はどれも、タワー、スイッチング機器、課金システムなど、互いに完全に互換性のないテクノロジを導入しています。

そこで会社は、ビジネスを行う方法についてこれらのモデルを持っているので、WSDL/SOAP/XSD の形式ですべてのテクノロジに友好的で一貫した顔を付けようと言いました。今日のすべての言語とシステムは、これに接続してください!ゆっくりと、しかし確実に、同社はすべてのシステムを機能について報告できるようにし、負荷と請求の目的で調査し、将来のビジョナリーがまだ説明されていない方法で悪用できるようにしています.

誰でも SOA クライアントを構築できます。wget とテキスト エディターを持っている人。誰でも結果を解析できます (XML)。

これが、過去のクライアント/サーバー アーキテクチャとの根本的な違いです。先日、Cobol および Smalltalk ベースのシステムを SOA アーキテクチャーに接続することについて誰かと話していたところです。それは簡単に解決できる問題です。DCOM システムについても同じことが言えます。

于 2009-07-07T17:33:48.817 に答える
12

SOAは、モジュールが「サービス」を介して相互に通信する設計方法に他なりません。それだけです。次の質問は、正確に「サービス」とは何であり、通常の「メソッド」との違いは何ですか?

サービスは、単一のアトミックなビジネス操作を実行する操作です。この原子性により、多くのモジュールから再利用性が高くなります。その場合、複雑な事業運営は、特定の順序でこれらのサービスの多くを呼び出すためのオーケストレーションにすぎません。

SOAは特定のテクノロジーとは何の関係もなく、特定の設計方法にすぎません。

于 2011-07-01T11:59:10.320 に答える
7

シュトゥットガルト大学のFrank Leymann教授は、 SOAについて講演する際に、SOA を自身のサービス指向コンピューティング (SOC) 研究の重要な概念として取り上げています。彼は SOA の定義について質問されているようで、その後の会話は参考になるかもしれません。

私たちのロードマップは「サービス指向コンピューティング (SoC)」、つまりサービス指向の背後にあるコンピューティング パラダイムに関するものであることに注意してください。サービス指向アーキテクチャ (SOA) は、このコンピューティング パラダイムをアーキテクチャで実現したものです。これを、パラダイムとしての「クライアント/サーバー コンピューティング」と、このパラダイムの 2 つの (他のさまざまな) アーキテクチャの実現としての「ブラウザー/Web サーバー」または「DB クライアント/ストアド プロシージャ」と比較することができます。

...

SOA はまったく新しいものではありません。SOA のいくつかの個別の側面は、実際に長い間使用されてきました。たとえば、「疎結合」を見てみましょう。企業は何十年もの間、信頼できるメッセージング テクノロジを使用して、アプリケーションを統合、つまり疎結合しています。誤解しないでほしいのですが、SOA には新しい概念があります。たとえば、SOA でまとめられた概念の組み合わせから生じる概念、つまり創発から生じる概念です。

Web サービスの仕様により、対応するテクノロジがクロス プラットフォームで利用できるようになります。つまり、対応する仕様は根本的に新しい概念を発明するのではなく、これらの概念と対応する実装が異種環境でどのように機能するかを定義します。結果として得られる相互運用性は画期的であり、SOA を現実のものにしています。

要約すると、SOA は成熟したものと新しく出現したものの混合物です。

2006 年 4 月付けのSoC ペーパー リファレンスもあります。


Google 検索でFrank Leymann教授と彼の 作品が特定されました。

于 2009-07-07T16:15:06.433 に答える
2

SOA はマーケティング用語であると同時に、ソフトウェアやマシン全体を販売するのではなく、サービスを販売するという考えに既存のソリューションを統合したものでもあると思います。

于 2009-07-07T17:06:57.263 に答える
0

私にとって、サービス指向アーキテクチャーは、企業が、共通ドメインに関係するさまざまなアプリケーションの選択を、単一のデータソースに対して動作する相互運用可能なサービスのセットに統合したいときに生まれます。

ソフトウェアのアイテム/ソフトウェアのスイートのアイデアを持っている新しいスタートアップ企業の場合、企業がサービス指向アーキテクチャを最初から始める方法がわかりません。最初に、各ソリューション(相互運用可能になる可能性のあるサービスに進化する可能性があります)は、問題空間を分離して解決しようとする必要があります。

おそらく、ソリューションが完成してサービスを開始するときに、各ソリューションのエンタープライズ機能またはスイートが相互運用可能なサービスになるためのロードマップに含まれるでしょう。このために、おそらく開発チームは、ソリューションをサービス指向アーキテクチャーにサービスとして含めることを容易にするために、ソリューション(最終的なサービス)を構築するためのモジュラー/コンポーネント指向のアプローチに着手します。

既存のソフトウェアアイランドがサービス指向アーキテクチャで相互運用可能なサービスになる場合、このアプローチにより、ソフトウェアアイテム(配布され、異なる言語で記述される場合があります)が、公開されたAPIや共通プロトコルを介して通信できるようになります。 (たとえば、Webサービスのフレーバー)および汎用データ形式(たとえば、XML)。

SOAはアプローチまたはアイデアです。フレームワークやツールではありません。WDSLとEJBの名前が削除されると、これは忘れられがちです...SOAの概念はまったく新しいものではありません。

于 2012-11-22T23:47:27.293 に答える
0

サービス指向アーキテクチャ (SOA)は、ソフトウェアがビルディング ブロックとして設計されるアーキテクチャ パターンです。つまり、モジュラー開発。これにより、任意の方法で組み立てる柔軟性が得られます。ゼロから始めるのではなく、新しいプロジェクトを開始したい場合は、サービスを再利用できます。新しいサービスが必要な場合は、既存のサービスと簡単に統合して新しいプロジェクトを作成できます。そのため、多くの時間とお金を節約できます。サービス指向アーキテクチャの基本原則は、ベンダー、製品、およびテクノロジに依存しません。

類推: おもちゃは、レゴ ビルディング ブロックを使用して構築されます。

レゴ ブロックを使って組み立てるレゴのおもちゃ

于 2015-12-09T02:29:36.613 に答える
0

実際には、SOA は明確に定義されたサービスの集まりです。基本的に、SOA は疎結合サービスを使用して、目的の結果を簡単に取得します。サービスの実装の詳細はクライアント/コンシューマから隠されているため、実装の変更はそれらの間の契約が変更されるまでサービスに影響しません。サービス プロバイダーは、事前に定義された入力と出力に基づいてビジネス ロジックを実行し、SOA 実装を通じてこの機能を公開するコンポーネントです。これにより、SOA に基づくシステムは、ビジネスに対してより迅速かつ費用対効果の高い対応が可能になります。コンポーネントと SOA の主な違いは、SOA はプログラミング言語やプラットフォームに固有ではないオープン スタンダード メッセージを提供することです。その結果、プラットフォームやテクノロジー全体で高度な疎結合と相互運用性を実現できます。サービス指向アーキテクチャ (SOA)

于 2016-10-01T04:38:10.447 に答える
0

ここでの回答のほとんどは、SOA (Service Oriented architecture)他のアプリケーションがプラットフォームに依存しない方法で対話できるように、標準化された方法でアプリケーションを構築することに関するものであることを伝えているようです。

その後、意味が変わったかどうかはわかりませんが、SOA スイートを提供する会社と仕事をする機会があり、それについての私の考えを以下に示します。

もちろん、アプリケーションを設計するとき、それがクロス プラットフォームに準拠することを保証することはできません。例を挙げてみましょうstock Trading systemsFix protocolメッセージの転送に使用します。いわゆる SOA 準拠になるように、XML 形式でデータを返すようになると思いますか? 絶対にありません!decouple your application/servicesSOA は、相互に対話できるようにするためのアーキテクチャーのアプローチです。SOA のバックボーンは、ESB (Enterprise Service Bus)あるサービスから別のサービスにデータを転送するために使用されます。SOA アーキテクチャーは、フォーマット変換を処理する必要があります。例えば ​​-

FIX(Service 1) -> (XML ---ESB---> XML) -> JSON (Service 2)

これらの変換モジュールは一般に SOA スイートと呼ばれadapters、一般に SOA スイートの一部です。もう少し詳しい情報については、別の回答を参照してください -

SOAとESBの違い

確かに、SOA はマーケティング目的で宣伝されている言葉です。技術的に言えば、サービスを分離してプラットフォームに依存しないようにデータをデシリアライズおよびシリアライズするのと同じくらい簡単ですが、その背後にある考え方は具体的です。

Wiki ページも参照してください。

于 2015-01-24T17:03:04.103 に答える