Trực quan hóa đồ thị phân lớp bằng phương pháp Sugiyama


Ngô An Hạ
3 năm trước
Hữu ích 6 Chia sẻ Viết bình luận 0
Đã xem 6237

Một trong những tiện ích bổ sung gần đây nhất cho giải pháp giám sát Plumbr tình cờ là phát hiện và trực quan hóa kiến ​​trúc ứng dụng. Hình dung này cung cấp cho bạn một cái nhìn tổng quan về cách người dùng cuối của bạn đang truy cập các thành phần cơ sở hạ tầng khác nhau trong cơ sở hạ tầng của bạn.

Tính năng này được phân tách hiệu quả thành hai bản nhạc riêng lẻ: thu thập dữ liệu và trực quan hóa. Tôi đã bị thuyết phục rằng những thách thức sẽ liên quan đến theo dõi thu thập dữ liệu. Hình dung ban đầu được coi là một bài tập tầm thường. Rốt cuộc, có vô số thư viện trực quan hóa đồ thị ngoài kia, do đó, việc lấy thư viện phù hợp và mát xa dữ liệu phụ trợ thành định dạng phù hợp là vấn đề. Đúng?

Chàng trai, tôi đã sai.

Những suy nghĩ sai lầm bắt đầu từ những yêu cầu. Hình ảnh đơn giản như sau minh họa giải pháp chúng tôi có trong tâm trí:

Rõ ràng, thế giới thực là một nơi hỗn độn hơn rất nhiều so với bảng trắng. May mắn thay, tôi phát hiện ra điều này một cách nhanh chóng. Thời điểm chúng tôi có dữ liệu từ các triển khai trong thế giới thực, tôi bắt đầu sử dụng GraphViz để hiểu rõ hơn về các mô hình kiến ​​trúc trong thế giới thực. Rõ ràng, chúng trông giống như sau:

Rõ ràng là bạn không thể ném hàng trăm nút và hàng nghìn cạnh vào màn hình với hy vọng một thông dịch viên có thể hiểu bất cứ điều gì về nó. Các khía cạnh khác nhau, chẳng hạn như các vị trí nút và giao cắt cạnh làm cho kết quả không thể hiểu được. Vì vậy, trở lại bảng vẽ, hoặc, như trong trường hợp này, đọc tài liệu nghiên cứu.

Bước đầu tiên trong đường dẫn này rõ ràng là quyết định phương thức bố trí sẽ được sử dụng. Rõ ràng, tồn tại một số phương thức, mỗi phương pháp phù hợp với loại biểu đồ cụ thể và mục tiêu cụ thể trong tâm trí. Khi kiến ​​trúc ứng dụng thời gian chạy xảy ra được biểu diễn dưới dạng biểu đồ có hướng, chúng tôi đã thử nghiệm một số phương pháp được thiết kế để trực quan hóa các cấu trúc có hướng. Các thí nghiệm nhanh chóng tiết lộ rằng phương pháp tốt nhất đối với chúng tôi được gọi là vẽ đồ thị theo phong cách của Sug Sugiyama .

Lý do tại sao phong cách Sugiyama rất phù hợp để trực quan hóa kiến ​​trúc ứng dụng thời gian chạy là trong bản chất vốn có của cấu trúc mà chúng ta đang hình dung. Các biểu đồ được định hướng, chứa số lượng nút giới hạn nhiều hơn hoặc ít hơn và chỉ chứa một vài chu kỳ (lý tưởng là không). Luôn luôn có các nút bắt đầu và kết thúc và hầu như luôn luôn là các nút trung gian. Ngoài ra, các cạnh trên biểu đồ chứa giao cắt, số lượng thay đổi rất nhiều. Điều này thuận tiện để vẽ các biểu đồ như vậy từ trên xuống dưới với các nút khởi động ở các vị trí trên và chấm dứt các nút ở các vị trí thấp hơn (do đó, thuật ngữ xếp lớp đồ thị hình chữ nhật). Đi qua các triển khai trong thế giới thực khác nhau thực sự đã tiết lộ rằng các biểu đồ được vẽ theo kiểu xếp lớp hầu như luôn vượt trội về mặt thị giác so với các phương án, như phương pháp quang phổ, dựa trên lực hoặc cung.

Bây giờ sau khi hiểu phương pháp phù hợp với công việc, phần nghiên cứu của công việc đã kết thúc và các câu hỏi kỹ thuật tiếp theo. Vì nó thường xảy ra - khi bạn có câu hỏi đúng, câu trả lời rất đơn giản. Rõ ràng, các thư viện D3  cùng  với các động cơ bố trí Dagre đã thực hiện các visualization Sugiyama kiểu chúng tôi đang theo đuổi. Kết quả nhanh chóng chứng minh điều đó:

Tất nhiên, vẫn còn nhiều khía cạnh cụ thể cho miền mà công cụ trực quan hóa và bố cục không cung cấp, nhưng nền tảng đủ mạnh để sắp xếp từng vấn đề như vậy.

Như một sự thách thức, một lần nữa tôi đã xác nhận rằng hầu hết mọi vấn đề phức tạp đều có thể và nên được giảm xuống thành các khái niệm cơ bản tiềm ẩn. Làm như vậy giúp bạn phân loại nhiệm vụ trong tay đúng cách và tìm kiếm câu trả lời bằng cách sử dụng các câu hỏi chính xác.

Hữu ích 6 Chia sẻ Viết bình luận 0
Đã xem 6237