• 解密区域集成服务器


    从2007年3月年三月份开,我就到了北大软件工程发展有限公司,就与区域集成服务器打了一年多的交道,对其相当熟悉。有关区域集成服务器的商业价值,应用前景,应用实例等与技术无关的事,不在我叙述范围内,就技术层面,对它进行分析。

    什么是区域集成服务器(Zone Integration Server,ZIS):

    分布式应用集成框架(DAIF)提供了多层面的集成机制,包括数据集成、功能集成、过程集成和表示集成,为这些“遗产系统”的整合提供了一个完整解决方案。其中在数据集成方面采用区域集成服务器(Zone Integration Server, ZIS)和应用适配器(Adapter),通过数据对象封装要交换的数据、并使用消息机制支持数据的发布/订阅(Publish/Subscribe)与请求/应答(Request/ Response)两种通信模式,实现各应用系统间的数据交互与集成。

    为方便描述,区域集成服务器简称ZIS,适配器简历Adapter

    区域集成服务器是怎么进行工作的:

    区域集成服务器的或以形象地比作“邮电局”,而配合其进行数据流转的适配器就像是送信“邮递员”,让我们一起来看看区域集成服务器的分布图

    image

    现在我们要把数据库A中的数据发送到数据库B为例,来对区域集成服务器进行分析。

    1. 数据库A中需要进行发送的数据通过约定,进行打包(后详解)

    2. 通过过AdapterA,把打包好的数据,转换成ZIS可以识别的格式,并对数据进行发送。(后详解)

    3. ZIS接收Adapter A关送的数据,并对其进行转存与备份,然后提醒Adatper B查收(后详解)

    4. Adapter B扫描ZIS服务器,当得知有数据需要自己接收,就接收数据,并进行存贮。

    5.对Adapter B接收到的数据进行解包处理,关进行到数据库B中。

    细说务个运行步骤:

    1.打包过程分为以下几个步骤来完成:

    1.         1)抽取数据:对于约定好的数据,进行抽取,可以一次抽多个表、单个表、一条记录,甚至一条记录的某几个或一个字段,具体抽取什么数据,就需要跟业务相关,在此不在细说。
    2.         2)转换:把抽取的数据转换成可传输的形式,最当用的就是文件或字符串,在这里我是使用SOAP,将数据对象转换成XML格式,具体使用SOAP序列化对象,有利有弊,可以参照我的另一篇博客序列化对象,使用的三种方式:Xml,Binary,Soap,我就不在这里啰嗦了。
    3.         3)加密:数据要在网络上传输,安全性的考虑要多一点,但处于综合考虑,在数据加密时,使用对称加密算法DES或Rijndeal加密。
    4. 2.通过对数据的打包,数据已经被安全地进行包装,接下来就是Adapter A需要做的工作了:
    5.         1)拆分过大数据包:对于打包的数据,可能它的体积非常大,在网络上传输就是个让人头痛的问题,如HTTP默认只能传输10M的数据。所以我们把每个数据库拆分成N个体积不超过1M的数据包,并对数据包进行编号与校验。
    6.         2)给拆分后的数据包“贴标签”:数据包要发送到什么地方?那就写好数据包要去的地址。
    7.         3)对数据包进行适配:找好的包,按ZIS要求的格式进行改造,没有规矩,不成方圆嘛,咱们的ZIS也不可能是万能的。
              4)发送数据。调用ZIS的API进行数据发送,并发送数据包的校验码。这时Adapter A的工作就完成了。
    8. 3.ZIS的数据任务非常繁重,要处理各个Adpater发送过来的数据。
    9.         1)接收数据:对Adapter发送过来的数据进行存贮,做到Adpater有求必应。
    10.         2)识别格式:对于Adapter发送过一的数据进行识别,如果格式不正确,则对数据进行丢弃,并做好备份。
    11.         3)校验数据:对于Adapter发送过来的数据,与校验码,对其进行校验。格式不正确,则通知Adapter A。让其重新发送。
    12.         4)对数据进行分发:就类似邮局里分发信件一样,根据地址,把邮件转移到对应的邮件框里。

    4.Adapter B做的工作与Adapter A做的工作正好相反,有接收数据、校验数据、合并数据。

    5.解包与打包也是逆过程,这里也就不再多说了。

    使用ZIS的优势

    ZIS可以实现高安全级别的数据传输安全。让我们来看一下系统布署示意图:

    image

    在布署时,防火墙只打开HTTP的80端口,内网还是经过了VPN进行地址映射,所以数据库隐藏较深,安全性相对来说比较高。这是使用其它分布式系统难以实现的。

    ZIS的缺点:

    不难看出,性能问题一直是ZIS的软肋,对于程序员来说,性能是一重很重要的考虑因素,但在很多时候,我们不能一味地追求性能,而忽略了成本、安全等因素。所以对于ZIS的这个缺点,是在性能允许范围内。但ZIS也就注定不能使用在非常繁重的数据流转上。

    ZIS内部架构

    ZIS包括三部分构成结构图发下:

    image

    其中,WinForm应用程序的结构如下:

    image

    这两个示意图放在这里,就不需要再用语言描述了。

    结束

    整个ZIS就描述到这里吧。今天为了写这篇博客,花了我一下午的时间,既画图,双打字,手都写酸了。如果有什么意见,欢迎指教!

  • 相关阅读:
    Spring Boot确保Web应用安全(登陆认证)
    ubuntu kylin 18.04安装docker笔记
    Spring Boot项目中MyBatis连接DB2和MySQL数据库返回结果中一些字符消失——debug笔记
    node.js运行内存堆溢出的解决办法
    [转]Maven项目读取src.main.resources下的文件
    Linux下切换用户根目录的指令
    Example config file /etc/vsftpd.conf
    一个可以让vsftpd启动系统用户登陆ftp的例子
    [转]将西部数据 My Passport Wireless 移动存储连接到任何支持的云存储上
    Java连接阿里云HBase示例
  • 原文地址:https://www.cnblogs.com/taofh/p/1556707.html
Copyright © 2020-2023  润新知