远距离数据交互架构
声明
我只是刚毕业的学生,还没找工作,因此这只是想法的交流而已,不喜欢也没必要喷啊喷的,我很反感现在功利的社会和人。鉴于我好歹也是受过高等教育的人,因此有些语言或文字表达可能偏向工程师思维了,见谅。我会改正。
需求(不要老想着项目需求,我只是想做这么个东西玩)
1.我要通过我的某手机拿到1000km以外的某个传感器的数据。
2.我要通过我的某电脑控制2000km外某一辆遥控车的行为。
3.我有大量手机。
4.我有大量电脑。
5.我有大量传感器
6.我有大量遥控车
5.第1条和第2条的控制设备可以互换。
6.距离尽量远,延时尽量低。
回复说明(和我交流,你总得让我能看懂吧)
1.尽量描述清整个架构(c/s、b/s...)的优点和缺点
2.如果使用公用服务器或云平台,请注明操作细节,比如您是自己如何架构,服务器程序是如何实现的(逻辑上)。
3.不限于互联网,任何可行的方案均可提出。
=================不看也罢================
举个例子
鉴于大家觉得我似乎是在拿大家的想法赚钱,我只能呵呵了。开源的世界从来不缺少人才!
###我就先献丑了:###
首先是基于互联网,选择一款不错的云空间或者自己搭建外网服务器,我们需要服务器的原因是我们需要一个外界访问的媒介,可以考虑ddns,但最好是固定ip或其它方式(如域名)。服务器充当我们各种数据的接收和对外提供者,它可以处理用户的数据请求和控制请求,也就是向最终的采集节点索要数据和向客户端提供数据或向执行节点传输指令。而采集节点根据服务器的请求,提供最新的数据给服务器,执行节点则按照服务器发来的指令动作,指令是由客户端发出的,经由服务器处理后交给最终节点。
简单的描述下,我的实现:
实现了的:
我只实现了简易的局域网版,首先我的安卓app可以获取arduino板的传感器数据,同时也可以控制它,电脑也是一样,我做了服务器端我采用了跨平台的qt开发,最终可以运行在win、Linux、arm上。
客户端服务器子节点
未实现的:
我没有实现多个客户端的连接,因为我思考了一下,感觉服务器端的程序逻辑我还没理清。比如如何匹配大量的用户的客户端程序(不同平台或相同平台)和大量的用户的子节点。
题外话
我自己一开始没说很多,现在也没说很多,好吧,我只是想听听大家不同的看法,而不是喷子的口水。我一直很疑惑为啥国内的开源社区之类的不热闹,我想我有点理解了。
Answers
为什么我总觉得题主最终会把靠谱的答案汇总后交给一个给他发工钱的人?
之所以有这个感觉,是因为开源项目 从来不是 这么运行的,你不能仅从几个 点子 去开始一个项目,你需要先有 实现 ,哪怕它功能不全千创百孔,哪怕它光运行起来就需要花一下午去调配置改bug,但你一定要先有一个实现,这个实现一定要在一定程度上 实现 了你的 点子 。如果你的点子真的能吸引大家的兴趣,那么一定会有感兴趣的人参与进来添砖加瓦。
反观lz的做法,差不多就是:
我有一个伟大/绝妙/完美/能赚大钱的点子,现在就差程序员了
要不然就是:
老板催得紧,我得赶快找点资料凑篇文档交差,要不然下月的饭钱不知道去哪儿着落了
你的问题在stackoverflow只存活一了一天,还不能说明点什么?
http://stackoverflow.com/questions/24083830/the-architecture-of-data-exchange-remotely