最新项目中使用数据交换平台,主要通过交换平台抓取HIS数据库医生医嘱检查检验等数据以及FTP上的txt文件,html等病程文件,生成XML文件,之后通过业务系统按业务规则对数据进行处理,再将其存入数据库。
=========================================================
数据流:
这种开发就像是接管道一样,感觉就是管道的个人,只要了解数据的流向,自己可以进行管道的套接,进行数据的处理
而对于流程本质也就是管道的接入,这就是XML的开发模式
=========================================================
================================================================================================
对于现在的场景,文件大不是很多,以后如果病历文件许多的话,进行集群,那么可以采取分布式计算构建,比如Hadoop构建数据平台,仅仅是一个想法,目前不适用。
================================================================================================
具体说一下:交换平台主要分为导出xml文件,导入XML文件,在导入时进行规则校验。网站通过发送消息到JMS,交换平台连接JMS,启动交换平台,交换平台连接HIS于系统的数据库,通过Spring Integration进行操作。
类似开源的有mule等,大家如果对ESB,ETL有兴趣,可以找些资料看看,以上只是项目的一个例子,主要是ETL
管道串联,流水线处理。
各人觉得这些就是多线程和队列使用解决多线程处理的一种机制。---管道大家应该比较好理解,管道有双向的或者单向的(双工或者单工通信)
这里业务流程复杂的话,采用BPM+Drools组成流程,之后作为一个组件挂接在Spring Intergation总线(组件接口点)上面
================================================================================
网络传输:
TCP网络建立连接:
1.建立心跳线程检测网络的连接状况
2.服务端建立接受线程,接受来自客户端的数据(保证接受完毕),发送成功标准,负责断电续传。这个过程必须记录失败的编号
===================================================================================
下面介绍一种实时处理数据的系统-Storm,也就是CEP(复杂的事件处理),目前认为思想和Spring Intergartion思想有点相似。
无意间看见这东西,主要是设计实时性要求,个人目前的开发,基本对实时性要求不是很高,涉及东西不是太多,闲来无事,了解一下,目前个人暂时使用不到,借鉴一下其设计思想,以后在工作中使用,提高编程水平。下面的图个人感觉很容易懂,编程就是模拟现实世界,周围都是很好的例子,比如下面的图就很形象,图来自网络。
原理图:
Spark就是DAG的一种思想,流程有向图+Job多线程机制