云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

美国服务器_虚拟主机怎么弄_好用

小七 141 0

互联团队、互联代码和互联设备:物联网开发的复杂性

在我上一篇文章中,我讨论了物联网软件交付的挑战,因为它们涉及到管理由物联网软件的不同组件组成的三个不同开发管道的复杂性。这些是:嵌入式设备本身的软件-例如,嵌入式软件车。那个大数据后台应用程序用来存储和分析从不同的实时数据中积累的数据设备移动应用程序-最终用户用于控制设备。每个其中一个软件组件是由一个单独的团队(或者在很多情况下,几个团队)开发和交付的。在本文中,我想更深入地了解参与物联网产品生产的每个团队的一些独特特征,以及他们在物联网交付上的压力链条。类似. 但不同的是,"没有我的存在"。当然,我们都在一起:努力让物联网领域的下一件大事推向市场。而且我们知道我们的东西是相互依赖的。。但是,在不同的团队中简化物联网开发过程并不容易任务。我们需要注意的是,每个开发团队(嵌入式、后端、移动)在工作中使用不同的技术、工具、堆栈、部署模式和交付实践。他们的日常任务和工作流程是不同的。让我们仔细看看在每一个方面成为工程师意味着什么团队:嵌入式软件嵌入式软件必须接受传感器的输入,以了解物理世界环境的状况。根据这个输入的计算,程序然后执行某些任务-例如,激活或调节一组执行器以产生所需的行为。考虑一下在混合动力车上踩油门的简单场景。看似很简单的操作,实际上却需要在不到一秒钟的时间内做出上千个决定。发动机的电子控制单元(ECU)接收加速请求。然后它会收集各种数据,比如油门踩得有多大,环境温度,当前速度,汽车当前的档位,汽车是在倾斜还是下降,汽车是处于生态模式还是运动模式,电池电量是高还是低,任何车轮是否有滑转,等等更多。采集到数据后,程序进行计算,发送信号给变速器ECU,必要时调整档位,必要时发送给汽油机ECU启动发动机,高效地协调电动机和汽油机的动力传递,等等。在所有这些之后-汽车加速,但计算仍在继续。发动机的电子控制单元测量施加在油门踏板上的压力的任何变化。如果驾驶员放松油门,数据采集、决策、向不同ECU和执行器发送信号的整个过程将再次发生,以调整速度,能源使用和表演。那个工具交易:这支队伍主要与实时操作系统(RTOS)合作,并与机电一体化(机械和电子)团队合作。这个团队最常用的编程语言是C/C++。给定程序必须做什么的性质,软件团队使用基于模型的系统开发。这些是专门的工具(由MathWorks、Vector、D-Space等公司提供),通常用于促进此类编程。同时,在机电一体化方面,硬件团队必须使用西门子、PTC、Dasault、IBM等公司的专业工具进行机电设计。在基于模型的系统开发中,软件团队最初可以通过仿真和仿真独立于硬件工作。这种测试称为在环仿真(SIL)。一旦硬件模块准备就绪,软件就被注入其中,并进行真正的集成测试,称为硬件在环(HIL)。机电一体化团队使用产品生命周期管理(PLM)工具来管理机电一体化的开发、测试和验证。嵌入式软件团队使用自己的应用程序生命周期管理(ALM)和连续交付(CD)工具来管理软件开发、测试和释放。保持记住,不同的过程在某些时候必须相互作用,两个团队必须尽最大努力减少两个完全不同的硬件和软件开发过程之间的摩擦生命周期。大数据软件团队这个团队的任务是处理大量的实时数据,它还主要关注横向可扩展性,即在销售更多设备时能够支持数据吞吐量。该团队生产的软件通常部署在数据中心,并且经常在多个位置进行复制以实现冗余和低延迟。随着所售物联网设备种类的增加,后端软件必须处理向客户提供的产品/服务的所有变化,以及相应的服务水平协议工具交易:这支队伍经常使用敏捷开发方法来支持频繁的功能增强和软件更新。开发工作不是将所有更改成批地放入一个"大"版本中,而是在短时间内由几个小团队来完成,并且对代码和新特性的增量更改正在相当频繁地部署中。这个团队也经常使用ALM或敏捷工具来支持发展。到该团队使用一种软件交付管道解决方案,该解决方案涵盖了快速构建、飞行前、持续集成、连续测试和智能部署,从而加快了部署的节奏并简化了交付过程。此工具还可以跨不同的开发、QA、登台和生产管理IT基础设施的供应、配置和管理环境后端软件是物联网服务的"大脑",物联网设备总是连接在一起的。这就要求以极其可靠的方式进行生产部署,以确保不会出现服务中断。为了确保操作的顺利进行,这个团队经常使用DevOps自动化和持续交付解决方案来促进关键部署过程。移动应用程序团队移动应用程序开发的文化起源于初创企业和个人开发者,他们经常在旧金山帕洛阿尔托的"时髦"咖啡店完善自己的代码,圣地亚哥、奥斯汀和曼哈顿。这些程序员通常不需要办公空间,也很少有IT团队来支持他们。相反,他们更倾向于使用现代SaaS解决方案,这些解决方案旨在促进应用程序的开发、持续集成、测试和发布。如今,由于物联网的强劲趋势,许多大型企业(如汽车公司)都雇佣这些"咖啡厅"程序员。尽管如此,尽管他们现在在更正式的环境中工作,但他们的工作习惯和对工具链的偏好却没有改变了。那个工具贸易:最多在移动应用程序程序员中流行的编程语言是Java和Swift。移动开发者可以很方便地集成几个基于SaaS的移动应用开发工具来实现他们的开发环境和过程。他们可以将源代码存储在GitHub中,使用SauceLab进行移动应用程序测试,使用appdynamics进行移动应用程序性能测试和监控。他们使用船.io用于连续集成、连续测试和连续发布到应用商店移动应用程序的更新频率也非常高,这是由应用程序环境的竞争性质和基于应用程序可用的实时反馈优化应用程序的能力驱动的用法。正在连接我们都有可见,交付物联网产品所需的每个团队与其他团队本质上是不同的。因此,当三个团队必须协调他们的集成和系统测试时,摩擦自然会发生。如果这种摩擦——以及不同工艺之间可能出现的故障点——不能最小化,那么产品的发布将不可避免地延迟,而产品的质量也将受到影响受苦。进来除了常见的敏捷开发实践、持续交付和DevOps平台需求之外,从工具的角度来看,还有一些独特的需求实现高效和简化的物联网应用程序交付。我们需要的是一个能够解决三个不同领域的单一平台:一个能够消除摩擦并简化端到端的多域连续交付(MDCD)平台过程。这个解决方案必须能够在整个产品生命周期中集成和协调团队之间的工作转换或交接。此外,它必须能够在工件从一个域移动到另一个域时跟踪工件,并在工件进出不同域时跟踪工件,每次处理的结果,以及谁在不同的域执行工作阶段。做你知道类似的事情吗?:)本系列的第一篇文章也是DZone的物联网研究专题指南。下载完整的指南在这里。