2009-07-08 34 views
10

Đây là một câu hỏi lý thuyết và trừu tượng: Kiến trúc hướng dịch vụ (SOA) khác với cách tiếp cận dựa trên thành phần như thế nào? Khái niệm về SOA có phải là phần mở rộng cho cách tiếp cận dựa trên thành phần không?Kiến trúc hướng dịch vụ và phát triển dựa trên thành phần liên quan đến nhau như thế nào?

Suy nghĩ của bạn là gì? Có lẽ bạn biết bất kỳ giấy tờ tốt mà bao gồm chủ đề này?

Trả lời

6

Hai khái niệm khá trực giao, không bổ sung hay mâu thuẫn lẫn nhau. Nếu bạn đe dọa dính vào một cái nĩa gỉ và buộc tôi khái quát, tôi muốn nói rằng phát triển dựa trên thành phần là một kỹ thuật để lập mô hình và lắp ráp một phần mềm cụ thể, khi SOA là một kỹ thuật để tổ chức các hệ thống riêng biệt họ có thể nói chuyện với nhau.

Như tôi đã nói, một sự tổng quát thô bỉ, nhưng đó là tất cả tôi sẽ cung cấp cho bạn mà không có một câu hỏi cụ thể hơn :)

3

Người ta có thể nói rằng SOA là một hình thức cấp cao của sự phát triển dựa trên thành phần, nơi các thành phần đã được chuyển thành các phần chức năng có thể sử dụng lại được gọi là dịch vụ.

11

Trong this article các tác giả xem phát triển dựa trên thành phần như hỗ trợ SOA - cuối cùng SOA của bạn cần dịch vụ được thực hiện và bạn thiết kế thành phần như phân phôi cung cấp thực hiện. Một số kỹ năng là để có được độ chi tiết và sự gắn kết của các thành phần bên phải.

Tôi tin rằng quan điểm này là một đặc điểm hợp lý về cách SOA thực sự được thực hiện hôm nay. Đối với tôi, điều quan trọng là trước tiên bạn tập trung vào các dịch vụ, những gì bạn cần làm theo ý nghĩa kinh doanh, sau đó đến các thiết kế thành phần. [Đây là một số article về việc xác định dịch vụ. Disclaimer: Tôi là một người của IBM, những bài viết này được viết bởi các đồng nghiệp.]

Tuy nhiên, nếu bạn quay trở lại đồng hồ, tôi nghĩ bạn sẽ thấy rằng Phát triển dựa trên thành phần là một cách tiếp cận trước SOA và có nhiều các mục tiêu tương tự như SOA. Tôi xem như là vô lý hoài nghi ý kiến ​​rằng SOA chỉ là quảng cáo tiếp thị, gắn nhãn mới trên các khái niệm cũ. Tuy nhiên có sự chồng chéo đáng kể giữa CBD và SOA. Tôi chỉ xem SOA như là trí tuệ tập thể tốt nhất mà chúng ta phải cập nhật về cách tích hợp, không nghi ngờ gì khi chúng ta tìm hiểu thêm các kỹ thuật mới sẽ xuất hiện cho đến khi bộ túi tổng thể có giá trị một tên mới một lần nữa.

Quan điểm cá nhân của tôi là SOA có động lực vì một tập hợp các công nghệ nổi lên cho phép các nhóm kỹ thuật khác nhau trong tổ chức (ví dụ như cơ sở IBM và cơ sở Microsoft) xây dựng các thành phần có thể sử dụng các dịch vụ khác. Nói cách khác, mức độ trưởng thành trong cách làm các thành phần xuất hiện, sao cho một nhãn mới (SOA) là hấp dẫn.

0

Phát triển dựa trên thành phần yêu cầu một kho lưu trữ các đoạn mã (đôi khi ngăn xếp đối tượng hoàn chỉnh) nói chung trong một cú pháp mã. Để hữu ích về bất cứ điều gì khác những mảnh vỡ này sẽ được yêu cầu để được chuyển hoặc gọi qua một giao diện chung (ví dụ: API cửa sổ hoặc COM, COM + et al) giữa VB6 & VC++ chẳng hạn. Vì vậy, các chức năng VC++ có thể được sử dụng và gọi bởi VB6. Do đó, việc sử dụng lại thành phần đôi khi đòi hỏi toàn bộ quá trình tái cấu trúc để được tái sử dụng mà đã được truy cập trực quan. Cũng có vấn đề ràng buộc sớm và muộn. Các thành phần kho lưu trữ vẫn cần được xây dựng và triển khai như là một phần chức năng của cơ sở mã để được sử dụng. Mã nên được đơn vị kiểm tra trước khi thêm vào kho lưu trữ nhưng vẫn yêu cầu thử nghiệm tích hợp để xác nhận chức năng. Bạn cũng sẽ phải xây dựng các tham số chính xác để "giao diện đối tượng chéo". Một lần nữa, mã wrapper thường yêu cầu này.

Các kho lưu trữ mã này có thể không bao gồm mọi thứ thực sự là nền tảng chéo. Độc lập nền tảng thường được yêu cầu khi các vấn đề được phân đoạn trên các tên miền, đặc biệt là trong các hệ thống tích hợp. Giao diện được bao gồm trong phần mềm được xây dựng và triển khai, không phải là mã hoạt động thực tế.

Điều bạn đang thiếu giữa hai khung là Khung. SOA không phải là CBDv2 cũng không phải là một phần mở rộng cho nó, bạn phải đi qua khuôn khổ của việc thực hiện dịch vụ. Khung cũng không phải là một khái niệm mới.

Cả hai CBD & SOA cuối cùng thúc đẩy sử dụng lại mã. CBD thường hẹp hơn phạm vi so với SOA! SOA cần một khuôn khổ để có hiệu quả, CBD không. CBD được kết hợp với ngôn ngữ phát triển và nền tảng mục tiêu của nó.

Các vấn đề liên quan