U.S. patent application number 13/451327 was filed with the patent office on 2012-10-25 for shared resource and virtual resource management in a networked environment.
Invention is credited to Michael Luna.
Application Number | 20120271903 13/451327 |
Document ID | / |
Family ID | 47022122 |
Filed Date | 2012-10-25 |
United States Patent
Application |
20120271903 |
Kind Code |
A1 |
Luna; Michael |
October 25, 2012 |
SHARED RESOURCE AND VIRTUAL RESOURCE MANAGEMENT IN A NETWORKED
ENVIRONMENT
Abstract
Systems and methods for shared resource or virtual resource
management in a networked environment are disclosed. In one aspect,
embodiments of the present disclosure include a method, which may
be implemented on a system, includes, creating a virtual memory
pool from an aggregation of the physical memory of the devices
and/or allocating portions of the virtual memory pool to a given
device among the devices. Further, the portions of the virtual
memory pool allocated to the given device are in part accessible
over a wireless connection for data retrieval and storage by the
given device.
Inventors: |
Luna; Michael; (San Jose,
CA) |
Family ID: |
47022122 |
Appl. No.: |
13/451327 |
Filed: |
April 19, 2012 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
61476976 |
Apr 19, 2011 |
|
|
|
Current U.S.
Class: |
709/213 |
Current CPC
Class: |
G06F 9/5016 20130101;
G06F 2209/509 20130101; H04L 67/1097 20130101; H04L 67/22 20130101;
H04W 4/80 20180201; H04W 72/0446 20130101; H04W 74/06 20130101;
G06F 3/0644 20130101; H04L 67/2833 20130101; G06F 3/067 20130101;
H04L 67/10 20130101; H04L 67/2842 20130101; G06F 3/0605 20130101;
H04L 67/04 20130101; H04W 8/24 20130101; H04L 67/288 20130101; H04L
67/289 20130101 |
Class at
Publication: |
709/213 |
International
Class: |
G06F 15/167 20060101
G06F015/167 |
Claims
1. A method for storage sharing among two devices, the method,
comprising: offloading storage needs of a first device to a second
device among two devices coupled in a wireless network; wherein, in
offloading the storage needs, data for use at the first device is
transmitted over the wireless network to be stored at the second
device.
2. The method of claim 1, further comprising, tracking, by the
first device, which portion of the data for use at the first device
is stored at the second device.
3. The method of claim 1, further comprising, tracking, by a server
in the wireless network, which portion of the data for use at the
first device is stored at the second device.
4. The method of claim 1, wherein, the storage needs are determined
from lack of availability of physical storage space on the first
device.
5. The method of claim 1, wherein, the storage needs are determined
from availability of physical storage space on the second
device.
6. The method of claim 1, wherein, the storage needs are determined
from shared data between the two devices.
7. The method of claim 6, wherein, the data is shared as a result
of co-location of the two devices.
8. The method of claim 1, wherein, the storage that is shared
includes databases on the two devices.
9. The method of claim 1, wherein, the storage that is shared
includes memory on the two devices.
10. The method of claim 1, wherein, the storage that is shared
includes non-volatile storage on the two devices including hard
disk storage or flash memory.
11. The method of claim 1, wherein, the wireless network includes
Wifi or home network.
12. The method of claim 1, wherein, the wireless network includes
mobile network or cellular network.
13. The method of claim 1, wherein, the wireless network includes
Bluetooth.
14. A method for device resource sharing among devices in a
network, the method, comprising: wirelessly accessing, by one
device among the devices in the network, device resources of
another device in the network; using the device resources of the
other device wirelessly accessed by the one device by retrieving or
storing data for use by the one device.
15. The method of claim 14, further comprising: wirelessly
accessing, by the other device resources of the one device in the
network; using the device resources of the one device wirelessly
accessed by the other device by retrieving or storing data for use
by the other device.
16. The method of claim 14, wherein, the device resources that are
shared include physical memory on the devices.
17. The method of claim 14, wherein, the device resources that are
shared include physical storage on the devices.
18. The method of claim 14, wherein, the device resources that are
shared include database parameters.
19. The method of claim 14, wherein, the devices among which
resources are shared are similar or same types of devices.
20. The method of claim 14, wherein, the devices among which
resources are shared have same or similar functionalities.
21. The method of claim 14, wherein, the devices among which
resources are shared are co-located or are geographically proximate
to one another.
22. The method of claim 14, wherein, the devices among which
resources are shared are connected to or have access to a same
network.
23. The method of claim 14, wherein, the devices among which
resources are shared wirelessly have a same user or groups of
users.
24. A machine-readable storage medium having stored thereon
instructions which when executed by a processor causes the
processor to perform a method for managing sharing of physical
memory among devices, the method, comprising: creating a virtual
memory pool from an aggregation of the physical memory of the
devices; allocating portions of the virtual memory pool to a given
device among the devices; wherein, the portions of the virtual
memory pool allocated to the given device is in part accessible
over a wireless connection for data retrieval and storage by the
given device.
25. The method of claim 24, wherein, the portions of the virtual
memory pool allocated to the one device includes physical memory
located on other devices among the devices.
26. The method of claim 25, wherein, the other devices having the
physical memory which is a part of the portions of the virtual
memory pool allocated to the one device, share a common feature
with the one device.
27. The method of claim 26, wherein, the common feature includes,
one or more of, functionality, device type, location, or user.
28. A mobile device which uses the resources of other devices via a
wireless network, the method, comprising: means for, offloading
storage needs to another device in the wireless network; wherein,
in offloading the storage needs, data for use by the mobile device
is transmitted over the wireless network to be stored at the other
device; wherein, the wireless network includes one or more of, Wifi
and cellular network.
29. The mobile device of claim 28, wherein, the storage needs are
determined from lack of availability of physical storage space on
the mobile device.
30. The mobile device of claim 28, wherein, the storage that is
shared includes, one or more of, physical memory, hard disk storage
or flash memory on the other device.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. Provisional
Patent Application No. 61/476,976 entitled "VIRTUAL MEMORY, SHARED
MEMORY MANAGEMENT AND SOCIAL CACHING BASED ON GEO-LOCATION IN A
NETWORKED ENVIRONMENT", which was filed on Apr. 19, 2011, the
contents of which are all incorporated by reference herein.
[0002] This application is related to U.S. Patent Application No.
______ entitled "SOCIAL CACHING FOR DEVICE RESOURCE SHARING AND
MANAGEMENT" (Attorney Docket No. 76443-8118.US01), filed herewith,
the contents of which are all incorporated by reference herein.
[0003] This application is related to U.S. Patent Application No.
______ entitled "DEVICE RESOURCE SHARING FOR NETWORK RESOURCE
CONSERVATION" (Attorney Docket No. 76443-8119.US01), filed
herewith, the contents of which are all incorporated by reference
herein.
BACKGROUND
[0004] With the increase of computing power and enhancement in
functionality, every day electronic devices have expanded in
features to take upon multiple functions, beyond their traditional
uses. For example, our cellular phones have become our digital
cameras, our Smartphones have become our video recorders, in some
cases replaced or used in lieu of laptop computers, tablets have
now replaced some uses of laptops, and our mobile devices such as
laptops or mobile phones now drive or are used to control home
video/audio systems.
[0005] With this expansion in computing power and device capability
is the need for additional storage (e.g., memory, USB or hard disk,
etc.). Increasingly more types of devices handle, process, and/or
are used for accessing, capturing, or viewing media content the
storage needs for these devices have exploded and traditional
storage mechanisms have not kept up with data needs to ensure or
support the user experience enhancements that should accompany the
growth in computing power and device functionality expansions.
BRIEF DESCRIPTION OF THE DRAWINGS
[0006] FIG. 1 depicts an example diagram showing resource sharing
and/or virtual resource management among any electronic device in a
networked environment.
[0007] FIG. 2A-B depicts example diagrams showing how virtual
memory sharing and database management enables peer-to-peer
distribution of information in a network among any type of
electronic devices and among mobile devices such as mobile
phones/smart phones or tablet devices.
[0008] FIG. 3 depicts a block diagram illustrating an example of
components in a host server which is able to manage resource
sharing and generation of virtual resources from devices in a
networked environment.
[0009] FIG. 4 depicts a table showing an example state profile for
a device having location-based state profiles for resource sharing
and pooling with other devices.
[0010] FIG. 5A-B depicts a table showing virtual resource
allocation to a given device based on device state.
[0011] FIG. 6 depicts an example flow chart for storage sharing
among two devices.
[0012] FIG. 7 depicts an example flow chart for resource sharing
among devices in a network.
[0013] FIG. 8 depicts an example flow chart for managing sharing of
physical memory among devices.
[0014] FIG. 9 shows a diagrammatic representation of a machine in
the example form of a computer system within which a set of
instructions, for causing the machine to perform any one or more of
the methodologies discussed herein, may be executed.
DETAILED DESCRIPTION
[0015] The following description and drawings are illustrative and
are not to be construed as limiting. Numerous specific details are
described to provide a thorough understanding of the disclosure.
However, in certain instances, well-known or conventional details
are not described in order to avoid obscuring the description.
References to one or an embodiment in the present disclosure can
be, but not necessarily are, references to the same embodiment;
and, such references mean at least one of the embodiments.
[0016] Reference in this specification to "one embodiment" or "an
embodiment" means that a particular feature, structure, or
characteristic described in connection with the embodiment is
included in at least one embodiment of the disclosure. The
appearances of the phrase "in one embodiment" in various places in
the specification are not necessarily all referring to the same
embodiment, nor are separate or alternative embodiments mutually
exclusive of other embodiments. Moreover, various features are
described which may be exhibited by some embodiments and not by
others. Similarly, various requirements are described which may be
requirements for some embodiments but not other embodiments.
[0017] The terms used in this specification generally have their
ordinary meanings in the art, within the context of the disclosure,
and in the specific context where each term is used. Certain terms
that are used to describe the disclosure are discussed below, or
elsewhere in the specification, to provide additional guidance to
the practitioner regarding the description of the disclosure. For
convenience, certain terms may be highlighted, for example using
italics and/or quotation marks. The use of highlighting has no
influence on the scope and meaning of a term; the scope and meaning
of a term is the same, in the same context, whether or not it is
highlighted. It will be appreciated that same thing can be said in
more than one way.
[0018] Consequently, alternative language and synonyms may be used
for any one or more of the terms discussed herein, nor is any
special significance to be placed upon whether or not a term is
elaborated or discussed herein. Synonyms for certain terms are
provided. A recital of one or more synonyms does not exclude the
use of other synonyms. The use of examples anywhere in this
specification including examples of any terms discussed herein is
illustrative only, and is not intended to further limit the scope
and meaning of the disclosure or of any exemplified term. Likewise,
the disclosure is not limited to various embodiments given in this
specification.
[0019] Without intent to limit the scope of the disclosure,
examples of instruments, apparatus, methods and their related
results according to the embodiments of the present disclosure are
given below. Note that titles or subtitles may be used in the
examples for convenience of a reader, which in no way should limit
the scope of the disclosure. Unless otherwise defined, all
technical and scientific terms used herein have the same meaning as
commonly understood by one of ordinary skill in the art to which
this disclosure pertains. In the case of conflict, the present
document, including definitions will control.
[0020] Embodiments of the present disclosure include systems and
methods for shared resource and virtual resource management in a
networked environment.
[0021] FIG. 1 depicts an example diagram showing resource sharing
and/or virtual resource management among any electronic device
102A-N in a networked environment 150.
[0022] The client devices 102A-N can be any system and/or device,
and/or any combination of devices/systems that is able to establish
a connection, including wired, wireless, cellular connections with
another device, a server and/or other systems such as host server
100 and/or any additional servers. Client devices 102A-N can
typically include a display and/or other output functionalities to
present information and data exchanged between among the devices
102A-N and/or the host server 100.
[0023] For example, the client devices 102A-N can include mobile,
hand held or portable devices or non-portable devices and can be
any of, but not limited to, a server desktop, a desktop computer, a
computer cluster, or portable devices including, a notebook, a
laptop computer, a handheld computer, a palmtop computer, a mobile
phone, a cell phone, a smart phone, a PDA, a Blackberry device, a
Treo, a handheld tablet (e.g. an iPad), a hand held console, a hand
held gaming device or console, an iPhone, a TV set, a setup box, a
cable box, gaming consoles, home audio system components, and/or
any other portable, mobile, hand held devices, etc. In one
embodiment, the client devices 102A-N, host server 100, are coupled
via a network 106. In some embodiments, the devices 102A-N and host
server 100 may be directly connected to one another.
[0024] The devices 102A-N need not be limited to a computer or cell
phone and can generally be any electronic device with memory or
other forms of storage. The devices 102A-N may or may not have its
own processing/computing power/functionality and can include
storage devices (e.g., USB flash drive, disk drive, memory unit,
etc.), or thin clients or dumb devices, or a TV set, or any other
electronic devices (e.g., home appliances, vehicles, etc.) equipped
with network capabilities (e.g., wireless or wired network
capabilities) such that its storage or other types of resources can
be accessed by other devices 102A-N and/or the host server 100. The
client devices A-N may or may not include user interfaces and/or
input/output mechanisms.
[0025] The input mechanisms on client devices 102A-N can include
touch screen keypad (including single touch, multi-touch, gesture
sensing in 2D or 3D, etc.), a physical keypad, a mouse, a pointer,
a track pad, motion detector (e.g., including 1-axis, 2-axis,
3-axis accelerometer, etc.), a light sensor, capacitance sensor,
resistance sensor, temperature sensor, proximity sensor, a
piezoelectric device, device orientation detector (e.g., electronic
compass, tilt sensor, rotation sensor, gyroscope, accelerometer),
or a combination of the above.
[0026] In one embodiment, client devices 102A-N communicate with
the host server 100 and/or each other over network 106, which can
be a cellular network. In general, the network 106, over which the
client devices 102A-N, the host server 100 communicate, may be a
cellular network, a telephonic network, an open network, such as
the Internet, or a private network, such as an intranet and/or the
extranet, or any combination thereof. For example, the Internet can
provide file transfer, remote log in, email, news, RSS, cloud-based
services, instant messaging, visual voicemail, push mail, VoIP, and
other services through any known or convenient protocol, such as,
but is not limited to the TCP/IP protocol, Open System
Interconnections (OSI), FTP, UPnP, iSCSI, NSF, ISDN, PDH, RS-232,
SDH, SONET, etc.
[0027] The network 106 can be any collection of distinct networks
operating wholly or partially in conjunction to provide
connectivity to the client devices 102A-N and the host server 100
and may appear as one or more networks to the serviced systems and
devices. In one embodiment, communications to and from the client
devices 102 can be achieved by, an open network, such as the
Internet, or a private network, such as an intranet and/or the
extranet. In one embodiment, communications can be achieved by a
secure communications protocol, such as secure sockets layer (SSL),
or transport layer security (TLS).
[0028] In addition, communications can be achieved via one or more
networks, such as, but are not limited to, one or more of WiMax, a
Local Area Network (LAN), Wireless Local Area Network (WLAN), a
Personal area network (PAN), a Campus area network (CAN), a
Metropolitan area network (MAN), a Wide area network (WAN), a
Wireless wide area network (WWAN), enabled with technologies such
as, by way of example, Global System for Mobile Communications
(GSM), Personal Communications Service (PCS), Digital Advanced
Mobile Phone Service (D-Amps), Bluetooth, Wi-Fi, Fixed Wireless
Data, 2G, 2.5G, 3G, 4G, IMT-Advanced, pre-4G, 3G LTE, 3GPP LTE, LTE
Advanced, mobile WiMax, WiMax 2, WirelessMAN-Advanced networks,
enhanced data rates for GSM evolution (EDGE), General packet radio
service (GPRS), enhanced GPRS, iBurst, UMTS, HSPDA, HSUPA, HSPA,
UMTS-TDD, 1xRTT, EV-DO, messaging protocols such as, TCP/IP, SMS,
MMS, extensible messaging and presence protocol (XMPP), real time
messaging protocol (RTMP), instant messaging and presence protocol
(IMPP), instant messaging, USSD, IRC, or any other wireless data
networks or messaging protocols.
[0029] One embodiment of the present disclosure includes resource
sharing and virtual resource management such as virtual memory and
virtual memory sharing among multiple devices 102A-N, etc. having
local storage such as memory, hard disk storage, flash memory,
database storage, and/or cache. The devices 102A-N, etc. can
generally be any device or electronic appliance, unit, gadget, and
can also include mobile devices such as mobile Smart phones, PDA,
cellular phones, tablets, PCs, laptops and the like.
[0030] The resources such as virtual memory/virtual storage can be
aggregated from the storage components (e.g., database, memory,
hard disk, flash, etc.) of each device 102A-N, etc. and shared for
use across each device such that each device 102A-N is not limited
in storage or memory capacity to the physical size of the local
memory present on each device (e.g., a larger pool of resources can
be leveraged by each device and information can be stored and
shared more efficiently). The virtual resource or virtual memory
includes various aspects of shared network, resource, database
elements, and other information, in addition to the physical memory
located and aggregated from each device 102A-N, etc.
[0031] Virtual resources/memory can also be used to manage shared
data, for example, such that any shared information among the
devices 102A-N, etc. need not be stored multiple times on multiple
devices. Specifically, virtual memory and shared databases can be
allocated based on certain commonalities between devices 102A-N,
etc. Examples of commonalities include co-location, functionality,
features, associated users, software capabilities, hardware
capabilities, etc. Database parameters and/or shared database
parameters can be used to track commonalities between devices
102A-N, etc. as a temporal function, spatial function, or a
combination thereof.
[0032] Virtual memory/virtual resources need not be used for
sharing information. For example, virtual memory may simply be a
pool of aggregated memory or cache for use by each device (e.g.,
co-located device) when there is a need (e.g., due to constraints
of local storage, memory space). For example, a virtual memory
manager may determine that one device in a particular shared memory
environment is running low on physical memory or storage space and
thus allocate some memory on another device or other devices for
temporary or long term use by the device running low on memory.
Such allocation and assignment can be location based. In one
embodiment, device functionality may be enabled or changed based on
location or co-location, in accordance with information stored in
the virtual memory manager (e.g., state-location-functionality
mapping for various devices tracked and managed by a virtual memory
manager).
[0033] Such resource management and sharing by way of virtual
memory allocation and management enables machine-to-machine
dissemination of information and/or shared information for devices
102A-N, etc. having certain commonalities that would cause the
device to need to access, have the need to store the same
information. Machine-to-machine, or device to device, or
peer-to-peer sharing/communication of information, not only
provides savings on storage space but also takes the load off a
backend server and radio network or other network which now can
provide the updated data or content to one device. The updated
content can then be provided by the one device to other devices
102A-N, etc. in the network environment 150.
[0034] In one embodiment, the host server 100 can manage and/or
track the resource sharing among at least some of the devices
102A-N. For example, the host server 100 can track or determine
availability/status/state of physical memory and allocate resources
(e.g., memory, database, hard disk) on one device to another
device, based on various criteria (e.g., device software/hardware
compatibility, co-location, similar functionality, similar
installed application, same users, etc.). The host server 100 can
track the sharing of resources among devices 102A-N, use of the
shared resources and availability. The components of the host
server 100 are further illustrated in the example of FIG. 3.
[0035] Example configurations for peer-to-peer information sharing
in a network enabled via resource sharing and caching are
illustrated in FIG. 2A-B. FIG. 2A-B depicts example diagrams
showing how resource sharing including memory sharing and database
management enables peer-to-peer distribution of information in a
network among any type of electronic devices 202A-N and among
mobile devices such as mobile phones/smart phones or tablet devices
222A-N.
[0036] Device X 202A can receive, content or updates from an
external device (not shown in FIG. 2A) such as the host server
(e.g., host server 100, 200, in the examples of FIG. 1-2), or a
content provider/application server via a cellular network or other
network. The device 202A belongs to an environment where memory or
other resources are is shared and allocated among multiple devices
(Device X, Device Y, Device Z, etc.). Based on some commonality,
for example, temporal, geographical, functional, similarities, the
information received by Device 202A may be relevant to one or more
of the other Devices 202B, etc, in the same networked environment
of shared resources/memory/storage.
[0037] The information can then be provided to (push, pull, or a
combination thereof) by Device X, to any of the other Devices which
may need the same information. The other devices (e.g., Device Y,
Z, N, etc.) now need not request and receive the same information
from a host server or app server/content provider. Devices can
share information in the virtual memory pool using any
communications interface including but not limited to cellular,
mobile network, Wifi, Bluetooth, LAN, USB, Firewire, etc.
Commonalities can include location or geo-location since locations
may generally be associated with certain useful parameters.
[0038] Devices located in a kitchen versus a bedroom or a car may
need different parameters and/or information. For example, multiple
devices (e.g., a stove, a microwave, refrigerator, etc.) may have
the need for information such as a timer information, ambient
temperature information, stove, time left to cook, etc. Devices
located in a vehicle may have a need for different types of
parameters, such as contacts on contact book, maps, GPS data,
driver-specific information, etc.
[0039] Furthermore, devices (e.g., Smart phones or mobile phones
222A-N) with same operating systems use same types of OS files and
may share such information. Similarly, devices with the same
applications installed can share some application program files,
and/or user data if the users are also the same. Similar/same
temporal (time of a request, time of a poll, day of week, time of
day, etc.) and/or spatial (e.g., co-location, same/similar
geo-location) characteristics can result in some shared information
and content among mobile devices 222A-N; such parameters and
information sharing can be tracked by proxies on each device or on
one or more devices in a shared resource environment or shared
memory environment.
[0040] FIG. 3 depicts a block diagram illustrating an example of
components in a host server 300 (e.g., server 100 or 200 of the
examples of FIG. 1-FIG. 2) which is able to manage resource sharing
and generation of virtual resources from devices in a networked
environment.
[0041] One embodiment of the host server 300 includes, a network
interface 320, a virtual memory manager 304, a virtual storage
manager 306, a distributed database manager 308, a device state
tracking engine 312 having a device state profile generator 313,
and/or a device commonality detector 314.
[0042] Some or all of the components of the host server 300 can, in
part or in whole, or the associated functions thereof, be performed
by the devices from which virtual resources are aggregated. The
managing/tracking of the virtual resources and the resource sharing
can in part or in whole be performed by the host server 300.
Additional or less components/modules/engines can be included in
the host server 300 and each illustrated component.
[0043] The resource sharing manager 302 can, for example, identify
or detect available resources among devices. The resource sharing
manager 302 can also detect, or track the state/status of resources
among devices in managing pooled virtual resources or in locating
available resources to be shared. For example, the virtual memory
manager 304 can manage memory sharing across devices, the virtual
storage manager can manage storage cross devices and the database
manager can manage database, database element or parameter sharing
across devices or systems.
[0044] In some instances, devices can take upon different states
under different conditions (e.g., time, location, device operation
mode, application which is launched or running, etc.). Device state
can affect resource sharing and as such can be tracked by tracking
engine 312. For example, when a device is in different physical
locations, it thus has the ability to share resources with
different sets of devices. When a device is running a given
application, certain information may be suited to access, retrieval
or storage with certain other devices running the same or similar
applications The device state profile generator 313 can thus
generate a device state profile for use in pooling resources and
allocating resources to other devices at a given point in time
and/or location. An example of a device state profile 402 based on
device location is illustrated in the example of FIG. 4.
[0045] Furthermore, since device resources can be shared wirelessly
based on commonalities, the device commonality detector 314 can
detect any of the commonalities including, one or more of,
functionality, device type, location, or user.
[0046] The network interface 320 can be a networking module that
enables the device 250 to mediate data in a network with an entity
that is external to the host server 250, through any known and/or
convenient communications protocol supported by the host and the
external entity. The network interface 320 can include one or more
of a network adaptor card, a wireless network interface card (e.g.,
SMS interface, WiFi interface, interfaces for various generations
of mobile communication standards including but not limited to 1G,
2G, 3G, 3.5G, 4G, LTE, etc.,), Bluetooth, a router, an access
point, a wireless router, a switch, a multilayer switch, a protocol
converter, a gateway, a bridge, bridge router, a hub, a digital
media receiver, and/or a repeater.
[0047] As used herein, a "module," "a manager," a "handler," a
"detector," an "interface," or an "engine" includes a general
purpose, dedicated or shared processor and, typically, firmware or
software modules that are executed by the processor. Depending upon
implementation-specific or other considerations, the module,
manager, hander, or engine can be centralized or its functionality
distributed. The module, manager, hander, or engine can include
general or special purpose hardware, firmware, or software embodied
in a computer-readable (storage) medium for execution by the
processor. As used herein, a computer-readable medium or
computer-readable storage medium is intended to include all mediums
that are statutory (e.g., in the United States, under 35 U.S.C.
101), and to specifically exclude all mediums that are
non-statutory in nature to the extent that the exclusion is
necessary for a claim that includes the computer-readable (storage)
medium to be valid. Known statutory computer-readable mediums
include hardware (e.g., registers, random access memory (RAM),
non-volatile (NV) storage, to name a few), but may or may not be
limited to hardware.
[0048] FIG. 4 depicts a table showing an example state profile 402
for a device having location-based state profiles for resource
sharing and pooling with other devices.
[0049] Note that device state profiles, in addition to being
location-based, can also be time-based or include a timing
parameter. Device state profiles can also include information
regarding device state (e.g., on, off, background, foreground),
current user, applications installed, applications launched,
etc.
[0050] FIG. 5A-B depicts tables showing virtual resource allocation
to a given device based on device state. Table 502 illustrates
virtual memory allocation to Device X including Device X's own
memory and those of other devices allocated to Device X for each
state (state profiles 1-5) of device X. Table 522 illustrates
database allocation to device X for each state (state profile 1-5)
including Device X's own database and those of other devices
(Device 2, 3, 5, 6, and 7) allocated to Device X.
[0051] FIG. 6 depicts an example flow chart for storage sharing
among two devices.
[0052] In process 602, storage needs of a first device are
offloaded to a second device among two devices coupled in a
wireless network. The storage needs can be determined from various
scenarios, including by way of example, lack of availability of
physical storage space on the first device, and/or availability of
physical storage space on the second device. Storage needs can also
be determined from shared data or information between the two
devices.
[0053] In one embodiment, the data can be shared as a result of
co-location of the two devices, or other shared commonality, such
as similar/same functionality, same user, same user groups, same
applications installed, same/similar operating systems, similar
network services providers, etc. In process 604, data for use at
the first device is transmitted over the wireless network to be
stored at the second device. The storage that is shared can include
databases, memory (volatile and/or non-volatile), SD card, flash
memory, hard disk storage, etc.
[0054] In process 606, which portion of the data for use at the
first device is stored at the second device is tracked. The
tracking can be performed by the first device, and/or by a server
in the wireless network (e.g., host server 100 shown in the example
if FIG. 1). In process 608, storage is shared among two devices in
the wireless network. Note that the wireless network can include
any wireless network including, by way of example but not
limitation, Wifi, office network, or home network, mobile network
or cellular network, Bluetooth or other near field wireless
connections. In some instances, the devices can also share some or
all storage/resources via a wired connections some or all of the
times.
[0055] FIG. 7 depicts an example flow chart for resource sharing
among devices in a network.
[0056] In process 702, a first device, wirelessly accesses device
resources of a second device in the network. In process 704, data
for use by the first device is retrieved or stored using the device
resources of a second device wirelessly accessed by the first
device. In process 706, the second device, wirelessly accesses
device resources of the first device in the network. In process
708, data for use by the second device is retrieved or stored using
the device resources of the first device wirelessly accessed by the
second device.
[0057] The devices among which resources are shared can be selected
by random or can be selected based on some commonality or need. For
example, the devices among which resources are shared are similar
or same types of devices (e.g., smart phones, laptops, general
purpose appliances, vehicles, home appliances, general purpose
electronics, or storage devices, etc.). The devices among which
resources are shared can have same or similar functionalities
(e.g., are mobile phones, tablets, Smartphones, are cellular
phones, are servers, run on Windows OS, run on OS X, runs on iOS),
have certain applications installed, etc.
[0058] In one embodiment, the devices among which resources are
shared are co-located or are geographically proximate to one
another and/or are connected to or have access to a same network
(e.g., Wifi network, home network, office network, Internet service
provider, cellular network, Bluetooth network, same network
operator, etc.). In some instances, the devices among which
resources are shared wirelessly have a same user or groups of
users. For example, a user's mobile phone may share resources with
the same user's laptop computer or tablet when in close proximity
such that data can be cross accessed.
[0059] FIG. 8 depicts an example flow chart for managing sharing of
physical memory among devices.
[0060] In process 802, an aggregation of the physical memory of
devices is generated. In process 804, a virtual memory pool is
created from the aggregation of physical memory. The aggregation of
physical memory into the virtual memory pool can be performed by a
server managing the resource sharing among the devices, or
performed by one or more of the devices among those sharing
resources. The server can also manage, track, the resource/memory
sharing among some of all devices, for example, thin clients or
storage devices with little or no processing capabilities.
[0061] In process 806, portions of the virtual memory pool are
allocated to a given device among the devices. The allocation can
be performed by a server or by any of the devices among the devices
sharing resources. In process 808, the portions of the virtual
memory pool allocated to the given device, are accessed by the
given device over a wireless connection (e.g., Wifi, cellular,
Bluetooth, etc.) for data retrieval and storage.
[0062] In one embodiment, the portions of the virtual memory pool
allocated to the one device include physical memory located on
other devices among the devices. The other devices having the
physical memory which is a part of the portions of the virtual
memory pool allocated to the one device, can, for example, share a
common feature with the one device. The common feature can include
one or more of, functionality, device type, location, or user.
[0063] FIG. 9 shows a diagrammatic representation of a machine in
the example form of a computer system within which a set of
instructions, for causing the machine to perform any one or more of
the methodologies discussed herein, may be executed.
[0064] In alternative embodiments, the machine operates as a
standalone device or may be connected (e.g., networked) to other
machines. In a networked deployment, the machine may operate in the
capacity of a server or a client machine in a client-server network
environment, or as a peer machine in a peer-to-peer (or
distributed) network environment.
[0065] The machine may be a server computer, a client computer, a
personal computer (PC), a user device, a tablet PC, a laptop
computer, a set-top box (STB), a personal digital assistant (PDA),
a cellular telephone, an iPhone, an iPad, a Blackberry, a
processor, a telephone, a web appliance, a network router, switch
or bridge, a console, a hand-held console, a (hand-held) gaming
device, a music player, any portable, mobile, hand-held device, or
any machine capable of executing a set of instructions (sequential
or otherwise) that specify actions to be taken by that machine.
[0066] While the machine-readable medium or machine-readable
storage medium is shown in an exemplary embodiment to be a single
medium, the term "machine-readable medium" and "machine-readable
storage medium" should be taken to include a single medium or
multiple media (e.g., a centralized or distributed database, and/or
associated caches and servers) that store the one or more sets of
instructions. The term "machine-readable medium" and
"machine-readable storage medium" shall also be taken to include
any medium that is capable of storing, encoding or carrying a set
of instructions for execution by the machine and that cause the
machine to perform any one or more of the methodologies of the
presently disclosed technique and innovation.
[0067] In general, the routines executed to implement the
embodiments of the disclosure, may be implemented as part of an
operating system or a specific application, component, program,
object, module or sequence of instructions referred to as "computer
programs." The computer programs typically comprise one or more
instructions set at various times in various memory and storage
devices in a computer, and that, when read and executed by one or
more processing units or processors in a computer, cause the
computer to perform operations to execute elements involving the
various aspects of the disclosure.
[0068] Moreover, while embodiments have been described in the
context of fully functioning computers and computer systems, those
skilled in the art will appreciate that the various embodiments are
capable of being distributed as a program product in a variety of
forms, and that the disclosure applies equally regardless of the
particular type of machine or computer-readable media used to
actually effect the distribution.
[0069] Further examples of machine-readable storage media,
machine-readable media, or computer-readable (storage) media
include, but are not limited to, recordable type media such as
volatile and non-volatile memory devices, floppy and other
removable disks, hard disk drives, optical disks (e.g., Compact
Disk Read-Only Memory (CD ROMS), Digital Versatile Disks, (DVDs),
etc.), among others, and transmission type media such as digital
and analog communication links.
[0070] The network interface device enables the machine 1100 to
mediate data in a network with an entity that is external to the
host server, through any known and/or convenient communications
protocol supported by the host and the external entity. The network
interface device can include one or more of a network adaptor card,
a wireless network interface card, a router, an access point, a
wireless router, a switch, a multilayer switch, a protocol
converter, a gateway, a bridge, bridge router, a hub, a digital
media receiver, and/or a repeater.
[0071] The network interface device can include a firewall which
can, in some embodiments, govern and/or manage permission to
access/proxy data in a computer network, and track varying levels
of trust between different machines and/or applications. The
firewall can be any number of modules having any combination of
hardware and/or software components able to enforce a predetermined
set of access rights between a particular set of machines and
applications, machines and machines, and/or applications and
applications, for example, to regulate the flow of traffic and
resource sharing between these varying entities. The firewall may
additionally manage and/or have access to an access control list
which details permissions including for example, the access and
operation rights of an object by an individual, a machine, and/or
an application, and the circumstances under which the permission
rights stand.
[0072] Other network security functions can be performed or
included in the functions of the firewall, can be, for example, but
are not limited to, intrusion-prevention, intrusion detection,
next-generation firewall, personal firewall, etc. without deviating
from the novel art of this disclosure.
[0073] Unless the context clearly requires otherwise, throughout
the description and the claims, the words "comprise," "comprising,"
and the like are to be construed in an inclusive sense, as opposed
to an exclusive or exhaustive sense; that is to say, in the sense
of "including, but not limited to." As used herein, the terms
"connected," "coupled," or any variant thereof, means any
connection or coupling, either direct or indirect, between two or
more elements; the coupling of connection between the elements can
be physical, logical, or a combination thereof. Additionally, the
words "herein," "above," "below," and words of similar import, when
used in this application, shall refer to this application as a
whole and not to any particular portions of this application. Where
the context permits, words in the above Detailed Description using
the singular or plural number may also include the plural or
singular number respectively. The word "or," in reference to a list
of two or more items, covers all of the following interpretations
of the word: any of the items in the list, all of the items in the
list, and any combination of the items in the list.
[0074] The above detailed description of embodiments of the
disclosure is not intended to be exhaustive or to limit the
teachings to the precise form disclosed above. While specific
embodiments of, and examples for, the disclosure are described
above for illustrative purposes, various equivalent modifications
are possible within the scope of the disclosure, as those skilled
in the relevant art will recognize. For example, while processes or
blocks are presented in a given order, alternative embodiments may
perform routines having steps, or employ systems having blocks, in
a different order, and some processes or blocks may be deleted,
moved, added, subdivided, combined, and/or modified to provide
alternative or subcombinations. Each of these processes or blocks
may be implemented in a variety of different ways. Also, while
processes or blocks are at times shown as being performed in
series, these processes or blocks may instead be performed in
parallel, or may be performed at different times. Further, any
specific numbers noted herein are only examples: alternative
implementations may employ differing values or ranges.
[0075] The teachings of the disclosure provided herein can be
applied to other systems, not necessarily the system described
above. The elements and acts of the various embodiments described
above can be combined to provide further embodiments.
[0076] Any patents and applications and other references noted
above, including any that may be listed in accompanying filing
papers, are incorporated herein by reference. Aspects of the
disclosure can be modified, if necessary, to employ the systems,
functions, and concepts of the various references described above
to provide yet further embodiments of the disclosure.
[0077] These and other changes can be made to the disclosure in
light of the above Detailed Description. While the above
description describes certain embodiments of the disclosure, and
describes the best mode contemplated, no matter how detailed the
above appears in text, the teachings can be practiced in many ways.
Details of the system may vary considerably in its implementation
details, while still being encompassed by the subject matter
disclosed herein. As noted above, particular terminology used when
describing certain features or aspects of the disclosure should not
be taken to imply that the terminology is being redefined herein to
be restricted to any specific characteristics, features, or aspects
of the disclosure with which that terminology is associated. In
general, the terms used in the following claims should not be
construed to limit the disclosure to the specific embodiments
disclosed in the specification, unless the above Detailed
Description section explicitly defines such terms. Accordingly, the
actual scope of the disclosure encompasses not only the disclosed
embodiments, but also all equivalent ways of practicing or
implementing the disclosure under the claims.
[0078] While certain aspects of the disclosure are presented below
in certain claim forms, the inventors contemplate the various
aspects of the disclosure in any number of claim forms. For
example, while only one aspect of the disclosure is recited as a
means-plus-function claim under 35 U.S.C. .sctn.112, 6, other
aspects may likewise be embodied as a means-plus-function claim, or
in other forms, such as being embodied in a computer-readable
medium. (Any claims intended to be treated under 35 U.S.C.
.sctn.112, 6 will begin with the words "means for".) Accordingly,
the applicant reserves the right to add additional claims after
filing the application to pursue such additional claim forms for
other aspects of the disclosure.
* * * * *