PL183401B1 - Komputer serwera dołączany do sieci i sposób jego eksploatacji - Google Patents

Komputer serwera dołączany do sieci i sposób jego eksploatacji

Info

Publication number
PL183401B1
PL183401B1 PL96327918A PL32791896A PL183401B1 PL 183401 B1 PL183401 B1 PL 183401B1 PL 96327918 A PL96327918 A PL 96327918A PL 32791896 A PL32791896 A PL 32791896A PL 183401 B1 PL183401 B1 PL 183401B1
Authority
PL
Poland
Prior art keywords
information
processor
file
processors
client computer
Prior art date
Application number
PL96327918A
Other languages
English (en)
Other versions
PL327918A1 (en
Inventor
- Clark Andrew J. Stanford
Sean J. Martin
Original Assignee
Ibm
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ibm filed Critical Ibm
Publication of PL327918A1 publication Critical patent/PL327918A1/xx
Publication of PL183401B1 publication Critical patent/PL183401B1/pl

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

1. Komputer serwera dolaczany do sieci, który zawiera wiele procesorów do swiadczenia uslug jednem u lub wielu komputerom klienckim dolaczonym do sieci, przy czym uslugi obejm uja dostarczanie bloków informacji do kompu- tera klienckiego, a procesory m aja dostep do bazy danych, w której przechowywane s a bloki informacji, znamienny tym, ze zawiera, przy kazdym z wielu procesorów (20,30, 40), jednostke (80) wyszukujaca w odpowiedzi na zadanie kom- putera klienckiego (50) okreslonego bloku informacji z pro- cesora (20,30,40), dane z bazy ( 1 2 0 ) danych do zestawienia pliku reprezentujacego zadany blok informacji, przy czym ten plik zawiera odniesienia do kolejnych bloków informa- cji, których moze zadac komputer kliencki (50), oraz zawie- ra jednostke ( 1 0 0) wyznaczajaca obciazenia do okresowego okreslania danych o aktywnosci procesorów (20, 30, 40) przez wlaczenie ich do zapisu rozkladu obciazenia utrzymy- wanego dla wszystkich procesorów (20, 30, 40), jednostke (90) decyzyjna okreslajaca, dla kazdego odniesienia do ko- lejnego bloku informacji w pliku zestawionym w jednostce (80) wyszukujacej i na podstawie zapisu rozkladu obciaze- nia, który procesor (20, 30, 40) powinien obsluzyc zadanie od komputera klienckiego (50) dla tego kolejnego bloku in- formacji, oraz adres dla tego procesora (20, 30, 40) w pliku zestawionym w jednostce (80) wyszukujacej, i jednostke (110) wysylajaca plik do komputera klienckiego (50). FIG. 1 PL PL PL PL PL PL PL PL PL

Description

Przedmiotem wynalazku jest komputer serwer dołączany do sieci i sposób jego eksploatacji.
Występuje duże zapotrzebowanie na komputery o dużej mocy do sieci w ogólności, a zwłaszcza do Internetu. Internet jest potężną sieciązłożonąz wielu mniejszych sieci połączonych za pośrednictwem urządzeń takich jak mosty i przejścia. Teoretycznie, dowolny komputer dołączony do Internetu ma możliwość wymiany informacji z dowolnym innym komputerem, który dołączony jest do Internetu. Jednakowoż, ponieważ komputery często zawierają informację precyzyjną, wiele komputerów i sieci zaopatrzonych jest w zabezpieczania, ograniczające w różnym stopniu wymianę informacji między komputerami.
Ponieważ Internet reprezentuje bardzo potężną strukturę rozsiewania informacji, to rozwinęła się pewna liczba usług, które wykorzystują Internet do przenoszenia informacji z jednego komputera na drugi. Przykładami takich usług są usługi w globalnym systemie informacyjnym (World Wide Web).
Usługa WWW jest jedną z najbardziej znanych, i najszybciej rozszerzających się z tych usług. System WWW realizowany przez Internet jest w stanie połączyć różne techniki, jak głos, wizję i tekst, i prezentować je na zasadzie zamówienia, w sposób interaktywny z każdą osobą dołączoną do Internetu z komputerem z odpowiednią konfiguracją oprogramowania i sprzętu do odczytu dowolnego dokumentu HyperMediów, który jest dostępny w dowolnym miejscu w Internecie. Dokument HyperMedialny odbierany jest w postaci pliku reprezentującego blok informacji, a w pliku zawarte są hyperodsyłacze do innych dokumentów, czyli bloków informacji, które mogą, na przykład zawierać teksty, dźwięki, obrazy lub filmy.
Ponieważ komputer otrzymujący dokument typu HyperMedia zestawia ten dokument do wyświetlenia użytkownikowi, to może on wykorzystać niektóre z tych hyperodsyłaczy w celu odebrania innych plików potrzebnych do uzupełnienia wyświetlanego obrazu. Na przykład, hyperodsyłacze mogąbyć wykorzystywane dla dostępu do plików obrazowych, które mają być wyświetlane jako część dokumentu. Po skonstruowaniu obrazu przez komputer kliencki i wyświetleniu użytkownikowi, użytkownik może mieć możliwość wybrania hyperodsyłaczy przez użycie myszy do wskazania odpowiedniego obrazu na ekranie, w celu zażądania dokumentu reprezentowanego przez ten hyperodsyłacz.
W miarę, jak coraz więcej osób wykorzystuje usługi Internetu, wzrasta zapotrzebowanie na komputery serwera, które są komputerami wieloprocesorowymi dostosowanymi do świadczenia
183 401 takich usług. Dzięki zastosowaniu wielu procesorów można przetwarzać duże ilości żądań kierowanych do serwera.
Jednakowoż przy stosowaniu takich serwerów równoległych powstaje problem zrównoważenia ruchu od klientów, wchodzącego do procesorów współpracujących w systemie równoległym, z wydawaniem dokumentów, jak na przykład stron WWW, i utrzymywania działania aplikacji na zasadzie usługi. Przy istniejących mechanizmach wyrównywania obciążenia, może się zdarzać, że jeden konkretny procesor staje się ogniskiem dla dużej ilości ruchu w pewnym okresie czasu. Technicznie określa się to zjawisko jako “przegrzanie”. W tych warunkach, procesor jest zasypany żądaniami od klientów, i grzęźnie aż praktycznie do zatrzymania, potrzebując do kilku minut na obsługę jednego żądania.
Istotą komputera serwera dołączanego do sieci, według wynalazku, który zawiera wiele procesorów do świadczenia usług jednemu lub wielu komputerom klienckim dołączonym do sieci, przy czym usługi obejmują dostarczanie bloków informacji do komputera klienckiego, aprocesory mają dostęp do bazy danych, w której przechowywane są bloki informacji, jest to, że zawiera, przy każdym z wielu procesorów, jednostkę wyszukującą w odpowiedzi na żądanie komputera klienckiego określonego bloku informacji z procesora, dane z bazy danych do zestawienia pliku reprezentującego żądany blok informacji, przy czym ten plik zawiera odniesienia do kolejnych bloków informacji, których może żądać komputer kliencki, oraz zawiera jednostkę wyznaczającą obciążenia do okresowego określania danych o aktywności procesorów przez włączenie ich do zapisu rozkładu obciążenia utrzymywanego dla wszystkich procesorów, jednostkę decyzyjną określającą dla każdego odniesienia do kolejnego bloku informacji w pliku zestawionym w jednostce wyszukującej i na podstawie zapisu rozkładu obciążenia, który procesor powinien obsłużyć żądanie od komputera klienckiego dla tego kolejnego bloku informacji, oraz adres dla tego procesora w pliku zestawionym w jednostce wyszukującej, i jednostkę wysyłającą plik do komputera klienckiego.
Korzystnie jednostka wyznaczająca obciążenia jest umieszczona przy każdym z wielu procesorów do określania danych o aktywności każdego procesora.
Korzystnie każdy z wielu procesorów zawiera jednostkę decyzyjną.
Korzystnie jednostka decyzyjna jest skonfigurowana do określania, ile kolejnych bloków informacji będzie kierowanych do konkretnego procesora tak, aby przy zwiększającym się obciążeniu procesora wskazywanym przez zapis rozkładu obciążenia, zmniejszała się liczba żądanych od tego procesora kolejnych bloków informacji.
Korzystnie jednym lub więcej niż jednym kolejnym blokiem informacji jest plik obrazowy, których żąda komputer kliencki przy tworzeniu bloku informacji.
Korzystnie sieć jest siecią Internet.
Korzystnie usługa jest usługą w globalnym systemie informacyjnym (World Wide Web), a bloki informacji są stronami WWW.
Korzystnie adres kolejnego bloku informacji włączonego do pliku przez jednostkę decyzyjną ma postać łańcucha adresowego zawierającego zarówno identyfikator tego bloku informacji jak i niepowtarzalny identyfikator procesora, który według ustalenia jednostki decyzyjnej obsłuży żądanie dotyczące tego bloku informacji.
Istotą sposobu eksploatacji pracy komputera serwera dołączanego do sieci, według wynalazku, który zawiera wiele procesorów do świadczenia usług jednemu lub wielu komputerom klienckim dołączonym do sieci, przy czym usługi obejmują dostarczanie bloków informacji do komputera klienckiego, a procesory mają dostęp do bazy danych, w której przechowywane są bloki informacji, jest to, że w odpowiedzi na nadchodzące od komputera klienckiego żądanie konkretnego bloku informacji z procesora wyszukuje się dane w bazie danych oraz zestawia się plik reprezentujący żądany blok informacji i zawierający odniesienia do kolejnych bloków informacji, których może żądać komputer kliencki, a następnie wyznacza się okresowo w jednostce wyznaczającej obciążenia dane o aktywności procesorów i włącza się je do zapisu rozkładu obciążenia utrzymywanego dla każdego z procesorów, po czym dla każdego odniesienia do następnego bloku informacji w zestawionym pliku określa się na podstawie zapisu rozkładu
183 401 obciążenia, który procesor obsłuży żądanie komputera klienckiego dotyczące tego następnego bloku informacji, i włącza się adres tego procesora w zestawiony plik oraz wysyła się plik do komputera klienckiego.
Korzystnie w trakcie określania procesora do obsługi żądania komputera klienckiego, w przypadku zażądania przez komputer kliencki wielu kolejnych bloków informacj i podczas zestawiania bloku informacji reprezentowanego przez plik, określa się ilość żądań obsługi tych kolej nych bloków informacji, które będą kierowane do konkretnego procesora, tak aby przy zwiększającym się obciążeniu procesora wskazywanym przez zapis rozkładu obciążenia, zmniejszała się liczba żądanych od tego procesora kolejnych bloków informacji.
Korzystnie adres kolejnego bloku informacji, włączonego do pliku w trakcie określania procesora do obsługi żądania komputera klienckiego, ma postać łańcucha adresowego zawierającego zarówno identyfikator tego bloku informacji jak i niepowtarzalny identyfikator procesora, który obsłuży żądanie dotyczące tego bloku informacji.
Zaletą rozwiązania według wynalazku jest rozprowadzanie niezrównoważonego obciążenia po wszystkich procesorach, dla umożliwienia uniknięcia wystąpienia efektu przegrzania.
Przedmiot wynalazku jest przedstawiony w przykładzie wykonania na rysunku, na którym fig. 1 przedstawia schemat blokowy komputera serwera według wynalazku, fig. 2 - sieć działań obrazującąprocesy realizowane w procesorze serwerze po otrzymaniu żądania od klienta, a fig. 3 - wykorzystanie zapisu rozkładu obciążenia do określenia, który z procesorów obsłuży nadchodzące żądania dotyczące bloków informacji.
W przedstawionym przykładzie wykonania wynalazku uwzględnia się usługę WWW świadczoną przez Internet i opisuje się poniżej mechanizm realizacji wtórnego wyrównywania obciążenia na pewnej liczbie procesorów współdziałających w równoległym serwerze WWW.
Przeglądając najpierw strukturę WWW, można zauważyć, że oparta jest na formatach uniwersalnych lokatorów zasobów (URL), które można uważać za specyfikujące konkretną stronę lub plik w usłudze WWW. Lokator URL oznacza zarówno maszynę serwera, jak i konkretny plik lub stronę na tej maszynie. Na przykład odsyłacz (link) mógłby mieć postać: “http://www.ibm.com/example.html”. Człon “http:” wskazuje, że używamy usługi World Wide Web, “www.ibm.com” jest nazwą w sieci Internet serwera sieciowego, od którego chcemy żądać strony, a “example.html” jest nazwą strony, którą chcemy otrzymać.
Komputer kliencki wykorzystuje oprogramowanie ogólnie zwane przeglądarką, dla zapewnienia użytkownikowi graficznego interfejsu użytkownika (GUI), umożliwiającego temu użytkownikowi poruszanie się przez sieć WWW do różnych lokatorów URL. Niekiedy użytkownik z nazwy wymienia konkretny lokator URL, lecz częściej użytkownik będzie przeskakiwał z jednego lokatora URL do innego za pomocą odniesień na strony (tak zwanych “hyperodsyłaczy” (“hyperlink”). Zatem konkretne słowo lub symbol na stronie może być skojarzone z innym lokatorem URL, tak że wybór tego słowa lub symbolu na przykład przez kliknięcie myszą w odnośnym miejscu powoduje wczytanie strony przez komputer kliencki z wybranego lokatora URL i wyświetlenie jej. Ta nowa strona może znajdować się w zupełnie innym serwerze, co strona pierwsza. Słowo lub symbol, które mapuje do innego lokatora URL zwane jest czasem “gorącym klawiszem” (“hot button”) lub podobnie. Na jednej stronie może znajdować się wiele gorących klawiszy, czyli hyperodsyłaczy.
Na jednym serwerze może rezydować wiele stron lub lokatorów URL, wtedy komputer serwera realizuje działanie charakterystyczne dla tej strony. W niektórych przypadkach może to prowadzić do komputera udostępniającego pewną aplikację, lecz w większości przypadków komputer serwera wczytuje żądaną stronę z bazy danych ze zmagazynowanymi stronami i przekazuje zwrotnie przez Internet do komputera klienckiego w celu wyświetlenia u użytkownika.
Strony te są formatowane zgodnie z formatem standardowym znanym jako HTML. Typowa strona WWW zawiera pewną część tekstu, nieco osadzonych obrazów (grafiki), i pewną liczbę odsyłaczy (links) do innych stron, które osoba przeglądająca może wybrać przez kliknięcie, jeżeli życzy sobie więcej informacji na pewien temat. Same obrazy są “stronami” WWW, których przeglądarka WWW automatycznie żąda od serwera w imieniu klienta, ściągając stronę
183 401 od komputera serwera, umożliwiając klientowi przy tym ich wyświetlanie. Te obrazy w serwerze są magazynowane zwykle jako oddzielne pliki graficzne, na przykład w standardowym formacie “.gif ’ lub “.jpeg”. Tekst HTML zawiera odniesienia do tych graficznych plików, które wzywają klienta do wczytania z serwera również wyszczególnionych plików, umożliwiając klientowi przy tym wyświetlanie zarówno tekstu HTML, jak i przyporządkowanych do niego obrazów. Następne odsyłacze ze strony mogą prowadzić albo do pewnej innej strony na tym samym serwerze, co strona podstawowa, lub do dowolnego innego serwera WWW w sieci Internet. Dla zilustrowania wynalazku, będą omawiane pliki graficzne i dalsze odsyłacze do tego samego serwera, na którym jest strona podstawowa.
Istnieje pewna różnorodność oprogramowania przeglądarkowego dostępnego w handlu, do wykorzystania w komputerach klienckich, przy czym wszystkie takie przeglądarki odczytują format HTML i inne standardowe formaty WWW, i mogąpoprawnie wyświetlać czyli wyprowadzać pliki w tych formatach. Podobnie, przez takie programy sąrównież rozumiane i realizowane mechanizmy poruszania się między różnymi lokatorami URL.
W rozwiązaniu według wynalazku wyrównywanie obciążenia wykorzystuje się w połączeniu z serwerem równoległym w celu doprowadzenia do pojawiania się kilku procesorów serwera pod tą samą nazwą sieciową Internetu. Na przykład, jak to przedstawiono na figurze 1, równoległy serwer 10 www.ibm.com, może być obsługiwany przez procesory 20,30,40, nazwane na przykład wwwl.ibm.com, www2.ibm.com i www3.ibm.com. Oprogramowanie wyrównujące obciążenie zestawia żądanie, kierowane do serwera 10 www.ibm.com, i powoduje przesłanie go do jednego z procesorów stanowiących część równoległego serwera WWW. Kiedy pewien program na komputerze klienckim 50 życzy sobie połączenia z procesorem serwera równoległego 10, porozumiewa się z systemem przetwarzania danych często nazywanym serwerem imiennym 60, dla otrzymania adresu sieciowego do pożądanego serwera. Decyzyjne układy logiczne 70 służą do okresowego sprawdzania procesorów lub komputerów w serwerze równoległym 10, i wyboru jednego z tych procesorów na podstawie konfigurowanych kryteriów. Konfigurowane kryteria można dobierać tak, aby przez decyzyjne układy logiczne 70 był przynajmniej wybrany procesor najmniej obciążony w momencie stosowania do niego kryteriów. Adres tego procesora następnie zostaje skojarzony z rodzaj ową nazwą serwera w pamięci 75 dostępnej dla serwera imiennego 60, tak że za każdym razem, kiedy program kliencki żąda adresu maszynowego używając nazwy rodzajowej serwera, podawany jest adres tego procesora w serwerze równoległym 10, który był jako ostatni wybrany przez decyzyjne układy logiczne 70. Zatem, jeżeli www.ibm.com jest nazwą rodzaj ową to żądanie komputera klienckiego 50 do serwera imiennego 60 z nazwą pod adresem www.ibm.com da w wyniku podanie klientowi adresu w sieci Internet jednego z procesorów 20, 30,40.
Tradycyjnie kolejny odsyłacz wracający do tego samego serwera (często zwanego “Web site” - punktem WWW) co strona podstawowa, wywoływałby tę samą nazwę sieci Internet, co ta strona bazowa. Na przykład na stronie http://www.ibm.com/first_page.html, następnym odsyłaczem mógłby być http://www.ibm.com/second_page.html. Ponieważ komputer kliencki 50 już pytał serwer imienny 60 o adres internetowy nazwy rodzajowej www.ibm.com, to użyłby po prostu tego samego adresu internetowego jeszcze raz. Zatem kolejne żądanie byłoby kierowane na ten sam procesor, który obsługiwał pierwotne żądanie. Ponieważ serwer imienny 60 nie j est w stanie zróżnicować nazwy rodzajowej www.ibm.com, to nie byłaby realizowana żadna metoda rozprowadzania obciążenia w serwerze imiennym 60. W wyniku tego, rzeczywisty procesor, który obsługiwał pierwotne żądanie może być zalewany żądaniami następnych odsyłaczy, co spowodowałoby wspomniany wcześniej efekt „przegrzania”
Możliwa jest sytuacja, w której komputer kliencki 50 jest zestawiony tak, aby w sprawie następnych żądań zawsze zwracał się do serwera imiennego 60. Jednakowoż przy próbach zwiększenia wydajności serwerów imiennych, te serwery wykazują tendencję do przechowywania w pamięci podręcznej szczegółów ostatnich żądań. Zwykle klient nie będzie komunikował się bezpośrednio z serwerem imiennym 60 z nazwą. Przeciwnie, najczęściej zwykle komunikuje się ze swoim lokalnym serwerem imiennym, który komunikuje się następnie z szeregiem innych ser183 401 werów imiennych, aż do ostatecznego przekazania żądania do serwera imiennego 60, który jest serwerem imiennym mającym “władzę” nad równoległym serwerem WWW. Adres internetowy wyróżniony przez serwer imienny 60 następnie przechodzi na powrót przez wszystkie te same serwery imienne, z których każdy może wybrać do przechowywania w pamięci podręcznej konkretny adres internetowy, który został dobrany do www.ibm.com. Zatem, jeżeli klient jest zorganizowany tak, że za każdym razem, kiedy potrzebuje skomunikować się z www.ibm.com porozumiewa się z serwerem imiennym, to będzie miał nadal tendencję do przyjmowania adresu uprzednio wyróżnionego przez serwer imienny 60, na przykład, lokalny serwer imienny mógłby decydować, że już zna adres internetowy dla tej nazwy, tak że nie ma potrzeby przekazywania żądania dalej. Widać zatem, że metoda wyrównywania obciążenia na serwerze imiennym 60, jakkolwiek użyteczna w przypadku pierwszego żądania ze strony klienta adresu serwera, nie jest przydatna w przypadku któregokolwiek z następnych odsyłaczy do tej samej nazwy rodzajowej serwera.
W celu rozwiązania tego problemu, równoległy serwer WWW ma możliwość modyfikacji nazw procesorów, do których odnoszą się kolejne odsyłacze. Uwzględniając przykład z fig. 1, ponieważ wszystkie procesory 20, 30, 40 (wwwl.ibm.com, www2.ibm.com i www3.ibm.com) są serwerami w równoległym serwerze WWW, to kolejny odsyłacz, który odnosiłby się do www.ibm.com można zmienić na odsyłacz odpowiadający konkretnemu procesorowi, na przykład procesorowi 20 (wwwl.ibm.com). Wymusza to żądanie przejścia z kolejną stroną do konkretnego procesora w równoległym serwerze WWW i, co jest oczywiste, może mieć zastosowanie do wszystkich wywoływanych stron WWW, niezależnie od tego, czy stanowią one graficzne obrazy do osadzenia w aktualnie wyświetlanej stronie WWW, czy są kolejnymi odsyłaczami do różnych stron WWW, do których użytkownik życzy sobie mieć dostęp z wyświetlanej strony WWW.
Wykorzystując tę metodę do specyfikowania wyraźnie wyrażonych nazw procesorów (na przykład wwwl.ibm.com) zamiast nazwy rodzajowej dla całego serwera równoległego (www.ibm.com), można sprawować pewną kontrolę nad obciążeniem, które będzie nacierać na różne procesory serwera w najbliższej przyszłości. Ta kontrola umożliwia zmniejszenie prawdopodobieństwa “przegrzania”.
Opisano to poniżej bardziej szczegółowo w odniesieniu do fig. 1. Na fig. 1 przedstawiono elementy funkcjonalne procesora 30. Korzystne jest, jeżeli wszystkie inne procesoiy 20,40 serwera 10 służące do świadczenia usługi WWW zawierają takie same elementy, lecz na tej figurze je pominięto dla uproszczenia. Ponadto do realizacji dodatkowych funkcji może być wyznaczony pewien procesor, i każda strona WWW wczytywania może być przesyłana do tego procesora do przetwarzania.
Jeżeli po uzgodnieniu z serwerem imiennym 60 komputer kliencki 50 otrzymuje adres internetowy procesora 30, to kontaktuje się następnie z procesorem 30 bezpośrednio ze swoimi żądaniami strony WWW. Jednostka 80 wyszukująca uzyska dostęp do bazy 120 danych w celu zestawienia pliku reprezentującego stronę WWW, której żąda komputer kliencki 50. W przypadku każdej strony WWW wymienionej w tym pliku, jednostka 90 decyzyjna posłuży do określenia, który konkretny procesor powinien być wybrany do obsługi następnych żądań dla tej strony WWW, i w odpowiednim punkcie pliku zostanie włączony identyfikator tego procesora (na przykład wwwl.ibm.com).
Jak to opisano poniżej bardziej szczegółowo, przy określaniu, który procesor obsłuży następne żądanie, jednostka 90 decyzyjna uwzględnia zapis rozkładu obciążenia dający informację o obciążeniach na wszystkich procesorach 20, 30, 40. Jednostka 100 wyznaczająca obciążenia jest dostosowana strukturalnie do okresowego wspierania działania procesora 30, i podaje tę informację do włączenia do zapisu rozkładu obciążenia.
Po określeniu przez jednostkę 90 decyzyjną, procesorów które będą przetwarzać wszelkie wywoływane strony WWW, i po włączeniu tej informacji do pliku zestawianego przez jednostkę 80 wyszukującą, plik jest przesyłany do jednostki 110 wysyłającej w celu wysłania do przeglądarki 130 komputera klienckiego 50. Przeglądarka 130 następnie zestawia stronę WWW
183 401 z pliku, w celu zaprezentowania użytkownikowi komputera klienckiego 50, i wysyła żądania wyznaczonych stron WWW bezpośrednio do procesorów wyszczególnionych w pliku
Poniżej omówiono sposób otrzymania zapisu rozkładu obciążenia. Równoległy serwer WWW zbiera dane statystyczne o zajętości procesorów danego serwera, i te dane mogą być konfrontowane w celu utworzenia “zapisu rozkładu obciążenia”. Jest oczywiste, że można tego dokonać na kilka sposobów. Na przykład każdy procesor może zawierać pewną procedurę programową która periodycznie wyznacza zajętość procesora, a następnie wysyła tę informację do pewnego punktu centralnego w celu włączenia do zapisu rozkładu obciążenia. Zapis rozkładu obciążenia może być przetrzymywany w bazie 120 danych dla umożliwienia dostępu do nich każdemu procesorowi, lub też w odróżnieniu od tego może być przetrzymywany w serwerze, w części współużytkowanej pamięci dostępnej dla wszystkich procesorów, jeżeli architektura serwera pozwala na taką strukturę pamięci współużytkowanej. W odróżnieniu od tego do każdego procesora przez sieć komunikacyjną można również wysyłać szereg komunikatów, tak że każdy procesor okresowo analizuje swoje obciążenie i następnie rozsyła tę informację do wszystkich procesorów w równoległym serwerze WWW. Każdy procesor może wtedy przechowywać zapis rozkładu obciążenia w swój ej własnej pamięci lokalnej, i uaktualniać go za każdym razem, kiedy otrzymuje z innych procesorów nowe dane o obciążeniu.
Jednostka 90 decyzyjna każdego procesora 20, 30, 40 następnie wykorzystuje ten zapis rozkładu obciążenia do dynamicznego modyfikowania nazw w sieci Internet następnych odsyłaczy i obrazów wywoływanych w stronach WWW, które kolejno obsługuje. Profil jest uaktualniany okresowo, z częstotliwością która jest określana przy konfiguracji przez administratora serwera WWW. Efektem dokonania tej modyfikacji zawartości jest to, że do procesora, który zaczyna być coraz bardziej zajęty, będzie kierowanych proporcjonalnie mniej żądań następnych, co wyeliminuje poważne pogorszenie wydajności przy wzroście “przegrzania” procesora. W miarę przywracania możliwości procesora kierowanych do niego będzie więcej żądań, tak więc będzie kontynuowany cykl monitorowania i do regulowywania obciążenia.
Poniżej, w odniesieniu do figury 2 opisano proces, realizowany przez procesor po otrzymaniu żądania od klienta. W etapie 200, procesor oczekuje żądania od klienta. W etapie 210 następuje odebranie żądania 205 od przeglądarki komputera klienckiego 50. Procesor następnie określa stronę WWW, której żądano w etapie 220, i jednostka 80 wyszukująca następnie przejmuje tę stronę z bazy 120 danych i zestawia plik (etap 230). Następnie, w etapie 240 wszystkie odniesienia do innych stron WWW w tym pliku zostają zidentyfikowane i jednostka 90 decyzyjna wykorzystuje ostatni zapis rozkładu obciążenia (etap 270) w celu określenia dla każdej z tych stron WWW, który procesor obsłuży żądanie w przypadku tej strony WWW. Zatem, jeżeli następna strona WWW nazywa się “second page.html”, a jednostka 90 decyzyjna określą że procesor 20 obsłuży żądanie, to odniesienie w pliku zostanie zmienione na następujące “http://wwwl.ibm.com/se- cond_page.html”.
Po zrealizowaniu przez jednostkę 90 decyzyjną następnych hyperodsyłaczy, plik jest w etapie 250 przesyłany do przeglądarki klienckiej. Następnie procesor zostaje przestawiony na ponowną analizę swojego obciążenia w etapie 260, uaktualniając zapis rozkładu obciążenia na podstawie tej analizy. Po wykonaniu tego procesor 20 wraca do etapu 200, w którym oczekuje na następne żądanie klienta.
Następne strony WWW wymienione w pliku można podzielić na dwie kategorie. Można odwoływać się do stron WWW, które musi wczytać przeglądarka podczas zestawiania aktualnej strony WWW do wyświetlenia użytkownikowi. Na przykład, podstawowy zbiór może zawierać cały tekst dla strony WWW, lecz dane dla dowolnych wyświetlanych obrazów zwykle nie będą załączone, a zamiast tego w pliku zwracanym do przeglądarki podane zostaną odniesienia do stron WWW z obrazami. Przeglądarka WWW będzie musiała wczytać te strony WWW przed odtworzeniem użytkownikowi całej kompletnej strony.
Drugi typ strony WWW wskazywany w pliku będzie kolejnym odsyłaczem, którego przeglądarka nie żąda do wytworzenia wstępnej strony WWW przeznaczonej do wyświetlenia. Zamiast tego wystąpią strony, które może wybierać użytkownik po wyświetleniu pierwszej stro
183 401 ny WWW. Zwykle użytkownik może wybierać poszczególne podświetlone słowa lub obrazy na ekranie, przy tym te słowa i obrazy są przyporządkowane innym stronom WWW. Przy takim wyborze przeglądarka wczyta z pliku adres procesora mającego obsłużyć żądania w przypadku tej strony WWW, i połączyć się z procesorem bezpośrednio.
W szczególności, jeśli chodzi o pierwszy typ wspomnianej powyżej kolejnej strony WWW, to na figurze 3 przedstawiono, w jaki sposób zapis rozkładu obciążenia może być wykorzystywany przez jednostkę 90 decyzyjną do rozbicia żądań w przypadku tego typu strony WWW na dostępne procesory serwera. Ponieważ ten pierwszy typ strony WWW będzie żądany prawie bezpośrednio przez przeglądarkę, tak że może ona zestawiać kompletną stronę WWW do wyświetlenia użytkownikowi, to można przewidzieć, że te żądania wrócą do serwera zaraz po dostarczeniu do przeglądarki oryginalnej strony WWW.
Na fig. 3 wykreślono obciążenie każdego procesora w postaci procentowej wartości obciążenia maksymalnego. Zwykle maksymalne obciążenie jest wyznaczane w tym punkcie, w którym procesor nie jest w stanie zapewnić możliwego do przyjęcia czasu odpowiedzi, określanego przez administratora systemu. Z fig. 3 widać, że najbardziej obciążonyjest procesor 2, a po nim procesor 3, natomiast procesor 1 jest obciążony najmniej. Jeżeli na przykład występuje dziewięć kolejnych stron WWW pierwszego typu, to jednostka 90 decyzyjna może obciążenia do określenia, ile z tych dziewięciu stron powinien obsłużyć każdy z procesorów, wykorzystać procentowe wartości.
Jak to przedstawiono na fig. 3, niewykorzystane obciążenie każdego procesora może być podzielone na bloki jednakowej wielkości, tak, aby łącznie powstało dziewięć takich bloków. Dogodnym sposobem zrównoważenia obciążenia między procesorami jest przyporządkowanie konkretnemu procesorowi odpowiedzialności za obsługę kolejnych żądań dla pewnej liczby stron WWW, równej liczbie bloków skojarzonych z niewykorzystanym obciążeniem tego procesora. Zatem w przykładzie przedstawionym na fig. 3, adres procesora 1 będzie odniesiony do pięciu stron WWW, adres procesora 2 będzie odniesiony do jednej strony WWW, a adres procesora 3 będzie odniesiony do trzech stron WWW.
Z powyższego opisu wynika, że treść stron WWW jest zmieniana dynamicznie podczas ich obsługi, ze zmianą nazwy w sieci Internet tego procesora w serwerze z którego powinien wyjść następny odsyłacz. Procesor jest wybierany z zespołu procesorów, które mogą mieć dostęp do tej samej zawartości siatki WWW, a wyboru dokonuj e się na podstawie względnego obciążenia tych serwerów. Dzięki temu osiąga się bardziej skuteczne wyrównywanie obciążeń i unika się problemów “przegrzewania” procesora, zanim jeszcze staną się one poważne.
183 401
183 401
FIG. 2
PROCESOR
FIG. 3
183 401
Departament Wydawnictw UP RP. Nakład 60 egz. Cena 4,00 zł.

Claims (11)

  1. Zastrzeżenia patentowe
    1, Komputer serwera dołączany do sieci, który zawiera wiele procesorów do świadczenia usług jednemu lub wielu komputerom klienckim dołączonym do sieci, przy czym usługi obejmują dostarczanie bloków informacji do komputera klienckiego, a procesory mają dostęp do bazy danych, w której przechowywane sąbloki informacji, znamienny tym, że zawiera, przy każdym z wielu procesorów (20,30,40), jednostkę (80) wyszukującą, w odpowiedzi na żądanie komputera'klienckiego (50) określonego bloku informacji z procesora (20,30, 40), dane z bazy (120) danych do zestawienia pliku reprezentującego żądany blok informacji, przy czym ten plik zawiera odniesienia do kolejnych bloków informacji, których może żądać komputer kliencki (50), oraz zawiera jednostkę (100) wyznaczającą obciążenia do okresowego określania danych o aktywności procesorów (20,30,40) przez włączenie ich do zapisu rozkładu obciążenia utrzymywanego dla wszystkich procesorów (20,30,40), jednostkę (90) decyzyjną określającą, dla każdego odniesienia do kolejnego bloku informacji w pliku zestawionym w jednostce (80) wyszukującej i na podstawie zapisu rozkładu obciążenia, który procesor (20,30,40) powinien obsłużyć żądanie od komputera klienckiego (50) dla tego kolejnego bloku informacji, oraz adres dla tego procesora (20,30,40) w pliku zestawionym w jednostce (80) wyszukującej, i jednostkę (110) wysyłającą plik do komputera klienckiego (50).
  2. 2. Komputer według zastrz. 1, znamienny tym, że jednostka (100) wyznaczająca obciążenia jest umieszczona przy każdym z wielu procesorów (20,30,40) do określania danych o aktywności każdego procesora (20, 30, 40).
  3. 3. Komputer według zastrz. 1 albo 2, znamienny tym, że każdy z wielu procesorów (20, 30,40) zawiera jednostkę (90) decyzyjną.
  4. 4. Komputer według zastrz. 1, znamienny tym, że jednostka (90) decyzyjna jest skonfigurowana do określania, ile kolejnych bloków informacji będzie kierowanych do konkretnego procesora (20, 30, 40) tak, aby przy zwiększającym się obciążeniu procesora (20, 30, 40) wskazywanym przez zapis rozkładu obciążenia, zmniejszała się liczba żądanych od tego procesora (20,30,40) kolejnych bloków informacji.
  5. 5. Komputer według zastrz. 1, znamienny tym, że jednym lub więcej niż jednym kolejnym blokiem informacji jest plik obrazowy, których żąda komputer kliencki (50) przy tworzeniu bloku informacji.
  6. 6. Komputer według zastrz. 1, znamienny tym, że sieć jest siecią Internet.
  7. 7. Komputer według zastrz. 1, znamienny tym, że usługa jest usługą w globalnym systemie informacyjnym (World Wide Web), a bloki informacji są stronami WWW.
  8. 8. Komputer według zastrz. 1, znamienny tym, że adres kolejnego bloku informacji włączonego do pliku przez jednostkę (90) decyzyjną ma postać łańcucha adresowego zawierającego zarówno identyfikator tego bloku informacji jak i niepowtarzalny identyfikator procesora (20,30,40), który według ustalenia jednostki (90) decyzyjnej obsłuży żądanie dotyczące tego bloku informacji.
  9. 9. Sposób eksploatacji pracy komputera serwera dołączanego do sieci, który zawiera wiele procesorów do świadczenia usług j ednemu lub wielu komputerom klienckim dołączonym do sieci, przy czym usługi obejmujądostarczanie bloków informacji do komputera klienckiego, a procesory mają dostęp do bazy danych, w której przechowywane sąbloki informacji, znamienny tym, że w odpowiedzi na nadchodzące od komputera klienckiego (50) żądanie konkretnego bloku informacji z procesora (20,30,40) wyszukuje się dane w bazie (120) danych oraz zestawia się plik reprezentujący żądany blok informacj i i zawieraj ący odniesienia do kolejnych bloków informacji, których może żądać komputer kliencki (50), a następnie wyznacza się okresowo w jedno-
    183 401 stce (100) wyznaczającej obciążenia dane o aktywności procesorów (20,30,40) i włącza się je do zapisu rozkładu obciążenia utrzymywanego dla każdego z procesorów (20,30,40), po czym dla każdego odniesienia do następnego bloku informacji w zestawionym pliku określa się na podstawie zapisu rozkładu obciążenia, który procesor (20,30, 40) obsłuży żądanie komputera klienckiego (50) dotyczące tego następnego bloku informacji, i włącza się adres tego procesora (20,30, 40) w zestawiony plik oraz wysyła się plik do komputera klienckiego (50).
  10. 10. Sposób według zastrz. 9, znamienny tym, że w trakcie określania procesora (20,30, 40) do obsługi żądania komputera klienckiego (50), w przypadku zażądania przez komputer kliencki (50) wielu kolejnych bloków informacji podczas zestawiania bloku informacji reprezentowanego przez plik, określa się ilość żądań obsługi tych kolejnych bloków informacji, które będą kierowane do konkretnego procesora (20,30,40), tak aby przy zwiększającym się obciążeniu procesora (20,30,40) wskazywanym przez zapis rozkładu obciążenia, zmniejszała się liczba żądanych od tego procesora (20, 30, 40) kolejnych bloków informacji.
  11. 11. Sposób według zastrz. 9 albo 10, znamienny tym, że adres kolejnego bloku informacji, włączonego do pliku w trakcie określania procesora (20,30,40) do obsługi żądania komputera klienckiego (50), ma postać łańcucha adresowego zawierającego zarówno identyfikator tego bloku informacji jak i niepowtarzalny identyfikator procesora (20,30,40), który obsłuży żądanie dotyczące tego bloku informacji.
    * * *
PL96327918A 1996-01-26 1996-12-04 Komputer serwera dołączany do sieci i sposób jego eksploatacji PL183401B1 (pl)

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
PCT/GB1996/002983 WO1997029423A1 (en) 1996-01-26 1996-12-04 Load balancing across the processors of a server computer
US08/770,142 US5867706A (en) 1996-01-26 1996-12-19 Method of load balancing across the processors of a server

Publications (2)

Publication Number Publication Date
PL327918A1 PL327918A1 (en) 1999-01-04
PL183401B1 true PL183401B1 (pl) 2002-06-28

Family

ID=26308531

Family Applications (1)

Application Number Title Priority Date Filing Date
PL96327918A PL183401B1 (pl) 1996-01-26 1996-12-04 Komputer serwera dołączany do sieci i sposób jego eksploatacji

Country Status (14)

Country Link
US (1) US5867706A (pl)
EP (1) EP0880739B1 (pl)
JP (1) JP2953591B2 (pl)
CN (1) CN1091277C (pl)
BR (1) BR9612485A (pl)
CA (1) CA2231810C (pl)
CZ (1) CZ289563B6 (pl)
DE (1) DE69602461T2 (pl)
ES (1) ES2131415T3 (pl)
GB (1) GB2309558A (pl)
HU (1) HU225072B1 (pl)
PL (1) PL183401B1 (pl)
RU (1) RU2156546C2 (pl)
WO (1) WO1997029423A1 (pl)

Families Citing this family (168)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6185619B1 (en) 1996-12-09 2001-02-06 Genuity Inc. Method and apparatus for balancing the process load on network servers according to network and serve based policies
JPH1074159A (ja) * 1996-08-30 1998-03-17 Hitachi Ltd 計算機システムの制御方法
GB2320112B (en) * 1996-12-07 2001-07-25 Ibm High-availability computer server system
US5948066A (en) * 1997-03-13 1999-09-07 Motorola, Inc. System and method for delivery of information over narrow-band communications links
CA2206737C (fr) * 1997-03-27 2000-12-05 Bull S.A. Architecture en reseau de machine informatique
US7058720B1 (en) * 1997-06-30 2006-06-06 Microsoft Corporation Geographical client distribution methods, systems and computer program products
US6128642A (en) * 1997-07-22 2000-10-03 At&T Corporation Load balancing based on queue length, in a network of processor stations
US6128279A (en) * 1997-10-06 2000-10-03 Web Balance, Inc. System for balancing loads among network servers
US6230196B1 (en) * 1997-11-12 2001-05-08 International Business Machines Corporation Generation of smart HTML anchors in dynamic web page creation
US6434687B1 (en) * 1997-12-17 2002-08-13 Src Computers, Inc. System and method for accelerating web site access and processing utilizing a computer system incorporating reconfigurable processors operating under a single operating system image
US6055538A (en) * 1997-12-22 2000-04-25 Hewlett Packard Company Methods and system for using web browser to search large collections of documents
US6178160B1 (en) * 1997-12-23 2001-01-23 Cisco Technology, Inc. Load balancing of client connections across a network using server based algorithms
US8296396B2 (en) * 1998-02-10 2012-10-23 Level 3 Communications, Llc Delivering resources to clients in a distributed computing environment with rendezvous based on load balancing and network conditions
US6185598B1 (en) 1998-02-10 2001-02-06 Digital Island, Inc. Optimized network resource location
US7054935B2 (en) * 1998-02-10 2006-05-30 Savvis Communications Corporation Internet content delivery network
US6330617B1 (en) * 1998-02-27 2001-12-11 Sabre Inc System, method and computer program product for data conversion in a computer network
FI112897B (fi) * 1998-03-03 2004-01-30 Nokia Corp Menetelmä tiedonsiirtoverkossa ja tiedonsiirtolaite
US6205474B1 (en) * 1998-04-14 2001-03-20 Compaq Computer Corporation Access mechanism for parallel status update for multiple servers
US6003082A (en) * 1998-04-22 1999-12-14 International Business Machines Corporation Selective internet request caching and execution system
US6115752A (en) * 1998-05-21 2000-09-05 Sun Microsystems, Inc. System and method for server selection for mirrored sites
US7143193B1 (en) * 1998-05-29 2006-11-28 Yahoo! Inc. Content collection
US6317786B1 (en) * 1998-05-29 2001-11-13 Webspective Software, Inc. Web service
US6279001B1 (en) 1998-05-29 2001-08-21 Webspective Software, Inc. Web service
US7581006B1 (en) * 1998-05-29 2009-08-25 Yahoo! Inc. Web service
US6976093B2 (en) 1998-05-29 2005-12-13 Yahoo! Inc. Web server content replication
US6314463B1 (en) 1998-05-29 2001-11-06 Webspective Software, Inc. Method and system for measuring queue length and delay
US7035943B2 (en) 1998-05-29 2006-04-25 Yahoo! Inc. Web server content replication
US6108703A (en) * 1998-07-14 2000-08-22 Massachusetts Institute Of Technology Global hosting system
US6493749B2 (en) * 1998-08-17 2002-12-10 International Business Machines Corporation System and method for an administration server
FR2785121B1 (fr) * 1998-10-21 2001-03-30 Cit Alcatel Procede pour changer periodiquement une information presentee par un terminal de communication a partir de donnees transmises par un serveur
US6691165B1 (en) * 1998-11-10 2004-02-10 Rainfinity, Inc. Distributed server cluster for controlling network traffic
JP3550503B2 (ja) * 1998-11-10 2004-08-04 インターナショナル・ビジネス・マシーンズ・コーポレーション 通信を可能とするための方法及び通信システム
US6654814B1 (en) * 1999-01-26 2003-11-25 International Business Machines Corporation Systems, methods and computer program products for dynamic placement of web content tailoring
GB2346302B (en) * 1999-01-29 2003-06-18 Ibm Pre-emptive network load balancing by predictive configuration
US7080158B1 (en) 1999-02-09 2006-07-18 Nortel Networks Limited Network caching using resource redirection
US6801949B1 (en) 1999-04-12 2004-10-05 Rainfinity, Inc. Distributed server cluster with graphical user interface
EP1049307A1 (en) 1999-04-29 2000-11-02 International Business Machines Corporation Method and system for dispatching client sessions within a cluster of servers connected to the World Wide Web
US6275470B1 (en) 1999-06-18 2001-08-14 Digital Island, Inc. On-demand overlay routing for computer-based communication networks
US7600131B1 (en) * 1999-07-08 2009-10-06 Broadcom Corporation Distributed processing in a cryptography acceleration chip
US7346695B1 (en) 2002-10-28 2008-03-18 F5 Networks, Inc. System and method for performing application level persistence
US6523023B1 (en) 1999-09-22 2003-02-18 Networks Associates Technology, Inc. Method system and computer program product for distributed internet information search and retrieval
US7702732B1 (en) 1999-09-29 2010-04-20 Nortel Networks Limited Methods for auto-configuring a router on an IP subnet
US6684241B1 (en) 1999-09-29 2004-01-27 Nortel Networks Limited Apparatus and method of configuring a network device
WO2001031445A1 (en) * 1999-10-27 2001-05-03 Mci Worldcom, Inc. System and method for web mirroring
US8543901B1 (en) 1999-11-01 2013-09-24 Level 3 Communications, Llc Verification of content stored in a network
US6748414B1 (en) * 1999-11-15 2004-06-08 International Business Machines Corporation Method and apparatus for the load balancing of non-identical servers in a network environment
US6748413B1 (en) * 1999-11-15 2004-06-08 International Business Machines Corporation Method and apparatus for load balancing of parallel servers in a network environment
US7363361B2 (en) * 2000-08-18 2008-04-22 Akamai Technologies, Inc. Secure content delivery system
US6760745B1 (en) * 2000-03-30 2004-07-06 Aspect Communications Corporation Web server replicated mini-filter
US20050021862A1 (en) * 2000-03-31 2005-01-27 Dickens Coal Llc Automatic selection of content-delivery provider using link mapping database
US8510468B2 (en) 2000-04-17 2013-08-13 Ciradence Corporation Route aware network link acceleration
US8996705B2 (en) 2000-04-17 2015-03-31 Circadence Corporation Optimization of enhanced network links
US8195823B2 (en) 2000-04-17 2012-06-05 Circadence Corporation Dynamic network link acceleration
US20110128972A1 (en) 2000-04-17 2011-06-02 Randy Thornton Peer to peer dynamic network link acceleration
US8065399B2 (en) 2000-04-17 2011-11-22 Circadence Corporation Automated network infrastructure test and diagnostic system and method therefor
US8898340B2 (en) 2000-04-17 2014-11-25 Circadence Corporation Dynamic network link acceleration for network including wireless communication devices
WO2001080024A2 (en) 2000-04-17 2001-10-25 Circadence Corporation Gateway buffer prioritization
US7143128B1 (en) * 2000-06-08 2006-11-28 International Business Machines Corporation Interactive data processor controlled display interface for tracking of allocated messages in a dynamic workload balancing communication system
US7188157B1 (en) 2000-06-30 2007-03-06 Hitachi, Ltd. Continuous update of data in a data server system
US7281032B2 (en) * 2000-06-30 2007-10-09 Hitachi, Ltd. File sharing system with data mirroring by storage systems
US7222150B1 (en) * 2000-08-15 2007-05-22 Ikadega, Inc. Network server card and method for handling requests received via a network interface
US20020165947A1 (en) * 2000-09-25 2002-11-07 Crossbeam Systems, Inc. Network application apparatus
US7657629B1 (en) * 2000-09-26 2010-02-02 Foundry Networks, Inc. Global server load balancing
US9130954B2 (en) 2000-09-26 2015-09-08 Brocade Communications Systems, Inc. Distributed health check for global server load balancing
US7454500B1 (en) 2000-09-26 2008-11-18 Foundry Networks, Inc. Global server load balancing
US7606898B1 (en) 2000-10-24 2009-10-20 Microsoft Corporation System and method for distributed management of shared computers
US6907395B1 (en) * 2000-10-24 2005-06-14 Microsoft Corporation System and method for designing a logical model of a distributed computer system and deploying physical resources according to the logical model
US7113900B1 (en) 2000-10-24 2006-09-26 Microsoft Corporation System and method for logical modeling of distributed computer systems
US7103651B2 (en) * 2000-11-30 2006-09-05 Nortel Networks Limited Method and apparatus for discovering client proximity network sites
US20020089687A1 (en) * 2001-01-11 2002-07-11 Ferlitsch Andrew Rodney Methods and systems for print-processor-based printer status detection and print task distribution
US7480068B2 (en) * 2001-01-11 2009-01-20 Sharp Laboratories Of America, Inc. Methods and systems for page-independent spool file sheet assembly
US8411298B2 (en) 2001-01-11 2013-04-02 Sharp Laboratories Of America, Inc. Methods and systems for printing device load-balancing
US7548331B2 (en) * 2001-01-11 2009-06-16 Sharp Laboratories Of America, Inc. Methods and systems for print system component-based remote printing
US20030227644A1 (en) * 2001-01-11 2003-12-11 Sharp Laboratories Of America, Inc. Methods and systems for driver independent customized printing
US8456665B2 (en) 2001-01-11 2013-06-04 Sharp Laboratories Of America, Inc. Methods and systems for printing error recovery
US20020124170A1 (en) * 2001-03-02 2002-09-05 Johnson William S. Secure content system and method
US20020143872A1 (en) * 2001-03-27 2002-10-03 Jeffrey Weiss Multiple service management platform utilizing common directory
GB2389482B (en) * 2001-03-28 2004-05-05 Ericsson Telefon Ab L M Load distribution between nodes in communication networks
GB0119145D0 (en) * 2001-08-06 2001-09-26 Nokia Corp Controlling processing networks
US7290059B2 (en) * 2001-08-13 2007-10-30 Intel Corporation Apparatus and method for scalable server load balancing
US7860964B2 (en) 2001-09-28 2010-12-28 Level 3 Communications, Llc Policy-based content delivery network selection
JP4160506B2 (ja) 2001-09-28 2008-10-01 レヴェル 3 シーディーエヌ インターナショナル インコーポレーテッド. 構成可能な適応型広域トラフィック制御および管理
US7373644B2 (en) 2001-10-02 2008-05-13 Level 3 Communications, Llc Automated server replication
US20080279222A1 (en) * 2001-10-18 2008-11-13 Level 3 Communications Llc Distribution of traffic across a computer network
US20030079027A1 (en) 2001-10-18 2003-04-24 Michael Slocombe Content request routing and load balancing for content distribution networks
US7711819B2 (en) 2001-10-31 2010-05-04 Fujitsu Limited Load balancer
US7444639B2 (en) * 2001-12-20 2008-10-28 Texas Insturments Incorporated Load balanced interrupt handling in an embedded symmetric multiprocessor system
JP3969089B2 (ja) * 2001-12-25 2007-08-29 株式会社日立製作所 階層構成サーバシステム
US9167036B2 (en) 2002-02-14 2015-10-20 Level 3 Communications, Llc Managed object replication and delivery
US20030163586A1 (en) * 2002-02-27 2003-08-28 Steve Schnetzler Server persistence using a URL identifier
US9137324B2 (en) * 2002-04-10 2015-09-15 International Business Machines Corporation Capacity on-demand in distributed computing environments
JP2004005249A (ja) * 2002-05-31 2004-01-08 Fujitsu Ltd 負荷分散型マルチプロセッサに対する信号振分装置
US20040059777A1 (en) * 2002-05-31 2004-03-25 Palazzo Craig M. System and method for distributed component object model load balancing
US20030236813A1 (en) * 2002-06-24 2003-12-25 Abjanic John B. Method and apparatus for off-load processing of a message stream
CN100424673C (zh) * 2002-07-02 2008-10-08 英业达股份有限公司 最佳化信息处理互助式计算机网络***
US7086061B1 (en) 2002-08-01 2006-08-01 Foundry Networks, Inc. Statistical tracking of global server load balancing for selecting the best network address from ordered list of network addresses based on a set of performance metrics
US7574508B1 (en) 2002-08-07 2009-08-11 Foundry Networks, Inc. Canonical name (CNAME) handling for global server load balancing
US8015259B2 (en) * 2002-09-10 2011-09-06 Alan Earl Swahn Multi-window internet search with webpage preload
US7334032B2 (en) * 2002-12-04 2008-02-19 International Business Machines Corporation System for allocating storage performance resource
US7568110B2 (en) * 2002-12-18 2009-07-28 Broadcom Corporation Cryptography accelerator interface decoupling from cryptography processing cores
US20040123123A1 (en) * 2002-12-18 2004-06-24 Buer Mark L. Methods and apparatus for accessing security association information in a cryptography accelerator
US7191341B2 (en) * 2002-12-18 2007-03-13 Broadcom Corporation Methods and apparatus for ordering data in a cryptography accelerator
US7434043B2 (en) 2002-12-18 2008-10-07 Broadcom Corporation Cryptography accelerator data routing unit
US20040123120A1 (en) * 2002-12-18 2004-06-24 Broadcom Corporation Cryptography accelerator input interface data handling
US20040215703A1 (en) * 2003-02-18 2004-10-28 Xiping Song System supporting concurrent operation of multiple executable application operation sessions
US8122106B2 (en) 2003-03-06 2012-02-21 Microsoft Corporation Integrating design, deployment, and management phases for systems
US7072807B2 (en) * 2003-03-06 2006-07-04 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US20040210623A1 (en) * 2003-03-06 2004-10-21 Aamer Hydrie Virtual network topology generation
US7689676B2 (en) * 2003-03-06 2010-03-30 Microsoft Corporation Model-based policy application
US7890543B2 (en) 2003-03-06 2011-02-15 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US7543061B2 (en) 2003-06-26 2009-06-02 Microsoft Corporation Method and system for distributing load by redirecting traffic
US7636917B2 (en) * 2003-06-30 2009-12-22 Microsoft Corporation Network load balancing with host status information
US7613822B2 (en) * 2003-06-30 2009-11-03 Microsoft Corporation Network load balancing with session information
US7606929B2 (en) * 2003-06-30 2009-10-20 Microsoft Corporation Network load balancing with connection manipulation
US7567504B2 (en) * 2003-06-30 2009-07-28 Microsoft Corporation Network load balancing with traffic routing
US7590736B2 (en) * 2003-06-30 2009-09-15 Microsoft Corporation Flexible network load balancing
US7331038B1 (en) * 2003-07-02 2008-02-12 Amazon.Com, Inc. Predictive prefetching to improve parallelization of document generation subtasks
US9584360B2 (en) * 2003-09-29 2017-02-28 Foundry Networks, Llc Global server load balancing support for private VIP addresses
WO2005043279A2 (en) * 2003-10-31 2005-05-12 Disksites Research And Development Ltd. Device, system and method for storage and access of computer files
US7769802B2 (en) * 2003-12-04 2010-08-03 Microsoft Corporation Systems and methods that employ correlated synchronous-on-asynchronous processing
US7778422B2 (en) 2004-02-27 2010-08-17 Microsoft Corporation Security associations for devices
US7574708B2 (en) * 2004-03-04 2009-08-11 International Business Machines Corporation Mechanism for enabling the distribution of operating system resources in a multi-node computer system
WO2005107168A1 (fr) * 2004-04-28 2005-11-10 Leonid Aleksandrovich Pogyba Procede d'organisation d'un service de radiodiffusion faisant appel a la transmission numerique de flux audio sur l'internet, et dispositifs permettant sa mise en oeuvre
US20050246529A1 (en) 2004-04-30 2005-11-03 Microsoft Corporation Isolated persistent identity storage for authentication of computing devies
US7584301B1 (en) 2004-05-06 2009-09-01 Foundry Networks, Inc. Host-level policies for global server load balancing
US7496651B1 (en) * 2004-05-06 2009-02-24 Foundry Networks, Inc. Configurable geographic prefixes for global server load balancing
US9626437B2 (en) * 2004-06-10 2017-04-18 International Business Machines Corporation Search scheduling and delivery tool for scheduling a search using a search framework profile
US7423977B1 (en) 2004-08-23 2008-09-09 Foundry Networks Inc. Smoothing algorithm for round trip time (RTT) measurements
WO2006029771A1 (en) * 2004-09-13 2006-03-23 Fujitsu Siemens Computers, Inc. Computer arrangement and method for providing services for clients over a network
EP1828893A1 (en) * 2004-10-29 2007-09-05 Interactive Supercomputing Inc. Methods and apparatus for parallel execution of a process
JP4526539B2 (ja) * 2004-11-26 2010-08-18 富士通株式会社 コンピュータ・システム及び情報処理方法
US20060123423A1 (en) * 2004-12-07 2006-06-08 International Business Machines Corporation Borrowing threads as a form of load balancing in a multiprocessor data processing system
US20060136717A1 (en) 2004-12-20 2006-06-22 Mark Buer System and method for authentication via a proximate device
US8295484B2 (en) 2004-12-21 2012-10-23 Broadcom Corporation System and method for securing data from a remote input device
DE102005010690B4 (de) * 2005-03-09 2007-04-12 Knorr-Bremse Systeme für Schienenfahrzeuge GmbH Öleingespritzter Verdichter mit Temperaturschalter
US8489728B2 (en) 2005-04-15 2013-07-16 Microsoft Corporation Model-based system monitoring
US7802144B2 (en) 2005-04-15 2010-09-21 Microsoft Corporation Model-based system monitoring
US7797147B2 (en) 2005-04-15 2010-09-14 Microsoft Corporation Model-based system monitoring
CN100371895C (zh) * 2005-05-30 2008-02-27 英业达股份有限公司 均衡负载的文件预装***及方法
US20070016393A1 (en) * 2005-06-29 2007-01-18 Microsoft Corporation Model-based propagation of attributes
US8549513B2 (en) 2005-06-29 2013-10-01 Microsoft Corporation Model-based virtual system provisioning
US8230419B2 (en) * 2005-07-26 2012-07-24 International Business Machines Corporation Method, system and program product for capturing central processing unit (CPU) utilization for a process on a virtual machine
US7941309B2 (en) 2005-11-02 2011-05-10 Microsoft Corporation Modeling IT operations/policies
CN100562850C (zh) * 2005-11-30 2009-11-25 迈普通信技术股份有限公司 多处理器负载分配调整方法
US7716100B2 (en) * 2005-12-02 2010-05-11 Kuberre Systems, Inc. Methods and systems for computing platform
CN100389392C (zh) * 2006-05-29 2008-05-21 杭州华三通信技术有限公司 一种集群***中实现负载均衡的方法、***和存储控制器
US20080288622A1 (en) * 2007-05-18 2008-11-20 Microsoft Corporation Managing Server Farms
US7930573B2 (en) * 2007-09-18 2011-04-19 International Business Machines Corporation Workload apportionment according to mean and variance
US20090265208A1 (en) * 2007-12-10 2009-10-22 Pratt Stephen M Method for outsourcing technology based services
US9723070B2 (en) * 2008-01-31 2017-08-01 International Business Machines Corporation System to improve cluster machine processing and associated methods
US8667175B2 (en) * 2008-03-13 2014-03-04 Cisco Technology, Inc. Server selection for routing content to a client using application layer redirection
US9762692B2 (en) 2008-04-04 2017-09-12 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
CN102047244B (zh) 2008-04-04 2013-02-27 第三雷沃通讯有限责任公司 在内容分发网络(cdn)中处理长尾内容
US10924573B2 (en) 2008-04-04 2021-02-16 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
CN101739214B (zh) * 2008-11-13 2011-12-07 英业达股份有限公司 一种共享储存设备下自平衡数据访问压力的方法
US8229890B2 (en) * 2008-12-15 2012-07-24 International Business Machines Corporation Opening document stored at multiple database replicas
US8868782B2 (en) 2009-03-10 2014-10-21 Telefonaktiebolaget L M Ericsson (Publ) System and methods for a managed application server restart
US8166200B2 (en) * 2009-03-30 2012-04-24 Microsoft Corporation Smart routing
US9411656B2 (en) * 2009-06-22 2016-08-09 Brocade Communications Systems, Inc. Load balance connections per server in multi-core/multi-blade system
US8817614B1 (en) * 2010-09-16 2014-08-26 Vasona Networks Inc. Policy enforcer having load balancing capabilities
US8549148B2 (en) 2010-10-15 2013-10-01 Brocade Communications Systems, Inc. Domain name system security extensions (DNSSEC) for global server load balancing
WO2012097030A1 (en) * 2011-01-12 2012-07-19 Level 3 Communications, Llc Customized domain names in a content delivery network (cdn)
US9448849B2 (en) 2011-08-31 2016-09-20 Oracle International Corporation Preventing oscillatory load behavior in a multi-node distributed system
US10228976B2 (en) * 2012-05-01 2019-03-12 Keysight Technologies Singapore (Holdings) Pte. Ltd. Methods, systems, and computer readable media for balancing incoming connections across multiple cores
WO2014003611A1 (en) * 2012-06-27 2014-01-03 Telefonaktiebolaget L M Ericsson (Publ) Processor work distribution
US10235069B2 (en) * 2016-12-22 2019-03-19 Western Digital Technologies, Inc. Load balancing by dynamically transferring memory range assignments
US11171720B1 (en) * 2019-06-28 2021-11-09 Amazon Technologies, Inc. Content and compute delivery platform using satellites
US11201939B1 (en) * 2019-06-28 2021-12-14 Amazon Technologies, Inc. Content and compute delivery platform using satellites

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BE485774A (pl) * 1947-11-29 1900-01-01
US4403286A (en) * 1981-03-06 1983-09-06 International Business Machines Corporation Balancing data-processing work loads
DE3741953A1 (de) * 1986-12-19 1988-06-30 Nippon Telegraph & Telephone Multiprozessorsystem und verfahren zur arbeitslastverteilung bei einem solchen
GB2281793A (en) * 1993-09-11 1995-03-15 Ibm A data processing system for providing user load levelling in a network
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

Also Published As

Publication number Publication date
CN1091277C (zh) 2002-09-18
CA2231810C (en) 2004-05-25
HUP9903820A3 (en) 2001-05-28
BR9612485A (pt) 1999-07-13
JP2953591B2 (ja) 1999-09-27
HUP9903820A2 (hu) 2000-03-28
GB2309558A (en) 1997-07-30
DE69602461D1 (de) 1999-06-17
HU225072B1 (en) 2006-06-28
GB9601559D0 (en) 1996-03-27
DE69602461T2 (de) 1999-12-16
CN1202971A (zh) 1998-12-23
PL327918A1 (en) 1999-01-04
ES2131415T3 (es) 1999-07-16
WO1997029423A1 (en) 1997-08-14
EP0880739B1 (en) 1999-05-12
CA2231810A1 (en) 1997-08-14
JPH11503551A (ja) 1999-03-26
RU2156546C2 (ru) 2000-09-20
EP0880739A1 (en) 1998-12-02
US5867706A (en) 1999-02-02
CZ289563B6 (cs) 2002-02-13
CZ232498A3 (cs) 1998-12-16

Similar Documents

Publication Publication Date Title
PL183401B1 (pl) Komputer serwera dołączany do sieci i sposób jego eksploatacji
US6253234B1 (en) Shared web page caching at browsers for an intranet
KR100243637B1 (ko) 고-가용성 컴퓨터 서버 시스템
US6366947B1 (en) System and method for accelerating network interaction
US7577754B2 (en) System and method for controlling access to content carried in a caching architecture
US7363291B1 (en) Methods and apparatus for increasing efficiency of electronic document delivery to users
US6192398B1 (en) Remote/shared browser cache
CA2267953C (en) Web serving system with primary and secondary servers
US9380022B2 (en) System and method for managing content variations in a content deliver cache
US20020199014A1 (en) Configurable and high-speed content-aware routing method
JP2000187609A (ja) 要求されたオブジェクトを検索する方法及び記録デバイス
EP0898754B1 (en) Information retrieval in cache database
WO1998004985A9 (en) Web serving system with primary and secondary servers
US6182140B1 (en) Hot objects with multiple links in web browsers
US6766313B1 (en) System and method for caching and retrieving information
JP2002288058A (ja) 高性能クライアントサーバ通信システム
KR100308705B1 (ko) 프로세서간부하밸런싱을가능하게하는서버컴퓨터및서버컴퓨터동작방법
WO2000079362A2 (en) Distributed virtual web cache implemented entirely in software
Meira et al. Integrating www caches and search engines
US7487224B2 (en) Methods and systems for routing requests using edge network elements
Holmedahl et al. SWEB: Towards a Scalable World Wide Web Server on Multicomputers
JP2002149476A (ja) リンクシステム、リンク方法およびリンクプログラムを記録したコンピュータ読み取り可能な記録媒体

Legal Events

Date Code Title Description
LAPS Decisions on the lapse of the protection rights

Effective date: 20061204