用于奖励应用程序安装的系统及方法与流程

文档序号:11732655阅读:308来源:国知局
用于奖励应用程序安装的系统及方法与流程
用于奖励应用程序安装的系统及方法相关申请案的交叉引用本申请案根据专利法请求于2010年8月6日申请的名为“SYSTEMANDMETHODFORREWARDINGAPPLICATIONINSTALLS”的美国临时专利申请案第61/371,500号的优先权,所述申请案的全文以引用的方式并入本文中。技术领域本申请案的示例性实施方式通常涉及监控在线用户活动的领域,且更具体地说,但并不加以限制,涉及用于检测应用程序安装的技术。

背景技术:
在线广告模型通常涉及通过一或多个广告渠道将广告或建议传递给用户。然而,广告的效果取决于广告类型和用于传递广告的渠道而改变。特定来说,用户可能忽略广告的一个原因在于:没有刺激用户关注广告。附图说明在不一定按比例绘制的图式中,相同数字符号在多个视图中描述实质上相似的组件。具有不同字母后缀的相同数字符号表示实质上相似的组件的不同实例。图式通常以实例但不加以限制的方式说明本文件中论述的各种实施方式。图1为图示网络环境的示例性实施方式的方块图,在所述网络环境内,客户端装置通过网络与应用程序服务器连接,而推荐系统监控所述连接。图2为图示根据示例性实施方式的客户端装置、奖励系统与应用程序商店之间的示例性互动的流程图。图3为图示根据示例性实施方式的奖励系统、广告商与发布者之间的回应用户活动的示例性互动的流程图。图4为展示根据示例性实施方式的在客户端装置上运行的应用程序模块和在服务器上运行的奖励系统模块的方块图。图5为图示用于跟踪及刺激应用程序安装的示例性方法的流程图。图6为图示用于传递及监控在应用程序内发生的目标按行为付费事件的流程图。图7图示呈计算机系统的示例性形式的机器的图解表示,在所述计算机系统内,可执行用于使机器执行本文中论述的方法中的任何一或多个方法的一组指令。具体实施方式以下详细描述包括对附图的参考,所述参考形成详细描述的一部分。图式展示根据示例性实施方式的图解。足够详细地描述这些实施方式(在本文中也称作“实例”),以使所属领域的技术人员能够实践本文中所公开的实施方式。将对所属领域的技术人员显而易见的是,不需要示例性实施方式中的具体细节,以便实践本文中所公开的实施方式。可组合示例性实施方式,可使用其他实施方式,或可在不脱离所请求的范围的情况下进行结构改变、逻辑改变和电气改变。因此,以下详细描述不应理解为限制意义,并且,范围由所附权利要求书和权利要求书的等效物限定。在客户端环境中,可提供应用程序用于在集中式站点(例如,应用程序商店(“应用程序商店”))处下载。在应用程序商店中的应用程序可通过多种度量标准(例如,类别、流行度和费用)列出。关于经提供用于在应用程序商店中下载的应用程序,发布者应参考发布或另外提供由用户下载的应用程序的实体。广告商应参考提供通常为将由用户采取的行为形式的建议的实体。图1为图示网络环境的示例性实施方式的方块图,在所述网络环境中,客户端装置通过网络连接到代管应用程序商店的应用程序服务器。参看图1,客户端装置102和客户端装置104各自存储一或多个应用程序106,所述客户端装置102及所述客户端装置104可通过网络108(例如,互联网)连接到执行应用程序商店122的应用程序服务器120。在一些实施方式中,客户端装置102和客户端装置104可为移动装置、个人计算机、平板计算机、膝上型计算机或其他计算装置。客户端装置102和客户端装置104可重新导向到应用程序商店122,以通过网络108下载一或多个应用程序。网络服务器110可托管用于客户端应用程序平台的网站,该客户端应用程序平台连接广告商和发布者。网络服务器110可向网站提供各种托管型网络服务,包括代码部署及测试、在线分析、数据存储和任务管理。此外,网络服务器110可连接到一或多个数据库112,所述一或多个数据库112存储与网站相关联的数据。在一些实施方式中,网络服务器110可为提供网络服务的托管型网络服务器。然而,预计可使用不同的第三方托管型网络服务提供商,或与网站相关联的服务器可提供网络服务,而不依靠第三方提供的网络服务。额外网络服务器(未图示)可包括与托管型网站相关联的服务器。在一些实施方式中,一或多个数据库112可为SimpleDB分布式数据库。与结构化查询语言(SQL)数据库相比,SimpleDB分布式数据库使用键值对启用快速查找操作和检索操作。预计可使用其他数据库,例如采用键值对存储并索引数据的其他数据库。在一些实施方式中,所述数据库112中的至少一个数据库112可为SQL数据库。与网站相关联的数据(例如,用户数据和应用程序跟踪数据)也可存储在缓存服务器114中。缓存服务器114可包括(例如)呈RAM形式的存储器116,所述存储器116存储储存在一或多个数据库112中的部分或所有数据。缓存服务器114可作为网站的备用或补充数据存储器操作。在一些实施方式中,缓存服务器114可为Memcached分布式存储器缓存系统。发布者服务器118可充当下载到客户端装置102或客户端装置104的应用程序的来源,或发布者服务器118可将应用程序提供到应用程序服务器120以用于存储并列出在应用程序商店122中。相似地,广告商服务器118可代表广告商或广告网络将广告提供并传递到客户端装置102或客户端装置104,或广告商服务器118可通过网络108将广告提供到应用程序服务器120以便应用程序服务器120传递。图2为图示根据示例性实施方式的客户端装置、奖励系统与应用程序商店之间的示例性互动的流程图。参看图2,当使用网站广告平台或与网站广告平台相关联的应用程序执行时,对奖励系统进行调用。奖励系统或平台可包含网站、提供网络服务的一或多个网络服务器和一或多个数据存储装置,所述一或多个数据存储装置通过网络108分布并访问或连接到一或多个网络服务器。调用可为命令或由应用程序中的软件代码启动的推送(push)通信的形式。命令被推送到奖励系统。在一些实施方式中,命令可通过一或多个服务器推送到奖励系统。在其他实施方式中,命令可直接推送到奖励系统。在区块208处,与奖励平台相关联的奖励机器204可将广告传递到执行应用程序的客户端装置202。奖励平台可跟踪广告的显示,以使得平台可记录广告印象。在区块210处,客户端装置202可接收广告。广告可能为与在客户端装置202上执行的应用程序有关的建议或推荐。在一个示例性实施方式中,推荐建议可提示用户下载不同应用程序来换取奖励或激励。在示例性实施方式中,奖励或激励可为用于与执行的应用程序一起使用的虚拟货币或虚拟商品。虚拟货币可用于购买与执行应用程序相关联的虚拟商品或真实商品。在区块212处,客户端装置202(例如)通过选择对所推荐的应用程序的引用或点击URL或超链接访问推荐。在一些实施方式中,推荐可将用户导向到应用程序商店206,并且,在一些实施方式中,推荐可将用户导向到应用程序商店206中的所推荐的应用程序。在区块214处,当用户点击推荐时,推荐指向奖励平台,在所述奖励平台中跟踪且存储所述推荐。在一些实施方式中,存储访问推荐的客户端装置的唯一装置标识符(“Udid”)。在一些实施方式中,还存储与所推荐的应用程序相关联的应用程序标识符(“AppID”)。预计还可存储其他标识信息,包括客户端装置的互联网协议(“IP”)地址、客户端装置的媒体访问控制(“MAC”)地址或账户标识符(例如,客户端装置账户标识符(例如,电话号码)或第三方账户标识符(例如用户名、账户标识符、账户标识符))。一旦存储,奖励平台可将用户重新导向到应用程序商店206。在区块216处,客户端装置可重新导向到应用程序商店206中的所推荐的应用程序。在区块218处,所推荐的应用程序可从应用程序商店206下载到客户端装置202。在区块220处,客户端装置202可安装所推荐的应用程序。在示例性实施方式中,一或多个奖励机器204可能不了解客户端装置202是否实际上从应用程序商店206下载所推荐的应用程序,因为奖励平台可能无法使用应用程序商店206的机制和内部工作原理。在区块222处,客户端装置202可执行安装的应用程序。通过一或多个奖励机器204或通过广告商包括在所推荐的应用程序中的脚本或其他代码可触发所推荐的应用程序发出命令或者另外将数据推送到一或多个奖励机器204。命令可向一或多个奖励机器204指出:装置(如由装置的Udid标识)已执行所推荐的应用程序。在区块224处,一或多个奖励机器204可检验推荐转换是否已经发生。在一些实施方式中,通过使用执行应用程序的装置的Udid和正被执行的应用程序的AppID搜索存储的点击表来检验推荐转换(例如,所推荐的应用程序的安装)。在一些实施方式中,可通过使用其他装置或账户标识符(例如,IP地址、MAC地址、第三方账户标识符)搜索存储的点击表来检验推荐转换。除其他数据(例如,执行日期或访问日期)之外,存储的点击表可存储由客户端装置下载的每一应用程序的安装历史。如果搜索存储的点击表显示用户最近在预定时间量内点击应用程序,并且用户先前未安装应用程序,则应用程序的执行可视为转换。在区块226处,如果确定转换已经发生,更新一或多个奖励机器204的奖励域。奖励域跟踪系统中的所有奖励。在区块228处,一或多个奖励机器204可关联奖励数据与客户端装置202或与客户端装置202的用户相关联的账户,并且,一或多个奖励机器204可将奖励数据传输到用户账户或客户端装置202。一或多个奖励机器204可调用软件方法或命令将奖励传输给用户。在一些实施方式中,一或多个奖励机器204可将奖励推送到用户账户或客户端装置202。在一些实施方式中,客户端装置202的用户可从一或多个奖励机器204检索奖励。奖励可为在所推荐的应用程序内使用的虚拟货币或虚拟商品。图3为图示根据一些实施方式的在奖励系统、广告商与发布者之间的回应用户活动的示例性互动的流程图。在区块308处,试图将应用程序推销给奖励系统平台的用户的广告商为用户账户添加贷款。贷款可指示平台广告商306愿意就每个应用程序安装支付多少钱。在区块310处,与平台(或奖励网站)相关联的一或多个奖励机器304可更新与广告商306相关联的账户。账户数据可存储在数据库或查找表中。在区块312处,奖励平台跟踪并检验推荐转换。推荐转换可包含广告商306所推荐的应用程序的安装。当用户点击推荐时,存储该点击和附随数据(包括(但不限于)客户端装置的Udid和IP地址)。在一些实施方式中,可存储其他装置或账户标识符(例如,MAC地址、第三方账户标识符)。因为奖励平台可能无法使用应用程序商店或其他第三方应用程序库的内部工作原理,所以通过检测客户端装置对所推荐的应用程序的执行来检验推荐转换。应用程序可将数据推送到奖励平台,指示客户端装置已执行所推荐的应用程序。如果推荐转换已经发生,在区块314处,在奖励平台上更新金融记录。在示例性实施方式中,可调用软件方法“send_money_txn”以将交易数据发送到(图1的)网络服务器110。预计用于将交易数据发送到网络服务器110的软件方法的名称是不重要的;可调用其他软件方法将交易数据发送到网络服务器110。网络服务器110可将交易插入数据库表中,所述数据库表存储应用程序交易。脚本可定期执行,以在表上执行SUM操作。在示例性实施方式中,脚本可每分钟执行。在区块316处,脚本可记入广告商306账户的借方。在区块318处,脚本还可记入发布者302账户的贷方。在示例性实施方式中,可针对每一检测的应用程序安装执行区块314、区块316和区块318。注意,图3图示区块312、区块314、区块316和区块318未连接到其他区块。根据一些实施方式,此情况说明可不依赖于其他操作而执行与这些区块相关联的操作。图4为展示根据示例性实施方式的在客户端装置102上运行的应用程序模块和在网络服务器上110运行的奖励系统408模块的方块图。应用程序106可包括执行检测模块402、通信模块404和协议处理器模块406。执行检测模块402可监测何时执行应用程序106。在示例性实施方式中,执行检测模块402可由奖励系统408或广告商插入应用程序106中来跟踪应用程序106的执行。此外,除跟踪应用程序106的执行之外,执行检测模块402可跟踪应用程序使用数据,包括用户与应用程序106的互动、使用持续时间和虚拟商品或虚拟货币的使用。通信模块404可将数据传输到应用程序106并可从应用程序106接收数据。在执行应用程序106之后,通信模块404可与执行检测模块402一起操作,以将数据(例如,命令)推送到奖励系统408。通信模块404还可从奖励系统408接收推荐建议,并可传输推荐建议的验收连同关于应用程序106和客户端装置102的识别信息。协议处理器模块406可注册在客户端装置102上使用的协议处理器。协议处理器模块406可代表应用程序106的发布者注册协议处理器。奖励系统408可与应用程序106的发布者合作来使用协议处理器以获得应用程序106的访问。奖励系统408可通过通信模块404将代码传输到客户端装置102,并可使用暴露的协议处理器将代码插入应用程序106中。代码可使得奖励系统408能够向用户提供进行目标按行为付费事件的激励。目标按行为付费事件的实例可包括(但不限于)登录到或签到应用程序账户、观看视频、进行调查和访问特别广告。协议处理器模块406可与执行检测模块402一起操作来检测用户何时执行按行为付费事件。回应于按行为付费事件,执行检测模块402可产生命令或可启动数据推送来通知奖励系统408用户已进行按行为付费事件。奖励系统408包括推荐跟踪模块410、应用程序使用/安装模块412、数据库接口模块414、深度链接模块416、欺诈检测模块418和通信模块420。推荐模块410可选择并产生将要传输给客户端装置102的推荐建议。在示例性实施方式中,推荐建议为针对正被执行的应用程序优化的建议清单。建议清单可包含激励用户下载的应用程序清单,其中激励为虚拟货币或虚拟商品。建议清单可与基于每一应用程序存储的禁用建议清单相比,以确定应从报价单挑选哪些建议。推荐跟踪模块410可使用来自各种广告网络的广告。推荐跟踪模块410可选择将要提供给用户的广告,其中根据正由客户端装置102执行的应用程序106而提供不同广告。可使用广告订单算法选择作为推荐提供的广告以供传递,所述广告订单算法优化待通过一或多个预定度量标准传递的广告。在一些实施方式中,每一广告的千人实际成本可视为确定交付哪个广告。应用程序使用/安装模块412可监控及跟踪应用程序使用和安装。无论何时推荐将用户送到客户端装置102先前未运行的特殊应用程序的应用程序商店,应用程序使用/安装模块412可存储客户端装置102的Udid。客户端装置102的Udid可与对应于由客户端装置102执行的每一应用程序的应用程序标识符存储。无论何时客户端装置执行应用程序,Udid可用作密钥来启用快速查找。在这方面,奖励系统可使用Udid来查找由客户端装置102执行的每一应用程序清单,以确定执行的应用程序是否为最新安装的应用程序。在一些实施方式中,其他标识符(例如,IP地址、MAC地址、第三方账户标识符)可用于跟踪客户端装置的应用程序安装历史。相似地,无论何时用户点击应用程序商店下载应用程序,应用程序使用/安装模块412可将Udid和AppID作为密钥存储在商店点击表中。当应用程序使用/安装模块412试图确定执行的应用程序是否为最近下载的及是否为新安装时,所述模块412可参考商店点击表。数据库接口模块414可与连接式数据库和分布式数据库接口连接,以存储及检索应用程序和用户数据。在示例性实施方式中,数据库接口模块414可与数据库或数据存储装置接口连接,以基于每一客户端装置访问应用程序的安装历史。举例来说,奖励系统408可使用用于存储和维持关于安装的应用程序和奖励的记录的SQL存储平台和SimpleDB存储平台两者。数据库接口模块414可从奖励系统408中的其他模块接收数据库检索命令和数据库存储命令,并且,在一些实施方式中,数据库接口模块414可解译这些命令以与存储平台适当地接口连接。深度链接模块416可与在客户端装置102上注册的协议处理器模块406接口连接,以将代码插入应用程序106中。代码可促进用户到应用程序内的特殊事件的链接或重新导向,从而允许奖励系统为发生在应用程序106中的某些按行为付费事件提供目标激励。举例来说,深度链接模块416可将代码插入应用程序106中,所述代码为用户观看应用程序106中的视频作出奖励。本质上,深度链接模块416可使用注册的协议处理器来打开应用程序106,且允许奖励系统408存放与按行为付费事件有关的代码。欺诈检测模块418可检测并阻止奖励系统408内的欺诈性活动。可通过监控某些标识符(例如,客户端装置IP地址、客户端装置Udid、AppID和发布者标识符)来确定欺诈性活动。在示例性实施方式中,通过确定同一IP地址多次安装同一应用程序106,试图得到对同一应用程序的每一安装的奖励来检测欺诈。在另一示例性实施方式中,可通过识别在同一应用程序的多次安装期间通过的同一发布者ID来检测欺诈。在每种情况下,欺诈检测模块418可阻止违规用户进入奖励系统408或者另外防止违规用户受到不公平奖励。通信模块420可将数据传输到奖励系统408且可从奖励系统408接收数据到客户端装置102。通信模块420可与奖励系统408的其他模块一起操作,来传输产生的推荐建议、从在客户端装置102上执行的应用程序106接收命令或推送的数据并在推荐转换后,将奖励传输到客户端装置102。图5为图示用于追踪及激励应用程序安装的示例性方法的流程图。在区块502处,奖励系统408可向客户端装置102提供推荐建议。推荐建议可为从应用程序商店下载应用程序来换取虚拟货币或虚拟商品的建议。在区块504处,奖励系统408可监控用户是否点击推荐。奖励系统408可使用客户端装置102的Udid跟踪推荐点击。如果用户未点击推荐,示例性方法返回区块502。如果用户点击了推荐建议,在区块506处,奖励系统408可用客户端装置102的Udid存储点击。点击可存储在表中。如果推荐建议将用户重新导向到应用程序商店下载应用程序,应用程序的AppID也可存储在表中。Udid和AppID可一起在表中用作密钥,从而使得能够在用户运行所推荐的应用程序时轻松搜索客户端装置102与应用程序106的组合。在区块508处,奖励系统408检测应用程序106的执行。可通过将数据从客户端装置102推送到奖励系统408来促进检测。由奖励系统408或广告商插入应用程序106中的代码可引起数据推送,所述代码将命令传输到服务器。在区块510处,回应于检测所推荐的应用程序的执行,奖励系统408确定客户端装置102最近是否已点击应用程序商店中的应用程序。如果发现客户端装置102在预定时间量内已点击应用程序,则装置102将被判定为最近下载了应用程序。如果客户端装置102最近未点击应用程序,则示例性方法可返回区块508以检测额外应用程序执行。在区块512处,奖励系统408确定客户端装置102是否先前已安装所推荐的应用程序。确定此查询可涉及使用所推荐的应用程序的客户端装置Udid和AppID搜索存储的点击表。如果存储的点击表不含有先前安装的所推荐的应用程序的记录,那么在区块514中,可更新奖励系统。如果存储的点击表含有先前安装的所推荐的应用程序的记录,那么示例性方法返回区块508检测额外应用程序执行。在区块514处,可更新奖励系统408以反映推荐转换已发生。更新步骤可包括以下步骤:更新存储的点击表,以指示已安装了所推荐的应用程序。另外,可更新奖励系统408以反映将向客户端装置102授予奖励(例如,虚拟货币、虚拟商品)。在区块516处,奖励系统408可将奖励传输到用户。在区块518处,可记录和存储与推荐转换相关的金融交易数据。在示例性实施方式中,与推荐转换相关的交易数据可插入现金交易(MoneyTransactions)表。在一个示例性实施方式中,现金交易表可为微软SQL数据库。在区块520处,记入广告商账户的借方来反映用户安装了所推荐的应用程序。在区块522处,向发布者账户提供贷款。图6为图示用于传递及监控在应用程序内发生的目标按行为付费事件的示例性方法的流程图。在区块602处,奖励系统408或奖励系统408的组件中的一个组件可通过暴露的注册协议处理器访问应用程序。协议处理器可由应用程序的发布者注册。在区块604处,奖励系统408可使用注册的协议处理器将代码插入应用程序中。代码可操作以将执行应用程序的用户重新导向到特定应用程序事件。举例来说,可将用户重新导向到特定视频或调查,并且,可能提示用户观看视频或接受调查。在区块606处,奖励系统408可监控用户与应用程序事件的互动。用户与目标按行为付费事件的互动可记录在区块608中。经提供以换取用户与按行为付费应用程序事件的互动的奖励或鼓励可经存录并传输到用户。模块、组件和逻辑在本文中将某些实施方式描述为包括逻辑或若干组件、模块或机构。组件或模块为能够执行某些操作的永久及有形单元,并且,所述组件或所述模块可以某种方式配置或安置。在示例性实施方式中,一或多个计算机系统(例如,独立计算机系统、客户端计算机系统或服务器计算机系统)或计算机系统的一或多个组件(例如,处理器或一组处理器)可由软件(例如,应用程序或应用程序部分)配置为操作执行如本文中所述的某些操作的组件。在各种实施方式中,可机械或电子地实施组件或模块。举例来说,组件或模块可包含专用电路系统或逻辑,所述专用电路系统或逻辑经永久地配置(例如,作为专用处理器)以执行某些操作。组件或模块还可包含可编程逻辑或电路系统(例如,如包含在通用处理器或其他可编程处理器内),所述可编程逻辑或电路系统暂时由软件配置以执行某些操作。应了解,在专用及永久性配置的电路系统中或在暂时配置的电路系统(例如,由软件配置)中机械地实施组件或模块的决策可受到成本和时间考虑的驱使。因此,术语“组件”或“模块”应理解为包含有形实体,是经物理构造、永久性配置(例如,硬连线)或暂时性配置(例如,程序化)以某种方式操作及/或执行本文中所述的某些操作的实体。考虑到经暂时配置(例如,程序化)的组件或模块的实施方式,在任何一个时间实例下,不需要配置或举例说明组件或模块中的每一组件或模块。举例来说,在组件或模块包含使用软件配置的通用处理器的情况下,通用处理器可在不同时间配置为各自不同的组件或模块。因此,软件可配置处理器(例如)以在一个时间实例下构成特定组件或模块,且在不同时间实例下构成不同组件或模块。组件或模块可将信息提供到其他组件或模块,且可从其他组件或模块接收信息。因此,所描述的组件或模块可视为经通信地耦接。在多个此类组件或模块同时存在的情况下,可通过信号传输(例如,通过适当电路和总线)实现通信,所述通信连接组件或模块。在多个组件或模块在不同时间或例示的实施方式中,可(例如)通过在存储器结构中存储及检索信息实现此类组件或模块之间的通信,多个组件或模块使用所述存储器结构。举例来说,一个组件或模块可执行操作且将所述操作的输出存储在存储装置中,所述一个组件或模块通信地连接到所述存储装置。另外的组件或模块接着可在稍后时间访问存储装置来检索和处理存储的输出。组件或模块还可启动与输入装置或输出装置的通信,并且,组件或模块可对资源(例如,信息集合)进行操作。电子设备及系统示例性实施方式可以数字电子电路系统或以计算机硬件、韧件、软件或以所述计算机硬件、韧件、软件的组合实施。可使用计算机程序产品(例如,有形地体现在信息载体(例如,机器可读媒体)中的计算机程序)来实施示例性实施方式,以供数据处理设备(例如,可编程处理器、计算机或多个计算机)执行或控制所述数据处理设备的操作。在示例性实施方式中,机器可读媒体可为永久机器可读存储媒体或计算机可读存储媒体。可以包括编译语言或解译语言的任何形式的编程语言编写计算机程序并且可以任何形式部署所述计算机程序,包括部署为独立程序或部署为适用于计算环境的模块、子程序或其他单元。计算机程序可部署为在一个站点处的一个计算机上或在分布在多个站点中且由通信网络互连的多个计算机上执行。在示例性实施方式中,可通过执行计算机程序的一或多个可编程处理器执行操作,以通过对输入数据进行操作及产生输出来执行功能。还可通过专用逻辑电路系统(例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)执行方法操作,并且示例性实施方式的设备可实施为所述专用逻辑电路系统。计算系统可包括客户端和服务器。客户端和服务器一般彼此远离且通常通过通信网络交互。客户端与服务器的关系由于计算机程序在各自的计算机上运行并具有客户端-服务器的相互关系而产生。在部署可编程计算系统的实施方式中,将理解,需要考虑硬件架构与软件架构。具体地,将理解,选择是否在永久性配置的硬件(例如,ASIC)、暂时性配置的硬件(例如,软件与可编程处理器的组合)或永久性配置的硬件与暂时性配置的硬件的组合中实施某种功能可为设计选择。在各种示例性实施方式中,以下阐述可部署的硬件(例如,机器)架构和软件架构。示例性机器架构和机器可读媒体图7为呈计算机系统700的示例性形式的机器的方块图,在所述计算机系统700内,可执行用于使机器执行本文中所论述的方法中的任何一或多个方法的指令。在替代实施方式中,机器作为独立装置操作或可连接(例如,联网)到其他机器。在网络化部署中,机器可作为服务器或客户端装置102、客户端装置104在服务器-客户端网络环境中操作,或作为对等机在对等(分布式)网络环境中操作。机器可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设备、网络路由器、交换机或桥接器或能够执行指令(连续的或相反)的任何机器,所述指令指定待由所述机器采取的行动。另外,尽管仅说明了单个机器,但还应理解术语“机器”包括任何机器集合,所述机器单独地或共同地执行一组(或多组)指令,来执行本文中所论述的方法中的任何一或多个方法。示例性计算机系统700包括至少一个处理器702(例如,中央处理单元(CPU)、图形处理单元(GPU)或以上两者)、主存储器704和静态存储器706,以上各者通过总线708彼此通信。计算机系统700可进一步包括视频显示单元710(例如,液晶显示器(LCD)或阴极射线管(CRT))。计算机系统700还包括字母数字输入装置712(例如,键盘)、光标控制装置714(例如,鼠标)、磁盘驱动单元716、信号产生装置718(例如,扬声器)和网络接口装置720。机器可读媒体磁盘驱动单元716包括机器可读媒体722(例如,软件),一或多组数据结构和指令724存储在所述机器可读媒体722上,所述一或多组数据结构和指令724体现本文中所述的方法或功能中的任何一或多个方法或功能或由所述任何一或多个方法或功能利用。在由计算机系统700执行指令724期间,指令724还可完全地或至少部分地驻留在主存储器704和/或处理器702内,主存储器704和处理器702还构成机器可读媒体。尽管机器可读媒体722在示例性实施方式中展示为单个媒体,但术语“机器可读媒体”可包括单个媒体或多个媒体(例如,集中式数据库或分布式数据库及/或相关的缓存和服务器),所述单一媒体或多个媒体存储一或多个数据结构或指令724。术语“机器可读媒体”还应理解为包括任何有形媒体,所述有形媒体能够存储、编码或载送指令,所述指令供机器执行且使机器执行本文中公开的方法中的任何一或多个方法,或所述有形媒体能够存储、编码或载送此类指令所利用的或与此类指令相关联的数据结构。因此,术语“机器可读媒体”应理解为包括(但不限于)固态存储器和光学媒体及磁性媒体。机器可读媒体的特殊实例包括非易失性存储器,包括(例如)半导体存储装置(例如,EPROM、EEPROM)和快闪存储器装置)、磁盘(例如,内置硬盘和可移动磁盘)、磁光碟和CD-ROM磁盘及DVD-ROM磁盘。传输媒体可使用传输媒体通过通信网络726进一步传输或接收指令724。可使用网络接口装置720及若干众所周知的传送协议(例如,HTTP)中的任何一个传送协议传输指令724。通信网络的实例包括局域网(“LAN”)、广域网(“WAN”)、互联网、移动电话网、普通老式电话(POTS)网络和无线数据网络(例如,WiFi网络和WiMax网络)。术语“传输媒体”应理解为包括任何无形媒体,所述无形媒体能够存储、编码或载送以供机器执行的指令724,并且所述无形媒体包括数字通信信号或模拟通信信号或其他无形媒体来促进此类软件的通信。示例性三层式软件架构在一些实施方式中,可使用在三层架构模式下设计的分布式软件应用程序或非分布式软件应用程序来实施所描述的方法。在所述模式下,例示或配置组件或模块的计算机代码(或软件)的各个部分可分类为属于这三层中的一或多层。一些实施方式可包括作为接口的第一层(例如,接口层)。另外,第二层可为执行通过接口层级输入的数据的应用程序处理的逻辑(或应用程序)层。逻辑层可将所述处理的结果传送到接口层和/或传送到后端或存储层。由逻辑层执行的处理可涉及将软件作为整体管理的某些规则或进程。第三存储层可为持久性存储媒体或非持久性存储媒体。在一些情况下,这些层中的一或多个层可压缩到另一层中,从而产生两层式架构或甚至一层式架构。举例来说,接口层和逻辑层可合并,或逻辑层和存储层可合并,如在具有嵌入式数据库的软件应用程序的情况下。可使用一种技术或多种技术实施三层式架构。示例性三层式架构和实施所述三层式架构的技术可在一或多个计算机系统上实现,所述计算机系统作为(例如)独立系统操作或以服务器-客户端配置、对等配置、分布式配置或一些其他适当的配置管理。另外,这三层可作为各种组件分布在多于一个计算机系统之间。组件示例性实施方式可包括上述层,并且,关于构成这些层的进程或操作可作为组件实施。许多这些组件的共同点为产生、使用和操纵数据的能力。组件和与每一组件相关联的功能性可形成独立系统、客户端系统、服务器系统和对等计算机系统的一部分。各种组件可在按需基础上通过计算机系统实施。这些组件可包括以面向对象的计算机语言编写的软件,以便可使用可视化组件库(VCL)、跨平台组件库(CLX)、JavaBeans(JB)、企业JavaBeans(EJB)、组件对象模型(COM)、分布式组件对象模型(DCOM)或其他适当的技术实施面向组件的编程技术或面向对象的编程技术。用于这些组件的软件可进一步使得启用到其他组件的通信耦接(例如,通过各种应用程序编程接口(API)),并且所述软件可编译到一个完整服务器、客户端和/或对等软件应用程序中。另外,这些API可能能够作为分布式计算组件通过各种分布式编程协议通信。分布式计算组件和协议一些示例性实施方式可包括远程过程调用,所述远程过程调用用于在分布式编程环境中将上述组件中的一或多个组件实施为分布式计算组件。举例来说,接口组件(例如,接口层)可形成第一计算机系统中远离含有逻辑组件(例如,逻辑层)的第二计算机系统的部分。可以独立配置、服务器-客户端配置、对等配置或一些其他适当的配置来配置所述第一计算机系统和所述第二计算机系统。可使用上述面向对象的编程技术编写用于组件的软件,且所述软件可以相同编程语言或不同编程语言编写。可实施各种协议来使所述各种组件能够通信而不考虑用于编写所述组件的编程语言。举例来说,以C++编写的组件可能能够通过利用分布式计算协议(例如,公共对象请求代理结构(CORBA)、简单对象访问协议(SOAP)或一些其他适当的协议)来与以Java编程语言编写的另一组件通信。一些实施方式可包括使用所述协议中的一或多个协议的用途,其中在用于限定由网络用来传输数据的协议的开放系统互连(OSI)模型或传输控制协议/互联网协议(TCP/IP)协议栈模型中概述各种协议。在服务器与客户端之间的传输系统示例性实施方式可使用用于限定由网络用来传输数据的协议的OSI模型或TCP/IP协议栈模型。在应用这些模型时,在服务器与客户端之间或在对等计算机系统之间的数据传输系统可(例如)包括五个层,所述五个层包含:应用层、传输层、网络层、数据链路层和物理层。对于软件来说,为了例示或配置具有三层式架构的组件,将各种层(例如,接口层、逻辑层和存储层)驻留在TCP/IP协议栈的应用层上。在使用TCP/IP协议栈模型的示例性实施方式中,可将来自驻留于应用层处的应用程序的资料加载到驻留于传输层处的TCP片段的数据加载字段中。所述TCP片段还含有针对远程驻留的接收者软件应用程序的端口信息。将所述TCP片段加载到驻留于网络层处的IP数据报文的数据加载字段中。然后,将所述IP数据报文加载到驻留于数据链路层的帧中。接着在物理层处编码所述帧,且通过网络(例如,互联网、局域网(LAN)、广域网(WAN)或一些其他适当的网络)传输数据。在一些情况下,互联网是指若干网络中的一网络。这些网络可使用各种协议来交换数据,所述协议包括前述TCP/IP和额外的ATM、SNA、SDI或一些其他适当的协议。这些网络可组织在各种拓扑(例如,星形拓扑)或结构内。尽管已参考具体示例性实施方式描述实施方式,但将显而易见的是,在不脱离本公开案的更广泛精神和范围的情况下,可对所述实施方式作出各种修改和改变。因此,说明书和图式被认为是说明性的而非限制性意义。形成本说明书的一部分的附图以说明方式而非限制性方式展示具体实施方式,可在所述具体实施方式中实践主题。足够详细地描述所说明的实施方式,以使所属领域的技术人员能够实践本文所公开的教义。可利用其他实施方式且可由此衍生所述其他实施方式,以使得在不脱离本公开案的范围的情况下,可作出结构及逻辑替代和改变。因此,所述具体实施方式不应理解为限制意义,且各种实施方式的范围仅由所附权利要求书连同所述权利要求书享有的全范围等效物限定。仅为方便起见且不欲故意限制对任何单个发明或发明概念(若事实上公开了多于一个发明或发明概念)的所述申请案的范围,本发明主题的所述实施方式在本文中可由术语“发明”单独地和/或共同地指代。因此,尽管本文中已说明和描述具体实施方式,但应理解,经计算以实现相同目的的任何布置可替代所示具体实施方式。本公开案旨在涵盖各种实施方式的任何和所有改编或变更。在回顾以上描述后,在本文中未具体描述的以上实施方式与其他实施方式的组合将对所属领域的技术人员显而易见。前述技术公开案旨在为说明性而非限制性的。举例来说,上述实施方式(或实施方式的一或多个方面)可彼此结合使用。在回顾以上描述后,其他实施方式将对所属领域的技术人员显而易见。因此,应参考所附权利要求书连同所述权利要求书享有的全范围等效物确定权利要求书的范围。在所附权利要求书中,术语“包括”和“其中”用作各自的术语“包含”和“其中”的通俗英语等效物。而且,在以下权利要求书中,术语“包括”和“包含”为开放式的,换句话说,包括除了权利要求中在所述术语之后列出的那些元件以外的元件的系统、装置、物件或进程仍被视为在所述权利要求的范围内。此外,在以下权利要求书中,术语“第一”、“第二”和“第三”等仅用作标记,且不意在对所述术语的对象强加数字要求。在本文件中,如在专利文件中所常见,术语“一”用于包括一个或多于一个。在本文件中,除非另有说明,术语“或”用于指代非独占性的或,以使得“A或B”包括“A而非B”、“B而非A”和“A及B”。此外,在本文件中所参考的所有出版物、专利和专利文件的全文以引用的方式并入本文中,尽管单独地以引用的方式并入。如果在本文件与以引用的方式如此并入的所述文件之间出现不一致用法,则一或多个并入参考文献的用法应视为是对本文件的用法的补充;对于不能协调的不一致性,以本文件的用法为准。提供摘要以符合专利法,所述摘要要求允许读者迅速确定本技术公开案的性质。提交摘要以便理解摘要将不用于解释或限制权利要求书的范围或意义。而且,在以上具体实施方式中,各种特征可聚集在一起以简化本公开案。此举不应解释为意指未请求的公开的特征对任何权利要求是必不可少的。相反,本发明主题可在于少于特定公开的实施方式的所有特征。因此,以下权利要求书在此并入具体实施方式中,其中每一权利要求独立地作为单独实施方式。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1