博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
日常工作小结(十)
阅读量:6412 次
发布时间:2019-06-23

本文共 1021 字,大约阅读时间需要 3 分钟。

  hot3.png

    有这样一个老项目,CS架构,通过串口给一种设备提供配置管理。客户端登录成功后,会在本地保存一份配置文件(所有的配置信息全部保存在这个配置文件中,XML格式,相当庞大),之后所有的操作都是基于这份配置文件的修改。当用户确认无误后,将配置文件上传至服务端,然后通知服务器更新配置信息。

    因为一些特殊需要,要将之前的CS架构换掉,原因就是客户端配置管理用户体验不好(好多年前的老项目,该有的联动都没有,不合理的地方也多),想换成BS架构,也就是为这类型设备提供一套新的管理系统。因为时间比较紧急等原因,服务端代码要尽量少的改动,数据格式照旧。

    管理系统使用了SSH架构,将庞大的配置按照功能模块做了划分,数据分散到不同的数据库表中。登录到管理系统后,管理员所有的操作都最终反映到数据库中。当用户确认无误后,提供上传配置按钮,后台会从数据库表中取出相关信息,装配成服务端需要的配置格式(XML),通过服务端提供的接口(HTTP协议),发送给服务端。

    当初时间紧急,只出了概要设计,就进入了编码阶段,2个星期时间,管理系统编码结束。原以为现有的管理系统要取代之前的配置工具,结果被告知,两者要共存,问题出现了:原来的配置管理在修改配置信息后,将与现有的管理系统数据不一致

    想到的解决办法就是:每次在登录现有的管理系统时,都去向服务端取配置文件的摘要,和现有系统可以生成的配置文件摘要做对比,如果发现不一致,则向服务端下载配置信息,解析该配置文件,将所有的数据更新到现有系统的数据库中。个人感觉这样虽然可以解决问题,但是感觉上去怪怪的。

    这项更新配置操作,有可能配置文件只是改动了一个属性的值,而现有系统也得需要遍历所有的配置项,一一更新到数据库中(哪怕数据没有修改),最让人难受的 是原来的配置文件为了可读性,根本没有主键的概念,所以更新操作也是个麻烦事。而且这项配置耗时可能比较长,采取什么样的方式让用户不用去等,也是需要考 虑的。

    我的意见有下:(1)二选一,升级原来的配置管理工具,在之前的基础上完善。或者使用现有的管理系统进行管理--最简单。(2)所有的操作集中到一端,例如,由服务端提供接口(增删改查),所有的操作直接反应到服务端 --需要服务端功能细分,几乎重新设计 。(3) 就是上面那种向现实妥协的方案...。

    很想听听大家对这类型项目的看法。

转载于:https://my.oschina.net/vbird/blog/205503

你可能感兴趣的文章
《深入理解Java虚拟机》——GC基础概念
查看>>
微信小程序联盟:官方文档+精品教程+demo集合(5月31日更新,持续更新中……)...
查看>>
Fastjson 的 Set类型和 WriteClassName 选项引起的BUG
查看>>
翻译: 星球生成 II
查看>>
IOS 多线程
查看>>
python序列化数据本地存放
查看>>
比较不错的图片上传插件
查看>>
判偶不判奇
查看>>
Sequelize 数据库的支持
查看>>
BigDecimal类的加减乘除
查看>>
node.js发送邮件email
查看>>
查看nginx配置文件路径的方法
查看>>
接口性能调优方案探索
查看>>
kali安装包或更新时提示“E: Sub-process /usr/bin/dpkg return”
查看>>
网站管理后台模板 Charisma
查看>>
EL:empty的用法
查看>>
Saltstack配置之 nodegroups
查看>>
Servlet和JSP优化经验总结
查看>>
squid使用rotate轮询(分割)日志
查看>>
VS2015安装EF Power Tools
查看>>