概要设计背景:

     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的博客相关推荐

  1. ORA-01841 :(完整)年份必须介于-4713和+9999之间,而不是0 Kaki的博客

    ORA-01841 :(完整)年份必须介于-4713和+9999之间,而不是0 Kaki的博客 我遇到这个问题的原因是因为数据中有空格,导致tochar('','')无法正常解析.请检查是否是数据问题 ...

  2. Launching xxxx has encountered a problem Kaki的博客

    Launching xxxx has encountered a problem Kaki的博客 最近在使用mokito写测试案例时出现这个问题,由于我们使用的时公司自己封装的JDK所以出现这个问题 ...

  3. Cannot find class in classpath TestNG 测试案例报错 kaki的博客

    我本地使用的是Eclipse 跑的testNG,maven工程.出现这个错误后,我点击项目 maven -> update project ,之后编辑完,重新执行测试案例就可以了. 欢迎点赞关注 ...

  4. java dateutils_Java DateUtils java时间工具类 kaki的博客

    import java.text.SimpleDateFormat; import java.util.*;java /** * 日期操做工具类 */ public class DateUtils { ...

  5. js获取浏览器窗口页面宽度、高度的方法 kaki 的博客

    js获取浏览器窗口页面宽度.高度的方法 不多说,直接上代码 alert($(window).height()); //浏览器时下窗口可视区域高度 alert($(document).height()) ...

  6. 贵金属系统外出入库管理理解与总结 kaki的博客

    流程图 业务名词解析:         系统外出库:意思是贵金属例如 "20克金条" 从金条生产厂家,运送到我行金库,其存储的过程称为"贵金属系统外入库".当金 ...

  7. 写技术博客的一些心得分享

    写技术博客的一些心得分享 作者: Grey 原文地址: 博客园:写技术博客的一些心得分享 CSDN:写技术博客的一些心得分享 写博客有很多好处,见[BetterExplained]为什么你应该(从现在 ...

  8. 多人开源博客系统再搜集

    Posted on October 22, 2006 by kunstao 现在很多人在找多用户blog,我列出的大部分都说自己支持多用户,但实际上多用户有两种,一种是多人共同维护一个blog,另一种 ...

  9. 常见博客Blog托管提供商评测

    常见博客Blog托管提供商评测 作者:Tuenhai.com MSN: king#tuenhai.com 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明 http: ...

最新文章

  1. oracle 分区表的建立方法
  2. __name__属性
  3. Ubuntu下pip安装、升级、卸载
  4. Node — 第六天(前后端分离)及(身份验证)
  5. Python 全栈开发十 socket网络编程
  6. Mybatis 在 IDEA 中使用 generator 逆向工程生成 pojo,mapper
  7. python编辑器背景设置为黑色_VScode 配置为Python编辑器
  8. 项目管理学习总结(10)——项目经理需要具备8点管理素质
  9. C++输入输出操作符重载
  10. Dart基础第14篇: 库 自定义库、系统库、第三方库
  11. 程序员应该做的事(转自CSDN)
  12. Dubbo 的设计思想,真优秀!
  13. 【Android 逆向】加壳技术识别 ( VMP 加壳示例 | Dex2C 加壳示例 )
  14. Layout state should be one of 100 but it is 10起因和解决
  15. 星河互联刘玮玮:Echo卖疯了,为什么擅长制造爆款的中国人又没跟上?
  16. 数学建模Latex简易模板
  17. 问佛__如果浮躁了,静下来看看,慢慢体会下
  18. MYSQL 知识点总结
  19. Android之Realm详解(非原创)
  20. Linux配置SSH服务器

热门文章

  1. 高等学校计算机一级考试题库,2017全国计算机一级考试试题库
  2. Windows下NTFS无损转换FAT32格式
  3. Android debuglogger日志分析-自动重启
  4. 10年前计算机水平,十年前的老电脑配置是啥样?系统要怎么装?今天算是见识了!...
  5. 零碎Java面试题收集
  6. Solr数据迁移ES
  7. 彻底清除硬盘上的.DS_Store隐藏文件!
  8. Linux权限数字:【r:读取权限用4表示、w:写入权限用2表示、x:执行权限用1表示】【7表示rwx、6表示rw-、5表示r-x、4表示r--】
  9. C语言strtoul()函数:将字符串转换成unsigned long(无符号长整型数)
  10. swagger请求报错:error:getaddrinfo ENOTFOUND