IP Library › Granted Patent US 12,199,983
Granted Patent B2
US 12,199,983 · App. 18/170,203 · Granted Jan 14, 2025

Methods and apparatus for establishing shared memory spaces for data access and distribution

Inventor: Hani Yakan (Houston, TX)
Assignee: PostOak. Today LLC
H04L63/10G06F3/002G06F3/0481G06F9/452G06F21/6218G06F40/166G06K7/1413G06Q30/0267H04L63/102
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,199,983
App. No.
18/170,203
Granted
Jan 14, 2025
Kind
B2
Abstract

In some implementations, methods and apparatuses herein relate to generating shared memory spaces that can share files or applications between users and between user devices. For example, a processor can allocate a first portion of a memory of a client device to serve as a shared memory space for at least one dynamic application object, and instantiating a user interface on a display associated with the client device. The user interface can be based on a content of the shared memory space and representing the at least one dynamic application object. A processor can define access rights for a user of a second electronic device for receiving a copy of the instantiated user interface. The processor can define user rights for the user for use of the at least one dynamic application object with the second electronic device. The at least one dynamic application object can be a data file or a live user experience.

Claims (75)

1. An apparatus, comprising:

a processor; and

a memory coupled to the processor, the memory storing instructions to cause the processor to:

allocate a first portion of a memory of a client device to serve as a shared memory space for at least one dynamic application object; and

instantiate a user interface on a display associated with the client device, the user interface based on a content of the shared memory space and representing the at least one dynamic application object, the user interface instantiating at least one dynamic application object.

2. The apparatus of claim 1 , wherein the client device is a first client device, the memory stores instructions to further cause the processor to:

define, at the first client device, user rights for a user of a second client device to modify the instantiated user interface;

receive instructions from the user to modify content of the instantiated user interface; and

operate on the received instructions in accordance with user rights for the user to modify the instantiated user interface.

3. The apparatus of claim 1 , wherein the client device is a first client device, the memory stores instructions to further cause the processor to:

define, at the first client device, user rights for a user to modify the instantiated user interface;

receive instructions from the user to interact with the at least one dynamic application object; and

operate on said at least one dynamic application object in accordance with user rights for the user to modify the instantiated user interface.

4. The apparatus of claim 1 , wherein the shared memory space is a first shared memory space, the memory stores instructions to further cause the processor to:

maintain, on the client device, a registry of one or more instantiated user interfaces associated with the instantiated user interface of the first shared memory space, the one or more instantiated user interfaces each corresponding to a different shared memory space other than the first shared memory space;

detect receipt of content for the instantiated user interface of the first shared memory space; and

forward a copy of the received content to at least one shared memory space corresponding to an instantiated user interface identified in the registry as associated with the instantiated user interface of the first shared memory space.

5. The apparatus of claim 1 , wherein the client device is a first client device, the memory stores instructions to further cause the processor to:

receive a request from a user to access the at least one dynamic application object via the instantiated user interface; and

send a signal to a second client device, the signal including a copy of the at least one dynamic application object, the signal including instructions to allocate a portion of memory of the second client device as temporary storage for the instantiated user interface, the signal including instructions to store the at least one dynamic application object in the portion of memory of the second client device.

6. The apparatus of claim 1 , wherein:

the client device is a first client device,

the instantiated user interface on a display associated with the first client device is a first user interface,

the memory stores instructions to further cause the processor to:

receive an indication that a user operating a second client device has dragged an icon representing another dynamic application object, that is different from the at least one dynamic application object, displayed on a second user interface, to the first user interface;

send a signal to the second client device instantiating the second user interface, the signal including instructions to send a copy of the dynamic application object to the first client device;

receive a copy of the dynamic application object at the first client device; and

store the copy of the dynamic application object in the portion of memory of the first client device.

7. A non-transitory processor-readable medium storing code representing instructions to be executed by a processor, the code comprising code to cause the processor to:

allocate a portion of a memory of a first compute device to serve as a shared memory space;

instantiate a collaborative work space on the first compute device, the collaborative work space representing content of the shared memory space; and

associate the collaborative work space with a plurality of compute devices that excludes the first compute device such that the collaborative work space is simultaneously accessible to the plurality of compute devices,

the collaborative work space and associated shared memory space operate to augment the memory of each compute device from the plurality of compute devices.

8. The non-transitory processor-readable medium of claim 7 , wherein:

the collaborative work space operates as a common clipboard to each compute device from the plurality of compute devices; and

the common clipboard can receive a paste command from at least one compute device from the plurality of compute devices.

9. The non-transitory processor-readable medium of claim 7 , wherein the collaborative work space is a first collaborative work space that is accessible as a private clipboard for the plurality of compute devices, the code further includes code to cause the processor to:

access a collaborative second work space on a second compute device, the second collaborative work space including at least one dynamic application object;

command a copy operation to copy the at least one dynamic application object from the second collaborative work space; and

command a paste operation to the first collaborative work space, the at least one dynamic application object being placed on the private clipboard and being immediately usable by the first compute device and the plurality of compute devices.

10. The non-transitory processor-readable medium of claim 7 , wherein the code further includes code to cause the processor to:

assigning to the collaborative work space a bar code that identifies and facilitates providing immediate access to the collaborative work space by a compute device from the plurality of compute devices upon a scanning of the bar code by the compute device from the plurality of compute devices.

11. The non-transitory processor-readable medium of claim 10 , wherein the collaborative work space is a first collaborative work space, the code further includes code to cause the processor to:

scan a bar code from a display of a second collaborative work space on the compute device from the plurality of compute devices;

access the second collaborative work space using the scanned bar code for the second collaborative work space;

retrieve a data object from the second collaborative work space;

scan a bar code identifying the first collaborative work space;

access the first collaborative work space using the scanned bar code of the first collaborative work space; and

copy the data object to the first collaborative work space.

12. The non-transitory processor-readable medium of claim 10 , the code further includes code to cause the processor to:

populate the collaborative work space with a file from a memory of the first compute device, and

provide immediate access to the file along with the collaborative work space instantiated upon of the first compute device a scanning a bar code.

13. The non-transitory processor-readable medium of claim 10 , the code further includes code to cause the processor to display the bar code in the collaborative work space of the first compute device.

14. A non-transitory processor-readable medium storing code representing instructions to be executed by a processor, the code comprising code to cause the processor to:

receive a signal indicating a first portion of a memory of a first user device being allocated to serve as a first shared memory space for a first dynamic application object, a first user interface being instantiated on a display associated with the first user device based on a content of the first shared memory space;

receive a signal indicating a first portion of a memory of a second user device being allocated to serve as a second shared memory space for a second dynamic application object, a second user interface being instantiated on a display associated with the second user device based on a content of the second shared memory space; and

cause, on a memory coupled the processor, a registry to be maintained, the registry identifying the first shared memory space and the second shared memory space, the registry including access control information for each of the first shared memory space and the second shared memory space, the access control information defining permission to access the first shared memory space and the second shared memory space by user devices other than the first user device and the second user device.

15. The non-transitory processor-readable medium of claim 14 , the code further comprising code to cause the processor to:

receive, from a third user device, a request to receive a copy of the instantiated first user interface;

approve the request from the third user device with reference to the access control information; and

send a signal to instruct the first user device to share a copy of the instantiated first user interface with the third user device.

16. The non-transitory processor-readable medium of claim 15 , the code further comprising code to cause the processor to:

receive, from the first user device, a signal notifying the server that the first shared memory space has been edited to modify its content of the first dynamic application object; and

send, to the third user device, a signal notifying the third user device that the first shared memory space has been edited.

17. The non-transitory processor-readable medium of claim 14 , the code further comprising code to cause the processor to:

receive requests from a plurality of user devices to receive a copy of the instantiated first user interface;

approve fewer than all of the requests with reference to the access control information; and

send a signal to instruct the first user device to share a copy of the instantiated first user interface with user devices from the plurality of user devices whose requests were approved.

18. The non-transitory processor-readable medium of claim 17 , the code further comprising code to cause the processor to:

receive, from the first user device, a notification that the first shared memory space has been deleted; and

send, to each user device from the plurality of user devices whose requests were approved, a signal to delete shared copies of instantiations of the first user interface from that user devices.

19. The non-transitory processor-readable medium of claim 14 , the code further comprising code to cause the processor to:

receive a request for a copy of the first user interface that is associated with an identification code displayed on the display of the first user interface and captured on a third user device;

approve the request from the third user device; and

send, to the first user device, a signal to instruct the first user device to share a copy of the instantiated first user interface with the third user device.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE NAME OF THE ASSIGNEE PREVIOUSLY RECORDED AT REEL: 62766 FRAME: 714. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Oct 23, 2024
From: YAKAN, HANI
To: POSTOAK.TODAY LLC
Reel/Frame 070807/0771 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 22, 2023
From: YAKAN, HANI
To: POST.OAK TODAY LLC
Reel/Frame 062766/0714 →
Continuity (5)
Continuation 17381852 · Jul 21, 2021
Continuation 16532136 · Aug 5, 2019
Continuation 15456228 · Mar 10, 2017
Provisional Application 62307161 · Mar 11, 2016
Related Publication 20240031366A1 · Jan 25, 2024
References Cited (37)
US 5689664A · Narayanan et al. · 1997 [cited by applicant]
US 5802523A · Jasuja et al. · 1998 [cited by applicant]
US 6629153B1 · Gupta et al. · 2003 [cited by applicant]
US 6772201B2 · Simmon et al. · 2004 [cited by applicant]
US 7328316B2 · Moir et al. · 2008 [cited by applicant]
US 7584416B2 · Beran et al. · 2009 [cited by applicant]
US 7802028B2 · Andersen et al. · 2010 [cited by applicant]
US 8782106B2 · Obata · 2014 [cited by applicant]
US 8825964B1 · Sopka · 2014 [cited by examiner]
US 10375074B2 · Yakan · 2019 [cited by examiner]
US 11102206B2 · Yakan · 2021 [cited by examiner]
US 20030229620A1 · Carlson et al. · 2003 [cited by applicant]
US 20070083813A1 · Lui et al. · 2007 [cited by applicant]
US 20070124382A1 · Hughes · 2007 [cited by applicant]
US 20070255781A1 · Li et al. · 2007 [cited by applicant]
US 20080244059A1 · Bou-ghannam et al. · 2008 [cited by applicant]
US 20090158142A1 · Arthursson · 2009 [cited by examiner]
US 20090172101A1 · Arthursson · 2009 [cited by examiner]
US 20090271588A1 · Barsness et al. · 2009 [cited by applicant]
US 20100122184A1 · Vonog et al. · 2010 [cited by applicant]
US 20110314387A1 · Gold et al. · 2011 [cited by applicant]
US 20120084517A1 · Post et al. · 2012 [cited by applicant]
US 20120124305A1 · Weissman et al. · 2012 [cited by applicant]
US 20130073600A1 · Jenkins · 2013 [cited by examiner]
US 20130073601A1 · Jenkins · 2013 [cited by examiner]
US 20130212485A1 · Yankovich et al. · 2013 [cited by applicant]
US 20130290595A1 · Weissman et al. · 2013 [cited by applicant]
US 20140101310A1 · Savage et al. · 2014 [cited by applicant]
US 20140143516A1 · Dawson et al. · 2014 [cited by applicant]
US 20140282454A1 · Bai et al. · 2014 [cited by applicant]
US 20160062794A1 · Charania · 2016 [cited by applicant]
US 20160132301A1 · Riscutia · 2016 [cited by examiner]
US 20170054659A1 · Ergin et al. · 2017 [cited by applicant]
US 20170068519A1 · Huebra · 2017 [cited by examiner]
US 20220191203A1 · Yakan · 2022 [cited by applicant]
International Search Report mailed on Jul. 3, 2017, for PCT Application No. PCT/US2017/021967, filed on Mar. 10, 2017, 4 pages. [cited by applicant]
Written Opinion of the International Searching Authority mailed on Jul. 3, 2017, for PCT Application No. PCT/US2017/021967, filed on Mar. 10, 2017, 7 pages. [cited by applicant]