WO2003019901A1 - Systeme et procede permettant de valider l'envoi de notifications d'un serveur a un client sans solliciter un reseau de transmission de donnees - Google Patents
Systeme et procede permettant de valider l'envoi de notifications d'un serveur a un client sans solliciter un reseau de transmission de donnees Download PDFInfo
- Publication number
- WO2003019901A1 WO2003019901A1 PCT/IL2001/000793 IL0100793W WO03019901A1 WO 2003019901 A1 WO2003019901 A1 WO 2003019901A1 IL 0100793 W IL0100793 W IL 0100793W WO 03019901 A1 WO03019901 A1 WO 03019901A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- computer system
- server
- client
- connection
- backward
- Prior art date
- Legal status (The legal status 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 status listed.)
- Ceased
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Definitions
- the present invention relates in general to the field of client-server computer systems, and more particularly to a system and a non-polling method of operation for enabling the sending of notifications from a server to a client and enabling the client to get data from the server in a data communication network utilizing a stateless session-oriented protocol.
- a client-server application protocol is a set of rules a subset of which regards the manner of the interaction between clients and servers functioning across the data communication network.
- a client introduces a request to a server.
- the request indicates a specific demand, wrapped within a well-defined formatted message object, for the transmission of specific information content from the server to the client.
- the client receives a relevant response from server.
- the response is wrapped within a well-defined formatted message object containing either the desired information content or predefined status information such as an error condition concerning the inability of the network or the server therein to fulfill the request.
- HTTP HyperText Transfer Protocol
- a session incorporates and identifies a single request-response pair.
- the session is also associated with the setting up of a network connection between the requesting client and the responding server.
- a network connection is defined as a transport layer virtual circuit established between two program entities for the purpose of communication.
- Fig. 1A illustrates the elements of a highly simplified communicating environment and the steps involved in setting up a connection associated with a session, according to the rules of the HTTP and other stateless protocols.
- Client 10 sends a request 14 to server 12. The request effectively opens a new network connection to the server 12.
- Server 12 allocates resources to handle the session, processes the request 14, and communicates an associated response 16 back to the client 10.
- Client 10 receives the response 16 and server 12 terminates the session by disconnecting from client 10. From this point in time until the setting up of a new session client 10 is disconnected and therefore not functionally receptive to messages sent by the server 12. Thus, if subsequently server 12 attempts to communicate newly generated data 18 to the client 10 the attempt can not be performed. Only when client 10 initiates a new connection by the submission of a new request to server 12 can the new information 18 be sent.
- Fig. IB illustrates the traditional connectivity method in a simplified networking environment utilizing the HTTP 1.1 application protocol.
- HTTP 1.1 client 20 introduces requests 28, 34 to HTTP 1.1 server 22.
- Server 22 can be one of many available HTTP servers such as IIS, Apache, and the like. Server 22 is responsible for low-level transport managed by the HTTP 1.1 protocol, the SSL security protocol, and the like. For each separate requests 28, 34 separate connections 26, 32 are established. Server 22 receives requests 28, 34 separately and forwards the requests to request processor 38 of application server 24.
- Server 24 can be an ISAPI DLL application, or an Active Server Page (ASP), or a Common Gateway Interface (CGI), or an Enterprise JavaBeans (EJB) application used as an application server "on top" of the HTTP server 22.
- ASP Active Server Page
- CGI Common Gateway Interface
- EJB Enterprise JavaBeans
- Server 24 is utilized as a back end providing business rules, logic rules, database access, and the like.
- Interface 40 provides the ISAPI/CGI interface between server 22 and server 24.
- Request processor 38 processes requests 28, 34 separately via the appropriate application services and communicates the resulting data or notifications to server 22.
- Server 22 utilizing the respective communication channels 26, 32 transmits the respective responses 30, 32 to client 20.
- client 20 receives response 26 the respective session terminates and connection 26 closes.
- client 20 receives response 36 the respective session terminates and channel 32 is closes. Only client 20 is capable of initiating new connections and thereby opening new communication channels to server 22.
- Servers 22, 24 are unable to communicate with client 20 as long as the connection is closed. Computing application systems have specific objectives to accomplish.
- a permanently open communication channel between the client and the server.
- applications involving the sending of real-time updates to user screens on a specific client system, or applications involving the real-time synchronization of a server-side database with local client-side data tables, or application sending event notifications to client may substantially benefit from continuous connectivity. "Keeping alive" or sustaining the connection enables the communication of request-independent messages from the server to the client.
- the server In order to allow the server to transmit messages independently of a request to the client and to allow a client to be functionally receptive to any potential messages originated by the server independently of any specific request, the configuration of a single request-response pair session should be modified.
- the session's duration should be expanded to allow the inclusion of more than one server-specific response to at least one client-specific request.
- the expanded duration of a session can be attained by the provision of an option in respect to the setting up of a continuous connection between the client and the server.
- a number of program products such as Instant Messaging systems operating in a client-server environment utilize non-HTTP communication protocols in order to make available the option of continuous connections between a server and a client.
- These solutions utilize non-standard communication ports and therefore have problems when operating in a firewall environment.
- the firewall In an environment secured by a firewall, the firewall typically screens incoming messages according to the targeted communication ports. Typically messages sent to non-standard communication ports or by non-standard protocols are blocked.
- the client may be functionally receptive for messages arriving through the right port and according to the well-known standard protocol
- the server may transmit messages to the right port according to the well-known protocol, the messages proper are routinely blocked by the firewall.
- the HTTP request-response mechanism has no built-in notification-related features, which are usable in a realistically configured network.
- the server when the server is required to send a notification concerning a specific event or any other type of data to a client then the server must wait for the setting up of a new connection by the specific client. Only after the opening of the connection by the client can the transmission of the pending notification or data can be completed within the framework of a session as a message responding to a request.
- Polling is the periodical initiation of network connections by the submission of repeated requests.
- the requests are submitted by a client agent in order to open a session through which the reception of the pending notifications or new data from the server is enabled.
- a client agent is defined as a client program that initiates a request.
- a client agent can be a browser, an editor, a web-traversal routine, or any other end user tool.
- the server collects messages or data intended for the client.
- the client submits a request to the server every few seconds. Thereby, a connection is set up, and a standard request-response session opens.
- the server responds to the received request by the transmission all or some of the pending notifications or data to the requesting client. After the completion of the transmission the session terminates and the connection is torn down. Until the execution of the next polling action by the client the server again collects the notification or the data intended for transmission to the client.
- polling is the only available HTPP notification method, which is practical in a realistically configured networking environment including firewalls, proxy servers, and gateways.
- the disadvantage of the method is its inherent inefficiency. Polling creates a plurality of request-response sessions, densely spread over a short period of time. Typically, is it extremely difficult to synchronize the creation of the pending messages ' on the server side with the frequency of the polling session initiated by the client agent. Although most polling sessions do not transmit real data, the entire set of polling sessions is necessary in accomplishing timely transmission of up-to-date information. It will be easily perceived by one with ordinary skill in the art that a need exists for a system and method that will provide continuous connectivity between a client system and a server system.
- Such a method should substantially eliminate or reduce disadvantages and problems associated with previously developed methods. More particularly such a system and method should allow for continuous bi-directional communication utilizing a session-oriented protocol within the constraints of a realistically configured communication system including proxy servers, gateways, firewalls, and other network particles operative in the active manipulation of the messages.
- One aspect of the present invention regards a computing environment accommodating at least one client system connectable to one or more server systems via at least one network control unit in a data communication network.
- the computing environment includes a non-polling method of transmitting notifications from at least one server system to the at least one client system while utilizing a stateless session-oriented application protocol.
- the method includes submitting at least one backward request operative in the opening of a continuous connection between a first computer system and a second computer system by the first computer system to be sent to the second computer system. Identifying the backward request submitted by the first computer system by the second computer system. Inserting a backward request entry into a list of the backward connections open between the first computer system and the second computer system by the second computer.
- the second aspect of the present invention regards a computing environment accommodating at least one client system connectable via at least one network control unit to one or more server systems in a data communication network.
- the environment includes a system for creating, sustaining, and maintaining at least one open continuous connection between the at least one client system and the server system.
- the system includes a backward connection list implemented on a second computer system to hold at least one record associated with at least one open continuous connection. It also includes an application server implemented on the second computer system, a request processor handler component associated with the application server implemented on the second computer system, and backward connection handler component associated with the application server implemented on the second computer.
- the above aspects of the present invention provide for the creation, maintenance, and sustaining of open continuous connections between a first computer system and a second computer system across a data communication network.
- the above aspects of the present invention provide for the transmission of events, notifications, and data from the second computer to the first computer in the framework of the open continuous connection without the necessity for the first computer to perform polling.
- the above aspects of the present invention provide for keeping a network connection open and operative in a communication environment implementing a stateless session-oriented protocol.
- Fig. 1A is a block diagram of a simplified communication environment, which is known in the art.
- Fig. IB is a more detailed block diagram of a simplified communication environment, which is known in the art.
- Fig. 2 is a pictorial representation of the computing and communication environment suitable for the operation of the proposed method, in accordance with a preferred embodiment of the present invention.
- Fig. 3 is a schematic block diagram showing the constituent components of the client and server units, in accordance with a preferred embodiment of the present invention.
- Fig. 4A is a block diagram of a highly simplified communication environment, in accordance with a preferred embodiment of the present invention.
- Fig. 4B is a more detailed block diagram of a simplified communication environment, in accordance with a preferred embodiment of the present invention.
- Fig. 5 is a block diagram of the functional components participating in the method proposed, in accordance with a preferred embodiment of the present invention.
- Fig. 6A depicts the application protocol-specific message fields that are functional to the operation of the proposed method, in accordance with a preferred embodiment of the present invention.
- FIG. 6B depicts the structure of the backward connection list, in accordance with a preferred embodiment of the present invention.
- a method and system for the creation, maintenance, and the sustaining of a continuous connection between a client and a server within a single communication session is disclosed.
- Clients communicating with a server introduce two types of requests.
- the clients initiate a regular communication session via the submission of a request to the server for the transmission of a single associated response from the server.
- the regular requests are completed by the practically immediate reception of a single response.
- Subsequent to a received response associated with a regular request the session is terminated and the communication link is disconnected.
- This type of connection will be referred to as a "forward connection” and the request associated with this type of connection will be referred to as a "forward request”.
- the client is provided with the option of creating an uncompleted request.
- the client submits an uncompleted request to the server by introducing a specific predetermined parameter within the message object wrapping the request.
- the introduced parameter specifies that the network transport connection between the client and the server should remain open independently of the flow of responding messages from the server back to the client.
- This type of connection will be referred to as a "backward connection” and a request associated with a permanent connection will be referred to as a "backward request”.
- the server is provided with the capability of identifying and handling a backward request.
- the server intercepts and recognizes a backward request by examining the appropriate parameter introduced by the client within the body of the message containing the request.
- the server When the server identifies a backward request, the accompanying client control data and connection control data is inserted into a backward connection list.
- the list thus created is a series of records containing control information specifying currently open backward connections. Persons skilled in the art will appreciate that any type of data structure for the connection list is contemplated by the present invention.
- the server responds to the backward request by sending to the requesting client a response message object in order to confirm the opening of a backward connection.
- the message object is having specific control parameters set such that various operative components in the network disposed along the communication path between the requesting client and the responding server having the autonomous capability of terminating a connection are informed of the setting up of a backward connection.
- the confirmation message communicates the event of setting up a backward connection not only to the requesting client, but also to the entire set of relevant network components, such as the web server, and the proxy servers operative in maintaining the connection.
- the client is connected permanently to the server and considered to be "online”.
- the application server originates information, such as a notification of an event, an update sent by an external or internal information source, or the like, which is intended to be sent to a specific client, the server scans the connection records within the backward connection list.
- the server obtains the connection control data belonging to the client and utilizing the specific control information therein transmits a message object containing the new data to the client. Due to the prior backward connection confirmation message, the network particles located along the path of the network connection are aware of the backward connection. Therefore none of the components will terminate the connection. As the client is also aware of the backward connection, after the client receives the messages, which were sent by the server, the connection remains open.
- the client is provided with the capability of sending regular requests or forward requests independently of the open backward connection.
- the forward requests are handled in the manner known in the art.
- the application server is appropriately notified by the web server and the backward connection list is suitably updated by the deletion of the applicable connection record.
- various functional connection-related parameters associated with network activity should be reset.
- the auto-reconnect feature of the application protocol can be configured to sustain continuous connections even under extreme circumstances.
- the present invention is described below with reference to acts and symbolic representations of operations that are performed by the processing system.
- the acts and symbolically represented operations include the manipulation of electric signals by a central processing unit (CPU).
- the electrical system represent data bits which cause a resulting transformation or reduction of the electrical signal representation, and the maintenance of data bits at memory locations in the memory system to thereby reconfigure or otherwise alter he CPU's operation, as well as other processing of signals.
- the memory locations are physical locations that have particular electrical, magnetic, optical, or organic properties corresponding to the data bits.
- the application server presented in the following description is a set of computer programs implemented on a computing platform.
- the application server presented in the following description contains computer software instructions specifically developed for the practice of the present invention.
- the software in the presented application server causes the server to perform the various functions described herein, although it should be noted that it is possible to use dedicated electronic hardware to perform all server functionality described herein.
- the application server can be implemented as firmware by the embedding of the predetermined program instructions and/or appropriate control information within suitable electronic hardware devices containing application-specific integrated circuits.
- Fig. 2 illustrates a simplified block diagram of a data communication network 41, such as the Internet.
- Client system 42 implemented on a first computer platform is communicatively coupled to server system 46 implemented on a second computer platform via conventional communication link 48, data communication network 44, and conventional communication link 50.
- Communication links 42, 46 could be implemented using standard communication hardware components such as modems, network interface cards, standard communication lines, such as twisted pair telephone wires, coaxial cables or fiber optic channels. Links 42, 46 are effectuated by known communication software such as network browsers, communication control routines, and the like.
- Client 42 intermittently connects to server 46 in order to access and interact with the content information embedded on server 46.
- Server 46 responds to the requests of client 42 by sending the requested information back to client 42 utilizing conventional communication link 50, the data communication network 44, and the conventional communication link 48.
- client 42 utilizing conventional communication link 50, the data communication network 44, and the conventional communication link 48.
- proxy server typically contains network components operative in the controlling, processing, filtering, and the transmission of information.
- Such components are remote access servers, routers, proxy servers, gateways, and the like.
- a data communication network could also include connection points to other type of communication systems, such as Public Switched Telephone Networks (PSTNs), Cable Television Networks (CATVs), satellite networks, and the like.
- PSTNs Public Switched Telephone Networks
- CATVs Cable Television Networks
- satellite networks and the like.
- client 42 could be implemented on diverse computing and communicating platforms such as Personal Computers (PCs), Personal Digital Assistants (PDAs), mobile devices, WAP-enabled cellular devices, and the like.
- Client 42 could be implemented on devices located on diverse communication networks, such as LANs, WANs, cellular networks, satellite networks, and the like.
- the devices could have provided with advanced access and interaction capabilities to data communication networks such as the Internet when suitable access is made thereto through special gateway devices.
- Various operational techniques and protocols could be used in the source networks such as HTTP, WAP, and the like.
- the data communication networks operate according to various communication and application protocols.
- the data communication network is the Internet, and the application protocol utilized therein is the Hypertext Transfer Protocol (HTTP).
- HTTP Hypertext Transfer Protocol
- a client system 52 is implemented on a computing platform, which operates in a computing and communicating environment, such as a data communication network.
- Client 52 contains central processing unit (CPU) 56, communication device 58, I/O device 60, and memory device 62.
- Memory device 62 stores operating system 64, and client application 66.
- CPU 56 is the central unit in the computer containing the logic circuitry that performs the instructions of a computer's programs.
- Communication device 58 is responsible for communicatively connecting client 52 to a data network.
- Device 58 is a modem or a network interface card.
- I/O device 60 transfers data to or from the computer unit. Typical I/O devices are printers, display screens, hard disks, keyboards, and mouses.
- Memory device 62 is the electronic holding place for instructions and data necessary for the proper operation of the computer platform.
- Device 62 which is typically a hard disk, contains the operating system 64 and client application programs 66.
- Operating system 64 is a control program that manages the operation of all the other programs in the computer platform.
- operating system 64 performs various services for the client applications 66, such as sharing of the memory, management of the input/output, controlling of the multitasking, and the like.
- Operating system 64 could be any of the known operating systems such as UNIX, Linux, Windows 98, Windows NT, Windows 2000, Windows CE, diverse mobile operating systems (OS), and the like.
- Client applications 66 are programs that perform specific applications for the users of the client platform.
- An application which is central to the preferred embodiment of the present invention is a Web browser that performs content requests submitted by the users of client 52 to information sources within a data network and enables interaction with the content received.
- Server 54 is implemented on a computing platform, which operates in a computing and communicating environment, such as a data communication network.
- Server 54 contains central processing unit (CPU) 70, communication device 72, I/O device 74, and memory device 76.
- Memory device 76 stores operating system 78, and server applications 80.
- CPU 70 is the central unit in the computer containing the logic circuitry that performs the instructions of a computer's programs.
- Communication device 72 is responsible for communicatively connecting server 54 to a data network.
- Device 72 is a modem or a network interface card.
- I/O device 74 transfers data to or from the computer unit.
- Memory device 76 is the electronic holding place for instructions and data necessary for the proper operation of the computer platform.
- Device 76 contains the operating system 78 and server applications 80.
- Memory device 76 is preferably a hard disk.
- Operating system 78 is a control program that manages the operation of all the other programs running in the computing platform.
- operating system 78 performs various services for the server applications 80, such as sharing of the memory, management of the input/output, controlling of the multitasking, and the like.
- Server applications 80 perform applications for the users of the computing platform.
- One application relevant to the preferred embodiment of the present invention is a web server, which is a back-end application that handles the requests sent by client 52.
- IIS Internet Information Server
- IIS contains a set of Internet Server Application Program Interfaces (ISAPIs).
- ISAPIs are a set of program calls that enable to develop back-end applications.
- ISAPI a Dynamic Link Library application file can be constructed, which can run as part of the Hypertext Transport Protocol (HTTP) application's process and address space.
- HTTP Hypertext Transport Protocol
- the DLL files are loaded into the computer when HTTP is started and remain there as long as they are needed.
- a special kind of ISAPI DLL is called an ISAPI filter, which can be designated to receive control for every HTTP request.
- An ISAPI filter can be implemented for encryption or decryption, for logging, for request screening, or for other purposes.
- FIG. 4A illustrates the elements of a highly simplified communicating environment and the steps involved in setting up a continuous connection, according to the present invention.
- the application protocol utilized in the environment is the HyperText Transfer Protocol (HTTP) or any other stateless session-oriented protocol.
- HTTP HyperText Transfer Protocol
- client 82 sends an uncompleted request to server 84.
- the request is uncompleted such that no single response from the server 84 will effect the termination of the connection.
- Client 82 allows the connection 86 to remain open. Connection 86 does not close because server 84 does not send a closing instruction for terminating the open connection.
- the client 82 initiates the uncompleted request by the introduction of a prescribed parameter within the header or the body of the request.
- the request and the contained prescribed parameter will cause the opening of a continuous network connection 86 between the client 82 and the server 84.
- the continuous connection 86 will remain open as long as the client 82 desires to "listen” or to be functionally receptive to server-initiated communication from server 84 via transport 86. Therefore, as long as the transport 86 is open whenever server 84 sends information to client 82 the information will be functionally received by client 82.
- the continuous connection 86 enables client 82 to receive timely information from server 84 without the necessity for polling server 84 i.e., without the need for introducing repetitive requests to server 84.
- Repetitive requests typically increase the traffic volume within the communication network, and significantly increase workload on server 84 by compelling server 84 to respond to the entire set of the repetitive requests.
- the setting up of continuous connections according to the proposed method and system will substantially diminish the volume of the traffic within the network and will substantially reduce the workload on server 84.
- server 84 suitably processes the uncompleted request, and communicates a specific response back to client 82 via the transport 86.
- the communicated response is operative in finalizing the opening of connection 86 as a continuous connection.
- the communicated response sent by server 84 is also operative in the transmission of notifications regarding the setting up of the continuous connection 86 to specific network components disposed on the communication path between server 84 and client 82 that have the capability of independently terminating a connection.
- Connection 86 remains open because server 84 does not send a "close connection" instruction, as a result of the sending of the specific response by the server 84 and because the client has been programmed to keep the connection open. Subsequently connection 86 will not be terminated by the network components having the capability of closing network connections independently.
- Fig. 4B illustrates the proposed connectivity technique according to the method and system of the present invention in a simplified networking environment utilizing the communication protocols and the HTTP 1.1 application protocol.
- HTTP 1.1 client introduces requests 98 and 104 to HTTP 1.1 server 90.
- Server 90 can be one of many available HTTP servers such as IIS, Apache, and the like. Server 90 is responsible for low-level transport managed by the HTTP 1.1 protocol, the SSL security protocol, and the like. For each separate requests 98, 104 separate connections 100, 106 are established.
- Request 104 is a conventional "forward" request operative in the opening of conventional "forward" connection 106.
- Server 90 receives forward request 104 and forwards the request 104 to request processor 96 of application server 92.
- Server 92 can be an ISAPI DLL application, a CGI application used as an application server "on top" of the HTTP server 90 and the like. Server 92 is utilized as a back-end providing business rules, logic rules, database access, and the like. Interface 97 provides the IS API/CGI interface between server 90 and server 92.
- Request processor 96 processes request 104 via the appropriate application services and after recognizing the request as a conventional forward request communicates the resulting data or notifications to server 90.
- Server 90 utilizing the communication channel 106 transmits a conventional practically immediate response 108 to client 88. When client 88 receives the immediate response 108 the session associated with the request-response pair 104-108 terminates and the connection 106 closes.
- Client 88 is capable of initiating new connections and thereby opening new communication channels to server 90.
- Request 98 is a "backward" request operative in the opening of a "backward” connection 100.
- Server 90 receives backward request 98 and sends the backward request 89 to request processor 96 of application server 92.
- Server 92 can be an ISAPI DLL application, a CGI application used as an application server "on top” of the HTTP server 90 and the like.
- Server 92 is utilized as a back-end providing business rules, logic rules, database access, and the like.
- Interface 97 provides the ISAPI/CGI interface between server 90 and server 92.
- Request processor 96 processes request 98 via the appropriate application services and after recognizing the request as a backward request assembles a specific confirmation and notification response concerning the finalization of connection 100 as a continuous connection.
- the response 101 wrapped within a message is communicated to server 90.
- Server 90 utilizing the communication channel 100 transmits the message 101 to client 88.
- Client 88 initially creates the connection 100 to remain constantly open.
- As results of the message 101 client 88 receives notification that its request was fulfilled.
- Connection 100 remain open because server: a) does not close it; b) server put to response header (or in the body) corresponding values for not closing the connection; c) client 88 is set to a constant connection state and does not close the connection by itself. As a result of the message client 88 allows the connection 100 to remain open.
- Connection 100 is finalized as a "backward" connection or a continuous connection.
- the notification message 101 is also operative in notifying other network components (not shown) disposed along the communication path between client 88 and server 90 regarding the finalization of connection 100 as a continuous connection.
- the network components allow the connection 100 to remain permanently open.
- server 92 is updated with new data originating from diverse external or internal information sources or routines (not shown) and the updates are operative in the activation of processes for the notification of client 98.
- the notification manager 94 of server 92 may assemble suitable data objects 103, 105, 107 containing the new data.
- the data objects 103,105,107 are transmitted to server 90.
- Server 90 sends the data objects within the well-defined formatted HTTP 1.1 messages 102 and sends the messages 102 to client 88 via transport 100.
- the client 88 is functionally receptive to transmission of messages from server 90. Therefore, as long as connection 100 is open the messages 102 sent by server 90 are functionally received and appropriately processed by client 88.
- client 88 can also terminate the continuous connection 100 through the activation of predetermined procedures.
- FIG.5 illustrates the connectivity flow between the various components of a simplified data communication network in accordance with the proposed method and system of the present invention.
- Client 110 is implemented on a computing platform communicatively linked to other computing platforms across a data communication network.
- Client 110 includes a client agent 120 and can also include a local database 122.
- Client agent 120 is preferably a Web browser.
- Agent 120 is an application program that provides a way to look at and interact with information sources on a data network such as the World Wide Web (the Web).
- Agent 120 is a client program that uses the Hypertext Transfer Protocol (HTTP) to make requests of Web servers throughout the Internet on behalf of the browser user.
- Agent 120 can be any network browsers implementing stateless session-oriented protocols such as HTTP or the like.
- Agent 120 can also be a specifically written agent for accomplishing the tasks described herein.
- Known network browsers that can be utilized are the Netscape Navigator or the Microsoft Internet Explorer (MSIE).
- Optional local database 122 is a formatted data structure operative in storing client-side application data. Other methods for storing the client-side application data can be equally used.
- Client 110 is communicatively linked to server 111 via a data communications network.
- a proxy server 112 is deployed in the path of communication between the client 110 and the server 111.
- Server 112 is used as an intermediary between a client and the data network in order to ensure security, administrative control, and caching service.
- a proxy server is associated with or is a part of a gateway server that separates a local data network from the external data network and a firewall server that protects the local network from outside intrusion.
- Web server 114 is contained within the server system 111 implemented on a computing platform communicatively connected to the data network.
- Server 114 can be any one of the HTTP server extendible applications such as the Internet Information Server (IIS) developed and distributed by Microsoft Corporation and the like.
- IIS Internet Information Server
- Other extendible HTTP servers can be used, such as UNIX-specific HTTP servers using CGI technology and the like. Any other HTTP server can be employed in the context of the present invention.
- server 112 is an IIS server. IIS can be easily extended by using the built-in Internet Services API (API) routines.
- API Internet Services API
- ISAPI is a set of program calls that provide the capability of writing back-end applications.
- An ISAPI extension is a Dynamic Link Library (DLL) routine.
- DLL Dynamic Link Library
- the DLL is called by submitting to the IIS a Uniform Resource Locator (URL) with a virtual path to the DLL.
- a special kind of ISAPI DLL is called an ISAPI filter, which can be designated to receive control for every HTTP request.
- An ISAPI filter can be created for various purposes such as for request screening, or the like. Other elements having like operation and functionality can be similarly employed and are equally contemplated by the present invention.
- Front-end is a term used to characterize program interfaces and services relative to the initial user of these interfaces and services. The user may be a human being or a program.
- a front-end application is one that application users interact with directly.
- a back-end application program serves indirectly in support of the front-end services, usually by being closer to the required resource or having the capability to communicate with the required resource.
- the back-end application may interact directly with the front-end.
- the back-end application is typically a program called from an intermediate program that mediates front-end and back-end activities.
- server 116 is developed using ISAPI extensions.
- Application server 116 is a server-side back-end application implemented as part of the server system 111 embedded on a computing platform within a data communication network.
- Server 116 includes request processor 126, backward connection handler 130, and backward connection list 132.
- Request processor 126 is operative in servicing requests submitted by client 110.
- Processor 126 accepts requests from client 110, and forwards the requests to a database server 1 18 for processing. Processor 126 is also operative in receiving incoming content, services, notifications, or updates from database server 118 and appropriately transmitting the received content back to client 118.
- processor 126 controls backward connection handler 130. Handler 130 is activated by processor 126 in order to identify backward requests, to effect the insertion of backward connection records into backward connection list 132, to search for and obtain backward connection records from backward connection list 132 in order to identify operative continuous connections and for effecting the transmission of new data via the open connections.
- List 132 is a formatted data structure which stores data associated with continuous connections.
- Database server 118 is a back-end application implemented within a server system on a computing platform communicatively linked to a data network.
- Database server 118 is operative in supplying content information such as Web pages, data, or files within the framework of responses to the requests of client 110.
- Server 118 is linked to content database 132.
- Server 118 is operative in processing requests from request processor 116.
- Server 118 accesses content database 134, obtains the content information requested by client 110 and transmits the requested content to request processor 126.
- FIG. 5 includes a single database server associated with a single content database. In the preferred embodiment of the present invention, a plurality of database servers associated with a plurality of content databases could be operative.
- client 110 submits an HTTP request via the services of client agent 120.
- Agent 120 can be a Web browser and operates in the known manner of network browsers such as the Netscape Navigator or the Microsoft Internet Explorer.
- Agent 120 can be a specially written computer program for connecting to a network and forwarding an receiving network-related instructions.
- An HTTP request is submitted by the utilization of a Uniform Resource Locator (URL).
- URL Uniform Resource Locator
- extendable header fields can be employed.
- the structure of an exemplary URL to be submitted is shown as the following statement: "http://server-ip/server-port/server.dll?Backward"
- the client 110 supplies a regular block of
- HTTP headers containing identification and control information to allow the server 111 to identify the backward connection and associate the information thereof with the particular client 110.
- the identification and control information enables the server 111 to keep a list of open backward connections 132 with associated control information identifying the backward connection-initiating client systems.
- notifications received from diverse external or internal information sources such as a database server and are intended to be sent to the client system 110 are transmitted by the server 111 through utilizing the backward connection control information stored within the backward connection list 132.
- the request introduced by client 110 is formatted as an HTTP request and transmitted to the server 111.
- the request forwarded to the web server 114 and to the application server 116.
- the request processor 126 forwards the request to the backward connection handler 130.
- Handler 130 examines the request contents for the presence of the particular BACKWARD parameter. Requests without the specific parameter are handled like conventional forward requests in the manner known in the art. Identified backward messages are appropriately processed by the extraction of the relevant control information from the header or the body of the request. The processing of the backward request also includes the building and the insertion of a backward connection record 159, 161 of FIG. 6B into backward connection list 132.
- the backward connection record 159 of FIG. 6A includes connection identification 156, and client identification 158. Record 159 is utilized as a pointer to backward connection record 161 of FIG. 6B, Backward connection record 161 of FIG. 6B contains target Internet Protocol (IP) address 160, a port number 162 and a source IP address 164.
- IP Internet Protocol
- the Server 111 will create a suitable response 140 of FIG. 6A intended as confirmation and/or notification to client 110 and to other network components.
- the response 140 of FIG. 6A is effective in finalizing the continuous state of the connection.
- the response message header 142 of FIG. 6A includes a Connection field 146 with the value of the field set to "KEEP- ALIVE", a Connection-Length field 148 with the value of the field set to a maximum possible value, such as "ULONG_MAX”, and a Content-Length 150 field with the field set to a maximum possible value, such as "ULONG_MAX".
- the client 110 is notified regarding the setting up of a continuous connection by the setting of the variable Connection-Length 148 to the maximum possible value "ULONG_MAX".
- the maximum possible value of the variable Connection-Length 148 will require client 110 to wait for an indefinite period before effecting a disconnection due to a client-side timeout signal.
- the maximum possible value of the variable Connection-Length 148 of FIG. 6A enables the client agent 120 to receive blocks of content information transmitted from the server 111 independently of specific requests. In addition to notifying client 110 other specific network components should be notified in regard to the setting up of a continuous connection.
- the value of the variable Content-Length 150 of response header 142 is also set to the maximum possible value such as
- Proxy server 112 disposed along the communication path between client 1 10 and server 1 11 may close the continuous connection independently of the actions performed by server 1 11 or by client 110.
- proxy server 112 has been provided with sophisticated built-in routines in order to perform autonomously supplementary connectivity optimizations within the communication network.
- proxy server 112 may terminate a network connection independently of connection-specific operative components such as the client 1 10 or the server 111. Depending on the precise network installation and configuration actions such as these, which follow, should be performed in order to prevent the proxy server 1 12 from interfering with the sustaining of a continuous connection.
- the field Connection 146 within HTTP header 142 of HTTP response 140 on FIG. 6B should contain the value "KEEP-ALIVE" to inform all the relevant network components that the relevant TCP socket should not be closed even if a proxy server considers the current request as already completed.
- the KEEP-ALIVE messages can be sent on the application protocol level from the server to the client.
- Such signals can be used by the client to restore or reestablish broken connection.
- the field Connection-Length 148 within HTTP header 142 of HTTP response 140 on FIG. 6B should contain the maximum possible value such as "ULONG_MAX” in order to disable the proxy server timeouts. The maximum possible value such as "ULONG_MAX” will make the proxy server to consider the request uncompleted even after a considerably long period.
- IIS connection timeout values should be set to a maximum possible value such as "ULONG_MAX”. IIS connection timeout values can be configured via the Internet Service Manager application.
- the HTTP client 110 connection timeout value should be set to a maximum possible value.
- HTTP specifications require HTTP clients not to close a connection since typically the HTTP servers are responsible for the closing a connection. However, many HTTP clients perform their own timeout checking and occasionally do close a connection when such a timeout occurs. For example,,Microsoft Internet Explorer (MSIE) utilizes a default timeout value set to twenty minutes. The connection timeout option of an HTTP client is should be disabled by appropriately modifying the suitable registry settings. e)As a "natural" timeout can still occur under certain circumstances, like for example after transmitting a considerably large number of notification data over a considerably long period of time, an auto-reconnect feature restoring backward connection, should be added to the client/server implementation scheme.
- MSIE Microsoft Internet Explorer
- the backward connection handler 130 is activated in order to look up the client's connection identification 158 of FIG. 6B in the list of the backward connections 132. Subsequently the connection identification 158 of FIG. 6B and associated connection data 160,162,164 of FIG.6B is utilized to transmit data via the backward connection to the client 110.
- Client agent 120 is operative in the processing of the received information. Optionally by the utilization of client-side routines the received information is inserted into local database 122.
- WriteClient function can be used to send data to the client 110 identified by the given connection identification fields 160,162,164 of FIG. 6B.
- client 110 disconnects or the continuous connection is terminated as a result of diverse network-related events, such as a network failure
- the IIS 114 informs backward connection handler 130 in regard to the connection loss.
- the disconnection-related information is accompanied by an appropriate reason code.
- the receiving of the disconnection-related information effects the removal of the connection identification 158 of FIG. 6B from the backward connection list 132.
- the proposed method and system is operative in the creation, maintenance, and the sustaining of continuous network connections within the framework of a single communication session.
- the method and system according to the teachings of the present invention operate within a data network environment that utilizes a stateless application protocol such as the HTTP. Messages transported via the HTTP protocol are sent to and received from a well-known port, such as the standard HTTP port 80.
- a well-known port such as the standard HTTP port 80.
- the present invention accomplishes a continuous connection transport within the framework of the HTTP, the requests and responses transmitted between the operative components of the proposed system are communicated via port number 80.
- port number 80 is a well-known standard port the messages will not be blocked by firewall routines configured to filter messages transmitted through non-standard ports.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/IL2001/000793 WO2003019901A1 (fr) | 2001-08-23 | 2001-08-23 | Systeme et procede permettant de valider l'envoi de notifications d'un serveur a un client sans solliciter un reseau de transmission de donnees |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/IL2001/000793 WO2003019901A1 (fr) | 2001-08-23 | 2001-08-23 | Systeme et procede permettant de valider l'envoi de notifications d'un serveur a un client sans solliciter un reseau de transmission de donnees |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2003019901A1 true WO2003019901A1 (fr) | 2003-03-06 |
Family
ID=11043085
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/IL2001/000793 Ceased WO2003019901A1 (fr) | 2001-08-23 | 2001-08-23 | Systeme et procede permettant de valider l'envoi de notifications d'un serveur a un client sans solliciter un reseau de transmission de donnees |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2003019901A1 (fr) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7469302B2 (en) * | 2003-08-29 | 2008-12-23 | Yahoo! Inc. | System and method for ensuring consistent web display by multiple independent client programs with a server that is not persistently connected to client computer systems |
| WO2005022333A3 (fr) * | 2003-08-29 | 2009-04-16 | Yahoo Inc | Notification d'evenement |
| US11516286B2 (en) * | 2019-03-28 | 2022-11-29 | Comcast Cable Communications, Llc | Managing service capacity |
| US12406076B2 (en) | 2021-07-02 | 2025-09-02 | Luc Bessette | Electronic records system and related methods |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6038601A (en) * | 1997-07-21 | 2000-03-14 | Tibco, Inc. | Method and apparatus for storing and delivering documents on the internet |
| WO2000072537A1 (fr) * | 1999-05-24 | 2000-11-30 | Nokia Corporation | Passerelle pour systeme radio |
-
2001
- 2001-08-23 WO PCT/IL2001/000793 patent/WO2003019901A1/fr not_active Ceased
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6038601A (en) * | 1997-07-21 | 2000-03-14 | Tibco, Inc. | Method and apparatus for storing and delivering documents on the internet |
| WO2000072537A1 (fr) * | 1999-05-24 | 2000-11-30 | Nokia Corporation | Passerelle pour systeme radio |
Non-Patent Citations (3)
| Title |
|---|
| MOGUL J C: "THE CASE FOR PERSISTENT-CONNECTION HTTP", COMPUTER COMMUNICATIONS REVIEW, ASSOCIATION FOR COMPUTING MACHINERY. NEW YORK, US, vol. 25, no. 4, 1 October 1995 (1995-10-01), pages 299 - 313, XP000541665, ISSN: 0146-4833 * |
| PADMANABHAN V N ET AL: "Improving HTTP latency", COMPUTER NETWORKS AND ISDN SYSTEMS, NORTH HOLLAND PUBLISHING. AMSTERDAM, NL, vol. 28, no. 1, 1 December 1995 (1995-12-01), pages 25 - 35, XP004001208, ISSN: 0169-7552 * |
| PADMANABHAN V N: "IMPROVING WORLD WIDE WEB LATENCY", UNIVERSITY OF CALIFORNIA REPORT, XX, XX, 1 May 1995 (1995-05-01), pages 1 - 24, XP002041557 * |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7469302B2 (en) * | 2003-08-29 | 2008-12-23 | Yahoo! Inc. | System and method for ensuring consistent web display by multiple independent client programs with a server that is not persistently connected to client computer systems |
| WO2005022333A3 (fr) * | 2003-08-29 | 2009-04-16 | Yahoo Inc | Notification d'evenement |
| US7600046B2 (en) | 2003-08-29 | 2009-10-06 | Yahoo! Inc. | Event notification |
| US11516286B2 (en) * | 2019-03-28 | 2022-11-29 | Comcast Cable Communications, Llc | Managing service capacity |
| US11805168B2 (en) | 2019-03-28 | 2023-10-31 | Comcast Cable Communications, Llc | Managing service capacity |
| US12267388B2 (en) | 2019-03-28 | 2025-04-01 | Comcast Cable Communications, Llc | Managing service capacity |
| US12406076B2 (en) | 2021-07-02 | 2025-09-02 | Luc Bessette | Electronic records system and related methods |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7216172B2 (en) | Systems and methods for establishing quasi-persistent HTTP connections | |
| US8645556B1 (en) | Method and system for reducing memory used for idle connections | |
| US7769871B2 (en) | Technique for sending bi-directional messages through uni-directional systems | |
| US6775687B1 (en) | Exchanging supplemental information fields between a client and a server | |
| JP5372083B2 (ja) | クライアント側の加速技術を提供するシステムおよび方法 | |
| CN1716940B (zh) | 动态控制一个网络设备的系统 | |
| US8332464B2 (en) | System and method for remote network access | |
| EP0822692A2 (fr) | API orientée objet pour client et passerelle pour la réalisation de OLTP sur Internet | |
| US7024497B1 (en) | Methods for accessing remotely located devices | |
| US20080177829A1 (en) | Data Communications Through A Split Connection Proxy | |
| JP3782981B2 (ja) | セッション中継システム、クライアント端末、セッション中継方法、リモートアクセス方法、セッション中継プログラム及びクライアントプログラム | |
| EP1259045A2 (fr) | Procédé et dispositif de vérification du statut sécurisé d'un pair dans un environement point à point | |
| US20060031525A1 (en) | Communicating between a server and clients | |
| EP1173952B1 (fr) | Commande a distance d'un dispositif | |
| WO2003094032A1 (fr) | Systeme de multiplexeurs/demultiplexeurs securisant les transactions | |
| CA2141282A1 (fr) | Systeme et methode d'acces a un gestionnaire de transactions | |
| WO2003052610A1 (fr) | Systeme et procede de telechargement de donnees faisant intervenir un serveur mandataire | |
| US20110161412A1 (en) | Processing requests transmitted using a first communication directed to an application that uses a second communication protocol | |
| US6553406B1 (en) | Process thread system receiving request packet from server thread, initiating process thread in response to request packet, synchronizing thread process between clients-servers. | |
| US10367894B2 (en) | Information processing apparatus, method for controlling the same, non-transitory computer-readable storage medium, and information processing system | |
| US8416754B2 (en) | Network location based processing of data communication connection requests | |
| US20040128545A1 (en) | Host controlled dynamic firewall system | |
| EP1696627B1 (fr) | Appareil et système pour extraire des informations dans un réseau | |
| CN112565372B (zh) | 一种网络隔离时虚拟机与客户机的通信方法及系统 | |
| EP1197036A1 (fr) | Controle d'acces a un serveur de passerelle |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AK | Designated states |
Kind code of ref document: A1 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC 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 MZ NO NZ PH PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW Kind code of ref document: A1 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BY BZ CA CH CN CO CR CU CZ DE DM DZ EC EE ES FI GB GD GE GH HR HU ID IL IN IS JP KE KG KP KR LC LK LR LS LT LU LV MA MD MG MN MW MX MZ NO NZ PH PL PT RO SD SE SG SI SK SL TJ TM TR TT TZ UG US UZ VN YU ZA |
|
| AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): GH GM KE LS MW MZ SD SL SZ UG ZW AM AZ BY KG KZ MD TJ TM AT BE CH CY DE DK ES FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW MR NE SN TD TG Kind code of ref document: A1 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 TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG |
|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
| 32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 69(1) EPC DATED 09-07-2004 |
|
| 122 | Ep: pct application non-entry in european phase | ||
| NENP | Non-entry into the national phase |
Ref country code: JP |