[go: up one dir, main page]

CN102130907B - 开发者电话注册 - Google Patents

开发者电话注册 Download PDF

Info

Publication number
CN102130907B
CN102130907B CN201110031352.XA CN201110031352A CN102130907B CN 102130907 B CN102130907 B CN 102130907B CN 201110031352 A CN201110031352 A CN 201110031352A CN 102130907 B CN102130907 B CN 102130907B
Authority
CN
China
Prior art keywords
terminal
developer
account
computer
released state
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.)
Active
Application number
CN201110031352.XA
Other languages
English (en)
Other versions
CN102130907A (zh
Inventor
J·布鲁诺
M·萨菲茨
K·D·雷
G·奥尔森
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
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 US12/853,608 external-priority patent/US8533811B2/en
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN102130907A publication Critical patent/CN102130907A/zh
Application granted granted Critical
Publication of CN102130907B publication Critical patent/CN102130907B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

描述了一种开发者电话注册。一种允许软件开发者通过解锁终端以使得其可运行未经签署的应用程序来为智能手机或其他终端开发应用程序的技术。开发者向基于web的服务注册,同意注册条款,并提供认证凭证。验证认证凭证的数据被提供回开发者的计算机。终端被连接到开发者的计算机,并且经由用户界面,开发者请求对终端进行注册。作为响应,终端接收来自开发者的计算机的数据,并将数据和唯一性终端标识符提供给服务。若被授权,则服务返回持久令牌或许可证,它们被存储在终端并用于解锁终端。服务还可提供强制实施期满日期的命令。终端向服务登记以确定帐户是否声誉良好,且在有正当理由的情况下被重新锁定。

Description

开发者电话注册
相关申请的交叉引用 
本申请要求2010年1月20日提交的美国临时申请No.61/296,621的权益,该临时申请通过援引纳入于此。 
技术领域
本发明涉及电话注册技术。 
背景技术
诸如智能电话等便携式终端由于其运行第三方应用程序的能力而已变得日益流行,该第三方应用程序通常是免费或在支付很小费用下从网站下载到终端的。此类应用程序可包括游戏、利用地理位置服务的程序、教育应用程序等。终端制造商通过使软件开发工具可为软件开发者所用来鼓励对这些应用程序的开发。此类工具可包括模拟终端的功能和性能的终端仿真器,以及用于在商业发布应用程序之前部署、执行、调试、和共享该应用程序的工具。在大多数情形中,在应用程序的发布之前在终端自身上测试应用程序。然而,终端通常被装运,从而使得仅可从获批准(例如,获信任或授权)的源部署和执行应用程序。开发者向制造商进行注册并将其完成的应用程序提交到制造商的网站,在那里应用程序被检阅并批准以进行分发。当开发者将应用程序下载到终端时,用数字签名密码地签署应用程序,并且在允许应用程序运行之前,终端使用签名验证机制验证应用程序被批准。 
然而,在开发过程中使用此类认证机制会使得软件开发者的工作更加困难。通常,认证机制是复杂且易出错的基于证书的认证机制,该机制要求开发者管理终端与其运行软件开发工具的计算机之间的关系。另一方面,如果开发者被准许在终端上部署和运行应用程序的不受限能力,则这使得更易于例如使用应用程序侧加载来加载和运行未授权应用程序,从而使盗版得到助长。此外, 当开发者使用不同计算机来运行用于不同终端的软件开发工具时,提出了管理挑战。存在一台计算机-众多终端的管理挑战、众多计算机-一个终端的管理挑战以及众多计算机-众多终端的管理挑战。 
发明内容
提供了准许经认证、注册的软件开发者向诸如基于web的服务等服务注册智能电话或其他终端的技术。一旦终端被注册,其变成被激活以便部署、执行、调试和共享未经签署的应用程序,例如,不包括密码签名的应用程序。对终端的注册可被绑定到开发者的注册的持续期。 
终端可以是智能电话,其是具有高级能力并提供类似于个人计算机(PC)的特征的移动电话或蜂窝小区电话。典型地,智能电话运行向应用程序开发者提供标准化接口和平台的操作系统软件。常常提供诸如电子邮电、因特网接入、电子书阅读器能力、屏幕上或物理键盘以及缆线连接器等特征。更一般地,终端可以是任何类型的具有网络连通性和应用程序平台的终端,其中应用程序的分发需要受到控制。例如,经由缆线或无线链路将终端连接到开发者的计算机,后者运行软件开发工具。软件开发工具提供允许开发者选择和注册终端的用户界面。 
在一个实施例中,由一个或多个服务器执行一种用于管理具有网络通信能力的终端的处理器实现的方法。一个或多个服务器向应用程序开发者提供服务。方法包括从开发者接收用于注册为软件开发者以开发用于终端的应用程序的注册信息。开发者可在开发者准备好将应用程序部署到终端之前的某一时间预先注册,或者可结合将应用程序部署到终端来注册。注册信息可包括例如开发者名称或电子邮件地址等开发者标识符,以及例如口令等开发者认证信息/凭证。一个或多个服务器将注册信息存储在帐户中。一个或多个服务器向开发者的计算机发送指示开发者已被一个或多个服务器认证的数据。开发者的计算机经由在终端与开发者的计算机之间建立的通信链路向终端提供该数据。这可被自动地执行,而无需用户介入,或者响应于由开发者经由开发者的计算机处的用户界面输入的命令来执行。 
接着,终端发起与服务器的通信。服务器从在终端上运行的客户机软件接 收解锁终端的请求,其中请求包括该数据和终端的标识符。服务将数据与开发者的帐户进行关联,并且若被许可,则授权解锁。服务可进行检查以确保帐户尚未被取消以及帐户的最大容许解锁终端数目尚未被超过。经由请求和注册信息,如果对终端的解锁被授权,则一个或多个服务器向终端发送用于解锁终端的命令,作为响应,在终端中持续(维持)解锁状态。命令可连同期满日期包括例如许可证文件或持久令牌,比如诸如注册密钥等经加密标识符。终端持续解锁状态直至期满日期。 
解锁状态允许将由软件开发工具部署的未经签署的应用程序部署到终端并在终端上执行。在一种可能的办法中,在解锁状态中,经注册的开发者或者经注册或未经注册的任何其他人可自由且重复地将一个或多个未经签署的应用程序的不同编译版本或版本部署到终端,以使得在无需验证应用程序的数字签名的情况下部署和运行应用程序。此办法极大地有助于开发者可工作的速度,因为开发者无需管理终端与开发者或开发者的计算机之间的关系以及相关联认证机制。在要求在部署和运行所有应用程序之前认证这些应用程序的高度安全办法与在无需任何开发者或终端注册的情况下允许运行任何未经签署的应用程序的开放接入方法之间提供了最佳的平衡。 
提供本概要以用简化形式介绍在下面的说明书中进一步描述的一些概念。本概述并不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。 
附图说明
图1描绘了包括开发者的计算机、其上将部署应用程序的终端、以及开发者门户的一个或多个服务器的网络。 
图2描述了用于与图1的网络联用的方法,其中开发者和终端向开发者门户的服务进行注册,在终端上部署并运行应用程序,且注册条款被强制实施。 
图3A描绘了图2的步骤200的进一步细节,其中开发者向开发者门户的服务进行注册。 
图3B描绘了与图3A的步骤304相关联的示例用户界面,其中开发者提供注册信息。 
图4A描绘了图2的步骤210的进一步细节,其中开发者向开发者门户的服务注册一个或多个终端以解锁这一个或多个终端。 
图4B描绘了图4A的判决步骤414的进一步细节,其中服务决定是否授权对终端的解锁。 
图4C和4D描绘了与图4A的步骤405相关联的示例用户界面,开发者藉由其选择一个或多个终端来进行注册。 
图4E描绘了与图4A的步骤421相关联的示例用户界面,该接口提供了指示终端已被解锁的报告。 
图4F描绘了与图4A的步骤421相关联的示例用户界面,该接口提供了指示与开发者帐户相关联的所有已被解锁的终端的报告。 
图4G描绘了图2的步骤210的过程流程图,其中开发者向开发者门户的服务注册一个或多个终端以解锁这一个或多个终端。 
图5描绘了图2的步骤220的进一步细节,其中应用程序被部署到被解锁终端并在其上运行。 
图6A描绘了图2的步骤230的进一步细节,其中强制实施关于帐户状态的注册条款。 
图6B描绘了图2的步骤230的进一步细节,其中强制实施关于期满日期的注册条款。 
图6C描绘了图2的步骤230的过程流程图,其中强制实施注册条款。 
图7描绘了适于实现各个实施例的计算机硬件的示例框图。 
具体实施方式
提供了诸如智能电话等终端、供软件开发者开发用于终端的应用程序的服务、以及开发者的运行终端的软件开发工具/代码的计算机。允许例如用户/个人等开发者使用流线化注册和终端解锁过程来在一个或多个终端上容易地部署和运行应用程序。在一种可能的办法中,一旦被解锁,应用程序就可被自由和直接地部署和运行。然而,开发者仍对这些终端负责,因为这些终端被链接到开发者的注册帐户。此外,根据注册协定,开发者在可被解锁和访问的终端的数目上受到限制。此外,如果开发者违背了注册协定,则可注销终端。终端 周期性地检验服务以确定帐户是否声誉良好,作为响应,服务可向终端提供锁定命令(若有正当理由)。 
图1描绘了包括开发者的计算机、其上将部署应用程序的终端、以及开发者门户的一个或多个服务器的网络。在此示例中,终端120是智能手机,该终端的应用程序的部署将被管理。智能手机的示例包括运行诸如WINDOWS 
Figure BSA00000429642200051
黑莓 
Figure BSA00000429642200052
三星 
Figure BSA00000429642200053
和 
Figure BSA00000429642200054
等操作系统的手机。然而,本文中提供的概念可与具有网络连通性和应用程序平台的任何类型的终端联用,其中在鼓励第三方开发者构建应用程序的同时期望控制应用程序向终端的分发。通常,终端将可具有唯一性标识符。此类终端的其他示例包括诸如苹果 
Figure BSA00000429642200055
和微软 
Figure BSA00000429642200056
等便携式媒体播放器、诸如微软SURFACETM、平板PC等表面计算平台、诸如基于启用网络的电视等家电、诸如MICROSOFT 
Figure BSA00000429642200057
等游戏设备、个人数字助理(PDA)或掌上型计算机、用于商业应用程序中的数据收集的企业数字助理(EDA)、GPS设备等。终端也可能具有标准PC操作系统,使用第三方开发模型来将应用程序部署在该操作系统上。因而,终端可以是PC。终端可以是可从零售商处购买到的大量生产的设备,或者其可以是定制的设备。 
如智能手机的终端120可经由无线蜂窝小区电话链路104与天线108通信,天线108与蜂窝小区电话设施110处于通信中。设施110又可与一个或多个网络100(例如诸如因特网等广域网和/或内联网)通信,以及与使得软件开发者能访问终端以通过部署、执行、调试和共享来开发其应用程序的服务的一个或多个服务器160通信。终端120还可经由开发者的计算机140与这一个或多个服务器通信。为了注册终端120,在终端与开发者的计算机140之间建立通信链路102,软件开发工具在该计算机140上运行。例如,链路102可以是在终端的连接器与开发者的计算机140的连接器之间延伸的缆线(系缆)。替换地,可建立诸如经由Wi-Fi(IEEE 802.11)或蓝牙(IEEE 802.15.1)的无线链路。开发者的计算机经由一个或多个网络100与一个或多个服务器160通信。 
开发者的计算机所采取的全部动作也可能由终端来进行。 
终端120可具有数个组件,包括客户机软件122。在一种办法中,当终端 与开发者的计算机140建立通信时,启动客户机软件。客户机软件被配置成提供如本文中所描述的功能。现代终端常常已具有足以执行本文中所描述的功能的软件和硬件资源。在一些情形中,如果有需要,可向终端提供附加软件。与开发者的计算机的接口124允许终端与开发者的计算机建立连接。接口可包括例如Wi-Fi电路或缆线连接器的端口。与蜂窝电话网络的接口126允许终端经由蜂窝小区电话设施110传达语音和其他数据。接口可包括例如RF发射机和接收机。提供一个或多个处理器128以运行存储在诸如RAM等易失性存储器130和/或诸如ROM等非易失性存储器132中的处理器可读代码。存储器130和132被认为是其上包含有用于对至少一个处理器128进行编程的计算机可读软件的有形计算机可读存储。用户接口可包括键盘和/或屏幕。 
注意,在一种办法中,终端的用户接口未被用作应用程序开发过程的部分。替换地,所有开发经由在开发者的计算机上运行的软件开发工具的用户界面来发生。软件开发工具可具有离线能力(在这种方式下其未被连接到一个或多个服务器160),以及已连接能力(在这种方式下其被连接到一个或多个服务器160)。因而,外置于终端的开发者的计算机的用户接口可以是用于向终端部署未签署的应用程序的排他用户界面。此办法使得未授权的人们更难访问终端。要求使用分开的计算机上的软件开发工具来访问终端将阻碍许多非正式、未授权的人们尝试访问终端。大多数非正式用户将无法承受下载并运行软件开发工具的麻烦。 
开发者的计算机140可以是其上运行软件开发工具的任何类型的计算机。此类软件的一个示例是微软WINDOWS 
Figure BSA00000429642200061
软件开发工具包,其在VISUAL 
Figure BSA00000429642200062
开发环境内起作用。SDK典型地包括供开发者编写其应用程序时测试并调制其应用程序的仿真器图像。其他示例包括先前提及的各种操作系统的SDK。开发者的计算机140可以是基本上任何类型的计算机,诸如个人计算机(PC)、桌面计算机、连接到主机的终端、一体化计算机、工作站、或膝上型计算机,包括笔记本或上网本计算机。基本上,开发者的计算机140是与终端分开的计算机,并且向开发者提供合适的资源以运行软件开发工具。开发者的计算机具有数个组件,包括软件开发工具142。在一种办法中,软件开发工具由开发者在该开发者期望使用应用程序时启动。软件开发工具被配置 成提供如本文中描述的功能,以及提供用于应用程序开发的常规工具。与终端的接口144允许开发者的计算机140与终端120通信。接口可包括例如Wi-Fi电路或缆线连接器的端口,诸如比方USB端口。 
与服务的接口146允许开发者的计算机140经由至少一个网络100与服务器160通信。接口可包括例如网络接口卡(NIC)。提供一个或多个处理器148以运行存储在诸如RAM等易失性存储器150和/或诸如硬盘或固态存储器等非易失性存储器152中的处理器可读代码。存储器150和152被认为是其上包含有用于对至少一个处理器148进行编程的计算机可读软件的有形计算机可读存储。用户接口154可包括键盘、鼠标和/或屏幕显示器,如以下进一步讨论的。 
一个或多个服务器160可位于一个或多个位置处。在一种办法中,注册服务器160被用于存储开发者和终端注册信息,包括已注册开发者和终端的数据库。开发者可建立根据注册协定来维护的帐户,该注册协定指定例如开发者支付的价格、诸如信用卡号等支付信息、开发者可注册的终端的最大数目、以及注册的期满日期。当一个或多个终端被注册时,这些终端的标识符可被链接到开发者的帐户。认证服务器164接收并存储开发者的认证信息,诸如开发者标识符和口令。开发者可直接或经由注册服务器来与认证服务器通信。开发者可使用诸如WINDOWS LIVETM ID等单个登录服务来提供认证信息,单个登录服务允许用户使用一个帐户登录多个网站或服务,诸如及时消息接发、电子邮件、和音乐下载站。另一示例凭证认证系统是OpenID(开放ID)。在一种情景中,当开发者出于与向服务注册无关的原因使用开发者的计算机140来拜访网站时,认证开发者。当开发者随后涉及注册过程时,注册服务器162可访问认证服务器164以确定开发者已被认证,以使得开发者无需提供附加认证信息。 
用于签署应用程序的应用程序服务器166可由终端120访问以下载经签署的应用程序,其可包括不再处于开发之下且已被服务批准发布的应用程序。典型地,此类应用程序被分类并使其可为公众所用。终端的普通用户可从服务器166将经签署的应用程序下载到终端120。经签署的应用程序仅在其签名被验证之后才可在终端上运行。注意,相同的终端可运行经签署和未经签署的应用程序。即,即使在已解锁终端以使得其运行由开发者提供的未经签署二进制/应用程序之后,其仍可保留对其他经签署的应用程序执行强制实施签名的能 力。 
用于未经签署的应用程序的应用程序服务器168包括仍处于开发中且尚未为批准发布给一般大众的应用程序。通常,开发者在其应用程序被发布之前设法使诸如同事等其他开发者在共享过程中运行并测试其应用程序。开发者可将应用程序上传到服务器168,在那里其将被分类并使其在受限的基础上(诸如通过要求口令)可为其他已注册开发者所用。在此状态中的应用程序(尚未被批准以进行公共分发)可能是已签署或未经签署的。 
一般而言,所提供的服务可具有以下特征:(1)使开发者能通过终端上以已认证的方式与web服务通信的客户机解锁终端;(2)使开发者能通过开发者门户管理他们已解锁的终端;(3)确保零售终端可连接到web服务并验证它们处于锁定还是解锁状态;(4)确保给定开发者只能解锁预定义数目的终端;(5)确保开发者门户和web服务可响应于不同类型的开发者并确保可被解锁的终端的数目可根据开发者的类型而不同;以及(6)确保没有开发者门户的必需帐户的开发者无法解锁其零售终端。 
实现的一些示例情景如下: 
情景1:Cheryl一直在开发智能手机的新游戏。在早期开发阶段,她使用终端仿真器来测试、验证、并调试她的游戏。由于她可编码、构建、部署、调试并在随后重复的速度以及终端仿真器可模拟其游戏使用的全部手机行为(诸如加速计输入)这个事实,她对这种解决方案感到高兴。在开发接近结束阶段,她希望在真实电话上测试其游戏,以确保所有事情都恰当地起作用。她还渴望在真实世界情形中使用其游戏以验证玩游戏和整体用户体验。她将其电话系连到其PC,并从软件开发工具内选择部署命令。从目标列表选择其电话之后,她被告知她必须针对开发注册其电话,并且点进简单向导。在数分钟内,已针对开发注册了电话,游戏部署到电话,并且她在电话上玩游戏。 
情景2:Timothy正在开发数据分摊(snack)应用程序,例如,从不同网站收集少量数据的应用程序,并且准备好部署到其终端。他将终端系连到PC,并从软件开发工具内选择部署命令。从目标列表选择其终端之后,他被告知他必须针对开发注册其终端,并且点进简单向导。当他在向导中进行时,他被告知其作为终端开发者尚未被完全注册。web浏览器启动到开发者门户,在那里 他完成其注册。他在随后返回开发者终端向导,在那里,他确认他现在被恰当地注册。在数分钟内,已针对开发注册了终端,他的应用程序部署到终端,且他运行应用程序。 
情景3:Kathy正在构建音乐视频应用程序,且准备好部署到她的终端。她将其终端系连到其PC,并从软件开发工具内选择部署命令。她先前注册她的终端,因此当她从目标列表中选择终端时,应用程序立即部署且在一分钟内,她能与终端上她的应用程序进行交互。 
情景4:Kevin正在构建地图绘制应用程序,且准备好部署到他的终端。他在终端与PC之间建立无线链路,且从软件开发工具内选择部署命令。在从目标列表选择其终端的情况下,他被告知其开发者注册已期满。他的web浏览器启动到开发者门户,在那里他更新其注册。他在随后返回开发者终端向导,在那里,他确认他现在被恰当地注册。在数分钟内,已针对开发注册了他的终端,他的应用程序部署到终端,且他运行应用程序。 
在一种办法中,服务可部署基于HTTP的应用程序编程接口(API),这些接口允许终端执行各种动作,诸如请求其状态(锁定或解锁)、设置其状态(锁定或解锁)、以及使用其唯一性终端标识符(TerminalID(终端ID))以及指示开发者已被认证的数据进行认证。服务还强制实施每开发者的最大容许终端数目,这可基于在每个开发者的基础上进行调节。服务还可提供管理者控制台,其允许管理者调节将为给定帐户解锁的容许终端的数目。 
可使用以下示例方法: 
(1)未注册终端指令服务对终端发出锁定命令。锁定一终端将其从解锁终端列表中移除。需要认证。输入包括TerminalID和经认证用户可移植唯一性标识符(PUID)。输出包括通过或失败状态。 
(2)注册终端指令服务对终端发出解锁命令。解锁一终端将其添加到特定开发者帐户的“解锁”终端列表。需要包含经认证用户的PUID的认证用户会话。输入包括终端ID、经认证、昵称、和PUID。输出包括通过或失败状态以及期满前的天数、或期满日期。 
(3)获得设备状态返回特定终端的状态(锁定或解锁)。不需要认证。输入包括终端ID。输出包括解锁、锁定或未找到状态。若解锁,则服务向终端 发送期满间隔(期满前的时间)。若锁定,则服务返回零。 
从逻辑角度来看,一些基本需求可包括如下:(1)通过API解锁终端的任何开发者必须具有有效帐户状态——这意味着在最小程度上,他们必须支付任何所需费用且必须被准许访问门户。(2)API强制实施根据帐户类型的终端计数。示例帐户类型包括伙伴组织帐户(其中伙伴组织与服务提供商具有已建立工作协定)、非伙伴组织帐户(其中非伙伴组织与服务提供商未建立工作协定)、以及个体帐户。对于组织帐户,默认的所允许终端的数目通常大于个体帐户的。默认的所允许终端的数据应当是可基于每帐户来配置的。(3)如果开发者超过所允许终端的数目,则抛出异常,并要求开发者(经由终端客户机)从开发者门户的列表中移除一个终端。(4)终端解锁应当强制实施解锁终端的期满时间线。解锁终端的默认期满是12个月,且被绑定到开发者帐户的期满。(5)期满的注册应当使终端自动返回锁定状态,正如再度注册应当延长期满日期并使终端保持解锁。 
以下表示API可返回的一些基本错误代码列举:错误901——帐户不活跃,错误902——帐户未找到,错误903——终端技术超出,错误904——无法解锁终端(通用)、错误905——无法锁定终端(通用),以及错误906——终端ID未找到。 
以下表示服务可使用的示例API。 
(1)获得设备状态 
路径:http://api.developer.windowsphone.com/tools/02/2010/terminals/GetStatus?terminalId:Guid 
方法:获得 
描述:获得终端的状态,状态为锁定、解锁或未找到。 
项目:终端状态枚举 
UrlParameters(Url参数) 
terminalId:字符串(全局唯一性标识符或GUID),表示要查找的终端 
样本响应: 
Figure BSA00000429642200111
(2)锁定终端 
路径:http://api.developer.windowsphone.com/tools/02/2010/terminals/LockTerminal?terminalId:Guid} 
方法:投递 
描述:指令服务对终端发出锁定命令。 
项目:终端状态枚举 
UrlParameters(Url参数) 
terminalId:字符串(GUID),表示要查找和锁定的终端 
liveIDTicket(存活ID票据):包含开发者信息(在头部中)的票据 
样本响应: 
Figure BSA00000429642200112
Figure BSA00000429642200121
注意,获得请求仅基于URL值和一组HTTP头部从web服务器取得数据。关于获得请求没有额外数据;所有东西都在URL和头部中指定。相比之下,投递请求向web服务器发送附加数据(在URL之后指定)、头部和用于指示头部的结束的空行。 
图2描述了用于与图1的网络联用的方法,其中开发者和终端向开发者门户的服务进行注册,在终端上部署并运行应用程序,且注册条款被强制实施。在步骤200,开发者根据注册协定向服务进行注册。步骤200的进一步细节结合图3A和3B来提供。 
在步骤210,开发者向服务注册一个或多个终端以解锁这一个或多个终端。步骤210的进一步细节结合图4A-4g来提供。在步骤220,开发者在这一个或多个终端上部署和运行应用程序。步骤220的进一步细节结合图5来提供。在步骤230,例如在注册一个或多个终端的时间段期间强制实施注册协定的条款。步骤230的进一步细节结合图6A-6C来提供。 
图3A描绘了图2的步骤200的进一步细节,其中开发者向开发者门户的服务进行注册。在一种情形中,开发者在步骤300开始预注册。一般而言,这在开发者在向服务注册终端之前的某个时刻向服务注册他自己或她自己时发生。在步骤302,开发者例如使用常规web浏览器访问服务的web站点以进行注册。在步骤304,开发者经由web站点提供注册信息。关于进一步细节请参看图3B。在步骤306,服务将信息存储在例如一个或多个服务器上。在步骤308,服务向开发者的计算机发送指示开发者已被认证的数据。此数据可包括例如服务票据或其他具有令牌或词例化密钥值对的经加密cookie。在步骤310,数据被存储在开发者的计算机上。 
在第二注册情形中,开发者经由开发者的计算机上的软件开发工具诸如结合注册终端来开始注册(步骤312)。在步骤314,开发者经由用户接口选择要注册的终端。在步骤316,开发者被重定向至服务的web站点以进行注册,并且如先前所讨论的进行其余步骤304-310。 
图3B描绘了与图3A的步骤304相关联的示例用户界面,其中开发者向 开发者门户的服务进行注册。示例用户界面或屏幕显示320是用于“开发者注册”。其包括用于开发者信息的部分322,其中开发者点进至一表格以输入例如开发者标识符、开发者名字和联系信息。部分324用于帐户设置,其中开发者点进至一表格以输入例如要注册的终端的数目、期满日期、和许可。不同的许可可任选地用于分别准许访问不同的特征。例如,不同的许可可允许终端运行调试应用程序以及诸如概况分析器等开发相关过程,其可以是软件开发工具的部分。在另一示例中,一个许可可能适合于学生软件开发者,且仅对终端实现基本应用程序开发特征,而另一准许可能适合于专业软件开发者,且对终端实现基本或高级应用程序开发特征。 
部分326用于支付信息,其中开发者点进至一表格以输入例如信用卡号等。部分328用于认证,其中开发者点进至一表格以输入认证信息,诸如开发者标识符(如果与开发者信息322使用的不同),和口令。例如,使用WINDOWS LIVETM ID,开发者提供电子邮件地址和口令。开发者认证信息无需与开发者的计算机相关联,以使得终端不依赖于仅通过开发者的计算机来运行。按钮330允许开发者取消当前输入,而按钮332允许开发者保存当前输入。 
图4A描绘了图2的步骤210的进一步细节,其中开发者向开发者门户的服务注册一个或多个终端以解锁一个或多个终端。在步骤400,建立终端与开发者的计算机之间的通信链路。如以上所提及的,这可包括在两个设备之间连接缆线。在步骤402,响应于检测到通信链路在终端处启动客户机软件。仅在建立通信链路时启动客户机软件可最小化对在终端上运行的附加应用程序/服务的性能影响。 
在步骤404,客户机软件进行等待,并监听来自开发者的计算机的入站消息。在步骤405,开发者经由软件开发工具的用户界面选择终端。作为响应,在步骤406,开发者的计算机向终端发送指示开发者已被认证的数据。这可以是例如图3A的步骤308和310中提及的数据。作为响应,在步骤408,终端向服务发送对解锁自己的请求,其中该请求包括接收自开发者的计算机的数据和终端标识符。标识符可包括例如硬件专用证书、终端序列号或其他唯一性终端标识符。一示例是国际移动装备身份(IMEI)号。注意,诸如IMEI号等一些终端标识可由开发者经由终端的用户界面以及由终端处的客户机软件来访 问。标识符对于终端应当是唯一的,且不应当改变,而不管终端的重置或重新格式化。终端可具有直接绑定至硬件以允许客户机软件访问标识符的API。出于此目的,WINDOWS 
Figure BSA00000429642200141
使用API GetDeviceUniqueID()(获得设备唯一性ID())。在步骤408,请求可以是使用终端处的API的标准web服务调用。例如,可使用HTTP调用,其中头部携带指示开发者已被认证的数据。 
终端可按穿过方式经由开发者的计算机与服务的一个或多个服务器通信(步骤412),或者经由诸如蜂窝小区电话信道等另一链路与服务的一个或多个服务器通信(步骤410,参见图1)。例如,关于步骤412,MICROSOFT 
Figure BSA00000429642200142
使用桌面穿过(DTPT)技术来执行同步。DTPT使得终端能通过终端所连接的开发者的计算机透明地访问诸如因特网等外部网络。另一办法是通过USB使用模拟串行端口将终端连接至服务。 
在判决步骤414,服务确定是否授权对终端的解锁。在图4B中提供了进一步细节。如果在判决步骤414授权解锁,则在步骤416服务向终端发送具有解锁数据(诸如许可证文件或比如注册密钥等持久令牌)以及期满日期的命令。注册状态(解锁或锁定)可持续作为布尔值或者由许可证或证书来保护。终端通过检测持久令牌或许可证文件的存在性来确定其被解锁。可以使用诸如微软 
Figure BSA00000429642200143
等数字版权管理(DRM)方案来提供示例许可证。许可证的特性确保其未被篡改以及来自权威性场所。许可证文件可包括证书文件。 
期满数据可用例如其中解锁状态被授权为持久的时间段(诸如,一年)、或者期满日期来表示。或者,终端可被配置成强制实施默认期满日期。注意,可在从服务至终端的一个或多个消息中提供命令。例如,一个消息可包括解锁数据,而另一消息可包括期满日期。出于跟踪的目的,命令还可包开发者的标识符。开发者的标识符可被存储在终端上。 
持续解锁状态可包括在终端上维持或存储解锁数据。客户机软件处的逻辑流可通过识别解锁状态实现备用行为。例如,解锁状态可通过验证许可证来识别。锁定状态可指示仅可在终端上运行从服务下载的已签署应用程序,而解锁状态行为可指示也可在终端上运行从软件开发工具或其它源下载的未经签署应用程序。 
一般而言,通过使用证书材料,诸如一些已知服务器值(例如,与服务器 相关联的标识符)的散列,可认证终端的解锁状态尚未被篡改。 
在步骤416提供的解锁数据除解锁状态之外还可以与控制解锁持续期/期满相同的方式提供对附加解锁约束的控制。例如,解锁数据可以:(a)限制可从服务安装到解锁终端上的应用程序的数目;(b)设置对所安装的应用程序的期满的控制;(c)限制数个应用程序的启动的次数,等等。 
在情形(a)中,如果已达到所安装的应用程序的数目的限度,则将禁止开发者在终端上安装附加应用程序。可在开发者的计算机上提供向开发者通知限制的消息。开发者可被通知用于删除先前安装的应用程序以使得可安装新应用程序而不会超过限度、或者用于访问服务以购买附加权限来安装另一应用程序的选项。 
在情形(b)中,可设置对运行应用程序的授权期满的时间。不同的所安装的应用程序可具有不同的期满时间。类似于例如如以下结合图6A和6B讨论的强制实施终端注册的期满日期的方式,可强制实施应用程序专用期满日期。 
在情形(c)中,如果已到应用程序可被启动的次数的限度,则将禁止开发者在终端上再次启动该应用程序。可在开发者的计算机上提供向开发者通知限制的消息。可向开发者通知用于访问服务以购买附加权限来启动该应用程序的选项。例如,可在每应用程序的基础上强制实施此限制。 
在步骤418,终端存储解锁数据和期满日期。在步骤419,终端诸如通过使用解锁数据调用API来解锁自己。示例调用具有以下格式:SetDeveloperUnlockState(DEVELOPERUNLOCK_STATE_UNLOCKED)(设置开发者解锁状态(开发者解锁_状态_已解锁)). 
在步骤419,如果解锁成功,则可将来自软件开发工具的二进制文件(二进制)从开发者的计算机复制到终端(步骤420)。在示例实现中,每个二进制文件可被打包为XAP文件,并被部署到数据包管理器以便进行安装。XAP是其内包含有微 
Figure BSA00000429642200151
SILVERLIGHTTM应用程序的zip(压缩)文件。微 
Figure BSA00000429642200152
SILVERLIGHTTM是web应用程序框架,其提供与 
Figure BSA00000429642200153
平台中的那些相类似的功能,将多媒体、图形、动画和交互性整合到单个运行时环境中。通过此机制部署到终端的所有二进制文件可在初始化时调用GetDeveloperUnlockState(获得开发者解锁状态),并验证其返回 DEVELOPERUNLOCK_STATE_UNLOCKED以验证终端被解锁。如果终端未被解锁,则这些二进制应终止。在所有二进制已被复制到终端并被安装之后,开发者的计算机上的用户界面可向开发者通知终端可用(步骤421)并显示终端的标识符(参见图4F)。 
如果在判决步骤414未授权解锁,则在步骤422服务任选地向终端发送出错消息,且在步骤424终端可任选地经由软件开发工具向开发者的计算机报告相应的出错消息。 
图4B描绘了图4A的判决步骤414的进一步细节,其中关于是否授权对终端的解锁作出确定。例如,在步骤426,服务基于由终端提供的开发者认证信息标识开发者的帐户。此开发者认证信息可以是提供给开发者的计算机的数据,且其指示开发者已被服务的一个或多个服务器认证。在步骤428,服务用先前与帐户相关联的开发者认证信息验证由终端提供的开发者认证信息,以确保存在匹配。注意:在从终端向服务的初始通信中,终端标识符可能不与开发者帐户相关联。在注册了终端之后,终端标识符与开发者帐户相关联,以使得来自终端的后继请求可基于所标识的终端与开发者帐户相关联。终端可以(但无需)在后继请求中提供开发者认证信息。 
判决步骤430确定注册帐户是否仍有效。如果注册协定的条款已被违反,诸如未支付或者例如欺骗或使用恶意软件等违反的其它行为,则帐户可能是无效的。这些其它行为可能为具有使帐户无效的权力的管理员所知。判决步骤432确定注册空隙是否可用。如果关于帐户将被注册的最大容许终端数目尚未被超过,则空隙可用。判决步骤434确定终端是否已被注册。例如,终端标识符可以在已注册到帐户的终端标识符的列表中。如果判决步骤430、432、和434为真,则在步骤436授权对终端的解锁。否则,在步骤438不授权对终端的解锁。 
图4C和4D描绘了与图4A的步骤405相关联的示例用户界面,开发者藉由其选择一个或多个终端来进行注册。在图4C中,示例用户界面或屏幕显示440用于“添加终端”。其包括部分442,开发者可在部分442中选择终端的类型,诸如“视窗电话”、“Xbox”或“Zune”。在此示例中,由开发者通过例如使用鼠标等适当的输入来选择“视窗电话”。可选择按钮444以取消过程,而可选择 按钮446以找到所选类型的终端。当选择按钮446时,软件开发工具使用自动检测技术来自动检测与开发者的计算机具有通信链路且是所选类型的任何终端。在图4D中,示例用户界面或屏幕显示450指示已找到所选类型的终端,并且提供终端的标识,例如“HTC Touch Pro2”,其是 
Figure BSA00000429642200171
智能手机的示例型号名称。可选择按钮452以取消过程,而可选择按钮454以使用本文中所描述的技术来注册终端。 
图4E描绘了与图4A的步骤421相关联的示例用户界面,该界面提供了指示终端已被解锁的报告。示例用户界面或屏幕显示460指示已成功注册所选终端,并提供终端的标识。可选择按钮462以继续进行允许准备、部署、执行、调试或共享应用程序的软件开发工具的其它部分。 
图4F描绘了与图4A的步骤420相关联的示例用户界面,该界面提供了指示开发者帐户的相关联的所有已被解锁的终端的报告。用户界面可经由服务的web站点来提供,且允许已注册的开发者查看和移除/注销当前被解锁的终端,以确保已注册终端的在线列表与实际被注册的那些终端保持同步。用户界面还允许开发者管理有限数目个终端、确定容许注册终端数目以及对锁定和解锁的终端的计数、确定每帐户类型的默认容许解锁终端数目。在一种办法中,开发者在访问用户界面之前需要具有帐户。 
示例用户界面或屏幕显示470包括包含各种选择的“帐户信息”部分。可选择“用户概况”以查看和更新诸如开发者名称和联系信息等细节。可选择“商业细节”以查看诸如注册协定的条款等信息。可选择“支付信息”以查看诸如存档的信用卡号等细节。在这里,选择“终端管理器”,从而导致描绘“我的被解锁终端”的显示区域474。此区域提供已被注册到开发者的所有终端的概要。区域474指示当前被解锁终端数目,例如3个,以及最大允许被解锁终端数目,例如5个。对于三个终端中的每一个,提供终端名称、终端标识符、解锁期满日期和“移除”动作。可选择“移除”链接以注消相应的终端。在一种办法中,一旦选择按钮478,开发者的计算机或服务就向终端发送注销命令,作为响应,终端向服务发送对注销终端的请求,并从服务接收相应的命令以进行注销。这样,服务可管理终端。请求可包括认证开发者的数据,类似于先前所讨论的对注册的请求。可选择按钮476以取消当前用户界面选择。 
图4g描绘了图2的步骤210的过程流程图,其中开发者向开发者门户的服务注册一个或多个终端以解锁这一个或多个终端。在过程480,开发者的计算机向终端发送注册请求,以请求终端注册其自己。在过程481,终端使用调用GetDeviceUniqueID访问其标识符。在过程482,终端向服务发送认证数据。在过程483,服务确定开发者帐户是否是现时且有效的。如果帐户不是现时且有效的,则发生出错处理过程484。以上参照图1讨论了示例出错代码。在过程485,服务确定是否存在可用注册空隙,例如,最大终端数目是否已被注册到该帐户。如果没有可用注册空隙,则发生出错处理过程486。如果发生出错处理过程484或486,则发生从终端至开发者的计算机的出错处理过程487。 
在过程488,服务确定请求方终端是否已被注册到帐户。在过程489,服务执行注册。过程向终端提供注册结果,例如用于解锁终端的命令。若有需要,例如,如果终端已被注册,则发生从终端到开发者的计算机的出错处理过程491。在过程492,终端解锁其自己。在过程493,将注册结果——例如,终端已被解锁的指示——从终端提供到开发者的计算机。 
图5描绘了图2的步骤220的进一步细节,其中应用程序被部署到被解锁终端并在其上运行。在步骤500,开发者使用开发者的计算机上的软件开发工具开发应用程序,该软件开发工具包括终端仿真器。在步骤502,开发者使用软件开发工具来在终端上部署和运行未经签署的应用程序。在步骤504,终端上的客户机软件接收并存储未经签署的应用程序,而无需验证其真实性。 
如以上所提及的,一旦终端被解锁,其就可运行未经签署的应用程序,由此助益开发者的工作。通常,开发者将在一天中开发应用程序的若干个编译版本,这些编译版本被各自部署和运行。开发者可独立于服务来部署各个编译版本。这与对开发者使用基于证书的系统来授权和签署应用程序的各个编译版本的其它办法——其中证书为开发者所特有——是有益的。此类办法将证书安装并存储到终端上,并要求若干个设置步骤。 
相比之下,解锁状态允许将由例如在另一开发者的计算机上的软件开发工具的另一实例开发的未经签署的应用程序直接部署到终端并其上执行。因而,开发者可将终端连接到运行软件开发工具的另一实例的另一开发者的计算机,并将单独的应用程序/应用程序编译版本部署到同一终端。因而,终端的解锁状 态可持续不变,而与被用于注册其的开发者的计算机无关,以使得解锁状态允许将应用程序从在不同开发者的计算机上运行的软件开发工具的不同实例部署到终端并在该终端上执行。此外,终端的解锁状态持续不变,而与开发者以及开发者的帐户无关,以使得解锁状态允许将应用程序从软件开发工具的不同用户部署到终端并在终端上执行。 
此外,未经签署的应用程序可被部署到任何经注册的终端。在使用其它方法情况下,开发者必须提前知晓应用程序将在哪些终端上运行以及必须跟踪该信息,并且如果开发者尝试在另一终端上运行应用程序,或者另一开发者尝试运行应用程序,则其将不运行,因为对运行的授权被绑定到开发者或开发者的计算机。 
以上所提及的优点在涉及一个或多个开发者的开发过程方面提供了极大的灵活性和效率。向证书等效级别安全性提供了对于开发者而言简单的“保持开放”级别,如同终端在解锁下被装运那样。此外,尽管可在不与服务或其它集中式管理器交互的情况下加载应用程序,但是服务保持对终端的控制,因为在这些终端周期性地登记时它们可被注销(撤销注册)。例如,被知晓已违背注册协定的开发者(诸如由于分发代码破解软件)可使得他或她的帐户被取消,以使得注册到该开发者的终端在它们登记时被撤销注册。登记可相对频繁地发生,诸如比方两周一次,以使得未经授权使用的时段不会那么长。在另一可能的情景中,开发者的经注册终端可能丢失或失窃,在这种情形中,开发者可请求服务在终端下次登记时对这些终端撤销注册,以使得开发者可注册另一终端来代替丢失或失窃终端,而不会超过按注册协定的最大允许终端数目。此外,终端自己可通过其标识符与特定开发者相关联,以使得通过访问电话中的开发者标识符可使开发者对将终端给予违背注册协定的另一个人应负责任。 
在步骤506,开发者使用软件开发工具执行对应用程序的调试。任选地,在步骤508,开发者可与其它经注册的开发者及其经注册的终端共享应用程序,以使得他们可测试该应用程序并提供反馈。一种如此进行的可能的办法涉及开发者将未经签署的应用程序上传到服务。在步骤510,服务存储应用程序并对其编目录。在步骤512,另一经注册的开发者将未经签署的应用程序从服务下载到他或她的计算机,以使得其可被部署到任何经注册的终端。 
具体地,为了共享应用程序,开发者可向服务预先注册将要下载所共享的未经签署的应用程序的终端。此注册过程可涉及开发者例如通过使用其认证信息进行登录来向开发者门户认证他自己或她自己。开发者随后提供不可哄骗终端专用标识符,诸如IMEI号,或者由诸如GetDeviceUniqueID()等API返回的基于硬件的散列。共享涉及接收和预设终端专用许可证,其可被实现为终端处的终端专用证书。许可证可被各种过程用作终端已被解锁和授权进行共享的验证。 
图6A描绘了图2的步骤230的进一步细节,其中强制实施关于帐户状态的注册条款。如以上所提及的,虽然向开发者提供了极大的灵活性和易用性,但是服务仍对将应用程序部署到终端保持一定程度的控制。在一种可能的办法中,终端被配置成在步骤600将其标识符周期性地传达给服务以在登记过程中验证终端的状态。当终端诸如每几天一次被连接到网络时,可基于非确定性调度——例如在随机化时间下——发生登记。例如,智能手机可经由蜂窝小区电话链接或者经由Wi-Fi或蓝牙连接登记。在步骤602,服务基于标识符访问注册信息以标识相应的帐户,并确定帐户的状态。例如,状态可以是有效或无效/被取消。终端标识符在数据库中被链接到相应的开发者帐户以及相关联的帐户状态信息。在判决步骤604,如果帐户有效,则在步骤608,服务向终端发送继续持续解锁状态的命令。如果帐户无效,则在步骤606,服务向终端发送设置并持续锁定状态的命令。 
例如,当终端接收命令时,API SetDeveloperUnlockState(DEVELOPERUNLOCK_STATE_LOCKED)(设置开发者解锁状态(开发者解锁_状态_锁定))可被调用以重新锁定终端。在一种办法中,当锁定状态持续时,可保持已被安装到终端的来自软件开发工具的二进制文件和任何未经签署的应用程序。在此情形中,如果终端再次变为解锁,则开发者的连贯性得到保持。替换地,当发起锁定状态时,可删除二进制文件和/或任何未经签署的应用程序。注意,还可基于开发者命令——例如经由图4F的用户界面中的“移除”动作——锁定终端。开发者可能期望在终端不再需要应用程序开发时对终端撤销注册。 
图6B描绘了图2的步骤230的进一步细节,其中强制实施关于期满日期 的注册条款。在步骤610,例如,当终端首次被解锁时,终端基于来自服务的命令存储期满日期。在判决步骤612,当达到期满日期(和/或期满日期之前和/或之后的某一时间)时,终端将其标识符传达给服务,以在步骤614确定是否已续订终端的注册。服务可预先联系开发者,诸如经由电子邮件消息,以向开发者通知诸如通过访问服务的web站点来续订服务。 
注意,终端还可通过在终端维护的期满日期之前不时地向服务进行登记以及在终端所维护的期满日期下向服务进行登机时使其维护的期满日期与服务器维护的期满日期相一致。如果存在差异,则终端可将其期满日期改变成对应于服务所维护的期满日期。 
在步骤616,服务基于标识符访问注册信息以确定相应的帐户的状态。在判决618,如果已续订注册,则在步骤622,服务向终端发送用于继续持续解锁状态的命令。如果注册尚未被续订,则在步骤620,服务任选地向终端发送用于设置和持续锁定状态的命令。一旦检测到已过了期满日期,终端也可回到锁定状态。 
如以上结合图4A所提及的,被提供给终端的解锁数据可设置运行应用程序的授权期满的时间。此外,不同的所安装的应用程序可具有不同的期满时间。对应用程序专用的期满日期的强制实施可基于以上涉及图6A和6B的讨论来继续进行。 
在图6A的示例中,步骤600可被修改以规定终端将应用程序的标识符传达给服务。步骤602可被修改以规定服务例如通过使用应用程序的标识符来确定已被对终端授权的一个或多个应用程序的状态。步骤604可被修改以规定服务确定应用程序是否有效,例如,如果其期满日期尚未达到,则其是有效的。服务可将应用程序的标识符对照已被存储的期满日期。如果应用程序的授权已期满,但帐户仍有效,则步骤608可被修改以规定服务向终端发送用于持续特定应用程序的锁定状态的命令。因而,被授权的应用程序可被认为具有与终端的解锁状态相类似的解锁状态,且不再被授权的应用程序可被认为具有与终端的锁定状态相类似的锁定状态。 
在图6B的示例中,步骤610可被修改以规定终端存储已对终端授权的一个或多个应用程序的期满日期。步骤612可被修改以规定终端确定是否已达到 应用程序的期满日期。终端可将应用程序的标识符对照已被存储的期满日期。如果应用程序已期满,则步骤614可被修改以规定终端从服务确定对应用程序的授权是否已被续订。即使终端的期满日期尚未达到,也可执行此操作。步骤616可被修改以规定服务访问应用程序的注册信息以确定应用程序是否已被续订。服务可将应用程序的标识符对照指示应用程序是否已被续订的数据。步骤618可被修改以规定服务确定应用程序的状态。在判决618,如果已续订应用程序的注册,则在步骤622,服务可向终端发送命令以继续持续应用程序的解锁状态。一旦检测到已过了应用程序的期满日期,终端也可导致应用程序回到锁定状态。因而,应用程序可被认为具有与终端的注册相类似的注册。不同的应用程序可被认为具有不同的注册。 
注意,如以上讨论的对图6A和6B的过程的修改可用作图6A和6B中对终端强制实施注册条款的过程的使用的补充和替换。图6A和6B中对终端强制实施注册条款的过程的使用可在与图6A和6B中对应用程序强制实施注册条款的过程的使用不同的时间执行。类似地,图6A和6B的过程对于终端或多个终端的不同应用程序可在不同的时间执行。 
图6C描绘了图2的步骤230的过程流程图,其中强制实施注册条款。在过程630,终端确定其注册是否已期满。在过程632,终端与服务通信以确定终端是否已注册,例如其注册是否因未续订或对注册协定的违背而已失效。 
图7描绘了适于实现各个实施例的计算机硬件的示例框图。计算机硬件可表示例如本文中所讨论的开发者的计算机、终端和/或服务器。用于实现各个实施例的示例性系统包括通用计算设备710。计算设备710的组件可包括处理单元720、系统存储器730以及将包括系统存储器的各类系统组件耦合至处理单元720的系统总线721。系统总线721可以是例如存储器总线或存储器控制器、外围总线、以及使用各种总线体系结构中的任一种的局部总线。 
计算设备710可包括各种有形或非临时计算机或处理器可读介质。计算机可读介质可以是可由计算设备710访问的任何可用介质,而且包含易失性和非易失性介质、可移动和不可移动介质。计算机可读介质可包括计算机存储介质,诸如以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机 存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁存储设备、或能用于存储所需信息且可以由计算设备710访问的任何其他介质。以上的任一种的组合也包括在计算机可读介质的范围之内。 
系统存储器730包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM)731和随机存取存储器(RAM)732。基本输入/输出系统733(BIOS)包含有助于诸如启动时在计算设备710中元件之间传递信息的基本例程,它通常存储在ROM 731中。RAM 732通常包含处理单元720可以立即访问和/或目前正在操作的数据和/或程序模块。例如,可提供操作系统734、应用程序735、其它程序模块736和程序数据737。 
计算机系统710还可包括其它可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图7图解了不可移动、非易失性存储器740,诸如固态存储器,以及从或向可移动、非易失性存储器卡752读取的存储器卡(例如,SD卡)接口/读取器750。可以在示例性操作环境中使用的其他可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等等。 
计算机存储介质提供对计算机可读指令、数据结构、程序模块、和计算设备710的其它数据的存储。例如,不可移动、非易失性存储器740被示为存储操作系统744、应用程序745、其它程序模块746和程序数据747。这些组件可以与系统存储器730中的操作系统734、应用程序735、其他程序模块736和程序数据737相同,也可以与它们不同。操作系统744、应用程序745、其他程序模块746和程序数据747在这里被标注了不同的标号是为了说明至少它们是不同的副本。开发者可通过诸如键盘/触摸屏762和话筒761等输入设备将命令和信息输入到计算设备710中。其它输入设备(未示出)可以包括操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等。这些和其他输入设备通常由耦合至系统总线的开发者输入接口760连接至处理单元720,但也可以由其他接口和总线结构,诸如并行端口、游戏端口或通用串行总线(USB)连接。显示器/监视器791也经由接口,诸如视频接口790连接至系统总线721。诸如音频输出797等其它外围输出设备可通过输出外围接口795来连接。 
计算设备710可使用至诸如远程计算设备780等一个或多个远程计算设备的逻辑连接在网络化环境中操作。远程计算设备780可以是另一移动设备、个人计算机、服务器、路由器、网络PC、对等设备或其它常见的网络节点,并且一般包括上面就计算机710描述的许多或全部元件。这样的联网环境在办公室、企业范围计算机网络、内联网和因特网中是常见的。 
当在联网环境中使用时,计算设备710通过网络接口或适配器770连接至另一网络。在网络化环境中,就计算设备710描绘的程序模块或其部分可被储存在远程存储器存储设备中。例如,远程应用程序785可驻留在存储器设备781上。所示的网络连接是示例性的,并且可以使用在计算设备之间建立通信链路的其它手段。 
在此所述技术的上述详细描述是为了说明和描述而提供的。并非旨在穷举本技术或将其限于所公开的精确形式。鉴于上述教导,许多修改和变型都是可能的。选择上述实施例来最好地解释本技术的原理及其实践应用,从而使本领域其他人能够在各种实施例中并用各种适于所构想的特定用途的修改一起最好地利用本技术。本技术的范围旨在由所附权利要求书来定义。 

Claims (14)

1.一种由一个或多个服务器执行的用于管理具有网络通信能力的终端的处理器实现的方法,包括:
经由开发者的计算机(140)从所述开发者接收用于注册为软件开发者以开发用于所述终端(120)的应用程序的注册信息,所述注册信息包括开发者标识符和开发者认证信息,并且指示所述开发者已注册了多个可用许可的一个或多个许可中的哪一个;
存储所述注册信息;
向所述开发者的计算机发送指示所述开发者已被所述一个或多个服务器(160)认证的数据,所述开发者的计算机经由在所述终端与所述开发者的计算机之间建立的通信链路(102)向所述终端提供所述数据;
从在所述终端上运行的客户机软件(122)接收解锁所述终端的请求,所述请求包括所述数据和所述终端的标识符;以及
基于所述请求和所述注册信息,确定是否授权对所述终端的解锁,且如果对所述终端的所述解锁被授权,则向所述终端发送用于解锁所述终端的命令,所述命令包括解锁数据和期满日期,作为对所述命令的响应,在所述终端中持续解锁状态直至所述期满日期,所述命令指示所述开发者已注册的所述一个或多个许可并且所述一个或多个许可由所述终端响应于所述命令来强制实施,所述解锁状态允许将由在所述开发者的计算机上运行的软件开发工具的实例开发的一个或多个未经签署的应用程序部署到所述终端上并在所述终端上执行,直至所述期满日期。
2.如权利要求1所述的处理器实现的方法,其特征在于:
所述注册信息包括关于可被注册到所述开发者的最大容许解锁终端数目的规定;以及
对所述终端的所述解锁是基于所述解锁未违背所述规定来授权的。
3.如权利要求1到2中任意一项所述的处理器实现的方法,其特征在于,所述命令标识所述解锁状态持续的时段,所述方法还包括:
在所述时段结束时从所述终端接收所述终端的所述标识符;
基于所述标识符标识所述开发者的帐户;
确定所述开发者的所述帐户是否已被续订;以及
响应于所述确定,在所述帐户已被续订时,向所述终端发送用于持续所述解锁状态的命令,或者在所述帐户尚未被续订时,向所述终端发送用于持续锁定状态的命令。
4.如权利要求1到3中任意一项所述的处理器实现的方法,其特征在于,所述命令标识持续所述解锁状态的时段,所述方法还包括:
在所述时段结束之前从所述终端接收所述终端的所述标识符;
基于所述标识符标识所述开发者的帐户;
确定所述开发者的所述帐户是否已被取消;以及
响应于所述确定,在所述帐户尚未被取消时,向所述终端发送用于持续所述解锁状态的命令,或者在所述帐户已被取消时,向所述终端发送用于持续锁定状态的命令。
5.如权利要求1至4中的任一项所述的处理器实现的方法,其特征在于:
所述注册信息包括关于可在被注册到所述开发者的解锁终端上运行的最大容许应用程序数目的规定。
6.如权利要求1至5中的任一项所述的处理器实现的方法,其特征在于:
所述注册信息包括关于应用程序在被注册到所述开发者的解锁终端上可被启动的最大次数的规定。
7.如权利要求1至6中的任一项所述的处理器实现的方法,其特征在于:
所述注册信息包括关于被注册到所述开发者的解锁终端上的应用程序的应用程序专用期满日期的规定。
8.一种用于管理具有网络通信能力的终端的系统,包括:
用于经由有线或无线链路(102)从开发者的计算机(140)的软件开发工具的实例接收通信的装置,所述通信包括指示所述软件开发工具的所述实例的开发者已被一个或多个服务器(160)认证的数据;
用于响应于所述通信,向所述一个或多个服务器发送对解锁所述终端的请求的装置,所述请求包括所述数据和所述终端的标识符并且指示所述开发者已注册了多个可用许可中的一个或多个许可中的哪一个;以及
用于从所述一个或多个服务器接回用于解锁所述终端的命令的装置,所述命令包括解锁数据和期满日期,作为响应,在所述终端中持续解锁状态直至所述期满日期,所述命令指示所述开发者已经注册的所述一个或多个许可并且所述一个或多个许可由所述终端响应于所述命令来强制实施,所述解锁状态允许将由所述软件开发工具的所述实例开发的一个或多个未经签署的应用程序部署到所述终端并在所述终端上执行,直至所述期满日期。
9.如权利要求8所述的系统,其特征在于:
所述命令包括被存储以持续所述解锁状态的许可证文件或持久令牌。
10.如权利要求8或9所述的系统,其特征在于:
所述解锁状态允许将由所述软件开发工具的另一实例开发的一个或多个未经签署的应用程序部署到所述终端并在所述终端上执行。
11.如权利要求8到10中的任一项所述的系统,其特征在于:
独立于所述开发者的计算机持续所述解锁状态,以使得所述解锁状态允许将来自在不同开发者的计算机上运行的所述软件开发工具的不同实例的一个或多个未经签署的应用程序部署到所述终端并在所述终端上执行。
12.如权利要求8到11中的任一项所述的系统,其特征在于:
独立于所述开发者持续所述解锁状态,以使得所述解锁状态允许将来所述软件开发工具的不同开发者的一个或多个未经签署的应用程序部署到所述终端并在所述终端上执行。
13.如权利要求8到12中的任一项所述的系统,其特征在于,所述命令标识持续所述解锁状态的时段,所述系统还包括:
用于在所述时段结束时向所述一个或多个服务器发送所述终端的所述标识符的装置,所述一个或多个服务器基于所述终端的所述标识符标识所述开发者的帐户,以及确定所述帐户是否已被续订;以及
用于在所述帐户已被续订时,接收用于持续所述解锁状态的指令,或者在所述帐户尚未被续订时,接收用于持续锁定状态的指令的装置。
14.如权利要求8到13中的任一项所述的系统,其特征在于,所述命令标识持续所述解锁状态的时段,所述系统还包括:
用于在所述时段结束之前向所述一个或多个服务器发送所述终端的所述标识符的装置,所述一个或多个服务器基于所述终端的所述标识符标识所述开发者的帐户,以及确定所述帐户是否已被取消;以及
用于在所述帐户还未被取消时,接收用于持续所述解锁状态的指令,或者在所述帐户已被取消时,接收用于持续锁定状态的指令的装置。
CN201110031352.XA 2010-01-20 2011-01-19 开发者电话注册 Active CN102130907B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US29662110P 2010-01-20 2010-01-20
US61/296,621 2010-01-20
US12/853,608 US8533811B2 (en) 2010-01-20 2010-08-10 Developer phone registration
US12/853,608 2010-08-10

Publications (2)

Publication Number Publication Date
CN102130907A CN102130907A (zh) 2011-07-20
CN102130907B true CN102130907B (zh) 2014-05-07

Family

ID=44268797

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110031352.XA Active CN102130907B (zh) 2010-01-20 2011-01-19 开发者电话注册

Country Status (1)

Country Link
CN (1) CN102130907B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103544409A (zh) * 2012-07-11 2014-01-29 腾讯科技(深圳)有限公司 一种应用程序控制方法、用户设备及服务器
CN107431613B (zh) * 2015-04-20 2021-02-05 深圳市大疆创新科技有限公司 用于支持可移动物体应用开发的系统和方法
US11768004B2 (en) 2016-03-31 2023-09-26 Johnson Controls Tyco IP Holdings LLP HVAC device registration in a distributed building management system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1320795B1 (en) * 2000-09-21 2005-11-16 Research In Motion Limited Software code signing system and method
CN101437224A (zh) * 2008-12-22 2009-05-20 中兴通讯股份有限公司 移动终端软件的更新方法和移动终端
CN101563871A (zh) * 2006-12-19 2009-10-21 高通股份有限公司 基于许可证信息在手持机之间计划性地转移应用程序

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2003208993A1 (en) * 2002-02-05 2003-09-02 Logicvision, Inc. Method and system for licensing intellectual property circuits
US7024689B2 (en) * 2002-12-13 2006-04-04 Intuit, Inc. Granting access rights to unattended software
US7797545B2 (en) * 2005-09-29 2010-09-14 Research In Motion Limited System and method for registering entities for code signing services
CN101345947A (zh) * 2008-08-29 2009-01-14 中兴通讯股份有限公司 一种手机锁定方法、解锁方法、锁定装置及手机

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1320795B1 (en) * 2000-09-21 2005-11-16 Research In Motion Limited Software code signing system and method
CN101563871A (zh) * 2006-12-19 2009-10-21 高通股份有限公司 基于许可证信息在手持机之间计划性地转移应用程序
CN101437224A (zh) * 2008-12-22 2009-05-20 中兴通讯股份有限公司 移动终端软件的更新方法和移动终端

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Apple.《iPhone Development Guide *
Development Environments: Xcode》.《iPhone Development Guide *
Development Environments: Xcode》.2009,第47页第5章-第56页. *

Also Published As

Publication number Publication date
CN102130907A (zh) 2011-07-20

Similar Documents

Publication Publication Date Title
US8533811B2 (en) Developer phone registration
US11625460B1 (en) Security platform
CN103597494B (zh) 用于管理文档的数字使用权限的方法和设备
US7562220B2 (en) System and method for programming an isolated computing environment
US8984291B2 (en) Access to a computing environment by computing devices
RU2439690C2 (ru) Программная передача приложений между телефонными трубками на основе лицензионной информации
CN105164633B (zh) 由可信提供商进行的配置和验证
AU2011318417B2 (en) Application usage policy enforcement
US20060161445A1 (en) Binding a device to a computer
US20050202803A1 (en) Secure interaction between downloaded application code and a smart card in a mobile communication apparatus
US10855675B2 (en) Managed open source medical device
JP2006085718A (ja) 位置情報に基づくライセンス付与
JP5485484B1 (ja) 情報処理装置、情報処理方法、プログラム、記憶媒体
CN101366040A (zh) 用户对于对象的访问的管理
CN105939362A (zh) 用户账号管理方法及装置
CN103366304B (zh) 一种虚拟商品使用权的转让方法、装置和设备
JP5485485B1 (ja) 情報処理装置、情報処理方法、プログラム、記憶媒体
JP2009519557A (ja) 資源が限られている装置におけるオフライン認証方法
CN101853359A (zh) 一种基于应用软件散布的软件授权与保护方法及系统
CN102130907B (zh) 开发者电话注册
KR102026279B1 (ko) 애플리케이션을 관리하는 방법
CN109117605A (zh) 一种鉴权方法及其装置、设备和存储介质
US8646099B2 (en) Midlet signing and revocation
JP2004362189A (ja) ユーザ情報流通システム
CN102812470A (zh) 在第一次访问时的内容绑定

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150515

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

Effective date of registration: 20150515

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.