「サービス指向アーキテクチャ」という用語は意味のない専門用語になりましたか?[閉まっている]


25

今日、「サービス指向アーキテクチャ」の経験があるかどうかを尋ねられました。私にとって、この概念は非常に混乱しているように見えます。

概念の簡潔な定義と、他のアーキテクチャとの違いを理解するために、この用語をグーグルに頼りました。いくつかの記事を読んだ後、見つけることができると思われる唯一の一般的なスレッドは、XML / SOAPをわずかに優先して、何らかのインターフェイスを介して互いに通信する複数のコンポーネントを持つシステムです。

ほとんどすべてのアプリケーション、特にWebアプリケーションをSOAとして定義できるようです。この用語は「Web 2.0」のtrapに陥り、あなたが意味するものは何でも意味する用語になりましたか?

私はここから離れていますか?皆さんがこの言葉を聞いたとき、それはあなたに特有の何かを意味しますか?その場合、SOAとは何か、具体的にはSOAではないことを明確に示す簡潔な定義が必要です。


39
それは常に無意味な専門用語でした。
フォスコ

6
オランダ語では、SOAはSTDを意味します。
ジョーリSebrechts

1
SOAは「ユーザー支払い」の概念ですか?つまり、従来、企業はITを最小化すべきコストとして扱います。これは、企業全体の生産性が影響を受けるまで企業がITをどれだけ削減できるかを知らないため、隠れた危険を生み出します。SOAは、IT部門が各部門によって消費されたITリソース(財務、営業、人事など)の正確な量を計算し、適切に請求できるようにするITの方法でした。それは非常に非効率的かもしれませんが、それは必要な悪です。ユーザーに請求できないと、Lose-Loseの結果につながります。
rwong

1
私はあまりSOA(P)を使用していませんが、サービス指向アーキテクチャ(SOA)が「シンプル」でなくなったときに、Simple Object Access Protocol(SOAP)の略語であると聞きました。
アンドリューグリム

2
ねえ、人々はこのようなものにたくさんのお金を払います。状況と意味や詳細を混同しないでください。経営陣は、彼らが話していることを知っているように聞こえ、流行語の最先端にいる必要があります。それらからそのように取らないでください。他に何が残りますか?
JeffO

回答:


12

SOAの本来の意味は、プログラムで使用できる明確に定義されたインターフェースを持つサービスに基づいていたと思います。焦点は、UI端末、通信、またはデータベースではなく、サービスインターフェイスにありました。重要な部分は、他のサービスを消費するサービスでした。サービスAはサービスBを呼び出し、結果を取得し、サービスCまたはDを呼び出すことができます。顧客の問題を解決する方法でそれらを組み合わせることにより、一連の特殊なサービスとソリューションを設計できます。

SOAはしばしばSaaS(サービスとしてのソフトウェア)と混同されます。SaaSは、ソフトウェア製品のコピーのライセンスを購入するのではなく、ユーザーが加入したサービスの使用に対して料金を支払う価格モデルを指します。質問の3番目の段落に答えると、WebアプリケーションはおそらくSOAではなく、SaaSになる可能性があります。

この用語は、その意味の一部を間違いなく失いました。私が働いている組織では、SOAという用語はSaaSと同じ意味で使用されることが多く、サーバーとルーターを構成し、それらで実行するソフトウェア製品をインストールするIT専門家のチーム(ソフトウェア製品開発ではなく情報技術)を指します。それらのいくつかは「SOAアーキテクト」のようなタイトルを持っていますが、ソフトウェアの設計、設計、実装、またはテストとは何の関係もありません。


1
ここで頭に釘を打ったと思います。
reinierpost

1
+1。典型的なSOAブックが800ページの綿毛で行うことをいくつかの段落で要約しました。
prasopes

4

SOAをグーグルで検索して、それが実際に何であるかを確認しました。はい、かなり乱用されています。SOAについて考えるとき、次のことを考えます。

  1. 発見可能なヘッドレスプログラム...
  2. それはステートレス接続(ala HTTP)を利用します...
  3. プラットフォームに依存しない形式で通信する

SOAは、クライアントサーバーアーキテクチャ(ステートフルサービスアーキテクチャ)およびライブラリとは対照的です。これらのライブラリは、リンカーを介してプログラムに接続されたモジュールです。

だから人々がそれについて話すとき、私は一般的に塩の粒でそれを取る。また、単に「Webサービス」と呼ぶ傾向があります。Webサービスでは、アーキテクチャが暗示されています。


2
それはサーバー-サーバーアーキテクチャでしょうか?
JeffO

3

SOAの厳密な定義は、多くの場合、理論的なものであるため、コスト/メリットラインをはるかに超えています。

製品がサービスそのものでない限り、異なる視点が必要になることがよくあります。

SOAのUSABLE定義は、全体的なアーキテクチャがサービスフレンドリーであることを意味します。通常、完全にアトミックサービスから構築されたシステムは適切な計画ではなく、一部のサービスは機能的に編成されますが、他のサービスは単一の責任になります。ブラックボックスがある場合もあれば、オフラインプロセスがある場合もありますが、有意義な量の作業を完了することができるサービスの発見可能なコレクションがある場合、それは最小定義です。

それが実際に何を意味するかについての議論は別として、概念(それが何を意味するにせよ)は単に当てはまらない場所に適用されることによって多くのサークルで苦しんでいます。

たとえば、ブラックボックスプロセスを意図したものを作成し、セグメンテーションと配布ではなく並列処理を行う場合、ブラックボックスに公開/通話するサービスがあるかもしれませんが、一部の人々はサービスを内部に配置しようとしますボックス。

厳密な技術的定義として、常に定義されていませんが、アイデアはそれが収まるメリットがないわけではありません。


3

SOAで管理が販売されている2、3の企業システムで作業するという不幸がありました。開発者として私はシステムを見て、何かをするWebサービスの背後にあるたくさんのソフトウェアを見ています。さまざまな言語とアーキテクチャで記述されている可能性がありますが、それらは、サービスを呼び出すクライアントにとって重要または関連するものではなく、ドキュメントのどこかに実際には頭字語「SOA」があります。

しかし、経営陣は「SOA」を求めています!!! そのため、特定の大企業から非常に高価なサーバーを購入し、以前の「JEE」ステッカーの上に適用された以前の「Webサービス」ステッカーの上に「SOA」ステッカーが適用されました。 ....あなたはアイデアを得る。その結果、開発者は画面上にアイコンをドラッグアンドドロップして、「SOA」「コンポーネント」を作成します。これは、EBJ3 Bean、Springコンポーネントなどの単純なもので作成した場合と同様に機能します。 。

したがって、SOAについて尋ねられたら、「はい、SOAをやったことがあります。サービス指向アーキテクチャを使用して物事を行う多くのシステムを作成しました。どのSOAテクノロジーを求めていますか?」そして、彼らが輝く目で話し始め、SOAコンポーネント、ドラッグアンドドロップ、そしてそれがどのように開発を容易にするかについて物憂げに見える場合。ゆっくりと後退し、アイコンタクトを避けてください!


2

1つは必要なときに呼び出される「スレーブ」モジュールがある場合、もう1つはサービス/デーモンプロセスが独立して実行され、リクエストに応答し、おそらく相互に通信し、言い換えれば、自分の人生。このアプローチを使用すると、巨大でスケーラブルな物理的に分散されたシステムを構築できます。たとえば、携帯電話の分野でいくつか見ました。しかし、これは単なる推測です。

(さて、ウィキペディアがSOAについて語っていることを見てみましょう...おっと。)


まとめると。複数のプロセスが実行され、各プロセスが個別のタスクを実行し、何らかの方法で相互に通信する場合、アーキテクチャはSOAですか?
JohnFx

@JohnFx:はい。これにより、スケーラブルで可用性の高い冗長システムを簡単に構築できます。
mojuba
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.