惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Engineering at Meta
Engineering at Meta
博客园_首页
H
Help Net Security
WordPress大学
WordPress大学
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
罗磊的独立博客
博客园 - 三生石上(FineUI控件)
B
Blog
I
InfoQ
SecWiki News
SecWiki News
T
Tailwind CSS Blog
Spread Privacy
Spread Privacy
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
Vulnerabilities – Threatpost
N
Netflix TechBlog - Medium
P
Palo Alto Networks Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Vercel News
Vercel News
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
K
Kaspersky official blog
M
MIT News - Artificial intelligence
S
Schneier on Security
T
Threat Research - Cisco Blogs
F
Fortinet All Blogs
Cyberwarzone
Cyberwarzone
Scott Helme
Scott Helme
aimingoo的专栏
aimingoo的专栏
Martin Fowler
Martin Fowler
MyScale Blog
MyScale Blog
The Cloudflare Blog
Recent Announcements
Recent Announcements
Security Latest
Security Latest
G
GRAHAM CLULEY
IT之家
IT之家
Y
Y Combinator Blog
The Last Watchdog
The Last Watchdog
腾讯CDC
Google DeepMind News
Google DeepMind News
V
V2EX
S
Securelist
TaoSecurity Blog
TaoSecurity Blog
B
Blog RSS Feed
S
SegmentFault 最新的问题
博客园 - 叶小钗
P
Proofpoint News Feed
云风的 BLOG
云风的 BLOG
Project Zero
Project Zero
G
Google Developers Blog
Google DeepMind News
Google DeepMind News
F
Full Disclosure

QP's Blog

器材全家福 – QP's Blog 飞牛fnos的严重问题 – QP's Blog 增加了说说和相册 – QP's Blog 让NAS自动复制存储卡上的文件 – QP's Blog 尝试AI编程 – QP's Blog 我的摄影器材 – QP's Blog 复活 Bose Soundlink Mini 2 音箱 – QP's Blog 台北见闻 – QP's Blog 用电视看视频 – QP's Blog
使用yEd editor自动生成系统间关系图 – QP's Blog
2024-04-15 · via QP's Blog

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

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

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. 版权所有.