目标:开发基于Web的NMS界面,该界面显示网络拓扑(例如,交换机,路由器,链接,端主机)。每个节点应该是“可移动的”(可手动拖动到适当的位置或通过算法计算它们的最佳位置)。我应该能够放大网络图(例如,如果有许多节点集群,我想专注于特定的节点集群)。我应该能够右键单击任何节点或链接并获得上下文菜单(例如,“显示路由表”,“显示接口”,“显示带宽利用率图”等)。
通过调用基于apache的web服务器来获取此网络拓扑的数据,其中python中的后端脚本将获取适当的数据并通过JSON将其发送到Web客户端。
问题:我假设某种javascript库/框架最适合这个 - jQuery,Dojo,Moo等[我之前从未使用过任何这些]。对于这类事情,最推荐哪一种。哪个最容易学习(比如在几个月的时间里)。
答案 0 :(得分:1)
thejit的人们使用javascript和HTML画布在多数据表示中做了一些非常棒的工作。它们具有基于在网络中连接节点的交互式接口,您可以放大和缩小它们以获得更多信息。
我相信你可以调整它以获得你想要的结果。
静态JSON树结构用作动画的输入,这也是你想要的。
答案 1 :(得分:0)
鉴于您要求的复杂性,我建议使用Silverlight或Flash。
如果您了解C#,那么Silverlight是最简单的选择。
jQuery很棒但是在C#/ Silverlight中操作2D图形和执行复杂的布局算法会更容易。
答案 2 :(得分:0)
jQuery可以帮助您进行拖放操作。使用jQuery,快速创建应用程序也非常容易。 但是您必须使用大量节点(交换机,路由器,链接,端主机)进行测试,以确定浏览器应用程序是否能够在复杂性方面管理您的目标。
您可以在此处拖放简单的图形表单示例: http://helpdesk.toitl.com/?w=drag_drop
现在,在您的应用程序中,您只需将每个表单与其他表单链接即可。如果移动节点,请保留链接。