US20140372551A1 - Providing storage and security services with a smart personal gateway device - Google Patents

Providing storage and security services with a smart personal gateway device Download PDF

Info

Publication number
US20140372551A1
US20140372551A1 US14/302,322 US201414302322A US2014372551A1 US 20140372551 A1 US20140372551 A1 US 20140372551A1 US 201414302322 A US201414302322 A US 201414302322A US 2014372551 A1 US2014372551 A1 US 2014372551A1
Authority
US
United States
Prior art keywords
spgd
spds
data
cache
spd
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US14/302,322
Inventor
Rod G. Fleck
William J. Westerinen
Rajeev Badyal
Philip L. Barnes
Vijayanand Vishwanathan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Priority to US14/302,322 priority Critical patent/US20140372551A1/en
Publication of US20140372551A1 publication Critical patent/US20140372551A1/en
Assigned to MICROSOFT TECHNOLOGY LICENSING, LLC reassignment MICROSOFT TECHNOLOGY LICENSING, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MICROSOFT CORPORATION
Assigned to MICROSOFT TECHNOLOGY LICENSING, LLC reassignment MICROSOFT TECHNOLOGY LICENSING, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MICROSOFT CORPORATION
Abandoned legal-status Critical Current

Links

Images

Classifications

    • H04L67/2842
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/50Service provisioning or reconfiguring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/04Wireless resource allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/005Discovery of network devices, e.g. terminals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/02Hierarchically pre-organised networks, e.g. paging networks, cellular networks, WLAN [Wireless Local Area Network] or WLL [Wireless Local Loop]
    • H04W84/10Small scale networks; Flat hierarchical networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/16Gateway arrangements

Definitions

  • SPDs smart personal devices
  • 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.
  • 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.
  • Wi-Fi wireless fidelity
  • WAN wide area network
  • Some of the services require maintaining state information, such as contacts, a music library, or a repository of messages sent and received.
  • state information such as contacts, a music library, or a repository of messages sent and received.
  • 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.
  • 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.
  • 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.
  • 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).
  • SPGD smart personal gateway device
  • PAN personal area network
  • 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.
  • FIG. 1 is an exemplary block diagram illustrating smart personal devices (SPDs) in a personal area network (PAN).
  • SPDs smart personal devices
  • PAN personal area network
  • FIG. 2 is an exemplary block diagram illustrating a smart personal gateway device (SPGD) communicating with SPDs in a PAN.
  • SPGD smart personal gateway device
  • FIG. 3 is an exemplary block diagram illustrating a high-level thin-modem architecture for an exemplary SPGD.
  • FIG. 4 is an exemplary sequence diagram illustrating operation of the SPDs to request data from a cloud service via the SPGD.
  • FIG. 5 is an exemplary flow chart illustrating operation of the SPGD to cache data for the SPDs.
  • FIG. 6 is an exemplary flow chart illustrating operation of the SPGD to perform security operations on behalf of the SPDs.
  • FIG. 7 is an exemplary block diagram illustrating the SPGD performing services on behalf of the SPDs when no wireless fidelity (Wi-Fi) access is available.
  • Wi-Fi wireless fidelity
  • FIG. 8 is an exemplary block diagram illustrating the SPGD performing services on behalf of the SPDs when a Wi-Fi network is available.
  • 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 .
  • the SPDs 206 share a common cache maintained by a smart personal gateway device (SPGD) 204 in the PAN 202 .
  • SPGD smart personal gateway device
  • 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 .
  • 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 .
  • 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.
  • 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.
  • embodiments of the disclosure augment capabilities of the SPDs 206 in the PAN 202 of the user 102 .
  • 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 .
  • 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.
  • NFC near field communication
  • write cache e.g., for offline cloud access
  • common cache for device synchronization
  • common network storage etc.
  • each detected SPD 206 provides a list of services supported by the SPD 206 to the SPGD 204 .
  • 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.
  • WAN wide area network
  • LAN local area network
  • SMS short message service
  • audio capture video capture
  • image capture e.g., camera
  • visual display e.g., visual display
  • audio rendering and output e.g., touch screen, button
  • media library and storage e.g., address book, geographic location, inertial motion, and calendar.
  • 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.
  • UI user interface
  • 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.
  • 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.
  • 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 .
  • the thickness of the SPGD 204 may be about the thickness of four stacked credit cards.
  • 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 .
  • 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 .
  • a Wi-Fi-only SPD 206 may make a cellular telephone call by connecting through the SPGD 204 .
  • 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 .
  • 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.
  • 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.
  • carrier grade voice including circuit switched (CS), voice over LTE (VoLTE), and/or voice over Internet Protocol (VoIP) services.
  • CS circuit switched
  • VoIP voice over LTE
  • VoIP voice over Internet Protocol
  • OTT carrier and over-the-top
  • SMS SMS
  • IM instant messaging
  • video conferencing video conferencing
  • gaming gaming
  • 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 .
  • 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.
  • an exemplary block diagram illustrates SPDs 206 in the PAN 202 .
  • the user 102 carries a variety of SPDs 206 including head worn SPDs 206 (e.g., eyeglasses, hats), wrist worn SPDs 206 (e.g., a watch), “slab” form factor SPDs 206 (e.g., tablets, smart mobile telephones), and other SPDs 206 (e.g., laptops).
  • Some of the SPDs 206 may support Wi-Fi and BLUETOOTH brand communications, while other SPDs 206 may provide WAN support.
  • the SPGD 204 forms the PAN 202 to enable the collection of SPDs 206 of the user 102 to communicate with WANs such as those providing cloud services and phone services.
  • the SPGD 204 implements the functionality described herein to provide a gateway between the SPDs 206 and the WAN. While described in some embodiments as providing a gateway between the PAN 202 of SPDs 206 and at least one cellular network, aspects of the disclosure operate to provide a gateway between the PAN 202 and any type of WAN (e.g., satellite, white space, etc.). Further, the SPGD 204 establishes, forms, or otherwise creates the PAN 202 for the SPDs 206 to communicate with each other and with the services and devices in the WAN.
  • the SPGD 204 creates the PAN 202 based on an interaction between the SPDs 206 and the SPGD 204 .
  • 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.
  • 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.
  • 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.
  • an exemplary block diagram illustrates the SPGD 204 communicating with SPDs 206 within the PAN 202 to cache and share data with heterogeneous communication modalities.
  • the SPGD 204 communicates with the user 102 and a plurality of SPDs 206 , such as SPD #1 through SPD #N.
  • At least one of the SPDs 206 includes an SPD processor 208 .
  • the SPD processor 208 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 SPD processor 208 or by multiple processors executing within the SPD 206 , or performed by a processor external to the SPD 206 .
  • the SPD processor 208 is programmed to execute instructions such as those illustrated in the figures (e.g., FIG. 4 ).
  • the SPD processor 208 represents an implementation of 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.
  • 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 .
  • the SPGD processor 210 is programmed to execute instructions such as those illustrated in the figures (e.g., FIG. 5 and FIG. 6 ).
  • the SPGD processor 210 represents an implementation of 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.
  • 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 FIG. 2 ), external to the SPGD 204 (not shown), or both (not shown).
  • the SPGD memory area 212 includes read-only memory and/or memory wired into an analog computing device.
  • 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.
  • the applications 214 may represent downloaded endpoint applications that correspond to server-side services executing in a cloud (e.g., cloud 702 in FIG. 7 and FIG. 8 ).
  • 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 .
  • 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 .
  • 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.
  • the security modules 218 may include a trusted platform module (TPM) 220 .
  • TPM trusted platform module
  • 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 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.
  • the computing resources of the SPGD 204 further include a cellular modem and a communication stack.
  • 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.
  • 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.
  • the user 102 may input commands or manipulate data by moving the computing device in a particular way.
  • 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).
  • the SPGD 204 has a touch surface on at least one side.
  • 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.
  • Buttons, touch surfaces, and the like on the SPGD 204 may also implement traditional game console controller capabilities for other SPDs 206 .
  • FIG. 2 illustrates the SPGD 204 incorporating a projector or other projection-based solution, instead of or in addition to a screen or other display.
  • the SPGD 204 may use local compute capabilities, or leverage one of the SPDs 206 , to generate the images.
  • the projector may be driven by an encoded video stream (e.g., H.264/H.265) or static images (e.g., joint photographic experts group (JPEG)/M-JPEG).
  • the SPGD 204 may have a small display that acts as a second screen driven by another SPD 206 . Users 102 may then use this for notifications, appointments, present time, and more.
  • the SPGD 204 lacks a display or any display capabilities.
  • sensors on the SPGD 204 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.
  • the SPGD 204 is implemented as a standalone device separate and distinct from a mobile telephone.
  • one or more aspects of the functionality of the SPGD 204 may be implemented by a mobile computing device or any other portable device.
  • 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.
  • 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.
  • an exemplary block diagram illustrates a high-level thin-modem architecture 302 for an exemplary SPGD 204 . While the exemplary thin-modem architecture 302 includes the components illustrated in FIG. 3 , aspects of the disclosure are operable with a thin-modem architecture having additional or fewer components.
  • the thin-modem architecture is used to support WAN communications, along with an integrated computer applications processor. Additional radios such as for Wi-Fi, BLUETOOTH brand communications, etc. may be connected to the thin-modem architecture 302 to support communications to SPDs 206 and network access points.
  • Dynamic random access memory may be used for dynamic storage for the thin-modem complex, with flash-based local or user supplied secure disk input output (SDIO) flash for program code, applications code, application data, media, and the like.
  • SDIO secure disk input output
  • a power complex drives internal power rails, battery charging, and start-up sequencing, and an additional wireless charging solution may be used to charge a local battery.
  • Additional components such as a subscriber identity module (SIM) card, sensors, microphone, GPS transceiver, and the like may be added to the primary board to enhance functions of the SPGD 204 .
  • An applications processor e.g., the SPGD processor 210 in the thin-modem architecture 302 executes code to implement the services described herein.
  • the SPDs 206 execute complementary code to complete the functionality of the services.
  • 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.
  • an exemplary sequence diagram illustrates operation of the SPDs 206 to request data from a cloud service via the SPGD 204 .
  • One of the SPDs 206 requests data from a cloud service, and the request is passed to the SPGD 204 .
  • the requested data includes, for example, music, images, videos, a news feed, an application update, an operating system update, an electronic mail attachment, and/or social networking feed content.
  • 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 .
  • 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).
  • other SPDs 206 may retrieve the data from the SPGD cache 216 (e.g., if authorized by the user 102 ).
  • the requesting SPD 206 lacks support for the first communication modality.
  • the first communication modality includes cellular radio communications
  • the second communication modality includes Wi-Fi radio communications.
  • other modalities are contemplated for each of the first communication modality and the second communication modality.
  • an exemplary flow chart illustrates operation of the SPGD 204 to cache data for the SPDs 206 .
  • the operations illustrated in FIG. 5 are described with reference to execution by the SPGD 204 . However, aspects of the disclosure contemplate execution of one or more of the operations by other devices or processors.
  • 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.
  • 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.
  • the SPGD 204 shares the requested data from the SPGD cache 216 with the requesting SPD(s) 206 at 508 .
  • 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.
  • 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 .
  • 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 .
  • data e.g., state data
  • the operations illustrated in FIG. 5 enable the SPGD 204 to act as an offline cache for cloud-based, deferred access scenarios where streams of content are loaded into the SPGD 204 during low-cost cloud access (e.g., Wi-Fi at home) to be used later.
  • the cache service of the SPGD 204 queues or holds, for example, requests for large amounts of data until desirable networks are available (e.g., cheaper and/or faster).
  • the SPGD 204 may delay requests from the SPDs 206 for data from the cloud service until the SPGD 204 establishes a low-cost connection to the cloud service (e.g., via the first communication modality).
  • the SPGD 204 then makes the requested data available to multiple SPDs 206 after caching, either in response to a user request (e.g., for deferred load purposes), based on user characteristics (e.g., large data, common tasks, etc.) for pre-caching, based on size rules on download requests, and/or based on other criteria.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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
  • 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).
  • 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.
  • data may be synchronized once with the WAN and multiple times with the SPDs 206 .
  • 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.
  • DRM digital rights management
  • the SPGD 204 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).
  • 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 .
  • the second SPD 206 or any other SPD 206 of that user 102 (e.g., in the PAN 202 )
  • the storage service of the SPGD may further support multi-level caching.
  • a level 1 (L1) cache exists in one of the SPDs 206
  • a level (L2) cache exists in the SPGD 204 for primary storage.
  • the size limits and cache rules may be per level.
  • each SPD 206 may keep one gigabyte (GB) of music in the L1 cache
  • the SPGD 204 may keep four GBs in the L2 cache for a larger (e.g., 50 GB) music library in the cloud.
  • the caches update based on the user's rules.
  • an exemplary flow chart illustrates operation of the SPGD 204 to perform security operations on behalf of the SPDs 206 .
  • the operations illustrated in FIG. 6 are described with reference to execution by the SPGD 204 . However, aspects of the disclosure contemplate execution of one or more of the operations by other devices or processors.
  • 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.
  • 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 .
  • the SPGD 204 authenticates the requesting SPD 206 (e.g., verify user name and password, evaluate a certificate, etc.).
  • 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 .
  • 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 .
  • 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.
  • the secure information (e.g., login information) is filled in automatically from data stored in the TPM 220 .
  • the SPGD 204 serves as a wireless “key” that unlocks all the accounts for the user 102 automatically.
  • 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).
  • 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.
  • 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.
  • 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.
  • 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.
  • 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 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.
  • the SPGD 204 may implement a software firewall.
  • the SPGD 204 and the SPDs 206 may operate in at least two modes.
  • Wi-Fi is not available (e.g., see FIG. 7 )
  • the SPD 206 is in the presence of Wi-Fi infrastructure but unable to use the infrastructure (e.g., due to lack of rights or other authentication)
  • the SPD 206 and SPGD 204 operate as if the Wi-Fi infrastructure is not available.
  • the SPGD 204 appears to the SPDs 206 as an access point for Wi-Fi communications.
  • Any request to a WAN-based service (e.g., a cloud service) from the SPD 206 is routed from the SPD 206 via the SPGD 204 to the WAN-based network, as described next with reference to FIG. 7 .
  • a WAN-based service e.g., a cloud service
  • an exemplary block diagram illustrates the SPGD 204 performing services on behalf of the SPDs 206 when no Wi-Fi access is available.
  • the SPGD 204 acts as an endpoint to services offered by the cloud 702 (e.g., the WAN), and as a server for those services to the SPDs 206 within the PAN 202 .
  • the exemplary SPDs 206 include a watch, a slab device, and glasses.
  • the different SPDs 206 are equipped with different hardware.
  • the watch has a display, sensors, a Wi-Fi radio, a BLUETOOTH brand communications module, and a touch interface.
  • the slab has a display, one or more cameras, a Wi-Fi radio, a BLUETOOTH brand communications module, and a touch interface.
  • the glasses have a projector, a camera, a Wi-Fi radio, a BLUETOOTH brand communications module, and a touch interface.
  • the SPGD 204 communicates with the SPDs 206 via Wi-Fi and/or BLUETOOTH brand communications. As an example, the SPGD 204 may communicate with other SPDs 206 via Wi-Fi only.
  • an exemplary block diagram illustrates the SPGD 204 performing services on behalf of the SPDs 206 when a Wi-Fi network is available.
  • Wi-Fi When Wi-Fi is available, there is an access point where SPDs 206 and SPGD 204 may authenticate. In this mode, the access point is used for at least a portion of the data communication to WAN-based services (e.g., the cloud 702 ).
  • VoIP voice/video/etc. may be processed directly from the SPD 206 (e.g., that may have advantages in power and/or latency) or be processed via the SPGD 204 (e.g., that has advantages such as call continuity).
  • the SPDs 206 form direct connections to the access points in the Wi-Fi network, but the SPGD 204 architecture also allows all communications to be routed through the SPGD 204 if desired for caching or other purposes.
  • another data path may be created with the SPGD 204 via a number of methods such as BLUETOOTH brand communications or other non-Wi-Fi networks, Wi-Fi multi-channel multiplexing, indirectly over the access point (e.g., local IP routing), and/or via a separate Wi-Fi radio.
  • This additional data path or channel provides the SPD 206 with access to features such as caching, wireless storage, set-up, and other services (e.g., location services from a GPS of the SPGD 204 ).
  • 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.
  • 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
  • spectrum spatial footprint e.g., allow large numbers of users 102 of SPD/SPGDs in a single area
  • the SPGD 204 may also provision non-voice services to the SPDs 206 .
  • 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.
  • the SPGD 204 queues messages sent from the cloud services to one or more of the SPDs 206 in the PAN 202 .
  • 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.
  • 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.
  • 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.
  • OS operating system
  • 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.
  • 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.
  • 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 .
  • 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 .
  • 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).
  • 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 .
  • the user 102 may switch between one SPGD 204 and a different SPGD 204 to access a different carrier-based WAN network.
  • one SPD 206 can switch from one carrier WAN to a different carrier WAN by switching SPGDs 204 .
  • each SPGD 204 may provide access to different private portals, or provide support for different network protocols or interfaces (e.g., when traveling internationally).
  • SPGDs 204 may be daisy-chained together.
  • 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 .
  • 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.
  • 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.
  • 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.
  • aspects of the disclosure may be implemented as a system on a chip or other circuitry including a plurality of interconnected, electrically conductive elements.
  • 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.
  • the SPGD 204 may be implemented using analog techniques to perform the operations described herein.
  • the operations may be performed by an analog computing device and/or a digital computing device.
  • 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.
  • 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.
  • Exemplary computer storage media include hard disks, flash drives, and other solid-state memory.
  • 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.
  • 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.
  • 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.
  • aspects of the disclosure may be implemented as a system on a chip or other circuitry including a plurality of interconnected, electrically conductive elements.
  • tethered 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.
  • Wi-Fi refers, in some embodiments, to a wireless local area network using high frequency radio signals for the transmission of data.
  • BLUETOOTH refers, in some embodiments, to a wireless technology standard for exchanging data over short distances using short wavelength radio transmission.
  • cellular 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.
  • NFC refers, in some embodiments, to a short-range high frequency wireless communication technology for the exchange of data over short distances.
  • PAN 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.
  • 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.
  • 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.
  • 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 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.”

Abstract

Embodiments provide storage, security, and other services to smart personal devices (SPDs) in a personal area network (PAN) via a smart personal gateway device (SPGD). The SPGD caches and shares data among SPDs having support for heterogeneous communication modalities. The SPGD acts as an offline cache or other common storage location for the SPDs in the PAN.

Description

    CROSS-REFERENCE TO RELATED APPLICATION
  • 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.
  • BACKGROUND
  • 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.
  • SUMMARY
  • 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.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is an exemplary block diagram illustrating smart personal devices (SPDs) in a personal area network (PAN).
  • FIG. 2 is an exemplary block diagram illustrating a smart personal gateway device (SPGD) communicating with SPDs in a PAN.
  • FIG. 3 is an exemplary block diagram illustrating a high-level thin-modem architecture for an exemplary SPGD.
  • FIG. 4 is an exemplary sequence diagram illustrating operation of the SPDs to request data from a cloud service via the SPGD.
  • FIG. 5 is an exemplary flow chart illustrating operation of the SPGD to cache data for the SPDs.
  • FIG. 6 is an exemplary flow chart illustrating operation of the SPGD to perform security operations on behalf of the SPDs.
  • FIG. 7 is an exemplary block diagram illustrating the SPGD performing services on behalf of the SPDs when no wireless fidelity (Wi-Fi) access is available.
  • FIG. 8 is an exemplary block diagram illustrating the SPGD performing services on behalf of the SPDs when a Wi-Fi network is available.
  • Corresponding reference characters indicate corresponding parts throughout the drawings.
  • DETAILED DESCRIPTION
  • 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 FIG. 1, an exemplary block diagram illustrates SPDs 206 in the PAN 202. In the example of FIG. 1, the user 102 carries a variety of SPDs 206 including head worn SPDs 206 (e.g., eyeglasses, hats), wrist worn SPDs 206 (e.g., a watch), “slab” form factor SPDs 206 (e.g., tablets, smart mobile telephones), and other SPDs 206 (e.g., laptops). Some of the SPDs 206 may support Wi-Fi and BLUETOOTH brand communications, while other SPDs 206 may provide WAN support. As described herein, the SPGD 204 forms the PAN 202 to enable the collection of SPDs 206 of the user 102 to communicate with WANs such as those providing cloud services and phone services. In general, the SPGD 204 implements the functionality described herein to provide a gateway between the SPDs 206 and the WAN. While described in some embodiments as providing a gateway between the PAN 202 of SPDs 206 and at least one cellular network, aspects of the disclosure operate to provide a gateway between the PAN 202 and any type of WAN (e.g., satellite, white space, etc.). Further, the SPGD 204 establishes, forms, or otherwise creates the PAN 202 for the SPDs 206 to communicate with each other and with the services and devices in the WAN.
  • 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 FIG. 2, an exemplary block diagram illustrates the SPGD 204 communicating with SPDs 206 within the PAN 202 to cache and share data with heterogeneous communication modalities. In the example of FIG. 2, the SPGD 204 communicates with the user 102 and a plurality of SPDs 206, such as SPD #1 through SPD #N. At least one of the SPDs 206 includes an SPD processor 208. The SPD processor 208 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 SPD processor 208 or by multiple processors executing within the SPD 206, or performed by a processor external to the SPD 206. In some embodiments, the SPD processor 208 is programmed to execute instructions such as those illustrated in the figures (e.g., FIG. 4). In some embodiments, the SPD processor 208 represents an implementation of 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.
  • 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., FIG. 5 and FIG. 6). In some embodiments, the SPGD processor 210 represents an implementation of 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.
  • 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 FIG. 2), external to the SPGD 204 (not shown), or both (not shown). In some embodiments, the SPGD memory area 212 includes read-only memory and/or memory wired into an analog computing device.
  • 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 FIG. 7 and FIG. 8).
  • 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 FIG. 2 illustrates the SPGD 204 incorporating a projector or other projection-based solution, instead of or in addition to a screen or other display. In these embodiments, the SPGD 204 may use local compute capabilities, or leverage one of the SPDs 206, to generate the images. In this case, the projector may be driven by an encoded video stream (e.g., H.264/H.265) or static images (e.g., joint photographic experts group (JPEG)/M-JPEG). Alternatively or in addition, the SPGD 204 may have a small display that acts as a second screen driven by another SPD 206. Users 102 may then use this for notifications, appointments, present time, and more. In still other embodiments, the SPGD 204 lacks a display or any display capabilities.
  • 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 FIG. 3, an exemplary block diagram illustrates a high-level thin-modem architecture 302 for an exemplary SPGD 204. While the exemplary thin-modem architecture 302 includes the components illustrated in FIG. 3, aspects of the disclosure are operable with a thin-modem architecture having additional or fewer components. The thin-modem architecture is used to support WAN communications, along with an integrated computer applications processor. Additional radios such as for Wi-Fi, BLUETOOTH brand communications, etc. may be connected to the thin-modem architecture 302 to support communications to SPDs 206 and network access points. Dynamic random access memory (DRAM), or other memory, may be used for dynamic storage for the thin-modem complex, with flash-based local or user supplied secure disk input output (SDIO) flash for program code, applications code, application data, media, and the like. A power complex drives internal power rails, battery charging, and start-up sequencing, and an additional wireless charging solution may be used to charge a local battery. Additional components such as a subscriber identity module (SIM) card, sensors, microphone, GPS transceiver, and the like may be added to the primary board to enhance functions of the SPGD 204. An applications processor (e.g., the SPGD processor 210) in the thin-modem architecture 302 executes code to implement the services described herein. In some embodiments, the SPDs 206 execute complementary code to complete the functionality of the services.
  • 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 FIG. 4, an exemplary sequence diagram illustrates operation of the SPDs 206 to request data from a cloud service via the SPGD 204. One of the SPDs 206 requests data from a cloud service, and the request is passed to the SPGD 204. The requested data includes, for example, music, images, videos, a news feed, an application update, an operating system update, an electronic mail attachment, and/or social networking feed content.
  • 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 FIG. 5, an exemplary flow chart illustrates operation of the SPGD 204 to cache data for the SPDs 206. The operations illustrated in FIG. 5 are described with reference to execution by the SPGD 204. However, aspects of the disclosure contemplate execution of one or more of the operations by other devices or processors.
  • 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 FIG. 5 enable the SPGD 204 to act as an offline cache for cloud-based, deferred access scenarios where streams of content are loaded into the SPGD 204 during low-cost cloud access (e.g., Wi-Fi at home) to be used later. This includes, but is not limited to, deferred watching of movie content, updates of subscribed feeds (e.g., really simple syndicate (RSS) feeds), updates of applications and operating systems, downloading attachments (e.g., large content) in emails, and/or retrieving social networking feed content. The cache service of the SPGD 204 queues or holds, for example, requests for large amounts of data until desirable networks are available (e.g., cheaper and/or faster). For example, the SPGD 204 may delay requests from the SPDs 206 for data from the cloud service until the SPGD 204 establishes a low-cost connection to the cloud service (e.g., via the first communication modality). The SPGD 204 then makes the requested data available to multiple SPDs 206 after caching, either in response to a user request (e.g., for deferred load purposes), based on user characteristics (e.g., large data, common tasks, etc.) for pre-caching, based on size rules on download requests, and/or based on other criteria.
  • 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 FIG. 6, an exemplary flow chart illustrates operation of the SPGD 204 to perform security operations on behalf of the SPDs 206. The operations illustrated in FIG. 6 are described with reference to execution by the SPGD 204. However, aspects of the disclosure contemplate execution of one or more of the operations by other devices or processors.
  • 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 FIG. 7), there is no access to Wi-Fi infrastructure for non-carrier based data access. When the SPD 206 is in the presence of Wi-Fi infrastructure but unable to use the infrastructure (e.g., due to lack of rights or other authentication), the SPD 206 and SPGD 204 operate as if the Wi-Fi infrastructure is not available. In this mode, the SPGD 204 appears to the SPDs 206 as an access point for Wi-Fi communications. Any request to a WAN-based service (e.g., a cloud service) from the SPD 206 is routed from the SPD 206 via the SPGD 204 to the WAN-based network, as described next with reference to FIG. 7.
  • Referring next to FIG. 7, an exemplary block diagram illustrates the SPGD 204 performing services on behalf of the SPDs 206 when no Wi-Fi access is available. The SPGD 204 acts as an endpoint to services offered by the cloud 702 (e.g., the WAN), and as a server for those services to the SPDs 206 within the PAN 202. In the example of FIG. 7, the exemplary SPDs 206 include a watch, a slab device, and glasses. The different SPDs 206 are equipped with different hardware. For example, the watch has a display, sensors, a Wi-Fi radio, a BLUETOOTH brand communications module, and a touch interface. The slab has a display, one or more cameras, a Wi-Fi radio, a BLUETOOTH brand communications module, and a touch interface. The glasses have a projector, a camera, a Wi-Fi radio, a BLUETOOTH brand communications module, and a touch interface. The SPGD 204 communicates with the SPDs 206 via Wi-Fi and/or BLUETOOTH brand communications. As an example, the SPGD 204 may communicate with other SPDs 206 via Wi-Fi only.
  • In contrast, referring next to FIG. 8, an exemplary block diagram illustrates the SPGD 204 performing services on behalf of the SPDs 206 when a Wi-Fi network is available. When Wi-Fi is available, there is an access point where SPDs 206 and SPGD 204 may authenticate. In this mode, the access point is used for at least a portion of the data communication to WAN-based services (e.g., the cloud 702). VoIP voice/video/etc. may be processed directly from the SPD 206 (e.g., that may have advantages in power and/or latency) or be processed via the SPGD 204 (e.g., that has advantages such as call continuity). In this mode, the SPDs 206 form direct connections to the access points in the Wi-Fi network, but the SPGD 204 architecture also allows all communications to be routed through the SPGD 204 if desired for caching or other purposes. When SPDs 206 connect directly to the Wi-Fi access point, another data path may be created with the SPGD 204 via a number of methods such as BLUETOOTH brand communications or other non-Wi-Fi networks, Wi-Fi multi-channel multiplexing, indirectly over the access point (e.g., local IP routing), and/or via a separate Wi-Fi radio. This additional data path or channel provides the SPD 206 with access to features such as caching, wireless storage, set-up, and other services (e.g., location services from a GPS of the SPGD 204).
  • 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.
  • Other Exemplary Services Provisioned by the SPGD
  • 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.
  • Additional Examples
  • 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.
  • Exemplary Operating Environment
  • 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.

Claims (20)

What is claimed is:
1. A system for caching and sharing data among smart personal devices (SPDs) having heterogeneous communication modalities, said system comprising:
a memory area associated with a smart personal gateway device (SPGD), the memory area storing an SPGD cache maintained by the SPGD and accessible to a plurality of SPDs, the SPGD and the plurality of SPDs being connected by a personal area network (PAN); and
an SPGD processor programmed to:
receive data from a cloud service over a first communication modality;
store the received data in the SPGD cache in the memory area;
share the stored data in the SPGD cache with one or more of the SPDs over a second communication modality, at least one of the one or more of the SPDs lacking support for the first communication modality;
store, in the SPGD cache, data received from a first one of the SPDs; and
provide, from the SPGD cache, at least a portion of the stored data received from the first one of the SPDs with a second one of the SPDs to maintain a consistent state between the first one of the SPDs and the second one of the SPDs.
2. The system of claim 1, wherein the first communication modality includes cellular radio transmissions, wherein the second communication modality includes wireless fidelity (Wi-Fi) radio transmissions, and wherein the SPGD processor is programmed to receive movie data from the cloud service and subsequently share the received movie data with the one or more of the SPDs on demand.
3. The system of claim 1, wherein the data received from the first one of the SPDs comprises user data, and wherein the user data comprises at least one of: search history, web site favorites, copy-and-paste data, undo/redo data, electronic mail address completion data, and previous map destinations.
4. The system of claim 1, wherein the data received from the first one of the SPDs includes user interface personalization information comprising at least one of: data indicating whether a user of the first one of the SPDs is right- or left-handed, a screen brightness value for an ambient light sensor (ALS), data describing preferred gestures, speech recognition hints, or language selections.
5. The system of claim 1, wherein the SPGD processor is programmed to receive data relating to asynchronous services from the cloud service over the first communication modality, wherein the asynchronous services include at least one of voicemail, electronic mail, or video messaging.
6. The system of claim 1, wherein the SPGD processor is programmed to delay requests, from the plurality of SPDs, for data from the cloud service until the SPGD establishes a low-cost connection via the first communication modality.
7. A method comprising:
requesting, by one of a plurality of smart personal devices (SPDs), data from a cloud service, the plurality of SPDs being connected to a smart personal gateway device (SPGD) by a personal area network (PAN), wherein the SPGD obtains the requested data over a first communication modality and stores the obtained data in an SPGD cache associated with the SPGD; and
obtaining, by the one of the plurality of SPDs, the requested data from the SPGD cache over a second communication modality, the one of the plurality of SPDs lacking support for the first communication modality.
8. The method of claim 7, further comprising providing, by a first one of the plurality of SPDs, state data to the SPGD for storage by the SPGD in the SPGD cache, wherein a second one of the plurality of SPDs obtains at least a portion of the stored state data from the SPGD cache via the SPGD to maintain a consistent state between the first one of the plurality of SPDs and the second one of the plurality of SPDs.
9. The method of claim 8, wherein providing the state data comprises providing task data describing a partially-completed task.
10. The method of claim 8, wherein providing the state date comprises providing a pointer to a location within content stored in the SPGD cache, wherein the second one of the plurality of SPDs obtains the pointer from the SPGD cache to resume display of the content on the second one of the plurality of SPDs.
11. The method of claim 10, wherein the second one of the plurality of SPDs resumes display of the content when the first one of the plurality of SPDs is no longer connected to the PAN.
12. The method of claim 7, further comprising receiving, by the one of the plurality of SPDs, the requested data from the SPGD cache.
13. The method of claim 7, wherein obtaining the requested data from the SPGD cache comprises obtaining the requested data when the first communication modality is unavailable.
14. The method of claim 7, wherein the SPGD is one of a plurality of SPGDs available to the one of the plurality of SPDs, and further comprising selecting at least one of the plurality of SPGDs from which to obtain the requested data.
15. The method of claim 7, wherein requesting the data from the cloud service comprises requesting at least one of: music, images, videos, a news feed, an application update, an operating system update, an electronic mail attachment, or social networking feed content.
16. A smart personal gateway device (SPGD) comprising:
one or more security modules;
a memory area associated with a smart personal gateway device (SPGD), the memory area storing an SPGD cache maintained by the SPGD and accessible to a plurality of smart personal devices (SPDs), the SPGD and the plurality of SPDs being connected by a personal area network (PAN); and
an SPGD processor programmed to:
obtain a first set of credentials via at least one of the security modules, the first set of credentials providing access to a resource;
receive, from at least one of the plurality of SPDs, a request for the resource, the at least one of the plurality of SPDs lacking the at least one of the security modules for obtaining the first set of credentials;
authenticate the at least one of the plurality of SPDs; and
provide the first set of credentials to the at least one of the plurality of SPDs based on the authentication, wherein the at least one of the plurality of SPDs accesses the resource via the first of credentials provided by the SPGD.
17. The smart personal gateway device of claim 16, wherein the at least one of the security modules allows access to the resource otherwise not accessible by the at least one of the plurality of SPDs.
18. The smart personal gateway device of claim 16, wherein the one or more security modules comprise a trusted platform module (TPM) storing login information corresponding to one or more of the plurality of SPDs, and wherein the SPGD processor is further programmed to offer the login information from the TPM on behalf of the corresponding one or more of the plurality of SPDs when the corresponding one or more of the plurality of SPDs attempt to connect to a cloud service.
19. The smart personal gateway device of claim 16, wherein the SPGD further comprises a near field communication (NFC) radio and coil, the SPGD processor further being programmed to perform financial transactions on behalf of the plurality of SPDs using the NFC radio and coil.
20. The smart personal gateway device of claim 16, wherein the SPGD processor is further programmed to perform packet inspection on incoming data packets to the PAN to implement a firewall.
US14/302,322 2013-06-13 2014-06-11 Providing storage and security services with a smart personal gateway device Abandoned US20140372551A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/302,322 US20140372551A1 (en) 2013-06-13 2014-06-11 Providing storage and security services with a smart personal gateway device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201361834422P 2013-06-13 2013-06-13
US14/302,322 US20140372551A1 (en) 2013-06-13 2014-06-11 Providing storage and security services with a smart personal gateway device

Publications (1)

Publication Number Publication Date
US20140372551A1 true US20140372551A1 (en) 2014-12-18

Family

ID=52019157

Family Applications (2)

Application Number Title Priority Date Filing Date
US14/302,323 Active 2034-08-28 US9503835B2 (en) 2013-06-13 2014-06-11 Service provisioning through a smart personal gateway device
US14/302,322 Abandoned US20140372551A1 (en) 2013-06-13 2014-06-11 Providing storage and security services with a smart personal gateway device

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US14/302,323 Active 2034-08-28 US9503835B2 (en) 2013-06-13 2014-06-11 Service provisioning through a smart personal gateway device

Country Status (4)

Country Link
US (2) US9503835B2 (en)
EP (1) EP3008933A2 (en)
CN (1) CN105359560B (en)
WO (1) WO2014201262A2 (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104952447A (en) * 2015-04-30 2015-09-30 深圳市全球锁安防系统工程有限公司 Intelligent wearing equipment for safety and health service for old people and voice recognition method
WO2017039738A1 (en) * 2015-08-31 2017-03-09 Intel IP Corporation Wireless personal area network underlying cellular networks
US20170094468A1 (en) * 2014-07-31 2017-03-30 Samsung Electronics Co., Ltd. Terminal and a method of controlling the same based on a state of the terminal
US9621678B1 (en) * 2016-01-13 2017-04-11 Linkedin Corporation Delivering and displaying content feeds on smartwatch devices
US20180248872A1 (en) * 2015-08-25 2018-08-30 Sony Corporation Communication apparatus, communication method, and communication system
US20180332506A1 (en) * 2017-05-12 2018-11-15 Apple Inc. Fast Return to Wi-Fi
US10372086B2 (en) * 2015-10-28 2019-08-06 Hancom, Inc. Smart watch having display, color of which changes according to state of user
US20220400093A1 (en) * 2021-06-14 2022-12-15 LiveChat Software S.A. System and method for asynchronous messaging combined with a real-time communication
US11652779B1 (en) * 2019-05-31 2023-05-16 United Services Automobile Association (Usaa) Systems and methods for caching emails for subsequent delivery

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014009256A1 (en) 2014-06-20 2015-12-24 Audi Ag Routers and methods for receiving and distributing data
CN106162634B (en) * 2015-03-24 2019-04-26 华为技术有限公司 Data interactive method and gateway between a kind of gateway
US10412160B2 (en) 2015-08-05 2019-09-10 Facebook, Inc. Controlling a device cloud
US10348798B2 (en) 2015-08-05 2019-07-09 Facebook, Inc. Rules engine for connected devices
US10541958B2 (en) 2015-08-05 2020-01-21 Facebook, Inc. Controlling a device cloud
US10567479B2 (en) * 2015-08-05 2020-02-18 Facebook, Inc. Managing a device cloud
US10425392B2 (en) 2015-08-05 2019-09-24 Facebook, Inc. Managing a device cloud
US10782385B2 (en) * 2015-09-23 2020-09-22 Intel IP Corporation Apparatus and method for high accuracy distance and orientation measurement
US11227277B2 (en) * 2015-12-22 2022-01-18 Intel Corporation Facilitating smart geo-fencing-based payment transactions
US11172359B2 (en) * 2017-08-09 2021-11-09 Lenovo (Singapore) Pte. Ltd. Method and apparatus for attach procedure with security key exchange for restricted services for unauthenticated user equipment
CN108337077A (en) * 2017-12-26 2018-07-27 成都鼎信致远科技有限公司 Data transmission method and Wireless Heterogeneous Networks system

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6487180B1 (en) * 1996-10-15 2002-11-26 Motorola, Inc. Personal information system using proximity-based short-range wireless links
US20090248794A1 (en) * 2008-03-26 2009-10-01 Time Warner Cable Inc System and method for content sharing
US20110225311A1 (en) * 2010-03-10 2011-09-15 Thomson Licensing Unified cache and peer-to-peer method and apparatus for streaming media in wireless mesh networks
US20120079095A1 (en) * 2010-09-24 2012-03-29 Amazon Technologies, Inc. Cloud-based device synchronization
US20120079126A1 (en) * 2010-09-24 2012-03-29 Amazon Technologies, Inc. Cloud-based device interaction
US20120271908A1 (en) * 2011-04-19 2012-10-25 Michael Luna Social caching for device resource sharing and management
US20120317655A1 (en) * 2011-06-10 2012-12-13 Futurewei Technologies, Inc. Method for Flexible Data Protection with Dynamically Authorized Data Receivers in a Content Network or in Cloud Storage and Content Delivery Services
US20130046893A1 (en) * 2011-08-17 2013-02-21 Recursion Software, Inc. System and method for transfer of an application state between devices
US20140195805A1 (en) * 2013-01-04 2014-07-10 Samsung Electronics Co., Ltd. Method of sharing contents by using personal cloud device, and electronic device and personal cloud system
US20140254546A1 (en) * 2011-09-29 2014-09-11 Israel L'Heureux Gateway router supporting session hand-off and content sharing among clients of a local area network
US8838690B2 (en) * 2009-11-03 2014-09-16 Telecom Italia S.P.A. Caching of digital contents in P2P networks
US9154997B2 (en) * 2010-12-30 2015-10-06 International Business Machines Corporation Content sharing among mobile terminals

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6434159B1 (en) 1996-10-15 2002-08-13 Motorola, Inc. Transaction system and method therefor
US7039033B2 (en) 2001-05-07 2006-05-02 Ixi Mobile (Israel) Ltd. System, device and computer readable medium for providing a managed wireless network using short-range radio signals
US7228383B2 (en) * 2001-06-01 2007-06-05 Visto Corporation System and method for progressive and hierarchical caching
WO2003096669A2 (en) * 2002-05-10 2003-11-20 Reisman Richard R Method and apparatus for browsing using multiple coordinated device
US20040203800A1 (en) 2002-10-24 2004-10-14 John Myhre System and method for content delivery using alternate data paths in a wireless network
US20060230073A1 (en) * 2004-08-31 2006-10-12 Gopalakrishnan Kumar C Information Services for Real World Augmentation
US7680088B2 (en) * 2006-01-20 2010-03-16 Nokia Corporation High speed data and coverage using personal area network
US20080204873A1 (en) * 2007-02-23 2008-08-28 Strategic Patent Acquisitions Llc Techniques for three dimensional displays
US20130070209A1 (en) * 2008-11-03 2013-03-21 National Semiconductor Corporation Method and system for dynamic feed-forward power control in a projector system
US8363586B2 (en) * 2008-12-31 2013-01-29 Intel Corporation Social networking and advertisements in a mobile device on a local personal area network
US9277266B2 (en) * 2009-03-18 2016-03-01 Time Warner Cable Enterprises Llc Apparatus and methods for network video recording
US9398136B2 (en) 2009-04-20 2016-07-19 Apple Inc. Handheld device capable of providing data tethering services while maintaining suite of handheld service functions
US8223694B2 (en) 2009-07-21 2012-07-17 Verizon Patent And Licensing, Inc. Enhanced information services using devices in short-range wireless networks
US9052919B2 (en) 2010-01-15 2015-06-09 Apple Inc. Specialized network fileserver
US8873527B2 (en) 2011-01-14 2014-10-28 Apple Inc. System and method for managing routers and communication interfaces on a computing device
US20130107783A1 (en) 2011-10-26 2013-05-02 At&T Intellectual Property I, L.P Intelligent Hot Spot and Tethering
DE112012004785T5 (en) 2011-11-16 2014-08-07 Flextronics Ap, Llc Feature recognition for configuring a vehicle console and associated devices
US20130219039A1 (en) 2011-11-16 2013-08-22 Flextronics Ap, Llc Network selector in a vehicle infotainment system
US9363028B2 (en) * 2013-01-25 2016-06-07 Time Warner Cable Enterprises Llc Apparatus and methods for catalog data distribution
US20140279294A1 (en) * 2013-03-14 2014-09-18 Nordstrom, Inc. System and methods for order fulfillment, inventory management, and providing personalized services to customers
US20140282683A1 (en) * 2013-03-14 2014-09-18 Samsung Electronics Co., Ltd. Computing system with device interaction mechanism and method of operation thereof

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6487180B1 (en) * 1996-10-15 2002-11-26 Motorola, Inc. Personal information system using proximity-based short-range wireless links
US20090248794A1 (en) * 2008-03-26 2009-10-01 Time Warner Cable Inc System and method for content sharing
US8838690B2 (en) * 2009-11-03 2014-09-16 Telecom Italia S.P.A. Caching of digital contents in P2P networks
US20110225311A1 (en) * 2010-03-10 2011-09-15 Thomson Licensing Unified cache and peer-to-peer method and apparatus for streaming media in wireless mesh networks
US20120079095A1 (en) * 2010-09-24 2012-03-29 Amazon Technologies, Inc. Cloud-based device synchronization
US20120079126A1 (en) * 2010-09-24 2012-03-29 Amazon Technologies, Inc. Cloud-based device interaction
US9154997B2 (en) * 2010-12-30 2015-10-06 International Business Machines Corporation Content sharing among mobile terminals
US20120271908A1 (en) * 2011-04-19 2012-10-25 Michael Luna Social caching for device resource sharing and management
US20120317655A1 (en) * 2011-06-10 2012-12-13 Futurewei Technologies, Inc. Method for Flexible Data Protection with Dynamically Authorized Data Receivers in a Content Network or in Cloud Storage and Content Delivery Services
US20130046893A1 (en) * 2011-08-17 2013-02-21 Recursion Software, Inc. System and method for transfer of an application state between devices
US20140254546A1 (en) * 2011-09-29 2014-09-11 Israel L'Heureux Gateway router supporting session hand-off and content sharing among clients of a local area network
US20140195805A1 (en) * 2013-01-04 2014-07-10 Samsung Electronics Co., Ltd. Method of sharing contents by using personal cloud device, and electronic device and personal cloud system

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11189154B2 (en) 2014-07-31 2021-11-30 Samsung Electronics Co., Ltd. Terminal and a method of controlling the same based on a state of the terminal
US20170094468A1 (en) * 2014-07-31 2017-03-30 Samsung Electronics Co., Ltd. Terminal and a method of controlling the same based on a state of the terminal
US10147302B2 (en) * 2014-07-31 2018-12-04 Samsung Electronics Co., Ltd. Terminal and a method of controlling the same based on a state of the terminal
CN104952447A (en) * 2015-04-30 2015-09-30 深圳市全球锁安防系统工程有限公司 Intelligent wearing equipment for safety and health service for old people and voice recognition method
US20180248872A1 (en) * 2015-08-25 2018-08-30 Sony Corporation Communication apparatus, communication method, and communication system
US10810296B2 (en) * 2015-08-25 2020-10-20 Sony Corporation Communication apparatus, communication method, and communication system
US11765594B2 (en) 2015-08-31 2023-09-19 Apple Inc. Wireless personal area network underlying cellular networks
WO2017039738A1 (en) * 2015-08-31 2017-03-09 Intel IP Corporation Wireless personal area network underlying cellular networks
US20180255611A1 (en) * 2015-08-31 2018-09-06 Intel IP Corporation Wireless personal area network underlying cellular networks
US10785642B2 (en) * 2015-08-31 2020-09-22 Apple Inc. Wireless personal area network underlying cellular networks
TWI706683B (en) * 2015-08-31 2020-10-01 美商蘋果公司 Wireless personal area network underlying cellular networks
US10372086B2 (en) * 2015-10-28 2019-08-06 Hancom, Inc. Smart watch having display, color of which changes according to state of user
US9621678B1 (en) * 2016-01-13 2017-04-11 Linkedin Corporation Delivering and displaying content feeds on smartwatch devices
US11206582B2 (en) * 2017-05-12 2021-12-21 Apple Inc. Fast return to Wi-Fi
US20180332506A1 (en) * 2017-05-12 2018-11-15 Apple Inc. Fast Return to Wi-Fi
US11652779B1 (en) * 2019-05-31 2023-05-16 United Services Automobile Association (Usaa) Systems and methods for caching emails for subsequent delivery
US11956200B1 (en) 2019-05-31 2024-04-09 United Services Automobile Association (Usaa) Method for distributing emails
US20220400093A1 (en) * 2021-06-14 2022-12-15 LiveChat Software S.A. System and method for asynchronous messaging combined with a real-time communication

Also Published As

Publication number Publication date
EP3008933A2 (en) 2016-04-20
US20140369275A1 (en) 2014-12-18
WO2014201262A3 (en) 2015-03-12
WO2014201262A2 (en) 2014-12-18
CN105359560B (en) 2019-06-21
CN105359560A (en) 2016-02-24
US9503835B2 (en) 2016-11-22

Similar Documents

Publication Publication Date Title
US20140372551A1 (en) Providing storage and security services with a smart personal gateway device
US9973972B2 (en) Network bandwidth sharing for mobile devices
US10616195B2 (en) Computerized system and method for automatically sharing device pairing credentials across multiple devices
RU2608948C2 (en) Method, device and system for access to router controlling
CN112771831B (en) Random number handler for single point sign-on authentication in reverse proxy solutions
US8803916B1 (en) Methods and systems for an augmented reality service delivery platform
US10993090B2 (en) Network access method, apparatus, and system
US11356435B1 (en) Multiple application authentication
US9497565B1 (en) Interface display method, device, terminal, server and system
KR102330737B1 (en) Courier network service
WO2014032559A1 (en) Method and device for downloading file
US11076267B2 (en) Network based enforcement of geographical compliance
WO2015101302A1 (en) Data sharing method, system, user end and background server
EP4272416A1 (en) Interim connections for providing secure communication of content between devices
US10681204B2 (en) Separating sensitive data from mobile devices for theft prevention
US11539828B2 (en) User interface process flow for posting content on a display device

Legal Events

Date Code Title Description
AS Assignment

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034747/0417

Effective date: 20141014

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:039025/0454

Effective date: 20141014

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER

STPP Information on status: patent application and granting procedure in general

Free format text: FINAL REJECTION MAILED

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION