Câu trả lời:
Các công nghệ cơ bản như (XML, SOAP, WSDL) cung cấp các phương tiện để mô tả, định vị và gọi các dịch vụ như một thực thể theo quyền riêng của nó. Tuy nhiên, các công nghệ này không cung cấp một chi tiết hành vi phong phú về vai trò của dịch vụ trong sự hợp tác phức tạp hơn. Sự hợp tác này bao gồm một chuỗi các hoạt động và mối quan hệ giữa các hoạt động, xây dựng quy trình kinh doanh. Có hai cách để xây dựng quy trình này: phối hợp dịch vụ và biên đạo dịch vụ.
Điều phối dịch vụ đại diện cho một quy trình kinh doanh thực thi tập trung duy nhất (người điều phối) điều phối sự tương tác giữa các dịch vụ khác nhau. Dàn nhạc có trách nhiệm gọi và kết hợp các dịch vụ.
Mối quan hệ giữa tất cả các dịch vụ tham gia được mô tả bởi một điểm cuối duy nhất (nghĩa là dịch vụ tổng hợp). Việc điều phối bao gồm việc quản lý các giao dịch giữa các dịch vụ riêng lẻ. Dàn nhạc sử dụng một cách tiếp cận tập trung cho thành phần dịch vụ.
Vũ đạo dịch vụ là một mô tả toàn cầu về các dịch vụ tham gia, được xác định bằng cách trao đổi thông điệp, quy tắc tương tác và thỏa thuận giữa hai hoặc nhiều điểm cuối. Vũ đạo sử dụng một cách tiếp cận phi tập trung cho thành phần dịch vụ.
Vũ đạo mô tả các tương tác giữa nhiều dịch vụ, trong đó khi phối hợp thể hiện sự kiểm soát từ quan điểm của một bên. Điều này có nghĩa là một vũ đạo khác với một dàn nhạc liên quan đến nơi logic kiểm soát các tương tác giữa các dịch vụ liên quan sẽ cư trú.
Phối hợp dịch vụ : bạn kết hợp một số dịch vụ theo logic cố định. Logic này được mô tả tại một nơi duy nhất. Bạn có thể tưởng tượng một nhóm người với một người quản lý làm quản lý vi mô. Người quản lý chính xác nói những gì, khi nào và ai nên làm. Các thành viên trong nhóm không quan tâm đến toàn bộ mục tiêu của công việc, người quản lý kết hợp các kết quả đầu ra thành một phân phối duy nhất. Một ví dụ thực tế là một quy trình BPEL. Quá trình BPEL chứa logic, có thể gọi một số dịch vụ và kết hợp các phản hồi của chúng thành một phản hồi dịch vụ duy nhất.
Vũ đạo dịch vụ : logic quyết định được phân phối, không có điểm tập trung. Bạn có thể tưởng tượng một ngôi nhà, nơi mọi người đều nhắm đến lợi ích chung và hoạt động tích cực mà không cần quản lý vi mô. Hoặc bạn có thể tưởng tượng một cơ thể con người, nơi các thành viên khác nhau phụ thuộc lẫn nhau và làm việc cho mục tiêu chung. Một ví dụ thực tế là xử lý theo hướng sự kiện, trong đó một tác nhân được kích hoạt bởi một sự kiện và thực hiện công việc của nó. Tất cả các tác nhân làm cho một hệ thống với nhau. Không có logic tập trung. Khả năng vũ đạo có thể đi xa hơn ngoài dàn nhạc vì nó phù hợp hơn với thế giới thực.
Ý kiến của tôi là chúng ta không cần phân biệt nhiều giữa hai điều này, vì chúng ta cần tập trung vào logic kinh doanh. Trường hợp một điểm logic duy nhất thực hiện công việc, chúng tôi thực hiện phối hợp. Khi một vấn đề không thể được bao phủ bởi logic tập trung, chúng tôi buộc phải biên đạo bằng mọi cách. Đó là lý do tại sao chúng ta thường bắt gặp sự phối hợp trong CNTT, trong khi đó, vũ đạo vẫn là một khái niệm học thuật và là một chủ đề cho nghiên cứu. Và rất thường xuyên chúng tôi làm vũ đạo mà không thực tế biết nó, như trong thế giới thực.
Dịch vụ có thể được phân biệt giữa dịch vụ nguyên tử và dịch vụ bao gồm các dịch vụ khác. Các tác phẩm như vậy được gọi là "dàn nhạc". Đôi khi quy trình làm việc, đôi khi quy trình kinh doanh. Chẳng hạn, BPEL là một ngôn ngữ phối hợp, nhưng tự gọi nó là "ngôn ngữ thực thi quy trình kinh doanh".
Không có yêu cầu rằng các dịch vụ cần phải được phân cấp. Điều đó có nghĩa là, hai dịch vụ có thể nói chuyện với nhau. Giao thức chạy giữa chúng được gọi là "vũ đạo". Nó có thể là hai dịch vụ, nhưng thông thường, có nhiều hơn hai dịch vụ liên quan. Mỗi dịch vụ trong một vũ đạo có thể được coi là người điều phối các dịch vụ đối tác. Mỗi dịch vụ tham gia vào một vũ đạo có thể được nhận ra là quy trình phối hợp / quy trình làm việc / quy trình.
Một dàn nhạc cho thấy hành vi hoàn chỉnh của từng dịch vụ trong khi vũ đạo kết hợp các mô tả hành vi giao diện của từng dịch vụ.
Một bài báo khoa học tốt phân biệt vũ đạo, hành vi giao diện, hành vi của nhà cung cấp và dàn nhạc là một bài sau: Dijkman, R. & Dumas, M. Thiết kế hướng dịch vụ: Tạp chí quốc tế về hệ thống thông tin hợp tác quốc tế, 2004, 13, 337-368
Vì chủ đề đã cũ nhưng vẫn viết cho nó cho những người sẽ vấp ngã ở đây để tìm kiếm câu hỏi này như tôi đã làm. Đây là câu hỏi được tranh luận nhiều trong kiến trúc hướng dịch vụ (SOA) cần giải thích rõ ràng hơn cho người mới bắt đầu.
Dàn nhạc: Quá trình thực thi
Vũ đạo: Hợp tác nhiều bên
Vũ đạo, ngược lại, không dựa vào một điều phối viên trung tâm. Thay vào đó, mỗi dịch vụ Web liên quan đến vũ đạo sẽ biết chính xác khi nào thực hiện các hoạt động của nó và với ai sẽ tương tác. Vũ đạo là một nỗ lực hợp tác tập trung vào việc trao đổi thông điệp trong các quy trình kinh doanh công cộng.
Tất cả những người tham gia vũ đạo cần phải nhận thức được quy trình kinh doanh, các hoạt động để thực hiện, thông điệp để trao đổi và thời gian trao đổi tin nhắn.
Vũ đạo so với dàn nhạc
Từ góc độ sáng tác các dịch vụ Web để thực hiện các quy trình kinh doanh, phối hợp là một mô hình linh hoạt hơn và có những ưu điểm sau so với vũ đạo:
Sự phối hợp của các quá trình thành phần được quản lý tập trung bởi một điều phối viên đã biết.
Các dịch vụ web có thể được kết hợp mà không cần biết rằng họ đang tham gia vào một quy trình kinh doanh lớn hơn.
Andrei và những người khác đã làm rất tốt khi giải thích thế nào là dàn nhạc và thế nào là vũ đạo. Đối với kiến trúc sư phần mềm lựa chọn giữa hai lựa chọn thay thế này, điều quan trọng là so sánh chúng với các phẩm chất khác nhau.
Dàn nhạc cộng với vũ đạo
Vũ đạo cộng với dàn nhạc
Hiệu suất: Dàn nhạc phát sinh chi phí hiệu suất do diễn giải kịch bản quy trình công việc và lớp bổ sung của chính nền tảng điều phối.
Chi phí: Vũ đạo không yêu cầu thêm phần mềm trung gian hoặc ngôn ngữ, có liên quan đến đường cong học tập và gánh nặng quản trị.
Một giải pháp điều phối có thể giới thiệu SPOF nếu phần tử dàn nhạc không sử dụng cơ chế cho tính sẵn sàng cao. Cảm ơn @Deepak por chỉ ra điều này trong một bình luận.
Tôi muốn nói rằng vũ đạo rất phù hợp trong nội bộ cho các tổ chức phi tập trung cao. Bạn sẽ không cần một người thực hiện quy trình kinh doanh trung tâm. Điều này tạo điều kiện cho sự tăng trưởng và phát triển độc lập của mỗi đơn vị tổ chức.
(Tôi đăng ký bản giải thích về dàn nhạc so với câu hỏi về vũ đạo: http://geekexplains.blogspot.com/2008/07/ways-of-combining-web-service.html )
Phối hợp rất hữu ích khi bạn có quyền kiểm soát tất cả các tác nhân trong một quy trình - khi tất cả họ ở trong một miền kiểm soát và bạn có thể ra lệnh cho các hoạt động. Điều này tất nhiên là thường xuyên nhất khi bạn chỉ định một quy trình kinh doanh sẽ được ban hành trong một tổ chức mà bạn có quyền kiểm soát.
Vũ đạo là một cách chỉ định làm thế nào hai hoặc nhiều bên - không ai trong số họ có quyền kiểm soát các quy trình của các bên khác, hoặc có thể thấy bất kỳ quy trình nào - có thể phối hợp các hoạt động và quy trình của họ để chia sẻ thông tin và giá trị. Sử dụng vũ đạo khi cần phối hợp giữa các lĩnh vực kiểm soát / khả năng hiển thị. Bạn có thể nghĩ về vũ đạo, trong một kịch bản đơn giản, giống như một giao thức mạng. Nó ra lệnh các mẫu yêu cầu và phản hồi chấp nhận được giữa các bên.
Một cách khác để xem Dịch vụ phối hợp so với vũ đạo:
- Dịch vụ phối hợp: Xung quanh một lĩnh vực kinh doanh.
- Vũ đạo dịch vụ: Trong số nhiều lĩnh vực kinh doanh.
Trong dàn nhạc, có một nhạc trưởng và có người chơi nhạc cụ. Người chơi chơi theo cách dẫn của nhạc trưởng. Nếu dây dẫn được thay thế, biểu thức điều hòa sẽ khác, tức là nó vẫn chơi (dịch vụ) giống nhau nhưng có kết quả khác. Ví dụ: để cung cấp đề xuất sắp xếp tài chính, dịch vụ điều phối sẽ tiến hành bằng cách yêu cầu (gọi) từng người chơi (thực thể hoặc dịch vụ tiện ích, ví dụ: kiểm tra tín dụng) để chơi (trả kết quả hoặc điều chỉnh / cập nhật cách chơi) theo mẫu của nhạc trưởng quy tắc). Trong vũ đạo, có một biên đạo múa và có các nhóm vũ công. Vũ đạo là một hướng, nhưng mỗi nhóm vũ công đều tự chủ trong cách nhận ra hướng đó.
Một dàn nhạc thường liên kết với nhau các dịch vụ cấp thấp hơn. Nó giống như một trung gian hòa giải . Một vũ đạo giúp giảm khớp nối hơn nữa. Tôi đã giải thích điều này chi tiết hơn ở đây .