手机网络的新语言编辑本段回目录
研究人员开发出更好的方式为“端到端”蜂窝网络编写应用程序
科学家们很钟爱手机,研究人员们已经将这个无处不在的设备当作可移动的投票站、跟踪设备、传感器来使用。目前,计算机科学家要在不使用手机互联网的情况下用手机来交换数据,以此取代直接和蜂窝塔、基站和偶发性的无线网进行直接通信的方式。
节点簇:袖珍型交换网络的拓扑结构,随着人们的运动迅速变化,引起节点加入或者离开局域网。研究人员按照团体、簇这种共享信息的单位和接受消息的平均延迟来对设备进行分组。那些相同颜色的节点会在相同的延迟后收到信息。
来源:剑桥大学
这是一组计算机科学家的设想,他们相信像病毒一样传播数据可以开启一种端对端移动设备网络应用的新方式,这种网络比较正式的称谓是“口袋交换网络” (pocket-switched networks)。这种特别网络――有点像人工网路――即使蜂窝塔被摧毁,也能让自然疾病的受害者向其他人传递信息。在另一个场景下,来到某个地方的游客能够获得通过当地居民的设备直接传来的重要信息,一群朋友可以互相询问当晚在哪里吃晚饭,而不使用互联网。
剑桥大学的计算机科学教授、该问题研究小组的领导者乔恩·克劳克罗夫特(Jon Crowcroft)说:“如果这个能得到推动,我们希望人们能够提出大量新的应用。”
口袋交换网络的技术是一种延迟忍耐网络结构,比如星际互联网(Interplanetary Internet)。延迟迸发型的网络是一种基础性结构,包含任何随机连接的节点集,它们可以网络中长时间脱离,却能随机传递信息。
口袋交换网络一般包含一组稀疏设备集合,其中的设备大部分时间不相连接,当然也是移动的。它们的通信通过蓝牙或者设备间的无线网进行,并根据设备所有者的内容偏好来使用发布订阅技术。
“这是一个不依赖基础设施的方法,”英特尔伯克利研究院的主任工程师和延迟忍耐网络的专家凯文•付(Kevin Fall)说,“你不需要基站,你也不需要蜂窝塔,你只需要带着一个可以连接到其他设备的设备就行。”
然而,该技术过于复杂。克劳克罗夫特和他剑桥的团队希望能够解决该问题。不久前,研究组发布了一项编程语言,使得开发复杂程序变得十分简单。这种语言被称为数据驱动说明性网络(D3N)语言,使简单的编程方式能发挥口袋交换网络的固有特性,包括异步通信和简单表达式询问。该语言是说明性的,使得程序员能够专注于应用程序的逻辑,而非口袋交换网络的特有算法。
克劳克罗夫特说:“我们的目标之一就是简化它,让人们可以轻松开发出复杂有趣的应用程序。”
D3N语言基于微软的F#项目。该语言增加了并行控制,来处理在不定数目的非同步节点之间交换数据时出现的对等特性。查询和模式匹配功能也使得在本地对等网络的节点中选择数据变得十分容易。
去年,一组研究人员为口袋交换网络组建了一种别样的编程构架,被称作Haggle。Haggle的库增加了一些代码集合来支持在不同平台下对网络中的数据进行的操作,包括了Windows和Windows Mobile,Mac 系列操作系统和iPhone,谷歌的Android操作系统和Linux。
Haggle和D3N的区别在于智能成分――知道如何与口袋交换网络进行交互――是语言固有的,还是存在于分散的代码库中。D3N理解口袋交换网络融入到编程语言的方式,这使得对于这种网络的编程变得更加容易。用D3N语言撰写的程序用简单的命令就可以从网络中获取数据。使用Haggle的开发者也可以获取数据,但编程就比较复杂了。
D3N代码也更容易进行测试,如果服务提供商确信允许在他们的手机上进行编程,这就是一个很重要的特性。“移动运营商想要保证在他们手机上的软件是非常非常可靠的。”克劳克罗夫特说。
"
“所以你需要一些其他方法”来简化口袋交换网络的应用程序开发,英特尔的付说。“我们已经使用Haggle编程接口实现了。他们更进了一步,写出了一种开发用的语言。”
D3N语言的雏形和口袋交换网络整体上仍存在没有解决的问题。一个缺乏研究的问题就是口袋交换网络的安全性。从一个手机到另一个手机传递数据很容易引起恶意软件的传播。另外,攻击者可以向网络倾泻数字污染物,如数字垃圾。
“端对端系统中的污染是很难解决的问题,”克劳克罗夫特说。“我希望它不是一个顽疾。”
说服人们使用口袋交换网络也是一个问题,因为无线通信和蓝牙技术都会消耗能量。为其他用户传递数据会急剧缩短电池的使用时间。研究小组目前正在研究一种混合通信模型,使用低功率蓝牙技术在网络节点中搜索感兴趣的数据,然后使用更大功率的、嵌入手机内部的密集无线网络系统来传递数据。
“我们并不关心是哪种信号来传递数据的,”克劳克罗夫特说。“电池寿命将是非常重要的一个方面。”
如果问题得到解决,手机制造商也相信这种额外的功能是安全实用的,这种网络就会给用户提供另一种可供选择的高带宽通信方式。