A method of classifying a client device and a device manager to allow for end users to share devices is described.
|
1. A method of managing one or more client devices and one or more device managers arranged to communicate with each other in a personal distributed network, said method comprising:
receiving, by said one or more device managers, a first hardware attribute set and a first service attribute set of a first client device from the first client device;
receiving, by said one or more device managers, a second hardware attribute set and a second service attribute set of a second client device from the second client device;
allocating, by said one or more device managers, a first service component of a first service to the first client device based on the first service attribute set of the first client device corresponding to the first service component;
allocating by said one or more device managers, a second service component of the first service to the second client device based on the second service attribute set of the second client device corresponding to the second service component; and
communicating with at least one of said one or more device managers, the first client device or at least one of a non-primary device manager, a non-primary client device, wherein said one or more device managers and the first and second client devices are each classified as at least one of a primary device, a secondary device, or a universal device according to capabilities of at least one of the hardware or service functionalities of the first and second client devices and when the classification of said one or more device managers differs from the classification of the first or second client device, the communication and capabilities of said one or more device managers or the differently classified client device is restricted to a subset of the corresponding capabilities for at least one of storage capabilities or receiving a set of the first or second client device attributes.
2. The method as claimed in
3. The method as claimed in
4. The method as claimed in
5. The method as claimed in
6. The method as claimed in
7. The method as claimed in
8. The method as claimed in
9. The method as claimed in
10. The method as claimed in
11. The method as claimed in
storing information pertaining to the first service component based on at least one of user preferences or service component information in said one or more device managers if said one or more device managers is a primary device and the first client device is a secondary device.
12. The method as claimed in
protecting information, involved in a communication of the first service component, in said one or more device managers and the first client device if the communication is from said one or more device managers to the first client device and said one or more device managers is a primary device and the first client device is a secondary device.
13. The method as claimed in
|
The present application is based on, and claims priority from, U.S. Provisional Application Nos. 61/170,243, 61/170,326, and 61/170,287, filed Apr. 17, 2009; and 61/180,718, filed May 22, 2009, the disclosures of which are hereby incorporated by reference herein in their entireties.
Currently, end user devices do not have knowledge of other devices owned by the end user and do not share services, components, or elements of the device with other devices. Services, if any, are usually tied to silo networks.
One or more embodiments are illustrated by way of example, and not by limitation, in the figures of the accompanying drawings, wherein elements having the same reference numeral designations represent like elements throughout and wherein:
For clarity and ease of understanding, only a single device manager, wireless network, and wireless device are discussed. In at least some embodiments, there may be more than one device manager, wireless network, and/or wireless device. Additionally, in at least some embodiments, there may be more than one predetermined region with respect to a device manager. Further, additional client devices of varying size, shape, and functionality may be configured to communicate with a device manager.
In at least some embodiments, a “service” is defined as a set of events performed by different client devices and/or hardware components and/or service components of a client device within predetermined region 118 and communicating with device manager 106.
Client devices 2410, 2412, and 2414 are example client devices according to differing embodiments of client devices. The number and type of H/W attribute set and service attribute set content vary in accordance with one or more different embodiments.
For example, client device 2410 comprises a H/W attribute set including a display, a keyboard, and a speaker and a service attribute set including a display text service, a display image service, a play audio service, and a receive key input service. An example client device 2410 may be a handheld or portable computer system having a display, keyboard, and speaker while lacking an audio input device.
Example client device 2412 comprises a H/W attribute set including a touch display, a speaker, a microphone, and a camera and a service attribute set including a display text service, a display image service, a play audio service, a receive touch input service, a receive audio input service, and a receive video input service. An example client device 2412 may be a tablet-based device having a touch-screen display, a speaker, a microphone, and a camera while lacking a keyboard.
Example client device 2414 comprises a H/W attribute set including a display, a speaker, and a heart rate monitor and a service attribute set including a display text service, a display image service, a play audio service, and a receive monitor data service. An example client device 2414 may be a wristwatch-sized device having a display, a speaker, and a heart rate monitor while lacking a keyboard, camera, and microphone.
In operation, device manager 2400 initially communicates with the client devices 2410, 2412, 2414 and receives information regarding the corresponding H/W attribute set and service attribute set content of the client devices. Subsequent to the initial communication, device manager 2400 is able to communicate with one or more client devices in accordance with the received information to make use of the specific hardware and/or service of the client device.
A system for client devices to be shared between end users in a personal distributed network is provided. Methods are provided to ensure that the end user identity and personal information are properly managed when client devices are shared. The method provides mechanism for a client device to use one of “neighboring” device managers and complete a service. The method provides mechanism for “neighboring” device manager to protect it's data and identity when it is used by a “neighboring” client device.
In at least some embodiments, a client device is configured to communicate solely with a single device manager, i.e., a primary device manager. In at least some other embodiments, a client device is configured to communicate with non-primary device managers. Conversely, in at least some embodiments, a device manager may be configured to communicate with primary and/or non-primary client devices. That is, device managers and client devices may be configured as one of at least three types: primary, secondary, and universal. In at least some embodiments, there may be at least two types: primary and universal.
A primary device manager is assigned to a single end user entity, e.g., a single person, and communicates with one or more primary client devices. A collection of primary device managers and client devices form a core personal distributed network (PDN). There may be more than one primary device manager, e.g., corresponding to home and work accounts. A client device may be configured to communicate with a secondary device manager. A secondary device manager is a device manager that does not belong to the core PDN, but has been configured to communicate with client devices of selected primary device managers, e.g., client devices within a family. A universal client device can communicate with any device manager, either primary or secondary. Similarly, a universal device manager can communicate with any client device, either primary or secondary.
If the communication is between a primary device manager and a secondary client device, then the primary device manager takes temporary ownership of the service and stores the information pertaining to the service in the primary device manager. The stored information is transferred to the service owner of the primary device manager's network, e.g., the primary device manager or another designated client device in the PDN of the primary device manager as specified, for example, by user preferences and/or network or device preferences.
Further, it there is a primary device type (either client device or device manager) to a secondary device type (either client device or device manager) communication, the information in both the devices is protected and controlled by user settings, e.g., a secondary client device can not browse an address book or SMS history of a primary device manager without required permissions from the device manager. In at least some embodiments, a distributed memory scheme is used, e.g., certain portions of memory are masked if communication occurs with a secondary device.
If a single entity, i.e., person, has multiple device managers, then client devices either specify which device manager to use or are chosen automatically based on criteria including time of day, location, etc.
If a single entity has multiple device managers, then services are assigned based on a preference, e.g., user preference or network preference, to a particular device manager.
Wireless Network
Wireless network 102 comprises a wireless communication system transporting communication between wireless device 104 and device manager 106. Additionally, wireless network 102 transports communication with wired or other wireless networks. In at least some embodiments, wireless network 102 transports communication to/from one or more packet-switched wired and/or wireless networks such as the Internet. Wireless network 102, in at least some embodiments, includes wireless service operators providing wireless connectivity between wireless device 104 and other wireless devices connected with wireless network 102.
In at least some embodiments, wireless network 102 comprises a cellular communication network, e.g., a code division multiple access (CDMA) based, a time division multiple access (TDMA) based, a global system for mobile (GSM) based, a worldwide interoperability for microwave access (WIMAX) based, 1xEV-Data Optimized (1xEV-DO), 1× EV-Data Voice (1xEV-DV), Universal Mobile Telecommunication System (UMTS), Wideband CDMA (WCDMA), General Packet Radio Service (GPRS), a wireless local area network (WLAN), or other wide area wireless network protocol.
Wireless network 102 stores identifying information related to wireless device 104 and device manager 106. In at least some embodiments, wireless network 102 stores service information related to wireless device 104 and device manager 106. In at least some embodiments, wireless network 102 stores identifying information related to a user of each of wireless device 104 and device manager 106.
Legacy Wireless Device
Wireless device 104 (also referred to as legacy wireless device) includes portable wireless computing devices, e.g., portable wireless telephones, personal digital assistants (PDAs) and paging devices, which are small, lightweight, and easily carried by users. More specifically, the portable wireless telephones, for example, further include cellular telephones that communicate voice and data packets over wireless networks, e.g., wireless network 102.
Device Manager High Level
Device manager 106 is a processing-based device for managing one or more client devices in communication with the device manager and the communication of the client devices with wireless network 102. In at least some embodiments, device manager 106 is a user-transportable device configured to manage communication with, and communicate with, wireless network 102. In at least some embodiments, device manager 106 is small enough to be carried in one hand of a user or in a pocket of a user.
In at least some embodiments, device manager 106 receives the registration of client devices and elements of the client devices and/or new services defined by at least one of the client devices. For example, in at least some embodiments, a voice service provided to device manager 106 from wireless network 102 may comprise two components: a voice path for transmission of an audio signal and a caller identifier (ID) information to identify a caller to a user. In accordance with the foregoing example, an embodiment of device manager 106 is able to direct the components of the voice service to one or more elements of one or more client devices. In at least some further embodiments, the new services registered are defined based on capabilities of the device manager.
In at least some embodiments, device manager 106 is configured to control client devices for administrative purposes, e.g., initial registration, configuration, preference management, adding/removing client devices, etc. In at least some embodiments, the protocol for communication between a client device and device manager 106 comprises a capability for the device manager to control at least a portion of user functionality of the client device. In at least some embodiments, the protocol for communication between a client device and device manager 106 comprises a capability for the device manager to control at least all user functionality of the client device. In at least some embodiments, a client device, and in particular the user interface of the client device, is used for administrative control of device manager 106
In at least some embodiments, device manager 106 stores information related to hardware and/or software capabilities of one or more client devices. In at least some further embodiments, device manager 106 stores the information related to capabilities to one or more client devices. In at least some other embodiments, device manager 106 shares the information related to capabilities with one or more client devices and/or one or more other device managers.
In at least some embodiments, device manager 106 manages a client device based on one or more user-defined parameters. In at least some embodiments, device manager 106 determines a policy management service with respect to client devices based on one or more user-defined parameters.
In at least some embodiments, device manager 106 selects from among different services provided by one or more client devices based on which client devices are active and/or based on one or more user-defined parameters.
In at least some embodiments, device manager 106 stores and/or manages information related to communication subscription information. For example, a wireless device may be subscribed to a particular communication service or set of services provided by a particular wireless carrier, e.g., wireless network. The particular wireless device subscription information is stored by device manager 106. In at least some embodiments, device manager 106 manages whether one or another of a particular wireless device subscription is active. In at least some embodiments, user subscription information, similar to wireless device subscription information, may be stored and/or managed by device manager 106.
In at least some embodiments, device manager 106 may store and manage subscription information related to a single user having two subscriptions, e.g., related to a home or personal subscription and to a business or office subscription. In at least some other embodiments, device manager 106 may store and manage subscription information related to client devices registered with the device manager. In at least some embodiments, a single client device may be in communication with more than one device manager 106 during overlapping and/or non-overlapping time periods. In such a scenario, device manager 106 controls the services and information (and storage thereof) with respect to the client device.
In at least some embodiments, device manager 106 stores and manages a wake up schedule for connected client devices. For example, if a particular service provided by a client device comprises a metering application, device manager 106 may cause the client device to wake up at least once per week in order to obtain the metering data.
Client Devices High Level
Client devices (108, 110, 112, 114, 116) communicate with device manager 106 using a predetermined protocol during the time period in which the client devices are within predetermined range 118 of the device manager. In at least some embodiments, the client devices provide overlapping and/or non-overlapping functionality to device manager 106. In at least some embodiments, the client devices are small enough to be carried in one hand of a user or in the pocket of a user. In at least some embodiments, each client device is carried on a person also carrying device manager 106 with which each client device is in communication.
In at least some embodiments, predetermined range 118 comprises a distance of from a meter or two to a few meters, e.g., 1-10 meters, depending on the particular communication mechanism used. In at least some embodiments, an optical, radio frequency, or magnetic-based communication mechanism may be used for near-field communications (NFC) such as BLUETOOTH, RFID, etc. In at least some embodiments, predetermined range 118 comprises an exclusively NFC-based range.
In at least some embodiments, predetermined range 118 comprises a distance greater than and/or different from that associated with NFC described above, e.g., greater than a few meters. In accordance with such embodiments, a wireless communication mechanism, e.g., optical, radio frequency, or magnetic-based communication mechanism, such as wireless networking, e.g., WIFI, may be used for communication between device manager 106 and the client devices. In accordance with such embodiments, client devices may be in communication (and determined to be within predetermined range 118) if the client devices are within a network reachable range of device manager. For example, a client device may be in communication with device manager 106 via a network, e.g., wireless local area network (WLAN), connection.
As described above, an exemplary set of client devices comprises a monitor device 108, a tablet-based device 110, a wireless device 112, a touch-screen based wireless device 114, and a positioning device 116. Client devices may comprise devices having only user input, only output, e.g., display, or a combination thereof. Other functionality and type of client devices are within the scope of one or more embodiments of the present invention. In at least some embodiments, client devices communicate with other client devices, wireless network 102, and/or wireless device 104 via device manager 106.
As an exemplary client device, monitor device 108 is a heart-rate monitor for monitoring the rate at which the heart of a user beats. The heart beat rate information is displayed on a display of monitor device 108 and transmitted to device manager 106. In at least some embodiments, monitor device 108 does not include a display and solely transmits the heart beat rate information to device manager 106. In such an embodiment, device manager 106 applies user-defined preferences to select another client device on which to display and/or store the heart beat rate information. In at least some embodiments, device manager 106 locally stores the received heart beat rate information. In at least some other embodiments, device manager 106 stores the received heart beat rate information in another client device.
In at least some other embodiments, different types of information may be monitored and transmitted to device manager 106. In at least some embodiments, device manager 106 may communicate with monitor device 108 to specify a particular reporting schedule by which the monitor device determines whether and/or at what time to transmit the monitored information.
As an exemplary client device, tablet-based device 110 is a processor-based device such as a tablet computer for receiving commands and input from a user and transmitting information to the user. Tablet-based device 110 comprises a touch or stylus-based input mechanism for receiving input from a user which also at least partially provides the display mechanism for transmitting information to the user. Tablet-based device 110 comprises a communication interface for communicating with device manager 106 during a time period in which the tablet-based device is within predetermined range 118.
As an exemplary client device, wireless device 112 is a wireless device similar to wireless device 104. Wireless device 112 includes portable wireless computing devices, e.g., portable wireless telephones, personal digital assistants (PDAs) and paging devices, which are small, lightweight, and easily carried by users. More specifically, the portable wireless telephones, for example, further include cellular telephones that communicate voice and data packets over wireless networks, e.g., wireless network 102.
In particular, wireless device 112 communicates voice and data packets over wireless network 102 via communication of the packets using device manager 106. In at least some embodiments, wireless device 112 communicates voice and data packets during a time period in which wireless device is within predetermined range 118. In at least some further embodiments, wireless device 112 communicates voice and data packets over wireless network 102 without device manager 106 during a time period in which wireless device is outside predetermined range 118.
As an exemplary client device, touch-screen based wireless device 114 is a wireless device similar to wireless device 112. Touch-screen based wireless device 114 comprises a touch-screen interface similar to tablet-based device 110.
As an exemplary client device, positioning device 116 is a positioning and/or navigation device which receives positioning signals, e.g., from a global positioning system (GPS) or other signal-based system, transmitted from satellites or ground stations in order to calculate a position of the device with respect to the transmitting system. Positioning device 116 communicates voice and/or data packets over wireless network 102 via device manager 106. For example, In at least some embodiments, positioning device 116 may comprise a communication interface and functionality enabling use of the positioning device as a user input/output device for telephonic communication, e.g., by providing a speakerphone capability. In at least some other embodiments, positioning device 116 displays information related to a current or expected location of the positioning device based on retrieved information from wireless network 102 via device manager 106. In at least some embodiments, positioning device 116 is able to make and receive audio communications via providing a user interface and communication path to device manager 106.
In at least some embodiments, device manager 106 classifies one or more client devices, e.g., according to capabilities such as hardware and/or service functionalities of the client device, i.e., H/W attribute set and/or service attribute set, and maintains a data store of each client device capability, e.g., in a database.
Client Devices Details
Client device 400 comprises a processing device 402, an (optional) input/output (I/O) device 404, a memory 406, an optional wide area network (WAN) communication interface (I/F) 408, a near area network (NAN) communication I/F 410, and an optional device-specific I/F 412 each communicatively coupled with a bus 412. Processing device 402 comprises a processor, application specific integrated circuit (ASIC), or other instruction executing/interpreting hardware-based system. In at least some embodiments, processing device 402 may comprise a virtual or software-based instruction executing system.
Optional I/O device 404 is coupled to bus 414 and may comprise an input device, an output device and/or a combined input/output device for enabling user interaction. An input device may comprise, for example, a keyboard, keypad, mouse, trackball, trackpad, and/or cursor direction keys for communicating information and commands to processing device 402. An output device may comprise, for example, a display, a printer, a voice synthesizer, a light, etc. for communicating information to a user. In at least some embodiments, I/O device 404 may comprise a serial and/or parallel connection mechanism for enabling the transfer of one or more of files and/or commands.
Memory 406 (also referred to as a computer-readable medium or computer-readable memory) is coupled to bus 414 for storing data and/or information and instructions to be executed by processing device 402. Memory 406 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processing device 402. Memory 406 may also comprise a read only memory (ROM) or other static storage device coupled to bus 414 for storing static information and instructions for processing device 402. Memory may comprise static and/or dynamic devices for storage, e.g., optical, magnetic, and/or electronic media and/or a combination thereof.
In at least some embodiments, memory 406 comprises a set of instructions for execution by processing device 402 which, when executed by the processing device, cause client device 400 to perform one or more specific functionalities embodied in device-specific functionality 416. For example, a particular client device such as a tablet-based device 110 may comprise a handwriting recognition functionality. In at least some embodiments, device-specific functionality 416 comprises one or more services executed by client device 400 and made available for use to device manager 106.
In at least some embodiments, client device 400 comprises a separate storage device as described above.
Optional WAN communication I/F 408 is coupled to bus 414 and communicates data and/or voice packets with wireless network 102 (
NAN communication I/F 410 is coupled to bus 414 and communicates data and/or voice packets with one or more of the client devices within predetermined range 118 (
Client device 400 also comprises, in at least some embodiments, an optional device-specific I/F 412. In at least some embodiments, device-specific I/F 412 may be a device-specific module directly connected with bus 414. For example, monitor device 108 such as a heart-rate monitor type device comprises a device-specific I/F (or module) 412 for monitoring the heart rate of a user wearing the device, e.g., via a contact-based pulse detecting system.
Two Part Aspect Based on Device Manager
In at least one embodiment, device manager 106 stores user and/or device-based subscription information for enabling the communication of data and/or voice packets with wireless network 102. In at least some embodiments, device manager 106 is the sole storage location for such user and/or device-based subscription information. In such a device manager-based subscription information storage embodiment, client devices are able to access services provided by wireless network 102 solely via device manager 106.
In at least some embodiments, device manager 106 is a separate device from the client devices and, in particular, wireless devices such as wireless device 112 and touch-screen based wireless device 114, and provides the sole manner of enabling communication between the client devices and wireless network 102.
In at least some embodiments, the functionality described herein with respect to device manager 200 may be incorporated into a single device such as wireless device 104, 112, 114.
Device Manager Low Level
Device manager 200 comprises a processing device 202, an input/output (I/O) device 204, a memory 206, a wide area network (WAN) communication interface (I/F) 208, and a near area network (NAN) communication I/F 210 each communicatively coupled with a bus 212. Processing device 202 comprises a processor, application specific integrated circuit (ASIC), or other instruction executing/interpreting hardware-based system. In at least some embodiments, processing device 202 may comprise a virtual or software-based instruction executing system.
I/O device 204 is coupled to bus 212 and may comprise an input device, an output device and/or a combined input/output device for enabling user interaction. An input device may comprise, for example, a keyboard, keypad, mouse, trackball, trackpad, and/or cursor direction keys for communicating information and commands to processing device 202. An output device may comprise, for example, a display, a printer, a voice synthesizer, a light, etc. for communicating information to a user. In at least some embodiments, I/O device 204 may comprise a serial and/or a parallel connection mechanism for enabling the transfer of one or more of files and/or commands.
Returning to
In at least some embodiments, device manager 200 comprises a separate static storage device as described above.
WAN communication I/F 208 is coupled to bus 212 and communicates data and/or voice packets with wireless network 102 (
NAN communication I/F 210 is coupled to bus 212 and communicates data and/or voice packets with one or more of the client devices within predetermined range 118 (
Memory Detail
Memory 206 comprises one or more sets of instructions which, when executed by processing device 202, cause the processing device to perform one or more steps of functionality. Memory 206 comprises a set of executable instructions comprising a personal device management system 214 and a set of parameters 216, e.g., user-defined and/or predefined parameters for access and modification by PDMS 214.
Personal Device Management System Details
Services management functionality 502 comprises at least a service management module 506 and a subscription management module 508. Services management functionality 502 comprises functionality which, when executed by processing device 202, causes the processing device to perform one or more operations at a device manager level and/or in communication with wireless network 102.
Device management functionality 504 comprises at least a discovery module 510, an operation module 512, a management module 514, and a administration module 516. Device management functionality 504 comprises functionality which, when executed by processing device 202, causes the processing device to perform one or more operations in communication with one or more client devices. In at least some embodiments, device management functionality 504 may comprise performing operations in communication with one or more client devices and wireless network 102.
Services Management Functionality of Device Manager
Service management module 506 comprises a set of instructions for defining and interacting with one or more client devices regarding the set of services that device manager 200 may perform with respect to a wireless network 102 and/or a client device.
Subscription management module 508 comprises a set of instructions for managing the user and/or device-based subscription with respect to wireless network 102. In at least one embodiment, device manager 200 may store more than one subscription with respect to one or more wireless networks 102 and execution of subscription management module 508 causes the device manager to determine which subscription(s) are active at a particular time. In at least some embodiments, the determination of which subscription(s) are active is determined based on at least one or more parameters stored in parameters 216 (
Device Management Functionality of Device Manager
Discovery module 510 comprises a set of instructions for discovering a client device after the client device is moved within predetermined range 118 with respect to device manager 200.
Operation module 512 comprises a set of instructions for registering a client device with device manager 200. Operation module 512 receives a set of client device-dependent attributes and capabilities for storage in memory 206. Operation module 512 also enables a client device to register a new set of services, at least in some embodiments, in conjunction with a set of capabilities of device manager 200. For example, operation module comprises a set of instructions for receiving and storing hardware and/or software capability information received from one or more client devices.
Management module 514 comprises a set of instructions for managing the communication of data and/or voice packets to/from one or more client devices based on one or more parameters 216 stored in memory 206. In at least some embodiments, the one or more parameters 216 comprise user-defined and/or predefined parameters. In at least some embodiments, management module 514 enables device manager 200 to control a client device, and in at least some embodiments, the device manager controls operation of a client device to the exclusion of user interaction with the client device.
In at least some embodiments, management module 514 arbitrates services for provision among more than one client device. For example, depending on the capability of particular client devices connected with device manager 200, the device manager via execution of management module 514 determines which services are provided to which client devices. In at least some embodiments, management module 514 arbitrates among more than one client device depending on which client devices are active and positioned within predetermined range 118.
Administration module 516 comprises a set of instructions for terminating use of a particular client device. In at least some embodiments, a client device may store/be used to store data and/or information as a result of user use of the client device or as a result of device manager communication with the client device, e.g., downloading of contact information. In order to prevent unauthorized access to the stored information, administration module 516 enables device manager 200 to access the client device and remove stored information based on at least one of user indication of non-use of the device or a predetermined expiration time stored in parameters 216 of memory 206.
Flowcharts/Message Sequence Charts
The flow begins at functionality 602 wherein a new service interrupt is received by device manager 106. Device manager 106 receives the service interrupt from wireless network 102, e.g., the wireless network transmits information to the device manager according to a particular service to which a user of the device manager may be subscribed. The flow proceeds to functionality 604.
Responsive to receipt of the new service interrupt by device manager 106, the device manager retrieves the service definition corresponding to the perceived service interrupt. In at least some embodiments, device manager 106 retrieves the service definition from a service definition database stored in memory 206. The retrieved service definition specifies a set of attributes, i.e. hardware attributes set and/or service attribute set, of a client device needed to be able to handle the received service. In at least some embodiments, the received service interrupt comprises the service definition within the interrupt.
If a corresponding service definition does not exist, the service routing method 600 ends and/or returns to an idle state awaiting a new service interrupt. If the corresponding service definition exists, the flow proceeds to functionality 606.
During execution of functionality 606, device manager 106 determines whether there is a current client device able to satisfy the identified service definition corresponding to the received service interrupt. That is, device manager 106 determines whether a client device within predetermined region 118 comprises a hardware attribute set and/or a service attribute set meeting the specified needs of the service definition. If the result of functionality 606 is positive (“YES”), the flow proceeds to functionality 608 wherein device manager 106 assigns elements from at least one device to satisfy the service definition. In at least some embodiments, device manager 106 assigns one or more of hardware and/or service attributes of a particular client device to receive at least a portion of the service corresponding to the received service interrupt. And at least some embodiments, device manager 106 assigns elements based on predefined user preferences regarding client devices and/or services. In at least some embodiments, the predefined user preferences are stored in memory 206.
The flow then proceeds to functionality 610 and the service routing methods 600 ends and/or returns to an idle state awaiting a new service interrupt.
If the result of functionality 606 is negative (“NO”), the flow proceeds to functionality 610 and the service routing method 600 ends and/or returns to an idle state awaiting a new service interrupt.
The flow begins at functionality 702 wherein a particular service is being handled by device manager 106 in conjunction with at least one client device (referred to in this example as the first client device). For example, device manager 106 in conjunction with wireless device 112 is handling a particular service, e.g., a voice call from wireless network 102. That is, device manager 106 is communicating voice packets between wireless device 112 and wireless network 102 in order to enable user using the wireless device to talk with another user via the wireless network. In at least some embodiments, device manager 106 may be handling the service in conjunction with more than one client device. Further, in at least some other embodiments, device manager 106 may allocate portions of the service between more than one client device.
The flow proceeds to functionality 704 responsive to the first client device de-registering from use by device manager 106. For example, the first client device may be powered off, assigned to another service, and/or removed from communication with device manager 106. During execution of functionality 704, device manager 106 removes the first client device from assignment with the particular service. The flow then proceeds to functionality 706.
During execution of functionality 706, device manager 106 determines whether the required elements from the de-registered device are supported by other active devices, i.e., whether another client device comprises the necessary hardware and/or service attribute set to handle the service. In at least some embodiments, device manager 106 determines whether another client device element, e.g., one or more hardware and/or service attributes of a client device, are able to take over for the de-registered client device by accessing a database, e.g., stored in memory 206 (
If the result of functionality 706 is positive (“YES”), the flow proceeds to functionality 708 wherein device manager 106 transitions support of at least a portion of the service previously handled by the first client device. In at least some embodiments, device manager 106 transitions a service from one client device to one other client device. In at least some embodiments, device manager 106 transitions a service from one client device to more than one other client device, e.g., based on one or more predefined user preferences with respect to the service and the one or more client devices determined in functionality 706. The flow then proceeds to end and the determined client device or client devices handle the service.
If the result of functionality 706 is negative (“NO”), the flow proceeds to functionality 710 and device manager 106 stores data from the service intended to be handled by the first client device in memory 206. The flow then proceeds to functionality 712 wherein device manager 106 searches, e.g., via NAN communication I/F 210, within predetermined region 118 for another client device able to handle the service. In at least some embodiments, functionality 712 differs from functionality 706 in that the determination of functionality 706 is performed with respect to client devices which are active and currently in communication with device manager 106 whereas functionality 712 is performed with respect to client devices which are active and not currently in communication with the device manager. If the result of functionality 712 is successful, the flow proceeds to end and the discovered client device or client devices handle the service. If the result of functionality 712 is not successful, the flow proceeds to end and device manager 106 continues to store received data related to the service in memory 206. In at least some embodiments, device manager 106 continues to store received data related to the service until another client device is found.
The particular service, i.e. the voice call, received from network 2502 comprises two service components, i.e., service component A, e.g., caller identifier (ID) information, and service component B, e.g. a voice path. In accordance with the given scenario, device manager 2500, e.g., based on user preferences and/or client device capabilities, directs service component B of the particular service from network 2502 to client device A 2504, and service component A to client device B 2506. Thus, the wireless headset handles the voice path component and the caller ID information is handled by the handset.
In accordance with at least some embodiments, a service and/or a service component, e.g., service component B (voice path), is assigned to be owned by one or more of device manager and/or client devices, e.g., device manager 2500, client device A 2504, client device B 2506. Device manager 2500 determines which device owns the service or service component based on at least one of user preferences and/or service or service component information. The service owning device is responsible for providing and/or managing memory for storage and a primary user interface for the service. In the example of
In at least this particular embodiment, device manager 2500 is able to continue the particular service, i.e., a voice call, through a transition from a phone handset to another handset which comprises components usable to support a particular service.
In at least some embodiments, device manager 2500 may cause execution of all or a portion of a service at a later time based on the availability of one or more client devices having particular device component capabilities. For example with respect to
During device tagging method 800, a user of device manager 106 interacts with the device manager, either directly or via a client device, to input preferences related to client devices, data of the user, and services.
The flow begins at functionality 802 wherein a new service is registered with device manager 106 as a result of the addition of a new service to an existing client device, the device manager, and/or wireless network 102 or a user originated change of preferences. The flow then proceeds to functionality 804.
During execution of functionality 804, processing device 202 receives commands and/or information from a user of device manager 106 specifying user preference with respect to the device owner, e.g., is the client device owned by device manager 106. The received user preference is stored in memory 206.
The flow then proceeds to functionality 806 wherein processing device 202 receives commands and/or information from the user of device manager 106 specifying user preferences with respect to the ownership of one or more pieces of particular service, e.g., components of a service such as caller identifier (ID) information, voice path, etc. For example, service ownership may be specified to be device manager 106. In at least some embodiments, service ownership specifies one or more client devices.
The flow then proceeds to functionality 808 wherein processing device 202 receives commands and/or information from the user of device manager 106 specifying a particular priority by which the user desires the device manager to assign a particular service among one or more client devices for a particular service. The flow then proceeds to end.
The flow begins at functionality 902 wherein a new service interrupt is received by device manager 106. Device manager 106 receives the service interrupt from wireless network 102, e.g., the wireless network transmits information to the device manager according to a particular service to which a user of the device manager may be subscribed. The flow proceeds to functionality 904.
Responsive to receipt of the new service interrupt by device manager 106, the device manager retrieves the service definition corresponding to the perceived service interrupt. In at least some embodiments, device manager 106 retrieves the service definition from a service definition database stored in memory 206. The retrieved service definition specifies a set of attributes, i.e. hardware attributes set and/or service attribute set, of a client device needed to be able to handle the received service. In at least some embodiments, the received service interrupt comprises the service definition within the interrupt.
If a corresponding service definition does not exist, the service routing method 900 ends and/or returns to an idle state awaiting a new service interrupt. If the corresponding service definition exists, the flow proceeds to functionality 906.
During execution of functionality 906, device manager 106 determines whether there is a current client device able to satisfy the identified service definition corresponding to the received service interrupt. That is, device manager 106 determines whether a client device within predetermined region 118 comprises a hardware attribute set and/or a service attribute set meeting the specified needs of the service definition. If the result of functionality 906 is positive (“YES”), the flow proceeds to functionality 908 wherein device manager 106 assigns elements from at least one device to satisfy the service definition. In at least some embodiments, device manager 106 assigns one or more of hardware and/or service attributes of a particular client device to receive at least a portion of the service corresponding to the received service interrupt. In at least some embodiments, device manager 106 assigns elements based on predefined user preferences regarding client devices and/or services. In at least some embodiments, the predefined user preferences are stored in memory 206.
The flow then proceeds to end and/or returns to an idle state awaiting a new service interrupt.
If the result of functionality 906 is negative (“NO”), the flow proceeds to functionality 910 and the service routing method 900 determine whether a thin client device, e.g. a client device having a capability to handle at least a portion of the service from device manager 106, exists within predetermined region 118. In at least some embodiments, device manager 106 determines whether a thin client is available based on the content of hardware attribute set and/or service attribute set of the client devices.
If the result of functionality 910 is positive (“YES”), the flow proceeds to functionality 912 and device manager in conjunction with the identified thin client provides at least a portion of service to the user. For example, in a given scenario where a client device having both audio and video capabilities fails or becomes otherwise unavailable to support audio and video service for device manager 106, the device manager may determine to utilize a client device having only audio capabilities or only video capabilities in order to provide partial service to the user. In accordance with such a scenario, the user would be able to continue to either hear audio or see video, e.g., continuing communication and a video chat service to a lesser degree.
If the result of functionality 910 is negative (“NO”), the flow proceeds to functionality 914 and device manager 106 terminates provision of the service to the user. The flow then proceeds to end and/or returns to an idle state awaiting a new service interrupt.
In accordance with the first portion of dynamic network subscription management method 1000, the flow begins at functionality 1002 wherein initial user preferences are received and stored, e.g., in memory 206, by device manager 106 as a result of a new client device moving within predetermined region 118. A user of device manager 106 provides the user preferences via either an I/O of the device manager or a client device providing an I/O. The flow then proceeds to functionality 1004.
During execution of functionality 1004, device manager 106 stores the initial network user preference for each specific client device added to the device manager. In at least some embodiments, the user preference for a specific client device comprises a device priority. In at least some other embodiments, a user preference for a specific service on a client device comprises a service allocation priority. Device manager 106 uses the stored preferences in determining network subscriptions based on active devices in functionality 1006. The flow then proceeds to functionality 1006.
During execution of functionality 1006, device manager 106 creates a network preference for the client device based on the received user preference and current active client devices. In at least some embodiments, the network preference and network subscription is dynamically managed by device manager 106 based on the active client devices and stored user preferences.
The flow then proceeds to end and/or returns to an idle state.
In accordance with the second portion of dynamic network subscription management method 1000, the flow begins at functionality 1008 wherein the active client devices within predetermined region 118 is determined. In at least some embodiments, the active devices comprise client devices in communication with device manager 106 via NAN communication I/F 210 (
During execution of functionality 1010, device manager 106 updates the networks needed to support one or more client devices based on stored preferences, e.g., in memory 206. The networks comprise the communication between device manager 106 and wireless network 102. The flow then proceeds to functionality 1012.
During functionality 1012, device manager 106 performs an update after detecting a change of active devices within predetermined region 118. In at least some embodiments, execution of functionality 1012 comprises repeated execution of functionality 1010.
In accordance with the first portion of dynamic SIM parameters generation method 1100, the flow begins at functionality 1102 wherein initial user preferences are received and stored, e.g., in memory 206, by device manager 106 as a result of a new client device moving within predetermined region 118. A user of device manager 106 provides the user preferences via either an I/O of the device manager or a client device providing an I/O. The flow then proceeds to functionality 1104.
During execution of functionality 1104, device manager 106 stores the initial user preference for each client device added to the device manager. In at least some embodiments, the initial user preference comprises an initial set of user preferences with respect to configuring device manager 106, e.g., enabling or disabling roaming capabilities, selecting preferred networks, establishing network settings, for example, related to wide area local area networks, etc. The flow then proceeds to functionality 1106.
During execution of functionality 1106, device manager 106 creates one or more wireless protocol parameters for the client device based on the received user preference. In accordance with at least some embodiments, one or more wireless protocol parameters may be changed by device manager 106 based on the current active client device(s). Responsive to a change in active client devices, device manager 106 modifies the wireless protocol parameters for a particular wireless network access.
The flow then proceeds to end and/or returns to an idle state.
In accordance with the second portion of dynamic SIM parameters generation method 1100, the flow begins at functionality 1108 wherein the active client devices within predetermined region 118 are determined. In at least some embodiments, the active devices comprise client devices in communication with device manager 106 via NAN communication I/F 210 (
During execution of functionality 1110, device manager 106 updates the wireless protocol parameters, e.g., stored in memory 206, based on stored parameters, e.g., from first portion of dynamic SIM parameters generation method 1100, for active client devices. The flow then proceeds to functionality 1112.
During functionality 1112, device manager 106 performs an update after detecting a change of active devices within predetermined region 118. In at least some embodiments, execution of functionality 1112 comprises repeated execution of functionality 1110.
The flow begins at functionality 1202 wherein one or more client devices are discovered by device manager 106, e.g., using NAN communication I/F 210. The flow then proceeds to functionality 1204.
During execution of functionality 1204, one or more authentication and/or security methods may be used with respect to a discovered client device. Authentication and/or security is used to prevent and/or minimize the likelihood of device manager 106 inadvertently and/or unexpectedly establishing communication with a client device other than one with which a connection is desired. The flow then proceeds to functionality 1206.
During functionality 1206, device manager 106 performs registration of the client device with the device manager. In at least some embodiments, execution of registration functionality 1206 may comprise exchanging identifying information concerning either or both of the client device and/or device manager 106. The flow then proceeds to functionality 1208. In at least some embodiments, functionality 1206 is executed on each occurrence of client device discovery. In accordance with such embodiment, if there are no updates or initial registration to be performed with respect to the client device discovered, device manager 106 adds the client device to a list of current active devices and the client device returns to an idle state.
During execution of functionality 1208, device manager 106 determines whether the registration of the client device is an initial registration or an update of an existing registration. In at least some embodiments, device manager 106 refers to one or more stored pieces of information, e.g., in memory 206, in order to determine whether the registration is an initial registration or an update of an existing registration.
If the result of functionality 1208 is an update of an existing registration, the flow proceeds to functionality 1210 and the flow proceeds to end and/or enter an idle state.
If the result of functionality 1208 is an initial registration, the flow proceeds to functionality 1212 and device registration is performed. In at least some embodiments, functionality 1208 is executed for only a first registration of a client device with device manager 106. In at least some embodiments, the registration which occurs is similar to or the same as depicted and described in conjunction with
In at least some embodiments, functionality 1212 comprises locking a particular client device to device manager 106 to the exclusion of communication with other device managers which the client device may be within the predetermined region 118. In at least some embodiments, the client device may be prevented from communicating with other device managers in range of the client device. In this manner, control and security of the client device remains with the device manager to which the client device is registered.
Service registration functionality 1214, described in more detail with respect to
The flow then proceeds to functionality 1304 wherein the service provided and/or supported by the particular client device is registered. The flow then proceeds to functionality 1306.
During execution of functionality 1306, device manager 106 determines if the client service identified to be registered in functionality 1304 is a service known to the device manager, e.g., whether the device manager already stores information corresponding to the identified service in memory 206.
If the result of functionality 1306 is positive (“YES”), the flow proceeds to functionality 1308 and device manager 106 checks for another service from the client device to be registered. If there are no more services to be registered, the flow proceeds to end and/or enter an idle state.
If the result of functionality 1306 is negative (“NO”), the flow proceeds to functionality 1310 and the device manager registers the identified service, e.g., prepares an entry in memory 206 corresponding to the identified client service. The flow then proceeds to functionality 1312.
During execution of functionality 1312, device manager 106 receives parameters corresponding to the client service being registered. In at least some embodiments, the service parameters received by device manager 106 correspond to the content of the service attribute set of the client device.
In accordance with at least one embodiment, functionality 1312 comprises an optional validation functionality 1314 during which the service parameters received by the device manager are validated, for example through the use of wireless network 102 to access a validation service such as a computer system connected to wireless network 102 or another network reachable by wireless network 102. In at least some embodiments, validation of a service parameter comprises a determination of whether the service parameters are approved by the validation service. In at least some embodiments, functionality 1314 may be used to validate a particular client device.
The flow then proceeds to functionality 1308.
Next, device manager 106 transmits a message 1404 requesting device attributes of the client device, e.g., H/W attribute set 2406 (
Next, device manager 106 transmits a message 1408 requesting device services of client device, e.g. service attribute set 2408 (
Next, device manager 106 transmits a message 1504 providing device manager attributes. In response, the client device transmits a message 1506 providing an acknowledgment of the message 1504 receipt.
Next, device manager 106 transmits a message 1508 providing device manager service capabilities, e.g., service attributes, to the client device. In response, the client device transmits a message 1510 are binding acknowledgment of receipt of message 1508.
During execution of functionality 1604, registration of the discovered client device is performed between the client device and device manager 106. The flow then proceeds to functionality 1606.
During execution of functionality 1606, device manager 106 determines whether the registered client device is active. If the result of functionality 1606 is positive (“YES”), the flow then proceeds to functionality 1608 and device manager 106 determines whether there is a next device. If there is no next device, the flow proceeds to end and/or enter an idle state.
If the result of functionality 1606 is negative (“NO”), the flow then proceeds to functionality 1610 and device manager 106 sets a device wakeup schedule for the client device. The flow then proceeds to functionality 1608. In at least some embodiments, device manager 106 prompts a user to establish a device wakeup schedule for the particular client device. In at least some embodiments, device manager 106 establishes the wakeup schedule for the particular client device based on previously established user preferences.
The flow then proceeds to functionality 1806 wherein device manager 106 updates the active devices resulting from functionality 1804. The flow then proceeds to functionality 1808 were in device manager 106 stores information corresponding to the client device, e.g., in a device element database of memory 206. The flow then returns to idle state 1702.
During execution of functionality 1904, device manager 106 presents a user interface for a user to establish participation of the particular client device with respect to other client devices. The flow then proceeds to functionality 1906.
During execution of functionality 1906, device manager 106 creates and manages a database of end-user priorities with respect to one or more client devices. In at least some embodiments, device manager 106 updates a database of end-user priorities during execution of functionality 1906 if such a database party exists. The flow then proceeds to end and/or enter an idle state.
During execution of functionality 2004, device manager 106 presents a user interface for end user prioritization of each service of the particular device registered in functionality 2002. In at least some embodiments, device manager 106 via I/O 204 causes the display of a user interface to obtain the end-user prioritization. The flow then proceeds to functionality 2006.
During execution of functionality 2006, device manager 106 creates and manages a database of end-user priorities with respect to one or more client devices. In at least some embodiments, device manager 106 updates a database of end-user priorities during execution of functionality 2006 if such a database party exists. The flow then proceeds to end and/or enter an idle state.
Device manager 200 may utilize application programming interfaces (APIs), sometimes referred to as runtime environments and software platforms, that are installed onto their local processing platform and which are used, for example, to simplify operations of such devices, such as by providing generalized calls for device specific resources. Further, some such APIs are also known to provide software developers the ability to create software applications that are fully executable on such devices. In addition, some of such APIs are known to be operationally located between the device manager system software and the software applications such that the device manager computing functionality is made available to the software applications without requiring the software developer to have the specific computing device system source code. Further, some APIs are known to provide mechanisms for secure communications between such devices (i.e., clients) and remote devices (i.e., servers) using secure cryptographic information.
Examples of such APIs, include versions of the Binary Runtime Environment for Wireless (BREW) developed by Qualcomm, Inc., of San Diego, Calif., JAVA developed by Sun Microsystems of Santa Clara, Calif., LINUX, SYMBIAN available from Symbian Software Ltd of Southward, London, and WINMOB.
The application download server 1202 is shown here on a network 1204 with other computer elements in communication with the wireless network 102. There can be a stand-alone server 1206, and each server can provide separate services and processes to the client devices 106, 1202, across the wireless network 102. System 1200 may also include at least one stored application database 1208 that holds the software applications, e.g., a PDMS 214, that are downloadable by the device manager. However, those skilled in the art will appreciate that the configuration illustrated in
In
Still referring to the embodiment of
In the embodiment of
The various illustrative logics, 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, e.g., 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.
Further, the steps and/or actions of a method or algorithm described in connection with the aspects 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, a hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. An exemplary storage medium may be 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. Further, in some aspects, the processor and the storage medium may reside in an ASIC. Additionally, 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. Additionally, in some aspects, the steps and/or actions of a method or algorithm may reside as one or any combination or set of instructions on a machine readable medium and/or computer readable medium.
While the foregoing disclosure shows illustrative aspects and/or embodiments, it should be noted that various changes and modifications could be made herein without departing from the scope of the described aspects and/or embodiments as defined by the appended claims. Furthermore, although elements of the described embodiments may be described or claimed in the singular, the plural is contemplated unless limitation to the singular is explicitly stated. Additionally, all or a portion of any aspect and/or embodiment may be utilized with all or a portion of any other aspect and/or embodiment, unless stated otherwise.
It will be readily seen by one of ordinary skill in the art that the disclosed embodiments fulfill one or more of the advantages set forth above. After reading the foregoing specification, one of ordinary skill will be able to affect various changes, substitutions of equivalents and various other embodiments as broadly disclosed herein. It is therefore intended that the protection granted hereon be limited only by the definition contained in the appended claims and equivalents thereof.
Kumar, Prem Jothipragasam, O'Neil, Thomas, Hughes, Robbin
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
6732176, | Nov 03 1999 | Cisco Technology, Inc | Distributed network communication system which enables multiple network providers to use a common distributed network infrastructure |
7644044, | Apr 04 2007 | Sony Corporation; Sony Electronics Inc. | Systems and methods to distribute content over a network |
7987360, | Apr 28 2004 | LENOVO BEIJING LIMITED | Method for implementing grouping devices and interacting among grouped devices |
8131875, | Nov 26 2007 | Adobe Inc | Device profile assignment based on device capabilities |
8271649, | Aug 30 2007 | Nokia Technologies Oy | Access rights used for resource discovery in peer-to-peer networks |
20020091667, | |||
20060176281, | |||
20080062958, | |||
20080072292, | |||
20080249946, | |||
20080271109, | |||
20090027222, | |||
20090063691, | |||
20090064346, | |||
20090132813, | |||
20090300357, | |||
20090313680, | |||
20100202345, | |||
20100205309, | |||
20100242089, | |||
20100299758, | |||
20110161697, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Apr 03 2015 | KUMAR, PREM JOTHIPRAGASAM | CLUSTER WIRELESS LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 035503 | /0577 | |
Apr 03 2015 | HUGHES, ROBBIN DAVID | CLUSTER WIRELESS LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 035503 | /0577 | |
Apr 10 2015 | O NEILL, THOMAS | CLUSTER WIRELESS LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 035503 | /0577 |
Date | Maintenance Fee Events |
Oct 23 2017 | REM: Maintenance Fee Reminder Mailed. |
Apr 09 2018 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Mar 11 2017 | 4 years fee payment window open |
Sep 11 2017 | 6 months grace period start (w surcharge) |
Mar 11 2018 | patent expiry (for year 4) |
Mar 11 2020 | 2 years to revive unintentionally abandoned end. (for year 4) |
Mar 11 2021 | 8 years fee payment window open |
Sep 11 2021 | 6 months grace period start (w surcharge) |
Mar 11 2022 | patent expiry (for year 8) |
Mar 11 2024 | 2 years to revive unintentionally abandoned end. (for year 8) |
Mar 11 2025 | 12 years fee payment window open |
Sep 11 2025 | 6 months grace period start (w surcharge) |
Mar 11 2026 | patent expiry (for year 12) |
Mar 11 2028 | 2 years to revive unintentionally abandoned end. (for year 12) |