KR20040095653A - 분산형 객체-지향 시스템에 클라이언트측 로컬 프록시오브젝트를 제공하기 위한 방법 및 장치 - Google Patents
분산형 객체-지향 시스템에 클라이언트측 로컬 프록시오브젝트를 제공하기 위한 방법 및 장치 Download PDFInfo
- Publication number
- KR20040095653A KR20040095653A KR1020040030735A KR20040030735A KR20040095653A KR 20040095653 A KR20040095653 A KR 20040095653A KR 1020040030735 A KR1020040030735 A KR 1020040030735A KR 20040030735 A KR20040030735 A KR 20040030735A KR 20040095653 A KR20040095653 A KR 20040095653A
- Authority
- KR
- South Korea
- Prior art keywords
- server
- local proxy
- client
- remote server
- proxy object
- 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/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
- G06F9/548—Object oriented; Remote method invocation [RMI]
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F1/00—Coin inlet arrangements; Coins specially adapted to operate coin-freed mechanisms
- G07F1/04—Coin chutes
- G07F1/041—Coin chutes with means, other than for testing currency, for dealing with inserted foreign matter, e.g. "stuffing", "stringing" or "salting"
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F17/00—Coin-freed apparatus for hiring articles; Coin-freed facilities or services
- G07F17/32—Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
- G07F17/3241—Security aspects of a gaming system, e.g. detecting cheating, device integrity, surveillance
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 분산형 객체-지향 시스템(distributed object oriented system)에 클라이언트측 로컬 프록시 오브젝트(client-side local proxy object)를 제공하기 위한 방법 및 장치에 관한 것이다. 특히, 본 발명의 한 형태는 Java RMI 기반 시스템(Java RMI based system)에 관한 클라이언트측 로컬 프록시 오브젝트의 구현에 관한 것이고, 본 발명의 다른 형태는 CORBA 기반 시스템에 관한 것이다.
Description
본 발명은 분산형 객체 지향 시스템에 클라이언트측 로컬 프록시 오브젝트를 제공하기 위한 방법 및 장치에 관한 것이다. 특히, 본 발명의 한 형태는 자바 RMI 프로토콜 기반 시스템에 대해 클라이언트측 로컬 프록시 오브젝트의 구현에 관한 것이다. 본 발명의 다른 형태는 공통 오브젝트 요청 브로커 구조 프로토콜(Common Object Request Broker Architecture(CORBA) protocol)에 적응할 수 있다.
본 발명은 특히 자바 RMI 기반 시스템들에서 로컬 프록시들(local proxies)을 제공하는 기술에 관한 것으로, 이에 대한 특정 참조들과 관련하여 설명될 것이지만, 본 발명은 다른 분야 및 어플리케이션들에서 유용성을 가지고 있을 수 있다는 것을 알 수 있다. 예를 들면, 상기에서 언급한 것처럼, 본 발명은 로컬 프록시들이 CORBA 기반 시스템에서 요구되는 다른 상황들에서 사용될 수 있다.
기술적 배경의 통해, 분산형 객체 지향 시스템들은 많은 프로젝트들/프로덕트들의 공통 부분을 가지고 있다. 선 마이크로시스템즈(Sun Microsystems)로부터 자바의 원격 방법 호출(Remote Method Invocation(RMI)), 오브젝트 관리 그룹 기구(Object Management Group Organization)로부터 공통 오브젝트 요청 브로커 구조(Common Object Request Broker Architecture(CORBA)), 월드-와이드 웹 컨소시엄(World-wide Web Consortium(W3C))으로부터 단순 오브젝트 액세스 프로토콜(Simple Object Access Protocol)이 객체 지향 분산형 시스템들을 구현하기 위해 사용된 개방된 표준 기술들(open standard technologies)중의 일부이다.
RMI(또는 CORBA) 기술들의 사용은 분산형 객체 지향 시스템들의 구현을 단순하게 한다. 이들 기술들은 관련된 프로그래밍 언어들 및 상기 형태들의 시스템들의 컴포넌트들에 대한 명령 구조들과 함께 잘 알려져 있다. 그들은 원격 서버에 의해 제공되고 소프트웨어 오브젝트들을 통과하는 원격 서비스들의 호출(invocation)로 하여금 프로세스 또는 기계 경계들(machine boundaries) 양단의 전송을 허용한다. 그러나, RMI(또는 CORBA) 기반 서버/시스템을 사용하기 위한 클라이언트 어플리케이션 측에서는 복잡도가 여전히 존재한다.
예를 들어, 도 1에 관련하여, 알려진 시스템(10)이 도시된다. 시스템(10)은 클라이언트(12) 및 원격 서버(14)를 포함한다. 설명된 것처럼, 서버(14)는 원격 인터페이스(16), RMI 레지스트리 모듈(18), 및 라우터(20)와 통신하는 RMI 기반 서버이다.
상기 시스템에서는 구현에 많은 어려움들이 있다. 예를 들면, 클라이언트(12)는 RMI 프로토콜의 이해 및 원격 인터페이스(16)의 구현이 요구된다. 더욱이, 클라이언트(12)는 RMI 기반 서버(14)에 대한 참조를 획득하기 위해 RMI 레지스트리 모듈(18)을 위치시키고 액세스가 요구된다. 추가로, 클라이언트(12)는 모든 원격 예외들(all remote exceptions), 예를 들어, 서버다운 메시지들을 다루기 위한 능력(capability)을 가지고 있어야만 하다. 마지막으로, 시스템(10)은 각 클라이언트 형태가 시스템에서 기능을 할 수 있도록 모든 클라이언트가 기록 및 테스트된 코드를 갖는 것을 요구한다. 비슷한 어려움들은 CORBA 기반 시스템들에서도 존재한다. 그러므로, 보다 효과적인 기술이 요구된다.
본 발명은 상기 언급한 어려움들 및 그 외의 다른 문제들을 해결하는 새롭고 개선된 접근 방법을 고려한다.
도 1은 종래 시스템의 전체적인 도시를 제공하는 도면.
도 2는 본 발명의 실시예의 실례를 제공하는 도면.
도 3은 본 발명의 작동의 방법을 설명하는 순서 또는 호출-흐름 다이어그램(call-flow diagram)을 나타내는 도면.
* 도면의 주요부분에 대한 부호의 간단한 설명*
12...클라이언트 14...원격 서버
16...원격 인터페이스 18...레지스트리 모듈
20...라우터
분산형 객체 지향 시스템에 로컬 프록시 오브젝트를 제공하기 위한 방법 및 장치가 제공된다.
본 발명의 한 관점에 있어서, 시스템은 객체-지향 서버, 객체-지향 서버와 통신하도록 작동되는 원격 인터페이스들, 객체-지향 서버에 관련된 레지스트리 모듈, 및 클라이언트에 대한 정보를 처리하도록 작동하는 로컬 프록시 오브젝트를 포함한다.
본 발명의 다른 관점에 있어서, 로컬 프록시 오브젝트는 객체-지향 서버, 원격 인터페이스, 및 레지스트리와 통신하도록 작동된다.
본 발명의 다른 관점에 있어서, 특성들 파일(properties file)은 서버의 IP 어드레스, 포트 넘버 등과 같은 정보들을 포함하는 객체-지향 서버에 대한 정보를 저장하도록 작동된다.
본 발명의 다른 관점에 있어서, 시스템은 원격 방법 호출(Remote Method Invocation(RMI))에 기초한다.
본 발명의 다른 관점에 있어서, 시스템은 공통 오브젝트 요청 브로커 구조(Common Object Request Broker Architecture(CORBA))에 기초한다.
본 발명의 다른 관점에 있어서, 본 발명의 방법은, 주 원격 서버를 초기화하는 단계와, 주 원격 서버를 레지스트리 모듈에 등록하는 단계와, 주 원격 서버를 액세스하기 위해 클라이언트에 의해 로컬 프록시 오브젝트를 인스턴시에이팅(instantiating)하는 단계와, 로컬 프록시 오브젝트에 의해 주 원격 서버상의 정보를 획득하는 단계와, 로컬 프록시 오브젝트에 의해 주 원격 서버를 접촉하는 단계와, 로컬 프록시 오브젝트와 주 원격 서버 사이의 연결을 확립하는 단계와, 로컬 프록시 오브젝트를 통해 클라이언트에 의해 주 원격 서버로부터 정보를 요청하는 단계와, 주 원격 서버로부터 로컬 프록시 오브젝트에 정보를 돌려주는 단계와, 로컬 프록시 오브젝트로부터 클라이언트에게 정보를 돌려주는 단계를 포함한다.
본 발명의 다른 관점에 있어서, 본 발명의 방법은, 주 원격 서버를 초기화하는 단계와, 주 원격 서버를 레지스트리 모듈에 등록하는 단계와, 주 원격 서버를 액세스하기 위해 클라이언트에 의해 로컬 프록시 오브젝트를 인스턴시에이팅하는 단계와, 로컬 프록시 오브젝트에 의해 주 원격 서버상의 정보를 획득하는 단계와, 로컬 프록시 오브젝트에 의해 주 원격 서버를 접촉하는 단계와, 로컬 프록시 오브젝트와 주 원격 서버 사이의 연결을 확립하는 단계와, 로컬 프록시 오브젝트를 통해 클라이언트에 의해 주 원격 서버로부터 정보를 요청하는 단계와, 로컬 프록시 오브젝트를 통해 테스트 클라이언트에 의한 어떤 이벤트(예를 들어, 알람 이벤트)를 원격 주 서버에 등록하는 단계와, 로컬 프록시 오브젝트에 의해 등록에 관한 클라이언트의 정보를 저장하는 단계와, 서버 장애 및 재시작의 경우에, 클라이언트의 자동적인 재등록을 허용하도록 로컬 프록시 오브젝트에 의해 원격 주 서버를 주기적으로 액세스하는 단계를 포함한다.
본 발명의 다른 관점에 있어서, 본 발명의 방법은 주 원격 서버를 초기화하는 단계와, 주 원격 서버를 레지스트리 모듈에 등록하는 단계와, 주 원격 서버를 액세스하기 위해 클라이언트에 의해 로컬 프록시 오브젝트를 인스턴시에이팅하는 단계와, 로컬 프록시 오브젝트에 의해 주 원격 서버상의 정보를 획득하는 단계와, 로컬 프록시 오브젝트에 의해 주 원격 서버를 접촉하는 단계와, 로컬 프록시 오브젝트와 주 원격 서버 사이의 연결을 확립하는 단계를 포함한다.
본 발명의 응용 가능한 범위는 하기에 제공된 자세한 설명으로부터 명백하게 될 것이다. 그러나, 본 발명의 정신 및 범위내에서 다양한 변화들 및 변경들이 이 기술 분야의 숙련자들에게 명백하게 될 수 있기 때문에, 본 발명의 양호한 실시예들을 나타내는 상세한 설명 및 특정 예들은 오직 예로서 주어짐을 알 수 있다.
본 발명은 구성, 배치, 및 다양한 디바이스 부분들의 조합에 존재하고, 하기에 더 완전히 설명한 것과 같이 예상된 목적들을 달성시키는 방법의 단계들은 특별히 청구항들에서 지적되고, 동반된 도면들에서 설명된다.
본 발명에 따라, 원격 객체-지향 서버(remote object-oriented server)에 로컬 프록시 오브젝트를 제공하는 기술은 클라이언트 시점으로부터 시스템기반의 RMI/CORBA를 사용해서 복잡도(complexity)를 가장시키기 위해서 구현된다. 이런 접근 하에서, RMI/CORBA 서비스들을 사용하는 클라이언트들은 RMI/CORBA 프로토콜 및 RMI 레지스트리(registry)(또는 서비스를 지정하는 CORBA)를 위치시키는 것과 관련된 복잡도, 원격 서버, 원격 인터페이스들의 구현, 원격 예외의 포착 등을 이해하는 것을 필요로 하지 않는다. 클라이언트들은 서버의 로컬 프록시 오브젝트를 로컬 오브젝트로서 단순히 다루고 사용할 수 있고, 그들을 로컬 방법들(local methods)처럼, 서버에 의해 제공된 모든 원격 서비스들을 액세스할 수 있다. 원격 서버의 로컬 프록시 오브젝트를 사용할 때, 클라이언트는 RMI/CORBA 기술의 이용을 알 수 없을 것이다. 명백하게, 객체-지향 표준들을 이용하는 복잡도들은 클라이언트에 의해 인지 또는 다루어질 필요는 없다.
또한, 이것은 서버에 의해 제공된 RMI 또는 CORBA 기반 서비스들에 액세스를 위해 쓰기를 필요로 할 코드의 양을 줄인다. 인터페이스 테스팅 노력들이 최소화된다. 부하 균형(Load balancing)(다수의 서버 인스턴스들이 이용 가능한 곳에서)도 로컬 프록시 오브젝트 내부에 또한 제공될 수 있다.
설명들의 도면들은 본 발명의 선호하는 실시예들을 설명하기 위함이고, 제한하기 위한 것은 아니다. 도 2는 본 발명에 따른 본보기 시스템의 도시를 제공한다. 보여진 것처럼, RMI-기반 클라이언트-서버형 시스템(100)이 묘사되었다. 대안으로서, 보여진 것처럼, 시스템(100)은 CORBA-기반이 될 수 있다. RMI 와 CORBA 사이에 코드 및 명령 구조에서 미묘한 차이들이 존재할 수 있지만, 이런 대체 시스템은 실질적으로 동일하게 작동할 것이고, 또한, 본 발명의 구현을 위해 실질적으로 동등하게 구성될 것이다.
시스템(100)에서, 클라이언트 프로세스 측(102)(client process side) 및 서버 프로세스 측(104)(server process side)이 구현되었다. 클라이언트 프로세스 측(102)에서, 클라이언트(108)와 통신하는 로컬 프록시 오브젝트(106)가 제공된다.또한, 다른 클라이언트들(110)은 로컬 프록시 서버(106)와 통신할 것이다.
또한, 로컬 프록시 오브젝트(106)는 IP 어드레스 및 원격 서버에 대한 다른 정보를 포함하는 특성들을 저장하기 위한 데이터베이스 모듈/파일(database module/file)을 가지고 있다. 로컬 프록시 오브젝트(106)는 본 발명에 따라서 로컬 프록시 오브젝트가 원격 서버 프로세스 측(104)과 효과적으로 통신하는 것을 허용하는 소프트웨어를 포함 또는 구비한다. 로컬 프록시 서버 오브젝트는 정확한 동일한 단계들 또는 서버의 IP 어드레스/기계 명, 포트 넘버들 등을 이용하는 원격서버를 위치시키기 위한 RMI 또는 CORBA 레지스트리에 접촉하기 위해 모든 클라이언트 형태로 사용되었던 코드의 라인들을 사용한다. 이것은 임의의 RMI 또는 CORBA 기반 클라이언트가 레지스트리 모듈에 접촉하고, 원격 서버의 참조를 획득하는 표준 방법이다. 프록시 서버 오브젝트가 다양한 원격 방법들을 호출, 원격 인터페이스들 구현 및 원격 예외들은 포착하기 위해 사용되는 코드의 그 이상의 라인들은 이른 바 로컬 프록시 오브젝트가 없을 때 사용되었던 클라이언트 소프트웨어와 어떠한 차이도 또한 없다. 사실, 이것은 이런 로컬 프록시 오브젝트 내부의 한 장소에서 캡슐화(encapsulate)되는 하기의 프로토콜(예를 들면 RMI/CORBA)의 지식을 필요로 하는 소프트웨어 코드의 형태이다. 로컬 프록시 오브젝트가 다양한 환경에서 존재하고 다양한 형태를 취할 것이란 것이 이해될 것이다. 그러나, 한 형태에서, 개인용 컴퓨터 또는 개인 휴대 정보 단말기(personal digital assistant)와 같이 클라이언트 디바이스 상에 존재하는 소프트웨어 코드의 형태를 취한다.
서버 프로세스 측(104)에서, 시스템은 원격 인터페이스들(122, 124 및 26)과통신하는 주 원격 서버(120)를 가지고 있다. 또한, 주 원격 서버(또는 원격 서버)(120)는 시스템 또는 예를 들면, 라우터(128)와 같이 주 원격 서버에 의해 관리되는 하드웨어와 통신한다. 서버 프로세스 측(104)은, 본 예에서, RMI 레지스트리와 같은 레지스트리 모듈(130)을 또한 가지고 있다. 물론, 시스템이 RMI와 대비하는 CORBA에 기초된다면, RMI 레지스트리(130)는 서비스를 지정하는 CORBA에 의해 대체되었을 것이다.
도 2로부터 도시된 것처럼, (132)에서, 번호순으로 나열된 오브젝트들은 클라이언트 로컬 프록시 오브젝트(106)와 주 원격 서버(120) 사이에 전송될 수 있다.
물론, 도 2에서 도시된 시스템은 다양한 하드웨어 및 소프트웨어 기술을 이용해서 구현되었다는 것이 이해될 것이다. 시스템은 다른 형태들을 취할 수 있지만 본 발명의 범위 안에 여전히 포함된다. 명백히, 이전에 참조된 것처럼, 시스템은 RMI 또는 CORBA 기반의 분산형 시스템들 또는 비슷한 기능 및 구조를 가지는 다른 객체-중심 시스템들, 양쪽의 구현을 허용하기 위한 형태를 취할 것이다.
도시된 예들에서, 클라이언트(들)(108, 110) 및 주 원격 서버(120)는 동일한 조직에 의해 개발된 시스템이 될 것이다. 또는, 주 원격 서버(120)는 제 3 자 벤더(third-party vendor)로부터 또는 다른 조직에 의해 제조 및 디자인된 단독의 자립형 프로덕트(standalone product)가 되는 시스템이 될 것이다. 이 경우에, 주 원격 서버(120)는 시스템 또는 네트워크 라우터(128)와 같은 하드웨어를 관리하는 단독의 자립형 프로덕트이다. 이런 요소들은 주식 교환과 같은 액세스할 수 있는 정보를 소유하는 엔티티(entity)와 관련될 것이다. 클라이언트(108) 또는 다수의클라이언트들(110)은 로컬 프록시 오브젝트(106)를 이용하여 주 원격 서버(120)로부터 라우터(128)의 정보 검색을 바랄 것이다. 상기를 위해, 주 메인 서버(120)는 Info1, Info2 및 관리 라우터(128)의 AlarmInfo를 제공한다.
부가적으로, 주 원격 서버(120)는 라우터 하드웨어를 모니터링(monitoring) 및 관리하는 사실상의 백-앤드, 원격 서버이다. 주 원격 서버(120)는 다수의 인터페이스들(RemoteInterface1, 2, N)에 의해 묘사되는 다양한 서비스들을 구현한다. 상기 다수의 인터페이스들은 간단함을 위해 RemoteTestInterface 라도 불리는 다른 인터페이스로 그룹(group)된다. 이전에 언급한 것과 같이, 본 발명이 없을 때, 이러한 작업들을 성취하기 위한 기술들은 잘 알려졌다. getSomeInfo(),getAlarmInfo(),getSomInfo2(), 및 registerForAlarmEvent()와 같은 명령들/지시들(commands/instructions)의 이용은 전형적이다.
본 발명의 구현에 앞서, 클라이언트는 잘 알려진 사용 및 적절한 명령들 및/또는 프로그래밍 언어들을 통해 적당한 연결을 확립하기 위해 서버 측 상의 컴포넌트들과 통신을 필요로 한다. 그러나, 본 발명에 따라서, 로컬 프록시 오브젝트는 클라이언트에 의해 성취되기 위해 필요로 되는 기능들 및 작업들을 수행한다. 이점에 있어서는, 로컬 프록시 오브젝트(106)는 클라이언트 프로세스(102)에 존재하는 이른바 로컬 프록시 오브젝트이다. -- 그러나, 본 발명에 따라서, 그것은 주 원거리 서버(120)를 클라이언트에 표현한다. 그러한 것으로서, 로컬 프록시 오브젝트는 getSomeInfo(), getAlarmInfo(),getSomInfo2(), 및 registerForAlarmEvent()와 같은 명령들을 발행할 수 있다. 이러한 방법으로, 로컬 프록시 오브젝트에서의 소프트웨어는 원격 서버(120)의 그것을 보완한다. 클라이언트 코드가 상기 로컬 프록시 오브젝트(106)를 인스턴시에이팅할 때, 그것은 서버의 기계 명/IP 어드레스, 포트 넘버 등과 같은, 주 원격 서버(120)의 위치에 대한 정보를 획득하기 위해 주 원격 서버(120)에 의해 제공되는 로컬 특성들 파일(112)(local properties file)에 의존하다. 로컬 프록시 오브젝트(106)는 주 원격 서버(120)를 위치시키고, 원격 서버의 참조를 획득하기 위한 레지스트리 모듈(130)과 조용하게 접촉하기 위해 이런 정보를 이용한다. 주 원격 서버(120)를 위치시킨 후에, 로컬 프록시 오브젝트(106)는 주 원격 서버(120)로의 연결을 조용하게 확립시키고, 클라이언트로부터의 호출들(method calls)을 수신할 준비가 된다.
또한, 클라이언트들에 대한 단순한 로컬 호출(local call)을 제공하기 위해, 로컬 프록시 오브젝트(106)는 주 원격 서버(120)에 의해 구현되는 모든 원격 인터페이스들(122,124 및 126)을 구현한다. 그러나, 상기 구현은, 로컬 프록시 오브젝트(106)가 전송자(forwarder)로서 행동하고, RMI 프로토콜을 이용하여 주 메인 서버(120)에 클라이언트 호출들을 전송하는 "모조(dummy)" 구현이다. 그것은 백엔드 서버에 의해 발행된 원격 예외들을 포함하는 모든 응답들을 다룬다. 로컬 프록시 오브젝트(106)는 응답에서 수신된 정보를 클라이언트(108)에 전송하고, 원격 예외들을 변환하고, 그것들을 로컬 예외들로써 클라이언트들에게 전송한다.
이러한 방법으로, 주 원격 서버(120)에 액세스를 시도하는 클라이언트 어플리케이션은 RMI 프로토콜을 사용하는 주 원격 서버(120)와의 통신에서 필요한 복잡한 백엔드 활동을 완전히 모른다. 클라이언트들은 프로세스(102) 내부의 어떤 다른로컬 오브젝트처럼, 로컬 프록시 오브젝트(106)를 간단히 사용한다. 클라이언트(108)는 RMI(또는 CORBA)프로토콜을 이해, RMI 레지스트리(또는 모듈을 지정하는 CORBA)에 접촉, 또는 원격 인터페이스들(122, 124 및 126) 및 예외들을 다루지 않아도 된다. 실제로, 시스템은 RMI 프로토콜로부터 CORBA 프로토콜로 변경될 수 있고, 상기 변화는 클라이언트에게 투명하다.
다수의 원격 서버 인스턴스들이 서비스들의 동일한 세트(set)를 제공하기 위해 존재하는 경우에, 부하 균형 메커니즘은 이용가능한 서버들에서 로딩 정보를 기억하고 있고, 새로운 호출을 유휴 또는 덜 바쁜 서버 인스턴스에 보내는 로컬 프록시 오브젝트(106) 내부에 중심적으로 구현된다. 임의의 부하 균형 또는 본 발명의 목적들과 일관된 트래픽 관리 기술은 사용될 수 있다. 다수의 서버 인스턴스들의 유효성에 대한 정보는 로컬 특성들 파일(112)에 유지된다.
더욱이, 클라이언트(108)가 서버 프로세스 측(104)상의 어떤 특정 이벤트에 흥미가 있고, 상기 이벤트가 발생했을 때, 주 원격 서버(120)로부터 즉각적인 통지를 필요로 한다면, 주 원격 서버(120)는 클라이언트들을 위해 상기 이벤트를 등록하고 원격 콜백(remote callback)을 수신하기 위한 등록 메커니즘(registration mechanism)(예를 들면, registerForAlarmEvent)을 제공한다. 로컬 프록시 오브젝트(106)는 이벤트를 위해 간편한 로컬 등록 방법(registerForAlarmEvent) 및 클라이언트에 로컬 콜백을 제공한다. 부가적으로, 주 원격 서버(120)를 기억하고 있기 때문에, 로컬 프록시 오브젝트(106)는 서버 장애들을 탐지할 수 있고, 주 원격 서버(120)가 재 시작될 때, 클라이언트를 대신하여 자동적으로 재등록할 수 있다. 로컬 프록시 오브젝트(106)는 이런 목적으로 클라이언트 레지스트리의 로컬 리스트(local list)를 유지하다.
도 3을 참조하여, 순서, 또는 호출-흐름 다이어그램은 본 발명에 따른 방법을 설명한다. 도시된 것처럼, 주 원격 서버(120)는 올라가고, 초기화한다(위치 202). 그 후, 주 원격 서버(120)는 그것의 서비스들을 공표하기 위해 그것 자체를 RMI 레지스트리에 등록한다(위치 204).
일정 시간 후에, 클라이언트(108)는 주 원격 서버(120)의 서비스들의 사용을 결정한다. 그러나, RMI 레지스트리(130)를 위치시키고, 원격 서버 등에 접촉하는 어려움을 거치는 대신에, 클라이언트(108)는 로컬 프록시 오브젝트(106)를 간단히 사용한다. 그러한 것으로서, 클라이언트(108)는 로컬 프록시 오브젝트(106)를 로컬 오브젝트로서 인스턴시에이팅한다(위치 206).
지금의 로컬 프록시 오브젝트(106)는 원격 서버의 IP 어드레스/ 기계 명을 위해 특성-파일(112)을 액세스한다(위치 208). 주 원격 서버(120)에 다수의 인스턴스들이 이용 가능하다면, 로컬 프록시 오브젝트(106)는 모든 인스턴스들의 IP 어드레스를 획득해서 모든 것에 접속할 수 있고, 부하 균형을 위한 로딩 정보를 기억한다.
다음으로, 로컬 프록시 오브젝트(106)는 주 원격 서버(120) 참조를 결정하기 위해 RMI 레지스터(130)에 접촉한다(위치 210). 로컬 프록시 오브젝트(106)는 주 원격 서버(120)에 접촉하고(위치 212), 주 원격 서버(120)로의 직접 연결을 확립하고, 클라이언트(108)로부터 요청들을 할 준비가 된다.
클라이언트(108)가 서비스(예를 들면, getSomeInfo())를 요청한다면, 적절한 어드레스 공간에서 로컬 프록시 오브젝트(106)상의 로컬 방법처럼 그렇게 한다.(위치 214) 로컬 프록시 오브젝트(106)는 RMI를 이용하여 주 원격 서버(120)에서 원격 콜(call)을 만든다(위치 216).
주 원격 서버(120)는 클라이언트(108)에 의해 필요로 되는 정보를 로컬 프록시 오브젝트(106)에게 돌려준다(위치 218). 로컬 프록시 오브젝트(106)는 정보를 클라이언트(108)에게 돌려준다(위치 220).
따른 상황에서, 클라이언트(108)는 앞으로의 알람 통보들(alarm notifications)을 로컬 프록시 오브젝트(106)에 등록하기를 바랄 것이다.(위치 222). 그 후. 로컬 프록시 오브젝트(106)는 클라이언트(108)를 대시하여 주 원격 서버(120)에 등록한다(위치 224). 로컬 프록시 오브젝트(106)는 클라이언트 등록 정보를 저장한다(위치 226).
이 프로세스에서, 로컬 프록시 오브젝트(106)는 그것을 주기적으로 "핑잉(pinging)"함으로서 주 원격 서버(120)를 기억한다(위치 228). 또한, 다수의 인스턴스들이 이용 가능하다면, 주 원격 서버(120)상의 로딩 정보를 기억한다. 주 원격 서버(120)가 충돌하고 재 시작하면, 로컬 프록시 오브젝트(106)는 클라이언트(108)를 주 원격 서버(120)에 자동적으로 조용하게 재등록한다.
본 발명의 구현에서, 반드시 쓰여져야 하는 복잡한 코드의 양의 감소된다. 더욱이, RMI 프로토콜을 기초하는 제 3 자 소프트웨어의 통합은 매우 간단하고 수월하게 되었다. 더욱이, 본 발명은 로컬 프록시 개발자(local proxy developer)에관한 테스팅 타임(testing time) 또한 감소한다. 또한, 모든 RMI 서버 액세스 코드가 집중되고, 변화들은 클라이언트에게 투명하게 만들어질 수 있기 때문에, 본 시스템은 스케일 가능하고, 보수가 용이하다. 추가적으로, 다수의 서버 인스턴스들인 경우, 부하 균형은 로컬 프록시에 의해 다루어질 수 있다.
상기 설명은 본 발명의 특정 실시예들의 발표를 제공하고, 거기에, 동일한 것을 제한하는 목적을 의도하지 않는다. 이러한 것으로서, 본 발명은 상기 설명된 실시예들만으로 제한되지 않는다. 오히려, 이 기술분야의 숙련자는 본 발명의 범위 내에 있는 대체되는 실시예들을 생각할 수 있다는 것이 인정된다.
본 발명은 분산형 객체-지향 시스템(distributed object oriented system)에 클라이언트측 로컬 프록시 오브젝트(client-side local proxy object)를 제공하기 위한 방법 및 장치를 제공한다.
Claims (10)
- 클라이언트와 서버 사이의 통신 처리들(communications processes)을 지원하는데 유용한 시스템으로서, 상기 시스템은 분산형 객체-지향 시스템(distributed object-oriented system)이고,객체-지향 서버와,상기 객체-지향 서버와 통신하도록 작동되는 원격 인터페이스들과,상기 객체-지향 서버와 관련된 레지스트리 모듈과,상기 클라이언트에 대한 정보를 처리하도록 작동되는 로컬 프록시 오브젝트로서, 상기 객체-지향 서버, 원격 인터페이스들 및, 상기 레지스트리 모듈과 통신하도록 작동되는 상기 로컬 프록시 오브젝트와,상기 객체-지향 서버에 관한 정보를 저장하도록 작동되는 저장 파일을 포함하는 시스템.
- 제 1 항에 있어서, 상기 객체-지향 서버는 원격 방법 호출(Remote Method Invocation(RMI))서버인, 시스템.
- 제 1 항에 있어서, 상기 레지스트리 모듈은 원격 방법 호출(RMI) 레지스트리 모듈인, 시스템.
- 제 1 항에 있어서, 상기 로컬 프록시 오브젝트는 원격 방법 호출(RMI) 프로토콜에 기초하는, 시스템.
- 제 1 항에 있어서, 상기 객체 지향 서버는 공통 오브젝트 요청 브로커 구조(Common Object Request Broker Architecture(CORBA)) 서버인, 시스템.
- 제 1 항에 있어서, 상기 레지스트리 모듈은 서비스를 지정하는 공통 오브젝트 요청 브로커 구조(CORBA)인, 시스템.
- 제 1 항에 있어서, 상기 로컬 프록시 오브젝트는 공통 오브젝트 요청 브로커 구조(CORBA) 프로토콜에 기초하는, 시스템.
- 분산형 객체-지향 시스템에서 클라이언트와 서버 사이의 통신을 지원하는데 유용한 방법으로서,주 원격 서버를 초기화하는 단계와,상기 주 원격 서버를 레지스트리 모듈에 등록하는 단계와,상기 주 원격 서버를 액세스하기 위해 클라이언트에 의해 로컬 프록시 오브젝트를 인스턴시에이팅(instantiating)하는 단계와,상기 로컬 프록시 오브젝트에 의해 상기 주 원격 서버상의 정보를 획득하는 단계와,상기 로컬 프록시 오브젝트에 의해 상기 주 원격 서버를 접촉하는 단계와,상기 로컬 프록시 오브젝트와 상기 주 원격 서버 사이의 연결을 확립하는 단계와,상기 로컬 프록시 오브젝트를 통해 상기 클라이언트에 의해 상기 주 원격 서버로부터 정보를 요청하는 단계와,상기 주 원격 서버로부터 상기 로컬 프록시 오브젝트에 상기 정보를 돌려주는 단계와,상기 로컬 프록시 오브젝트로부터 상기 클라이언트에게 상기 정보를 돌려주는 단계를 포함하는 방법.
- 분산형 객체-지향 시스템에서 클라이언트와 서버 사이의 통신을 지원하는데 유용한 방법으로서,주 원격 서버를 초기화하는 단계와,상기 주 원격 서버를 레지스트리 모듈에 등록하는 단계와,상기 주 원격 서버를 액세스하기 위해 클라이언트에 의해 로컬 프록시 오브젝트를 인스턴시에이팅하는 단계와,상기 로컬 프록시 오브젝트에 의해 상기 주 원격 서버상의 정보를 획득하는 단계와,상기 로컬 프록시 오브젝트에 의해 상기 주 원격 서버를 접촉하는 단계와,상기 로컬 프록시 오브젝트와 상기 주 원격 서버 사이의 연결을 확립하는 단계와,상기 로컬 프록시 오브젝트를 통해 상기 클라이언트에 의해 상기 주 원격 서버로부터 정보를 요청하는 단계와,상기 로컬 프록시 오브젝트를 통해 상기 테스트 클라이언트에 의한 알람 이벤트를 상기 원격 주 서버에 등록하는 단계와,상기 로컬 프록시 오브젝트에 의해 등록에 관한 클라이언트의 정보를 저장하는 단계와,서버 장애 및 재시작의 경우에, 상기 클라이언트의 자동적인 재등록을 허용하도록 상기 로컬 프록시 오브젝트에 의해 상기 원격 주 서버를 주기적으로 액세스하는 단계를 포함하는 방법.
- 분산형 객체-지향 시스템에서 클라이언트와 서버 사이의 통신을 지원하는데 유용한 방법으로서,주 원격 서버를 초기화하는 단계와,상기 주 원격 서버를 레지스트리 모듈에 등록하는 단계와,상기 주 원격 서버를 액세스하기 위해 클라이언트에 의해 로컬 프록시 오브젝트를 인스턴시에이팅하는 단계와,상기 로컬 프록시 오브젝트에 의해 상기 주 원격 서버상의 정보를 획득하는 단계와,상기 로컬 프록시 오브젝트에 의해 상기 주 원격 서버를 접촉하는 단계와,상기 로컬 프록시 오브젝트와 상기 주 원격 서버 사이의 연결을 확립하는 단계를 포함하는 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/435,415 US20040226022A1 (en) | 2003-05-09 | 2003-05-09 | Method and apparatus for providing a client-side local proxy object for a distributed object-oriented system |
US10/435415 | 2003-05-09 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20040095653A true KR20040095653A (ko) | 2004-11-15 |
Family
ID=32990573
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020040030735A KR20040095653A (ko) | 2003-05-09 | 2004-04-30 | 분산형 객체-지향 시스템에 클라이언트측 로컬 프록시오브젝트를 제공하기 위한 방법 및 장치 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20040226022A1 (ko) |
EP (1) | EP1475706A1 (ko) |
JP (1) | JP2004334883A (ko) |
KR (1) | KR20040095653A (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101601525B1 (ko) | 2014-11-04 | 2016-03-09 | 현대자동차주식회사 | 좌석 팔걸이 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10332360B4 (de) * | 2003-07-17 | 2023-06-29 | Abb Schweiz Ag | Verfahren und System zur Verwaltung und Übertragung von Ereignissen einer zu überwachenden technischen Anlage in einer web-basierten Client-Server-Umgebung |
US8495664B2 (en) * | 2005-07-06 | 2013-07-23 | International Business Machines Corporation | System, method and program product for invoking a remote method |
CN100578458C (zh) * | 2007-03-22 | 2010-01-06 | 华为技术有限公司 | 分布式系统中的调用请求处理方法及分布式系统和服务器 |
JP4966135B2 (ja) * | 2007-08-31 | 2012-07-04 | 株式会社東芝 | サーバ装置、端末装置、通信制御方法および通信制御プログラム |
GB2510426A (en) * | 2013-02-05 | 2014-08-06 | Ibm | Workload balancing in a distributed database |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6487607B1 (en) * | 1998-02-26 | 2002-11-26 | Sun Microsystems, Inc. | Methods and apparatus for remote method invocation |
US20020032803A1 (en) * | 1996-07-15 | 2002-03-14 | Paul Marcos | Method and apparatus for dynamically brokering object messages among object models |
US6157960A (en) * | 1997-05-07 | 2000-12-05 | International Business Machines Corporation | Technique for programmatically creating distributed object programs |
US6125382A (en) * | 1997-07-25 | 2000-09-26 | International Business Machines Corporation | Distributed thread mechanism and method |
EP0973094B1 (en) * | 1998-05-29 | 2002-04-24 | Sun Microsystems, Inc. | Fast invocations for local highly available objects |
US6868543B1 (en) * | 2000-06-16 | 2005-03-15 | International Business Machines Corporation | Location transparent event handling |
JP2004526218A (ja) * | 2000-08-24 | 2004-08-26 | ボルテール アドバンスト データ セキュリティ リミテッド | 相互接続されたファブリックにおける高度にスケーラブルで高速のコンテンツ・ベース・フィルタリング及び負荷均衡化システム及び方法 |
US20030105882A1 (en) * | 2001-11-30 | 2003-06-05 | Ali Syed M. | Transparent injection of intelligent proxies into existing distributed applications |
US20030105837A1 (en) * | 2001-11-30 | 2003-06-05 | Yury Kamen | Interception for optimal caching of distributed applications |
US7051341B2 (en) * | 2001-12-14 | 2006-05-23 | International Business Machines Corporation | Method, system, and program for implementing a remote method call |
-
2003
- 2003-05-09 US US10/435,415 patent/US20040226022A1/en not_active Abandoned
-
2004
- 2004-04-26 EP EP04252417A patent/EP1475706A1/en not_active Withdrawn
- 2004-04-30 KR KR1020040030735A patent/KR20040095653A/ko not_active Application Discontinuation
- 2004-05-07 JP JP2004138498A patent/JP2004334883A/ja not_active Abandoned
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101601525B1 (ko) | 2014-11-04 | 2016-03-09 | 현대자동차주식회사 | 좌석 팔걸이 |
Also Published As
Publication number | Publication date |
---|---|
JP2004334883A (ja) | 2004-11-25 |
US20040226022A1 (en) | 2004-11-11 |
EP1475706A1 (en) | 2004-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7571208B2 (en) | Creating proxies from service description metadata at runtime | |
US7870188B2 (en) | Systems and methods for exposing web services | |
US6490617B1 (en) | Active self discovery of devices that participate in a network | |
US6167448A (en) | Management event notification system using event notification messages written using a markup language | |
CA2292678C (en) | Method and apparatus for providing awareness-triggered push | |
US8789073B2 (en) | Proxy object creation and use | |
US8239877B2 (en) | Pre-population of meta data cache for resolution of data marshaling issues | |
CN112286503A (zh) | 多注册中心的微服务统一管理方法、装置、设备及介质 | |
US20070198524A1 (en) | Maintaining connections between application servers and databases in a multitier computer architecture | |
US8533737B2 (en) | System and method for interfacing distributed systems with different frameworks | |
US20190132276A1 (en) | Unified event processing for data/event exchanges with existing systems | |
US20070165615A1 (en) | Apparatus and method for notifying communication network event in application server capable of supporting open API based on Web services | |
CN110311837B (zh) | 在线业务可用性检测方法、装置及计算机设备 | |
US20040230973A1 (en) | Mechanism to provide adminstrative control in a multi-process application server | |
EP1198102B1 (en) | Extendable provisioning mechanism for a service gateway | |
US20090141635A1 (en) | Using status inquiry and status response messages to exchange management information | |
US6931427B2 (en) | Method and apparatus for discovering data services in a distributed computer system | |
US7289989B2 (en) | Pattern based web services | |
CN116633993B (zh) | 跨网络调用微服务方法、装置、设备及存储介质 | |
KR20040095653A (ko) | 분산형 객체-지향 시스템에 클라이언트측 로컬 프록시오브젝트를 제공하기 위한 방법 및 장치 | |
US9077764B2 (en) | Communications handles and proxy agents | |
JP4959339B2 (ja) | ウェブ・サービス・インターメディアリ用のポート・タイプ非依存型プロキシ・サポート | |
Hasselmeyer et al. | Monitoring component interaction in Jini federations | |
KR100282616B1 (ko) | 웹과 응용을 위한 멀티프로토콜 게이트웨이의 구조 및 처리방법 | |
CN116962377A (zh) | 一种服务治理方法、装置及网络设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |