KR100237984B1 - 원격 절차 호출 실행 방법 및 트랜잭션 매니저 - Google Patents
원격 절차 호출 실행 방법 및 트랜잭션 매니저 Download PDFInfo
- Publication number
- KR100237984B1 KR100237984B1 KR1019960065707A KR19960065707A KR100237984B1 KR 100237984 B1 KR100237984 B1 KR 100237984B1 KR 1019960065707 A KR1019960065707 A KR 1019960065707A KR 19960065707 A KR19960065707 A KR 19960065707A KR 100237984 B1 KR100237984 B1 KR 100237984B1
- Authority
- KR
- South Korea
- Prior art keywords
- server
- client
- remote procedure
- procedure call
- connection
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5022—Workload threshold
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Stored Programmes (AREA)
Abstract
트랙잭션 매니저(transaction manager)가 복수의 클라이언트들 중 임의의 클라이언트들로부터의 모든 서비스 요구들을 인터셉트(intercepting)하고, 작업 요구(task request)들과 독립적으로 접속을 확립하고, 가용한 서버(available server)들을 그 작업 요구들에 할당함으로써, 보다 많은 수의 클라이언트/서버(client/server) 접속을 통해 서비스 자원들을 공평하게 분배하게 된다. 바람직하게는, 상기 트랜잭션 매니저는 어떠한 요구와도 독립적으로 적어도 하나의 서버를 시동하고, 어떤 서버와도 독립적으로 서버 접속을 위한 모든 클라이언트 요구를 트랙잭션 매니저에 향하게 하고, 작업 요구들을 큐(queue)에 배치하고, 큐 길이에 근거하여 추가의 서버들을 시동 및 정지시킨다.
Description
본 발명은 일반적으로 분산 데이터 처리 시스템 및 네트워크에 관한 것이며, 특히, 그러한 분산 데이터 처리 시스템의 프로세서들 사이에서 클라이언트/서버(client/server) 접속을 전개하는 것에 관한 것이다.
네트워크에 접속된 다수의 데이터 프로세서들 사이의 통신을 허용하는 데이터 처리 시스템은 여러해 동안 공지되어 왔다. 그러한 초기의 네트워크 시스템은 일반적으로 다수의 터미널들 중 임의 것과, 중앙 데이터 기억 설비를 갖추고 있으면서 그로부터 정보를 검색하는 주프로세서 사이의 통신을 수분하였다. 그러나, 소형 데이터 프로세서의 기억 능력과 처리력이 증가됨에 따라, 네트워크에 접속된 데이터 프로세서들 중에서 적어도 몇몇의 데이터 프로세서들 사이에서 데이터 기억 및 처리가 공유되도록 네트워크를 구성하는 것이 일반적인 것이 됨으로써, 대용량 중앙데이터 기억 설비의 필요성이 없어졌다. 데이터 및 관련 데이터 처리를 위한 문의 또는 요구(inquiries or requests)는 다른 데이터 프로세서들로 향하게 될 수 있게 되어, 네트워크에 접속된 하나의 데이터 프로세서가 서버로서 알려진 다른 프로세서의 클라이언트가 될 수 있게 해주는 프로토콜이 개발되게 되었다. 그러한 요구는 데이터에 대한 요구로 한정될 필요가 없으며, 서버가 제공할 수 있는 어떤 형태의 데이터 처리 또는 서비스도 포함하는 것으로 이해되어야 한다. 그러한 프로토콜에 의해 실행된 기본 오퍼레이션은 클라이언트와 서버 사이의 접속을 확립하고(establishing a connection), 요구를 처리한 후, 접속을 차단(terminate)하는 것이다. 서버에 의해 처리될 수 있는 요구는 일반적으로 서비스로 지침되는 서버 상의 소프트웨어 애플리케이션(softward application)에서 제공된다.
일반적으로 원격 절차 호출(RPC)로 지칭되는 요구의 처리는 상당한 양의 시간이 걸리 수도 있으며 또한 접속을 확립하고 접속을 차단하는데 필요한 부가의 처리 시간 부담(overhead)를 포함하며, 상기 접속의 확립과 접속의 차단은 모두 클라이언트/서버 관계를 확립하는데 필요한 프로토콜에 의해 복잡해진다. 서버 구현에 따라서는, 다수의 클라이언트로부터의 접속 및 차단 요구를 처리하기 위한 시간을 포함하여 필요한 처리 시간의 양은 요구를 하는 클라이언트를 대기 상태에 놓이게 하여[예를 들면, 서버 또는 어떤 시스템 매니지먼트 장치(system management arrangement)에 의해 요구가 큐(queue)에 배치됨] 요구 처리를 지연시킬 가능성을 증가시킨다. 요구 처리에 있어서의 모든 그러한 지연은 이론상으로 네트워크로부터 파생될 수 있는 경제성과는 무관하게, 시스템의 실용성을 손상시킨다.
데이터 처리 시스템에 있어서 클라이언트/서버 관계의 실용성은 동일한 프로세서 상에서 동시에 작동하는 다수의 동일한 서버의 개발에 의해 상당히 향상되어서, 잠재적으로 이용가능한 서버의 수를 증가시켜 왔다. 이러한 처리는 다수의 애플리케이션(plural appolications)의 동시 실행과 동등하나, 여기서 동일한 서비스를 제공하는 모든 그러한 동시 실행 애플리케이션들은 동일하다. 그럼에도 불구하고, 통신 프로토콜은 복잡한 상태로 남아있으며, 시스템의 전체 가능성을 잠재적으로 제한한다.
예를 들면, 선 마이크로시스템즈에 의해 개발되어 광범위하게 공지되고 사용된 RPC설비(이후부터 선 RPC로 지칭됨)는 여러해 동안 많은 운영 시스템과 하드웨어 플랫폼(platform) 상에서 사용되어 왔다. 선 RPC는 클라이언트/서버 애플리케이션을 개발할 수 있게 프로그래머를 지원하는 한 세트의 프로그래밍 라이브러리 및 툴(a set of programming libraries and tools)이다. 그러나, 다수의 동시 실행 서버가 단일 프로세서 상에서 전개된다 할 지라도, 선 RPC는 어느 클라이언트의 요구에 대해서나 동시 서버들(concurrent servers)를 지원하지는 않는다. 예를 들면, 한 클라이언트가 처리해야 할 다수의 요구를 가질 수도 있다는 시나리오를 고려해 보자. 선 RPC와 같은 공지의 RPC 설비하에서, 클라이어트와 서버 모두는 서버와의 접속이 확립되는 시간에 서로 구속된다. 다수의 요구가 통신 링크를 차단 및 재확립함(terminating and re-establishing)이 없이 서버에 의해 처리될 수 있지만, 상기 요구 등은 동일한 서버에 의해 순차적으로 반복 처리되어야만 한다. 역으로, 단일 클라이언트가 다수의 이용가능한 서버에 의한 동시 처리의 장점을 얻도록 하기 위하여는, 각각의 서버가 시동될 때, 별도로 등록되고 각각의 그러한 서버에 대해 별도의 통신 링크(separate communication link)가 확립되어야 하기 때문에, 각각의 요구는 특정 서버에 대해 별도의 통신 링크를 확리해야 하는 부담(overhead)을 수반하게 될 것이다. 또한 각각의 새로운 서버 처리를 시동하기 위해 추가의 시간이 요구된다. 그러므로, 클라이언트는 순차 처리 또는 실제 처리 부담 발생의 필연성으로 인해 이용가능한 시스템의 전체 능력을 이용할 수 없다.
기존 클라이언트로부터의 요구를 (순차적으로 또는 동시에) 처리하는 동안 또다른 잠재 클라이언트가 요구를 할 가능성을 부가하여, 동일한 예를 더 고려해 보자. 추가의 요구가 동시에 이용가능한 서버에 의해 동시에 처리될 수 있도록 하려면, 그 서버로부터 요구된 이용가능한 서비스의 등록은 그 클라이언트에 대해 별도로 제공되어야 한다. 이것은 선 RPC 설비에서는 서버 상에 상주하는 소위 포트맵퍼(portmapper)(“포트맵퍼”선 마이크로시스템즈의 상표이다.)에 의해 행해진다. 통신 링크를 확립하기 위한 작동이 개시될 수 있기 전에 이용가능한 서버의 적어도 하나의 어드레스(예를 들면, 포트 번호)가 클라이언트에게 제공되어야만 하기 때문에, 별도 등록 또한 이용가능한 서버와의 통신 링키의 확립 및 차단에 수반되는 부담에 기여한다.
서버가 즉시 이용가능하지 않는 경우(500 이상의 잠재 클라이언트를 갖는 현재 규모의 네트워크에서 있음직한), 요구는 한 요구의 완료시에 또 다른 통신 링크의 차단을 유발할 수도 있거나[차단된 링크를 이전에 이용하고 있던 클라이언트로부터의 나머지 요구가 큐(queue)에 배치되게 함] 또는, 새로운 클라이언트로부터의 요구가 이용가능한 서버를 기다리는 큐에 배치되는 연장된 기간 동안의 대기 상태를 유발할 수도 있다. 어떤 경우에서나, 다수의 클라이언트로부터의 RPC들이 다수의 서버에 의해 공평하게 또는 적시에 서비스되고, 어떤 클라이언트로부터의 접속 및 차단 요구를 포함한 어떤 순차의 RPC 처리 동안에도 그 클라이언트 및 하나 또는 그 이상의 서버가 단단히 결합된 상태로 남게하는 것을 보장하기 위한 수단이 어떠한 공지의 RPC 설비에도 없다. 예를 들면, 선 RPC의 경우, 포트매퍼(portmapper)는 포트매퍼로 등록되는 어떤 서버를 위한 상태 또는 이용가능성 정보를 운반하지 않으며, 잠재 클라이언트에게 제공되는 어드레스 또는 포트 번호는 실제로 랜덤하고 다른 서버들이 이용가능할 때 다른 클라이언트로부터의 요구를 처리하는 서버의 어드레스 또는 포트 번호일 수도 있다. 마찬가지로, 선 RPC는 순서대로 처리될 어떤 특정 서버의 요구에 대해 대비하지 않는다. 요구 처리를 적시(timeliness)에 할 수 있게 해주기 위한 유일한 공지의 잠재적 해결책은, 실제 처리 부담을 물론 수반하며 어쩌면 서버 프로세서의 하드웨어 능력이 쉽게 초과되게 할 수도 있는 각각의 요구에 대해 새로운 서버를 생성하는 것이다.
따라서, 클라이언트/서버 관계를 확립하기 위한 현존하는 프로토콜은 실제 처리 부담을 요구하고, 서버를 클라이언트에게 할당하는 것에 대한 유연성을 제한하며, 클라이언트에게 할당될 수도 있는 서버 능력을 제한하며, 다수의 클라이언트 로부터의 요구를 공평하게 그리고 적시에 처리하지 못한다는 것을 알 수 있다. 요약하면, 서버들을 쉽게 증가시킬 수 있는 반면, 그와 같이 증가된 수효의 서버의 처리 능력은 공지의 RPC 설비에 의해 완전히 이용되어 클라이언트에게 제공되지 못할 수도 있다. 실행 서버 중의 여러 서버들로 통신을 향하게 하는 통신 매니저를 부가하는 것과 같은 다른 해결책은 또한 접속과 관련된 부담을 증가시키며, 접속시에 클라이언트와 서버를 단단히 결합하고, 추가의 클라이언트로부터의 요구를 통신하기 위한 더 이상의 접속을 방해하면서 실행 서버들이 아이들(idle) 상태가 되도록 할 수도 있다.
본 발명의 목적은 하나 또는 그 이상의 클라이언트를 위해 서버들을 동시에 전개하는 것을 지원하는 시스템 구조체를 제공하는 것이다.
본 발명의 또 다른 목적은 이용가능한 서버의 수를 초과할 수도 있는 다수의 클라이언트로부터의 요구를 적시에 공평하게 처리하는 것이다.
본 발명의 또 다른 목적은 공지의 RPC 프로토콜과 호환성이 있는 상태를 유지하는 네트워크 접속 프로세서들 사이에서 단순화된 통신을 제공하기 위한 장치를 제공하는 것이다.
본 발명의 또 다른 목적은 요구된 서비스를 제공하는 프로세서와 클라이언트 사이의 접속을 확립하는 프로세서로부터 하나 또는 그 이상의 서버를 분리시켜, 증가된 수의 클라이언트/서버 접속의 유지를 허용하는 것이다.
본 발명의 이러한 목적 및 다른 목적을 달성하기 위하여, 데이터 프로세서 상에서 원격 절차 호출을 실행하는 방법에 있어서, 원격 절차 호출과 독립적으로 데이터 프로세서 상에서 서비스를 제공하는 서버를 시동하는 단계, 하나의 추가 데이터 프로세서와 상기 데이터 프로세서 사이의 접속을 확립하는 단계, 접속을 통하여 상기 서비스 내에 포함된 작업(task)에 대한 적어도 하나의 요구를 수신하는 단계, 및 접속을 확립하는 것과 무관하게 수신된 순서대로 가용한 서버를 요구에 할당하는 단계를 포함하는 데이터 프로세서 상에서 원격 절차 호출을 실행하는 방법이 제공된다.
본 발명의 또 다른 양상에 따르면, 제1데이터 프로세서 상에서 서비스를 제공하는 서버를 시동하기 위한 장치, 서버와 무관하게 제2데이터 프로세서와 상기 제1데이터 프로세서 사이의 접속을 확립하기 위한 장치, 서비스 내에 포함된 작업에 대한 요구를 수신하기 위한 인터페이스, 및 접속을 확립하기 위한 상기 수단과는 무관하게 수신된 순서대로 상기 작업에 가용한 서버를 할당하기 위한 장치를 포함하는 데이터 처리 네트워크용 트랜잭션 매니저가 제공된다.
본 발명에 따른 트랜잭션 매니저는, 실행 서버를 등록(legistering)하기보다는 포트매퍼 또는 클라이언트에 의해 트랜잭션 매니저를 등록하여, 접속을 확립하는 프로세스로부터 서버들을 분리시키고, 클라이언트 접속과 무관하게 서버들에게 요구들을 할당할 수 있게 함으로써, 클라이언트 요구의 병렬 처리를 지원하는 한편, 현존하는 RPC 설비들과의 호환성을 성취하도록 동작한다. 소켓 핸들(socket handle)에 의한 클라이언트 요구의 표시와 관리 요구(administrative request)의 처리를 위한 대비를 통하여 본 발명이 구현되는 시스템의 유연성 및 효율이 신장될 수 있다.
제1도는 대표적 원격 절차 호출(RPC) 구조(remote procedure call architecture)에 대한 고레벨 개략도.
제2도는 본 발명을 포함하는 네트워크 구조를 대표하는 고레벨 개략도.
제3도는 본 발명의 트랙잭션 매니저의 양호한 형태에 대한 개략 블록도.
제4,5 및 6도는 본 발명의 양호한 형태의 동작을 함께 설명하는 플로우차트.
* 도면의 주요부분에 대한 부호의 설명
10 : 시스템 구조체 12,20 : 프로세서
14,130,132 : 서버 16,16′: 포트매퍼
18,18′: 어드레스 30 : 네트워크
110 : 트랙잭션 매니저 300 : 네트워크 인터페이스
302,304,306,308 : 레지스터 310 : 요구 큐
312 : 스위치 316 : 서비스 시동/정지 소자
상기 및 다른 목적, 양상 및 장점은 도면을 참조한 본 발명의 양호한 실시예에 대한 다음의 상세한 설명에 의해 잘 이해될 것이다.
도면, 특히 제1도에는, 공지의 RPC 설비를 대표하는 것으로 간주되는 선 RPC 설비에 따른 시스템 구조체(10)가 도시되어 있다. 선 RPC 설비는 공지되어 있고 광범위하게 사용되고 있을 지라도, 선 RPC 설비 및 다른 유사한 설비에 대한 세부 사항은 본 발명의 실시예에는 중요하지 않으므로, 제1도는 본 발명의 이해를 용이하게 할 정도의 설명 수준으로 한정된 고레벨의 개략 설명도이다. 동일한 이유로, 제1도의 어떤 부분도 본 발명에 관한 종래의 기술인 것으로 인정되지는 않는다.
제1도에서 네트워크(30)은 클라이언트로 기능하는 다수의 프로세서(20)를 선 RPC 설비와 서비스 애클리케이션이 상주하면서 실행중인 프로세서(12)와 상호 접속한다. 이러한 관점에서, 임의의 프로세서(20) 또는 모든 프로세서(20)는 동일하거나 또는 다른 서비스를 위한 서버로서 기능하는 능력을 가질 수는 있지만 반드시 그럴 필요는 없으며, 다른 서버가 존재할 경우 프로세서(12)가 하나의 클라이언트로서 기능할 수 있음을 이해해야 한다. 어떤 프로세서 상에 서버의 기능을 제공하는데 필요한 모든 것을 상주하는 RPC 설비와 서비스 애플리케이션 및 그들을 실행할 처리 능력이다.
선 RPC 설비는 프로세서(12) 상에 RPC 서버(14) 및 포트매퍼(16)를 설치한다. 즉, RPC 설비 및 포트매퍼는 선 RPC 설비와 같은 RPC 프로토콜을 이용하여 설치된다. 이러한 기능 소자들은 다른 RPC 설비의 유사한 기능 소자들을 표시하며, RPC 설비에 의해 특정된 설정에 따라 로직(logic), 레지스터, 특정 메모리 어드레스 블록 및 그러한 종류의 것에 의해 구체화될 것이며; 그 구체적인 내용은 본 발명의 실시에는 중요하지 않다. 그러한 기능 소자는 특정 목적 데이터 처리 회로 및 전용 하드웨어에 의해 전체적으로 또는 부분적으로 제공될 수도 있다.
포트매퍼(16)는 서버가 시도될 때 서버 요구에 응답하여 각각의 서버에 대해 등록 서비스를 제공하며 서비스 내에서 요구될 수도 있는 작업(tasks)의 설명과 그러한 작업을 포함하는 서비스를 제공하는 서버의 어드레스(18)를 유지하는 프로그램인 것이 바람직하다. 따라서, 포트매퍼(16)는 또한 바람직하게는 조회 테이블(look-up table)의 형태로 클라이언트를 위한 조회 서비스를 제공할 수도 있다. 포트매퍼(16)는 또한 네트워크 접속을 확립하기 위하여 클라이언트에 의해 사용된 RPC 프로그램 번호 및 버전도 또한 유지한다.
RPC 서버는 RPC 프로그램 번호 및 버전 번호를 이용하여 고유하게 식별되는 특정 서비스(예를 들면, 작업의 세트)를 실행하도록 소프트웨어 개발자에 의해 구성된다. RPC 서버가 시동될 때(따라서, 클라이언트에게 이용가능하게 됨), 서버는 포트매퍼(14)로 등록한 다음, 클라이언트 프로세서로부터의 접속 요구 및 후속 작업 요구를 기다린다.
RPC 클라이언트(예를 들면, 클라이언트 1, 클라이언트 2, 클라이언트 3, ..., 클라이언트 N)은 특정 작업을 수행할 수 있는 서버에게 그들 작업에 대한 RPC의 요구를 전송하는 능력을 갖도록 소프트웨어 개발자에 의해 구성된다. 클라이언트 애플리케이션은 포트매터(16)로부터 접속 정보를 요구하며, 그 정보를 이용하여 RPC 서버(14)와의 접속을 요구하며; 그 다음, 하나 또는 그 이상의 요구가 서버(14)에 의해 보유된 접속을 통해 서버에게 이루어질 수 있다.
동작시, 서버와 클라이언트는 접속시에 단단히 결합되며, 접속은 하나 또는 그 이상의 요구의 완료시에 해제될 때까지 유지된다. 서버가 사용중에 있으면, 더 이상의 접속이 이루어질 수 없다. (각각의 서버가 포트매퍼에 의해 별도로 등록되고 접속 요구가 특정 서버에게 이루어지므로, 단지 하나의 서버만이 고려될 필요가 있음을 주목해야 한다. 공지의 RPC 설비하에서는, 클라이언트로부터의 요구는 서버에서 대기하는 것을 차단하므로, 결국 서로 다른 클라이언트로부터의 요구가 실제로 무작위 순서로 처리된다. 몇몇 큐잉(queueing) 또는 통신 인터럽트 장치가 통신 매니저의 형태로 (서버 정보가 수신된 순서로 요구하는 클라이언트에게 제공되도록 접속 요구를 큐잉함으로써) 포트매퍼 레벨에서 제공될 수 있으나, 그러한 매니지먼트는 포트매퍼의 한 기능이 아니라는 것은 본 발명을 이해하는데 중요하다. 또한, 위에서 지적된 바와 같이, 어떤 특정 클라이언트로부터의 모든 요구는 접속이 이루어진 서버에 의해 반복 처리되어야만 한다.
이론상으로는 한 클라이언트로부터 다수의 서버 각각으로의 접속이 다양한 요구를 서비스하도록 이루어질 수 있지만, 각각의 요구 또는 순차적인 요구가 동시에 처리되도록 하려면 특정 서버로의 별도 접속이 요구될 것이다. 그러나, 이것은 위에서 주목된 바와 같이 접속을 확립하는 추가의 처리 부담을 요할 뿐만 아니라, 단일 장치 상에서 별개의 동일한 처리들로서 충분한 수의 서버를 불러낼 수 있는 훨씬 증가된 프로세서 능력도 또한 필요로 한다. 더 나아가, 한 클라이언트가 다수의 서버에 대한 다수의 접속을 확립하는 것이 허용될 경우, 그러한 접속 각각은 상기 클라이언트로부터의 특정 세트의 요구를 특정 서버와 단단히 결합하는 결과를 초래하게 된다. 더욱이, 복귀된 정보(returned information)를 특정 요구 또는 한 세트의 요구와 결합하기 위한 대비가 이루어져야만 한다. 더 나아가, 어느 때나 이용할 수 있거나 또한 한 순차의 요구를 처리하는 기간 동안 이용할 수 있게 될 수 있는 만큼 많은 서버 및 프로세서 용량을 한 클라이언트가 이용함으로써, 다른 클라이언트에게 제공될 서비스가 방해되거나 또는 부당하게 대기되게 하는 결과를 피하기 어려울 것이다.
제2도에서, 본 발명의 구조체(100)가 설명될 것이다. 네트워크(30) 및 다수의 클라이언트(20)은 제1도에서와 같이 제시된다. 포트매퍼(16′)는 위에서 설명된 바와 같이 제공되지만, 다른 점이라면, 접속을 확립하기 위해 클라이언트에게 제공되는 서버 어드레스(예를 들면, 포트 번호)가 이후 때때로 XMAN으로 지칭되는 트랜잭션 매니저(110)의 어드레스일 것이라는 점이다.
비록 다수의 서버라 할 지라도 단지 하나의 단일 서비스가 제공될 경우, 이것은 각각의 클라이언트에게서 유익하게 저장될 수 있는 단일 어드레스(예를 들면, 상기 서비스를 제공하는 애클리케이션의 프로그램 번호)일 것이다. 이는 이하 상세히 논의될 것이다. 이러한 의미에서, 포트매퍼(16′)의 존재 이유는 근본적으로 현존하는 선 RPC 설비 및 다른 RPC 설비와의 호환성을 유지하는 것이다. 그러나, 포트매퍼는 서버가 시동될 때 서비스의 등록을 수신 및 유지하는 능력을 유지하며, 다른 서비스가 네트워크를 통해 이용가능할 때나 또는 어떤 서비스가 방해될 수도 있을 때 몇가지 호환성 및 편의를 제공한다. 이러한 견지에서, 상기 시스템이 추가의 어드레스(18′)(예를 들면, XMAN B)를 구비할 필요가 있는 복제된 발명(예를 들면, (132,134)에서 도시된 바와 같은)의 구조체 및 둘 또는 그 이상의 서로 다른 서비스를 채용할 수도 있는 것으로 추정된다. 물론, 서버 프로세서의 하드웨어 능력에 따라, 둘 또는 그 이상의 서로 다른 서비스(각각의 서비스는 잠재적으로 다수의 서버를 이용한다.)가 XMAN(110)을 갖는 동일한 프로세서 상에 제공될 수도 있다. 어떤 경우에서나, 포트매터는 요구된 작업에 적합한 고유 프로그램 번호와 같은 서로 다른 어드레스를 제공할 수 있기만 하면 된다.
제3도에는 트랙잭션 매니저의 기본 소자들이 도시되어 있다. 또다시, 이러한 소자는 소프트웨어에 의해 개발되는 것이 바람직하지만, 하드웨어 또는 하드웨어와 소프트웨어 모두의 조합으로 구현될 수 있다. 4개의 레지스터(302,304,306,308)는 트랙잭션 매니저(110)용의 기본 설정 값을 기억하도록 제공된다. 레지스터(302)는 요구가 없을 때 실행될 최소수의 서버를 확립하며 임의로 1로 세트된다. 레지스터(304)는 추가의 서버를 시동하기 전에 허용될 대기 요구의 수를 확립하며 임의로 2로 세트된다. 레지스터(306)는 프로세서(12′)의 용량과 일치하기면 언제나 실행하도록 허용될 최대 수를 기억한다. 각각의 서버가 한정된 양의 처리 부담을 취하여 로딩하는 소프트웨어 애플리케이션임을 상기하면, 레지스터 또는 카운터(308)는 서버가 얼마나 자주 정지될 것인가를 제어하기 위한 파라미터를 포함하며, 예를 들어, 컴퓨터 부담 기여(computer overhead contributions), 사용자의 편의, 평균 요구 실행시간 등의 균형(balancing)에 근거하여 예를 들면, 30초로 설정된다(30초는 현재의 네트워크 억세스 시간의 견지에서 볼 때 사용자에게 종종 충분한 시간이 될 것이다). 모든 이러한 파라미터는 자유롭게 설정할 수 있다. 바람직하게는 서버의 시동은 큐(queue) 길이의 함수이지만, 이하에 설명되는 바와 같이, 어떤 상황들에서는 다수의 서버를 시동할 때 서버의 시동의 빈도수를 제어하기 위해 유사한 파라미터가 유익하게 사용될 수도 있음을 알아야 한다.
양방향 네트워크 통신은 네트워크 인터페이스(300)를 통하여 트랜잭션 매니저(110)를 출입한다. 이에 대한 설명을 위해, 이러한 네트워크 인터페이스는 작업 요구와 접속 요구을 변별할 수 있다고 가정한다. 일반적으로, 이것은 포트매퍼에 의해 클라이언트에게 제공된 포트 번호에 근거하여 달성되며, 상기 포트 번호가 상기 서비스의 프로그램 번호일 것이기 때문에 특히 본 발명에 따르면 용이해 진다. 이러한 변별이 어떻게 실행되는가 하는 것과 무관하게, 접속 요구가 수신될 때, 신호가 포트매퍼(16′)에 전송되어, 트랜잭션 매니저(110)의 어드레스(예를 들면, 서버 프로세서 상에서 실행하는 서비스의 프로그램 번호)가 클라이언트 및/또는 통신 링크를 확립하도록 실행된 다른 오퍼레이션에 전송될 수 있게 된다. 제1도의 구조체와 구별하여, 서버(130)는 이러한 처리에 관련되지 않는다.
트랙잭션 매니저가 시동될 때, 레지스터(302)의 제어하에서 서버(1)가 시동된다. 요구가 수신될 때 이것은 일시적으로 요구 큐(310)로 향하며, 서버(1)가 시동되었고 이용가능한 것으로 추정되기 때문에 스위치(312)는 서버(1)에 요구를 즉시 향하게 하고, 거기서 요구가 처리되고, 그 결과는 네트워크 인터페이스(300)를 통하여 클라이언트로 복귀된다. 실행의 문제로서, 소켓 핸들(socket handle)로서 알려진 요구를 나타내는 에일리어스(alias)가 큐에 배치되고 서버로 전달되어, 요구 그 자체의 보관 전달(store-and-forward)을 실행하기 보다는 오히려 처리될 요구를 식별하는 것이 바람직하다는 것도 이해해야 할 것이다[특히 작업을 처리할 수 있는 서비스의 프로그램 번호가 이미 제공되었고 트랜잭션 매니저와의 접속이 이에 의해 확립되었기 때문에, 트랜잭션 매니저는 상기 요구 또는 상기 요구의 다른 특성(specifics)에 포함된 정보에 대한 필요성을 갖고 있지 않다. 본 발명의 양호한 실시예의 이러한 특성은 이하에 더 설명될 소위 송신 제어 프로토콜/인터넷 프로토콜(TCPIP)과 개방 소프트웨어 설치/분산 계산 환경(OSF/DCE) 프로토콜과 같은 다른 RPC 설비 및 시스템에 본 발명을 적용하는데 중요한 사항이다].
서버(1)에서 요구를 처리하는 동안 제2 요구가 동일한 클라이언트 또는 다른 클라이언트로부터 수신된 것으로 가정하자. 상기 제2 요구는 다른 서버가 이용가능하지 않기 때문에 요구 큐(310)에 배치되어 대기한다. 그러나, 서버(1)가 상기 제1요구를 계속 처리하는 동안 제3 요구가 동일한 클라이언트 또는 다른 클라이언트로 부터 수신되면, 큐 길이는 레지스터(304)에 있어서의 서버 시동 값과 동일하며, 한 신호가 서버(2)를 시동시키는 서비스 시동/정지 소자(service start/stop element)(316)에 전송된다. 따라서 서버(2)가 이용가능하게 될 때 제2 요구는 스위치(312)를 통하여 서버(2)로 전달된다. 각 서버가 시동된 것으로 간주할 때 스위치(312)는 각각의 서버의 상태에 응답한다[특정 서비스가 이용가능함을 포트매퍼에게 알리기 위해 상기 제1 서버의 시동이 아닌, 선 RPC 설비에서처럼, 개별 서버의 상태를 포트매퍼(16′)에 보고할 필요는 없다. 일단 서비스가 이용가능하면, 포트매퍼는 접속이 요구될 때 XMAN 어드레스를 공급할 필요만이 있으며, 요구에 대한 서버 할당은 XMAN에 의해 처리될 것이다].
제3 요구는 양호하게는 선입선출 버퍼 형태인 요구 큐(310)에서 진행될 것이나, 서버 시동값이 큐 길이를 초과하기 때문에 그 이상의 서버는 아직 시동되지 않을 것이다. 제1 또는 제2 요구의 처리가 완료되기 전에 제4 요구가 수신되면 서버(3)가 위에서 논의된 것과 동일한 방식으로 시동될 것이다. 어떤 요구의 처리가 완료되고 그 결과가 네트워크 인터페이스(300)를 통하여 복귀될 때 서버는 이용가능하게 되어 요구 큐로부터 다음 요구(예를 들면, 제3 요구)를 수신할 수 있다.
서버는 요구의 부수 사건(an incident of the request)으로서 그리고 서버가 다른 요구도 처리할 수 있다는 것을 표시하는 것 이외에 XMAN(110)의 어떠한 개입 없이도 요구 처리의 결과를 클라이언트에게 직접 통신한다. 이것은 또한 접속 및 차단 요구에 대해 참이며, 여기서 클라이언트에게 직접 복귀된 결과는 일반적으로 접속을 위한 승인 및 인증이고 차단을 위한 승인 및 복귀 코드이다. 요구 큐내에 요구가 없을 경우, 서버는 아이들 상태로 되지만, 레지스터 또는 카운터(308)내의 값에 의해 확립되는 바와 같은 시간 주기(예를 들면, 30초)가 경과될 때까지 정지되지 않는다.
서버들은 시동함에 있어서 대략 동일한 시간 분량의 지연 또는 요구 큐의 길이가 서버를 시동하는데 필요한 처리 부담의 견지에서 레지스터(302) 내에 지정된 값보다 큰지에 따라서 지연을 제공하는 것도 또한 편리하다. 동일한 이유로, 레지스터(304) 내의 값을 1 이상으로 설정하는 것은, 비록 이것이 동시 서버 이용을 위한 총 용량 이하의 용량이 얻어짐을 의미한다 할 지라도, 편리하다. 예를 들면, 서버를 시동하는데 30초가 요구될 경우, 서버 정지 값과는 무관하게 서비스 시동 값을 1로 세트하는 하는 것은 처리율에 있어서 이득이 없을 것이다. 서비스 시동 값을 2(또는 그 이상)로 설정하고 그리고 서비스 정지 값을 서버로 시동하는데 필요한 시간과 유사하게 설정함으로써, 요구 큐(310)에서 남아있는 요구가 다른 앞선 요구의 완료시에 어떠한 이용가능한 서버로 즉시 전달될 것이므로, 처리율에 있어서의 이득은 사실상 달성된다.
위의 사실로부터, 요구가 수신되는 순차로 요구들이 처리되므로, 클라이언트들과 서버들과의 구속은 없는 것으로 이해되어야 한다. 따라서, 서버들은 사실상 클라이언트 정체(identity)를 알지 못하며(결과의 목적지를 제외하고), XMAN은 선 RPC 설비하에서 클라이언트 오퍼레이션과 완전히 일치하는 방식으로 서버에 요구를 전송시킨 RPC 클라이언트에게는 완전히 없는 것처럼 보인다(transparent).
마찬가지로, 서버들은 동일한 속도로 어떠한 클라이언트 또는 클라이언트의 집단으로부터의 요구를 동시에 처리할 수 있으며, RPC 설비로부터 반복 요구 처리의 제약이 제거된다. 이와 유사하게, 접속시키기보다는 오히려 서버들을 요구와 관련시키는 것이 서버의 수가 처리될 요구의 수를 초과할 경우 요구를 기다리는 서버의 수를 감소시킨다. 따라서, 프로세서(12′)의 처리력 중 서버 오퍼레이션에 할당되는 부분이 최소로 유지된다.
게다가, 어떠한 주어진 시간에 요구를 서버에 전송할 수도 있는 것보다 더 많은 접속이 확립되고 유지될 수 있다. 그러나, 더 중요한 것은, 어떠한 단일 클라이언트로부터의 일련의 요구(a sequence of requests)의 동시 처리가 추가 접속을 확립하는데 부담 없이 제공되며, 동시에 (요구된 작업을 포함하는 서비스와 관련된 트랜잭션 매니저의 이용가능성만이 포트매퍼에 의해 필수적으로 모니터되기 때문에) 등록의 복잡성이 감소된 상태로 적시의 방식으로(in a timely fashion) 모든 클라이언트 요구에 대한 요구 처리를 공평하게 제공하기 위한 메카니즘이 제공되어 서비스는 각각의 클라이언트에 대해 최적화된다는 점이다. 따라서, 본 발명에 의해 달성되는 가치 있는 기능은, 직접 인입되는 요구들을 여러 실행 서버로 보내고 접속시에 클라이언트와 서버의 단단한 구속에 의해 여전히 제한될 접속 매니저의 추가에 의해 달성될 수 있는 것과는 많이 다르고 그보다 훨씬 더 포괄적이며 유익하다.
본 발명의 동작에 대한 특정 설명을 위에서 제공하였으나, 본 발명의 양호한 동작은 다음의 의사 코드로 구체화된다.
상기 의사 코드는 제4,5 및 6의 플로우챠트에서 설명된 처리를 구체화한다. 그러나, 제4,5,6도에서 설명된 방법론은 양호한 방법론을 대표하는 것으로서, 본 발명의 양호한 기능이 달성될 수 있는 방법을 이해할 수 있도록 의도된 것이며, 다음의 논의의 견지에서 그 위에 많은 변형이 본 기술 분야의 기술자에게는 명백할 것임을 이해해야 한다. 더 나아가, 설명된 방법론은 본 발명과 그 기능의 이해를 전하기 위하여 단순화된 것이며, 이 설명에서는 특정 프로그래밍 언어로 기록된 프로그램에서 구현되는 바와 같은 이 방법론을 구현한 프로그램 또는 그의 어떠한 변형의 실행 또는 프로그래밍의 상대적 효율에 대해서는 고려하지 않았음을 이해해야 한다. 예를 들면, 처리 효율의 관점에서는 요구 그 자체 대신 요구 큐에 소켓 핸들을 배치하는 것이 바람직한 반면, 이러한 방식으로의 소켓 핸들의 사용은 본 발명의 완전한 특징이며, 본 발명의 실시에 필수적이지 않고, 그 동작의 원리에 중요하지도 않다. 이 설명에서는, 설명된 모든 처리 사이에 어느 정도 지연이 있을 것이며, 요구의 상태가 어떠한 설명된 실행 단계 사이에서 변경될 수도 있음을 이해해야 한다. 제4-6도에 대한 다음의 설명은 또한 상기 의사 코드상에 관한 추가의 주석을 제공하는 것으로 간주되어야 한다.
제4도에서, 본 방법에 따른 처리는 에러 회복을 위해 유용할 수도 있는 로깅(logging) 오포레이션 개시를 포함할 수 있지만 반드시 그럴 필요는 없는 XMAN(110)의 초기화와 함께 시작한다. 초기 최소 수의 서버의 시동은 “서버 최소치(server min)”의 설정값(302)에 따라 시작될 것이다(제3도). 이러한 오퍼레이션은 “초기화(initialize)” 단계(405)에 포함되는 것으로 간주된다. 이러한 처리에 상당한 양의 시간이 걸리므로, 이용가능한 서버의 수는 0으로 설정되며, 이 값은 각각의 서버 시동 오퍼레이션이 완료될 때 증가될 것이다. 또한, 큐 크기 또는 길이 변수는 0으로 설정되며, 제5도와 관련하여 논의되는 바와 같이, 포트매퍼(16′, 18′)로 XMAN(110)의 등록을 실행하는데 편리하며 선 RPC와 같은 현존하는 RPC 설비와의 호환성을 위한 다른 변수 “초기치(init)”는 마찬가지로 단계(410)에서 0으로 설정된다.
XMAN(110)은 잠재적(XMAN으로의 접속이 이루어지지 않았기 때문에) 클라이언트 또는 서버로부터 올 수도 있는 요구를 단계(415)에서 기다린다. 짧은 시간내에 수신될 수도 있는 요구의 수에 근거하여 분기 기능(Branching function)(420)은 접속의 수용에 대해 우선 순위를 부여하는 순서로 요구들을 서비스하기 위해 다수의 서로 다른 루프를 통해 처리를 제어하고, 유사한 형태의 요구에 대해 클라이언트와 서버 사이의 우선 순위를 확립하여, 요구의 수용에 대해 우선 순위를 부여하고, 요구를 서버에 할당하기 전에 요구 사이에 순서를 확립하는데 편리한 것으로 간주된다. 따라서, 처리는 모든 인입 요구가 요구 큐에 배치되었을 때에만(요구=0) C2로 분기할 것이다.
요구가 수신될 때 요구 변수는 증가되어, 요구의 수가 0을 초과하게 되고 요구는 이 요구가 (예를 들면, 접속, 작업 또는 차단을 위한) 클라이언트 요구인가 또는 (예를 들면, 등록을 위한) 서버 요구인가를 결정하기 위해 검사된다. 요구가 잠재 클라이언트로부터의 것이면, 제1요구는 클라이언트 접속을 위한 것일 것이며, 단계(425)에서 검출되어 단계(430)에서 실행된다(예를 들면, 수용된다). 따라서, 요구의 수는 단계(435)에서 감소되고, 프로세스는 단계(420)로 복귀하여, 서버로의 요구의 할당을 위해 및/또는 서버의 시동 또는 저지(요구=0일 경우)와 같은 다른 처리를 위해 C2로 분기하거나 또는 단계(420)에서 또 다른 요구를 수용(요구>0일 경우)한다.
요구가 클라이언트 접속을 위한 것이 아닐 경우, 본 발명의 프로세스는 그 요구가 서버 시동 오퍼레이션의 일부로서 발생하는 서버 접속 요구인지를 단계(440)에서 검사하며, 만약 그러하다면, 클라이언트 접속 요구와 동일한 방식으로 단계(430)에서 접속이 수용된다. 분기 오퍼레이션(425,430)의 순서는 실제로 임의적이나, 서버 접속이 내부 처리 능력에 영향을 미치기 때문에 그리고 클라이언트 접속 요구에 대한 응답이 일반적으로 훨씬 더 많고 사용자 편의에 영향을 미치는 동안 추가의 서버 접속이 서버에 요구를 할당하기 전에 수용되는 것이 중요하기 때문에 클라이언트 접속의 우선 순위가 다소 앞선다.
서버 시동 과정의 최종 부분으로서, 등록을 위한 서버 요구가 발행될 것이며, 그러한 요구는 아래에 설명될 제5도의 등록 처리와 C1로의 분기를 유발시키는 단계(445)에서 검출된다. 그렇지 않을 경우 (예를 들면, 작업을 위한 또는 차단을 위한) 클라이언트 요구는 단계(450)에서 검출될 것이며, 요구는 요구 큐에 배치될 것이며, 큐 크기 또는 길이 변수는 단계(460)에서 증가되고; A1 및 단계(435)로 형성된 루프를 통하여 부가의 처리를 위한 단계(420)로 복귀한다. 본 발명이 관리 요구의 처리없이 실행될 수 있는 한, 그러한 능력은 본 발명이 구현되는 시스템의 유연성과 능력을 상당히 신장시킨다. 관리 요구는 클라이언트로부터나 또는 서버 프로세서 내에서부터(예를 들면, 인터럽트나 또는 서버 프로세서 관리를 위하여) 수신될 수도 있다. 다른 관리 명령들은 서버 프로세서가 이용되는 운영 시스템이 아닌 운영 시스템과 호환성 있는 서비스를 시동 또는 정지하기 위해, 네트워크에 접속된 다른 프로세서 상의 서버 또는 서버 상태를 제공하도록 미러링(mirroring)하기 위해, 또는 문의를 어카운팅/로깅(accounting/logging)하기 위해서와 같이 클라이언트로부터의 추가 형태의 명령을 처리하기 위하여 제공되는 관리 인터페이스로부터 제공될 수도 있다. 분기 오퍼레이션(425,440,445,450)은 클라이언트/서버 관계와의 어떠한 관련으로 이루어진 모든 형태의 요구를 각각 검출하며, 단계(450)에서 클라이언트 요구를 검출하지 못하면 단계(470)에서 관리 요구를 처리하도록 분기가 발생되므로써, 후속 처리를 위한 클라이언트 요구의 수용 및 오더링(ordering) 보다 앞서지 않으나 클라이언트 요구의 실제 처리보다 앞선 우선 순위가 제공된다.
분기 오퍼레이션(445)으로 돌아가서, 서버 요구가 서버의 시동의 나중 단계 또는 서버의 시동의 완료시에 발생되는 것으로 위에서 설명되었다. 또한, (개별 서버 보다는 오히려) XMAN(110)이 서버가 클라이언트에게 서비스를 제공하기 위하여 실행될 때 포드매퍼(16′, 18′)에 의해 등록되어야만 하는 것으로 위에서 설명되었다. 또한, 변수 “초기치(init)”가 0으로 설정된 것은 XMAN 초기화 절차와 관련하여 위에서 설명되었다. 이하, XMAN의 등록에 대하여 제5도를 참조하여 설명하겠다.
특히, 서버(예를 들면, 서버 최소치(min)에 의해 상술된 상기 수효의 서버중 하나)가 시동되었고 클라이언트 요구를 서비스할 수 있을 때 (선 RPC에서 처럼 개별 서버가 아닌) XMAN이 포트매퍼(16′,18′)에 의해 등록될 필요가 있다. 일단 XMAN이 포트매퍼에 의해 등록되면, 부가의 등록이 불필요하고, 만약 부가의 등록이 이루어지면, 처리의 불명료성과 비효율성을 초래할 수 있다. 그럼에도 불구하고, 특정 서비스를 제공하는 모든 서버가 동일한 애플리케이션임을 상기하면, 완료시의 서버 시동 처리는 등록을 위한 요구를 발행할 것이다. 제5도의 처리는 서버에 의한 등록을 위한 초기 요구시에 단 한 번 XMAN의 등록을 제공하며, 그 후(예를 들면, 추가의 서버들이 요구 큐 길이에 응답하여 시동될 때 발생된) 부가의 그러한 요구를 인터럽트하는 작용을 한다. 이것은 특정 순서로 시동되어야만 하고 개별적으로 기억 및 억세스 되어야만 하며 애플리케이션들이 유지되고 갱신될 때 제공되는 서비스에서의 차이를 잠재적으로 포함할 수도 있는, 분리되고 약간씩 서로 다른 서버 애플리케이션들을 제공하는데 상당히 바람직하다.
등록을 위한 서버 요구의 검출은 분기 어퍼레이션(445)에서 검출되며, 제5도의 C1로 분기하게 만든다[예를 들어, 단계(306)에서 유지된]. 이용가능한 서버의 수를 나타내는 변수가 증가되어 다른 서버가 이미 시동되어 있어서 이용할 수 있음을 나타낸다. 서버 요구가 등록을 위한 것이면, 단계(510)에서 검출된 바와 같이, “초기치(init)” 변수는 단계(515)에서 평가된다. 초기치(init)가 0이면, 이것은 1로 설정되고, XMAN은 포트매퍼에 의해 등록된다. 초기치(init)가 이미 1과 동일하면, XMAN은 사전에 등록된 것이며, 제5도의 처리는 제4도의 A1(435 및 420)으로 진행된다. 작업 또는 에러 회복 인터럽트의 입력을 제어하기 위한 것과 같이, 시동시 서버 요구가 등록을 위한 것이 아닐 경우 A1으로의 유사한 분기가 단계(510)에서 제공된다.
선택적으로, 본 발명의 원리를 이해하는데 무관하거나 또는 그 실시에 필요하지 않기는 하겠지만, A1로 복귀하기 전에 동일한 분기 오퍼레이션(510)에 응답하여 단계(525)에서 다른 서버 요구들이 처리될 수도 있다. 예를 들면, (위에서 언급된 바와 같이, 관리 인터페이스에 의해 문의될 수도 있는 바와 같은) 각각의 서버에 대해 로깅 및 어카운팅 기능을 수행하고 서버_정지(server_stop) 변수와 아이들 시간의 비교를 위해 서버의 최종 이용 시간을 확보하기 위해 이러한 분기 작동(510)을 이용하는 것이 매우 유익한 것으로 밝혀졌다.
이러한 관점에서 볼 때, 이용가능성의 표시에 의해 오퍼레이션(505)에서 서버의 아이들 상태가 실행된다는 것이 주지되어야 한다. 어떤 경우에서나, 이러한 분기 오퍼레이션(510)은 클라이언트 요구를 처리할 때 서버가 만족스럽게 동작하며 클라이언트 요구를 서버에서 할당하기 전에 적시의 방식으로 서버 상태가 갱신되도록 보장하기에 충분할 정도로 다른 처리(그러나 접속 처리는 아님) 보다 앞서는 처리 우선 순위를 제공한다.
제4도의 분기 오퍼레이션(420)으로 돌아가면, 본 발명에 따른 처리는 단계(435)에서 감소되어 요구 변수가 0과 동일할 때 제6도의 C2로 분기한다. 이용가능한 서버의 수가 0 이상이고 어떠한 요구가 단계(605)에서 결정된 바와 같이 큐에서 남아있을 경우, 상기 큐에서의 다음 요구는 처리를 위해 이용가능한 서버로 통과되고 그 결과를 클라이언트에게 보고하며, 이용가능한 서버의 수와 큐 길이는 단계(610)에서 감소된다. 처리는 단계(605)로 되돌아가서, 큐가 비게 되거나 또는 모든 서버가 이들 서버로 전송된 작업을 가질 때까지 반복한다. 이러한 대안은 단계(615,625)에서 간접적으로 구별되어 있다.
XMAN이 현재 구성되어 있어서(그에 따라 큐 크기가 0이 아님) 큐 길이가 서버_시동(server_start) 변수(제6도에서 N)보다 크고 따라서 이용가능한 서버의 수가 0 또는 서버_시동 변수 이하임을 분기 오퍼레이션(615)이 결정할 경우, 실행되는 서버의 수가, 서버_최대 변수 이하이면, 다른 서버의 시동이 단계(620)에서 개시되고 이때 XMAN이 구성된다. 시간 지연은 희망할 경우 단계(615)에서 이러한 처리에 부과될 수도 있다[마찬가지로, 서버_최대(server_max) 변수에 대한 서버의 수의 검사는 희망할 경우 설명된 바와 같이 단계(620)에서 보다는 오히려 단계(615)에서 실행될 수 있다]. 서버가 시동되거나 또는 서버의 수가 서버_최대치와 동일할 경우, 분기 작동(625)은 제4도의 A0로 분기되어 처리가 계속된다. 부가의 서버의 시동이 개시되었으며, 이러한 처리는 위에서 설명된 바와 같이 서버가 성공적으로 시동되었을 때 제5도로 분기하고, 이용가능한 서버의 수를 증가시키고 또다시 순서적으로, 요구를 새롭게 시동된 서버로 통과시키기 위하여 제6도의 C2로 분기하는 것을 포함할 것이다.
다른 한편, 큐 크기 길이가 서버_시동보다 클 경우 서버는 아이들 상태에 있고 또는 더 이상의 클라이언트 요구가 수신되지 않을 경우 서버는 곧 아이들 상태로 될 것이다. 더 이상의 클라이언트 요구가 사실상 수신되면, 이들은 접속을 수용하거나, 서버 요구를 처리하거나 또는 큐에 클라이언트 요구를 배치함으로써 정식으로 처리되며, 이때 위에서 설명된 바와 같이 가능한 한 하나 또는 그 이상의 서버가 시동된다. 그렇지 않을 경우, 큐가 비게되고 작업이 완료되어 서버가 아이들 상태로 될 때 각각의 서버는 아이들 시간 값 동안 폴(poll)될 것이다. 그 값이 서버_정지(server_stop) 변수를 초과할 경우, 서버는 단계(630)에서 정지되어 서버 프로세서(12′)에서의 이용가능한 처리 용량이 최대로 되고, 제6도에서의 처리는 제4도에서의 A0으로 나아가서, 추가의 처리를 기다린다.
본 발명의 방법론이 클라이언트/서버 관계를 확립하는 선 RPC와 같은 RPC 설비의 세부 사항들과 완전히 관계가 없다는 것은 위의 설명으로부터 주지해야 한다. 특히, 이 방법론은 접속이 확립되는 방법과는 완전히 독립적이며, 접속을 확립하기 위하여 RPC 설비에서 제공되는 모든 배열이 위에서 설명된 것과 동일한 방식으로 수용될 수 있다. 요구되는 모든 것은 잠재 클라이언트로부터의 서비스에 대한 요구에 응답하여 포트매퍼로부터 특정 서버 어드레스가 아닌 XMAN 어드레스를 복귀시키는 것과 같이 XMAN에 대응하는 서비스가 제공할 수 있는 요구된 작업과 관련하여 [제5도에 도시되어 있고 상기 의사 코드에 포함된 프로세스_서버_요구 루틴에 의해 포트매퍼(16′,18′)에 제공된] XMAN 어드레스를 제공하는 것이다. 더 나아가, 특정 서버로부터 접속 해제 처리는 요구가 큐되도록 허용하며 서버로 하여금 요구가 수신되는 순서로 요구된 작업에 할당되도록 허용하므로써, 결국 훨씬 많은 클라이언트 접속이 유지되도록 추가로 허용되는 동안 서비스가 적시에 이루어지고 클라이언트들에게 서비스가 매우 공평한 할당이 이루어진다.
또한, 위에서 주목한 바와 같이, 접속의 확립은 서버로부터 완전히 결합 해제되고[예를 들면, 단계(425,440,445,450)에서의 루프에 의해(후자는 A1을 통해)], 모든 통신 프로토콜, 서로 다른 운영 시스템의 수용, 로깅 서비스, 허가 파일, 관리 인터페이스, 및 클라이언트의 서버 사이의 호환성의 다른 문제들은 확립된 접속을 통해 네트워크 통신의 사건으로서 공지의 방식으로 수용될 수 있다. 따라서, 서버는 이러한 문제들 중 어떤 것도 수용할 필요가 없으며, 본 발명은 따라서 어떤 운영시스템 및 통신 배열에 응용할 수 있도록 만들어져 있다. 위의 사실로 비추어 볼 때, 본 발명은 통신 부담의 증가 없이 단일 클라이언트를 위한 동시 서버를 위한 지원을 제공하여 모든 요구하는 클라이언트에게 자원을 공평하게 할당하고 적시에 서비스를 제공한다. 더 나아가, 언제나 유지될 수 있는 클라이언트/서버 접속의 수는 훨씬 증가되고 제공될 수 있는 서버의 수에 의해 제한되지 않으며, 클라이언트로부터 현재 요구된 모든 작업의 완료시에 접속을 해제하고 부가의 요구가 있을 때 접속을 재확립하는데 필요한 처리 부담이 감소된다.
본 발명이 단일의 양호한 실시예를 들어서 설명되었을지라도, 본 기술 분야에서 숙련된 자이면 첨부된 청구 범위의 진의 및 범위 내에서 본 발명을 수정할 수 있을 것이다.
Claims (15)
- 제1데이터 프로세서 상의 원격 절차 호출 클라이언트로부터의 원격 절차 호출(remote procedure call)을 제2데이터 프로세서 상에서 동작하는 서버에 의하여 실행하는 방법-상기 제2데이터 프로세서는 원격 절차 호출 트랜잭션 매니저를 포함함-에 있어서, 원격 절차 호출에 상응하는 서비스를 제공하는 애플리케이션을 상기 제2데이터 프로세서 상에 로드하고 초기화함으로써 원격 절차 호출과 무관하게 서버를 시동하는 단계, 상기 원격 절차 호출 클라이언트와 상기 트랜잭션 매니저 내의 접속 핸들(connection handle)간의 접속을 확립하는 단계, 상기 접속을 통하여 원격 절차 호출의 표현(representation)을 상기 트랜잭션 매니저에서 수신하는 단계, 상기 원격 절차 호출 및 상기 접속 핸들을 수신 순서대로 그리고 상기 접속을 확립하는 단계와 무관하게 상기 트랜잭션 매니저로부터 이용 가능한 서버로 전송하는 단계, 및 상기 원격 절차 호출의 결과를 상기 접속 핸들에 따라서 상기 클라이언트에 통신하고 상기 접속 핸들을 상기 트랜잭션 매니저에 리턴시키도록 상기 서버를 제어하는 단계를 포함하는 원격 절차 호출 실행 방법.
- 제1항에 있어서, 서버의 할당을 기다리는 요구의 수가 설정값(configuration value)을 초과할 때 상기 제2데이터 프로세서에서 또 다른 서버를 시동하는 단계를 더 포함하는 원격 절차 호출 실행 방법.
- 제2항에 있어서, 아이들 서버(idle server)에 대응하는 상기 애플리케이션을 상기 제2데이터 프로세서로부터 언로드(unloading)함으로써 일정 시간 지연 후에 상기 제2데이터 프로세서에서 상기 아이들 서버를 정지시키는 단계를 더 포함하는 원격 절차 호출 실행 방법.
- 제3항에 있어서, 상기 시간 지연은 서버를 시동하는 데 필요한 시간의 양에 따라 설정되는 원격 절차 호출 실행 방법.
- 제2항에 있어서, 원격 절차 호출의 표현을 큐(queue)에 배치하는 단계를 더 포함하는 원격 절차 호출 실행 방법.
- 제5항에 있어서, 상기 원격 절차 호출의 표현은 소켓 핸들(socket handle)인 원격 절차 호출 실행 방법.
- 제2항에 있어서, 원격 절차 호출을 큐에 배치하는 단계를 더 포함하는 원격 절차 호출 실행 방법.
- 제1항에 있어서, 서버 트랜잭션들을 로깅(logging)하는 단계를 더 포함하는 원격 절차 호출 실행 방법.
- 제1항에 있어서, 서버에 의한 클라이언트 요구의 처리 완료를 시간 스탬핑(time stamping)하는 단계를 더 포함하는 원격 절차 호출 실행 방법.
- 제1항에 있어서, 관리 명령(administrative command)을 처리하는 단계를 더 포함하는 원격 절차 호출 실행 방법.
- 제1데이터 프로세서에서의 원격 절차 호출 클라이언트 및 제2데이터 프로세서에서의 자원을 포함하는 데이터 처리 네트워크용 트랙잭션 매너저에 있어서, 원격 절차 호출과 무관하게 상기 제2데이터 프로세서 상에 원격 절차 호출에 대응하는 서비스를 제공하는 애플리케이션을 로드함으로써 상기 제2데이터 프로세서 상에 상기 서비스를 제공하는 서버를 시동하는 수단, 접속 핸들을 포함하고, 상기 서버와 무관하게 상기 원격 절차 호출 클라이언트와 상기 접속 핸들간의 접속을 확립하는 수단, 상기 접속을 통하여 원격 절차 호출의 표현을 수신하는 수단, 및 상기 접속 핸들을 포함하는 상기 원격 절차 호출을 수신 순서대로 그리고 상기 접속을 확립하는 수단과 무관하게 이용 가능한 서버에 전송하는 수단을 포함함으로써, 상기 서버가 상기 원격 절차 호출의 결과를 상기 접속 핸들에 따라서 상기 원격 절차 호출 클라이언트에 통신하고 상기 접속 핸들을 상기 트랜잭션 매니저에 리턴할 수 있게 되어 있는 데이터 처리 네트워크용 트랙잭션 매니저.
- 제11항에 있어서, 서버의 할당을 기다리는 요구의 수가 설정값을 초과할 때 상기 데이터 프로세서에서 추가의 서버를 시동하는 수단을 더 포함하는 데이터 처리 네트워크용 트랙잭션 매니저.
- 제12항에 있어서, 아이들 서버에 대응하는 상기 애플리케이션을 상기 제2데이터 프로세서로부터 언로드함으로써 일정 시간 지연 후에 상기 제2데이터 프로세서에서 상기 아이들 서버를 정지시키는 수단을 더 포함하는 데이터 처리 네트워크용 트랙잭션 매니저.
- 제13항에 있어서, 상기 시간 지연은 설정가능한 파라미터(configurable parameter)를 저장하는 수단을 포함하는 데이터 처리 네트워크용 트랙잭션 매니저.
- 제14항에 있어서, 상기 설정가능한 파라미터는 서버를 시동하는 데 필요한 시간 양에 따라 설정되는 데이터 처리 네트워크용 트랙잭션 매니저.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/610,943 | 1996-03-05 | ||
US08/610,943 US5761507A (en) | 1996-03-05 | 1996-03-05 | Client/server architecture supporting concurrent servers within a server with a transaction manager providing server/connection decoupling |
US8/610,943 | 1996-03-05 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR970068309A KR970068309A (ko) | 1997-10-13 |
KR100237984B1 true KR100237984B1 (ko) | 2000-01-15 |
Family
ID=24447022
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019960065707A KR100237984B1 (ko) | 1996-03-05 | 1996-12-14 | 원격 절차 호출 실행 방법 및 트랜잭션 매니저 |
Country Status (5)
Country | Link |
---|---|
US (1) | US5761507A (ko) |
EP (1) | EP0794491B1 (ko) |
JP (1) | JP3364575B2 (ko) |
KR (1) | KR100237984B1 (ko) |
DE (1) | DE69728601T2 (ko) |
Families Citing this family (247)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6950991B2 (en) * | 1995-11-13 | 2005-09-27 | Citrix Systems, Inc. | Interacting with software applications displayed in a web page |
US7555529B2 (en) | 1995-11-13 | 2009-06-30 | Citrix Systems, Inc. | Interacting with software applications displayed in a web page |
US6088515A (en) | 1995-11-13 | 2000-07-11 | Citrix Systems Inc | Method and apparatus for making a hypermedium interactive |
US6437803B1 (en) | 1998-05-29 | 2002-08-20 | Citrix Systems, Inc. | System and method for combining local and remote windows into a single desktop environment |
US6370552B1 (en) | 1997-05-14 | 2002-04-09 | Citrix Systems, Inc. | Apparatus and method for displaying application output in an HTML document |
US6128657A (en) * | 1996-02-14 | 2000-10-03 | Fujitsu Limited | Load sharing system |
US6138238A (en) | 1997-12-11 | 2000-10-24 | Sun Microsystems, Inc. | Stack-based access control using code and executor identifiers |
US6185611B1 (en) | 1998-03-20 | 2001-02-06 | Sun Microsystem, Inc. | Dynamic lookup service in a distributed system |
US6466947B2 (en) * | 1998-03-20 | 2002-10-15 | Sun Microsystems, Inc. | Apparatus and method for dynamically verifying information in a distributed system |
US6393497B1 (en) | 1998-03-20 | 2002-05-21 | Sun Microsystems, Inc. | Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system |
US6006266A (en) | 1996-06-03 | 1999-12-21 | International Business Machines Corporation | Multiplexing of clients and applications among multiple servers |
US5864669A (en) * | 1996-07-11 | 1999-01-26 | Microsoft Corporation | Method and system for accessing a particular instantiation of a server process |
US7181525B1 (en) | 1996-08-05 | 2007-02-20 | Computer Associates Think, Inc. | Dynamic method for connecting a client to a server application |
US6073177A (en) * | 1997-08-05 | 2000-06-06 | Sterling Software, Inc. | Dynamic method for connecting a client to a server application |
US5832529A (en) | 1996-10-11 | 1998-11-03 | Sun Microsystems, Inc. | Methods, apparatus, and product for distributed garbage collection |
US5946498A (en) * | 1996-11-12 | 1999-08-31 | International Business Machines Corporation | Delivery of client remote procedure calls to a server via a request queue utilizing priority and time-out |
US6732141B2 (en) | 1996-11-29 | 2004-05-04 | Frampton Erroll Ellis | Commercial distributed processing by personal computers over the internet |
US7024449B1 (en) * | 1996-11-29 | 2006-04-04 | Ellis Iii Frampton E | Global network computers |
US7926097B2 (en) * | 1996-11-29 | 2011-04-12 | Ellis Iii Frampton E | Computer or microchip protected from the internet by internal hardware |
US7506020B2 (en) * | 1996-11-29 | 2009-03-17 | Frampton E Ellis | Global network computers |
US6725250B1 (en) | 1996-11-29 | 2004-04-20 | Ellis, Iii Frampton E. | Global network computers |
US7634529B2 (en) * | 1996-11-29 | 2009-12-15 | Ellis Iii Frampton E | Personal and server computers having microchips with multiple processing units and internal firewalls |
US6167428A (en) * | 1996-11-29 | 2000-12-26 | Ellis; Frampton E. | Personal computer microprocessor firewalls for internet distributed processing |
US8225003B2 (en) | 1996-11-29 | 2012-07-17 | Ellis Iii Frampton E | Computers and microchips with a portion protected by an internal hardware firewall |
US20050180095A1 (en) * | 1996-11-29 | 2005-08-18 | Ellis Frampton E. | Global network computers |
US7805756B2 (en) * | 1996-11-29 | 2010-09-28 | Frampton E Ellis | Microchips with inner firewalls, faraday cages, and/or photovoltaic cells |
US7035906B1 (en) | 1996-11-29 | 2006-04-25 | Ellis Iii Frampton E | Global network computers |
US8312529B2 (en) | 1996-11-29 | 2012-11-13 | Ellis Frampton E | Global network computers |
GB2320112B (en) * | 1996-12-07 | 2001-07-25 | Ibm | High-availability computer server system |
US6026404A (en) * | 1997-02-03 | 2000-02-15 | Oracle Corporation | Method and system for executing and operation in a distributed environment |
US6845505B1 (en) * | 1997-02-03 | 2005-01-18 | Oracle International Corporation | Web request broker controlling multiple processes |
US6710786B1 (en) | 1997-02-03 | 2004-03-23 | Oracle International Corporation | Method and apparatus for incorporating state information into a URL |
US6067580A (en) * | 1997-03-11 | 2000-05-23 | International Business Machines Corporation | Integrating distributed computing environment remote procedure calls with an advisory work load manager |
CA2202572C (en) * | 1997-04-14 | 2004-02-10 | Ka Lun Eddie Law | A scaleable web server and method of efficiently managing multiple servers |
US5964832A (en) * | 1997-04-18 | 1999-10-12 | Intel Corporation | Using networked remote computers to execute computer processing tasks at a predetermined time |
US6098067A (en) * | 1997-05-02 | 2000-08-01 | Kabushiki Kaisha Toshiba | Remote computer management system |
US5941949A (en) | 1997-05-14 | 1999-08-24 | Citrix Systems, Inc. | System and method for transmitting data from a server application to more than one client node |
US5961586A (en) * | 1997-05-14 | 1999-10-05 | Citrix Systems, Inc. | System and method for remotely executing an interpretive language application |
US6157944A (en) * | 1997-05-14 | 2000-12-05 | Citrix Systems, Inc. | System and method for replicating a client/server data exchange to additional client notes connecting to the server |
JPH10334064A (ja) * | 1997-05-27 | 1998-12-18 | Shikoku Nippon Denki Software Kk | 負荷分散方式 |
US6411805B1 (en) | 1997-06-05 | 2002-06-25 | Mci Communications Corporation | System and method for a network-based call continuation service |
US6675195B1 (en) * | 1997-06-11 | 2004-01-06 | Oracle International Corporation | Method and apparatus for reducing inefficiencies caused by sending multiple commands to a server |
US6243751B1 (en) * | 1997-06-11 | 2001-06-05 | Oracle Corporation | Method and apparatus for coupling clients to servers |
US6088728A (en) * | 1997-06-11 | 2000-07-11 | Oracle Corporation | System using session data stored in session data storage for associating and disassociating user identifiers for switching client sessions in a server |
JPH1157215A (ja) * | 1997-08-20 | 1999-03-02 | Fuji Xerox Co Ltd | ネットワークゲームシステム、ネットワークゲームサーバ装置、ネットワークゲームクライアント装置、対局者選定プログラムを記録した媒体及び対局者情報取得プログラムを記録した媒体 |
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 |
US6360279B1 (en) * | 1997-10-14 | 2002-03-19 | Bea Systems, Inc. | True parallel client server system and method |
GB2330923A (en) * | 1997-10-28 | 1999-05-05 | Ibm | Transaction manager |
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 |
US6493447B1 (en) | 1997-11-21 | 2002-12-10 | Mci Communications Corporation | Contact server for call center for syncronizing simultaneous telephone calls and TCP/IP communications |
US6360262B1 (en) * | 1997-11-24 | 2002-03-19 | International Business Machines Corporation | Mapping web server objects to TCP/IP ports |
US6324584B1 (en) * | 1997-11-26 | 2001-11-27 | International Business Machines Corp. | Method for intelligent internet router and system |
GB2333379A (en) * | 1998-01-16 | 1999-07-21 | Ibm | Client/server computing |
US7054935B2 (en) * | 1998-02-10 | 2006-05-30 | Savvis Communications Corporation | Internet content delivery network |
US7949779B2 (en) | 1998-02-10 | 2011-05-24 | Level 3 Communications, Llc | Controlling subscriber information rates in a content delivery network |
US6185598B1 (en) | 1998-02-10 | 2001-02-06 | Digital Island, Inc. | Optimized network resource location |
GB2334353B (en) * | 1998-02-12 | 2002-08-07 | Ibm | An apparatus,method and computer program product for client/server computing with the ability to select which servers are capable of creating transaction stat |
CN1298503A (zh) * | 1998-02-26 | 2001-06-06 | 太阳微系统公司 | 分布式系统中的动态查找服务 |
CN1292115A (zh) | 1998-02-26 | 2001-04-18 | 太阳微系统公司 | 分布系统中动态验证信息的装置和方法 |
US6272546B1 (en) | 1998-03-12 | 2001-08-07 | Sony Corporation | Method of and apparatus for managing resource allocation and bandwidth overflow in a cooperative, distributed computing environment |
US20020046228A1 (en) * | 1998-03-20 | 2002-04-18 | Sun Microsystems, Inc. | Method and system for facilitating access to a lookup service |
US6446206B1 (en) | 1998-04-01 | 2002-09-03 | Microsoft Corporation | Method and system for access control of a message queue |
US6529932B1 (en) | 1998-04-01 | 2003-03-04 | Microsoft Corporation | Method and system for distributed transaction processing with asynchronous message delivery |
US6205498B1 (en) | 1998-04-01 | 2001-03-20 | Microsoft Corporation | Method and system for message transfer session management |
GB2336449A (en) * | 1998-04-14 | 1999-10-20 | Ibm | A server selection method in an asynchronous client-server computer system |
DE19822543A1 (de) * | 1998-05-20 | 1999-11-25 | Alcatel Sa | Verfahren zum Zuteilen von Aufträgen, Datenverarbeitssystem, Client-Datenbearbeitungsknoten und computerlesbares Speichermedium |
US6813777B1 (en) * | 1998-05-26 | 2004-11-02 | Rockwell Collins | Transaction dispatcher for a passenger entertainment system, method and article of manufacture |
US7581006B1 (en) | 1998-05-29 | 2009-08-25 | Yahoo! Inc. | Web service |
US6279001B1 (en) | 1998-05-29 | 2001-08-21 | Webspective Software, Inc. | Web service |
US6976093B2 (en) | 1998-05-29 | 2005-12-13 | Yahoo! Inc. | Web server content replication |
US7035943B2 (en) | 1998-05-29 | 2006-04-25 | Yahoo! Inc. | Web server content replication |
US6317786B1 (en) | 1998-05-29 | 2001-11-13 | Webspective Software, Inc. | Web service |
US6314463B1 (en) * | 1998-05-29 | 2001-11-06 | Webspective Software, Inc. | Method and system for measuring queue length and delay |
US7143193B1 (en) | 1998-05-29 | 2006-11-28 | Yahoo! Inc. | Content collection |
US6636900B2 (en) * | 1998-06-29 | 2003-10-21 | Sun Microsystems, Inc. | Method and apparatus for executing distributed objects over a network |
US6275912B1 (en) | 1998-06-30 | 2001-08-14 | Microsoft Corporation | Method and system for storing data items to a storage device |
US6256634B1 (en) | 1998-06-30 | 2001-07-03 | Microsoft Corporation | Method and system for purging tombstones for deleted data items in a replicated database |
US6848108B1 (en) * | 1998-06-30 | 2005-01-25 | Microsoft Corporation | Method and apparatus for creating, sending, and using self-descriptive objects as messages over a message queuing network |
US6202089B1 (en) * | 1998-06-30 | 2001-03-13 | Microsoft Corporation | Method for configuring at runtime, identifying and using a plurality of remote procedure call endpoints on a single server process |
US6108703A (en) * | 1998-07-14 | 2000-08-22 | Massachusetts Institute Of Technology | Global hosting system |
US6370583B1 (en) * | 1998-08-17 | 2002-04-09 | Compaq Information Technologies Group, L.P. | Method and apparatus for portraying a cluster of computer systems as having a single internet protocol image |
US6119160A (en) * | 1998-10-13 | 2000-09-12 | Cisco Technology, Inc. | Multiple-level internet protocol accounting |
US6311205B1 (en) * | 1998-10-19 | 2001-10-30 | International Business Machines Corporation | Persistent user groups on servers managed by central servers |
US6195682B1 (en) | 1998-10-27 | 2001-02-27 | International Business Machines Corporation | Concurrent server and method of operation having client-server affinity using exchanged client and server keys |
US7107591B1 (en) * | 1998-11-05 | 2006-09-12 | Hewlett-Packard Development Company, L.P. | Task-specific flexible binding in a software system |
JP3223355B2 (ja) * | 1998-11-12 | 2001-10-29 | 株式会社エヌ・ティ・ティ・ドコモ | 通信制御方法、通信制御装置、記録媒体およびデータ端末 |
US9239763B2 (en) | 2012-09-28 | 2016-01-19 | Oracle International Corporation | Container database |
US7075895B1 (en) * | 1998-12-04 | 2006-07-11 | Sun Microsystems, Inc. | System and method for facilitating discovery of network addresses and selected charateristics of computer systems and the like which are connected in digital data networks |
US6928469B1 (en) * | 1998-12-29 | 2005-08-09 | Citrix Systems, Inc. | Apparatus and method for determining a program neighborhood for a client node in a client-server network using markup language techniques |
ATE414942T1 (de) * | 1999-02-26 | 2008-12-15 | Henry Haugland | Massenerzeugung individualer virtueller servern, vertueller webseiten sowie virtueller webobjekten |
US6920475B1 (en) * | 1999-04-23 | 2005-07-19 | Oracle International Corporation | Communication architecture for distributed computing environment |
US6275470B1 (en) | 1999-06-18 | 2001-08-14 | Digital Island, Inc. | On-demand overlay routing for computer-based communication networks |
US6983350B1 (en) | 1999-08-31 | 2006-01-03 | Intel Corporation | SDRAM controller for parallel processor architecture |
US6668317B1 (en) * | 1999-08-31 | 2003-12-23 | Intel Corporation | Microengine for parallel processor architecture |
US6427196B1 (en) * | 1999-08-31 | 2002-07-30 | Intel Corporation | SRAM controller for parallel processor architecture including address and command queue and arbiter |
WO2001016702A1 (en) | 1999-09-01 | 2001-03-08 | Intel Corporation | Register set used in multithreaded parallel processor architecture |
US7191309B1 (en) | 1999-09-01 | 2007-03-13 | Intel Corporation | Double shift instruction for micro engine used in multithreaded parallel processor architecture |
US6754714B1 (en) | 1999-10-05 | 2004-06-22 | Cisco Technology, Inc. | Multilink point-to-point protocol network access server channel allocation method and apparatus |
US6874028B1 (en) * | 1999-10-25 | 2005-03-29 | Microsoft Corporation | System and method for unified registration information collection |
US8543901B1 (en) | 1999-11-01 | 2013-09-24 | Level 3 Communications, Llc | Verification of content stored in a network |
US6928477B1 (en) * | 1999-11-18 | 2005-08-09 | International Business Machines Corporation | Availability and scalability in clustered application servers by transmitting expected loads of clients to load balancer |
US6718330B1 (en) | 1999-12-16 | 2004-04-06 | Ncr Corporation | Predictive internet automatic work distributor (Pre-IAWD) and proactive internet automatic work distributor (Pro-IAWD) |
US6532509B1 (en) | 1999-12-22 | 2003-03-11 | Intel Corporation | Arbitrating command requests in a parallel multi-threaded processing system |
US6694380B1 (en) | 1999-12-27 | 2004-02-17 | Intel Corporation | Mapping requests from a processing unit that uses memory-mapped input-output space |
US6631430B1 (en) * | 1999-12-28 | 2003-10-07 | Intel Corporation | Optimizations to receive packet status from fifo bus |
US6307789B1 (en) * | 1999-12-28 | 2001-10-23 | Intel Corporation | Scratchpad memory |
US7620702B1 (en) | 1999-12-28 | 2009-11-17 | Intel Corporation | Providing real-time control data for a network processor |
US6625654B1 (en) * | 1999-12-28 | 2003-09-23 | Intel Corporation | Thread signaling in multi-threaded network processor |
US6661794B1 (en) | 1999-12-29 | 2003-12-09 | Intel Corporation | Method and apparatus for gigabit packet assignment for multithreaded packet processing |
US6952824B1 (en) | 1999-12-30 | 2005-10-04 | Intel Corporation | Multi-threaded sequenced receive for fast network port stream of packets |
US6584522B1 (en) * | 1999-12-30 | 2003-06-24 | Intel Corporation | Communication between processors |
US7480706B1 (en) | 1999-12-30 | 2009-01-20 | Intel Corporation | Multi-threaded round-robin receive for fast network port |
US6976095B1 (en) * | 1999-12-30 | 2005-12-13 | Intel Corporation | Port blocking technique for maintaining receive packet ordering for a multiple ethernet port switch |
US6631462B1 (en) * | 2000-01-05 | 2003-10-07 | Intel Corporation | Memory shared between processing threads |
US20040259774A1 (en) * | 2000-03-08 | 2004-12-23 | Enrique Alvarez | Therapeutic polypeptides, nucleic acids encoding same, and methods of use |
US8010703B2 (en) * | 2000-03-30 | 2011-08-30 | Prashtama Wireless Llc | Data conversion services and associated distributed processing system |
USRE42153E1 (en) * | 2000-03-30 | 2011-02-15 | Hubbard Edward A | Dynamic coordination and control of network connected devices for large-scale network site testing and associated architectures |
US7254607B2 (en) * | 2000-03-30 | 2007-08-07 | United Devices, Inc. | Dynamic coordination and control of network connected devices for large-scale network site testing and associated architectures |
US8024481B2 (en) | 2000-04-17 | 2011-09-20 | Circadence Corporation | System and method for reducing traffic and congestion on distributed interactive simulation networks |
US8898340B2 (en) | 2000-04-17 | 2014-11-25 | Circadence Corporation | Dynamic network link acceleration for network including wireless communication devices |
US8510468B2 (en) | 2000-04-17 | 2013-08-13 | Ciradence Corporation | Route aware network link acceleration |
US8065399B2 (en) | 2000-04-17 | 2011-11-22 | Circadence Corporation | Automated network infrastructure test and diagnostic system and method therefor |
US8195823B2 (en) | 2000-04-17 | 2012-06-05 | Circadence Corporation | Dynamic network link acceleration |
US20020002602A1 (en) | 2000-04-17 | 2002-01-03 | Mark Vange | System and method for serving a web site from multiple servers |
US20110128972A1 (en) | 2000-04-17 | 2011-06-02 | Randy Thornton | Peer to peer dynamic network link acceleration |
US8996705B2 (en) | 2000-04-17 | 2015-03-31 | Circadence Corporation | Optimization of enhanced network links |
US7092983B1 (en) * | 2000-04-19 | 2006-08-15 | Silicon Graphics, Inc. | Method and system for secure remote distributed rendering |
US7783695B1 (en) * | 2000-04-19 | 2010-08-24 | Graphics Properties Holdings, Inc. | Method and system for distributed rendering |
US7062527B1 (en) * | 2000-04-19 | 2006-06-13 | Silicon Graphics, Inc. | Management and scheduling of a distributed rendering method and system |
US6912576B1 (en) * | 2000-05-04 | 2005-06-28 | Broadcom Corporation | System and method of processing data flow in multi-channel, multi-service environment by dynamically allocating a socket |
US6789112B1 (en) | 2000-05-08 | 2004-09-07 | Citrix Systems, Inc. | Method and apparatus for administering a server having a subsystem in communication with an event channel |
US6785713B1 (en) | 2000-05-08 | 2004-08-31 | Citrix Systems, Inc. | Method and apparatus for communicating among a network of servers utilizing a transport mechanism |
US6922724B1 (en) | 2000-05-08 | 2005-07-26 | Citrix Systems, Inc. | Method and apparatus for managing server load |
US6785726B1 (en) | 2000-05-08 | 2004-08-31 | Citrix Systems, Inc. | Method and apparatus for delivering local and remote server events in a similar fashion |
US6941379B1 (en) * | 2000-05-23 | 2005-09-06 | International Business Machines Corporation | Congestion avoidance for threads in servers |
US7565651B1 (en) * | 2000-05-25 | 2009-07-21 | Oracle International Corporation | Parallel task scheduling system for computers |
JP2001345992A (ja) * | 2000-06-05 | 2001-12-14 | Murata Mach Ltd | ファクシミリ装置 |
US7200666B1 (en) * | 2000-07-07 | 2007-04-03 | International Business Machines Corporation | Live connection enhancement for data source interface |
US6910074B1 (en) * | 2000-07-24 | 2005-06-21 | Nortel Networks Limited | System and method for service session management in an IP centric distributed network |
AU7693201A (en) * | 2000-07-27 | 2002-02-13 | Bea Systems Inc | System and method for concentration and load-balancing of requests |
US6880156B1 (en) * | 2000-07-27 | 2005-04-12 | Hewlett-Packard Development Company. L.P. | Demand responsive method and apparatus to automatically activate spare servers |
US7681018B2 (en) | 2000-08-31 | 2010-03-16 | Intel Corporation | Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set |
US6804819B1 (en) | 2000-09-18 | 2004-10-12 | Hewlett-Packard Development Company, L.P. | Method, system, and computer program product for a data propagation platform and applications of same |
US7386610B1 (en) | 2000-09-18 | 2008-06-10 | Hewlett-Packard Development Company, L.P. | Internet protocol data mirroring |
US6977927B1 (en) | 2000-09-18 | 2005-12-20 | Hewlett-Packard Development Company, L.P. | Method and system of allocating storage resources in a storage area network |
US7020871B2 (en) | 2000-12-21 | 2006-03-28 | Intel Corporation | Breakpoint method for parallel hardware threads in multithreaded processor |
US7296275B2 (en) * | 2001-01-04 | 2007-11-13 | Sun Microsystems, Inc. | Method and system for passing objects in a distributed system using serialization contexts |
JP4307747B2 (ja) * | 2001-01-25 | 2009-08-05 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 接続受付システム、受付サーバ、クライアント端末、接続受付管理方法、記憶媒体、コンピュータプログラム |
US6606690B2 (en) | 2001-02-20 | 2003-08-12 | Hewlett-Packard Development Company, L.P. | System and method for accessing a storage area network as network attached storage |
US20020169680A1 (en) * | 2001-05-10 | 2002-11-14 | International Business Machines Corporation | Method and apparatus for building commercial distributed computing networks via computer cost subsidization |
US6918013B2 (en) * | 2001-07-16 | 2005-07-12 | Bea Systems, Inc. | System and method for flushing bean cache |
US7571215B2 (en) * | 2001-07-16 | 2009-08-04 | Bea Systems, Inc. | Data replication protocol |
US20030023898A1 (en) * | 2001-07-16 | 2003-01-30 | Jacobs Dean Bernard | Layered architecture for data replication |
US7337441B2 (en) * | 2001-07-17 | 2008-02-26 | Bea Systems, Inc. | System and method for prepreparing a transaction process involving a chain of servers in a circular flow |
US7315903B1 (en) * | 2001-07-20 | 2008-01-01 | Palladia Systems, Inc. | Self-configuring server and server network |
US7290059B2 (en) * | 2001-08-13 | 2007-10-30 | Intel Corporation | Apparatus and method for scalable server load balancing |
US6868476B2 (en) * | 2001-08-27 | 2005-03-15 | Intel Corporation | Software controlled content addressable memory in a general purpose execution datapath |
US20030046398A1 (en) * | 2001-08-29 | 2003-03-06 | Charles Buckley | Method and system for managing a plurality of console devices in a network |
US7028030B2 (en) | 2001-08-30 | 2006-04-11 | Bea Systems, Inc. | Cluster caching with concurrency checking |
US20030046230A1 (en) * | 2001-08-30 | 2003-03-06 | Jacobs Dean Bernard | Method for maintaining account consistency |
WO2003021464A2 (en) * | 2001-09-05 | 2003-03-13 | Rubenstein, Allen, I. | Secure remote access between peers |
US7113980B2 (en) * | 2001-09-06 | 2006-09-26 | Bea Systems, Inc. | Exactly once JMS communication |
US6826601B2 (en) * | 2001-09-06 | 2004-11-30 | Bea Systems, Inc. | Exactly one cache framework |
US20030051029A1 (en) * | 2001-09-07 | 2003-03-13 | Reedy Dennis G. | Dynamic provisioning of sevice components in a distributed system |
US7660887B2 (en) | 2001-09-07 | 2010-02-09 | Sun Microsystems, Inc. | Systems and methods for providing dynamic quality of service for a distributed system |
US7756969B1 (en) | 2001-09-07 | 2010-07-13 | Oracle America, Inc. | Dynamic provisioning of identification services in a distributed system |
US7228337B1 (en) * | 2001-09-11 | 2007-06-05 | Cisco Technology, Inc. | Methods and apparatus for providing a network service to a virtual machine |
EP1436736B1 (en) | 2001-09-28 | 2017-06-28 | Level 3 CDN International, Inc. | Configurable adaptive global traffic control and management |
US7860964B2 (en) | 2001-09-28 | 2010-12-28 | Level 3 Communications, Llc | Policy-based content delivery network selection |
US7126952B2 (en) | 2001-09-28 | 2006-10-24 | Intel Corporation | Multiprotocol decapsulation/encapsulation control structure and packet protocol conversion method |
US7373644B2 (en) | 2001-10-02 | 2008-05-13 | Level 3 Communications, Llc | Automated server replication |
US20030079027A1 (en) | 2001-10-18 | 2003-04-24 | Michael Slocombe | Content request routing and load balancing for content distribution networks |
JP2003143153A (ja) * | 2001-11-01 | 2003-05-16 | Nec Corp | サーバコンピュータ、そのコネクションクローズ方法及びプログラム |
US7158964B2 (en) * | 2001-12-12 | 2007-01-02 | Intel Corporation | Queue management |
US7107413B2 (en) | 2001-12-17 | 2006-09-12 | Intel Corporation | Write queue descriptor count instruction for high speed queuing |
US7269179B2 (en) * | 2001-12-18 | 2007-09-11 | Intel Corporation | Control mechanisms for enqueue and dequeue operations in a pipelined network processor |
US7895239B2 (en) | 2002-01-04 | 2011-02-22 | Intel Corporation | Queue arrays in network devices |
US7181573B2 (en) | 2002-01-07 | 2007-02-20 | Intel Corporation | Queue array caching in network devices |
US7181489B2 (en) * | 2002-01-10 | 2007-02-20 | International Business Machines Corporation | Method, apparatus, and program for distributing a document object model in a web server cluster |
US6934951B2 (en) | 2002-01-17 | 2005-08-23 | Intel Corporation | Parallel processor with functional pipeline providing programming engines by supporting multiple contexts and critical section |
US7181594B2 (en) * | 2002-01-25 | 2007-02-20 | Intel Corporation | Context pipelines |
US7149226B2 (en) * | 2002-02-01 | 2006-12-12 | Intel Corporation | Processing data packets |
US7930704B2 (en) * | 2002-02-06 | 2011-04-19 | Oracle International Corporation | J2EE component extension architecture |
US9167036B2 (en) | 2002-02-14 | 2015-10-20 | Level 3 Communications, Llc | Managed object replication and delivery |
CA2372092C (en) * | 2002-02-15 | 2010-04-06 | Cognos Incorporated | A queuing model for a plurality of servers |
US8135843B2 (en) * | 2002-03-22 | 2012-03-13 | Citrix Systems, Inc. | Methods and systems for providing access to an application |
US7228353B1 (en) * | 2002-03-28 | 2007-06-05 | Emc Corporation | Generating and launching remote method invocation servers for individual client applications |
US7404145B1 (en) | 2002-03-28 | 2008-07-22 | Emc Corporation | Generic mechanism for reporting on backups |
US7350149B1 (en) | 2002-03-28 | 2008-03-25 | Emc Corporation | Backup reporting framework graphical user interface |
US7571221B2 (en) * | 2002-04-03 | 2009-08-04 | Hewlett-Packard Development Company, L.P. | Installation of network services in an embedded network server |
US8819252B1 (en) | 2002-05-03 | 2014-08-26 | Foundry Networks, Llc | Transaction rate limiting |
US7707295B1 (en) * | 2002-05-03 | 2010-04-27 | Foundry Networks, Inc. | Connection rate limiting |
US8554929B1 (en) | 2002-05-03 | 2013-10-08 | Foundry Networks, Llc | Connection rate limiting for server load balancing and transparent cache switching |
US7269752B2 (en) * | 2002-06-04 | 2007-09-11 | Lucent Technologies Inc. | Dynamically controlling power consumption within a network node |
TW561740B (en) * | 2002-06-06 | 2003-11-11 | Via Tech Inc | Network connecting device and data packet transferring method |
US7471688B2 (en) | 2002-06-18 | 2008-12-30 | Intel Corporation | Scheduling system for transmission of cells to ATM virtual circuits and DSL ports |
US7165103B2 (en) * | 2002-06-26 | 2007-01-16 | Microsoft Corporation | Method and system for matching network clients and servers under matching constraints |
US7747730B1 (en) | 2002-06-28 | 2010-06-29 | Netfuel, Inc. | Managing computer network resources |
US8020162B2 (en) * | 2002-07-19 | 2011-09-13 | International Business Machines Corporation | Employing a resource broker in managing workloads of a peer-to-peer computing environment |
US7506342B2 (en) * | 2002-07-23 | 2009-03-17 | Bea Systems, Inc. | System and method for implementing J2EE connector architecture |
AU2003246497A1 (en) * | 2002-07-25 | 2004-02-16 | James D. Yee | System and method for providing computer services |
US7698434B2 (en) * | 2002-08-29 | 2010-04-13 | Bea Systems, Inc. | J2EE connector architecture |
US7352769B2 (en) | 2002-09-12 | 2008-04-01 | Intel Corporation | Multiple calendar schedule reservation structure and method |
US7433307B2 (en) | 2002-11-05 | 2008-10-07 | Intel Corporation | Flow control in a network environment |
US6941438B2 (en) * | 2003-01-10 | 2005-09-06 | Intel Corporation | Memory interleaving |
US7443836B2 (en) | 2003-06-16 | 2008-10-28 | Intel Corporation | Processing a data packet |
DE10345535B4 (de) * | 2003-09-30 | 2005-10-06 | Siemens Ag | Überprüfung der Verfügbarkeit eines Servers |
US7363369B2 (en) * | 2003-10-16 | 2008-04-22 | International Business Machines Corporation | Monitoring thread usage to dynamically control a thread pool |
US8726278B1 (en) * | 2004-07-21 | 2014-05-13 | The Mathworks, Inc. | Methods and system for registering callbacks and distributing tasks to technical computing works |
US7213099B2 (en) * | 2003-12-30 | 2007-05-01 | Intel Corporation | Method and apparatus utilizing non-uniformly distributed DRAM configurations and to detect in-range memory address matches |
JP4297792B2 (ja) * | 2004-01-08 | 2009-07-15 | 株式会社リコー | Webサーバ組み込みビジネス機器 |
CA2491274A1 (en) * | 2004-01-08 | 2005-07-08 | Lpi Level Platforms, Inc. | A method and system for secure remote access to computer systems and networks |
US7792874B1 (en) | 2004-01-30 | 2010-09-07 | Oracle America, Inc. | Dynamic provisioning for filtering and consolidating events |
US7739418B2 (en) * | 2004-04-12 | 2010-06-15 | Hewlett-Packard Development Company, L.P. | Resource management system |
US7689998B1 (en) * | 2004-07-13 | 2010-03-30 | Microsoft Corporation | Systems and methods that manage processing resources |
US7908313B2 (en) * | 2004-07-21 | 2011-03-15 | The Mathworks, Inc. | Instrument-based distributed computing systems |
US7502824B2 (en) * | 2004-08-12 | 2009-03-10 | Oracle International Corporation | Database shutdown with session migration |
US7415470B2 (en) * | 2004-08-12 | 2008-08-19 | Oracle International Corporation | Capturing and re-creating the state of a queue when migrating a session |
DE102004062116B3 (de) * | 2004-12-23 | 2006-05-11 | Ab Skf | Lageranordnung für einen Computertomographen |
US9176772B2 (en) * | 2005-02-11 | 2015-11-03 | Oracle International Corporation | Suspending and resuming of sessions |
US9183347B1 (en) * | 2005-02-17 | 2015-11-10 | The Mathworks, Inc. | Methods and system for simulation of chemical and biological processes in a distributed technical computing environment |
JP2006293885A (ja) * | 2005-04-14 | 2006-10-26 | I Broadcast:Kk | 情報配信システムと方法およびプログラム |
JP5011927B2 (ja) * | 2006-10-02 | 2012-08-29 | セイコーエプソン株式会社 | アプリケーション実行システム、コンピュータ、アプリケーション実行システムのアプリケーション実行方法およびプログラム |
US8738703B2 (en) | 2006-10-17 | 2014-05-27 | Citrix Systems, Inc. | Systems and methods for providing online collaborative support |
US7934027B2 (en) * | 2007-01-19 | 2011-04-26 | Hewlett-Packard Development Company, L.P. | Critical resource management |
US8125796B2 (en) | 2007-11-21 | 2012-02-28 | Frampton E. Ellis | Devices with faraday cages and internal flexibility sipes |
US7441135B1 (en) | 2008-01-14 | 2008-10-21 | International Business Machines Corporation | Adaptive dynamic buffering system for power management in server clusters |
US8031713B2 (en) * | 2008-01-29 | 2011-10-04 | International Business Machines Corporation | General multi-link interface for networking environments |
US8930538B2 (en) | 2008-04-04 | 2015-01-06 | Level 3 Communications, Llc | Handling long-tail content in a content delivery network (CDN) |
US9762692B2 (en) | 2008-04-04 | 2017-09-12 | Level 3 Communications, Llc | Handling long-tail content in a content delivery network (CDN) |
US10924573B2 (en) | 2008-04-04 | 2021-02-16 | Level 3 Communications, Llc | Handling long-tail content in a content delivery network (CDN) |
US8516080B2 (en) | 2008-12-03 | 2013-08-20 | Mobophiles, Inc. | System and method for providing virtual web access |
US8949842B2 (en) * | 2008-12-31 | 2015-02-03 | AT&T Intellectual I, L.P. | Method and apparatus for locating load-balanced facilities |
US8886787B2 (en) * | 2009-02-26 | 2014-11-11 | Microsoft Corporation | Notification for a set of sessions using a single call issued from a connection pool |
US8549038B2 (en) | 2009-06-15 | 2013-10-01 | Oracle International Corporation | Pluggable session context |
US9021510B2 (en) | 2009-12-04 | 2015-04-28 | International Business Machines Corporation | Remote procedure call (RPC) bind service with physical interface query and selection |
US8266639B2 (en) * | 2009-12-04 | 2012-09-11 | International Business Machines Corporation | Remote procedure call (RPC) bind service with physical interface query and selection |
US8429735B2 (en) | 2010-01-26 | 2013-04-23 | Frampton E. Ellis | Method of using one or more secure private networks to actively configure the hardware of a computer or microchip |
US8516284B2 (en) | 2010-11-04 | 2013-08-20 | International Business Machines Corporation | Saving power by placing inactive computing devices in optimized configuration corresponding to a specific constraint |
US10067547B2 (en) * | 2012-06-28 | 2018-09-04 | Intel Corporation | Power management control of remote servers |
US10666574B2 (en) | 2015-09-28 | 2020-05-26 | Amazon Technologies, Inc. | Distributed stream-based database triggers |
US10387387B2 (en) | 2015-12-17 | 2019-08-20 | Oracle International Corporation | Enabling multi-tenant access to respective isolated data sets organized using different application schemas |
US10289617B2 (en) | 2015-12-17 | 2019-05-14 | Oracle International Corporation | Accessing on-premise and off-premise datastores that are organized using different application schemas |
US10303894B2 (en) | 2016-08-31 | 2019-05-28 | Oracle International Corporation | Fine-grained access control for data manipulation language (DML) operations on relational data |
CN110134698A (zh) * | 2019-04-15 | 2019-08-16 | 平安普惠企业管理有限公司 | 数据管理方法及相关产品 |
US12063150B1 (en) * | 2020-08-11 | 2024-08-13 | Amazon Technologies, Inc. | Quality of service management for preventing client drop-offs |
CN113946430B (zh) * | 2021-12-20 | 2022-05-06 | 北京并行科技股份有限公司 | 一种作业调度方法、计算设备及存储介质 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0319796B1 (en) * | 1987-11-26 | 1995-08-16 | Hitachi, Ltd. | Job control for an on-line system |
US5062037A (en) * | 1988-10-24 | 1991-10-29 | Ibm Corp. | Method to provide concurrent execution of distributed application programs by a host computer and an intelligent work station on an sna network |
JP2967999B2 (ja) * | 1989-07-06 | 1999-10-25 | 富士通株式会社 | プロセスの実行多重度制御処理装置 |
US5339392A (en) * | 1989-07-27 | 1994-08-16 | Risberg Jeffrey S | Apparatus and method for creation of a user definable video displayed document showing changes in real time data |
EP0473913A3 (en) * | 1990-09-04 | 1992-12-16 | International Business Machines Corporation | Method and apparatus for providing a service pool of virtual machines for a plurality of vm users |
US5249290A (en) * | 1991-02-22 | 1993-09-28 | At&T Bell Laboratories | Method of and apparatus for operating a client/server computer network |
US5329619A (en) * | 1992-10-30 | 1994-07-12 | Software Ag | Cooperative processing interface and communication broker for heterogeneous computing environments |
JPH076043A (ja) * | 1993-03-05 | 1995-01-10 | Mitsubishi Electric Corp | マルチスレッド・サーバ |
JP2508589B2 (ja) * | 1993-05-25 | 1996-06-19 | 日本電気株式会社 | サ―バ運用方式 |
JPH06332834A (ja) * | 1993-05-25 | 1994-12-02 | Hitachi Ltd | リモートプロシジャコール方法 |
US5553242A (en) * | 1993-11-03 | 1996-09-03 | Wang Laboratories, Inc. | Client/server connection sharing |
EP0694837A1 (en) * | 1994-07-25 | 1996-01-31 | International Business Machines Corporation | Dynamic workload balancing |
US5581552A (en) * | 1995-05-23 | 1996-12-03 | At&T | Multimedia server |
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 |
-
1996
- 1996-03-05 US US08/610,943 patent/US5761507A/en not_active Expired - Lifetime
- 1996-12-14 KR KR1019960065707A patent/KR100237984B1/ko not_active IP Right Cessation
-
1997
- 1997-02-24 EP EP97301180A patent/EP0794491B1/en not_active Expired - Lifetime
- 1997-02-24 DE DE69728601T patent/DE69728601T2/de not_active Expired - Lifetime
- 1997-03-04 JP JP04939697A patent/JP3364575B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
DE69728601T2 (de) | 2005-03-17 |
EP0794491B1 (en) | 2004-04-14 |
JPH09319600A (ja) | 1997-12-12 |
EP0794491A3 (en) | 1999-01-13 |
DE69728601D1 (de) | 2004-05-19 |
KR970068309A (ko) | 1997-10-13 |
JP3364575B2 (ja) | 2003-01-08 |
EP0794491A2 (en) | 1997-09-10 |
US5761507A (en) | 1998-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100237984B1 (ko) | 원격 절차 호출 실행 방법 및 트랜잭션 매니저 | |
US6192389B1 (en) | Method and apparatus for transferring file descriptors in a multiprocess, multithreaded client/server system | |
EP0817043B1 (en) | Apparatus and method for operating an aggregation of server computers using a dual-role proxy server computer | |
EP0362107B1 (en) | Method to manage concurrent execution of a distributed application program by a host computer and a large plurality of intelligent work stations on an SNA network | |
KR100383381B1 (ko) | 제한된메모리컴퓨터시스템에서의클라이언트관리흐름제어를위한방법과장치 | |
US6085217A (en) | Method and apparatus for controlling the assignment of units of work to a workload enclave in a client/server system | |
EP0426323B1 (en) | Portable, resource sharing file server using co-routines | |
US5060140A (en) | Universal programmable data communication connection system | |
US5867650A (en) | Out-of-band data transmission | |
US6047338A (en) | System for transferring a data directly from/to an address space of a calling program upon the calling program invoking a high performance interface for computer networks | |
EP0343820A2 (en) | Temporary state preservation for a distributed file service | |
EP0312739A2 (en) | Apparatus and method for interconnecting an application of a transparent services access facility to a remote source | |
WO2003071435A1 (en) | Management of message queues | |
JP3308026B2 (ja) | 二重プロセス表示サーバシステム | |
EP1322097A1 (en) | A method and computer system for client server inter process communication | |
IM | management, device management, virtual file system management and other functions. Configurable components are components that provide specific functional requirements for different airborne software, mainly including C | |
KR100442599B1 (ko) | 교환 시스템에서 워크스테이션의 분산 객체를 이용한메시지 처리 장치 및 방법 | |
US7475031B1 (en) | Communication interface for providing accounting support for print services | |
Ren | Communication Architecture Design and Case Study of Embedded Partition Real-Time Operating System | |
EP0958688B1 (en) | Method and system for data communication using an intraconnect architecture | |
KR19980086588A (ko) | Tcp/ip 소켓 애플리케이션을 이용한 시스템 자원 저감 툴 | |
KR19980086586A (ko) | Tcp/ip 소켓 애플리케이션을 이용한 시스템 자원 저감 툴 | |
CN118012568A (zh) | 用于容器化应用管理的容器设备、系统及相关产品 | |
KR960006472B1 (ko) | TICOM IOP 환경에서 FDDI펌웨어(firmware) 구동방법 | |
JP2000267960A (ja) | プロセス間のパケット通信方法及びパケット通信装置 |
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: 20100824 Year of fee payment: 12 |
|
LAPS | Lapse due to unpaid annual fee |