# US 10,375,149 B2 · Application registration and interaction

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,375,149 B2
- Document ID: US10375149B2
- Status: Granted
- Kind: B2
- Application number: 14/852,171
- Filed: 2015-09-11
- Published: 2015-12-31
- Granted: 2019-08-06
- Earliest claimed: 2013-03-14
- Assignees: BlackBerry Limited
- Applicants: BlackBerry Limited
- Inventors: Siavash James Joorachian Hawkins
- Web page: https://patentgrep.com/patent/US10375149B2

## CPC

- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- G06F 3/0482: Interaction with lists of selectable items, e.g. menus
- G06F 9/4843: {by program, e.g. task dispatcher, supervisor, operating system}
- H04L 41/22: comprising specially adapted graphical user interfaces [GUI]
- H04W 88/02: Terminal devices
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

Measures are described which provide a framework for the registration and selection of applications and/or services. A registration procedure comprises receiving an indication of one or more services that an application is configured to perform; receiving an indication of one or more characteristics of data objects in respect of which the indicated service is configured to be performed; and storing, in the data store, data entries indicating each of the services and associated characteristics. A selection procedure comprises determining one or more data objects for selection; identifying, one or more services that may be performed in relation to at least one of the one or more data objects; and displaying one or more selectable elements corresponding to the identified services and data objects.

## Claims

### Claim 1

A method of selecting a service for processing of a data object on a user terminal, the user terminal comprising a processor, the method comprising:
receiving, by the user terminal, from each of a plurality of different applications, an indication of one or more services that the respective application is configured to perform;
receiving, by the user terminal, from each of the plurality of applications, an indication of one or more characteristics of data objects, wherein each of the data objects is associated with a respective service that is configured to be performed by the respective application, and the one or more characteristics of a respective data object comprise one or more of: an object size, an object dimension, an object duration, and an object age;
maintaining, by the user terminal, in a data store:
first data entries relating to the one or more services that are executed by one or more applications configured for use by the user terminal;
second data entries relating to the one or more predetermined characteristics of data objects in respect of the corresponding ones of the one or more services are performed;
action data entries defining one or more processing actions for performance on selection of a service of the one or more services in respect of the data objects having characteristics as defined by the second data entries; and
outcome data entries defining how the method is to proceed after performance of the one or more processing actions indicated by respective action data entries; determining, by the user terminal, one or more data objects for selection by a user;
identifying, by the user terminal and based on the determined one or more data objects and on the first and second data entries, one or more services that are performed in relation to at least one of the one or more data objects; and
displaying, on a display of the user terminal, one or more first selectable elements corresponding to at least one of the identified one or more services, and one or more second selectable elements corresponding to at least one of the determined one or more data objects, each of the first and second selectable elements being for selection by a user of the user terminal.

### Claim 2 (depends on 1)

A method according to claim 1, wherein the data store comprises third data entries relating to the one or more applications configured for use by the user terminal, the method comprising:
identifying, based on the determined one or more data objects and on the first, second, and third data entries, one or more applications that are configured to process at least one of the determined one or more data objects; and
displaying, on the display of the user terminal, one or more third selectable elements corresponding to at least one of the identified one or more applications for selection by a user of the user terminal.

### Claim 3 (depends on 2)

A method according to claim 2, further comprising receiving user input identifying selection of a given application of the identified one or more applications, wherein the one or more first selectable elements are displayed in response to the received user input identifying selection of the given application, each of the displayed first selectable element corresponding to a service that is executed by the given application.

### Claim 4 (depends on 2)

A method according to claim 2, further comprising:
receiving user input identifying selection of a given data object of the determined one or more data objects;
receiving user input identifying selection of a given service of the identified one or more services;
identifying, based on the first, second, and third data entries and the received user input identifying selection of the given service, a given application of the one or more applications, the given application being configured to perform the given service; and
initiating performance of the given service in relation to the given data object by the given application.

### Claim 5 (depends on 4)

A method according to claim 4, wherein the given application is launched in response to receipt of the user input identifying selection of the given service.

### Claim 6 (depends on 4)

A method according to claim 4, wherein the user input identifying selection of the given data object and the given service comprises a drag and drop operation performed on the user terminal.

### Claim 7 (depends on 1)

A method according to claim 1, wherein the method comprises:
receiving user input identifying selection of a given data object of the determined one or more data objects;
receiving user input identifying selection of a given service of the identified one or more services;
identifying one or more of the one or more processing actions based on the action data entries and one or more of the received user input identifying selection of a given data object and the received user input identifying selection of a given service; and
performing the identified the one or more of the one or more processing actions.

### Claim 8 (depends on 7)

A method according to claim 7, wherein the selected processing action comprises displaying on the display of the user terminal, one or more fourth selectable elements corresponding to one or more further data objects.

### Claim 9 (depends on 8)

A method according to claim 8, wherein the outcome data entries comprises one or more further processing actions for performance on selection of a further data object of the one or more further data objects, and the method comprises:
receiving user input identifying selection of a further data object of the one or more further data objects; and
identifying a further processing action of the one or more further processing actions on a basis of the outcome data entries and the received user input identifying selection of a given service.

### Claim 10 (depends on 9)

A method according to claim 9, further comprising performing an identified further processing action of the one or more processing actions in response to the identification of the identified further processing action, the identified processing action being performed at least partly on a basis of one or more characteristics of the selected further data object.

### Claim 11 (depends on 10)

A method according to claim 10, wherein the identified processing action comprises populating the selected further data object with data from the given data object.

### Claim 12 (depends on 9)

A method according to claim 9, further comprising:
displaying one or more selectable elements corresponding to the identified further processing action;
receiving a user input for selection of the identified further processing action; and
performing the identified further processing action, the further processing action being performed at least partly on a basis of one or more characteristics of the further data object.

### Claim 13 (depends on 1)

A method according to claim 1, wherein the one or more predetermined characteristics of data objects further comprise a data object type.

### Claim 14 (depends on 1)

A method according to claim 1, wherein the one or more predetermined characteristics of data objects further comprise a presence of data of a given type within an associated data object.

### Claim 15 (depends on 1)

A method according to claim 1, wherein the one or more predetermined characteristics of data objects further comprise at least one object attribute.

### Claim 16 (depends on 1)

A method according to claim 1, wherein each of the first and second data entries is generated during a registration process of a corresponding application.

### Claim 17 (depends on 1)

A method according to claim 1, wherein one or more of the one or more services are configured to be executed on the user terminal.

### Claim 18 (depends on 1)

A method according to claim 1, wherein one or more of the one or more services are configured to be executed remotely to the user terminal.

### Claim 19 (depends on 18)

A method according to claim 18, wherein initiating performance of a given data object by a given application comprises the given application sending a processing initiation message to a remote processing entity.

### Claim 20 (depends on 19)

A method according to claim 19, wherein the processing initiation message comprises the given data object.

### Claim 21 (depends on 19)

A method according to claim 19, wherein the processing initiation message comprises one or more processing parameters.

### Claim 22 (depends on 1)

A method according to claim 1, wherein determining the one or more data objects for selection by the user comprises receiving a list of data object identifiers from an initiating application on the user terminal, the list of data object identifiers comprising identifiers for at least the one or more data objects.

### Claim 23 (depends on 22)

A method according to claim 22, wherein at least one of the one or more data objects is generated in response to selection of the corresponding selectable element by a user of the user terminal.

### Claim 24 (depends on 1)

A method according to claim 1, wherein each of the data object comprises a file.

### Claim 25 (depends on 24)

A method according to claim 24, wherein at least one of the one or more predetermined characteristics of data objects comprises a file type.

### Claim 26

A computer program product comprising a non-transitory computer-readable storage medium having computer readable instructions stored thereon, the computer readable instructions being executable by a user terminal to cause the user terminal to perform a method of selecting a service for processing of a data object on the user terminal, the user terminal comprising a processor, the method comprising:
receiving from each of a plurality of different applications, an indication of one or more services that the respective application is configured to perform;
receiving from each of the plurality of applications, an indication of one or more characteristics of data objects, wherein each of the data objects is associated with a respective service that is configured to be performed by the respective application, and the one or more characteristics of a respective data object comprise one or more of: an object size, an object dimension, an object duration, and an object age;
maintaining in a data store:
first data entries relating to the one or more services that are executed by one or more applications;
second data entries relating to the one or more predetermined characteristics of data objects in respect of the corresponding ones of the one or more services are performed;
action data entries defining one or more processing actions for performance on selection of a service of the one or more services in respect of the data objects having characteristics as defined by the second data entries; and
outcome data entries defining how the method is to proceed after performance of the one or more processing actions indicated by respective action data entries;
determining one or more data objects for selection by a user;
identifying, based on the determined one or more data objects and on the first and second data entries, one or more services that are performed in relation to at least one of the one or more data objects; and
displaying, on a display of the user terminal, one or more first selectable elements corresponding to at least one of the identified one or more services, and one or more second selectable elements corresponding to at least one of the determined one or more data objects, each of the first and second selectable elements being for selection by a user of the user terminal.

### Claim 27

A user terminal comprising a processor, the user terminal being configured to:
receive from each of a plurality of different applications, an indication of one or more services that the respective application is configured to perform;
receive from each of the plurality of applications, an indication of one or more characteristics of data objects, wherein each of the data objects is associated with a respective service that is configured to be performed by the respective application, and the one or more characteristics of a respective data object comprise one or more of: an object size, an object dimension, an object duration, and an object age;
maintain, in a data store:
first data entries relating to the one or more services that are executed by one or more applications;
second data entries relating to the one or more predetermined characteristics of data objects in respect of the corresponding ones of the one or more services are performed;
action data entries defining one or more processing actions for performance on selection of a service of the one or more services in respect of the data objects having characteristics as defined by the second data entries; and
outcome data entries defining how the user terminal is to proceed after performance of the one or more processing actions indicated by respective action data entries;
determine one or more data objects for selection by a user;
identify, based on the determined one or more data objects and on the first and second data entries, one or more services that are performed in relation to at least one of the one or more data objects; and
display, on a display of the user terminal, one or more first selectable elements corresponding to at least one of the identified one or more services, and one or more second selectable elements corresponding to at least one of the determined one or more data objects, each of the first and second selectable elements being for selection by a user of the user terminal.

### Claim 28 (depends on 27)

A user terminal according to claim 27, further comprising the data store.
