[go: up one dir, main page]

KR100798504B1 - 요청의 집중 및 부하조정을 위한 시스템 및 방법 - Google Patents

요청의 집중 및 부하조정을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR100798504B1
KR100798504B1 KR1020037001225A KR20037001225A KR100798504B1 KR 100798504 B1 KR100798504 B1 KR 100798504B1 KR 1020037001225 A KR1020037001225 A KR 1020037001225A KR 20037001225 A KR20037001225 A KR 20037001225A KR 100798504 B1 KR100798504 B1 KR 100798504B1
Authority
KR
South Korea
Prior art keywords
connection
client
coordinator
request
shared memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
KR1020037001225A
Other languages
English (en)
Other versions
KR20030031134A (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 KR20030031134A publication Critical patent/KR20030031134A/ko
Application granted granted Critical
Publication of KR100798504B1 publication Critical patent/KR100798504B1/ko
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

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/465Distributed object oriented systems
    • 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/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1034Reaction to server failures by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/59Providing operational support to end devices by off-loading in the network or by emulation, e.g. when they are unavailable
    • 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
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/10015Access to distributed or replicated servers, e.g. using brokers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)

Abstract

본 발명은 일반적으로 분산 컴퓨팅 환경에 관한 것으로서 특히 인터넷 인터-ORB 프로토콜(IIOP) 환경에서 ORB 접속의 수를 감소시키는 시스템 및 방법에 관한 것이다. 종래의 방법은 클라이언트(82, 84, 86, 88)로부터 원격 서버(92, 94, 96, 98)로의 요청을 조정하기 위해 n×m 개의 접속을 필요로 했다. 본 방법에서는 지능형 집중기를 통해 m개의 접속(81, 91)만 있으면 되고, 이것은 요건을 상당히 감소시키고 확장성을 허용한다. 종래의 방법은 집중기 고장 또는 동적 확장성을 조정하는데 다중 지능형 마스터 집중기 프로세스(90)를 사용하지 않았다.

Description

요청의 집중 및 부하조정을 위한 시스템 및 방법{SYSTEM AND METHOD FOR CONCENTRATION AND LOAD-BALANCING OF REQUESTS}
저작권 공지
본 특허서류의 명세의 일부분은 저작권 보호를 받는 내용을 포함한다. 저작권자는 특허상표청 특허 파일 또는 기록에서 나타난 특허서류 또는 특허명세에 대해 누군가에 의한 팩스 복제는 반대하지 않는다. 그러나 그외의 행위에 대해서는 모든 저작권이 미친다.
본 출원은 2000년 7월 27일 출원된 제 60/221,057호 "SYSTEM AND METHOD FOR CONCENTRATION AND LOAD-BALANCING OF REQUESTS" 가출원에 대한 우선권을 주장하며 여기서 참조문헌으로서 인용된다.
본 발명은 일반적으로 분산 컴퓨팅 환경에 관한 것으로서, 특히 인터넷 객체 요청 브로커간 프로토콜[Internet inter-ORB(Object Request Broker) protocol](IIOP) 환경에서 ORB 접속의 수를 감소시키는 시스템 및 방법에 관한 것이다.
분산 컴퓨팅 분야에서, 머신들이 상호 통신하거나 분산 또는 망-집중 애플리케이션들을 공유하도록 하는 여러 아키텍처가 존재한다. 이러한 아키텍처의 하나는 CORBA(Common Object Request Broken Architecture)를 포함한다. CORBA는 OMG(Object Management Group)-객체지향 컴퓨팅에서 사용하기 위한 규격을 전문적으로 개발하는 독립단체-에 의해 개발된 아키텍처 설계사양이다. CORBA-컴플라이언트 시스템의 예에는 넷스케이프의 ONE 제품 및 BEA System의 Weblogic Enterprise Server가 있다.
CORBA는 인터페이스 정의 언어(IDL)에 대한 사양을 제공하는데, 그것은 소프트웨어 개발자가 표준 방식으로 그들의 객체 지향 애플리케이션과의 인터페이스를 정의하도록 허용한다. IDL은 IDL 정의 및 형태가 C, C++, 자바를 포함하여 다양한 프로그래밍 언어로 매핑되도록 허용하는 매핑을 포함한다. 따라서, CORBA는 개발자가 "투명한" 애플리케이션을 생성하도록 허용하는 바, 이는 본래의 프로그래밍 언어와 독립적으로 해석될 수 있다. 개발자 및 제 3자 벤더는 ORB를 통해 상호간에 작용하는 객체를 생성한다. 언어 매핑을 사용하여, 개발자는 ORB가 이해하는 클라이언트 측 "stubs" 및 서버 측 "skeletons"를 생성할 수 있다.
CORBA 2.0 이래로, CORBA 사양은 ORB가 서로 연속적으로 통신하도록 허용하는 방법을 포함한다. ORB 상호운용성(interoperability) 아키텍처 또는 더욱 상세하게 일반 ORB간 프로토콜(GIOP) 규격은 ORB가 네트워크를 통해 만드는 메시지 요청의 집합을 정의한다. GIOP의 여러 특성이 존재하고, 각각 특정 네트워크 트랜스포트의 필요에 맞추어져 있다. OMG에 의해 정의된 GIOP는 3개의 구성요소를 포함한다.
공통 데이터 표시 - IDL 타입을 네트워크 에이전트간에 사용되는 저레벨 타 입으로 매핑하는 전송 신택스(transfer syntax)
GIOP 메시지 포맷 - 클라이언트 요청, 서버 응답, 클라이언트 취소 요청, 클라이언트 위치 요청, 서버 위치 응답, 서버 클로우즈(close) 접속 및 메시지 에러를 포함하여 현재 7개가 있다.
GIOP 메시지 트랜스포트 가정 - 트랜스포트가 접속 지향이고 신뢰성 있으며, 바이트 스트림으로서 표시될 수 있고 무질서한 접속 손실의 적절한 통지를 제공하고 접속을 초기화하는 트랜스포트 모델이 TCP/IP의 일반 접속 모델로 매핑될 수 있다는 것을 포함한다.
모든 ORB가 사양에 의해 사용할 수 있어야만 하는 공통 GIOP 실시는 인터넷 ORB간 프로토콜(IIOP)이다. IIOP는 GIOP 메시지를 TCP/IP로 매핑하고 ORB가 TCP/IP 네트워크 예를 들어 인터넷을 통신버스 또는 백본으로서 사용하도록 허용한다. 도 1의 피라미드 구조를 참조하면, 피라미드의 최하위 레벨에, 물리 디바이스 예를 들어 MAC(Media Access Control) 어드레스를 갖는 이서넷 카드가 존재한다. 이것 위에 이서넷 프로토콜이 있으며, 이것은 접속 기반, 메시지가 인코딩되고 충돌이 해결되는 브로드캐스트 토팔러지를 제공한다. 다음 층은 인터넷 프로토콜(IP)이며, 이것은 인터넷을 지나는 패킷의 포맷을 특정하고 호스트이름 및 IP 어드레스를 지원한다. 호스트이름은 IP가 전송되도록 한다. IP 위에 트랜스포트 제어 프로토콜(TCP)이 있고, 이것은 패킷 분할 및 존속 시간과 같은 포트번호 및 제어 명령의 기능성을 부가한다. IIOP는 TCP 위에 있다. IIOP 위에 ORB 레벨이 있으며, 이것은 IIOP 요청을 정리한다. 피라미드의 최상위에는 애플리케이션 레벨이 있으 며, 이것은 객체 구현(object implementation) 및 다른 ORB 객체 및 네이밍(Naming) 서비스와 같은 서비스를 포함한다.
상기 기술하고 도 2에서 추가적으로 도시한 그러한 분산 객체 시스템에서, 요청(50)은 객체의 기능(42 44, 46, 48)을 요구하는 프로세스와 객체의 기능(52, 54, 56, 58)을 실시하는 프로세스 사이에서 오고간다. 도 2의 예는 m개의 서버를 호출(invoke)하는 n개의 클라이언트를 나타낸다. 그러한 시스템으로는 n×m 개의 접속이 있을 때 확장성을 달성하기가 어렵다. 여기서 n은 객체기능의 그룹을 요구하는 프로세스를 나타내고 m은 객체기능의 그룹을 실시하는 프로세스를 나타낸다. 이것은 일반적으로 "팬-아웃(fan-out) 문제"로서 알려져 있으며 확장성을 허용을 위해 시스템 자원이 충분하도록 하는데 어려움이 따르게 된다. 집중기 프로세스를 통해 IIOP/ORB 도메인 또는 객체 구현의 그룹으로의 요청의 집중을 허용하는 기술이 존재한다. 문제는 도메인 내의 객체 구현으로부터 도메인 외부의 다른 객체 구현으로의 반대 방향으로 어떻게 확장성을 달성하느냐이다.
객체 시스템에서 확장성의 문제를 해결하기 위해, 본 발명의 실시예는 네이티브 클라이언트 및 네이티브 클라이언트로서 동작하는 서버가 원격 객체 참조(object reference)를 호출하도록 허용한다. 원격 객체 참조를 호출하는 능력은 확장가능, 로버스트(robust)하고 외국 ORN 서버에서 실시되는 객체 참조에 대한 호출을 수행하는 메커니즘으로서 사용가능하고, 원격 클라이언트(클라이언트 콜백)에서 실시되는 호출을 수행하는 메커니즘으로서 사용가능하고 이벤트를 원격 클라이언트에 전송하는 호출을 수행하는 메커니즘으로서 사용 가능해야 한다.
본 발명의 해결책 및 실시예는 도메인 내부에서 도메인 외부로 가는 요청에 대한 지능형 집중기 프로세스를 사용하는 것이다. 요청을 실제로 조정하는 서브-프로세스 양단간 요청을 부하 조정하는 1이상의 마스터 프로세스가 구성된다. 마스터 프로세스는 동적으로 부하에 의해 요구되는 서브-프로세스를 부가한다. 부가적으로, 마스터 프로세스는 도메인 내부로부터의 다중 요청이 도메인 외부의 객체 구현으로의 그들의 요청에 대한 동일한 실제 접속을 사용하도록 함으로써 집중을 허용할 수 있다. 이러한 마스터 프로세스의 다중성은 마스터 프로세스가 정지하는 경우 페일-오버(fail-over) 및 복원성을 허용한다.
본 발명의 실시예는 두 네이티브 클라이언트 및 클라이언트로서 동작하는 네이티브 서버가 객체 참조(그 실시는 인터넷 ORB간 프로토콜(IIOP) 도메인의 외부에 존재한다)를 호출하도록 허용한다. 이것은 원격 클라이언트가 이벤트를 수신하고 원격 클라이언트가 콜백을 수신하고 네이티브 클라이언트 및 클라이언트로서 동작하는 서버가 객체 참조(그 실시는 ORB와 함께 구축된 원격 서버에 있다)를 호출하도록 하는 허용하는 기초를 이루는 메커니즘을 제공한다.
도 1은 IIOP 및 ORB 층이 종래의 기술에서 다른 네트워크 통신 프로토콜과 어떻게 관련이 있는지를 도시한다.
도 2는 종래의 기술에서 알려진 팬-아웃 문제를 도시한다.
도 3은 본 발명의 실시예에 대하여 ISH가 다중 클라이언트와 서버로의 TCP/IP 링크 사이의 인터페이스를 하는데 어떻게 사용될 수 있는지를 나타낸다.
도 4는 본 발명의 실시예에 대하여 ISL/ISH 집중기가 n개의 클라이언트를 서비스하는데 필요한 서버 접속의 수를 최소화하는데 어떻게 사용될 수 있는지를 나타낸다.
도 5는 ISL 및 다중 ISH가 다양한 클라이언트 및 서버 타입을 서비스하는 본 발명의 실시예를 도시한다.
도 6은 본 발명의 실시예에 대하여 라우팅 코드가 어떻게 ISL 및 ISH와 상호 작용하는지를 나타낸다.
도 7은 본 발명의 실시예에 대하여 ISL에 포함된 서비스를 나타낸다.
도 8은 본 발명의 실시예에 대하여 라우팅/바인딩 프로세스에서의 단계를 나타낸다.
도 9는 본 발명의 실시예에 대하여 언바인딩 프로세스를 나타낸다.
도 10은 양방향 접속을 사용하는 본 발명의 아웃바운드 IIOP 실시예를 나타낸다.
도 11은 한 쌍의 접속(a paired connection)을 사용하는 본 발명의 아웃바운드 IIOP 실시예를 나타낸다.
도 12는 비대칭 접속을 사용하는 본 발명의 아웃바운드 IIOP 실시예를 나타낸다.
도 13은 본 발명의 실시예에 대하여 양방향 접속이 클라이언트가 단절된 후 어떻게 리바인드될 수 있는지를 나타낸다.
본 발명의 다양한 실시예가 첨부된 도면과 관련하여 기술된다. 여러 정의가 아래 주어져 있는데 바람직한 실시예의 논의함에 있어서 유용할 것이다.
클라이언트/서버 - 클라이언트로서 또는 서버로서 또는 양자로서 동작하는 머신 또는 프로세스.
도메인 - 하나의 단위로서 운영되는 머신 또는 자원의 집합. 도메인은 애플리케이션 기능, 보안 필요성 또는 지리적 정보에 기초하여 설정될 수 있고 특히 다중 애플리케이션이 상호 통신하는 상황에서 유용하다.
네이티브(Native) - 도메인 내에 위치한 클라이언트 또는 서버
콜백(Callback) - IIOP 요청이 원격 클라이언트에서 객체 이행으로 전달되도록 (서버로서 동작하는) 원격 클라이언트에 의해 생성된 객체 참조를 호출하는 능력.
콜아웃(Callout) - 어떤 원격 서버에 대한 객체 참조를 취하고 그것을 호출하여 요청이 그 원격 서버에 전달되는 능력. 콜아웃은 서버(콜백)로서 동작하는 원격 클라이언트에 또는 원격 ORB 서버에 전달될 수 있다.
ISH(IIOP Server Handler) - 특히 원격 클라이언트로부터의 IIOP 메시지를 수신하고 그것들을 터널(Tunneled) GIOP(TGIOP) 메시지로서 네이티브(또는 인-도메인) 서버로 포워딩하는 구성요소를 말한다. 이 구성요소는 또한 응답을 수신하고 그것들이 적절한 원격 클라이언트로 되돌아가도록 한다. 본 발명의 실시예에서, ISH는 또한 네이티브 클라이언트/서버로부터 TGIOP 요청 메시지를 수신하고 IIOP 요청 메시지를 원격 서버에 전송한다. 이 구성요소는 응답을 수신하고 적절한 네이티브 클라이언트/서버로 되돌아가도록 한다.
ISL(IIOP Server Listener) - 어느 ISH가 네이티브 서버와의 특정 원격 클라이언트 대화를 조정해야 하는지 결정하는 구성요소를 말한다. ISL은 ISH에 대한 페일-오버(fail-over) 및 네이티브 객체로의 접속의 부하조정을 조정한다. 본 발명의 실시예에서, ISL은 또한 ISH에 접속된 클라이언트에 위치하지 않는 객체 참조를 위해 어느 ISH가 원격 서버와의 특정 대화를 조정해야 하는지를 결정한다. ISL은 동일한 원격 객체에 대한 다중 호출을 위한 접속을 집중한다.
인바운드(inbound) IIOP - 원격 서버로부터 도메인 내의 네이티브 클라이언트로의 IIOP 요청을 초기화하는 것을 말하는 종래 기술에서 알려진 개념.
아웃바운드(outbound) IIOP - 도메인에서의 네이티브 클라이언트 또는 클라이언트로서 동작하는 서버로부터 도메인에 있지 않는 원격 서버로의 IIOP 요청을 초기화하는 본 발명의 방법을 말한다.
비대칭 IIOP - GIOP의 일부 버전에서, IIOP 접속은 대칭적이지 않다. 예를 들어, 클라이언트만이 요청을 전송하고 서버만이 그것들을 수신할 수 있다. 서버가 클라이언트 내의 객체로 요청을 전송할 필요가 있으면, 그것은 서버로부터 클라이언트로의 제 2접속을 생성하여야 한다.
양방향 IIOP - 클라이언트와 서버 사이의 접속이 대칭이다. 예를 들어, 클라이언트는 접속 상의 서버로 요청을 전송할 수 있고 서버는 동일한 접속 상의 클라이언트에 의해 외부로 보낸 객체로 요청을 전송할 수 있다.
IIOP 집중
도 3은 본 발명의 실시예에서 전형적인 집중 프로세스를 나타낸다. 현재 시스템은 단지 인바운드 IIOP 집중만을 규정한다. 본 발명은 아웃바운드 IIOP 집중에 대한 지원을 추가한다. 도 3에서 도시된 바와 같이 ISH 집중기(66)는 단일의 서버링크(68)를 통해 동작하도록 다중 로컬 클라이언트로부터의 접속을 집중함으로써 원격 클라이언트/서버(70) 상에 요구되는 접속의 수를 감소시킨다. 여러 클라이언트는 ISH로서 동일한 도메인 내에 포함되고 상호 프로세스 통신에 의해 서로 통신한다. 도메인 외부의 클라이언트/서버(원격 클라이언트/서버)는 표준 TCP/IP 링크를 통해 ISH와 통신한다.
도 4에 도시된 바와 같이, 본 발명의 ISH 집중기의 실시예가 사용되어 도 2에서 도시된 시스템의 확장성을 향상시킨다. ISH(90)가 액티브 접속의 수를 n×m에서 n+m으로 감소시킨다. 본 발명의 실시예에서 메시지 큐가 사용되어 원격 서버로의 직접 링크를 대체하고 이것은 액티브 접속의 수를 단지 n으로 감소시킨다.
아웃바운드 IIOP 지원
본 발명의 실시예를 포함하는 예시적 시스템이 도 5에 도시되어 있다. 도시된 바와 같이, 여러 클라이언트가 일련의 원격 서버를 호출한다. 상기 클라이언트는 예를 들어 C++ 클라이언트(102), 자바 클라이언트(164), 통지 서비스(106) 또는 클라이언트로서 동작하는 네이티브 서버(108)일 수 있다. 원격 서버는 다른 네이티브 서버(110), 이벤트 등록 네이티브 클라이언트(112) 또는 비-네이티브 CORBA-컴플라이언트 ORB 서버(114)일 수 있다. 클라이언트의 하나가 서버를 호출할 때, 라우팅 프로세스가 바인드 서버(122)를 호출함으로써 ISL로 접속을 지시한다. ISL은 어느 ISH(130, 132, 134)가 접속을 조정하는데 가장 적절한지를 결정한다. 따라서 많은 ISH가 사용될 수 있으나, 적어도 하나 ISH가 필요하다. ISL은 어느 ISH가 현재 목적지 서버로의 접속을 조정하고 있는지 알기 위해 우선 체크함으로써 어느 ISH로의 접속을 부여할 지를 결정한다. 현재 아무 것도 그러한 접속을 조정하고 있지 않다면, 가장 부하가 작은 ISH가 선택될 것이다. 이러한 방법으로, ISL은 모든 사용 가능한 ISH 사이에서의 증가하는 접속수의 부하를 조정한다.
ISH가 선택되면(126), 그 후 클라이언트는 ISH를 통해 서버를 호출한다(128). 클라이언트 및 ISH가 동일한 도메인 내에 있기 때문에, 그것들은 터널 GIOP(TGIOP)를 사용하여 통신할 수 있다(136). ISH가 TCP/IP를 통해 IIOP를 사용하여 도메인 외부의 서버와 통신한다(138).
아웃바운드 IIOP 지원은 본 발명에서 구체화된 바와 같이, 네이티브 클라이언트, 네이티브 클라이언트로서 동작하는 서버, 도메인 외부의 원격 객체 참조를 호출하는 능력을 제공한다. 이것은 이벤트가 이벤트에 대해 등록하는 원격 클라이언트로 흐를 수 있다는 것을 의미하고, 콜백이 원격 클라이언트에 수행될 수 있고 원격 서버 내의 객체가 액세스될 수 있다. 아웃바운드 IIOP 지원은 4개의 기능부를 포함한다.
ISH에 접속된 클라이언트에 포함된 객체에 대한 양방향 IIOP 지원. 원격 ORB가 양방향 GIOP 1.2를 지원하면, ISH는 동일한 접속을 사용하여 접속된 클라이언트로/로부터 요청을 전송하고 응답을 수신한다.
ISH에 접속된 클라이언트에 포함된 객체에 대한 양방향 유형(bi-directional-like) IIOP 지원. ORB가 양방향 GIOP 1.2를 지원하지 않으면, 클라이언트는 애플리케이션 프로그램 인터페이스(API)를 호출하여 ISH에 클라이언트 내의 리스닝 호스트/포트를 통지할 수 있다. ISH는 제 2 한 쌍의 아웃바운드 접속을 사용하여 접속된 클라이언트로/부터 요청을 전송하고 응답을 수신한다. 이 아웃바운드 접속은 들어오는 접속과 한 쌍을 이룬다. 클라이언트가 들어오는 접속을 단절하면, 아웃바운드 접속도 단절된다.
ISH 또는 네이티브 클라이언트에 대한 호출 지원. 인프라구조는 클라이언트 정보에 기초하여 ISH 또는 네이티브 클라이언트로의 라우팅을 지원한다. ORB는 변경되어 객체 참조에 클라이언트 식별자 정보를 내장한다.
ISH에 접속된 클라이언트에 포함되지 않은 객체에 대한 비대칭 IIOP 지원. ISL은 동일한 원격 서버로 가고 있는 서로 다른 클라이언트/서버로부터의 요청의 집중이 동일한 접속을 통해 가도록 허용한다. ISL은 요청의 부하조정을 허용하여 특정 접속이 과부화가 되지 않는다.
확장성을 지원하기 위해, ISL은 필요 시 부가적인 조정기를 동작시킬 수 있고 필요시 부가적인 ISL 및 부가적인 ISH는 증가된 아웃바운드 IIOP 트래픽을 지원하기 위해 부가될 수 있다.
페일오버를 지원하기 위해, 다중 ISH는 머신 상에서 또는 도메인 내에서 개시될 수 있다. 클라이언트가 ISH를 비성공적으로 사용하려고 시도하면, 객체 참조 및 다른 ISH로의 페일오버를 리바인드하는 시도가 이루어질 것이다.
본 발명의 전형적인 실시예에 있어서, 시스템 관리자는 아웃바운드 IIOP 지원 구성요소와 직접 상호 작용할 사용자만 될 수 있다. 그들은 ISL를 정확한 스타트업 파라미터로 부팅하여 접속된 클라이언트 내에 위치하지 않은 객체로의 아웃바운드 IIOP가 가능하게 하는 역할을 담당한다. 부팅된 ISL의 수 및 다양한 스타트업 파라미터는 그들의 설치 특정 워크로드 특성에 대한 최선의 구성을 획득하기 위해 조정될 수 있다.
아웃바운드 라우팅
아웃바운드 라우팅 프로세스에서 기능적 특성이 도 6 내지 9에 나타나 있다. 도 6에서 도시된 바와 같이, ISL(160)과 ISH(168)(시스템이 단지 하나의 ISH와 동작할 수도 있지만 설명을 위해 여러 개가 도시되어 있다)는 공유메모리(166)를 통해 서로 통신한다. 본 발명의 실시예에서 ISL은 원격 서버로의 접속에 대한 정보를 유지하는 역할을 담당한다. 그러한 접속의 기록은 공유 메모리에 유지된다. ISH는 이 정보를 사용하여 원격 서버에 대한 호출을 허용한다. ISH는 단절된 접속을 반영하기 위해 그것을 갱신함으로써 공유 메모리에 정보를 유지한다. ISL은 갱신된 정보를 사용하여 들어오는 호출 요구를 더욱 잘 할당한다. 원격 서비스를 호출하려는 클라이언트는 라우팅 코드(150)를 콜 한다. 라우팅 코드는 ISL과 상호 작용하여 접속이 이미 있는지를 판정하여 접속이 있으면 그것을 각 ISH에 넘겨준다. 접속이 이미 존재하지 않으면 ISL은 새로운 접속을 서비스하기 위해 ISH를 선택한다.
도 7은 ISL(160)가 클라이언트에게 광고하거나 사용 가능하게 하는 서비스의 일부를 나타낸다. 원칙적으로, 클라이언트는 라우팅 코드를 통해 ISL로부터의 바인 드(161) 또는 언바인드(162)에 요청할 수 있다. 도 8에서 도시된 바와 같이, 라우팅 코드(180)는 원격 서버를 고려하는 ISL(184)에 대한 바인드(182)를 호출하고 사용할 적절한 ISH를 결정한다(188). 그것은 이 정보를 클라이언트로 다시 건네준다(186). 그 후 클라이언트는 특정 ISH를 호출한다(187). 다음 ISH는 클라이언트와 서버 사이의 통신을 조정한다. 도 9에서 도시된 바와 같이, 클라이언트가 서버 인스턴스(instance)와 함께 종료되거나 접속이 닫히도록 요청할 때, 애플리케이션은 ISL(194)에 대한 언바인드(192)를 호출한다. ISL은 접속이 닫히는 것으로 표시한다(196). 시간주기 후 그 특정 접속에 대한 엔트리가 불필요한 정보 수집 프로세스에서 공유 메모리로부터 제거될 것이다.
아웃바운드 IIOP 타입
아웃바운드 IIOP의 3개의 서로 다른 타입이 있다.
- 동일한 접속을 재사용하는 양방향 아웃바운드 IIOP
- 제 2 한 쌍의 접속을 통해 양방향 형태 아웃바운드 IIOP
- 제 2접속을 통한 비대칭 아웃바운드 IIOP
양방향 아웃바운드 IIOP
본 발명의 실시예는 ISH에 접속된 클라이언트에 포함된 객체로의 양방향 IIOP를 위한 ISL/ISH 지원(224, 226, 228)을 포함한다. 클라이언트 ORB가 양방향 GIOP 1.2를 지원하면, ISH는 동일한 접속을 사용하여 접속된 클라이언트로/로부터 요청을 전송하고 응답을 수신한다. 클라이언트(222)는 객체참조를 생성하고 네이티브 서버를 호출한다. 클라이언트 ORB는 서비스 컨텍스트를 사용하여 접속을 양방향으로서 식별할 것이다. 서비스 컨텍스트는 메시지와 네이티브 서버(236)로 이동한다. 객체참조를 분열(unmarshal)할 때, 네이티브 서버는 서비스 컨텍스트의 호스트/포트와 객체 참조의 호스트/포트를 비교할 것이다. 그들이 일치하면, ORB는 ISH 클라이언트 식별자 및 객체 참조의 태그 구성요소에 전송하는데 필요한 다른 클라이언트 정보를 부가한다. 이 클라이언트 정보는 다른 네이티브 서버로 건네질 때마다 객체 참조와 이동할 것이다.
어느 시점에서, 네이티브 서버 또는 네이티브 클라이언트는 객체 참조를 호출할 것이다. 라우팅 코드는 클라이언트 정보가 주어지면 적절한 ISH를 호출할 것이다. ISH는 동일한 클라이언트 접속을 통해 클라이언트에 요청을 전송할 것이다. 클라이언트는 방법을 실행하여 클라이언트 접속을 통해 ISH에 다시 응답을 전송할 것이다. ISH는 응답을 수신하고 그것을 네이티브 서버에 전송할 것이다.
한 쌍의 제 2접속을 통한 아웃바운드 IIOP
본 발명은 또한 ISH에 접속된 클라이언트에 포함된 객체로의 양방향 형태 IIOP를 위한 ISH 지원을 포함한다(도 11). 클라이언트 ORB가 양방향 GIOP 1.2를 지원하지 않으면, 클라이언트는 API 루틴을 콜 하여 ISH에 클라이언트의 리스닝 포트를 통지한다. ISH는 별개의 한 쌍의 아웃바운드 접속을 생성하여 접속된 클라이언트로/로부터 요청을 전송하고 응답을 수신한다.
클라이언트는 객체 참조를 생성할 것이다. 다음 그것이 객체 참조를 패스하는 부트스트랩 기능을 콜 한다. ISH는 상호동작 객체 참조(IOR)로부터 호스트/포트를 얻고 그것을 클라이언트 컨텍스트와 저장한다. 클라이언트는 객체 참조를 패스 하는 네이티브 서버를 호출할 것이다. ISH는 레지스터 콜로부터의 호스트/포트를 포함하는 서비스 컨텍스트를 생성할 것이다. 이 서비스 컨텍스트는 메시지와 함께 네이티브 서버로 이동한다. 객체참조를 분열(unmarshal)할 때, 네이티브 서버는 서비스 컨텍스트의 호스트/포트와 객체 참조의 호스트/포트를 비교할 것이다. 그들이 일치하면, ORB는 ISH id 및 클라이언트 정보를 객체 참조의 태그 구성요소에 부가한다. 이 클라이언트 정보는 다른 네이티브 서버로 건네질 때마다 객체 참조와 이동할 것이다.
어느 시점에서, 네이티브 서버 또는 네이티브 클라이언트는 객체 참조를 호출할 것이다. 라우팅 코드는 클라이언트 정보를 패스하는 적절한 ISH를 호출할 것이다. ISH는 제 2접속을 클라이언트에 생성할 것이다. 그것은 제 2접속을 통해 클라이언트에 요청을 전송할 것이다. 클라이언트는 방법을 실행하여 클라이언트 접속을 통해 ISH에 다시 응답을 전송할 것이다. ISH는 응답을 수신하고 그것을 네이티브 서버에 전송할 것이다. 클라이언트가 ISH로부터 단절되면, 제 2접속은 또한 단절될 것이다.
비대칭 아웃바운드 IIOP
본 발명의 실시예는 또한 ISH에 접속된 클라이언트에 포함되지 않는 객체로의 비대칭 아웃바운드 IIOP를 위한 ISL/ISH 지원을 포함한다(도 12). ISL은 동일한 원격 서버로 가고 있는 서로 다른 네이티브 클라이언트/서버로부터의 요청의 집중이 동일한 접속을 통해 가도록 허용한다. ISL은 요청의 부하조정을 허용하여 특정 접속이 과부하되지 않는다. 서버(280)는 어느 소스로부터 객체 참조를 얻는데, 이것은 명명 서비스일 수 있고 또는 클라이언트를 통해 패스되나 그 클라이언트내에 위치하지는 않는다. 객체 참조가 ISH에 접속된 클라이언트에 위치하지 않기 때문에, 나가는 콜이 양방향 방법을 사용하여 만들어질 수 없다.
어느 시점에서, 네이티브 서버 또는 네이티브 클라이언트는 객체 참조를 호출할 것이다. 제 1호출 시, 객체 참조 내에 포함된 ISH id 및 클라이언트 정보가 없다. 라우팅 코드는 객체 키를 비-네이티브 서버 객체 참조로서 인식할 것이다. ISH id 및 클라이언트가 패스되지 않으면, 라우팅 코드는 호스트/포트를 패스하는 ISL(224)에서 서비스를 호출할 것이다. ISL은 사용하는 서비스 이름을 반환하여 ISH(272)의 클라이언트 정보 및 객체 참조를 언바인드한다. 이것은 ISH의 클라이언트 정보이고 ISH에 접속된 어느 클라이언트의 클라이언트 정보가 아니다.
ORB는 객체참조를 호출할 것이다. 인프라구조는 ISH를 호출할 것이다. ISH는 클라이언트 정보로부터 접속 식별자를 얻고 어느 나가는 접속을 사용할 지를 결정하여 요청을 클라이언트에 전송한다. 어느 것도 접속되지 않으면, ISH는 호스트/포트의 개별적인 접속을 생성할 것이다. ORB가 IOR의 IIOP 프로필의 버전에 대한 적절한 GIOP 버전을 사용할 것이다. 클라이언트는 방법을 실행하여 별도의 접속을 통해 ISH로 응답을 재전송할 것이다. ISH는 응답을 수신하여 그것을 네이티브 서버에 전송할 것이다.
프로세스 흐름
다음에서 프로세스 흐름을 상세히 설명한다. 여기서 본 발명의 실시예에서 클라이언트, ISL 및 ISH가 어떻게 상호 작용하는 지를 설명한다.
네이티브 클라이언트의 측면에서
객체 참조 바인드 시간에서 ORB는 객체 참조가 원격인지를 판정한다. 그러한 경우, ORB는 객체 참조로부터의 클라이언트 정보로 초기화된다(존재하면). 클라이언트 정보가 존재하지 않으면, 바인드 플래그는 특정된다. 그렇지 않으면 플래그는 특정되지 않는다.
라우팅 코드는 원격 객체 참조를 갖고 있는지 판정한다.
바인드 플래그가 존재하면, BIND 서비스를 콜 한다. 반환된 ISH 클라이언트 정보 및 ISL 정보를 공유 메모리에 저장한다.
바인드 플래그가 존재하지 않으면, 공유 메모리에 클라이언트 정보를 저장한다.
라우팅 코드는 클라이언트 식별자에 대해 공유 메모리를 조사하고 그것을 호출한다.
접속이 단절된 경우 시스템은 적절한 엔트리를 위해 공유 메모리 내를 조사하고 언바인드를 콜 한다.
ISL은 공유 메모리에서 접속이 닫혔다고 표시하고 ISH는 연결을 닫는다.
ISH의 측면에서
ISH는 클라이언트 id를 이용하여 호출된다.
ISH는 메시지 큐로부터 메시지를 수신한다. 요청은 응답과 반대 방법으로 조정된다.
인프라구조는 클라이언트에 기초하여 ISH를 적절한 컨텍스트로 전환한다. 비 대칭 아웃바운드 IIOP이면, 컨텍스트는 ISH 컨텍스트(0)이고 클라이언트 컨텍스트가 아니다.
IIOP 요청의 카피가 만들어지고, IIOP 요청 id는 고유 id와 대체된다. 요청은 이 컨텍스트에 대한 미결된 요청의 목록 상에 위치된다.
컨텍스트가 클라이언트 컨텍스트이면, 양방향 접속 또는 한 쌍의 제 2접속을 갖는다. 한 쌍의 제 2접속 및 접속이 아직 존재하지 않으면, 하나가 생성된다. 루틴이 콜 되어 IIOP 요청을 클라이언트에 전송한다. 접속이 완료될 때까지 루틴은 요청을 버퍼링한다. 그렇지 않으면, 루틴은 콜 되어 IIOP 요청을 클라이언트에 전송한다.
컨텍스트가 ISH 컨텍스트이면, 접속 인덱스는 아웃바운드 접속을 결정하는데 사용된다. 존재하는 접속이 없으면, 하나가 생성된다. 루틴이 콜 되어 IIOP 요청을 클라이언트에 전송한다. 루틴은 접속이 완료될 때까지 요청을 버퍼링한다. 존재하는 접속이 있으면, 루틴이 콜되어 IIOP 요청을 클라이언트에 전송한다.
ISH가 네트워크 및 메시지 큐 이벤트를 조정한다. 응답이 접속으로부터 다시 올 때, 미결의 요청 목록이 대응하는 요청에 대해 검색된다. ISH는 고유 id를 원래의 요청 id로 대체하고 응답을 클라이언트에 다시 전송한다.
ISL의 측면에서
ISL은 객체 참조에 대한 제 1호출에서 호출된다.
서비스 루틴이 콜 되어 객체 참조를 바인드한다. 파라미터는 호스트, 포트 및 클라이언트 식별자이다.
ISL은 호스트/포트를 해시(hash)하고 데이터 구조를 조사하여 호스트/포트가 이미 사용되는지 여부를 판정한다. 사용되고 멀티플렉스 사용자 한도에 있지 않으면, 적절한 ISH 클라이언트 식별자, 도메인, 클라이언트 프로세스 식별자, 클라이언트 큐, ISL 그룹 및 서버 식별자가 반환된다.
사용자 멀티플렉스 참조 카운트는 증가된다.
발견되지 않고 존재하는 ISH가 접속을 조정할 수 있으면, 존재하는 ISH는 요청을 조정하도록 할당된다. 적절한 ISH 클라이언트 id, 도메인, 클라이언트 프로세스 식별자, 클라이언트 큐, ISL 그룹 및 서버 식별자가 반환된다.
ISH가 접속을 조정하지 않으면, 새로운 ISH가 개시된다. 적절한 ISH 클라이언트 id, 클라이언트 프로세스 식별자, 클라이언트 큐, ISL 그룹 및 서버 식별자가 반환된다.
접속 관리
접속 관리는 본 발명의 실시예가 클라이언트와 서버간의 접속을 조정하는 프로세스이고, 특정적으로 현재 사용되지 않는다고 평가한 접속을 시스템이 어떻게 조정하는지에 관한 것이다.
본 발명의 목적의 하나는 확장성이다. 따라서, 아웃바운드 접속의 수를 최소화하는 것이 바람직하다. 이러한 이유로, 시스템은 접속된 클라이언트 내에 포함된 객체를 호출하는데 효율적인 메커니즘을 갖기 위해 양방향 접속 및 한 쌍의 제 2접속을 지원한다. 이 경우는 다수의 아웃바운드 IIOP 트래픽을 포함한다. 그러나, 여전히 현재 접속된 클라이언트에 포함되지 않은 객체 참조를 고객이 호출하기 원한다는 것이다. 이것은 외국 ORB 서버에 대한 객체 참조일 수 있다(네이티브 도메인으로부터 접속 또는 단절되는 클라이언트/서버 또는 네임 서버로부터 얻은 임의의 객체 참조). 이러한 종류의 객체 참조를 지원하지만 여전히 확장성을 제공하기 위해, 시스템은 콜러(caller) 프로세스로부터의 이 TCP/IP 접속을 ISH로 재배치한다. 콜러(네이티브 클라이언트 또는 네이티브 서버)는 IOR을 호출하고 네이티브 인프라구조는 메시지를 ISH에 전송하는데 사용된다. 다음 ISH는 TCP/IP 접속을 이용하여 메시지를 원격 서버에 전송한다. 그러나, 이 TCP/IP 접속이 더 이상 실제 콜러 프로세스에 있지 않기 때문에, 그것들은 콜러(네이티브 클라이언트 또는 네이브 서버)가 존재할 때는 자동적으로 단절되지 않는다.
콜러(네이티브 클라이언트 또는 네이티브 서버)가 존재하면 비대칭 아웃바운드 IIOP 접속(현재 어느 콜러에 의해서도 사용되지 않음)은 단절되어야 한다. 이것은 마지막 콜러가 존재한 직후일 수 있고 또는 어느 타임아웃 시간 후일 수 있다. 비대칭 아웃바운드 IIOP 접속을 관리하는 다른 대안이 다음에서 설명된다.
참조 카운팅 및 사용자의 확인(validation)
이 대안은 다음과 같이 동작한다.
네이티브 클라이언트 또는 네이티브 서버(객체 참조의 사용자)는 객체 참조를 호출한다.
제 1호출에서, ORB는 ISL의 BIND 서비스에 콜을 한다. 이 호스트/포트에 대한 엔트리는 공유 메모리에 부가된다. 사용자의 식별자(네이티브 클라이언트 식별자 또는 네이티브 서버 그룹/srvid)에 대한 엔트리가 공유 메모리에 부가된다. ISL 은 접속 식별자(공유 메모리의 호스트/포트 엔트리로 매핑한다) 및 원격 서버로의 TCP/IP 접속을 포함하는 ISH에 대한 적절한 클라이언트 정보를 반환한다.
ORB는 클라이언트 정보를 사용하여 메시지를 적절한 ISH에 전송한다. ISH는 접속 식별자를 사용하여 어느 아웃바운드 IIOP 접속을 사용할 것인지를 결정한다.
네이티브 클라이언트 또는 네이티브 서버는 객체참조의 호출을 계속적으로 수행한다. 각 호출은 ISH로 전송되는 메시지가 된다.
다른 네이티브 클라이언트가 동일한 호스트/포트를 갖는 객체 참조를 호출하면, BIND 서비스는 제 1사용자로서 동일한 접속 식별자 및 동일한 클라이언트 정보를 반환할 것이다. 호스트/포트 엔트리의 참조 카운트는 증가될 것이다. 제 2사용자(네이티브 클라이언트 또는 네이티브 서버)의 식별자에 대한 엔트리가 공유 메모리에 부가된다.
결국, 제 1 및 제 2사용자는 객체 참조를 릴리즈(release)한다. 제 1사용자 릴리즈는 UNBIND 서비스로의 콜이 되는데, 이것은 호스트/포트 엔트리의 참조 카운트를 감소시키고 사용자의 식별자를 제거한다. 제 2사용자 릴리즈 시, 호스트/포트의 참조 카운트가 0으로 감소된다. ISL은 공유 메모리로부터의 호스트/포트 엔트리를 제거하고 공유 메모리에서 접속 엔트리(호스트/포트 엔트리와 다름)를 닫힌 것을 표시한다.
ISH는 공유 메모리의 접속 엔트리가 닫힌 것으로 표시되면 접속을 닫는다.
접속 엔트리를 비사용으로 표시한다.
이것은 사용자가 정상적으로 존재하고 객체 참조를 릴리즈하는 경우이다. 다 른 경우는 객체 참조를 릴리즈하지 않고 존재하는 사용자 및 비정상적으로 존재하는 사용자를 포함한다. 더 이상 필요가 없을 때 접속이 릴리즈되도록 하기 위해, 이 대안은 확인을 사용하는데, 여기서 ISL은 접속 사용자의 식별자를 확인하고 공유 메모리에 id를 저장하고 서버가 인액티브인지 체크하고 로컬 머신 상이면, ISL은 네이티브 클라이언트가 여전히 액티브인지를 알기 위해 타임스탬프를 비교할 것이며 또는 콜을 사용하여 ISL로서 동일한 머신 상에 있지 않는 네이티브 클라이언트를 확인한다.
언바인드가 없는 비대칭 아웃바운드 접속 타임아웃
이 대안은 다음과 같이 동작한다.
네이티브 클라이언트 또는 네이티브 서버(객체 참조의 사용자)는 객체 참조를 호출한다.
제 1호출 시, ORB는 ISL에서 BIND 서비스를 콜 한다. 이 호스트/포트에 대한 엔트리는 공유 메모리에 부가된다. ISL은 접속 식별자(공유 메모리 플러스 부가적인 발생/타임스탬프 필드에서 호스트/포트 엔트리로 매핑) 및 원격 서버로의 TCP/IP 접속을 포함하는 ISH에 대한 적절한 클라이언트 정보를 반환한다.
ORB는 클라이언트 정보를 사용하여 메시지를 적절한 ISH에 전송한다. ISH는 접속 식별자를 사용하여 어느 아웃바운드 IIOP 소켓을 사용할 것인지를 결정한다. 접속 식별자가 더 이상 유효하지 않으면(접속 타임아웃으로 인하여), 에러가 반환된다.
네이티브 클라이언트 또는 네이티브 서버는 계속적으로 객체 참조의 호출을 수행한다. 각 호출은 ISH에 전송되는 메시지가 된다.
다른 네이티브 클라이언트가 동일한 호스트/포트로 객체 참조를 호출하면, BIND 서비스는 동일한 접속 식별자 및 동일한 클라이언트 정보를 제 1호출로서 반환할 것이다. 참조 카운팅은 호스트/포트 상에서 수행되지 않는다.
결국, 제 1 및 제 2사용자는 객체 참조를 릴리즈한다. UNBIND 서비스는 콜 되지 않는다. 접속은 유지된다.
각 호출 시, ISH는 접속을 위한 공유 메모리에서 활동 타임스탬프 필드를 갱신한다. 정상적인 기초에 따라, ISL은 어떤 활동도 사용자 특정 시간 주기 내에 발생하지 않으면 접속을 타임아웃할 것이다. ISL은 접속을 닫는 것으로 표시하고 호스트/포트 엔트리를 제거할 것이다. ISH는 접속이 닫힌 것으로 표시되었음을 아는 경우 접속을 단절할 것이다. 그것은 접속 엔트리를 비사용으로 표시한다. 접속의 사용자가 정지되거나 객체 참조를 릴리지 하지 않으면, 접속은 액티브인 한 유지될 것이다. 그것은 특정 시간 주기동안 액티브하지 않을 때 단절될 것이다. 객체 참조는 여전히 유효하며 특정 타임아웃 주기 내에서 사용되지 않는다. 이 경우, 접속은 단절되고 호스트/포트 엔트리는 제거된다. ISH는 요청을 수신하고, 접속 id를 확인하고 에러를 반환할 것이다. 이 에러는 ORB가 객체 참조를 리바인드하도록 할 것이다. 이것은 ISL BIND 서비스로의 콜을 포함하고 현재의 접속이 사용될 수 있거나 새로운 접속이 생성될 수 잇다. 이 리바인드는 사용자에게 보여져서는 안 된다.
비대칭 아웃바운드 접속 타임아웃을 갖는 참조 카운트(reference count)
이는 대안 1 및 2의 결합이다. 주요 차이점은, 아무도 이들을 이용하지 않게 되면 접속들이 끊어진다는 것이다. 이 대안은 다음과 같이 작동한다:
ㆍ 네이티브 클라이언트 또는 네이티브 서버(객체 참조의 이용자)는 객체 참조를 호출한다.
ㆍ 제 1 호출시, ORB는 ISL BIND 서비스를 호출한다. 이러한 호스트/포트에 대한 엔트리가 공유 메모리에 부가된다. ISL은 접속 식별자(공유 메모리의 호스트/포트 엔트리에 대한 맵들에 부가적인 발생/타임스탬프 필드를 더한 것)와, 그리고 원격 서버에 대한 TCP/IP 접속을 포함하게 될 ISH에 대한 적절한 ISH id 및 클라이언트 정보를 반환시킨다.
ㆍ ORB는 상기 ISH id 및 클라이언트 정보를 이용하여 적절한 ISH에 메세지를 전송한다. ISH는 상기 접속 식별자를 이용하여 어떤 아웃바운드 IIOP 접속을 이용할 것인 지를 결정한다. (접속 타임아웃으로 인해) 접속 식별자가 더 이상 유효하지 않다면, 에러가 반환된다.
ㆍ 네이티브 클라이어트 또는 네이티브 서버는 계속해서 객체 참조를 호출한다. 각 호출은 메세지가 ISH로 전송되게 한다.
ㆍ 다른 네이티브 클라이언트가 동일한 호스트/포트를 갖는 객체 참조를 호출한다면, BIND 서비스는 제 1 호출과 동일한 접속 식별자 및 동일한 클라이언트 정보를 반환시킬 것이다. 호스트/포트 엔트리의 참조 카운트가 증가할 것이다.
ㆍ 결국, 제 1, 2 이용자들은 객체 참조를 릴리즈한다. 제 1 이용자의 릴리즈는 UNBIND 서비스를 불러내게 한다. 이는 호스트/포트 엔트리의 참조 카운트를 감소시킨다. 제 2 이용자가 릴리즈를 하면, 호스트/포트 엔트리의 참조 카운트는 0 으로 감소된다. ISL은 공유 메모리로부터 호스트/포트 엔트리를 제거하고, 상기 접속을 공유 메모리에 종결(closing)로서 표시한다.
ㆍ ISH는 공유 메모리의 접속 엔트리가 종결된 것으로서 표시되었음을 알게 되었을 때, 접속을 끝낸다.
ㆍ 이는 접속 엔트리가 이용되지 않은 것으로서 표시한다.
접속의 이용자들이 정지되거나 객체 참조들을 릴리즈하지 않는 다면, 접속은 접속이 활성화되는 한 유지될 것이다. 접속은 지정된 시간 동안 활성화되지 않을 때에 끊어질 것이다. 객체 참조는 여전히 유효하지만, 지정된 타임아웃 기간 내에서는 이용되지 않는다. 이러한 경우, 접속은 끊어질 것이며, 호스트/포트 엔트리는 제거된다. 이후의 호출시, ISH는 요구를 수신하고, 접속 식별자를 확인한 다음, 에러를 반환시킬 것이다. 이러한 에러는 ORB가 객체 참조를 리바인드할 것이다. 이는 ISL BIND 서비스 호출을 포함할 것이며, 기존의 접속이 이용되거나 새로운 접속이 생성될 수 있다. 이러한 리바인드는 이용자에게 보여져서는 안된다.
부가적인 특징들
콜아웃(Callout)을 위한 양방향 접속들의 이용
어떠한 방식들에서, 클라이언트는 이벤트에 대한 영구 가입(persistent subscription)을 접속하고 생성한 다음, ISH와 접속을 끊을 수 있다. 클라이언트가 ISH로 다시 접속을 할 때, 이는 상기 영구 가입에 대한 이벤트들의 수신을 기대한다.
본 발명의 일 실시예에서, ISL은 현재의 양방향 접속들에 대해 알고 있으며, IOR에 호스트/포트에 대한 개별적인 접속을 생성하는 대신에 이러한 양방향 접속들을 이용한다. ISL에 이러한 양방향 접속들을 통지하게 되면, 자원들을 최적으로 이용할 수 있게 된다. ISH는 ISL에 양방향 정보를 통지한다. 이는 접속 생성 및 삭제에 대해 공유 메모리 또는 여분의 메세지들의 록킹(locking)을 요구한다.
클라이언트 단절
도 13에 도시된 본 방식에서, 클라이언트는 도메인으로부터 단절되지만, 여전히 동일한 호스트 및 포트에서 듣는다. 객체 참조는 단절된 클라이언트의 클라이언트 정보를 포함한다. ORB가 무효한 서비스를 호출하면, 인프라구조는 에러를 반환시킬 것이다. ORB는 이러한 에러를 처리하고 객체 참조를 리바인드할 것이다(304). 원격 서버에 대한 새로운 접속을 생성하기 위해 ISH가 선택될 것이며, 클라이언트 정보는 갱신될 것이다.
데이터 설계
ISL 및 ISH는 각각 메모리에 데이터를 보유한다. 이들은 또한 ISL 및 그의 ISH들의 수명에 걸쳐 영구적일 필요가 있는 메모리를 공유한다. ISL이 정지되고 재개된다면, 이것은 공유 메모리에 재첨부(reattch)된 것이며, 그 공유 메모리에 저장되어 있는 모든 상태를 복구시킬 것이다.
공유 메모리
ISL은 그가 제어하는 ISH들과 메모리를 공유한다. 비대칭적인 아웃바운드 IIOP가 인에이블된다면, 공유 메모리 테이블에 부가적인 부분들이 생길 것이다. 이 메모리는 ISL에 의해 적절한 집중 및 부하 조정을 수행하는 데에 이용되며, ISH에 의해 생성할 필요가 있는 접속들의 트랙을 유지하기 위해 ISH에 의해 이용된다. ISL은 공유 메모리의 첫 번째 기록자(writer)이다.
ISH 고장
ISH는 공유 메모리에 있을 필요가 없는 정보를 유지해야 한다. 공유 메모리에 있을 필요가 없는 정보들로는, 현재의 요구에 대한 정보를 보유하는 영역들, 및 요구 id들을 클라이언트들(서버)에 맵핑하는 영역들이 있다. ISL은 ISH를 재개하는 책임이 있다. ISL이 ISH를 재개시킬 때, 이는 정지된 ISH에 대한 구 공유 메모리 슬롯들을 제거하고, ISH가 그 ISL의 공유 메모리에 접속될 것임을 보장한다.
클라이언트가 고장난 ISH에 바인드된 객체 참조를 호출한다면, 에러가 발생할 것이다. 콜러는 리바인드를 할 것이며, 호출을 수행하기 위해 ISH가 선택될 것이다. 이는 재개된 ISH 또는 다른 ISH가 될 수 있다.
ISL 고장
ISL은, 시스템 관리자가 권고된 설정치들(recommended settings)에 의해 이를 시동하는 경우, 결국 재개될 것이다. 객체 코드가 서비스를 호출하고 있었지만, 서버가 아직 선택되지 않았다면, 대안적인 ISL이 선택될 것이다. 객체 코드가 서비스를 호출하고 있었고 서버가 선택되었다면, 시스템은 클라이언트가 에러를 반환시킨다. ISL이 결국 재개될 때, 이는 공유 메모리에 다시 접속될 것이다.
네이티브 클라이언트(또는 클라이언트로서 작동하는 서버) 고장
ISL은 아웃바운드 접속들의 목록을 주기적으로 검사할 것이다. 지정된 타임아웃 기간 동안 접속이 활성이 아니라면, 대응하는 엔트리가 제거되고 아웃바운드 접속이 단절될 것이다. 이는, 네이티브 클라이언트 또는 서버가 고장난다면, 네이티브 클라이언트 또는 서버들에 의해 생성된 아웃바운드 접속들이 항상 끊어진다는 것을 보장한다.
불필요 정보 수집(garbage colletion)
공유 메모리의 일부를 제거할 수 있는 "이벤트들"이 있다.
ㆍ 원격 서버가 고장난다. ISH는 클라이언트(또는 다수의 클라이언트들이 접속을 이용하고 있었다면, 클라이언트들)에게 에러를 반환시킬 것이다. 클라이언트가 존재하고 ISL이 통지된다면, 적절한 호스트 및 포트 슬롯들과 적절한 클라이언트 식별자 슬롯(들)을 제거할 것이다.
ㆍ ISH는 접속이 관리자에 의해 설정된 타임아웃을 초과했다는 것을 알게 된다. 대응하는 엔트리가 제거될 것이며, 소켓은 종결로서 표시될 것이다. 다음 호출시, 에러가 콜러에게 반환될 것이며, ORB는 객체 참조를 리바인드할 것이다. 새로운 접속이 생성될 것이며, 호출이 일어날 것이다.
ㆍ ISH가 정지된다. ISL은 ISH를 재개한다. 상기 바운드 객체 참조에 대한 다음 호출시, 에러가 발생할 것이다. 콜러는 리바인드할 것이며, 호출을 수행하기 위해 ISH가 선택될 것이다. ISH에 대한 기존의 엔트리들은 공유 메모리에 남게될 것이다. 제 1 호출시, 재개된 ISH는 원격 서버에 접속될 것이다.
ㆍ ISL이 정지된다. 재개시, ISL은 모든 ISH들을 체크하여, 정지된 모든 ISH에 대한 엔트리들을 제거한다.
ㆍ ISL이 셧다운된다. ISL은 셧다운 메세지들을 ISH에 전송한다. ISL은 공유 메모리를 제거한다.
ㆍ 머신은 파손되며, ISL 및 모든 ISH들은 동시에 정지된다. 공유 메모리는 소멸된다.
본 발명의 다른 특징들, 양상들 및 목적들은 도면들 및 청구항들을 통해 얻어질 수 있다. 본 발명의 범주 내에서 본 발명의 다른 실시예들이 이루어질 수 있다는 것을 알 수 있을 것이다.
본 발명은 특히 객체 지향 시스템들의 분야, 구체적으로 n개의 클라이언트들이 m개의 서버들을 호출하는 CORBA-컴플라이언트 시스템들에 이용된다. 전형적으로, 이는 요구를 처리하기 위해 n×m개의 접속들을 필요로 한다. 상기 설명된 본 발명은 서버 상에 단지 m개의 접속들 만이 있게 함으로써 자원 요건들을 감소시킬 수 있으며, 확장성을 허용한다. 본 발명은 또한 다수의 지능형 마스터 집중기 프로세스들이 집중기의 고장을 처리하고 동적 확장성을 제공할 수 있게 한다.

Claims (26)

  1. 로컬 클라이언트 애플리케이션이 원격 서버 서비스를 호출하도록 허용하는 분산 객체 환경에서 사용되는 시스템에서,
    상기 클라이언트 애플리케이션으로부터의 요청을 바인드 하여 상기 원격 서비스를 호출하고, 상기 원격 서버를 식별하고, 상기 클라이언트를 상기 원격 서버에 동작 가능하게 접속하는 집중기를 포함하여 이루어지고,
    상기 집중기는,
    상기 클라이언트로부터 상기 서버로의 접속을 조정하는 복수개의 접속 조정기들과;
    상기 접속을 조정하기 위해 어느 접속 조정기를 사용할 지를 결정하는 리스너(listener)와; 그리고
    상기 리스너와 상기 복수개의 접속 조정기들 사이의 통신을 허용하는 공유 메모리 -상기 공유 메모리는 현재 접속된 서버의 목록을 포함하고, 상기 접속 조정기는 각 접속을 조정함- 를 더 포함하여 이루어지며,
    상기 리스너는,
    호스트, 포트 및 클라이언트 식별자 파라미터들과 함께 객체 참조를 바인드하기 위해 서비스 루틴을 콜하는 단계와;
    호스트/포트가 이미 사용되고 있는지를 판정하기 위해 상기 공유 메모리 내를 검색하는 단계와;
    존재하는 조정기가 접속을 조정할 수 있다면, 상기 요청을 조정하기 위해 존재하는 조정기를 할당하는 단계와; 그리고
    존재하는 조정기가 접속을 조정할 수 없다면, 새로운 조정기를 개시하는 단계를 수행하는 것을 특징으로 하는 시스템.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 로컬 클라이언트 애플리케이션이 원격 서버 서비스를 호출하도록 허용하는 분산 객체 환경에서 사용되는 방법에 있어서,
    상기 클라이언트로부터 상기 서버로의 접속을 조정하는 복수개의 접속 조정기들을 제공하는 단계와;
    리스너에서, 상기 복수개의 접속 조정기들 중 어떤 특정한 접속 조정기가 상기 접속을 조정하는지를 결정하는 단계와, 여기서 상기 어떤 특정한 접속 조정기가 상기 접속을 조정하는지를 결정하는 단계는:
    호스트, 포트 및 클라이언트 식별자 파라미터들과 함께 객체 참조를 바인드하기 위해 서비스 루틴을 콜하는 단계와;
    호스트/포트가 이미 사용되고 있는지를 판정하기 위해 상기 공유 메모리 내를 검색하는 단계와;
    존재하는 조정기가 접속을 조정할 수 있다면, 상기 요청을 조정하기 위해 존재하는 조정기를 할당하는 단계와; 그리고
    존재하는 조정기가 접속을 조정할 수 없다면, 새로운 조정기를 개시하는 단계를 포함하며;
    상기 클라이언트 애플리케이션으로부터의 요청을 바인드하여 상기 원격 서비스를 호출하는 단계와;
    상기 원격 서버를 식별하는 단계와; 그리고
    상기 접속 조정기를 통해 상기 클라이언트를 상기 원격 서버에 동작 가능하게 접속하는 단계를 포함하는 것을 특징으로 하는 방법.
  8. 제 7항에 있어서, 상기 원격 서버가 현재 접속 조정기에 접속되어 있는지를 알기 위해 공유 메모리 공간을 참조하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  9. 제 8항에 있어서, 상기 원격 서버가 현재 접속 조정기에 접속되어 있지 않으면, 상기 원격 서버를 접속 조정기에 접속하고 상기 공유 메모리를 갱신하는 단계 를 더 포함하는 것을 특징으로 하는 방법.
  10. 제 9항에 있어서, 상기 공유 메모리를 갱신하는 단계는,
    현재 접속된 서버의 목록 및 각 접속을 조정하는 상기 접속 조정기를 갱신하는 것을 특징으로 하는 방법.
  11. 삭제
  12. 제 8 항에 있어서,
    상기 공유 메모리내의 현재 접속된 서버들의 리스트를 참조함으로써 어느 접속 조정기가 접속을 조정해야 하는지를 결정하는 단계를 더 포함하며,
    상기 접속 조정기가 각 접속을 조정하는 것을 특징으로 하는 방법.
  13. 로컬 클라이언트 애플리케이션이 원격 서버 서비스를 호출하도록 허용하는 분산 객체 환경에서 사용되는 시스템에서,
    상기 원격 서버에 대한 클라이언트 애플리케이션으로부터의 호출 요청을 바인드 하는 집중기를 포함하며, 상기 집중기는,
    상기 클라이언트로부터 상기 서버로의 접속을 조정하는 복수의 접속 조정기와;
    접속을 조정하기 위해 상기 복수의 접속 조정기 중 특정 접속 조정기를 결정하는 리스너와; 그리고
    상기 리스너와 각 접속을 조정하는 상기 복수의 접속 조정기 사이의 통신을 허용하는 공유 메모리, -상기 공유 메모리는 현재 접속된 서버의 목록을 포함하고, 상기 접속 조정기는 각 접속을 조정함-
    를 더 포함하여 이루어지며,
    상기 리스너는,
    호스트, 포트 및 클라이언트 식별자 파라미터들과 함께 객체 참조를 바인드하기 위해 서비스 루틴을 콜하는 단계와;
    호스트/포트가 이미 사용되고 있는지를 판정하기 위해 상기 공유 메모리 내를 검색하는 단계와;
    존재하는 조정기가 접속을 조정할 수 있다면, 상기 요청을 조정하기 위해 존재하는 조정기를 할당하는 단계와; 그리고
    존재하는 조정기가 접속을 조정할 수 없다면, 새로운 조정기를 개시하는 단계를 수행하는 것을 특징으로 하는 시스템.
  14. 제 13항에 있어서, 로컬 클라이언트 애플리케이션은,
    객체 참조 바인드 시간에서 객체 참조가 원격인지 여부를 판정하여 그러한 경우 ORB를 상기 객체 참조로부터의 클라이언트 정보로 초기화하는 단계와;
    바인드 플래그가 존재하는 경우 상기 서비스를 바인드 하고 반환된 ISH 클라이언트 정보 및 리스너 정보를 상기 공유 메모리에 저장하는 단계와;
    바인드 플래그가 존재하지 않는 경우 클라이언트 정보를 상기 공유 메모리에 저장하는 단계와;
    상기 공유 메모리 내에서 클라이언트 식별자를 검색하고 그것을 호출하는 단계와; 그리고
    접속이 단절될 때 상기 공유 메모리 내에서 엔트리를 검색하고, 상기 서비스를 언바인드 하는 단계를 수행하는 것을 특징으로 하는 시스템.
  15. 제 13항에 있어서, 상기 접속 조정기는
    메시지 큐로부터 메시지를 수신하는 단계와;
    클라이언트에 기초하여 상기 조정기를 클라이언트 컨텍스트 또는 조정기 컨텍스트로 전환하는 단계와;
    IIOP 요청의 카피를 만들고 상기 IIOP 요청을 위해서 본래의 IIOP 요청 id를 고유 id로 대체하는 단계와;
    상기 컨텍스트가 클라이언트 컨텍스트이면 그리고 한 쌍의 제 2접속 및 접속이 아직 존재하지 않으면, 하나를 생성하고 IIOP 요청을 상기 클라이언트에 전송하는 단계와;
    상기 컨텍스트가 상기 조정기 컨텍스트이면 접속 인덱스를 사용하여 아웃바운드 접속을 결정하고, 존재하지 않으면 하나를 생성하고 IIOP 요청을 상기 클라이언트에 전송하는 단계와; 그리고
    응답이 접속으로부터 돌아올 때, 대응하는 요청에 대한 미결의 요청 목록을 검색하고 고유 id를 본래의 요청 id로 대체하고, 상기 응답을 상기 클라이언트에 다시 전송하는 단계를 수행하는 것을 특징으로 하는 시스템.
  16. 삭제
  17. 제 13항에 있어서, 상기 클라이언트는 네이티브 C++ 클라이언트, 자바 클라이언트, 통지 서비스 또는 클라이언트로서 동작하는 네이티브 서버의 어느 하나인 것을 특징으로 하는 시스템.
  18. 제 13항에 있어서, 상기 원격 서버는 네이티브 서버, 이벤트 등록된 네이티브 클라이언트 또는 비-네이티브 CORBA-컴플라이언트 ORB 서버의 어느 하나인 것을 특징으로 하는 시스템.
  19. 로컬 클라이언트 애플리케이션이 원격 서버 서비스를 호출하도록 허용하는 분산 객체 환경에서 사용되는 방법에서,
    클라이언트로부터 서버로의 접속을 조정하는 복수의 접속 조정기를 제공하는 단계와;
    상기 접속을 조정하기 위해 상기 복수의 접속 조정기 중 어느 특정 접속 조정기를 리스너에서 결정하는 단계와;
    상기 원격 서비스를 호출하도록 상기 클라이언트 애플리케이션으로부터의 요청을 바인드하는 단계를 포함하며,
    상기 바인드하는 단계는,
    상기 원격 서버를 식별하는 단계와; 그리고
    상기 특정 접속 조정기를 통해 상기 클라이언트를 상기 원격서버에 동작 가능하게 접속하는 단계를 포함하며,
    상기 리스너는,
    호스트, 포트 및 클라이언트 식별자 파라미터들과 함께 객체 참조를 바인드하기 위해 서비스 루틴을 콜하는 단계와;
    호스트/포트가 이미 사용되고 있는지를 판정하기 위해 상기 공유 메모리 내를 검색하는 단계와;
    존재하는 조정기가 접속을 조정할 수 있다면, 상기 요청을 조정하기 위해 존재하는 조정기를 할당하는 단계와; 그리고
    존재하는 조정기가 접속을 조정할 수 없다면, 새로운 조정기를 개시하는 단계를 수행하는 것을 특징으로 하는 방법.
  20. 제 19항에 있어서, 상기 로컬 클라이언트 애플리케이션은
    객체 참조 바인드 시간에서 객체 참조가 원격인지 여부를 판정하여 그러한 경우 ORB를 상기 객체 참조로터의 클라이언트 정보로 초기화하는 단계와,
    바인드 플래그가 존재하는 경우 상기 서비스를 바인드 하고 반환된 ISH 클라이언트 정보 및 리스너 정보를 저장하는 단계와,
    바인드 플래그가 존재하지 않는 경우 클라이언트 정보를 상기 공유 메모리에 저장하는 단계와,
    상기 공유 메모리 내에서 클라이언트 식별자를 검색하고 그것을 호출하는 단계와,
    접속이 단절될 때 상기 공유 메모리 내에서 적절한 엔트리를 검색하고 상기 엔트리를 이용하여 상기 서비스를 언바인드 하는 단계를 수행하는 것을 특징으로 하는 방법.
  21. 제 19항에 있어서, 상기 접속 조정기는
    메시지 큐로부터 메시지를 수신하는 단계와,
    클라이언트에 기초하여 상기 조정기를 클라이언트 컨텍스트 또는 조정기 컨텍스트로 전환하는 단계와,
    IIOP 요청의 카피를 만들고, 상기 IIOP 요청을 위해 본래의 IIOP 요청 id를 고유 id로 대체하는 단계와,
    상기 컨텍스트가 클라이언트 컨텍스트이면 그리고 한 쌍의 제 2접속 및 접속이 아직 존재하지 않으면, 하나를 생성하고 IIOP 요청을 상기 클라이언트에 전송하는 단계와,
    상기 컨텍스트가 상기 조정기 컨텍스트이면 접속 인덱스를 사용하여 아웃바운드 접속을 결정하고, 존재하지 않으면 하나를 생성하고 IIOP 요청을 상기 클라이언트에 전송하는 단계와,
    응답이 접속으로부터 돌아올 때, 대응하는 요청에 대한 미결의 요청 목록을 검색하고 고유 id를 본래의 IIOP 요청 id로 대체하고, 상기 응답을 상기 클라이언트에 다시 전송하는 단계를 수행하는 것을 특징으로 하는 방법.
  22. 삭제
  23. 제 19항에 있어서, 상기 클라이언트는 네이티브 C++ 클라이언트, 자바 클라이언트, 통지 서비스 또는 클라이언트로서 동작하는 네이티브 서버의 어느 하나인 것을 특징으로 하는 방법.
  24. 제 19항에 있어서, 상기 원격 서버는 네이티브 서버, 이벤트 등록된 네이티브 클라이언트 또는 비-네이티브 CORBA-컴플라이언트 ORB 서버의 어느 하나인 것을 특징으로 하는 방법.
  25. 로컬 클라이언트 애플리케이션이 원격 서버 서비스를 호출하도록 허용하는 분산 객체 환경에서 사용되는 시스템에서,
    상기 원격 서비스에 대한 상기 클라이언트 애플리케이션으로부터의 호출 요청을 바인드 하기 위한 집중기를 포함하여 이루어지고,
    상기 집중기는,
    상기 클라이언트로부터 상기 서버로의 접속을 조정하는 복수개의 접속 조정기들과;
    상기 복수개의 접속 조정기들 중 상기 접속을 조정하는 특정한 접속 조정기를 결정하는 리스너(listener)와; 그리고
    상기 리스너와 상기 복수개의 접속 조정기들 사이의 통신을 허용하는 공유 메모리 -상기 공유 메모리는 현재 접속된 서버의 목록을 포함하고, 상기 접속 조정기는 각 접속을 조정함- 를 더 포함하여 이루어지며,
    상기 리스너는,
    호스트, 포트 및 클라이언트 식별자 파라미터들과 함께 객체 참조를 바인드하기 위해 서비스 루틴을 콜하는 단계와;
    호스트/포트가 이미 사용되고 있는지를 판정하기 위해 상기 공유 메모리 내를 검색하는 단계와;
    사용자 멀티플렉스 참조 카운트를 증가시키는 단계와;
    존재하는 조정기가 접속을 조정할 수 있다면, 상기 요청을 조정하기 위해 존재하는 조정기를 할당하는 단계와; 그리고
    존재하는 조정기가 접속을 조정할 수 없다면, 새로운 조정기를 개시하는 단계를 수행하는 것을 특징으로 하는 시스템.
  26. 로컬 클라이언트 애플리케이션이 원격 서버 서비스를 호출하도록 허용하는 분산 객체 환경에서 사용되는 방법에서,
    상기 클라이언트로부터 상기 서버로의 접속을 조정하는 복수개의 접속 조정기들을 제공하는 단계와;
    리스너에서, 상기 복수개의 접속 조정기들 중 어떤 특정한 접속 조정기가 상기 접속을 조정하는지를 결정하는 단계와; 그리고
    상기 원격 서비스를 호출하는 상기 클라이언트 애플리케이션으로부터의 요청을 바인드 하는 단계를 포함하여 이루어지며,
    상기 바인드 하는 단계는,
    상기 원격 서버를 식별하는 단계와; 그리고
    상기 특정한 접속 조정기를 통하여 상기 클라이언트를 상기 원격 서버에 동작 가능하게 접속하는 단계를 포함하며,
    상기 리스너는,
    호스트, 포트 및 클라이언트 식별자 파라미터들과 함께 객체 참조를 바인드하기 위해 서비스 루틴을 콜하는 단계와;
    호스트/포트가 이미 사용되고 있는지를 판정하기 위해 상기 공유 메모리 내를 검색하는 단계와;
    사용자 멀티플렉스 참조 카운트를 증가시키는 단계와;
    존재하는 조정기가 접속을 조정할 수 있다면, 상기 요청을 조정하기 위해 존재하는 조정기를 할당하는 단계와; 그리고
    존재하는 조정기가 접속을 조정할 수 없다면, 새로운 조정기를 개시하는 단계를 수행하는 것을 특징으로 하는 방법.
KR1020037001225A 2000-07-27 2001-07-17 요청의 집중 및 부하조정을 위한 시스템 및 방법 Expired - Lifetime KR100798504B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US22105700P 2000-07-27 2000-07-27
US60/221,057 2000-07-27
PCT/US2001/022343 WO2002010917A1 (en) 2000-07-27 2001-07-17 System and method for concentration and load-balancing of requests

Publications (2)

Publication Number Publication Date
KR20030031134A KR20030031134A (ko) 2003-04-18
KR100798504B1 true KR100798504B1 (ko) 2008-01-28

Family

ID=22826149

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020037001225A Expired - Lifetime KR100798504B1 (ko) 2000-07-27 2001-07-17 요청의 집중 및 부하조정을 위한 시스템 및 방법

Country Status (8)

Country Link
US (3) US6990511B2 (ko)
EP (1) EP1311946B1 (ko)
JP (1) JP5085831B2 (ko)
KR (1) KR100798504B1 (ko)
CN (1) CN1249576C (ko)
AU (2) AU7693201A (ko)
CA (1) CA2417509C (ko)
WO (1) WO2002010917A1 (ko)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1311946B1 (en) * 2000-07-27 2017-12-27 Oracle International Corporation System and method for concentration and load-balancing of requests
US20020124083A1 (en) * 2000-09-06 2002-09-05 Sun Microsystems, Inc. Method and apparatus for increasing the efficiency of transactions and connection sharing in an enterprise environment
FI20011239L (fi) * 2001-06-12 2002-12-13 Nokia Corp Tiedonsiirtomenetelmä ja -järjestely
US6980997B1 (en) * 2001-06-28 2005-12-27 Microsoft Corporation System and method providing inlined stub
IL145104A (en) * 2001-08-23 2007-02-11 Gregory Bondar A method and system for balancing the load on a computer resource between computers
US7406074B2 (en) * 2002-07-12 2008-07-29 Lucent Technologies Inc. Bundling messages in communication networks
CA2425048C (en) * 2003-04-08 2008-06-03 Ibm Canada Limited - Ibm Canada Limitee Method and system for resource access
CN100388183C (zh) * 2003-07-05 2008-05-14 华为技术有限公司 一种实现加权最小连接分配的服务器负载均衡方法
US7689986B2 (en) * 2003-10-21 2010-03-30 Gemstone Systems, Inc. Shared listeners in shared object space
US7444536B1 (en) * 2004-04-16 2008-10-28 Sun Microsystems, Inc. RMI-IIOP request failover mechanism
BRPI0418950B1 (pt) * 2004-07-12 2018-03-20 Zte Corporation Método de balanceamento de carga para uma rede de área sem fio
US7836202B2 (en) * 2005-01-19 2010-11-16 Iona Technologies Limited Communication system integrating a plurality of middleware and implementing sophisticated paths for data flow
US7853953B2 (en) * 2005-05-27 2010-12-14 International Business Machines Corporation Methods and apparatus for selective workload off-loading across multiple data centers
US7613131B2 (en) * 2005-11-10 2009-11-03 Citrix Systems, Inc. Overlay network infrastructure
US7603359B2 (en) * 2006-01-17 2009-10-13 International Business Machines Corporation Method and apparatus for maintaining federated name context bindings in a name space
JP2008077428A (ja) * 2006-09-21 2008-04-03 Fujitsu Ltd 負荷分散装置、負荷分散方法及び負荷分散プログラム
ATE496336T1 (de) * 2006-12-05 2011-02-15 Qualcomm Inc Vorrichtung und verfahren für einen einzelnullpunktfehler-lastenverteiler
US8645324B2 (en) 2009-01-09 2014-02-04 Pivotal Software, Inc. Preventing pauses in algorithms requiring pre-image information concerning modifications during data replication
EP2264594B1 (en) 2009-06-18 2011-10-12 Software AG A broker system for a plurality of brokers, clients and servers in a heterogeneous network
CN101610283B (zh) * 2009-07-17 2012-04-25 浪潮电子信息产业股份有限公司 一种网卡绑定状态下动态接收负载均衡的方法
CN102055730B (zh) * 2009-11-02 2013-09-11 华为终端有限公司 云处理系统、云处理方法和云计算代理装置
GB201015324D0 (en) * 2010-09-14 2010-10-27 Vodafone Ip Licensing Ltd Secure association
US20120173709A1 (en) * 2011-01-05 2012-07-05 Li Li Seamless scaling of enterprise applications
US9083614B2 (en) 2012-10-15 2015-07-14 Oracle International Corporation System and method for supporting out-of-order message processing in a distributed data grid
US20160182291A1 (en) * 2014-12-23 2016-06-23 Qualcomm Incorporated Controlling a modality of a dockee in a wireless docking system
US20170292798A1 (en) * 2016-04-06 2017-10-12 Fluor Technologies Corporation Leak detection in heat exchanger systems
CN107645476B (zh) * 2016-07-22 2021-06-11 上海优扬新媒信息技术有限公司 请求处理方法和装置
CN107545489A (zh) * 2017-08-18 2018-01-05 秒啊(北京)科技有限公司 一种时间交易方法
CN110933180B (zh) * 2019-12-10 2023-05-12 深信服科技股份有限公司 一种通信建立方法、装置、负载设备及存储介质
CN111865664B (zh) * 2020-06-18 2022-08-02 烽火通信科技股份有限公司 一种orb对象生命周期管理方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5761507A (en) 1996-03-05 1998-06-02 International Business Machines Corporation Client/server architecture supporting concurrent servers within a server with a transaction manager providing server/connection decoupling

Family Cites Families (103)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5819028A (en) * 1992-06-10 1998-10-06 Bay Networks, Inc. Method and apparatus for determining the health of a network
GB9222282D0 (en) * 1992-10-22 1992-12-09 Hewlett Packard Co Monitoring network status
US5329619A (en) * 1992-10-30 1994-07-12 Software Ag Cooperative processing interface and communication broker for heterogeneous computing environments
CA2110243C (en) * 1992-12-31 1998-08-11 Philip Steven Winterbottom Apparatus and methods for making a portion of a first name space available as a portion of a second name space
US5553242A (en) * 1993-11-03 1996-09-03 Wang Laboratories, Inc. Client/server connection sharing
US5793965A (en) * 1995-03-22 1998-08-11 Sun Microsystems, Inc. Method and apparatus for determining the type of an object in a distributed object system
EP0733971A3 (en) * 1995-03-22 1999-07-07 Sun Microsystems, Inc. Method and apparatus for managing connections for communication among objects in a distributed object system
US5889953A (en) * 1995-05-25 1999-03-30 Cabletron Systems, Inc. Policy management and conflict resolution in computer networks
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
US5710882A (en) * 1995-06-29 1998-01-20 Telefonaktiebolaget Lm Ericsson Method and call set up server for setting up a call using a call handling portion and a connection handling portion to handle the call and the connection, respectively
GB2305270A (en) 1995-09-15 1997-04-02 Ibm Bridge for a client-server environment
US6006018A (en) * 1995-10-03 1999-12-21 International Business Machines Corporation Distributed file system translator with extended attribute support
US5758186A (en) * 1995-10-06 1998-05-26 Sun Microsystems, Inc. Method and apparatus for generically handling diverse protocol method calls in a client/server computer system
JP3684262B2 (ja) * 1996-01-17 2005-08-17 富士通株式会社 ネットワークシステム及び集線装置
US5768501A (en) * 1996-05-28 1998-06-16 Cabletron Systems Method and apparatus for inter-domain alarm correlation
US5717747A (en) * 1996-05-31 1998-02-10 Lucent Technologies Inc. Arrangement for facilitating plug-and-play call features
US6212573B1 (en) * 1996-06-26 2001-04-03 Sun Microsystems, Inc. Mechanism for invoking and servicing multiplexed messages with low context switching overhead
US5727145A (en) * 1996-06-26 1998-03-10 Sun Microsystems, Inc. Mechanism for locating objects in a secure fashion
US5748897A (en) * 1996-07-02 1998-05-05 Sun Microsystems, Inc. Apparatus and method for operating an aggregation of server computers using a dual-role proxy server computer
US6282580B1 (en) * 1996-07-02 2001-08-28 Sun Microsystems, Inc. Bridge providing communication between different implementations of object request brokers
US5754763A (en) * 1996-10-01 1998-05-19 International Business Machines Corporation Software auditing mechanism for a distributed computer enterprise environment
US6032175A (en) * 1996-10-17 2000-02-29 International Business Machines Corporation Enhanced directory services in compound wide/local area networks
US6715100B1 (en) * 1996-11-01 2004-03-30 Ivan Chung-Shung Hwang Method and apparatus for implementing a workgroup server array
US6094688A (en) * 1997-01-08 2000-07-25 Crossworlds Software, Inc. Modular application collaboration including filtering at the source and proxy execution of compensating transactions to conserve server resources
US6151639A (en) * 1997-06-19 2000-11-21 Sun Microsystems, Inc. System and method for remote object invocation
US5808911A (en) * 1997-06-19 1998-09-15 Sun Microsystems, Inc. System and method for remote object resource management
US5931900A (en) * 1997-08-25 1999-08-03 I2 Technologies, Inc. System and process for inter-domain interaction across an inter-domain connectivity plane
US6253253B1 (en) * 1997-08-25 2001-06-26 International Business Machines Corporation Method and apparatus for optimizing references to objects in a data processing system
US6074427A (en) * 1997-08-30 2000-06-13 Sun Microsystems, Inc. Apparatus and method for simulating multiple nodes on a single machine
US6275870B1 (en) * 1997-09-24 2001-08-14 Sony Corporation Network object request broker
US6128279A (en) * 1997-10-06 2000-10-03 Web Balance, Inc. System for balancing loads among network servers
US6185609B1 (en) * 1997-10-24 2001-02-06 Sun Microsystems, Inc. Method, apparatus and program to provide client access to a management information service residing on a server in a computer network system
US6446204B1 (en) * 1997-10-31 2002-09-03 Oracle Corporation Method and apparatus for implementing an extensible authentication mechanism in a web application server
US6334114B1 (en) * 1997-10-31 2001-12-25 Oracle Corporation Method and apparatus for performing transactions in a stateless web environment which supports a declarative paradigm
US6185623B1 (en) * 1997-11-07 2001-02-06 International Business Machines Corporation Method and system for trivial file transfer protocol (TFTP) subnet broadcast
US6209018B1 (en) * 1997-11-13 2001-03-27 Sun Microsystems, Inc. Service framework for a distributed object network system
US6822955B1 (en) * 1998-01-22 2004-11-23 Nortel Networks Limited Proxy server for TCP/IP network address portability
US6484261B1 (en) * 1998-02-17 2002-11-19 Cisco Technology, Inc. Graphical network security policy management
US6003083A (en) * 1998-02-19 1999-12-14 International Business Machines Corporation Workload management amongst server objects in a client/server network with distributed objects
JP3966598B2 (ja) * 1998-03-04 2007-08-29 富士通株式会社 サーバ選択システム
US6298044B1 (en) * 1998-03-31 2001-10-02 Hewlett-Packard Company Method and apparatus for determining if overloaded collision domains can be split to enhance network
US6167052A (en) * 1998-04-27 2000-12-26 Vpnx.Com, Inc. Establishing connectivity in networks
US7430164B2 (en) * 1998-05-04 2008-09-30 Hewlett-Packard Development Company, L.P. Path recovery on failure in load balancing switch protocols
US20070078978A1 (en) * 1998-06-01 2007-04-05 Sri International Method and apparatus for updating information in a low-bandwidth client/server object-oriented system
US7039597B1 (en) * 1998-06-05 2006-05-02 I2 Technologies Us, Inc. Method and system for managing collaboration within and between enterprises
US6237135B1 (en) * 1998-06-18 2001-05-22 Borland Software Corporation Development system with visual design tools for creating and maintaining Java Beans components
US6697869B1 (en) * 1998-08-24 2004-02-24 Koninklijke Philips Electronics N.V. Emulation of streaming over the internet in a broadcast application
US6484213B1 (en) * 1998-09-09 2002-11-19 Compaq Information Technologies Group, Inc. Adapting networking device for enhancing performance of a hybrid networking system
US6636893B1 (en) * 1998-09-24 2003-10-21 Itron, Inc. Web bridged energy management system and method
US6338089B1 (en) * 1998-10-06 2002-01-08 Bull Hn Information Systems Inc. Method and system for providing session pools for high performance web browser and server communications
US6693661B1 (en) * 1998-10-14 2004-02-17 Polycom, Inc. Conferencing system having an embedded web server, and method of use thereof
CA2364264A1 (en) * 1998-10-16 2000-04-27 Rohit Garg Connection concentrator for distributed object systems
JP2000138712A (ja) * 1998-11-02 2000-05-16 Sony Corp アプリケーションシステム間のデータ伝送システム
US6571274B1 (en) * 1998-11-05 2003-05-27 Beas Systems, Inc. Clustered enterprise Java™ in a secure distributed processing system
US6236999B1 (en) * 1998-11-05 2001-05-22 Bea Systems, Inc. Duplicated naming service in a distributed processing system
US6385643B1 (en) * 1998-11-05 2002-05-07 Bea Systems, Inc. Clustered enterprise Java™ having a message passing kernel in a distributed processing system
FR2787956B1 (fr) * 1998-12-24 2001-02-23 France Telecom Procede d'adressage dans un reseau numerique de telecommunications et serveur de noms et d'adresses mettant en oeuvre un tel procede
US6611872B1 (en) * 1999-01-11 2003-08-26 Fastforward Networks, Inc. Performing multicast communication in computer networks by using overlay routing
US6556541B1 (en) * 1999-01-11 2003-04-29 Hewlett-Packard Development Company, L.P. MAC address learning and propagation in load balancing switch protocols
AU3352500A (en) * 1999-01-29 2000-08-18 Iona Technologies Inc. Method and system for dynamic configuration of interceptors in a client-server environment
US7415713B2 (en) * 2000-01-28 2008-08-19 Iona Technologies, Plc Method and system for dynamic configuration of interceptors in a client-server environment
US6453320B1 (en) * 1999-02-01 2002-09-17 Iona Technologies, Inc. Method and system for providing object references in a distributed object environment supporting object migration
US6684246B1 (en) * 1999-02-03 2004-01-27 William H. Gates, III Method and system for tracking clients
US6591272B1 (en) * 1999-02-25 2003-07-08 Tricoron Networks, Inc. Method and apparatus to make and transmit objects from a database on a server computer to a client computer
US6687831B1 (en) * 1999-04-29 2004-02-03 International Business Machines Corporation Method and apparatus for multiple security service enablement in a data processing system
US6622127B1 (en) * 1999-05-11 2003-09-16 Kaiser Foundation Hospitals Order allocation to select from inventory locations stocking few units of inventory
US6694437B1 (en) * 1999-06-22 2004-02-17 Institute For Information Technology System and method for on-demand access concentrator for virtual private networks
US6427164B1 (en) * 1999-06-23 2002-07-30 Mail Registry, Inc. Systems and methods for automatically forwarding electronic mail when the recipient is otherwise unknown
US6633878B1 (en) * 1999-07-30 2003-10-14 Accenture Llp Initializing an ecommerce database framework
US6842906B1 (en) * 1999-08-31 2005-01-11 Accenture Llp System and method for a refreshable proxy pool in a communication services patterns environment
US7290056B1 (en) * 1999-09-09 2007-10-30 Oracle International Corporation Monitoring latency of a network to manage termination of distributed transactions
US6308238B1 (en) * 1999-09-24 2001-10-23 Akamba Corporation System and method for managing connections between clients and a server with independent connection and data buffers
AU1660801A (en) * 1999-11-22 2001-06-04 Microsoft Corporation Communication among agile and context-bound objects
US6931455B1 (en) * 1999-11-30 2005-08-16 Recursion Software, Inc. System and method for communications between a CORBA object request broker and a non-CORBA object request broker
US7120692B2 (en) * 1999-12-02 2006-10-10 Senvid, Inc. Access and control system for network-enabled devices
US6754706B1 (en) * 1999-12-16 2004-06-22 Speedera Networks, Inc. Scalable domain name system with persistence and load balancing
US7340532B2 (en) * 2000-03-10 2008-03-04 Akamai Technologies, Inc. Load balancing array packet routing system
US7051032B2 (en) * 2000-03-17 2006-05-23 International Business Machines Corporation System and method for providing post HOC access to legacy applications and data
WO2001073547A2 (en) * 2000-03-29 2001-10-04 Nextset Software Inc. Messaging engine to achieve container managed asynchronous functionality
US6839748B1 (en) * 2000-04-21 2005-01-04 Sun Microsystems, Inc. Synchronous task scheduler for corba gateway
US6950935B1 (en) * 2000-04-21 2005-09-27 Sun Microsystems, Inc. Pluggable authentication modules for telecommunications management network
US7206843B1 (en) * 2000-04-21 2007-04-17 Sun Microsystems, Inc. Thread-safe portable management interface
US7228346B1 (en) * 2000-04-21 2007-06-05 Sun Microsystems, Inc. IDL event and request formatting for corba gateway
US7010586B1 (en) * 2000-04-21 2006-03-07 Sun Microsystems, Inc. System and method for event subscriptions for CORBA gateway
US7478403B1 (en) * 2000-04-21 2009-01-13 Sun Microsystems, Inc. Secure access to managed network objects using a configurable platform-independent gateway providing individual object-level access control
US6915324B1 (en) * 2000-04-21 2005-07-05 Sun Microsystems, Inc. Generic and dynamic mapping of abstract syntax notation (ASN1) to and from interface definition language for network management
US6950848B1 (en) * 2000-05-05 2005-09-27 Yousefi Zadeh Homayoun Database load balancing for multi-tier computer systems
US7280529B1 (en) * 2000-05-20 2007-10-09 Ciena Corporation Providing network management access through user profiles
US6922685B2 (en) * 2000-05-22 2005-07-26 Mci, Inc. Method and system for managing partitioned data resources
US20030061323A1 (en) * 2000-06-13 2003-03-27 East Kenneth H. Hierarchical system and method for centralized management of thin clients
US6868543B1 (en) * 2000-06-16 2005-03-15 International Business Machines Corporation Location transparent event handling
US9038170B2 (en) * 2000-07-10 2015-05-19 Oracle International Corporation Logging access system events
US7769847B2 (en) * 2000-07-13 2010-08-03 Computer Associates Think, Inc. Method and apparatus for a comprehensive network management system
US7814180B2 (en) * 2000-07-13 2010-10-12 Infoblox, Inc. Domain name service server
US7725602B2 (en) * 2000-07-19 2010-05-25 Akamai Technologies, Inc. Domain name resolution using a distributed DNS network
EP1311946B1 (en) * 2000-07-27 2017-12-27 Oracle International Corporation System and method for concentration and load-balancing of requests
US6557009B1 (en) * 2000-09-01 2003-04-29 American Management Systems, Inc. Environmental permit web portal with data validation capabilities
FI20011237A0 (fi) * 2001-06-12 2001-06-12 Nokia Corp Tiedonsiirtomenetelmä ja -järjestely
FI20011239L (fi) * 2001-06-12 2002-12-13 Nokia Corp Tiedonsiirtomenetelmä ja -järjestely
US6981029B1 (en) * 2001-07-17 2005-12-27 Cisco Technology, Inc. System and method for processing a request for information in a network
US7058717B2 (en) * 2002-07-25 2006-06-06 International Business Machines Corporation Method and system for providing highly available services based on a load balancing policy and a reusable connection context object
CA2425048C (en) * 2003-04-08 2008-06-03 Ibm Canada Limited - Ibm Canada Limitee Method and system for resource access
EP1751745B1 (en) * 2003-11-14 2019-07-10 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5761507A (en) 1996-03-05 1998-06-02 International Business Machines Corporation Client/server architecture supporting concurrent servers within a server with a transaction manager providing server/connection decoupling

Also Published As

Publication number Publication date
US20060069723A1 (en) 2006-03-30
CA2417509A1 (en) 2002-02-07
EP1311946A4 (en) 2008-01-02
US20020019872A1 (en) 2002-02-14
CA2417509C (en) 2013-02-19
JP2004505372A (ja) 2004-02-19
JP5085831B2 (ja) 2012-11-28
EP1311946B1 (en) 2017-12-27
US20110016203A1 (en) 2011-01-20
US7774403B2 (en) 2010-08-10
US8166095B2 (en) 2012-04-24
WO2002010917A1 (en) 2002-02-07
EP1311946A1 (en) 2003-05-21
US6990511B2 (en) 2006-01-24
CN1249576C (zh) 2006-04-05
CN1483162A (zh) 2004-03-17
AU7693201A (en) 2002-02-13
AU2001276932B2 (en) 2007-06-21
KR20030031134A (ko) 2003-04-18

Similar Documents

Publication Publication Date Title
KR100798504B1 (ko) 요청의 집중 및 부하조정을 위한 시스템 및 방법
AU2001276932A1 (en) System and method for concentration and load-balancing of requests
US7444536B1 (en) RMI-IIOP request failover mechanism
US7899047B2 (en) Virtual network with adaptive dispatcher
US7257817B2 (en) Virtual network with adaptive dispatcher
US6282581B1 (en) Mechanism for resource allocation and for dispatching incoming calls in a distributed object environment
KR100614265B1 (ko) 분산 처리 시스템에서의 복사된 네이밍 서비스
KR100811876B1 (ko) 분산 처리 시스템의 스마트 스터브 또는 엔터프라이즈java™ 빈
US7530078B2 (en) Certified message delivery and queuing in multipoint publish/subscribe communications
KR100614266B1 (ko) 안전 분산 처리 시스템에서의 클러스터형 엔터프라이즈java™
US6430622B1 (en) Methods, systems and computer program products for automated movement of IP addresses within a cluster
US8307380B2 (en) Proxy object creation and use
US20080126546A1 (en) System and method for communication between servers in a cluster
US20080133646A1 (en) System and method for fully distributed network with agents
KR20050121670A (ko) 메시지 중개 시스템, 클라이언트를 원격 메시지 브로커에 접속하는 방법, 메타브로커 애플리케이션을 갖는 저장 매체 및 클라이언트
US20050240654A1 (en) Message-oriented middleware provider having multiple server instances integrated into a clustered application server infrastructure
US20140101333A1 (en) System and method for supporting messaging in a fully distributed system
US8364815B2 (en) Reliability and availability of distributed servers
EP1008056A1 (en) Certified message delivery and queuing in multipoint publish/subscribe communications
EP1258127B1 (en) Method and apparatus for making a computational service highly available
Narasimhan et al. Gateways for accessing fault tolerance domains
Mukhopadhyay Managing interoperability using APPC

Legal Events

Date Code Title Description
PA0105 International application

Patent event date: 20030127

Patent event code: PA01051R01D

Comment text: International Patent Application

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20060201

Comment text: Request for Examination of Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20061214

Patent event code: PE09021S01D

E90F Notification of reason for final refusal
PE0902 Notice of grounds for rejection

Comment text: Final Notice of Reason for Refusal

Patent event date: 20070615

Patent event code: PE09021S02D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20080104

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20080121

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20080122

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20101229

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20120109

Start annual number: 5

End annual number: 5

FPAY Annual fee payment

Payment date: 20130107

Year of fee payment: 6

PR1001 Payment of annual fee

Payment date: 20130107

Start annual number: 6

End annual number: 6

FPAY Annual fee payment

Payment date: 20140103

Year of fee payment: 7

PR1001 Payment of annual fee

Payment date: 20140103

Start annual number: 7

End annual number: 7

FPAY Annual fee payment

Payment date: 20150106

Year of fee payment: 8

PR1001 Payment of annual fee

Payment date: 20150106

Start annual number: 8

End annual number: 8

FPAY Annual fee payment

Payment date: 20151217

Year of fee payment: 9

PR1001 Payment of annual fee

Payment date: 20151217

Start annual number: 9

End annual number: 9

FPAY Annual fee payment

Payment date: 20161220

Year of fee payment: 10

PR1001 Payment of annual fee

Payment date: 20161220

Start annual number: 10

End annual number: 10

FPAY Annual fee payment

Payment date: 20171219

Year of fee payment: 11

PR1001 Payment of annual fee

Payment date: 20171219

Start annual number: 11

End annual number: 11

FPAY Annual fee payment

Payment date: 20181226

Year of fee payment: 12

PR1001 Payment of annual fee

Payment date: 20181226

Start annual number: 12

End annual number: 12

FPAY Annual fee payment

Payment date: 20191217

Year of fee payment: 13

PR1001 Payment of annual fee

Payment date: 20191217

Start annual number: 13

End annual number: 13

PR1001 Payment of annual fee

Payment date: 20201216

Start annual number: 14

End annual number: 14

PC1801 Expiration of term

Termination date: 20220117

Termination category: Expiration of duration