首页 / 专利库 / 商业 / 货币化 / 软件开发和分发平台

软件开发和分发平台

阅读:931发布:2020-05-14

专利汇可以提供软件开发和分发平台专利检索,专利查询,专利分析的服务。并且用于开发和发布 软件 的系统和方法。由软件开发和分发平台(SDDP)接收第三方软件开发工具包(SDK),每个第三方SDK是由第三方服务提供者发布的,所述多个第三方SDK包括第一第三方SDK。SDDP接受来自应用开发者机器的安装 请求 ,并且SDDP响应于对在正在开发的应用中进行安装的安装请求而发送第一第三方SDK。,下面是软件开发和分发平台专利的具体信息内容。

1.一种操作软件开发和分发平台SDDP的方法,包括:
由所述SDDP接收多个第三方软件开发工具包SDK,每个第三方SDK是由第三方服务提供者发布的,所述多个第三方SDK包括第一第三方SDK;
由所述SDDP存储所述多个第三方SDK;
由所述SDDP从应用开发者机器接收对所述第一第三方SDK的安装请求;以及由所述SDDP响应于所述安装请求而发送所述第一第三方SDK以供安装在正在开发的应用中。
2.根据权利要求1所述的方法,进一步包括:
由所述SDDP接收包括所述第一第三方SDK的应用;以及
由所述SDDP将所述应用分发至多个移动设备以供在所述多个移动设备上执行。
3.根据权利要求1所述的方法,进一步包括:
由所述SDDP获得针对所述第一第三方SDK的多个度量;
由所述SDDP从多个应用开发者接收针对所述第一第三方SDK的多个反馈消息;
由所述SDDP基于从由所述多个度量中的一个或多个和所述多个反馈消息中的一个或多个组成的参数组中选择的至少一个参数来生成所述第一第三方SDK的简档;以及由所述SDDP接收查看所述简档的请求。
4.根据权利要求1所述的方法,进一步包括:
在包括所述第一第三方SDK的应用被部署在多个移动设备上之后,由所述SDDP从发布所述第一第三方SDK的第三方服务提供者接收多个度量,其中所述度量是基于所述第一第三方服务提供者所维护的、关于从由所述应用和所述应用的最终用户组成的参数组中选择的至少一个参数的记录;
由所述SDDP基于所述多个度量来生成所述应用的简档;以及
由所述SDDP从所述应用的开发者接收查看所述简档的请求。
5.根据权利要求1所述的方法,其中,接收所述安全请求包括:
由所述SDDP从所述应用开发者机器接收包括所述应用的目标操作系统和SDK类型的推荐请求;以及
由所述SDDP基于所述目标操作系统和所述SDK类型向所述应用开发者机器发送推荐,所述推荐标识所述第一第三方SDK。
6.根据权利要求5所述的方法,其中,所述推荐请求标识正在开发的所述应用中安装的至少一个第三方SDK。
7.根据权利要求5所述的方法,其中,所述推荐是基于所述应用开发者机器的地理区域。
8.根据权利要求1所述的方法,进一步包括:
由所述SDDP获得针对在多个移动设备上执行的所述应用的先前版本的多个度量;
将所述多个度量发送到货币化SDK的发布者,包括所述第一第三方SDK的发布者;
由所述SDDP从所述货币化SDK的发布者中的每个发布者接收在相应发布者的货币化SDK被安装在所述应用的先前版本中的情况下所述相应发布者的货币化SDK的估计的收入流;
分析所述SDDP中的估计的收入流;以及
基于对估计的收入流的分析来推荐所述第一第三方SDK作为推荐的SDK。
9.根据权利要求1所述的方法,进一步包括:
由所述SDDP从所述应用开发者机器接收注册所述应用的请求;以及
由所述SDDP响应于所述请求而将所述应用的句柄添加到注册表中。
10.根据权利要求9所述的方法,进一步包括:
由所述SDDP生成所述应用的所述句柄;以及
由所述SDDP将所述句柄发送到所述应用开发者机器。
11.根据权利要求1所述的方法,进一步包括:
由所述SDDP响应于发送所述第一第三方SDK而向发布所述第一第三方SDK的第三方服务提供者发送通知,所述通知标识在所述应用开发者机器上执行的集成开发环境IDE以及已经被安装在正在开发的所述应用中的至少一个第三方SDK。
12.一种软件开发和分发平台SDDP,包括:
软件开发工具包SDK储存库,所述SDK储存库存储多个第三方SDK,每个SDK由第三方服务提供者发布;
至少一个处理器;以及
存储指令的计算机可读存储介质,所述指令在被执行时使所述至少一个处理器:
针对每个第三方SDK生成SDK简档;
接收对将安装在应用开发者机器上的正在开发的应用中的第三方SDK的推荐请求;以及
基于所述多个SDK简档和所述推荐请求来生成标识用于安装在正在开发的所述应用中的第三方SDK的推荐。
13.根据权利要求12所述的SDDP,其中,所述计算机可读存储介质进一步存储指令,所述指令在被执行时使所述至少一个处理器:
生成多个句柄,每个句柄与应用相关联;以及
存储所述多个句柄。
14.根据权利要求12所述的SDDP,进一步包括:
存储多个应用的应用储存库,每个应用均包括所述多个第三方SDK中的至少一个。
15.根据权利要求12所述的SDDP,其中,所述计算机可读存储介质进一步存储指令,所述指令在被执行时使所述至少一个处理器:
获得与包括所述第三方SDK并且被部署在多个移动设备上的应用相关联的多个度量,其中所述多个度量中的至少一个是从发布所述第三方SDK的第三方服务提供者获得的;以及
基于所述多个度量来生成所述应用的简档。
16.根据权利要求12所述的SDDP,其中,所述第三方SDK是由第一第三方服务提供者发布的,其中,所述多个简档包括所述第三方SDK的简档,并且其中,所述第三方SDK的所述简档能够由第二第三方服务提供者访问
17.根据权利要求12所述的SDDP,其中,所述计算机可读存储介质进一步存储指令,所述指令在被执行时使所述至少一个处理器:
将来自发布所述第三方SDK的第三方服务提供者的消息中继至下载所述第一第三方SDK的应用开发者机器。
18.一种系统,包括:
集成开发环境IDE,所述集成开发环境存储正在开发的应用的代码,其中所述正在开发的应用包括第一第三方软件开发工具包SDK;
至少一个处理器;以及
存储指令的计算机可读存储介质,所述指令在被执行时使所述至少一个处理器:
向软件开发和分发平台SDDP发送包括第三方软件开发工具包SDK的类型和所述正在开发的应用的目标操作系统的推荐请求;
从所述SDDP接收标识第二第三方SDK的推荐;
向所述SDDP发送对所推荐的第三方SDK的安装请求;
从所述SDDP接收所述第二第三方SDK;以及
修改所述代码以包括所述第二第三方SDK。
19.根据权利要求18所述的系统,其中,所述推荐请求进一步包括所述第一第三方SDK的标识。
20.根据权利要求18所述的系统,其中,所述系统进一步包括作为所述IDE的插件的客户端应用。
21.根据权利要求20所述的系统,其中,所述客户端应用显示来自发布所述第二第三方SDK的第三方服务提供者的消息。
22.一种软件开发和分发平台SDDP,包括:
至少一个处理器;以及
存储指令的计算机可读存储介质,所述指令在被执行时使所述至少一个处理器:
接收多个第三方软件开发工具包SDK,每个第三方SDK是由第三方服务提供者发布的,所述多个第三方SDK包括第一第三方SDK;
存储所述多个第三方SDK;
从应用开发者机器接收对所述第一第三方SDK的安装请求;以及
响应于所述安装请求而发送所述第一第三方SDK以供安装在正在开发的应用中。
23.根据权利要求22所述的SDDP,其中,所述计算机可读存储介质进一步存储指令,所述指令在被执行时使所述至少一个处理器:
从所述应用开发者机器接收包括所述应用的目标操作系统和SDK类型的推荐请求;以及
基于所述目标操作系统和所述SDK类型向所述应用开发者机器发送推荐,所述推荐标识所述第一第三方SDK。
24.根据权利要求22所述的SDDP,其中,所述计算机可读存储介质进一步存储指令,所述指令在被执行时使所述至少一个处理器:
从所述应用开发者机器接收注册所述应用的请求;以及
响应于所述请求而将所述应用的句柄添加到注册表中。
25.根据权利要求22所述的SDDP,其中,所述计算机可读存储介质进一步存储指令,所述指令在被执行时使所述至少一个处理器:
响应于发送所述第一第三方SDK而向发布所述第一第三方SDK的第三方服务提供者发送通知,所述通知标识在所述应用开发者机器上执行的集成开发环境IDE以及已经被安装在所述正在开发的应用中的至少一个第三方SDK。
26.一种存储指令的计算机可读存储介质,所述指令在由软件开发和分发平台SDDP中的至少一个处理器执行时使所述至少一个处理器:
接收多个第三方软件开发工具包SDK,每个第三方SDK是由第三方服务提供者发布的,所述多个第三方SDK包括第一第三方SDK;
存储所述多个第三方SDK;
从应用开发者机器接收对所述第一第三方SDK的安装请求;以及
响应于所述安装请求而发送所述第一第三方SDK以供安装在正在开发的应用中。
27.根据权利要求26所述的计算机可读存储介质,进一步存储指令,所述指令在被所述至少一个处理器执行时使所述至少一个处理器:
接收包括所述第一第三方SDK的应用;以及
将所述应用分发至多个移动设备以供在所述多个移动设备上执行。
28.根据权利要求26所述的计算机可读存储介质,进一步存储指令,所述指令在被所述至少一个处理器执行时使所述至少一个处理器:
获得针对所述第一第三方SDK的多个度量;
从多个应用开发者接收针对所述第一第三方SDK的多个反馈消息;
基于从由所述多个度量中的一个或多个和所述多个反馈消息中的一个或多个组成的参数组中选择的至少一个参数来生成所述第一第三方SDK的简档;以及
接收查看所述简档的请求。
29.根据权利要求26所述的计算机可读存储介质,进一步存储指令,所述指令在被所述至少一个处理器执行时使所述至少一个处理器:
在包括所述第一第三方SDK的应用被部署在多个移动设备上之后,从发布所述第一第三方SDK的第三方服务提供者接收多个度量,其中所述度量是基于所述第一第三方服务提供者所维护的、关于从由所述应用和所述应用的最终用户组成的参数组中选择的至少一个参数的记录;
基于所述多个度量来生成所述应用的简档;以及
从所述应用的开发者接收查看所述简档的请求。
30.根据权利要求26所述的计算机可读存储介质,进一步存储指令,所述指令在被所述至少一个处理器执行时使所述至少一个处理器:
从所述应用开发者机器接收包括所述应用的目标操作系统和SDK类型的推荐请求;以及
基于所述目标操作系统和所述SDK类型向所述应用开发者机器发送推荐,所述推荐标识所述第一第三方SDK。
31.根据权利要求26所述计算机可读存储介质,进一步存储指令,所述指令在被所述至少一个处理器执行时使所述至少一个处理器:
获得针对在多个移动设备上执行的所述应用的先前版本的多个度量;
将所述多个度量发送到货币化SDK的发布者,包括所述第一第三方SDK的发布者;
从所述货币化SDK的发布者中的每个发布者接收在相应发布者的货币化SDK被安装在所述应用的先前版本中的情况下所述相应发布者的货币化SDK的估计的收入流;
分析所述SDDP中的估计的收入流;以及
基于对估计的收入流的分析来推荐所述第一第三方SDK作为推荐的SDK。

说明书全文

软件开发和分发平台

背景技术

[0001] 应用开发者正在使用数目越来越多的第三方服务来在其应用中提供附加的特征和能,包括能在智能电话、平板、相机、物联网(“Iot”)设备以及其他联网设备上执行的移动应用。例如,应用开发者可将来自不同来源的软件开发工具包(“SDK”)下载到集成开发环境(“IDE”)中,以将功能性集成到正在构建的应用中。这样的方法消除了重新创造轮子(wheel)的需要,因为开发者无需从头开始将她想要应用具有的功能或功能调用实现到应用的源代码中。这样的方法简化并加速了应用开发,并且简化了应用向着不同平台的迁移。发明内容
[0002] 总体上,在本发明的一方面,软件开发和分发平台(“SDDP”)提供了可在IDE中选择的特征、功能或其他计算资源的列表,以动态和实时地构建定制且可下载的SDK,该SDK包含将所选择的计算资源在正在IDE中构建的应用中实现所必需的代码。有利地,向在IDE中工作的开发者提供的计算资源是高度模化的,并且自定义SDK实行比在开发者要针对所选择计算资源中的每个计算资源下载单独的SDK时将强加于IDE的存储器负荷小得多的计算存储器负荷。此外,SDDP提供SDK管理功能。例如,SDDP跟踪对第三方SDK的更新,并且在适当且不需要来自开发者的手动查询时,通知开发者应用需要更新。有利地,使开发者从不得不监视更新用于构建应用的SDK的各个资源的管理负担中解脱。另一个管理功能包括供开发者和第三方提供和使用SDK的市场,这有利地为开发者和SDK提供者提供了一站式服务。
[0003] 在一个示例中,设计应用的系统和方法包括将多个第三方软件开发工具包(SDK)存储在软件开发和分发平台(SDDP)上,每个第三方SDK由第三方服务提供者发布并且每个第三方SDK访问由第三方服务提供者提供的一个或多个服务;接收来自应用开发者的对第三方SDK的请求,该请求包括SDK类型;在SDDP中搜索与SDK类型匹配的第三方SDK;以及传送指示与SDK类型匹配的一个或多个第三方SDK的响应。
[0004] 在另一个示例中,一种操作软件开发和分发平台(SDDP)的方法包括:由所述SDDP接收多个第三方软件开发工具包(SDK),每个第三方SDK是由第三方服务提供者发布的,所述多个第三方SDK包括第一第三方SDK;由所述SDDP存储所述多个第三方SDK;由所述SDDP从应用开发者机器接收对第一第三方SDK的安装请求;以及由SDDP响应于所述安装请求而发送所述第一第三方SDK以供安装在正在开发的应用中。
[0005] 在另一个示例中,一种软件开发和分发平台(SDDP)包括:软件开发工具包(SDK)储存库,所述SDK储存库存储多个第三方SDK,每个SDK由第三方服务提供者发布;至少一个处理器;以及存储指令的计算机可读存储介质,所述指令在被执行时使所述至少一个处理器:针对每个第三方SDK生成SDK简档;接收对将安装在应用开发者机器上的正在开发的应用中的第三方SDK的推荐请求;以及基于所述多个SDK简档和所述推荐请求来生成标识用于安装在正在开发的所述应用中的第三方SDK的推荐。
[0006] 在另一个示例中,一种系统包括:集成开发环境(IDE),其存储正在开发的应用的代码,其中,正在开发的所述应用包括第一第三方软件开发工具包(SDK);至少一个处理器;以及存储指令的计算机可读存储介质,所述指令在被执行时使所述至少一个处理器:向软件开发和分发平台(SDDP)发送包括第三方软件开发者工具包(SDK)的类型和正在开发的所述应用的目标操作系统的推荐请求;从所述SDDP接收标识第二第三方SDK的推荐;向所述SDDP发送对所推荐的所述第三方SDK的安装请求;从所述SDDP接收所述第二第三方SDK;以及修改所述代码以包括所述第二第三方SDK。
[0007] 在另一个示例中,一种软件开发和分发平台(SDDP)包括:至少一个处理器;以及存储指令的计算机可读存储介质,所述指令在被执行时使所述至少一个处理器:接收多个第三方软件开发工具包(SDK),每个第三方SDK是由第三方服务提供者发布的,所述多个第三方SDK包括第一第三方SDK;存储所述多个第三方SDK;从应用开发者机器接收对所述第一第三方SDK的安装请求;以及响应于所述安装请求而发送所述第一第三方SDK以供安装在正在开发的应用中。
[0008] 在另一个示例中,一种存储指令的计算机可读存储介质,所述指令在由软件开发和分发平台(SDDP)中的至少一个处理器执行时,致使所述至少一个处理器:接收多个第三方软件开发工具包(SDK),每个第三方SDK是由第三方服务提供者发布的,所述多个第三方SDK包括第一第三方SDK;存储所述多个第三方SDK;从应用开发者机器接收对第一第三方SDK的安装请求;以及响应于所述安装请求而发送所述第一第三方SDK以供安装在正在开发的应用中。
[0009] 所描述的软件开发和分发平台(SDDP)提供了用于简化向正在开发的应用中添加服务的机制。第三方SDK被存储在SDDP中,其中,每个第三方SDK是由第三方服务提供者发布的,并且其中,每个第三方SDK都访问由发布SDK的第三方服务提供者提供的一个或多个服务。SDDP接收应用开发者对第三方SDK的请求——该请求包括SDK类型,在SDDP中搜索与该SDK类型匹配的第三方SDK并且传送指示与该SDK类型匹配的一个或多个第三方SDK的响应。在一些示例中,将SDDP插件安装在应用开发者机器中的集成设计环境中,以简化将SDK添加至正在开发的应用中。在一些示例中,SDDP基于随SDK请求传递的参数来推荐SDK,并且应用开发者通过选择所推荐的SDK来安装所推荐的SDK。结果是一个简洁的、模块化设计系统,该系统可容易地在正在开发的应用和待部署的应用中进行服务的添加和更新。
[0010] 当SDK在被接受到SDDP中之前被检验和批准时,系统和方法会变得甚至更加强大。应用开发者不一定必须独立地调查可能的服务提供者及其SDK。作为替代,他们可依赖于SDDP中可信的SDK。
[0011] 在附图和以下描述中阐述了本公开的一个或多个示例的细节。本公开的其他特征、目的和优点根据说明书和附图和权利要求书将清楚。

附图说明

[0012] 图1示出了根据本发明的一个或多个方面的系统框图
[0013] 图2示出了根据本发明的一个或多个方面的应用开发者机器。
[0014] 图3示出了根据本发明的一个或多个方面的软件开发和分发平台。
[0015] 图4至图6示出了根据本发明的一个或多个方面的流程图
[0016] 图7示出了根据本发明的一个或多个方面的计算机系统

具体实施方式

[0017] 现在,将参照附图来详细地描述本发明的特定方面。为了一致性,各附图中用相似的附图标记来表示相似的元素。
[0018] 在下面的具体实施方式中,阐述了众多具体细节,以便对本公开提供更全面的理解。然而,对于本领域的普通技术人员而言将显而易见的是,可在没有这些具体细节的情况下实践本发明。在其他实例下,并未详细描述熟知的特征,以避免使描述不必要地复杂。
[0019] 第三方服务提供者越来越多地提供可被插入正在开发的应用中的软件,以便提供对服务提供者的一个或多个服务的访问。这样的方法简化并加速了应用开发,并且简化了应用向着不同平台的迁移。在一个示例方法中,SDK本质上是模块化的,提供了有限数目的服务。这是因为,将大量服务置于单个SDK中可能不会是有效率的。例如,单个SDK可能变得臃肿,应用可能承担他们不需要的服务,并且应用的下载会变得缓慢且繁重。
[0020] 通常,难以确定用于特定服务的最佳SDK。应用开发者在确定最适合其应用的SDK之前可能不得不检查提供相同或相似服务的许多SDK。并且,可能难以跟踪SDK代码的更改和更新并且确定底层服务的功效。
[0021] 为了应对这些需求,本文中描述了接收SDK并且使它们可由应用开发者获取的软件开发和分发平台(SDDP)。在一个示例方法中,SDDP提供了中央平台,应用开发者可通过该平台访问来自多个第三方服务提供者的各式各样SDK。第三方服务提供者将其SDK发布到SDDP以供各式各样应用开发者——包括移动应用的开发者——下载。在一个示例方法中,SDDP为SDK提供标准化界面;SDK是模块化的并且被设计成插入SDDP的基础库中。
[0022] 在一个示例方法中,SDDP充当开发第三方SDK的第三方服务提供者和移动应用开发者之间的中介。换言之,SDDP将发布一个或多个第三方SDK的第三方服务提供者和下载第三方SDK以供在其移动应用中进行安装的应用开发者链接起来。SDDP还将应用开发者和最终用户及在其上部署和执行应用的最终用户的移动设备链接起来。SDDP可收集度量(metric)和反馈消息以生成SDK、应用、和最终用户的简档。SDDP可基于度量和反馈消息来生成通知和其他消息,并且可协调应用开发者、第三方服务提供者和最终用户之间的通信。SDDP还可生成推荐,所述推荐标识用于安装在正在开发的移动应用中的一个或多个第三方SDK。在一个示例方法中,SDDP用作开发者工具包,从而简化了多个平台和操作系统的应用开发。
[0023] 图1示出了根据本发明的一个或多个方面的系统(100)。如图1中所示,系统(100)具有多个组件,包括SDDP(102)、多个第三方服务提供者(例如,第三方服务提供者A(199A)、第三方服务提供者B(199B))、一个或多个应用开发者机器(例如,应用开发者机器X(106X)、应用开发者机器(106Y))、和一个或多个移动设备(例如,移动设备M(108M)、移动设备N(108N)))。另外如图1中所示,第三方服务提供者(199A、199B)、应用开发者机器(106X、106Y)和移动设备(108M、108N)使用具有有线和/或无线分段的一个或多个网络与SDDP(102)连接。尽管在图1中未示出,但是移动设备(108M、108N)也可使用具有有线和/或无线分段的一个或多个网络与第三方服务提供者(199A、199B)直接连接。换言之,移动设备(108M、108N)可独立于SDDP(102)与第三方服务提供者(199A、199B)进行通信。
[0024] 在本发明的一个或多个方面,系统(100)包括第三方服务提供者(199A、199B)。每个第三方服务提供者(199A、199B)可在一个或多个计算设备(例如,服务器、个人计算机(PC)、膝上型计算机、平板PC、智能电话、信息亭等)上执行。每个第三方服务提供者(199A、199B)开发并且发布一个或多个第三方SDK。每个第三方SDK提供安装了第三方SDK的软件应用(例如,移动应用(110))可请求的一个或多个服务、功能、内容、或能力。这些服务、功能、内容、或能力可在第三方SDK的内部。另外,或替选地,这些服务、功能、内容、或能力可由第三方API(未示出)提供,并且第三方SDK是软件应用向第三方API发出API调用并且访问服务、功能等的机制。
[0025] 在本发明的一个或多个方面,系统(100)包括一个或多个应用开发者机器(106X、106Y)。每个应用开发者机器(106X、106Y)可对应于服务器、个人计算机(PC)、膝上型计算机、平板PC、智能电话、信息亭等。应用开发者机器(106X、106Y)提供接口(例如,GUI),应用开发者或应用开发者的团队可利用该接口对移动应用(例如,移动应用(110))进行设计、编程、编码、调试等。在本发明的一个或多个方面,这些移动应用包括一个或多个第三方SDK。
应用开发者机器(106X、106Y)可从SDDP(102)获得(例如,付费)第三方SDK。以下,讨论关于应用开发者机器(106X、106Y)的附加详细信息。
[0026] 在本发明的一个或多个方面,系统(100)包括多个移动设备(即,移动设备M(108M)、移动设备N(108N))。这些移动设备(108M、108N)可对应于智能电话、PC平板、膝上型计算机、个人数字助理(PDA)、手表等。这些移动设备(108M、108N)可执行在应用开发者机器(106X、106Y)上开发的移动应用(例如,移动应用(110))。可从SDDP(102)获得移动应用(例如,付费)。移动应用(110)可在执行期间访问安装在移动应用(110)中的第三方SDK。
[0027] 在本发明的一个或多个方面,系统(100)包括SDDP(102)。SDDP(102)充当第三方服务提供者(199A、199B)、移动设备(108M、108N)、和应用开发者机器(106X、106Y)之间的中介(即,可信仲裁方)。SDDP(102)可对应于一个或多个服务器、大型机、PC、或任何其他类型的硬件计算设备。SDDP(102)可被视为SDK市场。SDDP(102)可被配置成执行许多功能,包括例如生成第三方SDK和/或第三方服务提供者(199A、199B)的简档;生成移动应用(例如,移动应用(110))的简档;生成最终用户的简档;向应用开发者机器(106X、106Y)推荐和发送第三方SDK,以供安装在正在开发的移动应用中;促使第三方服务提供者(199A、199B)和应用开发者机器(106X、106Y)之间的消息交换;生成和/或注册移动应用(110)的句柄;在移动设备(108M、108N)上部署移动应用(110)以供执行;等等。以下讨论关于SDDP(102)的附加细节。
[0028] 在一个示例方法中,SDDP(102)包括基础库,并且SDK被编写成使用该基础库。在一个示例方法中,评估新的SDK,以确定它们是否可信任;只有可信的SDK才被添加到SDDP(102)。
[0029] 尽管图1示出了仅两个第三方服务提供者(199A、199B)、仅两个移动设备(108M、108N)、和仅两个应用开发者机器(106X、106Y),但是受益于此具体实施方式的本领域技术人员应当理解,可以存在任何数目的第三方服务提供者、移动设备、和应用开发者机器。类似地,每个移动设备(108M、108N)可执行任何数目的移动应用。
[0030] 尽管图1示出了在移动设备(108N)上执行的移动应用(110),但是在本发明的一个或多个方面,该具体实施方式中公开的所有系统和过程也适用于在非移动设备(例如,桌面个人计算机(PC)、信息亭、服务器、大型机等)上执行的应用。在这些实施例中,应用开发者机器(106X、106Y)可开发用于部署在非移动设备上的应用。此外,在非移动设备上执行的这些应用也将具有第三方SDK。
[0031] 图2示出了根据本发明的一个或多个方面的应用开发者机器(206)。应用开发者机器(206)可与以上参照图1讨论的应用开发者机器(106X、106Y)基本相同。在本发明的一个或多个方面,应用开发者机器(206)包括集成开发环境(IDE)(208)。IDE(208)是为应用开发者提供综合设施以供开发移动应用的软件应用。IDE(208)可包括用于为移动应用编写代码(210)的源代码编辑器、构建自动化工具、代码导入工具、和调试器。在一个示例方法中,IDE(208)被集成在SDDP中并且在初始化期间被下载到应用开发者机器(206)。在另一个示例方法中,从SDDP(102)下载SDDP插件并且将其安装在应用开发者机器(206)中安装的IDE(208)中。
[0032] 如图2中所示,IDE(208)包括客户端应用(218)。在本发明的一个或多个方面,客户端应用(218)是IDE(208)的插件。另外地,或替选地,客户端应用(218)可以是与IDE(208)交互但是在IDE(208)外部的软件应用(即,不是插件,而是独立应用)。客户端应用(218)促进开发移动应用并且与SDDP(102)进行通信。
[0033] 如以上讨论的,一个或多个第三方SDK可被包括(即,安装,并入等)在移动应用中。具体地,可向应用开发者展示可被选择以供包括在正在开发的移动应用中的第三方SDK的目录。另外,如以上讨论的,当移动应用正在执行时,一个或多个第三方SDK可向第三方API发出API调用以增加移动应用的功能和能力。
[0034] 在本发明的一个或多个方面,客户端应用(218)被配置成向SDDP(102)发送对第三方SDK的推荐请求。所述推荐请求可包括移动应用的目标移动操作系统和应用开发者期望用于安装在移动应用中的SDK的类型(例如,游戏SDK、地图绘制SDK、货币化SDK等)。推荐请求还可包括已经安装在移动应用中的其他第三方SDK(例如,第三方SDK A(212A)、第三方SDK B(212B))的标识。客户端应用(218)可从SDDP(102)接收标识要安装的第三方SDK的一个或多个推荐。在一个示例方法中,SDDP中安装的SDK包括专有服务SDK和第三方服务SDK二者;客户端应用(218)可从SDDP(102)接收标识要安装的所推荐的专有SDK和第三方SDK。
[0035] 在本发明的一个或多个方面,客户端应用(218)被配置成向SDDP(102)发送对第三方SDK的推荐请求。可在客户端应用(218)已经接收到建议之后和/或在应用开发者已经查看了可用的第三方SDK之后发送安装请求。客户应用(218)可从SDDP(120)接收第三方SDK,并且可修改正在开发的移动应用的代码(210)以包括第三方SDK。可在来自应用开发者的最小输入(例如,单击)或应用开发者没有输入的情况下发生该修改。
[0036] 如图2中所示,已将两个第三方SDK(即,212A、212B)添加到移动应用的代码(210)。在本发明的一个或多个方面,应用开发者使用客户端应用(218)来接收和查看来自发布第三方SDK(212A、212B)的第三方服务提供者的消息。也可使用客户端应用(218)撰写反馈消息并且将其发送到第三方服务提供者。
[0037] 仍然参照图2,在一些示例方法中,代码(210)被适配来包括基础SDK(216)。当在移动设备上部署并执行移动应用时,基础SDK(216)被配置成收集关于移动设备上的部署的移动应用的使用和操作的数据(例如,度量)。所收集的数据可包括在移动设备上执行移动应用的频繁程度(即,频率);每次执行的持续时间;移动应用的代码(210)和第三方SDK(212A、212B)之间的交互(例如,函数调用);移动应用崩溃之后的崩溃转储;移动应用由于货币化SDK而产生的钱款等。可由应用开发者自定义被暴露以供收集的数据的量和类型。所收集的数据还可对应于移动设备本身,包括移动设备的功耗、移动设备通电的频繁程度、安装在移动设备上的其他应用等。此外,所收集的数据可被发送到SDDP(102)(下面讨论)。虽然只示出了单个基础SDK(216),但是可在代码(210)中安装任何数目的基础SDK(216),其中每个基础SDK负责收集特定类型的数据和/或向SDDP(102)发送该特定类型的数据。
[0038] 在其他示例方法中,不需要基础SDK(216)。作为替代,在一个示例方法中,服务SDK中的一个或多个被配置成收集关于在移动设备上的部署的移动应用的使用和操作的数据(例如,度量)。所收集的数据可包括在移动设备上执行移动应用的频繁程度(即,频率);每次执行的持续时间;移动应用的代码(210)和其他第三方SDK(212A、212B)之间的交互(例如,函数调用);移动应用崩溃之后的崩溃转储;移动应用由于货币化SDK而产生的钱款等。可由应用开发者自定义被暴露以供收集的数据的量和类型。所收集的数据还可对应于移动设备本身,包括移动设备的功耗、移动设备通电的频繁程度、安装在移动设备上的其他应用等。此外,所收集的数据可被发送到SDDP(102)(下面讨论)。这样的功能可分布在安装在代码(210)中的服务SDK中的两个或更多个之间,其中每个服务负责收集特定类型的数据和/或向SDDP(102)发送该特定类型的数据。
[0039] 虽然移动应用的代码(210)被示为只具有两个第三方SDK(212A、212B),但是受益于该具体实施方式的本领域技术人员应当理解,任何数目的第三方SDK可被添加到代码(210)中,并且因此被包括在正在开发的移动应用中。
[0040] 图3示出了根据本发明的一个或多个方面的SDDP(302)。SDDP(302)可与以上参照图1讨论的SDDP(102)基本相同。如图3中所示,SDDP(302)具有多个组件,包括例如SDK储存库(304)、应用注册表(306)、应用储存库(308)、简档引擎(312)、消息引擎(316)、和推荐引擎(318)。这些组件(304、306、308、312、316、318)中的每一个可位于同一计算设备(例如,服务器、大型机等)上,或者可位于通过具有有线和/或无线分段的网络连接的不同计算设备上或跨其分散。
[0041] 在本发明的一个或多个方面,SDDP(102)包括消息引擎(316)。消息引擎(316)促进与SDDP(302)连接的应用开发者机器和第三方服务提供者之间的消息的交换(例如,发送、接收)。消息可以是电子邮件、文本消息、传真,小应用等的形式。消息收发引擎(316)可实现点到点消息收发(例如,消息从一个第三方服务提供者到一个应用开发者机器)和/或广播消息(例如,消息从一个第三方服务提供者到许多应用开发者机器)。消息引擎(316)可提供与SDDP(302)连接的应用开发者机器和所有第三方服务提供者的目录,以便发送者定位接收者。消息引擎(316)可归档所有交换的消息,以供将来进行搜索和检索。
[0042] 消息的内容可包括关于可经由第三方SDK从第三方服务提供者获得的所有能力和功能以及如何访问这些能力/功能的细节。另外地,或替选地,消息的内容可包括关于对可用能力和功能和/或第三方SDK的所提出和/或最终确定的改变(例如,升级、新版本等)的情况。另外地,或替选地,消息的内容可包括能力和功能和/或第三方SDK中的一个或多个的已知技术问题或漏洞。
[0043] 消息的内容可包括来自应用开发者的关于对第三方SDK的所提出和/或最终确定的改变的反馈。另外地,或替选地,消息的内容可包括应用开发者发现的第三方SDK的技术问题的报告。在本发明的一个或多个方面,来自应用开发者或应用开发者机器的消息可被称为反馈消息。
[0044] 在本发明的一个或多个方面,消息引擎(316)被配置成向第三方服务提供者发送通知。每个通知可标识下载了第三方服务提供者发布的第三方SDK的应用开发者机器。通知还可指示在应用开发者机器上执行的IDE和/或安装在应用开发者机器上的正在开发的移动应用中的其他第三方SDK。
[0045] 在本发明的一个或多个方面,SDDP(302)包括SDK储存库(304)。SDK储存库(304)可对应于数据库或任何其他可搜索的数据结构。SDK储存库(304)存储第三方服务提供者所发布的第三方SDK。另外地,或替选地,SDK储存库(304)可存储来自任何来源的第三方SDK。SDK储存库(304)中的第三方SDK可用于免费地或付费地下载到应用开发者机器。SDK储存库(304)可以是应用开发者可查看和可搜索的(例如,经由客户端应用(218))。可基于应用开发者的地理位置来从视图中排除某些第三方SDK。
[0046] 在本发明的一个或多个方面,SDDP(302)包括应用储存库(308)。应用储存库(308)可对应于数据库或任何其他可搜索的数据结构。应用储存库(308)存储已经在应用开发者机器上开发的移动应用。另外地,或替选地,应用储存库(308)存储来自任何来源的移动应用。应用储存库(308)中的应用可被免费地或付费地下载到由最终用户操作的移动设备。应用储存库(308)可以是最终用户可查看和可搜索的。可基于最终用户的地理位置来从视图中排除某些应用。
[0047] 在本发明的一个或多个方面,SDDP(302)包括简档引擎(312)。简档引擎(312)被配置成为每个第三方SDK生成一个或多个简档。简档可包括以下中的一个或多个:第三方SDK的特征;第三方SDK的屏幕截图;已经安装第三方SDK的移动应用的数目;这些应用已经被最终用户下载的次数;移动应用使用第三方SDK产生的钱款;使用第三方SDK的移动应用的类型(例如,硬件和/或操作系统);已经安装第三方SDK的每个移动应用的标识;第三方SDK的稳定性/可靠性(例如,由SDK引起的崩溃次数);应用开发者和/或最终用户对第三方SDK的评级(例如,5分满分中的4分、3星等);关于第三方SDK的反馈消息;在第三方SDK中的检测到的漏洞的数目;下载具有第三方SDK的移动应用的每个最终用户的标识;第三方SDK的发行日期(release date);经由深度链接在具有第三方SDK的同一移动设备上的应用之间的面包屑(bread crumb);等。受益于该具体实施方式的本领域的技术人员应当理解,以上列表并不是排他性的,并且理解到简档可包括涉及第三方SDK的所有种类的内容和分析。第三方SDK可以是通过任何分析可搜索和/或可分类的。
[0048] 在本发明的一个或多个方面,简档引擎(312)被配置成从任何来源获得简档的数据(例如,度量),该来源包括发布第三方SDK的第三方服务提供者和以上参照图2讨论的与第三方SDK安装在同一应用中的其他SDK和基础SDK——如果存在。简档引擎(312)可对所获得的数据执行一个或多个计算或统计分析以生成简档。在一些示例方法中,如果例如服务崩溃、发现新的漏洞或者如果简档引擎(312)进行的计算或分析中的一个或多个超过预定义或自适应阈值,则警示应用开发者。
[0049] 在本发明的一个或多个方面,简档的不同部分与不同的访问权限相关联。换言之,并不是每一方都被授权完全访问(即,可见到)简档。在最终用户、应用开发者、其他第三方服务提供者(即,没有发布第三方SDK的第三方服务提供者)和发布第三方SDK的第三方服务提供者当中和之间,访问级别会可以所不同。另外地,或替选地,简档可被部分复制并且跨多个简档分散,其中每个简档独有地可用于供以上提到的各方(即,应用开发者、其他第三方服务提供者等)中的一方查看/访问。
[0050] 在本发明的一个或多个方面,简档引擎(312)被配置成为每个移动应用生成一个或多个简档。简档可包括以下中的一个或多个:应用的特征;应用的屏幕截图;已经下载应用的移动设备的数目;移动应用使用第三方SDK产生的钱款;下载应用的移动应用的类型(例如,硬件和/或操作系统);安装在应用中的每个第三方SDK的标识;应用的稳定性/可靠性(例如,崩溃次数);最终用户对应用的评级(例如,5分满分中的4分、3星等);关于应用的反馈消息;在应用中的检测到的漏洞的数目;下载应用的每个最终用户的标识;应用的发行日期等。受益于该具体实施方式的本领域的技术人员应当理解,以上列表并不是排他性的,并且简档可包括涉及应用的各种内容和分析。应用可以是通过任何分析可搜索和/或可分类的。
[0051] 在本发明的一个或多个方面,简档引擎(312)被配置成从任何来源获得简档的数据(例如,度量),该来源包括应用开发者和以上参照图2讨论的安装在应用中的其他SDK和基础SDK——如果存在。也可从发布安装在应用中的第三方SDK的第三方服务提供者获得应用的数据(例如,关于API调用的度量)。在这样的情景下,数据可以是基于第三方服务提供者维护的关于应用和/或应用的最终用户的记录。简档引擎(312)可对所获得的数据执行一个或多个计算或统计分析以生成简档。
[0052] 在一个示例方法中,移动用户可从应用商店下载应用并且将该应用安装在其移动设备中。安装在应用中的SDK与SDDP(302)通信(例如,打电话回家)以报告其状态。简档引擎(312)将该信息添加到应用和SDK简档中。在一些示例方法中,该信息也被实时转发给应用开发者和/或关联的第三方服务提供者。
[0053] 在本发明的一个或多个方面,简档的不同部分与不同的访问权限相关联。换言之,并不是每一方都被授权完全访问(即,可见到)应用的简档。在最终用户、第三方服务提供者、应用的开发者和其他应用的开发者当中和之间,访问级别会有所不同。另外地,或替选地,简档可被部分复制并且跨多个简档分散,其中每个简档独有地可用于供以上提到的各方(即,其他应用开发者、第三方服务提供者)中的一方查看/访问。
[0054] 在本发明的一个或多个方面,推荐引擎(318)被配置成生成标识用于在正在开发的移动应用中安装的第三方SDK的推荐。可响应于推荐请求(以上讨论的)来生成该推荐并且将其发送到应用开发者机器。推荐引擎(318)可解析该推荐请求,以提取用于生成推荐的一个或多个参数(例如,所期望类型的第三方SDK、移动应用的目标操作系统、已经安装在正在开发的移动应用中的其他第三方SDK等)。这些参数可被用作对可用第三方SDK的简档的搜索中的关键字。可在推荐中识别与推荐请求兼容的一个或多个第三方SDK。在本发明的一个或多个方面,在推荐中只标识具有至少最低评级(例如,满分五星中的四星)的第三方SDK。
[0055] 在本发明的一个或多个方面,推荐引擎(318)基于移动应用的较早版本(即,先前部署的移动应用的版本)来生成推荐。具体地,推荐引擎(318)可将与先前部署的版本相关联的度量转发给多个货币化SDK。每个货币化SDK可基于该度量来估计在先前版本的应用已经安装了该货币化SDK的情况下将归因于该先前版本的应用的收入流。具有最大估计的收入流(或第二大收入流等)的货币化SDK的标识可被包括在发送给应用开发者机器的推荐中。
[0056] 在本发明的一个或多个方面,SDDP(302)包括应用注册表(306)。应用注册表被配置成生成和/或存储应用句柄。所述句柄可以是可搜索的。在生成正在开发的应用的句柄之后,可将其发送到对应的应用开发者机器。
[0057] 图4示出了根据本发明的一个或多个方面的流程图。流程图描绘了用于操作SDDP的过程。图4中的一个或多个步骤可由以上参照图1讨论的系统(100)的组件以及以上参照图3讨论的SDDP(302)的组件来执行。在本发明的一个或多个方面中,图4中示出的步骤中的一个或多个可按与图4中示出的次序不同的次序被省略、重复、和/或执行。因此,本公开的范围不应被视为限于图4中示出的步骤的具体布置。图4中描绘的过程可在该具体实施方式中公开的任何其他流程图中描绘的处理之前、期间、或之后执行。
[0058] 最初,由SDDP接收一个或多个第三方SDK(405)。第三方SDK是由第三方服务提供者发布的。第三方SDK为已经安装了第三方SDK的移动应用提供附加内容和功能。例如,第三方SDK可代表移动应用向第三方API发出API调用,以访问附加的内容和功能。接收到的第三方SDK可以是任何类型(例如,导航SDK、货币化SDK、游戏SDK等)。第三方服务提供者可提供详述了第三方SDK的功能的附加数据、第三方SDK的用户界面的屏幕截图、示例代码段等。
[0059] 在410中,由SDDP接收针对第三方SDK的度量和反馈消息。410可以是在第三方SDK中的一个或多个已经安装在应用中并且已经部署该应用之后发生的。反馈消息可来自已经安装并测试了移动应用中的第三方SDK中的一个的应用开发者。反馈消息可以来自已经下载具有第三方SDK之一的移动应用的最终用户。反馈消息可标识第三方SDK中的一个或多个中的漏洞。度量可从各种来源(例如,以上参照图2讨论的基础SDK或其他安装的SDK)获得,并且可包括已经安装了第三方SDK的移动应用的数目;这些应用被最终用户下载的次数;使用第三方SDK的移动应用产生的钱款;使用第三方SDK的移动应用的类型(例如,硬件和/或操作系统);等等。
[0060] 在415中,针对第三方SDK生成简档。可基于反馈消息、度量、和第三方服务提供者所提供的内容来生成简档。简档可与访问权限关联。换言之,并不是每一方都被授权完全访问(即,可见到)简档。对于给定的第三方SDK,在最终用户、应用开发者、其他第三方服务提供者(即,没有发布第三方SDK的第三方服务提供者)和发布第三方SDK的第三方服务提供者当中和之间,访问级别可以有所不同。
[0061] 在420中,接收对第三方SDK的安装请求。该安装请求是从具有正在开发的移动应用的应用开发者机器接收的。可在应用开发者已经浏览了第三方SDK的简档之后接收该安装请求。可在向标识第三方SDK的应用开发者发送推荐之后接收该安装请求。
[0062] 在425中,第三方SDK被发送到应用开发者机器。在一个示例方法中,发送第三方SDK包括将代码传送到应用开发者机器。在另一个示例方法中,发送第三方SDK包括:向应用开发者机器传送标识第三方SDK的标识符,从应用开发者机器接收请求安装所标识的第三方SDK的安装命令并且将第三方SDK传送到应用开发者机器以供安装在正在开发的应用中。
[0063] 在一个示例方法中,通知也可被发送到发布应用的第三方服务提供者。通知可标识在应用开发者机器上执行的IDE和/或安装在正在开发的移动应用中的其他第三方SDK。
[0064] 在430中,第三方SDK被安装在正在开发的移动应用中。具体地,在应用开发者机器上执行的客户端应用修改正在开发的应用的代码,以将第三方SDK包括在内。这种修改可以需要很少的用户输入甚至不需要用户输入。
[0065] 图5示出了根据本发明的一个或多个方面的流程图。该流程图描绘了用于操作SDDP的过程。图5中的一个或多个步骤可由以上参照图1讨论的系统(100)的组件以及以上参照图3讨论的SDDP(302)的组件来执行。在本发明的一个或多个方面中,图5中示出的步骤中的一个或多个可按与图5中示出的次序不同的次序被省略、重复、和/或执行。因此,本公开的范围不应被视为限于图5中示出的步骤的具体布置。图5中描绘的过程可在该具体实施方式中公开的任何其他流程图中描绘的处理之前、期间或之后执行。
[0066] 最初,SDDP接收推荐请求(505)。可从上面正在开发移动应用的应用开发者机器接收该推荐请求。该推荐请求可具有多个参数,包括例如正在开发的移动应用的目标操作系统、应用开发者所期望的SDK的类型、已经安装在正在开发的应用中的一个或多个第三方SDK的标识等。
[0067] 在510中,获得与推荐请求兼容的第三方SDK。具体地,解析推荐请求并且提取参数。该参数可被用作对第三方SDK简档的搜索中的关键字。在一个或多个实施例中,从搜索中排除评级小于阈值(例如,小于5分满分中的3.5分)的第三方SDK。
[0068] 在515中,推荐被发送到应用开发者机器。推荐至少标识兼容的第三方SDK中的至少一个。在一个或多个实施例中,在推荐中仅标识具有最高评级的兼容的第三方SDK。
[0069] 图6示出了根据本发明的一个或多个方面的流程图。流程图描绘了用于操作SDDP的过程。图6中的一个或多个步骤可由以上参照图1讨论的系统(100)的组件以及以上参照图3讨论的SDDP(302)的组件来执行。在本发明的一个或多个方面中,图6中示出的步骤中的一个或多个可按与图6中示出的次序不同的次序被省略、重复、和/或执行。因此,本公开的范围不应被视为限于图6中示出的步骤的具体布置。图6中描绘的过程可在该具体实施方式中公开的任何其他流程图中描绘的处理之前、期间、或之后执行。
[0070] 最初,SDDP接收应用开发者已经开发出的移动应用(610)。该移动应用可包括多个第三方SDK、专有SDK、和/或一个或多个基础SDK,包括用于收集和报告数据的SDK。第三方SDK中的一个或多个先前可以以及从SDDP下载到上面正在开发应用的应用开发者机器。该应用可被存储在储存库中并且可用于供最终用户付费下载。换言之,SDDP可将移动应用部署在最终用户的移动设备上。
[0071] 在615中,由SDDP接收针对移动应用的度量和反馈消息。该反馈消息可来自已经下载了该移动应用的最终用户。反馈消息可标识第三方SDK中的一个或多个中的漏洞。度量可从各种来源(例如,以上参照图2讨论的基础SDK)获得,并且可包括已经下载应用的移动设备的数目;移动应用使用第三方SDK产生的钱款;下载了应用的移动应用的类型(例如,硬件和/或操作系统);安装在应用中的每个第三方SDK的标识;应用的稳定性/可靠性(例如,崩溃次数);最终用户对应用的评级(例如,5分满分中的4分、3星等)等。可从发布了安装在移动应用中的第三方SDK的第三方服务提供者接收所述度量中的一些。在这样的情景下,数据可以是基于第三方服务提供者所维护的关于应用和/或应用的最终用户的记录。
[0072] 在620中,更新或生成用于应用的简档。可基于反馈消息、度量和应用开发者提供的内容来生成/更新简档。简档可与访问权限关联。换言之,并不是每一方都被授权完全访问(即,可见到)简档。对于给定的应用,在最终用户、移动应用的开发者、和/或其他应用开发者(即,没有开发移动应用的开发者、第三方服务提供者等)当中和之间,访问级别可以有所不同。简档可以是根据任何度量可搜索和可分类的。
[0073] 本发明的方面实际上可在任何类型的计算系统上实现,而不管所使用的平台如何。例如,计算系统可以是用于执行本发明的一个或多个方面的一个或多个移动设备(例如,膝上型计算机、智能电话、个人数字助理、平板计算机、或其他移动设备)、台式计算机、服务器、服务器底架中的刀片、或至少包括最小处理能力的任何其他类型的一个或多个计算设备、以及输入和输出设备。例如,如图7中所示,计算系统(700)可包括一个或多个计算机处理器(702)、关联的存储器(704)(例如,随机存取存储器(RAM)、高速缓存存储器、闪速存储器等)、一个或多个存储设备(706)(例如,硬盘、诸如光盘(CD)驱动器或数字多功能盘(DVD)驱动器的光学驱动器、闪存记忆棒等)、以及许多其他元件和功能。计算机处理器(702)可以是用于处理指令的集成电路。例如,计算机处理器可以是处理器的一个或多个内核或微内核。计算系统(700)还可包括诸如触摸屏键盘鼠标、麦克触摸板、电子笔、或任何其他类型的输入设备的一个或多个输入设备(710)。另外,计算系统(700)可包括一个或多个输出设备(708),诸如屏幕(例如,液晶显示器(LCD)、等离子体显示器、触摸屏、阴极射线管(CRT)监视器、投影仪、或其他显示设备)、打印机、外部存储、或任何其他输出设备。输出设备中的一个或多个可与输入设备相同或不同。计算系统(700)可经由网络接口连接(未示出)与网络(712)(例如,局域网(LAN)、诸如互联网的广域网(WAN)、移动网络或任何其他类型的网络)连接。输入和输出设备可与计算机处理器(702)、存储器(704)、和存储设备(706)本地或远程(例如,经由网络(712))连接。存在许多不同类型的计算系统,并且以上提到的输入和输出设备可采取其他形式。
[0074] 用于执行本发明的方面的计算机可读程序代码形式的软件指令可全部或部分地、暂时或持久性地存储在诸如CD、DVD、存储设备、软盘、磁带、闪速存储器、物理存储器、或任何其他计算机可读存储介质的非暂态计算机可读介质上。具体地,软件指令可对应于计算机可读程序代码,该计算机可读程序代码在由处理器执行时被配置成执行本发明的方面。
[0075] 另外,以上提到的计算系统(700)中的一个或多个元素可位于远程位置并且通过网络(712)连接到其他元素。另外,可以在具有多个节点的分布式系统上实现本发明的一个或多个方面,其中,系统(700)的每个部分可位于分布式系统内的不同节点上。在一个示例方法中,节点对应于不同的计算设备。替选地,节点可对应于具有关联的物理存储器的计算机处理器。节点可替选地对应于计算机处理器或具有共享存储器和/或资源的计算机处理器的微内核。
[0076] 所描述的软件开发和分发平台(SDDP)提供了用于简化向正在开发的应用中添加服务的机制。第三方SDK被存储在SDDP中,每个第三方SDK是由第三方服务提供者发布的,并且每个第三方SDK都访问由发布SDK的第三方服务提供者提供的一个或多个服务。SDDP接收应用开发者对第三方SDK的请求——该请求包括SDK类型,在SDDP中搜索与该SDK类型匹配的第三方SDK并且传送指示与该SDK类型匹配的一个或多个第三方SDK的响应。在一些示例中,将SDDP插件安装在应用开发者机器中的集成设计环境中,以简化将SDK添加至正在开发的应用中。在一些示例中,SDDP基于随SDK请求传递的参数来推荐SDK,并且应用开发者通过选择所推荐的SDK来安装所推荐的SDK。结果是一个简洁的、模块化设计系统,该系统可容易地在正在开发和部署的应用中添加和更新服务。
[0077] 当SDK在被接受到SDDP中之前被检验和批准时,系统和方法变得甚至更加强大。应用开发者不必独立地调查可能的服务提供者及其SDK。作为替代他们可依赖于SDDP中可信的SDK。
[0078] 在一个或多个示例中,上述的功能可用硬件、软件、固件、或其任何组合来实现。如果用软件来实现,则功能可被作为一个或多个指令或代码存储在计算机可读介质上或通过其来传送,或者由基于硬件的处理单元来执行。计算机可读介质可包括:与诸如数据存储介质的有形介质相对应的计算机可读存储介质,或包括促进例如根据通信协议将计算机程序从一个地方传递到另一个地方的任何介质的通信介质。以这样的方式,计算机可读介质通常可对应于(1)非暂态的有形计算机可读存储介质或(2)诸如信号或载波的通信介质。数据存储介质可以是可由一个或多个计算机或一个或多个处理器访问的检索用于实现本公开中描述的技术的指令、代码和/或数据结构的任何可用介质。计算机程序产品可包括计算机可读介质。
[0079] 作为示例而非限制性地,这样的计算机可读存储介质可包括随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、光盘只读存储器(CD-ROM)或其他光盘存储器、磁盘存储器、或其他磁存储设备、闪速存储器、或可用于以指令或数据结构形式存储所期望的程序代码并且可由计算机访问的任何其他介质。另外,任何连接被适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或无线技术——诸如红外线、无线电和微波——从网站、服务器、或其他远程源传送指令,则同轴电缆、光纤电缆、双绞线、DSL、或无线技术——诸如红外线、无线电和微波——被包括在介质的定义中。然而,应当理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号、或其他暂态介质,而是作为替代涉及非暂态有形存储介质。如所使用的,磁盘和光盘包括压缩盘(CD)、激光盘、光盘、数字通用盘(DVD)、软盘和蓝光盘,其中,磁盘通常以磁性方式复制数据,而光盘利用激光来以光学方式复制数据。以上的组合也应当被包括在计算机可读介质的范围内。
[0080] 指令可由诸如一个或多个数字信号处理器(DSP)、通用微处理器专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)、或其他等效的集成或分立逻辑电路的一个或多个处理器执行。因此,所使用的术语“处理器”可以指代适于实现所描述技术的前述结构或任何其他结构中的任一个。另外,在一些方面,所描述的功能可设置在专用硬件和/或软件模块内。另外,所述技术可在一个或多个电路或逻辑元件中完全实现。
[0081] 本公开的技术可在各种各样的设备或装置中实现,这些设备或装置包括无线电话、集成电路(IC)或IC集(例如,芯片集)。在本公开中描述了各种组件、模块或单元,以强调被配置成执行所公开技术的设备的功能方面,但不一定需要由不同硬件单元实现。相反,如上所述,各个单元可被组合在硬件单元中,或者由包括如上所述的一个或多个处理器的协作的硬件单元的集合结合适当的软件和/或固件来提供。
[0082] 要认识到,根据实施例,本文中描述的任何方法的某些动作或事件可按不同顺序执行,可以被添加、合并、或完全省略(例如,并非所有描述的动作或事件都是实践该方法所必需的)。此外,在某些实施例中,可例如通过多线程处理、中断处理、或多个处理器同时地而非顺序地执行动作或事件。
[0083] 在一些示例中,计算机可读存储介质包括非暂态介质。在一些示例中,术语“非暂态”指示存储介质没有体现在载波或传播信号中。在某些示例中,非暂态存储介质可存储可随时间推移而变化(例如,在RAM或高速缓存中)的数据。虽然某些示例被描述为输出用于显示的各种信息,但是本公开的技术可以以其他形式——诸如音频、全息、或触觉形式——输出这样的信息,仅举几个例子。
[0084] 虽然已经相对于有限数目的实施例描述了本发明,但是受益于本公开的本领域的技术人员应当理解,可设想到没有脱离本文中公开的范围的其他实施例。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈