热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

信息系统实践手记4平台对接的一些思考

说明:信息系统实践手记系列是系笔者在平时研发中先后遇到的大小的问题,也许朴实和细微,但往往却是经常遇到的问题。笔者对其中比较典型的加以收集,描述,归纳和分享。摘要:此文描述了笔者接

说明:信息系统实践手记系列是系笔者在平时研发中先后遇到的大小的问题,也许朴实和细微,但往往却是经常遇到的问题。笔者对其中比较典型的加以收集,描述,归纳和分享。

摘要:此文描述了笔者接触过的部分信息系统或平台之间的对接构型和情况,挂一漏万的总结分享之。

正文

系列随笔目录:信息系统实践手记 (http://www.cnblogs.com/taichu/p/5305603.html)

作者:太初

转载说明:请指明原作者,连接,及出处。

1.什么是平台对接?

一般的信息系统有两种:一种是单套单功能的,一般比较专业,单独的安装在通用或专门硬件上,统一的用户接口(比如客户端)专门执行一个功能。它往往自己完成了数据的采集,计算,呈现,控制,反馈等内容。另一种,就是群件。信息系统中含有多个模块(一般以功能高内聚来区分模块),甚至多个平台(以一整套较为完整功能集合定义为平台)。如果是后一种多平台连接在一起的较大的信息系统,就一定会越到平台对接?为什么? 当然是一个合同中的信息系统的多个平台,一般都是多个厂家(公司)开发,互为第三方,合作完成整体功能。每个小部分(平台)必须按照某种规则和机制互相连接。这就越到了平台对接的问题。

2.平台对接要考虑哪些方面?

一般的,以自己负责的平台或者公司的平台产品角度来看问题,你会发现你的平台A,会需要对接平台B,平台C等等,那么需要考虑哪些方面呢?

  • 平台间的功能划分
    • 这往往是产品经理和方案经理出马的地方。研发部门搞出来的产品是有《FeatureList》(功能集合)的。拿着这些积木搭建起来若干方案Solution,也就是我方产品或平台提供的“功能边界”(SCOPE)了。搞清楚了自己的SCOPE,还需要了解其他几个第三方平台的“功能边界”SCOPE。
    • 等所有平台A,B,C等都划分清晰了,谁干什么,argue之后,定下,email发出留下证据,形成给用户的最终方案,由集成商牵头提交,并组织各厂商实施不同平台的部署和联调。
  • 平台间互通协议确定
    • 既然确定了功能边界,那么不同平台之间的互通就提上日程。需要大家坐在一起根据需要不同来制定互通的协议。
    • 一般的,各平台都有“系统专家(架构师)”,会参与讨论,集成商牵头,这个时候就看谁强势了。每个平台都希望不做或少做额外的开发,对方直接按照自己的协议或标准来对接自己的信令和数据,这是一个大家摆事实,讲道理的时间。但客观上还是可以有规则可以遵循。
  • 平台互通协议设计原则
    • 尽量站在自家平台的立场,企图改动最小,最方便,这是第一。
    • 尽量使用通用技术框架,比如国标GBXXX,国际标准H264,RTP/RTSP,SIP。这对以后联调,对接,抓包,分析,留证据等都有利,说得清。此其二。
    • 尽量不要临时尝鲜,找到一个不成熟的框架或协议,各个平台都不太懂,没领域专家,这样的事情绝对不能做,但往往不懂技术的领导会要求。此其三。
    • 其他情况等价的时候,尽量用简单的技术框架,因为对接是个麻烦事,意料之外的麻烦一定会发生(墨菲定律),能省则省,能减则减,此其四。
    • 遇到新情况,一定不要直接思考workaround的办法,想要绕过去,最后一定自己吃亏,就应在最初就将对接的困难摊在台面上,大家吵一吵,此其五。
    • 智慧的PM会建议,不要将工作量压在一个平台,欺负他为了赚钱而愿意屈服,你需要审核它的人力,能力,是否能按时交货,即便有合同保证,但客观上讲,研发是一个科学的过程,工作量的不均衡,不但容易造成不必要的“关键路径”,而且往往会导致整体失败。即便赔偿了,延期也是对整个solution的不利。此其六。
    • 余下的,技术上面的考虑,属于偏TECH方面,也有不少原则,但一般有法可依,有理可讲,下面再叙述。
  • 平台互通的开发和联调
    • 每个平台各自都会开发,也都会联调。永远记住,要提前准备好,尽快切入开发,做主动的催促者,不做被动的落后者。虽然催促者容易多花effort去协调,盯紧对方,但调测的过程是偏向自己的,能拿到主动,对方围着你头头转,你就拿到的“管理权柄”!
    • 准备好迎接错误,联调一定会出错,要有手段测试,审计,抓包,检查流程(逐级排查网元),查看信令,查看数据,无据可依不是专业的体现,也往往容易导致多方纠缠和推诿。一定要先发制人的给出证据,哪怕错了,不丢脸,积极推动,拿到“联调主动权”,让他人的人力围着你。
    • 调测完毕,主线合并代码后,一定要正式出包,现场复测!这个非常重要。因为往往有多个现场,第三方的一个平台也有多个版本,对方自己的版本管理也许会有问题,你自己的版本管理也往往会忙中出错,一定要复测,拿着版本号说话。
    • 还有太多经验教训,不一一列举。
  • 平台互通收尾
    • 联调完毕,其实还有很多事情要做。比如,技术总结,项目流程总结,版本收纳,分支和主线的合并,workaround的处理,遗留问题的处置。
    • 此联调OK的功能还要同步到主线或分支来提供其他现场的部署和升级。

3.平台对接实践经验分享

  • 项目经验
    • 掌握主动,一定要我方产品经理,方案经理,系统专家(架构师),项目经理,尽早切入讨论,哪怕是详细的技术solution研讨。
    • 清晰划分工作界面,产品scope,接口定义清晰,不武断,不专断,有好激烈讨论,这里最容易争执。
    • 采用自己熟悉的技术,兼容对方接受,平衡工作量。
    • 一定要确定接口人,确定时间,哪怕最后时间肯定会变化,开始不确定,最后变化的就没边没谱了!
    • 有些第三方就扔过来3个研发人员,都不管理,让我方PM自己管理,要记住,这算是好的情况,对方赖着不干活才是最麻烦。
    • 用《进度推进表》,《BUG跟踪表》等支持PM工作,一定要紧盯对方,拿到联调主动权。主动出击,牵头联调,保障自己平台不是拖后腿的。
    • 联调完毕,代码合并,版本记录,重新发布正式版本测试,一定要做细致,别一高兴,结果乱了。
  • 技术经验
    • 一般平台对接,信令要对接,数据也要对接。信令对接大都是传递数据结构,典型的是传递“设备列表”,这个情况太多了。怎么传递?方法很多。
      • 有直接读取对方DB的方法:快速,简单,直接,粗暴,不太建议,除非是兄弟产品可以“深度集成”,不然以后会有问题,对方的一个升版就导致不可预知的情况。
      • 接口对接法:这个是通常的办法,一般速度还可以,相对复杂,但是耦合度低,通用性强。对方即便升级,但需要维持接口不变化,而且联调测试方便。
      • 按标准互通:比如按照某领域的“GB国标”对接“设备列表”等信令信息, 那么就要大家吃透标准,经常互通,有些标准里面甚至有附加“自定义”字段,这些就是坑!一个不小心摔进去了,一定要经常研讨开会,互通进度。也可制定附加的技术接口和协议,作为变化的保障。
    • 对接平台除了信令,最多的还是数据。一般数据会量比较大,要求高速,实时,这对两边的平台都是考验。
      • 双方友好协商,无论对方是否专业,我方必须将专业的咨询分析结果呈报出来,互相讨论。
      • 要讨论数据的规律,出现的频率,峰值,规律,表现,时空特性,是否需要存储,数据在消费节点Px的一系列的行为。数据的发起和终止节点往往额外重要。
      • 选定好的数据结构,考虑安全和压缩等需要。
      • 考虑处理节点Px失效时候的解决办法,异常情况的考虑。
    • 还有很多是经验,找个靠谱的系统专家是关键

说明:如本文涉及相关专有名词或其他如有问题,请联系原作者。文章内容,仅供参考。

[END]

信息系统实践手记4-平台对接的一些思考


推荐阅读
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
author-avatar
苗淑香哈哈_405_408
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有