使用yEd editor自动生成系统间关系图

在做很多项目的时候,都需要分析应用系统之间或者服务器之间的访问、关联关系,但关系的展示和分析,一直是个比较麻烦的事情。收集回来的数据,一般都是表格形式的,不太方便展示和分析。

然而根据表格,手工画图的话,一方面是比较繁琐,也很难画的美观,更重要的是,对于关联关系复杂的环境,画出来的图根本没法看,也没法分析和使用,往往就成了个装饰,除了表现出关系错综复杂,就没有别的用处了。

image.png

可能经常最后得出的是一幅类似上面这样的图。

在网上找到一款软件,yEd 可以比较方便的完成这个工作,不但可以根据表格的数据自动化的绘图,也能进行一定的分析。

image.png

这个软件有多种版本,包括开发用的 SDK,离线编辑版和在线版本等。 具体可以看 yWorks – Downloads

我们主要用到的是其中的 yEd Graph Editor ,Windows、MACOS、Linux 都支持,可以导入 Excel 文件生成图形并分析。

1. 数据导入

安装后可以选择打开 Excel 文件,导入数据分为两种类型,一种是邻接矩阵(Adjacency Matrix),一种是连接列表( Edge List)。实际上这是两种不同的方式描述连接关系。

我们假设有这样一个银行环境,有如下这些系统:

系统名称分类
核心银行行内系统
网银行内系统
手机银行行内系统
门户网站行内系统
银联行外系统
柜面系统行内系统
ATMP行内系统
OA 系统行内系统
邮箱系统行内系统

系统间的连接关系,如下表(纯举例,无实际意义):

源节点目标节点连接类型
核心银行ATMP双向连接
核心银行柜面系统双向连接
门户网站核心银行单向连接
核心银行手机银行双向连接
核心银行网银双向连接
网银银联双向连接
OA 系统邮箱系统双向连接

1.1 邻接矩阵(Adjacency Matrix)

如果是邻接矩阵表示上面的关系,可以是如下的表格:

 核心银行网银手机银行门户网站银联柜面系统ATMPOA 系统邮箱系统
核心银行011001100
网银100010000
手机银行100000000
门户网站100000000
银联010000000
柜面系统100000000
ATMP100000000
OA 系统000000001
邮箱系统000000010

0 表示无关系,1 表示有关系。

然后在 yEd 中,打开这个 Excel 表格文件,在“Data”页选择对应的内容

image-20240415105750469

然后在“Presentation”页的“Label Text”选择 “Node Label”,并勾选“Fit Size to Label”,用于生成的图上标记节点名称。

image-20240415110341251

其他的可以先不用设置,确定后就可以得到一幅关联关系图了。

image-20240415110525870

1.2 连接列表(Edge List)

如果同样的关系,还可以用连接列表的方式表示,可以直接使用下面的表格,一行是一条连接关系。

源节点目标节点连接类型
核心银行ATMP双向连接
核心银行柜面系统双向连接
门户网站核心银行单向连接
核心银行手机银行双向连接
核心银行网银双向连接
网银银联双向连接
OA 系统邮箱系统双向连接

然后打开该 Excel 表格,选择相应的数据区域。

image-20240415151135884

即可生成关系图。

image-20240415151354968

生成后你会发现,默认的箭头是单向的,体现不出双向连接的关系。当然,你可以把表格补充完整,增加比如源为“ATMP”,目标为 ” 核心银行 ” 的行,但其实可以不用这么麻烦,我们可以直接编辑属性的映射。

选择菜单 Edit 下的 Properties Mapper…,新增一个 Edge Configuration。增加一个 Data Source,内容为“连接类型”(即上面表格 C 列的表头),映射选”Source Arrow”,然后在下方,增加 Mapping,内容为 ” 双向连接 “,然后选一个箭头类型。

image-20240415151827917

意思是,凡是该行“连接类型”一列内容为 ” 双向连接 ” 的。则它的源也有一个箭头。

应用以后,就有了双向箭头的图了。可以看到,门户网站到核心银行因为是单向连接,所以是单向箭头,其他的都已变为双向箭头了。

image-20240415152228548

利用这个功能,还可以有很多别的效果,比如再加一列,区分行内和行外系统,让导入的时候,行内系统的节点一种颜色,行外系统的节点用另一种颜色,甚至换用不同的形状图标等等都可以,大家有兴趣可以自己去试试。

2. 分析数据

2.1 图形样式

可以通过菜单上的“Layout”一键更换各种样式,软件内置了非常多的图形样式,可以自定义自己想生成的关系图样式。

image-20240415111405649

当然你也可以直接编辑某个节点或者关系线的样式,也可以随意拖拽节点或者关系线。

2.2 节点关系

点击某个节点,左侧的“Neighborhood”可以直接显示出该节点的关系,有助于分析。比如点击 ” 核心银行 “,则显示:

image-20240415111810873

在“Tools”菜单中,还有不少分析工具,比如 “Centrality Measures” 可以识别重要节点,比如根据节点连接关系的多少,显示不同的颜色或大小。颜色越深、形状越大的节点表示连接关系越多。

image-20240415112919578

可以结合“Tools”中的”Auto Alignment”对图形做一些自动化的规整,大家自己试一下就知道了。

2.3 节点分组

另一个很有用的功能是分组,在菜单“Group”,中选择 “Auto Grouping”,就可以根据连接关系一键对节点进行分组。也就是我们可以比较容易的进行应用系统的分类。在划分系统群和设计比如系统迁移批次时很有用。比如上面的图,使用自动分组功能,效果如下(根据连接关系自动分为了两组,一组 7 个应用系统,一组 2 个应用系统):

image-20240415113449494

2.4 内容分享

最后完成的图,如果需要分享,可以通过 yEd 的在线版进行分享(需要 github 账户) yEd Live

3. 其他样例

前面分享的是应用系统关系图,实际上比如网络访问关系图也可以用类似的方式自动生成。

源节点源端口目标节点目标端口
192.168.1.11234192.168.1.25678
192.168.1.28000192.168.1.18080
192.168.1.38000192.168.1.18080

可以生成类似下图的效果:

image-20240415155917159

当然,具体样式都可以自己去编辑。

其他更多使用说明,可以参考 yEd的说明文档

© 2024, QP. 版权所有.

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇