Various embodiments of the invention may relate to communication in a network and more specifically to improving the efficiency of communication in a network.
Various users across the globe communicate or perform various activities on computer and device networks. Moreover, the users interact with each other through the networks, such as the Internet. Typically, the users use devices like personal computers to interact over the Internet. The users can interact from various Internet websites or social networking sites, for example, Facebook, Myspace, Hi5, and Orkut etc. Recently, the development in mobile devices such as cell phones, smartphones and PDAs, computers, laptops and the like has enabled them to be used for performing various activities on networks such as the Internet. Moreover, the mobile devices can be used for real-time interaction with other users on the network. The interaction or communication can be in the form of chatting, playing interactive online games, browsing, shopping, music, video, banking, business and the like.
The rapid pace of innovation in technology has generated various types of devices and platforms. Moreover, the number of devices is increasing rapidly. For example, there are various operating systems available for the devices such as Windows, Linux, Macintosh, and Symbian, etc. Moreover, a large number of J2ME platforms are available for the mobile devices such as cell phones. Furthermore, the mobile devices have a wide range of capabilities in terms of screen size, screen type, screen resolution, processor, and memory etc. The advancement in technology has enabled multi-user interaction on the network, for example, multi-player games on mobile devices. Moreover, with rapid decline in prices of hardware, advanced and inexpensive devices are readily available. Furthermore, advancements in software, operating systems, and input/output interfaces have enabled the development of high performance media capabilities on devices. Interactive applications such as media games are now being developed which allow multi-user interactions on networks. As a result, the number of users and the requirement for the quality of service in the network is increasing rapidly.
Typically, interactive applications may require constant or very frequent communication between the users. Therefore, a large amount of bandwidth may be required to maintain the communication. The bandwidth available on a device depends on the type of network and the hardware or software of a device. For example, mobile network infrastructures such as in rural areas or otherwise underdeveloped areas may have less bandwidth as compared to infrastructures in a developed cities or areas. As a result, the user with slow network connection experiences latency in communication. Further, the information to be transmitted can be huge depending on the type of application. Moreover, the information to be transmitted can be limited due to a low bandwidth network. Therefore, in case of some applications, for example, competitive online games, this may result in fairness issues. Interactive applications such as chatting or mobile games require real time updating of information, which induces latency in communication. Moreover, the versions of communication protocols supported by devices in the network can be different. Furthermore, the versions of the communication protocols may be updated. Therefore, the efficiency of information transfer may vary across devices and the networks. Furthermore, the scalability of these multi-user applications may depend on the efficiency and quality of service of network communications.
A mechanism may therefore be desirable for efficient communication in the network. Such a mechanism may be able to select the information and protocol to be used for the communication and may use these to maintain good user experience.
Embodiments of the invention may provide a method for efficient communication in a network. The method may comprise monitoring one or more versions of one or more communication protocols in the network and processing at a device a document object model of data to generate raw data. Thereafter, the raw data may be transmitted by the device in the network based on the versions of the communication protocols.
Further embodiments of the invention may provide an apparatus for efficient communication in a network. The apparatus may comprise a monitoring module configured to monitor one or more versions of one or more communication protocols in the network. The apparatus may further comprise an analyzer module configured to process a document object model of data to generate raw data; and a transmission module configured to transmit the raw data, wherein the raw data may be transmitted based on the versions of the communication protocols.
Further embodiments of the invention may provide a system for efficient communication in a network. The system may comprise: means for monitoring one or more versions of one or more communication protocols in the network; means for processing a document object model of data to generate raw data; and means for transmitting the raw data, wherein the raw data may be transmitted based on the versions of the communication protocols.
Yet further embodiments of the invention may provide a computer-readable medium containing instructions for performing a method for efficient communication in a network. The method may comprise: monitoring one or more versions of one or more communication protocols in the network; processing at a device a document object model of data to generate raw data; and transmitting the raw data by the device on the network, wherein the raw data may be transmitted based on the versions of the communication protocols.
Having thus described embodiments of the invention in general terms, reference will now be made to the accompanying drawings, which are not necessarily drawn to scale, and wherein:
Illustrative embodiments of the invention now will be described more fully hereinafter with reference to the accompanying drawings, in which some, but not all embodiments of the invention are shown. Indeed, the invention may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will satisfy applicable legal requirements. Like numbers refer to like elements throughout.
Clients 102a-n may interact with each other through server 104 in real-time for activities such as chatting, playing games, banking and so forth. Clients 102a-n may interact from different types of network. For example, client 102a may communicate with server 104 through a mobile network with a maximum bandwidth of 14.4 kbps, and client 102b may communicate through an Ethernet network with a maximum bandwidth of 2 Mbps. Moreover, clients 102a-n can have different hardware and software capabilities. For example, client 102a may be a device such as a mobile phone, and client 102b may be device such as a personal computer. Therefore, the communication between clients 102a-n may be based on various network and/or device parameters. Examples of the parameters include, but are not limited to, the bandwidth of the network, the type of network, communication protocols used, latency in communication, a user's online time, processing power of clients 102, processor usage of clients 102, memory of clients 102, and/or other parameters such as electronics, batteries, screen, radio, communications of clients 102 and so forth.
Interactive applications may require a large amount of real-time information transfer between clients 102 and server 104. Therefore, a lot of network bandwidth may be required to avoid latency in the network. For example, in case of interactive multi-player games, real-time information may be transferred regarding the status of the player, statistics of the game, state of the game, game data and so forth. Therefore, mechanisms to improve the efficiency by providing more information on the same bandwidth of the network may be beneficial. However, a large Central Processing Unit (CPU) or processor, memory and more complex logic may be required to enable efficient communication in the network. The processor usage of a device can be offset by the use of additional memory in case of real-time applications. For example, the information that is to be processed can be cached before being processed. As a result, more information can be processed: however, more processing usage may then be required to process the cached data. In an embodiment of the invention, the data to be transferred between clients 102a-n and server 104 is processed before transmitting. The processed data may contain raw data and not complete structural information. As a result, the bandwidth required for transmitting the data may be reduced. The processing of data is discussed in detail in conjunction with
A real-time application can be executed on adaptor 200. For example, the real-time application can be an online computer game. In such a scenario, client 102 may communicate regularly with server 104 for game information and/or other services. In an embodiment of the invention, server 104 is a game server. Apparatus 200 may include a monitoring module 202 for monitoring the network. In an embodiment of the invention, monitoring module 202 monitors the network for various parameters. For example, monitor module 202 can monitor the network to gather information regarding the protocols used, versions of the protocols, type and amount of data, data to be transmitted and/or bandwidth of the network. In an embodiment of the invention, monitoring module 202 monitors the network regularly after a predetermined time period. In another embodiment of the invention, monitoring module 202 monitors for the versions of the protocols after transmission of every communication message in the network.
Adaptor 200 may include an analyzer module 206 for analyzing the data that is to be transmitted in the network. Analyzer module 206 may analyze the data based on the information gathered by monitoring module 202. Further, analyzer module 206 may select a version of a communication protocol for transmission of data. In an embodiment of the invention, analyzer module 206 selects optimum values for network parameters and device resources. Moreover, analyzer module 206 may process the data to be transmitted in the network. The data to be transmitted may be processed by analyzer module 206 to generate raw data. In an embodiment of the invention, a Document Object Model (DOM) of data may be processed to generate a serialized stream without the structural information. A DOM is a hierarchical representation of fundamental construct relationships; further examples and discussion of DOMs and their construction may be found in co-pending U.S. patent application Ser. No. ______, entitled, “Translation of Programming Code,” filed on ______ (Attorney Docket No. 30036-00004-US), co-assigned, and incorporated by reference herein in its entirety. As a result, the data to be transmitted may be compressed. Moreover, the compressed data can be decompressed by analyzer module 206 by using, e.g., standard compression mechanisms. For example, analyzer module 206 may use standard compression algorithms such as ZIP to compress the data. Therefore, the compression ratio of the data may be increased and may be higher than standard compression algorithms. The compression ratio can be defined as the ratio of the size of compressed information to the size of uncompressed information. Analyzer module 206 can analyze the raw data to generate DOM of the data. Moreover, analyzer module 206 can decompress the data that was earlier compressed using, e.g., standard compression techniques. The raw data may be stored in a memory 204. Further, memory 204 may store information regarding various types and/or versions of communication protocols. Examples of memory 204 include, but are not limited to, a Random Access Memory (RAM), a Read Only Memory (ROM) and so forth.
Adaptor 200 may further include transmission module 208 for transmitting data between server 104 and clients 102a-n. In an embodiment of the invention, transmission module 208 may use transport protocols such as HTTP, TCP, UDP, HTTPS, SIP, or other protocols suitable for mobile networks for transmitting the data. In an embodiment of the invention, transmission module 208 selects the protocol based on the type of network. In another embodiment of the invention, transmission module 208 selects the protocol or the version of the protocol based on the network parameters and/or device resources. For example, transmission module 208 may use tunneling to send data in case the network does not support a particular protocol. For example, HyperText Transfer Protocol (HTTP), File Transfer Protocol (FTP), Secure Shell (SSH) protocols can be encapsulated with a protocol supported by a mobile phone network such as Transmission Control Protocol (TCP).
As shown in
As discussed in the example 1, the meta format in case of a chat message can be the ‘Name’ of the application, data type for the name of sender, ‘SenderName,’ and data type of the ‘Message’.
As discussed in the example 2, the meta format in case of a user list message can be the ‘Name’ of the application, data type for the name of sender ‘UserName, and data type of the ‘UserID’, and the data type for the number of users, ‘NumUsers’.
In an embodiment of the invention, as shown in
Thereafter, DOM of data may be processed 504 to generate raw data, e.g., by analyzer module 206. In an embodiment of the invention, the structural information may be removed from the data to generate raw data. In an embodiment of the invention, the raw data may include a header and body. The header of the raw data may contain versioning information, status of the version and/or other meta-data information. Moreover, the header may include the status of the version. The body of the raw data may include meta information. In an embodiment of the invention, the raw data may be further compressed by using standard compression protocols. The versions and the raw data may be stored, e.g., in memory 204. Subsequently, the raw data may be transmitted based on the versions of the communication protocol, e.g., by transmission module 208.
While the above embodiments may describe the use of analyzer module 206 and/or transmission module 208 in both transmitting and receiving data, it is further understood that there may be fully or partially separate versions of one or both of these modules used for transmitting and receiving data.
Furthermore, it is also comprehended that monitoring module 202 may be omitted from at least one adaptor 200 of a device in a network, such as a client 102 or a server 104. In such a case, monitoring may be performed at another site, such as at a different device, and may be forwarded to the device for use in transmitting data.
Embodiments of the invention are described above with reference to block diagrams and schematic illustrations of methods and systems according to embodiments of the invention. It will be understood that each block of the diagrams and combinations of blocks in the diagrams can be implemented by computer program instructions. These computer program instructions may be loaded onto one or more general purpose computers, special purpose computers, or other programmable data processing apparatus or computing devices to produce machines, such that the instructions which execute on the computers or other programmable data processing apparatus create means for implementing the functions specified in the block or blocks. Such computer program instructions may also be stored in a computer-readable medium, such as a memory, that can direct a computing device or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture including instruction means that implement the function specified in the block or blocks. Furthermore, such computer program instructions may be provided for download via a network and/or may be downloaded via a network.
While the invention has been described in connection with what is presently considered to be the most practical and various embodiments, it is to be understood that the invention is not to be limited to the disclosed embodiments, but on the contrary, is intended to cover various modifications and equivalent arrangements included within the spirit and scope of the appended claims.
This written description uses examples to disclose the invention, including the best mode, and also to enable any person skilled in the art to practice the invention, including making and using any devices or systems and performing any incorporated methods. The patentable scope the invention is defined in the claims, and may include other examples that occur to those skilled in the art. Such other examples are intended to be within the scope of the claims if they have structural elements that do not differ from the literal language of the claims, or if they include equivalent structural elements with insubstantial differences from the literal languages of the claims.
This application draws priority from U.S. Provisional Patent Application No. 61/200,934, filed on Dec. 4, 2008, and hereby incorporated by reference herein in its entirety.
Number | Date | Country | |
---|---|---|---|
61200934 | Dec 2008 | US |