KR19980063445A - 논리적 프로세싱을 이용한 분산형 컴퓨팅 시스템 및 그 방법 - Google Patents

논리적 프로세싱을 이용한 분산형 컴퓨팅 시스템 및 그 방법 Download PDF

Info

Publication number
KR19980063445A
KR19980063445A KR1019970044768A KR19970044768A KR19980063445A KR 19980063445 A KR19980063445 A KR 19980063445A KR 1019970044768 A KR1019970044768 A KR 1019970044768A KR 19970044768 A KR19970044768 A KR 19970044768A KR 19980063445 A KR19980063445 A KR 19980063445A
Authority
KR
South Korea
Prior art keywords
logical
mapping
physical
processes
server
Prior art date
Application number
KR1019970044768A
Other languages
English (en)
Other versions
KR100271199B1 (ko
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
Application filed by 포맨제프리엘, 인터내셔널비지네스머신즈코포레이션 filed Critical 포맨제프리엘
Publication of KR19980063445A publication Critical patent/KR19980063445A/ko
Application granted granted Critical
Publication of KR100271199B1 publication Critical patent/KR100271199B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality

Abstract

논리적 및 물리적인 두 수준의 어드레싱 추상화를 사용하는 컴퓨터 네트워크상에서 로드 밸런싱을 수행하기 위한 시스템 및 그 방법이 개시되었다. 논리적 프로세스들은 논리적 인터페이스를 사용하여 물리적 프로세스들로 매핑되며, 일대일 또는 일대다 또는 다대일 방식으로 수행된다. 진행중에 변경될 수 있어 클라이언트에 상대적으로 트랜스페어런트하게 서버들이 추가되거나 제거될 수 있는 선택 기능이 매핑 판단들에 포함한다는 점에서 상기 매핑은 동적인 것이다. 본 발명의 시스템과 그 방법은 월드 와이드 웹에도 적용될 수 있으며, 그리하여 웹 사이트들은 프로세스들을 다수의 서버들에 동적으로 분산시킬 수 있다.

Description

논리적 프로세싱을 이용한 분산형 컴퓨팅 시스템 및 그 방법
본 발명은 컴퓨터 네트워크들에 관한 것이며, 특히 컴퓨터 네트워크상에서의 로드 밸런싱(load balancing)을 구현하기 위한 시스템 및 그 방법에 관한 것이다.
고도로 네트워크화된 현대의 컴퓨터 환경하에서는 분산형 컴퓨팅(distributed computing)이 불가결한(critical) 바, 그것은 상대적으로 작은 컴퓨터들의 자원들을 결합하여 전체적으로 보다 강력한 시스템을 제공할 수 있기 때문이다. 분산형 컴퓨팅에 의하여, 서로 다른 기종들인 컴퓨터들의 네트워크들을 통하여 사용자에게 트랜스페어런트(transparent)한 방식으로 데이터와 프로그램들을 배포하거나 분산(spread out or distribute)시킬 수 있다. 따라서, 하나의 컴퓨터상에 설비하기에는 지나치게 큰 데이터를 여러 조각들로 나누어 다수의 컴퓨터에 저장하거나, 또는 막대한 숫자의 사용자들에 서비스를 제공하는 프로세스들(processes)을 하나의 머신(machine)상의 트래픽(traffic)을 감소시키기 위하여 다수의 컴퓨터상에 복제(duplicate)시킬 수 있다.
대부분의 네트워크들은 클라이언트-서버(client-server) 형식을 사용한다. 일반적으로, 클라이언트는, 다른 컴퓨터 시스템 또는 프로세스(즉, 서버)의 서비스를 요구하는 컴퓨터 시스템 또는 프로세스이다. 서버는, 클라이언트가 활용할 수 있는 로컬(local) 문서들이나, 로컬 파일들 또는 로컬 프로세스들을 제작하는 책임을 갖는 소프트웨어 또는 시스템이다. 예를 들어, 파일 서버로부터의 파일의 내용들을 요구하는 워크스테이션은 그 파일 서버의 클라이언트이다. 소규모의 인트라넷(intranet)들을 포함할 수 있는 근거리 통신망(local area network)(이하, LAN이라 함.), 인터넷이나 대규모의 인트라넷을 포함할 수 있는 광역 통신망(wide area network)(이하, WAN이라 함.) 등과 같은 다양한 네트워크 구성들이 존재한다. 네트워크내의 클라이언트들과 서버들 사이의 통신과 데이터의 전송은 다양한 프로토콜(protocol)들에 의하여 규제된다. 예를 들어, TCP/IP - 인터넷 프로토콜을 통한 전송 제어 프로토콜(Transmission Control Protocol over Internet Protocol)을 나타냄 - 는 인터넷상의 시스템들에 대한 접속성(connectivity) 규칙들을 제공한다. HTTP - 하이퍼텍스트 전송 프로토콜(HyperText Transmission Protocol)을 나타냄 - 는 월드 와이드 웹(World Wide Web)에 의하여 사용되는 데이터 전송 프로토콜로서, TCP/IP의 최상위에 위치한다.
분산형 컴퓨팅에서는, 클라이언트들은 전통적으로 네임(name)에 의하여 서버들을 식별하는데, 상기 서버 프로세스(server process)에 대하여 현재 활성화된 통신 어드레스와 네임(name) 사이를 매핑(mapping)하기 위하여 네임 서버(name server)를 사용한다. 예를 들어, 상기 인터넷은, 하나의 머신에 대한 도메인 네임(예컨대, abc.xyz.com)으로부터 인터넷 프로토콜(Internet Protocol)(이하, IP라 함.) 어드레스로 매핑하기 위하여 도메인 네임 서버(domain name server)(이하, DNS라 함.)를 사용한다. 그러나, 상기 네임 서버 방식은 인터넷과 보다 소규모인 네트워크들 모두에 존재하는 다양한 결점을 갖는다. 첫째로, 클라이언트가 서버를 구별하는 수단인 네임과 그 서버가 구현하는 프로세스 사이의 매핑은 전형적으로 일대일(one-to-one)이다. 즉, 클라이언트가 서버 네임을 요구하는 때에는 단 하나의 서버만이 클라이언트에 서비스를 제공할 수 있다. 둘째로, 서버의 통신 어드레스는, 클라이언트들의 최소한 일부라도 변경하지 않고서는 변경될 수 없다. 따라서, 만약 어떤 서버에 과로드(overload)가 걸린다면, 클라이언트들의 일부를 수정하지 않은 채, 두 개의 머신들간에 그 책임을 배분하는 것은 우회하는 것(not straightforward)이 된다. 셋째로, 상기 클라이언트는, 그 실행시마다 네임 서버와 교신(contact)하여야 하는 오버헤드(overhead)를 부담하게 된다. 즉, 상기 클라이언트는 직접 서버의 어드레스를 코드화할 수 없다. 넷째로, 많은 네트워킹 시스템들하에서, 어떤 서버 프로세스의 실제 어드레스(physical address)는, (예컨대, 머신의 오류로부터 복귀된 이후에) 서버가 실행을 시작할 때마다 변경될 수 있으며, 이것은 클라이언트가 이전에 획득한 네임 서버에 대한 모든 실제 어드레스들을 무효가 되게 한다.
컴퓨터 네트워크들의 로드 밸런싱을 개선하기 위한 많은 시도들이 있었지만, 그들중 상기한 바와 같은 문제점들을 다룬 것은 없었다. 예를 들어, 인터넷상에서의 분산형 컴퓨팅 또는 로드 밸런싱은, 전형적으로 네임 서버 수준에서 하나의 머신의 네임을 다수의 IP 어드레스들로 매핑함으로써 수행된다. 네임 서버(DNS)가 도메인 네임(domain name)을 검색할 때마다, 서로 다른 IP 어드레스가 라운드-로빈방식으로(in a round-robin fashion) 회신되고, 그리하여 모두 같은 DNS 네임을 갖으며 기능적으로 동일한 일련의 머신들 사이에 제한된 형식의 로드 밸런싱이 허용된다. 이 시스템은 또한, 다수의 머신 네임들이 하나의 IP 어드레스를 가지도록 통합하는 것을 지원한다. DNS는, 그것이 순환식으로만 로드 밸런싱을 지원한다는 점과, 서버들이 동종의 것(homogeneous)일 것을 요구하는 점에서 한계를 갖는다. 특히, 그것은 데이터의 분할(partiton)(예컨대, 영화를 포함하는 일련의 매우 큰 파일들을 일련의 서버에 분할한다.)을 허용하지 않는다. 더욱이, 상기 로드 밸런싱이 네임 서버에의 요구의 수준에서 수행되며 DNS내에서 과중한 캐시(cache)의 사용(즉, 클라이언트는 이후의 검색을 피하기 위하여 최근에 사용된 IP 어드레스를 기억 또는 저장한다.)을 요구하기 때문에, 본질적으로 불균형한 로드의 가능성을 갖는다.
컴퓨터 네트워크상에서 로드 밸런싱을 수행하기 위한 것으로서 이미 알려진 다른 방법은, 전방 엔드 노드(front end node)와 하나 또는 그 이상의 동종의 후방 엔드 노드(back end node) 사이에 직접 통신을 가능하게 하는 TCP/IP 루우터(router)를 사용하는 것을 포함한다. 그러므로, 클러스터와의 모든 통신은 단일 컴퓨터로의 어드레스 되고, 백 엔드 노드(back end nodes)들과의 모든 통신은 사용자에게 트랜스페어런트하다. IBM사의 미합중국 등록 특허 제 5,371,852 호는 상기한 시스템과 그 방법을 개시한다. 특히, 상기 시스템은, 특정의 루팅(routing) 기능 - 포트형 메시지(port type message)의 포트 정보 및 프로토콜 정보를 사용하여 선택된다. - 에 기초하여 메시지 헤더의 정보를 변경하기 위한 메시지 스위치를 포함한다. 그러나, 무엇보다도, 상기 클러스터내의 노드들은 동종의 것이어야 하며, 상호 근접하게 위치하여야 하기 때문에, 상기 시스템은 한계를 갖는다.
로드 밸런싱은 월드 와이드 웹(이하, 웹(Web)이라 함. )에서 불가결한 바, 그것은 폭발적으로 성장하였고, 앞으로도 계속될 것이다. 상기 웹은 인터넷을 이용하여 통신하는 전세계의 컴퓨터들의 네트워크를 포함하는 분산형 정보 시스템(distributed information system)이다. 상기 웹에 의하여, 사용자들은 대규모의 클라이언트-서버 환경하의 하이퍼텍스트 문서들(hypertext documents)을 생성하거나, 브라우징(browsing)하거나 편집할 수 있다. 웹의 두가지 주요 구성 요소(component)는 웹 브라우저들(Web Browsers)(즉, 클라이언트와 관련된 소프트웨어로서, 웹을 브라우징하도록 설계됨.)과, 웹 페이지들(Web Pages)(즉, 서버와 관련된 문서들 또는 프로세서들로서, 웹 브라우저들을 통하여 이용 가능함.)이다. 각 웹 페이지는 균일 자원 로케이터(Uniform Resource Lpcator)(이하, URL이라 함.)로 알려진 특정의 웹 어드레스를 갖는다. URL들은, 특정 머신상의 디렉토리(directory)내의 파일의 위치를 제공할 뿐만 아니라, 몇몇 다른 형식의 서비스를 지시할 수도 있으며, 또한 파일 또는 서비스가 어떻게 지원될 것인지를 결정한다. 그러나, URL들이 도메인 네임을 포함하기 때문에, 웹은 상기한 바와 같은 문제점에 직면하게 된다. 즉, 네임 서버(즉, DNS)를 반드시 사용하여야 하며, 그리하여 모든 의미있는 로드 밸런싱을 수행하기위한 능력에 한계를 갖는다.
향상된 로드 밸런싱이 요구되는 다른 영역은 인트라넷 시스템들상에서이며, 상기 인트라넷은 전형적으로 인터넷상에서 찾을 수 있는 것과 유사한 특색들을 제공하기 위하여 커다란 조직내에서 사용된다. 이와 같은 시스템들에 의하여 효율적이고 다양한 조직체간(inter-organizational) 통신이 가능하게 되나, 상기한 바와 동일한 한계를 갖게 된다.
따라서, 로드 밸런싱을 위한 보다 효과적인 방법 없이는, 컴퓨터 네트워크들의 성능이 떨어진다.
본 발명은, 논리적 및 물리적(logical and physical)인 두가지 수준의 추상화(abstraction)를 포함하는 서버 프로세스들을 제공함으로써 분산형 네트워크 시스템의 로드 밸런싱을 제공한다. 가정에 의하여 물리적 프로세스(physical process)들은 전송 메카니즘에 의하여 지원되는 어드레스들을 가지나, 반면에 논리적 프로세스들은 그러한 어드레스들을 갖지 않는다. 각 논리적 프로세스는 일련의 물리적 프로세스들에 의하여 구현되며, 시스템은 상기 둘 사이의 매핑을 유지한다. 시스템은 또한, 클라이언트가 논리적 프로세스로 메시지를 송신할 수 있게 하며, 상기 메시지는 자동으로 적절한 물리적 프로세스로 재지정되도록 하는 인터페이스들을 제공한다.
논리적 프로세스로부터 물리적 프로세스들로의 매핑은 일대일(one-to-one), 다대일(many-to-one) 또는 일대다(one-to-many)의 어느 것일 수 있다. 만약 고도로 이용 가능한 프로세스들을 원한다면, 각 물리적 프로세스를 복제할 수 있다. 상기 논리적 프로세스와 물리적 프로세스들간의 매핑은 동적이며, 운영자(administrator)에 의하여 변경될 수 있다. 두 개의 계층(layer), 즉 논리적 및 물리적 프로세스를 정의함으로써, 모순되는 것으로 보이는 두 개의 목적을 동시에 달성할 수 있다. 첫째로, 각 논리적 프로세스에 대하여 저수준(low-level)의 간단한 어드레스들을 영구히 사용할 수 있다. 그리하여, 비대하고 사용하기에 비효율적인 문자열에 기초한 네임이 불필요하게 된다. 그러나, 현재의 네임 서버들에 의하여 제공되는 것보다 더 큰 동적 구성의 유연성을 성취할 수 있다. 논리적 프로세스들은 자원들(그들의 논리적 어드레스 이후의)을 소모하지 않기 때문에, 그들은 시스템의 동적 재구성을 방해하지 않으며 영구히 존속할 수 있게 된다. 논리적 서버는 언제든지 서로 다른 수의 물리적 프로세스들로 구현될 수 있다. 만약 특정의 서버에 병목 현상이 발생하면(즉, 서버에 다수의 요구가 존재하면), 운영자는 그 서버의 작업(work)을 몇 개의 물리적 프로세스들에 걸쳐 분할하도록 결정할 수 있다. 또는, 만약 서버로의 요구가 별로 없다면, 그 서버와 다른 서버를 합체(coalesce)하여 공동으로 하나의 물리적 프로세스를 구현할 수 있게 한다.
상기 논리적 및 물리적 서버들간의 매핑을 관리하기 위하여, 머신들의 부분 집합을 매핑 서버로서 구현한다. 이것들은, 네임 서버들 또는 몇몇 다른 머신들의 부분 집합으로서 동작하는 다른 머신들과 같은 것들일 수 있다. 클라이언트가 논리적 어드레스를 이용하여 서버로 메시지를 송신하고자 할 때, 클라이언트에게 트랜스페어런트한 방식으로 논리적 어드레스로부터 물리적 어드레스로 매핑하기 위하여 매핑 서버들이 접속되게 된다. 성능을 향상시키기 위하여, 클라이언트들은 이러한 매핑을 캐시할 수 있다. 나아가, 상기 캐시는 활동적인 또는 느린 캐시 무효화 정책(active or lazy cache invalidation policy)으로 관리될 수 있다. 만약 느린 캐시 무효화 정책으로 관리된다면, 클라이언트에게는 캐시로부터 획득한 매핑이 무가치한 것으로 판단된 경우에 매핑 서버와 교신할 수 있는 기능이 필요하게 된다.
상기 매핑 서버들과 클라이언트 측의 캐시는 응용프로그램(application)에게 드러나지 않는다. 시스템은 응용프로그램에 논리적 프로세스의 어드레스로 메시지를 송신하는 것을 지원하는 일련의 인터페이스들을 제공하며, 이러한 인터페이스들의 구현은 상기 메시지를 적절한 물리적 프로세스로 재지정하는 책임을 갖는다.
논리적 프로세스가 생성되면, 그것에는 전세계적으로 유일하고 영구적인 식별자(identifier)가 할당된다. 전세계적으로 유일한 식별자를 할당하는 데에는, 중앙 인증국을 이용하는 것, 또는 각 매핑 서버에 일정한 범위의 식별자들을 할당함으로써 다른 서버들에 유일한 식별자를 할당할 책임을 각 매핑 서버에 위임하는 것을 포함하여, 몇가지 선택 사항들(options)이 존재한다.
상기한 바와 같이, 논리적 프로세스로부터 물리적 프로세스들로의 매핑은 일대일(one-to-one), 다대일(many-to-one) 또는 일대다(one-to-many)의 어느 것일 수 있다. 이 매핑은 매핑 서버들에 의하여 동적으로 유지되며, 여기서 각 매핑 서버들은 전형적으로 전체 매핑에 대하여 알고 있다. 본 발명의 시스템과 그 방법에 의하면, 다수의 물리적 프로세스들에 의하여 하나의 논리적 프로세스를 구현할 수 있게 한다. 이것은, 본 발명의 시스템이 메시지를 송신할 실제 프로세스가 어느 것인지를 먼저 결정하여야 성취될 수 있다. 그러나, 어떤 경우에는, 하나의 물리적 프로세스에 할당된 작업 로드(work load)뿐만 아니라 그 서버에 저장된 데이터도 또한 분할하는 것이 바람직한 경우도 있다. 예를 들어, 다수의 서버들이 고유한 클라이언트의 요구에 서비스를 제공하는데에 활용될 수 있는 웹상에서는, 쿠키(cookie)(즉, 각 요구에 대하여 서버와 클라이언트 사이에 교환되는 정보의 조각)에 기초한 해싱(hashing)이 URL들 사이에 데이터를 분할하거나 기능들을 공유하는데에 사용될 수 있다.
주어진 논리적 서버를 구현하는 물리적 프로세스들 사이의 분할 방법의 하나로서, 각 논리적 프로세스에 하나의 클래스(class)를 할당하는 것이 있다(전형적으로 이것은 시스템 운영자에 의하여 수행된다.). 다음에, 논리적 서버 프로세스로 전송되는 메시지를 소정의 정수값(integral value)으로 매핑하기 위해 각 클래스와 관련된 선택 기능이 사용된다. 논리적 프로세스와 물리적 프로세스들 사이의 매핑이 설정되면, 일정한 범위의 적분값이 주어진 논리적 프로세스를 구현하는 물리적 프로세스의 각각에 관련된다. 주어진 클래스에 대한 선택 기능에 의하여 복귀될 수 있는 전체 범위의 값들이 포함되어야 한다. 그리고나서, 매핑 프로세스가 논리적 프로세스를 구현하기 위한 물리적 프로세스의 어드레스를 결정하여야 할 필요가 있는 경우에, 상기 매핑 프로세스는 전송될 메시지에 선택 기능을 적용할 것이며, 그 선택 기능의 적용 결과를 포함하는 범위에 관련된 물리적 프로세스를 선택할 것이다. 이러한 시스템과 그 방법은 본 발명의 바람직한 실시예와 함께 이하에서 보다 상세히 설명될 것이다.
본 발명의 목적은, 서버 프로세스내에서 논리적 및 물리적인 두 가지 수준의 추상화를 제공하는 것이다.
본 발명의 다른 목적은, 클라이언트들이 그 캐시내에 또는 그 매핑 서버상에 저장된 선택 기능을 통하여 로드 밸런싱을 수행할 수 있게 하는 것이다.
본 발명의 또 다른 목적은, 다수의 이기종 컴퓨터들 사이에 분할된 데이터 또는 자원들에 억세스할 수 있는 수단을 제공하는 것이다.
본 발명의 또 다른 목적은, 가변 개수의 프로세스들과 머신들 사이에 서버의 작업 로드를 동적으로 또한 트랜스페어런트하게 재분할(repartition)할 수 있게 하는 것이다.
본 발명의 또 다른 목적은, 클라이언트들이 효율적이며 간결한 수치 어드레스들을 포함하는 프로세스들에 대한 영구적인 어드레스들을 사용할 수 있게 하는 것이다.
본 발명의 또 다른 목적은, 서버가 다른 컴퓨터상에서 실행되도록 이동될지라도, 서버 프로세스의 논리적 어드레스가 변하지 않는 시스템을 제공하는 것이다.
본 발명의 또 다른 목적은, 월드 와이드 웹상에서 로드 밸런싱을 수행하기 위한 시스템 및 그 방법을 제공하는 것이다.
도1은 네임 서버를 사용하는 전형적인 클라이언트 서버 시스템의 블록도.
도2는 본 발명에 의한 로드 밸런싱을 수행하기 위한 논리적 인터페이스의 블록도.
도3은 본 발명에 의한 로드 밸런싱을 수행하는데에 다수의 논리적 인터페이스들이 사용되는 시스템의 블록도.
도4는 본 발명에 의한 매핑 기능이 클라이언트 캐시로 다운로드되는 시스템의 블록도.
도5는 본 발명에 의하여 논리적 프로세스로부터 물리적 프로세스들로 매핑하기 위한 매핑표.
도6은 본 발명에 의하여 논리적 프로세스로부터 물리적 프로세스들로 매핑하기 위한 다른 매핑표.
* 도면의 주요부분에 대한 부호의 설명
10 : 클라이언트 서버 시스템
12 : 클라이언트들 14 : 네임 서버
20 : 서버 24 : 논리적 인터페이스
28, 30, 32 : 물리적 프로세스
33 : 논리적 프로세싱 시스템
본 발명은 상기의 목적을 달성하기 위하여, 월드 와이드 웹(world wide web)에 의하여 사용되기 위한 분산형 네트워크에 있어서, 클라이언트 시스템(client system) 상에 존재하는 웹 브라우저(web browser) - 상기 웹 브라우저는 논리적 프로세스를 선택하기 위한 시스템을 포함함 - ; 다수의 웹 사이트들(web sites) - 상기 웹 사이트들중 일부는 다수의 서버들 사이에 분산된 다수의 물리적 프로세스들을 포함함 - ; 상기 논리적 프로세스를 상기 다수의 물리적 프로세스들중의 하나로 매핑하기 위한 논리적 인터페이스 시스템(logical interface system) - 상기 논리적 인터페이스 시스템은 상기 다수의 물리적 프로세스들중에서 선택하기 위한 프로그램가능한 선택 기능을 포함함 - 을 포함하는 분산형 네트워크를 제공한다.
본 발명은 또한, 다수의 물리적 서버 어드레스들을 갖는 웹 사이트들을 포함하는 월드 와이드 웹 시스템상에서 분산형 프로세스들을 처리하기 위한 방법에 있어서, 웹 브라우저로부터 논리적 프로세스를 개시하는 단계; 상기 웹 브라우저에 관련된 캐시내에 상기 논리적 프로세스에 대한 매핑 기능이 존재하는지를 판단하기 위하여 상기 캐시를 검사하는 단계; 상기 캐시내에 상기 논리적 프로세스에 대한 매핑 기능이 존재하는 경우에, 선택된 웹 사이트의 물리적 프로세스의 어드레스를 확인하기 위하여 상기 매핑 기능을 사용하는 단계; 상기 캐시내에 상기 논리적 프로세스에 대한 매핑 기능이 존재하지 않는 경우에, 상기 매핑 기능을 매핑 서버로부터 상기 캐시로 다운로드하고; 선택된 웹 사이트의 물리적 프로세스의 어드레스를 확인하기 위하여 상기 매핑 기능을 사용하는 단계; 상기 매핑 기능으로부터 획득한 물리적 프로세스의 어드레스로 상기 웹 사이트와 교신하는 단계를 포함하는 분산형 프로세스 처리 방법을 제공한다.
이제, 도1을 참조하면, 전형적인 클라이언트 서버 시스템(10)이 도시되어 있다. 이 전통적인 시스템에서는, 다수의 클라이언트들(12)과, 다수의 서버들(20)과 그리고 네임 서버(14)가 존재한다. 클라이언트가 특정의 서버 프로세스와 상호작용하기를 원할 때, 상기 클라이언트는 서버 네임(server name)(16)으로 상기 네임 서버(14)와 먼저 교신하여야 한다. 그리고나서, 상기 네임 서버(14)는 클라이언트에게 서버 어드레스(18)를 돌려 준다. 예를 들어, 인터넷의 경우에, 클라이언트는 네임 서버(즉, DNS)에게 도메인 네임을 주어야 하며, 그리고나서, 상기 네임 서버는 상기 클라이언트에게 IP 어드레스를 돌려 준다. 상기 IP 어드레스는 특정의 서버와 교신하기 위하여 사용될 수 있다.
이러한 전통적인 시스템하에서는, 만약 로드 밸런싱이 수행된다면, 그것은 전형적으로 상기 네임 서버(14)의 수준에서 수행된다. 그리하여, 만약 서버들(1 내지 3)이 클라이언트가 희망하는 동일한 물리적 프로세스를 각각 포함하도록 구성되었다면, 상기 네임 서버는 상기 클라이언트를 상기 희망 프로세스가 수행되도록 상기 서버들(1 또는 2 또는 3)의 어느 하나로 향하게 할 것이다. 그러나, 시스템 운영자가 로드 밸런싱을 향상시키기 위하여 서버들을 추가시키거나 제거하기로 결정한 경우에는, 그 캐시에 무효인 서버 어드레스들을 가진 몇몇 클라이언트들과 함께 상기 네임 서버를 수정하여야만 한다. 또한, 어드레스들을 캐시에 저장하는 것(caching)은 상기한 바와 같은 시스템에서는 일반적인 것이므로, 소수의 고도로 활동적인(active) 클라이언트들이 하나의 서버를 지배하여 과로드를 걸게 하며, 한편 다른 서버들은 충분히 사용되지 못하게 한다.
이제, 도2를 참조하면, 본 발명의 바람직한 실시예의 블록도가 도시된다. 여기에서는, 상기 네임 서버가 제거되고, 클라이언트는 논리적 프로세싱 시스템(33)과 직접 상호작용한다. 상기 논리적 프로세스 시스템은 소프트웨어내에 구현될 수 있으며, 네트워크내의 어떤 컴퓨터상의 어떠한 기록 매체(recodable media)상에도 존재할 수 있다. 여기에서는, 상기 클라이언트는 논리적 프로세스나 요구(26)를 논리적 인터페이스(24)로 송신한다. 이 프로세스는 문자열 네임(string-based name) 대신에 실제 어드레스의 형식을 취한다. 그리고나서, 상기 논리적 인터페이스(24)는, 요구된 프로세스를 처리하기에 가장 적합한 서버와 관련된 물리적 프로세스(28, 30 또는 32)를 선택하기 위하여 선택 기능(34)을 포함하는 매핑 서버를 사용한다. 상기 선택 기능은, 시스템 운영자가 로드 밸런싱하는 방식을 조정(tailor)할 수 있도록 프로그램 가능할 수도 있다. 이러한 경우에, 만약 상기 서버들(1 내지 3) 각각이 요구된 프로세스를 처리할 능력을 포함한다면, 상기 선택 기능은 적당한 서버를 동적으로 선택한다. 상기 각 서버상의 프로세스는, 클라이언트에 트랜스페어런트한 그 고유의 물리적 어드레스(28, 30 또는 32)를 포함한다는 점을 주의하여야 한다. 상기 클라이언트는, 그의 프로세스에 서비스를 제공받기 위하여 단지 상기 논리적 프로세스(26)의 논리적 어드레스만을 알면 된다. 그리하여, 본 발명의 상기 실시예에 따르면, 상기한 방법들과 같이 서버 수준에서가 아니라, 클라이언트(특히, 상기 선택 기능이 그 캐시에 저장된 클라이언트) 수준에서 로드 밸런싱이 수행된다. 이러한 시스템과 그 방법은, 서버들의 추가나 또는 물리적 프로세스들의 대체가 전적으로 상기 클라이언트(22)에 트랜스페어런트한 논리적 인터페이스 시스템(34)내에서 수행된다는 점에서 유연성(flexibility)을 증가시킨다.
이제 도3을 참조하면, 본 발명의 시스템과 그 방법이 인터넷이나 월드 와이드 웹과 같은 보다 복잡한 네트워크에 확장된 것을 도시한다. 웹상에서는, 수많은 웹 사이트들(Web sites)(즉, 서버들)이 각각 그 고유의 어드레스를 가지며 존재한다. 과거에 특정의 웹 사이트에서 로드 밸런싱을 수행할 수 있는 능력은, 상기 네임 서버(DNS)가 무엇을 제공할 수 있는가에 의하여 제한되었다. 본 실시예에 따르면, 클라이언트들(36)은 다수의 논리적 서버 프로세스들 또는 웹 사이트들(38 및 40)과 통신중에 있다. 각 논리적 서버 프로세스는 그 자신의 논리적 인터페이스 시스템(42 및 44)을 포함하며, 상기 논리적 인터페이스 시스템은 고유의 논리적 어드레스에 의하여 억세스된다. 또한, 각 논리적 인터페이스 시스템은, 논리적 프로세스들을 물리적 프로세스들로 동적으로 매핑하는 그 자신의 선택 기능(45 및 47)을 포함한다. 상기 선택 기능은 프로그램 가능하며, 이것은 상기 시스템의 운영자 또는 웹 마스터(web master)가 그 기능성을 원하는대로 조정할 수 있다는 것을 의미한다. 그리하여, 하나 이상의 서버들 사이에 프로세스들을 분산할 필요가 있는 모든 웹 사이드는, 그 서버들 사이에서 로드 밸런싱을 수행하기 위하여 그 자신의 선택 기능을 사용한다. 예를 들어, 만약 클라이언트(36)가 논리적 서버 프로세스(38)(예컨대, 서버(1C))에 의하여 소유된 서버상의 데이터에 억세스하기를 원한다면, 상기 클라이언트는 상기 서버의 정확한 물리적 어드레스를 알고 있어야 할 필요가 없으며, 대신에 상기 논리적 서버 프로세스(38)의 논리적 어드레스만을 알고 있으면 된다. 그리고나서, 상기 논리적 서버 인터페이스(42)는 상기 논리적 프로세스 어드레스를 물리적 어드레스로 매핑한다. 여기에서 다시, 서버 수준에서가 아니라 클라이언트 레벨에서 로드 밸런싱이 수행되며(서버의 매핑이나, 클라이언트의 캐시에 의하여 수행됨), 그리하여 다수의 서버들 사이에 작업을 동적으로 분산할 수 있게 된다.
도4는 클라이언트의 캐시(48)가 상기 시스템의 성능을 해치지 않고 증대시키는 방법을 도시한 블록도이다. 상기한 바와 같이, 상기 클라이언트(49)가 논리적 프로세스를 선택하면, 상기 논리적 인터페이스 시스템의 일부인 매핑 서버(56)가 선택 기능 또는 매핑 기능(50)을 상기 클라이언트의 캐시(48)로 다운로드(download)하는데에 사용된다. 보다 작은 네트워크의 경우에는, 이것은 단지 상기 선택이 수정된 경우에만 요구된다. 웹의 경우에는, 상기 선택 기능은 새로운 웹 사이트와 교신한 경우(예컨대, 자바 애플릿을 통하여 교신하는 경우)마다 다운로드될 수 있다. 그리고나서, 상기 클라이언트는, 전체적인 성능을 향상시키기 위하여, 이제는 직접 원하는 물리적 프로세스로 어드레스를 지정함(addressing)으로써, 웹 브라우저를 사용하는 최종 사용자에게 전적으로 트랜스페어런트한 방식으로 논리적 프로세스(52)를 물리적 프로세스(54)로 동적으로 매핑한다.
상기 선택 기능(50)은 논리적 프로세스들과 물리적 프로세스들 사이의 동적 매핑을 고려한 것이라는 점을 주의하여야 한다. 즉, 상기 네트워크 또는 웹 사이트를 위한 시스템 운영자는, 네트워크 서버 사이에 최선으로 로드를 할당하는 모든 형식의 매핑 또는 발견적 프로세스(heuristic process)를 사용할 수 있다. 또한, 만약 상기 선택 기능이 클라이언트의 캐시로 다운로드된다면, 그것은 단지 특정 서버의 물리적 어드레스를 포함할 뿐만아니라, 서버 어드레스를 동적으로 선택하기 위한 모든 수단을 포함한다. 따라서, 하나의 캐시를 공유하는 다수의 사용자를 갖는 하나의 클라이언트(예를들어, 많은 사용자들을 갖는 대규모의 회사)는, 주어진 프로세스에 대해 하나의 어드레스에 로크되지 않는데, 그 이유는 그 어드레스가 상기 캐시내에 저장되기 때문이다. 대신에, 상기 선택 기능은, 논리적 프로세스가 요구될 때 마다 어떤 물리적 프로세스를 사용할 것인지 결정한다.
또한, 본 발명의 시스템 및 그 방법은, 모든 형식의 로드 밸런싱을 수행하는데에 적용될 수 있으며, 하나 이상의 서버들 사이에 기능적으로 동일한 프로세스들이 복제(duplicate)되는 경우로 한정되지 않는다. 다른 예로서, 다수의 서버들 사이에 메모리의 블록이 분산된 분산형 공유 메모리(distributed shared memory)와, 논리적 프로세스들과 물리적 프로세스들간에 일대일 대응이 존재하는 직선형 파일 서버들(straight forward file servers)과, 요구된 자원이 메모리내에 캐시될 가능성을 증가시키도록 일련의 서버들 사이에 요구들이 분할되는 웹 등이 있다. 논리적 프로세스들의 다른 형식들 또는 클래스들도 또한 본 발명의 이 실시예의 범주에 속함을 이해하여야 한다. 논리적 프로세스들의 몇몇 이러한 클래스들(classes)은 도5 및 도6을 참조하며 이하에서 보다 상세히 기술된다.
도5 및 도6은 논리적 프로세스들의 서로 다른 클래스들을 처리하기 위한 매핑표를 도시한다. 상기 두 개의 표에 도시된 바와 같이, 네 개의 논리적 서버 프로세스들은 세 개의 서로 다른 클래스들로 특성화되는데, DSM-LLSP와, FS와, NS가 그것이다. 그러나, 이것들은 가능한 클래스들의 예일뿐이며, 추가적인 클래스들을 몇 개라도 정의하여 사용할 수 있음을 주의하여야 한다. 상기 DSM-LLSP는 분산형 공유 메모리(distributed shared memory)-논리적 위치 서버 프로세스(logical location server process)이다. 그것은, 메모리의 페이지에 대하여 8 바이트의 어드레스가 주어지는 분산형 공유 메모리의 페이지의 위치에 관한 정보를 반송한다. 이 예에서는, 논리적 서버상의 작업 로드가 지나치게 커서 하나의 물리적 프로세스에 의하여 구현될 수 없으며, 그리하여 논리적 위치 서버 프로세스의 책임이 재분할(sub-partition)되는 것을 가정한다. 논리적 위치 서버 프로세스를 구현하는 각 물리적 프로세스는 어드레스 공간의 부분영역(sub-range)에 관하여 책임진다. 상기 선택 기능은 메시지로부터 문제의 어드레스를 추출하며, 문제의 물리적 프로세스를 선택하는데에 이 어드레스를 사용한다. 그리하여, 만약 메시지가 0XFFF065490000000인 페이지를 요구하며 논리적 서버 프로세스(1)로 송신된다면, 상기 선택 기능은 상기 메시지를 어드레스 페이지가 p3@host3로 도시된 물리적 프로세스로 송신되도록 유도한다.
두 번째 및 세 번째 논리적 프로세스의 클래스인 FS는 파일 서버(file server)이다. 이 경우에는, 두 개의 논리적 프로세스들이, 하나의 물리적 프로세스, p5@host5에 의하여 구현되도록 합체되었다. 선택할 것이 없기 때문에, 이 경우에 논리적 프로세스로부터 물리적 프로세스로 매핑할 때, 상기 선택 기능은 하나의 물리적 프로세스를 선택한다. 이 예에 도시된 논리적 프로세스의 마지막 클래스는 NS로서, 이것은 네임 서버(name server)이다. 이 경우에는, 서버 프로세스의 작업 로드는 분할을 요구하며, 상기한 바와 같은 물리적 프로세스들은 모두 어떠한 질문에도 답변할 수 있다는 것을 가정한다(예를 들어, 세 개의 물리적 프로세스들 모두는 네임 서버 데이터 베이스에의 완전한 억세스를 갖는다.). 이 경우에, 상기 선택 기능은, 그 입력을 무시하며 삼면을 가진 동전을 공중에 던져 순서를 정하는 발견적 방법을 구현한다(즉, 물리적 프로세스들의 하나를 임의로 선택한다.). 어떤 형식의 발견적 알고리즘도 사용될 수 있음을 주의하여야 한다.
논리적 프로세스들로부터 물리적 프로세스들로의 매핑과, 상기 매핑표의 정보는 동적으로 변경될 수 있다. 상기한 바와 같이, 이러한 논리적 프로세스들로부터 물리적 프로세스들로의 매핑은 매 매핑 프로세스마다 복제된다. 매핑을 유지하기 위하여, 커다란 네트워크들상에 정보를 분산하기 위한 내고장(耐故障) 확장형 알고리즘(fault-tolerant scalable algorithm)인 트리 캐스트(TreeCast) 알고리즘의 변형을 포함하여 알려진 모든 시스템이 사용될 수 있다(A. Teperman, M. Bach, Y. Moatti, D. Allon 共著, A Scalable Load Balancing Algorithm for Large Networks of Computers, IBM Isreal Science and Technology, Technology report TR88.313, 12/91을 참조하라.). 일반적으로, 상기 알고리즘은, 스패닝 트리(spanning tree)내로 프로세스들을 매핑하는 것을 구현함으로써, 동적으로 또한 내고장적으로 상기 물리적 프로세스들을 조직화하는데에 사용된다. 일단 스패닝 트리내로 조직화되면, 정보는 상기 트리상의 모든 프로세스들로 트리 캐스트(tree cast)될 수 있다. 시스템이 실행됨에 따라 프로세스들이 상기 트리와 결합하고 분리될 수 있다는 점에서 트리내로의 조직화는 동적이다. 만약 비-리프 노드(non-leaf node)가 상기 트리와 분리된다면, 상기 트리는 자동적으로 재구성된다. 또한, 상기 트리는 병합되거나 분할될 수도 있다.
도6은 논리적 프로세스 메카니즘(logical process mechanism)이 서버 프로세스들을 동적으로 재구성하는데에 사용되는 방법을 도시한 제 2 매핑표이다. 도6은, DSM-LLSP 클래스의 논리적 프로세스(1)에 대한 작업 이후에 상기 매핑표가 네 개의 물리적 프로세스들 사이에 재분산된 것을 도시한다(도5에서 두 개의 물리적 프로세스들에 분산된 것과 다름.). 논리적 서버의 클라이언트는 이러한 재구성에 관하여는 알고 있을 필요가 없다. 그것은 계속하여 그의 메시지들에 상기 논리적 프로세스(1)로 어드레스를 지정할 것이다. 그러나, 상기 선택 기능은 이제 자동적으로, 둘중의 하나가 아니라 넷중의 하나의 물리적 프로세스로 이 메시지를 재지정한다.
본 발명에 의하면, 논리적 및 물리적(logical and physical)인 두가지 수준의 추상화(abstraction)를 포함하는 서버 프로세스들을 제공함으로써 분산형 네트워크 시스템에 보다 향상된 로드 밸런싱을 제공할 수 있으며, 간결하고 영구적인 어드레스를 사용할 수 있게 한다.
상기 본 발명의 실시예들의 설명은 본 발명의 기술 사상과 그 물리적 응용을 가장 잘 설명하기 위한 것들이며, 그리하여 본 발명의 기술 분야의 통상의 전문가(이하, 당업자)가 본 발명을 용이하게 실시할 수 있게 하기 위한 것이다. 그러나, 상기 당업자는 상기의 설명과 실시예는 단지 설명과 실례를 들기 위한 것이라는 점을 이해할 것이다. 상기의 설명은 본 발명을 상기한 설명만으로 제한하려는 것이 아니다. 이하의 특허 청구의 범위의 사상 및 범위내에서, 본 발명에 대한 여러가지 변형 및 수정이 이루어질 수 있다.

Claims (33)

  1. 월드 와이드 웹(world wide web)에 의하여 사용하기 위한 분산형 네트워크에 있어서,
    클라이언트 시스템(client system) 상에 존재하는 웹 브라우저(web browser) - 상기 웹 브라우저는 논리적 프로세스를 선택하기 위한 시스템을 포함함 - ;
    다수의 웹 사이트들(web sites) - 상기 웹 사이트들중 일부는 다수의 서버들 사이에 분산된 다수의 물리적 프로세스들을 포함함 - ;
    상기 논리적 프로세스를 상기 다수의 물리적 프로세스들중의 하나로 매핑하기 위한 논리적 인터페이스 시스템(logical interface system) - 상기 논리적 인터페이스 시스템은 상기 다수의 물리적 프로세스들중에서 선택하기 위한 프로그램가능한 선택 기능을 포함함 - 을 포함하는 분산형 네트워크.
  2. 제 1 항에 있어서,
    상기 프로그램가능한 선택 기능은 매핑 서버에 존재하는 분산형 네트워크.
  3. 제 1 항에 있어서,
    상기 프로그램가능한 선택 기능은 상기 클라이언트 시스템으로 다운로드 가능한 분산형 네트워크.
  4. 제 3 항에 있어서,
    상기 프로그램가능한 선택 기능은 클라이언트 시스템의 캐시(cache)에 저장 가능한 분산형 네트워크.
  5. 제 1 항에 있어서,
    상기 프로그램가능한 선택 기능은 자바 애플릿(Java applet)으로서 다운로드되는 분산형 네트워크.
  6. 프로그램 제품에 있어서,
    기록가능 매체; 및
    상기 기록가능 매체에 기록된 논리적 인터페이스 시스템을 포함하고,
    상기 논리적 인터페이스 시스템은 클라이언트-서버 네트워크 시스템에서 사용되며, 클라이언트는 논리적 프로세스를 선택하기 위한 메카니즘을 포함하고, 다수의 서버들은 분산된 물리적 프로세스들을 포함하고, 상기 논리적 인터페이스 시스템은 상기 논리적 프로세스를 상기 다수의 물리적 프로세스들중의 어느 하나로 지정하기 위한 프로그램가능한 선택 기능을 포함하는 프로그램 제품.
  7. 제 6 항에 있어서,
    상기 프로그램가능한 선택 기능은 상기 클라이언트 시스템으로 다운로드 가능한 프로그램 제품.
  8. 제 6 항에 있어서,
    상기 프로그램가능한 선택 기능은 클라이언트 시스템의 캐시(cache)에 저장 가능한 프로그램 제품.
  9. 제 6 항에 있어서,
    상기 클라이언트는 웹 브라우저를 포함하며,
    상기 다수의 물리적 프로세스들은 웹 페이지들(web pages)을 포함하는 프로그램 제품.
  10. 제 6 항에 있어서,
    상기 프로그램가능한 선택 기능은 자바 애플릿(Java applet)으로서 다운로드되는 프로그램 제품.
  11. 분산형 컴퓨팅 시스템에 있어서,
    논리적 어드레스를 갖는 논리적 프로세스를 선택하기 위한 메카니즘을 각각 포함하는 다수의 클라이언트 시스템;
    물리적 어드레스를 각각 갖는 다수의 물리적 프로세스들을 포함하는 다수의 물리적 서버 시스템;
    상기 논리적 프로세스를 상기 다수의 물리적 프로세스들중 어느 하나로 매핑하는 매핑 시스템을 포함하는 논리적 프로세스 인터페이스 시스템을 포함하는 분산형 컴퓨팅 시스템.
  12. 제 11 항에 있어서,
    상기 매핑 시스템은 분산형 공유 메모리의 페이지의 위치를 반송하기 위한 제1 선택 메카니즘을 포함하는 분산형 컴퓨팅 시스템.
  13. 제 12 항에 있어서,
    상기 분산형 공유 메모리는 다수의 물리적 서버 시스템들에 걸쳐 분할되어 있는 분산형 컴퓨터 시스템.
  14. 제 11 항에 있어서,
    상기 매핑 시스템은 상기 물리적 프로세스들의 부분집합의 어느 하나를 선택하기 위한 제2 선택 메카니즘을 포함하고, 상기 부분집합내의 상기 물리적 프로세스들의 각각은 기능적으로 동등한 것들인 분산형 컴퓨팅 시스템.
  15. 제 11 항에 있어서,
    상기 매핑 시스템은 다수의 논리적 프로세스들을 하나의 미리 결정된 물리적 프로세스로 매핑하기 위한 제3 선택 메카니즘을 포함하는 분산형 컴퓨팅 시스템.
  16. 제 11 항에 있어서,
    상기 논리적 프로세스 인터페이스 시스템은 최소한 하나의 매핑 서버를 포함하는 분산형 컴퓨팅 시스템.
  17. 제 11 항에 있어서,
    상기 매핑 시스템은 상기 클라이언트 시스템에 존재하는 캐싱 시스템(caching system)을 포함하는 분산형 컴퓨팅 시스템.
  18. 제 11 항에 있어서,
    상기 논리적 프로세스는 전세계적으로 유일하고 영구적인 식별자를 포함하는 분산형 컴퓨팅 시스템.
  19. 제 17 항에 있어서,
    상기 캐싱 시스템은 상기 선택 기능을 저장하고 실행하기 위한 메카니즘을 포함하는 분산형 컴퓨팅 시스템.
  20. 분산형 컴퓨팅 시스템에 있어서,
    다수의 클라이언트 시스템들에 의하여 어드레스 가능한 논리적 어드레스를 가진 다수의 논리적 프로세스들;
    물리적 어드레스들을 가진 다수의 물리적 프로세스들 - 상기 물리적 프로세스는 다수의 물리적 서버들중 최소한 하나의 물리적 서버상에 존재함 - ;
    상기 클라이언트중 어느 하나에 의하여 상기 논리적 프로세스들의 어느 하나가 선택될 때, 논리적 어드레스들로부터 물리적 어드레스들로 매핑하기 위한 매핑 시스템을 포함하는 분산형 컴퓨팅 시스템.
  21. 제 20 항에 있어서,
    상기 매핑 시스템은 매핑 서버를 포함하는 분산형 컴퓨팅 시스템.
  22. 제 20 항에 있어서,
    상기 매핑 시스템은 상기 다수의 클라이언트 시스템들의 각각에 존재하는 캐싱 시스템을 포함하는 분산형 컴퓨팅 시스템.
  23. 제 20 항에 있어서,
    상기 논리적 프로세스들의 각각은 미리 결정된 클래스에 속하는 분산형 컴퓨팅 시스템.
  24. 제 20 항에 있어서,
    하나의 논리적 프로세스 하여금 기능적으로는 동등하나 서로다른 물리적 서버들상에 존재하는 상기 다수의 물리적 프로세스들중 어느 하나로 매핑될 수 있도록 하는 논리적 프로세스들의 제1 클래스를 더 포함하는 분산형 컴퓨팅 시스템.
  25. 제 24 항에 있어서,
    상기 매핑 시스템은 상기 하나의 논리적 프로세스가 어느 물리적 프로세스로 매핑될지를 결정하기 위한 선택 기능을 포함하는 분산형 컴퓨팅 시스템.
  26. 제 25 항에 있어서,
    하나의 논리적 프로세스로 하여금, 분산형 공유 메모리에 대한 위치 서비스(location service)의 일부를 유지할 수 있도록 하는 논리적 프로세스들의 제 2 클래스를 더 포함하고, 상기 위치 서비스의 일부는 다수의 물리적 서버들에 걸쳐 분할되는 분산형 컴퓨팅 시스템.
  27. 제 26 항에 있어서,
    상기 매핑 시스템은 상기 분산형 공유 메모리의 페이지의 위치를 반송하기 위한 선택 기능을 포함하는 분산형 컴퓨팅 시스템.
  28. 제 20 항에 있어서,
    그 각각이 하나의 물리적 프로세스로 매핑되는 논리적 프로세스들의 제3 클래스를 더 포함하는 분산형 컴퓨팅 시스템.
  29. 논리적 프로세스들을 물리적 프로세스들로 매핑하기 위한 매핑 인터페이스 시스템에 있어서,
    논리적 프로세스들의 제 1 클래스를 다수의 물리적 프로세스들의 어느 하나로 매핑하기 위한 제1 매핑 프로세스 - 상기 다수의 물리적 프로세스들중 각각은 기능적으로 동등하나 서로다른 물리적 어드레스들에 존재함 - ;
    논리적 프로세스들의 제2 클래스를 매핑하기 위한 제2 매핑 프로세스 - 상기 프로세스는 분산형 공유 메모리의 페이지의 위치를 반송하기 위한 수단을 포함함 - ;
    논리적 프로세스들의 제3 클래스를 하나의 물리적 프로세스로 매핑하기 위한 제3 매핑 프로세스를 포함하는 매핑 인터페이스 시스템.
  30. 다수의 물리적 서버 어드레스들을 갖는 웹 사이트들을 포함하는 월드 와이드 웹 시스템상에서 분산형 프로세스들을 처리하기 위한 방법에 있어서,
    웹 브라우저로부터 논리적 프로세스를 개시하는 단계;
    상기 웹 브라우저에 관련된 캐시내에 상기 논리적 프로세스에 대한 매핑 기능이 존재하는지를 판단하기 위하여 상기 캐시를 검사하는 단계;
    상기 캐시내에 상기 논리적 프로세스에 대한 매핑 기능이 존재하는 경우에, 선택된 웹 사이트의 물리적 프로세스의 어드레스를 확인하기 위하여 상기 매핑 기능을 사용하는 단계;
    상기 캐시내에 상기 논리적 프로세스에 대한 매핑 기능이 존재하지 않는 경우에, 상기 매핑 기능을 매핑 서버로부터 상기 캐시로 다운로드하고; 선택된 웹 사이트의 물리적 프로세스의 어드레스를 확인하기 위하여 상기 매핑 기능을 사용하는 단계;
    상기 매핑 기능으로부터 획득한 물리적 프로세스의 어드레스로 상기 웹 사이트에 접속하는 단계를 포함하는 분산형 프로세스 처리 방법.
  31. 제 30 항에 있어서,
    상기 매핑 서버는 상기 웹 사이트에 근접하여 위치한 분산형 프로세스 처리 방법.
  32. 제 30 항에 있어서,
    상기 매핑 기능은 자바 애플릿의 형식으로 캐시내로 다운로드되는 분산형 프로세스 처리 방법.
  33. 제 30 항에 있어서,
    상기 매핑 기능은 물리적 프로세스들을 선택하기 위한 미리 결정된 선택 프로세스를 포함하는 분산형 프로세스 처리 방법.
KR1019970044768A 1996-12-20 1997-08-30 논리적프로세싱을이용한분산형컴퓨팅시스템및그방법 KR100271199B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/772,663 1996-12-20
US8/772,663 1996-12-20
US08/772,663 US6272523B1 (en) 1996-12-20 1996-12-20 Distributed networking using logical processes

Publications (2)

Publication Number Publication Date
KR19980063445A true KR19980063445A (ko) 1998-10-07
KR100271199B1 KR100271199B1 (ko) 2000-11-01

Family

ID=25095798

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970044768A KR100271199B1 (ko) 1996-12-20 1997-08-30 논리적프로세싱을이용한분산형컴퓨팅시스템및그방법

Country Status (2)

Country Link
US (1) US6272523B1 (ko)
KR (1) KR100271199B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100609552B1 (ko) * 1999-10-11 2006-08-04 엘지엔시스(주) 금융업무 분산처리장치 및 분산처리방법

Families Citing this family (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5935207A (en) * 1996-06-03 1999-08-10 Webtv Networks, Inc. Method and apparatus for providing remote site administrators with user hits on mirrored web sites
US6112239A (en) * 1997-06-18 2000-08-29 Intervu, Inc System and method for server-side optimization of data delivery on a distributed computer network
US6718387B1 (en) * 1997-12-10 2004-04-06 Sun Microsystems, Inc. Reallocating address spaces of a plurality of servers using a load balancing policy and a multicast channel
US6185598B1 (en) * 1998-02-10 2001-02-06 Digital Island, Inc. Optimized network resource location
US6330617B1 (en) * 1998-02-27 2001-12-11 Sabre Inc System, method and computer program product for data conversion in a computer network
US6963914B1 (en) * 1998-09-01 2005-11-08 Lucent Technologies Inc. Method and apparatus for retrieving a network file using a logical reference
JP2000076118A (ja) * 1998-09-03 2000-03-14 Fuji Xerox Co Ltd 分散ファイル処理装置および分散ファイル処理方法
US6691165B1 (en) * 1998-11-10 2004-02-10 Rainfinity, Inc. Distributed server cluster for controlling network traffic
US6724724B1 (en) * 1999-01-21 2004-04-20 Cisco Technology, Inc. System and method for resolving an electronic address
US6901604B1 (en) * 1999-02-19 2005-05-31 Chaincast, Inc. Method and system for ensuring continuous data flow between re-transmitters within a chaincast communication system
US6594702B1 (en) * 1999-02-25 2003-07-15 Oracle International Corporation Managing the size and accessibility of a name service
US6801949B1 (en) 1999-04-12 2004-10-05 Rainfinity, Inc. Distributed server cluster with graphical user interface
US7346695B1 (en) 2002-10-28 2008-03-18 F5 Networks, Inc. System and method for performing application level persistence
US6374300B2 (en) * 1999-07-15 2002-04-16 F5 Networks, Inc. Method and system for storing load balancing information with an HTTP cookie
US7287084B1 (en) 1999-07-15 2007-10-23 F5 Networks, Inc. Enabling encryption of application level persistence between a server and a client
US6374297B1 (en) * 1999-08-16 2002-04-16 International Business Machines Corporation Method and apparatus for load balancing of web cluster farms
US7363361B2 (en) * 2000-08-18 2008-04-22 Akamai Technologies, Inc. Secure content delivery system
US6615231B1 (en) * 1999-12-15 2003-09-02 Microsoft Corporation System and method for directing requests to specific processing
US8429248B1 (en) * 1999-12-17 2013-04-23 Intel Corporation Distributed file system including multicast retrieval
US7171492B1 (en) * 2000-02-24 2007-01-30 Utstarcom, Inc. Method and application programming interface for assigning multiple network addresses
US6601229B1 (en) * 2000-03-09 2003-07-29 International Business Machines Corporation Client/server behavioral modeling and testcase development using VHDL for improved logic verification
US6725218B1 (en) * 2000-04-28 2004-04-20 Cisco Technology, Inc. Computerized database system and method
US7225240B1 (en) * 2000-05-20 2007-05-29 Ciena Corporation Decoupling processes from hardware with logical identifiers
US7082476B1 (en) * 2000-05-24 2006-07-25 Cisco Technology, Inc. System and method of optimizing retrieval of network resources by identifying and substituting embedded symbolic host name references with network addresses in accordance with substitution policies
US7225237B1 (en) * 2000-07-31 2007-05-29 Cisco Technology, Inc. System and method for providing persistent connections based on subnet natural class
US7606898B1 (en) 2000-10-24 2009-10-20 Microsoft Corporation System and method for distributed management of shared computers
US7089561B2 (en) * 2001-06-01 2006-08-08 Microsoft Corporation Methods and systems for creating and communicating with computer processes
FR2826140B1 (fr) * 2001-06-19 2003-10-31 Thales Sa Procede de gestion d'une interface homme machine dans un systeme cartographique au moins partiellement embarque sur aeronef
TW576061B (en) * 2001-08-13 2004-02-11 Via Tech Inc Device and method for load balancing of packet switching
FI20011651A (fi) * 2001-08-15 2003-02-16 Nokia Corp Palveluklusterin kuormituksen tasapainoittaminen
IL160746A0 (en) * 2001-09-05 2004-08-31 Eli Abir Method and apparatus for dynamic client-side load balancing system
US6880002B2 (en) * 2001-09-05 2005-04-12 Surgient, Inc. Virtualized logical server cloud providing non-deterministic allocation of logical attributes of logical servers to physical resources
US7747758B2 (en) * 2001-10-29 2010-06-29 International Business Machines Corporation Dynamic port assignment
FI115358B (fi) * 2001-11-05 2005-04-15 Nokia Corp Tilaton kuormanjako
US7574496B2 (en) 2001-11-30 2009-08-11 Surgient, Inc. Virtual server cloud interfacing
JP3466596B2 (ja) * 2002-03-13 2003-11-10 コナミ株式会社 ネットワークゲームシステム
US20040072617A1 (en) * 2002-03-13 2004-04-15 Konami Corporation Network game system
US6990666B2 (en) * 2002-03-18 2006-01-24 Surgient Inc. Near on-line server
US7257584B2 (en) 2002-03-18 2007-08-14 Surgient, Inc. Server file management
US7430755B1 (en) 2002-09-03 2008-09-30 Fs Networks, Inc. Method and system for providing persistence in a secure network access
US8489742B2 (en) * 2002-10-10 2013-07-16 Convergys Information Management Group, Inc. System and method for work management
US8577795B2 (en) 2002-10-10 2013-11-05 Convergys Information Management Group, Inc. System and method for revenue and authorization management
US7287186B2 (en) 2003-06-02 2007-10-23 Surgient Inc. Shared nothing virtual cluster
US7590736B2 (en) 2003-06-30 2009-09-15 Microsoft Corporation Flexible network load balancing
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
US7613822B2 (en) * 2003-06-30 2009-11-03 Microsoft Corporation Network load balancing with session information
US7636917B2 (en) 2003-06-30 2009-12-22 Microsoft Corporation Network load balancing with host status information
US8776050B2 (en) * 2003-08-20 2014-07-08 Oracle International Corporation Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes
US20050080982A1 (en) * 2003-08-20 2005-04-14 Vasilevsky Alexander D. Virtual host bus adapter and method
US20050044301A1 (en) * 2003-08-20 2005-02-24 Vasilevsky Alexander David Method and apparatus for providing virtual computing services
US7643484B2 (en) * 2003-09-26 2010-01-05 Surgient, Inc. Network abstraction and isolation layer rules-based federation and masquerading
US7769004B2 (en) * 2003-09-26 2010-08-03 Surgient, Inc. Network abstraction and isolation layer for masquerading machine identity of a computer
US7668093B1 (en) 2004-08-05 2010-02-23 Convergys Information Management Group, Inc. Architecture for balancing workload
US7590980B1 (en) 2004-06-14 2009-09-15 Convergys Cmg Utah, Inc. System and method for a functional extensibility framework
US9262490B2 (en) * 2004-08-12 2016-02-16 Oracle International Corporation Adaptively routing transactions to servers
US7941309B2 (en) 2005-11-02 2011-05-10 Microsoft Corporation Modeling IT operations/policies
US7707314B2 (en) * 2005-11-21 2010-04-27 Limelight Networks, Inc. Domain name resolution resource allocation
US20070118667A1 (en) * 2005-11-21 2007-05-24 Limelight Networks, Inc. Domain name resolution based dynamic resource assignment
US8078728B1 (en) 2006-03-31 2011-12-13 Quest Software, Inc. Capacity pooling for application reservation and delivery
US8566452B1 (en) 2006-08-03 2013-10-22 F5 Networks, Inc. Intelligent HTTP based load-balancing, persistence, and application traffic management of SSL VPN tunnels
EP2073505B1 (en) * 2007-12-17 2012-04-04 Nokia Siemens Networks Oy Query routing in distributed database system
US8194674B1 (en) 2007-12-20 2012-06-05 Quest Software, Inc. System and method for aggregating communications and for translating between overlapping internal network addresses and unique external network addresses
US20110153826A1 (en) * 2009-12-22 2011-06-23 Microsoft Corporation Fault tolerant and scalable load distribution of resources
US8838535B2 (en) 2012-10-05 2014-09-16 Oracle International Corporation Providing services across systems that manage distributed replicas
US9965363B2 (en) 2013-12-14 2018-05-08 Netapp, Inc. Techniques for LIF placement in SAN storage cluster synchronous disaster recovery
US9842148B2 (en) 2015-05-05 2017-12-12 Oracle International Corporation Method for failure-resilient data placement in a distributed query processing system
US10432754B2 (en) 2015-09-16 2019-10-01 Profire Energy, Inc Safety networking protocol and method
US10514683B2 (en) 2015-09-16 2019-12-24 Profire Energy, Inc. Distributed networking system and method to implement a safety state environment
US10225331B1 (en) * 2015-09-23 2019-03-05 EMC IP Holding Company LLC Network address translation load balancing over multiple internet protocol addresses
US10474653B2 (en) 2016-09-30 2019-11-12 Oracle International Corporation Flexible in-memory column store placement
US11954117B2 (en) 2017-09-29 2024-04-09 Oracle International Corporation Routing requests in shared-storage database systems

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2476349A1 (fr) 1980-02-15 1981-08-21 Philips Ind Commerciale Systeme de traitement de donnees reparti
JPS6243766A (ja) 1985-08-21 1987-02-25 Hitachi Ltd 共用資源の状態管理方式
US5111389A (en) 1987-10-29 1992-05-05 International Business Machines Corporation Aperiodic mapping system using power-of-two stride access to interleaved devices
US5390297A (en) 1987-11-10 1995-02-14 Auto-Trol Technology Corporation System for controlling the number of concurrent copies of a program in a network based on the number of available licenses
US5117350A (en) 1988-12-15 1992-05-26 Flashpoint Computer Corporation Memory address mechanism in a distributed memory architecture
US5301337A (en) 1990-04-06 1994-04-05 Bolt Beranek And Newman Inc. Distributed resource management system using hashing operation to direct resource request from different processors to the processor controlling the requested resource
AU639802B2 (en) 1990-08-14 1993-08-05 Oracle International Corporation Methods and apparatus for providing dynamic invocation of applications in a distributed heterogeneous environment
US5222242A (en) 1990-09-28 1993-06-22 International Business Machines Corp. System for locating a node containing a requested resource and for selectively verifying the presence of the resource at the node
US5249290A (en) 1991-02-22 1993-09-28 At&T Bell Laboratories Method of and apparatus for operating a client/server computer network
US5369570A (en) 1991-11-14 1994-11-29 Parad; Harvey A. Method and system for continuous integrated resource management
US5371852A (en) 1992-10-14 1994-12-06 International Business Machines Corporation Method and apparatus for making a cluster of computers appear as a single host on a network
JP3266351B2 (ja) * 1993-01-20 2002-03-18 株式会社日立製作所 データベース管理システムおよび問合せの処理方法
US5548724A (en) * 1993-03-22 1996-08-20 Hitachi, Ltd. File server system and file access control method of the same
US5459837A (en) 1993-04-21 1995-10-17 Digital Equipment Corporation System to facilitate efficient utilization of network resources in a computer network
US5548506A (en) 1994-03-17 1996-08-20 Srinivasan; Seshan R. Automated, electronic network based, project management server system, for managing multiple work-groups
US5715395A (en) 1994-09-12 1998-02-03 International Business Machines Corporation Method and apparatus for reducing network resource location traffic in a network
FR2730572B1 (fr) 1995-02-10 1997-03-14 Schneider Electric Sa Dispositif d'interface
US5678041A (en) 1995-06-06 1997-10-14 At&T System and method for restricting user access rights on the internet based on rating information stored in a relational database
US5603029A (en) * 1995-06-07 1997-02-11 International Business Machines Corporation System of assigning work requests based on classifying into an eligible class where the criteria is goal oriented and capacity information is available
JP3738787B2 (ja) 1995-10-19 2006-01-25 富士ゼロックス株式会社 資源管理装置及び資源管理方法
US5572643A (en) * 1995-10-19 1996-11-05 Judson; David H. Web browser with dynamic display of information objects during linking
US5751961A (en) * 1996-01-31 1998-05-12 Bell Communications Research, Inc. Integrated internet system for translating logical addresses of internet documents to physical addresses using integrated service control point
US5802299A (en) * 1996-02-13 1998-09-01 Microtouch Systems, Inc. Interactive system for authoring hypertext document collections
US5963915A (en) * 1996-02-21 1999-10-05 Infoseek Corporation Secure, convenient and efficient system and method of performing trans-internet purchase transactions
US5815665A (en) * 1996-04-03 1998-09-29 Microsoft Corporation System and method for providing trusted brokering services over a distributed network
US5768510A (en) * 1996-07-01 1998-06-16 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server application enabler system
US5774660A (en) * 1996-08-05 1998-06-30 Resonate, Inc. World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network
US5787435A (en) * 1996-08-09 1998-07-28 Digital Equipment Corporation Method for mapping an index of a database into an array of files
US5892905A (en) * 1996-12-23 1999-04-06 International Business Machines Corporation Computer apparatus and method for providing a common user interface for software applications accessed via the world-wide web
US6058423A (en) * 1996-12-23 2000-05-02 International Business Machines Corporation System and method for locating resources in a distributed network
US6049829A (en) * 1997-07-22 2000-04-11 At&T Corp. Information access system and method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100609552B1 (ko) * 1999-10-11 2006-08-04 엘지엔시스(주) 금융업무 분산처리장치 및 분산처리방법

Also Published As

Publication number Publication date
US6272523B1 (en) 2001-08-07
KR100271199B1 (ko) 2000-11-01

Similar Documents

Publication Publication Date Title
KR100271199B1 (ko) 논리적프로세싱을이용한분산형컴퓨팅시스템및그방법
KR100290199B1 (ko) 동적이동에이전트
EP0479660B1 (en) Distributed configuration profile for computing system
US8275867B2 (en) Using virtual domain name service (DNS) zones for enterprise content delivery
US6167427A (en) Replication service system and method for directing the replication of information servers based on selected plurality of servers load
US8055706B2 (en) Transparent request routing for a partitioned application service
JP3696639B2 (ja) ディレクトリサービスのファイルシステムサービスとの統一
KR100276137B1 (ko) 클라이언트-서버 환경내에서 범용 자원 네임을 제공하기 위한 메카니즘
JP4154893B2 (ja) ネットワークストレージ仮想化方法
US7269696B2 (en) Method and apparatus for encapsulating a virtual filer on a filer
US6377984B1 (en) Web crawler system using parallel queues for queing data sets having common address and concurrently downloading data associated with data set in each queue
US20070079004A1 (en) Method and apparatus for distributed indexing
CA2543753A1 (en) Method and system for accessing and managing virtual machines
JP2010511948A (ja) プロキシを伴う分散ディレクトリのための方法、プロキシ・サーバ、及びプロキシ・ディレクトリ・システム
US7797392B2 (en) System and method for efficiently supporting multiple native network protocol implementations in a single system
US8041761B1 (en) Virtual filer and IP space based IT configuration transitioning framework
Blomer et al. A fully decentralized file system cache for the CernVM-FS
Kurcewicz et al. A distributed WWW cache
Baker et al. Scalable web server design for distributed data management
Kuz et al. The globe infrastructure directory service
JPH11296456A (ja) サーバ統合用プロキシサーバ
Bernardo et al. A scalable location service with fast update responses
Bochmann et al. Scalability of web-based electronic commerce systems
Miljković Methods for geotargeting redirection in corporate wide area networks
Mohan et al. Data Mining for Adaptive Web Cache Maintenance

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: 20040611

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee