CN101606400A - 交互系统和过程 - Google Patents

交互系统和过程 Download PDF

Info

Publication number
CN101606400A
CN101606400A CNA200780038721XA CN200780038721A CN101606400A CN 101606400 A CN101606400 A CN 101606400A CN A200780038721X A CNA200780038721X A CN A200780038721XA CN 200780038721 A CN200780038721 A CN 200780038721A CN 101606400 A CN101606400 A CN 101606400A
Authority
CN
China
Prior art keywords
message
instruction
subscriber equipment
user
mobile subscriber
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA200780038721XA
Other languages
English (en)
Other versions
CN101606400B (zh
Inventor
D·A·恩戈
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jiemange Ipr Co ltd
Original Assignee
DELOITTE SERVICES Pty Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from AU2006905829A external-priority patent/AU2006905829A0/en
Application filed by DELOITTE SERVICES Pty Ltd filed Critical DELOITTE SERVICES Pty Ltd
Publication of CN101606400A publication Critical patent/CN101606400A/zh
Application granted granted Critical
Publication of CN101606400B publication Critical patent/CN101606400B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/42136Administration or customisation of services
    • H04M3/42178Administration or customisation of services by downloading data to substation equipment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • H04W12/041Key generation or derivation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/22Processing or transfer of terminal data, e.g. status or physical capabilities
    • H04W8/24Transfer of terminal data
    • H04W8/245Transfer of terminal data from a network towards a terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72406User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by software upgrading or downloading
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2203/00Aspects of automatic or semi-automatic exchanges
    • H04M2203/05Aspects of automatic or semi-automatic exchanges related to OAM&P
    • H04M2203/052Aspects of automatic or semi-automatic exchanges related to OAM&P software update
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2203/00Aspects of automatic or semi-automatic exchanges
    • H04M2203/05Aspects of automatic or semi-automatic exchanges related to OAM&P
    • H04M2203/053Aspects of automatic or semi-automatic exchanges related to OAM&P remote terminal provisioning, e.g. of applets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/18Information format or content conversion, e.g. adaptation by the network of the transmitted or received information for the purpose of wireless delivery to users or terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Telephonic Communication Services (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

公开了一种向连接到网络(110)的移动用户设备(106)递送指令(206)的方法。所述方法包括以下步骤:接收交互工作流(202),将所述交互工作流转换至由所述移动用户设备(106)可执行形式的所述指令(206);以及向所述移动用户设备(106)发送包括所述指令(206)的消息(208)。

Description

交互系统和过程
技术领域
本发明总体涉及向连接至网络的移动用户设备递送指令的方法。
背景技术
在当今可用的各种类型的便携式电子设备中,移动电话已经变得尤其普及,其普及性高于因特网的两倍。这些设备在功能方面发展迅速,并且其功能可能远远不止语音和SMS。非常期望使用这些功能来递送并执行应用(其中这些应用对移动电话和其他设备提供可定制交互),但是由于在市场上存在很大程度上不兼容的各种类型的设备和平台,这一直是一项挑战性的工作。
移动电话的最多交互应用包括:短消息服务(SMS)或者解决特定业务需求的专用应用开发。SMS交互性面临贫乏的可用性(用户必须熟悉特殊命令)以及安全性问题(SMS源地址可能是伪造的),由此将移动电话的使用限制为简单、不敏感的事务。此外,希望使用SMS来与其客户进行交互的组织需要前往电信提供商的某些商业设施以便建立计费过程等。这对于组织来说可能是不方便的,并且还可能非常昂贵,不但要建立而且还要在持续的基础上进行操作。
专用应用通过开发由移动设备执行的程序代码以执行特定任务,来尝试解决这些缺点。至少因为来自不同制造商的移动电话通常不是二进制兼容的,并且不能执行相同的可执行应用,进行上述开发需要大量时间。另外,这些应用受限于在开发时所需的功能性,并因此可能不支持对该功能性的添加或修改。应该理解,对这些应用区分变化是类似于非常枯燥的处理,通常需要用户手工下载并在其电话上安装更新版本的应用。
发明内容
根据本发明的一个方面,提供了一种向连接到网络的用户设备上安装的应用递送指令的方法,所述方法包括以下步骤:
接收交互工作流;
将所述交互工作流转换至由所述应用可执行形式的所述指令;以及
向所述移动用户设备处的所述应用发送包括所述指令的消息。
根据本发明的另一方面,提供了一种向连接到网络的移动用户设备递送指令的方法,所述方法包括以下步骤:
接收交互工作流;
将所述交互工作流转换至由所述移动用户设备可执行形式的所述指令;以及
向所述移动用户设备发送包括所述指令的消息。
根据本发明的另一方面,提供了一种包括用于向连接到网络的移动用户设备递送指令的可执行指示的计算机软件,所述指示包括以下步骤:
接收交互工作流;
将所述交互工作流转换至由所述移动用户设备可执行形式的所述指令;以及
向所述移动用户设备发送包括所述指令的消息。
优选的是,接收所述交互工作流的步骤包括以下步骤:接收以高级编程或者脚本语言编码的所述交互工作流。更优选的是,接收所述交互工作流的步骤包括以下步骤:从外部或者第三方接收所述交互工作流。
优选的是,发送所述消息的步骤包括以下步骤:发送用于在所述移动用户设备上安装的应用执行的指令集。更优选的是,发送所述指令集的步骤包括以下步骤:发送用于所述设备的所述指令集,以便与所述移动用户设备的用户进行交互。
优选的是,所述移动用户设备是多个移动用户设备中的一个,以及所述方法还包括以下步骤:从包括用于所述多个用户设备的各自规格的数据库中接收所述移动用户设备的规格。
优选的是,转换所述交互工作流的步骤包括:使所述指令适应所述规格。
优选的是,转换所述交互工作流的步骤包括:是所述指令适应设备操作系统。
优选的是,发送所述消息的步骤包括以下步骤:发送唯一消息标识符。更优选的是,发送所述消息的步骤包括以下一个或者多个预备步骤:对所述指令进行压缩、编码和加密。
优选的是,发送所述消息的步骤包括以下步骤:经由蜂窝网络的短消息服务(SMS)发送所述消息。更优选的是,经由SMS发送所述消息的步骤包括以下步骤:将所述消息划分成为多个消息以便满足SMS的一个或者多个标准。备选的是,发送所述消息的步骤包括以下一个或者多个步骤:经由蜂窝网络的小区广播服务(CBS)来发送所述消息,作为通过GPRS或者3G网络的IP/TCP数据分组来发送所述消息,以及作为通过蓝牙连接的数据分组来发送所述消息。
优选的是,所述方法进一步包括以下步骤:所述移动用户设备接收所述指令集以及所述唯一消息标识符。更优选的是,所述移动用户设备接收所述指令集以及所述唯一消息标识符的步骤包括以下步骤:接收所述指令集,用于由所述应用的工作流执行引擎组件转换至移动用户设备系统代码。
优选的是,所述方法进一步包括从所述移动用户设备接收对于所述指令的响应的步骤。更优选的是,接收响应的步骤包括以下步骤:从所述设备接收响应标识符。更加优选的是,所述方法包括以下步骤:将所述唯一消息标识符与所述响应标识符进行比较,以确认接收到的消息的真实性。
优选的是,所述方法包括以下步骤:检查所述移动用户设备是否希望从所述外部或者第三方接收从所述交互工作流获取的所述指令。更优选的是,所述方法包括以下步骤:向所述移动用户设备的所述用户发送所述请求,以便从所述外部或者第三方接受从所述交互工作流获取的所述指令。
优选的是,接收所述交互工作流的步骤包括以下预备步骤:从所述外部或者第三方来接收针对应用编程接口的请求。更优选的是,接收针对应用编程接口的请求的步骤是从所述外部或者第三方接收。更为优选的是,接收所述交互工作流的步骤包括以下预备步骤:打开应用编程接口。
优选的是,所述方法还包括以下步骤:向所述设备发出命令以便更新或者删除保存在所述移动用户设备上的永久性数据存储设备的指令序列。
根据本发明,还提供了一种由计算机系统或者设备执行的交互过程,所述过程包括::
接收一个或者多个SMS消息,所述SMS消息包括表示用于在所述系统或者设备上执行的一个或者多个指令以便确定信息的指令数据;
执行所述一个或者多个指令以便确定所述信息;以及
发送包括表示所述信息的响应数据的一个或者多个SMS消息。
有利的是,所述信息可以包括从所述系统或者设备确定的系统信息和/或从所述系统或者设备的用户确定的用户信息。
优选的是,所述执行导致在所述系统或者设备的显示器上生成交互用户接口,以及所述过程包括:响应于所述交互显示而从所述系统或者设备的用户接收表示所述信息的响应数据。
优选的是,所述一个或者多个指令由所述系统或者设备的虚拟机执行。
本发明还提供了一种用于系统或者设备的应用组件,所述应用组件包括:
消息接收器,用于处理一个或者多个接收到的SMS消息以便生成一个或者多个指令用于在所述设备上执行以确定信息;
执行组件,用于执行所述应用数据的所述一个或者多个指令以便确定所述信息;以及
消息发送器,用于生成包括表示所述信息的响应数据的一个或者多个SMS消息。
优选的是,所述应用组件进一步包括:数据管理组件,用于在非易失性存储装置上存储指令集,以及用于获取所存储的指令集中选出的一个用于执行。
优选的是,所述执行组件适用于生成用于所述系统或者设备的用户的交互显示,以及适用于响应于所述交互显示而从所述系统或者设备的用户接收表示所述信息的响应数据。
本发明还提供了一种用于由系统或者设备执行的交互过程,包括:
接收包括报头数据以及已加密净载荷数据的消息数据;
基于所述报头数据来选择多个加密密钥中的一个;以及
使用所选择的加密密钥来解密所述净载荷数据。
优选的是,所述报头数据包括表示所述多个加密密钥的索引的索引数据。
有利的是,所述净载荷数据可以表示用于在所述系统或者设备上执行以确定信息的一个或者多个指令。
有利的是,所述净载荷数据可以表示响应于在远程系统或者设备上执行一个或者多个指令的信息。
本发明还提供了一种用于由系统或者设备执行的交互过程,包括:
生成用于发送至远程系统或者设备的净载荷数据;
选择多个加密密钥中的一个;
使用所选择的加密密钥来加密所述净载荷数据;
生成用于发送至所述远程系统或者设备的消息数据,所述消息数据包括报头数据以及已加密的净载荷数据,其中所述报头数据包括表示针对所述多个加密密钥的索引,以便允许所述远程系统或者设备来确定所选择的加密密钥,以及由此解密所述净载荷数据。
有利的是,所述净载荷数据可以表示用于在所述远程系统或者设备上执行以便确定信息的一个或者多个指令。
有利的是,所述净载荷数据可以表示响应于执行一个或者多个指令的信息。
优选的是,所述过程包括生成所述多个加密密钥以及向所述远程系统或者设备发送所述多个加密密钥。
优选的是,所述过程包括将所述多个加密密钥与所述远程系统或者设备的标识符相关联。
本发明还提供了一种交互过程,包括:
接收用于在远程系统或者设备上生成交互显示的编程指令;
编译所述编程指令以便生成已编译的指令数据;
向所述远程系统或者设备发送所述已编译指令数据,以便在所述第二远程系统或者设备上生成交互显示;
接收表示对于所述交互显示的至少一个用户响应的响应数据;以及
发送表示所述至少一个用户响应的响应数据。
本发明还提供了一种交互过程,包括:
从多个实体接收工作流指令;
处理所述工作流指令以生成用于在多个用户设备上执行的交互应用;以及
向所述用户设备发送所述交互应用用于执行。
优选的是,使用短消息服务(SMS)向所述用户设备发送所述交互应用。
优选的是,所述用户设备包括移动电话。
本发明还提供了一种用于管理与远程系统和/或设备的用户进行交互的交互系统,所述交互系统适用于:
从多个实体接收工作流指令;
处理所述工作流指令以生成用于在多个用户设备上执行的交互应用;以及
向所述用户设备发送所述交互应用用于执行。
本发明还提供了一种具有执行上述任一过程的组件的系统。
本发明还提供了一种计算机可读存储介质,其上存储有用于执行上述任一过程的程序指令。
本发明还提供了一种交互系统,包括:
网关组件,用于处理已接收的工作流数据,以生成用于在用户设备上生成交互显示的指令,所述网关组件适用于向所述用户设备发送所述指令用于执行;以及
所述用户设备的执行组件,用于接收和执行所述指令以生成所述交互显示,用于接收表示所述用户对所述交互显示的至少一个响应的响应数据;以及用于向所述网关组件发送所述响应数据。
优选的是,所述用户设备是移动电话。
有利的是,可以在一个或者多个SMS消息中将所述指令发送至所述网关组件。
有利的是,可以在一个或者多个SMS消息中将所述用户响应数据发送至所述用户设备。
附图说明
参考附图,在下文中仅通过示例方式描述了本发明的优选实施方式,在附图中:
图1是交互系统的优选实施方式的示意图;
图2是交互系统的交互过程的高级过程和数据流的示意图;
图3是其上安装了交互系统的客户端应用的移动电话的框图;
图4是交互系统的客户端应用的框图;
图5是由交互过程和系统生成的交互应用的生命周期的流程图;
图6是交互系统的应用网关的框图;
图7是其上安装了应用网关的计算机系统的框图;
图8是交互系统的选择加入(opt-in)过程的过程以及数据流的示意图;
图9是示出在客户端应用和应用网关之间建立加密通信信道的加密密钥集使用的示意图;
图10是在客户端应用和应用网关之间执行安全通信中所涉及过程和数据流的示意图;
图11是示出交互系统和过程的默认行为的示意图,其中特定应用网关向特定客户端应用发送指令,以及向发送该指令的同一应用网关返回结果响应数据;
图12是类似于图11的示意图,然而示出了从发送相应指令的应用网关到不同应用网关的响应数据重定向;
图13是示出在应用网关和客户端应用之间交换的消息结构的示意图;
图14是示出图13中所示消息的净载荷数据的结构的示意图;
图15是示出图14的净载荷数据的每个数据部分的结构的示意图;
图16是示出由交互系统和过程支持的十五种不同类型的指令的示意图;
图17是示出由交互系统和过程生成的SMS消息的结构的示意图;
图18是示出交互系统如何使用多个SMS消息来发送指令的示意图,所述指令构成长度大于133字节的应用;
图19是系统的SMS发送过程的流程图;
图20是系统的SMS接收过程的流程图;
图21是由系统执行引擎执行的应用执行过程的流程图;
图22是示出从客户端应用发送至应用网关的响应数据的结构的示意图;
图23是示出系统如何使用在指令中提供的参数名称来标记相应的响应的示意图;
图24是示出客户端应用中的执行分支的示意图;
图25是示出使用分支域来标记具有相同参数名称的响应的示意图;
图26是示出使用分支名称栈来确定控制流的示意图;
图27是示出从交互应用选择不同分支而导致的用户界面组件的示意图;
图28是示出在每个用户界面显示器上包括“返回”按钮的示意图;
图29是示出使用执行指令栈来实现图28的“返回”按钮的示意图;
图30是用于输入脚本语言指令和用于向应用网关的指令编译器发送这些指令的应用网关的用户界面的截屏;
图31是可以如何使用系统API来向移动电话发送预订细节以向用户显示以及接收用户响应的源代码列表,其中所述用户响应指示用户接受或者拒绝该预订;
图32了脚本语言应用的一部分列表,其中示出了脚本语言中控制流分支的使用;
图33是示出从图32的脚本语言示例生成的用户界面组件的示意图;
图34是由系统生成的内嵌用户界面显示的使用的示意图;
图35和图36是示出由系统生成的一般用户界面显示的外观和结构的示意图;
图37是由系统生成的滑块控制显示的示意图;
图38是由系统生成的用户界面显示中的一个以及多个选项的使用的示意图;以及
图39是示出如何使用内嵌菜单的分支名称来标记参数数据的示意图。
具体实施方式
如图1中所示,交互系统包括至少一个客户端应用102以及至少一个应用网关104。每个客户端应用102是相应用户设备106的组件,其可以经由由设备106支持的各种通信手段中的一个或者多个来与至少一个应用网关104进行通信,通信手段优选地包括以下的结合:(i)基于IP的通信网络108,诸如因特网;(ii)无线广域通信网络,诸如全球移动通信系统(GSM)电话网络;(iii)在设备106和至少一个应用网关104之间的本地无线网络或链路,诸如红外链路、Wi-Fi或者蓝牙网络112;和/或(iv)使用标准通信协议的直接线缆连接114,所述标准通信协议诸如RS-232、通用串行总线(USB)或者火线(IEEE 1394)。交互系统允许使用标准计算机系统118的应用开发者116来快速开发并且部署交互工作流或应用,以用于在一个或者多个用户设备106上执行,从而与设备106的用户120进行交互,以及将表示每个用户120的至少一个响应的响应数据接收到交互应用。
交互工作流或者应用包括指令集,该指令集用于在交互显示器或者用户界面中向每个移动设备106的用户120呈现信息,并且用于获取每个用户对该信息的响应。通常,向用户120呈现的信息将包括在用户设备106的显示屏上显示的一个或者多个问题(以及还可能包括在设备106的声音转换器上播放的音频),并且通过用户与一个或者多个用户界面(UI)组件或者交互显示器的输入控制进行交互,来提供每个用户响应。每个响应可以是以输入至文本框中的自由文本形式、或者是用户与其他类型输入控制进行交互的结果,诸如单选按钮、复选框、滑块、简单菜单、内嵌菜单等。在某些程度上,这些可能性由设备106的功能来确定。然而,因为由系统支持的工作流还包括类似于由高级编程语言提供的控制流特征,由系统生成的工作流指令还认为构成在用户设备106上执行的交互软件应用。
在所述实施方式中,用户设备106是移动电话,然而备选的是,用户设备106可以是某些其他类型的便携式或者手持式设备,诸如个人数字助理(PDA),并且由此在下文中可以将其称为“移动设备106”。然而,即使将设备106描述为“移动式”或者“便携式”,本领域技术人员应该理解,备选的是,在此描述的系统和过程可以与其他类型的设备和系统相结合使用,即使这些设备和系统不需要是便携式的。例如,甚至可以将客户端应用102安装在标准个人计算机系统(而不是便携设备106)上,以便例如将交互应用快速开发和递送至标准个人计算机。
在所述实施方式中,客户端应用102是存储在移动设备106上的软件应用,或者作为设备制造的一部分,或者作为销售之前的配置,或者按照需要在后续经由GPRS、蓝牙、红外或者电话专用信道(例如,数据线缆)来部署,允许将客户端应用102安装在各种不同类型的设备上。然而,本领域技术人员应该理解,备选的是,例如客户端应用102及其过程可以由一个或者多个专用硬件组件来以部分或者全部形式实现,所述专用硬件组件诸如专用集成电路(ASIC)或者现场可编程门阵列(FPGA)。
类似地,应用网关104是安装在标准计算机系统122上并由其执行的软件应用,所述标准计算机系统122诸如执行WindowsTM操作系统的IntelTM IA-32计算机服务器。计算机系统122包括标准硬件组件702以及软件组件704。硬件组件702包括:至少一个处理器706、通信接口(例如,网络接口卡)708、随机存取存储器710、非易失性(例如,硬盘存储设备)712、用户输入设备(例如,键盘、鼠标或者其他指示设备)714、以及显示器适配器和设备716,所有这些均由系统总线720来进行互联。软件组件704包括应用网关104以及诸如Microsoft Windows的标准操作系统718。另外,如所示出,附加地或者备选地,如安装在开发者计算机118上所示,第三方应用124可以安装在应用网关104其自身所定位的相同计算机系统122上。然而,尽管应用网关104描述为软件应用,本领域技术人员应该理解,备选的是,例如应用网关104及其过程可以部分或者全部地由一个或者多个专用硬件组件来实现,所述专用硬件组件诸如专用集成电路(ASIC)或者现场可编程门阵列(FPGA)。
客户端应用102:
(i)验证由应用网关104发送的指令集;
(ii)解译这些指令;
(iii)根据指令集来与用户设备106和/或用户120进行交互;以及
(iv)向网关104或者其他计算机系统或者设备发回响应。
应用网管104有效地是后端组件:
(i)维护交互系统的用户设备(即,其上已经安装有客户端应用102的设备)的数据库;
(ii)经由广泛通信信道中的任何一种来生成并向移动设备106递送交互应用;
(iii)确保去往或来自移动设备106的出站和入站消息的完整性和真实性;以及
(iv)提供应用编程接口(API)以允许第三方应用124对移动设备106部署交互应用,以及接收由移动设备106上的客户端应用102生成的相应响应。
图2是示出与图1中所示各种组件相关的系统的交互过程的高级操作的示意图。在步骤202处,在开发者的计算机系统118上(或者备选的是,在网关计算机系统122上)执行的外部或者第三方应用204调用应用网关104的API 616来描述设备106的开发者希望部署的工作流。通常,工作流包括向用户显示信息的步骤,以及然后接收对该信息的至少一个响应的步骤。例如,典型的工作流可以是在移动设备106上显示消息,要求用户输入其年龄,继而显示另一消息,以及将年龄发送回开发者。这些步骤或者指示构成用于在移动设备106上执行的交互应用。
工作流定义:
(i)各用户设备106的一个或者多个地址;
(ii)将要在一个或者多个用户设备106上执行的步骤;
(iii)将要向其发送响应的备选网关服务器104(如果存在)的地址;如果没有给出地址,则将响应发送至发送了应用指令的相同网关服务器104;
(iv)应该如何处理返回至应用网关的响应数据(例如,返回至开发者的应用124,通过电子邮件、存储在文件中等来发送至开发者116);以及
(v)将要用于向用户设备106发送指令以及接收相应的响应数据的通信方法。
在步骤206处,应用网关104将由开发者描述的工作流转换成为已压缩、已编码并且已加密的格式,用于发送至移动设备106。应用网关104还向消息中插入唯一标识符或者ID,并且存储将该ID与将要向其发送工作流的目的地(例如,电话号码或者网络地址)相关联的数据。
应用网关104转换消息,从而其可以经由适当的通信装置进行发送。例如,如果经由SMS发送消息,则应用网关106将大的消息划分成为较小的消息,以便符合GSM标准。所有这些对于开发者都是隐藏的。在步骤208处,应用网关104继而将消息发送至由开发者指定的设备106。
在步骤210处,客户端应用102接收、解压并且解密消息,由此验证其完整性。如果有效,则在步骤212处,客户端应用102将中断用户,并且请求用户完成该工作流。通过用户协作,客户端应用102中断每个指令,并且执行相应的操作,例如,显示消息、采集用户年龄等,在大多数情况下均涉及与设备106的用户进行交互。
在工作流结束处,客户端应用102经由由应用网关104在工作流指令中指定的响应信道,来向应用网关104发送回所采集的全部响应数据。例如,如果将要经由SMS来返回响应,则将响应SMS发送回在初始消息中提供的电话号码。客户端应用102还加密响应消息,并且包括唯一消息ID以便确保响应的真实性。
当应用网关104在步骤216处接收响应消息时,其解密消息并且使用先前存储的目的地和ID关联来确定消息的ID对于接收该消息所来自的电话号码是否有效。如果该消息有效,则将其按照由开发者所指定的方式进行处理,例如,将其传送至第三方应用、向开发者发送电子邮件、将其存储在文件中,等等。
除上文以外,交互系统还提供以下功能:(i)存储(以及随后更新)指令集作为存储在用户设备106的非易失性存储设备上的永久或者半永久应用用于在任何时间执行;即,应用持续驻留在用户设备上;(ii)分发加密密钥;以及(iii)选择加入机制用以确保移动设备106不发送未经请求的应用,即,在应用网关104被多个卖方共享的情况下。
在下文中详细描述交互系统以及由交互系统执行的交互过程。
如图3中所示,移动设备106是标准移动电话,包括硬件组件302以及软件组件304。硬件组件302包括:处理器306、只读存储器308、随机存取存储器310、闪存312、用户接口组件以及一个或者多个通信接口318,其中用户接口组件包括:用户输入组件314(例如,麦克风、键盘以及在一些设备中的触摸屏)、输出组件316(例如,显示屏、扬声器),其中通信接口318允许设备106与移动电话网络110进行通信,并且在某些设备中还包括:蓝牙和/或Wi-Fi局域无线网络或者红外链路112。在移动设备106是电话的优选情况下,设备106还包括SIM卡320。软件组件包括操作系统322,诸如,在例如Nokia和Motorola品牌旗下的移动电话上安装的封闭的、专有的操作系统、Java平台Micro版本(Java ME)324以及客户端应用102。然而,如果操作系统322是更为复杂的操作系统,诸如Symbian、Linux、Microsoft SmartPhone、PocketPC、Windows CE或者Windows Mobile,其中这种更为复杂的操作系统提供充分强大的应用编程接口(API),则可以省略J2ME组件324。如图4中所示,客户端应用102包括:消息发送器组件402、消息接收器组件404、用户界面(UI)窗口406、工作流执行引擎408、即时数据存储设备410以及永久数据存储设备412。客户端应用102是由移动设备106执行的本地应用。可以以多种方式中的任何一种来安装客户端应用102,包括:WAP推送、IP数据分组(GPRS或者3G网络)、蓝牙、红外、或者诸如数据线缆的电话专用信道。客户端应用102可以作为在购买时已经安装在移动电话106上的预安装应用来提供。
消息发送器608以应用网关104理解的格式来向应用网关104发送响应消息。消息发送器608加密消息并且包括由初始应用提供的ID以确认真实性。
消息接收器606将从应用网关104接收的指令集进行解密并且解压缩。该消息接收器606经由以下多种信道来实现消息接收,包括:蓝牙、红外、IP网络(GPRS或者3G)以及SMS。消息接收器606还调用工作流执行引擎408来处理指令集。
UI窗口406是预建立的用户接口组件,由应用网关104发送的指令可用其与用户进行交互。
工作流执行引擎408负责运行并维护当前正在被处理的指令的状态。工作流执行引擎408将指令与UI窗口相关联,以及存储来自设备106及其用户的输入。工作流执行引擎408还负责在一旦工作流完成时调用消息发送器402以发起向应用网关104发送响应。如果要求在特定时间运行指令,则还可以由定时器来调用工作流执行。
客户端应用102可以在任何一个时间同时接收多个工作流应用,并且有效的是,即时数据存储设备410是先入先出队列,该队列存储这些应用,并且逐个处理这些应用,直到即时数据存储设备410为空。
交互系统能够将移动设备106上持久驻留的指令序列作为应用。这些序列由唯一标记来标识,并且存储在永久数据存储设备412中,在此实施方式中是非易失性闪存312。应用网关104可以发出命令以便更新或者删除永久数据存储设备412中的应用。
图5是示出了在从应用网关104接收指令之后的客户端应用102执行实例的生命周期的流程图。然而,可以通过新的数据事件或者定时器事件来在步骤502处调用客户端应用102。当接收到寻址至客户端应用102的新的净载荷数据时,由移动设备106来激活客户端应用102,此时发生新的数据事件。定时器事件由特定指令来设置,该特定指令将指令执行挂起至较晚的日期/时间。工作流引擎408负责调度客户端应用102,以便在该日期/时间来开始和处理指令集。
一旦被调用,则在步骤504处通过以下方式获取指令序列:在定时器事件的情况下,从即时数据存储设备410中读取数据;或者在新数据事件的情况下,从输入信道获取。如果从输入信道获取指令数据并且将其加密,则在步骤506处,客户端应用102将其解密并且按如下所述方式进行验证。如果数据有效,则在步骤508处开始工作流执行。
工作流执行508逐步处理指令。这可以包括用户交互也可以不包括用户交互(如,可以在没有用户交互的情况下处理附录中所述的某些指令)。一旦执行指定将执行延迟至较晚时间的定时器指令,则工作流应用的其他指令执行将被挂起,并且将指令集存储并放置在即时数据存储设备410中,挂起以便在指定时间继续。
一旦工作流执行508完成,则从即时数据存储设备410中去除工作流应用。如果应用被标记为持久的,则将指令集保存至永久数据存储设备412。用户继而可以在任何时间调用指令集。
在步骤510处,将由工作流执行508采集的信息作为响应数据而发送回应用网关104。客户端应用102加密响应数据,并且另外包括验证响应数据真实性的唯一消息ID。
如图6中所示,应用网关104包括:指令编译器602、密钥管理器604、消息接收器606、消息发送器608、选择加入管理器610、持久存储设备612以及应用编程接口(API)616。
指令编译器602将从开发者116接收的工作流描述翻译成为经优化用于递送至客户端应用102并由客户端应用102执行的格式。工作流描述以脚本语言的形式编写,其由指令编译器602来编译。开发者可以将工作流描述直接输入至文本框,并且将其内容发送至编译器602。通常,这是用以快速将工作流应用的外观和感觉原型化的方式。备选的是,可以通过以高级编程语言向编译器602进行API呼叫来提交工作流描述,由此提供端对端的应用集成,所述高级编程语言诸如,C#、Java或者TCL。
消息发送器608加密工作流指令集。加密依赖于请求密钥管理器604来提供随机索引和加密密钥,其对于将要在其上执行指令的特定用户设备106是专用的。以明文方式向客户端应用102发送索引,客户端应用102使用索引来查找适合于译解消息的适当加密密钥。消息发送器608还生成用于工作流应用的唯一随机标识符。该随机标识符是随机标识符以及发送了工作流描述的一方的标识符的组合。
消息发送器608使用传输适配器614来递送包含工作流应用的实际消息。消息发送器608首先利用可选加入管理器610来进行检查,以便确保客户端应用102没有接收到其没有选择加入的未经请求的应用,这如下文所述。
传输适配器614提取递送指令集的各种方法到移动设备106上的客户端应用102。传输适配器614使用持久存储设备612中存储的设备功能信息来确定设备106的功能,并且由此确定递送消息的最佳通信信道。
传输适配器614通过提供一组消息发送API、并且通过允许动态装载实现新消息发送接口的已编译代码,来对新的信道类型动态地提供插件支持。如果需要,则传输适配器614将指令净载荷重定格式,从而其可以经由特定信道来进行递送。尤其是,由于SMS消息大小的限制,由SMS递送的应用可能必须被划分成为两个或者更多的较小消息。
密钥管理器604负责生成、分发和管理对便携设备106发出的加密密钥,如下文详述。密钥管理器604还针对消息发送器608以及消息接收器606来提供加密和解密便利。
选择加入管理器610提供选择加入、选择退出过程,以便允许客户端应用102选择他们希望从其接收指令集的实体。这是理想的,因为应用网关104可以由多方共享,并且客户端应用102将另外执行所接收到的任何指令集,只要其是有效的。选择加入管理器610在持久数据存储设备612中维护各方与他们允许向其发送应用的电话号码(或者,在电话以外设备的情况下,是目的地设备的其他形式的地址或者标识符)之间的关联。用于创建这些关联的过程可以是动态的,以便允许用户选择性地阻止或者允许来自特定方的指令。例如,图8是出了选择加入过程的消息流。
在步骤802处,一方使用在计算机系统118上执行的外部应用124,来向应用网关104发送工作流描述,应用网关104在步骤804处对指令进行编译和格式化,以便准备将其发送至还没有选择加入的客户端应用102。在步骤806处,消息发送器608首先检查客户端应用102是否已经选择加入。如果没有,则在步骤808处,消息发送器608询问选择加入管理器610来确定用于这一方和这一用户设备的选择加入状态。在步骤810处,选择加入管理器610向用户发送选择加入请求消息,询问其是否同意从这一方接收应用。如果响应为“是”,则在步骤812处,选择加入管理器610将此信息存储在持久数据存储设备612中,继而在步骤814中,指示消息发送器608来在步骤816处发送指令集。否则,如果响应为“否”,则消息发送器608放弃,并且在步骤818处通知该方用户没有选择加入。
备选的是,可以手工执行选择加入过程,例如通过使用支持用户直接向持久数据存储设备612添加条目的形式。备选的是,可以使用模拟过程来从特定方中选择退出接收应用。
消息接收器606从客户端应用102接收消息,并且与传输适配器614进行通信,以便经由任何支持的传输信道和协议(包括:GPRS、IP网络、蓝牙以及SMS)来接收响应。例如,交互系统的指令集允许通过一个物理信道/协议(例如,SMS)来接收指令,以及通过另一物理信道/协议(例如,蓝牙)来递送相应的响应。
当接收到消息时,消息接收器606首先为审计目的而将消息记录日志。继而,通过使用密钥管理器604译解消息来检查消息的真实性,并且检查唯一消息ID和该方的ID,以便确认其匹配于发出的内容。
一旦建立了消息真实性,则出于计费和审计目的而将消息接收记录日志。最后,按照该方的需要来处理响应消息。这可以包括:向该方发送电子邮件;记录日志到文件中以备该方采集;和/或请求第三方应用处理该消息。当调用API时,可以指定用于处理响应消息的实际方法。如果API调用没有指定处理方法,则使用在开发者与交互系统的提供者建立账户时确定的、为相应开发者配置的默认方法来处理响应。
持久存储设备612是由以下装置使用的非易失性存储组件:
(i)由密钥管理器604使用,以便存储用于各种移动设备的加密密钥;
(ii)由消息发送器608使用,以便存储用户设备106的地址(例如,在设备106是电话的情况下,是电话号码)以及每个用户设备106支持的递送机制。出于确认目的,其还存储已经发出的消息的标识符;
(iii)由消息接收器606使用,以便出于审计和计费目的而存储所接收的消息;以及
(iv)由选择加入管理器610使用,以便存储表示每个用户设备106的选择加入数据以及被授权向每个用户设备106发送指令的第三方应用。
加密密钥
如上所述,通过唯一客户端标识符(在此还称作客户端ID号)来标识在用户设备106上安装的客户端应用102的每个实例,该唯一客户端标识符与其电话号码相关联。当首先在移动设备106上安装客户端应用102时,生成多个私有加密密钥并且与客户端ID相关联。
如图9中示意示出,继而通过客户端应用102使用这些加密密钥来认证净载荷数据并且加密响应数据。对于每个净载荷或者响应数据分组或者消息,在净载荷报头中指示适当加密密钥的索引。
图10是示出用于在客户端应用102和应用网关或者后端系统104上生成和更新加密密钥的消息和过程流的示意图。由客户端应用102发起过程,在步骤902处向应用网关104发出安全通信激活请求。作为响应,应用网关104生成并且存储一组私有加密密钥,并且在步骤904处将它们与客户端ID相关联。在步骤906处,应用网关104将这些新近生成的私钥发送至客户端应用102。在步骤908处,客户端应用102在持久存储设备412上存储接收的私钥,并且在步骤910处向应用网关104返回应答,确认已经存储了私钥(或者在先前已经存储了密钥的情况下,是已经被更新)。这就完成了生成/更新步骤,并且在步骤912处激活安全通信。这包括使用一个私有加密密钥来将消息净载荷进行加密,可以在步骤914处随机或者基于任何其他基础而选择该私有加密密钥。在步骤916处,向客户端应用102发送利用所选择密钥加密的安全净载荷以及消息报头,该消息报头指定所选择加密密钥的索引。在步骤918处,客户端应用使用在报头中指示的加密密钥索引来选择适当的私钥,并且在步骤918处使用该密钥来解密净载荷数据。在执行由净载荷指定的应用指令时,继而在步骤920处,客户端应用102对响应进行加密。可以如图10中所示使用相同的密钥来加密响应,或者使用任何其他存储的密钥来进行加密。在步骤922处,将安全响应发送至应用网关104,并且在步骤924处使用适当的响应密钥来解密响应。如本领域技术人员应该理解,使用私有加密密钥极大地改进了通信的安全性,并且使用一组加密密钥而不是使用单个密钥,进一步提高了这种安全性。
当发送响应消息时,客户端应用102使用默认的相应净载荷数据的源地址。这在后端104和客户端应用102之间有效地提供了多个客户端-服务器通信信道。例如,图11示出了一种布置,其中客户端应用102的两个实例(第一实例1002以及第二实例1004)经由无线通信网络110来与应用网关104的两个实例1006、1008进行通信。从第一后端系统1008向第二客户端应用1004发送的消息1010在该消息1010的报头中包括第一后端系统1008的地址1012,从而当客户端应用1004发送相应的响应1014时,其被寻址至第一后端系统1008。
与之相比,图12示出了相同的布置,其中消息1102还包括第一后端系统1008的地址1012。然而,包含在净载荷数据中的工作流指令可以通过将响应重新定向至代替的另一后端服务器,来改变该默认行为。通过净载荷数据中的DIVERT(转向)命令来激活这一机制,在附录中进一步进行了描述。特别地,在此消息1102中,净载荷1104包括具有第二后端系统1006的地址的转向指令。因此,在第二客户端应用1004执行此指令之后,响应1106被寻址至第二后端系统1006,而不是发起包含该指令的消息1102的第一后端系统1008。因为第二后端系统1006没有直接访问客户端ID和消息ID对、或者用于客户端应用102的加密密钥,第二后端系统1006调用第一后端系统1008的API,来检查响应数据的完整性和真实性。如果净载荷被加密,则第一后端系统1008解密净载荷,并且通过安全的通信信道来将其发送回第二后端系统1006(例如使用SSL)。在备选实施方式中,加密密钥存储在交互系统的中央组件中,并且以此方式来执行所有加密和解密。
通信数据净载荷
在客户端应用102与后端系统104之间交换的净载荷是二进制数据,即字节序列。用于该净载荷的通信信道可以包括SMS或者蜂窝广播服务(CBS)消息;IP/TCP数据分组(通过GPRS、3G或者其他类型的数据网络);和/或蓝牙数据分组。
如图13所示,每个数据净载荷具有报头1204为前缀,该报头1204指示是否利用加密密钥来将净载荷进行加密。报头数据包含存储在客户端应用密钥存储设备中的加密密钥的索引,由此允许客户端应用102来解密净载荷数据。
如图14中所示,纯的净载荷数据(未加密的或者在被解密之后)包含一系列长度可变的数据部分,其指示客户端应用102的动态工作流执行引擎508来构造用户UI工作流。
如图15中所示,每个数据部分包括类型1402和长度1404数据字段,并跟随有实际指令数据1406。类型字段是单个八位字节或者字节,定义其后的工作流指令的类型。长度指示指令数据1406的八位字节或者字节的数量。
如上所述,交互系统能够使用各种不同通信信道中的一个或者多个,来用于在应用网关104和客户端应用102之间发送和接收消息和响应。对于这些不同通信信道中的大多数,通信自身是直接的,其使用对本领域技术人员可用和已知的标准方法和库。然而,交互系统经由短消息服务或者SMS来支持消息和响应递送。在GSM03.40规范中定义了SMS,其定义了对于每个SMS消息大小的上限。尤其是,每个SMS消息能够包含上至140字节的数据,如图17中所示,当使用7位编码时,其等于160个ASCII字符。如GSM 03.40规范中所述,交互系统发送SMS消息,该SMS消息包括8位(二进制)数据并且包括7字节用户数据报头或者UDH 1702。UDH 1702包括长度字段或者UDHL 1704(如在GSM 03.40中所规定,其指定了以字节为单位的用户数据报头的长度)、以及6字节用户数据报头字段1706(指定了净载荷数据1708的目的地地址)。
UDH数据1702(指定二进制消息的目的地)由移动设备来解译,以便将净载荷数据递送至客户端应用102。除UDH数据1702以外,每个SMS消息能够承载133字节的净载荷数据1708。
如果净载荷数据超过该长度,则将净载荷数据以两个或者更多SMS消息1804来发送,每个消息包含上至127字节的净载荷数据1806、1808,如图18中所示出。这些SMS消息1804具有用户数据报头部分,该用户数据报头指示它们均属于连接的(concatenated)消息,如在GSM 03.40规范中所描述。当以多个SMS消息发送净载荷时,由后端系统104和客户端应用102使用字节填充机制。在此机制中,当从后端系统104发出时,在每个净载荷数据段1806、1808的末端附加值为0xFF的填充或者终止比特1810。客户端应用102去除这些填充比特1810,在将净载荷数据1814传送至工作流执行引擎408之前,所述填充比特1810表现为连接的净载荷数据中的填塞字节1812。使用字节填充机制来消除在多种移动电话型号中出现的问题,即,剥离每个连接的数据段最后的比特。
指令编译器602从编译器输出创建净载荷数据,以便生成二进制SMS消息。二进制消息的构造包括:如果数据的长度超过133字节的单个消息容量,则将净载荷数据1802划分为多个SMS消息1804。图19示出了此过程包含的步骤的流程图。
如图19中所示,当经由SMS递送消息或者响应时,在步骤1902处执行检查以确定净载荷数据的大小是否超过133字节。如果没有超过,则在步骤1904处添加用户数据报头,并且在步骤1906处压缩单个SMS消息并将其发送。备选的是,如果静载荷长度的确超过单个SMS消息中可以发送的最大大小,则在步骤1908处生成连接的消息的标识符,并且在步骤1910处,确定提供净载荷数据所需的连接的消息的数量。其后,过程循环包括步骤1912至1920,其构造适当数量的SMS消息,如下文所示。在步骤1912处,选择下一个净载荷部分并且将其复制至当前SMS消息的净载荷。在步骤1914处,添加包括标识符的用户数据报头,所述标识符指示SMS消息是此SMS消息集的一部分。在步骤1916处,如上文所述那样将填充或者终止字节附加至净载荷数据。最后,在步骤1918处,发送结果生成的SMS消息。将步骤1912至步骤1918进行重复,直到在步骤1920处的测试确定已经发送了最后一部分净载荷数据,并且该过程继而终止。
如图20中所示,通过搜索特定的填塞字节八位字节值(在此实施方式中是0xFF)并且从净载荷数据中将其去除,来由客户端应用102处理去除净载荷数据中的填塞字节。
图16是示出由交互系统支持的十五个不同指令的示意图,其示出了标识每个指令类型的各类型字节和相应指令参数的结构。在附录中提供了关于各种指令的进一步细节。
动态工作流执行引擎
客户端应用102向用户呈现多个用户界面(UI)窗口406以及执行用户不可见的例程。这允许客户端应用102来显示信息并且捕获设备信息和/或用户输入。
UI窗口406典型地包括如下类型的用户接口组件和控件:
(i)消息屏幕:用以示出文本信息;
(ii)选择菜单:用以询问多个定义选项之一的用户选择(即,单选按钮);
(iii)多个选项:用以询问用户的一个或者多个选项(即,复选框);
(iv)文本输入:用以获取来自用户的自由形式文本输入(文本框);
(v)数字或日期输入:用以获取用户输入数据,受到类型的限制;以及
(vi)当在执行步骤中出现分支或者跳跃时显示的窗口。
然而,UI窗口406的这一列表及其实际屏幕布局可以根据安装有客户端应用102的平台(即,基于设备硬件和操作系统软件的每个组合)而有所变化。
客户端应用102实现工作流执行过程2100,如图21中所示,基于每个调用来执行工作流应用。在步骤2102处调用客户端应用102之后,工作流执行过程2100开始,并且在步骤2104处执行测试,以确定是否已经因从应用网关104接收到新的净载荷数据而导致调用。如果是,则在步骤2105处,获取新的净载荷指令,并且继而在步骤2110处进行解析。否则,如果没有因接收到新的净载荷数据而出现调用,则在步骤2106处执行测试,以确定在即时数据存储设备410中是否包含指令。如果是,则在步骤2108处从即时数据存储设备410获取指令,并且继而在步骤2110处进行解析。否则,在步骤2132处执行另一测试,以确定是否已经将任何指令集在永久数据存储设备412中保存为应用。如果不是,则在步骤2134处向用户显示信息消息,以指示在队列中不存在应用(即时的或者永久的)。一旦用户应答此信息消息,或者当相应超时时段已经超过时,则终止客户端应用102。备选的是,如果永久数据存储设备412包含一个或者多个永久存储的指令集(即,应用),则在步骤2136处,将其向用户显示,并且在步骤2137处过程400暂停,等待用户选择其中之一,或者选择退出选项。如果在步骤2138处确定用户已经选择退出选项,则客户端应用102终止。否则,用户已选择永久存储的指令集,并且在步骤2140处获取所述指令集,并且继而在步骤2110处进行解析。
在步骤2110处解析工作流指令之后,在步骤2112处读取第一工作流指令或者下一个工作流指令,并在在步骤2114处执行。如果在步骤2116处确定该指令是UI指令,则在步骤2118处过程等待接收用户输入。一旦已经接收到用户响应,则在步骤2120处去除在设备106屏幕上显示的UI窗口,并且在步骤2122处存储任何用户输入。在步骤2124处,执行测试以确定该指令是否是工作流中的最后一个。如果不是,则过程循环返回至步骤2112。否则,一旦已经执行了所有指令,则在步骤2126处构造响应消息,并在步骤2128处发送。如果所执行的工作流指令存储在即时数据存储设备410中,则在步骤2130中将其删除。这终止工作流执行流程2100。
解析工作流指令和响应数据
客户端应用102的工作流执行引擎408解译净载荷数据部分并由此生成动态UI工作流。
当由工作流执行引擎408读取时,将来自净载荷数据的数据部分进行连续索引,并且这也是工作流执行508的默认顺序。如图22中所示,响应数据包括与接收和执行相应指令的顺序相同的每个响应。当执行工作流指令并将要获取响应数据时,在指令数据中包括参数名称,并将用户响应或者系统响应与响应中的此参数相关联。如图23中所示,当工作流完成时,在响应数据中包括所有指令响应。工作流中的跳转和分支
工作流执行引擎408提供一种机制,以便允许在指令序列中进行分支和跳转。
分支
在整个工作流中,因为指令可以包括在不同分支中,因而工作流执行引擎408使用分支域区分对于不同分支的指令响应数据。分支域在工作流树中指定了工作流指令的地址。当设置指令响应数据时,响应参数名称具有相应的分支域为前缀,并且由句号字符分隔。例如,可以从两个不同分支菜单调用用于获取具有参数名称“number”的数字值参数的用户输入的指令:一个名称为“第一分支”,而另一个名称为“第二分支”。在这两种情况下,指令返回相同的参数名称“number”,但是具有不同值。工作流执行引擎408将分支域与参数名称相关联,以便区分两个响应值。由此,在此示例中,第一值返回为“第一分支.number=xxx”,而第二值返回为“第二分支.number=yyy”,其中“xxx”和“yyy”表示由用户输入的实际值。图25示出了一个更复杂的示例,其中菜单选择是内嵌的。
另外,分支域附加有关于分支菜单选择的分支名称。例如,在具有如图39中所示的两个内嵌分支菜单3902“服务请求”以及3904“水服务”的应用中,当用户选择菜单3902中的项目3910“水”时,继而在后续分支菜单3904“水服务”中选择项目3912“水管破裂”,并且在文本输入屏幕3906“你的姓名”中填入3914“John Doe”,客户端应用102将内在地将响应作为“水管破裂.name=John Doe”而发送。当执行BRANCH_BACK(分支_返回)命令时,去除先前的分支名称。工作流执行引擎408使用分支名称栈来维护选择分支名称的顺序。
出于可用性原因,当使用多分支菜单工作时,重要的是让用户知道用户是否已经访问了一个分支。就此,工作流执行引擎408通过在邻近于该分支处显示图像来指示已访问的分支菜单项,以便指示用户已经访问了这些分支菜单项。例如,如图27中所示。
当用户已经访问了用户输入屏幕2702来输入数据1时,在邻近于第一分支菜单项2704处显示图像图标2706,以便清晰标记。这允许用户可视地将工作流的已经被访问的那些部分与尚未被访问的那些部分进行区分。备选的是,可以以不同颜色显示已访问的分支,如由web浏览器使用不同颜色来指示已经访问了超链接那样。
回退导航
如图28中所示,所有用户界面屏幕包括“返回”导航按钮2802,以便允许用户返回工作流内的先前屏幕。这一返回按钮的位置可以根据执行客户端应用102的特定移动设备平台而有所变化。如图29中所示,工作流执行引擎408维护导致在屏幕或者显示器中变化的指令栈或者有序列表,并且选择“返回”按钮导致执行返回先前的指令。
向指令编译器发送工作流描述
如上所述,通过使用指令编译器602的超文本传输协议(HTTP)接口,开发者116可以通过提交由指令编译器602支持的编程语言编写的编程指令,来向应用网关104的指令编译器602发送工作流描述。例如,图30是由应用网关104生成的HTML web页面的截屏。web页面包括:可滚动文本框3002,开发者118可以以脚本语言直接向其中输入命令;以及编译按钮3004,当按下时,将可滚动文本框3002中的文本提交至指令编译器602用于编译。
交互系统的脚本语言是用于描述交互应用工作流的高级语言。其结构类似于BASIC并且可以由具有基础编程知识的编程人员快速学会。
备选的是,可以通过调用对应用网关API 616的API调用,来将工作流描述发送至指令编译器602。例如,图31示出了源代码列表,其列出了用以生成并向移动电话106发送工作流指令的J2ME函数SendWorkflowRequest。在此示例中,工作流指令用于向用户120显示预订细节,并且继而获取指示用户120是否接受或者拒绝该预订的用户响应、以及用户的姓名和电话号码。首先,通过创建(在步骤3102)对象名称为WorkflowCommand的新的J2ME命令()对象来初始化工作流API。如下文所述,继而在步骤3104处添加工作流报头。继而,通过调用作为WorkflowCommand对象的方法而提供的API,以期望的执行顺序添加工作流指令。通过以一组参数调用相应API函数来添加每种类型的工作流指令。例如,(在步骤3106)使用对象方法AddInfoMessage来添加向用户显示信息屏幕的指令。此方法的第一自变量提供屏幕的标题,并且第二自变量提供被显示的实际文本信息。类似地,方法AddSingleMenu(在步骤3108)添加向用户显示单级菜单(即,单选按钮)的指令,允许用户从作为方法参数而提供的项目的列表中选择一项。在此示例中,两个项目显示为“接受”和“拒绝”,并且用户的响应指示用户120接收或者拒绝预订。
(在步骤3110和步骤3112处)方法AddUserInputCmd向用户显示文本串以及文本框,提示用户来输入适当的输入值。此函数的第一参数查找将与所返回输入值相关联的参数名称。第二自变量提供向用户显示的串,而第三自变量允许开发者约束输入的类型;例如,将输入类型约束为电话号码、电子邮件地址等。
最后,(在步骤3114处)AddRedirectHeader方法定义将响应重定向至的地址或者电话号码,如上所述。在报头中还指定将要使用(例如,是否由SMS、IP网络、蓝牙等使用)的通信信道。
一旦添加了工作流指令,则再次(在步骤3116处)调用工作流API,以便编译指令并且建立将要发送至客户端应用的净载荷数据。如果需要,则按需要而多次调用(在步骤3118处)工作流API以发送多个消息。
脚本语言概述
·指令是逐行编写的
·注释行以//开始
·标记行以#开始
·通过双引号字符“”来界定字符串参数
工作流编程结构
逐行按顺序地处理命令。提供三个指令来创建工作流的树状结构:BRANCH_TO(分支至)、BRANCH_BACK(分支返回)以及GOTO(跳转至)。BRANCH_TO和BRANCE_BACK相结合使用以便创建已编译程序的子程序。GOTO是跳转指令,其允许程序执行跳转至脚本中的指定行。注释和空行被指令编译器602忽略。
命令行语法
命令是脚本中的一行,其具有如下结构:
<命令名称><字符串参数><字符串参数><标记>
其中:
·<命令名称>是命令。
·<字符串参数>是有条件的字符串值,即,由双引号字符来界定。例如,“用户名称”是字符串参数。在每个命令中可以存在一个以上的字符串参数。
·<标记>是与该命令相关联的标记的名称。当与BRANCH_TO命令结合使用时,标记可以仅由GOTO命令以及ITEM(项目)命令使用。
注释
在语言中不存在块注释。注释行是以//(其后跟随有空格字符的两个正斜杠字符)开始的行。
示例:
//这是注释行
标记
标记是一种标识行号的方法,从而可以在GOTO中以及BRANCH_TO的ITEM命令中引用该行。标记行以跟随有空格字符的#(hash)字符开始。标记名称是从#字符开始的下一个字。
示例:
对于标记START,行如下所示:
#START
将标记名称映射至紧跟标记行的命令的索引(即,脚本中的相对位置)。
脚本中的标记必须是唯一的,如果检测到重复标记,则将出现编译错误。在第一次通过编译器时解析所有标记,建立在第二次通过时将要使用的标记和命令索引的映射。
回退导航
如上所述,默认地将“返回”导航按钮附加至所有显示的屏幕。此按钮允许在用户设备106上执行的工作流进行回退导航。在大多数移动电话平台上,将这一“返回”按钮映射至右侧动作键。然而,这可以根据电话类型而有所变化。
树状导航
将BRANCH_TO命令、标记以及BRANCH_BACK命令进行结合,这允许工作流支持树状执行结构,如在图32的源代码列表以及图33的所得显示屏幕中所示。在下文中将提供详细描述。当用户在工作流屏幕之间导航时,不记忆每个屏幕的状态(项目选择和用户输入)。
示例
下文是用以生成在用户设备(诸如,移动电话106)上执行的交互应用的源代码列表。所述源代码定义了一个工作流,其允许移动电话106的用户120来生成对于水、电和/或煤气服务的服务请求。该列表设置为各自标记之下的四组命令或者段落。第一段标记为START,其导致显示如图34中所示的主屏幕3402。BRANCH_TO命令具有两个参数。第一参数“serv”定义此分支的分支名称,而第二参数“Service Request(服务请求)”定义在主屏幕3402顶部处显示的标题。后续三个命令定义可以由用户选择以便调用相应工作流分支的项目。例如,第一ITEM命令具有两个参数。第一参数“水”定义了在主屏幕3402上显示的文本3404,可以对其进行选择以便调用相应的工作流分支。第二参数(在此情况下是“水”)是相应工作流分支的标记,在此情况下是指该标记之下分组的命令的第二组或者段落。由此,如果用户导航主屏幕3402来选择第一项目3404,则工作流跳转至SELECT ITEMS(选择项目),导致显示水服务选择屏幕3406。在此情况下,三个项目是简单菜单选择(而不是工作流分支),并且由此选择这些项目的任何一个导致适当的参数,在此情况下,命名的“水”将被赋予由相应项目定义的值。例如,如果用户选择第二项目“渗漏”3408,则参数“水”将被赋予值“渗漏”。一旦已经选择此项目,则工作流前进至如下命令,在此情况下是BRANCH_BACK命令,其将控制返回主屏幕3402。
以此方式,用户可以选择“电”项目3410,以便分支至ELECTRICITY(电)工作流,这导致显示电服务屏幕3412。类似地,用户可以选择“煤气”请求项目3414来导致显示煤气服务屏幕3416。一旦用户满意于由此定义的服务请求,则选择“下一个”按钮3418或者“确定”按钮3420将使执行继续,以便在此示例中执行命令“GOTOCONTACTS(跳转至CONTACTS)”,这导致工作流跳转至CONTACTS(联系人)标记之后的命令,在此情况下,是显示姓名输入屏幕3422并且接着显示联系人号码屏幕3424的INPUT(输入)命令。一旦已经选择了联系人号码屏幕3424上的“确定”按钮3426,则MESSAGE(消息)命令导致显示向用户提供信息反馈的服务信息屏幕3428,在此情况下,确认服务请求将要或者已经发送至用于处理用户请求的适当方。
//程序开始
#START
BRANCH_TO    ″serv″″服务请求″
ITEM         ″Water″水
ITEM         ″Electricity″电
ITEM         ″Gas″煤气
GOTO         CONTACTS(联系人)
#WATER
SELECT       ″water″″水服务″
ITEM         ″水管破裂″
ITEM         ″渗漏″
ITEM         ″新连接″
BRANCH BACK
#ELECTRICITY
SELECT       ″elect″″电服务″
ITEM         ″火″
ITEM         ″新连接″
ITEM         ″断开连接″
BRANCH_BACK
#GAS
SELECT       ″gas″″煤气服务″
ITEM         ″渗漏″
ITEM         ″新连接″
ITEM         ″火″
BRANCH_BACK
//类似子程序
#CONTACTS
INPUT         ″姓名″″你的姓名″任意
INPUT         ″电话″″联系人号码″数字型
//在此发送消息
//#END
MESSAGE       ″服务信息″″将要将您的请求发送至XXXX″
脚本命令和语法
HEADER命令
HEADER命令用于当已经执行工作流时在响应消息的开始处包括特定的文本。此命令对于用户设备的用户是不可见的。此命令用作针对服务器-客户端会话的内容标识符。
在脚本中可以存在多个头部命令。当使用HEADER命令来与BRANCH_TO命令协作时,基于用户选择可以设置不同响应消息前缀。
语法
HEADER<头部>
·<头部>是预先考虑的响应文本消息的字符串参数。
示例
HEADER“timesheet”
响应
将<头部>附接至响应消息开始处。如果在响应消息中包括多个头部,则响应头部是基于其在工作流中的执行顺序来预先考虑的。
DIVERT(转向)命令
DIVERT命令用于将响应消息重新定向至与原始指令的源的电话号码或地址不同的电话号码或地址。通常,将响应消息发送回净载荷的源地址,但是可以通过在工作流中包括DIVERT命令而将响应消息发送回另一号码。此命令对用户是不可见的。在脚本中可以存在多个DIVERT命令,但是在工作流中执行的最后一个DIVERT命令起作用。当将此命令与BRANCH_TO命令相结合时,工作流可以将响应消息发送至由用户选择的源号码。
语法
DIVERT<地址>
·<地址>是表示重新定向地址的移动号码的字符串参数。
示例
DIVERT“+61418366896”
MESSAGE(消息)命令
MESSAGE命令向用户示出了具有标题和消息内容的消息。
语法
MESSAGE<标题><消息内容>
·<标题>是将要显示的消息的标题的字符串参数。
·<消息内容>是字符串参数。
最后结果是如图35中所示的屏幕显示。
示例
MESSAGE“Hello”“Hello world”
响应
此GUI屏幕没有采集任何用户输入以及没有响应数据与其相关联。
INPUT命令
此命令向用户显示具有文本输入框3602的GUI屏幕以便获取用户输入,如图36中所示。在命令中提供了参数名称,以便当在响应消息中包括用户输入数据时设置其名称。默认的输入值可以提供为输入参数。如果期望,则可以将用户输入数据约束至特定类型,诸如数字、小数或者电话号码。然而,用户输入约束的实现依赖于执行客户端应用102的用户设备的功能。
语法
INPUT<返回参数><标记><类型><默认值>
·<返回参数>是用于将要在返回消息中设置的已输入值的名称的字符串参数。
·<标记>是输入文本框的标题。
·<类型>是将要捕获的输入的类型,如下类型是可用的:
○ANY
○EMAILADDR
○NUMERIC
○PHONENUMBER
○URL
○DECIMAL
·<默认值>是用于当屏幕对用户可见时,被设置到输入文本框中的可选字符串参数。如果忽略,则输入文本框的默认值保持为空。
响应
在与相应指令中指定的参数名称相关联的响应消息中包括用户输入数据。如果在分支例程(参见BRANCH_TO命令)中执行INPUT命令,则将任何可用域路径作为参数名称的前缀。
<返回参数>=<值>(不具有域路径)
<域路径><返回参数>=<值>
其中:
·<值>是用户输入的字符串值。该值可以是空值。
·<域路径>是在工作流中导致此INPUT命令的分支路径。
GAUSS(高斯)命令
此命令导致显示具有滑动条或者“高斯”控件3702的交互屏幕以提示用户提供相应的响应数据,如图37中所示。用户可以将滑动条控件从在命令线上指定的最小值滑动至最大值。在与给出参数名称相关联的响应消息中包括结果生成的数据。
语法
GAUSS<参数名称><最小值><最大值><默认值>
·<参数名称>是针对将在返回消息中设置的高斯值的名称的字符串参数。
·<最小值>是用户可以选择的最小值。
·<最大值>是用户可以选择的最大值。
·<默认值>是如果用户没有选择任何值时的默认值。此参数是可选的,如果不存在,则默认值为空。
示例
GAUSS“temper”“1”“10”“5”
响应
如果在分支例程(参见BRANCH_TO命令)中执行此命令,则将任何可用域路径作为参数名称的前缀。
<参数名称>=<值>(不具有域路径)
<域路径><参数名称>=<值>
GOTO命令
此命令允许工作流执行引擎406来跳转至特定工作流指令,而不是按顺序前进至下一个指令。此命令的参数是用于将被定向的工作流执行的指令的标记。不存在与此指令相关联的用户屏幕或者响应数据。
语法
GOTO<标记>
·<标记>是指示在执行此命令之后工作流执行跳转至的命令的索引的标记名称。
示例
...
GOTO Hello//在执行此命令之后,程序跳转至消息“Helloworld”。
...
...
#Hello
MESSAGE“Hello”“Hello world”
...
SELECT(选择),SELECT_MULTI(选择,多选)命令
如图38中所示,这些命令显示具有项目列表的屏幕以便从中进行选择。SELECT命令允许单项选择,而SELECT_MULTI命令允许多项选择屏幕。在由参数名称标识的响应消息中包括用户选择。在多选列表的情况下,在响应值数据中由分界符字符来分隔所选择的值。
语法
SELECT或者SELECT_MULTI命令跟随有ITEM定义(每行一个)。
SELECT<参数名称><标题>
ITEM<项目名称>
ITEM<项目名称>
ITEM<项目名称>
SELECT_MULTI<参数名称><标题>
ITEM<项目名称>
ITEM<项目名称>
ITEM<项目名称>
其中:
·<参数名称>是针对SELECT屏幕而指定返回参数id的字符串参数。
·<标题>是指定屏幕标题的字符串参数。
·<项目名称>是指定将在屏幕上显示的项目的字符串参数。
示例
//此示例允许移动用户来选择所列出选项之一
SELECT“tsk”“选择任务”
ITEM“管理”
ITEM“服务台”
ITEM“客户端会议”
//此示例允许移动用户来选择列表中的一个或者多个用户名称
SELECT_MULTI“name”“选择用户”
ITEM“用户1”
ITEM“用户2”
ITEM“用户3”
对于多选命令,显示选择列表中的每个项目,其邻近指示用户是否已经选择该项目的图标。在大多数移动设备上,显示“打标记”按钮以便允许用户对选择的高亮项目打标记。“下一个”按钮也附加于该屏幕,以允许用户导航到下一个工作流指令。在某些移动设备平台上,将“下一个”按钮直接映射至一个移动电话按钮。
响应
SELECT命令:
<参数名称>=<项目>
SELECT_MULTI命令:
<参数名称>=<项目>;<项目>;<项目>
其中:
·<项目>是所选择的项目名称。
多选响应可以为空。
BRANCH_TO命令
此命令向用户提供用于选择的项目列表,并且当选择一个项目时,工作流执行分支至指定的命令。此屏幕的行为类似于上文所述的SELECT屏幕。一旦工作流执行开始从新的目标指令执行,则其遵循默认的连续顺序。当执行BRANCH_BACK命令时,工作流执行引擎返回至先前的BRANCH_TO命令来执行。然而,BRANCH_TO命令不需要BRANCH_BACK命令来操作。工作流可以接着分支至最后的命令,而并不返回至分支菜单。
为了从BRANCH_TO命令前进至下一屏幕,提供了“下一个”按钮。在某些电话上,将此按钮映射至移动设备上的一个电话按键。然而在多数电话上,当用户选择BRANCH_TO屏幕(类似于SELECT_MULTI命令)上的选项时,将此按钮映射至名称为“下一个”的软键。
在响应消息中不存在附接至此屏幕的特定用户值。然而,将所选择的分支项目附加至分支域路径。此域路径继而被附加至正在分支目标中执行的任何输入屏幕的参数名称。
语法
BRANCH_TO命令跟随有ITEM定义(每行一个)。
BRANCH_TO<参数名称><标题>
ITEM<项目><标记>
ITEM<项目><标记>
ITEM<项目><标记>
其中:
·<参数名称>是针对BRANCH_TO屏幕而指定返回参数id的字符串参数。
·<标题>是指定屏幕标题的字符串参数。
·<项目>是指定在屏幕上显示的项目的字符串参数。
·<标记>是利用“#”字符在工作流中指定的可用标记名称。
示例
...
#EnterBetAmount
INPUT“bet”“输入赌注总额”DECIMAL
BRANCH_BACK
...
#SelectBetAmount
SELECT“bet”“选择以美元为单位的赌注总额”
ITEM“100”
ITEM“200”
ITEM“300”
BRANCH_BACK
...
BRANCH_TO“b”“选择下注的队伍”
ITEM“Melbourne”EnterBetAmount
ITEM“Geelong”SelectBetAmmount
GOTO END
...
#END
MESSAGE“Info”“请选择‘是’以便允许发送响应消息”
响应
·利用在分支菜单中选择的<项目>来附加至域路径。
·继而,将该域路径附加至在分支目标中不包括的任何输入屏幕的参数名称。在示例脚本中,在响应消息中出现时的“赌注”总额参数名称是:Melbourne.bet=<赌注值>。
BRANCH_BACK命令
此命令对用户不可见,其提供从分支导航返回的功能。工作流可以具有多个上绕(wired up)的分支,并且结果是树形结构。BRANCH_BACK命令允许在此树形结构中向上导航。标记以及BRANCH_BACK命令的结合允许将一组工作流命令结合至一个例程,在工作流执行期间可以多次引用该例程。
语法
BRANCH_BACK
STORE_PERMANENT命令
此命令指示工作流来将整个净载荷数据存储至持久性存储设备。在此命令参数中设置标题,允许客户端应用来向用户显示所存储的净载荷数据。此命令并不导致在响应消息中的任何用户数据。
语法
STORE_PERMANENT<标题>
其中:
·<标题>是指示将要在持久性列表中显示的工作流净载荷数据标题的字符串参数。当由用户手工开始客户端应用并且没有等待执行即时净载荷数据时,向用户显示此持久性列表。
示例
STORE_PERMANENT“消息一”
CLEAR_PERNAMENT命令
此命令清除先前由STORE_PERMANENT命令保存的所有持久性工作流净载荷数据。执行此命令不导致响应消息中的任何数据。
语法
CLEAR_PERNAMENT
EXECUTE(执行)命令
此命令对移动设备操作系统进行请求以便获取URL地址。其结果可以是,进行电话呼叫或者启动电话上的互联网浏览器连接至指定URL地址。此命令的行为可能由于设备功能而在不同设备型号之间有所变化。
语法
EXECUTE<url地址>
其中:
·<url地址>是描述将要发送至J2ME平台的请求的URL地址的字符串参数。
示例
为了向+61418366896移动号码发起移动电话呼叫:
EXECUTE“tel:+61418366896”
为了启动移动电话上的互联网浏览器访问ACME移动网站:
EXECUTE“http://mobile.acme.com”
响应
如果需要进行移动电话呼叫,则移动设备将请求用户是否可以进行移动电话呼叫。如果需要启动互联网浏览器,则应用将请求用户许可,以便打开连接到指定URL的互联网连接。
CONFIGURATION(配置)命令
从用户/系统数据构建响应消息。使用一定数量的默认分界符字符来将数据部分以及名称-值分隔符来进行分隔。当命令包括在净载荷数据中时,该命令可以改变响应消息的分界符字符,以及指示名称部分是否包括在响应消息中。
语法
CONFIGURATION<配置字符串>
其中:<配置字符串>包括以下配置字符:
·第一字符:在响应中包括参数,如果将其设置为“0”,则响应消息仅具有值;如果将其设置为“1”,则响应消息具有名称=值
·第二字符:响应部分分界符,默认为“,”
·第三字符:等于字符,默认为“=”
·第四字符:多选选项,默认为“;”
·第五字符:屏幕路径分界符,默认为“.”
示例
CONFIGURATION“0,=;.”
此配置命令指示工作流执行来从响应消息中排除参数名称。
SYSTEM_PROPERTY命令
此命令指示工作流执行来读取系统属性并且在响应中返回结果。如果忽略参数名称,则与响应数据相关联的参数名称是系统属性。
语法
SYSTEM_PROPERTY<属性名称><参数名称>
其中:
·<属性名称>是将被读取的系统属性。在J2ME平台上,属性示例如下:
·microedition.profiles
·microedition.configuration
·<参数名称>是可选字符串参数。如果忽略,则代替的是,属性名称用作响应中的参数名称。
示例
SYSTEM_PROPERTY“microedition.profiles”
SYSTEM_PROPERTY“microedition.profiles”“midp”
响应
在响应消息中包括系统属性值作为名称=值的对。应用对名称-值的对所应用的所有规则。这些规则包括:改变分界符参数以及在响应消息中是否包括名称部分。
<系统属性>=<值>(如果省略参数名称)
<参数名称>=<值>(如果存在参数名称)
NOP命令
NOP是不操作命令。该命令在与标记结合使用时是有用的。
语法
NOP
SET_KEYS命令
该命令设置由移动设备上的按键的索引来指定的加密密钥。
语法
SET_KEYS<按键索引><按键>
其中<按键索引>是指示将要在客户端应用102上设置的按键索引的字符串参数。<按键>是包含将被更新的实际按键的字符串参数。
在不脱离在上文中参考附图所述的本发明的范围的情况下,各种修改对于本领域技术人员是易见的。
从上文的说明书中易见的是,在此描述的交互系统和过程允许开发者向一个或者多个用户设备106(诸如,移动电话)动态地按需发送可定制工作流指令。对于开发者来说,响应数据的生成、安全递送、执行和安全返回均由交互系统以透明方式处理,由此对于开发者隐藏了这些方面的所有细节,从而大大简化了提供交互应用以及与一个或者多个用户进行的准实时交互。经由SMS的工作流指令提供是特别有利的,这是由于可以假定其受到当前可用的所有移动电话的支持。然而,由于SMS通信是全部由交互系统管理的,可以由交互系统的运营商来建立可能要求的任何额外SMS服务,由此使得开发者不需要建立其自身的独立额外SMS服务。通过平衡从使用交互系统的所有开发者或者SMS流量集合导致的SMS流量的真实数量,这大大简化了提供新的交互应用,并且还允许交互系统的运营商在较低成本提供这些服务。
本领域技术人员应该理解,在不脱离广泛描述的本发明的精神或范围的情况下,可以对在特定实施方式中示出的本发明进行各种变化和/或修改。由此,在所有方面中,认为本实施方式仅是示意性的而不是限制性的。

Claims (24)

1.一种向连接到网络的移动用户设备递送指令的方法,所述方法包括以下步骤:
接收交互工作流;
将所述交互工作流转换至由所述移动用户设备可执行形式的所述指令;以及
向所述移动用户设备发送包括所述指令的消息。
2.根据权利要求1所述的方法,其中所述接收所述交互工作流的步骤包括以下步骤:接收以高级编程或者脚本语言编码的所述交互工作流。
3.根据权利要求1或者2所述的方法,其中所述接收所述交互工作流的步骤包括以下步骤:从外部或者第三方接收所述交互工作流。
4.根据前述权利要求的任一项所述的方法,其中所述发送所述消息的步骤包括以下步骤:发送用于由在所述移动用户设备上安装的应用执行的指令集。
5.根据权利要求4所述的方法,其中所述发送所述指令集的步骤包括以下步骤:发送用于所述设备的所述指令集,以便与所述移动用户设备的用户进行交互。
6.根据权利要求5所述的方法,其中所述发送所述消息的步骤包括以下步骤:发送唯一消息标识符。
7.根据权利要求6所述的方法,进一步包括以下步骤:所述移动用户设备接收所述指令集以及所述唯一消息标识符。
8.根据权利要求7所述的方法,其中所述移动用户设备接收所述指令集以及所述唯一消息标识符的所述步骤包括以下步骤:接收所述指令集,用于由所述应用的工作流执行引擎组件转换至移动用户设备系统代码。
9.根据权利要求7或者8所述的方法,进一步包括以下步骤:从所述移动用户设备接收对于所述指令的响应。
10.根据权利要求9所述的方法,其中所述接收响应的步骤包括以下步骤:从所述设备接收响应标识符。
11.根据权利要求10所述的方法,其中所述方法包括以下步骤:将所述唯一消息标识符与所述响应标识符进行比较,以确认所接收到的消息的真实性。
12.根据前述权利要求中的任一项所述的方法,其中转换所述指令的所述步骤包括:使所述指令适应设备操作系统。
13.根据前述权利要求中的任一项所述的方法,其中所述移动用户设备是多个移动用户设备中的一个,以及所述方法还包括以下步骤:从包括用于所述多个用户设备的各自规格的数据库中接收所述移动用户设备的规格。
14.根据权利要求13所述的方法,其中所述转换所述交互工作流的步骤包括:使所述指令适应所述规格。
15.根据前述权利要求中的任一项所述的方法,其中所述发送所述消息的步骤包括以下一个或者多个预备步骤:对所述指令进行压缩、编码和加密。
16.根据前述权利要求中的任一项所述的方法,其中所述发送所述消息的步骤包括以下步骤:经由蜂窝网络的短消息服务(SMS)发送所述消息。
17.根据权利要求16所述的方法,其中所述经由SMS发送所述消息的步骤包括以下步骤:将所述消息划分成为多个消息以便满足SMS的一个或者多个标准。
18.根据权利要求1至15中的任一项所述的方法,其中所述发送所述消息的步骤包括以下一个或者多个步骤:经由蜂窝网络的小区广播服务(CBS)来发送所述消息,作为通过GPRS或者3G网络的IP/TCP数据分组来发送所述消息,以及作为通过蓝牙连接的数据分组来发送所述消息。
19.根据前述权利要求中的任一项所述的方法,还包括以下步骤:检查所述移动用户设备是否希望接收从所述交互工作流获取的所述指令。
2O.根据权利要求19所述的方法,其中所述检查步骤包括:向所述移动用户设备的所述用户发送请求以便接受从所述交互工作流获取的所述指令。
21.根据权利要求3所述的方法,其中接收所述交互工作流的所述步骤包括以下预备步骤:从所述外部或者第三方来接收针对应用编程接口(API)的请求。
22.根据权利要求21所述的方法,其中所述接收所述交互工作流的步骤包括以下预备步骤:打开应用编程接口。
23.根据前述权利要求中的任一项所述的方法,还包括以下步骤:向所述设备发出命令以便更新或者删除保存于所述移动用户设备上的永久性数据存储设备的指令序列。
24.一种包括用于向连接到网络的移动用户设备递送指令的可执行指示的计算机软件,所述指示包括以下步骤:
接收交互工作流;
将所述交互工作流转换至由所述移动用户设备可执行形式的所述指令;以及
向所述移动用户设备发送包括所述指令的消息。
25.一种向连接到网络的用户设备上安装的应用递送指令的方法,所述方法包括以下步骤:
接收交互工作流;
将所述交互工作流转换至由所述应用可执行形式的所述指令;以及
向所述用户设备处的所述应用发送包括所述指令的消息。
CN200780038721.XA 2006-10-19 2007-10-19 交互系统和过程 Expired - Fee Related CN101606400B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
AU2006905829 2006-10-19
AU2006905829A AU2006905829A0 (en) 2006-10-19 An Interactive System and Process
PCT/AU2007/001599 WO2008046161A1 (en) 2006-10-19 2007-10-19 An interactive system and process

Publications (2)

Publication Number Publication Date
CN101606400A true CN101606400A (zh) 2009-12-16
CN101606400B CN101606400B (zh) 2014-05-14

Family

ID=39313524

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200780038721.XA Expired - Fee Related CN101606400B (zh) 2006-10-19 2007-10-19 交互系统和过程

Country Status (8)

Country Link
US (1) US9002386B2 (zh)
EP (1) EP2084921B1 (zh)
CN (1) CN101606400B (zh)
AU (1) AU2007312879B2 (zh)
BR (1) BRPI0717647A2 (zh)
CA (1) CA2666616A1 (zh)
HK (1) HK1133774A1 (zh)
WO (1) WO2008046161A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102364972A (zh) * 2011-11-24 2012-02-29 得实信息科技(北京)有限公司 一种运动数据加密传输的方法和运动记录仪
US8538845B2 (en) 2011-06-03 2013-09-17 Mozido, Llc Monetary transaction system
CN103718503A (zh) * 2011-07-28 2014-04-09 瑞典爱立信有限公司 移动网络中基于客户端接口脚本的用户通信
CN109716249A (zh) * 2016-09-09 2019-05-03 德马泰克公司 用于工作流的操作和管理的通信系统和利用不同操作平台的多个设备的集成
US10438196B2 (en) 2011-11-21 2019-10-08 Mozido, Inc. Using a mobile wallet infrastructure to support multiple mobile wallet providers

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8260274B2 (en) 2006-05-25 2012-09-04 Celltrust Corporation Extraction of information from e-mails and delivery to mobile phones, system and method
US9848081B2 (en) 2006-05-25 2017-12-19 Celltrust Corporation Dissemination of real estate information through text messaging
US8225380B2 (en) 2006-05-25 2012-07-17 Celltrust Corporation Methods to authenticate access and alarm as to proximity to location
WO2007139909A2 (en) 2006-05-25 2007-12-06 Celltrust Corporation Secure mobile information management system and method
US9572033B2 (en) 2006-05-25 2017-02-14 Celltrust Corporation Systems and methods for encrypted mobile voice communications
US8965416B2 (en) 2006-05-25 2015-02-24 Celltrust Corporation Distribution of lottery tickets through mobile devices
US8280359B2 (en) 2006-05-25 2012-10-02 Celltrust Corporation Methods of authorizing actions
WO2008046161A1 (en) * 2006-10-19 2008-04-24 Fruitful Technologies Pty Ltd An interactive system and process
WO2009121046A1 (en) * 2008-03-28 2009-10-01 Celltrust Corporation Systems and methods for secure short messaging service and multimedia messaging service
US20120077586A1 (en) * 2008-10-27 2012-03-29 Shervin Pishevar Apparatuses, methods and systems for an interactive proximity display tether
US8495359B2 (en) * 2009-06-22 2013-07-23 NetAuthority System and method for securing an electronic communication
US9092277B2 (en) * 2010-08-10 2015-07-28 Ricoh Company, Ltd. Method, apparatus, system, and computer readable medium for universal device participation in business process and workflow application
TWI407764B (zh) * 2010-08-16 2013-09-01 Wistron Neweb Corp 跳轉方法、人機界面及無線電話子機
US8689099B1 (en) * 2010-12-23 2014-04-01 Amazon Technologies, Inc. Cross-domain communication
US8798541B1 (en) * 2011-04-11 2014-08-05 Vmware, Inc. System and method for socket backed host controller interface emulation for virtual bluetooth adapter
US9037963B1 (en) 2011-04-22 2015-05-19 Amazon Technologies, Inc. Secure cross-domain web browser communications
US8340701B1 (en) 2011-06-02 2012-12-25 Google Inc. Methods for user-interface over SMS messages based on a reusable context model
US8285315B1 (en) 2011-06-02 2012-10-09 Google Inc. Methods for user-interface over SMS messages based on a rolling sequence model
US9053337B2 (en) 2011-06-07 2015-06-09 Blackberry Limited Methods and devices for controlling access to a computing resource by applications executable on a computing device
US8650550B2 (en) * 2011-06-07 2014-02-11 Blackberry Limited Methods and devices for controlling access to computing resources
US10637820B2 (en) 2011-10-21 2020-04-28 Uniloc 2017 Llc Local area social networking
US9208488B2 (en) 2011-11-21 2015-12-08 Mozido, Inc. Using a mobile wallet infrastructure to support multiple mobile wallet providers
US9116888B1 (en) * 2012-09-28 2015-08-25 Emc Corporation Customer controlled data privacy protection in public cloud
US8738049B1 (en) 2012-11-05 2014-05-27 International Business Machines Corporation Converged dialog in hybrid mobile applications
US10789594B2 (en) 2013-01-31 2020-09-29 Moshir Vantures, Limited, LLC Method and system to intelligently assess and mitigate security risks on a mobile device
US20140248908A1 (en) 2013-03-01 2014-09-04 Uniloc Luxembourg S.A. Pedestrian traffic monitoring and analysis
US9503536B2 (en) * 2013-03-14 2016-11-22 The Nielsen Company (Us), Llc Methods and apparatus to monitor media presentations
US9560149B2 (en) 2013-04-24 2017-01-31 The Nielsen Company (Us), Llc Methods and apparatus to create a panel of media device users
KR20150017844A (ko) * 2013-08-08 2015-02-23 삼성전자주식회사 페이지 구성 방법 및 이를 지원하는 전자 장치
US8745394B1 (en) 2013-08-22 2014-06-03 Citibank, N.A. Methods and systems for secure electronic communication
US8977113B1 (en) * 2013-10-25 2015-03-10 Joseph Rumteen Mobile device video decision tree
US10885583B2 (en) * 2013-12-19 2021-01-05 Chicago Mercantile Exchange Inc. Deterministic and efficient message packet management
US10810607B2 (en) 2014-09-17 2020-10-20 The Nielsen Company (Us), Llc Methods and apparatus to monitor media presentations
US9906893B2 (en) * 2016-06-16 2018-02-27 I/O Interconnect, Ltd. Method for making a host personal computer act as an accessory in bluetooth piconet
US10165612B2 (en) * 2016-06-16 2018-12-25 I/O Interconnected, Ltd. Wireless connecting method, computer, and non-transitory computer-readable storage medium
CN106973112B (zh) * 2017-04-18 2020-12-11 北京金山安全软件有限公司 一种数据处理方法及其系统、终端、服务器

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6108530A (en) * 1995-12-14 2000-08-22 Lucent Technologies Inc. System and method for transmitting a displayable message between short message entities in more than one data package
US6125281A (en) * 1997-01-31 2000-09-26 Nokia Mobile Phones Limited Real-time SMS application messaging using an SMSC-linked server
KR100296049B1 (ko) * 1999-03-19 2001-07-28 윤종용 단문메시지서비스를 통한 디지털 휴대용 단말기의 사용자 정보 송수신장치 및 그 방법
US6345279B1 (en) * 1999-04-23 2002-02-05 International Business Machines Corporation Methods and apparatus for adapting multimedia content for client devices
US6430624B1 (en) * 1999-10-21 2002-08-06 Air2Web, Inc. Intelligent harvesting and navigation system and method
AU4092001A (en) * 2000-03-21 2001-10-03 Magic4 Limited Method of, and means for, payment of information services delivered over the air
EP1415431A2 (en) * 2000-06-12 2004-05-06 Zendit Encryption system that dynamically locates keys
US7051080B1 (en) * 2000-08-04 2006-05-23 Oracle International Corporation Techniques for navigating in mobile applications
US20020073023A1 (en) * 2000-12-08 2002-06-13 Garry Castro Method and system for interactively delivering business chamber resources via a remote computer network
US7069536B2 (en) * 2001-06-28 2006-06-27 International Business Machines Corporation Method, system, and program for executing a workflow
US20040205618A1 (en) * 2001-11-19 2004-10-14 Jean Sini Runtime translator for mobile application content
US7088995B2 (en) * 2001-12-13 2006-08-08 Far Eastone Telecommunications Co., Ltd. Common service platform and software
US7707120B2 (en) * 2002-04-17 2010-04-27 Visa International Service Association Mobile account authentication service
US6880079B2 (en) * 2002-04-25 2005-04-12 Vasco Data Security, Inc. Methods and systems for secure transmission of information using a mobile device
US7334043B2 (en) * 2002-09-17 2008-02-19 At&T Delaware Intellectual Property, Inc. Extending functionality of workflow applications using instant messaging (IM)
EP1435743A1 (en) * 2002-12-30 2004-07-07 Nokia Corporation Download of application scripts to a mobile terminal by SMS
US7321920B2 (en) * 2003-03-21 2008-01-22 Vocel, Inc. Interactive messaging system
EP1509049A1 (en) 2003-08-20 2005-02-23 Accenture Global Services GmbH Methods and systems for providing information to mobile users over limited bandwidth
CN100341013C (zh) * 2004-03-23 2007-10-03 中国科学院理化技术研究所 基于网络的多用户笔记本电脑系统
AU2005228353B2 (en) * 2004-03-29 2009-08-20 Intellprop Limited Telecommunications services apparatus and method for modifying the routing of mobile terminated short messages (SMS)
US7849135B2 (en) * 2004-04-09 2010-12-07 At&T Mobility Ii Llc Sharing content on mobile devices
US7853782B1 (en) * 2004-04-14 2010-12-14 Sprint Spectrum L.P. Secure intermediation system and method
US20060077941A1 (en) * 2004-09-20 2006-04-13 Meyyappan Alagappan User interface system and method for implementation on multiple types of clients
US20060095290A1 (en) * 2004-11-02 2006-05-04 Kvarts, Llc System and method for authenticating users for secure mobile electronic gaming
US7895566B2 (en) * 2005-03-10 2011-02-22 Research In Motion Limited System and method for building a deployable component based application
US7680683B2 (en) * 2005-12-29 2010-03-16 Microsoft Corporation Dynamically repositioning workflow by end users
US8032397B2 (en) * 2006-01-19 2011-10-04 Oliver Charles Lawless Integrated prescription management and compliance system
EP1818813A1 (en) * 2006-02-02 2007-08-15 Research In Motion Limited System and method and apparatus for using UML tools for defining web service bound component applications
US20090305633A1 (en) * 2006-03-09 2009-12-10 Ville Warsta Identification of Mobile Electronic Terminal Through Wireless Interface Capabilities
US8069439B2 (en) * 2006-03-30 2011-11-29 Microsoft Corporation Framework for modeling continuations in workflows
US7873940B2 (en) * 2006-04-24 2011-01-18 Microsoft Corporation Providing packages for configuring software stacks
US8478310B2 (en) * 2006-10-05 2013-07-02 Verizon Patent And Licensing Inc. Short message service (SMS) data transfer
WO2008046161A1 (en) * 2006-10-19 2008-04-24 Fruitful Technologies Pty Ltd An interactive system and process

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8538845B2 (en) 2011-06-03 2013-09-17 Mozido, Llc Monetary transaction system
US9892386B2 (en) 2011-06-03 2018-02-13 Mozido, Inc. Monetary transaction system
US11120413B2 (en) 2011-06-03 2021-09-14 Fintiv, Inc. Monetary transaction system
US11295281B2 (en) 2011-06-03 2022-04-05 Fintiv, Inc. Monetary transaction system
CN103718503A (zh) * 2011-07-28 2014-04-09 瑞典爱立信有限公司 移动网络中基于客户端接口脚本的用户通信
CN103718503B (zh) * 2011-07-28 2017-05-31 瑞典爱立信有限公司 移动网络中基于客户端接口脚本的用户通信
US10438196B2 (en) 2011-11-21 2019-10-08 Mozido, Inc. Using a mobile wallet infrastructure to support multiple mobile wallet providers
US11468434B2 (en) 2011-11-21 2022-10-11 Fintiv, Inc. Using a mobile wallet infrastructure to support multiple mobile wallet providers
CN102364972A (zh) * 2011-11-24 2012-02-29 得实信息科技(北京)有限公司 一种运动数据加密传输的方法和运动记录仪
CN102364972B (zh) * 2011-11-24 2013-04-17 得实信息科技(北京)有限公司 一种运动数据加密传输的方法和运动记录仪
CN109716249A (zh) * 2016-09-09 2019-05-03 德马泰克公司 用于工作流的操作和管理的通信系统和利用不同操作平台的多个设备的集成

Also Published As

Publication number Publication date
HK1133774A1 (zh) 2010-04-01
EP2084921A1 (en) 2009-08-05
US20100197326A1 (en) 2010-08-05
EP2084921A4 (en) 2012-02-01
AU2007312879B2 (en) 2011-10-20
EP2084921B1 (en) 2018-12-12
CN101606400B (zh) 2014-05-14
AU2007312879A1 (en) 2008-04-24
WO2008046161A1 (en) 2008-04-24
CA2666616A1 (en) 2008-04-24
US9002386B2 (en) 2015-04-07
BRPI0717647A2 (pt) 2013-10-15

Similar Documents

Publication Publication Date Title
CN101606400B (zh) 交互系统和过程
US9820078B2 (en) Interactive system and process
CN100578942C (zh) 用于压缩以结构化定义语言表达的无线应用程序的系统和方法
US7849135B2 (en) Sharing content on mobile devices
CN100454913C (zh) 通过即时通信机器人与移动电话通信的装置和方法
US20090275307A1 (en) Mobile Communications Facilitated by Interactive Menus
CN101156167A (zh) 用于在数据网络上赠送的方法和设备
CN102640082A (zh) 行动器件的远程访问
CN104333599A (zh) 分享应用的方法和系统以及应用服务平台
CN101202760B (zh) 远程控制操作
KR101071786B1 (ko) 모바일 표준 템플릿 데이터를 제공하는 서버 및 시스템
CN101316300A (zh) 用于识别用户终端的存储器中存储的呼叫号码的运营商的系统和方法
KR100668602B1 (ko) 모바일 청구서 서비스 제공 방법 및 시스템
CN104392366A (zh) 数据比对信息获取的方法、装置及系统
CN107750440B (zh) 使用高级数据收集能力更改服务的设备、计算机可读介质和方法
CN1774877A (zh) 电信数据传输内容中字词符联接电信号码的方法及其系统
KR101084476B1 (ko) 전화망을 이용한 멀티미디어 정보 제공 방법 및 시스템과 이를 위한 프로그램 기록매체
AU2012200352B2 (en) An interactive system and process
KR101018275B1 (ko) 단문 메시지 서비스를 이용한 콘텐츠 서비스 시스템 및 그 방법
CN114039754B (zh) 一种安全验证方法及装置
CN101998317A (zh) 基于短信协议的数据转换系统及其转换方法
CN117591761A (zh) 一种SAP系统与ITSM SaaS系统嵌入式提单集成的方法
KR100425051B1 (ko) 단문 메시지 출판 방법 및 장치
KR101100307B1 (ko) 단축기호를 이용한 메시징기능이 구비된 이동통신 단말기및 그 동작방법
KR20090029916A (ko) 이동통신단말기를 포함하는 메시지 송수신 시스템 및 그제어방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1133774

Country of ref document: HK

ASS Succession or assignment of patent right

Owner name: JIEMANGE IPR CO., LTD.

Free format text: FORMER OWNER: DELOITTE SERVICES PTY LTD.

Effective date: 20120515

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20120515

Address after: Dublin 1 international finance service center, customs building Plaza, 6

Applicant after: Jiemange IPR Co.,Ltd.

Address before: Vitoria, Australia

Applicant before: Fruitful Technologies Pty Ltd.

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1133774

Country of ref document: HK

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140514

Termination date: 20211019