概要设计心得 kaki的博客
概要设计背景:
1.由于我们的上游C系统的解耦重构一系列优化, 使得我们B系统也要进行配合优化。
2.C 系统 采用的是EGL,COBOL 等语言编写,数据库使用DB2。本次C系统将部分功能逻辑使用Java语言及相关框架过渡开发。
3. B系统 采用JavaWeb模式,2020年做过Maven 重构,B系统较为庞大,其子系统包括(从B系统衍生出来的系统,非JavaWeb 系统 ),Kafka节点子系统,ATM节点子系统,移动端节点子系统等。
4.本次我方涉及配合改造内容是消息队列节点。
原消息队列模式:
C系统将消息推送至IP网关(老模式2001款),我方B系统主项目启动后会有个专门监听IP网关的一个功能,当C系统推送消息到IP网关后,我方可实时监听到消息,并对消息进行处理。
新消息队列模式:
C系统在Java Spring 平台生产消息,将消息存入到一张数据表中(Mysql 表),C 系统的Kafka节点会监听该表的变化,当有数据插入或者更新,Kafka 的消息生产者就会将消息推送至 Kafka 消费者群主。我们B系统只需要在我方的Kafka消费者节点配置上Topic等相关信息可以获得消息推送
详细设计分析:
源消息格式:
100000000000@@00000000000 E111F-SGA 999999 00200009980105431
第一步: 我们先假定C系统消息是这样的,该消息的获取方式为,先做一笔旧就交易获取。
第二步: 分析我们B系统原程序处理流程,及其分支的多种情况,这些情况需要列举在概要设计中,并告知C方。
第三步: 分支我方系统的kafka 消息接收方式。当了解了我方的kafka消息接收方式后,分析如何与我方系统进行消息的传递(注:由于系统原因,我方B系统 Java Web 项目未接入Dobbo 方式,但2016年我方对B系统进行增幅,建立了一个子系统(B-Service),该系统可以与B系统进行Http,XML的方式进行消息传输)。
第四步:B-Service 作为 B系统的对外代理系统,起到了承上启下的作用。
问题1:为什么不直接在B系统直接接到Dobbo服务?
答:B系统过于老旧,系统内容庞大,相关功能追溯至九几年,不易于较大改动。
问题2:为什么不直接用Kafka 消费者节点与B系统直接进行Http,XML形式的信息交互。
答:安全起见,B系统设计到很多账务信息,所以建议在外部设置一个代理系统。
第五步:最终定稿,将流程图绘制出来。
第六步:撰写概要设计,将思路与上层架构师进行描述,方案评审。与需求提出者进行交谈,然后最终定稿,实现。
心得:
1.态度:
对一个需求而言,设计者要从需求提出者的角度思考问题,同时设计者要从开发人员的角度考虑问题。思路一定要清晰,明确自己下一步要做什么,以及设计进度的把握。
2.沟通(communication):
要善于沟通,无论与上游C系统负责人,还是与B系统的开发人员,都要进行沟通。拿出敏而好学,不耻下问的精神。语气平和,勿急躁。一旦遇到自己解决不了,或者困惑的事情及时与自己的上层领导进行沟通。
面对面沟通 > 电话沟通 > 办公通讯软件沟通
注: > 为 大于号
本次是我第一次写概要设计
欢迎关注kaki 的码云,以及B站 KakiNakajima
码云直通车
概要设计心得 kaki的博客相关推荐
- ORA-01841 :(完整)年份必须介于-4713和+9999之间,而不是0 Kaki的博客
ORA-01841 :(完整)年份必须介于-4713和+9999之间,而不是0 Kaki的博客 我遇到这个问题的原因是因为数据中有空格,导致tochar('','')无法正常解析.请检查是否是数据问题 ...
- Launching xxxx has encountered a problem Kaki的博客
Launching xxxx has encountered a problem Kaki的博客 最近在使用mokito写测试案例时出现这个问题,由于我们使用的时公司自己封装的JDK所以出现这个问题 ...
- Cannot find class in classpath TestNG 测试案例报错 kaki的博客
我本地使用的是Eclipse 跑的testNG,maven工程.出现这个错误后,我点击项目 maven -> update project ,之后编辑完,重新执行测试案例就可以了. 欢迎点赞关注 ...
- java dateutils_Java DateUtils java时间工具类 kaki的博客
import java.text.SimpleDateFormat; import java.util.*;java /** * 日期操做工具类 */ public class DateUtils { ...
- js获取浏览器窗口页面宽度、高度的方法 kaki 的博客
js获取浏览器窗口页面宽度.高度的方法 不多说,直接上代码 alert($(window).height()); //浏览器时下窗口可视区域高度 alert($(document).height()) ...
- 贵金属系统外出入库管理理解与总结 kaki的博客
流程图 业务名词解析: 系统外出库:意思是贵金属例如 "20克金条" 从金条生产厂家,运送到我行金库,其存储的过程称为"贵金属系统外入库".当金 ...
- 写技术博客的一些心得分享
写技术博客的一些心得分享 作者: Grey 原文地址: 博客园:写技术博客的一些心得分享 CSDN:写技术博客的一些心得分享 写博客有很多好处,见[BetterExplained]为什么你应该(从现在 ...
- 多人开源博客系统再搜集
Posted on October 22, 2006 by kunstao 现在很多人在找多用户blog,我列出的大部分都说自己支持多用户,但实际上多用户有两种,一种是多人共同维护一个blog,另一种 ...
- 常见博客Blog托管提供商评测
常见博客Blog托管提供商评测 作者:Tuenhai.com MSN: king#tuenhai.com 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明 http: ...
最新文章
- oracle 分区表的建立方法
- __name__属性
- Ubuntu下pip安装、升级、卸载
- Node — 第六天(前后端分离)及(身份验证)
- Python 全栈开发十 socket网络编程
- Mybatis 在 IDEA 中使用 generator 逆向工程生成 pojo,mapper
- python编辑器背景设置为黑色_VScode 配置为Python编辑器
- 项目管理学习总结(10)——项目经理需要具备8点管理素质
- C++输入输出操作符重载
- Dart基础第14篇: 库 自定义库、系统库、第三方库
- 程序员应该做的事(转自CSDN)
- Dubbo 的设计思想,真优秀!
- 【Android 逆向】加壳技术识别 ( VMP 加壳示例 | Dex2C 加壳示例 )
- Layout state should be one of 100 but it is 10起因和解决
- 星河互联刘玮玮:Echo卖疯了,为什么擅长制造爆款的中国人又没跟上?
- 数学建模Latex简易模板
- 问佛__如果浮躁了,静下来看看,慢慢体会下
- MYSQL 知识点总结
- Android之Realm详解(非原创)
- Linux配置SSH服务器
热门文章
- 高等学校计算机一级考试题库,2017全国计算机一级考试试题库
- Windows下NTFS无损转换FAT32格式
- Android debuglogger日志分析-自动重启
- 10年前计算机水平,十年前的老电脑配置是啥样?系统要怎么装?今天算是见识了!...
- 零碎Java面试题收集
- Solr数据迁移ES
- 彻底清除硬盘上的.DS_Store隐藏文件!
- Linux权限数字:【r:读取权限用4表示、w:写入权限用2表示、x:执行权限用1表示】【7表示rwx、6表示rw-、5表示r-x、4表示r--】
- C语言strtoul()函数:将字符串转换成unsigned long(无符号长整型数)
- swagger请求报错:error:getaddrinfo ENOTFOUND