# US 9,519,506 B2 · Method and apparatus for enabling remote service task based access to functionality provided by one or more remote services

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

- Number: US 9,519,506 B2
- Document ID: US9519506B2
- Status: Granted
- Kind: B2
- Application number: 13/538,767
- Filed: 2012-06-29
- Published: 2014-01-02
- Granted: 2016-12-13
- Earliest claimed: 2012-06-29
- Assignees: Nokia Technologies Oy
- Applicants: Richard Michael Collin; Simon Paul Turvey
- Inventors: Richard Michael Collin; Simon Paul Turvey
- Web page: https://patentgrep.com/patent/US9519506B2

## CPC

- G06F 9/46: Multiprogramming arrangements
- G06F 9/5055: {considering software capabilities, i.e. software resources associated or available to the machine}
- H04L 67/51: Discovery or management thereof, e.g. service location protocol [SLP] or web services
- G06F 16/951: Indexing; Web crawling techniques
- G06F 2209/5015: Service provider selection
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Methods, apparatuses, and computer program products are provided herein for enabling task based access to functionality provided by one or more remote services. One example method may include generating a task based query, the task based query suggestive of a task to be performed. A method may further include causing the task based query to be provided to a remote service discovery engine. A method may further include receiving an indication of a remote service of a plurality of remote services that is configured to perform the task from the remote service discovery engine, the indication comprising access instructions for querying the remote service.

## Claims

### Claim 1

A method comprising:
receiving an input, via a user interface, identifying at least one task to be performed, wherein the task is independent of a particular software package;
generating a task based query at a task query apparatus, the task based query suggestive of the task to be performed, wherein the task based query is generated based on the input;
determining, based on functionalities of a plurality of software packages local to the task query apparatus, that at least one software package of the plurality of software packages is configured to perform the task in an instance in which the task matches at least one of a an intent, end state, or purpose to the functionalities exposed by the plurality of software packages local to the task query apparatus;
causing, in an instance in which at least one software package of the plurality of software packages that are local to the task query apparatus is not configured to perform the task, the task based query to be provided from the task query apparatus to a remote service discovery engine, wherein the remote service discovery engine comprises a registry that defines a functionality for a plurality of remote services and provides access instructions for independently connecting with a remote service of the plurality of remote services, wherein the remote service is configured to provide at least one of the requested functionality via a user interface or additional functionality for one or more local packages, such that the one or more local packages are able to perform the requested task;
receiving, at the task query apparatus, from the remote service discovery engine and as a response to the task based query, an indication of a remote service of the plurality of remote services that is configured to perform the task based on the functionality of the remote service, the indication comprising access information for querying the remote service;
causing a the task based query to be transmitted from the task query apparatus, to the remote service that is formatted according to the access information, wherein the access information for the remote service comprises syntax information and a description of a format in which a response is provided; and
causing a response to the task based query that is received from the remote service to be displayed via the user interface.

### Claim 2 (depends on 1)

A method according to claim 1, wherein the task based query is generated in response to a current task being performed by at least one of a remote service of the plurality of remote services or a local software package of a plurality of software packages local to the task query apparatus.

### Claim 3 (depends on 1)

A method according to claim 1, further comprising:
preprocessing the task based query such that the task based query is configured to be in a format for input by the remote service discovery engine.

### Claim 4 (depends on 1)

A method according to claim 1, wherein the remote service discovery engine comprises a registry that defines a functionality for the plurality of remote services and provides access information for the plurality of remote services.

### Claim 5 (depends on 1)

A method according to claim 1, wherein the response for display in the user interface is generated by the remote service.

### Claim 6 (depends on 1)

A method according to claim 1, further comprising:
receiving more than one remote service of the plurality of remote services; and
selecting a remote service of the more than one remote services.

### Claim 7 (depends on 6)

A method according to claim 6, wherein the remote service is selected based on a user interaction with the user interface.

### Claim 8 (depends on 6)

A method according to claim 6, wherein the remote service is selected based on at least one of a cost to access, a user rating, a popularity, a last update time or a user preference.

### Claim 9

An apparatus comprising:
at least one processor; and
at least one memory including computer program code, the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus to at least:
receive an input, via a user interface, identifying at least one task to be performed, wherein the task is independent of a particular software package;
generate a task based query at a task query apparatus, the task based query suggestive of the task to be performed, wherein the task based query is generated based on the input;
determine, based on functionalities of a plurality of software packages local to the task query apparatus, that at least one software package of the plurality of software packages is configured to perform the task in an instance in which the task matches at least one of an intent, end state, or purpose to the functionalities exposed by the plurality of software packages local to the task query apparatus;
cause, in an instance in which at least one software package of the plurality of software packages that are local to the task query apparatus is not configured to perform the task, the task based query to be provided from the task query apparatus to a remote service discovery engine, wherein the remote service discovery engine comprises a registry that defines a functionality for a plurality of remote services and provides access instructions for independently connecting with a remote service of the plurality of remote services, wherein the remote service is configured to provide at least one of the requested functionality via a user interface or additional functionality for one or more local packages, such that the one or more local packages are able to perform the requested task;
receive, at the task query apparatus, from the remote service discovery engine and as a response to the task based query, an indication of a remote service of the plurality of remote services that is configured to perform the task based on the functionality of the remote service, the indication comprising access information for querying the remote service;
cause the task based query to be transmitted from the task query apparatus, to the remote service that is formatted according to the access information, wherein the access information for the remote service comprises syntax information and a description of a format in which a response is provided; and
cause a response to the task based query that is received from the remote service to be displayed via the user interface.

### Claim 10 (depends on 9)

An apparatus according to claim 9, wherein the remote service discovery engine comprises a registry that defines a functionality for the plurality of remote services and provides access information for the plurality of remote services.
