2009-07-08 7 views
10

ここでは、サービス指向アーキテクチャー(SOA)とコンポーネント・ベースのアプローチがどのように異なるのか、非常に理論的かつ抽象的な質問があります。 SOAのコンセプトはコンポーネントベースのアプローチの拡張ですか?サービス指向アーキテクチャーとコンポーネント・ベースの開発が互いにどのように関係していますか?

あなたの考えは?おそらくあなたはこの問題をカバーする良い論文を知っていますか?

答えて

6

2つの概念はかなり直交しており、互いに補完したり矛盾したりするものではありません。私の目に錆びたフォークを貼りつけて一般化することを強いられたら、コンポーネントベースの開発は特定のソフトウェアをモデリングして組み立てるテクニックだと思います。SOAは別々のシステムを整理する技術です彼らはお互いに話すことができます。

私は、粗野一般化を言ったが、それは私がより具体的な質問せずにあなたを与えるつもりだすべてだと同じように:)

3

一つは、SOAは、コンポーネントベース開発の高レベルの形式であることを言うかもしれませんコンポーネントはサービスと呼ばれる再利用可能な機能に変わりました。

11

this articleで著者は、SOAをサポートするようコンポーネントベースの開発を表示 - 最後に、あなたのSOAを実装し、実装を提供する成果としてコンポーネントを設計することがサービスを必要とします。スキルの中には、コンポーネントの細かさと結合性を正しく得るものがあります。

私は、この観点は今日のSOAが実際にどのように行われているかについての妥当な特徴であると考えています。私にとって重要な点は、まずサービスに焦点を当て、ビジネス上の意味で何をする必要があるのか​​、そして後にコンポーネント設計に来ることです。 [サービスの特定についてはarticleです。免責事項:私はIBMの人です。これらの記事は同僚によって書かれています。]

しかし、クロックを取り戻すと、コンポーネントベースの開発はSOAよりも前のアプローチであり、 SOAと同じ目標。私は、SOAが単なるマーケティングの誇大宣伝であり、古い概念に新しいラベルを貼っているという意見を過度に冷笑的に見ています。しかし、CBDとSOAの間にはかなりの重複があります。私はSOAを、統合の仕方についての最新の知恵であると考えています。疑いなく、全体的なキットバッグが再び新しい名前になるまで、より多くの新しい技術が出てくることは間違いありません。

私の個人的な見解では、組織内の異種の技術チーム(IBMベースやマイクロソフトベースなど)が互いのサービスを使用できるコンポーネントを構築できる技術が登場したため、SOAが勢いを増しています。言い換えれば、新しいラベル(SOA)が魅力的であるように、コンポーネントをどのように行うかという成熟度のレベルが浮かび上がっていました。

0

コンポーネントベースの開発では、一般的に1つのコード構文でコードフラグメントのリポジトリ(完全なオブジェクトスタック)が必要でした。何か他のものに役立つためには、これらのフラグメントは、例えばVB6 & VC++の間の共通インタフェース(例えば、Windows APIまたはCOM、COM +など)を介して移植または呼び出される必要があります。したがって、VB ++ではVC++関数を使用して呼び出すことができます。したがって、コンポーネントを再利用するには、直感的に反してリファクタリングを再利用する必要があることがありました。早期拘束と遅れた拘束の問題もありました。リポジトリコンポーネントは、コードベースの機能部分として構築および展開され、使用される必要がありました。このコードは、リポジトリに追加する前に単体テストであったはずですが、機能を確認するための統合テストが必要でした。また、「オブジェクトインターフェイスを交差させる」ために正しいパラメータを構築する必要があります。ここでも、これは一般的に必要なラッパーコードです。

これらのコードリポジトリには、本当にクロスプラットフォームになるものはすべて含まれていない場合があります。プラットフォーム間の独立性は、問題がドメイン全体、特に統合システムでセグメント化されている場合に通常必要となります。インタフェースは、実際に機能しているコードではなく、構築され展開されたソフトウェアに含まれています。

この2つの間に欠けているものは、フレームワークです。 SOAはCBDv2でも拡張でもないため、サービス実装のフレームワークを辿る必要があります。フレームワークは新しい概念でもありません。

両方ともCBD & SOAは最終的にコードの再利用を促進します。 CBDは一般にSOAよりも範囲が狭いです! SOAは効果的なフレームワークを必要としますが、CBDは有効ではありません。 CBDは、その開発言語とターゲットプラットフォームに結合されています。

関連する問題