尽管手持设备中存在种种软件,硬件的差异,但总体上交互方式都是一致的。系统的设计目标是以增强现实技术、视频检测技术为基础,实现手持设备上增强现实虚拟对象的展示,用户与手持设备中虚拟对象的交互。智能手机作为手持设备的一个分支,软件的发展和硬件性能的升级,使得当下的智能手机硬件都趋向相同化。这里以具备了高性能处理器,高分辨率显示屏,触控屏幕,以及摄像功能的智能手机做为系统设计参考对象。Web Service是一种服务导向架构的技术,通过标准的Web协议提供服务,目的是保证不同平台的应用服务可以相互通信操作。Web Service使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件,就可相互交换数据或集成。
(1)Web Service 体系结构
Web Service体系由一系列标准构成,如WSDL,SOAP, XML等,这些标准可以使客户端应用快速安全的访问Web Service对外开放的接口。Web Service的优点在于平台无关性,开放性,服务的封装性,以及安全实时的数据交换。正是这些优点使得Web Service非常适合用于实现对手持设备数据交互服务。Web Service提供了一些开放接口,并且发布了服务接口,客户使用标准化的XML信息访问这些开放接口,客户不需知道具体业务是如何实现的。
Web Service的体系总体上包含了三个部分,服务商,中介,以及客户。其中服务商对外提供Web Service服务,回馈用户的服务请求,还将定期发布对外开放的服务给中介。中介则类似管理员或代理,负责记录和管理服务商对外发布服务的接口,并将服务商对外发布的服务接口提供给客户。Web Service的数据交换过程中,UDDI为体系结构中之中介角色,它是一种目录服务,为Web Service提供发布服务的注册机制,为用户提供Web象。再通过AR引擎所给的标示附加信息中解析到的标示坐标信息以及WEB返回的模型的大小和相对坐标信息来计算虚拟对象在背景环境中的坐标,将虚拟对象覆盖到背景环境中通过屏幕呈现给用户。完成屏幕呈现后通过交互控制功能通知人机交互模块已完成虚拟对象的加载,可以开始人机交互的监听程序,并实时等待人机交互模块的反馈。当人机交互模块有交互反馈到达时,交互控制功能完成相对应交互的虚拟对象的控制。比如虚拟3D模型的旋转、拖动、点击反馈等,或是视频对象的点击播放暂停,拖动快进快退,图片文字对象的缩放,虚拟对象的关闭显示不等。
通过将手持设备增强现实系统中各个功能分离,设计形成各个模块。这样的设计保证了系统中各个模块间的低耦合性。低耦合性可以使各个模块更专注于各模块自身的优化而不必担心与其他模块的兼容问题。各个模块的独立性设计让该系统在增强现实的应用设计中具有普遍性,通用性。如手持设备间的摄像头的硬件差异,只需通过修改视频捕捉模块来适配设备硬件。AR引擎的更新优化并不会影响到其他模块工作。当有新的交互方式加入,只需更新人机交互模块,而不需要对整个系统进行重写。
手持设备增强现实系统主要包括视频捕捉模块,AR引擎,虚拟对象控制模块,以及人机交互模块四个模块,各个模块的功能描述如下:
①视频捕捉模块,通过手持设备上的前置,或是后置摄像头来捕捉当前显示场景,负责控制摄像头的对焦,曝光度等属性的调整,将捕捉到的原始视频流做一定的编解码处理并将数据交给AR引擎做下一步处理。
②AR引擎,在接收到视频捕捉模块捕捉到的视频信息系后,开始检测标示,获得标示的一系列坐标信息,并解析标示图像获取标示所携带的附加信息。在将获取的标示信息传给虚拟对象控制模块的同时继续跟踪标示,并不将更新的标示坐标信息传给虚拟对象控制模块。当标示移出画面时还需提示虚拟对象控制模块,标示已经消失,停止对虚拟对象的显示和控制。
③虚拟对象控制模块,在接收到AR引擎所传递的标示附加信息后,解析标示的附加信息,根据解析后的数据从Web Service请求相应数据,比如虚拟对象的3D建模数据,3D贴图数据或是视频数据,视频框的大小,相对坐标,除此之外还可以是文字,图片,音频等等都可以作为手持设备和WEB交互的内容。虚拟对象控制模块接收到Web Service的虚拟模型数据以后,将数据信息计算生成虚拟对Service所发布服务的发现机制。客户端通过UDDI查询到自己所需的WebService,使用WSDL从UDDI处获得服务接口。使用SOAP协议通过从UDDI获取到的服务接口以XML对数据进行编码同Web Service进行数据交换。其中,WSDL(Web Services Description Language)是一种描述 Web Service以及Web Service之间如何进行通信的XML语言,它定义了描述Web Service接口的规范。WSDL包含了以下信息:消息类型,消息内容,消息参数,操作类型,端口类型,具体协议和数据格式规范,端口地址以及相关端口的信息。UDDI (Universal Description, Discovery and Integration) 相当于 Web Service的一个公共注册表,它旨在以一种结构化的方式来保存有关各公司及其服务的信息,形象的说它就是电子商务应用与服务的网络黄页,可以用来注册和查询信息。人们通过UDDI nJ以发布和发现某个公司及其服务的信息,然后通过统一的调用方法来消费这些服务。
④人机交互模块负责用户和手持设备直接的交互,触摸屏的点击,手势滑动,双指缩放,双指滑动,都是交互方式。用户还可以通过语音识别系统交互,智能手机可以识别用户的语音指令,给各个不同的交互指令设定不同的反馈,将反馈返回给虚拟对象控制模块后,虚拟对象控制模块中的交互控制功能会根据当前显示的虚拟对象对于反馈的交互指令做相应的操作。还可以通过陀螺仪识别手持设备的晃动和方向角度的改变,将陀螺仪的数据反馈给虚拟对象控制模块,来控制虚拟对象的呈现,实现同用户的交互。四个模块是基于低親合性设计的,四个模块相互协作实现手持设备增强现实系统。因为四个模块的低耦合使得该设计适用于各个手持设备,根据各个设备的软硬件差异对独立的四个模块做相应的优化和改进,并且不会影响其他模块的正常工作。比如不同的设备会有不同的AR引擎库,且无法相互兼容,则只需对该设备增强现实应用中的AR引擎模块进行更改,无须更改其他三个模块就可以实现该设备上的增强现实应用。
(2)SOAP
SOAP (Simple Object Access Protocol) 是交换数据的一种协议规范,使用在计算机网络Web Service中,交换带结构信息。SOAP为了简化Web Server从XML数据库中提取数据时,节省去格式化页面时间,以及不同应用程序之间按照HTTP通信协议,遵从XML格式执行资料互换,使其抽象于语言实现、平台和硬件。
SOAP由四部分构成: SOAP绑定(binding),它定义了 SOAP使用哪种协议交换信息。使用HTTP/TCP/UDP协议都可以。SOAP RFC表示(RPCrepresentation),它定义了一个协定,用于表示远程过程调用和应答。SOAP封装(envelop),它定义了一个框架,描述消息中的内容是什么,是谁发送的,谁应当接受并处理它以及如何处理它们。SOAP编码规则(encoding rules),它定义了一种序列化的机制,用于表示应用程序需要使用的数据类型的实例。消息发送端和接收端的SOAP消息交换是单向传输的,通过请求/应答的方式实现信息交换。
JSON (JavaScript Object Notation) 是一种轻量级的数据交换负载格式,格式友好,易于阅读和编写,更重要的是相对于XML,其更易于机器生成和解析。它基于JavaScript的一个子集,采用完全独立于语言的文本格式。
JSON的基本数据类型有以下几种:
①数字,精度依赖于调用JSON的语言,在JavaScript可以是双精度浮点数;(www.xing528.com)
③布朗值,表示真和假两种状态;
④数组,方括号包围一组用逗号分隔的数据表示,方括号中的数据可以用多种数据类型;
⑤对象,用大括号包围一个名称和值的键值对表示一个对象,名称和值之间用冒号隔开;
⑥ 空,表示数据为空。
相比XML,JSON的格式相对简单,使用JSON传输数据时可以减少传输时的带宽占用。因JSON的格式相对简单,编码难度和解码难度都比XML低,这大大降低了服务端和客户端的资源开销。JSON还具有跟XML 一样的扩展性。JSON以上的特点使其更适用于承载手持设备和Web Service直接的数据交互。
(3)基于并发的Web Service
当Web Service的一个服务接口被众多用户使用,这意外多的访问量会导致反馈速度的瓶颈最终使整体服务质量下降。并发技术可以很好的解决负载压力,但难点在于如何划分、合成和调用小粒度服务。Web Service并发系统的基本原理是通过抽象资源层把系统资源划分或者合成若干个具有独立运作功能的小粒度服务,若干个小粒度的服务组成一个Web Service,必要时单个小粒度服务也可以作为一个Web Service使用。再通过一定策略调用小粒度服务,使得在小粒度服务之间产生并发。Web Service通过分析用户请求,将若干个小粒度服务合成出合适的Web Service,并在时间均衡的基础上调控和检验小粒度服务的运行来实现服务的并发控制。Web Service的并发模型中,服务商由多个Web Scrvice组建而成,独立的Web Service可以由相同的小粒度服务组成,也可以由不同小粒度服务组成。多个用户同时向服务商请求接口服务时,服务商的Web Service并发控制器将各个用户的请求细化为外个小粒度服务并均衡负载到各个Web Scrvice。再将各个Web Service返回的数据进行集合处理返问给相应用户。比如用户A的请求中需要小粒度服务a和小粒度服务b的支持,并发控制器会根据当前各个Web Service的负载情况进行小粒度服务分发。并发器先对请求中对应的小粒度服务使用预设的权重进行计算小粒度的预负载值,两通过预负载值将各个小粒度服务最优分配到当前最低负载的Web Service中。如果当前负载最低的是Web Scrvice A,则控制器会将小粒度服务a预分配给Web Scrvice A,此时如果Web Scrvice A的负载还是最低则小粒度服务b还将分配给Web Scrvice A,反之小粒度服务b将分配给其他服务器。因此用户A的请求可能会有一个Web Service来处理,也可能会交给多个Web Service处理。当使用过程屮出现了对个别的小粒度服务需求上升,使得负载增加,则服务商可以为高负载的小粒度服务再新增一个Web Servicc来均衡负载,在新增Web Service的同时并不会影响其他Web Service的工作。比如用户A,用户B,用户C都对小粒度服务a都有大量的需求,新出现了用户D对小粒度服务a也具有高需求,D用户的请求开始使原有相对负载稳定的Web Service形成压力,服务商就可以通过增设一个提供小粒度服务a的Web Service来增加小粒度服务a的服务能力,实现均衡负载。当服务商发布了一个新的小粒度服务,则可以将这个新的小粒度服务增加到低负载的Web Service中,而并不需要新增Web Service,降低了整个系统资源的浪费。该模型的优点在于能很好的将用户请求均衡负载到各个Web Service,使得资源得到高效合理利用,实现高效并发服务。
(4)增强现实Web系统设计
如今Web开发语言越来越丰富,各个语言开发的Web服务具有各自的优缺点,但服务的宗旨都不变,让用户可以快速、简单、高效的获取信息。下面介绍以实现手持设备增强现实应用与Web进行数据交换为目的,设计的一个具有通用性的Web服务系统。
Web服务系统包括了三个大部分:
并发控制模块:负责并发数据请求的分发,各个Web Service的负载均衡,以及将Web Service回馈的结果数据进行集合返回给手持设备;
Web Service:为用户提供小粒度服务,负责数据的解析运算以及数据的整合编码。Web Service主要由通信模块,标示信息解析模块,服务模块组成。通信模块负责跟并发控制模块进行信息通信,信息的收发,缓神。从用户过来的请求信息,以及Web Service发出的信息都要经过通信模块,确保Web Service信息的安全性,合法性,以及控制请求负载。当传入的消息经过通信模块检测合法性后再由通信模块将消息内容剥离出传递给标示信息解析模块。标示信息解析模块对消息内容使用预先规定的编码规则进行解析,根据解析的内容对服务模块请求相应服务。服务模块则提供各种数据计算,数据查询,数据存储的服务。当服务模块完成请求后,会将反馈数据交给通信模块,并通知通信模块已经完成当前请求,可以继续接收下一个请求。数据储存系统:负责系统的数据存储,用户的数据存储。比如多媒体数据、图片、文字内容、音频和视频等,还有用户的设备信息,用户的交互习惯都需要数据存储。
(5)通信安全
原有的Web Service依赖于传输层安全协议只能保证点到点的安全,WS-Security作为一种安全规范主要是为了给Web Service提供传输中端到端的安全保障。WSSecurity通过将安全信息加入SOAP的头信息中,再通过应用层的研制,从而实现端到端的通信安全。WS-Security通过对SOAP消息进行签名认证来保证消息完整性,通过对SOAP消息进行加密来保证消息机密性,通过安全令牌确认发送者身份。这三个安全机制保证了通信的安全。系统设计中的手持设备和Web服务的通信都需要遵守WS-Security协议对信息进行验证加密。这样确保了各个系统之间通信的安全。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。