An embodiment of a communication system includes a client device adapted to receive a traceable object that includes tracer information, and to perform one or more object-related actions using the traceable object. The client device stores the tracer information and object usage information, which describes the one or more object-related actions that have been performed using the traceable object. The client device also sends the stored information to a server. The system also includes the server, which is adapted to receive the object usage information and the tracer information reported by the client device. In an embodiment, the system also includes a service provider adapted to initiate a billing event, which may include generation and transmission of a bill to a sponsor entity based on an evaluation of the object usage information and the tracer information reported by the client device.
|
10. A method performed by a client device, comprising the steps of:
receiving a traceable object that includes tracer information identifying a business entity associated with the origin of the traceable object;
performing one or more object-related actions using the traceable object, wherein the one or more object-related actions include at least one action selected from a group of actions consisting of a play action, a receive action, a call action, a view action, a map action, a send action, a save action, a search action, a physical navigation action, an arrival action, and a purchase action;
storing object usage information and the tracer information, wherein the object usage information describes the one or more object-related actions that have been performed by the client device using the traceable object; and
sending the object usage information and an identification of the business entity from the tracer information to a server.
8. A method performed by a client device, comprising the steps of:
receiving a traceable object that includes tracer information identifying a business entity associated with the origin of the traceable object;
performing one or more of a plurality of different object-related actions using the traceable object, wherein a unique action code is associated with each of the plurality of different object-related actions, wherein each unique action code is associated with a particular type of the different object-related actions;
storing, for each object-related action that has been performed using the traceable object, a record that includes object usage information and the tracer information identifying the business entity, wherein the object usage information includes the unique action code for the object-related action that has been performed by the client device using the traceable object; and
sending the object usage information and an identification of the business entity from the tracer information to a server.
17. A method performed by a server, comprising the steps of:
receiving a client-generated information request from a client device, wherein the information request includes parameters for obtaining information;
obtaining one or more traceable objects in response to receiving the client-generated information request, wherein a traceable object of the one or more traceable objects includes tracer information in one or more tracer fields, and the tracer information identifies a business entity associated with the origin of the traceable object;
sending the one or more traceable objects to the client device; and
receiving object usage information and client-reported tracer information that includes an identification of the business entity, wherein the object usage information includes a unique action code for each of a plurality of object-related actions that have been performed by the client device using the traceable object, wherein each unique action code is associated with a particular type of the different object-related actions.
1. A communication system comprising:
a client device adapted to receive a traceable object that includes tracer information identifying a business entity associated with the origin of the traceable object, to perform one or more of a plurality of different object-related actions using the traceable object, wherein a unique action code is associated with each of the plurality of different object-related actions, wherein each unique action code is associated with a particular type of the different object-related actions, to store, for each object-related action that has been performed using the traceable object, a record that includes object usage information and the tracer information identifying the business entity, wherein the object usage information includes the unique action code for the object-related action that has been performed by the client device using the traceable object, and to send the object usage information and an identification of the business entity from the tracer information to a server; and
the server adapted to receive and store the object usage information.
24. A client device comprising:
a processing subsystem adapted to determine whether one or more of a plurality of different object-related actions have been performed by the client device using a traceable object that includes tracer information, wherein a unique action code is associated with each of the plurality of different object-related actions, wherein each unique action code is associated with a particular type of the different object-related actions, and when an object-related action has been performed, to initiate storage of a record that includes the tracer information and object usage information into a data storage subsystem, wherein the object usage information includes the unique action code for the object-related action that has been performed by the client device using the traceable object, and the tracer information identifies a business entity associated with the origin of the traceable object;
the data storage subsystem adapted to store the object usage information and the tracer information; and
a network interface adapted to receive the traceable object, and to transmit one or more messages that include the object usage information and an identification of the business entity in the tracer information over a network.
28. A method performed by a client device, comprising the steps of:
receiving a traceable object that includes tracer information identifying a business entity associated with the origin of the traceable object;
performing one or more object-related actions using the traceable object, wherein each of the one or more object-related actions is an action selected from a group consisting of receiving the traceable object, saving the traceable object, sending the traceable object to another client device, outputting content in the traceable object on an output device of the client device, initiating a telephone call to a telephone number represented in the traceable object, displaying a map that indicates a physical location represented in the traceable object, initiating an instance of a navigation application to provide navigation instructions to the physical location represented in the traceable object, determining that the client device has arrived at the physical location represented in the traceable object, purchasing a product or service represented in the traceable object, and initiating a search algorithm using information in the traceable object;
storing object usage information and the tracer information, wherein the object usage information describes the one or more object-related actions that have been performed by the client device using the traceable object; and
sending the object usage information and an identification of the business entity from the tracer information to a server.
2. The communication system of
a data storage subsystem, wherein the client device is adapted to store the tracer information and the object usage information in a client-side object usage log within the data storage subsystem.
3. The communication system of
4. The communication system of
an object usage tracking database, wherein the server is adapted to store the object usage information in a server-side object usage log within the object usage tracking database.
5. The communication system of
the server is further adapted to send the object usage information to a service provider, and wherein the communication system further comprises
the service provider adapted to receive the object usage information from the server, and to initiate a billing event based on an evaluation of the object usage information and the tracer information.
6. The communication system of
7. The communication system of
11. The method of
determining that an object-related action has been performed by the client device using the traceable object; and
generating a record in a client-side object usage log, wherein the record includes an identification of the object-related action and the tracer information of the traceable object.
12. The method of
storing the object usage information in conjunction with the encrypted tracer information.
13. The method of
after receiving the one or more traceable objects from the server, receiving an object usage information request from the server; and
sending the traceable object usage information and the tracer information to the server in response to receiving the object usage information request.
14. The method of
determining whether a reporting event has occurred; and
sending the object usage information and the identification of the business entity to the server when the reporting event has occurred, and wherein the reporting event is an event selected from a group of events that includes a performance of an object-related action, a collection of a predetermined quantity of object usage information, the object usage log reaching a predetermined size, a performance of a predetermined number of object-related actions, an elapse of a predetermined period of time, an entry into a particular operational state, and a receipt of a report request message from the server.
15. The method of
increasing a usage credit value when the client device performs an object-related action.
16. The method of
decreasing a usage credit value when the client device performs a redemption action.
18. The method of
before sending a traceable object of the one or more traceable objects to the client device, storing a provider identifier in a provider identifier field of the tracer fields.
19. The method of
before sending a traceable object of the one or more traceable objects to the client device, protecting the tracer information by encrypting portions of the tracer information.
20. The method of
before sending a traceable object of the one or more traceable objects to the client device, protecting the tracer information by storing an integrity key in a tracer protection information field of the tracer fields.
21. The method of
after sending the one or more traceable objects to the client device, sending an object usage information request to the client device, wherein the traceable object usage information and the client-reported tracer information is received from the client device in response to the object usage information request.
23. The method of
maintaining usage credit values for one or more client devices.
25. The client device of
at least one user interface input device adapted to enable a user to cause the client device to perform the object-related action; and
at least one user interface output device adapted to depict information within the traceable object.
26. The client device of
27. The method of
29. The method of
|
This application is a continuation-in-part of co-pending U.S. patent application Ser. No. 11/928,760, filed on Oct. 30, 2007.
The inventive subject matter generally relates to objects upon which actions may be performed in a networked environment, and more particularly to collecting and maintaining information regarding the usage and/or propagation of such objects in and through a network.
Various types of transportable objects may be exchanged between devices (e.g., servers, clients, and other nodes) in a client-server communications network. Basically, a “transportable object” is a data entity that may be transported from one network device to another, and that includes identification information (e.g., an object identifier) and some type of information or content.
Information regarding user-initiated actions performed on a transportable object may be valuable to various parties. For example, a service provider who provided the transportable object (or information contained therein) and/or a business entity associated with a transportable object may be interested in knowing whether a user performed some action on the transportable object. This knowledge may enable the service provider and/or business entity better to understand user behavior, to promote use of an object by providing user incentives for certain actions (e.g., sharing an object with other users), and/or may present monetization opportunities, for example. Currently, however, there is no systematic mechanism for determining, with respect to transportable objects provided to a user, whether any user action was taken or what that user action may have been. Accordingly, what are needed are methods and apparatus for a system to obtain information regarding actions that a user has taken on a transportable object. Other features and characteristics of the inventive subject matter will become apparent from the subsequent detailed description and the appended claims, taken in conjunction with the accompanying drawings and this background.
The inventive subject matter will hereinafter be described in conjunction with the following drawing figures, wherein like numerals denote like elements, and
The following detailed description of the inventive subject matter is merely exemplary in nature and is not intended to limit the inventive subject matter or the application and uses of the inventive subject matter. Furthermore, there is no intention to be bound by any theory presented in the preceding background or the following detailed description.
Embodiments include systems that are adapted to provide object-related services to users of “client” devices. More particularly, embodiments include systems, methods, and apparatus for enabling the collection of information regarding actions performed by client devices using “traceable objects” (also referred to herein simply as “objects”) that are provided by a system in conjunction with an object-related service. As will be described in detail below, collection of this information is facilitated, in various embodiments, by providing “tracer information” as a part of each traceable object, and by adapting the client devices to store and report, to the system, indications of the actions performed by the client devices using the traceable objects. As will also be described in detail below, the system may evaluate the information reported by the client devices to better determine user behaviors and/or for monetization purposes, in various embodiments.
Communication system 100 includes various system entities, which include at least one gateway 102 and a plurality of client devices 103, 104, 105, 106, 107, 108, 109. Communication system 100 also may include one or more service providers 114, 116, each of which may have some type of business relationship with one or more sponsor entities 130, 131, 132, 133, 134. As used herein, the term “system entity” means a software, firmware, hardware or combined entity, which is adapted to communicate with other system entities. A system entity may include an entity that performs processing and/or data storage functions with respect to signals or messages that are communicated between it and one or more other system entities. Gateway 102, client devices 103-109, service providers 114, 116, object usage tracking database 124, and/or portions thereof may be considered “system entities,” as that term is used herein. Although the description herein separately describes various processes performed between gateway 102 and service providers 114, 116, it is to be understood that some or all of the processes performed by gateway 102 may be performed by a service provider 114, 116, and vice versa. In addition, although gateway 102 and service providers 114, 116 are illustrated as distinct system entities, these entities may be physically and/or functionally combined, in various embodiments.
Client devices 103-109 may form a portion of any one or more electronic devices selected from a group of devices that includes, but is not limited to, cellular telephones, radios, pagers, personal data assistants (PDAs), personal navigation devices (PNDs), mobile computer systems (e.g., automotive and airplane computer systems), and computers (e.g., laptop, notebook, and desktop computers), to name a few. Client devices 103-109 may be portable or stationary electronic devices, and may be adapted to communicate with networks 110, 111 using various wired and/or wireless communication technologies. In addition, client devices 103-109 are adapted to execute one or more applications, as will be described in more detail below.
Gateway 102 may include one or more computers, data storage devices, and/or other hardware, which are adapted to execute one or more server processes (e.g., “servlets”) and/or to store data relevant to server operations. Gateway 102 is adapted to communicate with client devices 103-109 and at least one service provider 114, 116 over one or more wired or wireless networks 110, 111, 112. Networks 110-112 may include, for example, packet switched and/or circuit switched networks, and may further include one or more of the internet, a personal area network (PAN), a local area network (LAN), a wide area network (WAN), a cellular telephone network, a radio network, a satellite communications network, a public switched telephone network (PSTN), and/or any of a variety of other types of networks adapted to enable the interchange of data between various system entities. Networks 110-112 may be adapted to exchange data between the system entities using any of a variety of wired or wireless communications protocols, a discussion of which is outside the scope of the present application. Although three networks 110-112 are illustrated in
In the process of providing object-related services and/or executing object-related applications, “traceable objects” may be produced within communication system 100, and exchanged between system entities. As used herein, the term “traceable object” means a distinct and portable data structure (e.g., a transportable object), which has a defined format that includes or identifies some type of content (e.g., information included within, associated with, or identified by the object), one or more entities (e.g., a provider and/or sponsor entity), and information that enables actions performed on the object to be tracked (e.g., an “object tracer”).
Traceable objects may include, for example but not by way of limitation, one or more types of objects selected from a group that includes a traceable media object, a traceable location object, a traceable link object, a traceable advertisement object, a traceable information object, and/or other types of traceable objects according to various embodiments. The “type” of traceable object (e.g., media, location, link, advertisement, information) relates to the type of content included within or identified by the traceable object. A “traceable media object” may include, for example, one or more types of media content (e.g., images, video, music or other media). A “traceable location object” may include, for example, content describing the geographical and/or physical location of an entity (e.g., a sponsor entity, a residence, a physical device or a point-of-interest). A traceable location object may include other information, as well, including a telephone number and entity name, for example. A “traceable link object” may include, for example, a traceable object having content that includes one or more links or uniform resource locators (URLs). A “traceable advertisement object” may include, for example, advertising content (e.g., images, video, audio, URLs) associated with one or more business entities, trademarks, logos, and/or products or services. A “traceable information object” may include, for example, one or more types of informational content (e.g., data and/or types of information other than those previously discussed). Traceable objects may include other types of content, in other embodiments. In addition, although a traceable object may include only a single type of content, a traceable object alternatively may include multiple types of content, as well.
In an embodiment, a traceable object includes information that enables actions performed on the object to be tracked (e.g., an “object tracer”), as mentioned previously. As used herein, the terms “object tracer” and “tracer” refer to a portion of a traceable object that identifies one or more system entities associated with the origin and/or content of the traceable object. As used herein, “tracer information” means the information that is stored within an object tracer. In an embodiment, an object tracer may be “protected” at various times, meaning that the object tracer may be in an encrypted format, or may include some information (e.g., an integrity key) that enables a determination to be made whether the content of the object tracer has been altered by an unauthorized source. Embodiments of traceable objects and object tracers will be described in detail later, in conjunction with
Referring again to
In various embodiments, gateway 102 may generate a traceable object itself, or may obtain a traceable object corresponding to an information request from a service provider 114, 116 or other system entity. Generating or obtaining traceable objects may include performing processes (e.g., formulating and/or performing a search) and/or performing data accesses based on the information request. During generation of a traceable object or upon receipt of a traceable object (e.g., from a service provider 114, 116), gateway 102 may add tracer information to the traceable object, and send the server-modified traceable object to the client device 103-109. In an embodiment, gateway 102 may protect the tracer (e.g., through encryption, inclusion of an integrity key, or otherwise) prior to sending the traceable object to a client device 103-109.
Client devices 103-109 are adapted to receive traceable objects from gateway 102 or other system entities (e.g., other client devices 103-109 and/or service providers 114, 116), and to store received traceable objects within the client device's local memory. A client device 103-109 additionally may “use” a received traceable object by performing one or more actions relating to the traceable object. For example, along with the action of storing a traceable object (or the content associated with the traceable object) on the client device 103-109, a client device 103-109 may output the content associated with the traceable object (e.g., display an image or movie and/or output music or sounds), navigate to a web site using a URL included within a traceable object, send the traceable object to another system entity, place a call to an entity identified in a traceable object, map the location of an entity identified in a traceable object, and/or initiate a navigation application to provide driving instructions to an entity identified in a traceable object, among other things.
Client devices 103-109 are adapted to store information regarding their actions performed using traceable objects, along with the tracer information associated with the traceable objects that are used. This information may be referred as “traceable object usage information,” which is defined herein as data describing one or more object-related actions that have been performed using one or more traceable objects that are resident on (e.g., received by and stored on) a client device 103-109. Traceable objects may be stored in temporary storage (e.g., volatile memory) and/or persistent storage (e.g., non-volatile memory). As used herein, the term “object-related action” means a system-recognized action performed by a client device 103-109 using a traceable object that is resident on the client device 103-109. In an embodiment, each client device 103-109 that performs an object-related action using the traceable object (or an instance thereof) maintains traceable object usage information for the traceable object. Accordingly, for example, when a first client device (e.g., client device 103) sends a traceable object to a second client device (e.g., client device 104), the first client device may store traceable object usage information for the “send” action, and the second client device may store traceable object usage information for the “receive” action. The first and second client devices may, thereafter, independently store additional traceable object usage information for the shared traceable object each time an object-related action is performed. In other words, the first client device may continue to maintain object usage information for the instance of the traceable object upon which it is performing object-related actions, while the second client device may independently maintain object usage information for the instance of the traceable object upon which it is performing object-related actions. Accordingly, a plurality of client devices simultaneously and independently may be maintaining object usage information for a same traceable object. Examples of various object-related actions will be given later, in conjunction with a discussion of
Traceable object usage information and tracer information may be stored on a client device 103-109 within a client-side traceable object usage log, in an embodiment. The client-side traceable object usage log may be stored within the client device's local memory, although it may be stored in other accessible locations, in other embodiments. As used herein, the term “client-side traceable object usage log” means a collection of traceable object usage information and tracer information, which is stored on a client device 103-109, and which describes one or more actions that have been performed using one or more traceable objects, along with the tracer information associated with the traceable objects upon which the actions have been performed. In an embodiment, a client-side traceable object usage log includes one or more traceable object usage records, each of which includes information regarding one or more actions performed upon a particular traceable object and the associated tracer information. Embodiments of client-side traceable object usage logs will be described in detail later, in conjunction with
Along with collecting and storing traceable object usage information and tracer information, a client device 103-109 also may be adapted to report that information to other system entities (e.g., gateway 102). Client devices 103-109 may send client traceable object usage information and tracer information to gateway 102 in response to a request from gateway 102, or in response to some other reporting event, as will be described later. In an embodiment, a client device 103-109 may report traceable object usage information by generating a client traceable object usage report, and sending that report to gateway 102. As used herein, the term “client traceable object usage report” means a collection of traceable object usage information and tracer information retrieved from a client-side traceable object usage log, which is in a message format suitable for sending over a network 110, 111. In an embodiment, a client traceable object usage report may be sent to gateway 102 in the form of one or more messages or data blocks.
In an embodiment, gateway 102 is adapted to receive traceable object usage information and tracer information (e.g., in the form of client traceable object usage reports) from client devices 103-109, and to consolidate the received traceable object usage information and tracer information by storing the received traceable object usage information and tracer information in a traceable object usage tracking database 124. Traceable object usage tracking database 124 may include a centralized or distributed data storage system, and may be implemented on the same or different hardware from gateway 102. In an embodiment, the traceable object usage tracking database 124 is adapted to store consolidated traceable object usage information and tracer information in a server-side traceable object usage log. As used herein, the term “server-side traceable object usage log” means a collection of traceable object usage information and tracer information, which is stored on or accessible to gateway 102, and which describes one or more actions that have been performed upon one or more traceable objects by one or more client devices 103-109, along with the tracer information associated with those traceable objects. A server-side traceable object usage log may be in the form of a relational database or a flat file, in various embodiments.
In an embodiment, gateway 102 is also adapted to send portions of the consolidated traceable object usage information and tracer information to service providers 114, 116 or other system entities. Gateway 102 may send portions of the consolidated traceable object usage information and tracer information to a service provider 114, 116 in response to a request from the service provider 114, 116, or in response to some other reporting event, as will be described later. In an embodiment, gateway 102 may report portions of the consolidated traceable object usage information and tracer information by generating a server traceable object usage report, and sending that report to a service provider 114, 116. As used herein, the term “server traceable object usage report” means a collection of traceable object usage information and tracer information retrieved from a server-side traceable object usage log, which is in a message format suitable for sending over a network 112. In an embodiment, a server traceable object usage report may be sent to a service provider 114, 116 in the form of one or more messages or data blocks.
Service providers 114, 116 include entities that are adapted to generate or obtain traceable objects in response to requests for information from other system entities (e.g., gateway 102 or client devices 103-109). In an embodiment, a service provider 114, 116 is a distinct system entity from the gateway 102. In an alternate embodiment, a service provider 114, 116 and a gateway 102 may be implemented together. In an embodiment, a service provider 114, 116 may include a search engine or other processing algorithm, which is adapted to identify one or more traceable objects based on information within an information request.
Each service provider 114, 116 may have business relationships with one or more sponsor entities 130-134, in an embodiment, as indicated by ovals 150, 152. In an embodiment, this may mean that a service provider 114, 116 and a sponsor entity 130-134 have mutual business obligations (e.g., a contractual relationship), such as a service provider's obligation to provide, for monetary or other compensation, traceable objects for sponsor locations in response to information requests. In another embodiment, a service provider 114, 116 may be more directly related to a sponsor. For example, a service provider 114, 116 may include a server adapted to host a sponsor entity's website and to provide traceable objects associated with the sponsor entity in response to information requests received through the website.
As used herein, the terms “sponsor entity” and “sponsor” mean a business entity that provides (e.g., sells or licenses) products and/or services, typically but not essentially for compensation. A business entity may be located at and/or have a business interest in one or more sponsor facilities (SF) 140, 141, 142, 143, 144, 145, 146, 147, 148, where a physical location of a sponsor facility 140-148 may be represented in a traceable object. As used herein, the term “product” means a tangible product (e.g., a physical item) or an intangible product (e.g., data, electronically represented media, software, and/or files or documents, to name a few). As used herein, the term “sponsor facility” means an actual physical facility (e.g., land areas, edifices, stores, warehouses, restaurants, offices or other non-portable physical objects). In some cases, a sponsor entity 130-134 and a sponsor facility 140-148 may be co-located, and in other cases, a sponsor entity 130-134 and a sponsor facility 140-148 may be distinct entities and/or physically distinct (e.g., a sponsor entity may be a corporation, and sponsor facilities may include multiple retail locations owned by the corporation).
In an embodiment, by virtue of the business relationships between them, each service provider 114, 116 may maintain traceable objects associated with sponsor entities 130-134 and/or sponsor facilities 140-148. Each service provider 114, 116 also may select certain ones of the maintained traceable objects based on information requests received from gateway 102, and may send the selected traceable objects to gateway 102 in response to the requests.
Several examples of the functionality of communication system 100 for different types of traceable objects are now provided. It is to be understood that the examples described below are not exhaustive, and that other types of traceable objects and actions performed thereupon may be implemented in other embodiments. A first example of the functionality of communication system 100 follows, which pertains to actions performed on a traceable media object. Assume a user of a client device 103-109 wants to download a song onto the client device 103-108. The user may initiate an application on the client device 103-109, which is adapted to enable the user to enter the criteria identifying the song. The application may then generate a request for the song, and the client device 103-109 may send the request to gateway 102. Gateway 102 may, in turn, send a request to a service provider 114, 116, which is adapted to determine a traceable media object associated with the song. The service provider 114, 116 may then send the traceable media object to the gateway 102, and the gateway 102 may send the traceable media object to the client device 103-109.
The client device 103-109 may store the traceable media object and/or its content, and then may perform one or more additional actions with respect to the object. One action that the client device 103-109 may take is to output the song on an audio device. Another action that the client device 103-109 may take is to send the song to another network-connected or other device.
A second example of the functionality of communication system 100 follows, which pertains to actions performed on a traceable advertising object and/or a traceable link object. Assume a user of a client device 103-109 wants to access a web page, and the web page includes a traceable advertising object (e.g., an object that renders as a coupon type of advertisement) and a traceable link object (e.g., an object that includes link to another web page). The user may initiate an application (e.g., a browser) on the client device 103-109, which is adapted to enable the user to identify the web site. The application may then generate a request for a web page associated with the web site, and the client device 103-109 may send the request to gateway 102. Gateway 102 may, in turn, send a request to a service provider 114, 116, which is adapted to send the web page document, the traceable advertisement object, and the traceable link object, to the gateway 102. The gateway 102 may send the web page document, the traceable advertisement object, and the traceable link object to the client device 103-109.
The client device 103-109 may store the traceable advertisement object and the traceable link object, and then may perform one or more additional actions with respect to the objects. Upon rendering the web page on the client device 103-109, one action that the client device 103-109 may take, in response to a user input (e.g., a mouse click on the page element corresponding to the traceable advertisement object or the traceable link object) is to initiate navigation to a web site associated with the selected traceable object.
A third example of the functionality of communication system 100 follows, which pertains to actions performed on a traceable location object. Assume a user of a client device 103-109 wants to obtain location information for gas stations located within a five mile radius of the user's current location (i.e., the client device's current location). The user may initiate a location application on the client device 103-109, which is adapted to enable the user to enter the search criteria. The location application may then generate a request for location information, and the client device 103-109 may send the location information request to gateway 102. Gateway 102 may, in turn, send a location information request to a service provider 114, 116, which is adapted to determine one or more traceable location objects associated with sponsor facilities 140-148 that meet the search criteria (e.g., gas stations within a five mile radius of the client device's current location). The service provider 114, 116 may then send the traceable location objects to the gateway 102, and the gateway 102 may send the traceable location objects to the client device 103-109.
The client device 103-109 may store the traceable location objects, and then may perform one or more additional actions with respect to one or more of the traceable location objects. Assume, for example, that the client device 103-109 received four traceable location objects in response to its initial location information request, and each traceable location object includes the name and location of a different gas station. One action that the client device 103-109 may take is to display a list of the gas stations, with each item of the list corresponding to one of the four received traceable location objects. Another action that the client device 103-109 may take, via a mapping application, is to display a map that indicates the locations of each of the gas stations. Another action that the client device 103-109 may take, in response to user inputs, is to initiate a phone call to one of the gas stations using a telephone number included within the traceable location object for that gas station. Yet another action that the client device 103-109 may take, via a navigation application, is to provide navigation instructions to instruct the user how to navigate to one of the gas stations. Ultimately, the navigation application may issue an arrival instruction if and when the navigation application determines that the user has arrived at the gas station.
Service providers 114, 116 and sponsor entities 130-134 may be interested in obtaining information regarding the use, by client devices 103-109, of traceable objects which the service providers 114, 116 have provided. This information may be useful, for example, in determining user behavior, in promoting usage of traceable objects by providing incentives for users to perform certain actions (e.g., sharing and/or otherwise using a traceable object), and/or for monetizing the use of traceable objects.
For example, if a service provider 114, 116 had knowledge that a user has initiated the performance of an action upon (e.g., has “used”) a particular traceable object, the service provider 114, 116 may be able to charge a predetermined and/or negotiated fee to the sponsor entity 130-134 and/or to the user or owner of the client device 103-109 based on the type of action performed, the type and/or cost of any product or service associated with the traceable object, the sponsor entity 130-134, and/or the type of sponsor facility 140-148 associated with or represented in the traceable object. For example, when an action involves merely storing a traceable object on a client device 103-109, a first fee (or no fee) may be charged. Alternatively, when an action involves receiving an arrival instruction from a navigation application, which implies that the user actually has gone to a sponsor facility 140-148 represented in a traceable object, another fee may be charged. As yet another alternative, when an action involves the user navigating to a web site associated with a sponsor entity 130-134, another fee may be charged. In addition, a service provider 114, 116 may have a first fee schedule for a first sponsor entity 130-134 or a first type of sponsor facility 140-148 (e.g., a fast food restaurant) and a second, higher fee schedule for a second sponsor entity 130-134 or a second type of sponsor facility 140-148 (e.g., a luxury car dealership).
As another example, a service provider 114, 116 may promote usage of traceable objects by providing incentives for users of client devices 103-109 to perform various actions with the traceable objects. In a particular embodiment, one or more system entities (e.g., a user device 103-109, gateway 102, a service provider 114, 116, and/or another system entity) may maintain (e.g., store and update) a usage credit value for a client device 103-109 (or a plurality of client devices 103-109), where the usage credit value indicates how many usage credits the client device 103-109 has accumulated. The system may increase the usage credit value (e.g., add one or more usage credits) for each action performed by the client device 103-109 on traceable objects to which it has access. The usage credit value may be increased as each user action is performed, and/or may occasionally be increased upon evaluation of stored or reported traceable object usage information (e.g., information stored on a client device 103-109, in a traceable object usage tracking database 124, and/or in memory accessible to a service provider 114, 116 or sponsor entity 130-134). The amount that the usage credit value is increased for each action performed on a traceable object may vary depending on the type of action performed, the type of traceable object, the type and/or cost of any product or service associated with the traceable object, the user, the user device 103-109, the sponsor entity 130-134, and/or the type of sponsor facility 140-148 associated with or represented in the traceable object. For example, when an action involves downloading a traceable object to a client device, the usage credit value may be increased by a first amount (e.g., 5 credits). Alternatively, when an action involves sending a traceable object to another client device (e.g., “sharing” the traceable object), the usage credit value may be increased by a second amount (e.g., 10 credits).
In addition, a user and/or the system may initiate certain redemption actions, and the usage credit value may be decreased for each redemption action performed. A redemption action may be an action that is performed in which one or more usage credits are exchanged for an incentive of some type. In other words, a usage credit value may be decreased by an amount in exchange for an incentive provided to the user (or other person or entity). For example but not by way of limitation, incentives may include monetary awards, charitable donations, discounts on products or services, coupons, product or service upgrades, product or service prizes (e.g., a free cup of coffee, a month of free email service, etc.), transportable objects (e.g., ringtones, songs, video clips), and/or other items that may be perceived as having value.
Additional details regarding various embodiments will now be described. More particularly,
Software architecture 200 includes a core component 202 adapted to provide features relating to various client services, as will be explained in more detail below. In addition, in an embodiment, software architecture 200 includes various “peripheral components,” which interface with core component 202. These peripheral components include, in an embodiment, a traceable object management application 206 and one or more software application programs 208, at least some of which are adapted to process traceable objects. In an embodiment, software architecture 200 also may include a location engine (not illustrated), which includes hardware, firmware, and/or software adapted to determine a current location of the client device.
Traceable object management application 206 includes a software application adapted to provide the means (e.g., interactive display screens) for a user of the client device to access and initiate various functions relating to traceable objects. For example, but not by way of limitation, traceable object management application 206 may cause the client device to display a screen that includes a menu of selectable options relating to traceable objects. These options may include, for example, options to save a traceable object on the client device in persistent storage (“save option”), to view details of a traceable object (“view option”), to edit a traceable object (“edit option”), to output content (e.g., media content) associated with the traceable object on the client device (“play option”), to navigate to a web site associated with or represented in the content of a traceable object (“web navigate option”), to display a map to a location represented in a traceable object (“map option”), and/or to send a traceable object to another system entity (“send option”). Traceable object management application 206 also may enable a user to select a saved traceable object, and to initiate the performance of an object-related action on the selected traceable object, in an embodiment. For example, when a user selects a traceable location object, traceable object management application 206 may initiate execution of a client-side location application, and may pass the selected traceable location object (or a pointer or address thereto) to the application. As another example, when a user selects a traceable media object, traceable object management application 206 may initiate execution of a client-side media application adapted to output the media content (e.g., to a display and/or speaker), and may pass the selected traceable media object (or a pointer or address thereto) to the application. In addition, traceable object management application 204 may provide one or more other features or selectable options, which may be displayed in conjunction with the menu or may be selectable through the menu. Additional features may include, for example, setup features (e.g., enables the displays to be customized), information management features (e.g., enabling information and/or traceable objects to be organized and/or characterized), usage credit management features (e.g., enabling usage credit values to be viewed and/or enabling usage credits to be redeemed for incentives), and/or information display features (e.g., enabling subsets of information and/or traceable objects to be displayed, such as “recent songs,” for example).
Software application programs 208 include one or more executable software programs, at least some of which are adapted to provide a user interface, and to receive, send, store, and/or process traceable objects. For example, but not by way of limitation, software application programs 208 may include one or more of a browser application, an audio player application, a video player application, a mapping application, a search application, a point-to-point direction application, a navigation application, a geocoding application, a reverse geocoding application, a contacts application, a messaging application (e.g., a short message service (SMS) application and/or a multimedia messaging service (MMS) application), other third-party provider applications, and/or other applications.
In an embodiment, at least some of software application programs 208 may include user interface (UI) elements 210 and network interface elements 212. UI elements 210 include portions of the software application programs 208, which produce the means for a user of the client device to view and enter information through the user interface (e.g., the display, touchscreen, pointing device, keypad, speaker, and microphone, for example). Network interface elements 212 include portions of the software application programs 208, which facilitate communication between the client device and a server (e.g., gateway 102,
As mentioned previously, object management application 206 and software application programs 208 are adapted to interface with core component 202. Core component 202 may be a platform-independent entity, which may be executed in conjunction with a variety of different operating systems on a variety of different types of client devices. In an embodiment, core component 202 includes or is adapted to call various features, including a settings and profile feature 220, an application registry feature 221, a traceable object store feature 223, and a traceable object support feature 224. Each of these features 220, 221, 223, 224 is an element of core component 202, in an embodiment. In other embodiments, any one or more of features 220, 221, 223, 224 may be implemented in software programs that are distinct from core component 202, and/or may be excluded altogether. In still other embodiments, any one or more of features 220, 221, 223, 224 may be combined together.
Settings and profile feature 220 is adapted to maintain settings and profile information, and in some cases, to facilitate editing of settings and profile information. For example, settings and profile feature 220 may be adapted to interface with traceable object management application 204 and/or software application programs 208 to provide and/or update settings and/or profile information. Settings may include, among other things, information that enables the network interface elements 212 of the software application programs 208 to communicate with a server adapted to provide services (e.g., a uniform resource locator for gateway 102,
Application (APP) registry feature 221 is adapted to enable applications (e.g., software application programs 208) to register themselves with the core functionality (e.g., to make themselves “known” to the core functionality). In addition, application registry feature 221 facilitates intercommunication (e.g., of traceable objects) between registered applications. For example, in an embodiment, the application registry feature 221 may enable a messaging application, which has received an SMS message that includes a traceable object, to pass the traceable object to an audio player application, which may then cause a song represented in the traceable object to be output on a speaker.
Traceable object store feature 223 is adapted to store traceable objects that are received by the client device in the client device's non-volatile memory, and to retrieve and provide previously stored traceable objects when they are requested by a software application program 208 or other software component of the client device. In an embodiment, a user also may initiate access to traceable objects by manipulating the user interface provided by traceable object management application 204, for example. Once accessed, the user may “use” the traceable object by initiating, through the user interface, further actions to be performed with respect to the traceable object.
Traceable object usage logging and reporting feature 224 is adapted to log the usage of traceable objects by storing information regarding the usage (e.g., traceable object usage information and tracer information) in traceable object usage log 240. In addition, in an embodiment, traceable object usage logging and reporting feature 224 is adapted to report the traceable object usage to a server (e.g., gateway 102,
In an embodiment, a client device also may store and maintain (e.g., increase or decrease) a usage credit value, as described previously. In such an embodiment, the client device may include non-volatile storage (not illustrated) for storing the usage credit value. In alternate embodiments, other system entities (e.g., gateway 102, service providers 114, 116, and/or sponsor entities 130-134,
Referring first to
In block 304, the client device generates a client-generated information request, which indicates the parameters. The client device may then send the client-generated location information request to a server (e.g., gateway 102,
In an embodiment, in block 306, the server receives and parses the client-generated information request. The server may be adapted to act as a proxy, and to perform some computational or data intensive functions related to the service for which the information request relates. In addition, the server may be adapted to generate or retrieve traceable objects that may fulfill the request. However, if the server is not able to generate or retrieve traceable objects that may fulfill the request, the server may generate and send a server-generated information request to a service provider (e.g., service provider 114, 116,
In block 308, the service provider receives and parses the server-generated information request, and obtains at least one traceable object that fulfills the request, in an embodiment. In some cases, the service provider may generate the traceable objects, and in other cases, the service provider may obtain the traceable objects from other sources. As discussed previously, a traceable object includes content and, in an embodiment, also includes an object tracer, which includes tracer information that identifies one or more system entities associated with the origin and/or content of the traceable object. Along with content and tracer information, a traceable object may include other information, as well.
Header field 502 may include, for example, information that enables a processing element to determine the type of entity that traceable object 500 is, and may additionally include information regarding the size and format of traceable object 500, among other things. Object definitions field 504 may include an indication of a unique or non-unique name of the entity (e.g., the business entity or the individual name) associated with traceable object 500. Object tracer 506 includes a protected or unprotected tracer, which as described previously, identifies one or more system entities associated with the origin and/or content of traceable object 500. Finally, content field 508 may include any one or more types of content that includes media content (e.g., digital images, video, and/or audio), links (e.g., URLs), location information, advertisements, documents, data, and/or other types of content. Although
Version ID field 602 may include version information (e.g., a version number) indicating the “version” of the tracer structure and/or tracer processing requirements. For example, the system may be adapted to implement various tracer structures, each potentially having different sizes, different fields, different arrangements of fields, and/or different field characteristics (e.g., data formats). In an embodiment, the server (e.g., gateway 102,
Provider ID field 606 may include a provider ID, which identifies an entity (e.g., a service provider 114, 116,
Sponsor ID field 608 may include a sponsor ID, which identifies a sponsor entity (e.g., a sponsor entity 130-134,
Sponsor type field 610 may include a sponsor type indicator, which provides for classifying the sponsor entity (e.g., a sponsor entity 130-134,
Object ID field 612 may include a object ID, which enables a determination of which particular sponsor asset or assets (e.g., sponsor facility 140-148,
Object instance ID field 614 may include an object instance ID, which uniquely identifies the particular instance of the traceable object. In an embodiment, an object instance ID is stored in object instance ID field 614 by a service provider (e.g., service provider 114, 116,
Creation date field 616 may include an object instance timestamp, which indicates when the object instance was created (or some subsequent time). In an embodiment, an object instance timestamp is stored in creation date field 616 by a service provider (e.g., service provider 114, 116,
Tracer protection information field 618 may include information that enables the tracer 600 or portions thereof to be “protected.” In one embodiment, the tracer protection information field 618 may include an integrity key and/or checksum, which is calculated based on the contents of one or more other tracer fields, and which enables a later determination of whether or not those tracer fields have been modified. In another embodiment, the tracer protection information field 618 may also or alternatively include an encryption key identifier, which includes or identifies an encryption key that was used to encrypt one or more other tracer fields, thus enabling later decryption of those tracer fields. In other embodiments, a tracer may be sent “in the clear” (e.g., unprotected), and the tracer protection information field 618 may be excluded. In an embodiment, tracer protection information (e.g., an integrity key, checksum, encryption key, or other information) is stored in tracer protection information field 618 by a system entity that applies the protection, such as a server (e.g., gateway 102,
The object tracer 600 of
Referring also to
In block 310, the server receives the traceable object from the service provider. In an embodiment, the server may then fill certain server-related tracer fields by adding data to those tracer fields, as described previously in conjunction with
In block 312, the client device receives and parses the server-modified object. The client device may also store the traceable object in temporary or volatile storage. In an embodiment, the client's receipt of the traceable object may be considered a logable, “object-related action.” In an embodiment, the action of receiving a traceable object, along with other actions performed with respect to the traceable object, may be documented by the client device in an object usage log, as mentioned previously.
As used herein, an “object-related action” may be defined as an action that is tracked by the system, and that is performed by a client device (e.g., in response to user interface inputs) and/or performed by a client-side application or other software program. In an embodiment, each object-related action that is tracked within a system may have a unique action code associated therewith. Table 1, below, illustrates an example of a table of object-related actions, action codes, and a description of each action that may be tracked by a system according to an example embodiment. It is to be understood that a system may track more, fewer or different actions than those listed in Table 1, in various alternate embodiments. In other words, in other embodiments, more, fewer or different object-related actions may be defined by and recognized within a system.
Action
Code
Action
Description
1
receive
receive object from another system entity
2
download
download object and/or content
3
play
output content of object (e.g., audio and/or video)
on client device
4
call
initiate telephone call to a telephone number
represented in the object
5
display
display information or content in object
6
map
display a map that indicates a physical location
represented in the object
7
send
send object and/or content in an object to another
system entity
8
save
save object or content in non-volatile memory on
the client device
9
web navigate
navigate to web site represented in the object
10
purchase
purchase product or service represented in object
or offered on a web site represented in object
11
search
initiate or perform a search algorithm using
information in object
12
physical
initiate an instance of a navigation application to
navigation
provide navigation instructions to a physical
location represented in object
13
arrival
generate arrival-type navigation alert and/or
otherwise determine that the client device has
arrived at a physical location represented in object
In an embodiment in which receipt of a traceable object is a system-recognized, object-related action, the client device may save information regarding the action in an object usage log. In an embodiment, an object usage log is a data structure (e.g., a buffer), stored in non-volatile memory of the client device, which includes information regarding object-related actions performed by the client device with respect to traceable objects that are received by and/or stored on the client device (e.g., the “usage” of received traceable objects). In an embodiment, indicating that an object-related action has occurred (e.g., a receive action) includes generating an entry (e.g., a record) in the object usage log, which includes all or portions of the tracer for the traceable object that was acted upon, along with an indication of the action that was performed (e.g., the object usage information), among other things. In an embodiment in which all of a portion of the tracer is encrypted, the encrypted tracer information may be stored, in the entry, in conjunction with the object usage information. In an embodiment in which the client device maintains a usage credit value, the client device may increase the usage credit value by one or more usage credits for performing the receive (or download) action. In an alternate embodiment, another system entity (e.g., gateway 102, service provider 114, 116, and/or sponsor entity 130-134,
The object usage log (and the usage credit value, if it is maintained by the client) may be updated each time the client device performs an object-related action, in an embodiment. Accordingly, a usage log entry (e.g., a record) may be generated in the object usage log each time the client device performs an object-related action. Alternatively, an existing usage log entry corresponding to a particular traceable object may be updated to indicate that an additional action has been performed with respect to that traceable object. As will be described in detail later, the usage information included within an object usage log may be reported to a server (e.g., gateway 102,
In an embodiment, each time an object-related action is performed, a new record is created in object usage log 700, a then-current time is inserted into the timestamp field 706 of the new record, and all or a portion of the tracer (e.g., tracer 600,
Object-related actions 704 performed by the client device may be stored in the object usage log 700 (or reported to a server or service provider) in a coded format, in an embodiment, although the information may be stored (or reported) in an ASCII format or some other uncompressed format, in other embodiments. For example, as described previously, the system may associate a unique code with each type of object-related action, and the unique codes may be known to the client device and to the server. Referring again to
As mentioned previously, a client device may, on occasion, report information describing object-related actions performed by the client device to a server (e.g., gateway 102,
Referring first to
When the client device has received an object usage information request message or has determined that another reporting event has occurred, the client device may send object usage information and the tracer information associated therewith to the server, in block 804, as indicated by client-specific object usage information message 904 (
In an embodiment, the client device sends object usage information and tracer information to the server (or other system entity) in the form of a client object usage report message. The object usage information and tracer information may be sent to a server in a substantially unaltered form from how it was stored in the object usage log, or it may be sent in a reformulated format which includes more, less, and/or rearranged information. The information may be sent in a consolidated format with duplicative information removed, in an embodiment, and/or may be otherwise compressed. Finally, the information may or may not be encrypted or scrambled, prior to being sent.
Header field 1002 may include information that enables a determination of the type of message (e.g., an object usage report message), and a message identifier (e.g., a unique identifier of the message), among other things. In addition, header field 1002 may indicate the size of the message, the data portion of the message (e.g., the device ID field 1004 and the object usage information field 1006), and/or other information that enables a system entity to parse or decode the message.
Device ID field 1004 may include a device identifier, which uniquely identifies the client device within the network or system. Object usage information field 1006 includes indicators of object-related actions and tracers stored within the object usage log (e.g., object usage log 700,
Referring again to
In an embodiment, the server stores object usage information and at least some of the client-reported tracer information in an object usage tracking database (e.g., traceable object usage tracking database 124,
In an embodiment, each time object usage information is received from a client device (e.g., in a client object usage report message 1000,
In addition, for each record, the reported action may be indicated in the action field 1106, and tracer information that includes all or a portion of the tracer (e.g., tracer 600,
As mentioned previously, a server may, on occasion, report information describing object-related actions performed by client devices to a service provider (e.g., service provider 114, 116,
When the server has determined that a reporting event has occurred, the server may retrieve and send object usage information and tracer information to the service provider, in block 1204, as indicated by service provider-specific object usage information message 908 (
In an embodiment, the server sends object usage information and tracer information to the service provider (or other system entity) in the form of a service-provider object usage report message. The object usage information and tracer information may be sent to a service provider in a substantially unaltered form from how it was stored in the object usage tracking database, or it may be sent in a reformulated format which includes more, less, and/or rearranged information. The information may be sent in a consolidated format with duplicative information removed, in an embodiment, and/or may be otherwise compressed. In addition, the information may include complete, unaltered tracer information, or it may exclude certain portions of the tracer information. Finally, the information may or may not be encrypted or scrambled, prior to being sent.
In an embodiment, the server may initiate billing for the provider-specific object usage information. This may include, for example, sending information to a “server billing processor” regarding the identity of the service provider to whom the information was reported, along with information regarding the quantity and or nature of provider-specific object usage information that was reported. A server billing processor may include, for example, a processing entity associated with the server, which is adapted to evaluate “reporting information” describing reported object usage information, and to initiate billing events based on the reporting information. The term “server,” as used herein, may be used interchangeably to mean a server and/or a server billing processor, which may or may not be distinct processing entities. In an embodiment, the server billing processor may initiate the generation of a billing event, which may include the generation and transmission of an electronic or paper bill to a sponsor entity, and/or the initiation of a funds transfer from the sponsor entity to the service provider. In this manner, the server may monetize its collection and provision of object-related action information to the service provider.
Referring again to
In an embodiment, a service provider billing processor associated with the service provider may then initiate a sponsor billing event based on the received object usage information and server-reported tracer information. The term “service provider,” as used herein, may be used interchangeably to mean a service provider and/or a service provider billing processor, which may or may not be distinct processing entities. For example, a service provider billing processor may determine sponsors who potentially should be billed, based on the server-reported tracer information. For example, a service provider billing processor may identify, as sponsors potentially to be billed, a set of sponsors who were identified in the server-reported tracer information of those objects that were reported as having been used. For example, these sponsors may be or may have been identified in the sponsor ID fields (e.g., sponsor ID field 608,
Once the set of sponsor entities (and/or users) potentially to be billed have been determined, the service provider billing processor may determine billing amounts for each identified sponsor entity (and/or user) based on the object usage information. In an embodiment, the service provider billing processor may implement a tiered billing schedule to determine billing amounts for each identified sponsor entity (and/or user). For example, in an embodiment, a tiered billing structure may specify different billing amounts for different types of actions, and/or for different sponsors, and/or for different types of sponsors, and/or for different users, and/or for different server assets associated with the traceable objects.
Referring again to block 1206 of
As described previously, in an embodiment, the system may maintain usage credit values for each client device, which values may be stored and maintained on a client device (e.g., client device 103-109,
Various embodiments may be performed on client devices (e.g., client devices 103-109,
Wireless network interface 1402 is adapted to receive and/or transmit messages over a wireless network (e.g., a cellular network, radio network, and/or other types of wireless networks). In an embodiment, wireless network interface 1402 may include at least one antenna and other apparatus for receiving signals (e.g., messages that include traceable objects) from the air interface and for transmitting signals (e.g., messages that include object usage information) over the air interface. Wired network interface 1403 is adapted to receive and/or transmit messages over a hardwired network (e.g., the internet, a WAN, a LAN, a PSTN, and/or other types of networks). In an embodiment, wired network interface 1403 may include at least one port and other apparatus for receiving signals (e.g., messages that include traceable objects) from the wired network, and for transmitting signals (e.g., messages that include traceable object usage information) over the wired network.
Processing subsystem 1404 is adapted to perform various method embodiments, as described previously. In particular, processing subsystem 1404 is adapted to determine whether an object-related action has been performed in which a traceable object that includes tracer information has been used by the client device 1400. When an object-related action has occurred, processing subsystem 1404 may initiate storage of the tracer information and object usage information into data storage subsystem 1406.
Processing subsystem 1404 may include at least one processing device (e.g., a general purpose or special purpose processor) and additional circuitry adapted to interface processing subsystem 1404 with other elements of device 1400. Processing subsystem 1404 is operatively coupled to wireless network interface 1402 and/or wired network interface 1403, in an embodiment, and accordingly may receive data from and provide data to wireless network interface 1402 and/or wired network interface 1403. The data may include, for example, traceable objects and/or object usage information. Processing subsystem 1404 also is operatively coupled to UI input device 1408 and UI output device 1410, in an embodiment, and accordingly may receive information that indicates user inputs, and may provide information (e.g., displays depicting location information within traceable location objects, and/or audio or video output of traceable media objects).
Processing subsystem 1404 may store data to and/or retrieve data from the at least one data storage subsystem 1406. Data storage subsystem 1406 may include, for example, one or more volatile or non-volatile storage components, such as random access memory (RAM), read only memory (ROM), numerous variations of those types of memories, and/or other types of storage. In an embodiment, the at least one data storage subsystem 1406 is adapted to store information (e.g., object usage information and tracer information) regarding object-related actions performed by device 1400, and a user credit value (if it is maintained on client device 1400), among other things.
The at least one UI input device 1408 may include one or more of various devices selected from a group of UI input devices that includes, but is not limited to a microphone, keypad, keyboard, trackball, pointing device, and/or touchscreen, among other things. In an embodiment, the at least one user input device 1408 is adapted to enable the user to cause device 1400 to perform various object-related actions by providing input prompts and receiving user inputs (e.g., mouse clicks, entered data, etc.).
The at least one UI output device 1410 may include one or more of various devices selected from a group of UI output devices that includes, but is not limited to a speaker, display device, touchscreen, mechanical vibration device, and/or indicator light, among other things. In an embodiment, the at least one user output device 1410 is adapted to depict information within traceable objects, as is discussed in detail above.
The at least one battery subsystem 1412 may be configured to accept at least one rechargeable or disposable battery, in an embodiment, and accordingly may include a battery housing (not illustrated), which may hold the at least one battery. The at least one battery subsystem 1412 may be operatively coupled to any one or more of the at least one processing subsystem 1404, the at least one data storage subsystem 1406, the at least one wireless network interface 1402, the at least one wired network interface 1403, the at least one user interface input device 1408, and/or the at least one user interface output device 1410, in an embodiment, in order to provide power to these device elements. In an alternate embodiment, device 1400 may not include a battery subsystem, and instead may receive line power.
The sequence of the text in any of the claims does not imply that process steps must be performed in a temporal or logical order according to such sequence unless it is specifically defined by the language of the claim. The process steps may be interchanged in any order without departing from the scope of the inventive subject matter as long as such an interchange does not contradict the claim language and is not logically nonsensical. Furthermore, numerical ordinals such as “first,” “second,” “third,” etc. simply denote different singles of a plurality and do not imply any order or sequence unless specifically defined by the claim language.
Furthermore, words such as “connected” or “coupled to” used in describing a relationship between different elements do not imply that a direct physical connection must be made between these elements. For example, two elements may be connected to each other physically, electronically, logically, or in any other manner, through one or more additional elements, without departing from the scope of the inventive subject matter.
Those of skill would further appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the inventive subject matter.
The various illustrative logical blocks, modules, and circuits described in connection with the embodiments disclosed herein may be implemented or performed with a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general-purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, such as a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
The steps of a method or algorithm described in connection with the embodiments disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC. The ASIC may reside in a user terminal. In the alternative, the processor and the storage medium may reside as discrete components in a user terminal.
While at least one exemplary embodiment has been presented in the foregoing detailed description, it should be appreciated that a vast number of variations exist. It should also be appreciated that the exemplary embodiment or exemplary embodiments are only examples, and are not intended to limit the scope, applicability, or configuration of the inventive subject matter in any way. Rather, the foregoing detailed description will provide those skilled in the art with a convenient road map for implementing an exemplary embodiment of the inventive subject matter, it being understood that various changes may be made in the function and arrangement of elements described in an exemplary embodiment without departing from the scope of the inventive subject matter as set forth in the appended claims and their legal equivalents.
Harris, David B., Herrbach, Frederic
Patent | Priority | Assignee | Title |
8676504, | Oct 30 2007 | Google Technology Holdings LLC | Methods and apparatus for collecting and using information regarding location object-based actions |
9060245, | Oct 30 2007 | Google Technology Holdings LLC | Methods and apparatus for collecting and using information regarding location object-based actions |
Patent | Priority | Assignee | Title |
5610821, | Nov 18 1994 | IBM Corporation | Optimal and stable route planning system |
5845281, | Feb 01 1995 | Rovi Solutions Corporation | Method and system for managing a data object so as to comply with predetermined conditions for usage |
6321158, | Jun 24 1994 | Garmin Switzerland GmbH | Integrated routing/mapping information |
7092964, | Jun 22 2001 | HERE GLOBAL B V | Method of collecting market research information |
7518530, | Jul 19 2004 | HONDA MOTOR CO , LTD | Method and system for broadcasting audio and visual display messages to a vehicle |
7562387, | Sep 07 2001 | International Business Machines Corporation | Method and apparatus for selective disabling of tracking of click stream data |
20010010541, | |||
20020010757, | |||
20020019837, | |||
20030214760, | |||
20040054784, | |||
20040254942, | |||
20060178918, | |||
20060182055, | |||
20060234727, | |||
20060247849, | |||
20060265495, | |||
20070016671, | |||
20070032947, | |||
20080004958, | |||
20080040151, | |||
20080147480, | |||
20090254572, | |||
WO2005121955, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Mar 24 2008 | Motorola Mobility LLC | (assignment on the face of the patent) | / | |||
Mar 24 2008 | HARRIS, DAVID B | Motorola, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 020774 | /0056 | |
Mar 24 2008 | HERRBACH, FREDERIC | Motorola, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 020774 | /0056 | |
Jul 31 2010 | Motorola, Inc | Motorola Mobility, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 025673 | /0558 | |
Jun 22 2012 | Motorola Mobility, Inc | Motorola Mobility LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 028829 | /0856 | |
Oct 28 2014 | Motorola Mobility LLC | Google Technology Holdings LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 034625 | /0001 |
Date | Maintenance Fee Events |
Jan 16 2017 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Mar 08 2021 | REM: Maintenance Fee Reminder Mailed. |
Aug 23 2021 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Jul 16 2016 | 4 years fee payment window open |
Jan 16 2017 | 6 months grace period start (w surcharge) |
Jul 16 2017 | patent expiry (for year 4) |
Jul 16 2019 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jul 16 2020 | 8 years fee payment window open |
Jan 16 2021 | 6 months grace period start (w surcharge) |
Jul 16 2021 | patent expiry (for year 8) |
Jul 16 2023 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jul 16 2024 | 12 years fee payment window open |
Jan 16 2025 | 6 months grace period start (w surcharge) |
Jul 16 2025 | patent expiry (for year 12) |
Jul 16 2027 | 2 years to revive unintentionally abandoned end. (for year 12) |