Abstract: A method and system for enabling sharing of data between a server device and a client device is provided. The method receiving a request from the client device, determining an authenticity of the client device, emulating a virtual universal serial bus device, transmitting a plurality of universal serial bus control messages to the client device, enabling processing of the plurality of universal serial bus control messages by the client device and enabling the client device to gain access to the mass storage device of the virtual universal serial bus device. The system includes a communication interface for establishing communication between the server device and a client device, a memory that stores instructions and a processor responsive to the instructions enabling sharing of data between a server device and a client device.
A SYSTEM AND METHOD FOR SHARING DATA BETWEEN MULTIMEDIA
DEVICES
FIELD OF THE INVENTION
[0001] The present invention relates to the field of multimedia, and more specifically to the field of sharing multimedia content from one multimedia device to another multimedia device over cloud.
BACKGROUND
[0002] Server/client systems are widely used for various purposes, for example, business, database access, mail services and the like. A server/client system includes a server and multiple clients. The server services several requests of the clients. The clients are remotely connected to the server over a computer network. However, secure sharing of data, present in the server, with the clients is a major issue.
[0003] Conventional technique provides a client/server architecture system that enables safe sharing of a device. The method includes connecting the device, to the server, that can be accessed from a client. The device connected to the server can be accessed from the client by merely connecting the device to the server. However, the technique requires the device to be physically connected to the server. Further, one or more USB ports are required for connecting the device. Hence, the device cannot be connected to electronic devices that do not include an USB port.
[0004] Another conventional technique aims at sharing the server with multiple clients by extending a standard peripheral bus driver of the server over an Internet Protocol (IP) network. A virtual peripheral bus driver is used to provide a virtual extension of the standard peripheral bus driver that enables the clients to access the server. However, existing art requires an external USB device to be physically connected to the server. Further the existing art does not provide a security feature to the client and hence any client is allowed to connect and further access the server device.
[0005] Further, with continuing development of cloud computing, different devices needs to be connected over network to share their computational resources. Further, a user may wish to perform various tasks, for example, but not limited to, store and access personal content, play media content or perform word processing on a remote device since an electronic device of the user may not include hardware and software requirements for performing the tasks. In one example, an electronic device may not include an USB port. Hence the media content present in an USB device cannot be played by the electronic device.
[0006] In the light of the foregoing discussion there is a need for an efficient system and a method for connecting a client to a server without the need for physically connecting external devices.
[0007] Embodiments of the present disclosure described herein provide a method and system for sharing of data between a server device and a client device.
[0008] An example of a method of enabling sharing of data between a server device and a client device includes receiving a request from the client device wherein the request being used to establish a connection between the client device and the server device. The method also includes determining an authenticity of the client device for enabling the client device to access the server device. The method further includes emulating a virtual universal serial bus device. The virtual universal serial bus device includes a mass storage device. Further, the method includes transmitting multiple universal serial bus control messages to the client device. The universal serial bus control messages are being used to access the mass storage device of the virtual universal serial bus device. Furthermore, the method includes enabling processing of the universal serial bus control messages by the client device. Moreover, the method includes enabling the client device to gain access to the mass storage device of the virtual universal serial bus device.
[0009] An example of a system for enabling of sharing data between a server device and a client device includes a server device for transmitting data. The system also includes a communication interface for establishing communication between the server device and a client device. The system further includes a memory that stores instructions. Further, the system includes a processor responsive to the instructions to receive a request from the client device, determine an authenticity of the client device to access the server device, emulate a virtual universal serial bus device and transmit a plurality of universal serial bus control messages to the client device. The processor is further responsive to the instructions to process the plurality of universal serial bus control messages and access the mass storage device of the virtual universal serial bus device.
BRIEF DESCRIPTION OF FIGURES
[0010] The accompanying figure, similar reference numerals may refer to identical or functionally similar elements. These reference numerals are used in the detailed description to illustrate various embodiments and to explain various aspects and advantages of the present disclosure.
[0011] FIG. 1 is a block diagram of an environment in accordance with which various embodiments can be implemented;
[0012] FIG. 2 is a block diagram of a server device for enabling sharing of data between the server device and a client device, in accordance with one embodiment; and
[0013] FIG. 3 is a flowchart illustrating a method of enabling sharing of data between a server device and a client device, in accordance with one embodiment.
DETAILED DESCRIPTION
[0014] It should be observed the method steps and system components have been represented by conventional symbols in the figure, showing only specific details which are relevant for an understanding of the present disclosure. Further, details may be readily apparent to person ordinarily skilled in the art may not have been disclosed. In the present disclosure, relational terms such as first and second, and the like, may be used to distinguish one entity from another entity, without necessarily implying any actual relationship or order between such entities.
[0015] Embodiments of the present disclosure described herein provide system and method of sharing data between a server device and a client device.
[0016] FIG. 1 is a block diagram of an environment 100 in accordance with which various embodiments can be implemented. The environment 100 includes a server device 105, a client device 115 and a network 110. The server device 105 and the client device 115 are connected to each other through the network 110. The client device 115 includes a multimedia device. Examples of the multimedia device include, but are not limited to, a digital television, a mobile device, a personal digital assistant (PDA), a smart phone and other hand held devices. Examples of the network 110 include a local area network, a wide area network and a wireless network.
[0017] In one example, the server device 105 can include the multimedia device, for example, the smart phone. The smart phone is configured to store various multimedia contents, for example, but not limited to, video files, such as, movies, video files and audio files. Further, the client device 115 can include, the multimedia device, for example, the digital television.
[0018] The multimedia contents stored in the smart phone is played on the digital television by connecting the smart phone as a virtual universal serial bus (USB) device to the digital television.
[0019] The smart phone is configured to emulate the virtual USB device. The virtual USB device emulated includes contents present in a storage device associated with the smart phone. Emulation also includes creation of a mass storage device by the smart phone. The mass storage device is used for storing the multimedia contents. Further, the smart phone transmits various USB control messages that enables the digital television to access the mass storage device. The USB control messages are transmitted, to the digital television, in the form various universal serial bus request block (URB) units. The URB units can be transmitted via wireless networks, for example, Bluetooth and the like. The URB units enable emulation of the virtual USB device such that the virtual USB device emulated can be shared with the digital television.
[0020] Further, the digital television receives the URB units. The URB units are processed by the digital television. One or more drivers embedded in the digital television are used for processing the URB units. The processing of the URB units enables the digital television to access the mass storage device. Furthermore, upon accessing the mass storage device, a multimedia player embedded in the digital television is configured to play the multimedia contents stored in the mass storage device.
[0021] Hence, a first multimedia device can share multimedia content or data with a second multimedia device by emulating the virtual USB by the first multimedia device. The virtual USB device that is emulated includes the data and the multimedia contents present in the storage device of the first multimedia device. Further, the emulated USB device will be exported to the second multimedia device such that the second multimedia device can connect the emulated USB device as the virtual USB device and further, the second multimedia device is enabled to access the data and multimedia contents included in the virtual USB device.
[0022] A server device including a plurality of elements that is configured to emulate the virtual USB device is explained in detail in conjunction with FIG. 2.
[0023] The server device 105 includes a bus 205 or other communication mechanism for communicating information, and a processor 210 coupled with the bus 205 for processing information. The server device 105 also includes a memory 215, for example a random access memory (RAM) or other dynamic storage device, coupled to the bus 205 for storing information and instructions to be executed by the processor 210. The memory 215 can be used for storing temporary variables or other intermediate information during execution of instructions by the processor 210. The server device 105 further includes a read only memory (ROM) 220 or other static storage device coupled to the bus 205 for storing static information and instructions for the processor 210. A storage unit 225, for example a magnetic disk or optical disk, is provided and coupled to the bus 205 for storing information.
[0024] The server device 105 can be coupled via the bus 205 to a display 230, for example a cathode ray tube (CRT), for displaying multimedia content. The input device 235, including alphanumeric and other keys, is coupled to the bus 205 for communicating information and command selections to the processor 210. Another type of user input device is the cursor control 240, for example a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to the processor 210 and for controlling cursor movement on the display 230.
[0025] Vanous embodiments are related to the use of the server device 105 for implementing the techniques described herein. In some embodiments, the techniques are performed by the server device 105 in response to the processor 210 executing instructions included in the memory 215. Such instructions can be read into the memory 215 from another machine-readable medium, for example the storage unit 225.
Execution of the instructions included in the memory 215 causes the processor 210 to perform the process steps described herein.
[0026] In some embodiments, the processor 210 can include one or more processing units for performing one or more functions of the processor 210. The processing units are hardware circuitry used in place of or in combination with software instructions to perform specified functions.
[0027] The term "machine-readable medium" as used herein refers to any medium that participates in providing data that causes a machine to perform a specific function. In an embodiment implemented using the server devicelOS, various machine-readable media are involved, for example, in providing instructions to the processor 210 for execution. The machine-readable medium can be a storage medium, either volatile or non-volatile. A volatile medium includes, for example, dynamic memory, such as the memory 215. A non-volatile medium includes, for example, optical or magnetic disks, for example the storage unit 225. All such media must be tangible to enable the instructions carried by the media to be detected by a physical mechanism that reads the instructions into a machine.
[0028] Common forms of machine-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic media, a CD-ROM, any other optical media, punchcards, papertape, any other physical media with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, any other memory chip or cartridge.
[0029] In another embodiment, the machine-readable media can be transmission media including coaxial cables, copper wire and fiber optics, including the wires that include the bus 205. Transmission media can also take the form of acoustic or light waves, such as those generated during radio-wave and infra-red data communications. Examples of machine-readable media may include, but are not limited to, a carrier wave as described hereinafter or any other media from which the server device105 can read. For example, the instructions can initially be earned on a magnetic disk of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem local to the server device 105 can receive the data on the telephone line and use an infra-red transmitter to convert the data to an infra-red signal. An infra-red detector can receive the data carried in the infra-red signal and appropriate circuitry can place the data on the bus 205. The bus 205 carries the data to the memory 215, from which the processor 210 retrieves and executes the instructions. The instructions received by the memory 215 can optionally be stored on the storage unit 225 either before or after execution by the processor 210. All such media must be tangible to enable the instructions carried by the media to be detected by a physical mechanism that reads the instructions into a machine.
[0030] The server device 105 also includes a communication interface 245 coupled to the bus 205. The communication interface 245 provides a two-way data communication coupling between the client device and the server device 105 through the network 110. For example, the communication interface 245 can be an integrated services digital network (ISDN) card or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, the communication interface 245 can be a local area network (LAN) card to provide a data communication connection to a compatible LAN. In any such implementation, the communication interface 245 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
[0031] The processor 210 in the server device 105 is operable to receive a request from the client device. The request being used to establish a connection between the client device and the server device105. The request can be transmitted by the client device via one or more wireless networks. The processor 210 is further operable to determine an authenticity of the client device to access the server device. An authentication module included in the processor 210 is used to determine the authenticity. The authenticity of the client device is determined to prevent unauthorized users from accessing the server device 105. Further, the processor 210 is operable to emulate a USB device to generate an emulated USB device. The emulated USB device includes a mass storage device for storing data, for example, multimedia content. A USB mass storage emulator included in the processor 210 is used for emulating the emulated USB device. Further, a virtual small computer system interface (SCSI) controller module included in the processor 210 can be used for emulation of the emulated USB device on a file system existing on the server device 105. Furthermore, the processor 210 is operable to transmit a plurality of USB control messages to the client device. The USB control messages are being used to access the mass storage device. In some embodiments, the processor 210 encrypts the USB control messages prior to transmitting the USB control messages to the client device. An encryption module included in the processor 210 is used for encrypting the USB control messages. The processor 210 encrypts the USB control messages to secure data while transmission.
[0032] In one embodiment, the processor 210 is included on a client device, for example, the client device 115. The processor 210 when included on the client device Is configured to receive the plurality of USB control messages. Further, the processor 210 is operable to process the plurality of USB control messages. The processor 210 processes the plurality of USB control messages for accessing the mass storage device. The processor 210 employs multiple drivers, for example, but not limited to, an USB mass storage driver, a virtual host controller (VHCD) driver and the like for processing the USB control messages. The processor 210 upon processing connects the emulated USB device as a virtual USB device to the client device. In some embodiments, the processor 210 included in the client device is configured to play the multimedia contents stored in the mass storage device. The processor 210 employs a multimedia player embedded in the client device for playing the multimedia contents.
[0033] Hence the server device 105 exports the emulated USB device to the client device such that the client device connects the emulated USB device exported as the virtual USB device for accessing data included in the virtual USB device. Further, the server device 105 enables sharing of the emulated USB device with the client device without physical connection of the virtual USB device to the client device. Hence there is no USB device connected physically either at server device or client device.
[0034] A method of enabling sharing of data between a server device and a client device is explained in detail in conjunction with FIG. 3.
[0035] FIG. 3 is a flowchart illustrating a method of enabling sharing of data between a server device and a client device, in accordance with one embodiment. The method starts at step 305.
[0036] At step 310 a request is received from the client device. The request includes a need for establishing a connection between the client device and the server device. The client device transmits the request via a wireless network. Examples of the wireless network include, but are not limited to, Bluetooth and the like. The request is transmitted to the server device via one or more communication protocols, for example, TCP/IP connection protocol.
[0037] At step 315 an authenticity of the client device to access the server device is determined. In one example, the server device can store a list of client devices that are authorized to access the server device. The list of client devices can be stored in a database associated with the server device.
[0038] When the server device receives the request from the client device, the server device can analyze the list of client devices to identify if the client device that has transmitted the request is included in the list of client devices that are authorized to access the client device. If the client device that has transmitted the request is included in the list of client devices, then the client device can access the server device.
[0039] At step 320 a virtual universal serial bus (USB) device is emulated to generate an emulated USB device. The emulated USB device is connected, to the client device, as a virtual USB device. Hence, the virtual USB device can be shared with the client device without physically connecting a USB device to the client device. The virtual USB device also includes a mass storage device for storing data. In one example, the data can include multimedia content such as video content and audio content. In another example, the data can also include images.
[0040] In some embodiments, initialization of the virtual USB device can be performed by receiving various USB control messages from the client device. The USB control messages include one or more software requirements that enable the client device to access the mass storage device of the virtual USB device. The USB control messages are transmitted, by the client device, in the form of universal serial bus request block (URB) units.
[0041] Further, one or more SCSI commands are extracted from the USB control messages. The SCSI commands are used to read internal storage of the emulated USB device. In one example, a virtual file system included in the server device is used to read internal storage of the emulated USB device. Reading the internal storage of the emulated USB device enables the client device to connect the emulated USB device as the virtual USB device. Further, the client device can access the virtual USB device.
[0042] At step 325 the USB control messages received from the client device are transmitted back to the client device by the server device. The USB control messages that are transmitted back to the client device enable the client device to access the virtual USB device. The USB control messages are transmitted, by the server device, in the form of the URB units.
[0043] In one embodiment, the USB control messages are encrypted prior to transmission of the USB control messages to the client device. Encryption of the USB control messages enables protection of the data from unauthorized access.
[0044] At step 330 the USB control messages are processed by the client device. In one example a VHCD driver, of the client device, may be used for processing the USB control messages. Further, the processing includes transmission of the USB control messages to a USB core driver, of the client device, for enabling the USB core driver to access the mass storage device of the virtual USB device.
[0045] In one embodiment, the USB control messages are decrypted prior to processing the USB control messages.
[0046] At step 335 the client device is enabled to gain access to the mass storage device of the virtual USB device. In one example, a USB mass storage device driver embedded within the client device is used to gain access to the mass storage device. Further, upon accessing the mass storage device, the client device can employ the virtual USB device for performing various tasks.
[0047] In some embodiments, upon accessing the mass storage device, a multimedia player associated with the client device can view the mass storage device. Further, the multimedia player can select an audio file or a video file for playing the multimedia content on the client device. Furthermore, in some embodiments, the client device is enabled to perform different tasks, for example, copying, deleting, formatting and modifying the content included in the mass storage device. Moreover, in some embodiments, a client can open various files, for example, but not limited to, office files, document files, and image files on the client device and can even modify them and store it on the virtual USB device.
[0048] In some embodiments, the method enables virtualization of interrupt based devices and isochronous USB devices. The interrupt based devices are used to control game server agents from a main server. The method enables emulation of keyboard and mouse associated with the game server agents that can be exported to the main servers as a virtual USB keyboard. Further, the virtual USB keyboard can be controlled from the main server. Furthermore, the isochronous USB devices, for example, a USB webcam can be emulated using camera of a smart phone to stream video to a digital television screen.
[0049] The method stops at step 340.
[0050] Advantageously, the embodiments specified in the present disclosure enables emulation of a virtual USB device so that multimedia devices can play multimedia content included in the virtual USB device without physically connecting a USB device. By emulating the virtual USB device, the virtual USB device can be exported to multiple clients from a single server. Further, the method enables authentication of multiple clients phor to accessing the virtual USB device to prevent unauthorized access. The method also provides enhanced security by managing privilege levels and access levels of the clients. Further, the method enables encryption of data prior to transmission of the data to the clients. Moreover, the method enables sharing of data between both public network and private network. Further, by emulating the virtual USB device, the necessity to connect USB cables for data transfer is eliminated. Also, emulation of the virtual USB device eliminates the need for installing one or more devices, OS specific applications or one or more drivers to support sharing of the data. Furthermore, by emulating the virtual USB devices, the electronic devices that do not include an USB port can also share data.
[0051] In the preceding specification, the present disclosure and its advantages have been described with reference to specific embodiments. However, it will be apparent to a person of ordinary skill in the art that various modifications and changes can be made, without departing from the scope of the present disclosure, as set forth in the claims below. Accordingly, the specification and figures are to be regarded as illustrative examples of the present disclosure, rather than in restrictive sense. All such possible modifications are intended to be included within the scope of present disclosure.
We claim:
1 A method of enabling sharing of data between a server device and a client device, the method comprising:
receiving a request from the client device wherein the request being used to establish a connection between the client device and the server device;
determining an authenticity of the client device for enabling the client device to access the server device;
emulating a virtual universal serial bus device, the virtual universal serial bus device comprising a mass storage device;
transmitting a plurality of universal serial bus control messages to the client device, the universal serial bus control messages are being used to access the mass storage device of the virtual universal serial bus device;
enabling processing of the plurality of universal serial bus control messages by the client device; and
enabling the client device to gain access to the mass storage device of the virtual universal serial bus device.
2 The method as claimed in claim 1 and further comprising:
encrypting the plurality of universal serial bus control messages by the server device; and
decrypting the plurality of universal serial bus control messages by the client device.
3 The method as claimed in claim 1 wherein plurality of universal serial bus control messages are transmitted in the form of a plurality of universal serial bus request block units.
4 The method as claimed in claim 1 wherein the processing is performed by a plurality of drivers embedded on the client device.
5 The method as claimed in claim 1 and further comprising:
emulating the mass storage device.
6 A system for enabling of sharing data between a server device and a client device, the system comprising:
a server device for transmitting data;
a communication interface for establishing communication between the server device and a client device;
a memory that stores instructions; and
a processor responsive to the instructions to receive a request from the client device, the request being used to establish a connection between the client device and the server device;
determine an authenticity of the client device to access the server device;
emulate a virtual universal serial bus device, the virtual universal serial bus device comprising a mass storage device; and
transmit a plurality of universal serial bus control messages to the client device, the universal serial bus control message being used to access the mass storage device of the virtual universal serial bus device.
7. The system as claimed in claim 6, wherein the processor is further configured to; process the plurality of universal serial bus control messages; and access the mass storage device of the virtual universal serial bus device.
| # | Name | Date |
|---|---|---|
| 1 | 1753-CHE-2012 DESCRIPTION (COMPLETE) 07-05-2012.pdf | 2012-05-07 |
| 2 | 1753-CHE-2012 CLAIMS 07-05-2012.pdf | 2012-05-07 |
| 3 | 1753-CHE-2012 POWER OF ATTORNEY 07-05-2012.pdf | 2012-05-07 |
| 4 | 1753-CHE-2012 FORM-5 07-05-2012.pdf | 2012-05-07 |
| 5 | 1753-CHE-2012 FORM-3 07-05-2012.pdf | 2012-05-07 |
| 6 | 1753-CHE-2012 FORM-2 07-05-2012.pdf | 2012-05-07 |
| 7 | 1753-CHE-2012 FORM-1 07-05-2012.pdf | 2012-05-07 |
| 8 | 1753-CHE-2012 DRAWINGS 07-05-2012.pdf | 2012-05-07 |
| 9 | 1753-CHE-2012 CORRESPONDENCE OTHERS 07-05-2012.pdf | 2012-05-07 |
| 10 | 1753-CHE-2012 ABSTRACT 07-05-2012.pdf | 2012-05-07 |
| 11 | 1753-CHE-2012 FORM-1 02-07-2012.pdf | 2012-07-02 |
| 12 | 1753-CHE-2012 CORRESPONDENCE OTHERS 02-07-2012.pdf | 2012-07-02 |
| 13 | 1753-CHE-2012 FORM-13 01-04-2013.pdf | 2013-04-01 |
| 14 | 1753-CHE-2012 CORRESPONDENCE OTHERS 01-04-2013.pdf | 2013-04-01 |
| 15 | 1753-CHE-2012 FORM-18 25-04-2013.pdf | 2013-04-25 |
| 16 | 1753-CHE-2012 FORM-13 18-07-2015.pdf | 2015-07-18 |
| 17 | Form 13_Address for service.pdf | 2015-07-20 |
| 18 | Amended Form 1.pdf | 2015-07-20 |
| 19 | Form 3 [08-07-2016(online)].pdf | 2016-07-08 |
| 20 | 1753-CHE-2012-FORM-26 [27-11-2017(online)].pdf | 2017-11-27 |
| 21 | 1753-CHE-2012-RELEVANT DOCUMENTS [19-02-2018(online)].pdf | 2018-02-19 |
| 22 | 1753-CHE-2012-Changing Name-Nationality-Address For Service [19-02-2018(online)].pdf | 2018-02-19 |
| 23 | 1753-CHE-2012-FER.pdf | 2019-01-23 |
| 24 | 1753-CHE-2012-AbandonedLetter.pdf | 2019-07-31 |
| 1 | 1753CHE2012_22-01-2019.pdf |