首页> 中国专利> 用于把智能电话应用转换成基本电话应用的方法和系统

用于把智能电话应用转换成基本电话应用的方法和系统

摘要

公开了一种用于把智能蜂窝电话应用转换成在基本蜂窝电话上操作的应用的系统和方法。本发明具有分类处理,其把蜂窝电话应用的一项或多项功能分类成能够由基本蜂窝电话实施的功能以及无法由基本蜂窝电话实施的功能(缺失功能)。开发针对缺失功能的替代功能。仿真器监测蜂窝电话应用的执行,并且在将要执行缺失功能的执行点处提供替代蜂窝电话功能。因此,智能电话应用被转换成可以由基本蜂窝电话以精简的功能性来执行的基本电话应用。本发明可以运行在智能电话或服务器上。本发明还可以作为基于服务器的服务被提供给基本蜂窝电话用户。

著录项

  • 公开/公告号CN105637912A

    专利类型发明专利

  • 公开/公告日2016-06-01

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN201480056567.9

  • 申请日2014-10-13

  • 分类号H04W4/16;

  • 代理机构中国国际贸易促进委员会专利商标事务所;

  • 代理人刘凤香

  • 地址 美国纽约

  • 入库时间 2023-12-18 15:42:25

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-04-09

    授权

    授权

  • 2016-06-29

    实质审查的生效 IPC(主分类):H04W4/16 申请日:20141013

    实质审查的生效

  • 2016-06-01

    公开

    公开

说明书

相关申请的交叉引用

本申请要求2013年10月14日提交的肯尼亚临时专利申请KE/P/2013/001930的优 先权,通过引用的方式将其内容合并在此。

技术领域

本发明涉及移动通信设备的领域。更具体来说,本发明涉及把智能电话应用变换 成可以在基本电话上运行的应用的转换器。基本电话被定义成仅具有基本显示(仅有文本) 和全球移动通信系统(GSM)电话能力(呼叫和消息传送)并且不具有浏览器或数据能力的电 话。

背景技术

最近的二十年来,世界范围内对于移动电话的采用是惊人的。国际电信联盟估计, 到2011年为止世界上已经有超过50亿部移动电话。在这50亿部电话当中,80%(40亿部)是 简单的基本电话,20%(10亿部)是智能电话。除了提供基本的电话功能之外,智能电话通过 给出传统计算机的能力(power)和功能,特别是通过智能电话应用(“app”)改变了其用户的 生活。另一方面,由于设备的硬件和软件能力受到限制,大部分基本电话的用户被遗漏在 “移动计算革命”之外。主要的限制包括有限的屏幕尺寸,在电话上缺少本地计算和存储,缺 少例如摄影机、GPS传感器和加速度计之类的特征件,以及缺少浏览器和数据能力。

然而基本电话仍然能够通过利用语音的能力并且特别是例如SMS(短消息服务)和 USSD(非结构化补充服务数据)之类的协议来为用户提供计算能力。这样的协议与远程服务 器通信,远程服务器进行计算和存储并且随后将结果传送回用户。

尽管如此,运行在基本电话上的应用的数目仍然比运行在智能电话上的数目少几 个数量级。通过语音、SMS和USSD所提供的有限能力意味着只有智能电话应用的功能的一个 很小的子集能够被直接实施在基本电话上。除此之外,如果有人要把现有的智能电话应用 转换成用于基本电话使用,则涉及从零开始重写大部分应用代码并且在应用服务器上运行 该应用代码。

当前完全没有办法将智能电话应用自动转换成基本电话应用。人工处理需要开发 者首先运行智能电话应用,并且确定应用的功能。开发者随后判断对于基本电话用户有可 能实施这些功能的哪一个子集。更具体来说,不存在解决将智能电话应用自动转换成基本 电话版本方面的关键挑战的适当的(inplace)系统或方法。这些挑战包括:1)对于基本电 话快速识别应用的所支持和不支持的功能;2)在基本电话上立即访问现有的160万个或更 多的可用应用;以及3)没有用以把应用转换成基本电话版本的自动化或标准化方法。

相关技术:US20110136461;US20100251231。

发明内容

本发明的一个方面是为移动设备(特别是蜂窝电话)提供更高的功能性。

本发明的另一方面是为基本蜂窝电话提供允许基本蜂窝电话自动运行一个或多 个智能电话应用的功能性。

本发明的另一方面是与基本蜂窝电话相结合地使用来允许基本蜂窝电话使用和 执行智能电话应用的仿真器。

本发明的另一方面是使用允许蜂窝电话使用和执行智能电话应用的仿真器的蜂 窝电话。

在各个方面中,本发明是一种用于把智能蜂窝电话应用转换成在基本蜂窝电话上 操作的应用的系统和方法。本发明具有分类处理,其把蜂窝电话应用的一项或多项功能分 类成能够由基本蜂窝电话执行的功能以及无法由基本蜂窝电话执行的功能(缺失功能)。开 发针对缺失功能的替代功能。仿真器监测蜂窝电话应用的执行,并且在将要执行缺失功能 的执行点处提供替代蜂窝电话功能。因此,智能电话应用就被转换成可以由基本蜂窝电话 以精简的功能性来执行的基本电话应用。本发明可以运行在智能电话或固定服务器上。本 发明还可以作为基于服务器的服务被提供给基本蜂窝电话用户。在各个方面中,本发明的 方法和系统不涉及针对基本电话的任何修改。也就是说,基本电话保持不变并且具有在制 造时所提供的相同功能性。因此,为了实施这里所描述的方法,不需要在基本电话上安装专 门的软件,也不需要在基本电话上作出硬件或软件修改。

仿真器

在一个方面中是一种仿真器,其包括:应用跟踪器(AT),其被配置成识别与正在执 行的智能电话应用中的位置相关的修剪智能应用模型(prunedSmartapplication model)中的节点,并且从与修剪智能应用模型中的所识别出的节点相关的基本电话交互图 (BasicPhoneInteractionGraph)中的节点提取指令;以及交互应对器(IH),其被配置成 接收来自AT的指令,从所述指令准备消息,并且向用户传送所述消息。

在一些实施例中:

智能电话应用包括驻留在服务器上的机器可读指令,并且其中AT被配置成跟踪服 务器上的智能电话应用的执行;

其中,智能电话应用包括驻留在服务器上的机器可读指令,并且其中修剪智能应 用模型和基本电话交互图各自包括存储在服务器上的存储器中的机器可读信息;

智能电话应用具有相关联的用户界面框架图(UserInterfaceFramesGraph), 其包括智能电话应用的各个特征件;

修剪智能应用模型包括可以被实施在基本电话上或者可恢复以供实施在基本电 话上的智能电话应用的特征件;

修剪智能应用模型包括可以被实施在基本电话上或者可恢复以供实施在基本电 话上的智能电话应用的特征件,并且其中基本电话交互图包括在拓扑方面等效于修剪智能 应用模型的节点的节点,并且其中基本电话交互图中的至少一个节点包括被配置成由IH转 换成SMS或USSD消息的指令;

IH还被配置成接收来自用户的消息,把所述消息转换成用户界面输入,并且把用 户界面输入中继到AT;

所提取的指令包括消息元数据、语言片断、文本、位图数据、或者ASCII图形数据或 者其组合;

所述用户是蜂窝网络上的基本电话;

所述用户是蜂窝网络上的基本电话,并且所述基本电话从制造以来未经修改;

所述用户是蜂窝网络上的基本电话,并且所述基本电话由制造时所安装的硬件和 软件构成或者基本上由制造时所安装的硬件和软件构成;

所述用户是蜂窝网络上的基本电话,并且所述基本电话不包含未由制造商安装的 任何软件;

应用跟踪器包括驻留在服务器上的机器可读指令,并且其中交互应对器包括驻留 在服务器上的机器可读指令。

在一个方面中是一种使用如前所述的仿真器的方法,所述方法包括以下步骤:响 应于接收自基本电话的请求,由AT在服务器上发起智能电话应用;以及由AT跟踪服务器上 的智能电话应用。

在一些实施例中:

发起智能电话应用包括识别用户界面框架图中的主页节点,并且其中跟踪智能电 话应用包括:识别修剪智能电话应用模型中的相应节点;把修剪智能电话应用模型中的所 识别出的节点关联到基本电话交互图中的相应节点;以及从基本电话交互图中的相应节点 提取消息;

所述方法还包括:由AT从基本电话交互图提取指令;把所提取的指令传递到IH;由 IH把所提取的指令转换成USSD或SMS消息;以及由IH把所述USSD或SMS消息传送到基本电 话;

所述方法还包括:由AT从基本电话交互图提取指令;把所提取的指令传递到IH;由 IH把所提取的指令转换成ASCII序列或音频消息;以及由IH把所述ASCII序列或音频消息传 送到基本电话;

所述方法还包括接收来自基本电话的输入,其中IH把所述输入转换成用户界面输 入,并且把用户界面输入中继到AT;

由AT跟踪服务器上的智能电话应用包括:到达智能电话应用中的屏幕处;以及把 所述屏幕相关到修剪智能应用模型中的节点;

由AT跟踪服务器上的智能电话应用包括:到达智能电话应用中的屏幕处,其对应 于修剪智能应用模型中的具有修剪子节点的节点;以及由AT向IH传递终止消息;并且

由AT跟踪服务器上的智能电话应用包括:到达用户界面框架图中的节点处,其对 应于修剪智能应用模型中的具有修剪子节点的节点;以及由AT向IH传递终止消息。

在一个方面中是一种仿真器,其包括:参考修剪应用模型的应用跟踪器(AT),其中 AT跟踪智能电话应用的执行并且识别智能电话应用中的一点,在该点处基本蜂窝电话需要 对于执行智能电话应用所必要的缺失功能;以及交互应对器(IH),其生成替代所述缺失功 能的替代蜂窝电话功能。

在一个方面中是一种用于在基本电话上执行智能电话应用的系统,所述系统包 括:修剪智能应用模型(SAM),其包括对应于可在基本电话上执行或者可恢复的智能电话应 用的各项功能的多个节点;基本电话交互图(BPIG),其包括在拓扑方面等效于修剪SAM的节 点的多个节点,其中BPIG的每一个节点包括指令;包括机器可读指令的应用跟踪器(AT),其 被配置成跟踪智能电话应用的执行,并且从与修剪智能应用模型中的节点相关的基本电话 交互图中的节点提取指令;以及包括机器可读指令的交互应对器(IH),其被配置成接收来 自AT的指令,从所述指令准备消息,并且向用户传送所述消息。

在一些实施例中:

所述系统还包括用户界面框架图(UIFG),其包括对应于智能电话应用的所有功能 的多个节点;

IH还被配置成接收来自用户的消息,把所述消息转换成用户界面输入,并且把用 户界面输入中继到AT;并且

所提取的指令包括消息元数据、语言片断、文本、位图数据、或者ASCII图形数据或 者其组合。

在一个方面中是一种使用如前所述的系统的方法,所述方法包括以下步骤:响应 于接收自基本电话的请求,由AT在服务器上发起智能电话应用;以及由AT跟踪服务器上的 智能电话应用。

在一个方面中是一种仿真器,其包括:参考修剪应用模型的应用跟踪器(AT),其中 AT跟踪智能电话应用的执行并且识别智能电话应用中的一点,在该点处基本蜂窝电话需要 对于执行智能电话应用所必要的缺失功能;以及交互应对器(IH),其生成替代所述缺失功 能的替代蜂窝电话功能。

在一些实施例中:

替代蜂窝电话功能包括以下各项当中的一项或多项:(i)来自基本蜂窝电话用户 的输入,IH将该输入转换成针对智能电话应用的输入并且发送到智能电话应用;以及(ii) 来自智能电话应用的输出,IH对该输出进行转换并且发送给基本蜂窝电话用户;

替代蜂窝电话功能包括以下各项当中的一项或多项:SMS消息和USSD消息;

所述缺失功能包括以下各项当中的一项或多项:特征件、输入/输出(I/O)窗口小 部件以及屏幕;

所述缺失功能包括以下各项当中的一项或多项:特征件、输入/输出(I/O)窗口小 部件以及屏幕,并且其中所述特征件由智能电话硬件或智能电话软件提供;

所述缺失功能包括以下各项当中的一项或多项:特征件、输入/输出(I/O)窗口小 部件以及屏幕,并且其中所述特征件是智能电话硬件,并且其中所述特征件包括以下各项 当中的一项或多项:全球定位系统(GPS)和互联网接口;

所述缺失功能包括以下各项当中的一项或多项:特征件、输入/输出(I/O)窗口小 部件以及屏幕;并且其中所述输入/输出(I/O)窗口小部件是智能电话应用的图形用户界面 上的一个或多个单元,用户输入和系统/应用输出被显示在该窗口小部件中;

所述缺失功能包括以下各项当中的一项或多项:特征件、输入/输出(I/O)窗口小 部件以及屏幕,并且其中所述屏幕包括由智能电话应用使用的一个或多个可见接口;并且

所述缺失功能包括以下各项当中的一项或多项:特征件、输入/输出(I/O)窗口小 部件以及屏幕,并且其中所述屏幕包括由智能电话应用使用的一个或多个可见接口,并且 其中一个或多个屏幕包括一个或多个输入/输出I/O窗口小部件。

在一个方面中是一种仿真器,其包括:应用跟踪器(AT),其被配置成识别与智能电 话应用的用户界面框架图中的节点相关的修剪智能应用模型中的节点,并且从与修剪智能 应用模型中的所识别出的节点相关的基本电话交互图中的节点提取指令;以及交互应对器 (IH),其被配置成接收来自AT的指令,从所述指令准备消息,并且向用户传送所述消息。

设备

在一个方面中是一种设备,其包括被配置成使得所述设备实施仿真器的机器可读 指令,所述仿真器包括:应用跟踪器(AT),其被配置成识别与正在执行的智能电话应用中的 位置相关的修剪智能应用模型中的节点,并且从与修剪智能应用模型中的所识别出的节点 相关的基本电话交互图中的节点提取指令;以及交互应对器(IH),其被配置成接收来自AT 的指令,从所述指令准备消息,并且向用户传送所述消息。

在一些实施例中:

所述设备是被配置成通过蜂窝网络与基本电话进行交互的服务器;

智能电话应用包括驻留在服务器上的机器可读指令,并且其中AT被配置成跟踪服 务器上的智能电话应用的执行;

用户界面框架图由智能电话应用的各个特征件构成;

修剪智能应用模型包括可以被实施在基本电话上或者可恢复以供实施在基本电 话上的智能电话应用的特征件;

基本电话交互图包括在拓扑方面等效于修剪智能应用模型的节点的节点,并且其 中基本电话交互图的节点包括指令;

基本电话交互图包括在拓扑方面等效于修剪智能应用模型的节点的节点,并且其 中基本电话交互图的节点包括指令,其中所述指令包括适用于SMS或USSD消息的文本、 ASCII字符串、声音、元数据或者其组合;

IH还被配置成接收来自用户的消息,把所述消息转换成用户界面输入,把用户界 面输入中继到AT,并且可选地用信号表明转变到后续状态;

所述设备是多用途计算机、专用计算机或者基本电话之外的其他移动设备;并且

在向用户传送消息之前,IH把接收自AT的消息转换成适合于作为USSD或SMS消息 传送的文本。

在一个方面中是一种使用如前所述的设备在基本电话上执行智能电话应用的方 法,所述方法包括:响应于接收自基本电话的请求,由AT在服务器上发起智能电话应用;以 及由AT跟踪服务器上的智能电话应用。

在一些实施例中:

发起智能电话应用包括识别用户界面框架图中的主页节点,并且其中跟踪智能电 话应用包括:识别修剪智能电话应用模型中的相应节点;把修剪智能电话应用模型中的所 识别出的节点关联到基本电话交互图中的相应节点;以及从基本电话交互图中的相应节点 提取指令;

所述方法还包括:由AT从基本电话交互图提取指令;把所提取的消息传递到IH;由 IH把所提取的消息转换成USSD或SMS消息;以及由IH把所述USSD或SMS消息传送到基本电 话;

所述方法还包括接收来自基本电话的输入,其中IH把所述输入转换成用户界面输 入,并且把用户界面输入中继到AT;并且

由AT跟踪服务器上的智能电话应用包括:到达智能电话应用中的屏幕处,其对应 于修剪智能应用模型中的具有修剪子节点的节点;以及由AT向IH传递终止消息。

在一个方面中是一种服务器,其包括:用于接收来自正在执行的智能电话应用的 指令的网络接口;识别正在执行的智能电话应用中的一点的修剪应用模型,在该点处基本 蜂窝电话需要对于执行智能电话应用所必要的缺失功能;参考修剪应用模型的应用跟踪器 (AT),其中AT跟踪智能电话应用的执行并且识别智能电话应用中的一点,在该点处基本蜂 窝电话需要对于执行智能电话应用所必要的缺失功能;以及交互应对器(IH),其生成替代 所述缺失功能的替代蜂窝电话功能。

使用方法

在一个方面中是一种在基本电话上执行智能电话应用的方法,所述方法包括以下 步骤:(a)将在服务器上执行的智能电话应用的活动与修剪智能应用模型(SAM)中的节点相 关;(b)识别与来自(a)的修剪SAM中的节点相关的基本电话交互图(BPIG)中的节点;(c)从 在(b)中识别出的BPIG节点提取指令;(d)从所提取的指令构造消息;以及(e)向基本蜂窝电 话传送所述消息。

在一些实施例中:

所述消息是USSD或SIM消息;

所述消息是音频消息;

所述方法还包括:在(b)之前,响应于接收到来自基本蜂窝电话的针对执行智能电 话应用的请求,在服务器上发起智能电话应用;

所述方法还包括:确定修剪SAM中的所述节点是终端节点,以及在向基本蜂窝电话 传送所述消息之后返回终止消息;

步骤(a)-(c)由服务器上的仿真器的应用跟踪器功能实施;

步骤(d)-(e)由服务器上的仿真器的交互应对器功能实施;

所述方法还包括:在传送所述消息之后接收来自基本电话的输入;

所述方法还包括在传送所述消息之后接收来自基本电话的输入,其中所接收到的 输入被提供到智能电话应用以便生成后续活动;

其中,所述消息是USSD或SIM消息,并且所述方法还包括在传送所述消息之后接收 来自基本电话的输入,其中所接收到的输入是USSD或SIM消息并且被提供到智能电话应用 以便生成后续活动;

所述方法还包括在传送所述消息之后接收来自基本电话的输入,其中所接收到的 输入被提供到智能电话应用以便生成后续活动,并且其中对于所述后续活动重复步骤(a)- (e);

修剪SAM包括可以被实施在基本电话上或者可恢复以供实施在基本电话上的智能 电话应用的特征件;

所述方法还包括:在步骤(a)之前,通过把智能电话应用的特征件表与可恢复性表 进行比较而生成修剪SAM。

智能电话应用的活动是从特征件、输入/输出(I/O)窗口小部件和屏幕当中选择 的;

服务器是从专用计算机、通用计算机和移动设备当中选择的;并且

智能电话应用包括生成图形和交互式显示的特征件。

在一个方面中是一种服务器,其包括被配置成实施如前所述的方法的机器可读指 令。

在一个方面中是一种在基本电话上执行智能电话应用的方法,所述方法包括以下 步骤:在服务器处接收来自基本蜂窝电话的针对执行智能电话应用的请求,基本蜂窝电话 需要对于执行对应的智能电话应用所必要的一项或多项缺失功能;跟踪服务器上的智能电 话应用的执行,并且确定当智能电话应用的功能需要被恢复或替换时的执行点;以及向基 本电话提供指令,以便在所确定的执行点处执行替代蜂窝电话功能。

制作方法

在一个方面中是一种计算机处理,其包括以下步骤:把智能电话应用的应用分类 成可恢复功能,其中可恢复功能包括可以在智能电话上执行但是无法在基本电话上执行的 操作;以及(b)自动生成模拟可恢复功能的替代功能,其中针对替代功能的输入和输出被限 制到基本蜂窝电话上的可用操作。

在一些实施例中:

智能电话应用还包括可以在基本电话上执行的功能;

智能电话应用还包括既无法在基本电话上执行也不是可恢复功能的功能;

智能电话应用还包括既无法在基本电话上执行也不是可恢复功能的功能,所述功 能是从加速度计、陀螺仪、罗盘和摄影机当中选择的;

所述方法还包括执行智能电话应用以及监测智能电话应用的执行,并且还包括在 智能电话应用中的调用可恢复功能的执行点处执行替代功能。

所述方法还包括:在步骤(a)之前,核查(review)对于实施智能电话应用的功能所 需要的操作集合;

基本蜂窝电话上的可用操作是从以下各项当中选择的:发送SMS或USSD消息;接收 SMS或USSD消息;显示一个或多个ASCII字符;生成噪音;以及记录声音;

基本蜂窝电话上的可用操作是从以下各项当中选择的:发送SMS或USSD消息;接收 SMS或USSD消息;显示一个或多个ASCII字符;以及生成噪音;

可以在智能电话上执行但是无法在基本电话上执行的操作是从以下各项当中选 择的:图形显示;位置确定;以及触摸屏I/O操作;

所述方法还包括在从专用计算机、多用途计算机和移动设备当中选择的服务器上 执行智能电话应用,并且还包括监测服务器上的智能电话应用的执行,并且还包括在智能 电话应用中的调用可恢复功能的执行点处执行替代功能,其中用于执行智能电话应用的指 令是通过蜂窝网络从基本电话接收的;

所述方法还包括对于智能电话应用的多项功能重复步骤(a)和(b);并且

其中所述方法还包括把智能电话应用的功能分类成不可恢复功能,其中所述功能 包括可以在智能电话上执行但是无法在基本电话上执行的操作。

在一个方面中是一种计算机系统,其包括被配置成实施如前所述的计算机处理的 机器可读指令。

在一些实施例中:

所述计算机系统是从专用计算机、通用计算机和移动设备当中选择的服务器;并 且

所述计算机系统还包括:包括可以在智能电话上执行但是无法在基本电话上执行 的操作的可恢复性列表;以及可以在基本电话上执行的替代操作的相应列表。

在一个方面中是一种计算机处理,其包括以下步骤:把蜂窝电话应用的多项功能 当中的每一项分类成能够由基本蜂窝电话实施的功能或者对于执行蜂窝电话应用所需要 的但是在基本蜂窝电话上不可用的缺失功能;对于至少其中一项所分类的缺失功能提供替 代蜂窝功能,所述替代蜂窝电话功能能够由基本蜂窝电话执行;以及仿真蜂窝电话应用以 便监测蜂窝电话应用的执行,并且在将要执行对应的缺失功能的蜂窝电话应用的执行点处 提供替代蜂窝电话功能,其中将智能电话应用转换成被提供给基本蜂窝电话的基本电话应 用。

在一个方面中是一种用于转换蜂窝电话应用的计算机系统,其包括:存储器、中央 处理单元和网络接口;分类处理,其把蜂窝电话应用的多项功能当中的每一项分类成能够 由基本蜂窝电话实施的功能或者对于执行蜂窝电话应用所需要的但是在基本蜂窝电话上 不可用的缺失功能;替代处理,其对于至少其中一项所分类的缺失功能提供替代蜂窝功能, 所述替代蜂窝电话功能能够由基本蜂窝电话执行;以及仿真器,其监测蜂窝电话应用的执 行,并且在将要执行对应的缺失功能的蜂窝电话应用的执行点处提供替代蜂窝电话功能, 其中将智能电话应用转换成被提供给基本蜂窝电话的基本电话应用。

基于这里所提供的公开内容,本领域技术人员将会认识到本发明的前述和其他方 面。

附图说明

图1是UI框架图的示例性构造。

图2是描绘出用于修剪UI框架图的处理的实例的图示。

图3是当用户访问经过转换的应用时与基本电话用户进行交互的仿真器的方块 图。

图4是示出了利用基于服务器的应用即服务供应的智能电话应用到基本电话应用 的转换和执行的架构的方块图。

图5是示出了对于转换使用基于智能电话的应用即服务供应的架构的方块图。

具体实施方式

本发明的一个优选方面是取得智能电话应用的源代码作为输入并且生成以下两 项输出的自动转换器系统和方法:(a)被称作基本电话交互图(BPIG)的原始智能电话应用 的受限版本;以及(b)用户仿真器。在一个优选实施例中,转换器的任务是每个应用的一次 性操作。

本发明的一个优选方面是新的基本电话应用,其包括基本电话用户界面以及由用 户仿真器和修剪(即精简的功能性)智能电话应用构成的后端。

公开了由优选实施例中的自动转换器系统所使用的优选的自动化处理,以便从现 有的智能电话应用生成基本电话应用。示例性的处理包括:

将现有的智能电话应用的功能性自动分类成可以被实施在基本电话上的功能性 以及无法被实施在基本电话上的功能性;

将智能电话应用的功能性自动精简到可以通过基本电话直接访问或者具有使用 基本电话能力的足够好的替代的子集;以及

利用软件即服务模型、基于服务器的应用以及/或者基于智能电话的应用来提供 精简的智能电话应用,以供多个分散开的基本电话用户访问。

下面是本发明所提供的其中三个优点。

(1)功能性覆盖。对智能电话应用进行转换的人工处理涉及人类思考和人工检查, 以便评估智能电话的哪些功能性可以或者无法被实施在基本电话上。这一处理容易出错, 并且可能导致产生具有低于可能实现的功能性的基本电话应用。人类可能并不知晓针对基 本电话应用的所有可恢复性选项。

(2)编程语言独立性。本发明的方法不需要针对特定的移动OS(操作系统)或编程 语言来开发智能电话应用。因此,可以利用本发明来转换用于所有移动OS的智能电话应用。

(3)高效率。所述转换处理涉及很少或者不涉及源应用的功能性的重写。其结果 是,大大缩短了得出解决方案的时间(例如从数以月计的开发缩短到数以分钟计的自动转 换)。智能电话的应用被原样移植(port)到后端系统,并且自动生成附加的代码模块(用户 仿真器)。

在这里特别描述了在智能电话应用到基本电话应用的转换过程中所涉及的优选 步骤。在优选实施例中,本发明对遵循模型视图控制器(MVC)架构的智能电话应用进行处 理。

若干模块构成本发明的一个方面的一个优选实施例的特征件;智能电话应用到基 本电话应用转换——自动转换系统和方法。在下面的表中列出了所述优选处理/步骤:

表1

I、数据收集

为了把现有的智能电话应用转换成基本电话版本,需要用以收集特定于移动OS和 编程语言的关键字的处理。所述关键字是标示特征件、输入/输出(I/O)窗口小部件以及屏 幕的那些关键字。特征件是移动电话硬件、输入和输出资源、软件及其组合,其特定于电话 的制作(make)和型号并且允许电话实施任务。举例来说,特征件包括摄影机、GPS模块、互联 网连接性等等。

I/O窗口小部件是应用的图形用户界面上的单元,用户输入和系统/应用输出在该 处被显示和确定。举例来说,I/O窗口小部件包括单选按钮(radiobutton)和其他按钮、下 拉菜单、文本框等等。

屏幕表示应用针对用户的可见接口。独特的屏幕向用户呈现一个或多个I/O窗口 小部件。屏幕还可以呈现例如地图等信息。

所述转换器需要一种方式来识别这些特定单元(特征件、窗口小部件以及屏幕)。 产生储存库以便基于特定的移动OS和编程语言关键字来映射应用的单元。在给定关键字的 情况下,所述转换器可以在源代码中进行搜索,并且识别特征件、窗口小部件和屏幕。

更具体来说,作为数据收集步骤的一部分,保持三个关键字表。所述关键字表是: i)特征件-关键字表,ii)I/O窗口小部件-关键字表,以及iii)框架-关键字表。基于智能电 话的技术手册来识别特征件。所述手册将详细说明特定智能电话的资源和能力。通过搜索 编程语言的API并且将单元与其相关联的句法一起存储来识别针对窗口小部件和启动屏幕 的关键字。举例来说,在Java中,大多数GUI单元将继承自相同的对象并且被存储在相同的 包装中。

特征件-关键字表

特征件是在智能电话上找到的资源,包括:例如摄影机和音频记录器之类的I/O设 备;例如GPS和加速度计之类的传感器;以及例如Wi-Fi天线和Bluetooth接收器之类的通信 设施。

在一个实施例中,利用特征件-关键字表找到SmartApp源代码内的关键字。该表把 智能电话的每一个特征件映射到其特定的移动OS和编程语言关键字。举例来说,在Android OS上,利用LocationManager(位置管理器)类来访问GPS特征件,正如下面所说明的那样:

LocationManagerlocManager=(LocationManager)this.getSystemService (Context.LOCATION_SERVICE)

因此,特征件-关键字表中的与GPS相关联的行将被表示在下表中。

表2

一般来说,特征件-关键字表被存储在储存库中,以供后来在转换处理期间使用。 随着产生具有新的特征件的智能电话以及当某些特征件被去除时,必须周期性地更新该 表。

I/O窗口小部件-关键字表

I/O窗口小部件是在智能电话应用的UI(用户界面)上找到的输入和输出组件。I/O 窗口小部件包括GUI(图形用户界面)单元,比如文本框、按钮和选项卡以及提醒、对话和其 他弹出窗口。一般来说,这些窗口小部件常常通过语义上可解释的关键字来描绘——其中 (多个)窗口小部件关键字与窗口小部件所代表的内容相同或类似。举例来说,文本框是针 对文本字符的方框。

I/O窗口小部件-关键字表对于每一种编程语言中的每一个可用的I/O窗口小部件 列出针对每一种不同类型的I/O窗口小部件的相应代码(和句法)。

例如考虑基于XML的UI表示,其中关键字包括在屏幕的XML树文件内找到的窗口小 部件的名称。下面示出了针对Android上的复选框的实例,其后是表中的示例行,

<CheckBox

android:id="+id/checkboxID"

android:layout_width=″match_parent"

android:layout_height="wrap_content"

android:text="string/checkbox"/>

表3

如果编程语言遵循面向对象的范例,则大多数(如果不是所有的话)窗口小部件继 承自特定的基础类。其结果是,如果预先定义的和用户定义的窗口小部件继承自相同的基 础类,则可以找到它们。此外,大多数语言为开发者提供进行输入和输出的所有可能方式的 规范。这些假设被使用或应用以便捕获并且存储在移动OS和编程语言中所表示的所有I/O 窗口小部件。

框架-关键字表

在数据收集步骤期间所收集的最后一项信息是产生并且存储在应用内产生屏幕 改变的关键字。屏幕改变是导致一个屏幕的显示发生改变的任何单元。举例来说,应用内的 屏幕可以具有文本框,并且随后显示弹出消息。两个屏幕之间的改变或UI屏幕改变是具有 文本框的屏幕与具有文本框和弹出消息的屏幕。一般来说,发生屏幕改变是为了促进用户 导览经过应用,或者由应用将信息显示回用户。

产生框架-关键字以表示通过识别涉及UI屏幕改变的代码关键字而标示从屏幕到 屏幕转变的关键字集合。更具体来说,当用户启动智能电话应用时,他/她将有可能通过转 变经过多个屏幕来与应用进行交互,以便实现该应用的任务(或者完成功能)。

举例来说,应用的登陆页面可以具有按钮,所述按钮在被点击时打开针对应用的 每一项顶层功能性的新的框架。后续屏幕可以促进收集来自用户的输入,随后是把计算结 果显示回用户的屏幕。

在Apple的iOS中,UINavigationController(UI导览控制器)帮助管理从屏幕到屏 幕的导览。其帮助管理“导览堆栈”,所述导览堆栈是新的屏幕被推入和弹出其中的分层比 喻。下面是示例性的代码片段:

this.mySecondScreen=newmySecondScreen();

this.NavigationController.PushViewController(this.mySecondScreen, true);

该代码实例化被称作mySecondScreen的屏幕,将其推入到导览控制器中,并且将 其设定为真,从而使其进行导览。其结果是,为了找到针对iOS智能应用的屏幕转变,用于产 生新的屏幕并且将其添加到导览控制器的代码必须被如下包括在框架-关键字表中。

表4

产生这些表需要例如利用API文档和库定义来检查相关的编程语言。

II、表示

在一个实施例中,本发明构造被称作SmartApp(智能应用)模型(SAM)的智能电话 应用的抽象表示。所述模型被用来自动识别应用的所有功能性,并且确定在基本电话上无 法支持应用的哪些部分。

SmartApp模型由被称作UI框架图的图和被称作特征件散列图的散列图构成(参见 图1)。UI框架图是通过对于可以在智能电话应用的执行期间被访问的每一个屏幕产生节点 而构造的。第一节点通过一条“边”连接到第二节点,其中第二节点(其代表屏幕)可以在应 用的执行期间从第一节点(其代表另一屏幕)访问。举例来说,第一屏幕可以包括触摸按钮, 其在被选择时将用户带去第二屏幕。在这种情况下,代表所述两个屏幕的两个节点在UI框 架图中通过一条边连接。

图1提供了UI框架图的实例。节点(10)由正方形表示,特征件(20)由菱形表示。节 点ni和nj访问(并且指向)特征件fi,其例如可以是麦克风。节点nk访问特征件fj,其例如可以 是摄影机。节点n1和nn分别是应用起始和应用结束节点。在下表中示出了相应的特征件散列 图。

表5

特征件 (多个)节点 麦克风 ni、nj摄影机 nk

下面给出了用于构造SAM的优选算法。

表6

UI框架图代表从用户启动智能电话应用时到用户结束使用所述应用时所可能发 生的所有可能的屏幕转变。UI框架图G=<N,E>,其中N是图中的节点集合,E是图中的边的集 合。被标示成ni的节点包含来自应用的独特屏幕(UI框架)以及相关联的视图和控制器文 件。例如在Android中,在具有把控制器代码链接到XML文件的特定句法的源代码内找到所 述视图和控制器文件。

节点ni与nj之间的边被标示成eij,并且其表示去往新的屏幕的有意的用户导览动 作,或者由应用所导致的屏幕改变(例如向用户显示信息)。根节点是针对应用的登陆页面。 图1示出了针对Android应用的示例性UI框架图。下面示出了用以构造UI框架图的一般规 程。可以根据用以发现节点和边并且将其插入到图中的经过修改的深度优先搜索(DFS)或 宽度优先搜索规程构造所述图。

表7

经过UI框架图的路径起始于应用的登陆页面,并且终止于终止节点——也就是代 表用户在其中无法导览到任何其他新屏幕的屏幕的节点。起始于所述路线并且结束于终止 节点的经过图的路径代表应用的一项完整功能性。其结果是,经过应用的UI框架图的所有 独特路径的集合代表应用的所有可能的不同功能性。

用于表示应用的SmartApp模型的第二个组成部分是产生被称作特征件散列图的 散列图。特征件散列图是键值对的表,并且代表依赖于智能电话特征件的应用的部分。散列 图中的键直接对应于特征件(比如GPS和摄影机)。特征件的值是零或多个UI框架图节点的 列表,正如下面所示出的那样。在节点的视图或控制器文件涉及特征件的情况下并且只有 在此情况下,该节点才被包括在对应于特征件的列表中。

<feature1,<n1,...ni>>

...

<featurem,<nj,...nk>>

通过遍历UI框架图并且使用针对每一个节点的视图和控制器代码来产生特征件 散列图。在每一个视图和控制器文件内部利用特征件-关键字表进行针对特征件关键字的 搜索,以便找到任何相依的特征件。在下面的算法中概括了这一处理。

表8

III、修剪

修剪是精简UI框架图的处理,这是通过去除代表最初处在原始智能电话应用上但 是无法被直接实施在基本电话上或者无法被“恢复”(也就是被替代以便使用基本电话功能 性)的功能性的边和节点来实现的。保持一个表以便确定处在基本电话中的特征件以及可 以被恢复的特征件。基本电话上的特征件的列表与智能电话上的特征件的列表之间的交叉 提供了可恢复特征件的初始列表。参见后面关于恢复的描述。

所得到的图被称作修剪SAM,其代表基本电话用户可以在智能电话应用上访问的 完整功能性集合。所述图由代表在不使用不存在于基本电话上或者无法在基本电话上恢复 的特征件的情况下可以从登陆页面到达的智能应用屏幕的节点和边构成。参见后面对于图 2的描述,其是概括修剪处理的递归算法,并且返回修剪SmartApp模型。

表9

图2描绘出修剪处理的实例。通过修剪处理30对UI框架图50进行转换,从而产生修 剪SAM60。在所述处理中,去除使用摄影机的节点(例如访问fj的nk),这是因为摄影机是无 法对于基本电话恢复的特征件。所述实例描绘出对于需要摄影机的节点的识别和去除。另 一方面,音频记录特征件可以在基本电话上被恢复(这例如是通过呼叫到远程电话号码并 且留下音频消息实现的)。因此,访问麦克风的节点(例如访问fi的节点ni和nj)不被修剪。

IV、恢复

恢复是利用SMS和USSD消息来替代不可能显示在基本电话的用户界面上的智能电 话应用上的GUI窗口小部件以用于基本电话用户的交互的处理。GUI窗口小部件也被称作 GUI控制件,其是示出用户可以控制的信息的图形用户界面的独特单元。GUI窗口小部件的 实例包括而不限于按钮、文本框、复选框、下拉列表、组合框和进度条。GUI窗口小部件是视 觉构建块,其被组合来显示需要由用户操纵或者向用户显示的所有应用数据。由于大多数 基本电话的显示器中的尺寸和渲染能力限制,不可能在基本电话的屏幕上渲染所有这些类 型的控制。

所述恢复处理需要前驱步骤,其中识别GUI窗口小部件并且将其置入到已经为之 识别出适当的SMS/USSD替代的若干宽泛UI类别中。

所述宽泛GUI类别被如下概述:

输入

文本输入——包括用户向其中键入文本的文本框和组合框。

选择

排他性选择——这些是只能从中挑选出一个选项的选择窗口小部件。其实例包括 导览选项卡、下拉列表、微调控制项(spinner)以及时间和日期挑选器。

包含性选择——这些是允许用户从分立选项集合中作出多于一项选择的窗口小 部件。其实例包括复选框和列表框。

模拟选择——这些是允许用户拖曳指示器或滑动器以便从连续值范围中作出选 择的窗口小部件。其实例包括滑动器、地图和色谱上的标记。

输出

简单输出——这些是向用户显示单个输出项目的窗口小部件。

被动式简单输出——这些是不需要来自用户的进一步交互的简单输出窗口小部 件。其实例包括标签、文本框、工具提示、状态栏、提醒和弹出式提醒(toast)。

交互式简单输出——这些是提供单项输出信息但是还需要来自用户的进一步输 入的窗口小部件。其实例包括对话框。

总集输出——这些是向用户显示多项分立信息的窗口小部件。

被动式总集输出——这些是不需要进一步用户交互的总集输出。其实例包括不具 有交互性或者被禁用的表、树、图。

交互式总集输出——这些是允许用户进一步质询信息以便例如挖掘(drill down)细节的总集输出。其实例包括而不限于交互式树以及超级链接的列表。

标签

这些是帮助识别其他窗口小部件用于什么的窗口小部件。其通常包含暗示着由输 入窗口小部件所预期的信息类型或者由输出窗口小部件所显示的信息类型的指示性名称。 其实例包括标签、文本视图(TextView)。

随后对于这些宽泛UI类别识别SMS和USSD替代。在给定认知负荷、对于交互性的需 求以及输入或输出的尺寸和复杂度的约束的情况下,根据关于给出智能电话功能的能力的 试探法来指派SMS/USSD替代。

对于每一个前面的宽泛I/O类别,我们基于以下因素而知道最佳的SMS/USSD替代 是什么:需要使用基本电话上的有限的屏幕尺寸;需要减少用户疲劳;需要减少认知负荷; 需要减少输入时的人为错误;需要数据的用户拷贝;以及需要降低通信的成本。

基于这些因素,下表示出了IO恢复算法(IRA)中的针对IO类别的最佳替代的实例。

表10、所选择的功能性替代

所述恢复规程涉及若干判定点以便对每一个窗口小部件进行归类,并且随后按照 前面的表利用预先定义的适当的SMS和USSD替代来进行替换。在一些实施例中,所述恢复规 程是自动的,并且在一旦生成修剪SAM后被实施。

取决于基本电话的功能性,可以有附加的恢复选项可用。举例来说,利用适当地选 择和定位的ASCII字符(可以通过SMS/USSD或者通过任何其他适当的措施将ASCII字符传送 到基本电话),可以在基本电话上显示简单的图形(例如图像、地图等等)。相应地,涉及地图 绘制或者显示简单图像(基本形状、示意图等等)的智能电话应用可以利用显示在基本电话 上的基于ASCII的图像来替代。此外,例如可以利用蜂窝塔信号的三角测量在基本电话上替 换智能电话的位置确定功能(例如GPS模块)。与GPS相比,利用三角测量所确定的位置的分 辨率和准确性通常将是较差的,但是利用这样的方法可以恢复基本的功能性。

此外,在一些实施例中,基本电话能够产生声音,并且还能够传送声音。相应地,利 用这样的能力可以恢复智能电话应用的特定功能。

在本说明书中,SMS/USSD被用作可以从这里所描述的仿真器递送到基本电话的示 例性消息。但是应当认识到,SMS/USSD仅仅是示例性的,并且除非另行声明或者从上下文明 显看出,否则这样的参考意图包括可以由基本电话递送和处理的其他类型的消息(例如音 频消息、用于在基本电话屏幕上产生图像的ASCII字符等等)。

应当认识到,智能电话应用的某些功能可能无法在基本电话上实施并且也是不可 恢复的。如果没有适当的替代功能,则功能是不可恢复的。不可恢复的功能的集合将根据基 本电话的能力而有所不同,但是例如可能包括摄影机、陀螺仪、加速度计等等。

同时包括可恢复和不可恢复的功能的智能电话应用功能的集合在这里被称作“缺 失功能”。

还应当认识到,智能电话应用的某些功能可能在基本电话上是完全可执行的—— 也就是说不需要替代或恢复来使得基本电话实施所述功能。其实例包括播放音频消息/声 音。

恢复的实例

在本例中我们使用ID-Sasa,这是帮助身在肯尼亚的人的国家ID卡申请过程的 Android应用。ID-Sasa的顶层功能性如下:

准备申请。此功能帮助用户收集对于ID卡申请所需要的所有文件,帮助用户找到 其登记部门的正确位置,并且为用户给出根据申请人的简档(年龄、原籍以及当前居住区 域)定制的预期过程步骤的概要。

跟踪申请。一旦用户将其文件提交到正确的政府部门,此功能帮助用户跟踪其ID 卡申请的状态。用户提交其等待id号码,并且所述应用告知用户其申请已到达哪一个处理 阶段,例如“在从本地部门到处理机构的运送途中”、“身份验证”、“印刷”、“已在本地部门交 付”等等。

报告。此功能帮助用户关于id申请过程给出反馈,包括报告积极体验以及低效率 和腐败的发生这样的消极体验。

我们的实例集中于“准备申请”功能,特别是该功能的其中产生用户简档的步骤。

屏幕转变的序列开始于针对应用的登陆屏幕,随后是可以从登陆屏幕中选择的若 干选项。对于该例,在登陆屏幕上有三项顶层功能性——申请、跟踪和报告(可选地还加上 例如“定制”功能性等附加选择)。通过选择这些选项当中的任一个将把用户带到另一屏幕, 其中可出现附加的选项和输入/输出屏幕。应用中的每一个这样的屏幕由UI框架图中的节 点表示。

当用户点击“申请”选项卡时,应用检查是否已经有存储在电话上的用户简档。如 果应用正被初次使用,则其提示用户产生他/她的简档,正如在第二屏幕上示出的那样。

现在,恢复规程依赖于SmartApp模型,对于UI框架图的每一个节点,在SmartApp模 型上存在相关联的控制器代码类和视图代码类。

举例来说,针对ID-Sasa应用的UI框架图的根节点代表登陆屏幕,其在图1中例如 被显示成节点n1。针对该节点的控制器代码被称作MainActivity.Java,这是对应于 Android开发环境中的应用的进入点的默认情况。在其他移动OS-编程语言组合中可以找到 用以标识应用的进入点(登陆页面)的等效的命名惯例。在MainActivity.Java内部存在指 向相关联的视图代码文件的代码。利用早前定义的关键字表,我们知道这一代码行是下面 示出的代码行。

这一代码行告诉我们,在资源目录的布局子目录中找到了视图文件(其在Android 中是布局xml文件),并且其被称作activity_main.xml。

利用该文件路径信息,我们可以历经Android代码树(也就是针对UI框架图的根部 的视图代码),并且找到看起来如下面所示出的activity_main.xml。利用下面示出的代码 和基本xml解析器,我们可以看到存在由被称作“Button(按钮)”的xml单元所表示的三个顶 层按钮。

表11

这些按钮的id分别是“button_apply”、“button_track”和“button_report”。从所 述代码我们可以看到,所述三个按钮根据其“onClick(点击时触发)”属性都发动相同的功 能,并且被紧密地分组在相同的“LinearLayout”xml单元内。这暗示着其是排他性选择类 型。利用我们的如表1中所示的形式,我们知道这一功能可以利用USSD消息来替代。示例性 的USSD消息可以询问用户“您希望做什么?”并且提供三个选项(其后是针对输入匹配选择 的数字的指令),比如:

1:申请

2:跟踪

3:报告

在MainActivity.Java内部的控制器代码上,我们看到当“申请”按钮被点击时,下 面的代码片段应当被执行。所述代码开始新的活动,其被称作OrganizerActivity。

表12

我们的转换器遵循所述执行路径,并且检查OrganizerActivity.java类内的代 码。我们利用在OrganizerActivity.java内找到的该代码行找到相关联的视图类 setContentView(R.layout.activity_organizer);

当我们检查通过R.layout.activity_organizer所指向的布局xml文件时,正如之 前对于MainActivity那样,我们发现其看起来如下面的代码中所示。

表13

该视图文件表明顶层窗口小部件是“TabHost”。利用我们的GUI窗口小部件分类方 案,我们知道我们具有另一种排他性选择类型,并且可以利用USSD来表示所述选项卡选项。

但是我们在OrganizerActivity控制器类内还可以看到,作为默认情况(或者当选 择第一选项卡时),将执行下面示出的代码。

表14

加载被称作SupportingDocumentsFragment的片断。我们现在检查与该片断相关 联的控制器和视图文件二者。在该片断的控制器类中,我们发现下面示出的代码项,其产生 被称作UserProfileDialogFragment的另一种类型的用户定义的片断。

表15

当我们检查针对该片断的控制器类时,我们看到其利用下面示出的行指向视图代 码文件。

ViewuserProfileView=inflater.inflate(R.layout.fragment_user_ profile.null);

我们随后检查该视图文件,并且看到其看起来如下列代码中所示。表16

利用我们的GUI窗口小部件归类算法,我们对在该用户简档产生屏幕上找到的窗 口小部件如下进行分类。

前两个TextView(文本视图)窗口小部件被解释成标签,这是因为其具有预先设定 的文本。这些标签的文本值被用来构成指令,取决于其所标记的是什么窗口小部件,基本电 话用户通过SMS或者USSD消息来获得所述指令。

第一EditText(编辑文本)窗口小部件被解释成简单文本输入框,并且我们的转换 器注意到其可以利用简单SMS来替代。但是由于我们知道所有这些窗口小部件都是更大的 对话窗口小部件(其实质上是交互式输出窗口小部件)的一部分,因此我们从我们的算法知 道我们可以利用USSD消息来替代所述更大的窗口小部件。

第三TextView与前两个相同,也被解释成标签。

第一微调控制项被解释成排他性选择类型,并且被替代以便使用USSD消息。

最后一个TextView与先前的相同,被解释成标签。

最后的EditText被解释成简单输入,并且可能可以利用简单SMS来替代。但是与第 一EditText窗口小部件相同,我们的转换器理解其属于更大的对话窗口小部件,并且其可 以被并入在更大的USSD交互内。

因此,基于这些替代,可以构成由下面三个节点表示的USSD交互式会话以表示该 UserProfile对话。在所述三个节点当中的第一节点中是叙述和问题“为了定制您的简档, 请回答以下三个问题。您出生在哪一年?”该节点连接到包含以下内容的节点:“请从以下列 表中选择您的原籍,或者输入0以获取更多选项:(1)Baringo;(2)Bomet;(3)Bungoma;(4) Busia;(5)ElgeyoMarakwet;(0)更多选项”。该节点之后是包含以下内容的节点:“您的居 住区域的名称是什么?(Sub-Location、Location或Division)?”在每一个USSD查询节点之 后允许用户输入数据。

基本电话交互图(BPIG)的生成

利用通过前面的实例示出的恢复规程,随后生成示出USSD/SMS交互的集合的图, 所述USSD/SMS交互的集合表示对于整个应用的所支持的功能性。该图被称作基本电话交互 图(BPIG),并且在拓扑方面等效于UI框架图(即修剪SAM)的修剪版本。但是各个节点的内容 可有所不同。

BPIG节点的内容是由交互应对器(这里所描述的IH)使用来产生去往用户基本电 话的消息的指令。所述指令可以由IH使用来实施以下代表性实例当中的任一项:呈现结果 (例如计算或另一操作的结果);从用户请求动作(例如请求数据输入);提供信息消息(例如 关于任务的进展更新);以及提供图像的图形表示(例如图像的ASCII表示或者图像的位图 表示);等等。BPIG节点中的指令还可以包含例如格式化参数等的元数据,尽管这样的元数 据通常仅由IH使用来构造消息,并且将不是消息本身的一部分。

在一些实施例中,例如BPIG节点代表USSD或SMS“框架”(而不是智能电话应用框 架)。也就是说,BPIG节点中的指令可以由IH使用来构造可以被传送给基本电话用户的USSD 或SMS消息。

举例来说,在前面所使用的ID-Sasa应用之后,代表用户简档产生功能的BPIG的一 个分支将包括把允许用户完成该功能的所有USSD消息流合在一起。BPIG的这一部分将表现 为如下。在第一节点中是请求“您希望做什么?输入匹配您的选择的数字:(1)申请;(2)跟 踪;(3)报告”。该节点连接到包含以下内容的节点:“为了定制您的简档,请回答以下三个问 题。您出生在哪一年?”该节点连接到包含以下内容的节点:“请从以下列表中选择您的原 籍,或者输入0以获取更多选项:(1)Baringo;(2)Bomet;(3)Bungoma;(4)Busia;(5)Elgeyo Marakwet;(0)更多选项”。该节点之后是包含以下内容的节点:“您的居住区域的名称是什 么?(Sub-Location、Location或Division)?”

下面示出了用于生成BPIG的算法。

表17

一旦生成BPIG,其就被使用来生成用户仿真器,即在修剪智能电话应用与传入和 外出基本电话用户消息之间的代码组成部分。

BPIG包括机器可读信息,并且通常被存储在服务器上的存储器中。

执行

我们的转换处理中的最终步骤是执行。执行允许基本电话用户访问并且运行经过 转换的智能电话应用。为了实现这一点,经过转换的应用及其相应的源代码的储存库被安 装在外部机器或系统上。为了运行经过转换的应用,产生被称作用户仿真器的附加组件。

用户仿真器是当基本电话用户想要运行经过转换的智能电话应用时负责与基本 电话进行交互的模块。其把用户请求(SMS/USSD消息)封装成输入变量,并且将其作为UI输 入提供到经过修剪的精简功能性智能电话应用的运行实例。此外,其读取经过转换的应用 的结果(UI输出),并且将结果封装在SMS/USSD消息中以便发送回用户的基本电话。SMS/ USSD消息选项被存储在BPIG的节点中,其或者被直接存储或者被存储为被用来产生这样的 消息的指令。

用户仿真器有两个主要模块——i)应用跟踪器(AT)和ii)交互应对器(IH)。AT在 服务器上启动(kickoff)SmartApp(即智能电话应用)的实例。随着应用运行在服务器上, (AT)对应用的相应的修剪SAM和BPIG的参考跟随(尾随(shadow))所述应用。也就是说,AT跟 踪SmartApp的执行,确定SmartApp的执行中的位置,并且确定修剪SAM内的相应的位置(节 点)。AT把修剪SAM中的节点相关到BPIG中的节点,并且AT随后提取包含在所识别出的BPIG 节点内的指令。所提取的指令被传递到交互应对器(参见后文)。修剪SAM被用来确定用户何 时到达具有修剪子节点的屏幕(节点)。一旦用户结束该屏幕,AT将把用户带到终止屏幕,其 用信号表明应用的结束。

交互应对器通过读取由AT参考/提取的BPIG节点中的指令(例如SMS/USSD消息)来 管理基本电话与应用之间的交互。其还读取并且提交从基本电话用户收集的SMS/USSD输 入。

为了实现与正在运行的应用的这一交互,软件模块运行UI测试工具,比如用于 Android应用的robotium或uiautomator。这些工具允许I/O窗口小部件之间的交互。其结果 是,当应用中的屏幕出现时带有需要来自用户的输入的特定窗口小部件时,用户可以发送 其输入,并且IH将通过测试工具向应用发出该输入。此外,可以利用测试工具取回具有针对 用户的信息输出的窗口小部件,并且随后将其包裹在相应的SMS/USSD消息中。

用户仿真器被安装在优选的外部系统(即这里所定义的服务器)上。优选的外部系 统包括一部或多部智能电话、一台或多台服务器以及/或者提供实施该执行的服务的一台 或多台服务器。所述仿真器的组件(AT和IH)包括使得能够实现适当的功能的的服务器上的 适当的机器可读指令。

图3是在用户访问经过转换的应用时与基本电话用户进行交互的示例性用户仿真 器的方块图。应当提到的是,所述仿真器驻留在远程服务器上(也就是说可以驻留在智能电 话、服务器上和/或分布在网络上的设备上)。在图3中,基本电话70提供用户输入71并且接 收来自仿真器80的应用输出72。用户输入71和应用输出72的实例包括SMS和USSD消息。仿真 器80包括交互应对器81和应用跟踪器82。应用跟踪器82参考BPIG83、修剪SAM60和 SmartApp84。

应当认识到,基本电话的屏幕尺寸可以有所不同。因此,在一些实施例中,可以确 定用户的基本电话的屏幕尺寸以便确保ASCII图像或其他格式化消息被适当地格式化。这 样的确定可以通过要求用户输入基本电话型号编号来实现,或者如果仿真器可以识别基本 电话型号的话可以自动确定。在一些实施例中,在对被发送到基本电话的消息进行格式化 时既不确定也不考虑屏幕尺寸。在这样的实施例中,可能方便的做法是假设并且使用最小 屏幕尺寸(其等效于市场上常见的最小屏幕尺寸)。

总而言之,本发明通过以下操作将智能电话应用转换成基本电话应用:(a)智能电 话应用到基本电话交互图的一次性转换,以及(b)产生用户仿真器以便管理基本电话用户 与经过转换的应用之间的交互。

一旦生成用户仿真器代码,则开始使用基本电话应用。所述组件可以被安装在后 端系统上。所述系统的复杂度范围可以是从涉及把转换器和仿真器组件安装在常规智能电 话上的简单设置,一直到涉及其盘被划分成不同的移动操作系统的强力服务器的鲁棒并且 可扩展的设置。

图4示出了其中应用被安装在服务器上的示例性设置,图5则示出了其中后端简单 地是运行由多个基本电话用户共享的应用的智能电话的示例性设置。

参照图4,用户仿真器131是运行在后端服务器130上,并且充当安装在服务器130 的各个移动OS分区(133)上的所有外部通信和应用(1、2、3和4)之间的对话器 (interlocutor)的代码模块。通过促进交互的SMS/USSD网关120,基本电话110能够与用户 仿真器131进行交互。根据本发明的软件150生成用户仿真器131以及智能应用1、2、3和4的 修剪版本,并且智能应用1、2、3和4还被用来产生移动OS和语言关键字的数据库134。服务器 130能够访问因特网140以获得其他输入或应用。

在图5中示出的基于智能电话的设置上,用户仿真器131采取“应用”的形式,其实 质上作为守护程序进程运行。通过促进交互的SMS/USSD网关120,应用132能够运行在基本 电话110上。此外,智能电话130能够访问因特网140,以便获得其他应用或者用于应用132的 其他输入。

在优选实施例中,任一前面的设置的最终组装涉及两个步骤:(1)把修剪智能电话 应用安装在后端系统上;以及(2)在后端系统上安装并且运行用户仿真器。

一旦这一组装完成,基本电话用户现在就可以利用SMS或USSD代码访问应用,并且 发起由应用所有者产生的消息。

在一些实施例中,基本电话用户可以利用这里所描述的方法请求可用的应用列 表。这样的列表可以被编译并且通过SMS或USSD从服务器发送,并且这可以代表基本电话用 户与这里所描述的系统进行交互的处理中的第一步。

这里所描述的术语“基本电话”与本领域内所使用的术语“功能电话(feature phone)”和“傻瓜电话(dumbphone)”同义。此外,这里所使用的“基本电话”意图包括具有受 到很大限制的传送和接收数据的能力或者不具有传送和接收数据的能力的电话。其实例包 括处在具有数据功能的网络(例如2G或3G网络)的范围之外并且只能使用其移动电话功能 性的传统的“智能”电话(或平板设备)。其实例还包括其中移动数据功能性被禁用的“智能” 电话(或平板设备)。

在一些实施例中,本发明的基本电话是被限制到以下I/O和显示功能性(或其任何 子集)的电话:发送SMS或USSD消息;接收SMS或USSD消息;显示一个或多个ASCII字符;生成 噪音;以及记录声音。这样的限制可以是永久性的并且是由于硬件/软件限制而造成的,或 者可以是临时的并且是由于去往数据网络的有限连接性或者不具有去往数据网络的连接 性而造成的。

在一些实施例中,基本电话可以通过几种方式生成SMS消息,除非另行声明,否则 所有这些方式都落在本发明的范围内。举例来说,SMS消息可以直接由用户生成,或者由SIM 应用工具箱(STK)响应于来自用户的输入生成。

除非另行声明,否则这里所使用的“服务器”意图包括能够实施这里所描述的系统 的后端功能性(也就是接收和处理来自基本电话用户的请求,运行智能电话应用,运行应用 跟踪器和交互应对器的仿真器功能,可选地访问互联网等等)的任何固定或移动设备。适合 于用作服务器的设备的实例包括非移动专用计算机、非移动通用计算机以及除了基本电话 之外的其他移动设备(例如智能电话、平板设备等等)。服务器被配置成与基本电话用户进 行交互。举例来说,服务器包含SIM或者去往蜂窝网络的其他连接。

利用本发明的方法和系统,智能电话应用被执行在基本电话上。应当认识到,本上 下文中的术语“执行”意味着在远程服务器上实施智能电话应用的功能,并且从而该功能可 用于基本电话用户。也就是说,智能电话应用不是直接在基本电话的硬件上实施,而是在远 程服务器上实施,并且I/O接口(IH)使得能够在基本电话上看到结果。

本领域技术人员将认识到,本发明的各个方面可以实现为系统、方法或计算机程 序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全 的软件实施方式(包括固件、驻留软件、微代码等),或结合硬件和软件方面的实施方式,这 里可以统称为“电路”、“模块”或“系统”。此外,本发明的各个方面还可以实现为在一个或多 个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程 序代码。

可以利用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机 可读信号介质或计算机可读存储介质。计算机可读存储介质例如可以是而不限于电子、磁 性、光学、电磁、红外或半导体系统、装置或设备,或者前述各项的任何适当的组合。计算机 可读存储介质的更多具体实例(非穷尽列表)将包括以下各项:具有一条或多条连线的电连 接,便携式计算机软盘,硬盘,随机存取存储器(RAM),只读存储器(ROM),可擦写可编程只读 存储器(EPROM或闪存),光纤,便携式紧致盘只读存储器(CDROM),光学存储设备,磁性存储 设备,或者前述各项的任何适当的组合。在本文献的上下文中,计算机可读存储介质可以是 任何有形介质,其可以包含或存储程序以供指令执行系统、装置或设备使用或者与之相结 合地使用。

计算机可读信号介质可以包括例如在基带中或者作为载波一部分传播的数据信 号,其中承载了计算机可读程序代码。这种传播的信号可以采用多种形式,包括但不限于电 磁信号、光信号或上述的任意合适的组合。计算机可读信号介质可以是计算机可读存储介 质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执 行系统、装置或者设备使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无 线、有线、光缆、RF等等,或者上述的任意合适的组合。可以以一种或多种程序设计语言的任 意组合来编写用于执行本发明的各个方面的操作的计算机程序代码,所述程序设计语言包 括面向对象的程序设计语言,诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计 语言,诸如“C”程序设计语言或类似的程序设计语言。程序代码可以完全地在用户计算机上 执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分 在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形 中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计 算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

后面将参照根据本发明的实施例方法、装置(系统)和计算机程序产品的流程图、 规定处理步骤和/或方块图来描述本发明的各个方面。应当理解的是,流程图和/或方块图 的每一个方块、处理步骤和架构特征件、以及流程图和/或方块图中的方块和/或此类步骤 和/或特征件的组合可以通过计算机程序指令来实施。这些计算机程序指令可以被提供到 通用计算机、专用计算机或者其他可编程数据处理装置的处理器从而产生机器,从而使得 通过所述计算机或其他可编程数据处理装置的处理器执行的指令产生用于实施在流程图 和/或方块图中的一个或多个方块中规定的功能/动作的部件。

这些计算机程序指令还可以被存储在计算机可读介质中,其可以指导计算机、其 他可编程数据处理设备或者其他设备按照特定方式运作,从而使得存储在计算机可读介质 中的指令产生包括实施在流程图和/或方块图中的一个或多个方块中规定的功能/动作的 指令的制造产品。所述计算机程序指令还可以被加载到计算机、其他可编程数据处理设备 或者其他设备上,以使得在所述计算机、其他可编程设备或其他设备上实施一系列操作步 骤,从而产生计算机实施的处理,使得在所述计算机或其他可编程设备上执行的指令提供 用于实施在流程图和/或方块图的一个或多个方块中规定的功能/动作的处理。

附图和/或说明书描述中的流程图和方块图示出了根据本发明的各个实施例的系 统、方法和计算机程序产品的可能实现方式的架构、功能性和操作。在这方面,流程图或方 块图中的每一个方块或描述可以代表代码的一个模块、节段或部分,其包括用于实施所规 定的(多项)逻辑功能的一条或多条可执行指令。还应当提到的是,在一些替换实现方式中, 在方块中提到的功能可以按照不同于附图中所提到的顺序发生。举例来说,取决于所涉及 的功能,相继示出的两个方块可以实际上被基本上同时执行,或者所述方块有时可以按照 相反的顺序被执行。还应当提到的是,方块图和/或流程图中的每一个方块以及方块图和/ 或流程图中的方块组合可以通过实施所规定的功能或动作的基于专用硬件的系统或者通 过专用硬件与计算机指令的组合来实施。

在说明书中提到本发明的原理的“一个实施例”或“实施例”以及其他变型时,意味 着结合该实施例所描述的特定特征、结构、特性等等被包括在本发明的原理的至少一个实 施例中。因此,出现在说明书中的各处的短语“在一个实施例中”或者“在实施例中”以及任 何其他变型的出现不一定全都指代相同的实施例。

应当认识到,例如在“A/B”、“A和/或B”以及“A和B的至少其中之一”的情况中,在使 用“/”、“和/或”以及“至少其中之一”当中的任一项时意图涵盖仅选择所列出的第一选项 (A),或者仅选择所列出的第二选项(B),或者选择全部两个选项(A和B)。作为另一个实例, 在“A、B和/或C”以及“A、B和C的至少其中之一”的情况中,这样的措辞意图涵盖仅选择所列 出的第一选项(A),或者仅选择所列出的第二选项(B),或者仅选择所列出的第三选项(C), 或者仅选择所列出的第一和第二选项(A和B),或者仅选择所列出的第一和第三选项(A和 C),或者仅选择所列出的第二和第三选项(B和C),或者选择全部三个选项(A和B和C)。本领 域和相关领域的技术人员很容易认识到,这可以被扩展到所列出的任意数目的项目。

应当理解的是,虽然前面结合其优选的具体实施例描述了本发明,但是前面的描 述意图说明而非限制本发明的范围。本领域技术人员将理解的是,在不背离本发明的范围 的情况下可以做出多种改变并且可以替代等效方案,此外,本发明所属领域的技术人员还 将认识到其他方面、优点和修改。还应当理解的是,这里所使用的术语仅仅是用于描述特定 实施例的目的,而不意图作出限制。这里所描述的实施例的任何组合都意图作为本发明的 一部分,就如同在本公开内容中具体阐述了这样的组合一样。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号