英特尔公司等全球性品牌此前对其业务进行了重大改变,以专注于物联网的开发,随着越来越多的设备联网,自主配置、管理和监控的界限将继续模糊。
抛开市场炒作不谈,最近出现的最重要的对话之一与物联网的战术元素有关。企业在开发过程中需要解决哪些问题才能使其成为成功的技术转变?
如果没有精确的实施和执行,物联网可能会变成一场噩梦。设备变得越来越智能,可以相互交流并消除不可靠的人为因素,从而提高质量和生产力。
拥抱并成功管理物联网带来的所有技术复杂性是其成功的最重要步骤。
然而,物联网产品和服务只会和它们背后的软件一样好。这不会造成一系列新问题——软件已经无处不在。与其相反,物联网的日益普及只是放大了具有问题的软件的潜在影响,这就是麻烦的开始。
物联网发展的障碍
首先,大量的物联网活动来自制造业、政府(智慧城市)和消费品等行业,这些行业的一些组织缺乏整合这种动态软件能力的能力。再加上对工程师,尤其是具有联网设备开发知识的工程师的需求量很大的问题。
另一个问题是,一旦建立了物联网能力,企业就必须弄清楚如何管理软件。这导致了三重问题。即使是传统的嵌入式软件开发人员也没有赶上开发联网应用程序所需的所有实践。当前软件行业的其余部分将如何管理?
其次,嵌入式软件组件必须与其他面向互联网的组件安全交互。尽管应用程序可以在安全子网上运行,但访问将仅限于同一子网的用户。
这可能适用于某些商业模式,但对于任何想要访问全球互联网的人来说,这不是一个可行的解决方案。
因此,开发人员必须了解这些连接的组件将如何交互,以确保安全性、可靠性和效率。这是IT中的常见问题,但最近出现在设备软件开发中。
第三,物联网使开发人员面临的问题和能力在很大程度上已经在传统计算中广为人知,但在互联世界中应对它们的方法仍然是相对未知的领域。例如,企业和Web开发人员非常熟悉针对本地和远程攻击的强大安全性的需求。
输入验证作为第一道防线的概念在当今的连接系统中被广泛接受。然而,物联网的发展扩大了这些问题的范围。嵌入式、设备和移动开发人员需要开始考虑安全挑战,例如开发过程中的输入验证。
安全性和产品质量如何?
物联网中最大的担忧之一是安全性,软件工程师如何解决它将发挥更深层次的作用。随着设备相互交互,企业需要能够安全地处理海量数据。
已经有许多以智能设备为目标的数据泄露事件,例如欧司朗公司发现在其物联网灯泡中存在漏洞,这可能使网络攻击者能够访问用户的网络和与之连接的设备。
安全需要在设计阶段开始时解决,根据需要进行需求权衡,而不是仅仅简单地添加。这与软件的健壮性高度相关。预先设计和构建强大的软件可能需要更多时间,但从长远来看,安全软件更可靠且更易于维护。
CAST公司的一项研究表明,三分之一的安全问题也是稳健性问题,这一发现与客户的现场经验中得到了证实。
尽管软件开发人员的意图是良好的,但企业管理层总是在寻找捷径。
在物联网生态系统中,率先上市是一个巨大的竞争驱动力,因此这可能意味着为了发布速度而牺牲安全性、质量和可靠性。编写不佳的软件仍然是当今最大的安全问题之一。
为了满足需求、避免陷阱并在不断增长的物联网市场中取得成功,企业需要采用四种重要的物联网软件开发实践。
(1)回顾
适当的代码审查和重复测试需要成为优先事项。制造商必须将这一信息传达给软件工程团队,并要求采取更严格的软件质量措施。
物联网应用程序的高度复杂性使软件容易出现安全漏洞和软件质量故障。应用程序、传感器和硬件设备之间的一次不良事务就可能导致整个系统故障。企业承受不了这样的代价。
(2)评估
在互联世界中进行持续部署是一切如常的事情。更新会不停地发生,并且通常一天会推送多次。
与物联网设备交互的软件的质量保证负担比以往任何时候都大。如果软件没有得到持续监控和代码评估,几乎肯定会失败。
(3)责任
管理层必须对质量保证负责。任何没有一套分析来跟踪其软件风险(无论是可靠性、安全性还是性能)的制造商都会疏忽其对客户和其他利益相关者的责任。
管理层需要以身作则并传达软件质量和安全之间的直接联系。这也符合他们的最大利益,因为由糟糕的编码或系统架构决策引起的安全漏洞可能是纠正成本最高的一些。
(4)宣传
除了测量和分析之外,还需要进行文化转变以包括教育。开发人员和管理层共同需要在社区中传播有关标准的信息。
2015年,对象管理企业(OMG)批准了由IT软件质量联盟(CISQ)提出的一套全球标准,以帮助企业量化和实现软件质量的特定目标。从那时起,在为制造商和IT部门创建计划以始终如一地衡量其软件质量方面取得了重大进展。
令人关注的消费者应用程序(预测性咖啡机、自动驾驶汽车等)和网络攻击(例如从冰箱发起的DDoS攻击)成为头条新闻,但更深层次的商业价值开始出现。
麦肯锡公司的一份报告指出,成熟的物联网系统将收集有关产品如何实际发挥作用以及如何使用它们的数据,而不是依赖于客户关注群体,从而消除产品开发中的猜测。
这无疑会改变游戏规则,要求开发团队降低他们设计的软件的风险。而了解安全架构基础的重要性。并坚持开发人员遵守行业标准将是第一道防线。