zoukankan      html  css  js  c++  java
  • winform集成第三方应用引起灾难性崩溃处理

      犹记得当年的喜悦。故事有些长,就长话短说了。

    背景

      2017年,由个人主导的《xx门诊电子病历系统》在北京xxx第一次正式上线,这个系统集成了n家院内系统,如LIS、HIS、PACS等。涉及的交互,复杂无比。当时通过各个厂商讨论后,采用了进程间通信、api/webservice数据交互的方式,改造程序,完美的将程序集成在一起,让用户在一个系统中能够快速的工作,替代以往多客户端来回切换的工作方式。

      而想要快速推广这种方式,需要厚实的功底。很可惜,我们的团队,并没有这种大牛。在开发之初,我就想到了以后可能需要和不同的医院作对接。因此,早期在搭建时,就设计了接口加反射的方式来实现不同医院的集成开发,实质是只要继承接口,实现接口即可

      问题就在这儿,并不是所有第三方提供的集成方式都稳定无比,也不是说我们的程序也能够稳定无比。

      有些灾难性错误压根就不能捕捉。

      随着系统逐步的推广上线了20多家时,我们研发越来越感到厚重。所有的问题,会越来越明确,越来越有统一性。

      这个当中就有今天所说的灾难性崩溃处理。

    处理过程

      1.全局异常捕捉日志细化,然并卵,如delphi程序、c++程序并不能捕捉到

      2.尝试反射出崩溃转存的文件,然并卵,我们这队伍并没有通用懂得汇编语言的人员。

      3.要求第三方提供稳定的版本,依然,不是所有的人都能控制的。

      4.折中方案,成功。

    成功处理方案

      我们都知道,通常一个exe程序就是一个进程。而我们程序因集成了很多第三方程序,进程中含有与第三方交互的地方很多。因此,引起崩溃,不能控制。

      对此,我想到的就是将一个进程拆成多个进程的方式。不稳定的集成统统拆到子exe程序中,主程序与子程序间交互,崩溃的永远是子进程,主进程依然稳定运行。此方案,经过多现场改造后,很大的解决了现场压力。

    意外收获

      今天,看到博客园推荐的一篇文章,其实思想与我的想法一致。但是,他的做法更显功底,更有魅力。感谢博客园,感谢大家的奉献!

      大家可以看看:https://www.cnblogs.com/cwsheng/p/14616685.html

  • 相关阅读:
    2015531 网络攻防 Exp1 PC平台逆向破解(5)M
    2017-2018-1 20155331 嵌入式C语言
    20155330 《网络对抗》 Exp9 web安全基础实践
    20155330 《网络对抗》 Exp8 Web基础
    20155330 《网络对抗》 Exp7 网络欺诈防范
    20155330 《网络对抗》 Exp6 信息搜集与漏洞扫描
    20155330 《网络对抗》 Exp5 MSF基础应用
    20155330 《网络攻防》 Exp4 恶意代码分析
    20155330 《网络攻防》 Exp3 免杀原理与实践
    20155330 《网络对抗》 Exp2 后门原理与实践
  • 原文地址:https://www.cnblogs.com/sy-ds/p/14622060.html
Copyright © 2011-2022 走看看