前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >软件绿色联盟发布原子化服务技术标准

软件绿色联盟发布原子化服务技术标准

作者头像
软件绿色联盟
发布2022-03-31 13:09:34
7170
发布2022-03-31 13:09:34
举报
文章被收录于专栏:软件绿色联盟动态

随着终端形态(如大屏、车机、穿戴设备等)以及上层服务分发平台(如各类小程序、快应用等)的日益丰富给开发者提供了更广泛的增长机会,同时也给开发者带来了多终端多平台适配上的挑战。

为提前探索和解决这一挑战,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·

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 软件绿色联盟 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档