WO2001001621A2 - Customizing web content based on network conditions - Google Patents

Customizing web content based on network conditions Download PDF

Info

Publication number
WO2001001621A2
WO2001001621A2 PCT/US2000/016450 US0016450W WO0101621A2 WO 2001001621 A2 WO2001001621 A2 WO 2001001621A2 US 0016450 W US0016450 W US 0016450W WO 0101621 A2 WO0101621 A2 WO 0101621A2
Authority
WO
WIPO (PCT)
Prior art keywords
network
client
information
network conditions
computer
Prior art date
Application number
PCT/US2000/016450
Other languages
French (fr)
Other versions
WO2001001621A3 (en
Inventor
Amit Gupta
Geoffrey Baehr
Original Assignee
Sun Microsystems, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems, Inc. filed Critical Sun Microsystems, Inc.
Priority to AU56139/00A priority Critical patent/AU5613900A/en
Publication of WO2001001621A2 publication Critical patent/WO2001001621A2/en
Publication of WO2001001621A3 publication Critical patent/WO2001001621A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/303Terminal profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Definitions

  • This invention relates to the field of computer networks, and more specifically to the efficient transport of electronic material such as web page contents based on network conditions. Portions of this patent document may contain material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure as it appears in the Patent and Trademark Office file or records, but otherwise reserves all copyright rights whatsoever.
  • Sun, Sun Microsystems, the Sun logo, Solaris, "Write Once, Run Anywhere", Java, JavaOS, JavaStation and all Java-based trademarks and logos are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. All SPARC trademarks are used under license and are trademarks of SPARC International, Inc. in the United States and other countries. Products bearing SPARC trademarks are based upon an architecture developed by Sun Microsystems, Inc.
  • the Internet is a networked computer environment comprised of a number of interconnected computer systems that provide a user with world wide access to electronic information.
  • this information is included in electronically created files (such as HTML documents) known as "web pages" that can be understood by a user computer.
  • the user computer can then display the electronic content of the web page in form of text, graphics or a combination of the two forms.
  • the recent trend in creation of web pages has been towards more graphical and animated presentations. Inclusion of graphic and animation content in a web page substantially increases its size.
  • to download and display a web page a large volume of information is transported through the communication channels established between a user computer and the server where the web page resides. Transmission of large volumes of data can overly congest a computer network and result in data loss and /or undesirably low transmission rates.
  • a network provides the users with various services such as electronic mail and file sharing. It may also include resources, such as printers, modems, and file servers.
  • a modem for example, provides the means to access and download web page contents via telecommunication channels onto the user computer.
  • a network can be a small system that is physically connected by cables or via wireless communication (a local area network or "LAN”). Alternatively, several separate networks can be connected together to form a larger network (a wide area network or "WAN”). Other types of networks include the Internet, telcom networks, intranets, extranets, wireless networks, and other networks over which electronic, digital and /or analog data may be communicated.
  • LAN local area network
  • WAN wide area network
  • Other types of networks include the Internet, telcom networks, intranets, extranets, wireless networks, and other networks over which electronic, digital and /or analog data may be communicated.
  • the Internet is a client /server system that includes a worldwide network of interconnected computers.
  • a "client” is the computer that is used to access the Internet.
  • An Internet client accesses a computer on the network ("server") via an Internet provider.
  • An Internet provider is an organization that provides a client with access to the Internet (via analog telephone line or Integrated Services Digital Network line, for example).
  • a client can, for example, download a file from or send an electronic mail message to another computer /client using the Internet.
  • a client or server may also access the Internet to retrieve information that are included in web pages.
  • GUI graphical user interface
  • a browser displays information to a client or user as pages or documents.
  • a software language such as the Hypertext Markup Language (HTML) is used to define the format for a page to be displayed in the browser.
  • HTML Hypertext Markup Language
  • a web page is transmitted to a client as an HTML document, for example.
  • the browser executing at the client parses the document and produces and displays a web page based on the information in the HTML document. Consequently, the HTML document defines the web page that is rendered at runtime on the browser.
  • the server or client may have to evaluate the information prior to processing.
  • the processing time can be prolonged when it involves large volumes of data. Further, the transfer of information may be interrupted or the information may be corrupted if the volume of data is so large that it cannot be processed as it is received.
  • One method for transferring data may be more efficient than another method depending on the type and the volume of data being transferred. For example, an older generation computer may be able to process text information more efficiently than graphics. Therefore, it would be beneficial if the information transported to that computer are in text format only.
  • Current processing and data transfer methods fail to automatically customize the transferred information or the method and rate of transfer to avoid the above- mentioned problems.
  • a method is needed that can automatically determine the most efficient manner of information transfer, by evaluating the system and network conditions prior to data transmission.
  • Information servers maintain information that are transferable through the Internet. They also process a client request to access that information. This information may be accessed and displayed in various forms. A common way of displaying and providing access to information on the Internet is to include the information in a web page. To enable the computers on a network to communicate with each other, a set of standardized rules for exchanging the information between the computers, referred to as a "protocol" is utilized.
  • Communication protocols generally specify the data format, timing, sequencing, and error checking of data transmissions.
  • Various communication protocols are used in the networking environment.
  • one communication protocol is referred to as the transmission control protocol /Internet protocol ("TCP/IP").
  • TCP/IP transmission control protocol /Internet protocol
  • the TCP/IP communication protocol includes a set of communication protocols used on the Internet and on many multiplatform networks.
  • the TCP/IP protocol family is made up of numerous individual protocols (e.g., file transfer protocol (“FTP”), transmission control protocol (“TCP”), and network terminal protocol (“TELNET”)).
  • the TCP protocol is responsible for breaking up a message to be transmitted and including it in packets of manageable size, reassembling the packets at the receiving end, retransmitting any packets that get lost (i.e., are not delivered), and reordering the data included in the packets in the appropriate format.
  • a "packet” is an encapsulated form of data or information (also referred to as a "datagram”) that is transferred or passed across the Internet according to the communication protocol standards.
  • a packet contains a source and destination address along with the information intended for transmission.
  • the TCP transfer protocol is often utilized to transmit large amounts of information because of its ability to break up information into packets and to reassemble the information at the receiving end.
  • Other communication protocols manage other functional aspects of information communication, and thus operate on a higher level than the TCP/IP protocol. These higher level protocols utilize TCP/IP as the underlying means for communication of information.
  • a higher level protocol defines a set of commands that one machine sends to another (e.g., commands to specify who the sender of the message is, who it is being sent to, and the text of the message) encapsulated in a series of packets encoded according to the specifications of that communication protocol. Those packets in turn are broken up, as needed, and encapsulated in TCP/IP packets so that they are transmitted to a destination on the network, via the TCP/IP protocol.
  • the TCP/IP and other currently available communication protocols transport the data at a certain rate and resubmit any undelivered packets without taking into consideration network conditions that may have caused the failure in delivery.
  • a method is needed to anticipate and /or detect the network conditions prior to data communication, and adjust or customize the rate and the content of transmission for better and more efficient results.
  • a method and apparatus for the customized transport of electronic material in a networked environment based on network conditions is described.
  • devices including personal computers, electronic organizers, etc., are designed and used to access the information provided on the Internet.
  • the server computer identifies the device used by the user and customizes the transmission rate and content for that device based on information that is either already available or that is acquired at the time the connection is established. For example, if the server determines that the client is using a device with limited display resources (e.g., a device that can only display text) it then generates or customizes display data that are compatible with the device (e.g., text data is transferred only).
  • a device with limited display resources e.g., a device that can only display text
  • data transmission is customized based on network conditions.
  • Network conditions determine the network throughput indicating the volume of information that can be successfully processed at a given time.
  • Various schemes are used to ascertain the most suitable data transfer scheme for a device.
  • the server keeps track of the amount of time required for a request to be processed in the network, and adjusts the data transfer rate so that more data is transported when the network conditions justify such adjustment.
  • Figure 1 is a block diagram illustrating the components of a general purpose computer, according to one or more embodiments of the invention.
  • Figure 2 is a block diagram of a network environment, according to one or more embodiments of the invention.
  • Figure 3 is a flow diagram illustrating the manner in which information transmitted to a network client is customized, according to one or more embodiments of the invention.
  • Figure 4 is a flow diagram illustrating step 320 of Figure 3 in further detail, according to one or more embodiments of the invention.
  • Figure 5 is a flow diagram illustrating in further detail how data transmission is customized, according to one or more embodiments of the invention.
  • the invention provides a method and apparatus for the customized transport of electronic material in a computer network, based on network conditions and system limitations.
  • numerous specific details are set forth in order to provide a more thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without these specific details. However, in order not to unnecessarily obscure the invention, all various implementations or alternate embodiments including well-known features of the invention may have not been described in detail herein.
  • An embodiment of the invention can be implemented as computer software in the form of computer readable code executed on a general purpose computer such as computer 100 illustrated in Figure 1, or in the form of bytecode class files executable within a JavaTM runtime environment running on such a computer, or in the form of bytecodes running on a processor (or devices enabled to process bytecodes) existing in a distributed environment (e.g., one or more processors on a network).
  • a keyboard 110 and mouse 111 are coupled to a system bus 118. The keyboard and mouse are for introducing user input to the computer system and communicating that user input to processor 113. Other suitable input devices may be used in addition to, or in place of, the mouse 111 and keyboard 110.
  • I/O (input /output) unit 119 coupled to system bus 118 represents such I/O elements as a printer, A/V (audio/video) I/O, etc.
  • Computer 100 includes a video memory 114, main memory 115 and mass storage 112, all coupled to system bus 118 along with keyboard 110, mouse 111 and processor 113.
  • the mass storage 112 may include both fixed and removable media, such as magnetic, optical or magnetic optical storage systems or any other available mass storage technology.
  • Bus 118 may contain, for example, thirty-two address lines for addressing video memory 114 or main memory 115.
  • the system bus 118 also includes, for example, a 64-bit data bus for transferring data between and among the components, such as processor 113, main memory 115, video memory 114 and mass storage 112. Alternatively, multiplex data/address lines may be used instead of separate data and address lines.
  • the processor 113 is a microprocessor manufactured by Sun Microsystems, Inc., such as the SPARCTM microprocessor, or a microprocessor manufactured by Motorola, such as the 680X0 processor, or a microprocessor manufactured by Intel, such as the 80X86, or Pentium processor.
  • Main memory 115 is comprised of dynamic random access memory (DRAM).
  • Video memory 114 is a dual-ported video random access memory. One port of the video memory 114 is coupled to video amplifier 116. The video amplifier 116 is used to drive the cathode ray tube
  • Computer 100 may also include a communication interface 120 coupled to bus 118.
  • Communication interface 120 provides a two-way data communication coupling via a network link 121 to a local network 122.
  • network link 121 For example, if communication interface 120 is an integrated services digital network (ISDN) card or a modem, communication interface 120 provides a data communication connection to the corresponding type of telephone line, which comprises part of network link 121.
  • ISDN integrated services digital network
  • communication interface 120 is a local area network (LAN) card
  • communication interface 120 provides a data communication connection via network link 121 to a compatible LAN.
  • Wireless links are also possible.
  • communication interface 120 sends and receives electrical, electromagnetic or optical signals which carry digital data streams representing various types of information.
  • Network link 121 typically provides data communication through one or more networks to other data devices.
  • network link 121 may provide a connection through local network 122 to local server computer 123 or to data equipment operated by an Internet Service Provider (ISP) 124.
  • ISP 124 in turn provides data communication services through the world wide packet data communication network now commonly referred to as the "Internet" 125.
  • Internet 125 uses electrical, electromagnetic or optical signals which carry digital data streams.
  • the signals through the various networks and the signals on network link 121 and through communication interface 120, which carry the digital data to and from computer 100, are exemplary forms of carrier waves transporting the information.
  • Computer 100 can send messages and receive data, including program code, through the network(s), network link 121, and communication interface 120.
  • remote server computer 126 might transmit a requested code for an application program through Internet 125, ISP 124, local network 122 and communication interface 120.
  • one such downloaded application is the method an apparatus for customizing web page content based on network conditions, as described herein.
  • the received code may be executed by processor 113 as it is received, and/or stored in mass storage 112, or other non-volatile storage for later execution. In this manner, computer 100 may obtain application code in the form of a carrier wave.
  • Application code may be embodied in any form of computer program product.
  • a computer program product comprises a medium configured to store or transport computer readable code, or in which computer readable code may be embedded.
  • Some examples of computer program products are CD-ROM disks, ROM cards, floppy disks, magnetic tapes, computer hard drives, servers on a network, and carrier waves.
  • Embodiments of the invention implement a method configured to customize the transport of electronic material, such as web page contents, in a networked environment.
  • Figure 2 is a block diagram of a network environment, according to one or more embodiments of the invention, wherein network server 210 communicates with clients 220 through 260, via Internet connection 205. Clients 220 through 260 can access electronic material contained in electronically created Internet documents, such as web page 215, by logging onto the network server and referencing the specific addresses (e.g., uniform resource locators or URLs) that correspond to said documents.
  • specific addresses e.g., uniform resource locators or URLs
  • network server 210 identifies a client requesting access to information contained in web page 215, and customizes the transmission rate and the content of the information provided to the client based on the identity of the client.
  • the identity of a client and the manner of customization can be determined based on information that is already available from previous login files (270) or from information that is acquired at the time the connection between the client and network server 210 is established.
  • Client 220 can be a personal computer
  • client 230 can be a server computer in a local network
  • client 240 can be a personal organizer device with Internet connection capabilities, for example.
  • Each of these clients can have limitations in their ability to process information that is transferred to them from web page 215.
  • client 220 can be an older generation computer with limited memory and processing resources. These limitations may prohibit client 220 from processing highly graphic contents.
  • Client 230 can be a computer with a bad or a slow Internet connection, for example. As a result it may fail to receive and process information at the rate it is transmitted by network server 210.
  • Client 240 can be a device that supports black and white graphics only, for example, and therefore unable to process color images.
  • network server 210 recognizes the limitations of each client, and customizes the content of web page 215, prior to transmission, to accommodate each client with the necessary information in the most suitable format.
  • FIG. 3 is a flow diagram illustrating the manner in which information transmitted to a client is customized, according to one or more embodiments of the invention.
  • network server 210 establishes a connection with a client requesting access to web page 215, via Internet connection 205.
  • network server 210 identifies the client's limitations or requirements and determines the network conditions for the established connection between server 210 and the client.
  • FIG 4 is a flow diagram illustrating step 320 in further detail, according to one or more embodiments of the invention.
  • the client is identified.
  • the identification of a client enables network server 210 to determine how to customize the content of web page 215 for that client.
  • the identification information includes information about a client's requirements and limitations.
  • this information can indicate whether the client can support the display of colored images, or highly graphic content. This information can be obtained either at the time the connection is established, for example, if the client is a first time subscriber.
  • network server 210 can identify a client's requirements and limitations by referencing a database or log that contains the needed information based on previous connections and transmission activities.
  • Network throughput is an indication of the rate of data transmission to the client. This information helps network server 210 to evaluate the data delivery success rate and to adjust the rate of transmission on that basis. Because of technological limitations, not all data transmitted is received at the target destination. For example, data may get lost or delivered to the wrong destination as the result of over congestion of network transmission lines with large volumes of data. Server 210 can adjust the transmission rate to reduce network congestion, thereby optimizing data delivery rate.
  • network throughput is calculated based on the round trip transmission time and the number of outstanding requests.
  • Round trip transmission time is the time period between the instance a request is submitted by a client to be processed by network server 210, and the instance that a response to that request is received by the client. Either of the above information can be traced and stored by either the clients or network sever 210, or both, for future reference.
  • clients that are involved in the same transmission group can exchange information regarding transmission throughput in the network, and generate a report that reflects the aggregate throughput rate for that group. Consequently, this information may be used by network server 210 to adjust the transmission rate for that group.
  • Network server 210 may obtain this information in real time (e.g., during transmission) and adjust its transmission rate accordingly.
  • information regarding network status i.e., the transmission rate at various time intervals, number of unsatisfied requests, round trip transmission time, etc.
  • This information can be statistically analyzed to determined the most efficient transmission rate for future communications.
  • embodiments of the invention comprise a monitoring window that references requests submitted by various clients. Every time a request is processed and a response is received by a client that request is removed from the window. The window keeps a count of outstanding requests that remain unprocessed. This count is used as a factor to calculate the throughput of the network at step 420.
  • transmission rate and web page contents are customized for each client or group of clients.
  • a proxy is utilized for customization of the data transmission rate or data content that is transmitted by the server.
  • a proxy can be an application or a server that has specific knowledge of one or more clients' requirements and acts as an intermediary between the server and the clients.
  • the proxy receives all transmissions that are to be received by the client and customizes the transmission content and /or the transmission rate in accordance with the requirements and limitations of each client, and forwards to them the information in the modified format.
  • network server 210 or a proxy may customize web page 215 contents so that they are transmitted in form of text, or in form of lower quality graphics that can be supported by client 220.
  • client 240 is a personal organizer device that has limited resources for color display of information
  • network server 210 or the proxy automatically customizes the content of web page 215 to be transmitted in black and white format, or other graphic format suitable for processing by client 240.
  • the various customized formats can be pre-generated. For example, different versions of web page 215 can be designed with different Internet addresses, and a requesting client can be directed to the address containing the version most compatible with that client's requirements.
  • network server 210 or a proxy can determine a client's requirements in real time and generate a version of web page 215 that is compatible with the client's specifications on-the-fly.
  • a proxy can determine a client's requirements in real time and generate a version of web page 215 that is compatible with the client's specifications on-the-fly.
  • several versions of web page 215 are either generated or available for clients with different requirements and specifications.
  • FIG. 5 is a flow diagram, illustrating in further detail, how data transmission is customized for individual or groups of network clients, according to one or more embodiments of the invention.
  • the volume of data transmitted by network server 210 is not processed by clients at the same rate.
  • a client may use a communication channel that supports a lower rate of data transmission, or may lack the capability to process the information as fast as it is transmitted.
  • a bottleneck situation arises that can lead to loss or inefficient delivery of data.
  • network server 210 initiates data transmission at the lowest possible bandwidth.
  • Bandwidth refers to the volume of data transferred per unit of time.
  • a proxy server may be utilized to act as an intermediary that performs the required adjustments to the transmission rate, as disclosed above, prior to transmission to the client.
  • One or more embodiments of the invention utilize other methods to determine and /or adjust network transmission throughput.
  • network conditions can be probed using a method introduced by Van Jacobson, known as “pathchar”, published and available for review on "http://gunpoweder.standord.edu/ ⁇ fox/pubs.html.”
  • pathchar a method introduced by Van Jacobson, known as "pathchar”, published and available for review on "http://gunpoweder.standord.edu/ ⁇ fox/pubs.html.”
  • no specific method may be employed, and network server 210 can optimistically transport data at a steady rate without making any adjustments, or any monitoring.
  • transmission of data involves data loss, whether or not network conditions are perpetually monitored to maintain data transmission rate at an optimal peak.
  • lost data is recovered and retransmitted to its proper destination.

Abstract

A method and apparatus for the customized transport of electronic material in a networked environment based on network conditions. In one or more embodiments of the invention, once a user (220) establishes a connection with a network server (210) to access the information available thereon, the server computer (210) identifies the device used by the user (220) and customizes the transmission rate and content for that device based on information (27) that is either already available or that is acquired at the time the connection is established.

Description

CUSTOMIZING WEB CONTENT BASED ON NETWORK CONDITIONS
BACKGROUND OF THE INVENTION
A. FIELD OF THE INVENTION
This invention relates to the field of computer networks, and more specifically to the efficient transport of electronic material such as web page contents based on network conditions. Portions of this patent document may contain material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure as it appears in the Patent and Trademark Office file or records, but otherwise reserves all copyright rights whatsoever.
Sun, Sun Microsystems, the Sun logo, Solaris, "Write Once, Run Anywhere", Java, JavaOS, JavaStation and all Java-based trademarks and logos are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. All SPARC trademarks are used under license and are trademarks of SPARC International, Inc. in the United States and other countries. Products bearing SPARC trademarks are based upon an architecture developed by Sun Microsystems, Inc.
B. BACKGROUND ART
The Internet is a networked computer environment comprised of a number of interconnected computer systems that provide a user with world wide access to electronic information. Typically, this information is included in electronically created files (such as HTML documents) known as "web pages" that can be understood by a user computer. The user computer can then display the electronic content of the web page in form of text, graphics or a combination of the two forms. The recent trend in creation of web pages has been towards more graphical and animated presentations. Inclusion of graphic and animation content in a web page substantially increases its size. As a result, to download and display a web page a large volume of information is transported through the communication channels established between a user computer and the server where the web page resides. Transmission of large volumes of data can overly congest a computer network and result in data loss and /or undesirably low transmission rates.
Additionally, many older generation computers or new generation devices that have limited resources fail to efficiently process and display web pages with high graphic content. This inefficiency results in frustrated and dissatisfied users. The efficient transport of large volumes of data in a network environment is dependent upon several factors including: the volume of data transferred, the data transfer rate, and the network throughput (i.e., maximum volume of data that can be processed by a computer or its peripherals in a unit of time). Currently there is no method available that can automatically detect and adjust the transfer content or rate of data based on the above factors. A method is needed that can automatically customize the content and the transfer rate of data included in a web page based on the above-referenced network conditions. The above problems can be better understood from a review of a general description of a network environment, the Internet, and network communication protocols.
Networks
In modern computing environments, it is common to employ multiple computers or workstations linked together in a network to communicate between, and share data with, network users. A network provides the users with various services such as electronic mail and file sharing. It may also include resources, such as printers, modems, and file servers. A modem, for example, provides the means to access and download web page contents via telecommunication channels onto the user computer.
A network can be a small system that is physically connected by cables or via wireless communication (a local area network or "LAN"). Alternatively, several separate networks can be connected together to form a larger network (a wide area network or "WAN"). Other types of networks include the Internet, telcom networks, intranets, extranets, wireless networks, and other networks over which electronic, digital and /or analog data may be communicated.
The Internet
The Internet is a client /server system that includes a worldwide network of interconnected computers. A "client" is the computer that is used to access the Internet. An Internet client accesses a computer on the network ("server") via an Internet provider. An Internet provider is an organization that provides a client with access to the Internet (via analog telephone line or Integrated Services Digital Network line, for example). A client can, for example, download a file from or send an electronic mail message to another computer /client using the Internet. A client or server may also access the Internet to retrieve information that are included in web pages.
Typically, when a user logs onto the Internet, using a client computer, the user views web pages that are stored on a remote server. Information including data files, and web pages are often transferred between the client and the server. To view a web page special software, such as a browser is used. The browser software, or browser, is a user-friendly interface that simplifies access to the Internet. A browser allows a client to communicate a request without having to learn a complicated command syntax, for example. A browser typically provides a graphical user interface (GUI) for displaying information and receiving input. Examples of browsers currently available include Netscape Navigator and Internet Explorer.
A browser displays information to a client or user as pages or documents. A software language such as the Hypertext Markup Language (HTML) is used to define the format for a page to be displayed in the browser. A web page is transmitted to a client as an HTML document, for example. The browser executing at the client parses the document and produces and displays a web page based on the information in the HTML document. Consequently, the HTML document defines the web page that is rendered at runtime on the browser. Depending on the type of information displayed or transferred (e.g., text, audio, video, etc.), the server or client may have to evaluate the information prior to processing. The processing time can be prolonged when it involves large volumes of data. Further, the transfer of information may be interrupted or the information may be corrupted if the volume of data is so large that it cannot be processed as it is received.
One method for transferring data may be more efficient than another method depending on the type and the volume of data being transferred. For example, an older generation computer may be able to process text information more efficiently than graphics. Therefore, it would be beneficial if the information transported to that computer are in text format only. Current processing and data transfer methods fail to automatically customize the transferred information or the method and rate of transfer to avoid the above- mentioned problems. A method is needed that can automatically determine the most efficient manner of information transfer, by evaluating the system and network conditions prior to data transmission.
Network Communication /Data Transfer
Information servers maintain information that are transferable through the Internet. They also process a client request to access that information. This information may be accessed and displayed in various forms. A common way of displaying and providing access to information on the Internet is to include the information in a web page. To enable the computers on a network to communicate with each other, a set of standardized rules for exchanging the information between the computers, referred to as a "protocol" is utilized.
Communication protocols generally specify the data format, timing, sequencing, and error checking of data transmissions. Various communication protocols are used in the networking environment. For example, one communication protocol is referred to as the transmission control protocol /Internet protocol ("TCP/IP"). The TCP/IP communication protocol includes a set of communication protocols used on the Internet and on many multiplatform networks.
The TCP/IP protocol family is made up of numerous individual protocols (e.g., file transfer protocol ("FTP"), transmission control protocol ("TCP"), and network terminal protocol ("TELNET")). The TCP protocol is responsible for breaking up a message to be transmitted and including it in packets of manageable size, reassembling the packets at the receiving end, retransmitting any packets that get lost (i.e., are not delivered), and reordering the data included in the packets in the appropriate format. A "packet" is an encapsulated form of data or information (also referred to as a "datagram") that is transferred or passed across the Internet according to the communication protocol standards. A packet contains a source and destination address along with the information intended for transmission. The TCP transfer protocol is often utilized to transmit large amounts of information because of its ability to break up information into packets and to reassemble the information at the receiving end. Other communication protocols manage other functional aspects of information communication, and thus operate on a higher level than the TCP/IP protocol. These higher level protocols utilize TCP/IP as the underlying means for communication of information.
To transfer information, a higher level protocol defines a set of commands that one machine sends to another (e.g., commands to specify who the sender of the message is, who it is being sent to, and the text of the message) encapsulated in a series of packets encoded according to the specifications of that communication protocol. Those packets in turn are broken up, as needed, and encapsulated in TCP/IP packets so that they are transmitted to a destination on the network, via the TCP/IP protocol.
The TCP/IP and other currently available communication protocols transport the data at a certain rate and resubmit any undelivered packets without taking into consideration network conditions that may have caused the failure in delivery. A method is needed to anticipate and /or detect the network conditions prior to data communication, and adjust or customize the rate and the content of transmission for better and more efficient results. SUMMARY OF THE INVENTION
A method and apparatus for the customized transport of electronic material in a networked environment based on network conditions is described. With the advent of the Internet technology more and more devices, including personal computers, electronic organizers, etc., are designed and used to access the information provided on the Internet.
In one or more embodiments of the invention, once a user establishes a connection with a network server to access the information available thereon, the server computer identifies the device used by the user and customizes the transmission rate and content for that device based on information that is either already available or that is acquired at the time the connection is established. For example, if the server determines that the client is using a device with limited display resources (e.g., a device that can only display text) it then generates or customizes display data that are compatible with the device (e.g., text data is transferred only).
In one or more embodiments of the invention, data transmission is customized based on network conditions. Network conditions determine the network throughput indicating the volume of information that can be successfully processed at a given time. Various schemes are used to ascertain the most suitable data transfer scheme for a device. For example, in one embodiment, the server keeps track of the amount of time required for a request to be processed in the network, and adjusts the data transfer rate so that more data is transported when the network conditions justify such adjustment. BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 is a block diagram illustrating the components of a general purpose computer, according to one or more embodiments of the invention.
Figure 2 is a block diagram of a network environment, according to one or more embodiments of the invention.
Figure 3 is a flow diagram illustrating the manner in which information transmitted to a network client is customized, according to one or more embodiments of the invention.
Figure 4 is a flow diagram illustrating step 320 of Figure 3 in further detail, according to one or more embodiments of the invention.
Figure 5 is a flow diagram illustrating in further detail how data transmission is customized, according to one or more embodiments of the invention.
DETAILED DESCRIPTION OF THE INVENTION The invention provides a method and apparatus for the customized transport of electronic material in a computer network, based on network conditions and system limitations. In the following description, numerous specific details are set forth in order to provide a more thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without these specific details. However, in order not to unnecessarily obscure the invention, all various implementations or alternate embodiments including well-known features of the invention may have not been described in detail herein.
EMBODIMENT OF COMPUTER EXECUTION ENVIRONMENT (HARDWARE)
An embodiment of the invention can be implemented as computer software in the form of computer readable code executed on a general purpose computer such as computer 100 illustrated in Figure 1, or in the form of bytecode class files executable within a Java™ runtime environment running on such a computer, or in the form of bytecodes running on a processor (or devices enabled to process bytecodes) existing in a distributed environment (e.g., one or more processors on a network). A keyboard 110 and mouse 111 are coupled to a system bus 118. The keyboard and mouse are for introducing user input to the computer system and communicating that user input to processor 113. Other suitable input devices may be used in addition to, or in place of, the mouse 111 and keyboard 110. I/O (input /output) unit 119 coupled to system bus 118 represents such I/O elements as a printer, A/V (audio/video) I/O, etc. Computer 100 includes a video memory 114, main memory 115 and mass storage 112, all coupled to system bus 118 along with keyboard 110, mouse 111 and processor 113. The mass storage 112 may include both fixed and removable media, such as magnetic, optical or magnetic optical storage systems or any other available mass storage technology. Bus 118 may contain, for example, thirty-two address lines for addressing video memory 114 or main memory 115. The system bus 118 also includes, for example, a 64-bit data bus for transferring data between and among the components, such as processor 113, main memory 115, video memory 114 and mass storage 112. Alternatively, multiplex data/address lines may be used instead of separate data and address lines.
In one embodiment of the invention, the processor 113 is a microprocessor manufactured by Sun Microsystems, Inc., such as the SPARC™ microprocessor, or a microprocessor manufactured by Motorola, such as the 680X0 processor, or a microprocessor manufactured by Intel, such as the 80X86, or Pentium processor. However, any other suitable microprocessor or microcomputer may be utilized. Main memory 115 is comprised of dynamic random access memory (DRAM). Video memory 114 is a dual-ported video random access memory. One port of the video memory 114 is coupled to video amplifier 116. The video amplifier 116 is used to drive the cathode ray tube
(CRT) raster monitor 117. Video amplifier 116 is well known in the art and may be implemented by any suitable apparatus. This circuitry converts pixel data stored in video memory 114 to a raster signal suitable for use by monitor 117. Monitor 117 is a type of monitor suitable for displaying graphic images. Computer 100 may also include a communication interface 120 coupled to bus 118. Communication interface 120 provides a two-way data communication coupling via a network link 121 to a local network 122. For example, if communication interface 120 is an integrated services digital network (ISDN) card or a modem, communication interface 120 provides a data communication connection to the corresponding type of telephone line, which comprises part of network link 121. If communication interface 120 is a local area network (LAN) card, communication interface 120 provides a data communication connection via network link 121 to a compatible LAN. Wireless links are also possible. In any such implementation, communication interface 120 sends and receives electrical, electromagnetic or optical signals which carry digital data streams representing various types of information.
Network link 121 typically provides data communication through one or more networks to other data devices. For example, network link 121 may provide a connection through local network 122 to local server computer 123 or to data equipment operated by an Internet Service Provider (ISP) 124. ISP 124 in turn provides data communication services through the world wide packet data communication network now commonly referred to as the "Internet" 125. Local network 122 and Internet 125 both use electrical, electromagnetic or optical signals which carry digital data streams. The signals through the various networks and the signals on network link 121 and through communication interface 120, which carry the digital data to and from computer 100, are exemplary forms of carrier waves transporting the information. Computer 100 can send messages and receive data, including program code, through the network(s), network link 121, and communication interface 120. In the Internet example, remote server computer 126 might transmit a requested code for an application program through Internet 125, ISP 124, local network 122 and communication interface 120. In accord with the invention one such downloaded application is the method an apparatus for customizing web page content based on network conditions, as described herein.
The received code may be executed by processor 113 as it is received, and/or stored in mass storage 112, or other non-volatile storage for later execution. In this manner, computer 100 may obtain application code in the form of a carrier wave.
Application code may be embodied in any form of computer program product. A computer program product comprises a medium configured to store or transport computer readable code, or in which computer readable code may be embedded. Some examples of computer program products are CD-ROM disks, ROM cards, floppy disks, magnetic tapes, computer hard drives, servers on a network, and carrier waves.
The computer systems described above are for purposes of example only. An embodiment of the invention may be implemented in any type of computer system or programming or processing environment. CUSTOMIZING DATA CONTENT AND DATA TRANSMISSION RATE
Embodiments of the invention implement a method configured to customize the transport of electronic material, such as web page contents, in a networked environment. Figure 2 is a block diagram of a network environment, according to one or more embodiments of the invention, wherein network server 210 communicates with clients 220 through 260, via Internet connection 205. Clients 220 through 260 can access electronic material contained in electronically created Internet documents, such as web page 215, by logging onto the network server and referencing the specific addresses (e.g., uniform resource locators or URLs) that correspond to said documents.
In one or more embodiments of the invention, network server 210 identifies a client requesting access to information contained in web page 215, and customizes the transmission rate and the content of the information provided to the client based on the identity of the client. The identity of a client and the manner of customization can be determined based on information that is already available from previous login files (270) or from information that is acquired at the time the connection between the client and network server 210 is established.
Referring to Figure 2, consider clients 220, 230, and 240 requesting to access information on web page 215 on network server 210 through Internet connection 205. Client 220 can be a personal computer, client 230 can be a server computer in a local network, and client 240 can be a personal organizer device with Internet connection capabilities, for example. Each of these clients can have limitations in their ability to process information that is transferred to them from web page 215.
For example, client 220 can be an older generation computer with limited memory and processing resources. These limitations may prohibit client 220 from processing highly graphic contents. Client 230 can be a computer with a bad or a slow Internet connection, for example. As a result it may fail to receive and process information at the rate it is transmitted by network server 210. Client 240 can be a device that supports black and white graphics only, for example, and therefore unable to process color images. In embodiments of the invention, network server 210 recognizes the limitations of each client, and customizes the content of web page 215, prior to transmission, to accommodate each client with the necessary information in the most suitable format.
Figure 3 is a flow diagram illustrating the manner in which information transmitted to a client is customized, according to one or more embodiments of the invention. At step 310, network server 210 establishes a connection with a client requesting access to web page 215, via Internet connection 205. At step 320, network server 210 identifies the client's limitations or requirements and determines the network conditions for the established connection between server 210 and the client.
Figure 4 is a flow diagram illustrating step 320 in further detail, according to one or more embodiments of the invention. Referring to Figure 4, at step 410 the client is identified. The identification of a client enables network server 210 to determine how to customize the content of web page 215 for that client. Thus, the identification information includes information about a client's requirements and limitations.
For example, this information can indicate whether the client can support the display of colored images, or highly graphic content. This information can be obtained either at the time the connection is established, for example, if the client is a first time subscriber. Alternatively, network server 210 can identify a client's requirements and limitations by referencing a database or log that contains the needed information based on previous connections and transmission activities.
At step 420, the network throughput between the client and network server 210 is determined. Network throughput is an indication of the rate of data transmission to the client. This information helps network server 210 to evaluate the data delivery success rate and to adjust the rate of transmission on that basis. Because of technological limitations, not all data transmitted is received at the target destination. For example, data may get lost or delivered to the wrong destination as the result of over congestion of network transmission lines with large volumes of data. Server 210 can adjust the transmission rate to reduce network congestion, thereby optimizing data delivery rate.
Various methods may be used to determine network throughput. In one or more embodiments of the invention, network throughput is calculated based on the round trip transmission time and the number of outstanding requests. Round trip transmission time is the time period between the instance a request is submitted by a client to be processed by network server 210, and the instance that a response to that request is received by the client. Either of the above information can be traced and stored by either the clients or network sever 210, or both, for future reference.
For example, in one or more embodiments of the invention, clients that are involved in the same transmission group can exchange information regarding transmission throughput in the network, and generate a report that reflects the aggregate throughput rate for that group. Consequently, this information may be used by network server 210 to adjust the transmission rate for that group.
Network server 210 may obtain this information in real time (e.g., during transmission) and adjust its transmission rate accordingly. Alternatively, if the network connection established between network server 210 and the network clients is a persisting connection, then information regarding network status (i.e., the transmission rate at various time intervals, number of unsatisfied requests, round trip transmission time, etc.) can be categorically saved in network logs and tables (270). This information can be statistically analyzed to determined the most efficient transmission rate for future communications.
To determine the number of outstanding requests, embodiments of the invention comprise a monitoring window that references requests submitted by various clients. Every time a request is processed and a response is received by a client that request is removed from the window. The window keeps a count of outstanding requests that remain unprocessed. This count is used as a factor to calculate the throughput of the network at step 420.
Referring to Figure 3, based on a client's identification and network conditions, at step 330, transmission rate and web page contents are customized for each client or group of clients. In one or more embodiments of the invention, a proxy is utilized for customization of the data transmission rate or data content that is transmitted by the server.
A proxy can be an application or a server that has specific knowledge of one or more clients' requirements and acts as an intermediary between the server and the clients. The proxy receives all transmissions that are to be received by the client and customizes the transmission content and /or the transmission rate in accordance with the requirements and limitations of each client, and forwards to them the information in the modified format.
If, for example, client 220 is an older generation computer that cannot support highly graphic content, then network server 210 or a proxy may customize web page 215 contents so that they are transmitted in form of text, or in form of lower quality graphics that can be supported by client 220. Likewise, if client 240 is a personal organizer device that has limited resources for color display of information, network server 210 or the proxy automatically customizes the content of web page 215 to be transmitted in black and white format, or other graphic format suitable for processing by client 240. In one or more embodiments of the invention, the various customized formats can be pre-generated. For example, different versions of web page 215 can be designed with different Internet addresses, and a requesting client can be directed to the address containing the version most compatible with that client's requirements. Alternatively, network server 210, or a proxy can determine a client's requirements in real time and generate a version of web page 215 that is compatible with the client's specifications on-the-fly. Thus, in one or more embodiments, several versions of web page 215 are either generated or available for clients with different requirements and specifications.
Aside from content customization, in some embodiments of the invention, the rate of transmission is also customized for various clients. Figure 5 is a flow diagram, illustrating in further detail, how data transmission is customized for individual or groups of network clients, according to one or more embodiments of the invention. Due to technological limitations, sometimes the volume of data transmitted by network server 210 is not processed by clients at the same rate. For example, a client may use a communication channel that supports a lower rate of data transmission, or may lack the capability to process the information as fast as it is transmitted. In this scenario, a bottleneck situation arises that can lead to loss or inefficient delivery of data. Thus, at step 510, network server 210 initiates data transmission at the lowest possible bandwidth. Bandwidth, refers to the volume of data transferred per unit of time.
Delivery of data, at step 510, at the lowest available bandwidth, reduces the chances for a bottleneck situation, as the volume of data transmitted is adjusted to a minimum. This prevents data loss that results from over congested network conditions. However, at step 520, it is determined whether network conditions have improved to justify a higher rate of transmission. This determination is based on statistical information and logs (see Figure 2, 270) generated at step 320. If network conditions have not improved (i.e., the network throughput is weak, there are many outstanding requests in the monitoring window, etc.) then at step 530, network 210 transmits the contents of web page 215 at the same or a lower rate, if possible. Else, at step 540 data is transmitted at a higher rate. In one or more embodiments of the invention a proxy server may be utilized to act as an intermediary that performs the required adjustments to the transmission rate, as disclosed above, prior to transmission to the client.
One or more embodiments of the invention utilize other methods to determine and /or adjust network transmission throughput. For example, network conditions can be probed using a method introduced by Van Jacobson, known as "pathchar", published and available for review on "http://gunpoweder.standord.edu/~fox/pubs.html." Alternatively, in some embodiments of the invention, no specific method may be employed, and network server 210 can optimistically transport data at a steady rate without making any adjustments, or any monitoring.
In either case, due to technological limitation, transmission of data involves data loss, whether or not network conditions are perpetually monitored to maintain data transmission rate at an optimal peak. In embodiments of the invention, at step 340, lost data is recovered and retransmitted to its proper destination.
Thus, a method and apparatus for customizing web page content based on network conditions has been described in conjunction with one or more specific embodiments. The invention is defined by the claims and their full scope of equivalents.

Claims

1. A method of transmitting electronic information to a client in a computer network environment using a proxy, said method comprising: determining said computer network conditions; transmitting said electronic information to a proxy; said proxy modifying said electronic information based on said network conditions; transmitting said modified information to said client.
2. The method of claim 1 further comprising the step of identifying said client configuration information.
3. The method of claim 1 further comprising the step of said proxy modifying said electronic information based on said client configuration information.
4. The method of claim 1 wherein the step of determining said network conditions comprises determining said network's throughput based on the number of outstanding packets for said client.
5. The method of claim 1 wherein the step of determining said network conditions comprises determining said network's throughput based on the number of outstanding packets for other clients in said client's network neighborhood.
6. The method of claim 1 wherein the step of determining said network conditions comprises determining said network's throughput based on roundtrip transmission time.
7. The method of claim 1, wherein the step of determining said network conditions comprises determining the transmission history of the network path along which said electronic data is to be transmitted.
8. The method of claim 1, wherein the step of determining said network conditions comprises determining said network's throughput based on information stored in data files that record data regarding network activity.
9. The method of claim 1, wherein the step of determining said network conditions comprises determining said network's throughput based on information stored in network logs that record data regarding network activity.
10. The method of claim 1, wherein said network conditions are determined based on said client's network address.
11. The method of claim 1, wherein said network conditions are determined based on said client's login information.
12. The method of claim 1 wherein said step of transmitting said electronic information further comprises: customizing said electronic information based on said client's configuration information; and monitoring and adjusting the network transmission rate for optimal throughput.
13. A method of claim 1, wherein said electronic information comprise web page content.
14. A method of claim 13, wherein said step of monitoring and adjusting the network transmission rate comprises: increasing the rate of data transmission if said network conditions improve.
15. A method of claim 13, wherein said step of monitoring and adjusting the network transmission rate comprises: maintaining or decreasing the rate of data transmission if said network conditions do not improve.
16. A computing system architecture comprising: at least one server; one or more clients, interconnected via a communication channel to said server; at least one said client requesting access to electronic information on said server; said server transmitting requested information to a proxy; said proxy determining said computer network conditions in the path of communication between said server and said client; and said proxy transmitting requested information to said client based on said network conditions.
17. The computing system architecture of claim 16 further comprising: said proxy identifying said client's configuration information.
18. The computing system architecture of claim 16, further comprising said proxy transmitting requested information to said client based on said client's configuration information.
19. The computing system architecture of claim 16, wherein said proxy determines network conditions by determining said network's throughput based on the number of outstanding packets for said client.
20. The computing system architecture of claim 16, wherein said proxy determines network conditions by determining said network's throughput based on roundtrip transmission time.
21. The computing system architecture of claim 16, wherein said proxy determines network conditions by determining the transmission history of the network path along which said electronic information is to be transmitted.
22. The computing system architecture of claim 16, wherein said proxy determines network conditions by determining said network's throughput based on information stored in data files that record data regarding network activity.
23. The computing system architecture of claim 16, wherein said proxy determines network conditions by determining said network's throughput based on information stored in network logs that record data regarding network activity.
24. The computing system architecture of claim 16, wherein said network conditions are determined based on said client's network address.
25. The computing system architecture of claim 16, wherein said network conditions are determined based on said client's login information.
26. The computing system architecture of claim 16, wherein said server customizes said electronic information based on said client's configuration information and monitors and adjusts the network transmission rate for optimal throughput.
27. The computing system architecture of claim 12, wherein said electronic information comprise web page content.
28. The computing system architecture of claim 27, wherein said server increases the rate of data transmission if said network conditions improve.
29. The computing system architecture of claim 27, wherein said server maintains or decreases the rate of data transmission if said network conditions do not improve.
30. A computer program product comprising: a computer usable medium having computer readable program code embodied therein configured to transmit electronic information to a client in a computer network environment; said computer program product comprising: computer readable code configured to cause a computer to determine said computer network conditions; computer readable code configured to cause a computer to transmit said electronic information to a proxy; and computer readable code configured to cause said proxy to modify said electronic information based on said network conditions; and computer readable code configured to cause a computer to transmit said modified information to said client.
31. The computer program product of claim 30 further comprising computer readable code configured to cause a computer to identify said client configuration information.
32. The computer program product of claim 30 further comprising computer readable code configured to cause said proxy to modify said electronic information based on said client configuration information.
33. The computer program product of claim 30, wherein said network conditions are determined based on the number of outstanding packets for said client.
34. The computer program product of claim 30, wherein said network conditions are determined based on the number of outstanding packets for other clients in said client's network neighborhood.
35. The computer program product of claim 30, wherein said network conditions are determined based on roundtrip transmission time.
36. The computer program product of claim 30, wherein said network conditions are determined the transmission history of the network path along which said electronic data is to be transmitted.
37. The computer program product of claim 30, wherein said network conditions are determined based on information stored in data files that record data regarding network activity.
38. The computer program product of claim 30, wherein said network conditions are determined based on information stored in network logs that record data regarding network activity.
39. The computer program product of claim 30, wherein said network conditions are determined based on said client's network address.
40. The computer program product of claim 30, wherein said network conditions are determined based on said client's login information.
PCT/US2000/016450 1999-06-30 2000-06-15 Customizing web content based on network conditions WO2001001621A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU56139/00A AU5613900A (en) 1999-06-30 2000-06-15 Customizing web content based on network conditions

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US34396399A 1999-06-30 1999-06-30
US09/343,963 1999-06-30

Publications (2)

Publication Number Publication Date
WO2001001621A2 true WO2001001621A2 (en) 2001-01-04
WO2001001621A3 WO2001001621A3 (en) 2001-04-05

Family

ID=23348432

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/016450 WO2001001621A2 (en) 1999-06-30 2000-06-15 Customizing web content based on network conditions

Country Status (2)

Country Link
AU (1) AU5613900A (en)
WO (1) WO2001001621A2 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1257107A2 (en) * 2001-05-08 2002-11-13 Matsushita Electric Industrial Co., Ltd. Two-way communicating method and system and information processing apparatus
WO2006002707A1 (en) * 2004-06-30 2006-01-12 Siemens Aktiengesellschaft A method of sending cti messages with varying delays
GB2417389A (en) * 2004-08-18 2006-02-22 Wecomm Ltd Transmitting data
CN102331525A (en) * 2011-06-01 2012-01-25 山东建筑大学 Distributed type on-line harmonic detecting system based on Internet of construction equipment
US8214272B2 (en) 2006-09-05 2012-07-03 Rafael A. Sosa Web site valuation
US8674110B2 (en) * 2003-09-26 2014-03-18 Novartis Ag Pyridylacetylenes for use as radiotracers and imaging agents

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5193151A (en) * 1989-08-30 1993-03-09 Digital Equipment Corporation Delay-based congestion avoidance in computer networks
US6094677A (en) * 1997-05-30 2000-07-25 International Business Machines Corporation Methods, systems and computer program products for providing insertions during delays in interactive systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5193151A (en) * 1989-08-30 1993-03-09 Digital Equipment Corporation Delay-based congestion avoidance in computer networks
US6094677A (en) * 1997-05-30 2000-07-25 International Business Machines Corporation Methods, systems and computer program products for providing insertions during delays in interactive systems

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1257107A2 (en) * 2001-05-08 2002-11-13 Matsushita Electric Industrial Co., Ltd. Two-way communicating method and system and information processing apparatus
EP1257107A3 (en) * 2001-05-08 2004-01-21 Matsushita Electric Industrial Co., Ltd. Two-way communicating method and system and information processing apparatus
US8674110B2 (en) * 2003-09-26 2014-03-18 Novartis Ag Pyridylacetylenes for use as radiotracers and imaging agents
WO2006002707A1 (en) * 2004-06-30 2006-01-12 Siemens Aktiengesellschaft A method of sending cti messages with varying delays
US8713123B2 (en) 2004-06-30 2014-04-29 Siemens Enterprise Communications GmbH & Co KG. Method of sending CTI messages in a communication system
GB2417389A (en) * 2004-08-18 2006-02-22 Wecomm Ltd Transmitting data
GB2417389B (en) * 2004-08-18 2007-10-31 Wecomm Ltd Transmitting data
US8214272B2 (en) 2006-09-05 2012-07-03 Rafael A. Sosa Web site valuation
CN102331525A (en) * 2011-06-01 2012-01-25 山东建筑大学 Distributed type on-line harmonic detecting system based on Internet of construction equipment

Also Published As

Publication number Publication date
WO2001001621A3 (en) 2001-04-05
AU5613900A (en) 2001-01-31

Similar Documents

Publication Publication Date Title
US6519646B1 (en) Method and apparatus for encoding content characteristics
US6757711B2 (en) Method and apparatus for delivering data
Gralla How the Internet works
US6173311B1 (en) Apparatus, method and article of manufacture for servicing client requests on a network
US6618747B1 (en) Electronic communication delivery confirmation and verification system
EP0950969B1 (en) Method and system for out-tasking conversions of message attachments
US6321269B1 (en) Optimized performance for transaction-oriented communications using stream-based network protocols
US8234406B2 (en) Method of redirecting client requests to web services
US7421515B2 (en) Method and system for communications network
EP0975128A1 (en) Method and apparatus for providing an internet third party data channel
US20020052947A1 (en) Method and system for managing performance of data transfers for a data access system
US20020032801A1 (en) Method and system for asymmetric satellite communications for local area networks
US20020156896A1 (en) System and method for providing a gateway between mobile two-way messaging devices and remote computer networks
WO2000058902A1 (en) Resource sharing on the internet via the http
JP2004527028A (en) Digital TV application protocol for interactive TV
WO2000036497A1 (en) Optimizing bandwidth consumption for document distribution over a multicast enabled wide area network
US8095599B2 (en) Mail-based web application and document delivery
US7801959B1 (en) Method and system for pushing electronic messages to a wireless portable device using a standard mail server interface
US7987271B1 (en) Methods and apparatus for inserting content within a content page
US20030055881A1 (en) Method and apparatus for transmitting data over a network
US20030055915A1 (en) Method and apparatus for transmitting data over a network
WO2001001621A2 (en) Customizing web content based on network conditions
US5912896A (en) Cable modem interface unit for generating and transmitting reply control packets
EP1008058B1 (en) Method and apparatus for providing flow control in a network system that is based on expected user processing time
Cisco XRemote Configuration Commands

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
AK Designated states

Kind code of ref document: A3

Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP