zoukankan      html  css  js  c++  java
  • 集成对接项目的经验

      现在很多的国家院所、事业单位都使用了多种办公系统,如OA,邮件、集中文印、加密文档管理、门禁考勤等。因为这些软件是不同厂商开发的,最初它们之间是没什么联系的,后来在使用过程中用户发现,同步管理不同软件之间的数据特别麻烦。比如新增一个员工,需要在每个子系统都添加一遍;又例如在集中文印的文件,到OA审批里又看不到等等,所以产生了各子系统间的数据同步的需求。在这些系统软件中,有一个“主系统软件”,一般是该单位最先采购,或使用频率最高的软件,或客户关系最好,以OA办公最常见,暂且称其为集成商。数据同步时,一般是数据产生者向使用者推送。比如新增用户信息,在OA办公中手工录入,然后自动同步到其他子系统;如集中文印的打印文件,由文印系统同步到OA系统。
     
      此类开发项目,涉及到不同公司和业务之间的交互,相对于内部项目来说会复杂很多,一旦出现问题,最常见的就是互相推卸责任。下面按照项目的各个阶段,介绍一下此类项目与内部项目的区别。
     
    1.方案阶段
      这一阶段实际包含了需求分析、概要设计和讨论、商务谈判签订合同等环节。客户自己是没有技术能力来协调各个厂家的,一般只与集成商或代理签订合同,再由他们与子系统供应商签订合同。所以一般的过程是,由客户单位向集成商提出需求,然后集成商提出设计方案,与其他子系统供应商讨论。经过各种细节讨论后,子系统也提出相应的设计方案,并评估工时费用,然后进入商务阶段。集成商掌握了客户,当然利润是最多的,他与子系统供应商必然有一番讨价还价,焦点就在技术复杂度对应的工时费用上。集成商会倾向于把需求描述得比较简单,从而压低技术复杂度,并把后续问题压到免费的调试维护期,子系统商则相反。
      从子系统商的角度,在需求分析和方案设计上,需要比内部项目花更多精力,因为内部项目没有合同交易,设计和时间计划上就容许了少量的变更,但外部项目因为有合同的制约,变更起来就很困难。在这一阶段,需要尽量与客户和集成商多沟通,明确应用场景和规格。另外还需要给对方说明,“规格文档中未列出的应用场景,默认是不支持的”,这样迫使集成商细化产品规格。
     
      在诸多的数据对接功能中,需要明确每个功能的责任方,一般集成商是需要总的负责。但另外一点很重要,就是数据的使用者也是负主要责任的,一旦出现问题,就有解决问题或证明对方有错误的义务。例如用户同步功能,主集成系统向子系统同步用户数据,一旦出现问题,用户首先发现子系统的信息有问题,就会天然的认为是子系统的问题。即使子系统经调试后发现是主集成系统未发送数据过来,也需要把这些日志信息拿出来并证明给对方看。
     
      一般在对接功能中,最好双方都有单元测试工具,来开发测试和查找问题。比如用户同步功能,数据发送方要提供一个接收测试工具,接收方也要提供一个数据发送测试工具,这样既方便开发调试,也有利于问题的定位。这一点在商务阶段要尽量争取,将其写入到合作协议中。
     
      集成测试环境也要明确写入合作协议中。如果集成商有条件提供测试环境,则子系统商只需要在这个环境中安装测试通过即可,后续的实施有集成商负责。如果集成商没有条件提供,则子系统商都必须在客户的实际环境中调试,难度和成本都会增大。
     
    2.开发阶段
      搭建开发调试环境。最好是能安装一套对方的软件系统,进行开发与调试,不过这一点未必能做到,这时候必须先开发测试工具,模拟对方的的系统。开发过程中,各种问题会逐步细化,还需要与对方继续沟通,更新接口文档。在与对方系统的交互中,每一步都要假定对方无法正常工作或效率很差,并有日志输出以及对应的处理方法。
      对接功能一般在内部无法真实地测试,只有开发人员编写测试用例来自测,不过最好还是让其他人来做这个测试。
     
    3.调试阶段
      我们知道,在公司内部的跨部门协作都比较麻烦,不同公司之间就更加如此。在开发和内测完成后,大家可以约定时间地点进行联调了,之前一定要与对方的开发人员先行沟通调试的内容与计划。很常见的情况是,对方开发的功能根本不完善,或未经测试,或者只派出非研发的技术人员来沟通,所以这些情况都需要提前确定好,否则联调很容易超期。
     
    4.维护阶段
      经过联调和实施,产品上线后,用户在使用过程中很可能会遇到问题,当然数据的收发双方系统会互相推卸责任。如前面提到的,用户首先会认为是“数据使用者”的问题。这时候一般需要技术人员上面检查日志,并利用双方各自的单位测试工具,快速定位问题。
     
    以上是我在这类项目中遇到的各种问题和心得。
  • 相关阅读:
    继承 多态
    封装练习
    PHP 面向对象封装
    面向对象 类和对象
    PHP前端和数据库的连接
    数组2
    PHP数组
    正则表达式
    PHP字符串
    linux基础
  • 原文地址:https://www.cnblogs.com/chaos77/p/7170130.html
Copyright © 2011-2022 走看看