The number of smart personal devices (SPDs) per person is continuously increasing, such as laptops, smart phones, tablets, devices supporting BLUETOOTH brand communications, and media devices including digital cameras. New devices are now entering the market from eyewear displays, cameras, smart watches, biometric devices, and more. Many devices are inconsistent in capabilities, and virtually no common services are available to all devices. For example, some of these devices have no networking, some support BLUETOOTH brand communications and/or wireless fidelity (Wi-Fi), and some have full wide area network (WAN) cell phone stacks. Thus, some devices may talk to one of many networks, some devices provide only data (e.g., no voice, location, persistent storage, etc.), some devices cannot talk to any other devices (e.g., like many of today's cameras), etc.
Some of the services require maintaining state information, such as contacts, a music library, or a repository of messages sent and received. To maintain a consistent state across devices accessing common services, some of the existing systems maintain the state in a cloud service or on the devices themselves. Maintaining the state in the cloud service requires wide area connectivity and requires the devices to have rich communication capabilities (e.g., cellular radio stacks), both of which have expensive product and communication costs. When maintaining the state in the devices themselves, a lack of coherency between devices results in inconsistent state. For example, if one device changes the state, another device will not see the change.
The devices also have access to information with high personal impact such as account passwords, financial transaction data, identity management data for access to corporate data systems, and private personal information. While some existing devices have secure elements that house authentication information (e.g., a trusted platform module in each device), other devices use less secure per-device passwords to control access to information on that specific device.
Embodiments of the disclosure cache and share data among smart personal devices (SPDs) having heterogeneous communication modalities. One of a plurality of the SPDs requests data from a cloud service. The plurality of SPDs are connected to a smart personal gateway device (SPGD) by a personal area network (PAN). The SPGD obtains the requested data over a first communication modality and stores the obtained data in an SPGD cache associated with the SPGD. The SPD obtains the requested data from the SPGD cache over a second communication modality. The SPD lacks support for the first communication modality.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
Corresponding reference characters indicate corresponding parts throughout the drawings.
Embodiments of the disclosure provide storage services to maintain consistent state among smart personal devices (SPDs) 206 that access common services in a personal area network (PAN) 202. Aspects of the disclosure minimize data communication costs and tolerate outages in wide area connectivity while providing synchronization among the SPDs 206. In some embodiments, the SPDs 206 share a common cache maintained by a smart personal gateway device (SPGD) 204 in the PAN 202. The cache provides low latency, low energy, and low electronic cost access to a shared pool of information that may be used by all SPDs 206 in the PAN 202. In this manner, the SPGD 204 acts as an offline cache, such as for cloud-based deferred access scenarios and/or for caching user settings, preferences, and the like, and makes the cached information available to other SPDs 206 owned by a user 102. The SPGD 204 also acts as a common storage location for asynchronous services such as voicemail, email, and video messaging, and for migrating tasks among the SPDs 206.
Some embodiments further use the SPGD 204 to provide identity and security services to a collection of SPDs 206 in the PAN 202. The SPGD 204 contains heavy weight authentication mechanisms such as finger print readers, other biometric sensors or physical secure elements that would be prohibitive to incorporate in small wearable SPDs 206. In this manner and others, the SPGD 204 may serve as a central security controller for the PAN 202, and provide physical identity and security mechanism that provide more robust security than what may be possible in small SPDs 206. The SPDs 206 are authenticated by the SPGD 204 and enjoy a greater level of trust amongst themselves. The SPDs 206 in the PAN 202 gain credentials from their authenticated association with the gateway that permit them to access resources they would not be able to access without the credentials provided by the gateway. The SPDs 206 may authenticate with more than one SPGD 204, and thereby may have multiple sets of credentials. In some embodiments, while the authentication state of each SPD 206 is maintained, aspects of the disclosure may require re-authentication or new entry if range limits are exceeded (e.g., the SPD 206 moves away from the SPGD 204), if there is a connectivity loss, and/or if other conditions occur.
Referring to the figures, embodiments of the disclosure augment capabilities of the SPDs 206 in the PAN 202 of the user 102. In some embodiments, the capabilities of the SPDs 206 are augmented using computing resources of the SPGD 204. The SPDs 206 may consume one or more services from the PAN 202 and/or provide one or more services to the PAN 202.
As an example, the SPGD 204 searches for SPDs 206 within a range (e.g., three meters) of the SPGD 204, authenticates with any detected SPDs 206, and provides a service list or other catalog to the detected SPDs 206. The catalog includes a list of services provided by the SPGD 204, such as those services described herein. The SPGD 204 is capable of supporting common services for all SPDs 206 in the PAN 202, in some embodiments, such as location, near field communication (NFC) payment, building/car access, write cache (e.g., for offline cloud access), common cache for device synchronization, common network storage, etc. Alternatively or in addition, each detected SPD 206 provides a list of services supported by the SPD 206 to the SPGD 204. In this manner, each of the detected SPDs 206 subscribes to particular services offered by, or through, the SPGD 204 to immediately augment the internal capabilities of the SPD 206.
Exemplary services include, but are not limited to cellular data, wide area network (WAN) data connectivity, cellular voice services, local area network (LAN) connectivity (including both wired and wireless), body area network connectivity, authentication services, short message service (SMS), audio capture, video capture, image capture (e.g., camera), visual display, audio rendering and output, human interface (e.g., touch screen, button), media library and storage, file system, address book, geographic location, inertial motion, and calendar.
In some embodiments, SPD 206 refers to a smart (e.g., contains processing capabilities and generally some form of user interface (UI) and/or user experience) personal (e.g., worn, carried, and/or mobile) device. Examples include mobile phones (e.g., without modems), wrist and/or glasses based devices, and even personal computer laptop devices. However, the SPD 206 may also include non-user-experience oriented devices such as biometric sensors, simple information (like light emitting diode (LED) or segment displays), and/or capture devices such as a necklace camera.
In some embodiments, SPGD 204 refers to a common device used by multiple SPDs 206 to provide multiple disaggregated services to SPDs 206 supporting a common interface (e.g., potentially over multiple wired and/or wireless communication paths). With a small form factor in some embodiments, the SPGD 204 disappears into the lifestyle of the user 102, is easy to carry on-person at all times, is simple to configure, is simple to charge, connects with all SPDs 206 of that user 102, and supports all mobile products, in some embodiments. While the SPGD 204 is described in some embodiments herein as a dedicated device, the functionality of the SPGD 204 may be implemented by one of the SPDs 206 in the PAN 202. Such an SPD 206 may also provide or consume services offered through the functionality of the SPGD 204.
Aspects of the disclosure further contemplate an easily carried (e.g., credit card size) device (e.g., the SPGD 204) to bring additional capabilities and consistent capabilities to users 102 with multiple SPDs 206. For example, the thickness of the SPGD 204 may be about the thickness of four stacked credit cards. In some embodiments, the SPGD 204 is not a mobile telephone (e.g., not a smartphone).
Aspects of the disclosure disambiguate the hardware and/or software associated with communication modalities from the SPDs 206. Rather, such hardware and/or software is provided by the SPGD 204 to those SPDs 206, thus reducing the hardware and/or software complexity and cost of each SPD 206.
As a non-limiting example of the SPGD 204 in operation, the SPD 206 operating in connection with the SPGD 204 may make a telephone call without the SPD 206 actually having the hardware and/or software functionality to make a telephone call. The SPGD 204 provides the cellular modem and communication stack functionality to the SPD 206. For example, a Wi-Fi-only SPD 206 may make a cellular telephone call by connecting through the SPGD 204.
As an example, the SPGD 204 includes a device acting as a central communications hub and service provider for multiple SPDs 206. The SPGD 204 contains multiple communication hardware and/or software to support long-term evolution (LTE), Wi-Fi, BLUETOOTH brand communications, and more. The SPGD 204 has a CPU that not only routes traffic, but also provides services such as voice for all the SPDs 206 that connect to it. The SPGD 204 also provides multiple optional services such as common storage, data caching, location, authentication, and NFC payment, set-up and/or other financial transactions on behalf of the SPDs 206. In general, the SPGD 204 enables SPDs 206 to have a far richer set of capabilities and communication without burdening each SPD 206 with significant overhead in size, power consumption, and/or cost to support such capabilities.
In general, the SPGD 204 operates as a single common endpoint to carrier-based (e.g., WAN) networks, and provides more functionality than existing hotspots by, for example, supporting voice services on carrier grade voice including circuit switched (CS), voice over LTE (VoLTE), and/or voice over Internet Protocol (VoIP) services. Other carrier and over-the-top (OTT) services such as SMS, instant messaging (IM), video conferencing, gaming, and more are also supported in some embodiments. Further, multiple types of metro-area networks from traditional carrier solutions such as LTE to white-space and satellite are also operable with the SPGD 204.
In some embodiments, the SPGD 204 is capable of supporting either a single hub approach for communications between multiple SPDs 206 (e.g., Wi-Fi), or a gateway function between the SPGD 204 and SPDs 206 via alternative wireless links such as BLUETOOTH brand communications, multiple channel Wi-Fi, multi-band Wi-Fi, time-division-multiplexing (TDD) based Wi-Fi, wireless universal serial bus (USB), 802.11ad, etc. Some implementations of the SPGD 204 may also resolve access point and Wi-Fi Direct concurrent access issues by either supporting multiple Wi-Fi radios and/or Wi-Fi multiplexing.
Referring next to
The SPGD 204 creates the PAN 202 based on an interaction between the SPDs 206 and the SPGD 204. In a registry-based example, the SPGD 204 searches for SPDs 206 within a range (e.g., three meters) of the SPGD 204 device, authenticates with any detected SPDs 206, and provides the catalog of services or other service list to the detected SPDs 206. The catalog of services describes services provided by the SPGD 204, such as (but not limited to) voice services, gaming services, authentication services, communication services, etc. The catalog may also include services supported by the detected SPDs 206 and identified to the SPGD 204 by the SPDs 206.
Each of the detected SPDs 206 may subscribe to particular services offered by the SPGD 204 and identified in the catalog. The SPGD 204 maintains subscription information (e.g., a list of services) in memory, such as in a register, subscription list, database, etc. The SPGD 204 acts as a service broker to the SPDs 206 providing services and the SPDs 206 consuming services. In some embodiments, the SPGD 204 acts as an endpoint for those subscribed services to the WAN, and acts as a server to the SPDs 206 subscribed to those services. For example, the SPGD 204 may cache electronic mail messages received from an electronic mail service in the WAN, identify one or more of the SPDs 206 subscribed to the electronic mail service, and notify the SPDs 206 subscribed to the email service that emails are available. In this manner, the SPGD 204 downloads the emails once and provides them to the SPDs 206 upon request, rather than having each SPD 206 in the PAN 202 individually download each of the emails from the WAN.
Referring next to
The SPGD 204 has a plurality of computing resources associated therewith. The computing resources include, but are not limited to, an SPGD processor 210, an SPGD memory area 212, and at least one security module 218. The SPGD processor 210 includes any quantity of processing units, and is programmed to execute computer-executable instructions for implementing aspects of the disclosure. The instructions may be performed by the SPGD processor 210 or by multiple processors executing within the SPGD 204, or performed by a processor external to the SPGD 204. In some embodiments, the SPGD processor 210 is programmed to execute instructions such as those illustrated in the figures (e.g.,
The SPGD memory area 212 includes any quantity of computer readable media associated with or accessible by the SPGD 204. The SPGD memory area 212 may be internal to the SPGD 204 (as shown in
The SPGD memory area 212 stores, among other data, one or more applications 214. The applications 214, when executed by the SPGD processor 210, operate to perform functionality on the SPGD 204. Exemplary applications 214 include mail application programs, web browsers, calendar application programs, address book application programs, messaging programs, media applications, location-based services, search programs, and the like. The applications 214 may communicate with counterpart applications or services such as web services accessible via a network. For example, the applications 214 may represent downloaded endpoint applications that correspond to server-side services executing in a cloud (e.g., cloud 702 in
The SPGD memory area 212 further stores an SPGD cache 216 maintained by the SPGD 204. The SPGD cache 216 is accessible to the SPDs 206. In some embodiments, the SPGD cache 216 represents an allocated portion of the SPGD memory area 212. The SPGD cache 216 stores data received from the cloud service and/or data received from one or more of the SPDs 206. For example, the SPGD cache 216 stores represents media library storage, file system storage, calendar storage, and/or address book storage.
The computing resources further include one or more of the security modules 218. The security modules 218 represent hardware and/or software functionality for accessing secure resources. For example, the security modules 218 may include a trusted platform module (TPM) 220. The TPM 220 stores security data, such as user passwords.
The computing resources of the SPGD 204 may also include one or more communication interfaces and/or network interfaces such as a communications stack, a cellular modem, NFC radio and coil, global positioning system (GPS) receiver and/or transmitter, and the like. The communications interfaces, in some embodiments, include hardware and/or computer-executable instructions (e.g., a driver) for operating the communications interfaces. Communication between the SPGD 204 and other devices may occur via the communications interfaces with any protocol or mechanism over any wired or wireless connection.
In an example in which at least one of the SPDs 206 lacks cellular voice services, the computing resources of the SPGD 204 further include a cellular modem and a communication stack. In this example, at least one of the SPDs 206 makes a telephone call via the SPGD 204.
The computing resources of the SPGD 204 may also include one or more user interface components, such as a graphics card for displaying data to the user 102 and receiving data from the user 102. The user interface components may also include computer-executable instructions (e.g., a driver) for operating the graphics card. Further, the user interface components may include a display (e.g., a touch screen display or natural user interface) and/or computer-executable instructions (e.g., a driver) for operating the display. The user interface component may also include one or more of the following to provide data to the user 102 or receive data from the user 102: speakers, a sound card, a camera, a microphone, a vibration motor, one or more accelerometers, a BLUETOOTH brand communication module, a projector, and a photoreceptive light sensor. For example, the user 102 may input commands or manipulate data by moving the computing device in a particular way.
In some embodiments, one or more of the user interface components may act as an input interface (e.g., a touch service or touch device) for one or more of the SPDs 206 (e.g., the SPDs 206 that are limited-input devices such as glasses-based solutions). In such embodiments, the SPGD 204 has a touch surface on at least one side. Alternatively or in addition, the SPGD 204 may act as a pointer (e.g., with gross navigation via sensors such as a gyroscope and/or accelerometer, or with fine navigation if a traditional mouse sensor is incorporated).
The SPGD 204 may also be used as a game controller in combination with one or more of the SPDs 206. Sensors (e.g., gyroscope, accelerometer, compass, etc.) in the SPGD 204 allow detection of motion that is used for controlling games, scrolling, and more on the SPDs 206. Buttons, touch surfaces, and the like on the SPGD 204 may also implement traditional game console controller capabilities for other SPDs 206.
The example of
For scenarios in which the SPGD 204 is placed in a pocket or wallet of the user 102, sensors on the SPGD 204 (e.g., gyroscope, accelerometer, thermometer, heart rate monitor, etc.) may be used to provide services such as a pedometer, activity monitoring, calorie counting, pulse, etc. to the user 102.
The SPGD 204 may be implemented by any computing device configured as described herein. The computing device represents any device executing instructions (e.g., as application programs, operating system functionality, or both) to implement the operations and functionality described herein. For example, the SPGD 204 is implemented as a standalone device separate and distinct from a mobile telephone. In other examples, one or more aspects of the functionality of the SPGD 204 may be implemented by a mobile computing device or any other portable device. In some embodiments, the mobile computing device includes a mobile telephone, laptop, tablet, computing pad, netbook, gaming device, and/or portable media player. The SPGD 204 may also be implemented by less portable devices such as desktop personal computers, kiosks, tabletop devices, industrial control devices, wireless charging stations, and electric automobile charging stations. Additionally, the SPGD 204 may represent a group of processing units or other computing devices.
While the SPGD 204 contains sufficient compute resources to run services such as data and voice gateways, the SPGD 204 in some embodiments allows some tasks to be computed by the SPDs 206, in the cloud, and/or by the SPGD 204 (e.g., effectively acting as a local cloud or applications engine). Example services include voice recognition, facial recognition, non-GPS-based location, music recognition, and more.
Referring next to
The thin-modem architecture 302 enables the SPGD 204 to be operable with existing and future standards that may be leveraged for various synchronization and caching operations. Examples of present standards include cloud storage synchronization, mail synchronization, deferred application loading on mobile devices, network file storage, device properties, and more.
Referring next to
The SPGD 204 obtains the requested data from the cloud service over a first communication modality, and stores the obtained data in the SPGD cache 216. The requesting SPD 206 retrieves the obtained data from the SPGD cache 216 over a second communication modality. The requesting SPD 206 then processes the data received from the SPGD cache 216. In some embodiments, the requesting SPD 206 receives the data from the SPGD cache 216 when the first communication modality is unavailable. The first communication modality may become unavailable, for example, as the user 102 changes location (e.g., goes out of range of a cellular tower).
Alternatively or in addition, other SPDs 206 (e.g., other than the requesting SPD 206) may retrieve the data from the SPGD cache 216 (e.g., if authorized by the user 102). In some embodiments, the requesting SPD 206 lacks support for the first communication modality. As an example, the first communication modality includes cellular radio communications, and the second communication modality includes Wi-Fi radio communications. However, other modalities are contemplated for each of the first communication modality and the second communication modality.
Referring next to
At 502, the SPGD 204 determines whether the SPGD 204 has received data from the cloud service, or from any of the SPDs 206 in the PAN 202. If so, the SPGD 204 stores the received data in the SPD cache at 504. The SPGD 204 may receive the data over any communication modality. In some examples, the SPGD 204 receives the data from the cloud service over a first communication modality. In some of these examples, at least one of the SPDs 206 lacks support for the first communication modality. At 506, the SPGD 204 determines whether the SPGD 204 has received a request for data in the SPGD cache 216 from one or more of the SPDs 206. For example, operation 506 may occur at some time subsequent to receipt by the SPDG of the requested data, or in response to receipt by the SPGD 204 of the requested data.
If the SPGD 204 has received a request for data in the SPGD cache 216, the SPGD 204 shares the requested data from the SPGD cache 216 with the requesting SPD(s) 206 at 508. For example, sharing the request data with the SPDs 206 may occur over a second communication modality (e.g., different from the first communication modality), or another communication modality. In an example in which multiple SPDs 206 request the data from the SPGD cache 216, the data may be shared with the SPDs 206 over different communication modalities, such as over Wi-Fi to one SPD 206 and over BLUETOOTH brand communication to another SPD 206.
In embodiments where the SPGD 204 receives data (e.g., state data) for caching from a first one of the SPDs 206, the SPGD 204 shares at least a portion of the cached data with a second one of the SPDs 206. For example, the SPGD 204 shares the cached data to maintain a consistent state between the first one of the SPDs 206 and the second one of the SPDs 206.
In some embodiments, the operations illustrated in
In a particular example, the SPGD 204 receives movie data from the cloud service, and subsequently shares the received movie data with one or more of the SPDs 206 on demand. In another example, the SPGD 204 acts as a common storage location to receive data relating to asynchronous services from the cloud service, such as voicemail, electronic mail, and/or video messaging.
In another example, the SPGD 204 receives, from at least one of the SPDs 206, user data including, but not limited to, search history, web site favorites, copy-and-paste data, undo/redo data, electronic mail address completion data, and/or previous map destinations. In yet another example, the SPGD 204 receives, from at least one of the SPDs 206, user interface personalization information including, but not limited to, data indicating whether a user of the first one of the SPDs 206 is right- or left-handed, a screen brightness value for an ambient light sensor (ALS), data describing preferred gestures, speech recognition hints, and/or language selections. In still another example, the SPGD 204 receives, from at least one of the SPDs 206, user settings and/or preference data and make such data available to other SPDs 206 owned by the user 102 and within the PAN 202. Further, any of the data received from the SPDs 206 may be synchronized with the cloud when low-cost networks become available. However, even when WAN or Wi-Fi access is not possible, the SPDs 206 may share any update between SPDs 206 via the SPGD 204 if the SPGD 204 is powered on, in range, and accessible (e.g., authenticated).
In some embodiments, aspects of the disclosure store and/or retrieve data from the WAN over expensive network links less frequently than storing and/or retrieving data from the SPDs 206 over reduced cost network links. For example, data may be synchronized once with the WAN and multiple times with the SPDs 206.
In this manner, the SPGD 204 caches portions of cloud content for offline access by the SPDs 206. This may be controlled, for example, by user set thresholds, direct user selection, playlists, random selection, etc. Examples include caching favorite music, photos, videos, etc. Non-user owned content such as music services may also be cached for offline playback, and the SPGD 204 supports digital rights management (DRM) protection standards in some embodiments.
By storing data from one SPD 206 for sharing with another SPD 206, the SPGD 204 enables task migration among SPDs 206. Aspects of the disclosure enable the user 102 to move from one SPD 206 to another with no loss of state. That is, the user 102 may switch from one SPD 206 to another without having to restart partially completed tasks from the beginning. The user 102 may start on one SPD 206 from where the user 102 left off on another SPD 206. For example, the user 102 may start reading a web page on a first SPD 206 and request to use the content on a second SPD 206 (e.g., a Top-of-Mind content). The first SPD 206 provides, to the SPGD 204, state data including, for example, a pointer (e.g., bookmark) to a location within content stored in the SPGD cache 216. The second SPD 206 obtains the pointer from the SPGD cache 216, and resumes display of the content on the second SPD 206. For example, the second SPD 206, or any other SPD 206 of that user 102 (e.g., in the PAN 202), may then pull down the Top-of-Mind content and allow the user 102 to continue reading the web page from the exact location in the web page as read on the first SPD 206. This allows, among other things, caching of content and pointers to previous SPD view windows (or wireless displays) even when those previous SPDs 206 are not available.
The storage service of the SPGD may further support multi-level caching. In one example, a level 1 (L1) cache exists in one of the SPDs 206, and a level (L2) cache exists in the SPGD 204 for primary storage. The size limits and cache rules may be per level. For example, each SPD 206 may keep one gigabyte (GB) of music in the L1 cache, while the SPGD 204 may keep four GBs in the L2 cache for a larger (e.g., 50 GB) music library in the cloud. When music expires or is listened to, the caches update based on the user's rules.
Referring next to
At 602, the SPGD 204 determines whether it has received a request, for a resource, from one of the SPDs 206 that lacks credentials for accessing the resource. For example, accessing the resource may require a particular encryption, biometric sensor, or other security module 218 not available on the requesting SPD 206 to produce the credentials. As such, the SPD 206 itself is not able to access the resource.
At 604, the SPGD 204 obtains the credentials via at least one of the security modules 218 of the SPGD 204. The credentials may be obtained in response to the resource request from the SPD 206, or may be obtained in advance of such a resource request. Exemplary credentials include, but are not limited to, a digital certificate, a cookie, and/or data in any other data structure. The SPGD 204 may obtain the credentials from the WAN, or from another one of the SPDs 206.
At 606, the SPGD 204 authenticates the requesting SPD 206 (e.g., verify user name and password, evaluate a certificate, etc.). At 608, the SPGD 204 provides the credentials to the requested SPD 206 based on the authentication (e.g., if the SPGD 204 is able to successfully authenticate the SPD 206). The SPD 206 is then able to access the resource via the credentials provided by the SPGD 204.
In some embodiments, the SPGD 204 aggregates credentials from a plurality of SPDs 206 in the PAN 202 for use by the SPDs 206 in the PAN 202. For example, the SPGD 204 may hold all the user's passwords to various web sites and/or other secure on-line applications in one or more of the security modules 218 (e.g., the TPM 220). Anytime the user 102 accesses a secure web site via one of the SPDs 206, a secure connection is set up between the SPGD 204 and the web site. This enables access of password and user name data (e.g., secured) potentially from any or all of the user's various credit card, bank, or other accounts. Anytime the user 102 uses one of the previously authenticated devices (e.g., all the SPDs 206 the user 102 owns, and/or any wirelessly connected PCs or other devices used to access the web), the secure information (e.g., login information) is filled in automatically from data stored in the TPM 220. This saves considerable time and effort on the part of the user 102. By having the SPGD 204 with the user 102 at all times, the SPGD 204 serves as a wireless “key” that unlocks all the accounts for the user 102 automatically. In some embodiments, the SPGD 204 provides access to the accounts without explicit user input or action. In this manner, the SPGD 204 offers security information from the TPM 220 on behalf of the SPDs 206 when the SPDs 206 attempt to connect to the WAN (e.g., the cloud service).
In another example, the security module 218 includes an NFC radio and coil. The SPGD 204 performs financial transactions on behalf of the SPDs 206 using the NFC radio and coil. For example, the SPGD 204 may use the NFC hardware and software on either the SPGD 204 (e.g., button or biometric) and/or remotely on the SPD 206 (e.g., button or biometric) to allow payment. In some embodiments, the SPGD 204 may act as a smart credit card service providing potentially new sequenced keys and/or card numbers per transaction. NFC may also be used for digital cash (e.g., Bitcoins, points, or other virtual currency) with cryptography, authentication organizations, etc. Further, the SPGD 204 may also track all transactions based on use of its NFC, credit card, or cash functions. These tracked transactions may be used for reconciliation, spending data analysis, balances, and other data mining. The SPGD 204 may act as a secondary authentication source by only allowing access to other SPDs 206 that are within a specific range (e.g., distance determined by radio signal strength). Additionally, the SPGD 204 may act as a work access badge, electronic time card, and the like.
In still another example, one of the security modules 218 of the SPGD 204 implements a hardware firewall capable of deep packet inspection (e.g., on data packets incoming to the PAN 202 from the WAN). The hardware firewall functionality in the SPGD 204, in some embodiments, allows the cracking of all packets coming in from the Internet (e.g., because the SPGD 204 has all the user's keys). Some or all of the network traffic (e.g., email) may be inspected for virus signatures in this way. Alternatively or in addition, the SPGD 204 may implement a software firewall.
The SPGD 204 and the SPDs 206 may operate in at least two modes. When Wi-Fi is not available (e.g., see
Referring next to
In contrast, referring next to
In either or both modes (e.g., with Wi-Fi, or without Wi-Fi), communications between SPD 206 and SPGD 204 leverage low-power Wi-Fi concepts (e.g., active power control including reduced power amplifier power for short distance that adapts to changing conditions and optimization of modulation efficiency) to reduce overall battery drain on these devices and to reduce spectrum spatial footprint (e.g., allow large numbers of users 102 of SPD/SPGDs in a single area) compared to existing 802.11 standards.
The SPGD 204 may also provision non-voice services to the SPDs 206. In some examples, the SPGD 204 acts as a central notification server and/or redirection server to avoid waking the SPDs 206 upon receipt of external cloud events (e.g., score update from a subscribed sports service), e-mail events, calendar events, instant message, SMS message, and the like. In these examples, the SPGD 204 queues messages sent from the cloud services to one or more of the SPDs 206 in the PAN 202. When the user 102 enables or other activates one of the SPDs 206 (e.g., wake from idle), the SPGD 204 transfers the cached notification, events, messages, etc. to that SPD 206.
The SPGD 204 may also act as a single sink or other endpoint for cloud traffic, such as when the cloud traffic is transmitted over cost-based networks. For example, the SPGD 204 receives an email from the WAN via a cost-based LTE network, but then transmits the email from the SPGD 204 to each of the SPDs 206 via a free or reduced cost link (e.g., over Wi-Fi) when the SPDs 206 are ready to consume the data. For example, the SPDs 206 may consume multiple packages from multiple services in one transmission or via one request from the SPD 206 to the SPGD 204. The SPGD 204 handles similar subscription services other than email in a similar manner (e.g., music, news, stock, weather, social networking, etc.).
The SPGD 204, when used with an associated cloud service, may also perform compression/decompression on content received from the cloud (e.g., cloud 702) for the SPDs 206 or sent to the cloud from the SPDs 206. While some existing solutions allow reduction of WAN traffic through data compression, the compression and decompression operations of the SPGD 204 and SPDs 206 are managed by the SPGD 204 without applications and/or operating system (OS) code on each SPD 206 being aware of the this service (e.g., the SPGD 204 handles the compression/decompression on behalf of the SPDs 206). As such, while the SPGD 204 is aware of the compression/decompression mechanisms and services, the SPDs 206 are not aware. For example, on downlink, the cloud service compresses the content and sends it to the SPGD 204. The SPGD 204 decompresses the content and sends the decompressed content to the SPDs 206 subscribed to receive the content. On uplink, the SPGD 204 receives uncompressed content from the SPDs 206, compresses the content, and sends the compressed content to the cloud service. The cloud service then decompresses the compressed content received from the SPGD 204. Another example includes web pages in which a request is made for a web page, but the request is sent through a proxy server. The proxy server gets the web page, compresses the web page, and sends the compressed web page back to the SPGD 204. The SPGD 204 then decompresses the content, and sends it on further to the SPD 206.
Some embodiments contemplate at least one of the SPDs 206 being capable of accessing multiple SPGDs 204 at one time. For example, the SPD 206 selects among the SPGDs 204 to obtain data from the WAN. One example includes the user 102 having a personal SPGD and a work or professional SPGD, with some of the SPDs 206 connected to both SPGDs 204. In this example, incoming calls, alerts, messages, and other data are routed through the appropriate SPGD 204 to the SPDs 206 to partition or otherwise attribute the data (e.g., to attribute or track costs) based, for example, on whether the data being routed is associated with a personal account or a work/professional account. Data from the SPDs 206 may be similarly routed from the SPDs 206 through the appropriate SPGD 204.
As an example, the user 102 may carry one SPGD 204 and have access to a built-in vehicle-based SPGD (e.g., while in or near the vehicle). In this example, power for the SPDs 206 (and the carried SPGD 204) may be taken directly from the vehicle power system. Large antennas associated with the vehicle may be used by any of the devices within range of the vehicle. Additional resources such as computing and storage may also be available, and more, with or without authentication of the SPDs 206.
In some embodiments, the user 102 may switch between one SPGD 204 and a different SPGD 204 to access a different carrier-based WAN network. For example, one SPD 206 can switch from one carrier WAN to a different carrier WAN by switching SPGDs 204. Similarly, each SPGD 204 may provide access to different private portals, or provide support for different network protocols or interfaces (e.g., when traveling internationally).
In some scenarios, SPGDs 204 may be daisy-chained together. For example, the user 102 may carry two or more SPGDs 204, and one or more of these SPGDs 204 may communicate with at least one other SPGD 204 carried by the user 102. Any daisy chaining of the SPGDs 204 is within the scope of the present disclosure.
The SPGD 204 may implement restrictions to limit access by the SPDs 206 to the network(s) associated with the SPGD 204. For example, the SPGD 204 may implement temporal restrictions (e.g., days, times, cumulative durations), location-based restrictions (e.g., the SPGD 204 may only be used within particular regions, buildings, or other boundaries), and/or other restrictions. For example, a short-term, temporary, and/or promotional SPGD 204 may be provided to the user 102 by an entity (e.g., business, sponsor, etc.) to access only a particular network (e.g., associated with the business, sponsor, etc.), only at a particular location, and/or only for a particular time/duration.
At least a portion of the functionality of the various elements in the figures may be performed by other elements in the figures, or an entity (e.g., processor, web service, server, application program, computing device, etc.) not shown in the figures.
In some embodiments, the operations illustrated in the figures may be implemented as software instructions encoded on a computer readable medium, in hardware programmed or designed to perform the operations, or both. For example, aspects of the disclosure may be implemented as a system on a chip or other circuitry including a plurality of interconnected, electrically conductive elements.
While no personally identifiable information is tracked by aspects of the disclosure, embodiments have been described with reference to data monitored and/or collected from the users 102. In some embodiments, notice may be provided to the users 102 of the collection of the data (e.g., via a dialog box or preference setting) and users 102 are given the opportunity to give or deny consent for the monitoring and/or collection. The consent may take the form of opt-in consent or opt-out consent.
An exemplary operating environment for the SPGD 204 and SPDs 206 is next described. In some embodiments, the SPGD 204 may be implemented using analog techniques to perform the operations described herein. For example, the operations may be performed by an analog computing device and/or a digital computing device.
In some embodiments, the memory area includes read-only memory and/or memory wired into an analog computing device. Exemplary computer readable media include flash memory drives, digital versatile discs (DVDs), compact discs (CDs), floppy disks, and tape cassettes. By way of example and not limitation, computer readable media comprise computer storage media and communication media. Computer storage media include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media are tangible and mutually exclusive to communication media. In some embodiments, computer storage media are implemented in hardware. Exemplary computer storage media include hard disks, flash drives, and other solid-state memory. In contrast, communication media typically embody computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and include any information delivery media.
Communication between the SPGD 204 and SPDs 206 may occur using any protocol or mechanism over any wired or wireless connection. Further, the SPGD 204 and one or more of the SPDs 206 may be in wearable or accessory form factors (e.g., watches, glasses, headsets, or earphones).
The SPD 206 may include a mobile computing device or any other portable device. In some embodiments, the mobile computing device includes a mobile telephone, laptop, tablet, computing pad, netbook, programmable consumer electronics, gaming device, and/or portable media player. The SPD 206 may also include less portable devices such as desktop personal computers, kiosks, set top boxes, tabletop devices, industrial control devices, wireless charging stations, and electric automobile charging stations, if within the PAN 202 of the user 102. Additionally, the SPD 206 may represent a group of processing units or other computing devices.
At least a portion of the functionality of the various elements described herein may be performed by other elements, or an entity (e.g., processor, web service, server, application program, computing device, etc.) not explicitly identified herein.
In some embodiments, the operations described herein may be implemented as software instructions encoded on a computer readable medium, in hardware programmed or designed to perform the operations, or both. For example, aspects of the disclosure may be implemented as a system on a chip or other circuitry including a plurality of interconnected, electrically conductive elements.
The term “tethered” as used herein refers, in some embodiments, to situations where one device acts as an access point for another device for network access. A tethered connection may occur over a wired connection or a wireless connection. The term “Wi-Fi” as used herein refers, in some embodiments, to a wireless local area network using high frequency radio signals for the transmission of data. The term “BLUETOOTH” as used herein refers, in some embodiments, to a wireless technology standard for exchanging data over short distances using short wavelength radio transmission. The term “cellular” as used herein refers, in some embodiments, to a wireless communication system using short-range radio stations that, when joined together, enable the transmission of data over a wide geographic area and/or metro-area networks such as white-space, satellite, WiMAX (Worldwide Interoperability for Microwave Access), and others. The term “NFC” as used herein refers, in some embodiments, to a short-range high frequency wireless communication technology for the exchange of data over short distances. The term “PAN” as used herein refers, in some embodiments, to any short-range network allowing multiple devices to interact. Exemplary PANs 202 include, but are not limited to, wireless USB, Zigbee, 802.11d (60 GHz), and others.
Although described in connection with an exemplary computing system environment, embodiments of the disclosure are capable of implementation with numerous other general purpose or special purpose computing system environments, configurations, or devices.
Examples of well-known computing systems, environments, and/or configurations that may be suitable for use with aspects of the invention include, but are not limited to, mobile computing devices, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, gaming consoles, microprocessor-based systems, set top boxes, programmable consumer electronics, mobile telephones, mobile computing and/or communication devices in wearable or accessory form factors (e.g., watches, glasses, headsets, or earphones), network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like. Such systems or devices may accept input from the user 102 in any way, including from input devices such as a keyboard or pointing device, via gesture input, proximity input (such as by hovering), and/or via voice input.
Embodiments of the invention may be described in the general context of computer-executable instructions, such as program modules, executed by one or more computers or other devices in software, firmware, hardware, or a combination thereof. The computer-executable instructions may be organized into one or more computer-executable components or modules. Generally, program modules include, but are not limited to, routines, programs, objects, components, and data structures that perform particular tasks or implement particular abstract data types. Aspects of the invention may be implemented with any number and organization of such components or modules. For example, aspects of the invention are not limited to the specific computer-executable instructions or the specific components or modules illustrated in the figures and described herein. Other embodiments of the invention may include different computer-executable instructions or components having more or less functionality than illustrated and described herein.
Aspects of the invention transform a general-purpose computer into a special-purpose computing device when configured to execute the instructions described herein.
The embodiments illustrated and described herein as well as embodiments not specifically described herein but within the scope of aspects of the invention constitute exemplary means for caching and sharing data among SPDs 206 having heterogeneous communication modalities. For example, aspects of the disclosure as described herein constitute exemplary means for receiving data from the cloud service over a first communication modality, exemplary means for storing the received data in the SPGD cache 216 in the memory area, exemplary means for sharing the stored data in the SPGD cache 216 with one or more of the SPDs 206 over a second communication modality, exemplary means for storing in the SPGD cache 216 data received from a first one of the SPDs 206, and exemplary means for providing, from the SPGD cache 216, at least a portion of the stored data received from the first one of the SPDs 206 with a second one of the SPDs 206 to maintain a consistent state between the first one of the SPDs 206 and the second one of the SPDs 206.
Aspects of the disclosure described herein further constitute exemplary means for obtaining a first set of credentials via at least one of the security modules 218, exemplary means for receiving, from at least one of the plurality of SPDs 206, a request for the resource, exemplary means for authenticating the at least one of the plurality of SPDs 206, and exemplary means for providing the first set of credentials to the at least one of the plurality of SPDs 206 based on the authentication.
The order of execution or performance of the operations in embodiments of the invention illustrated and described herein is not essential, unless otherwise specified. That is, the operations may be performed in any order, unless otherwise specified, and embodiments of the invention may include additional or fewer operations than those disclosed herein. For example, it is contemplated that executing or performing a particular operation before, contemporaneously with, or after another operation is within the scope of aspects of the invention.
When introducing elements of aspects of the invention or the embodiments thereof, the articles “a,” “an,” “the,” and “said” are intended to mean that there are one or more of the elements. The terms “comprising,” “including,” and “having” are intended to be inclusive and mean that there may be additional elements other than the listed elements. The term “exemplary” is intended to mean “an example of” The phrase “one or more of the following: A, B, and C” means “at least one of A and/or at least one of B and/or at least one of C.”
Having described aspects of the invention in detail, it will be apparent that modifications and variations are possible without departing from the scope of aspects of the invention as defined in the appended claims. As various changes could be made in the above constructions, products, and methods without departing from the scope of aspects of the invention, it is intended that all matter contained in the above description and shown in the accompanying drawings shall be interpreted as illustrative and not in a limiting sense.
This application claims the benefit of pending U.S. Provisional Application No. 61/834,422, filed Jun. 13, 2013, the entirety of which is hereby incorporated by reference herein. This application is related to a U.S. patent application entitled “Service Provisioning Through a Smart Personal Gateway Device,” which is incorporated by reference herein in its entirety.
Number | Date | Country | |
---|---|---|---|
61834422 | Jun 2013 | US |