随着科技的迅速发展,由于现在的终端设备不断的缩小化以及无线连接的发展,使得移动计算已经是无处不在的了。移动计算与我们所说的一般的计算模型的最大不同点在于他的不可预见性,因为周围的环境随着物体的移动或者是其他条件会不时的改变,而且改变的频率还比较高。因为计算的移动性比较强,所以对于其中的安全性和隐私性要求就会体现出来。
1、移动计算的之所以会叫做此名称在于设备的可移动性,典型的设备如个人手机,其实还有一些可穿戴设备,比如智能手环,智能眼镜等等。
2、这些移动设备通过无线连接进行设备间的通信。
3、无处不在的计算在这里不仅仅指的是一台简单的PC机的操作处理,当你进入一个房间里,房间的电视上播放了一段介绍视频这些都是计算的体现,这其实算的上是一种环境感知的计算,在特定的场合会有特定的操作。
像上文中提到的移动计算和无所不在的计算本质上说的其实差不多,共同的特征就是外界的不可预见的改变,像这样的系统,这里形象的取名为volatile system,意味不稳定的系统。这种系统是高度动态性的并且改变不可预见。
这里又定义了一个新的概念,一个smart space包括一个物理的位置以及包含在内的诸多服务(你可以就理解为一系列的基础设施服务)。
随着移动计算和无处不在的计算的普及,一种新的类型的设备在分布式系统中渐渐的诞生了。这些设备具有一些共同的特征,他们通过接口的方式与外面的物理世界沟通着。下面是设备模型的一些基本特征:1、限制的能源。2、限制的资源。3、拥有传感器等,以此可以进行环境感知。
移动计算的连接性往往不是那么的可靠,有的时候出现失去连接的状态也是有可能的,考虑到无线网络的带宽不稳定性,所以有时会出延时的情况。
由于移动计算特殊的环境,不可避免的造成他的可信度和隐私性保护会比较低。
正如上文所示,移动设备在smart space的环境中可能出现也可能忽然消失,非常的不可预见。当设备处于一个局域网的网络环境下,他与外界环境的通信就需要一个移动的IP的地址,常见的手段就是通过DHCP这样的方式去分配动态IP。还有一份关联性的问题是设备如何协调与其他服务之间的联系。
Discovery services服务发现作为一种客户端查询服务的一种方式。一个服务可以作为目录服务的形式在系统空间中注册他的属性,与前面提到的目录,文件服务有点像。查找服务可以通过lookup()操作的方式获取服务。服务发现在这里有2种模式,一个为push model和pull model。push model就是推模式,服务会向客户端广播描述,客户端监听广播,然后查询他自己所需要的服务,而pull model则是客户端广播他们的请求,如果服务端匹配了他们的请求,服务端想客户端做出回应。在拉模式下,客户端可以尽可能快的发现服务。服务获取之后,同时会有lease租期,里面会限定使用的时间。lease在很多地方都已经提到过他的用途了。JINI是一个服务发现的例子。网络服务发现有时并不总是最终符合人们预期的那样,有的时候因为他的描述语言的不同,比如有个服务在A电脑显示的名称为Printing,而在B房间搜索时的名称为Print。
物理管理正是解决了一些网络服务发现上面的一些问题,他采取了一定的人工干涉的形式,影响服务的选择。
上面已经讨论过2个组件之间如何进行关联,下面的问题来了,他们之间又如何进行交互操作呢,换句话说,他们用什么协议进行通讯呢,在往高一层上说,他们用的是什么编程语言的呢。在这里出现的最大的问题是软件接口的不兼容性。比如你在A设备上有拍照上传图片的接口,但是在B设备上没有对应的接口处理啊,于是你肯定会想,既然出现这样的问题,那就让接口多元化,也支持异构的设备条件,不错 ,这正是其中的一种解决办法,但是问题又来了,大千世界机器设备这么多,你有你的配置,我有我的配置,那么到底会产生多少种接口呢。所以这个方法很难解决问题的本质。现在给出第二种方法,就是构造尽可能的构造出能够满足于大需求范围的接口。这么说你也许有点摸不着头脑了,一个典型的例子是Web上的GET和Post接口的定义,其实还有2种(Delete和Put),够唯一吧,这样就保证了在接口层次上就比较稳定。
我们把采用了像一些Web系统等类似固定接口的系统叫做data-oriented面向数据的系统模型。因此接口的固定性,整个系统可以变得更加的灵活。基于event事件的系统和Tuple space元组空间都可以应用与此,作为交换的一种方式。
在设备的交换方式上,有分为直接设备交互和间接设备交互方式2种。
基于环境感知的系统可以说是非常智能化的,不可避免的,这会用到移动设备中的传感器或者说是类传感器的东西。要感知的东西可能是温度,地理位置,速度等等。
环境感知系统的设计需要克服下面4个问题:
1、特殊传感器的集成。
2、传感器数据的抽象化。
3、传感器的数据输出需要整合。
4、环境是动态变化的。
说到地理位置的感应,我们首先想到的一定是GPS,全球定位系统。他是依靠于悬挂在地球上方的卫星计算所得。现在说说其他的用于定位的方式,Radio beaconing,定位的精度比GPS稍弱一些,他的机理是通过无线基站的广播方式,设备通过比较接收信号的强度大小来判断远近。GPS有个缺点,他一般是在室外使用的比较多,如果你是indoor的环境下呢,靠什么定位。室内的定位技术有一个叫做Active Bat,他的精度可以在10cm。在定位系统的结构中,还有许多的问题和待优化的地方,数据的多样化,比如数据中地理位置的角度,速度,距离,或者更高层的,我要保证定位的位置随着我的移动而能实时的变化。当然我要保证我的系统的扩展性,当同时有很多人在定位时,能够定位的出来。
在volatile system系统中不可避免的会出现数据的隐私性和安全性的问题。由于系统环境的多变性,数据随时可能遭到泄露。比较典型的问题是硬件关联的问题,比如在建立蓝牙连接的条件下,设备之间难免会暴露出自己的Id号,而且这个Id识别号是唯一的,无法更改的,就像是机子的mac-address类似,一旦被人知道,你的设备就有可能在未来的日志里被人跟踪,因此这是标识你设备的唯一识别符。
下面给出几种解决办法
1、在设备信息交换之间建立一个安全的通道,在他们进行通信的过程之中。
2、基于地理位置的的设备认证。
3、避免设备的识别信息的暴露,可以通过生成临时的标识符,比如说用secure hash算法生成临时的key,即使被人知道了,人家也不知道这代表什么意思,对隐私数据进行保护。
物理设备所在的环境是瞬息万变的,有的时候甚至只有在运行时才能够知道,比如说他的网络带宽,设备的能,还有诸如设备之间的异构性,设备之间进行内容传输的时候,也许在你这边是可以显示的,在另外的设备上是不起作用的。针对内容传输的格式的不同上,我们的办法很简单就是转化格式,而且这个转化的过程最好能在中间代理服务器上执行掉,这样对于接收双方来说都是透明的。
系统资源的适配指的是一些突然的情况,比如忽然之间网络带宽下降了,或者设备的能源不多了。还好,这些系统资源的一些变化是被操作系统所支持的,当这些事情发生时,操作系统会通知用户去改变对资源的利用水平,操作系统同时会通知应用去改变资源的条件以适配当前的环境,比如网络带宽下降的时候,帧传输的速度会相应的减慢,在视频上会显示一个滑动的图标。
Cooltown是一个提供nomadic compurting计算的基础设施服务,你也可以理解为是用来进行移动计算的。具体的介绍,大家可以自行学习。
参考文献:<