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 PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 claims description 38
- 238000004590 computer program Methods 0.000 claims description 9
- 238000009434 installation Methods 0.000 description 26
- 238000004422 calculation algorithm Methods 0.000 description 18
- 230000004044 response Effects 0.000 description 9
- 238000009826 distribution Methods 0.000 description 7
- 238000012384 transportation and delivery Methods 0.000 description 7
- 230000008520 organization Effects 0.000 description 5
- 241000269908 Platichthys flesus Species 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000004806 packaging method and process Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000002716 delivery method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000005641 tunneling Effects 0.000 description 2
- DMIUGJLERMOBNT-UHFFFAOYSA-N 4-amino-n-(3-methoxypyrazin-2-yl)benzenesulfonamide;5-[(3,4,5-trimethoxyphenyl)methyl]pyrimidine-2,4-diamine Chemical compound COC1=NC=CN=C1NS(=O)(=O)C1=CC=C(N)C=C1.COC1=C(OC)C(OC)=CC(CC=2C(=NC(N)=NC=2)N)=C1 DMIUGJLERMOBNT-UHFFFAOYSA-N 0.000 description 1
- 235000006508 Nelumbo nucifera Nutrition 0.000 description 1
- 240000002853 Nelumbo nucifera Species 0.000 description 1
- 235000006510 Nelumbo pentapetala Nutrition 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 210000001072 colon Anatomy 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- PWPJGUXAGUPAHP-UHFFFAOYSA-N lufenuron Chemical compound C1=C(Cl)C(OC(F)(F)C(C(F)(F)F)F)=CC(Cl)=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F PWPJGUXAGUPAHP-UHFFFAOYSA-N 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0272—Virtual private networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/35—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1019—Random or heuristic server selection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1021—Server selection for load balancing based on client or server locations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/10015—Access to distributed or replicated servers, e.g. using brokers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1034—Reaction to server failures by a load balancer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Definitions
- the 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.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Business, Economics & Management (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Tourism & Hospitality (AREA)
- Human Resources & Organizations (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Marketing (AREA)
- Primary Health Care (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
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
- 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.
- 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.
- 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
user 901 who selects one for downloading a package ofdigital 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
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.
- ISSI Solution Highlights:
- A. Easy to use interface for the end-user
- B. Automated installations
- 1. Response file driven installations; Minimized end user intervention; configuration consistency; reduced end-user install support (doc, education); reduced end-user induced errors.
- a. Products with native support for response files
- b. OSP's MagicWin installation technology for products that do not support response files natively
- 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
- C. OSP Packaging Architecture Based Packages
- 1. Delivery tool independent; Reusable for all OSP solutions (TME10 SD for AIX, TME10 SD for Framework, Static and Dynamic Web, CD source installs).
- D. Consistent technology and package install behavior across all Client for e-business deliverables.
- 1. Leveraged service delivery center skill
- 2. Leveraged end-user education/expectations
- E. Infrastructure
- 1. Established package distribution process
- 2. Leverage of existing service delivery center infrastructure
- 3. TCP/IP based offering
- 4. Multiple servers, selected based on topological closeness to client
- 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
- a. Server targets definitions
- b. Installer programs
- c. Userids/Passwords for server access
- 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.
- 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
- Web “Master” Server
- 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.
- ISSI Pages:
- 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.
- The hierarchy of the ISSI shopping pages is:
- I. Home/Overview
- A. FAQ (available from every page via NavTab)
- B. User's Guide (available from every page NavTab)
- C. Client Setup
- D. Geography Page
- E. Operating System Catalog (available from every page NavTab within Geography)
- 1. Package Links
- 2. Package Information Page
- 3. Package Prompt and Install Page
- 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.
- 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.
- 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.
- It is yet another object of the invention to determine a preferred server from a group of servers based on availability of the server.
- 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.
- 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.
- 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.
- It is lastly an object of the invention to provide server information relating availability of required digital data at the servers.
- 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.
- 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:
- 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; and
- 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.
- Redirection to Image Staging Servers
- 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 globalimage staging server 3 topology, specifies the following: - A. Each ISSI image staging server.
- B. Domain specific server groups.
- C. Subnet specific server groups.
- D. Subnet range server groups.
- E. VPN internal IP address range server groups (referred to as VPN server groups).
- F. SDC default server groups.
- G. A master default server group.
- H. A list of default subnet masks.
- The table503 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
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 table503 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.
- Image Staging Server Redirection Algorithm
- The OSP staging server redirection algorithm (FIGS. 4, 5 and6) 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
subnet 501. - 2. Retrieve502 the image staging server redirection table 503 and the corresponding package server availability table 504.
- 3. Using the image staging server redirection table503, 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'ssubnet 511. If none is found, then look for a domainspecific 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 masterdefault server group 509. - 4. Using the package server availability table504, 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 ofcandidate servers 610. - 5. Randomly choose a server from the group of
candidate servers 611. If a failure occurs connecting to the server or downloading the package image from theserver 620, then the chosen server is excluded from the group ofcandidate servers 612. If the group of candidate servers is exhausted 620, then proceed with thenext step 614. Otherwise, repeat thisstep 611. - 6. If none of the servers in the group of candidate servers can be used to successfully install the
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 performed616. 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-6617 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-6617 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:
- 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
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 VPNinternal IP address 752/756. - Class B Subnet Logic
- 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.
- ISSI CGI
- 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.
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:
- [parameters]
- nos=NFS
- deliverymethod=staticweb
- pkgname=Lotus Notes 4.53a
- globalname=LOT.LNC_EN.W32.1NSTALL.CLIENT_W32.PLAT.REF.453000.A
- [First Contact server]
- servername=d02ftp001.southbury.ibm.com
- nos=ftp
- remoteserverpath=/home/ospwebc1/swdist/repos
- key=11
- key1=xxxxx
- key2=xxxxx
- [responses]
- LNC45300_installdrive=C
- username=IBM Employee
- companyname=IBM
- Table 2 (Example WEB.INI File Contents):
- 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:
[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:
- [imageserver]
- dllname32=pw32gis.dll
- servername=d02ftp001.southbury.ibm.com
- nos=ftp
- remoteserverpath=/home/ospwebc1/swdist/repos
- key=11
- key1=xxxxx
- key2=xxxxx
- REM Uncomment localStgPath and set it to the path you want FTP to use for temp space.
- REM Only do this if you need to force it to a specific drive.
- REM localStgPath=c:\swd
- [logfiles]
- trimlogfile=yes
- maxlogfilesize=50000
- Table 3 (Example Staging Server Redirection Table Contents):
- The image server redirection table has the format of a Windows 3.x style INI file. It has six types of stanzas (sections):
- 1. Definition of the logging server and script to execute to perform log function on that server.
- 2. Definition of default server settings.
- 3. Definition of default subnet masks (for use by the ISSI routing algorithm to create candidate class B subnets).
- 4. A list of servers from which ISSI may request clients' VPN internal IP addresses.
- 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.
- 6. Image server section that defines the access method details for each
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:
- The sample table depicted below contains the following:
- 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”.
- Domain specific server groups “pok.ibm.com” and “fishkill.ibm.com”.
- 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”.
- SDC default group “default_us_north”.
- Master default group “default”.
- [HTTPLogServer]
- ServerName=ospdb.pok.ibm.com
- ScriptName=/cgi-bin/weblog.sh
- [DefaultSubnetMasks]
- numDSN=1
- dsn1=255.255.0.0
- [flounder.fishkill.ibm.com]
- nos=nfs
- remoteserverpath=/swdist/repos
- adminName=Bill Admin
-
- remoteMountNOS=nfs
- copyLocalNOS=ftp
- key=11
- key1=xxxxx
- Key2=xxxxx
- ftp_data_mode=active
- [milhouse.pok.ibm.com]
- nos=nfs
- remoteserverpath=/swdist/repos
- adminName=Joe Admin
-
- remoteMountNOS=nfs
- copyLocalNOS=ftp
- key=11
- key1=xxxxx
- Key2=xxxxx
- ftp_data_mode=passive
- [sybil.pok.ibm.com]
- nos=nfs
- remoteserverpath=/swdist/repos
- adminName=Joe Admin
-
- remoteMountNOS=nfs
- copyLocalNOS=http
- httpRemoteServerPath=/repos
- httpDirListMethod=cgi
- httpCgiScriptName=/cgi-bin/dirlist.sh
- key=11
- key1=xxxxx
- Key2=xxxxx
- ftp_data_mode=active
- [9.117.162.0]
- NumberOfServers=2
- Server1=milhouse.pok.ibm.com
- Server2=sybil.pok.ibm.com
- ProxyServer2=proxya.pok.ibm.com:8080
- default_group=default_us_north
- default_group_msg1=Package not found on any local servers.
- default_group_msg2=Do you wish to use a US North server?
- [pok.ibm.com]
- NumberOfServers=1
- Server1=sybil.pok.ibm.com
- ProxyServerl=proxyb.pok.ibm.com:8080
- default_group=default_us_north
- default_group_msg1=Package not found on any local servers.
- default_group_msg2=Do you wish to use a US North server?
- [fishkill.ibm.com]
- NumberOfServers=1
- Server1=flounder.fishkill.ibm.com
- Default_group=default
- [SUB-9.117.0.0-9.177.31.0]
- NumberOfServers=2
- Server1=milhouse.pok.ibm.com
- Server2=sybil.pok.ibm.com
- ProxyServer2=proxya.pok.ibm.com:8080
- default_group=default_us_north
- default_group_msg1=Package not found on any local servers.
- default_group_msg2=Do you wish to use a US North server?
- [VPN-9.31.0.0-9.31.255.255]
- NumberOfServers=2
- Server1=milhouse.pok.ibm.com
- Server2=sybil.pok.ibm.com
- ProxyServer2=proxya.pok.ibm.com:8080
- default_group=default_us_north
- default_group_msg1=Package not found on any local servers.
- default_group_msg2=Do you wish to use a US North server?
- [default_us_north]
- NumberOfServers=1
- Server1=milhouse.pok.ibm.com
- default_group=default
- default_group_msg1=Package not found on any US North server.
- default_group_msg2=Do you wish to use a default server?
- [default]
- NumberOfServers=2
- Server1=sybil.pok.ibm.com
- Server2=flounder.fishkill.ibm.com
- Default=NONE
- Image Staging Server Redirection Algorithm Examples:
- 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.
- 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 installation program proceeds as follows:
- 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.
- 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. 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?”
- 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.
- 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 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.
- 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 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.
- 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 - 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.
- First Contact Server Override File
- 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)”.
- Table: 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.
[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:
- servername=d02ftp001.southbury.ibm.com
- nos=ftp
- remoteserverpath=/home/ospwebc2/swdist/repos
- key=11
- key1=xxxxx
- key2=xxxxx
- Table 5: Package Server Availability Tables
- 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.
[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—3_PLAT_W32.TBL
- morticia.pok.ibm.com=TRUE
- sybil.pok.ibm.com=TRUE
- Staging Server
- 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.
- Source Image Location
- 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.
- Source Image Access
- A userid and password pair is used to access the source images via FTP when the local staging option has been selected.
- Directory Structure
- The package repository specification is consistent with the OSP packaging directory structure.
- Example Embodiments:
- 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:
- A. that is available on the network (functionally in operation, not “down”),
- B. that contains the desired software/data package, and
- C. that will authenticate permission to perform the operation.
- In addition, it is desirable that the Server be:
- A. reachable via a common point of contact,
- B. capable of membership in a global layout of heterogeneously-populated peer Servers,
- C. topologically near to the Client (or VPN Client),
- D. randomly chosen for the purpose of load balancing from a group of topologically-equidistant peer Servers if such group exists, and
- E. provide a fallback Server option or succession of options.
- 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:
- A. determine the location of the Client in the network topology,
- B. create a list (candidate server table) of the names of potential Servers prioritized and grouped by various parameters such as topological-nearness,
- C. retrieve a list (package server availability table) of the names of Servers that actually are populated with the desired package,
- D. filter the candidate server table by eliminating those that are not also found in the package server availability table,
- 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.
- 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.
- 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:
- Server Grouping Hierarchy:
- A. Building 052 (subnet)
- B. Poughkeepsie site (domain)
- C. New York State
- D. North-Eastern Region
- E. East Coast
- F. United States
- G. Default
- 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:
- Server Redirection Table
- A. Each ISSI Server.
- B. Domain specific server groups.
- C. Subnet specific server groups.
- D. Subnet range server groups.
- E. VPN internal IP Address range server groups (referred to as VPN server groups).
- F. Locale specific default server groups.
- G. A master default server group.
- H. A list of default subnet masks.
- 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.
- 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.
- 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.
- Preferred Embodiment of a Server Redirection Algorithm:
- The Server redirection algorithm follows:
- 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
subnet 501. - 2. Retrieve502 the Server redirection table 503 and the corresponding package server availability table 504 from the first contact server.
- 3. Using the Server redirection table503, 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
specific server group 505. - b. Look for a subnet range server group that includes target machine's
subnet 511. - c. Look for a domain
specific server group 507. - 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'sinternal 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)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. Retrieve704 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 masterdefault server group 509. - 4. Using the package server availability table504, 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
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 ofcandidate servers 612. If the group of candidate servers is exhausted 620, then proceed with thenext step 614. Otherwise, repeat thisstep 611. - 6. If none of the Servers in the group of candidate servers can be used to successfully install the
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 performed616. 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-6617 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-6617 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
- 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 VPNinternal 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.
- 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.
- 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.
- 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.
- 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.
Claims (20)
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.
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)
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 |
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 |
US8774844B2 (en) | 2007-06-01 | 2014-07-08 | Seven Networks, Inc. | Integrated messaging |
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 |
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 |
US8909759B2 (en) | 2008-10-10 | 2014-12-09 | Seven Networks, Inc. | Bandwidth measurement |
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 |
US9043731B2 (en) | 2010-03-30 | 2015-05-26 | Seven Networks, Inc. | 3D mobile user interface with configurable workspace management |
US9043433B2 (en) | 2010-07-26 | 2015-05-26 | Seven Networks, Inc. | Mobile network traffic coordination across multiple applications |
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)
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 |
CN102428051B (en) * | 2009-04-16 | 2015-06-03 | 艾默生电气公司 | Hermetic glass-to-metal seal assembly and method of manufacturing hermetic glass-to-metal seal assembly |
JP5174747B2 (en) * | 2009-06-18 | 2013-04-03 | 株式会社日立製作所 | Computer system and management device |
EP2550770B1 (en) | 2010-03-22 | 2017-07-05 | 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)
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)
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 |
-
2000
- 2000-05-05 US US09/565,400 patent/US6928481B1/en not_active Expired - Fee Related
-
2001
- 2001-04-11 KR KR10-2001-0019271A patent/KR100470851B1/en not_active IP Right Cessation
- 2001-04-24 JP JP2001126659A patent/JP2002049546A/en not_active Withdrawn
-
2003
- 2003-12-17 US US10/738,065 patent/US20040133626A1/en not_active Abandoned
Patent Citations (33)
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)
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 |
US8468126B2 (en) | 2005-08-01 | 2013-06-18 | Seven Networks, Inc. | Publishing data in an information community |
US8412675B2 (en) | 2005-08-01 | 2013-04-02 | Seven Networks, Inc. | Context aware data presentation |
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 |
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 |
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 |
US8909192B2 (en) | 2008-01-11 | 2014-12-09 | Seven Networks, Inc. | Mobile virtual network operator |
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 |
US9049179B2 (en) | 2010-07-26 | 2015-06-02 | Seven Networks, Inc. | Mobile network traffic coordination across multiple applications |
US8838783B2 (en) | 2010-07-26 | 2014-09-16 | Seven Networks, Inc. | Distributed caching for resource and mobile network traffic management |
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 |
US9043433B2 (en) | 2010-07-26 | 2015-05-26 | Seven Networks, Inc. | Mobile network traffic coordination across multiple applications |
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 |
US8966066B2 (en) | 2010-11-01 | 2015-02-24 | Seven Networks, Inc. | Application and network-based long poll request detection and cacheability assessment therefor |
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 |
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 |
US8316098B2 (en) | 2011-04-19 | 2012-11-20 | Seven Networks Inc. | Social caching for device resource sharing and management |
US9084105B2 (en) | 2011-04-19 | 2015-07-14 | Seven Networks, Inc. | Device resources sharing for network resource conservation |
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 |
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 |
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 |
EP2592550A1 (en) * | 2011-11-11 | 2013-05-15 | Alcatel Lucent | Distributed mapping function for large scale media clouds |
WO2013068194A1 (en) * | 2011-11-11 | 2013-05-16 | 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 |
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 |
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 |
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 |
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 |
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 |
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 |
US9131397B2 (en) | 2012-01-05 | 2015-09-08 | Seven Networks, Inc. | Managing cache to prevent overloading of a wireless network due to user activity |
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 |
---|---|
KR20010100892A (en) | 2001-11-14 |
US6928481B1 (en) | 2005-08-09 |
JP2002049546A (en) | 2002-02-15 |
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 | |
US7543145B2 (en) | System and method for protecting configuration settings in distributed text-based configuration files | |
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 | |
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 | |
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 | |
WO1995017064A1 (en) | Object-oriented distributed communications directory service | |
AU2004279168A2 (en) | A web service for remote application discovery | |
JP3899076B2 (en) | Temporary network | |
WO2005057325A2 (en) | Presenting a merged view of remote application shortcuts from multiple providers | |
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 |