发明内容
根据本发明的教导,提供了用于移动电话应用程序的病毒式分发的、不需要PC接入的系统和方法,该移动电话应用程序优选地以独立于设备的形式来编写。一些实施例中的系统包括提供移动服务的服务器。该服务器包括应用程序数据库、客户的数据库和应用程序分发单元。用户的移动电话包括与服务器合作的安装的应用程序。该移动电话还包括包含地址簿的存储器,其中,移动电话的用户将用户的熟人的电话号码存放在该地址簿中。应用程序提取该用户的地址簿的电话号码中的至少一部分并且将其传送到服务器。服务器的应用程序分发单元联系列表中的未注册用户并且邀请他们安装应用程序。接受该邀请并且安装所提供的应用程序的用户成为注册客户。尽管在运行于移动电话设备上的基于Java的应用程序方面描述本发明,但是本发明不限于运行于移动电话设备上的基于Java的应用程序,而是包括所有相关的编程语言和移动设备。
本发明的相关目的是提供一种使所有支持互联网的移动用户(目前24亿)都能够使用移动应用程序的方法和系统,所述移动应用程序包含端用户为了无需PC或固定互联网连接地使用和操作来自应用程序中的服务而所需的一切。这些操作包括但不限于:开设账户,发送/接收邀请,发送移动应用程序,经由信用卡、电话卡个人标识号(PIN)或其它资金转移机制进行移动付账,检查各种费用和结余,设置各种选项等。所有涉及移动应用程序的活动都直接从移动应用程序执行,而完全不需要经由PC、移动电话或者具有互联网浏览器的任何其他设备上网,也不需要呼叫电话代理/IVR或到零售点等。
特别地,相关的移动设备应用程序包括但不限于以下服务:
1.邀请新用户加入服务;
2.自动开设账户;
3.经由来自消息、SMS、MMS、服务消息(无线应用协议(WAP)推送)等的链接下载应用程序;
4.可能使用VoIP技术来在本地或者国际的任何地方拨打电话;
5.检查呼叫费用和用户账户结余;
6.使用信用卡或者PIN及电话卡代码付账;
7.将资金从一个用户转移到另一个用户;
8.发送和接收SMS、即时通讯(IM)、照片及文件;以及
9.将呼叫重定向到另一个号码。
根据本发明的教导,提供一种根据本发明实施例的、用于为具有一个或者多个纯(pure)移动应用程序的移动设备提供一种或者多种服务的系统。该系统包括服务器,该服务器包括前过滤模块、认证引擎,该前过滤模块用于向用户移动电话发送请求/接收来自用户移动电话的请求,该认证引擎用于过滤从服务器请求服务的授权/未授权请求。优选地,该服务器还包括用于对输出数据进行加密和对输入数据进行解密的加密/解密引擎、以及保存所有顾客的相关信息的数据库。该服务器还可包括用于执行回拨服务的呼叫路由模块和用于执行计费相关问题的计费引擎。
本发明的一个方面是将用户的移动电话转变为连接到服务器且使用服务器资源来管理该服务器提供的服务的一种“远程终端”。(通常,在用户的移动设备上激活的浏览器允许执行对服务进行操作的大多数任务)。然而,该“终端”被调整为执行特定的功能,并且拥有自己的数据库,该“终端”可以在该数据库中存储运行应用程序所需的信息以及可以处理仅受移动电话处理器的功率所限制的各种任务(比如对通过互联网发送的请求进行加密或者对语音进行加密)。
根据本发明的教导,另外提供了一种用于编写可在基本上所有的移动电话或者设备上运行的独立于设备的应用程序的方法。该方法包括只使用可在基本上所有的支持Java的移动电话或设备上运行的命令。通过随后的描述和附图,另外的目的和优势将变得显而易见。
具体实施方式
下面,下文中将参照其中示出了本发明优选实施例的附图更充分地描述本发明。然而,本发明可以以多种不同形式实施,而不应被理解为限于此处阐述的实施例;相反,这些实施例的提供是为了使本公开内容详尽且完整,能够向本领域技术人员充分地传达本发明的范围。除非另有限定,否则此处使用的所有技术和科学术语具有与本发明所属领域的普通技术人员通常所理解的相同的含义。此处提供的方法和示例仅是说明性的且不意在成为限制性的。所建议或提及的所有材料仅作为示例提供而绝无限制。
下文中术语‘SIP’指会话初始化协议。
下文中术语‘PBX’指专用分组交换机。
下文中术语‘VoIP’指互联网协议语音,即用于在互联网上对语音通信量进行路由的系统。
下文中术语‘网络化移动设备’指任何具有互联网连接性和计算能力的移动设备,比如:具有无线、全球微波互联接入(WiMax)或者蓝牙连接性的上网本或者笔记本,移动电话,3G蜂窝电话,智能电话,PDA,其它具有GPRS和唯一CID或者任何其他移动终端标识(比如媒体访问控制(MAC)地址、互联网协议(IP)地址等)的移动装置。
作为介绍,本发明的一个主要意图包括提供一种用于移动电话应用程序的无需PC接入的病毒式分发的系统和方法。这样的应用程序可以优选地是(但不是必须是)独立于设备的应用程序。
现在参照图1,其呈现了根据本发明实施例的病毒式软件应用程序系统的示意框图。在图1示出的示例中,移动电话10是服务器200的注册客户,该服务器200提供移动服务,例如使用VoIP的国际呼叫服务。移动电话10包括安装的应用程序100,应用程序100独立地在移动电话10上运行且与服务器200合作。移动电话10还包括包含地址簿20的存储器,移动电话10的用户将其熟人的电话号码存放在地址簿20中。服务器200包括应用程序数据库210、客户的数据库220和应用程序分发单元230。客户的数据库220细分为注册客户子数据库222和未注册客户子数据库224。应用程序数据库210包括需要安装在客户的移动电话10中的所有应用程序,以提供可用的移动服务。应用程序分发单元230可以联系其他的用户50,以邀请他们安装应用程序100或任何其他应用程序。通常,接受邀请且安装所提供的应用程序的用户50成为注册客户。
通常,移动电话应用程序是基于本领域中已知的Java J2ME(Java 2微版本)平台。因此,基于Java的应用程序可以被分发到支持Java的移动电话,当前这包括大多数使用中的移动电话。本发明的一个方面是提供基于例如Java应用程序的病毒式营销分发方法,该方法使得能够快速分发所述应用程序。这原则上将例如通过以低顾客取得成本来扩大顾客群等使生意能够快速增长。可以例如通过邀请在指定用户的社交网络、电话列表等中的新用户来病毒式地传播该应用程序。如此这样成为系统用户的联系人同样向他们的社交网络的成员发送该应用程序,从而使得潜在用户指数式增长。
在图2中示出的软件应用程序传输的顺序图300中示出了病毒式营销分发过程。用户10安装(步骤302)应用程序100(在图1中),并因此成为服务器200的注册客户,并且随后被添加到注册客户子数据库222。应用程序100询问用户10应用程序100是否可以提取用户的地址簿20(存储在用户10的移动设备中)中的某一部分。为了由应用程序100执行的任务,应用程序100可以使用列表20的任何部分。在该过程的下一个步骤310中,应用程序100向分发服务器200传送列表20。服务器200对列表20中被传递过来的部分进行分类。丢弃出现在列表20上的已经注册的用户,而将未知的用户添加到未注册客户子数据库224中。在该过程的下一个步骤320中,服务器200向列表20上的未注册用户50a至50c中的至少一部分发送包含(例如)到应用程序100的嵌入式链接的消息。服务器200激活应用程序分发单元230(图1),该应用程序分发单元230继而向列表20上的未注册用户50a至50c中的至少一部分发送包含到应用程序100的嵌入式链接的消息。该消息选自包括如下通讯协议的集合:无线应用协议推送(WAP PUSH)、SMS(文本通讯)、企业短消息服务(ESMS)、MMS、电子邮件、即时通讯或者本领域已知的任何其他的通讯协议。
在第一实施例中,应用程序100被编写为适于所有移动设备的通用/一般软件(下文中将深入讨论)。服务器200向用户50发送下载应用程序100的链接。在第二实施例中,当应用程序100是针对特定的移动设备或移动设备组编写的时,服务器200提供将在特定用户50的移动设备上运行的适当的特定应用程序100。在该过程的下一个步骤330中,未注册用户50a可选地接受安装应用程序100的邀请。如果用户50a接受安装应用程序100的邀请,那么向服务器200返回文件,比如JAD文件、.jar文件等。接下来的步骤350中服务器200向用户50a提供应用程序100的相关版本。在第一实施例中(当应用程序100被编写为在大多数或者所有的移动设备上运行的通用/一般软件时),服务器200向用户50a发送下载适合所有移动设备的应用程序100的链接。在第二实施例中(当应用程序100被编写为特定的设备/设备组软件时),服务器200向用户50a发送到应用程序100的供应商的网站的链接,用户50a可以从该网站下载应用程序100。
当用户50a点击包含在例如SMS消息中的链接时,可选地,浏览器可以自动打开,并且服务器200从用户50a的浏览器接收各种信息,比如:
a.IP地址。通常,对移动电话而言,该IP地址是移动服务供应商的IP地址。
b.移动设备浏览器标识(标题或“指纹”信息,包括例如设备类型和/或型号)。
c.其他的信息,比如:移动设备型号、品牌和国际移动设备标识(IMEI)等。
目前,这种信息被作为标准网络通信协议的部分而提供,但是一般不用于如此处公开的移动设备识别的目的。在标准网络通信协议中,通常提供有包含包括设备类型/型号或者其他标识的信息的“指纹”,本发明使用所述“指纹”来确定对软件的版本要求。以这种方式,用户不必指明设备版本信息,因为其是自动确定的。
然后服务器200分析接收到的信息,以确定与用户50a的设备兼容的应用程序100的类型。例如,服务器200可以使用用户50a的设备的IP地址,来根据移动运营商的位置以正确的语言发送应用程序100(例如:用法语向具有Orange France(法国电信集团的品牌)的IP地址的用户发送应用程序)。另一个示例,服务器200可以使用浏览器标识来向不运行Java的iPhone发送兼容的应用程序。
步骤360:服务器200向用户50a提供应用程序100的适当版本。
步骤370:在用户50a的移动电话上安装应用程序100。
步骤310′:应用程序100向服务器200传送从存储在用户50a的移动电话中的用户50a的地址簿提取的潜在用户的列表。
步骤320′:服务器200将包含(例如)到应用程序100的一个或多个嵌入式链接的消息发送到从存储在用户50a的移动电话中的地址簿提取的潜在顾客的列表上的未注册用户50中的至少一部分。
从这里,过程可针对联系上的每个新用户在步骤370重复重新开始,逐渐扩大范围(branch out)直到试遍可获得的所有电话簿中的所有地址。
应当注意的是步骤302-370完成整个分发循环375。
在本发明的某些实施例中,服务器200记录向特定的未注册用户发送的安装指定的应用程序100的邀请的数量。如果用户50拒绝邀请的次数超过邀请数量的某个阈值,那么服务器200停止向用户50发送安装应用程序100的邀请。
在示例应用程序中,应用程序100提供国际呼叫服务。图3中示意地示出了该示例。
这里我们说明如下所述的另外的步骤。
步骤410:在用户10的移动电话上安装应用程序100(图1的应用程序100)。
步骤420:应用程序100请求用户10从用户10的地址簿提取拥有国际电话号码的被呼叫人。
步骤425:如果用户10拒绝该请求,则退出。
步骤430:如果用户10同意该请求,则应用程序100从地址簿提取拥有国际电话号码的被呼叫人。
步骤440:应用程序100向服务器200传送提取的列表。
步骤450:服务器200向所提取的列表上的未注册用户50中的至少一部分发送包含到应用程序100的嵌入式链接的消息,从而邀请用户50安装程序100安装在他们的移动电话上。
步骤460:如果用户50同意,则转到步骤410。
在本发明的提供范围内,还提供了一种方法和系统,用于允许所有支持互联网的移动服务用户(目前24亿)利用包含端用户为了使用和操作一组服务所需的一切的特定移动应用程序,所述一组服务包括但不限于开设账户、邀请/接收和发送移动应用程序、进行移动付账(通过信用卡、电话卡PIN或者预付费卡代码和转移资金)、检查费用和结余、设置各种选项等。如所述,一个重要的应用是提供通过VOIP的国际呼叫服务、或者其他网络化服务,以免除标准的长途费用。如在此所述,不需要使用PC就能提供这样的服务,从而允许将服务提供给任何支持网络的手机用户。
现在参照图4,其是根据本发明实施例的、用于为具有一个或多个纯移动应用程序的移动电话提供一种或多种服务的系统的示意图。移动服务系统包括服务器200,服务器200具有向用户移动电话10发送呼叫/接收来自用户移动电话10的呼叫的前过滤模块210。还包括用于处理从服务器200请求服务的输入的呼叫的认证引擎230。优选地,服务器200还包括用于对输出数据进行加密和对输入数据进行解密的加密/解密引擎220。优选地,服务器200还包括保存所有顾客的相关信息的数据库250。优选地,服务器200还包括用于执行回拨服务的呼叫路由模块240、用于对相关服务进行计费的计费引擎270和SIP-PBX 260(PBX-专用分组交换机;SIP-会话初始化协议),所述SIP-PBX 260是基于互联网协议语音(VoIP)以使得能够通过互联网通话的专有电话交换网络,涉及比如视频、语音、聊天、游戏和虚拟现实等的多媒体元素。VoIP供应商80将呼叫路由到目标。当用户10发出呼叫请求时,PBX 260接收拨打特定号码的命令,该呼叫通过供应商80进行路由,其中供应商80可选地通过互连90对该呼叫进行路由,这时来自互联网的VoIP呼叫被转换成全球移动通信系统(GSM)网络上的常规线路的常规呼叫。
在用户方,在一个实施例中,用户的移动电话10包括通常是Java平台的“纯”移动软件,该Java平台针对小型的、独立或者可连接的用电设备和嵌入式设备。纯移动软件技术包括虚拟机和一组适用于这些设备的定制运行时间环境的应用程序接口(API)。纯移动软件技术具有两种主要组成部分,即配置和简档(profile)。移动电话10还包括发送/接收模块110和数据库150,该数据库150包括用户的相关信息和能够使用服务器200提供的服务的应用程序。优选地,移动电话10还包括用于对输出数据进行加密和对输入数据进行解密的加密/解密模块120。接收模块210通常是软件程序,该软件程序驻留在服务器200的开放端口之一上,并“监听”(等待)通过软件100从用户的移动电话10发出的命令。当“垃圾”数据或者未授权的命令被发送给服务器200时,简单地将其忽略。在服务器200接收到识别的输入请求后,该请求被解密,并然后对照数据库250中的用户相关信息对其进行检查,以了解发出命令的用户是否是授权用户。如果发送者的认证结果是肯定的,那么服务器200运行大量的内部操作来处理输入的请求。服务器200将命令解读成被要求提供与从移动电话软件100接收的命令相关的服务的相关任务列表。在这种情况下,运行于移动电话10上的软件100充当处理大量任务以全面提供服务的服务器200的终端。对于发送给服务器200的每个不同的服务请求,可能需要执行不同列表的操作。
现在参照图5,其是关于由服务器200提供的服务的示例纯移动应用程序的示意图。在下面的示例中,举例说明了根据不同的服务请求而执行的任务的差异。
示例1
请求“呼叫号码:+1-123-1234567”(图5中对服务X的请求)。服务器200执行以下任务:
a.经由互联网30接收对服务的请求;
b.可选地,将该请求解密;
c.使用数据库250对该顾客进行认证;
d.检查该顾客的账户中是否有足够的资金;
e.向PBX发送请求以执行对顾客的回拨;以及
f.在顾客应答之后,呼叫期望的目标50。
示例2
请求在用户的账户中“查看结余”(图5中对服务Y的请求)。服务器200执行以下任务:
a.经由互联网30接收对服务的请求;
b.可选地,将该请求解密;
c.使用数据库250对该顾客进行认证;
d.使用结余检查模块275检查该顾客的结余;以及
e.经由开放端口将被请求的数据发回给移动电话软件100。
应当注意,当使用“超文本传输协议”(“http”)时,java应用程序通过POST命令发送命令并接收来自服务器200的包含结余数据的应答,该结余经由java界面向顾客示出。计费引擎270处理涉及资金交易的所有请求。计费引擎270被用于计算和记录用户账户的结余、累加拨打电话的费用、发送SMS消息、向其他用户转移资金等。通常,用户使用安装在用户的移动电话上的应用程序,通过服务供应商(例如通过信用卡)向用户账户存入资金。当计费引擎270接收到给账户添加资金的请求时,计费引擎270向适当的银行(或向银行网关)发送请求(例如发送信用卡详情)用于授权,并且如果被授权,则对信用卡进行收费且将相关数目的资金存入用户的账户。
当用户使用预付费卡时,计费引擎270检查该卡是否有效并且将相关数目的资金存入用户的账户。
本发明的另一个提供包括提供一种用于编写独立于设备的应用程序的方法。这可以是例如基于Java的、可在基本上所有的支持Java的移动电话或设备上运行的应用程序。该方法包括仅使用可在基本上所有的支持Java的移动电话或设备上运行的命令。通过仅使用所有不同的移动设备上的Java的实际实现的共同部分,有效地实施了在基本上所有的支持Java的移动平台上正确地运行的通用移动Java应用程序。所述支持Java的移动平台包括了大多数现有的移动电话。
参照图6,其是根据本发明实施例的、在各种移动电话上的Java的实际实现的示例(20、30和40)的共同部分的示意图,从而创建了在基本上所有的支持Java的移动设备上正确地运行的的通用移动Java应用程序100。在图6中示出的示例中,一些诺基亚移动电话通常使用诺基亚2610 Java语言,一些摩托罗拉移动电话通常使用摩托罗拉Z6 Java语言,而一些索尼/爱立信移动电话通常使用索尼/爱立信W610 Java语言。在基本上所有的常用的基于Java的应用程序中都有效的应用程序命令形成了本发明的通用移动Java语言所使用的命令集。此外,该通用移动Java应用程序通常使用由移动电话制造商提供的初始的UI和GUI。因此,根据本发明的方面,由通用移动Java应用程序提供的输出画面将在图形上与在特定移动电话上运行且由移动电话制造商提供的其他应用程序看上去类似。本发明的通用移动Java语言使开发者能够创建应用程序,以提供如上所述的移动服务,比如进行VoIP呼叫或常规呼叫、发送SMS、即时通讯(IM)、发送照片和文件、发送移动应用程序、经由信用卡或代码付账、检查费用和结余等。本发明的一个方面是使移动应用程序/软件开发者能够大致上减少开发和维护的资源和精力,从而不必为每个现有移动设备的型号或者系列、或者为频繁地投放市场的每个新电话型号开发不同的软件版本。
总之,通用移动应用程序可以被发送给基本上所有的具有支持Java的移动设备的用户。通用移动应用程序使移动电话服务供应商能够提供比如邀请新用户、为新用户认证电话号码和自动开设账户的服务。其他的移动电话应用程序包括提供低成本的VoIP或常规的呼叫、发送SMS、即时通讯(IM)、发送照片和文件等。
因此,从实施例和示例方面描述了本发明,显而易见可以以多种方式变化上述实施例和示例。这样的变化不应被认为偏离了本发明的精神和范围,而且对本领域技术人员而言应该显而易见的是所有这样的修改意在被包括在本专利申请的范围内。
所选择的实施例的提供是为了使本公开内容详尽且完整,能够向本领域技术人员充分传达本发明的范围。除非另有限定,否则此处使用的所有技术和科学术语具有与本发明所属技术领域内的技术人员通常所理解的相同的含义。此处提供的方法和示例仅是说明性的而不是意在成为限制性的。所建议或提及的所有材料仅作为示例提供而绝无限制。