热门标签 | 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操作系统的广泛使用,确保用户账户及系统安全变得尤为重要。用户密码的复杂性直接关系到系统的整体安全性。本文将详细介绍如何在CentOS服务器上自定义密码规则,以增强系统的安全性。 ... [详细]
  • 本文介绍了一个来自AIZU ONLINE JUDGE平台的问题,即清洁机器人2.0。该问题来源于某次编程竞赛,涉及复杂的算法逻辑与实现技巧。 ... [详细]
  • egg实现登录鉴权(七):权限管理
    权限管理包含三部分:访问页面的权限,操作功能的权限和获取数据权限。页面权限:登录用户所属角色的可访问页面的权限功能权限:登录用户所属角色的可访问页面的操作权限数据权限:登录用户所属 ... [详细]
  • 本文介绍了用户界面(User Interface, UI)的基本概念,以及在iOS应用程序中UIView及其子类的重要性和使用方式。文章详细探讨了UIView如何作为用户交互的核心组件,以及它与其他UI控件和业务逻辑的关系。 ... [详细]
  • 本文探讨了线性表中元素的删除方法,包括顺序表和链表的不同实现策略,以及这些策略在实际应用中的性能分析。 ... [详细]
  • 实现Win10与Linux服务器的SSH无密码登录
    本文介绍了如何在Windows 10环境下使用Git工具,通过配置SSH密钥对,实现与Linux服务器的无密码登录。主要步骤包括生成本地公钥、上传至服务器以及配置服务器端的信任关系。 ... [详细]
  • 本文由chszs撰写,详细介绍了Apache Mina框架的核心开发流程及自定义协议处理方法。文章涵盖从创建IoService实例到协议编解码的具体步骤,适合希望深入了解Mina框架应用的开发者。 ... [详细]
  • 本文提供了一个关于AC自动机(Aho-Corasick Algorithm)的详细解析与实现方法,特别针对P3796题目进行了深入探讨。文章不仅涵盖了AC自动机的基本概念,还重点讲解了如何通过构建失败指针(fail pointer)来提高字符串匹配效率。 ... [详细]
  • 本文探讨了一种常见的C++面试题目——实现自己的String类。通过此过程,不仅能够检验开发者对C++基础知识的掌握程度,还能加深对其高级特性的理解。文章详细介绍了如何实现基本的功能,如构造函数、析构函数、拷贝构造函数及赋值运算符重载等。 ... [详细]
  • 3DSMAX制作超现实的体育馆模型
    这篇教程是向脚本之家的朋友介绍3DSMAX制作超现实的体育馆模型方法,教程制作出来的体育馆模型非常地不错,不过教程有点难度,需要有一定基础的朋友学习,推荐到脚本之家,喜欢的朋友可 ... [详细]
  • 在项目冲刺的最后一天,团队专注于软件用户界面的细节优化,包括调整控件布局和字体设置,以确保界面的简洁性和用户友好性。 ... [详细]
  • JavaScript 页面卸载事件详解 (onunload)
    当用户从页面离开时(如关闭页面或刷新页面),会触发 onunload 事件,此时可以执行预设的脚本。需要注意的是,不同的浏览器对 onunload 事件的支持程度可能有所不同。 ... [详细]
  • 默认情况下,Git 使用 Nano 编辑器进行提交信息的编辑,但如果您更喜欢使用 Vim,可以通过简单的配置更改来实现这一变化。本文将指导您如何通过修改全局配置文件来设置 Vim 作为默认的 Git 提交编辑器。 ... [详细]
  • 探索Java 11中的ZGC垃圾收集器
    Java 11引入了一种新的垃圾收集器——ZGC,由Oracle公司研发,旨在支持TB级别的内存容量,并保证极低的暂停时间。本文将探讨ZGC的开发背景、技术特点及其潜在的应用前景。 ... [详细]
  • 本文探讨了使用普通生成函数和指数生成函数解决组合与排列问题的方法,特别是在处理特定路径计数问题时的应用。文章通过详细分析和代码实现,展示了如何高效地计算在给定条件下不相邻相同元素的排列数量。 ... [详细]
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社区 版权所有