支持无处不在的应用程序用户界面的互联网架构
在当今数字化时代,个人计算设备的多样性正以惊人的速度增长。人们使用着各种各样能够运行第三方应用程序的消费电子设备,从台式电脑、移动和平板设备,到家庭娱乐系统甚至车载设备。然而,设备和使用场景的碎片化使得应用程序难以覆盖广泛的设备和终端用户群体。
1. 引言
从开发角度来看,众多多设备应用开发方法的最大共同点是Web。将Web作为应用平台,应用程序可以随时随地供用户使用,不受设备类型的限制。但现有的Web应用平台通常只是将传统API支持和操作系统方面移植到Web,往往不支持大规模分布式服务访问和传感器使用,这使得无处不在的Web应用的真正沉浸式体验大多未能实现。
为了让开发者能够创建消除设备物理边界的Web应用和服务,webinos平台应运而生。它是一个基于未来互联网基础设施的多设备应用平台,能够将用户拥有的各种支持Web的设备连接起来,无缝实现API请求的分发。本文将详细介绍webinos平台的创新之处,特别是其能够根据当前交付上下文动态调整应用程序用户界面的能力。
2. 基于模型的用户界面
模型驱动工程(MDE)旨在应对软件系统的高可变性问题。这种开发方法的特点是关注点分离,通过将不同的功能和特性分离处理,有效降低软件系统的工程复杂度。许多Web工程方法都部分支持基于模型的开发,如UWE、WSDM、HERA、WebML等。
在MDE中,软件开发从系统的抽象平台独立模型(PIM)规范开始,然后通过转换模型将PIM编译为平台特定模型(PSM)。转换过程是该方法灵活性的核心,MDE可以使用如查询 - 视图 - 转换标准(QVT)或ATLAS转换语言(ATL)等转换语言来指定模型到模型的转换规则。
在用户界面(UI)工程领域,CAMELEON参考框架(CRF)为相关研究奠定了重要基础。该框架规定了一个上下文敏感的用户界面开发过程,它综合考虑了当前用户上下文、环境上下文和平台上下文。根据CRF方法,应用程序的用户界面开发分为多个抽象级别:
-
任务和领域模型规范
:定义用户为实现目标所需进行的活动。
-
抽象用户界面(AUI)模型定义
:这是一个平台独立模型(PIM),表达应用程序的界面,不依赖于交付上下文中的任何交互器或模态。
-
具体用户界面(CUI)模型定义
:这是一个平台特定模型(PSM),通过结合交付上下文的特定依赖和交互器类型,对AUI进行更具体的描述。
-
最终用户界面(FUI)规范
:涵盖与运行时环境中的用户界面相对应的代码,如HTML、Java等。
对于基于模型的用户界面的适应,有三种主要方法:
-
模型到模型的转换
:大多数基于模型的用户界面(MBUI)模型可以基于有向图结构设计,因此可以通过图转换规则来指定两个模型之间的适应。转换规则由匹配当前UI模型的左侧条件(LHS)和定义转换结果的右侧(RHS)组成,还可以定义一个或多个负应用条件(NAC)来增加规则的表达能力。
-
基于XML表示的模型转换
:对于用XML表示的UI模型,可以使用XSLT转换来定义适应。转换过程以XML文档和包含转换规则的XSLT样式表模块为输入,每个转换规则由匹配模式和输出模板组成,输入XML文档中要匹配的模式由XPath语言的子集定义,输出可以是标准XML或其他格式,如(X)HTML、XSL - FO、纯文本等。
-
代码转换
:通过对代码进行修改来实现用户界面的适应。
3. 多设备自适应用户界面
3.1 Webinos平台
Webinos是一个联合Web应用平台,其运行时组件分布在设备和云端。该平台的核心概念是个人区域(Personal Zone),它是一个安全的覆盖网络,将用户的个人设备和服务虚拟地组合在一起。
为了实现个人区域内设备的外部访问,Webinos平台定义了一个集中的个人区域中心(PZH)组件,每个用户在云端都有自己的PZH实例。PZH是架构中的关键元素,它包含个人区域内所有设备和上下文数据的集中存储库,负责跟踪区域内的所有服务,并提供服务发现和相互通信的功能,从而促进跨设备与个人服务的互联网交互。此外,PZH之间是联合的,允许应用程序轻松发现和共享其他人设备上的数据和服务。
Webinos通过两种服务发现抽象机制实现这一结构:
-
本地层面
:支持多种细粒度的发现技术,如多播DNS、UPnP、蓝牙发现、USB发现、RFID/NFC等,以最大程度地检测设备和服务。
-
远程层面
:本地发现的数据在个人区域内以及与授权的外部PZH之间传播。
在设备端,部署了个人区域代理(PZP)组件。PZP负责抽象本地服务发现,并处理与区域PZH的直接通信。它作为策略执行点,管理对设备暴露资源的访问。同时,PZP也是支持Webinos平台离线使用的重要组件,即使在没有可靠互联网连接的情况下,设备也可以访问PZH维护的数据的本地同步子集,待网络恢复后,通过通信队列将数据与PZH重新同步。
Web运行时(WRT)是Webinos架构的最后一个主要组件,它可以看作是传统Web渲染引擎(如WebKit、Mozilla Gecko)的扩展。WRT包含运行和渲染使用标准化Web技术设计的Web应用程序所需的所有组件,如HTML解析器、JavaScript引擎、CSS处理器、渲染引擎等。此外,WRT与本地PZP紧密绑定,通过这种绑定,运行在WRT中的应用程序能够安全地与本地设备API和服务进行交互,并与个人区域内的其他设备进行连接和同步。
3.2 自适应用户界面框架
在Webinos中,将用户界面适应于当前交付上下文的过程由本地PZP进行管理。PZP包含一个适应管理器组件,它收集所有可用的适应规则,对其进行分析,并将规则提供给规则引擎进行评估。规则引擎通过将规则的条件与PZP内部服务暴露的上下文数据进行比较,来确定每个规则的适用性。一旦确定了适用的规则,适应过程就会启动,将转换指令发送到Web运行时。
为了支持基于运行时上下文变化的动态触发适应,使用的规则语法符合事件 - 条件 - 动作(ECA)格式。ECA规则的结构由三部分组成:
on [event] if [conditions] do [action]
- 事件部分 :指定触发该规则调用的系统信号或事件。
- 条件部分 :是一个逻辑测试,如果评估为真,则执行该规则。
- 动作部分 :包含对需要适应的资源可调用的JavaScript指令。
适应管理器会分析每个ECA规则的触发事件,根据事件类型将规则提供给专门的规则引擎实例。对于由
application.launch
事件触发的规则,规则引擎实例会立即启动,根据从Webinos服务(如设备状态API)获取的上下文属性匹配规则的条件。
在应用程序启动时,通过引导Webinos,在Web运行时环境和本地PZP之间建立通信接口,注入适应客户端组件。适应客户端运行在WRT中,它可以访问应用程序的文档对象模型(DOM),从而能够通过操作DOM结构和属性来访问和调整应用程序的内容、结构和样式。
4. 案例研究:自适应导航栏
本案例研究展示了如何使用Webinos的UI框架动态调整应用程序导航结构的呈现。以以下示例HTML应用程序骨架代码为例:
<body>
<div class="menu">
<!--list menu items -->
</div>
<div class="page" id="home">
<!--home screen content -->
</div>
<div class="page" id="settings">
<!--settings screen content-->
</div>
...
</body>
这个基本应用程序通过HTML元素属性进行了语义增强,以指导适应过程。应用程序骨架包含一个导航菜单组件和多个特定于应用程序的子视图。应用程序导航组件的呈现可以根据设备的操作系统、输入模态、屏幕大小、屏幕方向等参数进行优化。
对于车载信息娱乐(IVI)系统,可以设置适应规则,在应用程序启动时(即
application.launch
事件触发,且规则条件为基于IVI的系统)将应用程序的导航栏全屏显示,同时隐藏所有其他UI元素,以减少用户分心的风险。此外,根据IVI系统提供的特定交互模态,按下其控制器模块上的MENU按钮也可以触发导航栏的显示。以下是车载适应规则的示例:
<rule description="vehicular menu">
<event>application.launch</event>
<condition>device.type == "ivi"</condition>
<action>
<!--spread menu items over the headunit’s screen -->
<!--map and link iDrive controller buttons -->
<!--hide all page elements -->
</action>
</rule>
当从移动或平板电脑设备访问同一应用程序时,会有不同的呈现和交互要求。例如,对于触摸屏设备,当屏幕旋转到横向模式时,可以设置适应规则将导航栏转换为垂直排列的列表,并移动到显示屏的左侧,同时在屏幕右侧只显示一个页面元素,其他页面元素可以通过导航栏中的相应链接访问。以下是基于触摸的适应规则示例:
<rule description="touch-based menu landscape">
<event>device.orientationchange</event>
<condition>
device.inputtype == "touchScreen" &&
screen.orientation == "landscape"
</condition>
<action>
<!--resize menu items to fit the screen’s height -->
<!--move menu to the lefthand side -->
<!--hide all page elements but the active -->
</action>
</rule>
综上所述,Webinos平台通过其独特的架构和自适应用户界面框架,为多设备环境下的应用程序开发提供了强大的支持,能够根据不同的设备和上下文动态调整用户界面,提高了应用程序的可用性和用户体验。
支持无处不在的应用程序用户界面的互联网架构
5. 总结与优势分析
Webinos平台在解决多设备应用开发难题方面展现出了显著的优势,以下是对其优势的详细总结:
| 优势类型 | 具体优势 | 说明 |
|---|---|---|
| 跨设备兼容性 | 无缝连接多种设备 | 通过个人区域(Personal Zone)和个人区域中心(PZH),将用户的各种设备虚拟组合,实现跨设备的服务访问和数据共享,打破了设备之间的物理边界。 |
| 支持多种发现技术 | 在本地层面支持多播DNS、UPnP、蓝牙发现等多种技术,确保能够最大程度地检测设备和服务,提高了设备连接的灵活性和可靠性。 | |
| 自适应性 | 动态调整用户界面 | 基于事件 - 条件 - 动作(ECA)规则的自适应用户界面框架,能够根据设备的操作系统、输入模态、屏幕大小、屏幕方向等多种上下文因素,实时调整应用程序的用户界面,提供最佳的用户体验。 |
| 降低开发成本 | 开发者无需为不同的设备和使用场景单独开发应用程序,只需基于Webinos平台进行开发,平台会自动处理用户界面的适配问题,大大降低了开发成本和工作量。 | |
| 安全性 | 集中管理和授权 | PZH作为集中的存储库和管理中心,对设备和服务的访问进行集中管理和授权,确保了数据的安全性和隐私性。 |
| 策略执行点 | 个人区域代理(PZP)作为策略执行点,管理对设备暴露资源的访问,进一步增强了系统的安全性。 | |
| 离线支持 | 本地同步数据 | 即使在没有可靠互联网连接的情况下,设备也可以访问PZH维护的数据的本地同步子集,通过PZP的离线支持功能,用户仍然可以操作应用程序的基本功能。 |
| 数据同步 | 当设备的互联网连接恢复后,通过通信队列将数据与PZH重新同步,确保数据的一致性。 |
6. 应用场景与未来展望
Webinos平台的应用场景十分广泛,涵盖了多个领域,以下是一些典型的应用场景:
- 智能家居 :将各种智能家居设备(如智能家电、智能门锁、智能摄像头等)连接到Webinos平台,用户可以通过一个统一的应用程序在不同的设备上控制和管理这些设备。例如,在手机上可以远程控制家中的空调温度,在平板电脑上可以查看家中的监控视频。
- 车载信息娱乐系统 :在车载环境中,Webinos平台可以根据车辆的行驶状态、用户的操作习惯等因素,动态调整应用程序的用户界面,提供安全、便捷的信息娱乐服务。例如,在车辆行驶过程中,隐藏不必要的UI元素,减少用户分心;当车辆停车时,显示更多的功能选项。
- 移动办公 :用户可以在不同的移动设备(如手机、平板电脑、笔记本电脑)上随时随地访问和处理工作相关的应用程序和数据。例如,在外出途中,通过手机查看和回复邮件;在办公室,通过平板电脑进行文档编辑和演示。
展望未来,随着物联网、人工智能等技术的不断发展,Webinos平台有望进一步拓展其功能和应用范围。例如,结合人工智能技术,实现更加智能的用户界面自适应;与物联网设备深度集成,实现更多的自动化控制和服务。同时,随着Web技术的不断进步,Webinos平台也将不断优化和完善,为用户提供更加高效、便捷、安全的多设备应用体验。
7. 技术架构流程图
下面是Webinos平台的技术架构流程图,展示了其主要组件之间的交互关系:
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
A(用户设备):::process -->|本地发现| B(个人区域代理PZP):::process
B -->|通信| C(个人区域中心PZH):::process
D(云端服务):::process -->|授权访问| C
C -->|服务发现和通信| E(Web运行时WRT):::process
E -->|用户界面适应| F(适应管理器):::process
F -->|规则评估| G(规则引擎):::process
G -->|转换指令| E
E -->|操作DOM| H(应用程序):::process
这个流程图清晰地展示了Webinos平台的工作流程:用户设备通过本地发现与PZP连接,PZP与云端的PZH进行通信,PZH负责服务发现和通信。Web运行时WRT通过适应管理器和规则引擎实现用户界面的自适应,最终作用于应用程序。
通过以上的介绍,我们可以看到Webinos平台为支持无处不在的应用程序用户界面提供了一种创新的解决方案。它不仅解决了多设备应用开发中的诸多难题,还为未来的应用发展提供了广阔的空间。无论是在智能家居、车载信息娱乐还是移动办公等领域,Webinos平台都将发挥重要的作用,为用户带来更加便捷、高效、个性化的应用体验。
超级会员免费看
1万+

被折叠的 条评论
为什么被折叠?



