深蓝互联专注深圳小程序开发、微网站、O2O系统、APP开发和深圳网站建设欢迎咨询邮箱:wisepu@szdbi.com   电话:13530005652   联系我们   |   网站地图   



物联网软件开发和普通软件开发区别在哪?

来源:     发布:     点击:
随着5G时代的到来,物联网软件开发应用变的越来越普及,比如共享单车和共享充电宝等就已经进入我们的生活中,所以就会导致很多没有做过物联网开发的普通软件公司想去开发物联网软件项目,但是如果不明白其中的差异,忽视了物联网软件开发本身一些特殊性的需求,那么开发出来的项目就会出现问题。
首先我们向大家分析一下,它们各种的重点在哪。
物联网软件开发更注重实际场景的应用方面。所以在编程方面就比较重视信息的接受,传递和处理,涉及到设备(各种传感器)、网络、物联网平台、数据分析、应用和安全等相关内容。
而普通软件的开发更注重于各种理论知识的运用,所接触到的最终对象都是人,所以在编程方面比较注重软件工程理论、数据结构算法理论、程序设计的有效性、信息安全、数据交换理论等内容。
通俗的讲,普通软件开发完成以后,在信息的输入方面都是由人输入的,所以服务端只需要对用户输入的信息进行判断处理即可,凡是信息数据不符合要求的,就返回让用户重新输入数据。举个例子,比如我开发了一款APP,需要用户注册登录的,当用户第注册完成后,第一次登录时,需要输入账号和密码,如果用户输入错了账号或者密码,按登录按钮之后,就会提交给服务端,登录验证失败,服务端就会返回数据,要求用户重新输入正确的账号和密码。普通软件开发发展到至今,已经把这种入参合规检测写到开发框架中了,比如密码要求8位数以上,没输入到8位以上无法点击登录按钮。
但是物联网开发项目数据输入都不是靠人工产生的,而且绝大多数物联网项目的设备都在比较恶劣的环境下使用,需要应用端有比较强的容错率。一般来说,容易出错的是终端程序和网络问题产生的数据错乱。
常见可以分为三大类:
第一种,网络不稳定导致错乱,这种问题一般是下面两个原因造成的,一个是终端发出了两个数据包,但是服务端只收到一个,又叫粘包,导致数据无法解析的。另一个原因是数据传输过程中,数据被改变了。所以,就需要编程者在开发过程中,考虑到这个问题,做自动判断处理,当数据传输过来以后,不满足正常情况下的规则时,要求数据重新再次传输。
 
第二种问题是通讯超时的问题:也就是终端向服务器端发送数据,但是终端收到以后,发出收到的通知时网络出现了堵塞的情况,终端以为数据没有发送成功,而服务器已经执行该数据。举个例子,比如说我用手机扫了一个共享单车的二维码,做了扫码开锁的请求。我的手机在扫完二维码后,向服务器传输了我要扫码开自行车锁的请求,服务器也收到了我的请求,但是在回复同意开锁的时候,网络出现了拥堵,导致手机没有收到服务器同意开锁的请求。
 
在这里也有两种解决方法。第一不改变业务状态,比如我没有收到开锁许可时,再发送一次同样的请求,服务器收到以后,发现是两次相同的数据。那么服务器选择自动丢弃本次数据包,直接返回开锁许可,继续当前任务即可。
 
第二种需要改变业务状态。比如我是下午15:01分发出开锁请求,服务器认为我15:01分已经开锁了,但我没有收到服务器的回复,所以没有成功开锁。在15:02分的时候,服务器又收到了终端发出的开锁请求,那么服务器就会更改开锁的时间为15:02,再次向我发出同意开锁回复,从而保持服务器和终端的一致。
 
第三种终端产生的数据异常:比如因为内存越界导致数据发生错乱的,这种是最麻烦的,即便是重新传回数据交互依然不会出现正确的结果,只能在服务器端把异常数据保存并记录终端编号发生错误的时间,后续在进行人工修复。
 
所以说物联网软件开发和普通软件开发过程中,差别其实还是蛮大的,虽然说开发普通软件需要技术要求更高,但是物联网软件开发却非常吃实战经验。
 

相关文章

无相关信息


深圳市龙华新区龙观西路2号宝龙大厦A903(与布龙路交汇处)