IDM数据校验功能开发心得
Posted 数通畅联
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IDM数据校验功能开发心得相关的知识,希望对你有一定的参考价值。
IDM身份管理系统为解决企业内部多系统之间的用户信息不一致而开发的,主要定位于解决企业在5A功能上的需求,即:Account账号管理、Authentication认证管理、Authorization授权管理、Audit审计管理、App Control应用管控5个方面的实际需求,进而规范用户身份信息,保证系统安全,提高工作效率。
一直以来IDM在数据同步和分发上都有不准确的问题,随着系统的日益稳定,不准确的数据虽然越来越少,但是隐藏起来的不准确数据会越来越难发现,加上在遇见问题后,反馈速度慢,无法及时定位问题,因此数据隐患一直被隐藏,导致集团数据管理很被动,无法提前对有问题的数据进行处理。因此开发了数据校验功能,实现定期将IDM数据和业务系统数据进行对比,保证问题数据能够提前定位和处理。现将学习经验和心得体会总结如下。
1.产品介绍
IDM身份管理平台满足对企业信息系统的统一用户管理、统一身份认证、统一授权管理以及安全审计的要求,能够实现各业务系统的统一登录和集中访问,实现用户身份和权限的统一认证与授权管理,为企业不同的业务系统提供统一的用户管理和认证服务。
1.1.功能架构
1.基础管理:包括组织管理、角色管理、人员管理。系统操作员可以录入操作信息,新录入的信息需要流程审核之后才能生效。
2.应用管理:包括应用配置和应用分组。对各个应用系统的相关信息进行配置,可以设置不同分组,方便管理应用配置中的数据。
3.操作管理:对基础管理模块中的操作统一进行管理,可以进行提交、生成任务、审核等操作。
4.统一权限:对其他应用系统的数据资源、接口资源和功能资源信息及对应的权限进行管理。
5.统计分析:让客户从不同角度了解信息变化,页面使用echarts图表形式显示统计信息,点击图表会跳转到对应的功能模块或弹出过滤后的列表信息页面。
6.系统管理:对IDM系统的基本功能进行管理。
1.2.功能介绍
数据校验功能主要对分发业务系统的数据进行校验分析,查看下发业务系统数据和IDM的数据是否不同,并且生成校验日志,给出错误报告,进一步把控了各个业务系统的用户信息一致性,实现统一用户的功能。该功能主要分为校验任务和校验日志两个模块。
1.校验任务:进行规则定义,由IDM触发,调用业务系统接口,进行数据比对,并接收对比后的数据结果,进行分析展示(规则由IDM定义,业务系统配合处理)。
2.校验日志:主要显示出业务系统数据和IDM数据不一致的内容,方便IDM管理员进行数据问题分析,定位。
2.功能说明
数据校验功能需要扩展校验任务和校验日志两个模块,校验任务模块主要实现配置对应校验任务的功能,校验任务执行后,如果数据不一致,会生成对应的校验日志,将不一致的信息在校验日志模块显示出来。还需要在扩展字段表中扩展“是否是基础信息”字段,预制组织、人员、岗位的基础字段信息,可以在校验任务中选择对应的基础字段进行校验。
2.1.扩展字段
1.在扩展字段中添加“是否是基础信息”字段。
2.预制基础信息字段数据,把组织、人员、岗位对应数据库表的字段信息录入到扩展字段数据表中。
2.2.校验任务
1.新增一个校验任务配置功能,可以根据不同应用系统进行配置。
(1)此功能左侧是应用树,右侧是任务列表,双击弹窗配置页面。
(2)可以配置不同的需要校验的字段。
(3)支持定时调度,配置定时时间。
2.支持任务调度:
(1)手动点击执行调用服务拉取业务系统数据,然后与IDM内部数据进行对比。
(2)定时执行,支持通过配置定时调度对业务系统进行校验,比如每天、每周等。
2.3.校验日志
1.校验日志功能左侧为应用树,右侧是错误信息日志列表,双击一条数据会弹出日志明细页面。
2.日志列表页面显示,某条数据的数据类型(组织、人员、岗位),数据编码、数据名称、错误字段个数和错误描述信息。
3.双击弹窗对比表单,显示目标系统和IDM系统的数据,不一致的字段会以红色字体标记出来。
4.支持导出Excel报表功能。
3.开发过程
数据校验功能需要开发一个esb流程,实现根据校验IDM和目标系统数据并向校验日志中插入数据的功能。还需要开发校验日志插入接口,能够使用esb调用该接口向对应表中插入校验日志信息。下面主要介绍用到的数据库表、页面效果和实现功能的过程。
3.1.数据库表
主要介绍要用到的数据库表以及之间的关联关系。
1.扩展字段表:idm_metadata
2.校验任务表:idm_check_task
3.校验日志表:idm_check_log
关联关系:
3.2.接口设计
新增“http://localhost:3030/idm/openapi/DataCheckReceive?_wadl”接口,用来向校验日志表中插入数据。
入参:
入参样例:
[
{
"checkCode":"empCheck",
"code":"IDM0000666",
"name":"李中",
"state":"publish",
"type":"EMP",
"errorNum":"1",
"tagetJson":[
{
"name":"编码",
"code":"EMP_CODE",
"value":"IDM0000665 ",
"error":"true"
},
{
"name":"名称",
"code":"EMP_NAME",
"value":"李中 ",
"error":"false"
}
],
"sourceJson":[
{
"name":"编码",
"code":"EMP_CODE",
"value":"IDM0000666 ",
"error":"true"
},
{
"name":"名称",
"code":"EMP_NAME",
"value":"李中 ",
"error":"false"
}
],
"errorDesc":"人员编码不一致"
}
]
3.3.ESB流程
1.图1为是获取上述入参数据资源类型(组织、人员、岗位)、应用编码(appCode)、fieldMap(需要校验的字段集合)。
2.图2是根据入参应用编码获取token接口访问权限。
3.图3是根据资源类型调用组织全量接口获取IDM中组织全量数据。
4.图4根据入参应用编码获取对应应用系统的组织全量数据。
5.图5根据入参的字段集合处理应用系统的数据获取对应字段信息进行映射处理。
6.图6根据IDM数据和映射处理的应用系统数据进行校验对比。
7.图7根据校验后信息构建日志数据。
8.图8根据构建日志数据调用校验日志接口插入对应的信息。
4.开发心得
在本次对IDM数据校验功能开发过程中,自己的技术能力以及对IDM产品的理解等多方面都得到了很大提升,并有了很多感悟,现将我在本工作中的收获总结如下。
4.1.能力提升
在完善IDM产品的过程中,我在代码方面提升了很多,学习到很多之前没有接触过的知识点,不断完善自己的知识体系,自己的知识盲点也在不断扫除。虽然还有很多技术点没有接触到,但是随着对IDM产品的不断完善,我也要不断学习提升自身的技术能力,只有这样才能不断进步,跟上公司的步伐。
4.2.总结反思
在本次开发过程中,我发现自己考虑问题时过于片面,没有从整体的角度去看待问题,开发功能时没有考虑到后续的延用以及对产品性能的影响,而且从这次来看,自己对于一些技术点掌握的不是很到位,导致进度缓慢。因此在后续工作中,自己仍需要不断积累来夯实自己的基础,只有根基稳才能不断提高自己。
4.3.意识形态
通过本次开发,我体会到设计文档在功能开发中的重要性,设计是功能开发的方向,在接到工作任务后,不要马上着手去做,要先对工作内容进行沟通确认,明确大体方向后编写设计文档,在设计文档中要对开发过程进行详细的描述,这样才能对该功能的开发有更加深刻的理解,在开发过程中少走弯路。
另外在工作过程中要不断学习和总结,业余时间要多了解相关知识,多看相关文章,每天进步一点,日积月累就会积累很多,只有这样才能不断提高自身的能力,在遇到问题时也能快速找到解决的办法。
以上是关于IDM数据校验功能开发心得的主要内容,如果未能解决你的问题,请参考以下文章