CN102130907B - Developer phone registration - Google Patents

Developer phone registration 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
Chinese (zh)
Other versions
CN102130907A (en
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/en
Application granted granted Critical
Publication of CN102130907B publication Critical patent/CN102130907B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

A technique allows software developers to develop applications for a smart phone or other terminal by unlocking the terminal so that it can run unsigned applications. A developer registers with a web-based service, agrees to registration terms, and provides authentication credentials. Data which verifies the authentication credentials is provided back to the developer's computer. The terminal is connected to the developer's computer, and via a user interface, the developer requests registration of the terminal. In response, the terminal receives the data from the developer's computer, and provides the data and a unique terminal identifier to the service. If authorized, the service returns a persistent token or license which is stored at, and used to unlock, the terminal. The service can also provide a command which enforces an expiration date. The terminal checks in with the service to determine if the account is in good standing, and is re-locked if warranted.

Description

Developer phone registration
The cross reference of related application
The application requires the U.S. Provisional Application No.61/296 submitting on January 20th, 2010,621 rights and interests, and this provisional application is included in this by quoting.
Technical field
The present invention relates to phone registration technology.
Background technology
Portable terminals such as smart phone, because ability of its operation third party application becomes increased popularity, this third party application is normally free or under tip very, from website, download to terminal paying.This type of application program can comprise game, utilizes the program of geo-location service, educational applications program etc.Terminal manufacturer is used for encouraging the exploitation to these application programs by making SDK (Software Development Kit) can be software developer.This type of instrument can comprise the terminal emulator of function and the performance of pseudo-terminal, and for disposed, carry out, debug and share the instrument of this application program before commercial distribution application program.In most of situations, before the issue of application program in terminal from test application with it.But terminal is shipped conventionally, thereby make only can for example, from the source of granted (, obtain and trust or authorize), dispose and executive utility.The application program that developer registers and completed to manufacturer is submitted to the website of manufacturer, and application program is inspected and ratified and distributes there.When developer downloads to terminal by application program, sign cryptographically application program by digital signature, and before allowing application program operation, terminal is used signature verification authenticate application program to go through.
But, use on stream this type of authentication mechanism can make software developer's work more difficult.Conventionally, authentication mechanism is the authentication mechanism based on certificate complicated and that easily make mistakes, and this mechanism requires the relation between developer office terminal and the computer of its operating software developing instrument.On the other hand, if the not limited ability that developer is permitted on terminal deploy and runs application, this makes to be easier to for example by application program side, to load and move unauthorized application program, thereby piracy is encouraged.In addition,, when developer moves the SDK (Software Development Kit) for different terminals with different computers, administrative challenge has been proposed.There is administrative challenge, the administrative challenge of numerous computer-mono-terminal and the administrative challenge of numerous computer-numerous terminals of computer-numerous terminals.
Summary of the invention
Provide and permitted the technology of software developer authenticated, that register to the service registry smart phones such as the service such as based on web or other-end.Once terminal is registered, it becomes and is activated so that the application program of deployment, execution, debugging and shared unsigned for example, does not comprise the application program of cryptographic signatures.To the registration of terminal, can be bound to the duration of developer's registration.
Terminal can be smart phone, and it is mobile phone or the cellular cell phone that has senior ability and the feature that is similar to personal computer (PC) is provided.Typically, smart phone operation provides the operating system software of standard interface and platform to application developer.Usually provide such as on E-mail, internet access, E-book reader ability, screen or the feature such as physical keyboard and cable connector.More generally, terminal can be the terminal with network connectivty and application platform of any type, and wherein the distribution of application program need to be controlled.For example, via cable or wireless link, terminal is connected to developer's computer, the latter's operating software developing instrument.SDK (Software Development Kit) provides the user interface that allows developer's selection and registration terminal.
In one embodiment, by one or more servers, carry out a kind of method realizing for managing the processor of the terminal with network communications capability.One or more servers provide service to application developer.Method comprises from developer's reception for being registered as software developer to develop the log-on message for the application program of terminal.Developer can be before developer be ready to that APD is deployed to terminal registered in advance sometime, or can register in conjunction with APD is deployed to terminal.Log-on message can comprise such as developer's identifier such as developer's title or e-mail address, and developer's authentication information/voucher such as such as password.One or more servers are stored in log-on message in account.One or more servers send indication developer by the data of one or more server authentications to developer's computer.Developer's computer provides this data via the communication link of setting up between terminal and developer's computer to terminal.This can automatically be carried out, and gets involved without user, or in response to being carried out via the order of the user interface input at developer's computer place by developer.
Then, terminal is initiated and the communicating by letter of server.Server receives the request of release terminal from the client software moved in terminal, and wherein request comprises the identifier of these data and terminal.Service is carried out data and developer's account associated, and if licensed, authorize release.Service can check to guarantee that account is not yet cancelled and account's maximum allows that release terminal number is not yet exceeded.Via request and log-on message, if authorized to the release of terminal, one or more servers send the order for release terminal to terminal, as response, continue (maintaining) released state in terminal.Order can comprise for example license file or lasting token together with expiry date, such as such as login key etc. is through encrypted identifier.Terminal continues released state until expiry date.
Released state allows the APD of the unsigned of being disposed by SDK (Software Development Kit) is deployed to terminal and carries out in terminal.In a kind of possible way, in released state, chartered developer or can freely and repeatedly different compiled version or the version of the application program of one or more unsigned be deployed to terminal through registration or unregistered any other people, disposes and runs application making in the case of the digital signature without verifying application programs.The speed that this way greatly contributes to developer to work, because developer is without relation and the authentication mechanism that is associated between office terminal and developer or developer's computer.Require to dispose and move all application programs before authenticate the high safety way of these application programs and without any developer or endpoint registration in the situation that, allow to move the balance that provides best between the open cut-in method of application program of any unsigned.
This summary some concepts to further describe in the following description with reduced form introduction are provided.This general introduction is not intended to identify key feature or the essential feature of theme required for protection, is not intended to the scope for limiting theme required for protection yet.
Accompanying drawing explanation
Fig. 1 described to comprise developer's computer, on it by the network of one or more servers of the terminal of disposing application program and developer's door.
Fig. 2 described for the method for the network coupling of Fig. 1, wherein developer and terminal are registered to the service of developer's door, in terminal deploy and run application, and registration clause is enforced.
Fig. 3 A has described the further details of the step 200 of Fig. 2, and wherein developer registers to the service of developer's door.
Fig. 3 B has described the example user interface being associated with the step 304 of Fig. 3 A, and wherein developer provides log-on message.
Fig. 4 A has described the further details of the step 210 of Fig. 2, wherein developer to the one or more terminals of service registry of developer's door with the one or more terminal of release.
Fig. 4 B has described the further details of the decision steps 414 of Fig. 4 A, and wherein service determines whether authorize the release to terminal.
Fig. 4 C and 4D have described the example user interface being associated with the step 405 of Fig. 4 A, and developer selects one or more terminals to register by it.
Fig. 4 E has described the example user interface being associated with the step 421 of Fig. 4 A, the report that this interface provides indicating terminal to be unlocked.
Fig. 4 F has described the example user interface being associated with the step 421 of Fig. 4 A, and this interface provides the report of all terminals that have been unlocked that indication is associated with developer account.
Fig. 4 G has described the process flow diagram of the step 210 of Fig. 2, wherein developer to the one or more terminals of service registry of developer's door with the one or more terminal of release.
Fig. 5 has described the further details of the step 220 of Fig. 2, and wherein application program is deployed to and is unlocked terminal operation thereon.
Fig. 6 A has described the further details of the step 230 of Fig. 2, wherein enforces the registration clause about Account Status.
Fig. 6 B has described the further details of the step 230 of Fig. 2, wherein enforces the registration clause about expiry date.
Fig. 6 C has described the process flow diagram of the step 230 of Fig. 2, wherein enforces registration clause.
Fig. 7 has described to be suitable for the example block diagram of the computer hardware of realizing each embodiment.
Embodiment
Provide terminals such as smart phone, supplied the computer of software developers develop for the SDK (Software Development Kit)/code of the service of the application program of terminal and developer's operation terminal.Allow such as user/developers such as individual in one or more terminals, easily dispose and run application by streaming registration and terminal unlocking process.In a kind of possible way, once be unlocked, application program just can freely and directly be disposed and be moved.But developer is still responsible for these terminals, because these terminals are linked to developer's registering account.In addition,, according to registration agreement, developer is restricted on the number of the terminal that can be unlocked and access.In addition,, if developer has run counter to registration agreement, can nullify terminal.Whether terminal periodic ground examination service is in good standing to determine account, and as response, service can provide lock command (if having reasonable ground) to terminal.
Fig. 1 described to comprise developer's computer, on it by the network of one or more servers of the terminal of disposing application program and developer's door.In this example, terminal 120 is smart mobile phones, and the deployment of the application program of this terminal will be managed.The example of smart mobile phone comprises that operation is such as WINDOWS
Figure BSA00000429642200051
blackberry, blueberry
Figure BSA00000429642200052
samsung
Figure BSA00000429642200053
with
Figure BSA00000429642200054
etc. the mobile phone of operating system.But, the concept providing herein can with the terminal coupling of any type with network connectivty and application platform, wherein when encouraging third party developer to build application program, expect the distribution of controlling application program to terminal.Conventionally, terminal can have uniqueness identifier.Other examples of this Terminal Type comprise such as apple
Figure BSA00000429642200055
and Microsoft
Figure BSA00000429642200056
deng portable electronic device, such as the SURFACE of Microsoft tM, the surface computing platform such as dull and stereotyped PC, such as based on enabling the household electrical appliances such as the TV of network, such as MICROSOFT
Figure BSA00000429642200057
deng game station, personal digital assistant (PDA) or palmtop computer, for the mathematic for business assistant (EDA) of the Data Collection of business applications, GPS equipment etc.Terminal also may have Standard PC operating system, APD is deployed in this operating system with third party's development model.Thereby terminal can be PC.Terminal can be the mass-produced equipment that can buy from retailer, or it can be the equipment of customization.
As the terminal 120 of smart mobile phone can be communicated by letter with antenna 108 via radio honeycomb cell phone link 104, antenna 108 with cellular cell phone facility 110 in communicating by letter.Facility 110 can for example, be communicated by letter with one or more networks 100 (wide area networks such as internet and/or Intranet) again, and with make software developer can access terminal to communicate by letter by disposing, carry out, debug with one or more servers 160 of sharing the service of developing its application program.Terminal 120 also can be via developer's computer 140 and the one or more server communication.For registration terminal 120, between terminal and developer's computer 140, set up communication link 102, SDK (Software Development Kit) is moved on this computer 140.For example, link 102 can be the cable (heaving pile) extending between the connector of terminal and the connector of developer's computer 140.Alternatively, can set up such as the wireless link via Wi-Fi (IEEE 802.11) or bluetooth (IEEE 802.15.1).Developer's computer is communicated by letter with one or more servers 160 via one or more networks 100.
Whole actions that developer's computer is taked also may be undertaken by terminal.
Terminal 120 can have several assemblies, comprises client software 122.In a kind of way, when terminal and developer's computer 140 foundation are communicated by letter, start client software.Client software is configured to provide function as described in this article.Modern terminal has usually had the software and hardware resource that is enough to carry out function described herein.In some cases, if necessary, can provide Add-ons to terminal.Allow terminal and developer's computer to connect with the interface 124 of developer's computer.Interface can comprise the port of for example Wi-Fi circuit or cable connector.Allow terminal to pass on voice and other data via cellular cell phone facility 110 with the interface 126 of cellular phone network.Interface can comprise for example RF transmitter and receiver.Provide one or more processors 128 with operation be stored in volatile memory such as RAM 130 and/or nonvolatile memories such as ROM the processor readable code in 132.Memory 130 and 132 is considered to include on it tangible computer-readable storage of the computer-readable software at least one processor 128 is programmed.User interface can comprise keyboard and/or screen.
Note, in a kind of way, the user interface of terminal is not used as the part of process of application development.Alternatively, all exploitations occurs via the user interface of the SDK (Software Development Kit) of moving on developer's computer.SDK (Software Development Kit) can have off-line ability (it is not connected to one or more servers 160 in this manner), and concatenation ability (it is connected to one or more servers 160 in this manner).Thereby the user interface that is placed on the developer's of terminal computer can be the exclusive user interface for dispose unsigned application program to terminal.This way makes the more difficult access terminal of undelegated people.Requiring to use SDK (Software Development Kit) on computer separately to visit terminal will hinder many unofficial, undelegated people and attempt access terminal.The unofficial user of great majority cannot bear and download the also trouble of operating software developing instrument.
Developer's computer 140 can be the computer of any type of operating software developing instrument on it.An example of this type of software is the WINDOWS of Microsoft
Figure BSA00000429642200061
sDK, it is at VISUAL
Figure BSA00000429642200062
in development environment, work.SDK typically comprises that confession developer tests and modulate the simulator image of its application program while writing its application program.Other examples comprise the SDK of previously mentioned various operating systems.Developer's computer 140 can be the computer of any type substantially, such as personal computer (PC), desktop computer, the terminal that is connected to main frame, Integral computer, work station or laptop computer, comprise notebook or net book computer.Substantially, developer's computer 140 is the computers that separate with terminal, and provides suitable resource with operating software developing instrument to developer.Developer's computer has several assemblies, comprises SDK (Software Development Kit) 142.In a kind of way, SDK (Software Development Kit) is started when this developer expects to use application program by developer.SDK (Software Development Kit) is configured to provide function as described in this article, and is provided for the conventional instrument of application development.Allow developer's computer 140 to communicate by letter with terminal 120 with the interface 144 of terminal.Interface can comprise the port of for example Wi-Fi circuit or cable connector, such as analogy USB port.
Allow developer's computer 140 to communicate by letter with server 160 via at least one network 100 with the interface 146 of service.Interface can comprise for example network interface unit (NIC).Provide one or more processors 148 with operation be stored in volatile memory such as RAM 150 and/or nonvolatile memories such as hard disk or solid-state memory the processor readable code in 152.Memory 150 and 152 is considered to include on it tangible computer-readable storage of the computer-readable software at least one processor 148 is programmed.User interface 154 can comprise keyboard, mouse and/or screen display, as discussed further below.
One or more servers 160 can be positioned at one or more positions.In a kind of way, registrar 160 is used to store developer and endpoint registration information, comprises the database of registered developer and terminal.Developer can set up the account who safeguards according to registration agreement, this registration agreement specifies price that such as developer pays, payment informations such as credit number, the registrable maximum number of terminal and the expiry date of registration of developer.When one or more terminals are registered, the identifier of these terminals can be linked to developer's account.Certificate server 164 receives and stores developer's authentication information, such as developer's identifier and password.Developer can directly or via registrar communicate by letter with certificate server.Developer can use the LIVE such as WINDOWS tMthe single login service such as ID provides authentication information, and single login service allows user to use an account to login multiple websites or service, such as timely information receiving, Email and music download station.Another example coupon Verification System is OpenID (open ID).In a kind of sight, when developer is for when visiting website to the irrelevant reason of service registry with developer's computer 140, authentication developer.When developer relates to registration process subsequently, the addressable certificate server 164 of registrar 162 is certified to determine developer, to make developer without Additional Verification information is provided.
For the apps server 166 of signing application program, can access to download the application program through signature by terminal 120, it can comprise no longer under exploitation and the application program of serviced approval issue.Typically, this type of application program is classified and to make it can be the public used.The domestic consumer of terminal can will download to terminal 120 through the application program of signature from server 166.Application program through signature only just can be moved after its signature is verified in terminal.Note, identical terminal can be moved the application program through signature and unsigned.That is, though in release terminal with after its unsigned binary system/application program of being provided by developer of operation is provided, it still can retain carries out to other application programs through signature the ability that enforces signature.
The apps server 168 that is used for the application program of unsigned comprises still in exploitation and not yet for ratifying to be distributed to general masses' application program.Conventionally, developer managed to make in shared procedure, to move and test its application program other developers such as colleague before its application program is published.Developer can upload onto the server 168 by application program, and it is used by being classified and making its on limited basis (such as by requiring password) to can be other registered developers there.Application program (not yet going through to carry out public distribution) in this state may be signed or unsigned.
Generally speaking, the service providing can have following characteristics: (1) makes the developer can be by the client computer release terminal of communicating by letter with web services in the mode having authenticated in terminal; (2) make developer manage their terminal of release by developer's door; (3) guarantee that retail terminal can be connected to web services and verify that they are in locking or released state; (4) guarantee the terminal that given developer can only release predefine number; (5) guarantee that developer's door and web services can and guarantee that in response to dissimilar developer the number of the terminal that can be unlocked can be according to developer's type and difference; And (6) guarantee that the essential account's who there is no developer's door developer cannot its retail terminal of release.
Some sample scenarios of realizing are as follows:
Sight 1:Cheryl is always at the new game of developing intellectual resource mobile phone.Development phase in early days, she tests, verifies and debug her game with terminal emulator.Due to her codified, structure, deployment, debugging and can simulate in the speed repeating subsequently and terminal emulator this fact of whole mobile phone behaviors (such as accelerometer input) that its game is used, she is happy to this solution.In exploitation, approach ending phase, she wishes on true phone, to test its game, to guarantee that all things all work rightly.She also thirsts for using in real world scenarios it to play to verify and play games and overall customer experience.She links its PC by its phone system, and selects deployment order in SDK (Software Development Kit).After object listing is selected its phone, she is apprised of her must register its phone for exploitation, and puts into simple guide.In several minutes, for exploitation, registered phone, game is deployed to phone, and she plays games on phone.
Sight 2:Timothy is just sharing (snack) application program at development data, for example, collect the application program of low volume data, and be ready to be deployed to its terminal from different web sites.He links PC by terminal system, and selects deployment order in SDK (Software Development Kit).After object listing is selected its terminal, he is apprised of him must register its terminal for exploitation, and puts into simple guide.When he carries out in guide, he is apprised of it and is not yet registered completely as terminal development person.Web browser starts to developer's door, and he completes its registration there.He returns to developer's terminal guide subsequently, and there, he confirms that he is registered now rightly.In several minutes, for exploitation, registered terminal, his APD is deployed to terminal, and he runs application.
Sight 3:Kathy is building music video application program, and is ready to be deployed to her terminal.She links its PC by its terminal system, and selects deployment order in SDK (Software Development Kit).She had previously registered her terminal, and therefore, when she selects terminal from object listing, application program is disposed immediately and in one minute, she can carry out with her application program in terminal alternately.
Sight 4:Kevin is building mapping application, and is ready to be deployed to his terminal.He sets up wireless link between terminal and PC, and selects deployment order in SDK (Software Development Kit).In the situation that selecting its terminal from object listing, it is expired that he is apprised of its developer's registration.His web browser starts to developer's door, and he upgrades its registration there.He returns to developer's terminal guide subsequently, and there, he confirms that he is registered now rightly.In several minutes, for exploitation, registered his terminal, his APD is deployed to terminal, and he runs application.
In a kind of way, service can be disposed the application programming interface (API) based on HTTP, these interfaces permission terminals are carried out exercises, such as asking its state (locking or release), its state (locking or release) being set and using its uniqueness terminal identifier (TerminalID (Termination ID)) and indicate the authentic data of developer to authenticate.Service also enforces every developer's maximum and allows terminal number, and this can be based on regulating on each developer's basis.Service also can provide manager's control desk, and it allows manager to regulate the number of allowing terminal for given account's release.
Can use following exemplary method:
(1) unregistered terminal command service is sent lock command to terminal.Lock a terminal removes it from release terminal list.Need authentication.Input comprises TerminalID and authenticated user entities portable uniqueness identifier (PUID).Output comprise by or status of fail.
(2) registration terminal command service is sent unlock command to terminal.Release one terminal is added to " release " terminal list of specific development person account.Need to comprise the authenticated user session of the PUID of authenticated user entities.Input comprises Termination ID, authenticated, the pet name and PUID.Output comprise by or status of fail and expire before number of days or expiry date.
(3) equipment state returns to the state (locking or release) of particular terminal.Do not need authentication.Input comprises Termination ID.Output comprises release, locking or does not find state.If release, serves to terminal and sends expiration interval (time before expiring).If locking, service returns to zero.
From logical perspective, some primary demands can comprise as follows: (1) must have effective Account Status by any developer of API release terminal---this means in minimum degree, they must pay any required expense and must be allowed to access door.(2) API enforces the terminal count according to type of account.Example type of account comprises partnership account (wherein partnership and service provider have built vertical operating agreement), non-partnership account (wherein non-partnership and service provider do not set up operating agreement) and individual account.For organizing account, the number of the terminal that allows of acquiescence is greater than individual account's conventionally.The data of the terminal that allows of acquiescence should configure based on every account.(3) if developer exceedes the number of allowed terminal, throw exception, and require developer's (via terminal clientsaconnect) from the list of developer's door, to remove a terminal.(4) terminal unlocking should enforce the time expiration line of release terminal.It is 12 months that the acquiescence of release terminal is expired, and is bound to expiring of developer account.(5) expired registration should make terminal auto-returned lock-out state, as registration once again, should extend expiry date and make terminal keep release.
Below represent that some fundamental errors codes that API can return enumerate: mistake 901---account is inactive, mistake 902---account does not find, mistake 903---terminal technology exceeds, mistake 904---cannot release terminal (general), mistake 905---cannot locking terminal (general), and wrong 906---Termination ID does not find.
Below represent the spendable example API of service.
(1) equipment state
Path: http://api.developer.windowsphone.com/tools/02/2010/terminals/G etStatus? terminalId:Guid
Method: obtain
Describe: obtain the state of terminal, state is locking, release or does not find.
Project: SOT state of termination is enumerated
UrlParameters (Url parameter)
TerminalId: character string (global uniqueness identifier or GUID), the terminal of indicating to search
Sample responses:
Figure BSA00000429642200111
(2) locking terminal
Path: http://api.developer.windowsphone.com/tools/02/2010/terminals/L ockTerminal? terminalId:Guid}
Method: deliver
Describe: command service is sent lock command to terminal.
Project: SOT state of termination is enumerated
UrlParameters (Url parameter)
TerminalId: character string (GUID), the terminal searching and lock of indicating
LiveIDTicket (survival ID bill): the bill that comprises developer's information (in head)
Sample responses:
Figure BSA00000429642200112
Figure BSA00000429642200121
Note, the request of acquisition only obtains data based on URL value and one group of HTTP head from web server.About obtaining request, there is no excessive data; All things are all specified in URL and head.By contrast, the request of delivering sends additional data (URL after appointment), head and is used to indicate the null of the end of head to web server.
Fig. 2 described for the method for the network coupling of Fig. 1, wherein developer and terminal are registered to the service of developer's door, in terminal deploy and run application, and registration clause is enforced.In step 200, developer registers to service according to registration agreement.The further details of step 200 provides in conjunction with Fig. 3 A and 3B.
In step 210, developer to the one or more terminals of service registry with the one or more terminal of release.The further details of step 210 provides in conjunction with Fig. 4 A-4g.In step 220, developer is in the one or more terminal deploy and running application.The further details of step 220 provides in conjunction with Fig. 5.In step 230, for example, during the time period of the one or more terminals of registration, enforce the clause of registration agreement.The further details of step 230 provides in conjunction with Fig. 6 A-6C.
Fig. 3 A has described the further details of the step 200 of Fig. 2, and wherein developer registers to the service of developer's door.In a kind of situation, developer starts pre-registration in step 300.Generally speaking, this developer before service registry terminal sometime to service registry he own or herself time occur.In step 302, developer for example uses the web website of conventional web browser access services to register.In step 304, developer provides log-on message via web website.About further details, please refer to Fig. 3 B.In step 306, service is stored in information for example on one or more servers.In step 308, service sends the authentic data of indication developer to developer's computer.These data can comprise for example service ticket or other have token or word exampleization key value right through encrypting cookie.In step 310, data are stored on developer's computer.
In the second registration situation, developer via the SDK (Software Development Kit) on developer's computer such as in conjunction with registration terminal, start registration (step 312).In step 314, developer selects the terminal that will register via user interface.In step 316, developer is redirected to the web website of service to register, and all the other step 304-310 that carry out as discussed previously.
Fig. 3 B has described the example user interface being associated with the step 304 of Fig. 3 A, and wherein developer registers to the service of developer's door.Example user interface or screen display 320 are for " developer's registration ".It comprises the part 322 for developer's information, and wherein developer's point proceeds to a form to input for example developer's identifier, developer's name and contact details.Part 324 arranges for account, and wherein developer's point proceeds to a form to input number, expiry date and the license of the terminal that for example will register.Different licenses is optionally for permitting respectively accessing different features.For example, different licenses can allow terminal operating debugging utility and such as profile analysis device etc. to develop correlated process, and it can be the part of SDK (Software Development Kit).In another example, a license may be suitable for student software developer, and only terminal is realized to basic utility development features, and another allowance may be suitable for professional software developer, and terminal is realized to basic or advanced application development features.
Part 326 is for payment information, and wherein developer's point proceeds to a form to input such as credit number etc.Part 328 is for authentication, and wherein developer point proceeds to a form with input authentication information, such as developer's identifier (if use from developer's information 322 different), and password.For example, use WINDOWS LIVE tMiD, developer provides e-mail address and password.Developer's authentication information, without being associated with developer's computer, moves to make terminal not rely on the only computer by developer.Button 330 allows developer to cancel current input, and button 332 allows developer to preserve current input.
Fig. 4 A has described the further details of the step 210 of Fig. 2, wherein developer to the one or more terminals of service registry of developer's door with the one or more terminals of release.In step 400, set up the communication link between terminal and developer's computer.As mentioned above, this can be included between two equipment and connect cable.In step 402, in response to detecting that communication link starts client software in end.Only when setting up communication link, start the performance impact that client software can minimize the add-on application/service to moving in terminal.
In step 404, client software is waited for, and is monitored the inbound messages from developer's computer.In step 405, developer selects terminal via the user interface of SDK (Software Development Kit).As response, in step 406, developer's computer sends the authentic data of indication developer to terminal.This can be the data of mentioning in the step 308 and 310 of for example Fig. 3 A.As response, in step 408, terminal sends the request to release oneself to service, and wherein this request comprises data and the terminal identifier of the computer that is received from developer.Identifier can comprise for example dedicated hardware certificate, terminal serial number or other uniqueness terminal identifiers.One example is international Mobile Equipment identity (IMEI) number.Note, some terminal iidentifications such as IMEI number, can via the user interface of terminal and by the client software of end, be visited by developer.Identifier should be unique for terminal, and should not change, and the not replacement of tube terminal or reformatting.Terminal can have and is directly tied to hardware to allow the API of client software Access Identifier.For this purpose, WINDOWS
Figure BSA00000429642200141
use API GetDeviceUniqueID () (equipment uniqueness ID ()).In step 408, request can be to use the standard web services of the API of end to call.For example, can use HTTP to call, wherein head carries the authentic data of indication developer.
Terminal can by through mode via developer's computer and one or more server communications (step 412) of service, or via one or more server communications (step 410, referring to Fig. 1) of another link such as such as cellular cell telephone channel and service.For example, about step 412, MICROSOFT
Figure BSA00000429642200142
use desktop to carry out synchronously through (DTPT) technology.DTPT accesses pellucidly external networks such as internet the developer's that terminal can connect by terminal computer.Another way is to use simulation serial port that terminal is connected to service by USB.
In decision steps 414, service determines whether to authorize the release to terminal.Further details is provided in Fig. 4 B.If authorize release in decision steps 414, in step 416, serve the order to terminal transmission with unlock data (such as license file or such as lasting tokens such as login keys) and expiry date.Login state (release or locking) is sustainable to be protected as Boolean or by licence or certificate.Terminal determines that by detecting the existence of lasting token or license file it is unlocked.Can use such as Microsoft
Figure BSA00000429642200143
deng digital copyright management (DRM) scheme, provide example license card.The characteristic of licence guarantees that it is not tampered and from authoritative place.License file can comprise certificate file.
Expiration data can with for example wherein released state be authorized to be the lasting time period (such as, 1 year) or expiry date represent.Or terminal can be configured to enforce acquiescence expiry date.Note, can be providing order from serving to one or more message of terminal.For example, a message can comprise unlock data, and another message can comprise expiry date.For the object of following the tracks of, order also can be wrapped developer's identifier.Developer's identifier can be stored in terminal.
Lasting released state can be included in and in terminal, maintain or store unlock data.The logic flow at client software place can be realized standby behavior by identification released state.For example, released state can be identified by checking licence.Lock-out state can be indicated and only can in terminal, be moved the signed application program of downloading from service, and released state behavior can be indicated the unsigned application program that also can move in terminal from SDK (Software Development Kit) or the download of other source.
Generally speaking, by using certificate material, for example, such as the hash of some well known server values (, the identifier being associated with server), the released state that can authenticate terminal is not yet tampered.
The unlock data providing in step 416 can also provide the control to additional release constraint with the control release duration/identical mode of expiring except released state.For example, unlock data can: (a) restriction can be installed to from service the number of the application program release terminal; (b) the expired control to installed application program is set; (c) limit the number of times of the startup of several application programs, etc.
In situation (a), if reached the limit of the number of installed application program, non-development zones person is installed to add-on application in terminal.Message from restriction to developer that notify can be provided on developer's computer.Developer can be notified for deleting, the application program of previous installation can not go beyond the limit to make new application program can be installed or to buy additional authority, the option of Another Application program is installed for access services.
In situation (b), can be set the time of the grant expires to running application.The different application programs of installing can have different time expirations.The mode of the expiry date that enforces endpoint registration being for example similar to as discuss below in conjunction with Fig. 6 A and 6B, can enforce application-specific expiry date.
In situation (c), if the limit of the number of times that can be activated to application program again starts non-development zones person this application program in terminal.Message from restriction to developer that notify can be provided on developer's computer.Can for access services, to buy additional authority, start to developer's notice the option of this application program.For example, can on the basis of every application program, enforce this restriction.
In step 418, terminal storage unlock data and expiry date.In step 419, terminal is such as carrying out release oneself by call API with unlock data.Example is called has following form: SetDeveloperUnlockState (DEVELOPERUNLOCK_STATE_UNLOCKED) (developer's released state (developer's release _ state _ release) is set).
In step 419, if release success can copy to terminal (step 420) from developer's computer by the binary file from SDK (Software Development Kit) (binary system).In example implementation, each binary file can be packaged as XAP file, and is deployed to packet manager to install.XAP be it contains micro-
Figure BSA00000429642200151
sILVERLIGHT tMzip (compression) file of application program.Micro-
Figure BSA00000429642200152
sILVERLIGHT tMweblication framework, its provide with
Figure BSA00000429642200153
those similar functions in platform, are incorporated into multimedia, figure, animation and interactivity in single runtime environment.The all binary files that are deployed to terminal by this mechanism can be called GetDeveloperUnlockState (obtaining developer's released state) when the initialization, and verify that it returns to DEVELOPERUNLOCK_STATE_UNLOCKED and is unlocked with verification terminal.If terminal is not unlocked, these binary systems should stop.After all binary systems have been copied to terminal and have been mounted, the user interface on developer's computer can be used to developer's notification terminal the identifier (referring to Fig. 4 F) of (step 421) display terminal.
If in decision steps 414 unauthorized releases, in step 422, serve optionally and send error messages to terminal, and optionally via SDK (Software Development Kit), to developer's computer, report corresponding error messages in step 424 terminal.
Whether Fig. 4 B has described the further details of the decision steps 414 of Fig. 4 A, wherein about authorizing, to the release of terminal, make definite.For example, in step 426, the developer authentication information sign developer of service based on being provided by terminal account.This developer's authentication information can be available to the data of developer's computer, and the serviced one or more server authentications of its indication developer.In step 428, service verifies with the developer's authentication information being previously associated with account the developer's authentication information being provided by terminal, to guarantee to exist coupling.Attention: the initial communication from terminal to service, terminal identifier may not be associated with developer account.After having registered terminal, terminal identifier is associated with developer account, so that get the subsequent requests of self terminal, can the terminal based on identified be associated with developer account.Terminal can (but without) provide developer's authentication information in subsequent requests.
Decision steps 430 determines that whether registering account is still effective.If the clause of registration agreement is breached, such as other behavior not paying or for example deception or use Malware etc. are violated, account may be invalid.These other behaviors may be for to have known to the keeper who makes the invalid power of account.Decision steps 432 determines whether registration space can be used.If the maximum being registered is allowed to terminal number is not yet exceeded about account, space can be used.Decision steps 434 determines whether terminal is registered.For example, terminal identifier can be in the list of terminal identifier that is registered to account.If decision steps 430,432 and 434 is true, in step 436, authorize the release to terminal.Otherwise, in step 438, do not authorize the release to terminal.
Fig. 4 C and 4D have described the example user interface being associated with the step 405 of Fig. 4 A, and developer selects one or more terminals to register by it.In Fig. 4 C, example user interface or screen display 440 are for " interpolation terminal ".It comprises part 442, and developer can select the type of terminal in part 442, such as " form phone ", " Xbox " or " Zune ".In this example, by developer by for example selecting " form phone " with suitable inputs such as mouses.Selectable buttons 444 is with cancellation process, and selectable buttons 446 is to find the terminal of selected type.When selecting during button 446, SDK (Software Development Kit) automatically detects and has communication link with developer's computer and be any terminal of selected type by Automatic Measurement Technique.In Fig. 4 D, example user interface or screen display 450 are indicated the terminal that finds selected type, and the sign of terminal is provided, and for example " HTC Touch Pro2 ", it is
Figure BSA00000429642200171
the example model name of smart mobile phone.Selectable buttons 452 is with cancellation process, and selectable buttons 454 is to carry out registration terminal by technology described herein.
Fig. 4 E has described the example user interface being associated with the step 421 of Fig. 4 A, the report that this interface provides indicating terminal to be unlocked.Example user interface or screen display 460 are indicated and are successfully registered selected terminal, and the sign of terminal is provided.Selectable buttons 462 is to proceed the other parts of the SDK (Software Development Kit) that allows preparation, deployment, execution, debugging or share application.
Fig. 4 F has described the example user interface being associated with the step 420 of Fig. 4 A, and this interface provides the report of indication developer account's all terminals that have been unlocked that are associated.User interface can provide via the web website of service, and allows registered developer to check and remove/nullify the current terminal being unlocked, and with the online list of guaranteeing registered terminals, keeps synchronizeing with actual those terminals that are registered.User interface also allow developer manage a finite population terminal, determine allow registration terminal number and the terminal to the locking and unlocking counting, determine that the acquiescence of every type of account allows release terminal number.In a kind of way, developer needed to have account before calling party interface.
Example user interface or screen display 470 comprise " account information " part that comprises various selections.Can select " user's overview " to check and to upgrade details such as developer's title and contact details.Can select " business details " to check information such as the clause of registration agreement.Can select " payment information " to check details such as the credit number filing.Here, select by " terminal management device ", thereby cause describing the viewing area 474 of " I be unlocked terminal ".This region provides the summary of all terminals that are registered to developer.The current terminal number that is unlocked is indicated in region 474, and for example 3, and maximum allows to be unlocked terminal number, for example 5.For each in three terminals, provide terminal name, terminal identifier, release expiry date and " removing " action.Can select " removing " link to note the corresponding terminal that disappears.In a kind of way, once select button 478, developer's computer or service just send and nullify order to terminal, and as response, terminal sends the request to nullifying terminal to service, and orders to nullify accordingly from service reception.Like this, service can office terminal.Request can comprise the data that authenticate developer, is similar to the request to registration of previously discussing.Selectable buttons 476 is selected to cancel active user interface.
Fig. 4 g has described the process flow diagram of the step 210 of Fig. 2, wherein developer to the one or more terminals of service registry of developer's door with the one or more terminal of release.In process 480, developer's computer sends registration request to terminal, with requesting terminal, registers its oneself.In process 481, terminal use is called GetDeviceUniqueID and is accessed its identifier.In process 482, terminal sends verify data to service.In process 483, service determines whether developer account is current and effective.If account is not current and effective, there is error handling processing process 484.With reference to Fig. 1, the example code of makeing mistakes has been discussed above.In process 485, service determines whether to exist available registration space, and for example, whether maximum terminal number has been registered to this account.If there is no available registration space, error handling processing process 486 occur.If there is error handling processing process 484 or 486, there is the error handling processing process 487 of the computer from terminal to developer.
In process 488, service determines whether requesting party's terminal has been registered to account.In process 489, service execution registration.Process provides registering result to terminal, for example, for the order of release terminal.If necessary, for example, if terminal is registered, there is the error handling processing process 491 of the computer from terminal to developer.In process 492, terminal unlocking its oneself.In process 493, by registering result---for example, the indication that terminal has been unlocked---from terminal, be provided to developer's computer.
Fig. 5 has described the further details of the step 220 of Fig. 2, and wherein application program is deployed to and is unlocked terminal operation thereon.In step 500, developer uses the SDK (Software Development Kit) developing application on developer's computer, and this SDK is drawn together terminal emulator.In step 502, developer carrys out the application program in terminal deploy and operation unsigned by SDK (Software Development Kit).In step 504, the client software in terminal receives and stores the application program of unsigned, and without its authenticity of checking.
As mentioned above, once terminal is unlocked, it just can move the application program of unsigned, benefits thus developer's work.Conventionally, developer is by several compiled version of developing application in a day, and these compiled version are disposed separately and moved.Developer can be independent of service and dispose each compiled version.This authorizes and sign other way of each compiled version of application program with developer being used to system based on certificate---wherein certificate by developer peculiar---is useful.This type of way is by certificate install and store in terminal, and requires several setting steps.
By contrast, released state allows the application program of the unsigned of another example exploitation by for example SDK (Software Development Kit) on another developer's computer to be directly deployed on terminal its and to carry out.Thereby developer can be connected to terminal another developer's of another example of operating software developing instrument computer, and independent application program/compiling of application version is deployed to same terminal.Thereby, the released state of terminal is sustainable constant, and irrelevant with the computer that is used to the developer who registers it, to make released state allow application program be deployed to terminal and carry out in this terminal from the different instances of the SDK (Software Development Kit) moved at different developers' computer.In addition, the released state of terminal continues constant, and irrelevant with developer and developer's account, to make released state allow application program be deployed to terminal and carry out in terminal from the different user of SDK (Software Development Kit).
In addition, the application program of unsigned can be deployed to any chartered terminal.Using in other method situation, developer must know in advance that application program will be moved in which terminal and must follow the tracks of this information, and if developer attempts running application in another terminal, or another developer attempts running application, it will not move, because the mandate of operation is bound to developer or developer's computer.
Advantage mentioned above provides great flexibility and efficiency relating to aspect one or more developers' development process.To certificate equivalence level security, provide simple for developer " keeping opening " rank, being shipped under release as terminal.In addition, although can not with service or other centralized manager loading application programs mutual in the situation that, the control of service maintenance to terminal because these terminal periodic they can be canceled (un-register) while registering.For example, known the developer's (such as because distribution code cracks) who runs counter to registration agreement and can make his or her account be cancelled, with the terminal that makes to be registered to this developer when they are registered by un-register.Registration can occur relatively continually, such as analogy biweekly, with the period that makes to use without permission can be so not long.In another possible sight, developer may lose or stolen through registration terminal, in this case, developer can request service when terminal registration next time to these terminal un-registers, so that registrable another terminal of developer is replaced, lose or stolen terminal, and can not exceed by the maximum of registration agreement, allow terminal number.In addition, terminal oneself can be associated with specific development person by its identifier, to make can to make developer be to blame to the another person who terminal is run counter to registration agreement by the developer's identifier in access phone.
In step 506, developer uses SDK (Software Development Kit) to carry out the debugging of application programs.Optionally, in step 508, developer can with other chartered developer and chartered terminal share application thereof, to make them can test this application program and feedback is provided.A kind of possible way of so carrying out relates to developer the application program of unsigned is uploaded to service.In step 510, service memory application program is also cataloged to it.In step 512, another chartered developer downloads to his or her computer by the application program of unsigned from service, to make it can be deployed to any chartered terminal.
Particularly, for share application, developer can will download to service registered in advance the terminal of the application program of shared unsigned.This registration process can relate to developer for example by with its authentication information, login to developer's gate verification he own or herself.Developer provides subsequently and can not cheat terminal-specific identifier, such as IMEI number, or the hardware based hash of being returned by the API such as such as GetDeviceUniqueID ().Share to relate to receiving and default terminal-specific licence, it can be implemented as the terminal-specific certificate of end.Licence can be unlocked and authorize as terminal the checking of sharing by various processes.
Fig. 6 A has described the further details of the step 230 of Fig. 2, wherein enforces the registration clause about Account Status.As mentioned above, although provide great flexibility and ease for use to developer, service still keeps control to a certain degree to APD being deployed to terminal.In a kind of possible way, terminal is configured to, in step 600, its identifier is periodically conveyed to the state of service with verification terminal in enrollment process.When terminal was once connected to network such as every several days, can dispatch based on uncertainty---for example, under the randomization time---and register.For example, smart mobile phone can connect registration via cellular cell telephone link or via Wi-Fi or bluetooth.In step 602, service is accessed log-on message to identify corresponding account based on identifier, and definite account's state.For example, state can be effective or invalid/be cancelled.The Account Status information that terminal identifier is linked to corresponding developer account and is associated in database.In decision steps 604, if account is effective, in step 608, service sends the order that continues to continue released state to terminal.If account is invalid, in step 606, service sends the order of setting lasting lock-out state to terminal.
For example, when terminal receives order, API SetDeveloperUnlockState (DEVELOPERUNLOCK_STATE_LOCKED) (developer's released state (developer's release _ state _ locking) is set) can be called to relock terminal.In a kind of way, when lock-out state continues, can keep being installed to terminal from the binary file of SDK (Software Development Kit) and the application program of any unsigned.In this case, if terminal becomes release again, developer's continuity is maintained.Alternatively, when initiating lock-out state, can delete the application program of binary file and/or any unsigned.Note, also can order based on developer---for example, via " removing " action in the user interface of Fig. 4 F---locking terminal.When developer may be desirably in terminal and no longer needs application development to terminal un-register.
Fig. 6 B has described the further details of the step 230 of Fig. 2, wherein enforces the registration clause about expiry date.In step 610, for example, when terminal is unlocked first, the demanded storage expiry date of terminal based on from service.In decision steps 612, when reaching expiry date (and/or before or after expiry date sometime), terminal conveys to service by its identifier, to determine whether to renew the registration of terminal in step 614.Service can contact developer in advance, such as message via e-mail, to renew service to developer's notice such as the web website by access services.
Note, terminal also can by before the expiry date of terminal maintenance every now and then to service register and the expiry date safeguarded in terminal under when boarding is carried out in service, make the expiry date of its maintenance and the expiry date of server maintenance consistent.If there are differences, terminal can change over its expiry date the expiry date of safeguarding corresponding to service.
In step 616, service is accessed log-on message to determine corresponding account's state based on identifier.In judgement 618, if renewed registration, in step 622, service sends the order for continuing to continue released state to terminal.If registration is not yet renewed, in step 620, service optionally sends for arranging and the order of lasting lock-out state to terminal.Once detect and crossed expiry date, terminal also can be got back to lock-out state.
As above mentioned in conjunction with Fig. 4 A, the unlock data that is provided for terminal can arrange the time of the grant expires running application.In addition, the different application programs of installing can have different time expirations.Special the enforcing of expiry date of application programs can be proceeded in the discussion based on relating to above Fig. 6 A and 6B.
In the example of Fig. 6 A, step 600 can be modified with prescribed terminal the identifier of application program is conveyed to service.Step 602 can be modified with regulation service for example to be determined by the state of the one or more application programs to authorization terminal by the identifier by application program.Step 604 can be modified with regulation service determines that whether application program is effective, and for example, if its expiry date not yet reaches, it is effective.Service can be by the stored expiry date of identifier contrast of application program.If the mandate of application program is expired, but account is still effective, and step 608 can be modified the order that sends the lock-out state for continuing application-specific with regulation service to terminal.Thereby authorized application program can be considered to have the released state similar with the released state of terminal, and no longer authorized application program can be considered to have the lock-out state similar with the lock-out state of terminal.
In the example of Fig. 6 B, step 610 can be modified with the prescribed terminal storage expiry date of the one or more application programs to authorization terminal.Step 612 can be modified the expiry date that determines whether to reach application program with prescribed terminal.Terminal can be by the stored expiry date of identifier contrast of application program.If application program is expired, step 614 can be modified and with prescribed terminal, from serving, determine whether the mandate of application programs is renewed.Even if the expiry date of terminal not yet reaches, also can carry out this operation.Step 616 can be modified log-on message with regulation service access application program to determine whether application program is renewed.The data whether service can have been renewed the identifier contrast indication application program of application program.Step 618 can be modified the state of determining application program with regulation service.In judgement 618, if renewed the registration of application program, in step 622, service can send order to continue to continue the released state of application program to terminal.Once the expiry date of having crossed application program be detected, terminal also can cause application program to get back to lock-out state.Thereby application program can be considered to have the registration similar with the registration of terminal.Different application programs can be considered to have different registrations.
Note, the modification of the process to Fig. 6 A and 6B can be used as in Fig. 6 A and 6B, terminal being enforced the supplementary and replacement of the use of the process of registration clause as discussed above.Fig. 6 A can carry out enforcing the different time of the use of process of registration clause from application programs in Fig. 6 A and 6B with the use that in 6B, terminal is enforced to the process of registration clause.Similarly, the process of Fig. 6 A and 6B can be carried out in the different time for the different application of terminal or multiple terminals.
Fig. 6 C has described the process flow diagram of the step 230 of Fig. 2, wherein enforces registration clause.In process 630, terminal determines whether its registration is expired.In process 632, whether terminal and communication for service be registered to determine terminal, and for example whether its registration is because of not renewal or the inefficacy of running counter to registration agreement.
Fig. 7 has described to be suitable for the example block diagram of the computer hardware of realizing each embodiment.Computer hardware can representation case developer as discussed in this article computer, terminal and/or server.For the example system that realizes each embodiment, comprise universal computing device 710.The assembly of computing equipment 710 can comprise processing unit 720, system storage 730 and the sorts of systems assembly that comprises system storage is coupled to the system bus 721 of processing unit 720.System bus 721 can be for example memory bus or Memory Controller, peripheral bus and use any the local bus in various bus architectures.
Computing equipment 710 can comprise various tangible or non-interim computer or processor readable mediums.Computer-readable medium can be any usable medium that can be accessed by computing equipment 710, and comprises volatibility and non-volatile media, removable and irremovable medium.Computer-readable medium can comprise computer-readable storage medium, such as volatibility and non-volatile, removable and irremovable medium that for storage, any method information such as computer-readable instruction, data structure, program module or other data or technology realize.Computer-readable storage medium includes but not limited to, RAM, ROM, EEPROM, flash memory or other memory technologies, CD-ROM, digital versatile disc (DVD) or other optical storage, cassette, tape, disk storage or other magnetic storage apparatus, maybe can be used for any other medium of storing information needed and can being accessed by computing equipment 710.Within the combination of above any is also included within the scope of computer-readable medium.
System storage 730 comprises the computer-readable storage medium of volatibility and/or nonvolatile memory form, as read-only memory (ROM) 731 and random access memory (RAM) 732.Basic input/output 733 (BIOS) includes and helps when starting the basic routine of transmission of information between element in computing equipment 710, and it is stored in ROM 731 conventionally.RAM 732 comprises processing unit 720 conventionally can zero access and/or current data and/or the program module operating.For example, can provide operating system 734, application program 735, other program module 736 and routine data 737.
Computer system 710 also can comprise other removable/irremovable, volatile/nonvolatile computer storage media.Only as example, Fig. 7 illustrates irremovable, nonvolatile memory 740, such as solid-state memory, and from or for example, to memory card removable, that non-volatile memory card 752 reads (, SD card) interface/reader 750.Can in exemplary operation environment, use other are removable/irremovable, volatile/nonvolatile computer storage media includes but not limited to, flash card, digital versatile disc, digital recording band, solid-state RAM, solid-state ROM etc.
Computer-readable storage medium provides the storage of other data to computer-readable instruction, data structure, program module and computing equipment 710.For example, irremovable, nonvolatile memory 740 is illustrated as storage operation system 744, application program 745, other program module 746 and routine data 747.These assemblies can be identical with routine data 737 with operating system 734, application program 735, other program modules 736 in system storage 730, also can be different from them.It is in order to illustrate that at least they are different copies that operating system 744, application program 745, other program modules 746 and routine data 747 have been marked different labels here.Developer can be by ordering input equipments such as keyboard/touch-screen 762 and microphone 761 with input information in computing equipment 710.Other input equipment (not shown) can comprise joystick, game paddle, satellite dish, scanner etc.These and other input equipments are connected to processing unit 720 by the developer's input interface 760 that is coupled to system bus conventionally, but also can, by other interfaces and bus structures, such as parallel port, game port or USB (USB), connect.Display/monitor 791, also via interface, is connected to system bus 721 such as video interface 790.Such as audio frequency, exporting other peripheral output equipment such as 797 grades can connect by output peripheral interface 795.
Computing equipment 710 can be used to the logic of one or more remote computing device such as such as remote computing device 780 and be connected in networked environment and operate.Remote computing device 780 can be another mobile device, personal computer, server, router, network PC, peer device or other common network node, and generally comprises many or whole elements of describing with regard to computer 710 above.Such networked environment is common in office, enterprise-wide. computer networks, Intranet and internet.
When using in networked environment, computing equipment 710 is connected to another network by network interface or adapter 770.In networked environment, the program module of describing with regard to computing equipment 710 or its part can be stored in remote memory storage device.For example, remote application 785 can reside on memory devices 781.It is exemplary that shown network connects, and can use other means of setting up communication link between computing equipment.
The foregoing detailed description of said technology is in order to illustrate and to describe and provide.Not be intended to exhaustive technology or be limited to disclosed precise forms.In view of above-mentioned instruction, many modifications and modification are all possible.Select above-described embodiment to explain best principle and the application in practice thereof of this technology, thereby make this area, other people can also utilize this technology with the various modifications that are suitable for conceived special-purpose in various embodiments together best.The scope of this technology is intended to be defined by appended claims.

Claims (14)

1. the method realizing for managing the processor of the terminal with network communications capability of being carried out by one or more servers, comprising:
Computer (140) via developer receives and is used for being registered as software developer to develop the log-on message for the application program of described terminal (120) from described developer, described log-on message comprises developer's identifier and developer's authentication information, and indicate described developer registered which in one or more licenses of multiple available licenses;
Store described log-on message;
To described developer's computer, send the described developer of indication by the data of described one or more servers (160) authentication, described developer's computer provides described data via the communication link (102) of setting up between described terminal and described developer's computer to described terminal;
From the request of terminal described in client software (122) the reception release moving in described terminal, described request comprises the identifier of described data and described terminal; And
Based on described request and described log-on message, determine whether to authorize the release to described terminal, if and authorized to the described release of described terminal, to described terminal, send the order for terminal described in release, described order comprises unlock data and expiry date, as the response to described order, in described terminal, continue released state until described expiry date, described order indicates the registered described one or more licenses of described developer and described one or more license to be enforced in described order by described terminal response, described released state allows the APD of one or more unsigned of the example exploitation of the SDK (Software Development Kit) by moving on described developer's computer to be deployed in described terminal and in described terminal and to carry out, until described expiry date.
2. the method that processor as claimed in claim 1 is realized, is characterized in that:
Described log-on message comprises the regulation of allowing release terminal number about the maximum that can be registered to described developer; And
The described release of described terminal is not run counter to described regulation based on described release authorizes.
3. the method that the processor as described in any one in claim 1 to 2 is realized, is characterized in that, the lasting period of released state described in described command id, described method also comprises:
When finishing, receives the described period the described identifier of described terminal from described terminal;
Based on described identifier, identify described developer's account;
Whether the described account who determines described developer is renewed; And
In response to described definite, when described account is renewed, to described terminal, send the order that is used for continuing described released state, or when described account is not yet renewed, the order to described terminal transmission for lasting lock-out state.
4. the method that the processor as described in any one in claim 1 to 3 is realized, is characterized in that, described command id continues the period of described released state, and described method also comprises:
Before finishing, receives the described period the described identifier of described terminal from described terminal;
Based on described identifier, identify described developer's account;
Whether the described account who determines described developer is cancelled; And
In response to described, determine, when described account is not yet cancelled, to described terminal, send the order for continuing described released state, or when described account has been cancelled, to described terminal, send the order for continuing lock-out state.
5. the method that the processor as described in any one in claim 1 to 4 is realized, is characterized in that:
Described log-on message comprises the regulation of allowing number of applications in the release terminal that is registered to described developer about the maximum that can move.
6. the method that the processor as described in any one in claim 1 to 5 is realized, is characterized in that:
Described log-on message comprises the regulation of the maximum times that can be activated in the release terminal that is registered to described developer about application program.
7. the method that the processor as described in any one in claim 1 to 6 is realized, is characterized in that:
Described log-on message comprises about the regulation of application-specific expiry date that is registered to the application program in described developer's release terminal.
8. for managing a system for the terminal with network communications capability, comprising:
For the device from the example received communication of the SDK (Software Development Kit) of developer's computer (140) via wired or wireless link (102), described communication comprises that the developer of the described example of indicating described SDK (Software Development Kit) is by the data of one or more servers (160) authentication;
Be used in response to described communication, to described one or more servers, send the device of the request to terminal described in release, described request comprise the identifier of described data and described terminal and indicate described developer registered which in one or more licenses in multiple available licenses; And
For taking back the device for the order of terminal described in release from described one or more servers, described order comprises unlock data and expiry date, as response, in described terminal, continue released state until described expiry date, described order indicates the chartered described one or more licenses of described developer and described one or more license to be enforced in described order by described terminal response, described released state allows the APD of one or more unsigned of the described example exploitation by described SDK (Software Development Kit) be deployed to described terminal and carry out in described terminal, until described expiry date.
9. system as claimed in claim 8, is characterized in that:
Described order comprises the license file or the lasting token that are stored to continue described released state.
10. system as claimed in claim 8 or 9, is characterized in that:
Described released state allows the APD of one or more unsigned of another example exploitation by described SDK (Software Development Kit) be deployed to described terminal and carry out in described terminal.
11. systems as described in any one in claim 8 to 10, is characterized in that:
The computer that is independent of described developer continues described released state, to make described released state allow the APD of one or more unsigned of the different instances of the described SDK (Software Development Kit) of moving on comfortable different developers' in future computer be deployed to described terminal and carry out in described terminal.
12. systems as described in any one in claim 8 to 11, is characterized in that:
Be independent of described developer and continue described released state, to make described released state allow the APD of one or more unsigned of the different developers of described SDK (Software Development Kit) be in the future deployed to described terminal and carry out in described terminal.
13. systems as described in any one in claim 8 to 12, is characterized in that, described command id continues the period of described released state, and described system also comprises:
For send the device of the described identifier of described terminal to described one or more servers when the described period finishes, described one or more server identifies described developer's account based on the described identifier of described terminal, and determines whether described account is renewed; And
Be used for, when described account is renewed, receiving the instruction that is used for continuing described released state, or when described account is not yet renewed, reception is for the device of the instruction of lasting lock-out state.
14. systems as described in any one in claim 8 to 13, is characterized in that, described command id continues the period of described released state, and described system also comprises:
For sent the device of the described identifier of described terminal to described one or more servers before the described period finishes, described one or more server identifies described developer's account based on the described identifier of described terminal, and determines whether described account is cancelled; And
For when described account is not also cancelled, receives the instruction for continuing described released state, or when described account has been cancelled, receive the device of the instruction for continuing lock-out state.
CN201110031352.XA 2010-01-20 2011-01-19 Developer phone registration Active CN102130907B (en)

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 (en) 2011-07-20
CN102130907B true CN102130907B (en) 2014-05-07

Family

ID=44268797

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110031352.XA Active CN102130907B (en) 2010-01-20 2011-01-19 Developer phone registration

Country Status (1)

Country Link
CN (1) CN102130907B (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103544409A (en) * 2012-07-11 2014-01-29 腾讯科技(深圳)有限公司 Method for controlling application program, use equipment and server
CN113163405A (en) * 2015-04-20 2021-07-23 深圳市大疆创新科技有限公司 System and method for supporting application development in a movable object environment
WO2017173167A1 (en) 2016-03-31 2017-10-05 Johnson Controls Technology Company 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 (en) * 2008-12-22 2009-05-20 中兴通讯股份有限公司 Method for updating mobile terminal software and mobile terminal
CN101563871A (en) * 2006-12-19 2009-10-21 高通股份有限公司 Programmatically transferring applications between handsets based on license information

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003067386A2 (en) * 2002-02-05 2003-08-14 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 (en) * 2008-08-29 2009-01-14 中兴通讯股份有限公司 Mobile phone locking method, unlocking method, locking device and mobile phone

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 (en) * 2006-12-19 2009-10-21 高通股份有限公司 Programmatically transferring applications between handsets based on license information
CN101437224A (en) * 2008-12-22 2009-05-20 中兴通讯股份有限公司 Method for updating mobile terminal software and mobile terminal

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 (en) 2011-07-20

Similar Documents

Publication Publication Date Title
US8533811B2 (en) Developer phone registration
US11625460B1 (en) Security platform
US8984291B2 (en) Access to a computing environment by computing devices
CN103597494B (en) Method and apparatus for the use of numerals authority of management document
US7562220B2 (en) System and method for programming an isolated computing environment
RU2439690C2 (en) Program transfer of applications between handsets based on license information
CN101366040B (en) Management of user access to objects
CN105164633B (en) The configuration and verifying carried out by trusted provider
US10855675B2 (en) Managed open source medical device
JP2004118327A (en) Contents usage control device, contents usage control method and computer program
WO2003103317A1 (en) Secure interaction between downloaded application code and a smart card in a mobile communication apparatus
JP2009519557A (en) Offline authentication method for devices with limited resources
CN106663174A (en) Restricting system calls using protected storage
CN105939362A (en) User account management method and device
US9514288B2 (en) Information processing device, information processing method, program and storage medium
CN110383240A (en) The method and apparatus of safe computing resource for containerization
JP5485485B1 (en) Information processing apparatus, information processing method, program, and storage medium
CN101853359A (en) Software license, prevention method and system based on application software dispersion
CN102130907B (en) Developer phone registration
KR102026279B1 (en) How to manage your application
CN110352411A (en) Method and apparatus for controlling the access to safe computing resource
US8646099B2 (en) Midlet signing and revocation
JP2004362189A (en) User information circulation system
US10939297B1 (en) Secure unlock of mobile phone
JP2008262579A (en) Content information transmission system

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.