US20040133626A1 - Selecting a preferred server from groups of servers based on geographical information obtained from the requesting client - Google Patents

Selecting a preferred server from groups of servers based on geographical information obtained from the requesting client Download PDF

Info

Publication number
US20040133626A1
US20040133626A1 US10/738,065 US73806503A US2004133626A1 US 20040133626 A1 US20040133626 A1 US 20040133626A1 US 73806503 A US73806503 A US 73806503A US 2004133626 A1 US2004133626 A1 US 2004133626A1
Authority
US
United States
Prior art keywords
server
client
group
package
address
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.)
Abandoned
Application number
US10/738,065
Inventor
Victor Herrero
Michael Vuozzo
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to US10/738,065 priority Critical patent/US20040133626A1/en
Assigned to INTERNATIONAL BUSINESS MACHINES CORPORATION reassignment INTERNATIONAL BUSINESS MACHINES CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: HERRERO, VICTOR R., VUOZZO, MICHAEL L.
Publication of US20040133626A1 publication Critical patent/US20040133626A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0272Virtual private networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/35Network arrangements, protocols or services for addressing or naming involving non-standard use of addresses for implementing network functionalities, e.g. coding subscription information within the address or functional addressing, i.e. assigning an address to a function
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1019Random or heuristic server selection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1021Server selection for load balancing based on client or server locations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/10015Access to distributed or replicated servers, e.g. using brokers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1034Reaction to server failures by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Definitions

  • the subject of the present invention in general pertains to computer systems including servers and clients communicating over a network.
  • the invention more particularly relates to efficiently distributing digital information such as Software programs from servers to clients.
  • FIG. 2 and FIG. 3 depict a high level view of the download process of prior art systems.
  • a list of servers is presented to a user 901 who selects one for downloading a package of digital data 801 . If the download is not successful 902 , the user can select another server if available.
  • One such product (ISSI) is described as follows:
  • the IBM Standard Software Installer is a product used to provide a wide variety of program applications within an enterprise to distributed users FIG. 1.
  • the product is described as it might be used within the IBM corporation for example.
  • the product could also be used in any other entity with modifications that would be obvious to one skilled in the art.
  • This solution is the initial step towards a comprehensive Web-based electronic software distribution solution.
  • the next step includes a dynamic package catalog and the integration of the TME10 SD for FW as the software distribution engine 1 2 3. This will allow management of the desktop via the other integrated Tivoli applications.
  • VPN Virtual Private Network
  • searchTech.Target.com a Virtual Private Network
  • a virtual private network can be contrasted with an expensive system of owned or leased lines that can only be used by one organization.
  • the goal of a VPN is to provide the organization with the same capabilities, but at a much lower cost.
  • a VPN works by using the shared public infrastructure while maintaining privacy through security procedures and tunneling protocols such as the Layer Two Tunneling Protocol (L2TP).
  • L2TP Layer Two Tunneling Protocol
  • the protocols by encrypting data at the sending end and decrypting it at the receiving end, send the data through a “tunnel” that cannot be “entered” by data that is not properly encrypted.
  • An additional level of security involves encrypting not only the data, but also the originating and receiving network addresses.
  • the Master URL (w3.ibm.com/download/standardsoftware) is hosted by the corporate Web support organization (maintainers of the w3.ibm.com URL). This will provide a single logical server presence and take advantage of the redundancy and load balancing that is provided to all w3.ibm.com hosted web pages.
  • the Master web server will be established by OSP and the Global Projects Solutions (GPS) project office.
  • the ISSI pages follow the IBM Intranet page standards ensuring a consistent look and feel with other pages hosted on the IBM intranet (w3.ibm.com).
  • Key page destinations within the ISSI “site” are directly accessible from every ISSI page via navigational tabs (NavTab) on the page mastheads for planning for and deploying the ISSI Web based shopping solution.
  • NavTab navigational tabs
  • VPN Virtual Private Network
  • FIG. 1 is a high level schematic diagram of a Web Shopping Server network
  • FIG. 2 illustrates a high level flowchart of the prior art
  • FIG. 3 illustrates prior art ISSI flowchart of the download function
  • FIG. 4 illustrates an example redirection algorithm of an embodiment of the invention
  • FIG. 5 illustrates an example attempt group sub-process of the invention
  • FIG. 6 illustrates an example attempt other groups sub-process of an embodiment of the invention.
  • FIG. 7 illustrates an example VPN sub-process of the invention.
  • the ISSI product solves the problem by providing an algorithm that utilizes a set of predefined hierarchies to determine a hierarchy of servers capable of efficiently supplying the required software to the client end user.
  • the Web Master server 4 contains a set of tables that are used to identify the image staging server (defined in section “Staging Server”) to be used for a package installation.
  • the first table used is the image staging server redirection table (described in Table 3 “Image Staging Server Redirection Table Specification”).
  • the table, which defines the global image staging server 3 topology, specifies the following:
  • VPN internal IP address range server groups (referred to as VPN server groups).
  • G A master default server group.
  • the table 503 is maintained by OSP with information supplied by service delivery center (SDC) representatives.
  • SDC service delivery center
  • the table is used by the OSP installation programs to identify the server to be used for a specific package installation. The decision is based on the target machine's 5 TCP/IP domain name, the subnet portion of its IP address, or VPN information.
  • the staging server redirection algorithm uses the domain, subnet, or VPN information to identify a server group that is geographically close to the client machine. It randomly selects a server from that server group to perform the installation. The algorithm is described in detail in section “Image Staging Server Redirection Algorithm”.
  • SDC representatives provide OSP with the staging server 3 and server group information required to define their SDC's topology.
  • domain specific server groups are the preferred method for identifying the candidate servers to be used for deliveries to their clients.
  • subnet specific and subnet range server groups are used (in that order).
  • Subnet specific server groups may represent a class B or class C subnet.
  • ISP Internet Service Provider
  • VPN server groups are used for remote users connected to an Internet Service Provider (ISP) network accessing the corporate network via a VPN client.
  • SDC representatives may also define a SDC default server group.
  • the SDC default server group is associated with the corresponding SDC domain, subnet, subnet range, or VPN server groups. It is used when none of the servers in a domain, subnet, subnet range, or VPN server group can be used to deliver a package (see section “Image Staging Server Redirection Algorithm”).
  • the SDC representative may also specify the “SDC default group message” that is displayed to the customer before a SDC default server group is used.
  • the SDC representative specifies whether the master default server group is to be used in the case that none of the servers in the SDC default group can be used to install the package.
  • the table 503 contains a special server group, the master default server group, which is used in two circumstances: (1) when no domain, subnet, subnet range, or VPN server group matches a client's IP/VPN information, or (2) when no server in a SDC default server group can be used to deliver a package.
  • the master default server group is guaranteed to contain at least one OSP owned server that contains all production ISSI packages.
  • the Web master server contains a number of package server availability tables (described in Table 5 “Package Server Availability Tables”).
  • the server contains one table per ISSI package.
  • Each availability table contains the names of the staging servers that contain the package.
  • the availability tables are generated by an agent which periodically connects to every staging server to discover its packages.
  • the staging server redirection algorithm uses the corresponding package server availability table to identify the servers within a selected server group that contain the respective package.
  • default_group NONE
  • the installation can not be performed 616 . If the group of candidate servers is the master default group, then no default server group will be specified for it. Note that the master default server group is the last server group that can possibly be attempted, so it must be specified with no default group.
  • Redirection of Virtual Private Network clients is accomplished by: (1) obtaining the client's internal IP address, and (2) identifying a VPN internal IP address range server group that includes the internal IP address.
  • the ISSI client code uses two methods to discover the client's internal IP address. The first method involves communicating with the MTS Global Net Client, IBM's standard Client for e-business VPN client, via the MTS API 750 . The second method involves requesting the internal IP address from servers listed in section IPAddrQueryServers of the ISSI routing table 753 . The server requests are made by sending an HTTP transaction to either a Web page containing a server side include or a CGI script.
  • the server request method and the corresponding Web page or CGI script are specified in the ISSI routing table for each server.
  • the server side include and the CGI script query environment variable REMOTE_ADDR, which contains the client's IP address as viewed by the Web server, and returns the value to the ISSI client code.
  • the ISSI client code compares the “candidate” VPN internal IP address to the target machine's “locally obtained” IP address 751 / 755 . If the values are different, then the ISSI client code looks for a VPN internal IP address range server group that includes the VPN internal IP address 752 / 756 .
  • the ISSI routing table contains a list of default subnet masks. For each default subnet mask, use the target machine's TCP/IP address and the default subnet mask to create a “class B subnet”. Then, look for a corresponding subnet specific server group. If none is found, look for a subnet range server group that includes the target machine's class B subnet.
  • the ISSI master server has a CGI script defined to process end-user input from the Web interface. This input is entered by the end-user on the specific package installation page.
  • the CGI uses the end-user input to construct a package parameter file (example Table x1) that describes the package that is to be installed and key customization options selected for the target machine.
  • each package that is available for installation through the Web based shopping solution will have a corresponding package parameter file created by the CGI on the Master Web server.
  • This file contains information to signal the package installer about the package that has been selected for installation. Any configuration information specified by the end-user is included in this file by the server CGI script.
  • This file has the format of a Windows 3.x style INI file.
  • servername d02ftp001.southbury.ibm.com
  • remoteserverpath /home/ospwebc1/swdist/repos
  • remoteserverpath /home/ospwebc1/swdist/repos
  • the image server redirection table has the format of a Windows 3.x style INI file. It has six types of stanzas (sections):
  • the section name is a target's IP address, TCPIP domain name, IP subnet value, IP subnet value range, VPN internal address range, or the name of a default server group.
  • the key values are fully qualified TCP/IP names of the servers for this set of clients.
  • IPAddrQueryServers List of servers from which ISSI may request clients' VPN internal IP addresses.
  • serverX ServerX from which ISSI may request clients' VPN internal IP addresses.
  • typeX Type of request that may be sent to serverX, i.e., SSI (server side include) or CGI (Common Gateway Interface).
  • filenameX The name of the Web page or CGI script that will handle the request at serverX.
  • [ ⁇ server group The name for one of a variety of server name>] group types, including: single IP address, IP subnet, IP subnet range (i.e., [SUB- ⁇ starting IP subnet>- ⁇ ending IP subnet]), IP domain name, VPN internal IP address range (i.e., [VPN- ⁇ starting IP address>- ⁇ ending IP address]), SDC default group name (i.e., [default_ ⁇ SDC reference>]), or master default (i.e., [default]).
  • group types including: single IP address, IP subnet, IP subnet range (i.e., [SUB- ⁇ starting IP subnet>- ⁇ ending IP subnet]), IP domain name, VPN internal IP address range (i.e., [VPN- ⁇ starting IP address>- ⁇ ending IP address]), SDC default group name (i.e., [default_ ⁇ SDC reference>]), or master default (i.e., [default]).
  • NumberOfServers The total number of servers defined for this domain
  • ServerX The TCP/IP name of Server number X where x is a value of one to NumberOfServers inclusive
  • ProxyServerX The TCP/IP name of proxy server X for server X.
  • httpRemoteServerPath The path to the software repository relative to the web server document root.
  • httpDirListMethod Method for HTTP to use to get the directory listing from the server (CGI, FTP)
  • adminEmail E-Mail address for the administrator.
  • ftp_data_mode FTP Mode [Active
  • Image server “milhouse.pok.ibm.com” (uses NFS protocol).
  • Image server “milhouse.pok.ibm.com” (uses FTP protocol).
  • Image server “sybil.pok.ibm.com” (uses HTTP protocol).
  • Subnet specific server group “9.117.162.0”.
  • Subnet range server group “SUB-9.117.0.0-9.117.31.0”.
  • VPN internal IP address server group “VPN-9.31.0.0-9.31.255.255”.
  • remoteserverpath /swdist/repos
  • remoteserverpath /swdist/repos
  • remoteserverpath /swdist/repos
  • Server1 milhouse.pok.ibm.com
  • ProxyServer2 proxya.pok.ibm.com:8080
  • ProxyServerl proxyb.pok.ibm.com:8080
  • ProxyServer2 proxya.pok.ibm.com:8080
  • ProxyServer2 proxya.pok.ibm.com:8080
  • the client workstation has the following TCP/IP information: hostname pugsly.pok.ibm.com i.p. 9.117.82.61 address subnet 255.255.255.0 mask subnet 9.117.82.0
  • the program selects a server from the group of candidate servers. Since only one server is contained in the group, it selects “sybil.pok.ibm.com”. If the installation program fails to connect to the server or fails to download the package image files from the server, then it removes the server from the group of candidate servers. Since the group contains no other servers, the program now determines whether a default group exists for the group of candidate servers.
  • a SDC default group is specified for the group of candidate servers, so group “default_us_north” becomes the new group of candidate servers.
  • the program prompts the user with SDC default group message “Package not found on any US North server. Do you wish to use a default server?”
  • the client workstation has the following TCP/IP information: hostname vuozzo.pok.ibm.com i.p. 9.117.162.45 address subnet 255.255.255.0 mask subnet 9.117.162.0
  • the installation program first attempts to find a matching subnet specific group, i.e. “9.117.162.0”. Since the server group exists, group “9.117.162.0” becomes the candidate staging server group. The rest of the logic is similar to example 1. The next group of candidate servers is “default_us_north” followed by the master default group.
  • the client workstation has the following TCP/IP information: hostname sunny.fishkill.ibm.com i.p. 9.119.81.61 address subnet 255.255.255.0 mask subnet 9.119.81.0
  • the installation program first attempts to find a matching subnet specific group, i.e. “9.117.81.0”. Since the server group is not in the table, it then attempts to find a matching domain specific group, i.e. fishkill.ibm.com. Since the server group exists, group “fishkill.ibm.com” becomes the candidate staging server group.
  • the program randomly selects a staging server from the group of candidate servers. Since only one server is contained in the group, “flounder.fishkill.ibm.com” is selected. If the installation program fails to connect to the server or fails to download the package image files from the server, then it removes the server from the group of candidate servers and attempts to select another server. Since the group contains no other servers, the program now determines whether a default group exists for the group of candidate servers.
  • the client workstation has the following TCP/IP information: hostname stumpy.endicott.ibm.com i.p. 9.115.61.34 address subnet 255.255.255.0 mask subnet 9.115.61.0
  • the client workstation has the following TCP/IP information: hostname vuozzo.southbury.ibm.com i.p. 9.117.10.45 address subnet 255.255.255.0 mask subnet 9.117.35.0
  • the installation program unsuccessfully attempts to find subnet specific group “9.117.10.0” and domain specific server group “southbury.ibm.com”. Since the subnet is included in subnet range server group “SUB-9.117.0.0-9.117.31.0”, the subnet range server group becomes the candidate staging server group.
  • the client workstation has the following TCP/IP information: hostname vuozzo.southbury.ibm.com i.p. 10.111.222.333 address subnet 255.255.255.0 mask subnet 10.111.222.0 Internal 9.31.111.222 IP address
  • the first contact server contains the server redirection table.
  • the default first contact server for this solution is the corporate intranet FTP server.
  • the master web server for ISSI contains a file that allows an override to the client's definitions for: the first contact server, directory for the staging server redirection table, access protocol (NOS) and the userid and password.
  • the override is accomplished by including the contents of the override file in each package parameter file sent to the client during package delivery. This facilitates automated maintenance of the first contact server definition.
  • the format of this file is described in Table 4 “First Contact Server Override File Specification (frstcon.ovr)”.
  • the first contact server override file is located on the master Web server. It is appended to all package parameter files that are constructed by the ISSI CGI script. The contents of this file are compared to those in the clients WEB.INI file and if different, the WEB.INI file is updated to match this file. This provides the capability to update WEB.INI file settings without end-user intervention.
  • servername d02ftp001.southbury.ibm.com
  • remoteserverpath /home/ospwebc2/swdist/repos
  • the staging server hosts the installation images of the software packages. These images are installed directly from the staging server via NFS or moved to the target via FTP or HTTP for local installation.
  • the source image repository can be located (“rooted”) anywhere on the staging server. This location must correlate with the RemoteServerPath value stored in the image server redirection table for that staging server. Subordinate directories must follow the OSP Packaging Architecture.
  • a userid and password pair is used to access the source images via FTP when the local staging option has been selected.
  • the Server be:
  • E. provide a fallback Server option or succession of options.
  • ISSI The IBM Standard Software Installer (henceforth ISSI) was developed and is frequently enhanced to meet these needs. ISSI does not require that the Client be registered to a specific server; rather, an ISSI client need only visit a central web site to select a software package for download and installation. Upon selection of a specific software package the underlying logic of ISSI will:
  • an alternative Server is chosen from the same Server grouping (if one is available, or from the next lower priority Server grouping if not) and the delivery re-attempted. If repeated failures and the associated invalidation of those Servers exhaust the candidate server table, then a master “default server group” list is used.
  • choosing is accomplished by any effective algorithm known including “pseudo” randomly. The logic described in this step forms the central idea of this disclosure.
  • the package server availability table is automatically updated on a regular basis by an agent that queries the set of known Servers for package availability.
  • the specific invention disclosed is the inclusion of the hierarchy of Server groupings into the existing ISSI architecture.
  • An example of a Server grouping hierarchy, in order of decreasing priority, is:
  • the advantage of the Server grouping hierarchy method is that it enables the possibility of rapidly assembled and easily managed aggregation of Servers into groups that can be ranked and exploited by ISSI using topology-sensitive and package distribution-sensitive logic.
  • the master web server contains a set of tables that are used to identify the Server to be used for a package installation.
  • the first table used is the Server redirection table.
  • the table which defines the global Server topology, specifies the following:
  • VPN server groups E.
  • VPN server groups E.
  • VPN server groups E.
  • VPN server groups E.
  • G A master default server group.
  • the table is maintained by the Service Provider with information supplied by service delivery center (locale-specific, or “SDC”) representatives.
  • the table is used by the Service Provider's installation programs to identify the server to be used for a specific package installation. The decision is based on the target machine's TCP/IP domain name or the subnet portion of its IP address or VPN information.
  • the staging server redirection algorithm uses the domain, subnet or VPN information to identify a server group that is geographically close to the client machine. It randomly selects a server from that server group to perform the installation.
  • Locale-specific representatives provide the Service Provider with the staging server and server group information required to define their locale's topology.
  • domain specific server groups are the preferred method for identifying the candidate servers to be used for deliveries to their clients. For locations were TCP/IP domains are spread over wide or scattered geographical areas, subnet specific server and subnet range groups are used (in that order). Subnet specific server groups may represent a class B or Class C subnet. For remote users connected to an Internet Service Provider (ISP) network accessing the corporate network via a VPN client, VPN server groups are used. Locale-specific representatives may also define a locale-specific default server group. The locale-specific default server group is associated with the corresponding locale-specific domain, subnet, subnet range, or VPN server groups.
  • ISP Internet Service Provider
  • the locale-specific representative may also specify the “SDC default group message” that is displayed to the customer before a locale-specific default server group is used.
  • the locale-specific representative specifies whether the master default server group is to be used in the case that none of the servers in the locale-specific default group can be used to install the package.
  • the table contains a special server group, the master default server group, which is used in two circumstances: (1) when no domain, subnet or VPN group matches a client's IP/VPN information, or (2) when no server in a locale-specific default server group can be used to deliver a package.
  • the master default server group is guaranteed to contain at least one Service Provider owned server that contains all production ISSI packages.
  • the master web server contains a number of package server availability tables.
  • the server contains one table per ISSI package.
  • Each table contains the names of the staging servers that contain the package.
  • the tables are generated by an agent which periodically connects to every staging server to discover its packages.
  • the staging server redirection algorithm uses the corresponding package server availability table to identify the servers within a selected server group that contain the respective package.
  • d Attempt to query the MTS Global Net Client (remote dialup modem client application) for the target machine's internal IP address 750 . If an internal address is obtained, look for a VPN internal IP address range server group that includes the target machine's internal IP address 752 .
  • b) If a locale-specific default server group is specified (“default_group default_ ⁇ SDC reference>”), then repeat steps 4-6 617 with the locale-specific default server group as the group of candidate servers. If a locale-specific default group message is available, the message is first displayed to inform the user than a locale-specific default group is about to be used.
  • the ISSI client code uses two methods to discover the client's internal IP address.
  • the first method involves communicating with the MTS Global Net Client, IBM's standard Client for e-business VPN client, via the MTS API 750 .
  • the second method involves requesting the internal IP address from servers listed in section IPAddrQueryServers of the ISSI routing table 753 .
  • the server requests are made by sending an HTTP transaction to either a Web page containing a server side include or a CGI script.
  • the server request method and the corresponding Web page or CGI script are specified in the ISSI routing table for each server.
  • the server side include and the CGI script query environment variable REMOTE_ADDR, which contains the client's IP address as viewed by the Web server, and returns the value to the ISSI client code.
  • the ISSI client code compares the “candidate” VPN internal IP address to the target machine's “locally obtained” IP address 751 / 755 . If the values are different, then the ISSI client code looks for a VPN internal IP address range server group that includes the VPN internal IP address 752 / 756 .
  • the present invention can be included in an article of manufacture (e.g., one or more computer program products) having, for instance, computer usable media.
  • the media has embodied therein, for instance, computer readable program code means for providing and facilitating the capabilities of the present invention.
  • the article of manufacture can be included as a part of a computer system or sold separately.
  • At least one program storage device readable by a machine tangibly embodying at least one program of instructions executable by the machine to perform the capabilities of the present invention can be provided.

Abstract

Redirecting a client request for digital information to a server by selecting a server based on client location. The client location derived from a query to a client application such as a modem dial-up application or a mobile phone Global Positioning System. The client location information being used in combination with a listing of groups of servers as well as a listing of servers having the requested digital information to select a preferred server satisfying geographical preferences.

Description

    CROSS REFERENCE TO RELATED APPLICATIONS
  • This is a continuation in part of U.S. Ser. No. 09/565,400 “METHOD TO OPTIMIZE THE NETWORK DISTRIBUTION OF DIGITAL INFORMATION BASED ON HIERARCHICAL GROUPING OF SERVER TOPOLOGY AND CODE DISTRIBUTION” filed on May 5, 2000.[0001]
  • FIELD OF INVENTION
  • The subject of the present invention in general pertains to computer systems including servers and clients communicating over a network. The invention more particularly relates to efficiently distributing digital information such as Software programs from servers to clients. [0002]
  • BACKGROUND OF THE INVENTION
  • The industry utilizes a wide variety of software products from a wide variety of sources, designed for a wide variety of environments. In some cases, software applications assist in organizing these products in order to provide consistency among users. As an example, a company may wish to restrict the number and version of applications the end users are using in the company in order to more efficiently manage their IT resources. Program products are needed that provide the service of managing software applications including distributing appropriate versions and updates. FIG. 2 and FIG. 3 depict a high level view of the download process of prior art systems. A list of servers is presented to a [0003] user 901 who selects one for downloading a package of digital data 801. If the download is not successful 902, the user can select another server if available. One such product (ISSI) is described as follows:
  • The IBM Standard Software Installer (ISSI) is a product used to provide a wide variety of program applications within an enterprise to distributed users FIG. 1. The product is described as it might be used within the IBM corporation for example. The product could also be used in any other entity with modifications that would be obvious to one skilled in the art. This solution is the initial step towards a comprehensive Web-based electronic software distribution solution. The next step includes a dynamic package catalog and the integration of the TME10 SD for FW as the [0004] software distribution engine 1 2 3. This will allow management of the desktop via the other integrated Tivoli applications.
  • The architectures and, in many aspects, the actual implementation employed in this solution largely follow the Operating System Platforms (OSP) software distribution architectures and implementations that are currently exploited for the Client for e-business Windows 95, Windows NT 4, Windows 2000, Windows XP, Linux, and OS/2 offerings. [0005]
  • ISSI Solution Highlights: [0006]
  • A. Easy to use interface for the end-user [0007]
  • B. Automated installations [0008]
  • 1. Response file driven installations; Minimized end user intervention; configuration consistency; reduced end-user install support (doc, education); reduced end-user induced errors. [0009]
  • a. Products with native support for response files [0010]
  • b. OSP's MagicWin installation technology for products that do not support response files natively [0011]
  • 2. Pre-prompting for installation variables; a subset of the total variables required for the package install, predetermined values for others; end-user selects options and install proceeds without further intervention [0012]
  • C. OSP Packaging Architecture Based Packages [0013]
  • 1. Delivery tool independent; Reusable for all OSP solutions (TME10 SD for AIX, TME10 SD for Framework, Static and Dynamic Web, CD source installs). [0014]
  • D. Consistent technology and package install behavior across all Client for e-business deliverables. [0015]
  • 1. Leveraged service delivery center skill [0016]
  • 2. Leveraged end-user education/expectations [0017]
  • E. Infrastructure [0018]
  • 1. Established package distribution process [0019]
  • 2. Leverage of existing service delivery center infrastructure [0020]
  • 3. TCP/IP based offering [0021]
  • 4. Multiple servers, selected based on topological closeness to client [0022]
  • 5. After the “One-time client setup” is run, all support code and configuration files that reside on the client are automatically kept current from the server [0023]
  • a. Server targets definitions [0024]
  • b. Installer programs [0025]
  • c. Userids/Passwords for server access [0026]
  • 6. Multiple servers support based on Virtual Private Network (VPN) information. According to the World Wide Web URL “SearchTech.Target.com” a Virtual Private Network (VPN) is a way to use a public telecommunication infrastructure, such as the Internet, to provide remote offices or individual users with secure access to their organization's network. A virtual private network can be contrasted with an expensive system of owned or leased lines that can only be used by one organization. The goal of a VPN is to provide the organization with the same capabilities, but at a much lower cost. [0027]
  • A VPN works by using the shared public infrastructure while maintaining privacy through security procedures and tunneling protocols such as the Layer Two Tunneling Protocol (L2TP). In effect, the protocols, by encrypting data at the sending end and decrypting it at the receiving end, send the data through a “tunnel” that cannot be “entered” by data that is not properly encrypted. An additional level of security involves encrypting not only the data, but also the originating and receiving network addresses. (FIG. 1) Illustrative Web Shopping Server Topology [0028]
  • Web “Master” Server [0029]
  • The Master URL (w3.ibm.com/download/standardsoftware) is hosted by the corporate Web support organization (maintainers of the w3.ibm.com URL). This will provide a single logical server presence and take advantage of the redundancy and load balancing that is provided to all w3.ibm.com hosted web pages. The Master web server will be established by OSP and the Global Projects Solutions (GPS) project office. [0030]
  • ISSI Pages: [0031]
  • The ISSI pages follow the IBM Intranet page standards ensuring a consistent look and feel with other pages hosted on the IBM intranet (w3.ibm.com). Key page destinations within the ISSI “site” are directly accessible from every ISSI page via navigational tabs (NavTab) on the page mastheads for planning for and deploying the ISSI Web based shopping solution. [0032]
  • The hierarchy of the ISSI shopping pages is: [0033]
  • I. Home/Overview [0034]
  • A. FAQ (available from every page via NavTab) [0035]
  • B. User's Guide (available from every page NavTab) [0036]
  • C. Client Setup [0037]
  • D. Geography Page [0038]
  • E. Operating System Catalog (available from every page NavTab within Geography) [0039]
  • 1. Package Links [0040]
  • 2. Package Information Page [0041]
  • 3. Package Prompt and Install Page [0042]
  • A novel method for selecting a server to handle a client request for digital data is described in “METHOD, APPARATUS AND PROGRAM PRODUCT TO OPTIMIZE THE NETWORK DISTRIBUTION OF DIGITAL INFORMATION BASED ON HIERARCHICAL GROUPING OF SERVER TOPOLOGY AND CODE DISTRIBUTION” U.S. patent application Ser. No. 09/565,400 filed May 5, 2000 assigned to IBM and is hereby incorporated by reference in the present application. [0043]
  • SUMMARY OF THE INVENTION
  • It is an object of this invention to provide digital data to a client computer from a preferred server using geographical information retrieved from the client computer. [0044]
  • It is another object of the invention to determine a preferred server from a group of servers based on proximity of the servers to a client computer. [0045]
  • It is yet another object of the invention to determine a preferred server from a group of servers based on availability of the server. [0046]
  • It is still another object of the invention to provide digital data to a client from a default server if no preferred server is found. [0047]
  • It is further an object of the invention to provide server information relating subnets or domains to servers in order to determine the preferred server. [0048]
  • It is further an object of the invention to provide server information relating Virtual Private Network (VPN) internal IP address ranges to servers in order to determine the preferred server. [0049]
  • It is lastly an object of the invention to provide server information relating availability of required digital data at the servers. [0050]
  • These and other objects, features and advantages of the invention will be apparent to those skilled in the art in view of the following detailed description and accompanying drawings.[0051]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The subject matter which is regarded as the invention is particularly pointed out and distinctly claimed in the concluding portion of the specification. The invention, however, both as to organization and method of practice, together with further objects and advantages thereof, may best be understood by reference to the following description taken in connection with the accompanying drawings in which: [0052]
  • FIG. 1 is a high level schematic diagram of a Web Shopping Server network; [0053]
  • FIG. 2 illustrates a high level flowchart of the prior art; [0054]
  • FIG. 3 illustrates prior art ISSI flowchart of the download function; [0055]
  • FIG. 4 illustrates an example redirection algorithm of an embodiment of the invention; [0056]
  • FIG. 5 illustrates an example attempt group sub-process of the invention; [0057]
  • FIG. 6 illustrates an example attempt other groups sub-process of an embodiment of the invention; and [0058]
  • FIG. 7 illustrates an example VPN sub-process of the invention.[0059]
  • DETAILED DESCRIPTION OF THE INVENTION
  • The ISSI product solves the problem by providing an algorithm that utilizes a set of predefined hierarchies to determine a hierarchy of servers capable of efficiently supplying the required software to the client end user. [0060]
  • Redirection to Image Staging Servers [0061]
  • The [0062] Web Master server 4 contains a set of tables that are used to identify the image staging server (defined in section “Staging Server”) to be used for a package installation. The first table used is the image staging server redirection table (described in Table 3 “Image Staging Server Redirection Table Specification”). The table, which defines the global image staging server 3 topology, specifies the following:
  • A. Each ISSI image staging server. [0063]
  • B. Domain specific server groups. [0064]
  • C. Subnet specific server groups. [0065]
  • D. Subnet range server groups. [0066]
  • E. VPN internal IP address range server groups (referred to as VPN server groups). [0067]
  • F. SDC default server groups. [0068]
  • G. A master default server group. [0069]
  • H. A list of default subnet masks. [0070]
  • The table [0071] 503 is maintained by OSP with information supplied by service delivery center (SDC) representatives. The table is used by the OSP installation programs to identify the server to be used for a specific package installation. The decision is based on the target machine's 5 TCP/IP domain name, the subnet portion of its IP address, or VPN information. In general, the staging server redirection algorithm uses the domain, subnet, or VPN information to identify a server group that is geographically close to the client machine. It randomly selects a server from that server group to perform the installation. The algorithm is described in detail in section “Image Staging Server Redirection Algorithm”.
  • SDC representatives provide OSP with the staging [0072] server 3 and server group information required to define their SDC's topology. For locations that define TCP/IP domains based on specific geographical locations, domain specific server groups are the preferred method for identifying the candidate servers to be used for deliveries to their clients. For locations were TCP/IP domains are spread over wide or scattered geographical areas, subnet specific and subnet range server groups are used (in that order). Subnet specific server groups may represent a class B or class C subnet. For remote users connected to an Internet Service Provider (ISP) network accessing the corporate network via a VPN client, VPN server groups are used. SDC representatives may also define a SDC default server group. The SDC default server group is associated with the corresponding SDC domain, subnet, subnet range, or VPN server groups. It is used when none of the servers in a domain, subnet, subnet range, or VPN server group can be used to deliver a package (see section “Image Staging Server Redirection Algorithm”). The SDC representative may also specify the “SDC default group message” that is displayed to the customer before a SDC default server group is used. When defining the SDC default group, the SDC representative specifies whether the master default server group is to be used in the case that none of the servers in the SDC default group can be used to install the package.
  • The table [0073] 503 contains a special server group, the master default server group, which is used in two circumstances: (1) when no domain, subnet, subnet range, or VPN server group matches a client's IP/VPN information, or (2) when no server in a SDC default server group can be used to deliver a package. The master default server group is guaranteed to contain at least one OSP owned server that contains all production ISSI packages.
  • In addition to the image server redirection table, the Web master server contains a number of package server availability tables (described in Table 5 “Package Server Availability Tables”). The server contains one table per ISSI package. Each availability table contains the names of the staging servers that contain the package. The availability tables are generated by an agent which periodically connects to every staging server to discover its packages. In general, the staging server redirection algorithm uses the corresponding package server availability table to identify the servers within a selected server group that contain the respective package. [0074]
  • Image Staging Server Redirection Algorithm [0075]
  • The OSP staging server redirection algorithm (FIGS. 4, 5 and [0076] 6) follows:
  • 1. Obtain the target machine's TCP/IP address, subnet mask and domain. Using the IP address and subnet mask, determine the target machine's [0077] subnet 501.
  • 2. Retrieve [0078] 502 the image staging server redirection table 503 and the corresponding package server availability table 504.
  • 3. Using the image staging server redirection table [0079] 503, identify the server group to be used as the “group of candidate servers”. First, look for a matching subnet specific server group 505. If none is found, then look for a subnet range server group that includes target machine's subnet 511. If none is found, then look for a domain specific server group 507. If none is found, then look for a VPN server group 702 (for details, see “Redirecting VPN Clients” below). If none is found, then look for a class B subnet 709 (for details, see “Class B Subnet Logic” below). If none is found 712, then use the master default server group 509.
  • 4. Using the package server availability table [0080] 504, identify the servers in the group of candidate servers that contain the package 610. Remove servers that do not contain the package from the group of candidate servers 610.
  • 5. Randomly choose a server from the group of [0081] candidate servers 611. If a failure occurs connecting to the server or downloading the package image from the server 620, then the chosen server is excluded from the group of candidate servers 612. If the group of candidate servers is exhausted 620, then proceed with the next step 614. Otherwise, repeat this step 611.
  • 6. If none of the servers in the group of candidate servers can be used to successfully install the [0082] product 615, then determine the type of default server group specified for the group of candidate servers (by inspecting keyword “default_group”) 615. Proceed as follows depending on the type of default server group specified:
  • a) If no default server group is specified (“default_group=NONE”), then the installation can not be performed [0083] 616. If the group of candidate servers is the master default group, then no default server group will be specified for it. Note that the master default server group is the last server group that can possibly be attempted, so it must be specified with no default group.
  • b) If a SDC default server group is specified (“default_group=default_<SDC reference>”), then repeat steps 4-6 [0084] 617 with the SDC default server group as the group of candidate servers. If an SDC default group message is available, the message is first displayed to inform the user than an SDC default group is about to be used.
  • c) If the master default server group is specified (“default_group=default”), then repeat steps 4-6 [0085] 617 with the master default server group as the group of candidate servers. A standard message is first displayed to inform the user that the master default group is about to be used.
  • Redirecting VPN Clients: [0086]
  • Referring to FIG. 7, Redirection of Virtual Private Network clients is accomplished by: (1) obtaining the client's internal IP address, and (2) identifying a VPN internal IP address range server group that includes the internal IP address. The ISSI client code uses two methods to discover the client's internal IP address. The first method involves communicating with the MTS Global Net Client, IBM's standard Client for e-business VPN client, via the [0087] MTS API 750. The second method involves requesting the internal IP address from servers listed in section IPAddrQueryServers of the ISSI routing table 753. The server requests are made by sending an HTTP transaction to either a Web page containing a server side include or a CGI script. The server request method and the corresponding Web page or CGI script are specified in the ISSI routing table for each server. The server side include and the CGI script query environment variable REMOTE_ADDR, which contains the client's IP address as viewed by the Web server, and returns the value to the ISSI client code. The ISSI client code compares the “candidate” VPN internal IP address to the target machine's “locally obtained” IP address 751/755. If the values are different, then the ISSI client code looks for a VPN internal IP address range server group that includes the VPN internal IP address 752/756.
  • Class B Subnet Logic [0088]
  • The ISSI routing table contains a list of default subnet masks. For each default subnet mask, use the target machine's TCP/IP address and the default subnet mask to create a “class B subnet”. Then, look for a corresponding subnet specific server group. If none is found, look for a subnet range server group that includes the target machine's class B subnet. [0089]
  • ISSI CGI [0090]
  • The ISSI master server has a CGI script defined to process end-user input from the Web interface. This input is entered by the end-user on the specific package installation page. The CGI uses the end-user input to construct a package parameter file (example Table x1) that describes the package that is to be installed and key customization options selected for the target machine. In a preferred embodiment, each package that is available for installation through the Web based shopping solution will have a corresponding package parameter file created by the CGI on the Master Web server. This file contains information to signal the package installer about the package that has been selected for installation. Any configuration information specified by the end-user is included in this file by the server CGI script. This file has the format of a Windows 3.x style INI file. [0091]
    TABLE 1
    Example Package Parameter File Contents:
    [parameters]
    deliverymethod= Type of delivery; one of: staticweb,
    dynamicweb, Tiv, NVDM
    globalname= Token based package descriptor
    pkgname= Descriptive name of package
    nos= Network operating system to use to access
    the image server
    (CopyLocal, RemoteMount, NFS, FTP, NTS...);
    Overrides clients WEB.INI.
    LocalStgPath= Directory on the client where the product
    images will be staged to when
    NOS=FTP/HTTP
    [First Contact
    server]
    servername= Fully qualified TCPIP name of the first
    contact server
    nos= Transport method for obtaining the image
    server redirection table: NFS, FTP, HTTP
    remoteserverpath= Path to the image server redirection
    table
    key= Flag indicating the encryption level of
    key1 and key2 (00=key1/key2 plain text,
    11= key1/key2 Level 1 encrypted)
    key1= Userid for access to the first contact
    server (if nos=FTP)
    key2= Password for access to the first contact
    server (if nos=FTP)
    [responses]
    <response 1-“n” response descriptors and responses
    descriptor>= that will be used to create the
    installation response file for the
    package.
  • Sample Package Parameter File: [0092]
  • [parameters][0093]
  • nos=NFS [0094]
  • deliverymethod=staticweb [0095]
  • pkgname=Lotus Notes 4.53a [0096]
  • globalname=LOT.LNC_EN.W32.1NSTALL.CLIENT_W32.PLAT.REF.453000.A [0097]
  • [First Contact server][0098]
  • servername=d02ftp001.southbury.ibm.com [0099]
  • nos=ftp [0100]
  • remoteserverpath=/home/ospwebc1/swdist/repos [0101]
  • key=11 [0102]
  • key1=xxxxx [0103]
  • key2=xxxxx [0104]
  • [responses][0105]
  • LNC45300_installdrive=C [0106]
  • username=IBM Employee [0107]
  • companyname=IBM [0108]
  • Table 2 (Example WEB.INI File Contents): [0109]
  • The WEB.INI file has the format of a Windows 3.x style INI file and resides on the software distribution target. It has two possible stanzas (sections). The stanzas and respective keys follow: [0110]
    [Stanza]/Key name Description
    [ImageServer]
    dllName= Name of the image server dll for OS/2 and
    16 bit windows
    dllName32= Name of the image server dll for 32 bit
    windows
    ServerName= Fully qualified TCPIP name of the first
    contact server
    Nos= Transport method for obtaining the image
    server redirection table: FTP, HTTP
    LocalStgPath= Directory on the client where the product
    images will be staged to when NOS=FTP
    RemoteServerPath= Path to the image server redirection table
    key= Flag indicating the encryption level of
    key1 and key2 (00=key1/key2 plain text,
    11= key1/key2 Level 1 encrypted)
    key1= Userid for access to the first contact
    server (if nos=FTP)
    key2= Password for access to the first contact
    server (if nos=FTP)
    [LogFiles]
    TrimLogFile= Should the OSP log file be trimed to keep
    it from growing too big ? (yes/no)
    MaxLogFileSize= Maximum size for the log file in bytes.
  • Sample WEB.INI File: [0111]
  • [imageserver][0112]
  • dllname32=pw32gis.dll [0113]
  • servername=d02ftp001.southbury.ibm.com [0114]
  • nos=ftp [0115]
  • remoteserverpath=/home/ospwebc1/swdist/repos [0116]
  • key=11 [0117]
  • key1=xxxxx [0118]
  • key2=xxxxx [0119]
  • REM Uncomment localStgPath and set it to the path you want FTP to use for temp space. [0120]
  • REM Only do this if you need to force it to a specific drive. [0121]
  • REM localStgPath=c:\swd [0122]
  • [logfiles][0123]
  • trimlogfile=yes [0124]
  • maxlogfilesize=50000 [0125]
  • Table 3 (Example Staging Server Redirection Table Contents): [0126]
  • The image server redirection table has the format of a Windows 3.x style INI file. It has six types of stanzas (sections): [0127]
  • 1. Definition of the logging server and script to execute to perform log function on that server. [0128]
  • 2. Definition of default server settings. [0129]
  • 3. Definition of default subnet masks (for use by the ISSI routing algorithm to create candidate class B subnets). [0130]
  • 4. A list of servers from which ISSI may request clients' VPN internal IP addresses. [0131]
  • 5. A list of servers to service a particular IP address, TCPIP domain, IP subnet, IP subnet range, or VPN internal address range. The section name is a target's IP address, TCPIP domain name, IP subnet value, IP subnet value range, VPN internal address range, or the name of a default server group. The key values are fully qualified TCP/IP names of the servers for this set of clients. [0132]
  • 6. Image server section that defines the access method details for each [0133] server 4.
    [Stanza]/Key name Description
    [HTTPLogServer]
    ServerName= The fully qualified TCPIP name of the HTTP
    server to which web installation event
    logging should be performed.
    ScriptName= The full path name of the CGI script used
    to log web installation events.
    [DefaultServerSettings]
    ftpDataMode= The FTP data mode used by ISSI (active or
    passive).
    [DefaultSubnetMasks]
    numDSN= Number of default subnet masks (for use by
    the ISSI routing algorithm to create
    candidate class B subnets).
    dsnX= Default subnet mask X (for use by the ISSI
    routing algorithm to create candidate
    class B subnets).
    [IPAddrQueryServers] List of servers from which ISSI may
    request clients' VPN internal IP
    addresses.
    serverX= ServerX from which ISSI may request
    clients' VPN internal IP addresses.
    typeX= Type of request that may be sent to
    serverX, i.e., SSI (server side include)
    or CGI (Common Gateway Interface).
    filenameX= The name of the Web page or CGI script
    that will handle the request at serverX.
    [<server group The name for one of a variety of server
    name>] group types, including: single IP address,
    IP subnet, IP subnet range (i.e., [SUB-
    <starting IP subnet>-<ending IP subnet]),
    IP domain name, VPN internal IP address
    range (i.e., [VPN-<starting IP address>-
    <ending IP address]), SDC default group
    name (i.e., [default_<SDC reference>]), or
    master default (i.e., [default]).
    NumberOfServers= The total number of servers defined for
    this domain
    ServerX= The TCP/IP name of Server number X where
    x is a value of one to NumberOfServers
    inclusive
    ProxyServerX= The TCP/IP name of proxy server X for
    server X. Follow the name of the server
    with a colon and the port number of the
    proxy server if it is not port 80.
    default_group= ISSI Default server group
    [<Servername>]
    Nos= Network operating system to use to access
    the image server (NFS, FTP, HTTP, NTS...);
    Overridden by package parameter file
    RemoteServerPath= The root directory on the server where the
    software repository is located
    key= Flag indicating the encryption level of
    key1 and key2 (00=key1/key2 plain text,
    11= key1/key2 Level 1 encrypted)
    key1= Userid for access to the image server
    key2= Password for access to the image server
    RemoteMountNos= Network operating system to use if
    NOS=RemoteMount is specified.
    CopyLocalNos= Network operating system to use if
    NOS=CopyLocal specified.
    httpRemoteServerPath= The path to the software repository
    relative to the web server document root.
    httpDirListMethod= Method for HTTP to use to get the
    directory listing from the server
    (CGI, FTP)
    httpCgiScriptName= Path to the CGI script to use for HTTP
    directory listings if
    httpDirListMethod=cgi
    adminName= Name of the administrator for this server.
    adminEmail= E-Mail address for the administrator.
    ftp_data_mode FTP Mode [Active|Passive] (for future
    use).
    DefaultSubnetMasks]
    numDSN= Total number of default subnet masks.
    dsnX= Default subnet mask X (where X=1, 2,..).
  • Sample Image Server Redirection Table: [0134]
  • The sample table depicted below contains the following: [0135]
  • Image server “milhouse.pok.ibm.com” (uses NFS protocol). [0136]
  • Image server “milhouse.pok.ibm.com” (uses FTP protocol). [0137]
  • Image server “sybil.pok.ibm.com” (uses HTTP protocol). [0138]
  • Subnet specific server group “9.117.162.0”. [0139]
  • Domain specific server groups “pok.ibm.com” and “fishkill.ibm.com”. [0140]
  • Subnet range server group “SUB-9.117.0.0-9.117.31.0”. [0141]
  • VPN internal IP address server group “VPN-9.31.0.0-9.31.255.255”. [0142]
  • SDC default group “default_us_north”. [0143]
  • Master default group “default”. [0144]
  • [HTTPLogServer][0145]
  • ServerName=ospdb.pok.ibm.com [0146]
  • ScriptName=/cgi-bin/weblog.sh [0147]
  • [DefaultSubnetMasks][0148]
  • numDSN=1 [0149]
  • dsn1=255.255.0.0 [0150]
  • [flounder.fishkill.ibm.com][0151]
  • nos=nfs [0152]
  • remoteserverpath=/swdist/repos [0153]
  • adminName=Bill Admin [0154]
  • adminEmail=billadmin@us.ibm.com [0155]
  • remoteMountNOS=nfs [0156]
  • copyLocalNOS=ftp [0157]
  • key=11 [0158]
  • key1=xxxxx [0159]
  • Key2=xxxxx [0160]
  • ftp_data_mode=active [0161]
  • [milhouse.pok.ibm.com][0162]
  • nos=nfs [0163]
  • remoteserverpath=/swdist/repos [0164]
  • adminName=Joe Admin [0165]
  • adminEmail=joeadmin@us.ibm.com [0166]
  • remoteMountNOS=nfs [0167]
  • copyLocalNOS=ftp [0168]
  • key=11 [0169]
  • key1=xxxxx [0170]
  • Key2=xxxxx [0171]
  • ftp_data_mode=passive [0172]
  • [sybil.pok.ibm.com][0173]
  • nos=nfs [0174]
  • remoteserverpath=/swdist/repos [0175]
  • adminName=Joe Admin [0176]
  • adminEmail=joeadmin@us.ibm.com [0177]
  • remoteMountNOS=nfs [0178]
  • copyLocalNOS=http [0179]
  • httpRemoteServerPath=/repos [0180]
  • httpDirListMethod=cgi [0181]
  • httpCgiScriptName=/cgi-bin/dirlist.sh [0182]
  • key=11 [0183]
  • key1=xxxxx [0184]
  • Key2=xxxxx [0185]
  • ftp_data_mode=active [0186]
  • [9.117.162.0][0187]
  • NumberOfServers=2 [0188]
  • Server1=milhouse.pok.ibm.com [0189]
  • Server2=sybil.pok.ibm.com [0190]
  • ProxyServer2=proxya.pok.ibm.com:8080 [0191]
  • default_group=default_us_north [0192]
  • default_group_msg1=Package not found on any local servers. [0193]
  • default_group_msg2=Do you wish to use a US North server?[0194]
  • [pok.ibm.com][0195]
  • NumberOfServers=1 [0196]
  • Server1=sybil.pok.ibm.com [0197]
  • ProxyServerl=proxyb.pok.ibm.com:8080 [0198]
  • default_group=default_us_north [0199]
  • default_group_msg1=Package not found on any local servers. [0200]
  • default_group_msg2=Do you wish to use a US North server?[0201]
  • [fishkill.ibm.com][0202]
  • NumberOfServers=1 [0203]
  • Server1=flounder.fishkill.ibm.com [0204]
  • Default_group=default [0205]
  • [SUB-9.117.0.0-9.177.31.0][0206]
  • NumberOfServers=2 [0207]
  • Server1=milhouse.pok.ibm.com [0208]
  • Server2=sybil.pok.ibm.com [0209]
  • ProxyServer2=proxya.pok.ibm.com:8080 [0210]
  • default_group=default_us_north [0211]
  • default_group_msg1=Package not found on any local servers. [0212]
  • default_group_msg2=Do you wish to use a US North server?[0213]
  • [VPN-9.31.0.0-9.31.255.255][0214]
  • NumberOfServers=2 [0215]
  • Server1=milhouse.pok.ibm.com [0216]
  • Server2=sybil.pok.ibm.com [0217]
  • ProxyServer2=proxya.pok.ibm.com:8080 [0218]
  • default_group=default_us_north [0219]
  • default_group_msg1=Package not found on any local servers. [0220]
  • default_group_msg2=Do you wish to use a US North server?[0221]
  • [default_us_north][0222]
  • NumberOfServers=1 [0223]
  • Server1=milhouse.pok.ibm.com [0224]
  • default_group=default [0225]
  • default_group_msg1=Package not found on any US North server. [0226]
  • default_group_msg2=Do you wish to use a default server?[0227]
  • [default][0228]
  • NumberOfServers=2 [0229]
  • Server1=sybil.pok.ibm.com [0230]
  • Server2=flounder.fishkill.ibm.com [0231]
  • Default=NONE [0232]
  • Image Staging Server Redirection Algorithm Examples: [0233]
  • The following scenarios depict how the preceding sample table is used. To simplify the examples, an assumption is made that all servers in the sample table contain all ISSI packages and the description is limited to how the server groups are used. [0234]
  • EXAMPLE 1 Using a Domain Specific Server Group with a SDC Default Group
  • The client workstation has the following TCP/IP information: [0235]
    hostname pugsly.pok.ibm.com
    i.p. 9.117.82.61
    address
    subnet 255.255.255.0
    mask
    subnet 9.117.82.0
  • The installation program proceeds as follows: [0236]
  • First, it attempts to find a matching subnet specific group, i.e. “9.117.82.0”. Since the subnet specific server group is not in the table, it then attempts to find a matching domain specific group, i.e. pok.ibm.com. The domain specific server group exists, so “pok.ibm.com” becomes the group of candidate servers. [0237]
  • The program selects a server from the group of candidate servers. Since only one server is contained in the group, it selects “sybil.pok.ibm.com”. If the installation program fails to connect to the server or fails to download the package image files from the server, then it removes the server from the group of candidate servers. Since the group contains no other servers, the program now determines whether a default group exists for the group of candidate servers. [0238]
  • A SDC default group is specified for the group of candidate servers, so group “default_us_north” becomes the new group of candidate servers. Before using the SDC default group, the program prompts the user with SDC default group message “Package not found on any US North server. Do you wish to use a default server?”[0239]
  • Assuming the user chooses to continue, then the program randomly selects a server from group “default_us_north”. It selects “milhouse.pok.ibm.com”. If the server fails similarly to “sybil.pok.ibm.com”, then it removes the server from the group of candidate servers. Since the group contains no other servers, the program again determines whether a default group exists for the group of candidate servers. In this case the default group is the master default staging server group (default_group=default). Therefore, the master default server group becomes the candidate server group. Before the new group is used, the user is prompted with a standard message. The master default server group is the last group attempted. [0240]
  • EXAMPLE 2 Using a Subnet Specific Server Group W/Associated SDC Default Group:
  • The client workstation has the following TCP/IP information: [0241]
    hostname vuozzo.pok.ibm.com
    i.p. 9.117.162.45
    address
    subnet 255.255.255.0
    mask
    subnet 9.117.162.0
  • The installation program first attempts to find a matching subnet specific group, i.e. “9.117.162.0”. Since the server group exists, group “9.117.162.0” becomes the candidate staging server group. The rest of the logic is similar to example 1. The next group of candidate servers is “default_us_north” followed by the master default group. [0242]
  • EXAMPLE 3 Using a Domain Specific Server Group Without Associated SDC Default Group
  • The client workstation has the following TCP/IP information: [0243]
    hostname sunny.fishkill.ibm.com
    i.p. 9.119.81.61
    address
    subnet 255.255.255.0
    mask
    subnet 9.119.81.0
  • The installation program first attempts to find a matching subnet specific group, i.e. “9.117.81.0”. Since the server group is not in the table, it then attempts to find a matching domain specific group, i.e. fishkill.ibm.com. Since the server group exists, group “fishkill.ibm.com” becomes the candidate staging server group. [0244]
  • The program randomly selects a staging server from the group of candidate servers. Since only one server is contained in the group, “flounder.fishkill.ibm.com” is selected. If the installation program fails to connect to the server or fails to download the package image files from the server, then it removes the server from the group of candidate servers and attempts to select another server. Since the group contains no other servers, the program now determines whether a default group exists for the group of candidate servers. [0245]
  • The master default server group is associated with group “fishkill.ibm.com” (default_group=default). Therefore, the master default server group becomes the group of candidate servers. Before the new group is used, the user is prompted with a standard message. The master default server group is the last group attempted. [0246]
  • EXAMPLE 4 Using the Master Default Group
  • The client workstation has the following TCP/IP information: [0247]
    hostname stumpy.endicott.ibm.com
    i.p. 9.115.61.34
    address
    subnet 255.255.255.0
    mask
    subnet 9.115.61.0
  • The installation unsuccessfully attempts to find subnet specific server group “9.115.61.0”, domain specific server group “endicott.ibm.com”, and a subnet range server group that contains subnet “9.115.61.0”. Since the user is not using a VPN, it also fails to find a VPN server group. The group of candidate servers automatically becomes the master default server group. That is the only server group attempted. [0248]
  • EXAMPLE 5 Using a Subnet Range Server Group W/Associated SDC Default Group
  • The client workstation has the following TCP/IP information: [0249]
    hostname vuozzo.southbury.ibm.com
    i.p. 9.117.10.45
    address
    subnet 255.255.255.0
    mask
    subnet 9.117.35.0
  • The installation program unsuccessfully attempts to find subnet specific group “9.117.10.0” and domain specific server group “southbury.ibm.com”. Since the subnet is included in subnet range server group “SUB-9.117.0.0-9.117.31.0”, the subnet range server group becomes the candidate staging server group. [0250]
  • EXAMPLE 6 Using a VPN Internal IP Address Range Server Group
  • The client workstation has the following TCP/IP information: [0251]
    hostname vuozzo.southbury.ibm.com
    i.p. 10.111.222.333
    address
    subnet 255.255.255.0
    mask
    subnet 10.111.222.0
    Internal 9.31.111.222
    IP
    address
  • Since the internal IP address is included in internal IP address range server group “VPN-9.31.0.0-9.31.255.255”, the internal IP address range server group becomes the candidate staging server group. [0252]
  • First Contact Server Override File [0253]
  • The first contact server contains the server redirection table. The default first contact server for this solution is the corporate intranet FTP server. The master web server for ISSI contains a file that allows an override to the client's definitions for: the first contact server, directory for the staging server redirection table, access protocol (NOS) and the userid and password. The override is accomplished by including the contents of the override file in each package parameter file sent to the client during package delivery. This facilitates automated maintenance of the first contact server definition. The format of this file is described in Table 4 “First Contact Server Override File Specification (frstcon.ovr)”. [0254]
  • Table: First Contact Server Override File Specification (frstcon.ovr) [0255]
  • The first contact server override file is located on the master Web server. It is appended to all package parameter files that are constructed by the ISSI CGI script. The contents of this file are compared to those in the clients WEB.INI file and if different, the WEB.INI file is updated to match this file. This provides the capability to update WEB.INI file settings without end-user intervention. [0256]
    [Stanza]/Key name Description
    ServerName= Name of the first contact server
    Nos= Network operating system to use to
    access the image server
    (NFS, FTP, NTS...); Overridden by package
    parameter file
    RemoteServerPath= The root directory on the server where
    the image server redirection table is
    located
    key= Flag indicating the encryption level of
    key1 and key2 (00=key1/key2 plain text,
    11= key1/key2 Level 1 encrypted)
    key1= Userid for access to the first contact
    server
    key2= Password for access to first contact
    server
  • Sample First Contact Server Override File: [0257]
  • servername=d02ftp001.southbury.ibm.com [0258]
  • nos=ftp [0259]
  • remoteserverpath=/home/ospwebc2/swdist/repos [0260]
  • key=11 [0261]
  • key1=xxxxx [0262]
  • key2=xxxxx [0263]
  • Table 5: Package Server Availability Tables [0264]
  • There will be one package server availability table per package. Each table will list each server that contains the package. The table naming convention is as follows: <pkgspec>_<nls>_<packaging version>_<package owner>_<OS>.tbl. [0265]
    [Stanza]/Key name Description
    ServerName1=TRUE First server containing package
    ServerName2=TRUE Second server containing package
    ... ...
    ServerNameN=TRUE Nth server containing package
  • Sample Package Server Availability Table—LFG97000_US[0266] 3_PLAT_W32.TBL
  • morticia.pok.ibm.com=TRUE [0267]
  • sybil.pok.ibm.com=TRUE [0268]
  • Staging Server [0269]
  • The staging server hosts the installation images of the software packages. These images are installed directly from the staging server via NFS or moved to the target via FTP or HTTP for local installation. [0270]
  • Source Image Location [0271]
  • The source image repository can be located (“rooted”) anywhere on the staging server. This location must correlate with the RemoteServerPath value stored in the image server redirection table for that staging server. Subordinate directories must follow the OSP Packaging Architecture. [0272]
  • Source Image Access [0273]
  • A userid and password pair is used to access the source images via FTP when the local staging option has been selected. [0274]
  • Directory Structure [0275]
  • The package repository specification is consistent with the OSP packaging directory structure. [0276]
  • Example Embodiments: [0277]
  • The electronic distribution and installation of software by “pull” requires that a recipient Client machine successfully connect to a provider Server (“Client” herein refers to a target machine requesting software and “Server” refers to a package, or image, staging server). It is also desirable that the system optimally handles a client connected via a Virtual Private Network (VPN) through an Internet Service Provider (ISP). Potentially the VPN client is traveling and connected via a mobile dial-up connection: [0278]
  • A. that is available on the network (functionally in operation, not “down”), [0279]
  • B. that contains the desired software/data package, and [0280]
  • C. that will authenticate permission to perform the operation. [0281]
  • In addition, it is desirable that the Server be: [0282]
  • A. reachable via a common point of contact, [0283]
  • B. capable of membership in a global layout of heterogeneously-populated peer Servers, [0284]
  • C. topologically near to the Client (or VPN Client), [0285]
  • D. randomly chosen for the purpose of load balancing from a group of topologically-equidistant peer Servers if such group exists, and [0286]
  • E. provide a fallback Server option or succession of options. [0287]
  • The IBM Standard Software Installer (henceforth ISSI) was developed and is frequently enhanced to meet these needs. ISSI does not require that the Client be registered to a specific server; rather, an ISSI client need only visit a central web site to select a software package for download and installation. Upon selection of a specific software package the underlying logic of ISSI will: [0288]
  • A. determine the location of the Client in the network topology, [0289]
  • B. create a list (candidate server table) of the names of potential Servers prioritized and grouped by various parameters such as topological-nearness, [0290]
  • C. retrieve a list (package server availability table) of the names of Servers that actually are populated with the desired package, [0291]
  • D. filter the candidate server table by eliminating those that are not also found in the package server availability table, [0292]
  • E. choose a Server from the highest priority grouping in the filtered candidate server table, and then attempt a delivery and installation. In the event of a failure (possibly due to the Server not be available on the network) an alternative Server is chosen from the same Server grouping (if one is available, or from the next lower priority Server grouping if not) and the delivery re-attempted. If repeated failures and the associated invalidation of those Servers exhaust the candidate server table, then a master “default server group” list is used. In the forgoing, choosing is accomplished by any effective algorithm known including “pseudo” randomly. The logic described in this step forms the central idea of this disclosure. [0293]
  • Note: the package server availability table is automatically updated on a regular basis by an agent that queries the set of known Servers for package availability. [0294]
  • The specific invention disclosed is the inclusion of the hierarchy of Server groupings into the existing ISSI architecture. An example of a Server grouping hierarchy, in order of decreasing priority, is: [0295]
  • Server Grouping Hierarchy: [0296]
  • A. Building 052 (subnet) [0297]
  • B. Poughkeepsie site (domain) [0298]
  • C. New York State [0299]
  • D. North-Eastern Region [0300]
  • E. East Coast [0301]
  • F. United States [0302]
  • G. Default [0303]
  • The advantage of the Server grouping hierarchy method is that it enables the possibility of rapidly assembled and easily managed aggregation of Servers into groups that can be ranked and exploited by ISSI using topology-sensitive and package distribution-sensitive logic. [0304]
  • The master web server contains a set of tables that are used to identify the Server to be used for a package installation. The first table used is the Server redirection table. The table, which defines the global Server topology, specifies the following: [0305]
  • Server Redirection Table [0306]
  • A. Each ISSI Server. [0307]
  • B. Domain specific server groups. [0308]
  • C. Subnet specific server groups. [0309]
  • D. Subnet range server groups. [0310]
  • E. VPN internal IP Address range server groups (referred to as VPN server groups). [0311]
  • F. Locale specific default server groups. [0312]
  • G. A master default server group. [0313]
  • H. A list of default subnet masks. [0314]
  • The table is maintained by the Service Provider with information supplied by service delivery center (locale-specific, or “SDC”) representatives. The table is used by the Service Provider's installation programs to identify the server to be used for a specific package installation. The decision is based on the target machine's TCP/IP domain name or the subnet portion of its IP address or VPN information. In general, the staging server redirection algorithm uses the domain, subnet or VPN information to identify a server group that is geographically close to the client machine. It randomly selects a server from that server group to perform the installation. Locale-specific representatives provide the Service Provider with the staging server and server group information required to define their locale's topology. For locations that define TCP/IP domains based on specific geographical locations, domain specific server groups are the preferred method for identifying the candidate servers to be used for deliveries to their clients. For locations were TCP/IP domains are spread over wide or scattered geographical areas, subnet specific server and subnet range groups are used (in that order). Subnet specific server groups may represent a class B or Class C subnet. For remote users connected to an Internet Service Provider (ISP) network accessing the corporate network via a VPN client, VPN server groups are used. Locale-specific representatives may also define a locale-specific default server group. The locale-specific default server group is associated with the corresponding locale-specific domain, subnet, subnet range, or VPN server groups. It is used when none of the servers in a domain, subnet, subnet range, or VPN server group can be used to deliver a package. The locale-specific representative may also specify the “SDC default group message” that is displayed to the customer before a locale-specific default server group is used. When defining the locale-specific default group, the locale-specific representative specifies whether the master default server group is to be used in the case that none of the servers in the locale-specific default group can be used to install the package. [0315]
  • The table contains a special server group, the master default server group, which is used in two circumstances: (1) when no domain, subnet or VPN group matches a client's IP/VPN information, or (2) when no server in a locale-specific default server group can be used to deliver a package. The master default server group is guaranteed to contain at least one Service Provider owned server that contains all production ISSI packages. [0316]
  • In addition to the image server redirection table, the master web server contains a number of package server availability tables. The server contains one table per ISSI package. Each table contains the names of the staging servers that contain the package. The tables are generated by an agent which periodically connects to every staging server to discover its packages. In general, the staging server redirection algorithm uses the corresponding package server availability table to identify the servers within a selected server group that contain the respective package. [0317]
  • Preferred Embodiment of a Server Redirection Algorithm: [0318]
  • The Server redirection algorithm follows: [0319]
  • 1. Obtain the Client machine's TCP/IP address, subnet mask and domain. Using the IP address and subnet mask, determine the Client machine's [0320] subnet 501.
  • 2. Retrieve [0321] 502 the Server redirection table 503 and the corresponding package server availability table 504 from the first contact server.
  • 3. Using the Server redirection table [0322] 503, identify the server group to be used as the “group of candidate servers”. The following options are attempted in the order specified below. Once a successful options is found, proceed with step 4:
  • a. Look for a matching subnet [0323] specific server group 505.
  • b. Look for a subnet range server group that includes target machine's [0324] subnet 511.
  • c. Look for a domain [0325] specific server group 507.
  • d. Attempt to query the MTS Global Net Client (remote dialup modem client application) for the target machine's [0326] internal IP address 750. If an internal address is obtained, look for a VPN internal IP address range server group that includes the target machine's internal IP address 752.
  • e. Request the internal IP address for the target machine from the servers listed in section IPAddrQueryServers of the ISSI routing table (i.e., attempt each server until the request is satisfied) [0327] 753. Details of the request are explained in section “Redirecting VPN Clients” (below). If an internal address is obtained, look for a VPN internal IP address range server group that includes the target machine's internal IP address 757.
  • f. Retrieve [0328] 704 the list of default subnet masks found in the routing table. For each default subnet mask, use the target machine's TCP/IP address and default subnet mask to create a “class B subnet” 708. Look for a corresponding subnet specific server group. If none is found 712, look for a subnet range server group 709 that includes the target machines class B subnet. If none is found, then use the master default server group 509.
  • 4. Using the package server availability table [0329] 504, identify the Servers in the group of candidate servers that contain the package. Remove Servers that do not contain the package from the group of candidate servers 610.
  • 5. Randomly choose a Server from the group of [0330] candidate servers 611. If a failure occurs connecting to the Server or downloading the package image from the Server, then the chosen Server is excluded from the group of candidate servers 612. If the group of candidate servers is exhausted 620, then proceed with the next step 614. Otherwise, repeat this step 611.
  • 6. If none of the Servers in the group of candidate servers can be used to successfully install the [0331] product 615, then determine the type of default server group specified for the group of candidate servers (by inspecting keyword “default_group”) 617. Proceed as follows depending on the type of default server group specified:
  • a) If no default server group is specified (“default_group=NONE”), then the installation can not be performed [0332] 616. If the group of candidate servers is the master default group, then no default server group will be specified for it. Note that the master default server group is the last server group that can possibly be attempted, so it must be specified with no default group.
  • b) If a locale-specific default server group is specified (“default_group=default_<SDC reference>”), then repeat steps 4-6 [0333] 617 with the locale-specific default server group as the group of candidate servers. If a locale-specific default group message is available, the message is first displayed to inform the user than a locale-specific default group is about to be used.
  • c) If the master default server group is specified (“default_group=default”), then repeat steps 4-6 [0334] 617 with the master default server group as the group of candidate servers. A standard message is first displayed to inform the user that the master default group is about to be used.
  • Redirecting VPN Clients [0335]
  • Redirection of Virtual Private Network clients is accomplished by: [0336]
  • (1) obtaining the client's internal IP address, and (2) identifying a VPN internal IP address range server group that includes the internal IP address. [0337]
  • The ISSI client code uses two methods to discover the client's internal IP address. The first method involves communicating with the MTS Global Net Client, IBM's standard Client for e-business VPN client, via the [0338] MTS API 750. The second method involves requesting the internal IP address from servers listed in section IPAddrQueryServers of the ISSI routing table 753. The server requests are made by sending an HTTP transaction to either a Web page containing a server side include or a CGI script. The server request method and the corresponding Web page or CGI script are specified in the ISSI routing table for each server. The server side include and the CGI script query environment variable REMOTE_ADDR, which contains the client's IP address as viewed by the Web server, and returns the value to the ISSI client code. The ISSI client code compares the “candidate” VPN internal IP address to the target machine's “locally obtained” IP address 751/755. If the values are different, then the ISSI client code looks for a VPN internal IP address range server group that includes the VPN internal IP address 752/756.
  • While the invention has been described in detail herein in accordance with certain preferred embodiments thereof, many modifications and changes therein may be effected by those skilled in the art. Accordingly, it is intended by the appended claims to cover all such modifications and changes as fall within the true spirit and scope of the invention. [0339]
  • The present invention can be included in an article of manufacture (e.g., one or more computer program products) having, for instance, computer usable media. The media has embodied therein, for instance, computer readable program code means for providing and facilitating the capabilities of the present invention. The article of manufacture can be included as a part of a computer system or sold separately. [0340]
  • Additionally, at least one program storage device readable by a machine, tangibly embodying at least one program of instructions executable by the machine to perform the capabilities of the present invention can be provided. [0341]
  • The flow diagrams depicted herein are just examples. There may be many variations to these diagrams or the steps (or operations) described therein without departing from the spirit of the invention. For instance, the steps may be performed in a differing order, or steps may be added, deleted or modified. All of these variations are considered a part of the claimed invention. [0342]
  • Although preferred embodiments have been depicted and described in detail herein, it will be apparent to those skilled in the relevant art that various modifications, additions, substitutions and the like can be made without departing from the spirit of the invention and these are therefore considered to be within the scope of the invention as defined in the following claims. [0343]

Claims (20)

What is claimed is:
1. A method for redirecting a client request for a package to a server having the package, the method comprising the steps of:
receiving a request from a client computer to download a package of digital data;
querying a client application running on the client for client location information;
if client location information is received, using the client location information to select a server for downloading the package; and
downloading the package from the selected server to the client computer.
2. The method according to claim 1 wherein using the client location information comprises the further steps of:
receiving an identifier from the requesting client computer, the identifier identifying the requesting client computer;
retrieving server redirection information from storage, the server redirection information comprising a representation of a plurality of groups of candidate server identities, each group of candidate server identities comprising one or more candidate server identities;
retrieving availability information from storage, the availability information comprising the identities of servers having the specified package available for downloading;
selecting a preferred group of the one or more groups of candidate server identities, the preferred group being selected according to predetermined criteria; and
downloading the specified package to the requesting client computer from a first candidate server identified in the preferred group of servers if the first candidate server is a server identified in the availability information.
3. The method according to claim 2 comprising the further step of downloading the specified package to the requesting client computer from a second candidate server identified in a default group of servers if the second candidate server is a server identified in the availability information and the specified package can not be downloaded from the first candidate server.
4. The method according to claim 3 comprising the further step of downloading the specified package to the requesting client computer from a third candidate server identified in a master default group of servers if the third candidate server is a server identified in the availability information and the specified package can not be downloaded from the second candidate server.
5. The method according to claim 1 wherein the client location information is any one of an internal IP address, telephone area code, a postal zip code or Global Positioning System (GPS) data.
6. The method according to claim 1 wherein the client application is a telephone modem dial-up application.
7. The method according to claim 1 wherein the querying a client application step comprises the further steps of:
retrieving the client internal IP address from a list of servers in a routing table;
using the internal IP address if it is equal to a locally obtained IP address; and
using an internal IP address range server group that includes the internal IP address if the internal IP address is not equal to the locally obtained IP address.
8. A computer program product for redirecting a client request for a package to a server having the package, the computer program product comprising:
a storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising:
receiving a request from a client computer to download a package of digital data;
querying a client application running on the client for client location information;
if client location information is received, using the client location information to select a server for downloading the package; and
downloading the package from the selected server to the client computer.
9. The computer program product according to claim 8 wherein using the client location information comprises the further steps of:
receiving an identifier from the requesting client computer, the identifier identifying the requesting client computer;
retrieving server redirection information from storage, the server redirection information comprising a representation of a plurality of groups of candidate server identities, each group of candidate server identities comprising one or more candidate server identities;
retrieving availability information from storage, the availability information comprising the identities of servers having the specified package available for downloading;
selecting a preferred group of the one or more groups of candidate server identities, the preferred group being selected according to predetermined criteria; and
downloading the specified package to the requesting client computer from a first candidate server identified in the preferred group of servers if the first candidate server is a server identified in the availability information.
10. The computer program product according to claim 9 comprising the further step of downloading the specified package to the requesting client computer from a second candidate server identified in a default group of servers if the second candidate server is a server identified in the availability information and the specified package can not be downloaded from the first candidate server.
11. The computer program product according to claim 10 comprising the further step of downloading the specified package to the requesting client computer from a third candidate server identified in a master default group of servers if the third candidate server is a server identified in the availability information and the specified package can not be downloaded from the second candidate server.
12. The computer program product according to claim 8 wherein the client location information is any one of an internal IP address, telephone area code, a postal zip code or Global Positioning System (GPS) data.
13. The computer program product according to claim 8 wherein the client application is a telephone modem dial-up application.
14. The computer program product according to claim 8 wherein the querying a client application step comprises the further steps of:
retrieving the client internal IP address from a list of servers in a routing table;
using the internal IP address if it is equal to a locally obtained IP address; and
using an internal IP address range server group that includes the internal IP address if the internal IP address is not equal to the locally obtained IP address.
15. A system for redirecting a client request for a package to a server having the package, the system comprising:
a network;
a client system in communication with the network;
a server system in communication with the network, wherein said server system includes instructions to execute a method comprising:
receiving a request from a client computer to download a package of digital data;
querying a client application running on the client for client location information;
if client location information is received, using the client location information to select a server for downloading the package; and
downloading the package from the selected server to the client computer.
16. The system according to claim 15 wherein the step of using the client location information comprises the further steps of:
receiving an identifier from the requesting client computer, the identifier identifying the requesting client computer;
retrieving server redirection information from storage, the server redirection information comprising a representation of a plurality of groups of candidate server identities, each group of candidate server identities comprising one or more candidate server identities;
retrieving availability information from storage, the availability information comprising the identities of servers having the specified package available for downloading;
selecting a preferred group of the one or more groups of candidate server identities, the preferred group being selected according to predetermined criteria; and
downloading the specified package to the requesting client computer from a first candidate server identified in the preferred group of servers if the first candidate server is a server identified in the availability information.
17. The system according to claim 16 wherein the method comprises the further step of downloading the specified package to the requesting client computer from a second candidate server identified in a default group of servers if the second candidate server is a server identified in the availability information and the specified package can not be downloaded from the first candidate server.
18. The system according to claim 17 wherein the method comprises the further step of downloading the specified package to the requesting client computer from a third candidate server identified in a master default group of servers if the third candidate server is a server identified in the availability information and the specified package can not be downloaded from the second candidate server.
19. The system according to claim 16 wherein the client location information is any one of an internal IP address, telephone area code, a postal zip code or Global Positioning System (GPS) data.
20. The system according to claim 16 wherein the querying a client application step comprises the further steps of:
retrieving the client internal IP address from a list of servers in a routing table;
using the internal IP address if it is equal to a locally obtained IP address; and
using an internal IP address range server group that includes the internal IP address if the internal IP address is not equal to the locally obtained IP address.
US10/738,065 2000-05-05 2003-12-17 Selecting a preferred server from groups of servers based on geographical information obtained from the requesting client Abandoned US20040133626A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/738,065 US20040133626A1 (en) 2000-05-05 2003-12-17 Selecting a preferred server from groups of servers based on geographical information obtained from the requesting client

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/565,400 US6928481B1 (en) 2000-05-05 2000-05-05 Method, apparatus and program to optimize the network distribution of digital information based on hierarchical grouping of server topology and code distribution
US10/738,065 US20040133626A1 (en) 2000-05-05 2003-12-17 Selecting a preferred server from groups of servers based on geographical information obtained from the requesting client

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US09/565,400 Continuation-In-Part US6928481B1 (en) 2000-05-05 2000-05-05 Method, apparatus and program to optimize the network distribution of digital information based on hierarchical grouping of server topology and code distribution

Publications (1)

Publication Number Publication Date
US20040133626A1 true US20040133626A1 (en) 2004-07-08

Family

ID=24258438

Family Applications (2)

Application Number Title Priority Date Filing Date
US09/565,400 Expired - Fee Related US6928481B1 (en) 2000-05-05 2000-05-05 Method, apparatus and program to optimize the network distribution of digital information based on hierarchical grouping of server topology and code distribution
US10/738,065 Abandoned US20040133626A1 (en) 2000-05-05 2003-12-17 Selecting a preferred server from groups of servers based on geographical information obtained from the requesting client

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US09/565,400 Expired - Fee Related US6928481B1 (en) 2000-05-05 2000-05-05 Method, apparatus and program to optimize the network distribution of digital information based on hierarchical grouping of server topology and code distribution

Country Status (3)

Country Link
US (2) US6928481B1 (en)
JP (1) JP2002049546A (en)
KR (1) KR100470851B1 (en)

Cited By (84)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040018844A1 (en) * 2002-07-03 2004-01-29 International Business Machines Corporation Managing resources for information delivery in a large network
US20040199600A1 (en) * 2001-10-16 2004-10-07 Dorundo Alan D. Method and apparatus for program installation in a modular network
US20060190529A1 (en) * 2003-07-01 2006-08-24 T & D Corporation Multipurpose semiconductor integrated circuit device
US20060277265A1 (en) * 2004-12-03 2006-12-07 Seven Networks International Oy Provisioning of e-mail settings for a mobile terminal
US7254634B1 (en) * 2002-03-08 2007-08-07 Akamai Technologies, Inc. Managing web tier session state objects in a content delivery network (CDN)
US20080052341A1 (en) * 2006-08-24 2008-02-28 Goggin Sean A System and method for processing data associated with a transmission in a data communication system
US20080059646A1 (en) * 2006-08-31 2008-03-06 Microsoft Corporation Video-switched delivery of media content using an established media-delivery infrastructure
US7796742B1 (en) 2005-04-21 2010-09-14 Seven Networks, Inc. Systems and methods for simplified provisioning
US20110093554A1 (en) * 2009-10-16 2011-04-21 Samsung Electronics Co., Ltd. Brokerage server for supporting fast data access for user terminal, method of operating brokerage server, user terminal and method of operating user terminal
US20110202912A1 (en) * 2010-02-16 2011-08-18 Akinori Itoh Mediation apparatus, installation system, installation method, and installation program
US8010082B2 (en) 2004-10-20 2011-08-30 Seven Networks, Inc. Flexible billing architecture
US8069166B2 (en) 2005-08-01 2011-11-29 Seven Networks, Inc. Managing user-to-user contact with inferred presence information
US8078158B2 (en) 2008-06-26 2011-12-13 Seven Networks, Inc. Provisioning applications for a mobile device
US8107921B2 (en) 2008-01-11 2012-01-31 Seven Networks, Inc. Mobile virtual network operator
US8127342B2 (en) 2002-01-08 2012-02-28 Seven Networks, Inc. Secure end-to-end transport through intermediary nodes
US8166164B1 (en) 2010-11-01 2012-04-24 Seven Networks, Inc. Application and network-based long poll request detection and cacheability assessment therefor
WO2012054378A1 (en) * 2010-10-20 2012-04-26 Quova, Inc. System and method for managing an internet domain based on the geographic location of an accessing user
US8190701B2 (en) 2010-11-01 2012-05-29 Seven Networks, Inc. Cache defeat detection and caching of content addressed by identifiers intended to defeat cache
US8209709B2 (en) 2005-03-14 2012-06-26 Seven Networks, Inc. Cross-platform event engine
US20120191835A1 (en) * 2011-01-21 2012-07-26 1E Limited Locating and Retrieving Packages Over a Network
US8316098B2 (en) 2011-04-19 2012-11-20 Seven Networks Inc. Social caching for device resource sharing and management
US8326985B2 (en) 2010-11-01 2012-12-04 Seven Networks, Inc. Distributed management of keep-alive message signaling for mobile network resource conservation and optimization
US8364181B2 (en) 2007-12-10 2013-01-29 Seven Networks, Inc. Electronic-mail filtering for mobile devices
US8412675B2 (en) 2005-08-01 2013-04-02 Seven Networks, Inc. Context aware data presentation
US8417823B2 (en) 2010-11-22 2013-04-09 Seven Network, Inc. Aligning data transfer to optimize connections established for transmission over a wireless network
US8438633B1 (en) 2005-04-21 2013-05-07 Seven Networks, Inc. Flexible real-time inbox access
EP2592550A1 (en) * 2011-11-11 2013-05-15 Alcatel Lucent Distributed mapping function for large scale media clouds
US8468126B2 (en) 2005-08-01 2013-06-18 Seven Networks, Inc. Publishing data in an information community
US8484314B2 (en) 2010-11-01 2013-07-09 Seven Networks, Inc. Distributed caching in a wireless network of content delivered for a mobile application over a long-held request
US8621075B2 (en) 2011-04-27 2013-12-31 Seven Metworks, Inc. Detecting and preserving state for satisfying application requests in a distributed proxy and cache system
US20140006640A1 (en) * 2012-06-28 2014-01-02 Alcatel-Lucent Canada, Inc. Sticky ip prioritization based on ip pool and subnet by dhcp
US8693494B2 (en) 2007-06-01 2014-04-08 Seven Networks, Inc. Polling
US8700728B2 (en) 2010-11-01 2014-04-15 Seven Networks, Inc. Cache defeat detection and caching of content addressed by identifiers intended to defeat cache
US8750123B1 (en) 2013-03-11 2014-06-10 Seven Networks, Inc. Mobile device equipped with mobile network congestion recognition to make intelligent decisions regarding connecting to an operator network
US8761756B2 (en) 2005-06-21 2014-06-24 Seven Networks International Oy Maintaining an IP connection in a mobile network
US8774844B2 (en) 2007-06-01 2014-07-08 Seven Networks, Inc. Integrated messaging
US8775631B2 (en) 2012-07-13 2014-07-08 Seven Networks, Inc. Dynamic bandwidth adjustment for browsing or streaming activity in a wireless network based on prediction of user behavior when interacting with mobile applications
US8787947B2 (en) 2008-06-18 2014-07-22 Seven Networks, Inc. Application discovery on mobile devices
US8793305B2 (en) 2007-12-13 2014-07-29 Seven Networks, Inc. Content delivery to a mobile device from a content service
US8799410B2 (en) 2008-01-28 2014-08-05 Seven Networks, Inc. System and method of a relay server for managing communications and notification between a mobile device and a web access server
US8805334B2 (en) 2004-11-22 2014-08-12 Seven Networks, Inc. Maintaining mobile terminal information for secure communications
US8812695B2 (en) 2012-04-09 2014-08-19 Seven Networks, Inc. Method and system for management of a virtual network connection without heartbeat messages
US8832228B2 (en) 2011-04-27 2014-09-09 Seven Networks, Inc. System and method for making requests on behalf of a mobile device based on atomic processes for mobile network traffic relief
US8838783B2 (en) 2010-07-26 2014-09-16 Seven Networks, Inc. Distributed caching for resource and mobile network traffic management
US8843153B2 (en) 2010-11-01 2014-09-23 Seven Networks, Inc. Mobile traffic categorization and policy for network use optimization while preserving user experience
US8849902B2 (en) 2008-01-25 2014-09-30 Seven Networks, Inc. System for providing policy based content service in a mobile network
US8861354B2 (en) 2011-12-14 2014-10-14 Seven Networks, Inc. Hierarchies and categories for management and deployment of policies for distributed wireless traffic optimization
US8868753B2 (en) 2011-12-06 2014-10-21 Seven Networks, Inc. System of redundantly clustered machines to provide failover mechanisms for mobile traffic management and network resource conservation
US8874761B2 (en) 2013-01-25 2014-10-28 Seven Networks, Inc. Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols
US8886176B2 (en) 2010-07-26 2014-11-11 Seven Networks, Inc. Mobile application traffic optimization
US8903954B2 (en) 2010-11-22 2014-12-02 Seven Networks, Inc. Optimization of resource polling intervals to satisfy mobile device requests
US8909759B2 (en) 2008-10-10 2014-12-09 Seven Networks, Inc. Bandwidth measurement
US8909202B2 (en) 2012-01-05 2014-12-09 Seven Networks, Inc. Detection and management of user interactions with foreground applications on a mobile device in distributed caching
WO2014200440A1 (en) * 2013-06-14 2014-12-18 T-Data Systems (S) Pte Ltd System and method for uploading, showcasing and selling news footage
US8918503B2 (en) 2011-12-06 2014-12-23 Seven Networks, Inc. Optimization of mobile traffic directed to private networks and operator configurability thereof
USRE45348E1 (en) 2004-10-20 2015-01-20 Seven Networks, Inc. Method and apparatus for intercepting events in a communication system
US8984581B2 (en) 2011-07-27 2015-03-17 Seven Networks, Inc. Monitoring mobile application activities for malicious traffic on a mobile device
US9002828B2 (en) 2007-12-13 2015-04-07 Seven Networks, Inc. Predictive content delivery
US9009250B2 (en) 2011-12-07 2015-04-14 Seven Networks, Inc. Flexible and dynamic integration schemas of a traffic management system with various network operators for network traffic alleviation
US9021021B2 (en) 2011-12-14 2015-04-28 Seven Networks, Inc. Mobile network reporting and usage analytics system and method aggregated using a distributed traffic optimization system
US9043433B2 (en) 2010-07-26 2015-05-26 Seven Networks, Inc. Mobile network traffic coordination across multiple applications
US9043731B2 (en) 2010-03-30 2015-05-26 Seven Networks, Inc. 3D mobile user interface with configurable workspace management
US9055102B2 (en) 2006-02-27 2015-06-09 Seven Networks, Inc. Location-based operations and messaging
US9060032B2 (en) 2010-11-01 2015-06-16 Seven Networks, Inc. Selective data compression by a distributed traffic management system to reduce mobile data traffic and signaling traffic
US9065765B2 (en) 2013-07-22 2015-06-23 Seven Networks, Inc. Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network
US9077630B2 (en) 2010-07-26 2015-07-07 Seven Networks, Inc. Distributed implementation of dynamic wireless traffic policy
US9161258B2 (en) 2012-10-24 2015-10-13 Seven Networks, Llc Optimized and selective management of policy deployment to mobile clients in a congested network to prevent further aggravation of network congestion
US9173128B2 (en) 2011-12-07 2015-10-27 Seven Networks, Llc Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol
US9203864B2 (en) 2012-02-02 2015-12-01 Seven Networks, Llc Dynamic categorization of applications for network access in a mobile network
US9241314B2 (en) 2013-01-23 2016-01-19 Seven Networks, Llc Mobile device with application or context aware fast dormancy
US9251193B2 (en) 2003-01-08 2016-02-02 Seven Networks, Llc Extending user relationships
US9275163B2 (en) 2010-11-01 2016-03-01 Seven Networks, Llc Request and response characteristics based adaptation of distributed caching in a mobile network
US9307493B2 (en) 2012-12-20 2016-04-05 Seven Networks, Llc Systems and methods for application management of mobile device radio state promotion and demotion
US9325662B2 (en) 2011-01-07 2016-04-26 Seven Networks, Llc System and method for reduction of mobile network traffic used for domain name system (DNS) queries
US9326189B2 (en) 2012-02-03 2016-04-26 Seven Networks, Llc User as an end point for profiling and optimizing the delivery of content and data in a wireless network
US9330196B2 (en) 2010-11-01 2016-05-03 Seven Networks, Llc Wireless traffic management system cache optimization using http headers
US9832095B2 (en) 2011-12-14 2017-11-28 Seven Networks, Llc Operation modes for mobile traffic optimization and concurrent management of optimized and non-optimized traffic
US10223397B1 (en) * 2015-03-13 2019-03-05 Snap Inc. Social graph based co-location of network users
US10263899B2 (en) 2012-04-10 2019-04-16 Seven Networks, Llc Enhanced customer service for mobile carriers using real-time and historical mobile application and traffic or optimization data associated with mobile devices in a mobile network
US11106449B2 (en) * 2017-10-26 2021-08-31 Robert Bosch Gmbh Method for updating software components of a network subscriber of a network
US11197152B2 (en) * 2019-12-12 2021-12-07 Hewlett Packard Enterprise Development Lp Utilization of component group tables in a computing network
US11418585B1 (en) * 2021-09-01 2022-08-16 Netflow, UAB Optimized server picking in a virtual private network
US20230239344A1 (en) * 2022-01-21 2023-07-27 Dell Products, L.P. Distributed network address discovery in non-uniform networks
EP4318218A1 (en) * 2022-08-02 2024-02-07 Red Bend Ltd. Intermediate device for updating a client using a plurality of servers

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8554932B1 (en) 1999-11-12 2013-10-08 Jpmorgan Chase Bank, N.A. Data exchange management system and method
US7886023B1 (en) * 2000-01-21 2011-02-08 Cisco Technology, Inc. Method and apparatus for a minimalist approach to implementing server selection
US6928481B1 (en) * 2000-05-05 2005-08-09 International Business Machines Corporation Method, apparatus and program to optimize the network distribution of digital information based on hierarchical grouping of server topology and code distribution
US20080005275A1 (en) * 2000-06-02 2008-01-03 Econnectix, Llc Method and apparatus for managing location information in a network separate from the data to which the location information pertains
US8527639B1 (en) 2000-08-18 2013-09-03 Cisco Technology, Inc. Content server selection for accessing content in a content distribution network
FR2839225B1 (en) * 2002-04-24 2008-05-09 Canon Kk METHOD AND DEVICE FOR PROCESSING ELECTRONIC TRANSACTION
JP2003323364A (en) * 2002-05-08 2003-11-14 Canon Inc Network device management device and method, computer program and computer-readable storage medium
JP2006085620A (en) * 2004-09-17 2006-03-30 Ricoh Co Ltd Electronic apparatus system, its electronic apparatus, control method, program and recording medium
US20080294728A1 (en) * 2007-05-22 2008-11-27 Microsoft Corporation Service Discovery for Electronic Messaging Clients
US8756318B1 (en) * 2007-10-09 2014-06-17 Microsoft Corporation Software deployment using client location
US8886772B2 (en) 2008-07-31 2014-11-11 Koninklijke Kpn N.V. Method and system for remote device management
BRPI1015020B1 (en) * 2009-04-16 2020-04-22 Emerson Electric Co airtight glass seal assembly for metal and method of manufacturing airtight glass seal assembly for metal
JP5174747B2 (en) * 2009-06-18 2013-04-03 株式会社日立製作所 Computer system and management device
EP3232610B1 (en) 2010-03-22 2020-03-04 Koninklijke KPN N.V. System and method for handling a configuration request
US20140331209A1 (en) * 2013-05-02 2014-11-06 Amazon Technologies, Inc. Program Testing Service
US10725890B1 (en) 2017-07-12 2020-07-28 Amazon Technologies, Inc. Program testing service

Citations (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5470233A (en) * 1994-03-17 1995-11-28 Arkenstone, Inc. System and method for tracking a pedestrian
US5774668A (en) * 1995-06-07 1998-06-30 Microsoft Corporation System for on-line service in which gateway computer uses service map which includes loading condition of servers broadcasted by application servers for load balancing
US5862339A (en) * 1996-07-09 1999-01-19 Webtv Networks, Inc. Client connects to an internet access provider using algorithm downloaded from a central server based upon client's desired criteria after disconnected from the server
US5923306A (en) * 1993-06-24 1999-07-13 Nintendo Co. Ltd. Hotel-based video game and communication system
US5933835A (en) * 1995-09-29 1999-08-03 Intel Corporation Method and apparatus for managing multimedia data files in a computer network by streaming data files into separate streams based on file attributes
US6014651A (en) * 1993-11-04 2000-01-11 Crawford; Christopher M. Commercial online software distribution systems and methods using encryption for security
US6047323A (en) * 1995-10-19 2000-04-04 Hewlett-Packard Company Creation and migration of distributed streams in clusters of networked computers
US6049892A (en) * 1997-02-24 2000-04-11 Ethos Software Corporation Process and apparatus for downloading data from a server computer to a client computer
US6070191A (en) * 1997-10-17 2000-05-30 Lucent Technologies Inc. Data distribution techniques for load-balanced fault-tolerant web access
US6078960A (en) * 1998-07-03 2000-06-20 Acceleration Software International Corporation Client-side load-balancing in client server network
US6112239A (en) * 1997-06-18 2000-08-29 Intervu, Inc System and method for server-side optimization of data delivery on a distributed computer network
US6173322B1 (en) * 1997-06-05 2001-01-09 Silicon Graphics, Inc. Network request distribution based on static rules and dynamic performance data
US6243379B1 (en) * 1997-04-04 2001-06-05 Ramp Networks, Inc. Connection and packet level multiplexing between network links
US6249801B1 (en) * 1998-07-15 2001-06-19 Radware Ltd. Load balancing
US6304967B1 (en) * 1997-12-10 2001-10-16 Rmc Software, Inc. System and architecture for distributing, monitoring, and managing information requests on a computer network
US6314465B1 (en) * 1999-03-11 2001-11-06 Lucent Technologies Inc. Method and apparatus for load sharing on a wide area network
US6339785B1 (en) * 1999-11-24 2002-01-15 Idan Feigenbaum Multi-server file download
US6389448B1 (en) * 1999-12-06 2002-05-14 Warp Solutions, Inc. System and method for load balancing
US6411991B1 (en) * 1998-09-25 2002-06-25 Sprint Communications Company L.P. Geographic data replication system and method for a network
US20020083344A1 (en) * 2000-12-21 2002-06-27 Vairavan Kannan P. Integrated intelligent inter/intra networking device
US6415323B1 (en) * 1999-09-03 2002-07-02 Fastforward Networks Proximity-based redirection system for robust and scalable service-node location in an internetwork
US6449647B1 (en) * 1997-08-01 2002-09-10 Cisco Systems, Inc. Content-aware switching of network packets
US6516350B1 (en) * 1999-06-17 2003-02-04 International Business Machines Corporation Self-regulated resource management of distributed computer resources
US6557039B1 (en) * 1998-11-13 2003-04-29 The Chase Manhattan Bank System and method for managing information retrievals from distributed archives
US6587959B1 (en) * 1999-07-28 2003-07-01 Emc Corporation System and method for addressing scheme for use on clusters
US6598077B2 (en) * 1999-12-06 2003-07-22 Warp Solutions, Inc. System and method for dynamic content routing
US6643704B1 (en) * 1999-03-23 2003-11-04 Koninklijke Philips Electronics N.V. Data network load management
US6665702B1 (en) * 1998-07-15 2003-12-16 Radware Ltd. Load balancing
US6693878B1 (en) * 1999-10-15 2004-02-17 Cisco Technology, Inc. Technique and apparatus for using node ID as virtual private network (VPN) identifiers
US6928481B1 (en) * 2000-05-05 2005-08-09 International Business Machines Corporation Method, apparatus and program to optimize the network distribution of digital information based on hierarchical grouping of server topology and code distribution
US6963914B1 (en) * 1998-09-01 2005-11-08 Lucent Technologies Inc. Method and apparatus for retrieving a network file using a logical reference

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6240462B1 (en) * 1997-10-14 2001-05-29 At&T System for providing enhanced grade of service for connections over a large network

Patent Citations (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5923306A (en) * 1993-06-24 1999-07-13 Nintendo Co. Ltd. Hotel-based video game and communication system
US6014651A (en) * 1993-11-04 2000-01-11 Crawford; Christopher M. Commercial online software distribution systems and methods using encryption for security
US5470233A (en) * 1994-03-17 1995-11-28 Arkenstone, Inc. System and method for tracking a pedestrian
US5774668A (en) * 1995-06-07 1998-06-30 Microsoft Corporation System for on-line service in which gateway computer uses service map which includes loading condition of servers broadcasted by application servers for load balancing
US5951694A (en) * 1995-06-07 1999-09-14 Microsoft Corporation Method of redirecting a client service session to a second application server without interrupting the session by forwarding service-specific information to the second server
US5933835A (en) * 1995-09-29 1999-08-03 Intel Corporation Method and apparatus for managing multimedia data files in a computer network by streaming data files into separate streams based on file attributes
US6047323A (en) * 1995-10-19 2000-04-04 Hewlett-Packard Company Creation and migration of distributed streams in clusters of networked computers
US5862339A (en) * 1996-07-09 1999-01-19 Webtv Networks, Inc. Client connects to an internet access provider using algorithm downloaded from a central server based upon client's desired criteria after disconnected from the server
US6049892A (en) * 1997-02-24 2000-04-11 Ethos Software Corporation Process and apparatus for downloading data from a server computer to a client computer
US6049892C1 (en) * 1997-02-24 2002-06-04 Ethos Software Corp Process and apparatus for downloading data from a server computer to a client computer
US6243379B1 (en) * 1997-04-04 2001-06-05 Ramp Networks, Inc. Connection and packet level multiplexing between network links
US6173322B1 (en) * 1997-06-05 2001-01-09 Silicon Graphics, Inc. Network request distribution based on static rules and dynamic performance data
US6112239A (en) * 1997-06-18 2000-08-29 Intervu, Inc System and method for server-side optimization of data delivery on a distributed computer network
US6449647B1 (en) * 1997-08-01 2002-09-10 Cisco Systems, Inc. Content-aware switching of network packets
US6070191A (en) * 1997-10-17 2000-05-30 Lucent Technologies Inc. Data distribution techniques for load-balanced fault-tolerant web access
US6304967B1 (en) * 1997-12-10 2001-10-16 Rmc Software, Inc. System and architecture for distributing, monitoring, and managing information requests on a computer network
US6078960A (en) * 1998-07-03 2000-06-20 Acceleration Software International Corporation Client-side load-balancing in client server network
US6249801B1 (en) * 1998-07-15 2001-06-19 Radware Ltd. Load balancing
US6665702B1 (en) * 1998-07-15 2003-12-16 Radware Ltd. Load balancing
US6963914B1 (en) * 1998-09-01 2005-11-08 Lucent Technologies Inc. Method and apparatus for retrieving a network file using a logical reference
US6411991B1 (en) * 1998-09-25 2002-06-25 Sprint Communications Company L.P. Geographic data replication system and method for a network
US6557039B1 (en) * 1998-11-13 2003-04-29 The Chase Manhattan Bank System and method for managing information retrievals from distributed archives
US6314465B1 (en) * 1999-03-11 2001-11-06 Lucent Technologies Inc. Method and apparatus for load sharing on a wide area network
US6643704B1 (en) * 1999-03-23 2003-11-04 Koninklijke Philips Electronics N.V. Data network load management
US6516350B1 (en) * 1999-06-17 2003-02-04 International Business Machines Corporation Self-regulated resource management of distributed computer resources
US6587959B1 (en) * 1999-07-28 2003-07-01 Emc Corporation System and method for addressing scheme for use on clusters
US6415323B1 (en) * 1999-09-03 2002-07-02 Fastforward Networks Proximity-based redirection system for robust and scalable service-node location in an internetwork
US6693878B1 (en) * 1999-10-15 2004-02-17 Cisco Technology, Inc. Technique and apparatus for using node ID as virtual private network (VPN) identifiers
US6339785B1 (en) * 1999-11-24 2002-01-15 Idan Feigenbaum Multi-server file download
US6598077B2 (en) * 1999-12-06 2003-07-22 Warp Solutions, Inc. System and method for dynamic content routing
US6389448B1 (en) * 1999-12-06 2002-05-14 Warp Solutions, Inc. System and method for load balancing
US6928481B1 (en) * 2000-05-05 2005-08-09 International Business Machines Corporation Method, apparatus and program to optimize the network distribution of digital information based on hierarchical grouping of server topology and code distribution
US20020083344A1 (en) * 2000-12-21 2002-06-27 Vairavan Kannan P. Integrated intelligent inter/intra networking device

Cited By (138)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040199600A1 (en) * 2001-10-16 2004-10-07 Dorundo Alan D. Method and apparatus for program installation in a modular network
US8989728B2 (en) 2002-01-08 2015-03-24 Seven Networks, Inc. Connection architecture for a mobile network
US8811952B2 (en) 2002-01-08 2014-08-19 Seven Networks, Inc. Mobile device power management in data synchronization over a mobile network with or without a trigger notification
US8127342B2 (en) 2002-01-08 2012-02-28 Seven Networks, Inc. Secure end-to-end transport through intermediary nodes
US8549587B2 (en) 2002-01-08 2013-10-01 Seven Networks, Inc. Secure end-to-end transport through intermediary nodes
US7254634B1 (en) * 2002-03-08 2007-08-07 Akamai Technologies, Inc. Managing web tier session state objects in a content delivery network (CDN)
US20070271385A1 (en) * 2002-03-08 2007-11-22 Akamai Technologies, Inc. Managing web tier session state objects in a content delivery network (CDN)
US7765304B2 (en) 2002-03-08 2010-07-27 Akamai Technologies, Inc. Managing web tier session state objects in a content delivery network (CDN)
US7171488B2 (en) * 2002-07-03 2007-01-30 International Business Machines Corporation Managing data delivery in a data communications network
US20040018844A1 (en) * 2002-07-03 2004-01-29 International Business Machines Corporation Managing resources for information delivery in a large network
US9251193B2 (en) 2003-01-08 2016-02-02 Seven Networks, Llc Extending user relationships
US20060190529A1 (en) * 2003-07-01 2006-08-24 T & D Corporation Multipurpose semiconductor integrated circuit device
US7822934B2 (en) * 2003-07-01 2010-10-26 T&D Corporation Multipurpose semiconductor integrated circuit device
USRE45348E1 (en) 2004-10-20 2015-01-20 Seven Networks, Inc. Method and apparatus for intercepting events in a communication system
US8010082B2 (en) 2004-10-20 2011-08-30 Seven Networks, Inc. Flexible billing architecture
US8831561B2 (en) 2004-10-20 2014-09-09 Seven Networks, Inc System and method for tracking billing events in a mobile wireless network for a network operator
US8805334B2 (en) 2004-11-22 2014-08-12 Seven Networks, Inc. Maintaining mobile terminal information for secure communications
US8116214B2 (en) * 2004-12-03 2012-02-14 Seven Networks, Inc. Provisioning of e-mail settings for a mobile terminal
US20060277265A1 (en) * 2004-12-03 2006-12-07 Seven Networks International Oy Provisioning of e-mail settings for a mobile terminal
US8873411B2 (en) 2004-12-03 2014-10-28 Seven Networks, Inc. Provisioning of e-mail settings for a mobile terminal
US8209709B2 (en) 2005-03-14 2012-06-26 Seven Networks, Inc. Cross-platform event engine
US9047142B2 (en) 2005-03-14 2015-06-02 Seven Networks, Inc. Intelligent rendering of information in a limited display environment
US8561086B2 (en) 2005-03-14 2013-10-15 Seven Networks, Inc. System and method for executing commands that are non-native to the native environment of a mobile device
US8839412B1 (en) 2005-04-21 2014-09-16 Seven Networks, Inc. Flexible real-time inbox access
US7796742B1 (en) 2005-04-21 2010-09-14 Seven Networks, Inc. Systems and methods for simplified provisioning
US8438633B1 (en) 2005-04-21 2013-05-07 Seven Networks, Inc. Flexible real-time inbox access
US8064583B1 (en) 2005-04-21 2011-11-22 Seven Networks, Inc. Multiple data store authentication
US8761756B2 (en) 2005-06-21 2014-06-24 Seven Networks International Oy Maintaining an IP connection in a mobile network
US8412675B2 (en) 2005-08-01 2013-04-02 Seven Networks, Inc. Context aware data presentation
US8468126B2 (en) 2005-08-01 2013-06-18 Seven Networks, Inc. Publishing data in an information community
US8069166B2 (en) 2005-08-01 2011-11-29 Seven Networks, Inc. Managing user-to-user contact with inferred presence information
US9055102B2 (en) 2006-02-27 2015-06-09 Seven Networks, Inc. Location-based operations and messaging
US7788330B2 (en) * 2006-08-24 2010-08-31 Research In Motion Limited System and method for processing data associated with a transmission in a data communication system
US20080052341A1 (en) * 2006-08-24 2008-02-28 Goggin Sean A System and method for processing data associated with a transmission in a data communication system
US7996459B2 (en) * 2006-08-31 2011-08-09 Microsoft Corporation Video-switched delivery of media content using an established media-delivery infrastructure
US20080059646A1 (en) * 2006-08-31 2008-03-06 Microsoft Corporation Video-switched delivery of media content using an established media-delivery infrastructure
US8774844B2 (en) 2007-06-01 2014-07-08 Seven Networks, Inc. Integrated messaging
US8805425B2 (en) 2007-06-01 2014-08-12 Seven Networks, Inc. Integrated messaging
US8693494B2 (en) 2007-06-01 2014-04-08 Seven Networks, Inc. Polling
US8738050B2 (en) 2007-12-10 2014-05-27 Seven Networks, Inc. Electronic-mail filtering for mobile devices
US8364181B2 (en) 2007-12-10 2013-01-29 Seven Networks, Inc. Electronic-mail filtering for mobile devices
US8793305B2 (en) 2007-12-13 2014-07-29 Seven Networks, Inc. Content delivery to a mobile device from a content service
US9002828B2 (en) 2007-12-13 2015-04-07 Seven Networks, Inc. Predictive content delivery
US8107921B2 (en) 2008-01-11 2012-01-31 Seven Networks, Inc. Mobile virtual network operator
US8909192B2 (en) 2008-01-11 2014-12-09 Seven Networks, Inc. Mobile virtual network operator
US9712986B2 (en) 2008-01-11 2017-07-18 Seven Networks, Llc Mobile device configured for communicating with another mobile device associated with an associated user
US8914002B2 (en) 2008-01-11 2014-12-16 Seven Networks, Inc. System and method for providing a network service in a distributed fashion to a mobile device
US8849902B2 (en) 2008-01-25 2014-09-30 Seven Networks, Inc. System for providing policy based content service in a mobile network
US8862657B2 (en) 2008-01-25 2014-10-14 Seven Networks, Inc. Policy based content service
US8799410B2 (en) 2008-01-28 2014-08-05 Seven Networks, Inc. System and method of a relay server for managing communications and notification between a mobile device and a web access server
US8838744B2 (en) 2008-01-28 2014-09-16 Seven Networks, Inc. Web-based access to data objects
US8787947B2 (en) 2008-06-18 2014-07-22 Seven Networks, Inc. Application discovery on mobile devices
US8078158B2 (en) 2008-06-26 2011-12-13 Seven Networks, Inc. Provisioning applications for a mobile device
US8494510B2 (en) 2008-06-26 2013-07-23 Seven Networks, Inc. Provisioning applications for a mobile device
US8909759B2 (en) 2008-10-10 2014-12-09 Seven Networks, Inc. Bandwidth measurement
US20110093554A1 (en) * 2009-10-16 2011-04-21 Samsung Electronics Co., Ltd. Brokerage server for supporting fast data access for user terminal, method of operating brokerage server, user terminal and method of operating user terminal
US8489697B2 (en) 2009-10-16 2013-07-16 Samsung Electronics Co., Ltd. Brokerage server for supporting fast data access for user terminal, method of operating brokerage server, user terminal and method of operating user terminal
US8438561B2 (en) 2010-02-16 2013-05-07 Ricoh Company, Limited Mediation apparatus, installation system, installation method, and installation program
EP2363804A1 (en) * 2010-02-16 2011-09-07 Ricoh Company, Ltd. Mediation apparatus, installation system, installation method, and installation program
CN102164122A (en) * 2010-02-16 2011-08-24 株式会社理光 Mediation apparatus, installation system, installation method, and installation program
US20110202912A1 (en) * 2010-02-16 2011-08-18 Akinori Itoh Mediation apparatus, installation system, installation method, and installation program
US9043731B2 (en) 2010-03-30 2015-05-26 Seven Networks, Inc. 3D mobile user interface with configurable workspace management
US9407713B2 (en) 2010-07-26 2016-08-02 Seven Networks, Llc Mobile application traffic optimization
US9043433B2 (en) 2010-07-26 2015-05-26 Seven Networks, Inc. Mobile network traffic coordination across multiple applications
US9049179B2 (en) 2010-07-26 2015-06-02 Seven Networks, Inc. Mobile network traffic coordination across multiple applications
US9077630B2 (en) 2010-07-26 2015-07-07 Seven Networks, Inc. Distributed implementation of dynamic wireless traffic policy
US8886176B2 (en) 2010-07-26 2014-11-11 Seven Networks, Inc. Mobile application traffic optimization
US8838783B2 (en) 2010-07-26 2014-09-16 Seven Networks, Inc. Distributed caching for resource and mobile network traffic management
US8838733B2 (en) 2010-10-20 2014-09-16 Quova, Inc. System and method for managing an internet domain based on the geographic location of an accessing user
WO2012054378A1 (en) * 2010-10-20 2012-04-26 Quova, Inc. System and method for managing an internet domain based on the geographic location of an accessing user
US8700728B2 (en) 2010-11-01 2014-04-15 Seven Networks, Inc. Cache defeat detection and caching of content addressed by identifiers intended to defeat cache
US8484314B2 (en) 2010-11-01 2013-07-09 Seven Networks, Inc. Distributed caching in a wireless network of content delivered for a mobile application over a long-held request
US8190701B2 (en) 2010-11-01 2012-05-29 Seven Networks, Inc. Cache defeat detection and caching of content addressed by identifiers intended to defeat cache
US8204953B2 (en) 2010-11-01 2012-06-19 Seven Networks, Inc. Distributed system for cache defeat detection and caching of content addressed by identifiers intended to defeat cache
US8782222B2 (en) 2010-11-01 2014-07-15 Seven Networks Timing of keep-alive messages used in a system for mobile network resource conservation and optimization
US8843153B2 (en) 2010-11-01 2014-09-23 Seven Networks, Inc. Mobile traffic categorization and policy for network use optimization while preserving user experience
US8291076B2 (en) 2010-11-01 2012-10-16 Seven Networks, Inc. Application and network-based long poll request detection and cacheability assessment therefor
US8326985B2 (en) 2010-11-01 2012-12-04 Seven Networks, Inc. Distributed management of keep-alive message signaling for mobile network resource conservation and optimization
US9330196B2 (en) 2010-11-01 2016-05-03 Seven Networks, Llc Wireless traffic management system cache optimization using http headers
US8166164B1 (en) 2010-11-01 2012-04-24 Seven Networks, Inc. Application and network-based long poll request detection and cacheability assessment therefor
US9275163B2 (en) 2010-11-01 2016-03-01 Seven Networks, Llc Request and response characteristics based adaptation of distributed caching in a mobile network
US9060032B2 (en) 2010-11-01 2015-06-16 Seven Networks, Inc. Selective data compression by a distributed traffic management system to reduce mobile data traffic and signaling traffic
US8966066B2 (en) 2010-11-01 2015-02-24 Seven Networks, Inc. Application and network-based long poll request detection and cacheability assessment therefor
US9100873B2 (en) 2010-11-22 2015-08-04 Seven Networks, Inc. Mobile network background traffic data management
US8903954B2 (en) 2010-11-22 2014-12-02 Seven Networks, Inc. Optimization of resource polling intervals to satisfy mobile device requests
US8539040B2 (en) 2010-11-22 2013-09-17 Seven Networks, Inc. Mobile network background traffic data management with optimized polling intervals
US8417823B2 (en) 2010-11-22 2013-04-09 Seven Network, Inc. Aligning data transfer to optimize connections established for transmission over a wireless network
US9325662B2 (en) 2011-01-07 2016-04-26 Seven Networks, Llc System and method for reduction of mobile network traffic used for domain name system (DNS) queries
GB2492940A (en) * 2011-01-21 2013-01-23 1E Ltd Locating and retrieving data packages over a network
US20120191835A1 (en) * 2011-01-21 2012-07-26 1E Limited Locating and Retrieving Packages Over a Network
GB2492940B (en) * 2011-01-21 2013-08-28 1E Ltd Locating and retrieving packages over a network
US9084105B2 (en) 2011-04-19 2015-07-14 Seven Networks, Inc. Device resources sharing for network resource conservation
US9300719B2 (en) 2011-04-19 2016-03-29 Seven Networks, Inc. System and method for a mobile device to use physical storage of another device for caching
US8356080B2 (en) 2011-04-19 2013-01-15 Seven Networks, Inc. System and method for a mobile device to use physical storage of another device for caching
US8316098B2 (en) 2011-04-19 2012-11-20 Seven Networks Inc. Social caching for device resource sharing and management
US8832228B2 (en) 2011-04-27 2014-09-09 Seven Networks, Inc. System and method for making requests on behalf of a mobile device based on atomic processes for mobile network traffic relief
US8635339B2 (en) 2011-04-27 2014-01-21 Seven Networks, Inc. Cache state management on a mobile device to preserve user experience
US8621075B2 (en) 2011-04-27 2013-12-31 Seven Metworks, Inc. Detecting and preserving state for satisfying application requests in a distributed proxy and cache system
US9239800B2 (en) 2011-07-27 2016-01-19 Seven Networks, Llc Automatic generation and distribution of policy information regarding malicious mobile traffic in a wireless network
US8984581B2 (en) 2011-07-27 2015-03-17 Seven Networks, Inc. Monitoring mobile application activities for malicious traffic on a mobile device
WO2013068194A1 (en) * 2011-11-11 2013-05-16 Alcatel Lucent Distributed mapping function for large scale media clouds
EP2592550A1 (en) * 2011-11-11 2013-05-15 Alcatel Lucent Distributed mapping function for large scale media clouds
US8918503B2 (en) 2011-12-06 2014-12-23 Seven Networks, Inc. Optimization of mobile traffic directed to private networks and operator configurability thereof
US8868753B2 (en) 2011-12-06 2014-10-21 Seven Networks, Inc. System of redundantly clustered machines to provide failover mechanisms for mobile traffic management and network resource conservation
US8977755B2 (en) 2011-12-06 2015-03-10 Seven Networks, Inc. Mobile device and method to utilize the failover mechanism for fault tolerance provided for mobile traffic management and network/device resource conservation
US9208123B2 (en) 2011-12-07 2015-12-08 Seven Networks, Llc Mobile device having content caching mechanisms integrated with a network operator for traffic alleviation in a wireless network and methods therefor
US9009250B2 (en) 2011-12-07 2015-04-14 Seven Networks, Inc. Flexible and dynamic integration schemas of a traffic management system with various network operators for network traffic alleviation
US9277443B2 (en) 2011-12-07 2016-03-01 Seven Networks, Llc Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol
US9173128B2 (en) 2011-12-07 2015-10-27 Seven Networks, Llc Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol
US9021021B2 (en) 2011-12-14 2015-04-28 Seven Networks, Inc. Mobile network reporting and usage analytics system and method aggregated using a distributed traffic optimization system
US8861354B2 (en) 2011-12-14 2014-10-14 Seven Networks, Inc. Hierarchies and categories for management and deployment of policies for distributed wireless traffic optimization
US9832095B2 (en) 2011-12-14 2017-11-28 Seven Networks, Llc Operation modes for mobile traffic optimization and concurrent management of optimized and non-optimized traffic
US9131397B2 (en) 2012-01-05 2015-09-08 Seven Networks, Inc. Managing cache to prevent overloading of a wireless network due to user activity
US8909202B2 (en) 2012-01-05 2014-12-09 Seven Networks, Inc. Detection and management of user interactions with foreground applications on a mobile device in distributed caching
US9203864B2 (en) 2012-02-02 2015-12-01 Seven Networks, Llc Dynamic categorization of applications for network access in a mobile network
US9326189B2 (en) 2012-02-03 2016-04-26 Seven Networks, Llc User as an end point for profiling and optimizing the delivery of content and data in a wireless network
US8812695B2 (en) 2012-04-09 2014-08-19 Seven Networks, Inc. Method and system for management of a virtual network connection without heartbeat messages
US10263899B2 (en) 2012-04-10 2019-04-16 Seven Networks, Llc Enhanced customer service for mobile carriers using real-time and historical mobile application and traffic or optimization data associated with mobile devices in a mobile network
US8868784B2 (en) * 2012-06-28 2014-10-21 Alcatel Lucent Sticky IP prioritization based on IP pool and subnet by DHCP
US20140006640A1 (en) * 2012-06-28 2014-01-02 Alcatel-Lucent Canada, Inc. Sticky ip prioritization based on ip pool and subnet by dhcp
US8775631B2 (en) 2012-07-13 2014-07-08 Seven Networks, Inc. Dynamic bandwidth adjustment for browsing or streaming activity in a wireless network based on prediction of user behavior when interacting with mobile applications
US9161258B2 (en) 2012-10-24 2015-10-13 Seven Networks, Llc Optimized and selective management of policy deployment to mobile clients in a congested network to prevent further aggravation of network congestion
US9307493B2 (en) 2012-12-20 2016-04-05 Seven Networks, Llc Systems and methods for application management of mobile device radio state promotion and demotion
US9241314B2 (en) 2013-01-23 2016-01-19 Seven Networks, Llc Mobile device with application or context aware fast dormancy
US9271238B2 (en) 2013-01-23 2016-02-23 Seven Networks, Llc Application or context aware fast dormancy
US8874761B2 (en) 2013-01-25 2014-10-28 Seven Networks, Inc. Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols
US8750123B1 (en) 2013-03-11 2014-06-10 Seven Networks, Inc. Mobile device equipped with mobile network congestion recognition to make intelligent decisions regarding connecting to an operator network
WO2014200440A1 (en) * 2013-06-14 2014-12-18 T-Data Systems (S) Pte Ltd System and method for uploading, showcasing and selling news footage
CN105706070A (en) * 2013-06-14 2016-06-22 T-数据系统(新加坡)有限公司 System and method for uploading, showcasing and selling news footage
AU2014278788B2 (en) * 2013-06-14 2019-03-14 Trek Technology (Singapore) Pte Ltd System and method for uploading, showcasing and selling news footage
US9065765B2 (en) 2013-07-22 2015-06-23 Seven Networks, Inc. Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network
US10223397B1 (en) * 2015-03-13 2019-03-05 Snap Inc. Social graph based co-location of network users
US11106449B2 (en) * 2017-10-26 2021-08-31 Robert Bosch Gmbh Method for updating software components of a network subscriber of a network
US11197152B2 (en) * 2019-12-12 2021-12-07 Hewlett Packard Enterprise Development Lp Utilization of component group tables in a computing network
US11418585B1 (en) * 2021-09-01 2022-08-16 Netflow, UAB Optimized server picking in a virtual private network
US20230239344A1 (en) * 2022-01-21 2023-07-27 Dell Products, L.P. Distributed network address discovery in non-uniform networks
US11909816B2 (en) * 2022-01-21 2024-02-20 Dell Products L.P. Distributed network address discovery in non-uniform networks
EP4318218A1 (en) * 2022-08-02 2024-02-07 Red Bend Ltd. Intermediate device for updating a client using a plurality of servers

Also Published As

Publication number Publication date
JP2002049546A (en) 2002-02-15
US6928481B1 (en) 2005-08-09
KR20010100892A (en) 2001-11-14
KR100470851B1 (en) 2005-03-08

Similar Documents

Publication Publication Date Title
US20040133626A1 (en) Selecting a preferred server from groups of servers based on geographical information obtained from the requesting client
US6119234A (en) Method and apparatus for client-host communication over a computer network
US5920697A (en) Method of automatic updating and use of routing information by programmable and manual routing information configuration based on least lost routing
US6789103B1 (en) Synchronized server parameter database
US7296061B2 (en) Distributed web services network architecture
US5594921A (en) Authentication of users with dynamically configurable protocol stack
US7159125B2 (en) Policy engine for modular generation of policy for a flat, per-device database
US7543145B2 (en) System and method for protecting configuration settings in distributed text-based configuration files
EP1642197B1 (en) A web service for remote application discovery
US7703102B1 (en) Approach for allocating resources to an apparatus based on preemptable resource requirements
US8234650B1 (en) Approach for allocating resources to an apparatus
US8799416B2 (en) System and method for managing server configurations
US7463648B1 (en) Approach for allocating resources to an apparatus based on optional resource requirements
US7584263B1 (en) System and method for providing services access through a family home page
US7016945B2 (en) Entry distribution in a directory server
US7304982B2 (en) Method and system for message routing based on privacy policies
US20080294794A1 (en) Network Publish/Subscribe System Incorporating Web Services Network Routing Architecture
US20060129665A1 (en) Arrangement in a server for providing dynamic domain name system services for each received request
EP1716466B1 (en) Presenting a merged view of remote application shortcuts from multiple providers
AU2004279168A2 (en) A web service for remote application discovery
JP3899076B2 (en) Temporary network
US7523170B1 (en) Service locator technique implemented in a data network
US7181490B1 (en) Method and apparatus for mapping network events to names of network devices
US20050149468A1 (en) System and method for providing location profile data for network nodes

Legal Events

Date Code Title Description
AS Assignment

Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HERRERO, VICTOR R.;VUOZZO, MICHAEL L.;REEL/FRAME:014823/0298

Effective date: 20031217

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION