随着终端形态(如大屏、车机、穿戴设备等)以及上层服务分发平台(如各类小程序、快应用等)的日益丰富给开发者提供了更广泛的增长机会,同时也给开发者带来了多终端多平台适配上的挑战。
为提前探索和解决这一挑战,2019年3月8日,软件绿色联盟原子化服务工作组正式成立,联合阿里、百度、华为等国内优秀企业,共同制定标准语言,分发标准,质量标准,便于开发者可以高效高质量地完成多终端多平台的适配挑战。
《软件绿色联盟原子化服务通用技术标准》今日起正式对外公示并征求广大应用开发者意见。欢迎业内专家、应用开发者对本标准发表看法,
一、 原子化服务通用技术标准范围
本标准规定了原子化服务的技术规范和其运行平台的能力要求,用于指导原子化服务提供商构建通用的原子化服务,同时规范了服务运行平台的基本能力构成。
该标准内容包括三个方面:
- 原子化服务定义,主要描述原子化服务的定义及其与现有同类产品的关系和区别。
- 运行平台定义,主要描述原子服务的执行平台的能力规范,包括执行框架和服务的调度分发机制。
- 分发平台定义,单一设备分发场景定义(入口)和多设备分发场景定义。
本原子化服务标准适用于各类移动端服务场景的软件实现,运行平台规范适用于个人终端设备,包括不限于手机,电视,平板,音箱及各类通用消费类IoT设备。依据各服务提供商所提供的具体业务和平台的形式区别,本标准技术要求略有不同。
二、原子化服务(元能力)/AA定义
原子化服务(元能力),英文名称Atomic Ability(缩写AA,下文统一使用AA指代)是一个可以独立执行,实现单一功能的程序实体,它的承载实体类型可以是一个小程序/快应用/Native 服务。
AA是对外提供能力或服务的最小单位。由于其对应用内服务的切割更加彻底,因此具备以下特点:
- 可以以最小集启动,尽可能较少资源消耗;
- 不同应用间的AA通过系统打通,更匹配用户的场景需要;
- 通过分发平台提供的丰富入口,使得服务提供更加多元、智能。
AA是应用的业务基本组成单元,这些业务单元是逻辑上相互正交的个体。它们经过多样的组合构建出应用的完整业务,并且可以随应用的业务需要按需加载。这些业务单元不仅可以在应用内使用,也可以为其它应用使用,从而实现应用的基本业务单元能够最大化的被复用。系统中不再只是应用的集合,更可以是服务或能力的集合。系统通过对AA的组合,就可以衍生出更加广泛的业务满足用户的各种需求。
逻辑上,AA有自己的描述信息,可以做为服务被唤起/调用,也可以组合成更复杂的服务。同时也有相应的运行框架来管理相应的生命周期,权限等。
2.1
Web AA
Web AA是使用Web技术实现的原子化服务,包含以下三类形态:小程序、快应用、HTML5应用。
2.1.1 小程序
小程序是一种业界基于Web开发的即点即用的应用程序的通用名称,不需要安装即可使用,通过搜索或者二维码作为链接地址进行跳转直达应用。通常具有以下特点:
- 以JS作为开发语言;
- 基于HTML5规范重新定义API和组件;
- 依托于容器应用,提供私有能力接口;
- 执行引擎依赖于容器应用运行的操作系统。
当前业界存在的小程序规范主要包括微信小程序,支付宝小程序,百度小程序,字节跳动小程序等。
2.1.2 快应用
快应用是一种新的应用形态,由小米、华为、OPPO、VIVO等国内10家手机厂商发起成立的快应用联盟制定的统一技术规范,同样具有无需下载安装即可使用的特点。
从技术角度看,与小程序的相同点包括:基于Web技术构建新的应用规范;使用链接地址(DeepLink)作为入口地址。与小程序的不同点包括:采用了更严格的控件管理方式;执行平台集成到操作系统内并进行深度定制。
2.1.3 HTML5应用
HTML5应用遵守W3C Html5标准规范的应用,可以理解为一次写入,就可以运行在任何支持HTML5技术的地方运行的应用。HTML5应用是为移动设备优化的网页集合,为流式视频和音频、图形处理和动画以及离线支持提供了高级功能。还添加了包括语义元素、表单控件和多媒体组件,以及许多支持地理位置服务、拖放操作、本地应用程序缓存等的新API。
HTML5很少单独工作,大多数HTML5应用程序集成了级联样式表(CSS)和JavaScript,CSS定义了HTML组件在浏览器中的呈现方式,JavaScript包括用于处理文本、对象和数组的API。所有主要浏览器都支持这些技术,使得有可能在广泛的设备上实现基于Web的应用程序。
2.2
Native AA
Native AA是一种基于本地(操作系统)并使用原生程式编写运行的本地原子化服务。一般使用的开发语言为JAVA、C 、Objective-C。
三、原子化服务(元能力)/AA定义运行要求
运行平台是指支撑原子服务在设备上正常运行的系统服务。
3.1
Web AA运行要求
3.1.1 小程序运行要求
小程序运行平台为其对应的容器应用和开发平台上,各自的具体实现较为类似。以微信小程序为例:
- 在 iOS 上,小程序逻辑层的 JavaScript 代码运行在 JavaScript Core 中,视图层是由 iOS上的系统WebView 来渲染的
- 在 Android 上,小程序逻辑层的 JavaScript 代码运行在各自平台的自研的webview上。
3.1.2 快应用运行要求
快应用运行在手机系统内的快应用执行环境中,由各手机内置的快应用引擎提供运行时支持。
3.1.3 HTML 5应用运行要求
HTML5应用运行在Web引擎上,主要运行方式有:
1)内嵌Web引擎的HTML 5应用
客户端作为移动Web应用运行环境,此类应用一般采用客户端内嵌Web引擎扩展的方式,客户端上可以运行一个或多个移动Web应用。
2)基于操作系统Web引擎的混合类应用
操作系统内嵌移动Web应用运行环境,此类应用利用操作系统提供的Web接口,如Android的Web View对象。主要采用网页编程语言,同时结合原生语言开发,无需依赖浏览器运行。
3.2
Native AA运行要求
Native AA运行在程序对应的本地操作系统中。例如:
- 以APK为载体的原子化服务运行在Android系统提供的本地应用运行环境中;
- 以IPA为载体的原子化服务运行在IOS提供的应用运行环境中。
四、分发平台能力要求
分发平台是AA的主要调度系统,是按照用户使用场景进行自动化分发服务的机构。承担了除用户主动启动服务外的主要入口能力,为平台和服务的智能化提供核心调度算法能力。依照用户需求,场景找到匹配的AA按照用户需要的方式呈现给用户分发。
4.1
单一设备分发场景定义(入口)
为单一设备和用户提供多种服务入口,依据启动方式和适用场景,包括但不限于桌面入口、语音入口、智慧入口、搜索入口等。
入口分为硬入口和软入口。硬入口除开常用的手机、Pad、电视、智能音箱、PC之外,还包括车机、智能手表和手环等穿戴设备、耳机、VR/AR、智能家居、物联网IoT设备;软入口包括桌面、全局搜索负一屏、天气、日历等超级入口,还涉及智慧域的产品,比如语音助手、视觉助手、情景智能等产品。
4.2
多设备分发场景定义
为满足日益增长的消费类设备的多样性,分发平台可以支持将服务进行跨终端设备分发。使得服务能按需要运行在不同的设备上的过程称为多端分发,同时其具备业务连续的特点:为保证用户服务由于使用的设备切换或者用户行为变化而中断,需要提供运行中服务的状态在不同设备上流转的能力,以保证提供连续的服务,这个过程称之为业务接续。
要求:
- 依据用户使用的场景和当前可用设备,分发平台能自动将合适的服务分配到恰当的设备;
- 分发过程具有一致性,相同场景分发的结果相同,不引起用户困扰;
- 提供设备的感知能力,让服务只运行在可用设备上;
- 在不同的设备上分发,应使得用户的交互模式尽可能自然;
- 支持服务流转时状态的自动接续,无须用户手动操作;
- 开发者可以基于业务接续能力接口实现服务接续逻辑。
原子化服务工作组后续还将发布统一的API标准、质量标准,统一的原子化服务分类、以及多平台开发框架,敬请期待!
标准意见反馈
欢迎开发者就标准范围、原子化服务定义及其他内容发表看法或补充意见,您可将信息反馈至开发者邮箱developer@china-sga.com或本文下留言。
·END·