This application particularly relates to pairing agents with service providers to dynamically bind communications devices to remote services.
Service providers and their customers could benefit from dynamic configuration settings. When a user operates their communications device, its switches, buttons, display, and other hardware and software parameters are defined by configuration settings. These configuration settings, however, are usually hard coded and not modifiable. The service provider must provide their service (e.g., messaging service, data service, or video service) using the device's hard-coded configuration settings. If, however, the service provider could alter those configuration settings, the service provider could tailor their customers' communications devices to optimally provide a service. What is needed, then, are methods, systems, and products that pair a service provider with a user's communications device, such that the user's communications device agrees to accept configurations and services suggested by the service provider.
The problems noted above, along with other problems, may be reduced or eliminated by embodiments of the present invention using methods, systems, and products that pair service providers with user agents. Each user's communications device stores and executes a user agent. The user agent is a software application that negotiates on behalf of the user when pairing with a service provider. If the negotiation is successful, the user's agent allows the service provider to dynamically alter configuration settings. When the user's agent and the service provider pair, the user's agent agrees to accept configurations and services suggested by the service provider. That is, when pairing occurs, the user's agent agrees to accept third party control of the user's communications device. The user's agent and the service provider negotiate to dynamically configure the user's communications device according to the service provided by the service provider. The present invention, then, allows a service provider to dynamically configure switches, buttons, software/hardware controls, and/or displays to best suit the service.
According to aspects of the present invention, a method is disclosed for pairing agents and service providers. A registration request is received to pair a user's agent and a service provider. When the user's agent and the service provider pair, the user's agent agrees to accept configurations and services suggested by the service provider. The service provider may be any real or corporate person that provides third party services, such as, but not limited to, mapping or location-based services, e-commerce services, messaging services, food services, and transportation services. A directory service is queried that stores at least one of i) third party service providers and information describing each third party service provider's service and ii) agents and information associated with each agent. The term “third party” means a service provider other than a communications network provider. A response is sent that describes an available pairing between an agent and a service provider.
According to another aspect of the present invention, another method is disclosed that pairs agents and service providers. A service provider registers with a directory service that pairs the agents and the service providers. An available pairing is received from the directory service, and an invitation is sent to an agent to pair with the service provider.
Still other aspects of the present invention describe a system that pairs agents and service providers. A pairing application is stored in memory, and a processor communicates with the memory and with the pairing application. The system registers with a directory service that pairs agents and service providers. The system receives an available pairing from the directory service, and the system sends an invitation to an agent to pair with a service provider.
In yet another aspect, a computer program product pairs agents and service providers. The computer program product comprises a computer-readable medium storing computer-readable instructions. These instructions cause registration with a directory service that pairs the agents and the service providers. An available pairing is received from the directory service, and an invitation is sent to an agent to pair with the service provider.
In another aspect of the present invention, another computer program product pairs agents and service providers. A registration request is received to pair an agent and a service provider. A directory service is queried that stores agents and service providers. The directory service stores searchable metadata and other information describing each agent, each service provider, and each service provider's service. A query response is received that describes an available pairing. A registration response is sent that describes the available pairing.
Other aspects, including systems, methods, and/or computer program products according to the present invention will be or become apparent to one with ordinary skill in the art upon review of the following drawings and detailed description. Such additional aspects, including systems, methods, and/or computer program products, are included within the scope of the present invention.
The accompanying drawing figures incorporated in and forming a part of this specification illustrate several aspects, features, principles and advantages of the present invention, and together with the Detailed Description serve to better explain the aspects, features, principles, and advantages of the invention.
The present invention now will be described more fully hereinafter with reference to the accompanying drawings, in which exemplary embodiments of the invention are shown. This invention may, however, be embodied in many different forms and should not be construed as limited to the exemplary embodiments set forth herein. Rather, these exemplary embodiments are provided so that this disclosure will convey the invention to those skilled in the art.
As used herein, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well, unless expressly stated otherwise. It will be further understood that the terms “includes,” “comprises,” “including,” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. It will be understood that when an element is referred to as being “connected” or “coupled” to another element, it can be directly connected or coupled to the other element or intervening elements may be present. Furthermore, “connected” or “coupled” as used herein may include wirelessly connected or coupled. As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items.
It will also be understood that, although the terms first, second, etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first device could be termed a second device, and, similarly, a second device could be termed a first device without departing from the teachings of the disclosure.
The user's communications device 20 and the service provider's server 22 pair together and negotiate configuration settings. The terms “pair,” “pairs,” “pairing,” and similar terms describe a process by which the user's agent application 28 agrees to accept configurations and services suggested by the remote service provider (e.g., the service provider's server 22). The user's communications device 20 and the service provider's server 22 pair together to configure the user's communications device 20 for the service. The service provider may wish to bind keys, configure a switch, and/or configure a display device. Suppose, for example, that the service provider is “Vinnie's Pizza.” If the user wishes to order a pizza from Vinnie's, the user may agree to accept settings, controls, web links, and other configurations specified by, and/or obtained from, Vinnie's Pizza. These configurations alter switches, buttons, and/or controls to optimally present content specified by Vinnie's Pizza.
Some aspects of software agents are known, so this disclosure will not greatly explain the known details. If, however, the reader desires more details, the reader is invited to consult the following sources, all incorporated herein by reference in their entirety: U.S. Pat. No. 6,915,129 to Kovacs (Jul. 5, 2005); U.S. Pat. No. 5,867,729 to Swonk (Feb. 2, 1999); U.S. Pat. No. 6,741,853 to Jiang et al. (May 25, 2004); U.S. Pat. No. 6,941,148 to Hansmann et al. (Sep. 6, 2005); Published U.S. Patent Application 2004/0110497 to Little (Jun. 10, 2004); Published U.S. Patent Application 2004/0203685 to Woodward et al. (Oct. 14, 2004); Published U.S. Patent Application 2004/0214560 to Date et al. (Oct. 28, 2004); Published U.S. Patent Application 2005/0048961 to Ribaudo et al. (Mar. 3, 2005); Published U.S. Patent Application 2005/0128995 to Ott (Jun. 16, 2005); Published U.S. Patent Application 2005/0256876 to Eidson (Nov. 17, 2005); Published U.S. Patent Application 2006/0009204 to Ophir (Jan. 12, 2006); and Published U.S. Patent Application 2006/0084477 to Wardimon et al. (Apr. 20, 2006).
The user's communications device 20 and the service provider's server 22 are only simply illustrated. Moreover, the service provider need not utilize a computer server, but, instead, may likewise utilize any communications device. Because the architecture and operating principles of computers and other communications are well known, the detailed hardware and software components are not further shown and described. If the reader desires more details, the reader is invited to consult the following sources, all incorporated herein by reference in their entirety: A
The exemplary embodiments may be applied regardless of networking environment. The user's communications device 20 and the service provider's server 22 may operate using wired or wireless principles. The communications network 24 may be a cable network operating in the radio-frequency domain and/or the Internet Protocol (IP) domain. The communications network 24 may have Plain Old Telephone Service (POTS) components and/or features. The communications network 24, however, may also include a distributed computing network, such as the Internet (sometimes alternatively known as the “World Wide Web”), an intranet, a local-area network (LAN), and/or a wide-area network (WAN). The communications network 24 may include coaxial cables, copper wires, fiber optic lines, and/or hybrid-coaxial lines. The communications network 24 may include wireless portions utilizing any portion of the electromagnetic spectrum and any signaling standard (such as the I.E.E.E. 802 family of standards, GSM/CDMA/TDMA or any cellular standard, and/or the ISM band). The communications network 24 may even include free-space optics and/or ultrasound communication components and/or features. The concepts described herein may be applied to any wireless/wireline communications network or communications device, regardless of physical componentry, physical configuration, or communications standard(s).
The directory service 40 may also include information describing each user's agent. When each user's agent application 42 registers with the directory service 40, the user may reveal as much, or as little, information as desired. The user's agent application 42, for example, may be configured to communicate searchable information and/or metadata describing the communications device's historical or current location. If the user's agent application 42 divulges a current location (such as GPS coordinates), then the directory service 40 could query for a service provider serving that current location. If the user wishes to reveal personal information, the user's agent application 42 may communicate the user's name, address, family members, family relationships, interests, and preferences. If, for example, the user reveals a family member's birthday or other occasion, the directory service 40 could pair a service provider to obtain a birthday gift. The user may also wish to reveal music, movies, pictures, and other content stored in the memory 30 of the communications device 20. If this content is published to the directory service 40, either the directory service 40 or a service provider could profile the user. The user may also wish to reveal content metadata, such as categories, genres, or titles of music and movies stored in the memory 30 of the communications device 20. Each user's agent application 42 may also communicate information describing the user and/or each user's respective communications device. Each user's agent application 42 may reveal a manufacturer or model number, an operating system, or hardware and software components. Each user's agent application 42 may also communicate Composite Capability/Preference Profile (CC/PP) information. As those of ordinary skill in the art understand, CC/PP information provides a structure and a vocabulary for describing a communications device's hardware capabilities, software capabilities, and user preferences. Because Composite Capability/Preference Profile information is already known, this specification will not provide a detailed explanation of such information. If, however, the reader desires a detailed explanation, the reader is invited to consult W3C, Composite Capability/Preference Profiles (CC/PP): Structure and Vocabularies, available from the World Wide Web Consortium (W3C), 32 Vassar Street, Room 32-G515, Cambridge, Mass. 02139 USA and from the European Office of the World Wide Web Consortium (W3C), 2004, route des Lucioles, BP 93, 06902 Sophia-Antipolis Cedex France, and incorporated herein by reference in its entirety.
The directory service 40 may also include information or metadata describing service providers. When a service provider 44 registers with the directory service 40, the service provider may also communicate searchable information and/or metadata that helps obtain pairings. Service providers, for example, may communicate information that describes their hours, their services, their qualifications, their products, and their geographic service locations. Service providers may also communicate desires and preferences for pairings. Some service providers, for example, may only wish to be paired with communications devices having a certain performance capability (e.g., processor, memory, or display device) or user/content profile. Some service providers may only wish to be paired with communications devices having subscription or membership qualities that indicate pre-existing relationships. A third-party museum, for example, may query for agents that indicate donor or patronage memberships with the museum. Each service provider, then, may generally or specifically describe their desired pairings.
The agent applications 42 and the service providers 44 may update the directory service 40. If the directory service 40 stores stale information, then the server-side pairing application 54 may imperfectly pair a mobile agent with a service provider. Suppose, for example, that a user wishes to obtain pizza delivery, but the user's location information is not current. The directory service 40 may then erroneously or imperfectly pair that agent with a pizzeria that is unable to deliver to the user's current location. The directory service 40, then, may randomly or periodically receive registration updates from the agent applications 42 and from the service providers 44. Current registration information may also be communicated on an event basis, such that the occurrence of the event triggers an update.
User agents may automatically query the directory service 40. The user's agent application 28 may search the directory service 40 for a third party service provider. When the user's agent application 28 desires a pairing, the user's communications device 20 may automatically send a search query for selecting a third party service provider. In this automatic scenario, the user's agent application 28 may poll the directory service 40 for remote service providers. The user's agent application 28, for example, may query the directory service 40 for a remote service provider based on historical pairings within a geographic location. The user's agent application 28, or the directory service 40, may store a log of historical pairings with service providers (or types of service providers). This log may describe pairings within a geographic boundary, so that the user's agent application 28 may query for that same or similar service provider whenever in the vicinity of the same geographic location. The log of historical pairings may also be based on time, such that each log entry describes the date and/or time of each historical pairing and the service provider (or type of service provider). The user's agent application 28 may thus query to automatically pair with the same or similar service provider at a particular date or time. The user's agent application 28 may also automatically send queries based on a negotiated quality of service. The user, for example, may configure the user's agent application 28 to automatically pair with the cheapest messaging/data service, with the fastest available service provider, with the most secure service provider, with the service provider having the highest quality video transfer capability, or with any other service provider able to provide a desired quality of service.
User agents may also search for service providers. The user's agent application 28 may send one or more queries for a particular service provider, for a particular category of service provider, and/or for a particular type of service provider. The user's agent application 28 may even query for semantic terms and/or for desired content or service offerings. The user may instruct the agent application 28 to find all fast food service providers that will deliver within the vicinity of the user's current location. The agent application 28 queries the directory service 40, including a current location. The directory service 40 sends a query result describing fast food service providers associated with the user's current location. The user may then select a desired service provider and request a pairing.
Service providers may also query the directory service 40. The service providers 44 may query the directory service 40 for user agent applications. When a service provider desires a pairing, the service provider's server 44 (e.g., the provider-side pairing application 34) sends a search query to the directory service 40 for selecting one or more agent applications. When the directory service 40 returns the query results, the service provider's server 44 may then invite a particular agent to pair. The invited user may review the invitation and may accept or decline the suggested pairing. Because the directory service 40 may store searchable information/metadata that describes users, user agents, content, or devices, a service provider 44 may query for search results that match detailed or specific search criteria. A service provider 44, for example, may search for all communications devices associated with male owners over 40 and storing classic rock music files. The directory service 40 may be queried for all communications devices currently associated with ZIP code 07082 and which are not already paired. Service providers may also query for communications devices having a certain configuration, profile, or hardware/software specification.
Agents and service providers may query based on history. Either an agent or a service provider may query for historical pairings or interactions. The user's agent application 28, the server-side pairing application 54, and/or the directory service 40 may store or maintain a log of historical pairings. The log of historical pairings may describe each pairing. Frequent or recurring pairings, then, may indicate a “favorite” agent/provider relationship that can be exploited for quick query responses. A historical pairing with a restaurant, for example, may be used to automatically request a favorite dish or order. When the user accepts a pairing with a restaurant, the user's agent application 28 may retrieve and suggest metadata that describes a previous order from that same restaurant. The user may quickly accept this order suggestion, thus relying on the log of historical pairings for a satisfying meal from a known service provider. Historical pairings, then, may be used to suggest not only preferred service providers, but also services from preferred providers.
Each service provider makes their service(s) available to the agent applications 42. The service provider's server 22 exposes their service to the user's agent application 28 and/or the directory service 40. (The service provider's server 22 may also expose their service to the other service providers 44 shown in
Multiple services providers may control the user's communications device 20. The user's agent application 28 exposes configuration information, that configuration information may be shared by multiple service providers. That is, exemplary embodiments permit multiple service providers to share or to divide control of the user's communications device 20. One service provider, for example, may control a touch screen, while another service provider is given control of a keypad. The user's agent application 28 could split a display screen, thus giving a service provider control over one-half of the display, while another service provider simultaneously controls the other half of the display. Another example could give control of the display to one service provider, while another service provider controls an audio system. Multiple service providers, then, may co-habitate or cooperatively control the user's communications device 20.
The process continues with
The user agent application 28, the provider-side pairing application 34, and/or the server-side pairing application 54 may be physically embodied on or in a computer-readable medium. This computer-readable medium may include CD-ROM, DVD, tape, cassette, floppy disk, memory card, and large-capacity disk (such as IOMEGA®, ZIP®, JAZZ®, and other large-capacity memory products (IOMEGA®, ZIP®, and JAZZ® are registered trademarks of Iomega Corporation, 1821 W. Iomega Way, Roy, Utah 84067, 801.332.1000, www.iomega.com). This computer-readable medium, or media, could be distributed to end-users, licensees, and assignees. These types of computer-readable media, and other types not mention here but considered within the scope of the exemplary embodiments, allow the present invention to be easily disseminated. A computer program product comprises the user agent application 28, the provider-side pairing application 34, and/or the server-side pairing application 54 stored on the computer-readable medium. Each application comprises computer-readable instructions/code for pairing agents and service providers, as hereinabove explained. The user agent application 28, the provider-side pairing application 34, and/or the server-side pairing application 54 may also be physically embodied on or in any addressable (e.g., HTTP, I.E.E.E. 802.11, Wireless Application Protocol (WAP), or BLUETOOTH®) wireless device capable of presenting an IP address.
While the present invention has been described with respect to various aspects, features, principles, and exemplary embodiments, those skilled and unskilled in the art will recognize the present invention is not so limited. Other aspects, variations, modifications, and alternative embodiments may be made without departing from the spirit and scope of the present invention and are considered within the scope of the concepts disclosed herein and the invention as described by the claims.
The present application is a continuation of U.S. patent application Ser. No. 11/479,518, entitled METHODS, SYSTEMS, AND PRODUCTS FOR PAIRING AGENTS AND SERVICE PROVIDERS, which was filed on Jun. 30, 2006, which is incorporated by reference herein in its entirety for all purposes.
Number | Date | Country | |
---|---|---|---|
Parent | 11479518 | Jun 2006 | US |
Child | 14182382 | US |