Dàn nhạc so với vũ đạo


Câu trả lời:


334

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ụ.

Dịch vụ điều phối

Đ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ụ.

Dàn nhạc

Biên đạo 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

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ú.


7
Hình ảnh tuyệt vời để hiển thị hai! Nơi mà bạn đã nhận được chúng?
David Mann

6
@DavidMann Rất cám ơn bình luận của bạn, và vui lòng upvote nếu bạn nghĩ rằng nó hữu ích cho bạn. Tôi đã tạo ra những sơ đồ này trong Visio, và như nguồn cảm hứng, tôi đã sử dụng một số tài liệu trong sáng tác dịch vụ. Tuy nhiên, tôi nhận ra rằng câu trả lời này là 2 năm trước khi tôi mới bắt đầu đọc về thành phần dịch vụ. Tôi sẽ cập nhật câu trả lời này với các tài liệu tham khảo và mở rộng về quyền sở hữu của cả hai
Andrei

@Andrei: Không thể đơn giản hơn thế này.
Anshul Nigam

Có hợp lý để kết hợp dàn nhạc và vũ đạo? ví dụ: có sự phối hợp cho luồng công việc đồng bộ cốt lõi, nhưng sau đó một số vũ đạo để truyền các sự kiện không đồng bộ trở lại các khả năng nguồn (microservice). Trong kịch bản của tôi, cách tiếp cận này có thể giúp tôi tiết kiệm được logic / bộ máy trạng thái và logic bù.
Ryan.Bartsch

1
Một số độc giả có thể suy luận từ sơ đồ phối hợp của bạn rằng phối hợp có nghĩa là các yêu cầu đồng bộ từ dịch vụ kiểm soát đến cung cấp dịch vụ. Tôi muốn làm rõ rằng giao tiếp Gọi-Trả lời cũng có thể được thực hiện bằng các phương thức không đồng bộ, inc. thông qua một nhà môi giới tin nhắn.
Christoph

34

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.


21

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


19

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

  • Được sử dụng trong các quy trình kinh doanh tư nhân
  • Một quy trình trung tâm (có thể là một dịch vụ Web khác) kiểm soát các dịch vụ Web có liên quan và điều phối việc thực hiện các hoạt động khác nhau trên các dịch vụ Web liên quan đến hoạt động
  • Các dịch vụ Web có liên quan không "biết" (và không cần biết) rằng chúng có liên quan đến quá trình sáng tác và chúng đang tham gia vào quy trình kinh doanh cấp cao hơn.
  • Chỉ có điều phối viên trung tâm của dàn nhạc là nhận thức được mục tiêu này, vì vậy việc điều phối được tập trung với các định nghĩa rõ ràng về hoạt động và thứ tự gọi các dịch vụ Web.

nhập mô tả hình ảnh ở đây

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.

nhập mô tả hình ảnh ở đây

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.

  • Các kịch bản thay thế có thể được đưa ra trong trường hợp xảy ra lỗi.

1
Trên thực tế, vũ đạo thường dựa vào một điều phối viên trung tâm - và thường thì điều phối viên đó là một hình thức của nhà môi giới tin nhắn phân tán. Không sử dụng một cái gì đó giống như một nhà môi giới tin nhắn sẽ gắn kết các dịch vụ của bạn với nhau theo những cách rất không linh hoạt dẫn đến độ giòn và khả năng tái sử dụng thấp.
Rodney P. Barbati

8

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

  • Độ tin cậy: Nền tảng điều phối có hỗ trợ tích hợp để xử lý lỗi và quản lý giao dịch (bù giao dịch). Trong vũ đạo, quy trình làm việc được phát triển tùy chỉnh và xử lý lỗi có xu hướng dễ bị lỗi hơn.
  • Khả năng sửa đổi: Tạo và thay đổi quy trình công việc và các thành phần dịch vụ phức tạp dễ dàng hơn trong các công cụ BPM trực quan được tìm thấy trong các nền tảng phối hợp.

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ị.

BIÊN TẬP

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.


3
Ngoại trừ vũ đạo không yêu cầu phần mềm trung gian bổ sung. Yêu cầu (nhiệm vụ) cần phải được khớp với các nút khác nhau. Sau đó, vũ đạo được triển khai, ban hành, theo dõi và điều chỉnh. Tất cả quản lý này yêu cầu các công cụ thường được cung cấp bởi một phần mềm trung gian.
Andrei

1
Không phối hợp có mang lại nhược điểm của một điểm thất bại không phải là trường hợp với Vũ đạo?
Deepak

6

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 )


6

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.


5

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.


1

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 đó.


-1

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 .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.