The field of the invention relates generally to asynchronous data communication, more particularly, to a system and method for providing asynchronous multi-media communication in a networked environment using a software module on communication devices.
Social networking and social commerce are becoming popular as more users connect to social media sites and spend more hours to interact with other people. Various media tools are available for social networking and interaction with others such as smart phones, smart TVs, tablet computers, set-top boxes, and various forms of network and communication devices.
Conventional broadcasting media content delivery platform is quickly transforming into an interactive media platform enhanced with social content and networking capability. For example, smart TV viewers can access and enjoy a plethora of media, internet TV, over-the-top content as well as on-demand streaming media from various content providers or social network sites. The viewers can further read others' reviews and comment on interested topic and leave their own ratings on a viewed content to help other's choice, achieving a new level of social interactivity that was impossible on conventional media content delivery platforms.
The landscape of social interaction with other peers in a networked environment continues to change with the development of content delivery systems and technology. More users use their smart phones or tablet PCs while watching a TV show or movie on their TV. More TVs are connected to the Internet or as a client device of a home network. Users also want to share their content, experience and preference, and/or opinions on specific content or topic with other peers. These social aspects of the social networking sites attract more users and marketers. Conversely, the number of these social media sites continues to increase as more users spend time on these social networking sites.
The new content delivery system enhanced with social interaction generates enormous amount of market opportunity. Users' interest on various topics, level of social activities, and behavior patterns generate enables online marketers to collect a great deal of user data, and the complied user data on a very large scale user base is particularly useful to promote sales, suggestions, and information on products while users view media content. As more users interact with other peers and spend more time on these social media sites, marketers can provide an efficient and cost effective way of marketing, specifically targeting focused viewers with similar interest and behaviors.
The present invention provides enhanced content viewing experience and solutions to share media content among viewers by providing efficient and interactive data communication.
A method and system for providing asynchronous data communication between a plurality of devices in a networked environment is disclosed. A user using a first device views view media content received from a first content provider of a plurality of service providers. At a request of the user, a message including a data link to the media content is generated and asynchronously sent to a second device via a network. The data link contained in the received message on the second device is used to retrieve the media content from a second content provider. Various action commands contained in the message are used to control the operation of the media content on the second device.
In broad embodiment, the present subject matter is directed to a method and apparatus directed to providing an integrated asynchronous multimedia service using a client device and a server.
In one embodiment of the present invention, a technique is provided for providing asynchronous data communication in a networked environment, comprising:
Another embodiment of the present invention is directed to a system for providing asynchronous data communication, comprising:
The above and other preferred features described herein, including various novel details of implementation and combination of elements, will now be more particularly described with reference to the accompanying drawings and pointed out in the claims. It will be understood that the particular methods and circuits are shown by way of illustration only and not as limitations of the claims. As will be understood by those skilled in the art, the principles and features of the teachings herein may be employed in various and numerous embodiments without departing from the scope of the claims.
The accompanying drawings, which are included as part of the present specification, illustrate the presently preferred embodiment of the present invention and together with the general description given above and the detailed description of the preferred embodiment given below serve to explain and teach the principles of the present invention.
It should be noted that the figures are not necessarily drawn to scale and that elements of similar structures or functions are generally represented by like reference numerals for illustrative purposes throughout the figures. It also should be noted that the figures are only intended to facilitate the description of the various embodiments described herein. The figures do not describe every aspect of the teachings disclosed herein and do not limit the scope of the claims.
A method and system for providing asynchronous data communication between a plurality of devices in a networked environment is disclosed. A user using a first device views view media content received from a first content provider of a plurality of service providers. At a request of the user, a message including a data link to the media content is generated and asynchronously sent to a second device via a network. The data link contained in the received message on the second device is used to retrieve the media content from a second content provider. Various action commands contained in the message are used to control the operation of the media content on the second device.
Each of the features and teachings disclosed herein can be utilized separately or in conjunction with other features and teachings to provide a method and system for providing asynchronous data communication in a networked environment. Representative examples utilizing many of these additional features and teachings, both separately and in combination, are described in further detail with reference to the attached drawings. This detailed description is merely intended to teach a person of skill in the art further details for practicing preferred aspects of the present teachings and is not intended to limit the scope of the claims. Therefore, combinations of features disclosed in the following detailed description may not be necessary to practice the teachings in the broadest sense, and are instead taught merely to describe particularly representative examples of the present teachings.
In the following description, for purposes of explanation only, specific nomenclature is set forth to provide a thorough understanding of the present invention. However, it will be apparent to one skilled in the art that these specific details are not required to practice the present invention.
Some portions of the detailed descriptions that follow are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussion, it is appreciated that throughout the description, discussions utilizing terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
The present invention also relates to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk, including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus.
The algorithms presented herein are not inherently related to any particular computer or other apparatus. Various general purpose systems, design verification systems such as a hardware emulator, simulator, and hardware-accelerated simulator systems, or testers providing scan inputs to such design verification systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct a more specialized apparatus to perform the required method steps. The required structure for a variety of these systems will appear from the description below. It will be appreciated that a variety of programming languages may be used to implement the teachings of the invention as described herein.
Moreover, the various features of the representative examples and the dependent claims may be combined in ways that are not specifically and explicitly enumerated in order to provide additional useful embodiments of the present teachings. It is also expressly noted that all value ranges or indications of groups of entities disclose every possible intermediate value or intermediate entity for the purpose of original disclosure, as well as for the purpose of restricting the claimed subject matter. It is also expressly noted that the dimensions and the shapes of the components shown in the figures are designed to help to understand how the present teachings are practiced, but not intended to limit the dimensions and the shapes shown in the examples.
At a request from user 400, sender 500 provides an access to multimedia data 102 or a piece of information related to multimedia data 102 available at one or more content providers 100. In one embodiment, content providers 100 are multimedia data servers or media content providers such as YouTube, Hulu, Netflix, and Amazon VOD.
According to one embodiment, sender device 700 is a computer or an electronic device with a built-in processor, memory, and display screen (e.g. a laptop, a tablet PC, a smart phone, a set-top box). Sender 500 receives a request from user 400 and interacts with a particular content provider 100 to access the requested media data 102. In one embodiment, sender 500 is an independent software module running on sender device 700. In another embodiment, sender 500 is incorporated into another software module in sender device 700.
When sending a request for media data 102 out to sender 500, user 400 also passes the information associated with the requested media data 102 to a designated receiver device 800. For example, user 400 wants to watch media data 102 on a separate display 900 instead of or in addition to the generic display of sender device 700. Alternatively, user 400 forwards media data 102 to a remote site, and another user on the remote site watches media data 102 on display 900.
According to one embodiment, sender 500 passes to receiver device 800 a message 300-1 that contains data link of media data 102, action command(s), and other information required to process the message 300-1. Receiver 600 (also referred to as multi-media data communication module) on receiver device 800 receives the message 300-1 and processes the media data 102 according to the action command(s). If the action command is a data retrieval command, receiver retrieves media data 102 from content provider 100. The data retrieval command arrives at the corresponding content provider 100 containing media data 102. Media data 102 is sent to receiver device 800 when network protocol stack 101 of content provider 100 executes the retrieval request from receiver 600.
According to one embodiment, sender device 700 displays streaming content from one or more of content providers 100. Content may be displayed on a browser (e.g. Internet Explorer, Firefox, Google Chrome, Safari), a customized graphical user interface, or a media player. The displayed content contains multimedia data links directly or indirectly to media data 102 that is available from content provider 100 (e.g. YouTube, Hulu, Netflix, Amazon VOD). In one embodiment, the streaming content provider 100 that streams content to sender device 700 contains media data 102. In another embodiment, media data 102 is hosted in a different content provider from the streaming content provider 100.
User 400 selects one of the displayed data links and an action command. In response to user 400's selection, sender 500 generates a corresponding message 300-1 and sends it via network 200 to receiver device 800. Since sender 500 sends only information of media data to receiver 600 without sending the entire media data content, the connection between sender device 700 and receiver device 800 can be intermittent, and there is no need for a persistent connection therebetween. In addition, the amount of data exchanged between sender device 700 and receiver device 800 is minimal in the form of a message, and sender 500 merely communicates with receiver 600 to instruct receiver device 800 to execute a command associated with the media data as indicated in the message. While sender 500 is sending the message 300-1 to receiver 600, user 400 continues to browse the content, play media files, send another message, or interacts with sender device 700 to use other services that sender device 700 provides.
Receiver device 800 is a media delivery device, a computer, or an electronic device with a built-in processor and memory that is capable of displaying multimedia content. In one embodiment, receiver device 800 may be connected to another display device 900 using an A/V cable such as a component/composite/HDMI and/or audio cable. In another embodiment, receiver device 800 and display 900 are collocated in the same device and performed by separate functional modules. Receiver 600's main function is to fetch media data 102 from the designated multimedia server 100 according to the message received from sender 500. Multimedia server 100 supports multiple network interface protocols such as NFS (network file system), RTSP (real time streaming protocol), CIFS (common internet file system), http, ftp. Media data 102 is located behind network protocol stack 101 and may include, but not limited to, movie, music, article, and photo files. Receiver 600 decodes fetching or fetched media data 102 and displays it on display 900. After the displaying the fetched media data 102 or when receiver 600 instructs so, receiver 600 sends a status report of media data via 201. In one embodiment, the status report may be sent back to sender 500 at his/her request when sending the message 300-1. In one embodiment, sender 500 and receiver 600 are collocated in the same device as different functional modules. The generation and delivery of the message 300-1, fetching of media data 102, and/or reporting the status occur automatically by default but can be configured to be updated or modified at user 400's intervention.
For sending a media data link, a message is generated and sent to the designated receiver 600 (step 538). The message contains, but not limited to, a message identification number, an action command, a media data link, an identification number of receiver 600. Exemplary actions commands are, but not limited to, “list”, “delete”, “stop”, “pause”, “fast forward”, “fast rewind”, and “play”. Peer manager 539 keeps polling the status of the receivers 600 and reports the responses (step 542) and displays the status on the application screen (step 532).
When a new message arrives from sender 500, through network protocol stack 621, the message is temporarily stored in incoming data queue 622. Job dispatcher 623 manages resources of job managers 624. Job dispatcher 623 takes a request message from the queue and checks if it came from one of the registered senders 500 by referring to peer name directory 629. If sender 500 is not registered, job dispatcher 623 discards the message or asks user to verify the identity of sender 500. When the message is validated, job dispatcher 623 assigns the message to job manager 624.
Job manager 624 parses the message and identifies the action command, media data link and the identity of sender 500. When configured so or sender 500 requested, job manager 624 responds to sender 500 with assignment identification number and assignment status after parsing the message. Depending on the action command in the message, job manager 624 calls data processor 626 to start fetching media data 102 from multimedia server 100 and/or runs media player 625 with the buffered media data 102 in memory 627. While fetching media data 102, job manager 624 monitors fetching progress and executes media player 625 to output media data to receiver device 800 or display 900. If the action command is a status report command, job manager 624 reports its status with the assignment identification number.
Job manager 624 processes various kinds of action commands. If the action command is a “delete” command (step 639) requesting to delete a media data file, job manager 624 assigned in 637 stops the current fetching process linked to the media file and executes the deletion. The result of the execution is reported back to sender 500 via report status block 648. If the action command is a “view” or “fetch” command of a media data file (step 640), job manager 624 checks if the media data is already fetched, currently being fetched. If the media data is not yet fetched, job manager 624 tries to secure a storage space in 641 from the currently available space in memory 627. When there is not enough space, job manager 624 reports a status to sender 500 via report status block 648 and changes its status from “assigned” to “pending”. Job dispatcher 635 may awake job manager 624 from “pending” status by allocating enough storage space so that job manager 624 in the “assigned” status starts fetching the media data (steps 643 and 644). Job manager 624 starts decoding when the fetched data in memory 627 is enough buffered (step 645). Network speed, data resolution, and/or data size may be considered to determine a proper buffering size. The media data is decoded in 646 and is output to display in 647. Sender 500 may request to retrieve status report 648 from receiver 600 that may contain, but not limited to, a fetching progress, the media file name, current available resources in receiver 600, etc. Such a request for status report may be made in the original message containing the action command or in a separate request message to receiver 600.
While the foregoing written description described herein enables one of ordinary skill to make and use what is considered presently to be the best mode thereof, those of ordinary skill will understand and appreciate the existence of variations, combinations, and equivalents of the specific embodiment, method, and examples herein. The present subject matter should therefore not be limited by the above described embodiment, method, and examples, but by all embodiments and methods within the scope and spirit of the invention.
A method and system for providing asynchronous data communication between a plurality of devices in a networked environment is disclosed. Although various embodiments have been described with respect to specific examples and subsystems, it will be apparent to those of ordinary skill in the art that the concepts disclosed herein are not limited to these specific examples or subsystems but extends to other embodiments as well. Included within the scope of these concepts are all of these other embodiments as specified in the claims that follow.
The present application claims the benefit of the earlier filing date of U.S. Provisional Patent Application No. 61/353,134 entitled “System and Method For Providing An Asynchronous Multi-Media Service In A Networked Environment” and filed on Jun. 9, 2010, which is hereby incorporated by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
61353134 | Jun 2010 | US |