Vẽ sơ đồ tin nhắn trên xe buýt dịch vụ


9

Tôi đang tìm cách lập sơ đồ rõ ràng cách nhiều ứng dụng giao tiếp qua một bus dịch vụ. Điều tốt nhất tôi nghĩ ra cho đến nay là một sơ đồ trình tự, nhưng tôi thực sự không thích điều đó. Biểu đồ trình tự nhất thiết phải liên quan đến một số loại trình tự, và đó thực sự không phải là điều tôi muốn. Hơn nữa, vì mỗi dịch vụ giao tiếp với bus dịch vụ và sơ đồ trình tự đặt mỗi dịch vụ trên một cột riêng biệt, khi số lượng dịch vụ tăng lên, bạn kết thúc với rất nhiều mũi tên chồng chéo.

Ví dụ, với 4 dịch vụ FOO, BAR, BAZ, và QUX:

  • FOOxuất bản tin nhắn của loại xuất bảnregen .
  • BARxuất bản tin nhắn của loại yêu cầu .
  • BAZđăng ký các tin nhắn kiểu xuất bản , regenyêu cầu , và xuất bản các tin nhắn kiểu truyền .
  • QUXđăng ký tin nhắn của loại truyền .
  • Bất kỳ dịch vụ nào cũng có thể xuất bản bất kỳ loại tin nhắn bất cứ lúc nào (không có chuỗi ngụ ý).

Tôi nên sử dụng loại sơ đồ nào để thể hiện rõ ràng và rõ ràng thông tin này?

Đây là điều tốt nhất tôi đã nghĩ ra cho đến nay:
Sơ đồ trình tự

Câu trả lời:


5

Tôi đang tìm cách lập sơ đồ rõ ràng cách nhiều ứng dụng giao tiếp qua một bus dịch vụ.

Điêu đo thật tuyệt vơi. Thật không may, tôi không nghĩ rằng có thể cấu hình của bất kỳ sự phức tạp nào. Một sơ đồ trình tự cho các kịch bản đơn giản có lẽ là tốt như bất cứ điều gì khác.

Các thành phần trên xe buýt cả xuất bản và đăng ký tin nhắn. Một số thông điệp có thể liên quan đến nhân quả, tạo thành một giao thức. Thật khó để hiển thị đồ họa này, đặc biệt là các mối quan hệ nhân quả, khi có nhiều hơn một giao thức đang chơi trên xe buýt.

Sơ đồ xe buýt điện đã có từ lâu

sơ đồ xe buýt điện

nhưng họ đối phó với một lượng hàng hóa thống nhất (năng lượng điện) không phải là tín hiệu rời rạc.

Tôi thích hiển thị các tin nhắn được gửi (ở bên phải) và nhận (ở bên trái) theo từng thành phần (và cấu trúc kênh con / chủ đề, nếu có), nhưng một lần nữa đối với mọi thứ trừ các kịch bản đơn giản nhất, các sơ đồ nhanh chóng trở nên lộn xộn và gần như vô dụng .

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

Vì vậy, hãy quay trở lại một câu hỏi cơ bản hơn: mục đích của sơ đồ là gì? Bạn đang cố gắng thể hiện điều gì?

Nếu bạn đang cố gắng hiển thị mối quan hệ nhân quả giữa các thành phần và thông báo, thì việc lập sơ đồ một giao thức tại một thời điểm bằng cách sử dụng sơ đồ trình tự (hoặc tương đương) sẽ ổn.

Nếu bạn chỉ muốn hiển thị các giao thức để tham khảo, thì việc đặt các tin nhắn được gửi và nhận bởi mỗi thành phần sẽ là tài liệu đầy đủ, nhưng mối quan hệ nhân quả / tạm thời bị mất.

Chúc may mắn, và xin vui lòng cho chúng tôi biết nếu bạn tìm thấy hoặc phát minh ra bất cứ điều gì tốt hơn!


Cảm ơn vì đã dành thời gian trả lời. Đối với việc sắp xếp các thông điệp phức tạp ('cuộc hội thoại' trong 'giao thức') có, sơ đồ tuần tự là ổn. Nhưng hiện tại tôi đang cố gắng giải quyết một tổng quan cấp cao về dịch vụ nào chịu trách nhiệm xuất bản một loại tin nhắn nhất định và dịch vụ nào có thể bị ảnh hưởng bởi một loại tin nhắn nhất định, không thực sự là chuỗi các tin nhắn liên quan. Tôi hy vọng về một cái gì đó được tiêu chuẩn hóa, nhưng nếu tôi kết thúc việc phát minh ra cái của riêng mình, nó có thể trông rất giống với sơ đồ xe buýt điện mà bạn đã đưa ra làm ví dụ.
pswg

@pswg: bạn được chào đón. Đã thêm sơ đồ ví dụ, được xây dựng bằng Balsamiq Mockups. Tôi sử dụng các vòng tròn nhỏ để làm nổi bật các điểm kết nối, trong trường hợp tôi cần chú thích các cổng hoặc các ràng buộc khác
Steven A. Lowe

Vâng, một cái gì đó như thế này sẽ làm việc. Tôi nghĩ rằng tôi thích các mũi tên nhỏ trong sơ đồ điện để có sự phân biệt trái / phải, nhưng điều này cho tôi một số ý tưởng.
pswg

@pswg: tôi tìm thấy những mũi tên nhỏ cản đường cho sơ đồ lớn hơn;) Các thành phần điện hiếm khi (mà tôi đã thấy) tiêu thụ và sản xuất điện, vì vậy mũi tên là tĩnh. Đó là lý do tại sao tôi đi với sự phân biệt trái / phải (tùy ý). Tôi cũng cố gắng đặt các tin nhắn đến gần hộp hơn cho thành phần và các tin nhắn đi gần hơn với tuyến xe buýt - nhưng chắc chắn đó không phải là một giải pháp lý tưởng. Nhìn về phía trước để xem những gì bạn đến với!
Steven A. Lowe
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.