This application is related to PCT Patent Application Ser. No. PCT/US2012/057438, entitled “Sharing Content Between Collocated Mobile Devices in an Ad-Hoc Private Social Group”, filed on Sep. 27, 2012, assigned to the assignee of the present application and incorporated by reference herein.
The proliferation of the Internet has facilitated the sharing and distribution of content like never before. Users now flock to websites, search engines, and social networks to access and share content from multiple devices and locations around the world. The devices may include personal and portable computers, phones, tablets, video game consoles, personal digital assistants, smart TVs, printers, or any device configured to access the Internet. The access may be wired or wireless, with wireless access growing much faster. It is predicted that by 2016 there will be more wireless devices than people in the world.
Along with the rise in popularity if wireless services, there has been a growing demand for content sharing platforms that are targeted specifically for the mobile user. These include, for example, Instagram for sharing photos, Foursquare for sharing location information, Facebook Mobile and Google+ Mobile for sharing documents, among others. These content sharing platforms enable users to easily share content among their social network peers. However, they are not optimized to let users share and interact with content instantly and securely in real-time in social groups in arbitrary devices.
The present application may be more fully appreciated in connection with the following detailed description taken in conjunction with the accompanying drawings, in which like reference characters refer to like parts throughout, and in which:
A content sharing platform for pairing arbitrary devices for sharing content between the devices is disclosed. The content sharing platform enables users in a content group to share, collaborate, and interact with content seamlessly across mobile devices in real-time. The mobile devices may be physically collocated in a physical venue such as, for example, a conference or meeting room, or located remotely. The content group may be formed by invitation or by automatically discovering the users' location.
In various examples, the content sharing platform may be accessed from a web page without any plug-ins and across any number of devices, operating systems, and browsers. The content sharing platform may also support numerous form factors, all the way from big projector screens down to small screen sizes in mobile phones. Users of the content sharing platform may share, interact and collaborate with content in real-time.
As described in more detail herein below, a user of a first device (e.g., compute, laptop, tablet, phone, etc.) can seamlessly and securely push content via the web to a second device such as a smart display (e.g., smart TV, monitor, etc.) or a printer. The content is pushed by having the first device read an encoded URL (e.g., Quick Response (“QR”) code, Near Field Communication (“NFC”) tag, etc.) associated with the second device, provide a content group identifier to the second device, and notify the second device that content is ready to be pushed to the second device through the content group. The second device can be any device capable of connecting to the Internet. In the case of the second device being a smart display, the device has a web browser that allows it to open up a URL associated with the content sharing platform that enables content sharing in a content group. In the case of the second device being a printer, the device is connected to a printer spooler service that enables content from a content group to be shared with the printer for printing.
As described in more detail below, the content sharing platform has three main modules: (1) a web-based user interface module to enable users to share, interact and collaborate with content in a content group; (2) a real-time messaging module to process events and messages between devices to be paired; and (3) a content sharing module to interact with the real-time messaging module to push content from a content group from a first device to a second device by accessing, at the first device, an encoded URL associated with the second device.
It is appreciated that, in the following description, numerous specific details are set forth to provide a thorough understanding of various examples. However, it is appreciated that the examples may be practiced without limitation to these specific details. In other instances, well known methods and structures may not be described in detail to avoid unnecessarily obscuring the description of the examples. Also, the examples may be used in combination with each other.
Referring now to
In doing so, user 100a would like the sharing of web page 105 with smart display 115 and printer 120 to be as seamless and secure as possible, so that only those allowed to see the content are able to do so. The smart display 115 and printer 120 are both equipped to connect to the Internet. Instead of having to hookup his/her device to the smart display 115 or access a printing application in his/her device, user 100a is able to access a web-based user interface module (described in more detail herein below) to share the web page 105 with the smart display 115 and/or printer 120, relying solely on the Internet capabilities of the smart display 115 and printer 120. All that is required of smart display 115 and printer 120 to receive the web page 105 (or any other content shared by user 100a) is an Internet connection.
In various examples, the users 100a-b share content in a content group that may be formed by invitation or by automatically discovering the users' location (e.g., via GPS or Wi-Fi positioning). The content group is identified by a reference identifier, such as, for example, a URL that can be shared with users in the group by email, Short Message Service (“SMS”), Quick Response (“QR”) code, Near Field Communication (“NFC”) tags, local group broadcast, or any other channel that may be used to communicate a URL. As described in more detail herein below, the URL directs the users 100a-c to a web-based user interface that enables them to share, interact and collaborate with content seamlessly in real-time from their devices 110a-c. User 100d may view the content displayed in smart display 115 or printed in printer 120.
Referring now to
Next, the first device provides a content group identifier to the second device (205). The encoded URL encodes a device URL associated with the second device and it is used to communicate references to content groups containing content on other devices. The device URL encodes a unique device identifier for the second device as well as a web socket channel for communication with the first device. This web socket channel is referred to herein as a device channel. As described in more detail below with reference to
Next, the second device is then notified that content is ready to be pushed to the second device from the first device through the content group (210). The first device sends a group content identifier (e.g., a name associated with the content group) to the second device through the device channel. The second device, upon receiving the content group identifier, subscribes to a web socket channel associated with the content group to receive the content. This web socket channel associated with the content group is referred to herein as the content group channel.
Lastly, the content in the content group is pushed from the first device to the second device through the content group (215). The content is pushed by having the first device send references (e.g., URLs) to the content in the content group to the second device via the content group channel. The second device receives the references, downloads the content from the references, and either displays it in the case of a smart display or sends it to a spooler service in the case of a printer. It is appreciated that the first device does not know—and does not need to know—what kind of device it is being paired with. All notifications and content are sent through web socket channels (i.e., the device channel and the content group channel) and the first device does not care what device is on the other side of the the second device.
Attention is now directed to
Next, as shown in
The user's device then starts presenting content in the content group (345), and the paired device receives references (e.g., URLs) to the content in the content group channel it is subscribed to (350). The paired device then downloads the content from the references (355). In the case of a smart display, the content is downloaded from the references and displayed in a browser of the smart display (360). In the case of a printer, the content is sent to a spooler service (365). Lastly, when the user desires to stop the sharing of content with the paired device, the user's device sends a notification to the paired device on the device channel (370). The paired device receives the notification and unsubscribes from the content group channel to stop displaying or printing the content from the first device (375).
Referring now to
It is appreciated that the proxy server 425 may be deployed as part of a cloud service and optionally be collocated with the web server 420. It is also appreciated that having proxy server 425 issue consistent URLs enables cookies issued by the various content sharing platform 400 modules to be shared among the modules. The web server 420 may also be a web sever (e.g., an Apache 2 server) with minimal dependencies on images and external libraries to facilitate replication and load balance. In an example implementation, the web server 420 may use the jQuery library to make Ajax calls and the html 5 web sockets library to make socket calls to the Real-Time Messaging Module 410.
The User Interface Module 405 enables users to share, interact, and collaborate with content in a content group. The Real-Time Messaging Module 410 is responsible for processing events and messages between devices to be paired, e.g., between a first device such as devices 430-445 and a second device such as a smart display or a printer. The Content Sharing Module 420 interacts with the Real-Time Messaging Module 410 to push content from a first device to a second device through a content group.
In various examples, the Real-Time Messaging Module 410 may be implemented as a Node.Js server with two types of Application Programming Interfaces (“APIs”): a standard HTTP/Post/Get/Rest API and a WebSocket API through the html 5 web sockets library. The two APIs enable various web clients (e.g., the mobile devices 430-445) to push events and messages through the Real-Time Messaging Module 410. The WebSocket API is used to receive notifications and messages in real-time. In one example, the Rest API may also be used for this purpose but with a loss in efficiency. The Content Sharing Module 415 may be implemented as a set of Linux scripts using ImageMagick, OpenOffice, Poppler, and Ghostscript.
It is appreciated that the content sharing platform 400 may have additional modules not shown in
Attention is now directed to
The user interface 500 is a cross-platform user interface that may be run on any web browser and platform, including, but not limited to, web browsers such as Internet Explorer, Mozilla Firefox, Google Chrome, and Safari, and platforms such as iOS and Android, among others. In addition, the same user interface 500 is run on different types of mobile devices, e.g., desktops, laptops, tablets, mobile phones, and so on. As appreciated by one skilled in the art, there may be some minor customizations done at the web browser client with regards to image resolution, compression, and other features tied to the mobile devices' display.
In order to share the content of the web page 510 with a second device (e.g., smart display or printer), the user follows the steps described above with reference to
Attention is now directed to
Once the user of the first device 600 accesses the encoded device URLs 620-625 (e.g., by reading the encoded device URLs 620-625 with a QR code reader and opening them in a web browser), the user is redirected to a web page associated with the content sharing platform to identify a content group (e.g., through a cookie). The smart display 610 and the printer 615 are then notified that content is ready to be pushed from the user's device 600. The content in the content group is then pushed from the user's device 600 to the smart display 610 and printer 615. It is appreciated that in the case of the smart display 610, content is automatically displayed in the smart display 610 when the web socket channel between the user's device 600 and the smart display 610 is notified of new content in the content group. In the case of the printer 615, the content in the content group is sent to the printer 615 through the spooler service 630 when the user presses a print button (e.g., print button 520 shown in
As described above, the modules used in the content sharing platform 400 of
A machine (e.g., a computing device) can include and/or receive a tangible non-transitory computer-readable medium 720 storing a set of computer-readable instructions (e.g., software) via an input device 725. As used herein, the processor 605 can include one or a plurality of processors such as in a parallel processing system. The memory can include memory addressable by the processor 705 for execution of computer readable instructions. The non-transitory computer readable medium 720 can include volatile and/or non-volatile memory such as a random access memory (“RAM”), magnetic memory such as a hard disk, floppy disk, and/or tape memory, a solid state drive (“SSD”), flash memory, phase change memory, and so on. In some examples, the non-volatile memory 715 can be a local or remote database, including a plurality of physical non-volatile memory devices.
The processor 705 can control the overall operation of the computing system 700. The processor 705 can ne connected to a memory controller 730, which can read and/or write data from and/or to volatile memory 710 (e.g., RAM). The memory controller 730 can include an ASIC and/or a processor with its own memory resources (e.g., volatile and/or non-volatile memory). The volatile memory 710 can include one or a plurality of memory modules (e.g., chips). The processor 705 can be connected to a bus 735 to provide communication between the processor 705, the network connection 740, and other portions of the computing system 700. The non-volatile memory 715 can provide persistent data storage for the computing system 700. Further, the graphics controller 745 can connect to a display 750.
Each computing system 700 can execute computer-readable instructions that are stored on a non-transitory computer-readable medium 720. The non-transitory computer-readable medium 720 can be integral, or communicatively coupled, to computing device 700, in either a wired or wireless manner. For example, the non-transitory computer-readable medium 720 can be an internal memory, a portable memory, a portable disk, or a memory located internal to another computing resource (e.g., enabling the computer-readable instructions to be downloaded over the internet).
The non-transitory computer-readable medium 720 can have computer-readable instructions 755 stored thereon that are executed by the processor 705 to implement the modules of content sharing platform 400 (e.g., User Interface Module 400, Real-Time Messaging Module 410, Content Sharing Module 415, etc.) according to the present disclosure. The non-transitory computer-readable medium 720, as used herein, can include volatile and/or non-volatile memory. Volatile memory can include memory that depends upon power to store information, such as various types of dynamic random access memory (“DRAM”), among others. Non-volatile memory can include memory that does not depend upon power to store information. Examples of non-volatile memory can include solid state media such as flash memory, EEPROM, and phase change random access memory (“PCRAM”), among others. The non-transitory computer-readable medium 620 can include optical discs, digital video discs (“DVD”), Blu-Ray Discs, compact discs (“CD”), laser discs, and magnetic media such as tape drives, floppy discs, and hard drives, solid state media such as flash memory, EEPROM, PCRAM, as well as any other type of computer-readable medium.
Advantageously, the methods and modules of the content sharing platform 300 presented herein enable users to share content with other devices seamlessly and securely. The content sharing platform 400 is compatible with many types of mobile devices (e.g., laptops, mobile phones, tablets, etc.), operating systems (iOS, Android, etc.), web browsers (e.g., Internet Explorer, Mozilla Firefox, Safari, Google Chrome, etc.), and screen sizes (e.g., small to large). Users may instantly access the content sharing platform 300 without requiring any prior configuration. The content sharing platform 400 provides an interactive and collaborative content sharing experience, all with instant access and set-up. Users may send content to a smart display and to a printer by relying solely on the Internet capabilities of the display and printer. There is no need for the user to connect his/her device directly to the smart display. There is also no need for the user to download a printing application in his device—all the user has to do is get the encoded URL associated with the printer and press the print button within the user interface (e.g., user interface 500) of the content sharing platform.
It is appreciated that the previous description of the disclosed examples is provided to enable any person skilled in the art to make or use the present disclosure. Various modifications to these examples will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other examples without departing from the spirit or scope of the disclosure. Thus, the present disclosure is not intended to be limited to the examples shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein. For example, it is appreciated that the present disclosure is not limited to a particular computing system configuration, such as computing system 700.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2013/035133 | 4/3/2013 | WO | 00 |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO2014/163631 | 10/9/2014 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
8823494 | Kovitz | Sep 2014 | B1 |
20050108299 | Nakajima | May 2005 | A1 |
20100138797 | Thorn | Jun 2010 | A1 |
20100278345 | Alsina | Nov 2010 | A1 |
20120030584 | Bian | Feb 2012 | A1 |
20120036225 | Chor | Feb 2012 | A1 |
20120059875 | Clark | Mar 2012 | A1 |
20120066602 | Chai et al. | Mar 2012 | A1 |
20120238216 | Hallowell et al. | Sep 2012 | A1 |
20120282914 | Alexander | Nov 2012 | A1 |
20120287022 | Queen | Nov 2012 | A1 |
20130055323 | Venkitaraman | Feb 2013 | A1 |
20130191762 | Rajagopalan | Jul 2013 | A1 |
20140187149 | Lortz | Jul 2014 | A1 |
Number | Date | Country |
---|---|---|
2007257179 | Oct 2007 | JP |
2010267073 | Nov 2010 | JP |
2012128569 | Jul 2012 | JP |
Entry |
---|
International Searching Authority, The International Search Report and the Written Opinion, dated Jan. 9, 2014, 10 Pages. |
Panasonic Smart TV System 2012 Review, (Web Page), Retrieved Sep. 28, 2015, 6 Pages. |
Number | Date | Country | |
---|---|---|---|
20160044122 A1 | Feb 2016 | US |