#星空云诊所#:如何做好多系统集成原创
金蝶云社区-云社区用户g7737637
云社区用户g7737637
29人赞赏了该文章 3,045次浏览 未经作者许可,禁止转载编辑于2022年01月13日 12:34:54
summary-icon摘要由AI智能服务提供

本文讨论了多系统集成在项目中的重要性及复杂性,强调了合理集成方案对项目成功的重要性。文中通过实际案例分享了集成方案设计的步骤,包括确定集成方式、数据流向、接口清单及日志设计等。具体涉及了同步与异步的选择、接口调用方与提供方的确定、基础资料与单据的对接、集成方案图的绘制、接口文档的编写以及集成日志的重要性与设计原则。目的是帮助解决一线项目中集成遇到的瓶颈问题。

一、  场景

在项目中经常会涉及到多系统集成,如何做好多系统集成,特别是行业性比较强的项目,往往是项目非常棘手的问题,同时也是项目成功的的关键,如果方案不合理可能会造成系统集成返工、系统无法正常流转甚至项目失败,因为项目集成考虑因素太多,哪个环节考虑不周或者不合理,都会对整体业务流转造成很大的影响,设计时需重点考虑“数出一源”、业务能很好的流转、集成的性能等,这些点刚好就是系统集成的难点所在,集成方案的设计尤为重要,因为如果设计得很好,给客户感觉是一体的,如果设计得不好,则可能会影响数据的准确性、数据不一致及性能问题,会严重影响使用,下面分享是根据多个实际大项目中成功的集成方案总结而成,希望能更多地帮助到一线项目中解决集成遇到的瓶颈问题.

一、  如何做好集成方案设计

其具体集成场景:“某客户使用系统包括OA、CAPP、MES(星空)、PLM(星空)、ERP(星空)、APS、S-HR、炉温系统,客户的要求为所有系统必须数出一源,并且要集中查看各系统集成的同步日志,OA作为系统门户,OA用户通过S-HR员工同步过来后每个员工生成一个账号,并在OA根据用户的权限分配到S-HR、APS、CAPP、星空系统,所有待办通知信息都需要推送到OA,审批流程统一在OA审批”

1.   确定集成方式及集成方案

集成设计方案在设计时需考虑因素:

(1)   集成对数据及时性要求,确定是同步还是异步

(2)   需考虑集成对性能的影响

(3)   需考虑“数出一源”,确定数据源头

(4)   需考虑是数据使用方(集成方)是否需要存储数据源头的数据

(5)   需要规范化、标准化的字段尽量设计为基础资料选择而不是文本输入

集成设计方案在设计时设计步骤

(1)   首先要考虑业务执行时取数来源,取数来自哪个系统?(需考虑性能)是否需要另建一套基础资料来存储获取的

           信息?

     1) 对于频繁访问的数据一般采用在需集成的系统存储一份需要获取的数据,系统在取数时从同步过来的数据中去

           取,而不是实时从调对方接口去抓取

       好处:a)性能好 b)防止取数时对方系统存在故障或者网络问题等异常情况

     2) 对于多个系统都在管理的数据(比如库存,ERP和WMS系统都会管理),系统中在取数时到底取来自哪里的数 

          据?

      场景1:客户A购买了星空供应链、财务,同时购买了第三方WMS仓储管理系统,这家客户是做商贸的,销售人员在

                他们的客户现场会推销产品,并且可能会直接在星空系统下单,下单界面需要显示商品的即时库存,库存的及

                时性和准确性及库存显示的性能对他们显得非常重要,那对于这种场景合理设计集成方案为:

             1) 库存的取数来源需为星空的库存,这样性能会好很多,不能通过接口去调WMS系统里的库存,这样性能会

                 造成很大影响,特别是多个商品要在下单界面显示对应的库存,如果商品很多时调用WMS系统的接口展示会

                 出现严重的性能瓶颈

            2) 以星空库存为准的话,那准确性和及时性就显得非常重要,发货时或者退货时需向WMS系统发请求,星空需

                同时锁定对应的库存,WMS库存管理系统在出完货扣减库存的同时通知星空发货完成,星空需要同步扣减库

                存,这里的库存同步需要采用及时同步的策略,而不能使用异步(通过事务触发)

     场景2:客户的MES系统需要与炉温系统对接,MES需要传入工艺曲线、工艺步骤、加工任务信息,炉温系统把最终

              加热过程的曲线图反馈给MES,最终会作为质量检验依据,并最终会把炉温系统加热曲线作为质检报告的一部

              分给到客户。对于集成这块设计方案合理方案是什么呢?

               集成方案设计如下:

                 1) 炉温系统需要的数据提供接口供MES这边调用,并及时写入

                 2) 炉温系统需要反馈到MES的一些机构化数据及生成的加热曲线图片需要调用MES提供的接口写入,方案设

                  计时需注意的是:生成的最终加热过程曲线图不能每次访问时从炉温系统去抓取或者动态生成,这样会影响

                    MES这块对曲线图展示的性能.这个案例中MES中展示的加热过程曲线图取数的来源显得非常重要,因为必

                    须考虑其性能

                 好处:1)这种设计可以大幅度提高性能

                           2)防止哪天炉温系统出了问题,无法访问和获取时MES系统还能继续使用这些已经加热完成生产的加

                               热过程曲线

(2)   考虑是同步还是异步

          哪种情况下选择同步?

         1) 及时性要求很高的,通过源头单据及时触发并调需同步的系统接口,同步写入,这种一般都是从源头数据所在

              系统主动调用目标数据存储系统的接口

         2) 调接口不会太频繁(不会频繁发请求),如果太频繁会对性能造成一定要,不建议使用同步

         3) 一般是数据更新频繁的单据或者是影响其他集成单据的某些状态或者参数,如果不及时会对其他系统使用造成

             重大影响的

        哪种情况下选择异步?

         1) 一般对及时性要求不高,变化不频繁的静态数据比如基础资料等

         2) 数据量比较大,如果采用同步方式会消耗大量性能的,必要时还会利用中间表来归集数据,然后采用批量处理

              的方式写入到系统

     场景:一家上海做电商的客户,购买了公有云,每天需要从电商平台下单后到星空ERP做同步的数据量特别大,每天

             好几十万笔数据需要同步,实现方案为:

           a)   采用中间表的方式,前段客户处理每个订单不用马上调用标准接口同步到星空ERP,而是将数据先批量写入到

              一个不用逻辑校验的中间表,设个定时任务,从中间表抓批量的数据调系统的批量接口进行同步处理,并且选

              系统比较空闲的时间进行同步

           b)   提高在公有云端的租用环境的配置,让能更好的匹配这种对性能要求高的需求

      3) 一般采用定时事务,采用一定的频率进行批量更新

      4) 需要考虑性能的影响,一般采用批量更新的方式,并需要用增量方式,减少没必要的性能损耗(建议根据创建日期

         和修改日期进行增量界定)

 (3)   确定谁为接口调用方,谁为接口提供方

      这点很重要,这个方案的选择也会对集成造成很大的影响,需要从数据结构的复杂程度及接口开发的效率多方面进行

      综合考虑,对于数据结构复杂的,需要基础的系统方如果通过接口获取,需要从很多地方去抓对应的数据,并且还需

      要找对应关系,如果去批量去抓更不容易处理,甚至可能出现数据不完整的情况,这样最好就让数据提供方调用需要

      集成系统方的接口,既及时效率又高

场景:第三方CAPP(供应商新开发系统)编制的工艺同步到MES系统的工艺路线,CAPP的工艺设计非常复杂,数据结

          构也很复杂,需要将设计好的工艺同步到MES系统供MES执行过程中使用及APS高级排程时使用。

    选择方案:CAPP系统在编完工艺后在发布时调用MES提供的工艺保存接口,CAPP只要将对应的工艺接口字段,赋予

                  需要填充的值后,调用MES工艺的保存接口,工艺数据就会及时写入到MES,既保证了工艺数据的及时同

                 步,又确保了当前编制的工艺数据能准确的同步,同时减少了MES在获取众多复杂数据的处理过程

2.   确定需要对接的基础资料、单据及数据流向,并画出集成方案图

(1)  画出所有系统需要对接的基础资料集成图(需特别标明数据源)

下面结合实际项目的集成情况展示基础资料集成的设计效果

如下图(黄色底色部分为数据源)

 image.png

(2)  画出所有系统需要对接的单据集成图(需特别标明数据源)

下面结合实际项目的集成情况展示单据集成的设计效果

如下图(黄色底色部分为数据源),箭头指向数据流向,需要对所有系统的集成通过集成图能清晰的看到数据源、数据流向及整体的集成情况

image.png

3.   列出详细的接口清单(如下图格式)

接口清单设计时需要包括:

(1)    数据类型(指定是基础资料、单据、其他)

(2)    同步内容(指定具体的基础资料或者单据)

(3)    输出方(数据源系统)

(4)    接收方(需要同步的目标基础资料或者单据)

(5)    集成方式(同步、调用接口获取、调用接口生成)

image.png

image.png

image.png

4.   编写详细的接口文档

详细接口模板参照附件中的详细模板进行编写,需要

说明:接口包含以下主要内容:

(1)    接口提供方(需要指定谁是接口提供方)

(2)    调用方式(实时同步还是按需定时同步)

(3)    接口地址

(4)    接口描述(需要描述对应的接口用途)

(5)    接口参数(JSON格式)

(6)    返回结果(JSON格式)

(7)    调用参考

   如下图:

image.png

5.   集成日志的设计

  (1)为啥要做系统集成日志?

        系统在运行过程中相当于黑盒,当某个时间两边数据不一致时需要查询原因,由于原因众多,很难判定问题出在 

        哪?如果不做日志记录,运维人员会束手无策,既耗费大量时间排查,甚至有可能找不出问题的原因。

  (2)集成日志的组成及特点

       系统日志包括两部分:日志文件和界面显示的集成日志(数据库存储)

       1)  日志文件使用范围:开发人员或者其他技术人员

            特点:偏技术性,用户一般不容易看懂

                比如关键功能点的实现,业务逻辑执行前的各参数值的情况,执行后的结果(包括是否成功,如果有错误,具

               体错误信息,其中有些信息能识别出来,有些无法识别,服务器或者数据库执行异常返回的错误信息)

       2)  界面显示的集成日志使用范围:运维人员

           特点:简单易懂、便于跟踪、集中查看、便于查询、异常信息能特殊标记和显示

    (3)日志设计原则

               1)日志文件设计原则:能细的尽量细,关键业务执行前后都需要写日志,日志需要有执行时间,

                  日志能体现执行的关键过程和执行结果,对于同步不成功的数据,需要做标记,如果是因通讯原因未成功

                  的,需要尝试再调用接口写入或者重新执行接口的方法.

               2)   界面显示的集成日志设计原则:能体现多个系统同步及接口调用情况、同步及调用异常况,

               3)   多个系统集成,除了本身系统需要在自己系统记录日志外,需要设计统一的日志平台接口,供每个集成的

                  系统调用,统一将日志写到一起,这样便于将所有系统的集成日志集中在一起显示,方便维护.

   (4)调用接口注意事项

          1)系统连接登录验证时需要写日志,连接成功,记录成功登录日志,如果不成功需连接报错的信息写入日志,方

             便排查问题

         2)一个接口如果有多个执行方法,日志文件对于每个方法执行的情况需要日志记录,界面显示的日志记录则不需

             要记录到每个方法的执行情况

        3) 星空的日志文件有统一的日志写入方法,不要自己去随便增加日志方法。












图标赞 29
29人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!