背景:
由于历史原因,公司核心算法基于Delphi7.0设计。经过10多年的迭代已经基本稳定并且高效运行。鉴于CS向BS开发的转型需要,以迭代最小化原则,将其封装在服务器端作为业务中间件部署,故需要定制一套通信接口协议并实现灵活开发,保证核心业务算法不变的前提下实现前端数据调用与展示。
过程:
经过多种架构方案对比,最终选择了基于MVVM设计思路的Vuejs做View端;通过WebSocket请求后端业务处理数据(基于Delphi7.0不变);数据库选型通过Dapper支持主流关系型数据:SqlServer、Oracle、Sybase、Postgre;由于跨域访问的需要业务层中间件基于Nginx部署;
难点:
由于Dephi7.0版本过低,没有合适的WebSocket组件可使用,故需要使用Delphi7.0编写基于RFC6455的WebSocket服务器端;
优点:
解决了http协议中不能保存状态信息,同时可以规避轮询造成的服务器负载!
有待性能测试与完善:
客户端浏览器启动多个websocketclient,性能阈值测试,并发数测试!