KR20020004941A - 인텔리전트 에이전트에서의 다이나믹 커맨드 확장성을위한 방법 및 장치 - Google Patents

인텔리전트 에이전트에서의 다이나믹 커맨드 확장성을위한 방법 및 장치 Download PDF

Info

Publication number
KR20020004941A
KR20020004941A KR1020017008146A KR20017008146A KR20020004941A KR 20020004941 A KR20020004941 A KR 20020004941A KR 1020017008146 A KR1020017008146 A KR 1020017008146A KR 20017008146 A KR20017008146 A KR 20017008146A KR 20020004941 A KR20020004941 A KR 20020004941A
Authority
KR
South Korea
Prior art keywords
server
component
request
client
intercepting
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.)
Ceased
Application number
KR1020017008146A
Other languages
English (en)
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 KR20020004941A publication Critical patent/KR20020004941A/ko
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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/2866Architectures; Arrangements
    • 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/08Protocols specially adapted for terminal emulation, e.g. Telnet

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer And Data Communications (AREA)
  • Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)
  • Multi Processors (AREA)
  • Steroid Compounds (AREA)
  • Stored Programmes (AREA)

Abstract

요구에 의해 개시된 업그레이드를 인식하는 콤퍼넌트들에 요구가 행해진 클라이언트(12) 콤퍼넌트들이 없이 새로운 기능이 요구될 때 서버(14)로서 역할을 하는 소프트웨어 콤퍼넌트가 업그레이드되거나 설치되될 수 있는 시스템(20)이 제공된다. 이러한 구성으로 함으로써 그렇지 않은 경우 클라이언트(12) 콤퍼넌트에서 에러를 유발하였을 상기 요구들에 서버(14)가 응답을 할 수 있게 된다.

Description

인텔리전트 에이전트에서의 다이나믹 커맨드 확장성을 위한 방법 및 장치{METHOD AND APPARATUS FOR DYNAMIC COMMAND EXTENSIBILITY IN AN INTELLIGENT AGENT}
종래 컴퓨터 환경에서, 실행가능 콤퍼넌트는 다른 실행가능 콤퍼넌트를 요구한다. 어떤 경우에는, 콤퍼넌트 지원을 요구하는 인식이 그것을 요구할 수 있는 모든 콤퍼넌트에 직접 내장된다. 다른 경우에는, 지원 요구에 대한 질문에 대답하는 능력을 제공할 수 있다. 후자의 경우는 다른 모든 콤퍼넌트의 지원 동작에 관한 지식을 완전하게 처리하기 위해 모든 잠재 클라이언트를 요구하지 않는 장점을 갖는다. 이는 잘 공지되고 이해되는 기술이다.
통상적으로, 콤퍼넌트가 인식하지 못하는 요구를 수신할 때, 콤퍼넌트는 호출 콤퍼넌트로 다시 에러를 송출함으로써 응답한다. 이는 종종 애플리케이션이 실패할 때까지 호출 콤퍼넌트가 호출 체인 상으로 에러를 케스케이드하게 된다.
Common Lisp, SallTalk, 및 Forth와 같은 시스템은 소프트웨어 콤퍼넌트의다이나믹 결합을 제공한다. 그러나, 이러한 시스템은 콤퍼넌트가 실제 요구되기 전, 인스톨 또는 클래스 정의 시간에서 이와 같은 다이나믹 결합을 수행한다. 그래서, 큰 자원 풋프린트가 요구된다.
도메인 네임 서버(DNS)는 도메인 네임을 해결하기 위한 요구시 보다 많은 인식 서버로의 패스 능력을 갖는다. 그러나, DNS가 처리할 수 없는 형식으로 요구를 수신할 때는 그들의 기능을 업그레이드할 능력을 갖는 것이 아니라, 도메인 네임이 저장된 리스트에 있지 않을 때는 도메인 네임을 간단하게 통과한다.
CORBA 다이나믹 호출 인터페이스(Dynamic Invocation Interface;DII) 및 다이나믹 스켈리톤 인터페이스(dynamic Skeleton Interface;DSI)는 소프트웨어 콤퍼넌트에 대한 요구의 다이나믹 디스패치(dispatch)를 허용하여, 다른 콤퍼넌트로의 변경이 실행시간에 활용될 수 있지만; 서버 콤퍼넌트에서 실행가능 콘텐츠의 다이나믹 확장성을 커버하지는 않는다. 서버 콤퍼넌트가 처리할 수 없는 요구를 수신하면 서버 콤퍼넌트는 에러를 반환할 것이다.
<발명의 개시>
본 발명은 요구가 이해되지 않을 때 에러를 송신하기보다는 소프트웨어 콤퍼넌트가 그의 지원된 요구를 동적으로 갱신할 수 있는 방법 및 장치를 제공한다. 호출 콤퍼넌트의 조망으로부터, 요구는 표준 방식으로 채워지도록 나타나고 에러는 복귀되지 않는다. 이것은 불필요한 애플리케이션 고장을 줄이는 상당한 이점을 갖는다.
본 발명은 클라이언트로부터의 요구를 모를 때, 적절하게 업그레이드된 소프트웨어 콤퍼넌트를 발견하는 원격 서버에 대해 소프트웨어 콤퍼넌트가 탐색하여, 에러를 반환하지 않고 요구를 충복시키는 방법 및 장치를 또한 제공한다.
본 발명은 소프트웨어 시스템 아키텍쳐에 관한 것으로, 특히 오브젝트 클래스와 같이, 소프트웨어 콤퍼넌트의 다이나막 확장성을 제공하는 방법에 관한 것이다.
도 1은 본 발명의 제1 실시예의 시스템을 구현하도록 배치된 장치를 도시하는 도면.
도 2는 제1 실시예에 따른 제어 흐름의 한 예를 예시하는 상호 작용도.
도 3A는 본 발명의 제2 실시예에 따른 장치를 나타내는 도면.
도 3B는 도 3A에 도시된 장치의 기능을 나타내는 도면.
도 4는 본 발명의 제3 실시예에 따른 장치를 나타내는 도면.
도 5는 본 발명의 제4 실시예에 따른 장치를 나타내는 도면.
이하, 도 1 내지 도 5를 참조하여 본 발명의 몇몇 실시예를 설명한다. 이들 실시예 모두는 실행시 클라이언트에 의해 요구가 다이나믹하게 구성되고 처리용 서버에 발행될 수 있는 환경에서 동작한다. 이것은 컴파일시 정적으로 요구가 생성되고 있는 컴파일어 시스템과는 뚜렷이 구별되는 것이며, 정적으로 정의되고 있는 인터페이스에 대해 통상 유효한 것이다. 대신에, 서버는 언제든 그리고 서로 독립적으로 그 인터페이스를 바꿀수도 있고, 클라이언트는 자신의 요구를 변경할 수도 있는 것으로 한다. 이러한 경우에, 클라이언트는 그것이 비록 성공적으로 사전에 처리되었다고 하더라도 어느 요구는 거부하는 서버들을 준비해야만 한다. 각각의 실시예는 이전의 미지 명령들에 대한 클라이언트 요구들을 처리하기 위해실행(implementations)의 위치를 정하고 로드하는 메카니즘을 추가하고 있다. 이렇게 함으로써 그렇지 않은 경우의 실패했을지도 모를 요구들을 성공적으로 완성할 수 있다.
본 발명의 제1 실시예를 도 1 및 도 2에 나타낸다. 비록 본 발명의 다른 실시예들이 예를 들어, 파라미터들, 퀄리파이어(qualifiers), 혹은 여러 방법을 이용하여 클라이언트 콤퍼넌트에 의해 한 콤퍼넌트가 작용될 수 있는 다른 소프트웨어 환경에서 동작하고 있지만 본 발명의 특정 실시예는 오브젝트 기반 동작 환경(object based operating environment)에서 동작한다. 오브젝트 기반 소프트웨어 환경은 잘 공지되어 있으며, 많은 소프트웨어 환경이 오브젝트 모델에 기초하고 있다. 이러한 환경에서, 오브젝트 클래스가 정의되며, 각각의 클래스는 한 세트의 방법을 갖고 있다. 오브젝트 클래스 계층이 가끔 제공될 것이며, 서브 클래스들은 모두 추가적인 방법 및 특징 뿐만 아니라 자신들의 부모 클래스의 특징과 방법들을 갖고 있다. 소프트웨어 콤퍼넌트는 독립적으로 작용될 수 있는 정의 클래스의 오브젝트 예(object instances)를 생성할 수 있다. 동일한 오브젝트의 여러 예들이 동시에 존재할 수도 있지만, 이들 각각은 독립적으로 실행된다. 또 다른 오브젝트 동작에 대한 방법을 호출하는 오브젝트가 클라이언트 오브젝트로서 동작하며 호출되고 있는 방법들을 갖고 있는 오브젝트는 서버 오브젝트로서 동작한다. 도 1에 도시된 바와 같이, 오브젝트(12, 14, 18)는 인터페이스(20)를 통해 서로 통신한다. 인터페이스의 성질은 시스템의 아키텍쳐에 따라 변화하게 될 것이다. 그렇게 되면, 적절한 프로토콜을 이용하는 네트워크를 통해 오브젝트간의 통신이 허용된다. 서버는 각각의 오브젝트와 연관된 인터셉터(SRI;16)를 요구하고, 도 1에 점선으로 도시된 바와 같이 연관 오브젝트에 대해 행해지는 요구를 인터셉트한다.
도 2는 다이나믹 요구 장치의 전반적인 디자인을 설명하기 위한 UML(Unified Modeling Language) 상호 작용도이며 예로서 제어의 흐름을 예시하고 있다.
도 2에 도시된 도면에서, 클라이언트(12)는 서버 콤퍼넌트(14)에 대해 "foo()"라고 불리는 요구를 하게 된다. 이러한 요구는 다양한 파라미터들을 포함할 수도 있으며, 상이한 데이터 유형일 수도 있다. 도 1에 도시된 SRI(16)는 클라이언트에게는 알려지지 않은 요구를 인터셉트한다. SRI는 서버 콤퍼넌트가 현재 지원하고 있음(기지의 () 호출이라 함)을 클라이언트가 알고 있는지를 자신의 요구 리스트(162)에 질의한다. 만일 "know(foo)"가 허위로 되돌아가면, 서버 요구 인터셉터는 시스템 내에서 지원되는 모든 요구에 대해 실행가능한 콤퍼넌트를 포함하고 있는 마스터 RAS(Request Archive Server;18)에 대한 요구("get(foo)")를 행하게 된다. 만일 요구가 이 요구와 호환되지 않는 독립 변수, 여기서는 콤퍼넌트가 처리할 수 있는, foo()를 갖는다면, 요구를 처리할 수 있는 새로운 foo() 버전이 존재하는지를 보기 위해 RAS(Request Archieve Server;18)에 대한 요구가 행해진다. RAS는 foo()(만일 존재한다면)와 연관된 실행가능한 콤퍼넌트를 발견하여 이것을 "hereis(foo)" 호출을 이용하여 서버 콤퍼넌트(14)에 전송한다. RAS는 get(foo) 커맨드에 대한 성공적인 응답을 서버 요구 인터셉터(16)에 전송하며, 또한 서비스 요구 인터셉터가 지원 요구 리스트(162)에 그것들을 부가할 수 있도록 서버상에 갱신된 foo()에 의해 지원되는 요구의 카피도 전송해야 한다.
그러면, 서버 요구 인터셉터(Sever Request Interceptor, 16)는 클라이언트 컴포넌트(12)를 대신하여 invoke(foo)를 호출(call)하여 서버 컴포넌트(이 컴포넌트는 서버가 현재 foo()를 지원하고 있다는 것을 알고 있슴)에 foo() 요구를 해주도록 요구한다. invoke(foo) 호출이 복귀된 후에, 서버 요구 인터셉터(16)는 클라이언트 컴포넌트(12)에 어떤 적당한 값을 반환(return)한다. 클라이언트측에서는, 실행가능 콘텐츠의 다이나믹 검색을 볼 수 없다. 요구 기록 서버(Request Archive Server, 18)는 단일 개체일 필요는 없으며, 분산된 네트워크 자원(a distributed network of resources)이라도 괜찮다. 이 예에서는 단지 간단함을 위해 이 서버를 단일 개체로서 나타내고 있다. 예를 들면, 서버 컴포넌트는 다이나믹 링크 라이브러리 파일(dynamic link library file)내의 오브젝트에 대한 억세스를 제공할 수도 있다. 다이나믹 링크 라이브러리 파일은 프로그램에 링크될 수 있는 함수들을 실행시에 제공하기 때문에, 이것들을 사용하지 않을 때에는 메모리를 낭비하지 않게 된다. 실행시에 프로그램에 링크시키기 위해 이용할 수 있는 다이나믹 링크 라이브러리 파일이 없는 경우나, 억세스한 다이나믹 링크 라이브러리 파일이 그 요구를 충족시키는 적당한 기능을 제공하지 못하는 경우에는, 그 다이나믹 링크 라이브러리 파일이나 그것의 갱신된 버전을 검색하게 된다. 검색은, 예를 들면, 네트워크상의 다른 장소에 있는 서버에 있는 파일을 찾는 것일 수도 있다.
본 발명의 또다른 실시예들은 도 1의 실시예와 유사하게 동작하고 또한 그와 동일한 구성 요소 및 아키텍쳐를 포함할 수도 있으며, 도 3 내지 도 5를 참조하면서 이하에서 설명하기로 한다.
본 발명의 제2 실시예는 커맨드 쉘 환경(command shell environment)에서 구현된 것으로서, 이에 대해서는 도 3A에 도시되어 있다. 컴퓨터(21)상의 메모리(22)에 저장되어 있는 종래의 커맨드 라인 쉘(command line shell, 24)(예를 들면, UNIX Bourne 쉘 이나 MS-DOS의 COMMAND.COM)에서는, 요구는 클라이언트에 의해 텍스트 라인으로 작성되든지, 사용자에 의해 직접 이루어지든지, 스크립트로부터 읽어오든지, 또는 쉘 인스턴스(shell instance)를 만들어낼(spawn) 수도 있는 시스템상의 실행가능 컴포넌트에 의해 이루어지든지 한다. 이 경우에, 쉘 커맨드 인터프리터(26)는 서버 역할을 하게 되고, 통상의 요구라는 것은 커맨드 라인 파라메타를 옵션으로 갖는 장기 스토리지(long term storage, 29)내에 저장되어 있는 프로그램(25)을 실행시키는 것이다. 커맨드 인터프리터는 자신이 이해하고 있는 요구들로 이루어진 일정한 보케뷰러리(vocabulary)를 가지고 있다. 이 보케뷰러리는 내장 커맨드(internally implemented command), 및 통상 지정된 디렉토리 그룹내에 저장되어 있는 외부에서 이용가능한 프로그램(externally available program)의 그룹으로 이루어져 있다. 이 보케뷰러리는 외부 프로그램을 적당한 디렉토리에 부가함으로써 확장될 수 있다. 본 발명 이전의 커맨드 인터프리터에 있어서는, 요구가 내부 커맨드 또는 외부 프로그램(25)에 대응하지 않은 경우, 커맨드 인터프리터는 이 요구를 충족시킬 수 없다는 에러 메시지로 응답하게 된다.
도 3B에 도시한 바와 같이, 본 발명의 제2 실시예에 따르면, 요구가 커맨드 쉘의 보케뷰러리의 일부가 아닐 때 조정(intercede)을 행하는 확장메카니즘(extension mechanism)이 제공되어진다. 커맨드 쉘이 검색하게 되는 디렉토리 세트(패스(path)라고 함)는 이용가능한 프로그램의 캐시(cache)라고 볼 수 있다. "캐시 내에(in cache)" 있지 않은 프로그램에 대한 요구가 있을 때에는, 본 발명의 이 실시예의 확장 메카니즘은 그 프로그램의 위치를 알아내기 위해 커맨드 인터프리터의 검색 범위 밖에 있는 하나 이상의 네트워크 또는 기록 소스(network or archival source, 28)를 검색하게 된다. 그 프로그램의 위치를 알아내면, 그 프로그램을 커맨드 인터프리터가 사용하고 있는 패스로 복사함으로써 "캐시 내로(into cache)" 가져오게 된다. 프로그램이 "캐싱(cached)"되었으면, 최초의 요구가 이루어졌을 때 그 프로그램이 그곳에 있었던 것처럼 원래의 요구를 다시 할 수 있게 된다.
이러한 메카니즘이 갖추어져 있으면, 커맨드를 소멸시켜 캐시로부터 제거하기 위한 외부 정책을 정할 수 있게 되어, 필요하다면 그 커맨드를 나중에 대체할 수 있게 되는 것이다. 이러한 한 정책은 최근 사용되지 않고 있는 프로그램들을 제거할 수도 있다. 다른 정책은 버전 번호를 비교하여 그들의 기준 소스에 비해 구식인 프로그램을 소멸시키거나, 보다 새 버전을 사용할 수 있을 때 자동적으로 프로그램을 리프레쉬(refresh)할 수도 있다. 이들 정책은 다이나믹 커맨드 확장 메카니즘과 상호작용하고 그에 의존하고 있지만, 메카니즘 자체의 일부를 이루는 것은 아니다.
도 4에 도시된 본 발명의 제3 실시예에서는, 클라이언트/서버 시스템의 서버측에서, 프로토콜 인터프리터는 요구를 읽고, 이 요구들을 처리하기 위한 서버 함수들을 호출하여 결과를 클라이언트에 리턴한다. 서버의 보케뷰러리는 종종 프로토콜에 의해 정의되어 있으며, 클라이언트가 묵시적으로 이해하고 있는 것이다. 클라이언트는 요구를 준비하여 서버로 전송한 다음에 응답을 기다린다. 클라이언트가 서버가 이해하지 못하는 동작을 요구한 경우에, 서버는 그 요구를 충족시킬 수 없다는 적당한 에러로 응답하게 된다. 어떤 경우에는, 이 응답은 서버와 클라이언트가 동일한 버전의 프로토콜을 사용하고 있지 않다는 것을 나타내기도 한다.
본 발명의 제3 실시예는 클라이언트와 서버 프로토콜이 백워드 호환가능 업그레이드 패스를 따라 독립적으로 전개될 수 있도록 하는 확장 메카니즘을 제공한다. 클라이언트(32)는 서버(34)로부터 예상되는 보케뷰러리(프로토콜)에 의거하여 동작에 대한 요구를 작성한다. 프로토콜 인터프리터는 요구된 동작에 대응하는 방법(기능성의 구현) 찾기를 시도한다. 만약 동작이 서버의 보케뷰러리 부분이면, 대응 방법이 발생되고, 그 결과는 여느 때와 같이 복귀된다. 만약 동작이 이미 서버 보케뷰러리의 부분이 아니면, 하나 이상의 네트워크 또는 기록 소스(38)가 탐색되어 이 동작을 위한 방법의 위치를 알아낸다. 만약 적절한 방법이 발견되면, 이것은 이 동작과 관련된 서버 보케뷰러리에 로드되고, 처음 요구가 행해졌을 때에 존재하고 있던 것처럼 발생된다. 이런 식으로 서버가 업그레이드된 클라이언트에 의해 행해진 요구를 처리하도록 다이나믹 확장될 수 있어서, 클라이언트와 서버가 유연하게 전개할 수 있게 한다.
본 발명의 제4 실시예가 도 5에 도시되어 있고, CORBA와 같은 분배 시스템에서 구현된다. 이와 같은 시스템에서, 클라이언트(42)는 서버 오브젝트에 의해 실행하기 위한 동작 요구를 동적으로 구성할 수도 있다. CORBA 기반 환경에서, DII(Dynamic Invocation Interface ; 다이나믹 호출 인터페이스)는 이 능력을 달성하는데 사용된다. ORB는 오브젝트 구현시의 방법에 대한 동작 요구를 서버측 상에 매핑한다.
본 실시예에 따르면, 확장 메카니즘은 클라이언트 동작 요구에 서비스하기 위해 오브젝트 구현 방법의 적시 로딩을 제공한다. 만약 클라이언트(42)가 서버 오브젝트(44)로부터 사용가능하지 않은 동작을 요구하면, ORB(Object Request Broker ; 오브젝트 요구 브로커)는 ORB 외부의 탐색 컴포넌트를 호출시켜 시스템 상의 어딘가에 서버(49)의 적절한 방법 구현의 위치를 알아낸다. 만약 이와 같은 방법이 발견되면, 이것은 이 동작과 연관되어 통상의 방식으로 호출된다. 그렇지 않으면 상기 동작은 통상적으로 동작이 발견되지 않을 때와 같이 실패한다.
ORB 동작/방법 해결 메카니즘에서 중재하기 위해서는, ORB 벤더 특정 인터페이스가 사용되어야만 한다. 많은 벤더들이 이 다이나믹 확장 기술의 구현을 가능하게 하는 인터셉터 메카니즘을 제공한다.
본 발명은 콤퍼넌트 기반 시스템 구조에서 구현될 수 있다. 이와 같은 구조에서, 느슨하게 연결된 서비스들의 커뮤니티는 시스템 기능을 제공하도록 협력한다. 이 서비스들의 개수 및 특성은 시스템이 발전하듯이, 시간이 지남에 따라 크게 변할 것이다. 이와 같이 발전하는 시스템의 융통성은 서비스의 구현이 요구될 때 자동적으로 그 위치를 알아내어 획득하려고 시도하는 확장 메카니즘을 제공함으로써 강화된다.
클라이언트는 특정 서비스로의 접속을 위한 지역적 요구를 한다. 만약 서비스가 이미 존재하면, 클라이언트에게 접속이 행해져서 복귀된다. 만약 서비스가 존재하지 않으면, 지역적 서비스 관리자(LSM:Local Service Manager) 또는 LSM에 의해 기동되는 독립 콤퍼넌트의 부분일 수 있는 다이나믹 확장 메카니즘은 요구된 서비스의 구현을 탐색한다. 만약 구현이 발견될 수 있으면, 이것은 서비스 관리자에 의해 로드되고 접속 처리는 서비스가 이미 존재한 것처럼 진행한다. 서비스 버저닝(versioning)은 원한다면 서비스 식별자에 몇몇 버전 정보를 포함하고, 이 새로운 버전이 새롭고 상이한 서비스로서 효율적으로 나타나도록 함으로써 제공될 수 있다. 미사용된 구 서비스 구현의 제거는 다이나믹 확장 메카니즘의 범위를 넘은 관리상의 문제이다.
본 발명의 바람직한 실시예를 도시하고 설명하였는데, 더 넓은 양상에서 본 발명을 벗어나지 않고 변화와 변경이 이루어질 수 있음은 이 분야에 기술을 가진 자들에 의해 이해될 것이다. 본 발명의 다양한 특징은 다음 청구항에 기재된다.

Claims (10)

  1. 클라이언트 콤퍼넌트;
    서버 콤퍼넌트 -상기 클라이언트 콤포턴트는 상기 서버 콤퍼넌트에 대한 요구를 만들도록 배열됨-;
    상기 서버에 의해 만족될 수 있는 요구의 표현을 유지하는 수단; 및
    상기 클라이언트 콤퍼넌트로부터의 상기 서버 콤퍼넌트에 대한 요구를 인터셉트하여 상기 표현으로부터 요구가 상기 서버에 의해 지원되는지를 설정하도록 배열된 요구 인터셉팅 콤퍼넌트
    를 포함하며,
    상기 요구 인터셉팅 콤퍼넌트는 상기 요구가 지원되지 않는 경우에는 상기 서버가 상기 요구를 지원하도록 요구되는 경우에 외부 소스를 검색하여 부가 기능을 찾아 이 부가 기능을 상기 서버에 제공하도록 배열되고, 이후 상기 요구 인터셉팅 콤퍼넌트는 상기 요구를 상기 서버로 전송하여 실행되도록 하는 컴퓨터 시스템.
  2. 제1항에 있어서, 상기 클라이언트 및 서버 콤퍼넌트는 하나 이상의 컴퓨터 프로그램 내의 오브젝트를 포함하는 컴퓨터 시스템.
  3. 제2항에 있어서, 상기 서버 콤퍼넌트는 다이나믹 링크 라이브러리 파일에 표현된 오브젝트를 포함하고, 상기 요구 인터셉팅 콤퍼넌트는 상기 다이나믹 링크 라이브러리 파일, 또는 상기 컴퓨터 시스템 상에 유지되는 상기 다이나믹 링크 라이브러리 파일의 현재 버젼이 상기 서버 콤퍼넌트의 기능을 제공하지 못하는 경우에는 상기 다이나믹 링크 라이브러리 파일의 갱신 버젼을 검색하는 컴퓨터 시스템.
  4. 제1항에 있어서, 상기 클라이언트 콤퍼넌트는 소프트웨어 프로그램을 포함하고, 상기 서버 콤퍼넌트는 소프트웨어 콤퍼넌트에 의해 호출되는 운영 체제 쉘을 포함하며, 상기 요구 인터셉팅 콤퍼넌트는 명령 해석기인 컴퓨터 시스템.
  5. 제1항에 있어서, 상기 컴퓨터 시스템은 CORBA 분산 시스템이고, 상기 클라이언트 및 서버 콤퍼넌트는 상기 시스템 상의 오브젝트이며, 상기 요구 인터셉팅 콤퍼넌트는 오브젝트 요구 브로커 내에 위치하는 컴퓨터 시스템.
  6. 클라이언트 콤퍼넌트;
    서버 콤퍼넌트 -상기 클라이언트 콤퍼넌트는 상기 서버 콤퍼넌트에 대한 요구를 만들도록 배열됨-;
    상기 서버에 의해 만족될 수 있는 요구의 표현을 포함하는 수단; 및
    상기 클라이언트 콤퍼넌트로부터의 상기 서버 콤퍼넌트에 대한 요구를 인터셉트하여, 상기 표현으로부터 요구가 상기 서버에 의해 지원되는지를 설정하기 위한 인터셉팅 수단
    을 포함하며,
    상기 인터셉팅 수단은 상기 요구가 아직 지원되지 않는 경우에 외부 소스를 검색하여 상기 서버가 상기 요구를 지원하도록 요구되는 부가 기능을 찾아 이 부가 기능을 상기 서버에 제공한 후 상기 요구를 상기 서버로 전송하여 실행되도록 하는 컴퓨터 시스템.
  7. 제6항에 있어서, 상기 클라이언트 및 서버 콤퍼넌트는 하나 이상의 컴퓨터 프로그램 내의 오브젝트를 포함하는 컴퓨터 시스템.
  8. 제7항에 있어서, 상기 서버 콤퍼넌트는 다이나믹 링크 라이브러리 파일에 표현된 오브젝트를 포함하고, 상기 요구 인터셉팅 콤퍼넌트는 상기 다이나믹 링크 라이브러리 파일, 또는 상기 컴퓨터 시스템 상에 유지되는 상기 다이나믹 링크 라이브러리 파일의 현재 버젼이 상기 서버 콤퍼넌트의 기능을 제공하지 못하는 경우에는 상기 다이나믹 링크 라이브러리 파일의 갱신 버젼을 검색하는 컴퓨터 시스템.
  9. 제6항에 있어서, 상기 클라이언트 콤퍼넌트는 소프트웨어 프로그램을 포함하고, 상기 서버 콤퍼넌트는 소프트웨어 콤퍼넌트에 의해 호출되는 운영 체제 쉘을 포함하며, 상기 요구 인터셉팅 콤퍼넌트는 명령 해석기인 컴퓨터 시스템.
  10. 제6항에 있어서, 상기 컴퓨터 시스템은 CORBA 분산 시스템이고, 상기 클라이언트 및 서버 콤퍼넌트는 상기 시스템 상의 오브젝트이며, 상기 요구 인터셉팅 콤퍼넌트는 오브젝트 요구 브로커 내에 위치하는 컴퓨터 시스템.
KR1020017008146A 1998-12-24 1999-12-22 인텔리전트 에이전트에서의 다이나믹 커맨드 확장성을위한 방법 및 장치 Ceased KR20020004941A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/220,436 US7039673B1 (en) 1998-12-24 1998-12-24 Method and apparatus for dynamic command extensibility in an intelligent agent
US09/220,436 1998-12-24
PCT/US1999/030784 WO2000039695A1 (en) 1998-12-24 1999-12-22 Method and apparatus for dynamic command extensibility in an intelligent agent

Publications (1)

Publication Number Publication Date
KR20020004941A true KR20020004941A (ko) 2002-01-16

Family

ID=22823536

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020017008146A Ceased KR20020004941A (ko) 1998-12-24 1999-12-22 인텔리전트 에이전트에서의 다이나믹 커맨드 확장성을위한 방법 및 장치

Country Status (14)

Country Link
US (1) US7039673B1 (ko)
EP (1) EP1145136B1 (ko)
JP (1) JP2002538516A (ko)
KR (1) KR20020004941A (ko)
CN (1) CN1179285C (ko)
AT (1) ATE430338T1 (ko)
AU (1) AU775624B2 (ko)
BR (1) BR9916841A (ko)
CA (1) CA2356351A1 (ko)
DE (1) DE69940829D1 (ko)
HK (1) HK1050248A1 (ko)
IL (2) IL143948A0 (ko)
WO (1) WO2000039695A1 (ko)
ZA (1) ZA200105004B (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1221898C (zh) * 2002-08-13 2005-10-05 国际商业机器公司 刷新网络代理高速缓存服务器对象的系统和方法
US7353538B2 (en) * 2002-11-08 2008-04-01 Federal Network Systems Llc Server resource management, analysis, and intrusion negation
US7376732B2 (en) * 2002-11-08 2008-05-20 Federal Network Systems, Llc Systems and methods for preventing intrusion at a web host
US20070016791A1 (en) * 2005-07-14 2007-01-18 Smita Bodepudi Issuing a command and multiple user credentials to a remote system
US7499991B2 (en) * 2005-11-10 2009-03-03 International Business Machines Corporation Autonomic application server unneeded process disablement
CN101237455B (zh) * 2008-03-03 2012-06-06 华为技术有限公司 数据传输装置及系统
US8484200B2 (en) * 2009-01-13 2013-07-09 Infotrieve, Inc. System and method for the centralized management of a document ordering and delivery program
US8543569B2 (en) * 2009-01-13 2013-09-24 Infotrieve, Inc. System and method for the centralized management of a document ordering and delivery program
JP5464038B2 (ja) * 2010-05-12 2014-04-09 株式会社リコー 情報処理装置、画像形成装置、情報処理方法、プログラムおよび記録媒体
CN105095198B (zh) * 2014-04-16 2018-12-04 阿里巴巴集团控股有限公司 一种访问数据实体的方法及装置

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5287537A (en) * 1985-11-15 1994-02-15 Data General Corporation Distributed processing system having plural computers each using identical retaining information to identify another computer for executing a received command
US5155847A (en) 1988-08-03 1992-10-13 Minicom Data Corporation Method and apparatus for updating software at remote locations
US5551035A (en) * 1989-06-30 1996-08-27 Lucent Technologies Inc. Method and apparatus for inter-object communication in an object-oriented program controlled system
US5473772A (en) 1991-04-02 1995-12-05 International Business Machines Corporation Automatic update of static and dynamic files at a remote network node in response to calls issued by or for application programs
CA2041992A1 (en) * 1990-05-18 1991-11-19 Yeshayahu Artsy Routing objects on action paths in a distributed computing system
US5832219A (en) * 1994-02-08 1998-11-03 Object Technology Licensing Corp. Distributed object networking service
NZ281276A (en) * 1994-02-28 1998-07-28 British Telecomm Communications networks service delivery infrastructure interacting with billing and network management systems
US5586304A (en) 1994-09-08 1996-12-17 Compaq Computer Corporation Automatic computer upgrading
US5732270A (en) * 1994-09-15 1998-03-24 Visual Edge Software Limited System and method for providing interoperability among heterogeneous object systems
WO1996017306A2 (en) * 1994-11-21 1996-06-06 Oracle Corporation Media server
JPH08286916A (ja) * 1994-12-16 1996-11-01 Internatl Business Mach Corp <Ibm> オブジェクトにより手続きソフトウェアを機能的に改良するシステム及び方法
US5758351A (en) * 1995-03-01 1998-05-26 Sterling Software, Inc. System and method for the creation and use of surrogate information system objects
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
EP0733972B1 (en) * 1995-03-22 2003-07-09 Sun Microsystems, Inc. Method and apparatus for managing relationships among objects in a distributed object environment
EP0735472A3 (en) * 1995-03-31 2000-01-19 Sun Microsystems, Inc. Method and apparatus for conspiracy among objects
US5764992A (en) 1995-06-06 1998-06-09 Apple Computer, Inc. Method and apparatus for automatic software replacement
WO1997003404A1 (en) * 1995-07-11 1997-01-30 Hitachi, Ltd. Service offering system
US6029175A (en) * 1995-10-26 2000-02-22 Teknowledge Corporation Automatic retrieval of changed files by a network software agent
US5968116A (en) * 1996-03-27 1999-10-19 Intel Corporation Method and apparatus for facilitating the management of networked devices
US5991823A (en) * 1996-06-26 1999-11-23 Sun Microsystems, Inc. Low overhead object adaptor
US5923850A (en) * 1996-06-28 1999-07-13 Sun Microsystems, Inc. Historical asset information data storage schema
US6134600A (en) 1996-07-01 2000-10-17 Sun Microsystems, Inc. Method and apparatus for dynamic derivatives desktops
US5913037A (en) * 1996-07-03 1999-06-15 Compaq Computer Corporation Dynamic management information base manager
US5860004A (en) * 1996-07-03 1999-01-12 Sun Microsystems, Inc. Code generator for applications in distributed object systems
US5949998A (en) * 1996-07-03 1999-09-07 Sun Microsystems, Inc. Filtering an object interface definition to determine services needed and provided
US5920868A (en) * 1996-07-03 1999-07-06 Sun Microsystems, Inc. Cataloging apparatus for facilitating the re-use of distributed objects in a distributed object system
US6012152A (en) * 1996-11-27 2000-01-04 Telefonaktiebolaget Lm Ericsson (Publ) Software fault management system
US5996012A (en) * 1996-12-10 1999-11-30 International Business Machines Corporation Application development process for use in a distributed computer enterprise environment
US6314565B1 (en) * 1997-05-19 2001-11-06 Intervu, Inc. System and method for automated identification, retrieval, and installation of multimedia software components
US5999940A (en) * 1997-05-28 1999-12-07 Home Information Services, Inc. Interactive information discovery tool and methodology
US5920725A (en) * 1997-07-02 1999-07-06 Adaptivity Inc. Run-time object-synthesis and transparent client/server updating of distributed objects using a meta server of all object descriptors
US6256712B1 (en) * 1997-08-01 2001-07-03 International Business Machines Corporation Scaleable method for maintaining and making consistent updates to caches
US6009467A (en) * 1997-08-29 1999-12-28 International Business Machines Corporation System for checking status of supported functions of communication platforms at preselected intervals in order to allow hosts to obtain updated list of all supported functions
US5974454A (en) * 1997-11-14 1999-10-26 Microsoft Corporation Method and system for installing and updating program module components
US6202207B1 (en) * 1998-01-28 2001-03-13 International Business Machines Corporation Method and a mechanism for synchronized updating of interoperating software
US6108712A (en) * 1998-05-05 2000-08-22 International Business Machines Corp. Client-server system with central application management and providing export agent capability for retrofitting existing hardware and applications into the system
US6336138B1 (en) * 1998-08-25 2002-01-01 Hewlett-Packard Company Template-driven approach for generating models on network services
US6182136B1 (en) * 1998-09-08 2001-01-30 Hewlett-Packard Company Automated service elements discovery using core service specific discovery templates

Also Published As

Publication number Publication date
ZA200105004B (en) 2005-01-19
US7039673B1 (en) 2006-05-02
WO2000039695A1 (en) 2000-07-06
EP1145136A2 (en) 2001-10-17
JP2002538516A (ja) 2002-11-12
IL143948A (en) 2006-06-11
CN1381004A (zh) 2002-11-20
BR9916841A (pt) 2001-10-09
WO2000039695A9 (en) 2000-12-14
ATE430338T1 (de) 2009-05-15
AU775624B2 (en) 2004-08-05
CN1179285C (zh) 2004-12-08
EP1145136B1 (en) 2009-04-29
AU2383700A (en) 2000-07-31
CA2356351A1 (en) 2000-07-06
HK1050248A1 (zh) 2003-06-13
DE69940829D1 (de) 2009-06-10
EP1145136A4 (en) 2004-07-28
IL143948A0 (en) 2002-04-21

Similar Documents

Publication Publication Date Title
US7210125B2 (en) Method and system for application installation and management using an application-based naming system including aliases
EP0474339B1 (en) Methods and apparatus for providing a client interface to an object-oriented invocation of an application
US6314567B1 (en) Apparatus and method for transferring state data when performing on-line replacement of a running program code and data
EP0472279B1 (en) Apparatus for implementing data bases to provide object-oriented invocation of applications
EP0471442B1 (en) Method for implementing server functions in a distributed heterogeneous environment
US6108649A (en) Method and system for supplanting a first name base with a second name base
US6112253A (en) Object-oriented method maintenance mechanism that does not require cessation of the computer system or its programs
US7055147B2 (en) Supporting interactions between different versions of software for accessing remote objects
US20020147696A1 (en) Process and system for providing name service scoping behavior
US20040226031A1 (en) Method of dynamically appending a library to an actively running program
US6847987B2 (en) System and method for extending client-server software to additional client platforms for servicing thin clients requests
Dave et al. Proxies, application interfaces, and distributed systems
US7039673B1 (en) Method and apparatus for dynamic command extensibility in an intelligent agent
US20020138665A1 (en) Binding of processes in network systems
Wollrath et al. Simple activation for distributed objects
US20060253858A1 (en) Software service application and method of servicing a software application
US20050262111A1 (en) Sytem for object discovery in heterogenous object systems
Dave et al. Proxies, Application Interfaces, and Distributed Systems zyxwvutsrqpo
Wollrath et al. Object-Oriented Technologies (COOTS)
JPH11327881A (ja) 分散オブジェクトのインタフェースリポジトリ移行方法

Legal Events

Date Code Title Description
PA0105 International application

Patent event date: 20010625

Patent event code: PA01051R01D

Comment text: International Patent Application

N231 Notification of change of applicant
PN2301 Change of applicant

Patent event date: 20011031

Comment text: Notification of Change of Applicant

Patent event code: PN23011R01D

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

Patent event code: PA02012R01D

Patent event date: 20041222

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

Patent event code: PE09021S01D

E601 Decision to refuse application
PE0601 Decision on rejection of patent

Patent event date: 20060720

Comment text: Decision to Refuse Application

Patent event code: PE06012S01D

Patent event date: 20060428

Comment text: Notification of reason for refusal

Patent event code: PE06011S01I