KR19990072167A - Load balancing between processors on server computers - Google Patents

Load balancing between processors on server computers Download PDF

Info

Publication number
KR19990072167A
KR19990072167A KR1019980704518A KR19980704518A KR19990072167A KR 19990072167 A KR19990072167 A KR 19990072167A KR 1019980704518 A KR1019980704518 A KR 1019980704518A KR 19980704518 A KR19980704518 A KR 19980704518A KR 19990072167 A KR19990072167 A KR 19990072167A
Authority
KR
South Korea
Prior art keywords
processor
information
block
file
server
Prior art date
Application number
KR1019980704518A
Other languages
Korean (ko)
Other versions
KR100308705B1 (en
Inventor
앤드류 제임스 스탠포드-클라크
신 제임스 마틴
Original Assignee
포만 제프리 엘
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from GB9601559A external-priority patent/GB2309558A/en
Application filed by 포만 제프리 엘, 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 포만 제프리 엘
Publication of KR19990072167A publication Critical patent/KR19990072167A/en
Application granted granted Critical
Publication of KR100308705B1 publication Critical patent/KR100308705B1/en

Links

Landscapes

  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은 네트워크에 접속될 수 있으며 그 네트워크에 접속된 하나 이상의 클라이언트 컴퓨터에 서비스를 제공하도록 배치된 다수의 프로세서(20, 30, 40)를 갖는 서버 컴퓨터에 관한 것이다. 이 서비스는 클라이언트 컴퓨터(50)로 정보 블럭을 제공하는 것을 포함하며, 프로세서는 정보 블럭에 대한 데이터가 저장되어 있는 데이터 저장 장치(120)로 액세스한다. 본 발명의 바람직한 실시예에 따라, 서버내의 각 프로세서는, 그 프로세서로부터의 특정 정보 블럭에 대한 클라이언트 컴퓨터(50)로부터의 요구에 응답하여, 데이터 저장 장치(120)로부터 데이터를 검색하여 요구된 정보 블럭을 나타내는 파일을 작성하는데 사용되는 블럭 검색 수단(80)을 갖는다. 또한, 프로세서에 대한 활동 데이터를 주기적으로 판정하여 서버의 모든 프로세서에 대해 유지되는 부하 분배 기록에 포함시키는 부하 판정 수단(100)이 제공된다. 그 후, 블럭 검색 수단(80)에 의해 작성된 파일내의 후속 정보 블럭에 대한 각 참조부에 대해, 그 후속 정보 블럭에 대한 클라이언트 컴퓨터(50)로부터의 요구를 어떤 프로세서가 서비스할지를 판정하고, 블럭 검색 수단(80)에 의해 작성된 파일내에 그 프로세서에 대한 어드레스를 포함시키도록 구성된 결정 수단(90)이 사용된다. 일단 결정 수단이 이 프로세스를 완료하면, 파일은 클라이언트 컴퓨터(50)로 전송된다.The present invention relates to a server computer having a plurality of processors 20, 30, 40 that can be connected to a network and arranged to provide services to one or more client computers connected to the network. This service includes providing an information block to the client computer 50, where the processor accesses a data storage device 120 in which data for the information block is stored. According to a preferred embodiment of the present invention, each processor in the server, in response to a request from the client computer 50 for a particular block of information from that processor, retrieves data from the data storage device 120 and requests the requested information. It has a block retrieval means 80 used to create a file representing a block. Further, load determination means 100 is provided which periodically determines activity data for a processor and includes it in the load distribution record maintained for all processors in the server. Then, for each reference to a subsequent information block in the file created by the block retrieval means 80, it is determined which processor will service the request from the client computer 50 for the subsequent information block, and the block retrieval is performed. Determination means 90 is used that is configured to include an address for that processor in a file created by means 80. Once the determining means has completed this process, the file is transferred to the client computer 50.

바람직한 실시예에서, 제공되는 서비스는 월드 와이드 웹(WWW) 서비스이며, 이 기법은 인터넷을 통해 클라이언트에게 웹 페이지를 제공하는 병렬 웹 서버상에서 사용된다. 본 발명의 기법을 이용함으로써, 웹 서버의 프로세서에 걸쳐 더욱 효과적인 부하 밸런싱이 이루어지게 되어, 특정 프로세서의 "토스팅"과 같은 문제가 방지될 수 있게 된다.In a preferred embodiment, the service provided is a World Wide Web (WWW) service, which is used on parallel web servers that serve web pages to clients over the Internet. By using the techniques of the present invention, more effective load balancing is achieved across the processors of the web server, thereby preventing problems such as "toasting" of a particular processor.

Description

서버 컴퓨터의 프로세서간 부하 밸런싱Load balancing between processors on server computers

일반적으로 네트워크, 특히 인터넷에 사용하기 위한 고성능 서버 컴퓨터에 대한 요구가 나날이 증가하고 있다. 인터넷은 브리지 및 게이트웨이와 같은 장치를 통해 상호연결(interlink)된 많은 작은 네트워크로 이루어진 거대한 네트워크이다. 이론상, 인터넷에 접속된 임의의 컴퓨터는 인터넷에 접속된 다른 임의의 컴퓨터와 정보를 상호교환할 수 있다. 그러나, 컴퓨터는 종종 민감한 정보를 포함하고 있기 때문에, 많은 컴퓨터 및 네트워크는 컴퓨터간의 정보의 상호교환을 다양하게 제한하는 보안 방안(security schemes)을 가지고 있다.In general, the demand for high performance server computers for use on networks, especially the Internet, is increasing day by day. The Internet is a huge network of many small networks that are interconnected through devices such as bridges and gateways. In theory, any computer connected to the Internet can exchange information with any other computer connected to the Internet. However, because computers often contain sensitive information, many computers and networks have security schemes that variously restrict the exchange of information between computers.

인터넷은 이를 통해 정보를 보급하기 위한 매우 강력한(powerful) 구조체를 대표하기 때문에, 인터넷을 이용하여 정보를 하나의 컴퓨터로부터 다른 컴퓨터로 전달하기 위한 많은 서비스가 개발되어 왔다. 이들 서비스의 예로서는, FTP, News, 고퍼(Gopher) 및 월드 와이드 웹(이하 WWW로 칭해짐)을 들 수 있다.Since the Internet represents a very powerful structure for disseminating information through this, many services have been developed for using the Internet to transfer information from one computer to another. Examples of these services include FTP, News, Gopher, and the World Wide Web (hereinafter referred to as WWW).

WWW는 이들 서비스중 보다 많이 알려져 있고 가장 급속히 확산되는 것중의 하나이다. 인터넷에 의해 지원되는 WWW는 음성, 비디오 및 텍스트와 같은 기법을 결합시킬 수 있으며, 이들을 인터넷에 접속된 임의의 사용자에게 주문형, 대화형(on-demand, interactive fashion)으로 제시할 수 있다. 실제로 WWW에 의하면, 적절한 소프트웨어 및 하드웨어 구성을 갖는 컴퓨터로 인터넷에 접속한 누구라도, 인터넷상의 어느 곳에서나 이용될 수 있는 임의의 하이퍼미디어 문서(HyperMedia document)를 검색할 수 있다. 하이퍼미디어 문서는 한 정보 블럭을 나타내는 파일로서 수신되며, 그 파일내에는 예를 들어 텍스트, 사운드, 이미지 또는 영화를 포함할 수 있는 다른 문서들(또는 정보 블럭들)에 대한 하이퍼링크가 존재한다.WWW is more known and one of the fastest spreading of these services. WWW, supported by the Internet, can combine techniques such as voice, video, and text, and present them on demand, on-demand, and interactive fashion to any user connected to the Internet. Indeed, according to the WWW, anyone connected to the Internet with a computer having the appropriate software and hardware configuration can search for any HyperMedia document that can be used anywhere on the Internet. The hypermedia document is received as a file representing a block of information, within which there are hyperlinks to other documents (or blocks of information) that may include text, sound, images or movies, for example.

하이퍼미디어 문서를 수신하는 컴퓨터가 사용자에게 디스플레이하기 위한 문서를 작성할 때, 이 컴퓨터는 이들 몇몇 하이퍼링크를 이용하여 그 디스플레이를 완료하는데 필요한 다른 파일을 수신한다. 예를 들면, 하이퍼링크는 문서의 일부로서 디스플레이될 이미지 파일을 액세스하는데 사용될 수 있다. 일단 문서가 클라이언트 컴퓨터에 의해 작성되고 사용자에게 디스플레이되면, 사용자는 하이퍼링크에 의해 참조되는 문서를 요구하기 위해, 예를 들어 마우스 또는 다른 입력 장치를 이용하여 스크린상의 워드 또는 이미지를 선택함으로써 그 하이퍼링크를 선택할 기회를 가질 수 있다.When a computer receiving a hypermedia document creates a document for display to a user, the computer uses some of these hyperlinks to receive other files needed to complete the display. For example, a hyperlink can be used to access an image file to be displayed as part of a document. Once the document is created by the client computer and displayed to the user, the user can request the document referenced by the hyperlink, for example by selecting a word or image on the screen using a mouse or other input device. You have the opportunity to choose.

더욱 많은 사람들이 WWW와 같은 인터넷 서비스를 사용하기 시작함에 따라, 서버 컴퓨터에 대한 요구도 증가하고 있다. 이들 요구를 만족시키기 위해, 서버로서 병렬 컴퓨터가 사용되기 시작했으며, 이들 컴퓨터는 다수의 프로세서를 구비하여 서비스를 제공한다. 다수의 프로세서를 사용함으로써, 매우 많은 양의 서버 요구를 처리할 수 있게 된다. 이러한 병렬 컴퓨터의 예로서 IBM RISC System/6000 SP 머신(IBM 및 RISC System/6000은 IBM사의 등록된 상표임)을 들 수 있다.As more people begin to use Internet services such as the World Wide Web, the demand for server computers is increasing. To meet these needs, parallel computers have begun to be used as servers, which are equipped with multiple processors to provide services. By using multiple processors, it is possible to handle very large server requests. An example of such a parallel computer is an IBM RISC System / 6000 SP machine (IBM and RISC System / 6000 are registered trademarks of IBM Corporation).

그러나, 이러한 병렬 서버를 사용함으로써 발생하는 문제는, 병렬 시스템내에서 협력하여 (WWW의 웹 페이지와 같은) 문서를 서비스하고 서비스 기반 어플리케이션을 실행시키는 프로세서들간에 입력 클라이언트 트래픽(traffic)을 밸런싱하는 것이다. 기존의 부하 밸런싱 메카니즘에서는, 하나의 특정 프로세서에 소정의 시간 동안 방대한 양의 트래픽이 집중되는 시기가 존재할 수 있다. 이를 기술 용어로 표현하면, 이 프로세서가 "토스트(toast)"된다라고 한다. 이 상태에서, 프로세서는 클라이언트 요구에 의해 장악되며, 가상 정지 상태로 되어서, 하나의 요구를 서비스하는데 수분이 걸리게 된다.However, the problem with using such a parallel server is to balance input client traffic between processors that work together in a parallel system to serve documents (such as web pages on the WWW) and run service-based applications. . In an existing load balancing mechanism, there may be a time when a large amount of traffic is concentrated in one particular processor for a predetermined time. Expressed in technical terms, this processor is said to be "toast". In this state, the processor is taken over by the client's request and is in a virtual halt state, taking several minutes to service one request.

따라서, 본 발명의 목적은 프로세서에 걸린 불균형한 부하를 완화시켜 이 토스팅 효과를 막는데 도움을 주는 메카니즘을 제공하는 것이다.Accordingly, it is an object of the present invention to provide a mechanism that helps to mitigate this toasting effect by mitigating an unbalanced load on the processor.

본 발명의 요약Summary of the invention

따라서 본 발명은, 네트워크에 접속될 수 있으며 그 네트워크에 접속된 하나 이상의 클라이언트 컴퓨터에 서비스를 제공하도록 배열된 다수의 프로세서를 갖는 서버 컴퓨터를 제공하는 것으로서, 그 서비스는 클라이언트 컴퓨터로 정보 블럭을 제공하는 것이며, 프로세서는 정보 블럭에 대한 데이터가 저장된 데이터 저장 장치로 액세스할 수 있으며, 서버 컴퓨터는, 상기 다수의 프로세서 각각에 제공되며, 프로세서로부터의 특정 정보 블럭에 대한 클라이언트 컴퓨터로부터의 요구에 응답하여, 요구된 정보 블럭을 나타내는 파일을 작성하기 위해서 데이터 저장 장치로부터 데이터를 검색하는데 사용되는 블럭 검색 수단 ― 그 파일은 클라이언트에 의해 요구될 수 있는 후속 정보 블럭에 대한 참조부(references)를 포함함 ― 과, 프로세서에 대한 활동 데이터(activity data)를 주기적으로 판정하여 서버의 모든 프로세서에 대해 유지되는 부하 분배 기록(load distribution record)에 포함시키는 부하 판정 수단과, 블럭 검색 수단에 의해 작성된 파일내의 후속 정보 블럭에 대한 각 참조부에 대해, 부하 분배 기록에 근거하여, 그 후속 정보 블럭에 대한 클라이언트 컴퓨터로부터의 요구를 어떤 프로세서가 서비스해야 하는지를 판정하고, 블럭 검색 수단에 의해 작성된 파일내에 그 프로세서에 대한 어드레스를 포함하도록 구성된 결정 수단과, 그 파일을 클라이언트 컴퓨터에 전송하기 위한 전달 수단을 포함한다.The present invention thus provides a server computer having a plurality of processors that can be connected to a network and arranged to provide a service to one or more client computers connected to the network, the service providing information blocks to the client computer. The processor may access a data storage device that stores data for an information block, the server computer being provided to each of the plurality of processors, in response to a request from a client computer for a particular block of information from the processor, Block retrieval means used to retrieve data from the data storage device to create a file representing the requested information block, the file containing references to subsequent information blocks that may be requested by the client; and Having activity on the processor Load determination means for periodically determining the activity data and including it in a load distribution record maintained for all processors of the server, and each reference portion for subsequent blocks of information in a file created by the block retrieval means. For determining, based on the load distribution record, which processor should service a request from a client computer for its subsequent information block, and determining means configured to include an address for that processor in a file created by the block retrieval means. And delivery means for transferring the file to the client computer.

본 발명의 접근법을 이용함으로써, 클라이언트에게 전송하기 전에 파일의 내용을 동적으로 변경하여, 파일의 내용에 프로세서의 어드레스 ― 이 프로세서의 어드레스로부터 임의의 후속 정보 블럭이 검색되어야 함 ― 를 포함시킬 수 있다. 후속 정보 블럭에 대한 요구를 어떤 프로세서가 서비스할 것인지에 대한 판정은 서버의 프로세서에 대한 부하 분배 기록에 근거하여 행해진다. 이런 방식으로, 프로세서에 걸리는 부하를 보다 효율적으로 밸런싱시킬 수 있고, 따라서 특정 프로세서의 "토스팅(toasting)"과 같은 문제를 완화시킬 수 있다.By using the approach of the present invention, the contents of the file can be dynamically changed before sending to the client, so that the contents of the file can include the address of the processor, from which address any subsequent blocks of information must be retrieved. . The determination of which processor will service a request for a subsequent block of information is made based on the load distribution record for the processor of the server. In this way, the load on the processor can be more efficiently balanced, thus mitigating problems such as "toasting" the particular processor.

바람직한 실시예에서, 각 프로세서에 대한 활동 데이터를 판정하기 위해 상기 다수의 프로세서 각각에 부하 판정 수단이 제공된다. 게다가, 바람직하게 상기 다수의 프로세서 각각에 결정 수단도 또한 제공된다. 그러나, 바람직한 실시예에 대한 대안으로서, 다수의 프로세서중 특정 하나의 프로세서, 또는 이들 구성 요소의 기능을 수행하는데 전용되는 완전히 독립적인 프로세서에 하나 이상의 부하 판정 수단, 결정 수단 및 전달 수단이 제공될 수 있다. 따라서, 한 프로세서는 결정 수단의 기능을 수행하는데 전용될 수 있으며, 블럭 검색 수단에 의해 작성된 모든 파일은 결정 수단이 처리하기 위해 전용 프로세서로 전송될 수 있다.In a preferred embodiment, load determination means are provided for each of the plurality of processors to determine activity data for each processor. In addition, determining means are preferably also provided for each of the plurality of processors. As an alternative to the preferred embodiment, however, one or more load determining means, determining means and transmitting means may be provided in a particular one of the plurality of processors or in a completely independent processor dedicated to performing the functions of these components. have. Thus, one processor may be dedicated to performing the function of the determining means, and all files created by the block searching means may be transferred to the dedicated processor for processing by the determining means.

바람직한 실시예에서, 파일에 의해 표시되는 정보 블럭을 작성할 때 클라이언트 컴퓨터가 다수의 후속 정보 블럭을 요구할 경우, 결정 수단을 구비하여, 부하 분배 기록에 표시되어 있는 대로 프로세서상의 부하가 많을 수록, 프로세서가 서비스할 후속 정보 블럭의 수는 적게 되도록, 임의의 특정 프로세서가 서비스할 후속 정보 블럭의 수를 결정한다. 통상적으로, 하나 이상의 후속 정보 블럭은 이미지 파일일 것이며, 이 이미지 파일은 정보 블럭을 작성할 때 클라이언트 컴퓨터에 의해 요구될 것이다.In a preferred embodiment, when the client computer requests a number of subsequent blocks of information when creating the information block represented by the file, it is provided with determining means, so that the more load on the processor as indicated in the load distribution record, the more The number of subsequent information blocks to be serviced by any particular processor is determined so that the number of subsequent information blocks to service is small. Typically, one or more subsequent blocks of information will be an image file, which will be required by the client computer when creating the information block.

바람직한 실시예에서, 네트워크는 인터넷이며, 서비스는 월드 와이드 웹 서비스이고, 정보 블럭은 웹 페이지이다. 그러나, 클라이언트가 요구할 수 있으며 서버에 의해 서비스될 필요가 있는 후속 정보 블럭에 대한 참조부를 포함하는 정보 블럭이 클라이언트에게 제공되는 임의의 네트워크 및 서비스에 본 발명이 적용될 수 있음은 명백하다.In a preferred embodiment, the network is the Internet, the service is a world wide web service, and the information block is a web page. However, it is apparent that the present invention can be applied to any network and service in which an information block is provided to the client that includes a reference to a subsequent block of information that the client may require and needs to be serviced by the server.

서비스가 월드 와이드 웹 서비스일 경우, 결정 수단에 의해 파일내에 포함되는 후속 정보 블럭에 대한 어드레스는, 바람직하게 그 정보 블럭에 대한 식별자 및, 그 정보 블럭에 대한 요구를 서비스할 프로세서로서 결정 수단이 판정한 프로세서에 대한 고유한 식별자를 모두 포함하는 어드레스 스트링의 형태를 취한다.If the service is a world wide web service, the address for the subsequent information block included in the file by the determining means is preferably determined by the determining means as an identifier for the information block and a processor that will service the request for the information block. It takes the form of an address string containing all of the unique identifiers for a processor.

제 2 측면에 있어서, 네트워크에 접속될 수 있으며 그 네트워크에 접속된 하나 이상의 클라이언트 컴퓨터에 서비스를 제공하도록 설치된 다수의 프로세서를 갖는 서버 컴퓨터를 조작하는 방법을 제공하는 것으로서, 그 서비스는 클라이언트 컴퓨터에 정보 블럭을 제공하는 것을 포함하며, 프로세서는 정보 블럭에 대한 데이터가 저장된 데이터 저장 장치로 액세스할 수 있으며, 서버 컴퓨터를 조작하는 방법은, (a) 프로세서로부터의 특정 정보 블럭에 대한 클라이언트 컴퓨터로부터의 요구에 응답하여, 요구된 정보 블럭을 나타내는 파일을 작성하기 위해서, 그 프로세서를 사용하여 데이터 저장 장치로부터의 데이터를 검색하는 단계 ― 그 파일은 클라이언트에 의해 요구될 수 있는 후속 정보 블럭에 대한 참조부를 포함함 ― 와, (b) 서버의 모든 프로세서에 대해 유지되는 부하 분배 기록에 포함시키기 위해, 부하 판정 수단을 사용하여 프로세서에 대한 활동 데이터를 주기적으로 판정하는 단계와, (c) 단계 (a)에서 작성된 상기 파일내의 후속 정보 블럭에 대한 각 레퍼런스에 대해, 부하 분배 기록에 근거하여, 어떤 프로세서가 그 후속 정보 블럭에 대한 상기 클라이언트 컴퓨터로부터의 요구를 서비스해야 하는 지를 판정하고, 단계 (a)에서 작성된 상기 파일내에 그 프로세서에 대한 어드레스를 포함하는 단계와, (d) 그 파일을 클라이언트 컴퓨터에 전송하는 단계를 포함한다.In a second aspect, there is provided a method of operating a server computer having a plurality of processors that can be connected to a network and installed to provide services to one or more client computers connected to the network, the service providing information to the client computer. And providing a block, wherein the processor can access a data storage device that stores data for the information block, and a method of manipulating a server computer includes: (a) a request from a client computer for a particular block of information from the processor; In response to retrieving data from the data storage device using the processor to create a file representing the requested information block, the file containing a reference to a subsequent information block that may be requested by the client. (B) all processes on the server Periodically determining activity data for the processor using load determination means for inclusion in the load distribution record maintained for the document, and (c) for each subsequent block of information in the file created in step (a). For the reference, based on the load distribution record, it is determined which processor should service the request from the client computer for its subsequent block of information and includes an address for that processor in the file created in step (a). And (d) transferring the file to the client computer.

본 발명은 하나 이상의 클라이언트 컴퓨터에 서비스를 제공하기 위해 네트워크에 접속될 수 있는 서버 컴퓨터에 관한 것이며, 여기서 하나 이상의 클라이언트 컴퓨터도 또한 네트워크에 접속된다. 특히, 본 발명은 다수의 프로세서를 구비하여 서비스를 제공하는 유형의 서버 컴퓨터에 관한 것이며, 클라이언트 컴퓨터로부터의 요구에 의해 발생되는 이들 프로세서상의 부하(load)를 밸런싱(balancing)하는 문제를 다룬다.The present invention relates to a server computer that can be connected to a network to provide services to one or more client computers, where one or more client computers are also connected to the network. In particular, the present invention relates to a server computer of a type having a plurality of processors to provide a service, and addresses the problem of balancing the load on these processors caused by a request from a client computer.

도 1은 본 발명의 바람직한 실시예에 따른 서버를 예시하는 개략적 블럭도.1 is a schematic block diagram illustrating a server according to a preferred embodiment of the present invention.

도 2는 클라이언트로부터 요구를 수신한 때 서버의 프로세서에 의해 바람직한 실시예에서 수행되는 프로세스를 나타내는 흐름도.2 is a flow diagram illustrating a process performed in a preferred embodiment by a processor of a server when receiving a request from a client.

도 3은 정보 블럭에 대한 후속 요구를 어떤 프로세서가 서비스할 것인지를 판정하는데 부하 분배 기록이 어떻게 사용되는지를 나타내는 도면.3 shows how load distribution records are used to determine which processor will service subsequent requests for information blocks.

본 발명의 바람직한 실시예에서, 인터넷상에 제공된 WWW 서비스를 고려하며, 병렬 웹 서버에서 공동 작업하는 다수의 프로세서에 걸쳐 부차적인 부하 밸런싱(load-balancing)을 제공하는 메카니즘에 대해 기술한다.In a preferred embodiment of the present invention, a mechanism for providing secondary load-balancing across multiple processors collaborating in a parallel web server, considering a WWW service provided on the Internet, is described.

먼저 WWW 구조를 살펴보면, 이것은 WWW상의 특정 페이지 또는 파일을 지정할 때 고려해 볼 수 있는 URL(Universal Resource Locators)을 기초로 하고 있다. URL은 서버 머신과 이러한 서버 머신상의 특정 파일 또는 페이지를 표시한다. 예를 들면, 링크는 "http://www.ibm.com/example.html"일 수 있는데, 여기서 "http:"는 월드 와이드 웹(World-Wide Web)을 사용하고 있음을 나타내며, "www.ibm.com"은 네트워크상의 웹 서버의 인터넷 네임으로서 사용자가 그것으로부터 페이지를 요구하며, "example.html"은 수신하고자 하는 페이지의 네임이다.Looking first at the WWW structure, it is based on Universal Resource Locators (URLs) that can be considered when specifying a specific page or file on the WWW. The URL represents the server machine and the specific file or page on that server machine. For example, the link may be "http://www.ibm.com/example.html", where "http:" indicates that you are using the World-Wide Web and "www. ibm.com "is the Internet name of a web server on the network, and the user requests a page from it, and" example.html "is the name of the page you want to receive.

클라이언트 컴퓨터는 사용자에게 간단한 GUI를 제공하는 브로우저라고 하는 소프트웨어를 사용함으로써, 사용자가 WWW를 통해 상이한 URL로 항해(navigate)할 수 있도록 한다. 때때로 사용자는 특정 URL을 네임으로 지정하지만, 보다 많은 경우에 사용자는 페이지내의 참조부(소위 "하이퍼링크")를 통해 한 URL로부터 다른 URL로 이동할 것이다. 따라서, 페이지상의 특정 워드 또는 심볼은 다른 URL과 연관되어 있을 수 있으므로, 예를 들면 관련된 위치를 마우스로 클릭하여 상기 워드 또는 심볼을 선택함으로써 클라이언트 컴퓨터는 선택된 URL로부터 페이지를 검색 및 디스플레이하게 된다. 이 새로운 페이지는 먼저의 페이지와 완전히 다른 서버상에 위치할 수 있다. 다른 URL로 맵핑하는 워드 또는 심볼은 때때로 "핫 버튼(hot button)"(또는 이와 유사한 용어)으로 지칭된다. 단일 페이지에 많은 핫 버튼 또는 하이퍼링크가 존재할 수 있다.The client computer uses software called a browser that provides the user with a simple GUI, allowing the user to navigate to different URLs through the WWW. Sometimes users specify a specific URL by name, but in more cases, the user will navigate from one URL to another via a reference within the page (so-called "hyperlink"). Thus, a particular word or symbol on a page may be associated with another URL, so that, for example, by clicking on the relevant location with a mouse to select the word or symbol, the client computer retrieves and displays the page from the selected URL. This new page can be located on a server that is completely different from the first page. Words or symbols that map to other URLs are sometimes referred to as "hot buttons" (or similar terms). There can be many hot buttons or hyperlinks on a single page.

한 서버상에 많은 페이지 또는 URL이 상주할 수 있다. 클라이언트 컴퓨터의 사용자가 특정 서버 컴퓨터상의 URL을 선택하면, 서버 컴퓨터는 그 페이지에 지정된 동작을 수행한다. 몇몇 경우에 이에 의해 서버 컴퓨터가 어플리케이션을 개시할 수 있지만, 대다수의 경우에 서버 컴퓨터는 저장된 페이지의 데이터베이스로부터 요구된 페이지를 검색하고, 사용자에게 디스플레이하기 위해 인터넷을 통해 클라이언트 컴퓨터에게 이를 도로 전달한다.Many pages or URLs can reside on a server. When the user of the client computer selects a URL on a particular server computer, the server computer performs the action specified on that page. In some cases this allows the server computer to launch the application, but in most cases the server computer retrieves the requested page from the database of stored pages and passes it back to the client computer via the Internet for display to the user.

페이지들은 HTML로 알려진 표준 포맷에 따라 포맷된다. 통상적인 웹 페이지는 텍스트 내용, 내장된 이미지(그래픽), 및 페이지를 보는 사용자가 특정 주제에 대해 보다 많은 정보를 원할 경우 클릭할 수 있는 다수의 다른 페이지로의 링크를 포함한다. 이미지는 그 자체가, 서버 컴퓨터로부터 페이지를 다운로딩하고 있는 경우 웹 브로우저가 클라이언트를 대신해서 서버 컴퓨터로부터 자동적으로 요구할 수 있는 웹 "페이지"이다. 통상적으로, 이러한 이미지는 예를 들면 표준 ".gif" 또는 ".jpeg" 형태로 서버에 별개의 그래픽 파일로 저장된다. HTML 텍스트는 이러한 그래픽 파일에 대한 참조부를 포함하며, 이 참조부에 의해 클라이언트는 또한 서버로부터 지정된 파일을 검색하여 HTML 텍스트 및 관련된 이미지를 모두 디스플레이할 수 있다. 페이지로부터의 후속(follow-on) 링크는 기본 페이지를 제공한 서버와 동일한 서버상의 다른 페이지이거나 또는 인터넷상의 다른 웹 서버일 수 있다. 본 발명의 바람직한 실시예를 설명하기 위해, 그래픽 파일 및 기본 페이지와 동일한 서버상에 있는 후속 링크가 언급될 것이다. 이후, 이러한 항목은 모두 참조된 웹 페이지(referenced Web pages)로 불릴 것이다.Pages are formatted according to a standard format known as HTML. Typical web pages include textual content, embedded images (graphics), and links to a number of other pages that a user viewing the page can click to if they want more information about a particular subject. The image itself is a web "page" that a web browser can automatically request from the server computer on behalf of the client if it is downloading a page from the server computer. Typically, such images are stored as separate graphic files on the server, for example in standard ".gif" or ".jpeg" format. The HTML text includes a reference to this graphic file, which allows the client to also retrieve the specified file from the server and display both the HTML text and the associated image. The follow-on link from the page may be another page on the same server as the server that provided the base page or another web server on the Internet. To illustrate the preferred embodiment of the present invention, subsequent links on the same server as the graphics file and the base page will be mentioned. Thereafter, all of these items will be referred to as referenced Web pages.

클라이언트 컴퓨터에 사용하기 위한 상업적으로 이용가능한 다양한 웹 브로우저 소프트웨어가 있는데, 그 예로서 IBM의 웹 익스플로러(Web Explorer)와 NCSA의 모자이크(Mosaic)를 들 수 있다. 이러한 모든 브로우저는 HTML과 다른 WWW 표준 포맷을 이해하며, 이러한 포맷으로 파일을 정확하게 디스플레이 또는 출력할 수 있다. 이와 마찬가지로, 상이한 URL 사이를 항해하기 위한 메카니즘이 또한 이러한 프로그램에 의해 이해되며 구현된다. 월드 와이드 웹에 대한 추가 정보는 앤드류 포드(Andrew Ford)의 "Spinning the Web"(International Thomson Publishing, London 1995) 및 존 디셈버(John December)와 네일 란달(Neil Randal)의 "The World Wide Web Unleashed"(SAMS Publishing, Indianapolis 1994)에서 발견할 수 있다.There are a variety of commercially available web browser software for use on client computers, such as IBM's Web Explorer and NCSA's Mosaic. All of these browsers understand HTML and other WWW standard formats, and they can display or output files accurately. Similarly, mechanisms for navigating between different URLs are also understood and implemented by this program. For more information about the World Wide Web, see Andrew Ford's "Spinning the Web" (International Thomson Publishing, London 1995) and John December and Neil Randal's "The World Wide Web Unleashed." (SAMS Publishing, Indianapolis 1994).

본 발명의 바람직한 실시예에 있어서, 부하 밸런싱 기술을 병렬 서버와 함께 사용하여 서버의 많은 프로세서가 동일한 인터넷 네임을 공유하는 것처럼 보이도록 한다. 예를 들면, 도 1을 참조하면, 병렬 웹 서버(10), www.ibm.com이 가령 www1.ibm.com, www2.ibm.com, 및 www3.ibm.com으로 지칭되는 프로세서(20, 30, 40)에 의해 서비스될 수 있다. 부하 밸런싱 소프트웨어는 www.ibm.com에 대한 요구가 해당 병렬 웹 서버의 일부를 형성하는 프로세서중 하나로 전송되도록 처리한다. 적합한 부하 밸런싱 기술이 유럽 특허 공개공보 제 EP-A-0,648,038 호에 개시되어 있는데, 상기 공보에는 병렬 서버상의 부하가 서버를 형성하는 다수의 프로세서(또는 컴퓨터)에 걸쳐 밸런싱이 이루어지도록 하는 동적 부하 밸런싱 기술이 개시되어 있다. 클라이언트 컴퓨터상의 프로그램이 병렬 서버(10)의 프로세서에 접속하기를 원한다면, 종종 네임 서버라고 지칭되는 데이터 프로세싱 시스템(60)과 통신하여 원하는 서버에 대한 네트워크 어드레스를 얻는다. 유럽 특허 공개공보 제 EP-A-0,648,038 호에 개시된 기술에 따르면, 결정 로직(70)이 제공되어 병렬 서버(10)의 프로세서 또는 컴퓨터를 주기적으로 조사하고, 구성가능한(configurable) 기준에 근거하여 이들 프로세서중 하나를 선택한다. 이 구성가능한 기준은, 기준이 적용되는 시점에서 부하가 가장 작은 프로세서가 결정 로직(70)에 의해 선정되도록 선택될 수 있다. 이 프로세서에 대한 어드레스는 네임 서버(60)에 이용될 수 있는 저장 장치(80)내의 일반적 서버 네임과 관련되어 있으므로, 클라이언트 프로그램이 일반적 서버 네임을 이용하여 머신 어드레스를 요구할 때마다 결정 로직(70)에 의해 가장 최근에 선택된 병렬 서버(10)내의 프로세서의 어드레스가 주어진다. 따라서, www.ibm.com이 일반적 네임이라면, www.ibm.com의 인터넷 어드레스에 대한 클라이언트(50)로부터 네임 서버(60)로의 요구는 클라이언트가 3개의 프로세서(20, 30, 40)중 하나의 인터넷 어드레스를 제공받는 결과를 초래하게 될 것이다. 이러한 기술에 대한 보다 상세한 내용에 대해서는 유럽 특허 공개공보 제 EP-A-0,648,038 호를 참조하기로 한다.In a preferred embodiment of the present invention, load balancing techniques are used with parallel servers so that many processors on the server appear to share the same Internet name. For example, referring to FIG. 1, a parallel web server 10, www.ibm.com, may be referred to as, for example, processors 20, 30 referred to as www1.ibm.com, www2.ibm.com, and www3.ibm.com. , 40). The load balancing software handles the request for www.ibm.com to be sent to one of the processors that form part of the parallel web server. Suitable load balancing techniques are disclosed in EP-A-0,648,038, which discloses dynamic load balancing such that the load on a parallel server is balanced across the multiple processors (or computers) forming the server. Techniques are disclosed. If a program on a client computer wants to connect to the processor of parallel server 10, it communicates with data processing system 60, often referred to as a name server, to obtain a network address for the desired server. According to the technique disclosed in EP-A-0,648,038, decision logic 70 is provided to periodically examine the processor or computer of the parallel server 10 and based on configurable criteria Select one of the processors. This configurable criterion may be selected such that the processor with the least load at the time the criterion is applied is selected by decision logic 70. The address for this processor is associated with a generic server name in storage 80 that may be used for name server 60, so that whenever the client program requests a machine address using the generic server name, decision logic 70 Is given the address of the processor in the most recently selected parallel server 10. Thus, if www.ibm.com is a generic name, the request from client 50 to name server 60 for the Internet address of www.ibm.com is such that the client is responsible for one of three processors 20, 30, 40. This will result in receiving an Internet address. For further details on this technique, reference is made to EP-A-0,648,038.

통상적으로, 기본 페이지와 동일한 서버(종종 '웹 사이트'로 불려짐)를 재참조한 후속 링크는 기본 페이지의 인터넷 네임과 동일한 인터넷 네임을 참조할 것이다. 예를 들면, 페이지 http://www.ibm.com/first_page.html상에서, 후속 링크는 http://www.ibm.com/second_page.html로 될 것이다. 클라이언트 컴퓨터가 이미 일반적 네임인 www.ibm.com의 인터넷 어드레스를 네임 서버(60)에 질문하였기 때문에, 통상적으로 동일한 인터넷 어드레스를 다시 사용할 것이다. 따라서, 후속 요구는 최초의 요구가 서비스된 프로세서와 동일한 프로세서로 향하게 것이다. 일반적 네임 www.ibm.com을 분석하기 위해 네임 서버(60)에 다시 문의하지 않기 때문에, 네임 서버에 사용된 어떠한 부하 밸런싱 기술도 활용되지 않을 것이다. 그 결과, 최초의 요구를 서비스한 실제 프로세서가 후속 링크에 대한 요구로 가득차게 되며, 이로 인하여 앞서 언급한 '토스팅' 효과가 발생한다.Typically, subsequent links that refer back to the same server as the main page (often referred to as 'website') will refer to the same internet name as the main page's internet name. For example, on the page http://www.ibm.com/first_page.html, the subsequent link would be http://www.ibm.com/second_page.html. Since the client computer has already asked the name server 60 for the common name www.ibm.com Internet address, it will typically use the same internet address again. Thus, subsequent requests will be directed to the same processor where the original request was serviced. No load balancing techniques used in the name server will be utilized because the name server 60 is not consulted again to resolve the generic name www.ibm.com. As a result, the actual processor that served the original request is full of requests for subsequent links, which results in the 'toasting' effect mentioned above.

후속 요구에 대해 네임 서버(60)를 문의하도록 클라이언트 컴퓨터를 구성할 수 있다. 그러나, 네임 서버의 효율을 증가시키려고 할 때, 네임 서버는 최근의 네임 요구에 대한 상세한 내용을 캐시 메모리에 저장하는 경향이 있다. 통상적으로, 클라이언트는 네임 서버(60)와 직접 통신하지 않을 것이다. 그 대신에, 클라이언트는 일반적으로 그것의 로컬 네임 서버와 통신할 것이며, 로컬 네임 서버는 요구가 최종적으로 네임 서버(60)(이것이 병렬 웹 서버(10)에 대해 "권한(authority)"을 갖는 네임 서버임)로 전달될 때까지 일련의 다른 네임 서버와 통신할 것이다. 다음에, 네임 서버(60)에 의해 분석된 인터넷 어드레스는 이러한 모든 네임 서버를 통해 도로 전달되는데, 그 각각의 네임 서버는 www.ibm.com의 분석 결과인 특정 인터넷 어드레스를 캐싱하기로 결정할 수 있다. 따라서, www.ibm.com과 통신할 필요가 있을 때마다 네임 서버와 접촉하도록 클라이언트를 구성한다면, 클라이언트는 여전히 네임 서버(60)에 의해 이미 분석된 어드레스를 수신하는 경향이 있는데, 왜냐하면 예를 들면, 로컬 네임 서버는 클라이언트가 그 네임에 대한 인터넷 주소를 이미 알고 있어서 요구를 더 이상 전달할 필요가 없다고 판단할런지도 모르기 때문이다. 따라서, 네임 서버(60)상에서의 부하 밸런싱 기술은 서버 어드레스에 대한 클라이언트의 최초 요구에는 유용하지만, 동일한 일반적 서버 네임에 대한 이후의 어떠한 후속 링크에 대해서도 유용하지 않음을 알 수 있다.The client computer can be configured to query the name server 60 for subsequent requests. However, when trying to increase the efficiency of a name server, the name server tends to store details of recent name requests in cache memory. Typically, the client will not communicate directly with name server 60. Instead, the client will generally communicate with its local name server, which is the name whose request ultimately has "authority" for name server 60 (which is parallel web server 10). Server will communicate with a series of other name servers until it is delivered. The Internet address resolved by name server 60 is then passed back through all these name servers, each of which may decide to cache a particular Internet address that is the result of the analysis of www.ibm.com. . Thus, if you configure the client to contact the name server whenever it needs to communicate with www.ibm.com, the client still tends to receive addresses that have already been resolved by the name server 60, for example For example, the local name server may determine that the client already knows the Internet address for the name and no longer needs to forward the request. Thus, it can be seen that the load balancing technique on name server 60 is useful for the client's initial request for the server address, but not for any subsequent links to the same generic server name.

이러한 문제를 극복하기 위해, 웹 페이지가 서비스될 때 서버내의 웹 페이지의 내용을 수정하는 능력을 바람직한 실시예의 병렬 웹 서버에 제공하며 이 웹 서버는 이 능력을 이용하여 후속 링크가 참조하는 프로세서의 이 네임을 수정할 수 있다. 도 1의 예를 고려하면, www1.ibm.com, www2.ibm.com, 및 www3.ibm.com이 모두 www.ibm.com의 병렬 웹 서버내의 서버이기 때문에, 만약 그렇지 않다면 www.ibm.com을 참고하였을 후속 링크는 특정 프로세서, 예를 들면 www1.ibm.com을 참조하도록 변경될 수 있다. 이것은 후속 페이지에 대한 요구가 병렬 웹 서버내의 특정 프로세서로 향하도록 하며, 명백한 바와 같이, 참조된 웹 페이지가 현재 디스플레이된 웹 페이지내에 내장된 그래픽 이미지인지 또는 사용자가 디스플레이된 웹 페이지로부터 액세스할 수 있는 상이한 웹 페이지에 대한 후속 링크인지에 관계없이 모든 참조된 웹 페이지에 대해 적용될 수 있다.To overcome this problem, it provides the parallel web server of the preferred embodiment with the ability to modify the content of the web page in the server when the web page is serviced, which uses this capability to provide the processor's ability to refer to subsequent links. You can modify the name. Considering the example of FIG. 1, since www1.ibm.com, www2.ibm.com, and www3.ibm.com are all servers within a parallel web server at www.ibm.com, otherwise www.ibm.com Subsequent links that may be referenced may be modified to refer to a particular processor, for example www1.ibm.com. This directs the request for subsequent pages to a particular processor in the parallel web server, and as apparent, the referenced web page is a graphical image embedded within the currently displayed web page or can be accessed by the user from the displayed web page. It can be applied to all referenced web pages regardless of whether they are subsequent links to different web pages.

전체 병렬 서버에 대한 일반적 네임(www.ibm.com) 대신에 명확한 프로세서 네임(예를 들면, www1.ibm.com)을 지정하는 바람직한 실시예의 기술을 사용함으로써, 머지않아 서버의 여러 프로세서에 가해지는 부하를 어느 정도 제어할 수 있다. 이러한 제어를 통해 '토스팅'의 가능성을 감소시킬 수 있다.By using the preferred embodiment's technique to specify a definite processor name (for example, www1.ibm.com) instead of the generic name (www.ibm.com) for the entire parallel server, The load can be controlled to some extent. This control can reduce the likelihood of 'toasting'.

이하, 바람직한 실시예의 시스템에 대해 도 1을 참조하여 보다 상세히 설명한다. 도 1에서, 바람직한 실시예를 구현하는데 필요한 프로세서(30)의 기능적 구성 요소가 도시되어 있다. 바람직하게는 WWW 서비스를 제공할 서버(10)의 다른 모든 프로세서(20, 40)는 동일한 구성 요소를 포함하지만, 도면의 명료성을 위해 이들은 도면에서 생략되었다. 바람직한 실시예의 대안으로서, 다수의 프로세서중 특정 하나의 프로세서 또는 이러한 구성 요소의 기능을 수행하는데 전용되는 완전히 독립적인 프로세서상에 블럭 검색 수단 이외에 하나 이상의 기능적 구성 요소가 제공될 수 있다. 따라서, 한 프로세서가 결정 수단의 기능을 수행하는데 전용될 수 있으며, 블럭 검색 수단에 의해 검색된 모든 웹 페이지가 결정 수단에 의한 처리를 위해 상기 프로세서에 전송될 수 있다.Hereinafter, the system of the preferred embodiment will be described in more detail with reference to FIG. 1. In Figure 1, the functional components of the processor 30 required to implement the preferred embodiment are shown. Preferably all other processors 20, 40 of the server 10 that will provide WWW services include the same components, but these are omitted in the drawings for clarity. As an alternative to the preferred embodiment, one or more functional components may be provided in addition to the block retrieval means on a particular one of the plurality of processors or a completely independent processor dedicated to performing the functions of these components. Thus, one processor can be dedicated to performing the function of the determining means, and all web pages retrieved by the block searching means can be sent to the processor for processing by the determining means.

만약 클라이언트 컴퓨터(50)가 네임 서버(60)를 문의한 후 프로세서(30)의 인터넷 어드레스를 제공받으면, 이 클라이언트(50)는 웹 페이지에 대한 요구로써 직접 프로세서(30)를 접촉할 것이다. 블럭 검색 수단(80)은 클라이언트(50)에 의해 요구된 웹 페이지를 나타내는 파일을 작성하기 위해 저장 장치(120)내의 데이터를 액세스할 것이다. 상기 파일내에 참조된 임의의 웹 페이지에 대해서, 해당 웹 페이지에 대한 후속 요구를 처리하는데 어느 특정 프로세서를 선택해야 하는지를 판정하는데 결정 수단(90)을 사용할 것이며, 그 프로세서에 대한 식별자(예를 들면, www1.ibm.com)가 그 파일내의 적절한 지점에 포함될 것이다.If the client computer 50 is provided with the Internet address of the processor 30 after querying the name server 60, the client 50 will directly contact the processor 30 as a request for a web page. The block retrieval means 80 will access the data in the storage device 120 to create a file representing the web page requested by the client 50. For any web page referenced in the file, determining means 90 will be used to determine which particular processor should be selected to process subsequent requests for that web page, and an identifier for that processor (e.g., www1.ibm.com) will be included at the appropriate point in the file.

후에 보다 상세히 논의되는 바와 같이, 결정 수단(90)은, 후속 요구를 처리할 프로세서를 결정하는 경우, 서버의 모든 프로세서에 대한 부하에 관한 정보를 제공하는 부하 분배 기록을 참조한다. 프로세서(30)의 활동을 주기적으로 평가하여 부하 분배 기록내에 그 정보를 포함시키도록 부하 판정 수단(100)을 구성한다.As will be discussed in more detail later, the determining means 90 refers to a load distribution record that provides information about the load for all processors in the server when determining which processor to process subsequent requests. The load determination means 100 is configured to periodically evaluate the activity of the processor 30 and to include the information in the load distribution record.

일단 결정 수단이 어떤 프로세서가 임의의 참조된 웹 페이지를 처리할 것인지를 판정하고, 그에 대한 정보가 블럭 검색 수단에 의해 작성된 파일내에 포함되었으면, 그 파일은 클라이언트 컴퓨터(50)의 브라우저(130)로 전송하기 위한 전달 수단(110)으로 전달된다. 그 후, 브라우저(130)는 클라이언트 컴퓨터(50)의 사용자에게 제시하기 위해 그 파일로부터 웹 페이지를 작성하고, 참조된 웹 페이지에 대한 요구를 이 파일내에서 식별된 프로세서에 직접 전송할 것이다.Once the determining means determines which processor will process any referenced web page and the information about it is contained in a file created by the block retrieval means, the file is sent to the browser 130 of the client computer 50. Delivered to delivery means 110 for transmission. The browser 130 will then create a web page from that file for presentation to the user of the client computer 50 and send a request for the referenced web page directly to the processor identified in this file.

이제 부하 분배 기록을 획득하는 방식을 기술한다. 병렬 웹 서버는, 그 서버의 프로세서가 얼마나 바쁜지에 대한 통계 자료를 수집하며, 다음에 이러한 통계 자료를 대종하여 "부하 분배 기록"을 생성할 수 있다. 분명한 점은 여러 방식으로 이를 구현할 수 있다는 것이다. 예를 들면, 각 프로세서는 그 프로세서가 얼마나 바쁜지 주기적으로 판정하고 그 정보를 부하 분배 기록에 포함시키기 위해 소정의 중앙 집중부(central location)에 전송하는 루틴을 포함할 수 있다. 부하 분배 기록을, 각 프로세서가 액세스할 수 있게 데이터 저장 장치(120)상에 보관하거나, 혹은 그 대신에 서버의 아키텍처가 공유 메모리 구조를 지원할 경우, 서버상에서 모든 프로세서가 액세스할 수 있는 공유 메모리의 일부에 보관할 수 있다. 대안적으로, 각 프로세서가 얼마나 바쁜 상태인지를 주기적으로 평가하고, 그 후 그 정보를 병렬 웹 서버내의 다른 모든 프로세서로 전송하도록, 일련의 메시지가 통신 네트워크를 통해 각 프로세서에 전송될 수 있다. 그 후, 각 프로세서는 자신의 국부 메모리내에 부하 분배 기록을 보관하고, 이를 다른 프로세서로부터 새로운 부하 데이터를 수신할 때마다 갱신할 수 있다.We now describe how to obtain a load distribution record. The parallel web server collects statistics on how busy the server's processor is, and can then use this statistics to generate a "load distribution record". Obviously, you can implement this in many ways. For example, each processor may include routines that periodically determine how busy the processor is and send that information to a predetermined central location for inclusion in the load distribution record. Load balancing records are kept on the data storage device 120 for each processor to access, or instead of shared memory accessible to all processors on the server if the server's architecture supports a shared memory structure. Can be stored in some. Alternatively, a series of messages may be sent to each processor over a communication network to periodically evaluate how busy each processor is and then send that information to all other processors in the parallel web server. Each processor can then keep a load distribution record in its local memory and update it each time it receives new load data from another processor.

그 후, 각 프로세서(20, 30, 40)의 결정 수단(90)은 후속 링크 및 후속하여 서비스되는 웹 페이지내에 참조된 이미지의 인터넷 네임을 동적으로 변경시키는데 이 부하 분배 기록을 사용한다. 이 프로파일은 웹 서버 관리자에 의해 구성가능한 횟수로 주기적으로 갱신된다. 이러한 내용 변경을 행함으로써, 바빠지기 시작하는 프로세서로 향하는 후속 요구를 비례적으로 보다 작게 하여, 프로세서가 "토스트"된 때의 심각한 성능 충격을 방지할 수 있게 되는 효과를 얻을 수 있다. 프로세서가 복구되면, 이 프로세서에는 더 많은 요구가 향하게 될 것이고, 따라서 감시(monitoring) 및 부하 튜닝(load-tunning) 사이클이 계속될 것이다.The determining means 90 of each processor 20, 30, 40 then uses this load distribution record to dynamically change the Internet name of the image referenced in subsequent links and subsequently serviced web pages. This profile is updated periodically by a number configurable by the web server administrator. By making this change, it is possible to obtain the effect that the subsequent request to the processor which is getting busy becomes proportionately smaller, thereby avoiding the severe performance impact when the processor is "toasted". Once the processor is restored, more demand will be placed on the processor, thus continuing the monitoring and load-tunning cycles.

클라이언트로부터의 요구를 수신한 때, 본 발명의 바람직한 실시예에 따라 프로세서에 의해 실행되는 프로세스에 대해 이하 도 2를 참조하여 기술한다. 단계(200)에서, 프로세서는 클라이언트로부터의 요구를 기다린다. 단계(210)에서, 클라이언트 컴퓨터의 브라우저로부터 요구(205)가 수신된다. 그 후, 단계(220)에서 어떤 웹 페이지가 요구되었는지를 프로세서가 판정한 후, 블럭 검색 수단(80)이 데이타베이스(120)로부터 그 페이지를 인출하고 파일을 작성한다(단계(230)). 다음에, 단계(240)에서 그 파일내의 다른 웹 페이지에 대한 임의의 참조부가 식별되며, 결정 수단(90)은 가장 최근의 부하 분배 기록(270)을 사용하여 각 웹 페이지에 대해 그 웹 페이지에 대한 요구를 어떤 프로세서가 서비스해야 하는지를 판정한다. 따라서, 만약 웹 페이지상의 후속 요구가 'second_page.html'라 하고, 결정 수단이 프로세서(20)가 그 요구를 서비스해야 함을 판정하면, 파일내의 참조부는 'http:/www1.ibm.com/second_page.html'을 판독하기 위해 변경될 것이다.When receiving a request from a client, a process executed by a processor according to a preferred embodiment of the present invention is described below with reference to FIG. In step 200, the processor waits for a request from the client. In step 210, a request 205 is received from a browser of a client computer. Then, after the processor determines which web page is requested in step 220, the block retrieval means 80 retrieves the page from the database 120 and creates a file (step 230). Next, in step 240 any reference to another web page in the file is identified, and the determining means 90 uses the most recent load distribution record 270 to display that web page for each web page. Determine which processor should service the request. Thus, if the subsequent request on the web page is called 'second_page.html' and the determining means determines that the processor 20 should service the request, then the reference in the file is 'http: /www1.ibm.com/second_page' will be changed to read .html '.

일단 이러한 후속 하이퍼링크가 결정 수단에 의해 완료되면, 단계(250)에서 클라이언트 브라우저로 파일이 전송된다. 다음에, 바람직한 실시예에서, 단계(260)에서 프로세서가 얼마나 바쁜 상태인지를 재평가하고, 그 평가치에 근거하여 부하 분배 기록을 갱신하도록 이 프로세서를 구성한다. 이를 실행한 후, 프로세서는 단계(200)로 복귀하여 클라이언트로부터의 다음 요구를 기다린다.Once this subsequent hyperlink is completed by the determining means, the file is transferred to the client browser in step 250. Next, in a preferred embodiment, the processor is configured to reevaluate how busy the processor is in step 260 and to update the load distribution record based on that estimate. After executing this, the processor returns to step 200 to wait for the next request from the client.

전술한 바와 같이, 파일내에 참조된 후속 웹 페이지는 2가지 유형으로 분류될 수 있다. 그 첫 번째 유형으로, 사용자에게 디스플레이하기 위해 현재의 웹 페이지를 작성하는 동안 브라우저가 검색할 필요가 있는 웹 페이지를 참조할 수 있다. 예를 들면, 기본 파일은 웹 페이지에 대한 모든 텍스트를 포함할 수 있지만, 디스플레이될 임의의 이미지에 대한 데이터는 통상적으로 포함되지 않을 것이며, 오히려 이미지를 포함하는 웹 페이지에 대한 참조부가 브라우저에게 복귀되는 파일내에 제공될 것이다. 브라우저는 사용자에게 완전한 웹 페이지를 재생시키기 위해 이들 웹 페이지를 검색할 필요가 있을 것이다.As mentioned above, subsequent web pages referenced in a file can be classified into two types. In the first type, you can refer to a web page that the browser needs to search while creating the current web page for display to the user. For example, a base file may contain all the text for a web page, but data for any image to be displayed will typically not include, but rather a reference to the web page containing the image is returned to the browser. Will be provided in the file. The browser will need to retrieve these web pages in order for the user to play the complete web pages.

파일내의 레퍼런스 웹 페이지의 두 번째 유형은 디스플레이를 위한 초기 웹 페이지를 생성하기 위해 브라우저에 의해 요구되지 않는 후속 링크일 것이다. 대신에, 이들은 일단 웹 페이지가 디스플레이되었을 때 사용자가 선택할 수 있는 페이지일 것이다. 통상적으로, 사용자는 스크린상에 특히 강조된 워드 또는 이미지를 선택할 수 있을 것이며, 이들 워드 및 이미지는 다른 웹 페이지와 연관되어 있다. 이러한 선택시에, 브라우저는 그 파일로부터, 그 웹 페이지에 대한 요구를 서비스할 프로세서의 어드레스를 검색하고 그 프로세서와 직접 접촉할 것이다.The second type of reference web page in the file will be subsequent links that are not required by the browser to generate the initial web page for display. Instead, they will be pages that the user can select once the web page is displayed. Typically, a user will be able to select a word or image that is particularly highlighted on the screen, and these words and images are associated with other web pages. In this selection, the browser will retrieve from that file the address of the processor that will service the request for the web page and contact the processor directly.

특히, 위에서 식별된 제 1 유형의 후속 웹 페이지에 관해, 도 3은 서버의 이용가능한 프로세서중 이 제 1 유형의 웹 페이지에 대한 요구를 분할하는데 결정 수단(90)이 어떻게 부하 분포 기록을 사용할 수 있는지를 예시하고 있다. 브라우저는 사용자에게 디스플레이하기 위한 완전한 웹 페이지를 작성할 수 있도록 거의 즉시 이러한 제 1 유형의 웹 페이지를 요구할 것이기 때문에 원래의 웹 페이지가 브라우저로 전달된 바로 직후에 이들 요구가 서버에게 도로 전송될 것을 예측할 수 있다.In particular, with respect to subsequent web pages of the first type identified above, FIG. 3 shows how the determining means 90 can use the load distribution record to split the request for this first type of web page among the available processors of the server. It illustrates if there is. Because the browser will require this first type of web page almost immediately to create a complete web page for display to the user, it can be expected that these requests will be sent back to the server immediately after the original web page is delivered to the browser. have.

도 3에서, 각 프로세서상의 부하를 최대 부하의 백분율로서 각 프로세서에 대해 도시하였다. 전형적으로 최대 부하는, 프로세서가 허용가능한 응답 시간을 제공할 수 없게 되는 시점으로서 결정되며, 이는 일반적으로 서버 관리자에 의해 결정된다. 부하를 평가할 수 있는 그 밖의 다른 방법도 존재함은 명백하다. 도 3으로부터, 프로세서 2가 가장 부하가 많이 걸리며, 그 다음으로는 프로세서 3이며, 프로세서 1이 가장 부하가 적게 걸림을 알 수 있다. 예를 들어, 9개의 제 1 유형의 후속 웹 페이지가 존재할 경우, 결정 수단은 각 프로세서에 대한 백분율 부하 도면을 사용하여 이들 9개의 웹 페이지중 몇 개가 각 프로세서에 의해 서비스되어야 하는지를 판정할 수 있다.In Figure 3, the load on each processor is shown for each processor as a percentage of the maximum load. Typically the maximum load is determined as the point at which the processor will not be able to provide an acceptable response time, which is generally determined by the server administrator. Obviously, there are other ways to assess the load. It can be seen from FIG. 3 that processor 2 is the most loaded, processor 3 is next, and processor 1 is the least loaded. For example, if there are nine subsequent types of first web pages, the determining means may use the percentage load plot for each processor to determine how many of these nine web pages should be served by each processor.

도 3에 도시된 바와 같이, 각 프로세서에 대한 미사용 부하가 동일한 크기의 블럭으로 분할되어서, 전체 9개의 블럭이 생성된다. 프로세서에 걸린 부하를 밸런싱하는 적절한 방법은 그 프로세서의 미사용 부하와 연관된 블럭의 수만큼 여러 웹 페이지에 대한 후속 요구를 서비스하는 책임을 특정 프로세서에 배정하는 것이다. 따라서, 도 3에 도시된 예에서, 프로세서 1의 어드레스는 5개의 웹 페이지에 대해 참조되며, 프로세서 2의 어드레스는 하나의 웹 페이지에 대해 참조되고, 프로세서 3의 어드레스는 3개의 웹 페이지에 대해 참조될 것이다.As shown in Fig. 3, the unused load for each processor is divided into blocks of the same size, so that a total of nine blocks are generated. A suitable way to balance the load placed on a processor is to assign the responsibility to a particular processor to service subsequent requests for multiple web pages by the number of blocks associated with that processor's unused load. Thus, in the example shown in FIG. 3, the address of processor 1 is referenced for five web pages, the address of processor 2 is referenced for one web page, and the address of processor 3 is referenced for three web pages. Will be.

전술한 설명으로부터, 본 발명의 바람직한 실시예에 따르면, 임의의 후속 링크가 검색되어야 하는 서버 프로세서의 인터넷 네임을 변경하기 위하여, 웹 페이지의 내용은 이들이 서비스된 때 동적으로 변경된다는 것은 분명하다. 이 프로세서는 동일한 웹 내용을 액세스할 수 있는 프로세스 집합으로부터 선택되며, 이러한 선택은 이들 서버의 상대적인 부하에 근거하여 행해진다. 이러한 방식으로, 더욱 효율적인 부하 밸런싱이 달성되며, 프로세서 "토스팅"의 문제는 더 심각하게 되기 전에 방지된다.From the foregoing description, it is clear that according to the preferred embodiment of the present invention, in order to change the Internet name of the server processor for which any subsequent link should be searched, the contents of the web pages are changed dynamically when they are served. This processor is selected from a set of processes that can access the same web content, and this selection is made based on the relative load of these servers. In this way, more efficient load balancing is achieved and the problem of processor "toasting" is avoided before it becomes more severe.

Claims (13)

네트워크에 접속될 수 있으며 상기 네트워크에 접속된 하나 이상의 클라이언트 컴퓨터에 서비스를 제공하도록 배치된 다수의 프로세서(20, 30, 40)를 갖는 서버 컴퓨터 ― 상기 서비스는 클라이언트 컴퓨터(50)로 정보 블럭을 제공하는 것을 포함하며, 상기 프로세서는 상기 정보 블럭에 대한 데이터가 저장된 데이터 저장 장치(120)로 액세스함 ― 에 있어서,A server computer having a plurality of processors 20, 30, 40 that can be connected to a network and arranged to provide services to one or more client computers connected to the network, the service providing information blocks to the client computer 50. Wherein the processor accesses a data storage device 120 in which data for the information block is stored; ① 상기 다수의 프로세서 각각에 제공되며, 프로세서로부터의 특정 정보 블럭에 대한 클라이언트 컴퓨터(50)로부터의 요구에 응답하여, 상기 데이터 저장 장치(120)로부터 데이터를 검색하여 상기 요구된 정보 블럭을 나타내는 파일을 작성하는데 사용되는 블럭 검색 수단(80) ― 상기 파일은 상기 클라이언트(50)에 의해 요구될 수 있는 후속 정보 블럭에 대한 참조부(references)를 포함함 ― 과,A file provided to each of said plurality of processors, in response to a request from a client computer 50 for a particular block of information from the processor, retrieving data from said data storage device 120 and representing said requested block of information; Block retrieval means (80) used to create a file, the file containing references to subsequent blocks of information that may be required by the client (50); ② 상기 프로세서에 대한 활동 데이터(activity data)를 주기적으로 판정하여 상기 서버의 모든 프로세서에 대해 유지되는 부하 분배 기록(a load distribution record)에 포함시키는 부하 판정 수단(100)과,(2) load determination means 100 for periodically determining activity data for the processor and including it in a load distribution record maintained for all processors of the server; ③ 상기 블럭 검색 수단(80)에 의해 작성된 파일내의 후속 정보 블럭에 대한 각 참조부에 대해, 상기 부하 분배 기록에 근거하여, 그 후속 정보 블럭에 대한 클라이언트 컴퓨터(50)로부터의 요구를 어떤 프로세서가 서비스해야 하는지를 판정하고, 상기 블럭 검색 수단(80)에 의해 작성된 상기 파일내에 그 프로세서에 대한 어드레스를 포함시키도록 구성되는 결정 수단(90)과,(3) For each reference portion for the subsequent information block in the file created by the block retrieval means 80, a processor requests a request from the client computer 50 for the subsequent information block based on the load distribution record. Determining means (90) configured to determine whether to service and to include an address for the processor in the file created by the block retrieval means (80); ④ 상기 파일을 상기 클라이언트 컴퓨터(50)에 전송하는 전달 수단(110)을 포함하는 서버 컴퓨터.(4) a server computer comprising transfer means (110) for transferring said file to said client computer (50). 제 1 항에 있어서,The method of claim 1, 상기 부하 판정 수단(100)은 각 프로세서에 대한 활동 데이터를 판정하기 위해 상기 다수의 프로세서 각각에 제공되는 서버 컴퓨터.The load determining means (100) is provided to each of the plurality of processors to determine activity data for each processor. 제 1 항 또는 제 2 항에 있어서,The method according to claim 1 or 2, 상기 결정 수단(90)은 상기 다수의 프로세서 각각에 제공되는 서버 컴퓨터.And said determining means (90) is provided to each of said plurality of processors. 제 1 항 내지 제 3 항중 어느 한 항에 있어서,The method according to any one of claims 1 to 3, 상기 파일에 의해 표현되는 상기 정보 블럭을 작성할 때, 상기 클라이언트 컴퓨터(50)에 의해 다수의 후속 정보 블럭이 요구될 경우, 상기 결정 수단(90)은 상기 부하 분배 기록에 의해 지시되는 바와 같이, 프로세서상의 부하가 많을 수록, 프로세서가 서비스할 후속 정보 블럭의 수가 적게 되도록, 임의의 특정 프로세서가 서비스할 이들 후속 정보 블럭의 수를 판정하도록 구성되는 서버 컴퓨터.When creating the information block represented by the file, if a large number of subsequent information blocks are required by the client computer 50, the determining means 90 causes the processor, as indicated by the load distribution record. The server computer configured to determine the number of these subsequent information blocks to be serviced by any particular processor such that the more load on the phase, the less the number of subsequent information blocks to service by the processor. 제 1 항 내지 제 4항중 어느 한 항에 있어서,The method according to any one of claims 1 to 4, 상기 후속 정보 블럭중 하나 이상의 정보 블럭은 상기 블럭 정보를 작성할 때 상기 클라이언트 컴퓨터(50)에 의해 요구될 이미지 파일인 서버 컴퓨터.At least one of the subsequent information blocks is an image file to be requested by the client computer (50) when creating the block information. 제 1 항 내지 제 5 항중 어느 한 항에 있어서,The method according to any one of claims 1 to 5, 상기 네트워크는 인터넷인 서버 컴퓨터.And said network is the Internet. 제 6 항에 있어서,The method of claim 6, 상기 서비스는 월드 와이드 웹(World Wide Web) 서비스이며, 상기 정보 블럭은 웹 페이지인 서버 컴퓨터.The service is a World Wide Web service, and the information block is a web page. 제 7 항에 있어서,The method of claim 7, wherein 상기 결정 수단(90)에 의해 상기 파일내에 포함되는 후속 정보 블럭에 대한 어드레스는 그 정보 블럭에 대한 식별자 및 상기 판정 수단(90)이 그 정보 블럭에 대한 요구를 서비스할 프로세서로서 판정한 프로세서에 대한 고유한 식별자를 모두 포함하는 어드레스 스트링의 형태를 취하는 서버 컴퓨터.The address for the subsequent information block included in the file by the determining means 90 is the identifier for that information block and for the processor that the determining means 90 has determined as the processor to service the request for that information block. Server computer in the form of an address string containing all unique identifiers. 네트워크에 접속될 수 있으며 상기 네트워크에 접속된 하나 이상의 클라이언트 컴퓨터에 서비스를 제공하도록 배치된 다수의 프로세서(20, 30, 40)를 갖는 서버 컴퓨터를 조작하는 방법 ― 상기 서비스는 클라이언트 컴퓨터(50)로 정보 블럭을 제공하는 것을 포함하며, 상기 프로세서는 상기 정보 블럭에 대한 데이터가 저장된 데이터 저장 장치(120)로 액세스함 ― 에 있어서,A method of manipulating a server computer having a plurality of processors 20, 30, 40 that can be connected to a network and arranged to provide services to one or more client computers connected to the network, the service being directed to a client computer 50. Providing an information block, wherein the processor accesses a data storage device 120 in which data for the information block is stored; (a) 프로세서로부터의 특정 정보 블럭에 대한 클라이언트 컴퓨터(50)로부터의 요구에 응답하여, 상기 요구된 정보 블럭을 나타내는 파일을 작성하기 위해서, 그 프로세서를 사용하여 상기 데이터 저장 장치(120)로부터 데이터를 검색하는 단계 ― 상기 파일은 상기 클라이언트(50)에 의해 요구될 수 있는 후속 정보 블럭에 대한 레퍼런스를 포함함 ― 와,(a) in response to a request from a client computer 50 for a particular block of information from a processor, in order to create a file representing the requested block of information, the data from the data storage device 120 using that processor; Retrieving a file, the file containing a reference to a subsequent block of information that may be required by the client 50; and (b) 상기 프로세서에 대한 활동 데이터를 주기적으로 판정하여 상기 서버의 모든 프로세서에 대해 유지되는 부하 분배 기록에 포함시키는데 부하 판정 수단(100)을 사용하는 단계와,(b) using load determination means 100 to periodically determine activity data for the processor and include it in the load distribution record maintained for all processors in the server; (c) 상기 단계 (a)에서 작성된 상기 파일내의 후속 정보 블럭에 대한 각 참조부에 대해, 상기 부하 분배 기록에 근거하여 어떤 프로세서가 그 후속 정보 블럭에 대한 상기 클라이언트 컴퓨터(50)로부터의 요구를 서비스해야 하는지를 판정하고, 그 프로세서에 대한 어드레스를 상기 단계 (a)에서 작성된 상기 파일내에 포함시키는 단계와,(c) For each reference to a subsequent block of information in the file created in step (a), a processor, based on the load distribution record, requests a request from the client computer 50 for that subsequent block of information. Determining whether to service and including an address for the processor in the file created in step (a); (d) 상기 파일을 상기 클라이언트 컴퓨터(50)에 전송하는 단계를 포함하는 서버 컴퓨터 조작 방법.(d) transmitting the file to the client computer (50). 제 9 항에 있어서,The method of claim 9, 상기 다수의 프로세서 각각은 상기 단계 (b)를 수행하도록 배치된 부하 판정 수단(100)을 포함하는 서버 컴퓨터 조작 방법.Wherein each of said plurality of processors comprises load determining means (100) arranged to perform said step (b). 제 9 항 또는 제 10 항에 있어서,The method according to claim 9 or 10, 상기 프로세서 각각은 상기 단계 (c)를 수행하도록 배치된 결정 수단(90)을 포함하는 서버 컴퓨터 조작 방법.Each said processor comprising determining means (90) arranged to perform said step (c). 제 9 항 내지 제 11항중 어느 한 항에 있어서,The method according to any one of claims 9 to 11, 상기 파일에 의해 표시되는 정보 블럭을 작성할 때 상기 클라이언트 컴퓨터(50)에 의해 다수의 후속 정보 블럭이 요구될 경우, 상기 단계 (c)는 상기 부하 분배 기록에 의해 지시되는 바와 같이, 프로세서상의 부하가 많을 수록, 그 프로세서가 서비스할 후속 정보 블럭의 수가 적게 되도록, 임의의 특정 프로세서가 서비스할 이들 후속 정보 블럭의 수를 판정하는 단계를 포함하는 서버 컴퓨터 조작 방법.If a number of subsequent blocks of information are required by the client computer 50 when creating the information block represented by the file, the step (c) indicates that the load on the processor is reduced, as indicated by the load distribution record. Determining the number of these subsequent information blocks to be serviced by any particular processor, such that the more, the less the number of subsequent information blocks to be serviced by that processor. 제 9 항 내지 제 12 항에 있어서,The method according to claim 9, 상기 단계 (c)에서 상기 파일내에 포함되는 후속 정보 블럭에 대한 어드레스는 그 정보 블럭에 대한 식별자 및 상기 단계 (c)에서 그 정보 블럭에 대한 요구를 서비스할 프로세서로서 판정된 프로세서에 대한 고유한 식별자를 모두 포함하는 어드레스 스트링의 형태를 취하는 서버 컴퓨터 조작 방법.The address for the subsequent information block included in the file in step (c) is an identifier for that information block and a unique identifier for the processor determined as the processor to service the request for that information block in step (c). A method of operating a server computer that takes the form of an address string that includes all of the above.
KR1019980704518A 1996-01-26 1996-12-04 Load balancing across the processors of a server computer KR100308705B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB9601559A GB2309558A (en) 1996-01-26 1996-01-26 Load balancing across the processors of a server computer
GB9601559.9 1996-01-26
PCT/GB1996/002983 WO1997029423A1 (en) 1996-01-26 1996-12-04 Load balancing across the processors of a server computer

Publications (2)

Publication Number Publication Date
KR19990072167A true KR19990072167A (en) 1999-09-27
KR100308705B1 KR100308705B1 (en) 2001-11-02

Family

ID=47257166

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980704518A KR100308705B1 (en) 1996-01-26 1996-12-04 Load balancing across the processors of a server computer

Country Status (3)

Country Link
KR (1) KR100308705B1 (en)
MY (1) MY121239A (en)
TW (1) TW351880B (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100358105B1 (en) * 1999-12-24 2002-10-25 한국전자통신연구원 Distributed spatial analysis system and method for considering server overload
KR100930190B1 (en) * 2001-09-28 2009-12-07 레벨 3 시디엔 인터내셔널 Configurable Adaptive Global Traffic Control and Management

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI457470B (en) * 2010-12-31 2014-10-21 Hon Hai Prec Ind Co Ltd Rack device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100358105B1 (en) * 1999-12-24 2002-10-25 한국전자통신연구원 Distributed spatial analysis system and method for considering server overload
KR100930190B1 (en) * 2001-09-28 2009-12-07 레벨 3 시디엔 인터내셔널 Configurable Adaptive Global Traffic Control and Management

Also Published As

Publication number Publication date
MY121239A (en) 2006-01-28
KR100308705B1 (en) 2001-11-02
TW351880B (en) 1999-02-01

Similar Documents

Publication Publication Date Title
US5867706A (en) Method of load balancing across the processors of a server
US8055706B2 (en) Transparent request routing for a partitioned application service
KR100296361B1 (en) Improved management of and access to information and other material via the world wide web
US6623527B1 (en) Method for providing a document with a button for a network service
KR100300494B1 (en) Method and apparatus for precaching data at a server
US6366947B1 (en) System and method for accelerating network interaction
US7219162B2 (en) System and method for accessing content of a web page
US6253234B1 (en) Shared web page caching at browsers for an intranet
KR19980063407A (en) High-availability computer server system
US5915096A (en) Network browsing system and method
JPH1091638A (en) Retrieval system
JP2000187609A (en) Method for retrieving requested object and recording device
KR20030060932A (en) User specified parallel data fetching for optimized web access
US20050283719A1 (en) HTML file processing technique
KR100308705B1 (en) Load balancing across the processors of a server computer
CN1444747B (en) Content manager
US20020092012A1 (en) Smart-caching system and method
US6754697B1 (en) Method and apparatus for browsing and storing data in a distributed data processing system
EP1052827A2 (en) Dynamic resource modification in a communication network
JP2005122358A (en) Web content delivery system, web content delivery program, and proxy server
JP2007026457A (en) Browsing frequency data provision method, relay device for the same, program, and recording medium

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120725

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20130719

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20140725

Year of fee payment: 14

LAPS Lapse due to unpaid annual fee