EP1664974A4 - Systems and methods for dynamically updating software in a protocol gateway - Google Patents
Systems and methods for dynamically updating software in a protocol gatewayInfo
- Publication number
- EP1664974A4 EP1664974A4 EP04783898A EP04783898A EP1664974A4 EP 1664974 A4 EP1664974 A4 EP 1664974A4 EP 04783898 A EP04783898 A EP 04783898A EP 04783898 A EP04783898 A EP 04783898A EP 1664974 A4 EP1664974 A4 EP 1664974A4
- Authority
- EP
- European Patent Office
- Prior art keywords
- message
- software module
- protocol
- old
- new
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
Definitions
- the field of the invention relates generally to digital communications networks and more particularly to the management of a plurality of protocols over such networks including dynamic protocols such as "Instant Message" protocols.
- Intrusion can, for example, be defined as someone trying to wrongfully access the network.
- Intrusion can also be defined as a program, such as a computer virus, attempting to wrongfully access resources available on the network.
- a computer virus can be sent from a remote computing device to the local computing device, and if allowed to operate on the local computing device, can commandeer resources at the local computing device as well as other local resources, such as those available to the local computing device on the network or otherwise.
- a remote computing device can generate a set of messages in an attempt to deny service to, or otherwise have an effect on service at, the local computing device, such as preventing access by that local computing device to proper resources, or by preventing access by others to that local computing device.
- intrusion can be caused by messages directed at the network, while in other cases, intrusion can be caused by messages from inside the network, such as from a computing device within the network under the control of a computer virus or an employee using the network improperly.
- a computing device within the network can be corrupted by a malicious user of that computing device, i.e., a user who is attempting to access local resources in a way that is not desired.
- a computing device can also be corrupted in a relatively innocent way, such as when a program is otherwise innocently introduced into a device having access to local resources, but where the program itself includes functions that attempt to access local resources in a way that is not desired.
- IM instant message
- P2P peer-to-peer
- SOAP SOAP
- Some of the possible abuses that can result from these message protocols entering the enterprise network include accidental delivery of a computer virus to a client device within the enterprise network, communication of sensitive or proprietary information between client devices within the enterprise network and client devices outside the enterprise network, and other unauthorized user behavior within the enterprise network.
- a protocol management system is capable of detecting certain message protocols and applying policy rules to the detected message protocols that prevent intrusion, or abuse, of a network's resources.
- a protocol message gateway is configured to apply policy rules to high level message protocols, such as those that reside at layer 7 of the ISO protocol stack.
- the protocol management system is configured to intercept messages flowing into and out of the network and inspect the message protocol associated with the messages. If the message protocol matches a defined protocol template, then the message is forced to use the protocol message gateway so that policy rules for the message protocol can be applied.
- the destination of a message heading out of the network to an external server, where the external server is configured to redirect the message to the destination can be determined. If it is determined that the destination is within the network, then the message can simply be redirected to the destination.
- Figure 1 depicts an exemplary embodiment of an enterprise network configured to incorporate a protocol management system
- Figure 2 shows a block diagram of a system including a proxy enforcer
- Figure 3 shows a process flow diagram of a method including proxy enforcement
- FIG. 4 shows a block diagram of a gateway capable of protection against protocols of interest
- Figure 5 shows a process flow diagram of a method of operating a gateway capable of protection against protocols of interest
- Figure 6 shows a block diagram of the deployment of a protocol message gateway using the CVP method
- FIG. 7 shows a block diagram illustrating the deployment of a protocol message gateway using the gateway proxy method
- Figure 8 shows a block diagram illustrating the deployment of a protocol message gateway using the DNS redirect method where only an external nameserver is used
- Figure 9 shows a block diagram illustrating the deployment of a protocol message gateway using the DNS redirect method where an internal nameserver is used by all client devices inside an enterprise network
- Figure 10 shows a block diagram illustrating the deployment of a protocol message gateway using an HTTP tunnel method
- Figure 11 shows a block diagram illustrating the deployment of a protocol message gateway using the ISA application filter method
- Figure 12 shows a block diagram of a local server capable of associating screen names with users of protocols of interest
- Figure 13 shows a process flow diagram of a method including associating screen names with users of protocols of interest.
- Figure 14 shows a process flow diagram of a method for communicating using a privacy tunnel.
- Figure 15 shows a block diagram illustrating a message protocol gateway configured to detect user presence
- Figure 16 shows a process flow diagram of a method for detecting user preference
- Figure 17 shows a communication apparatus configured to enable certain software modules to updated dynamically
- Figure 18 shows a protocol message gateway configure for dynamic updating of software
- Figure 19 shows a flow chart illustrating a method of dynamically updating software modules.
- FIG 1 depicts an exemplary embodiment of an enterprise network 110 configured to interface with a protocol management system 100 in accordance with the systems and methods described herein.
- enterprise network 110 is coupled to an external network 130 through a firewall 120.
- Enterprise network 110 can be coupled to at least one local client 170, configured to provide a ⁇ ser 172 access to enterprise network 110.
- a proxy server (not shown) can be used in place of a firewall 120 to couple external network 130 to enterprise network 110.
- system 100 can comprise a protocol message gateway 122, a proxy enforcer 150, and an authentication module 160.
- enterprise network 110 can include one or more internal networks such as a LAN (local area network), WAN (wide area network), locally switched network, or public switched network, some other communication technique, or some combination thereof, by which devices locally coupled to enterprise network 110 can communicate with each other.
- LAN local area network
- WAN wide area network
- enterprise network 110 includes a LAN, there is no particular requirement that enterprise network 110 include a LAN, or that any particular network configuration be employed.
- External network 130 can include the Internet; however, in other embodiments external network 130 can also include an intranet, extranet, virtual private network (VPN), LAN, WAN, locally switched network or public switched network, some other communication technique, or some combination thereof. Although an embodiment is described herein where external network 130 including the Internet, there is no particular requirement that external network 130 use the Internet or any other specific type of network.
- VPN virtual private network
- Firewall 120 can include a conventional device for recognizing and intercepting messages formatted at selected levels of the ISO layered protocol model, and meeting selected filtering criteria by which firewall 120 might determine whether those messages carry information intended to be received in a certain message protocol format.
- protocol message gateway 120, proxy enforcer 150, and authentication module 160 can be coupled to an administration console 180 that can be configured for use by a system administrator to set parameters and polices regarding certain protocols that are defined to be targets of system 100.
- protocol message gateway 122, and proxy enforcer 150 in certain embodiments, can be coupled to a corporate database 125, which can be used to associate user screen names, or aliases, with a specific user within enterprise network 110.
- Protocol message gateway 120, and proxy enforcer 150 can also be coupled to a logging and archiving subsystem that comprises a data transport service 190.
- Data transport service 190 can be configured to convert protocol message logs into a relational model for reporting and, to record the logs into a report database 196 from which a report 198 can be generated. In certain other embodiments, such a report can even be converted to electronic mail that can be mailed to an administrator 192 or archived by an electronic mail archive service 194.
- FIG. 2 is a block diagram illustrating a communication system 200 that includes a proxy enforcer 250 that is described in more detail.
- System 200 also includes an enterprise network 210, a firewall 220, an external network 230, a protocol message gateway 240, a proxy enforcer 250, and a set of client devices 260.
- protocol message gateway 240 can be configured to recognize messages that are using certain target protocols and implement policy rules associated with the target protocols. These target protocols can be high level, e.g., ISO level 7, protocols that would otherwise often escape detection while entering and exiting enterprise network 210. For example, these message protocols can often find un- monitored communication connections into and out of enterprise network 210, allowing the messages to escape detection.
- Proxy enforcer 250 can, however, be configured to intercept all messages traveling into and out of enterprise network 210 and force them to pass through defined communication connections, e.g., defined ports on protocol message gateway 240. This way, proxy enforcer 250 can ensure that all messages flowing into and out of enterprise network 210 are handled by protocol message gateway 240, as required, so that the appropriate protocol rule can be applied to the messages.
- proxy enforcer 250 can be coupled to firewall 220 and disposed so as to be able to passively listen to messages, including individual packets, flowing through firewall 220 into or out of enterpri.se network 210.
- Proxy enforcer 250 can include a set of enforcement rules 252 that are based on a set of protocol definition files 254.
- Each protocol definition file 254 can be a piece of executable code with intelligent heuristics that can recognize target protocols and manage state across multiple connections. For example, there can be an individual definition file 254 for every class or subtype of target protocol. An individual protocol definition file 254 can be different from other protocol definition files 254.
- the set of enforcement rules 252 and protocol definitions files 254 can be expanded as necessary in response to different target protocols and different ways of handling target protocols.
- additional enforcement rules 252 and protocol definition files 254 can be downloaded from a server interfaced with enterprise network 210.
- a system administrator for example, can define new enforcement rules 252 and/or protocol definitions 254 and update proxy enforcer 250 as required.
- the protocol definition files 254 act as a protocol template. Proxy enforcer 250 can be configured, therefore, to intercept messages in enterprise network 210 and to then compare them to the protocol template as defined by the protocol definition files 254. If a match occurs, proxy enforcer 290 can be configured to then implement the corresponding enforcement rule, or rules, 252. Unlike traditional virus recognition software that relies entirely upon matching patterns, proxy enforcer 250 can correlate two different messages or two different blocks within the same message, such as when a target protocol uses multiple ports and/or streams. This can be accomplished, for example, because even protocol definition file 254 can be configured to create it's own data structures and tables to store information relating to other ports, packets, and data streams.
- a protocol definition file 254 can be configured to identify a target protocol in terms of a source IP address for the message; a destination IP address for the message; a port number associated with the message; a header string or other set of data values embedded in the message; or some combination thereof.
- Proxy enforcer 250 can also be configured to detect protocols of interest in response to a persistent state maintained by the proxy enforcer 250 in response to sequences of messages.
- a remote server 280 coupled to external network 230 and can be configured to send and receive messages using a target protocol to and from client devices 260.
- remote server 280 can be configured to communicate IM messages with a client device 260.
- Proxy enforcer 250 can be configured to then passively listen to messages as they flow, e.g., through firewall 220.
- Proxy enforcer 250 can comprise a set of proxy enforcement rules 252, e.g., maintained in an enforcement rules database 256.
- proxy enforcer 250 intercepts an IM message, i.e., a message that uses a target protocol, proxy enforcer will match the IM message using the proxy definition files 254.
- Proxy enforcer 250 can then execute the associated enforcement rule 252.
- the enforcement rule 252 can be configured to override aspects of the IM protocol associated with the intercepted IM message. For example, proxy enforcement rules 252 can require that IM messages pass through the protocol message gateway 240, which can be configured to act as a proxy for all IM messages.
- Proxy enforcer 250 can be configured to then prevent the message from being effective if it does not adhere to proxy enforcement rules 252.
- proxy enforcer 250 can prevent a message 270 from being effective is to kill the communication connection between the service of the message and the destination, whether or not the message originates in enterprise network 210 or in external network 230.
- proxy enforcer 250 can be configured to reset the communication connection associated with the message.
- enforcement rule 252 can cause proxy enforcer 250 to record information related to the message. The recorded information can then be used to generate logs and or reports as described below.
- Figure 3 is a flow chart illustrating an example method for managing communication traffic in a network, such as enterprise network 210, using a proxy enforcer, such as proxy enforcer 250.
- proxy enforcer 250 can be configured to passively listen to the messages comprising the communication traffic. Then, in step 304, proxy enforcer 250 can intercept a message and inspect the protocol associated with the message in step 306. Inspecting the message in step 306 can comprise determining information, such as a source IP address, a destination IP address, a port number, and a set of text associated with the message. In step 306, proxy enforcer 250 determines if the protocol matches a target protocol template, e.g., based on the information determined in step 306. The template can, as described above, be defined by one or more protocol definition files 254. If there is a match in step 303, then proxy enforcer 250 can be configured to execute the associated enforcement rule 252. If there is no match, then proxy enforcer 250 can be configured to continue passively listening (step 302).
- Protocol definition files 254 can define a pattern of values associated with a message that uses a target protocol.
- proxy enforcer 250 can be configured to match (step 303) a pattern of values with data maintained in a message traffic database 258.
- the proxy enforcer 250 performs the action associated with one of a plurality of triggered enforcement rules 252. In one embodiment, only the action associated with the first triggered enforcement rule 252 is performed; however, in alternative embodiments, more than one action may be performed, with the order of performance being responsive to an order in which enforcement rules 252 are maintained in enforcement rule database 256.
- enforcement rules 252 include specific actions to take regarding the intercepted message, including possibly recording values in message traffic database 258.
- This can be used, for example, to generate a record of unauthorized uses of a network, such as, employees downloading music files.
- proxy enforcer 250 can be configured to ensure messages that use a target protocol pass through protocol message gateway 122.
- firewall 120 can also include memory 126 configured to store a set of recognition patterns 124, which can also be referred to as "inspect scripts.”
- Recognition patterns 124 can, for example, be selected by an administrator of firewall 120 and can include information sufficient to describe to firewall 120 messages using a target protocol.
- Firewall 120 can be configured to then redirect, in response to recognition patterns 124, at least some of the messages it processes to protocol message gateway 122.
- messages can be redirected using a conventional content vectoring protocol (CVP) technique, in which, after processing the message and determining that it should be further processed by protocol message gateway 122, firewall 120 delivers the message to protocol message gateway 120. Redirection using CVP is described in more detail in conjunction with figure 6.
- CVP content vectoring protocol
- Protocol message gateway 122 can include a protocol message parser 410, a gateway manager 420, a set of protocol adapters 430, a policy enforcement module 440, an authentication module 450, and a set of additional module adapters 460.
- protocol message parser 410 is coupled to firewall 120 using a conventional CVP technique, as described above. Protocol message parser 410 can thus receive a target message from firewall 120. Protocol message parser 410 parses the received message and determines which of the set of protocol adapters 430 is appropriate for processing the received message. Protocol message parser can be configured to then forward the message to gateway manager 420.
- protocol message gateway 122 can include more than one protocol message parser 410. Inclusion of a plurality of protocol message parsers allows for relatively easy and efficient scaling of the ability for protocol message gateway 122 to receive large numbers of target messages, and to both parse and distribute those messages -to gateway manager 420 without substantial degradation in either accuracy or response time.
- Gateway manager 420 receives the parsed message and creates any necessary data structures 422 associated with the message. Among these data structures 422, gateway manager 420 can be configured to create a new message event 404, which it can publish to protocol adapters 430 and module adapters 460 that indicate an interest in receiving message event 404. When publishing message event 404, gateway manager 420 can include information relevant to the parsed message, such as the appropriate protocol adapter 430 to handle the message, and any other identifying information regarding the message, such as a user, user name, screen name associated with the message, etc.
- gateway manager 420 determines which protocol adapter 430 is the appropriate one to handle the message.
- the appropriate protocol adapter 430 can then receive the message and its associated message event 404, and can determine how the message fits into the processing paradigm for the associated message protocol. For example, if the message initiates a session between a sender and receiver, such as a sender and receiver of an IM message, protocol adapter 430 can determine that a new session should be created, and generate a new session event 406.
- data structures 422 generated and used by the gateway manager 420 would include a session data structure as part of data structures 422; the session data structure would include information relevant to the communication session between a sending client device 170 and a receiving client device using the associated message protocol.
- Protocol adapter 430 assigned to handle the message can be configured to send any new events 406 it generates to gateway manager 420 for publishing to any protocol adapters 430 or module adapters 460 that have indicated interest in that particular message or message event 406.
- Protocol message gateway 122 allows for relatively easy and efficient scaling of protocol message gateway 122 to receive large numbers of messages, and to individually process those messages within protocol message gateway 122 without substantial degradation in either accuracy or response time. Further, the use of multiple protocol adapters 430, each specifically designed for a different variant of a set of similar target protocols, allows client devices 170 to communicate using the different variants, without any need for special translation on the part of protocol message gateway 122 and without any need for alteration of client devices 170.
- gateway manager 420 can be configured to publish any message events 406 to any protocol adapters 430 or module adapters 460 that indicate interest the message events 406.
- protocol adapters 430 or module adapters 460 that can indicate interest are, for example, policy enforcement module 440, authentication module 450, and selected other additional module adapters 460.
- Authentication module 450 can be configured to receive any session events 406 so that authentication module 450 can authenticate any screen names associated with the associated message. As described in more detail below, authentication module 450 can be configured to uniquely identify an actual user associated with any such screen name, record that identifying information in a user database 454 associated with authentication module 450, and send that identifying information to gateway manager 420 for inclusion in any data structure 422 maintained by gateway manager 420 for the session event 406.
- Protocol message gateway 122 can also include a logging module 470 that can be configured to provide capability for logging messages as they are received by protocol message gateway 122 from a sending client devices 170, and as they are forwarded by protocol message gateway 122 to receiving client device 170, or to a client device on external network 130.
- logging module 470 provides a capability for maintaining a persistent log of all messages exchanged across protocol message gateway 122.
- logging module 470 can be configured to output a log to a logging database 474 from which database searches can be conducted and reports generated.
- logging module 470 can be configured to output log information to logging database 474 in an encrypted format, so as to restrict access to information in logging database 474 to those devices 170 associated with logging module 470, or possibly those devices 170 associated with gateway 122, that have been assigned access to logging database 474. Access can, depending on the embodiment, be assigned using appropriate keys for the encrypted format used to encrypt the information.
- Logging module 470 provides a way to record messages comprising what is otherwise evanescent communication between sending client devices 170 and receiving client devices. Such persistent recording allows for forensic investigation of communication between those client devices. Similarly, such persistent recording also allows for compliance with any regulatory requirements or other administrative rules requiring maintenance of records of communications between such client devices.
- Protocol message gateway 122 can, depending on the embodiment, also include a policy enforcement module 440. Policy enforcement module 440 can be configured to receive information regarding each message, and to determine whether or not a specific message should be forwarded in unaltered form from sending client device 170.
- Policy enforcement module 440 can have access to a policy rules database 444 that includes specific policy rules responsive to at least one of certain classes of information including: the nature of sending client device 170; the nature of the receiving client device; the nature of the message; any information, including keywords, included within the message; the day of the week, or a time of day, at which the message was sent or is intended to be received; the size of the message, including whether or not the message includes an attachment, an executable file attachment, an executable file attachment including a virus, and the like; the amount of traffic already sent by sending client device 170, or already received by the receiving client device, within a selected duration of time; or any other classes of information deemed relevant by administrators of enterprise network 110.
- protocol message gateway 122 can be administrated from one or more logically remote administrator consoles 180, which can be coupled to enterprise network 110, to another network that is coupled to external network 130, or to external network 130 itself.
- remote administrator consoles 180 can allow various modules and adaptors included in protocol message gateway 122 to be dynamically updated from a remote location.
- dynamic policy rules database 444 can be dynamically altered from a administrator console 180 in substantially real-time, which can allow real-time updates concerning target protocols. Given how quickly dangerous, or harmful, protocols can pop up, and the need to deal with such protocols as quickly as possible, such dynamic update capability can be invaluable.
- FIG. 5 is a flow chart illustrating an example method whereby a protocol message gateway 122 can manage communication traffic in a network, such as enterprise network 110.
- protocol message gateway 122 can receive a message and direct the received message to a protocol message parser 410, which can be configured to parse the message in step 504 and determine which of a set of protocol adapters 430 is appropriate for processing the message.
- protocol message parser 410 can be configured to forward the message to a gateway manager 420 for further processing.
- gateway manager 420 can receive the parsed message and create any necessary data structures 422 associated with the message. As noted above, among these data structures 422, gateway manager 420 can be configured to create a new message event 404, which it can publish to those protocol adapters 430 and those module adapters 460 that have indicated interest in receiving message event 404. As noted further above, when publishing message event 404, gateway manager 420 can include information relevant to the message, such as the appropriate protocol adapter 430 to handle the message, and any other identifying information regarding the message, such as a user, user name, or screen name associated with the message.
- step 508 at least one protocol adapter 430 recognizes the message and determines how the message fits into the processing paradigm for an associated message protocol in step 510.
- the protocol adapter 430 can be configured to generate any new events 406 it deems appropriate in response to how the message fits into the processing paradigm for the associated protocol. Any such new events 406 generated by the protocol adapter 430 can then be sent to gateway manager 122 in step 514.
- gateway manager 122 can publish new events 406 to protocol adapters 430 or any other module adapters that have indicated interest in those classes of events 406.
- Authentication module adapter 450 can then receive any new session event 406, in step 518, and authenticate any screen name associated with the associated message.
- logging module adapter 470 can generate a logging entry for the message and output a log to a logging database 474 from which database searches can be conducted and reports can be generated.
- logging module adapter 470 can output the log information for logging database 474 in an encrypted format.
- policy enforcement module 440 can receive information regarding each message, and determine whether or not a specific message should be forwarded in unaltered form from sending client device 170 to the receiving client device.
- policy enforcement module 440 can have access to a policy rules database 444, including specific policy rules responsive to at least one of, and possibly more than one of, a number of classes of policy information.
- firewall 620 can comprise a CVP API 610, which can be coupled to protocol message gateway 122.
- Firewall 620 can then be configured to have a CVP interface mechanism through which an external server can be coupled, which in this case is protocol message gateway 122.
- Firewall 620 can direct messages from, e.g., communication port 5190 or from communication port 2020, to protocol message gateway 122 through the CVP interface mechanism using CVP API 610.
- FIG 7 is a block diagram illustrating the deployment of a protocol message gateway using a gateway proxy method in accordance with another embodiment of the systems and methods described herein.
- protocol message gateway 122 comprises a proxy module 760.
- a proxy can be a server, or component of a server, configured to relay a message comprising any protocol to and from a client, such as local client device 770 to a server, such as remote server 780.
- Proxies can be used to shield a client device 770 from intrusion from external network 730.
- Proxies can also be used as a controlled portal through a firewall 720 or gateway, such as protocol message gateway 122.
- a protocol message gateway 122 equipped with a proxy module 760 can be configured to permit protocol message gateway 122 to act as a proxy and examine any messages within network 710.
- Each client application on each local client device 770 should, however, be configured to use protocol message gateway 122 as a proxy. Without such configuration, local client device 770 can communicate with remote server 780 by traversing enterprise network 710, the firewall 720, and external network 730 as shown by path 744. Thus, an uncooperative, or uneducated user could willingly, or unknowingly bypass the protocol message gateway 122 and a direct path, such as path 744, to communicate with remote server 780.
- the firewall 720 can be configured to block all communications except those originating from proxy 760.
- conventional firewalls 720 are not equipped to detect some more elusive protocols such as certain IM protocols. Accordingly, a proxy enforcer 750 can be used to ensure that messages traveling within network 710 use protocol message gateway 122 as described above.
- protocol message gateway 122 can monitor all traffic for target protocols and enforce any policies for said protocols as described above.
- Figure 8 and figure 9 illustrate the deployment of a protocol message gateway 122 using a domain name service (DNS) redirection technique in accordance with alternative embodiments of the systems and methods described herein.
- DNS domain name service
- FIG. 8 shows a block diagram illustrating a deployment of a protocol message gateway using DNS redirection, where only an external nameserver 890 is used.
- External nameserver 890 is connected to external network 830.
- a normal DNS request can then be made through path 840 from a client device 870 to external nameserver 890.
- the DNS requests can be blocked and the client device forced to use protocol message gateway 122 for the DNS request as a DNS proxy.
- protocol message gateway 122 can be configured to give its own address as the corresponding address to that host thereby spoofing client 870 into believing protocol message gateway 122 is remote server 880.
- Protocol message gateway 122 can then relay messages to remote server 880 and monitor and regulate communications therewith. If the hostname is not know to be one belonging to a certain server, e.g., a server associated with a target protocol, the gateway 122 make a request to external nameserver 890 through path 844 and respond to client device 870 with the response given by external nameserver 890.
- Figure 9 shows a block diagram illustrating the deployment of a protocol message gateway using DNS redirection, where an internal nameserver 920 is used by all client devices 970 inside an enterprise network 910. Internal nameserver 920 can, for example, be coupled to enterprise network 910. Local client devices 970 can make DNS requests through path 950 to resolve the addresses of hostnames of servers.
- internal nameserver 960 can periodically synchronize over path 942 its address list with an external nameserver 990, which is connected to external network 930, in what is referred to as a "zone transfer."
- protocol message gateway 122 can supply, via path 940, alternate hostnames to internal nameserver 960 to redirect DNS requests for hostnames of servers associated with target protocols.
- Figure 8 and figure 9 are given as exemplary embodiments of systems deploying protocol message gateway 122 using DNS redirection method. In will be understood, however, that numerous equivalent topologies and nameserver protocols can be used to achieve a redirection through DNS spoofing.
- FIG. 10 is a block diagram illustrating the deployment of a protocol message gateway 122 using an HTTP tunnel method.
- the deployment illustrated in figure 10 can be used, for example.
- firewall 1020 When firewall 1020 is configured to block all external access to the internet except for HTTP. In such a situation, firewall 1020 can be coupled to a "Demilitarized Zone" (DMZ) host 1010 that can be configured to act as a virtual presence on an external network 1060, i.e. all access to and from external network 1060 goes through DMZ host 1010.
- DMZ Demilitarized Zone
- a local client device 1070 sends a message destined for external network 1060, the message can be forced to first pass through protocol message gateway 122, which can, for example, be configured to perform the functions described above.
- DMZ Demilitarized Zone
- HTTP tunnel module 1050 can then be configured to appear as an HTTP message by HTTP tunnel module 1050. This way, for example, the message can pass through firewall 1020.
- HTTP tunnel module 1050 also can be configured as a standalone module or it can be incorporated into protocol message gateway 122 depending on the embodiment. If fact, HTTP tunnel module 1050 can reside anywhere with the enterprise network, including within firewall 1020, as long as it is configured to perform the functions described herein.
- HTTP tunnel module 1050 Once HTTP tunnel module 1050 has formatted the message, it can be passed through firewall 1020 to, e.g., a web proxy 1030, which can, for example, be included as part of DMZ host 1010. Web proxy 1030 can be configured to forward the message to a relay 1040, which can be configured to undo the HTTP formatting, as required, and forward the message out to external network 1060.
- a web proxy 1030 can, for example, be included as part of DMZ host 1010.
- Web proxy 1030 can be configured to forward the message to a relay 1040, which can be configured to undo the HTTP formatting, as required, and forward the message out to external network 1060.
- FIG. 11 is a block diagram illustrating the deployment of a protocol message gateway 122 using an ISA application filter method, which is similar to deployment using a CVP method.
- firewall 1120 can comprise an ISA application filter 1110 which can be configured to forward messages comprising a target protocol to protocol message gateway 122.
- protocol message gateway 122 configured to adapt and enforce message protocols associated with messages within an enterprise network, or within some other local network, can be deployed in a variety of ways including those described in the preceding paragraphs.
- a proxy enforcer such as proxy enforcer 150
- Proxy enforcer 150 can also be configured to terminate a communication connection when it is unable to force a message to pass through protocol message gateway 122.
- proxy enforcer 150 can be configured to reset a communication connection associated with a message that cannot be forced through protocol message gateway 122, to log information associated within messages being forced through protocol message gateway 122, and/or to generate reports related to any messages being forced through protocol message gateway 122.
- protocol management system 100 can also include an authentication module 160.
- Authentication module 160 can be configured to identify the identity of users within enterprise network 110 from screen names, or aliases, being used by target protocols for associated messages being passed into and out of enterprise network 110. For example, IM applications often use a screen name as an alias for a user. Messages generated by the IM application then comprise the screen name. It can be useful when adapting or enforcing policies using protocol message gateway 122 to identify the actual user associated with a screen name. Authentication module 160 can be configured to perform such identifications. Moreover, authentication module 160 can be configured to store the identifying information so that it can be retrieved later when handling, e.g., IM messages generated by the same user using already identified screen names.
- FIG. 12 is a diagram illustrating one embodiment of authentication module 160 configured in accordance with the systems and methods described herein.
- authentication module 160 can comprise part of a protocol message gateway 122.
- authentication module 160 can act as a standalone module separate from protocol message gateway 122 as illustrated in figure 1.
- authentication module 160 can, for example, be loaded onto a separate server, or local client device interfaced with enterprise network 110.
- protocol message gateway 122 can comprise the local server 1250 comprising a user database 1252.
- local server 1250 and user database 1252 can reside outside of protocol message gateway 122 as required by the particular embodiment.
- User database 1252 can be configured to maintain an association between user names and screen names, or aliases, used by target protocols within enterprise network 110.
- protocol message gateway 122 can include a session manager 1220, capable of receiving messages intercepted from client devices 170.
- Session manager 1220 can be configured to parse intercepted messages, and determining the message protocol associated therewith.
- Session manager 1220 can also be configured to send the message, or information equivalent thereto, to local server 1250, which can be configured to generate a new-session event 1244, indicating the receipt of a message.
- local server 1250 can be included, e.g., each adapted for processing of a different type of target protocol.
- Session manager 1220 can be configured to then distribute session event 1244 to one or more other modules within protocol message gateway 122, such as authentication module 160.
- Authentication module 160 can be configured to receive session event 1244 and send a name-request message 1246 to an authorization server 128 and receive a name-response message 1242 from authorization server 128.
- name-request message 1246 sent by authentication module 160 to authorization server 128 can include an IP address for the client device 170 sending the message.
- the name-response message 1242 sent by authorization server 128 to authentication module 160 can then include a unique user name associated with the client device 170 sending the message.
- authentication module 160 can be configured to first determine if the session associated with session event 1244 is still active. If it is, then authorization module 160 can associate the unique user name with a screen name associated with the message and store the association in user database 1252. When subsequent messages are received that comprise the same screen name, authentication module 160 can simply access the association information from user database 1252 in order to identify the actual user sending the message.
- a policy enforcement module 1230 policy enforcement module 1230, protocol adapter 1220, and logging module
- policy enforcement module 1230 can determine whether to allow the message to be forwarded to its originally intended destination based on the identification of the user sending the message.
- the identification information stored in user database 1292 can comprise a complete association of all screen names, or aliases, used by a particular user.
- Figure 13 is a flow chart illustrating an example method for associating screen names with unique user names in accordance with the systems and methods described herein.
- protocol message gateway 122 parse a received message and determine an associated message protocol.
- protocol message gateway f parse a received message and determine an associated message protocol.
- step 1306 can forward the message to a local server 1250 and, in step 1306, can determine whether the user sending the message is a local user, i.e., coupled to enterprise network 130. If the sending user is a local user, then, in step 1308, local server 1250 can be configured to generate a session event 1244 in response to the message. If the user in not a local user, then the process can jump to step 1312.
- step 1310 local server 1250 within protocol message gateway 122 can determine if the user sending the message is known to local server 1250, i.e. is the user name associated with a screen name in the user database 1252 maintained by local server 1250? If the user sending a message is known to local server 1250, then nothing needs to be done and the message can be handled accordingly in step 1328. If the user sending the message is not known to local server 1250, then, in step 1312, local server 1250 can be configured to create a guest session, i.e., a new session with a new user initiating the session.
- a guest session i.e., a new session with a new user initiating the session.
- step 1314 local server 1250 can be configured to send a message to authorization server 128, requesting authorization server 128 obtain a unique user name for the user.
- the message from server 1250 to authorization server 128 can include an IP address associated with the sender of the message.
- authorization server 128 can identify a client device 170 associated, e.g., with the IP address sent received from local server 1250, and can interrogate a registry at that client device 170 to determine a global user ID (GUID) for the client device 170.
- GUIID global user ID
- authorization server 128 can directly interrogates the registry at the client device 170, the local server 1290 can obtain information uniquely identifying users without any requirement for cooperation by those users, and without any requirement for cooperation of client devices under control of those users. In cases where an individual user using an IM protocol, for example, has a plurality of screen names, local server 1250 can still associate all of those screen names with the unique user. [095] Next, in step 1319, authorization server 128 can request, from a domain controller 132, a unique user name associated with the GUID obtained above. Domain controller 132 can be configured to respond by sending the unique user name. [096] Authorization server 128 can be configured to then send the unique user name to local server 1250 in step 1320.
- local server 1250 can be configured to check the to determine if the session associated with the message is still in progress. If the session is not still in progress, e.g., the session was dropped by the sender of the message, then the process can conclude. If the session is still in progress, then, in step 1324, local server 1250 can record the unique user name, and its association with the screen name, in user database 1252.
- Protocol message gateway 122 can be adapted to aggregate its treatment of messages with actual users, regardless of the screen names those actual users select for their communications. Thus, if an individual user has two separate screen names, the protocol message gateway 122 can still enforce policy rules with regard to the actual user, notwithstanding that user's separation of his messages into messages comprising two separate screen names. For example, if a particular policy rule restricts users from sending or receiving more than 100 IM messages each hour, protocol message gateway 122 can still restrict an individual actual user, operating under any one or more screen names, from sending or receiving more than 100 IM messages each hour for all screen names combined.
- the screen name association information stored in user database 1252 can also be used to identify when a message generated by a user within enterprise network 110 is intended for destination that is also within enterprise network 110. For example, one user 172 within enterprise network 110 can send an IM message to another user 172 within enterprise network 110. In a conventional system, the IM message sent from the first user would have to pass out of network 110 through external network 130 to a remote server configured to determine the destination of the IM message. The remote server would then forward that message, in this case, back to the second user within enterprise network 110.
- a protocol message gateway 122 configured in accordance with the systems and methods described herein, however, can recognize, using a screen name associated with the destination, that the second user is within enterprise network 110 and simply reflect the message to the second user as opposed to allowing it to exit enterprise network 110 and reach the remote server. [0100] Thus, when protocol message gateway 122 receives a new message it can not only determine if a screen name associated with the source of the message has been associated with a unique user name in user database 1252. But it can also be configured to determine if a screen name associated with the destination of the message has been associated with a unique user name in user database 1252.
- the policy enforcement rules of that message can be implemented as described above. If the screen name associated with the source of the message has not been associated with a unique user name, then the process described above for associating a unique user name with a screen name can be implemented to generate such an association, which can then be stored in user database 1252.
- protocol message gateway 122 can be configured to simply reflect the message to a client device 170 associated with the unique user name. In this way, protocol message gateway 122 can prevent the message from traversing out of enterprise network 110, external network 130, to a remote server, and back. Not only can this speed communications between users 172 within enterprise network 110, but it can also avoid any of the problems associated with communicating outside of enterprise network 110.
- a screen name associated with the destination is not associated with a unique user name in user name database 1252, then a similar process for associating a screen name with a unique user name can be implemented; however, in this case authorization server 128 may not be able to make the association, because the destination can still be outside of enterprise network 110. If such is the case, then the message is not reflected and whatever policy enforcement rules are in place for the message can be implemented.
- the systems and methods described herein can apply across a plurality of gateways interfaced via external network 130, for example. In other words, an enterprise can implement multiple protocol message gateways, with each gateway 122 having information related to the other gateways 122 and client devices 170 associated.
- the association information stored in user database 1252 can, in certain embodiments, comprise information related to users associated with another protocol message gateway 122.
- the first protocol message gateway 122 determines that a screen name or destination associated with the received message is associated with a unique user name that is in turn associated with a related protocol message gateway 122
- the first protocol message gateway 122 can be configured to simply forward the message directly to the destination, e.g., though external network 130 and the related protocol message gateway 122, but still bypassing the remote server.
- protocol message gateway 122 can be configured to construct a privacy tunnel between a local client device 170 and a remote client device.
- protocol message gateway 122 does however need to know information related to the remote client device and/or a protocol message gateway associated therewith.
- protocol message gateway 122 can be configured to set up a direct communication link with the remote client device and/or its associated protocol message gateway.
- a remote, or local, server can be bypassed when protocol message gateway 122 recognizes that the message generated by local client device 170 is intended for a remote client device about which it possesses direct connection information.
- the communication link between the local client device 170 and the remote client device can be made secure even when communication via a remote server would not be.
- a local user or a remote user, can invoke a secure communications session by submitting a signal to protocol message gateway 122.
- the user invokes a secure session by transmitting a specified string such as " ⁇ SECURE>”.
- Protocol message gateway 122 observes the request, in step 1404, and invokes a secure communications channel by downloading a secure thin client to the remote client device in step 1406.
- the remote client device can then invoke, in step 1408, the thin client.
- Protocol message gateway 122 can then establish a secure communications channel through the external network 130 in step 1410.
- protocol message gateway 122 can intercept the message, in step 1413, and forward it to the thin client running on the remote client device in step 1414.
- Protocol message gateway 122 When either user desires to terminate the secure communication, their client device can send a signal indicated to protocol message gateway 122 in step 1416.
- the termination of the secure such session is specified using a string such as " ⁇ ENDSECURE>”.
- Protocol message gateway 122 received the request in step 1410 and terminates the secure communications channel.
- the thin client Upon terminate, the thin client terminates its execution and the remote client device releases all resources used by the thin client in step 1420. The remote client device can then can delete the thin client device in step 1422.
- protocol message gateway 122 can intercept messages from a local client and translate then from one message protocol to another before sending them to the remote client device. This is useful, for example, where the remote client device and local client device are using different message protocols.
- Figure 15 is a diagram illustrating a message protocol gateway 1500 configured to detect and report when users log on to an application within, e.g., network 110.
- protocol message gateway 1500 can comprise a message protocol element 1510 and a usage database 1520.
- Message protocol element 1510 can be configured to send and receive messages to and from client devices 170, e.g., using enterprise network 110, or to and from external client devices, e.g., using enterprise network 110 and external network 130.
- Messages sent or received by message protocol element 1510 can implement various target protocols, such as those described above.
- Usage database 1520 can include a set of database tables, including a user table 1550 and an inverted user table 1560.
- usage database 1520 is described herein with regard to detecting and reporting user presence it will be apparent that usage database 1520 is capable of very general extension to detecting and reporting the presence or absence of other resources, and of detecting and reporting other types of events.
- Usage database 1520 also includes a set of database codes, including a set of SQL instructions 1522 and a set of SQL extensions 1540. It will be understood, of course, that although usage database 1520 is described herein with regard to SQL as an individual instance of a database manipulation and querying language, usage database 1520 can also be configured for other types of database manipulation and querying, and to other types of databases or data sources in general.
- user table 1550 includes a set of entries 1552, sometimes referred to as "rows", each of which includes information for a selected user 172.
- user table 1550 includes a set of fields 1554, sometimes referred to as “columns” for each entry 1552, each of which includes a selected data item, or list of data items, for the user associated with that entry 1552.
- user table 1550 can include a first field 1554a that can comprise a user name associated with a selected user, a second field 1554b that can comprise a contact list associated with the selected user, and a third field 1554c that can comprise an online/offline status associated with the selected user.
- Field 1554b can, depending on the embodiment, comprise a multidimensional column, i.e., the value associated with field 1554 can itself be a list.
- SQL extensions 1540 include functions capable of generating a list, e.g., of multiple rows from a multidimensional column 1554, and functions capable of generating a multidimensional column 1554 from a list. This has the effect that a database query otherwise involving linking multiple database tables is capable of being performed using operations on a single database table. For example, without using multidimensional columns, associating a contact list with a selected user might involve a separate linking table, indicating for each pair of users, e.g., user A and user B, whether user B is on user A's contact list.
- conducting a contact list query would involve at least one search of the linking table and at least two searches of the user table.
- associating a contact list with a selected user involves only a single search of the user table itself and the use of a SQL extensions 1540 to generate a list from the multidimensional column used for the contact list.
- inverted user table 1560 includes a set of entries 1556, each of which includes information for a selected user 172.
- Inverted user table 1560 can include a set of fields 1558 for each entry 1556, each of which includes a selected data item, or list of data items, for the user associated with that entry 1556.
- inverted user table 1560 includes a first field 1558a including a user name associated with a selected user, and a second field 1558b including an inverted contact list associated with the selected user.
- the inverted contact list associated with that selected user in this case can be used to indicate those other users who have listed the selected user on their contact lists. Accordingly, when a newly logged-in user is detected, it is relatively easy to search for the set of other users who wish to be informed of the presence of that newly logged-in user.
- SQL extensions 1540 can also include functions capable of specifying a set of database queries expected to be performed frequently, and for which it is desirable to construct an inverted table in response to the original table, similar to the relationship between inverted user table 1560 and user table 1550.
- SQL extensions 1540 can, for example, include one or more of the following functions: a function allowing a designer to specify if an inverted table should be automatically constructed in response to an original table, similar to the relationship between inverted user table 1560 and user table 1550, and if so, how fields 1558 of the inverted table relate to any corresponding fields 1554 of the original table; a function allowing a designer to specify if a query relating to the original table should be translated into a query to be performed relating to the inverted table, and if so, how fields 1558 of the inverted table should be tested in correspondence to any testing of fields 1554 of the original table; a function allowing a designer to specify if a query, relating to either an original table or an inverted table, should have its results cashed for later use, and if so, upon what triggers should that query and/or later use be performed.
- a function allowing a designer to specify if an inverted table should be automatically constructed in response to an original table, similar to the relationship between inverted
- a query relating to which users on contact lists are logged-in might be performed in response to one or more of the following triggers: (1) when a user logs in, (2) when a user logs out, (3) after a selected period of time expires, (4) after protocol message gateway 1500 is rebooted or reset, and (5) after a selected number of messages have been processed.
- SQL extensions 1540 can also include a function allowing a designer to specify if a query, relating to either an original table or an inverted table, should be performed and its results calculated before any actual requests therefore, and if so, upon what triggers should that query be performed.
- SQL extensions 1540 can also include a function allowing a designer to specify whether a table should include a multidimensional column, and if so, how that multidimensional column should be treated in response to query results.
- a query relating to which users on contact lists are logged-in might include a multidimensional column relating to the contact list for each user, and upon performance of a query, results from that multidimensional column might be aggregated and then separated into individual row responses for specific users that are one the content list of the queried user.
- protocol message gateway 1500 can be configured to allow efficient, time saving detection of user's present on network 110 and logged on to an application also being used by the user. This can save processing and other resources within network 110.
- This functionality can be extended by allowing, e.g., a network administrator, to define multidimensional columns, and multidimensional column associations, for other types of databases and database searches.
- FIG. 16 is a flow chart illustrating an example method for detection and reporting of user presence in accordance with one embodiment of the systems and methods described herein.
- an internal user 172 at a client device 170 attempts to login to use an application.
- an associated client device 170 can be configured to send a message to protocol message gateway 122 indicating the attempt to login, and including information required to login, e.g., a user name or screen name.
- protocol message gateway 122 can receive the message indicating the attempt to login, and can, for example, respond to client device 170 indicating receipt thereof.
- protocol message gateway 122 if protocol message gateway 122 has sufficient information to verify the login attempt, or to deny the login attempt, then it can be configured to respond to client device 170 so indicating.
- protocol message gateway 122 can be configured to have available cached information from an external server indicating which internal users 172 and which external users are presently authorized to login to use the application.
- use of the application can be associated with access to the external server.
- the login can actually be an attempt to login to a server, e.g., the external server, associated with the application.
- protocol message gateway 122 can be configured to have available a known procedure by which it can determine if the login message is valid, such as for example by reference to a public-key cryptosystem or other trusted server.
- step 1610 if the login is successful, then the process can continue to step 1612. If, however, the login is not successful, then protocol message gateway 122 can deny the attempt and wait for another message (step 1602).
- protocol message gateway 122 can be configured to perform any SQL instructions 1520 associated with the login. SQL instructions 1520 can, for example, call upon a set of SQL extensions 1540, such as, for example, when using multiple dimensional columns.
- a SQL instructions 1520 associated with the login message can include detecting if any other user, whether an internal user 172 or an external user, on the contact list for the newly logged-in user, is also logged in.
- SQL instructions 1520 can include a query to be performed against a user table 1550, searching for the contact list associated with the newly logged-in user, and determining if any users on that contact list are already logged in. Thus, the newly logged-in user can be informed of any associated users already logged in.
- SQL instructions 1520 associated with the login can also include detecting if the newly logged-in user is on any contact list for any users already logged in. Thus, users already logged in can be informed of the presence of the newly logged-in user, if that newly logged-in user were on any contact lists for any users already logged in.
- performing SQL instructions 1520 can direct usage database 1520 to search an inverted user table 1560 for a newly logged-in user.
- SQL instructions 1520 associated with the login calls upon a set of SQL extensions 1540 to search an inverted user table 1560 for the newly logged-in user.
- the set of users listing the newly logged-in user on their contact lists can be specified by the SQL extensions 1540 to include a multidimensional column, with the effect that performing the search provides a list of such users.
- a multidimensional column can be specified by SQL extensions 1540 to be expanded out to a set of rows, each indicating a single user listing the newly logged-in user on their contact list.
- SQL instructions 1520 can be employed to so inform each of those users of the user presence of the newly logged-in user.
- Protocol message gateway 122 can be configured to then inform each of the set of users listing the newly logged-in user on their contact lists of the user's presence. [0126] It should be apparent that similar steps might be performed by protocol message gateway 122 in response to other actions having an effect on status of user presence including, for examples, when a new user is registered with protocol message gateway 122, when a user of a selected type, such as a system administrator or chat room facilitator changes the status of their user presence, or when a user logs out.
- FIG 17 is a diagram illustrating an example communications apparatus 1700 with pluggable modules that can be dynamically updated in accordance with one embodiment of the systems and methods described herein.
- Apparatus 1700 is coupled to a communications network 1710 through a set of pluggable modules 1720 that can, for example, include modules 1722, 1724, and/or 1726.
- Each pluggable module 1722, 1724, and/or 1726 can also be coupled with a central module 1730.
- Central module 1730 can, for example, comprise any modules that are not designed to be pluggable such as a kernel, or a pluggable module manager.
- a pluggable module 1722, 1724, and/or 1726 can be upgraded without any disruption to service. For example, suppose module 1722 supports protocol A, module 1724 supports protocol B, and module 1726 supports protocol C. When a new module, e.g., new module 1728, that also supports protocol A is available and an upgrade is desired, apparatus 1700 can be configured to request an upgrade.
- module 1722 can still be loaded; however, module 1722 can also be maintained until all communications still using module 1722 are terminated.
- any new communications using protocol A can be supported by module 1778 as opposed to module 1722. Further, once all communications using module 1722 have ceased, the resources associated with module 1722 can be released and the upgrade process completed.
- Communication apparatus 1700 can, for example, be a protocol message gateway 122. In another embodiment, however, communication apparatus 1700 can be a proxy enforcer 150, where the pluggable modules 1722, 1724, and/or 1726 can be protocol inspectors. It will be understood, however, that the systems and methods described will be applicable to a wide variety of devices that can be configured to upload new software modules.
- Protocol message gateway 122 can include a protocol message parser 410, a gateway manager 420, the set of protocol adapters 430, a policy enforcement module 440, an authentication module 450, and a set of additional module adapters 460, which are further described below.
- Protocol adapters 430 can, for example, comprise a first set of old protocol adapters 1832 and a second set of new protocol adapters 1834.
- protocol message parser 410 can receive inbound and outbound messages and can be configured to parse the received messages and determine which protocol adapters 430 are appropriate for processing a particular received message. Protocol message parser 410 can then forward the received message to gateway manager 420 for further processing. Gateway manager 420 can be configured to receive the message and create any necessary data structures 422 to be associated with the message. Data structures 422 can be associated with a new communication session or an old communication session, as some protocols maintain state information across multiple messages.
- Gateway manager 420 can also be configured to publish information relating to the message to the other components within protocol message gateway 122.
- gateway manager 420 can be configured to publish information relating to the message to selected protocol adapters 430, or other modules or adapters.
- at least one protocol adapters 430 should recognize the protocol associated with the message and, therefore, receive the protocol message and any associated information published by gateway manager 420.
- the protocol adapter 430 that receives the message and information can be configured to then determine how the message fits into a processing paradigm associated with the message protocol. For example, if the message initiates a session between a sender and receiver, such as a sender and receiver of an IM message, the relevant protocol adapter 430 can be configured to determine that a new session should be created.
- Protocol message gateway 122 can also comprise other modules or adapters, such as a policy enforcement module 440 and an associated policy rules database 444, an authentication module 450 and an associated authentication database 454, a logging module 470 and an associated logging database 474.
- modules or adapters can be configured to maintain persistent state information relevant to a particular communication session and the associated message protocol.
- protocol message gateway 122 can include more than one of each of these modules or adapters, possibly including both newer and older versions of one or more of the modules or adapters. Similarly, multiple versions of the databases associated with those modules or adapters, such as policy rules database 444, authentication database 454, logging database 474, or any other data structures 422 can be maintained by gateway manager 420 or other elements of protocol message gateway 122.
- old protocol adapters 1832 can be replaced with a new protocol adapter 1834 in accordance with the systems and methods described herein.
- protocol message gateway 122 can simultaneously include both old protocol adapter 1832 and new protocol adapter 1834. If, however, old protocol adapter 1832 is engaged in an existing communication session, then it can be maintained until all such existing sessions are complete. At that time, any new sessions can be configured to use new protocol adapter 1834 and old protocol adapter 1832 can be removed. This ability allows protocol message gateway 122, for example, to be dynamically updated without the need to power protocol message gateway down, or terminate any existing communication sessions.
- Figure 19 is a flow chart illustrating an example method for dynamically updating a software module in accordance with the systems and methods described herein.
- the method of figure 19 can be used to update old module adapter 1832 with new module adapter 1834.
- message parser 410 can be configured to determine the message protocol associated with a received message and then forward the message to a gateway manager 420 in step 1904.
- gateway manager 420 can be configured to determine if the message is associated with a known, ongoing session, e.g., as indicated by data structure 422.
- gateway manager 420 can be configured to retrieve information from data structure 422, in step 1908, including which protocol adapter 430, e.g., old protocol adapter 1832, is associated with the message and the specific session to which the message belongs. If the message is associated with an old protocol adapter 1832, then gateway manager 420 can be configured to maintain state information regarding old protocol adapter 1832, in step 1910, indicating that it is still in use for at least one session.
- protocol adapter 430 e.g., old protocol adapter 1832
- gateway manager 420 can forward information regarding the arrival of the message to the designated protocol adapter 430, i.e., either an old protocol adapter 1832 or a new protocol adapter 1834, as the case may be.
- gateway manager 420 can retrieve information regarding which protocol adapter 430 the message is associated with, e.g., from data structure 422.
- step 1916 it is determined whether there is a new protocol adapter 1834 and an old protocol adapter 1832 simultaneously present. If there are both an old protocol adapter 1832 and a new protocol adapter 1834 simultaneously present, then gateway manager 420 can select new protocol adapter 1834 and forward the message to new protocol adapter 1834 in step 1918. The message can then be processed in step 1920.
- protocol message gateway 122 is ready to receive a new protocol adapter 1834.
- protocol message gateway 122 can install new protocol adapter 1834, and make new protocol adapter 1834 available for use.
- gateway manager 420 alters data structure 422 to indicate that new protocol adapter 1834 is associated with related message protocols.
- gateway manager 420 can be configured to check data structure 422 to determine whether any sessions using old protocol adapter 1832 are still in operation. If there are such sessions, gateway manager 420 can wait a designated period of time and then repeat step 1928. If there are no such sessions, gateway manager 420 can, having determined that old protocol adapter 1832 is no longer being used, delete old protocol adapter 1832. [0143] In this manner, software modules can be dynamically updated without any interruption in service.
- protocol message gateway 122 can continue to service all existing sessions and messages while maintaining the most up to date adapters and modules. Once all existing sessions and message are serviced, then newer, updated modules can be used to service all new messages and sessions.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
Description
Claims
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US66122603A | 2003-09-11 | 2003-09-11 | |
PCT/US2004/029848 WO2005026915A2 (en) | 2003-09-11 | 2004-09-13 | Systems and methods for dynamically updating software in a protocol gateway |
Publications (2)
Publication Number | Publication Date |
---|---|
EP1664974A2 EP1664974A2 (en) | 2006-06-07 |
EP1664974A4 true EP1664974A4 (en) | 2008-12-17 |
Family
ID=34312723
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP04783898A Withdrawn EP1664974A4 (en) | 2003-09-11 | 2004-09-13 | Systems and methods for dynamically updating software in a protocol gateway |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP1664974A4 (en) |
JP (1) | JP2007505409A (en) |
AU (1) | AU2004272201A1 (en) |
CA (1) | CA2539470A1 (en) |
WO (1) | WO2005026915A2 (en) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
MX2007013117A (en) | 2005-04-22 | 2008-01-14 | Thomson Licensing | Method and apparatus for secure, anonymous wireless lan (wlan) access. |
JP5052367B2 (en) | 2008-02-20 | 2012-10-17 | 株式会社リコー | Image processing apparatus, authentication package installation method, authentication package installation program, and recording medium |
US20090225781A1 (en) * | 2008-03-07 | 2009-09-10 | Software Ag, Inc. | System, method and computer program product for bulk event transfer |
CA2671606C (en) | 2008-07-09 | 2013-09-24 | Research In Motion Limited | Delivery of email messages in multiple parts |
CN102244666A (en) * | 2010-05-10 | 2011-11-16 | 中兴通讯股份有限公司 | Message processing method for machine-to-machine/man (M2M) platform and M2M platform system |
JP5387767B2 (en) * | 2010-06-17 | 2014-01-15 | 富士通株式会社 | Update technology for running programs |
CN108228192B (en) * | 2016-12-14 | 2020-12-29 | 中国航空工业集团公司西安航空计算技术研究所 | Method for realizing dynamic management of service-oriented airborne software |
CN110659033B (en) * | 2018-06-29 | 2023-08-11 | 深圳耐看科技有限公司 | Protocol registration distribution method, storage medium, electronic equipment and system |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4425618A (en) * | 1981-11-23 | 1984-01-10 | Bell Telephone Laboratories, Incorporated | Method and apparatus for introducing program changes in program-controlled systems |
US5339430A (en) * | 1992-07-01 | 1994-08-16 | Telefonaktiebolaget L M Ericsson | System for dynamic run-time binding of software modules in a computer system |
US5421017A (en) * | 1993-01-18 | 1995-05-30 | Siemens Aktiengesellschaft | Real time control system and method for replacing software in a controlled system |
DE19810802A1 (en) * | 1998-03-12 | 1999-09-16 | Ericsson Telefon Ab L M | Software processing device with software actualization function |
US6334215B1 (en) * | 1999-05-05 | 2001-12-25 | International Business Machines Corporation | Methodology for migration of legacy applications to new product architectures |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6341321B1 (en) * | 1999-02-22 | 2002-01-22 | International Business Machines Corporation | Method and apparatus for providing concurrent patch using a queued direct input-output device |
US6516349B1 (en) * | 1999-09-07 | 2003-02-04 | Sun Microsystems, Inc. | System for updating a set of instantiated content providers based on changes in content provider directory without interruption of a network information services |
-
2004
- 2004-09-13 EP EP04783898A patent/EP1664974A4/en not_active Withdrawn
- 2004-09-13 CA CA002539470A patent/CA2539470A1/en not_active Abandoned
- 2004-09-13 AU AU2004272201A patent/AU2004272201A1/en not_active Abandoned
- 2004-09-13 WO PCT/US2004/029848 patent/WO2005026915A2/en active Application Filing
- 2004-09-13 JP JP2006526370A patent/JP2007505409A/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4425618A (en) * | 1981-11-23 | 1984-01-10 | Bell Telephone Laboratories, Incorporated | Method and apparatus for introducing program changes in program-controlled systems |
US5339430A (en) * | 1992-07-01 | 1994-08-16 | Telefonaktiebolaget L M Ericsson | System for dynamic run-time binding of software modules in a computer system |
US5421017A (en) * | 1993-01-18 | 1995-05-30 | Siemens Aktiengesellschaft | Real time control system and method for replacing software in a controlled system |
DE19810802A1 (en) * | 1998-03-12 | 1999-09-16 | Ericsson Telefon Ab L M | Software processing device with software actualization function |
US6334215B1 (en) * | 1999-05-05 | 2001-12-25 | International Business Machines Corporation | Methodology for migration of legacy applications to new product architectures |
Also Published As
Publication number | Publication date |
---|---|
EP1664974A2 (en) | 2006-06-07 |
WO2005026915A3 (en) | 2006-04-27 |
WO2005026915A2 (en) | 2005-03-24 |
JP2007505409A (en) | 2007-03-08 |
CA2539470A1 (en) | 2005-03-24 |
AU2004272201A1 (en) | 2005-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8195833B2 (en) | Systems and methods for managing messages in an enterprise network | |
US7664822B2 (en) | Systems and methods for authentication of target protocol screen names | |
US7707401B2 (en) | Systems and methods for a protocol gateway | |
US7818565B2 (en) | Systems and methods for implementing protocol enforcement rules | |
US7774832B2 (en) | Systems and methods for implementing protocol enforcement rules | |
US11757941B2 (en) | System and method for providing network and computer firewall protection with dynamic address isolation to a device | |
US20080196099A1 (en) | Systems and methods for detecting and blocking malicious content in instant messages | |
US10419459B2 (en) | System and method for providing data and device security between external and host devices | |
US7472422B1 (en) | Security management system including feedback and control | |
WO2005026915A2 (en) | Systems and methods for dynamically updating software in a protocol gateway | |
EP1820293A2 (en) | Systems and methods for implementing protocol enforcement rules | |
WO2008086224A2 (en) | Systems and methods for detecting and blocking malicious content in instant messages | |
Dam | Usable Privacy with ARP Spoofing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 20060321 |
|
AK | Designated contracting states |
Kind code of ref document: A2 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LI LU MC NL PL PT RO SE SI SK TR |
|
AX | Request for extension of the european patent |
Extension state: AL HR LT LV MK |
|
RIC1 | Information provided on ipc code assigned before grant |
Ipc: G06F 9/44 20060101AFI20060518BHEP |
|
DAX | Request for extension of the european patent (deleted) | ||
RIN1 | Information on inventor provided before grant (corrected) |
Inventor name: PUGH, RICHARD S. Inventor name: CHIEN, PO-HAN |
|
A4 | Supplementary search report drawn up and despatched |
Effective date: 20081117 |
|
RIC1 | Information provided on ipc code assigned before grant |
Ipc: G06F 9/445 20060101AFI20081111BHEP |
|
17Q | First examination report despatched |
Effective date: 20100715 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
18D | Application deemed to be withdrawn |
Effective date: 20101126 |