KR0139409B1 - 안전한 옵젝트 등가 결정 - Google Patents

안전한 옵젝트 등가 결정

Info

Publication number
KR0139409B1
KR0139409B1 KR1019920018697A KR920018697A KR0139409B1 KR 0139409 B1 KR0139409 B1 KR 0139409B1 KR 1019920018697 A KR1019920018697 A KR 1019920018697A KR 920018697 A KR920018697 A KR 920018697A KR 0139409 B1 KR0139409 B1 KR 0139409B1
Authority
KR
South Korea
Prior art keywords
server
client
objects
server process
implemented
Prior art date
Application number
KR1019920018697A
Other languages
English (en)
Other versions
KR930008650A (ko
Inventor
해밀튼 그레이엄
엘. 포웰 마이클
채핀 존
Original Assignee
마이클 에이치. 모리스
선마이크로시스템즈 인코오퍼레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이클 에이치. 모리스, 선마이크로시스템즈 인코오퍼레이티드 filed Critical 마이클 에이치. 모리스
Publication of KR930008650A publication Critical patent/KR930008650A/ko
Application granted granted Critical
Publication of KR0139409B1 publication Critical patent/KR0139409B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)

Abstract

클라이언트-서버 모델에 기초한 옵젝트 지향 분산 시스템에서, 클라이언트 영역, 서버영역 및 옵젝트는 제1옵젝트에게 결정을 하는 제3옵젝트를 지명할 것을 요구하고 제2옵젝트에게 지명에 동의할 것을 요구하고 지명된 제3옵젝트에게 결정할 것을 요구함으로써 제1 및 제2서버영역에 의해 구현되는 제1 및 제2옵젝트가 등가인지를 클라이언트 영역이 결정하도록 하는 개선된 방식으로 구현되고, 이로써 제1 및 제2옵젝트 그리고 제1 및 제2서버 영역의 보안을 상하게 함이 없이 결정이 이루어지도록 한다.

Description

안전한 옵젝트 등가 결정
제1도는 본 발명의 사상을 내포하는 컴퓨터 시스템의 네트워크의 하드웨어 요소의 물리적 개관도,
제2도는 제1도에 도시된 컴퓨터 시스템중 하나의 소프트웨어 요소의 논리적 개관도,
제3도는 2옵젝트가 등가인지를 결정하여야 하는 제1도에 도시한 컴퓨터 시스템의 클라이언트 영역의 또 다른 논리 개관도,
제4a도 내지 제4c도는 2옵젝트가 등가인지를 결정하여야 하는 클라이언트 영역에 있는 본 발명의 방법을 도시한 흐름도.
본 발명은 컴퓨터 시스템, 클라이언트-서버 계산 및 옵젝트 및 지향 프로그래밍의 분야에 관한 것으로, 특히 본 발명은 클라이언트-서버 모델이 기초하여 분산 컴퓨터 시스템에서 옵젝트 지향 프로그래밍을 구현하는데 특별한 용도를 갖는 2옵젝트가 등가 옵젝트 인지를 클라이언트 프로세스가 결정하기 위한 방법 및 장치에 관한 것이다.
옵젝트 지향 시스템에 있어서, 옵젝트sms 데이터 및 데이터를 조작하기 위해 호출될 수 있는 연산을 구비하는 구성요소이다.
연산은 옵젝트에 호출을 보냄으로써 옵젝트상에 호출된다.
각각의 옵젝트는 옵젝트 형식을 가진다. 옵젝트 형식은 그 특정한 옵젝트 형식의 옵젝트에 수행될 수 있는 옵젝트 연산을 정한다.
옵젝트 연산은 옵젝트 자체와는 독립적으로 구성된다.
그밖에, 하나의 옵젝트 형식은 다른 옵젝트 형식에 대해 정하여진 그리고 구현된 옵젝트 연산을 몰려받을 수 있다. 옵젝트 지향 설계 및 프로그래밍에 관한 추가 설명에 대해서는 B.Meyer 저 Object-oriented software Construction, (Prentice Hall, 1988)을 참고한다.
클라이언트-서버 계산에는 전형적으로 컴퓨터를 연결하는 네트워크를 통해 서로 통신할 수 있는 1세트의 컴퓨터가 있다.
이들 컴퓨터의 몇몇은 다른 컴퓨터에게 기능성의 제공자로서의 역할을 한다.
기능성의 제공자는 서버로 알려져 있고, 기능성의 소비자는 클라이언트로 알려져 있다. 그러나, 클라이언트-서버 모델은 또한 구별되는 프로그램이 동일한 컴퓨터상에서 실행되는 경우에 일반화된다.
이들 구별되는 프로그램은 보호 메커니즘을 통해 서로 통신하고 기능성의 제공자 및 소비자로서 행동한다. 클라이언트-서버 계산의 추가 설명에 대해서는 J.K. Ousterhout외 다수 저 Medusa: An experiment in distributed operating system structure(Commuications of ACM 23(2),1980); R.M. Needham 및 A.J. Herbert저 The Cambridge Distributed Computing System, (Addison-Wesley, 1982); 및 J.K. Ousterhout 외 다수 저 The Sprite distributed operating system, (IEEE Computer, 1988)을 참고한다.
클라이언트-서버 모델에 기초한 옵젝트 지향 분산 시스템에서는 전형적으로 클라이언트에게 목적 지향 인터페이스를 제공하는 서버가 있다.
즉, 이들 서버는 데이터 및 연관된 연산을 구비하는 옵젝트를 지원한다.
클라이언트는 이들 옵젝트에 대한 억세스를 얻을 수도 있고 이들에 대한 호출을 실행할 수도 있다.
이들 호출은 클라이언트로부터 서버로 전송된다.
서버에서, 이들 호출은 옵젝트에 연관된 연산을 통해 실행된다.
이들 호출의 결과는 그 다음에 클라이언트로 다시 전송된다.
옵젝트 지향 분산 시스템의 추가 설명에 대해서는, E.D. Lazowska외 다수 저 The Eden System: A Technical Review, (IEEE Transactions on Software Engineering SE-11 (1), January 1985); Jul외 다수 저 Fine grained mobility in the Emerald System, (ACM Transactions on Computer Systems, 6(1), 1988); 및 B. Liskov저 Distributed programming in Argus, (Communications of the ACM, 31(3),1988)을 참고한다.
클라이언트 프로그램은 전형적으로 특정한 옵젝트를 참조하기 위해 옵젝트 핸들이 주어진다. 옵젝트 핸들은 옵젝트의 장소를 찾아내고 그것에 대한 호출을 실행하는 방법을 제공한다.
어떤 시스템에서는, 옵젝트 핸들은 클라이언트가 서버로부터 또는 기존의 클라이언트로부터 주어진 옵젝트에 대한 옵젝트 핸들만을 얻을 수 있도록 설계된다.
서버는 유효한 옵젝트 핸들에 대해 발하여지는 호출만을 실행할 것이며 그리고 서버는 입증하였고 그리고 정말로 기초를 이루는 옵젝트를 억세스하도록 허용된 클라이언트에게 옵젝트 핸들만을 발하도록 조심한다.
전형적으로, 1클라이언트가 안전한 핸들을 가지고 있으면 믿고 있는 다른 프로그램에 이 핸들을 넘겨준다.
다른 클라이언트에게 그 다음에 제1프로그램이 가졌던 기초를 이루는 옵젝트에 대한 동일한 억세스를 공유한다. 안전한 핸들에 기초한 분산 시스템의 추가 설명에 대해서는 A.D. Birrell 및 R.W. Needlham 저 A Universal File Server, (IEEE Transactions on Soft ware Engineering, S-6(5), 1980) 및 S.J. Mullender 외 다수 저 Amoeba-A Distributed Operation System for the 1990s (IEEE Computer, 23(5), 1990)을 참고한다.
클라이언트-서버 모델 및 안전한 핸들에 기초한 옵젝트 지향 분산 시스템에서, 클라이언트는 2개의 핸들이 주어지면, 이들 핸들이 둘다 동일한 기초를 이루는 옵젝트를 참조하는 것인지를 결정하기를 원할 수도 있다.
예를 들면, 그것은 관련된 옵젝트의 그래프를 지나갈 때 루프 검출을 수행하기를 원할 수도 있다. 간단한 해답은 클라이언트가 2핸들을 비교하는 것이다.
핸들이 동일하면, 옵젝트는 등가이다.
공교롭게도, 그러한 단순한 등가의 개념은 실제로 만족스럽지 못하다.
전형적으로, 다양한 상이한 핸들 포맷을 상이한 상황에서 사용할 수 있는 것이 바람직하다. 2핸들이 상이한 값을 가지고 있더라도 그들은 실제로 동일한 옵젝트를 참조할 수 있다.
또다른 상황에서는 2핸들은 주어진 서버의 구별되는 옵젝트를 참조할 수 있으나, 서버는 구별되는 옵젝트가 등가로 취급되기를 바랄 것이다.
또다른 상황에서, 2핸들은 구별되는 서버의 구별되는 옵젝트를 참조할 수 있으나, 구별되는 서버는 협동하는 서버이며 2옵젝트가 등가로 취급되기를 바랄 것이다.
옵젝트 등가의 개념은 정말로 진실이 옵젝트를 구현하는 서버에 의해서만 결정될 수 있는 의미론적 개념이다.
그것은 옵젝트 호출에 의해서도 이동 메커니즘에 의해서도 결정적으로 대답될 수 없다. 서버는 상이한 상황에서 적용될 루프검출등가 완전등가 국소등가와 같은 상이한 등가의 개념을 지원할 수도 있다.
예를들어, 명칭 서버를 구현하는 옵젝트의 컬렉션을 생각해 본다.
이들 명칭 서버는 방향 그래프 안으로 수집된다.
상이한 클라이언트는 특정한 명칭 서버에 대해 상이한 억세스 권리를 가진다.
그래서 상이한 클라이언트는 동일한 기초를 이루는 상태에 대한 상이한 억세스를 인캡슐레이트하는 상이한 옵젝트에 대한 핸들이 주어진다.
명칭 서버의 몇몇은 다수의 상이한 호스트상에서 실행되는 증복되는 서비스로서 존재할 수도 있다.
그래서 상이한 클라이언트가 그들을 중복 세트의 상이한 서버로 조회하는 핸들을 가질 수도 있다. 그러나, 루프 검출 목적으로, 상이한 복제 또는 특정한 명칭 서버에 대한 상이한 억세스 권리를 동일한 옵젝트를 나타내는 것으로 취급하는 것이 바람직할 수 있다.
이리하여, 2옵젝트가 그들의 핸들에 기초하여 등가인가를 결정하는데 구현하는 서버를 포함하는 것이 바람직하다.
가장 쉬운 메커니즘은 또다른 서버에 의해 구현되는 옵젝트의 핸들을 포함하여 서버에게 양 핸들을 제공하는 것입니다.
공교롭게도, 결정적인 어려움은 비집중 분산 시스템에서 일어난다.
2핸들중 하나는 실제로 보호되는 자원에 특권 억세스를 승인하는 핸들일 수 있다.
즉, 핸들은 핸들의 단순한 소유가 권한을 승인하는 능력으로서 작용할 수 있다. 그 경우에, 옵젝트 및 그들의 서버의 보안은 악의 있는 클라이언트에 의해 상하게 될 수 있다.
설명되는 것처럼, 본 발명의 종래기술의 단점을 극복하고, 클라이언트 프로세스가 옵젝트 및 그들의 서버의 보안을 상하게 함이 없이 2옵젝트가 등가인가를 안전하게 결정하기 위한 방법 및 장치를 제공한다.
클라이언트 프로세스가 2옵젝트가 등가 옵젝트 인지를 안전하게 결정하기 위한 방법 및 장치가 개시되어 있는데, 클라이언트-서버 모델에 기초한 분산 컴퓨터 시스템에서 옵젝트 지향 프로그래밍을 구현하는데 특별한 용도를 가지고 있다.
방법 및 장치는 제1 및 제2옵젝트 그리고 제1 및 제2서버 프로세스의 보안을 상하게 함이 없이 클라이언트 프로세서가 각각 제1 및 제2서버 프로세서에 의해 구현되는 제1 및 제2옵젝트가 등가 옵젝트 인지를 안전하게 결정하도록 한다.
본 발명하에서, 적어도 하나의 CPU를 구비하는 컴퓨터 시스템의 네트워크가 클라이언트 프로세서, 제1 및 제2서브 프로세서를 실행하기 위해 제공되며, 제1 및 제2서버 프로세서는 제1 및 제2옵젝트를 구현하기 위한 옵젝트 지향 인터페이스를 구현하여 제공한다.
클라이언트 프로세서는 우선 제1옵젝트에게 결정을 수행할 제3옵젝트를 지명할 것을 요구함으로써 제1 및 제2옵젝트가 등가인지를 결정한다.
지명의 수신이 있으면, 클라이언트 프로세서는 지명에 대한 제2옵젝트의 동의를 요구한다. 제2옵젝트가 동의하면, 클라이언트 프로세서는 제3옵젝트에게 결정을 수행할 것을 요구하며 2옵젝트가 등가 옵젝트 인지를 나타내는 결정 결과를 되돌려 주며, 그렇지 않으면 클라이언트 프로세서는 2옵젝트가 비등가 옵젝트라고 생각한다.
바람직한 실시예에서, 제1서버 프로세서는 제1옵젝트에 대한 클라이언트 프로세서의 지명 요구에 응답하여 제3옵젝트를 지명한다.
유사하게 제2서버 프로세서는 제2옵젝트에 대한 클라이언트 프로세서의 동의 요구에 응답하여 제3옵젝트의 지명에 대한 동의 또는 비동의를 제공한다.
제1 및 제2서버 프로세서는 동일한 서버 프로세서일 수도 있고 또는 협동하는 서버 프로세서일 수도 있다.
그밖에, 바람직한 실시예에서, 제1서버 프로세서와 협조하는 제2서버 프로세서는 제3옵젝트가 동의하기 전에 제1서버 프로세서에 의해 구현되는지를 확인하기 위해 검사한다. 제2서버 프로세서와 협조하는 제1서버 프로세서는 제3옵젝트가 결정을 수행하고 결정 결과를 되돌려 주기전에 제1 및 제2옵젝트가 각각 제1 및 제2서버 프로세서에 의해 구현되는지를 확인하기 위햇 검사한다.
제1 및 제2서버 프로세서는 확보된 방법으로 서로 통신한다.
또한, 바람직한 실시예에서, 제1, 제2 및 제3옵젝트는 대응하는 제1, 제2 및 제3옵젝트 핸들에 의해 참조된다. 제1서버 프로세서는 클라이언트 프로세서에 제3옵젝트 핸들을 되돌려 줌으로써 제3옵젝트를 지명한다.
클라이언트 프로세서는 되돌려 받은 제3옵젝트 핸들을 제2서버 프로세서에서 보냄으로써 동의를 요구하고, 제1 및 제2옵젝트 핸들을 제3옵젝트에게 보냄으로써 결정을 요구한다.
본 발명의 특징 및 이점은 도면과 관련된 본 발명의 바람직한 실시예의 다음 상세 설명으로부터 명백할 것이다.
다음에 나오는 상세한 설명은 대부분의 컴퓨터의 네트워크에서 실행되는 프로그램수순으로써 제시된다. 이들 수순설명 및 표현은 해당분야에 숙련된 다른 사람에게 작업의 요지를 더 효과적으로 전달하기 위해 해당분야에 숙련된 사람에 의해 사용되는 수단이다.
수순은 여기에서, 그리고 일반적으로 원하는 결과에 이르는 단계의 모순이 없는 순서라고 관념된다.
이들단계는 물리적 양의 물리적 조작을 요하는 것들이다.
보편적으로, 반드시는 아니지만, 이들 양은 기억, 이송, 결합, 비교 및 그밖에 다르게 조작될 수 있는 전기 또는 자기신호의 형태를 취한다.
주로 흔히 사용되는 이유로 해서, 이들 신호를 비트, 값, 요소, 기호, 옵젝트, 문자, 항, 숫자 또는 이와 유사한 것으로 지칭하는 것이 때때로 편리하다는 것이 입증되고 있다. 그러나, 모든 이들 그리고 유사한 항은 적절한 물리량과 연관되어 있어야 하며 이들 양에 붙여지는 편리한 명칭에 지나지 않는다는 것을 염두에 두어야 한다.
또한, 수행되는 조작은 인간에 의해 수행되는 정신적 연산과 흔히 연관되는 가산 또는 비교와 같은 용어로써 흔히 지칭된다.
본 발명의 일부를 형성하는 여기에서 설명되는 연산의 어느것에 있어서도 대부분의 경우에 인간의 이런 능력은 필요하지도 않고 바람직하지도 않다.; 연산은 기계연산이다. 본 발명의 연산을 위한 유용한 기계는 법용 디지털 컴퓨터 또는 다른 유사한 디바이스를 포함한다.
모든 경우에, 컴퓨터를 운용하는데 있어서의 방법 연산과 계산방법 자체 사이의 구별을 염두에 두어야 한다.
본 발명은 다른 원하는 물리적 신호를 발생하기 위해 전기적 또는 다른 물리적 신호를 처리하는데 있어서 컴퓨터를 운용하기 위한 방법 단계에 관한 것이다.
본 발명은 또한 이들 동작을 수행하기 위한 장치에 관한 것이다.
이 장치는 요구되는 목적에 맞게 특별히 구성될 수도 있고 또는 컴퓨터에 기억된 컴퓨터 프로그램에 의해 선택적으로 활성화 되거나 또는 재구성되는 범용 컴퓨터를 구비할 수 있다.
여기에서 제시되는 수순은 전적으로 어느 특정한 컴퓨터 또는 다른 장치와 관련되는 것은 아니다. 특히, 여러 가지 범용 기계가 여기서 기술된 사상에 따라 작성된 수순과 함께 사용될 수 있거나 또는 요구되는 방법 단계를 수행하기 위해 더 전문화된 장치를 구성하는 것이 더 편리할 수도 있다.
다양한 이들 기계에 요구되는 구조가 이하에서 주어지는 설명에서 나타날 것이다.
클라이언트 프로세스가 2옵젝트가 등가 옵젝트인지를 안전하게 결정하기 위한 방법 및 장치가 개시되어 있는데, 클라이언트-서버 모델에 기초한 분산 컴퓨터 시스템에서 옵젝트 지향 프로그래밍을 구현하는데 특별한 용도를 갖는다.
다음의 설명에서, 설명의 목적상, 특정한 숫자, 재질 및 형상이 본 발명의 완전한 이해를 제공하기 위해 기술된다.
그러나, 본 발명은 특별한 상세설명없이도 실시될 수 있다는 것은 해당분야에 숙련된 사람에게는 명백할 것이다.
다른 실시예에서, 잘 알려진 시스템은 본 발명을 불필요하게 가리지 않기 위해서서 다이어그램 또는 블록도 형태로 도시되어 있따.
이제 제1도를 참조하면, 하드웨어 소자에 의해 구성되는 본 발명의 사상을 내포하는 컴퓨터 시스템의 네트워크의 물리적인 개관을 도시하는 블록도가 보인다. 컴퓨터 시스템의 네트워크(10)는 적어도 하나의 컴퓨터 시스템(12a 또는 12b)을 구비한다. 하나 이상의 컴퓨터 시스템(12a 또는 12b)이 채용되면, 컴퓨터 시스템(12a 또는 12b)은 네트워크(22)를 통해 서로 결합된다.
각 컴퓨터 시스템(12a 또는 12b)은 중앙처리장치(CPU)(14a 또는 14b), 메모리유니트(16a 또는 16b), 대용량기억장치(18a 또는 18b) 및 입력/출력(I/O)(20a 또는 20b)를 구비한다.
속도, 크기와 같은 컴퓨터 시스템의 각각 (12a 또는 12b)에 있는 이들 하드웨어 소자의 특성은 서로 다를 수 있다.
이들 하드웨어 소자는 대부분의 범용 컴퓨터 시스템 및 거의 모든 전용 컴퓨터 시스템에서 전형적으로 발견되는 것들이다.
실제로, 컴퓨터 시스템(12a 또는 12b)의 각각에 내장된 여러 가지 하드웨어 소자는 이 넓은 카테고리의 데이터 처리시스템을 나타내는 것으로 의도되어 있다.
이들 컴퓨터 시스템(12a 또는 12b)의 역할을 충족하는 적당한 데이터 처리시스템의 특정한 예는 캘리포니아, 마운틴 뷔우에 있는 선마이크로시스템즈 인코오포레이티드에 의해 제조되는 컴퓨터 시스템을 포함한다.
비슷한 능력을 가진 다른 컴퓨터 시스템도 물론 하기에서 설명되는 기능을 수행하도록 간단한 방법으로 적응될 수 있다.
이제 제2도를 참조하면, 시스템 소프트웨어에 의해 구성되는 제1도에 도시된 컴퓨터중 하나의 논리적 개관을 도시하는 블록도이다.
시스템 소프트웨어(30)는 운영체제(32), 파일시스템(34) 및 적어도 하나의 언어 컴파일어(35)를 포함한다. 컴퓨터 시스템에서 실행되는 응용(38)은 시스템 소프트웨어(32 내지 36)에 의해 제공되는 기초를 이루는 시스템 서비스를 이용한다.
컴퓨터 시스템의 각각에서 사용되는 시스템 소프트웨어는 등가 기능을 제공하고 서로 통신할 수 있는 한 상이할 수 있다.
이들 소프트웨어 요소는 대부분의 범용 컴퓨터 시스템 및 거의 모든 전용 컴퓨터 시스템에서 전형적으로 발견되는 것들이다.
실제로, 컴퓨터 시스템의 각각에 내장된 여러 가지 소프트웨어 요소는 이 넓은 카테고리의 시스템 소프트웨어를 나타내는 것으로 의도되어 있다.
본 발명에 의해 사용되는 컴퓨터 시스템의 이들 시스템 소프트웨어(30)의 역할을 충족하는 적당한 시스템 소프트웨어의 특정한 예는 UNIX™ 운영체제, 그것의 파일 시스템 및 그것의 쉘 명령언어(UNIX™은 UNIX Laboratory의 등록상표이다)를 포함한다. 비슷한 능력을 갖는 다른 시스템 소프트웨어도 물론 하기에서 설명되는 기능을 수행하기 위해 간단하게 적응될 수 있다.
이제 제3도를 참조하면, 2옵젝트가 등가인지를 결정하야여 하는 제1도에 도시된 컴퓨터 시스템상의 클라이언트 영역의 논리적 개관을 도시하는 블록도가 보인다.
제3도에는, 2개의 옵젝트 핸들 A 및 B(52 및 54)를 갖는 클라이언트 영역 A(42)가 보인다.
옵젝트 핸들 A 및 B(52 및 54)는 클라이언트 영역 A(42) 및 다른 큰라이언트 영역(도시되지 않음)용으로 가능성을 제공하기 위해 서버영역 A 및 B(44 및 46)에 의해 구현되는 옵젝트 핸들 A 및 B(48 및 50)에 관한 것이다.
클라이언트 영역 A(42) 및 서버영역 A 및 B(44 및 46)는 실행되는 프로세스 즉 컴퓨터 프로그램의 액티브 예이다.
그들은 확보된 방법으로 서로 통신할 수 있다.
그들은 다른 영역(도시되지 않음) 뿐만아니라 서로에 의한 무성한 간섭으로부터 격리되고 보호된다. 그들은 컴퓨터 시스템중 하나에 있을 수도 있고 또는 그들은 제1도에 도시된 다수의 상이한 컴퓨터 시스템에 있을 수 있다. 또한, 서버영역 A 및 B(44 및 46)는 서로 협동할 수 있다.
옵젝트 A 및 B(48 및 50)는 응용에 의해 조작되는 하나 이상의 응용 및/또는 데이터를 나타낸다. 옵젝트 A 및 B(48 및 50)는 각각 옵젝트 핸들 A 및 B(52 및 54)에 의해 참조된다.
클라이언트 영역 A(42)는 서버영역 A 및 B(44 및 46)에 옵젝트 핸들 A 및 B(52 및 54)를 제공함으로써 옵젝트 A 및 B(48 및 50)를 억세스한다.
클라이언트 영역 A(42)은 어떤 특권 소오스로부터 옵젝트 핸들 A 및 B(48 및 50)를 얻는다. 옵젝트 핸들 A 및 B(48 및 50)는 클라이언트 영역 A(42)에 의해 용이하게 모조되지 않고 또한 유효성이 서버영역 A 및 B(44 및 46)에 의해 용이하게 결정될 수 있는 방식으로 구현된다.
그밖에, 옵젝트 A 및 B(48 및 50)는 그들이 서버영역 A 및 B(44 및 46)을 각각 구현하는 서버영역으로 식별할 수 있는 방식으로 구현된다.
이들 옵젝트 및 클라이언트/서버영역은 클라이언트-서버 모델 및 안전한 핸들에 기초한 대부분의 옵젝트 지향 분산 컴퓨터 시스템에서 발견되는 넓은 카테고리의 옵젝트 및 클라이언트/서버 영역을 나타내는 것으로 의도되었다.
실제로, 양 옵젝트 핸들 A 및 B(52 및 54)는 단일 서버영역내에서 2개의 상이한 서버 옵젝트를 지칭할 수 있다.
즉 서버영역 A 및 B(44 및 46)는 동일한 서버영역이다; 또는 서버영역 A 및 B(44 및 46)가 동일한 서버영역 일뿐아니라 동일한 서버 옵젝트 즉 옵젝트 핸들 A 및 B(48 및 50)가 동일한 옵젝트이다.
또한, 서버영역 A 및 B(44 및 46)가 동일한 서버영역이고 서버영역 A/B에 의해 구현되는 다른 옵젝트에만 등가이면, 옵젝트 핸들 A 및 B(48 및 50)는 그들의 구현하는 서버영역을 식별하는 능력없이 구현될 수 있다.
서버영역의 예는 화일서버일 수 있다. 예시적인 화일서버에 의해 구현되는 옵젝트의 예는 화일일 수 있다. 예시적인 파일을 참조하는 옵젝트 핸들의 예는 그 값이 용이하게 추측될 수 없도록 충분히 큰 범위에서 선택된 비밀화일 식별 번호일 수도 있다.
이제 제4a도 내지 제4c도를 참조하면, 클라이언트 영역이 제1 및 제2옵젝트가 등가인지를 결정하기 위한 본 발명의 방법을 도시한 3개의 흐름도가 보인다.
제4a도에서 보이는 것처럼, 클라이언트 영역은 제1 및 제2옵젝트가 등가인지를 결정하기 위해 제1옵젝트에게 제3옵젝트를 지명할 것을 요구한다(블록 62).
제3옵젝트를 지명한 회답이 클라이언트 영역에 제공된다(블록 64).
본 바람직한 실시예에서, 제1서버영역(제1옵젝트의 서버영역)은 제3옵젝트의 옵젝트 핸들을 되돌려 줌으로써 제3옵젝트의 지명으로써 회답한다.
또한, 제3옵젝트는 제1서버영역에 의해 구현되는 옵젝트이다.
그밖에, 제1서버영역이 또다른 서버영역과 협동하면, 제3옵젝트는 또한 제1서버영역을 구현하는 서버영역으로 식별할 수 있는 방식으로 구현된다.
클라이언트 영역은 그 다음에 제2옵젝트에게 제3옵젝트의 지명에 동의할 것을 요구한다(블록 66).
본 바람직한 실시예에서, 클라이언트 영역은 제2옵젝트에게 제3옵젝트의 옵젝트 핸들을 제공함으로써 제2옵젝트의 동의를 요구한다.
유사하게, 동의 또는 비동의 회답이 클라이언트 영역의 요구에 제공된다(블록 68).
본 바람직한 실시예에서, 제2서버영역(제2옵젝트의 서버영역)는 동의에 대해서는 참(TURE) 값을 그리고 비동의에 대해서는 거짓 (FALSE) 값을 제공한다.
제2옵젝트가 제3옵젝트의 지명에 비동의하면(분기 70b) 클라이언트 영역은 2옵젝트를 비등가라고 생각한다.
그 반면에, 제2옵젝트가 제3옵젝트의 지명에 동의하면, 클라이언트 영역은 그 다음에 제3옵젝트에게 결정을 할 것을 요구한다(블록 72).
본 바람직한 실시예에서, 제1옵젝트는 제1 및 제2옵젝트의 옵젝트 핸들을 제3옵젝트에게 보냄으로써 결정할 것을 요구한다.
결정이 있으면, 제3옵젝트는 결정 결과를 제1옵젝트에게 되돌려 준다(블록 74).
제4b도는 클라이언트 영역에 동의 또는 비동의 회답을 제공하는 단계를 도시하고 있다(제4a도의 68 참조).
본 바람직한 실시예에서, 제2서버영역은 제3옵젝트가 자기 자신에 의해 구현되는지를 결정하기 위해 검사한다(블록 76)
제3옵젝트가 제2서버영역 자체에 의해 구현되면(분기 76a), 앞에서 설명된 것처럼, 제2서버영역은 클라이언트 영역에 참 값을 되돌려주어 제3옵젝트 지명에 동의한다(블록 86).
제3옵젝트가 제2서버영역에 의해 구현되지 않으면 제2서버영역은 제3옵젝트로부터 제2옵젝트의 구현하는 서버영역 정체(제1서버영역)를 얻는다(블록78).
제3옵젝트가 제2서버영역과 협동하지 않는 구현하는 서버영역(즉, 제1서버영역)을 식별하면(분기 80b), 앞에서 설명된 것처럼, 제2서버영역은 클라이언트 영역에 거짓 값을 되돌려주어 제3옵젝트 지명에 비동의한다(블록 88).
제3옵젝트가 제2서버영역과 협동하는 구현하는 서버영역(즉 제1서버영역)을 식별하면(분기 80a), 제2서버영역은 구현하는 서버영역(즉 제1서버영역)에게 제3옵젝트가 정말로 식별된 서버영역(즉 제1서버영역)에 의해 구현되는지를 확인할 것을 요구한다.
확인되면(분기 84a), 앞에서 설명한 것처럼, 제2서버영역은 클라이언트 영역에 거짓 값을 되돌려주어 제3옵젝트 지명에 비동의한다(블록 88).
제4c도는 또한 2옵젝트가 등가인지를 결정하고 결정 결과를 클라이언트 영역에 제공하는 단계를 도시한다(제4a도의 74참조).
본 바람직한 실시예에서, 제1서버영역은 제1옵젝트 뿐만아니라 제2옵젝트가 자기자신에 의해 구현되는가를 결정하기 위해 검사한다(블록 90).
양 옵젝트가 제1서버영역 자신에 의해 구현되면(블록 90a), 앞에서 기술된 것처럼, 제1서버영역은 제1 및 제2옵젝트가 등가인지를 결정하고(블록 100) 따라서 결정결과를 되돌려 준다(블록 102 또는 104).
제2옵젝트가 제1서버영역에 의해 구현되지 않으면(분기 90b), 제1서버영역은 제2옵젝트로부터 제2옵젝트의 구현하는 서버영역 정체(즉, 제2서버영역)를 얻는다.
제2옵젝트가 제1서버영역과 협동하지 않는 구현하는 서버영역(즉, 제2서버영역)을 식별하면, 제2서버영역은 비등가의 결정결과를 되돌려 준다(블록 104).
제2옵젝트가 제1서버영역과 협동하는 구현하는 서버영역(즉, 제2서버영역)을 식별하면(분기 94a), 제1서버영역은 구현하는 서버영역(즉, 제2서버영역)에게 제2옵젝트가 정말로 식별된 서버영역(즉, 제2서버영역)에 의해 구현되는가를 확인할 것을 요구하고 등가 결정을 하는데 필요한 정보를 제공한다.
확인 및 필요한 정보의 수신이 있으면(98a), 앞에서 설명된 것처럼, 제1서버영역은 등가결정을 하고(블록 100) 따라서 클라이언트 영역에게 결정 결과를 되돌려준다(블록 102 또는 104); 그렇지 않으면 (분기 98b), 제1서버영역은 비등가의 결정 결과를 되돌려 준다(블록 104).
본 발명의 본 실시예로써 설명되었지만, 해당분야에 숙련된 사람은 발명이 설명된 실시예에 한정되지 않는다는 것을 알 것이다.
본 발명의 발명 및 장치는 첨부된 특허청구 항의 정신 및 범위내에서 수정 및 변경을 가하여 실시될 수 있다.
설명은 이리하여 본 발명을 제한하기 보다는 예시적인 것으로 간주되어야 한다.

Claims (21)

  1. 다수의 클라이언트 및 서버 프로세스를 실행하는 적어도 하나의 중앙처리장치(CPU)를 구비하며 상기 프로세스에 의해 조작되는 상기 프로세스 및 데이터가 옵젝트로서 구현되는 컴퓨터 시스템의 네트워크에 있어서, 제1 및 제2옵젝트 그리고 제1 및 제2서버 프로세스의 보안을 상하게 함이 없이 제1 및 제2옵젝트가 등가 옵젝트 인지를 클라이언트 프로세스 안전하게 결정하는 방법으로서; (a) 상기 클라이언트 프로세스에 의한 상기 클라이언트 프로세스에 대한 상기 결정을 수행하기 위해 상기 제1옵젝트에게 제3옵젝트를 지명할 것을 요구하는 단계; (b) 상기 지명으로써 상기 클라이언트 프로세스에게 회답하는 단계; (c) 상기 제2옵젝트에게 상기 클라이언트 프로세스에 의한 상기 지명에 동의 할 것을 요청하는 단계; 및 (d) 상기 클라이언트 프로세스에게 동의와 비동의중 하나를 회답하는 단계를 구비하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서, 상기 클라이언트 프로세스에 대한 상기 회답이 비동의 이면 상기 클라이언트 프로세스는 상기 제1 및 제2옵젝트를 비등가 옵젝트로서 간주하고; 그리고 상기 클라이언트 프로세스에 대한 상기 회답이 동의이면 상기 방법은; (e) 상기 제3옵젝트에게 상기 클라이언트 프로세스에 의한 상기 클라이언트 프로세스에 대한 상기 결정을 수행할 것을 요구하는 단계; 및 (f) 상기 클라이언트 프로세스에 대한 상기 결정을 수행하고 상기 제3옵젝트에 의한 상기 클라이언트 프로세스에게 결정 결과를 되돌려 주는 단계를 추가로 구비하며 상기 결정 결과는 상기 제1 및 제2옵젝트가 등가 옵젝트인 것을 특징으로 하는 방법.
  3. 제2항에 있어서, 상기 제1 및 제2 및 제3옵젝트는 각각 제1, 제2 및 제3옵젝트 핸들에 의해 참조되며; 상기 제3옵젝트는 상기 제3옵젝트 핸들을 상기 클라이언트 프로세스에 되돌려 줌으로써 지명하며; 상기 제2옵젝트의 동의는 상기 되돌려 받은 제3옵젝트 핸들을 상기 제2옵젝트에게 보냄으로써 상기 클라이언트 프로세스에 의해 요구되며; 그리고 상기 제3옵젝트는 상기 제1 및 제2옵젝트 핸들을 상기 제3옵젝트에게 보냄으로써 상기 클라이언트 프로세스에 의한 상기 클라이언트 프로세스에 대한 상기 결정을 수행할 것이 요구되는 것을 특징으로 하는 방법.
  4. 제2항에 있어서, 상기 제3옵젝트는 상기 제1서버 프로세스에 의해 지명되고 제1서버 프로세스는 지명에 대한 상기 요구를 통보받으며; 동의와 비동의중 상기 하나는 상기 제2서버 프로세스에 의해 회답되고 상기 제2서버 프로세스는 동의에 대한 상기 요구를 통보받는 것을 특징으로 하는 방법.
  5. 제4항에 있어서, 상기 제1 및 제2서버 프로세스는 동일한 서버 프로세스이며, 상기 제1, 제2 및 제3옵젝트는 상기 동일 서버 프로세스에 의해 구현되며, 상기 동일 서버 프로세스는 상기 제1, 제2 및 제3옵젝트가 상기 동일 서버 프로세스에 의해 구현되는 것을 확인하기 위해 검사하고, 상기 제3옵젝트는 상기 동일 서버 프로세스가 상기 제3옵젝트 지명에 동의 하기전에 검사되고, 상기 제1 및 제2옵젝트는 상기 제3옵젝트가 상기 클라이언트 프로세스에 대한 상기 결정을 수행하여 상기 결정 결과를 상기 클라이언트 프로세스에 되돌려 주기전에 검사되는 것을 특징으로 하는 방법.
  6. 제5항에 있어서, 상기 제1, 제2 및 제3옵젝트는 각각 제1, 제2 및 제3옵젝트 핸들에 의해 참조되며; 상기 제3옵젝트는 상기 제3옵젝트 핸들을 상기 클라이언트 프로세스에 되돌려 줌으로써 상기 동일 서버 프로세스에 의해 지명되며, 상기 제2옵젝트의 동의는 상기 되돌려 받은 제3옵젝트 핸들을 상기 제2옵젝트에 보냄으로써 상기 클라이언트 프로세스에 의해 요구되며; 상기 제3옵젝트는 상기 제3옵젝트가 상기 제3옵젝트 핸들을 사용하여 상기 동일 서버 프로세스에 의해 구현되는 것을 확인하기 위해 상기 동일 서버 프로세스에 의해 검사되며; 상기 제3옵젝트는 상기 제1 및 제2옵젝트 핸들을 상기 제3옵젝트에게 보냄으로써 상기 클라이언트 프로세스에 의한 상기 클라이언트 프로세스에 대한 상기 결정을 수행하도록 요구되며; 그리고 상기 제1 및 제2옵젝트는 상기 제1 및 제2옵젝트가 상기 제1 및 제2옵젝트 핸들을 사용하여 동일 서버 프로세스에 의해 구현되는 것을 확인하기 위해 상기 동일 서버 프로세스에 의해 검사되는 것을 특징으로 하는 방법.
  7. 제4항에 있어서, 상기 제1 및 제2 서버 프로세스는 협동하는 서버 프로세스이고, 각각은 다른 서버 프로세스에 의해 구현되는 옵젝트에 등가인 적어도 하나의 옵젝트를 구현하였으며; 상기 제1 및 제3옵젝트는 상기 제1서버 프로세스에 의해 구현되고, 상기 제2옵젝트는 상기 제2서버 프로세스에 의해 구현되고, 상기 제1, 제2 및 제3옵젝트는 상기 제1 및 제2서버 프로세스중 하나를 각각 그들의 구현하는 서버 프로세스로서 식별할 수 있으며; 상기 제1서버 프로세스와 협조하는 상기 제2서버 프로세스는 상기 제3옵젝트가 상기 제1서버 프로세스에 의해 구현되는지를 확인하기 위해 검사하고, 상기 제3옵젝트는 상기 제2서버 프로세스가 상기 제3옵젝트의 지명에 동의하기 전에 검사되고, 상기 제1서버 프로세스는 상기 제3옵젝트에 의해 상기 제3옵젝트의 구현하는 서버 프로세스로서 상기 제2서버 프로세스에게 식별되며; 그리고 상기 제2서버 프로세스와 협조하는 상기 제1서버 프로세스은 상기 제1 및 제2옵젝트가 각각 상기 제1 및 제2서버 프로세스에 의해 구현되는 것을 확인하기 위해 검사하고, 상기 제1 및 제2옵젝트는 상기 제3옵젝트가 상기 클라이언트 프로세스에 대한 상기 결정을 수행하여 상기 결정 결과를 상기 클라이언트 프로세스에 되돌려 주기 전에 검사되고, 상기 제2서버 프로세스는 상기 제1서버 프로세스에게 상기 제2옵젝트에 의한 상기 제2옵젝트의 구현하는 서버 프로세스로서 식별되는 것을 특징으로 하는 방법.
  8. 제7항에 있어서, 상기 제1, 제2 및 제3옵젝트는 각각 제1, 제2 및 제3옵젝트 핸들에 의해 참조되며; 상기 제3옵젝트는 상기 제3옵젝트 핸들을 상기 클라이언트 프로세스에 되돌려 줌으로써 상기 제1서버 프로세스에 의해 지명되며; 상기 제2서버프로세서의 동의는 상기 돌려 받은 제3옵젝트 핸들을 상기 제2서버 프로세스에 보냄으로써 상기 클라이언트 프로세스에 의해 요구되며; 상기 제3옵젝트는 상기 제3옵젝트가 상기 제3옵젝트 핸들을 사용하여 상기 제1서버 프로세스에 의해 구현되는 것을 확인하기 위해 상기 제1서버 프로세스에 의해 구현되는 것을 확인하기 위해 상기 제1서버 프로세스와 협조하여 상기 제2서버 프로세스에 의해 검사되고, 상기 제3옵젝트 핸들은 상기 제2서버 프로세스에 의해 상기 제1서버 프로세스에 보내지며; 상기 제3옵젝트는 상기 제1 및 제2옵젝트 핸들을 상기 제3옵젝트에게 보냄으로써 상기 클라이언트 프로세스에 의한 상기 클라이언트 프로세스에 대한 상기 결정를 수행하도록 요구되며; 상기 제1 및 제2옵젝트는 상기 제1 및 제2옵젝트가 상기 제1 및 제2옵젝트 핸들을 각각 사용하여 상기 제1 및 제2서버 프로세스에 의해 구현되는 것을 확인하기 위해 상기 제2서버 프로세스와 협조하여 상기 제1서버 프로세스에 의해 검사되고, 상기 제2옵젝트 핸들은 상기 제1서버 프로세스에 의해 상기 제2서버 프로세스에 보내지며; 그리고 상기 결정은 상기 제1 및 제2옵젝트 핸들을 사용하여 상기 제3옵젝트에 의해 이루어지고, 옵젝트 정보는 상기 제2옵젝트에 관한 것이고 상기 옵젝트 정보는 상기 제2서버 프로세스에 이해 상기 제3옵젝트에 제공되는 것을 특징으로 하는 방법.
  9. 제7항에 있어서, 상기 제1 및 제2서버는 확보된 방식으로 서로 통신하는 것을 특징으로 하는 방법.
  10. 다수의 클라이언트 및 서버 프로세스를 실행하는 적어도 하나의 중앙처리장치(CPU)를 구비하며 상기 프로세스에 의해 조작되는 상기 프로세스 및 데이터는 옵젝트로서 구현되는 컴퓨터 시스템의 네트워크에 있어서, 제1 및 제2옵젝트 그리고 제1 및 제2서버 프로세스의 보안을 상하게 함이 없이 제1 및 제2서버 프로세스에 의해 각각 지원되는 제1 및 제2옵젝트가 등가 옵젝트인지를 클라이언트 프로세스 안전하게 결정하는 방법으로서; (a) 상기 클라이언트 프로세스를 실행하고, 상기 클라이언트 프로세스에 대한 상기 결정을 수행하기 위해 상기 제1옵젝트에게 제3옵젝트를 지명할 것을 요구하는데 있어서 상기 클라이언트 프로세스를 용이하게 하고, 그리고 잇따라서 상기 제2옵젝트에게 상기 지명에 동의할 것을 요구하기 위한 클라이언트 CPU를 포함하는 클라이언트 수단; (b) 상기 제1서버 프로세스를 실행하고 상기 제1옵젝트를 조작하고 상기 지명으로써 상기 클라이언트 프로세스에 회답하는 것을 용이하게 하기 위해 제1서버 CPU를 포함하며 상기 제1클라이언트 수단에 결합되는 제1서버 수단; (c) 상기 제2서버 프로세스를 실행하고 상기 제2옵젝트를 조작하고 상기 클라이언트 프로세스에게 동의와 비동의중 하나를 회답하는 것을 용이하게 하기 위해 제2서버 CPU를 포함하며 상기 제1클라이언트 수단에 결합되는 제2서버 수단을 구비하는 것을 특징으로 하는 장치.
  11. 제10항에 있어서, 상기 클라이언트 프로세스에 대한 상기 회답이 비동의 이면, 상기 클라이언트 프로세스는 상기 제1 및 제2옵젝트를 비등가 옵젝트로 간주하고; 그리고 상기 클라이언트 프로세스에 대한 상기 회답이 동의이면, 상기 클라이언트 수단은 또한 상기 제3옵젝트에게 상기 클라이언트 프로세스에 대한 상기 결정을 수행할 것을 요구하는데 있어서 상기 클라이언트 프로세스를 용이하게 하기 위한 것이며, 상기 제1서버 수단은 또한 상기 제3옵젝트를 조작하고 상기 클라이언트 프로세스에 대한 상기 결정을 수행하는데 있어서 상기 제3옵젝트를 용이하게 하고 결정 결과를 상기 클라이언트 프로세스에 되돌려 주기 위한 것이며, 상기 결정 결과는 상기 제1 및 제2옵젝트가 등가 옵젝트 인지를 나타내는 것을 특징으로 하는 장치.
  12. 제11항에 있어서, 상기 제1, 제2 및 제3옵젝트는 각각 제1, 제2 및 제3옵젝트 핸들에 의해 참조되며; 상기 클라이언트 수단은 상기 되돌려 받은 제3옵젝트 핸들을 상기 제2옵젝트에게 보내는 것을 용이하게 함으로써 상기 제2옵젝트에게 상기 지명에 동의할 것을 잇따라서 요구하는 것을 용이하게 하고 상기 제1 및 제2옵젝트 핸들을 상기 제3옵젝트에게 보내는 것을 용이하게 함으로써 상기 제3옵젝트에게 상기 클라이언트 프로세스에 대한 상기 결정을 수행하도록 요구하는 것을 용이하게 하며; 그리고 상기 제1서버 수단은 상기 제3옵젝트 핸들을 상기 클라이언트 프로세스에 되돌려 주는 것을 용이하게 함으로써 상기 클라이언트 프로세스에게 상기 지명으로써 회답하는 것을 용이하게 하는 것을 특징으로 하는 장치.
  13. 제11항에 있엇, 상기 제3옵젝트는 상기 제1서버 프로세스에 의해 지명되고, 상기 제1서버 프로세스는 지명에 대한 상기 요구를 통보받으며; 동의와 비동의중 상기 하나는 상기 제2서버 프로세스에 의해 회답되고, 상기 제2서버 프로세스는 동의에 대한 상기 요구를 통보받는 것을 특징으로 하는 장치.
  14. 제13항에 있어서, 상기 제1 및 제2서버 수단은 동일한 서버수단이며; 상기 제1 및 제2서버 프로세스는 동일한 서버 프로세스이며; 상기 제1, 제2 및 제3옵젝트는 상기 동일 서버 프로세스에 의해 구현되며; 상기 동일 서버 수단은 또한 상기 제1, 제2 및 제3옵젝트가 상기 동일 서버 프로세스에 의해 구현되는 지를 확인하기 위해 검사하는데 있어서 상기 동일 서버 프로세스를 용이하게 하기 위한 것이고, 상기 제3옵젝트는 상기 동일 서버 프로세스가 상기 제3옵젝트의 지명에 동의 하기전에 검사되고, 상기 제1 및 제2옵젝트는 상기 제3옵젝트가 상기 클라이언트 프로세스에 대한 상기 결정을 수행하여 상기 결정 결과를 상기 클라이언트 프로세스에 되돌려 주기 전에 검사되는 것을 특징으로 하는 장치.
  15. 14항에 있어서, 상기 제1, 제2 및 제3옵젝트는 각각 제1, 제2 및 제3옵젝트 핸들에 의해 참조되며; 상기 클라이언트 수단은 상기 되돌려 받은 제3옵젝트 핸들을 상기 제2옵젝트에게 보내는 것을 용이하게 함으로써 상기 제2옵젝트의 동의를 요구하는데 있어서 상기 클라이언트 프로세스를 용이하게 하고, 상기 제1 및 제2옵젝트 핸들을 상기 제3옵젝트에 보내는 것을 용이하게 함으로써 상기 제3옵젝트에게 상기 클라이언트 프로세스에 대한 상기 결정을 수행하도록 요구하는데 있어서 상기 클라이언트 프로세스를 용이하게 하며; 상기 동일 서버 수단은 상기 제3옵젝트 핸들을 상기 클라이언트 프로세스에 되돌려 주는 것을 용이하게 함으로써 상기 클라이언트 프로세스에게 지명으로써 회답하는데 있어서 상기 동일 서버 프로세스를 용이하게 하고, 상기 제3옵젝트 핸들을 사용하여 상기 제3옵젝트가 상기 동일 서버 프로세스에 의해 구현되는지를 확인학 위해 상기 제3옵젝트를 검사하는데 있어서 상기 동일 서버 프로세스를 용이하게 하고, 상기 제1 및 제2옵젝트 핸들을 사용하여 상기 제1 및 제2옵젝트가 상기 서버 프로세스에 의해 구현되는지를 확인하기 위해 상기 제1 및 제2옵젝트를 검사하는데 있어서 상기 동일 서버 프로세스를 용이하게 하는 것을 특징으로 하는 장치.
  16. 제13항에 있어서, 상기 제1 및 제2서버 프로세스는 협동하는 서버 프로세스이고, 각각은 다른 서버 프로세스에 의해 구현되는 옵젝트와 등가인 적어도 하나의 옵젝트를 구현하였으며; 상기 제1 및 제3옵젝트는 상기 제1서버 프로세스에 의해 구현되고, 상기 제2옵젝트는 상기 제2서버 프로세스에 의해 구현되고, 상기 제1, 제2 및 제3옵젝트는 상기 제1 및 제2서버 프로세스중 하나를 그들의 구현하는 서버 프로세스로 각각 식별할 수 있으며; 상기 제1 및 제2서버 수단은 또한 서로 결합되며; 상기 제1서버 수단은 또한 상기 제1 및 제2옵젝트가 각각 상기 제1 및 제2서버 프로세스에 의해 구현되는지를 확인하기 위해 검사하는데 있어서 상기 제2서버 프로세스와 협조하여, 상기 제1서버 프로세스를 용이하게 하기 위한 것이고 상기 제1 및 제2옵젝트는 상기 제3옵젝트가 상기 클라이언트 프로세스에 대한 상기 결정을 수행하여 상기 결정결과를 상기 클라이언트 프로세스에게 되돌려 주기 전에 검사되고, 상기 제2서버 프로세스는 상기 제2옵젝트에 의해 상기 제2옵젝트의 구현하는 서버 프로세스로서 상기 제1서버 프로세스에게 식별되며; 그리고 상기 제2서버 수단은 또한 상기 제3옵젝트가 상기 제1서버 프로세스에 의해 구현되는지를 확인하기 위해 검사하는데 있어서 상기 제1서버 프로세스와 협조하여 상기 제2서버 프로세스를 용이하게 하기 위한 것이고, 상기 제3옵젝트는 상기 제2서버 프로세스가 상기 제3옵젝트의 지명에 동의 하기전에 검사되고, 상기 제1서버 프로세스는 상기 제3옵젝트에 의해 상기 제3옵젝트의 구현하는 서버 프로세스로서 상기 제2서버 프로세스에게 식별되는 것을 특징으로 하는 장치.
  17. 제16항에 있어서, 상기 제1, 제2 및 제3옵젝트는 각각 제1, 제2 및 제3옵젝트 핸들에 의해 참조되며; 상기 클라이언트 수단은 상기 되돌려 받은 제3옵젝트 핸들을 상기 제2서버에게 보내는 것을 용이하게 함으로써 상기 제2서버 프로세서의 동의를 요구하는데 있어서 상기 클라이언트 프로세스를 용이하게 하고, 상기 제1 및 제2옵젝트 핸들을 상기 제3옵젝트에게 보내는 것을 용이하게 함으로써 상기 제3옵젝트에게 상기 클라이언트 프로세스에 대한 상기 결정을 수행하도록 요구하는데 있어서 상기 클라이언트 프로세스를 용이하게 하며; 제1서버 수단은 상기 제3옵젝트 핸들을 상기 클라이언트 프로세스에게 되돌려 주는 것을 용이하게 함으로써 상기 클라이언트 프로세스에게 상기 제3옵젝트의 지명으로써 회답하는데 있어서 상기 제1서버 프로세스를 용이하게 하고, 상기 제3옵젝트 핸들의 사용을 용이하게 함으로써 상기 제3옵젝트가 상기 제1서버 프로세스에 의해 구현되는지를 확인하기 위해 검사하는데 있어서 상기 제1서버 프로세스와 협조하여 상기 제2서버 프로세스를 용이하게 하고, 상기 제1옵젝트 핸들의 사용 및 상기 제2옵젝트 핸들을 상기 제2서버 프로세스에게 보내는 것을 각각 용이하게 함으로써 상기 제1 및 제2옵젝트가 상기 제1 및 제2서버 프로세스에 의해 구현되는지를 확인하기 위해 상기 제1 및 제2옵젝트를 검사하는데 있어서 상기 제2서버 프로세스와 협조하여 상기 제1서버 프로세스를 용이하게 하고, 상기 제1 및 제2옵젝트 핸들의 사용을 용이하게 함으로써 상기 결정을 하는데 있어서 상기 제3옵젝트를 용이하게 하고, 옵젝트 정보는 상기 제 2옵젝트에 관한 것이고, 상기 옵젝트 정보는 상기 제 2서버 프로세스에 의해 상기 제3에게 제공되며; 그리고 상기 제3옵젝트 핸들을 상기 제1서버 프로세스에 보내는 것을 용이하게 함으로써 상기 제3옵젝트 가 상기 제1서버 프로세스에 의해 구현되는지를 확인하기 위해 검사하는데 있어서 상기 제1서버 프로세스와 협조하여 상기 제2서버 프로세스를 용이하게 하고, 상기 제2옵젝트 핸들의 사용을 용이하게 함으로써 상기 제2옵젝트가 상기 제2서버 프로세스에 의해 구현되는지를 확인하기 위해 검사하는데 있어서 상기 제2서버 프로세스와 협조하여 상기 제1서버 프로세스를 용이하게 하고, 상기 제2옵젝트에 관한 상기 옵젝트 정보를 상기 제3옵젝트에게 제공하는 것을 용이하게 함으로써 상기 결정을 하는데 있어서 상기 제3옵젝트를 용이하게 하는 것을 특징으로 하는 장치.
  18. 제16항에 있어서, 상기 제1 및 제2서버 수단은 상기 제1 및 제2서버가 확정된 방식으로 서로 통신하는 것을 용이하게 하는 것을 특징으로 하는 장치.
  19. 제11항에 있어서, 상기 클라이언트 CPU, 상기 제1서버 CPU 및 상기 제2서버 CPU중 적어도 2개는 동일한 CPU인 것을 특징으로 하는 장치.
  20. 다수의 클라이언트 및 서버 프로세스를 실행하는 중앙처리장치(CPU)를 구비하며 상기 프로세스에 의해 조작되는 상기 프로세스 및 데이터는 옵젝트로서 구현되는 개선된 컴퓨터 시스템에 있어서, 상기 개선은 제1 및 제2옵젝트 그리고 상기 제1 및 제2서버 프로세스의 보안을 상하게 함이 없이 상기 서버 프로세스의 제1 및 제2에 의해 각각 지원되는 제1 및 제2옵젝트가 등가 옵젝트 인지를 안전하게 결정하는 방법을 사용하는 상기 클라이언트 프로세스를 포함하는 것을 특징으로 하는 개선된 컴퓨터 시스템.
  21. 다수의 클라이언트 및 서버 프로세스를 실행하는 다수의 중앙처리장치(CPU)를 구비하며 상기 프로세스에 의해 조작되는 상기 프로세스 및 데이터가 옵젝트로서 구현되는 컴퓨터 시스템의 개선된 네트워크에 있어서, 상기 개선은 상기 제1 및 제2옵젝트 그리고 상기 제1 및 제2서버 프로세스의 보안을 상하게 함이 없이 상기 서버 프로세스의 제1 및 제2에 의해 각각 지원되는 제1 및 제2옵젝트가 등가 옵젝트 인지를 안전하게 결정하는 방법을 사용하는 상기 클라이언트 프로세스를 포함하는 것을 특징으로 하는 개선된 컴퓨터 시스템의 네트워크.
KR1019920018697A 1991-10-30 1992-10-12 안전한 옵젝트 등가 결정 KR0139409B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US07/787,320 US5301316A (en) 1991-10-30 1991-10-30 System for determination of the equivalence of two objects without compromising then done by a third object nominated by one and accetped by the other
US787.320 1991-10-30
US787,320 1991-10-30

Publications (2)

Publication Number Publication Date
KR930008650A KR930008650A (ko) 1993-05-21
KR0139409B1 true KR0139409B1 (ko) 1998-07-01

Family

ID=25141111

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019920018697A KR0139409B1 (ko) 1991-10-30 1992-10-12 안전한 옵젝트 등가 결정

Country Status (5)

Country Link
US (1) US5301316A (ko)
EP (1) EP0540166B1 (ko)
JP (1) JPH05274241A (ko)
KR (1) KR0139409B1 (ko)
DE (1) DE69229588T2 (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5951300A (en) * 1997-03-10 1999-09-14 Health Hero Network Online system and method for providing composite entertainment and health information
US5481715A (en) * 1993-12-15 1996-01-02 Sun Microsystems, Inc. Method and apparatus for delegated communications in a computer system using trusted deputies
FR2714746B1 (fr) * 1993-12-31 1996-02-02 Bull Sa Procédé de simulation d'une architecture "serveur" à partir d'une architecture "client".
EP0684553B1 (en) * 1994-05-26 2004-06-16 Sun Microsystems, Inc. Method and apparatus for generating and using short operation identifiers in object oriented systems
EP2270687A2 (en) * 1995-04-11 2011-01-05 Kinetech, Inc. Identifying data in a data processing system
US5878428A (en) * 1995-11-20 1999-03-02 International Business Machines Corporation System, method, and article of manufacture for adding transactional recovery to a binary class in an object oriented system
US5867708A (en) * 1995-11-20 1999-02-02 International Business Machines Corporation System, method, and article of manufacture for adding concurrency to a binary class in an object oriented system
US5873092A (en) * 1995-12-14 1999-02-16 International Business Machines Corporation Information handling system, method, and article of manufacture including persistent, distributed object name services including shared properties
US5765153A (en) * 1996-01-03 1998-06-09 International Business Machines Corporation Information handling system, method, and article of manufacture including object system authorization and registration
US5720036A (en) * 1996-01-05 1998-02-17 Network Imaging Corporation Enterprise multimedia data processing system and method using scalable object-based architecture
US5809506A (en) * 1996-01-22 1998-09-15 International Business Machines Corporation Method for creating an object base of persisent application objects in an object oriented programming environment and apparatus related thereto
US5806074A (en) * 1996-03-19 1998-09-08 Oracle Corporation Configurable conflict resolution in a computer implemented distributed database
US6281893B1 (en) * 1996-04-04 2001-08-28 Sun Microsystems, Inc. Method and apparatus for providing an object oriented approach to a device independent graphics control system
US5727145A (en) * 1996-06-26 1998-03-10 Sun Microsystems, Inc. Mechanism for locating objects in a secure fashion
JPH11143840A (ja) * 1997-11-05 1999-05-28 Hitachi Ltd 分散オブジェクトシステムおよびその方法
US6725373B2 (en) * 1998-03-25 2004-04-20 Intel Corporation Method and apparatus for verifying the integrity of digital objects using signed manifests
US6163859A (en) * 1998-12-02 2000-12-19 Support.Com, Inc. Software vault
US20050050482A1 (en) * 2003-08-25 2005-03-03 Keller S. Brandon System and method for determining applicable configuration information for use in analysis of a computer aided design
JP5407102B2 (ja) * 2005-10-17 2014-02-05 荒川化学工業株式会社 環状オレフィン系樹脂基材表面保護用の活性エネルギー線硬化性樹脂組成物
US8185576B2 (en) 2006-03-14 2012-05-22 Altnet, Inc. Filter for a distributed network
EP2701090A1 (en) * 2012-08-22 2014-02-26 Aahlstö OÜ Method and system for enforcing 3D restricted rights in a rapid manufacturing and prototyping environment

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5220657A (en) * 1987-12-02 1993-06-15 Xerox Corporation Updating local copy of shared data in a collaborative system
US5142674A (en) * 1988-03-08 1992-08-25 International Business Machines Corporation Interchange object data base index which eliminates the need for private copies of interchange documents files by a plurality of application programs
US5138712A (en) * 1989-10-02 1992-08-11 Sun Microsystems, Inc. Apparatus and method for licensing software on a network of computers
US5202982A (en) * 1990-03-27 1993-04-13 Sun Microsystems, Inc. Method and apparatus for the naming of database component files to avoid duplication of files
US5204961A (en) * 1990-06-25 1993-04-20 Digital Equipment Corporation Computer network operating with multilevel hierarchical security with selectable common trust realms and corresponding security protocols

Also Published As

Publication number Publication date
EP0540166A2 (en) 1993-05-05
EP0540166B1 (en) 1999-07-14
KR930008650A (ko) 1993-05-21
US5301316A (en) 1994-04-05
DE69229588D1 (de) 1999-08-19
DE69229588T2 (de) 2000-02-03
EP0540166A3 (en) 1993-06-09
JPH05274241A (ja) 1993-10-22

Similar Documents

Publication Publication Date Title
KR0139409B1 (ko) 안전한 옵젝트 등가 결정
US5481715A (en) Method and apparatus for delegated communications in a computer system using trusted deputies
EP0384610B1 (en) Tamper resistant access authorising method
US6282652B1 (en) System for separately designating security requirements for methods invoked on a computer
US6389540B1 (en) Stack based access control using code and executor identifiers
US5664098A (en) Dual decor capability for a host system which runs emulated application programs to enable direct access to host facilities for executing emulated system operations
Saydjari et al. LOCK Trak: Navigating uncharted space
WO1996010224A2 (en) Mechanism for linking together the files of emulated and host system for access by emulated system users
Karjoth et al. A security model for aglets
Kowalski et al. Protection in the BirliX operating system
Liedtke Clans & chiefs
Ismail A Secure Mobile Agents Platform.
Boebert et al. A further note on the confinement problem
Tripathi et al. Ajanta-a mobile agent programming system
Abdalla et al. Security issues in agent based computing
Alves-Foss The architecture of secure systems
CN116910804A (zh) 隐私计算方法、装置、终端设备及存储介质
Putrevu A framework for a dynamic invocation interface and high-level interoperability for mobile agent platforms
CN114398597A (zh) 客户端应用侧的安全加固方法、装置及电子设备
Gopinath Static Program Analysis for Security.
Ooi Access control for an object-oriented distributed platform
Foley et al. Supporting heterogeneous middleware security policies in webcom
Ando et al. An Architecture of a Secure Database for Networked Collaborative Activities.
Tripathi et al. System-Level Issues for Agent Based Distributed Computing
EP1169835A2 (en) Method and system for verifying the trustworthiness of downloaded proxy code

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20040219

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee