Web交互技术

2024-09-25

Web交互技术(精选9篇)

Web交互技术 篇1

虚拟现实(VR-virtual reality)技术以模拟方式为使用者创造一个实时反映实体对象变化与相互作用的三维世界,是一种先进的数字化人机接口技术。随着计算机技术的发展和对复杂系统仿真的深入研究,虚拟现实技术已经在科学研究、文化教育、商业宣传、医学生物、工业展示、军事模拟等众多领域得到了广泛的应用[1,2,3]。

1 开发平台

Autodesk公司开发的三维动画渲染和制作软件3D Studio Max,现已广泛应用于建筑设计、多媒体制作、游戏、辅助教学以及工程可视化等领域的模型建设。Virtools引擎是法国全球交互三维开发方案解决公司开发的一款交互式三维开发工具,用拖放操作将行为交互模块(building blocks,BB)赋予虚拟对象,并以流程图的方式决定前后处理顺序,从而实现可视化的交互脚本设计。也可以利用内嵌的VSL语言直接访问开发场景,进行引擎优化与扩展。其体系结构如图1所示。

2 关键技术研究

2.1 并行化碰撞检测算法

碰撞检测是构造三维交互系统的不可缺少的一个组成部分,是指空间中任意两个不可刺穿的物体,不能存在于相同位置的空间区域[4]。现有的分布式面向对象检测法[5]、基于凸多面体结构的并行碰撞检测算法[6]等,由于算法速度、实验条件、系统执行过程的进程数等原因,并不适合所研究的课题。因此,提出球盒混合结构的并行化碰撞检测算法,用分治策略为虚拟空间中每个物体建立树形模型,用并行算法遍历树形模型结构。这样,可以加快遍历树形节点的速度,从而加快了碰撞检测速度。

设包围盒中心坐标为(X0,Y0,Z0),任意一点坐标为(x,y,z),边长为L,如将中心点坐标与坐标原点处于相同位置,则包围盒可用公式1描述:

设包围球球心坐标为(X0,Y0,Z0),任意一点坐标为(x,y,z),半径为R,则包围球可用公式2描述:

为了简化计算过程,设AABB包围盒位于坐标原点(0,0,0),令,X0不等于0,则包围盒与包围球之间的距离可用公式3描述:

设包围盒与包围球中心点的连线与坐标轴Z的夹角为β,则有:

当Y0<0且X0>0时,β=-α;

当Y0<0且X0<0时,β=π+α;

当Y0>0且X0>0时,β=α;

当Y0>0且X0<0时,β=π-α;

若β·D<|Z0|的值为真,则包围盒和包围球相交,反之则不相交。

2.2 LOD技术算法及优化

Virtools中的LOD技术是一个算法集合,为了提高虚拟环境中三维植物的真实感,利用开发平台软件包Virtools Dev的SDK,根据曲线逼近原理,提出一种新的模型优化算法,作为对Virtools Dev集成的几种LOD技术的有力补充。从图形系统接口获取物体的映射变换矩阵MT,aij指旋转、平移、缩放、投影,这4个矩阵相乘得到最终变换矩阵的一个元素(公式4):

L-系统生成的向量集合为P∈{P1P2P3…Pn},n是现有的顶点数量,P向量为行向量描述方式,bij是行向量描述方式中的一个元素,MT是最终映射变换矩阵,Vmin是点集合中所有x,y,z分量中的最小值所组成的新向量,Vmax是点集合中所有x,y,z分量中的最大值所组成的新向量,如公式5-公式8:

由Vmax构成向量空间PVmax,PVmin构成一个子空间B,是该物体的边框。模型或树木的第n-1个等级的边框为Bn-1,将边框与L-系统的描述存储在一起,再将边框上每一个点与最终的变换矩阵MT相乘,就获得Bn-1在显示屏上的边框Sn-1,即Sn-1=Bn-1Mf,S0是第一级边框的面积,S0与Sn-1的比值是其等级系数,在该植物所有等级中找出与这个等级系统最接近的值,以此确定显示等级。如公式9:

对集合P中的植物进行边框变换得到最终在屏幕上投影的矩阵,如公式10、公式11:

其中,Max和Min函数是对向量的单个分量进行对比得到最终值。这里Q为边框面积,Vmaxx是Vmaxx轴向的分量,Vmaxy是Vmaxy轴向的分量,Vminx是Vminx轴向的分量,Vminy是Vminy轴向的分量,如公式12:

3 系统设计与实现

3.1 系统结构

系统在结构设计上可分为6大模块:摄影机模块、操作菜单模块、位置与角度修改模块、材质模块、特效控制模块和数据存储模块,其关系如图2所示。

3.2 模型设计

为适应在网页上实时显示的需要,一个场景做出来的Polygon面数最好维持在10000~15000面之间,同时贴图不要超过10M为最佳。为了控制模型的点面数,在建模的同时,记录每个模型的点面数,以备控制、优化、修改。

3.3 算法实现

1)盒球混合碰撞检测算法

Virtools中封装了Collision Detection和Prevent Collision模块,都有一个属性Geometry Precision。这个属性供用户选择碰撞检测的精度,它有三个选项:Automatic、BoudingBox和Faces。根据实际项目需求,改造BoudingBox选项算法如下:

队列liveset中存放树形中待检测节点。通过判断函数RatioThreshold()的返回值,决定是否进行相交检测。

2)实现优化的LOD技术

对于大型场景模型采用默认的LOD模块即可,对于植物、精密设施等模型可以利用Virtools Dev提供SDK,在C++编程环境中开发定制的行为模块。对优化后的LOD算法进行实现,核心代码如下:

新算法自动实现了不同区域对视觉效果的影响,在保证高质量模型的同时有效提高实时编辑和渲染效率。

3.4 主要功能模块的流程

1)手动漫游

(1)Switch On Key、Translate:在Switch On Key通过设定参数W、A、S、D四个按键消息,然后在Translate实现四个方向的移动和行走控制。

(2)添加Object Keep On Floor V2、Object Slider同时对物体增加碰撞属性,和地板属性,设定Object Keep On Floor V2的参数,实现行走时保持在地面上,通过Object Slider的设置实现碰撞处理。

(3)添加Mouse Camera Orbit实现用鼠标控制镜头。流程图如图3所示。

2)交互功能实现:Virtools提供了功能丰富可扩展的类和函数,可以实现复杂三维虚拟场景的自动感应门、音乐设置、场景转换、语音讲解、图文介绍等动态交互功能。自动门流程如图4所示。

图4自动门功能3)视景特效:通过Switch On Parameter修改Switch On Parameter、Set Current Slot、Show、Hide参数的对应选项,启动四种季节流程。通过Position On Curve实现行驶的车辆、游鱼、飞鸟等角色对象。水面波浪、河水流动、睡莲等,作成平面模型,通过Texture Sine实现纹理的流动,通过Play Animation 3D Entity实现模型动作。用粒子系统实现喷泉、降雨雪等特效。

4 结束语

三维场景仿真能够让设计者的想法在电脑上真实地与人互动起来,并且以网页形式发布,具有较大的可移植性和再开发性,是继极具发展潜力的新技术。在数字城市及城市信息化建设中的应用还有很大的潜力,在对外宣传、招商引资和文化传播中,具有较高的实际价值。

参考文献

[1]Mara H,Sablatnig R.Digital Heritage and Healthcare Determination of Ancient Manufacturing Techniques of Ceramics by 3D Shape Es-timation[C]//Proceedings of the 12th International Conference Interactive Technologies and Sociotechnical Systems(VSMM2006),Xi'an,China.Berlin:Springer Publisher,2006:349-357.

[2]Furukawa K,Woong C,Hachimura K,et al.CG Restoration of a Historical Noh Stage and Its Use for Edutainment[C]//Proceedings ofthe 12th International Conference Interactive Technologies and Sociotechnical Systems(VSMM2006),Xi'an,China.Berlin,Germany:Springer Publisher,2006:358-367.

[3]Gutierrez D,Frischer B,Cerezo E,Gomez A,Seron F.AI and virtual crowds:Populating the Colosseum[J].Journal of Cultural Heritage(S1296-2074),2007,8(2):176-185.

[4]魏迎梅,吴泉源,石教英.碰撞检测中的固定方向凸包包围盒的研究[J].软件学报,2001,12(7):1056-1063.

[5]王兆其,赵沁平,汪成为.面向对象碰撞检测方法及其在分布式虚拟环境中的应用[J].计算机学报,1998,21(11):990-994.

[6]薛广涛,李超,尤晋元.基于凸多面体剖分的并行碰撞检测算法[J].上海交通大学学报,2004,38(8):1385-1388.

Web交互技术 篇2

浅析手机Web App的交互设计

HTML5为提高手机网页的体验提供了诸多的可能性,交互效果越来越接近原生App,故而成为Web App,有望将APP功能引向浏览器,让移动平台的竞争由系统平台转向了浏览器之间。

Web App比起原生App和wap有着自身的优缺点,先简单了解下其特点,掌握设计趋势,也便于以后在设计中应用。离线存储离线存储的意思是第一次访问是下载网页,以后在无网络的情况下也可以使用。一个离线应用程序就是一个URL列表–HTML,CSS,JavaScript,图片,或者其他类型的资源。访问时探测到服务器列表的缓存名单时,会触发下载事件,根据名单下载指定的文件存储到本地。

在下载的同时,浏览器将会周期性的触发进度事件,此事件包含了诸如多少文件已被下载,多少文件仍然处于下载队列等信息。当缓存名单中所有列出的资源被成功下载后,浏览器触发下载完成事件。当再次访问时,浏览器会再次检查网站的缓存名单,通过对比名单和本地的资源,得知是否需要加载新资源。新版本加载完成之后不会立即被使用。后台可以下载新网页,也不会强制用户打断当前操作流程,重新刷新页面。如果此过程中的任何一点出现可怕的错误,你的浏览器将会触发一个错误事件,并立即终止。类似于安装应用程序,中途不可以出错。

Web App可以利用存储的特性将重要和重复的数据保存在本地,避免页面的重复刷新,减少重要信息在传输过程中被泄露,增量传输修改内容。而离线存储但也不是Web App特有的问题,浏览和阅读类App也有离线的使用需求,用来应对随时可能出现的网络问题。

如离线模式是利用网络闲暇时间下载内容,当用户打开App时立即开始阅读。或者是网络不佳情况下保存用户的操作记录和加载相对重要的文字内容,之后再依次上传泽思网络 – 上海APP开发商

已更新的数据,如微博的发送队列机制。交互操作手机网页的操作发送只有点击,点击链接和控件,交互方式非常单一,而Web App 的操作将越来越接近应用程序。

1.Web App的建立离不开网络速度的提升,加载更多的内容,图形元素更为丰富。同时更多的JS交互,便于用户操作和形成扁平化的信息架构。

2.识别更多的手势操作,如下拉刷新和右滑存档等平移手势。操作不必全部呈现在界面中,和平台操作保证一致。

Web交互技术 篇3

关键词:Web,CGI,ISAPI,ODBC

一、引言

Web技术不仅为Internet的广泛普及起到关键性的作用, 而且还在其他相关计算机网络应用技术发展中起到关键作用, 例如Intranet、电子商务等, 目前它已成为计算机网络应用的一个主要技术, 尤其重要的技术是web动态技术, 与后台数据库的交互式动态查询技术。本文针对常用的web动态技术, 与数据库交互技术作以介绍。

二、实现Web动态技术的几种方法

利用CGI实现Web动态技术在Web应用中, 与其他动态编程技术相比, CGI技术虽然是一项很早期的技术, 有很多的不足, 性能差、需要大量的HTTP知识、不灵活等, 但笔者认为它还是具有很强的使用性, 因为其使用普遍, 很多Web服务器均支持。就其协议而言, 具有简单、易掌握, 见效快等特点。CGI是Common Gateway Interface的缩写, 它可以使用任何一种计算机语言编写, 使用尤其广泛的有C、Perl、C++语言。Web服务器接受客户端浏览器的URL请求, 找到CGI程序后, 启动并产生一个CGI进程, 将系统参数和用户请求参数交给CGI进程, 由CGI进程提取数据库中数据处理后, 产生结果, 反馈给Web服务器, 由其反馈给用户端浏览器, 这样完成了一个请求过程。CGI调用流程[1]IDC (Internet数据库连接器) 通过使用Internet数据库连接器可以发布你的数据库, 允许用户访问数据, 只需开发者编写最少量的代码。你只需提供SQL查询 (IDC将在数据库上执行它) 和模板 (描述数据显示和收集的方式) , 而不用进行复杂的程序设计, 这种方法适用于简单的不需要控制和验证数据的程序。它是IIS的功能之一, IIS通过调用一个名为HTTPODBC.DLL的ISAPI应用程序处理.IDC和.HTX文件实现的, 调用处理过程是一个不连续的循环[2]。应用中要注意隐藏.IDC和.HTX文件。保证应用程序和数据库的安全性。

基于ISAPI的解决方案, ISAPI (Internet Server Application Programming Interface) 是Microsoft的IIS提供的一种新的接口标准, 用于开发交互式Web应用程序, 它采用的语言多为面向对象的编程语言如Visual C++、Delphi等, 它与CGI程序很相似, 但在性能方面较CGI应用程序相比有较大提高, 在执行时不需要重复装入代码, 能够降低系统开销, 提高运行速度;具有很强的灵活性, 与服务器之间能够很好的衔接, 能够实现一些很复杂的操作和控制。

活动服务器页面[3] (Active Server Pages) 它是由第三版IIS提供的新特性, 实质是通过一个名为sspifilt.dll的ISAPI过滤器实现的, 主要提供的功能是开发人员可以通过使用服务器端脚本 (VB-Script或VCScript) 动态生成网页, 可以同访问数据库的Active X控件连接在一起使用来实现数据库的动态交互查询。

第三方解决方案许多第三方工具可以用来帮助你创建交互式Web应用程序, 它们主要改善了CGI程序的开发环境, 降低开发人员掌握基于Web的数据库交互式应用程序的开发难度, 帮助你使用所熟悉环境来开发应用程序, 保存现有应用程序代码的移植和复用性。

三、实例分析

针对吉林移动业务支撑中心的具体情况, 主要以Oracle数据为主, 主要采用的是, 服务器端直接安装Oracle公司提供的Web服务功能, 在此基础上进行二次开发, 或利用Oracle产品的Pro*C和SQL查询语言直接编写CGI程序来达到交互使用, 或使用ODBC或JDBC数据库接口产品与数据库进行交互式操作。客户端的动态方式, 一种利用HTML的表单和URL查询串向服务器的CGI程序传递请求, CGI程序将数据以超文本形式返回给客户, 这种方式可以通过一些嵌入的脚本语言来进行表单的预处理, 来减少CGI程序的负荷, 提高CGI的执行效率。另一种方式是采用JAVA Applet进行交互, 这样可以使程序具有更好的交互性, 图形化, 而且这样由于JAVA Applet是下载到客户端运行的, 而且JAVA Applet有很强的图形处理和应用程序接口能力, 这样CGI程序只需将基本数据提取后, 返回到客户端即可, 这样可以大大降低服务器端的负荷, 将运算量分散到客户端, 使得负荷得到均衡。在实现这些内容时, 数据库的接口也是一个很重要的方面, 下面列出CGI程序、ODBC、JDBC、JAVA Applet之间的数据交换简图和基本步骤, 无论如何在使用这些之前, 都需要在数据库服务器上建立相应驱动程序和数据源, 详细内容请查阅本文后面列出的书籍。使用ODBC访问数据库 (略) 使用ODBC的基本步骤[4]是:为ODBC分配环境句柄分配一个连接句柄连接到数据库用SQL命令分配一个语句句柄传送该语句关闭连接解除连接和环境句柄。使用JDBC访问数据库[5]使用JDBC的基本步骤是:建立连接创建Statement对象, 用于执行SQL语句执行SQL语句关闭Statement对象关闭连接。

1初始化ODBC

在这个过程中, 应用程序将通过调用SQLAllo Env函数初始化ODBC接口获取ODBC环境句柄。ODBC环境句柄是其它所有ODBC资源句柄的父句柄因此无论程序将建立多少个ODBC连接, 这个过程只需执行一次即可。

2与ODBC数据源建立连接

调用SQLAlloc Connect函数获取连接句柄, '获取连接句柄;建立连接。这个步骤可以通过多种方法实现, 最简单直观的方法是调用SQLConnect函数。

3存取数据

用户对ODBC数据源的存取操作, 都是通过SQL语句实现的。在这个过程中, 应用程序将通过连接向ODBC数据库提交SQL语句, 完成用户请求的操作。

4检索结果集

如果SQL语句顺利提交并正确执行, 那么就会产生一个结果集。检索结果集的方法很多, 最简单、最直接的方法是调用SQLFetch和SQLGet Data函数。SQLFetch函数的功能是将结果集的当前记录指针移至下一个记录, SQLGet Data函数的功能是提取结果集中当前记录的某个字段值。通常可以采用一个循环提取结果集中所有记录的所有字段值, 该循环重复执行SQLFetch和SQLGetData函数, 直至SQLFetch函数返回SQL_NO_DATA_FOUND, 这表示已经到达结果集的末尾。

四、结论

本文介绍的基于Web交互式数据库查询技术中, 基于FOXWEB CGI和JAVA, ODBC针对ORACLE的CGI编程技术已广泛应用于吉林移动生产开发信息查询系统中, 具有很强的实用性。随着新技术的不断出现和编程人员对Web和网络知识的了解和深入, 我们可以采用更新、更好的技术的解决方案, 特别是NT服务器IIS的ISAPI技术。

参考文献

[1]吴迪文:《WWW数据库系统信息集成技术》[J].微机发展.No.1, 1999.

[2]刘军等:《基于Web的交互式数据库查询技术》[J].微机发展.No.4, 1999.

[3]王克宏编译:《JAVA语言与SQL接口》[M].清华大学出版社.1997.4

[4]王佑中著:《Web动态技术入门》[M].机械工业出版社.1997.1.

Web交互技术 篇4

Windows 8下载放出一段时间了,国外对Windows 8在网页设计中能够如何应用也有了一些研究型的文章,我个人对这种方方正正的设计非常喜欢,手机上的Android系统也是个方方正正的版本。

本文介绍一些Windows 8风格的网页设计的资源。

A Web Design Inspired by Windows 8 UI

这是一个根据Windows 8 UI做的主题。在主题首页展示最新的博客、缩略图,还有一些个人信息。在正文页边栏显示tag、Category等信息。

主题特点是色彩鲜艳、白色文字、色块分明,图标也很solid。

不过美中不足的是,没有采用适应的技术(responsive web design),就设计来讲,本来是一个非常适合适应设计的,在iPhone和Android的浏览器上就不用每行显示3个block,

而更宽的浏览器上可以每行4个甚至5个。

目前还只是一个demo页,它们没有主题下载放出。如果有时间,我打算近期把这个主题实现,当然,要加上一些feature。

Full Windows 8 GUI Theme set (psd)

这是一个免费的Windows 8主题的GUI,可以基于它做自己的设计。

总共15M,真的 !

Metro Website Design Template V4 like Windows 8 interface

Web交互技术 篇5

1 3D场景技术

1.1 vrml场景创建

VRML(Virtual Reality Modeling Language)即虚拟现实建模语言,是一种用于建立真实世界的场景模型或人们虚构的三维世界的场景建模语言,也具有平台无关性。VRML的对象称为结点,子结点的集合可以构成复杂的景物。结点可以通过实例得到复用,对它们赋以名字,进行定义后,即可建立动态的VR(虚拟世界)。为了构建真实精细的3d场景,可以采用3dmax辅助建模后导出为vrml语言,继续用vrml语言进行更改完善。

1.2 场景交互

VRML不同于其他虚拟技术的一大特点就是其有着很好的交互性。VRML的交互方法主要分为三类,一类是通过VRML内部的Script节点与其他高级语言编写的脚本程序、VRML事件以及各种感应器配合进行交互,这种方法的交互能力有限,只能做一些简单交互,不能提供丰富的交互手段。另一种就是通过利用JAVA APPLET调用EAI(External Authoring Interface)进行交互。还有一种是通过HTML语言中的JavaScript脚本直接改变VRML中节点属性值从而达到交互的目的,这种交互方法适用范围很大,能够设计出丰富的交互界面[3]。本此研究主要采用第三种方法,用法方便简单,如下:

设置场景属性:document.CC3D.setNodeEventIn(node,field,value);

获取场景属性:document.CC3D.getNodeEventOut(node,field);

2 语音交互技术

2.1 简介

Java Speech API是一套语音技术接口规范,包含三方面的内容:语音引擎中心、语音识别引擎和语音合成引擎,组织成三个包:javax.speech,javax.speech.recognition和javax.speech.synthesis,允许开发人员将语音技术整合到Java applet和应用程序的用户界面中。但JSAPl只提供了接口标准,不同开发者实现该接口时,使用的方法会各不相同[2]。例如可以运用cloudgarden的cgjsapi实现。

2.2 语音合成

JSAPI语音合成引擎具有基本功能如下:1)合别器模式和属性:从JSAPI引擎中心继承而来,确定要创建识别引擎的更具体的模式和属性;2)合别结果:对识别器处理完语音输入后给出的结果进行管理;3)异常或错误处理。

synth.allocate();

synth.waitEngineState(synth.ALLOCATED);

synth.getSynthesizerProperties().setVoice(v);

2.3 语音识别

JSAPI语音识别引擎具有基本功能如下[2]:1)识别器模式和属性:从JSAPI引擎中心继承而来,确定要创建识别引擎的更具体的模式和属性;2)识别语法:限定语音表达方式的词汇和句式,语法有规则名称和标识。标识可以分组或选择。可以使用外部语法规则文件或者内部语法规则设置;3)识别结果:对识别器处理完语音输入后给出的结果进行管理;4)异常或错误处理。例子代码如下:

grammar robot;

rec.allocate();

rec.waitEngineState(Recognizer.ALLOCATED);

public void resultAccepted(ResultEvent et){//识别后的处理程序

3 工程实例

3.1 系统功能

在采用Java EE+MySql架构的基础上运用web的3d智能交互技术构建一个与虚拟人交互的系统——基于web的3d智能虚拟人。该系统中的3D智能虚拟人可以与用户简单对话,并根据语音指令或文字指令做各种操作,回答各种资讯并且能根据问题的内容做出相应的表情和动作。

3.2 系统关键流程

与场景中的虚拟卡通交流采用语音交互技术实现,虚拟卡通在场景中走动,场景智能化变动或场景自定义设置则是采用Vrml语言实现的。场景变动和语音交互要协调同步,所以系统交互大概框架流程图如图2。

4 结束语

该文主要介绍了web3d智能交互技术——基于vrml语言的场景交互技术和基于JSAPI的语音交互技术。Vrml具有可交互性,支持多媒体,节省网络带宽等特点,非常适合开发三维网上应用程序。但由于自身的局限性需要用3dmax辅助。对于JSAPI,随着Java技术的广泛应用和语音技术的不断发展,加之JSAPI自身的完善、简单易用、定义的严密、概括等特点,JSAPI将广为Java语音技术开发者所采用。

摘要:利用vrml和javascript结合构建和改变3d场景,java speech API和语音引擎实现语音交互,这两点使得web交互可以真实模拟现实交流,更真实,方便。

关键词:Vrml,场景交互,语音交互

参考文献

[1]倪素萍,董滨,赵庆卫,颜永红.基于Java Speech API规范的语音识别引擎的实现[J].微计算机应用,2006,2(2).

响应式WEB交互设计浅析 篇6

1 什么是响应式交互设计

1.1 响应式W E B交互设计概念

目前, 随着信息技术的发展, 以及人们物资生活水平的提高, 浏览网页获取资讯的方式已不仅仅局限与使用PC端个人电脑浏览器来进行。很多时候我们开始使用移动设备, 如智能手机、平板电脑等设备进行资讯的获取。但我们很快发现, 移动设备更新换代频率越来越快, 要跟上新产品发布的速度, 并且兼容所有设备是非常困难的。对于大多数网站来说, 也没有资金和精力为每一个新分辨率的新移动设备产品设计制作一套配适的移动端网站版本。对于用户来说, 用户只关心信息获取的体验, 而不会去考虑开发的繁琐程度。那么为了迎合用户需求, 保持用户体验, 同时兼顾网站开发的资金、技术、时间以及人力成本, 提升扩展性及兼容性, 响应式交互设计应运而生。

1.2 响应式交互设计优势与缺点

在目前这样一个时间节点上, 许多网站还没有开始对原有网站进行响应式交互的改版或升级。原因有很多种, 其中, 网站主没有意识到响应式交互的优势与必要性是很主要一点。

响应式交互有以下优势:首先, 灵活性高, 可从容应对多种屏幕分辨率下的用户体验。现在手机、平板电脑制造厂商众多, 尺寸及分辨率也标准不一。使用响应式WEB交互设计后, 无论用户使用苹果、三星、HTC还是其他任何品牌产品, 只要是智能机, 都能达到完美的匹配效果。其次, 扩展性高, 页面内容丰富多变。响应式交互可以根据不同的设备显示屏幕大小自动配适页面内容。如有需要还可以显示或隐藏特定内容及功能。兼容多平台, 用户体验一致。目前主流的移动设备系统平台中, IOS平台和Android平台在智能设备用户中占有率最高, 但两种系统平台开发理念及编写方式不一样。响应式交互设计支持多平台, 可以解决用户因为设备系统不一致而导致的用户体验参差不齐的问题, 使用户无论使用什么设备都能获得统一的使用感受。最后, 适应性高, 完美兼容新设备。响应式WEB交互设计多采用弹性布局方式, 这种方式会根据设备屏幕宽高比自动配适内容, 因此采用了响应式交互的网站即便在全新的屏幕尺寸下也能使页面内容完美展示。

说完了响应式W E B交互设计的优势, 那么这种设计有没有劣势呢?答案是有的, 其劣势如下:代码编写需要很强兼容性, 需要面对多种分辨率进行优化调试, 代码偏长, 会出现无用的隐藏元素, 略微影响加载速度;设计复杂, 代码编写需要严谨考虑多种可变因素以及承担设计纰漏造成的影响;工作量加大, 影响开发效率。折中了设计方案, 更多考虑在多设备条件下优化页面, 单独页面或许达不到最佳效果。可以看出, 在目前网络环境与技术背景的支持下, 响应式交互设计的劣势与优势相比, 可以说是瑕不掩瑜, 对响应式交互设计的应用与发展并不会造成太大困扰。

2 响应式WEB交互常用技术

响应式WEB交互设计的目的是一个网站能够兼容多个终端, 页面能够自动配适显示设备。具体的实现方式由多方面组成, 包括弹性布局、CSS、网站框架等。下面我们来介绍几个常用的响应式页面常用技术。

2.1 Media Query

Media Query用于根据不同分辨率尺寸调整相应样式。现在市面上基于IOS系统平台和Android系统平台的移动设备占大多数, 同时他们的自带浏览器内核都为webkit内核, 所以我们可以使用viewport属性和Media Query技术实现网站的响应式交互。这种方法能够非常方便的实现基准字号font-size在不同分辨率下显示完全, 不会出现阅读困难。

2.2 Fluid grid

Fluid grid即流体布局。其作用在于将网页上一些元素的框格由固定模式调整为相对模式 (如百分百或比例等) 。使用Fluid grid能够使网页根据屏幕的宽度自动调整页面宽度, 进而保证页面内容显示完整, 原有功能继续可用。

2.3 Flex box

Flex box是css规则总新添加的一种模型属性。它类似于APP结构, 展示方式是固定头部与底部, 中间部分内容的高度实现自动适应。Flex box的出现打破了常常使用的原有的浮动布局方式, 实现了垂直等高、水平均分、按比例划分。如果希望目前的网站能够以正常的网页方式编写, 并且以Wab App的外观显示方式出现在用户面前, 那么Flex box是非常适合的一种方式。

3 响应式交互建设流程

3.1 确定内容架构

根据网站定位以及用户分析, 确定网站整体风格、展示结构, 如页面层级、页面内容等, 对网站进行整体规划, 厘清脉络关系。

3.2 设计移动框架

移动优先理念是基于对移动设备与PC设备之间关系的深刻理解而产生的, 移动设备许多特性让设计更全面及强大。比如移动设备上的语音识别、基于地理位置定位、手势操作等, 人们发现移动设备交互比PC拥有更多可能性。从移动设备开始让设计师更早思考如何发挥这些特性及优势。

3.3 设计响应式框架

我们需要基于移动端框架拓展开发出PC端及平板电脑端框架。首先确定响应模式, 那么从手机端显示到平板电脑显示再到PC端显示, 整个网站布局如何变化, 内容如何编排, 优先级如何调整等都是需要设计的部分。同时我们需要对规则继续进行细化, 即为定制流体栅格系统 (屏幕占比) 。

3.4 模块设计

在确定了响应式框架的页面结构以及相应模式后, 我们要开始进行模块设计的工作。在产品设计时我们采用了移动优先的理念, 但在整个产品的细节设计以及开发过程中, 是否采用移动优先原则应根据实际情况具体分析。在这里, PC优先可以充分暴露业务复杂度, 而且项目的设计、开发和测试在PC环境下拥有更成熟的工具和流程, 因此, 在必要的时候采用PC优先理念也是非常合理的。同时我们应注意的是, 在开发模块的时候, 必须时刻提醒自己:这个模块在当前设备上运行无误, 在其他设备下是否会发生问题?

3.5 响应式模块设计

PC端模块完成后, 接下来我们需要根据已设计好的PC端模块拓展出移动设备模块。这些模块必须符合设备习惯, 充分利用设备特性, 为用户体验带来便捷与舒适。

3.6 测试优化

这一步需要在真实设备下测试网站效果, 并对暴露出的问题进行优化。测试优化内容包括:服务器承载测试及优化, 软件性能测试及优化, 用户实际体验测试及优化。

4 响应式设计优化

该文之前提到过, 响应式设计也存在一些自身的问题和弊端, 可能会影响到用户体验。那么这些问题和弊端就必须进行进一步的优化处理。

4.1 减少HTTP请求次数

在目前的网络环境下, 移动端用户的数据使用流量是有限制的, 可以说这是相较PC端的一个劣势。那么为了节省用户流量, 我们可以使用Ajax异步请求来优化页面内部的一些操作。使用服务器端及前端缓存等机制保存页面内短期不会变化的一些数据, 这样可以在一定程度上降低用户的数据请求量。

4.2 压缩Javascript和CSS

将页面内Javascript和CSS进行优化精简之后, 可以有效地降低页面大小。

4.3 减轻Javascript库负载

目前很多响应式交互设计使用j Query框架, 事实上很多页面或许并不需要如j Query一般强大的交互框架, 我们可以用其他轻量级框架进行建设。目前针对移动端状态, 有j Query Mobile、YUI、XUI等可供选择的框架。

4.4 页面实现逐次加载

移动终端设备由于屏幕大小有限, 承载的信息量也有限, 我们没有必要将全部PC端页面总内容一次性加载完成。我们可以使用逐次加载模式, 当用户有继续观看的意愿, 并对屏幕做出相应手势时, 再继续进行加载新闻或图片。

4.5 使用CND进行页面资源管理

CDN是英文Content Delivery Network简写, 意即内容分发网络。它的基本思路是将互联网中有可能影响数据传输速度和稳定性的环节避开, 保证内容传输的稳定性。

4.6 优化图片显示

其核心思想是实现用户设备分辨率的自动区分, 根据不同分辨率提供不同大小的图片以供用户加载。这样既能使不同终端用户都获得良好的用户体验, 同时不会浪费用户数据流量和加载速度。

5 优秀的响应式WEB框架

5.1 Gumby Framework

GumbyFramework是一个灵活的响应式框架, 它建立在SASS基础之上。SASS是一款CSS预处理器, 它功能强大, 提供很多新的工具来支持使用者快速自主开发Gumby框架。Gumby的产品更新紧跟最新的行业技术标准和规范, 同时支持chrome、firefox、Opera、IE8-10等多种主流浏览器。如果开发者刚刚开始接触响应式交互网站, 那么使用Gumby是非常适合的。它自带PSDUI工具包, 能够非常方便地帮助制作者开发出一个漂亮的响应式交互布局网站, 且不需要太多专业性代码。

5.2 Foundation

Foundation由位于加州坎贝尔的产品设计公司ZURB设计开发, 是目前非常现金的响应式W E B设计框架。它拥有很多布局模板、C S S样式表以及自己开发的优秀Java Script插件。同时, Foundation强大之处还在于其将SASS有效整合, 开发者可以使用Mixins概念简化开发行为, 使组件的使用更加简单便捷。

5.3 Semantic

Semantic优势在于提供一个共享UI以供开发人员和设计师共同协作, 共同开发, 提升可控范围。Semantic使用自然语言习惯来辅助开发, 让开发过程更便捷, 同时, Semantic还可以实时进行debug输出, 提示代码作用。

5.4 Pure CSS

Pure CSS是一款轻量级响应式框架, 解压缩后只有5.7KB。它基于Normalize.css框架构建, 没有使用任何Java Script, 只使用了HTML和CSS技术。该框架采用模块化结构, 每一个模块样式都可以单独使用。

5.5 Tuk Tuk

T u k T u k是一个高效快速的响应式CSS3框架, 以轻量级的设计和面向对象的CSS为优势, 非常容易扩展。

5.6 Kube

Kube是一款灵活的CSS框架, 包括网格、按钮、表、排版样式等实用功能, 可对forms, grids, buttons, tables, typography等属性设置样式, 同时提供LESS文件, 给开发人员带来了极大的灵活性。

6 结语

响应式交互设计需要综合考虑, 统筹部署网站的功能性与美观性, 不再是只考虑一种设备使用情况的传统网站搭建模式。这就给网站设计开发带来了新的挑战和机遇。我们称响应式交互为“设计”而不是“技术”, 是因为响应式交互讲究设计先行, 需要提前设计网站的方方面面, 而不是依样画葫芦的把已有的前端变成响应式网站。对于页面制作者, 应将单一页面设计思维转换成响应式交互设计思维。每一个网站从设计之始, 就要依照响应式交互的标准进行页面设计与规划。这就需要我们在设计开发过程中不断和设计、前端、后台等人员有效沟通, 定制合理的响应策略, 才能搭建出合理高效的适应当前及将来网络环境的响应式交互网站。

摘要:随着移动互联网的大行其道, 为多尺寸浏览器自动配适而生的响应式交互设计逐渐受到重视。按照目前移动互联网的发展趋势, 可以预见在不远的将来, 移动互联网端的数据流量将超越PC端数据流量。响应式web设计 (Responsive Web design) 可以为不同设备环境 (系统平台、屏幕尺寸、屏幕方向等) 用户提供更加舒适友好的操作界面及用户体验。随着智能大屏幕移动设备的普及, 响应式交互设计的应用与发展可以说是大势所趋。该文对响应式交互设计的概念、优势、实现方式进行了介绍与总结。

关键词:响应式,交互设计,WEB设计

参考文献

[1]Graye, 赵子龙译.交互设计报告——响应式交互与扁平化设计[DB/OL].http://www.zcool.com.cn/article/ZNTA5MDA=.html, 2013。

[2]阿里UED.交互设计:响应式Web设计[DB/OL].http://www.yixieshi.com/ucd/11828.html, 2012。

Web交互技术 篇7

2007年,Tim Berners-Lee提出了Web的三个发展方向,即“Web可以通过各种网络和不同设备来访问”,“Web应用将会在人类社会变得更加普及”[1]。随着今日网络环境的变化,如2009年1月3G牌照在中国发放[2],以及出售移动应用的在线软件商店模式流行,使得这种预见正变成现实。因此在移动平台上部署Web应用成为一种趋势。

当前移动平台上的Web信息交互方式主要有两种,一种是利用手机浏览器,如国内的优视动景推出的UCWEB系列;另一种是利用Web service技术。出于安全性考虑,浏览器一般不能操作手机的底层数据,比如用户的通信录、地理位置等信息。因此限制了基于浏览器的Web应用的社交特性和使用范围。使用Web Service技术是实现交互的较好方案,具有客户端访问权限大、Web服务功能单一、效率高等优势。本文在后者基础上提出了面向移动平台的Web信息交互模型。该模型可以快捷、高效地完成Web服务器与移动设备的交互,如智能手机、PDA、laptop等。

模型总体上可分为三层:网络通信层、网络服务代理层和信息表现层,如图1所示。分层设计具有层与层之间耦合度低、各层逻辑可复用等优势。

1 网络通信层

1.1 主要作用

该层主要实现智能设备与服务提供商之间的通信,即实现了HTTP协议在移动设备上的封装,形成一个可供模型上层使用的通信模块。

1.2 该层实现所面对的问题及解决方案

由于移动设备具有低带宽、社交网络内容具有隐私性等特点,该层所面对的问题主要有以下三个方面:

1.2.1 网络数据传输量的大小不一

针对简单的文本类型数据,如操作指令、评论内容等,使用HTTP中的GET或者POST方式直接封装成HTTP协议数据包传输。

针对复杂的、大量的流媒体类型数据,如图片、音频、视频等,使用二进制流的方式传输。

1.2.2 通信方式各异

网络通信有异步、同步两种方式,模型采用了委托模式实现了异步传输回调机制。它的优势在于,允许开发者通过委托类自定义当网络数据传输成功、失败、到达等行为发生时,移动应用执行的特定回调函数,而不用一直等待传输的完成,比同步传输更加高效和灵活,可以使用户有更好的使用体验。但某些情况下同步传输也是需要的,比如得到用户授权的过程就比较适合发起同步请求,待用户授权后才开始继续下面的请求。

1.2.3 网络分发内容具有隐私性

在使用API的过程中,不可避免的要遇到授权问题,常用的授权手段主要有两种方式:一是基于用户名和密码的体系,这种方式需要用户向第三方开发者暴露用户名和密码,安全性不高;另外一种是基于OAUTH[3]协议的开放授权认证体系,该协议已经获得各大互联网公司的普便认可和实现,可见其安全性还是有保证的。本文结合当前Web平台授权方式的使用习惯以及未来发展趋势,在模型中仅引入了基于OAUTH协议的授权方式。实现描述请参见1.3节。

1.3 认证模块

OAUTH认证实现的过程就是客户端和OAUTH服务提供商交互的过程,本节主要分析了OAUTH的关键URL以及认证流程。

1.3.1 OAUTH认证中的三个关键URL

1) 获取未经用户授权的TOKEN(令牌)

该URL的作用是获取用户授权TOKEN,同样也使得第三方应用程序必须接受服务提供商的验证,确保应用程序的安全性。如https://www.google.com/accounts/OAuthGetRequestToken。

2) 获取用户授权的TOKEN

服务商提供登录页面供用户授权,如https://www.google.com/accounts/OAuthAuthorizeToken。

3) 以用户授权TOKEN换取ACCESS TOKEN

该ACCESS TOKEN是第三方应用程序访问的通行证,可用来操作用户的受保护资源,一般情况下,该TOKEN是一个用户对应一个,可以保存供下次使用。如https://www.google.com/accounts/OAuthGetAccessToken。

1.3.2 OAUTH认证的流程图

1.4 实 现

1.4.1 OFHttpClient类

完成的具体的底层网络通信功能。类图如图3所示。

1.4.2 OFHttpClientDelegate接口

定义了异步网络通信的回调函数集合,网络传输完成后,实现该接口的类进行数据存储以及异常处理。

1.4.3 OFHttpClient类

实现客户端OAUTH认证的功能模块。描述详见1.3节。

1.5 该层实现流程图

2 网络服务代理层

2.1 主要作用

将远程服务本地化,即通过代理类将远程资源API调用转换为本地函数调用。该层的实现涉及到高效的服务器资源设计以及客户端代理的实现。

2.2 开放服务器端的资源

模型没有使用基于SOAP协议的Web service,而是采取了符合REST[4]风格的、面向资源的Web服务架构。REST风格由Roy T. Fielding定义,它强调组件之间要有一个统一的接口[4];在面向资源的架构中,请求的内容信息包含在URI中。可以这样简单比喻这两者的结合,前者提供方法(GET、POST、PUT、DELETE等标准的HTTP方法),后者提供方法的参数。

2.2.1 REST风格的特征

在文献[4]中已经很全面地说明了REST风格的软件框架,因此本文并不赘述REST的全部风格,而是分析模型所依赖的部分REST风格的特征:

1) 服务器响应的请求方法不是像“getSomeObjects”一样的自定义方法,而是标准的、在HTTP协议中良好定义的方法,如GET、PUT等。由于当前网络服务提供的多样性,这样的方法定义就简化了客户端的实现,使得通用客户端成为可能。这也是简化模型第一层实现的基础——仅需实现GET、PUT等方法。

2) 有效的、简单的缓存实现机制,这是HTTP协议本身支持的,不再需要其他额外的、甚至有时候是复杂的配置,比如SOAP协议需要附加的机制来实现缓存。无线网络的主要弊端就是带宽小,尽管随着3G的应用,问题得到了进一步的缓解,但是带宽无论什么时候都是宝贵的资源,缓存机制的引入对于移动设备的应用可说是必须的。

3) REST方法的返回值都是标准化的、独立于平台的,他们由HTTP协议中定义的响应码,以及请求内容的XML、JSON表示组成。同样的原因——服务以及服务提供商的多样性,使得标准化的响应表示更有利于服务之间的连接,模型第三层所推荐的服务应用之一——MASHUP[5]正是依赖这一特性,请参见3.1节描述。

2.2.2 面向资源的框架

该框架是基于REST风格衍生出来的一种设计理念,它依赖于HTTP设计的初衷——HTTP方法操作的都是资源,Web上的每样东西都需要用URI来描述。综合各种对“资源”的定义,本文认为,资源就是服务想要对外提供的东西,可以是一个数据库表、一个文档、一个action甚至是一个算法的最后结果。

在面向资源的框架中,最重要的部分在于设计合理的、符合REST接口类型的资源表示。它遵循如下的设计原则:

1) 所有的服务都是以资源的方式暴露的,包括像上传一张图片这样的动作行为。

2) 各种资源之间尽可能地做到松散耦合。

例如,针对一个图片分享服务的资源设计如表1所示。

2.3 服务的客户端代理实现数据结构

因特网上服务具有多样化的特点,同样客户端设备也具有多样化的特点,因此没有一个适用于各种平台的特定服务API的实现。但是,本文结合在各种主要手机平台(IPHONE、SYMBIAN、Windows Mobile等)上实现FLICKR客户端的经验,整理出一套较为通用的实现流程,可以减轻用户构造客户端的负担。

2.3.1 CONTEXT类

该类的主要作用是在客户端上记录远程服务分配给移动应用的上下文基本信息,比如用于针对用户访问授权用的KEY、SECRET、授权后获得TOKEN以及该服务提供的所有API的入口地址(URI)等。这相当于该移动应用在服务提供商的注册信息。

2.3.2 REQUEST类

该类是模型实现的HTTP通信子层的实例,用来完成真正的URI请求。针对两种类型的数据传输,模型提供了不同的方法实现:

1) 文本类型的GET、POST、PUT、DELETE方法,方法原型如下所示:

performMethod:(NSString*)strMethodName methodType:(NSUInteger)iType withArgument:(CInArg)objArgument{}

2) 流媒体类型的POST方法,该方法从上传的媒体数据源创建一个输入流(InputStream),然后设置HTTP协议的Head部分,比如将“Content-Type”设置为“image/jpg”或者“binary”等,再将该输入流设置为HTTP协议的Body部分,最后发起异步传输请求。

2.3.3 CONTEXT类以及REQUEST类交互的数据结构

2.3.4 XMLParser、JSONParser类

用于XML文件或者JSON文件的构建、解析,是该模型的主要辅助类。由于该类用途广泛且有很多的开源实现,因此本文不再赘述。

2.3.5 附加资源

由服务提供商的说明文档提供,可以使用配置文件引入,无需特定数据结构。

1) API的endpoints——即特定服务API的URI;

2) 以及服务提供商确定的数据响应格式,常用的有XML和JSON两种类型。

2.4 实现的流程图

2.5 实现的困难和解决方案

2.5.1 服务器响应异步请求

一般情况下,异步请求操作都会持续较长时间,且如果客户端的数量较多,比如千万级,并都保持连接,那会消耗掉所有的服务器资源。模型中采纳了SUN公司的Cloud API工作组提出的一种符合REST的解决方案,该方案正在持续改进中且有望成为标准。从总体上考虑,该方案由三部分组成[6]:

1) 为每个异步操作创建对应的HTTP资源类型——状态码资源,它用来表示该操作的完成进度,可以通过向客户端和服务器协商好的URI发送GET请求获得该状态码的资源表示,借此判断操作是否完成;

2) 服务器接收到异步请求后立即向客户端返回HTTP协议的201响应码,表示操作已经开始,同时初始化1)中描述的状态码资源,并将其作为响应的“body”部分;

3) 方案定义了类似“WebHook”的回调机制,一旦操作完成,服务器会通过协商好的回调URI通知客户端。

2.5.2 与传统的基于SOAP协议的Web Service对比

传统的Web Service调用称之为RPC风格;另外一种就是REST风格。后者更适合移动应用程序,原因如下:

1)完成同样的功能,从交互的数据量对比上,REST实现更少,因此,REST实现的数据传输速率就更快。这里有一组对比数据,见表2,完成的任务是,分别使用AMAZON提供的REST和SOAP接口从其服务器上获得所有有关“Harry Potter”的书籍信息。

2) REST仅使用HTTP协议,这样移动平台上的客户端程序的实现复杂度就会降低。这对于移动设备宝贵的CPU资源也是有利的。

综上,从带宽、计算资源等方面考虑REST比SOAP更适于提供针对移动设备的服务。

2.5.3 代理类的动态实现

随着互联网上服务数量的增加,由人工从服务提供商提供的文档转换为本地API调用会带来很大的负担。文献[7]提出来一种动态的、异步的调用Web服务的框架,它的主要原理是定义一整套独立于特定服务的消息机制,开发者使用的是该框架内已定义的消息类型,之后由框架负责将该消息类型转变到针对特定服务的请求。由于SOAP和REST风格的不同,该框架解析特定请求的方式也不同,针对SOAP请求,使用的是WSDL解析器,而对REST请求是从特定的REST请求实例中得到的规则之后,再解析其他类似请求。因此,该框架对REST请求的解析还存在局限性。随着REST优势的显现,也有许多互联网公司提出了针对REST服务的描述语言,即Web应用程序描述语言(WADL),它类似于SOAP使用的WSDL。当前已经有这样的在线服务如:REST Describe[8]。但是,由于WADL只能对以XML格式表示的资源进行描述以及外界质疑WADL本身的必要性,因此WADL还没有得到权威组织的认可,距离标准化还有一段路要走。

3 信息表现层

模型选择MASHUP作为信息表现的方式,组合从模型第二层所获得服务数据。

3.1 移动MASHUP

3.1.1 MASHUP的定义

在wiki上,MASHUP定义为从多个外部数据源组合数据或者服务形成新服务的Web网页或者应用程序。它和OPEN API——本文第二层描述的服务提供方式,具有天生的关联性。

3.1.2 选择MASHUP的意义

1) MASHUP从本质上符合REST规范,这与本文的第二层选择的API服务提供体系结构相符,因此MASHUP具有了REST的优势,适合部署在移动平台上的应用。

2) MASHUP是移动设备自身服务接入Web服务的有效方式,比如GPS信息服务与Google Maps服务的MASHUP。

3.1.3 情景举例

用户A的手机查询Facebook上的好友B的生日信息,以及B在Amazon上购物计划清单信息,便可以在用户A经过销售这些物品的商店时通知他,然后A可以经过网上送货服务转交给B。这个场景完全具有可行性,但是没有哪一个服务商可以独立地做到。而MASHUP正好可以适应这种生活趋势。

3.2 研究现状以及未来的挑战

MASHUP在2007年兴起之后,至今已经发展较为成熟,并且也已经出现了可视化的MASHUP制作工具,如Google Mashup Editor、Yahoo Pipes!等。但是,移动MASHUP尚有许多挑战,如可视化的移动MASHUP工具、语义信息的使用以及社会化挑战等[9]。

4 模型应用举例

模型的一个应用实例是iPhone native应用Thingstodo-opentodo,该应用程序已经在应用商店出售(http://www.appstorehq.com/thingstodo-opentodo-iphone-29366/app/buy?ref=search.appcraver.com)。主要功能是,用户随时地添加日程,设置提醒时间等特性后(如图6所示),通过指定URL(http://65.232.1.70/opentodo/task)以POST方式上传到Web服务器。服务器会在设定的时间到达时通知日程指定的接受用户群,从而完成日程分配。同时,接受用户通过特定的URL(http://65.232.1.70/opentodo/username)以GET方式获得日程,从而完成日程的下载。该应用的后期版本支持了Google日历同步功能,利用Google Calendar API实现了Web服务器和Google服务器的交互,获得约5000份的下载量,充分展现了MASHUP的优势。

5 结 论

模型完成了服务提供者和资源消费者之间的连接,本质上与浏览器有着类似的功能,但有更大的灵活性,更适应于移动设备专一的业务需求,以及未来Web用户对服务的可定制化要求。从国内外各大SNS网站,如Google、Facebook、Flickr等,所提供的手机客户端应用程序来看,其中的设计理念都与本文的模型较为类似。在同一个平台上,实现模型的一、三层之后就很容易复用以前的代码,这会大大减小开发者的工作量,加快应用的开发。

摘要:随着移动时代的来临,Web上的信息交互平台开始由浏览器转向移动客户端。信息的可定制化以及可交互性是移动Web应用所面临的问题,通过对整个Web信息的交互过程进行抽象,提出了三层信息交互模型。第一层实现了移动客户端上的通信模块,向上层提供了标准的HTTP操作接口。第二层调用API与服务器通信,服务器借用RESTFUL API的方式对外提供资源。第三层使用MASHUP方式展现客户端集成的服务。整个模型提供了针对移动平台部署服务、获取服务以及展现服务的快速解决方案。

关键词:移动平台,信息交互,RESTFUL API,移动MASHUP

参考文献

[1]Tim Berners-Lee.The Future of the World Wide Web[R/OL].CSAILDecentralized Information Group:Massachusetts Institute of Technology[2007-03-01].http://dig.csail.mit.edu/2007/03/01-ushouse-future-of-the-web.html.

[2]Zhaoll.国外3G发展的现状与经验[S/OL].科技日报[2009-01-15].http://industry.tech110.net/html/article_385796_1.html.

[3]Mark Atwood.OAuth Core 1.0[S/OL].OAuth community[2007-12-04].http://oauth.net/core/1.0.

[4]Roy Thomas Fielding.Architectural Styles and the Design of Network-based Software Architectures[D].Irvine:University of California,2000.

[5]Wikimedia Foundation Inc.Mashup(web application hybrid)[S/OL].Wikipedia.[2009-03-03].http://en.wikipedia.org/wiki/Mashup_(web_application_hybrid).

[6]Craig McClanahan.PROPOSAL:Handling Asynchronous Operation Re-quests[EB/OL].Sun Microsystems,Inc[2009-06-09].http://kenai.com/projects/suncloudapis/forums/forum/topics/911-PROPOSAL-Han-dling-Asynchronous-Operation-Requests.

[7]Philipp Leitner.Daios-Efficient Dynamic Web Service Invocation[J].IEEE Internet Computing,2009(3):72 80.

[8]Thomas Steiner.RESTDescribe&Compile Documentation[EB/OL].Google,Inc[2007-08-01].

Web交互技术 篇8

Web服务已广泛应用于跨组织、业务的B2B中, 但基于紧耦合同步SOAP消息传递方式的SOA不能适用于高动态、大规模应用场景, 而非阻塞式异步通信模式可以为Web服务的交互提供更高的可扩展性、可靠性、健壮性。但从软件体系结构的角度来讲, Web服务的开发应该符合Web基本风格REST的设计原则——基于全局性、唯一性、持久性的信息共享[1], 基于REST风格的Web服务 (RESTful Web Service) 是一种更具前景的架构。

相对于其它异步通信模型, 面向并行程序开发的共享存储 (Shared-Memory, DSM) [2]的特点体现为: (1) 提供稳定而单一的地址空间, 共享变量是持久性的; (2) 通过普通的Load/Store操作来实现线程之间的通信, 为用户提供了统一的编程接口, 用户可见性好并比较容易进行程序开发。既然共享存储是一种持久性的全局信息空间, 如果将其引入到Web服务的开发中将使其符合Web设计的基本原则REST, 因此本文的目标是:结合异步通信与持久性信息共享的思想, 为Web服务的提供一种持久的、全局可访问的异步交互活动模式。

1 基于共享Memory 的Web 服务交互模型

基于前文分析, 本文的Web服务交互活动模型基于如下三个考虑:1、为满足REST风格, 应该采用具有持久性信息共享的存储作为交互活动的通信设施;2、Web服务具有自治性, 服务可能兼具扮演请求者与提供者, 交互活动是非阻塞式的、异步的, 因此必须缓冲服务的SOAP消息;3、在实现异步调用过程中, 由于消息是无序的, 服务请求者与提供者之间的关联不采用SOA中UDDI注册/查找的方式, 为保证服务请求者能得到正确有效的返回结果, 二者之间通过共享变量的消息相关集进行关联。为此, 图1给出了基于共享Memory的Web服务交互模型。

图中主要组件包括:本地FIFO消息队列、私有Cache、共享存储及目录存储器。每个Web服务进程都有一个本地FIFO消息队列和一个私有Cache;本地FIFO队列的基本作用是以非阻塞的方式缓冲Web服务SOAP消息, 以便于对Cache和共享存储的异步访问;Cache中存储了与Web服务请求/响应相关的私有数据;共享Memory存储了全局范围内的共享变量;Cache中的私有数据是被Web服务线程使用的, 而共享存储中的数据则被全局范围内的Web服务线程使用, 模型本质上是通过读写共享数据实现Web服务线程之间的交互活动。而把共享数据装载到高速缓存中时, 会在多个高速缓存中形成副本, 目录存储器实现全局范围内数据的一致性维护, 同时维护异步Web服务异步调用的关联集。图1中模型没有采用传统SOA中的SOAP消息同步传输和UDDI的服务注册机制, 而是给出了Web服务线程通过共享变量进行交互活动的执行序列, 服务进程的正确交互通过共享存储的一致性保证, 它给出了服务线程将请求写入共享变量上的请求值、从共享存储中读出结果的返回值, 因此, 该模型是Web服务交互的一种异步、持久性、松耦合的解决方案, 即保证了Web服务的异步交互又具有REST风格的持久性信息共享的特征。

以下的符号和定义给出了图1模型更形式化的描述。考虑Web服务集合{WS1, WS2, …, WSn}, 每个处理器都有自己的私有存储器, 分别标记为M1, M2, ..., Mn, 服务的一次执行为一个Web服务线程, 则WST1, WST2, ..., WSTn分别为相应处理器上的Web服务线程的集合, 每个集合构成该处理器上的一个局部Web服务线程队列.基于共享存储的Web服务WS定义为四元组, 其中:

I为服务对外提供的端口 (Port) 集, 对于WS的有穷状态集S, Isi∈I为WS在状态si∈S暴露给外界的服务端口, type (Isi) ={Receive, Send, Both, None}

O为定义在WS端口Isi上的操作 (动作) 集合, 包括以下四类:将值val由WS写入变量var表示为WsWr (var, val) ;由WS读var表示为WsRd (var, val) , 其中val为由读取操作返回的值;获得对私有Cache的独占权Aquire (true) ;释放对私有Cache的独占权Release (true) 。

M为WS的消息集合, 表示为二元组, 对于m∈M, type (m) 为m的消息类型, type (m) ∈{OneWay, Request, Notification}, orient (m) 为m的传输方向, orient (m) ={in, out, duple}

P为WS的交互活动协议, P ?S×O×S为对外交互行为的有穷状态转换集。

在上述定义中, 当Web服务WS的消息类型为Request时扮演服务请求者角色, 首先是在Send端口上执行WsWr (var, val) 操作, 而后在Receive端口上执行WsRd (var, val) 操作;Web服务WSi的消息类型为Notification时扮演服务提供者角色, 首先在Receive端口上执行WsRd (var, val) 操作, 而后在Send端口上执行WsWr (var, val) 操作;若消息类型为OneWay, 则WS同时扮演服务提供者和请求者角色, 可能同时执行先写后读、先读后写操作。

与其它研究工作相比, 本文工作将共享存储引入到Web服务的开发中, 研究Web服务间的交互活动, 使其更符合Web设计的基本原则REST, 侧重于为Web服务提供一种持久的、全局信息共享的异步交互活动模式, 在使Web服务的交互活动模式回归到Web的基本风格方面做出探讨。

2 结论

本文以共享存储作为Web服务交互的底层通信设施, 结合异步通信与持久性信息共享的思想, 对Web服务异步交互模式做了新的探讨。具体贡献总结为: (1) 将共享存储引入到Web服务交互活动的设计中, 提出了一种研究Web服务的新思想; (2) 为Web服务的提供一种持久的、全局信息共享的异步交互活动模式, 使Web服务的交互更符合Web设计的本质。

参考文献

[1]Fielding R.T, Taylor R.N.Principled Design of the Modern Web Architecture[J], ACM Transactions on Internet Technology (TOIT) , 2 (2) , May 2002:115-150.

Web交互技术 篇9

随着信息技术的发展, 各行业的信息量呈爆炸式增长, 每个行业中的数据资源分散在不同的数据库中, 归属各个企业、 部门所有。这些数据资源像一个个“数据孤岛”, 各自有着不同的处理对象和操作方法。这就形成了大量业务逻辑类似、形式分散且彼此缺少信息交互的系统。为实现各部门之间的协调工作、数据之间的共享, 就必须解决数据交互和部门协同的问题。

目前, 常规的异构数据交换方式有以下三种:1电子数据交换 (EDI) 方式, 即EDI可以通过统一的格式交换企业信息, 而企业之间通过专用的数据网络来交换数据。但EDI也带来了许多问题, 比如格式不灵活、成本较高、安全控制困难、连接可靠性不高等。2中介层方式, 即提供一个应用程序负责专用的数据转换, 转换程序是特定、专用、复杂的。在这种方式下, 参与数据交换的各方必须严格遵循相同的规则, 才能准确地对数据进行封装和解析, 因此, 这一方式缺乏良好的复用性和扩展性。3数据仓库方式, 即中心数据仓库负责提取各个分布、 自治的系统数据, 并对各种数据具有高度的控制权。

当前, 几乎所有的行业都存在因数据的复杂性和分布性而影响数据使用的问题。业务数据的复杂性体现在内容复杂、格式复杂、语义信息丰富、数据量庞大等方面;分布性体现在数据来自各地的不同数据库中, 缺少统一、集中的管理。数据的用户不应局限于数据生产单位, 还需要满足科研用户、管理用户等其他用户的需求, 而这些用户通常都分布在各个地方。 XML的出现为行业数据中异构数据源的交互带来了新思路和新技术, 使用XML作为中间数据的交换技术, 克服了传统数据交换系统的缺点。其优点如下:具备可扩展性, 允许各个组织、个人建立适合自己的置标集合;具备结构性, 数据存储格式不受显示格式的制约, 将资料的内容及其表现形式合理地分离, 从而大大提高了XML数据的可理解性、可交换性和可重用性。

2传统XML数据更新方法

XML技术虽然有效地解决了行业数据的交换问题, 有力地推动了行业信息化的进程, 但是在实际应用中, 由于XML数据的完整性和行业数据的特殊性, 在传输XML格式的数据时可能伴随着大量“无用数据”的传输。当一个用户在客户端修改一份XML数据文件时, 需要将其上传至服务器, 并由服务器通知其他用户作相应的更新。现有的方法往往是把XML数据文件整体传输, 导致不论用户修改多少内容, 都需要把整个文件上传至服务器, 然后再由服务器把新的数据文件传输至其他用户, 这势必造成资源的浪费。当XML数据较小、用户操作不频繁、需要同步更新的用户数量不多时, 这种浪费的影响还不明显;当数据较大、用户操作频繁且需要同步更新大量用户时, 这种浪费所导致的性能影响就非常大, 甚至会影响系统的实用性。

3 XML数据更新优化技术

在满足业务数据模型规范的前提下, 充分利用业务数据的逻辑关联, 将以XML数据为基本单位的传输方式分解为更细粒度的单位传输, 即将XML格式的业务数据文件按照XML规范和业务知识, 分解为一系列相关联的类进行传输。在对XML业务数据中的某些信息进行修改时, 只要按照XML规范定位到具体的元素, 并将此元素对应的类传输给网络中的其他结点, 在接收结点中把类还原成XML元素, 并根据业务规范在恰当的位置更新局部数据内容。

优化的关键是数据模型的划分。合理的分解方法不仅易于理解和实现, 还可以保证将最紧密相关的数据放在一个类中。 这样, 当用户修改多处数据时, 可以保证涉及的类数最少。如果粒度划分过粗, 则可能失去优化的机会;如果粒度划分过细, 极端情况下附加信息的体积可能远远超过实际信息本身的体积, 造成相反的结果。因此, 划分粒度的确定取决于具体的数据使用模式、数据修改量等诸多因素。

4优化技术特点

要实现这种新技术, 关键是要将XML数据按照一定规则分解。这样做, 虽然在一定程度上增加了工作量, 但是用户的使用效率得到了显著的提高, 同时也减少了网络传输数据量。 具体主要表现在以下三方面:1减少了数据体积, 提高了系统数据服务速度。数据普遍采用了XML格式, 这些格式中的大量内容是为了说明数据结构和类型, 因此造成数据体积偏大, 影响数据传输速度。如果数据发送方从数据中将这些有用信息提取出来, 把原来一体的各种信息解包 (分解) 成为一系列数据类 (独立又相互关联的数据块) , 然后把这些数据类分别传输到数据接收方, 再在数据接收方按照数据格式要求, 把各个独立的类打包 (逆向还原) 成为与原始数据格式一致的一体数据, 供用户使用, 则可以有效减少数据体积, 从而提高系统数据服务速度。2允许局部修改, 减少了网络传输数据量, 提高了传输数据的使用率。将格式数据解包为一组数据类, 可以实现在底层网络传输时只发送用户局部修改的部分而不必每次都传输完整的数据文件, 从而有效降低数据的网络传输量。3提高了用户操作数据的能力。除了数据传输外, 还提供了数据操作功能, 其中, 有些功能将涉及到数据内部信息。借助于此优化技术, 系统将数据按照一定格式解包成为一系列独立又相互联系的数据类, 并在这些类的基础上提供数据服务, 这样可以显著增强服务的特色和针对性, 提高用户操作数据的能力。

参考文献

[1]赵冲冲.XML格式领域数据传输的优化技术研究[J].计算机科学, 2009 (8) .

上一篇:积极沟通下一篇:室内温度控制