분산 객체

Distributed object
이미지는 서로 다른 시스템에 있는 분산 개체 간의 통신을 설명합니다.

분산 컴퓨팅에서 분산[citation needed] 객체는 (개체 지향 프로그래밍의 관점에서) 동일한 컴퓨터 상의 다른 프로세스 또는 네트워크를 통해 연결된 여러 컴퓨터에 있는 서로 다른 주소 공간에 분산되어 있는 객체이지만 데이터를 공유하고 메서드를 호출함으로써 함께 작동합니다.여기에는 원격 개체가 로컬 개체와 동일하게 나타나는 위치 투과성이 수반되는 경우가 많습니다.분산 객체 통신의 주요 방법은 원격 메서드 호출이며, 일반적으로 메시지 전달을 사용합니다. 한 객체가 원격 머신 또는 프로세스에서 다른 객체에 메시지를 보내 작업을 수행합니다.결과는 발신측 오브젝트로 반송됩니다.

분산된 물체는 1990년대 후반과 2000년대 초반에 인기가 있었지만 그 이후 [1]인기가 떨어졌다.

이 용어는 일반적으로 리플리케이트된 오브젝트나 라이브 분산 오브젝트 등 분산 컴퓨팅의 맥락에서 사용되는 기본 오브젝트 개념의 확장 중 하나를 가리킬 수도 있습니다.

  • 복제된 개체는 내부 상태 간에 높은 수준의 일관성을 달성하기 위해 분산된 다중 파티 프로토콜을 실행하고 요청에 조정된 방식으로 응답하는 소프트웨어 구성 요소(복제) 그룹입니다.복제본 그룹을 개체로 공동으로 참조하는 것은 복제본과 상호 작용하면 외부에서 볼 수 있는 동일한 상태와 동작이 노출된다는 사실을 반영합니다.
  • 라이브 분산 개체(또는 단순히 라이브 개체)[2]는 복제된 개체 개념을 내부적으로 분산 프로토콜을 사용할 수 있는 복제본 그룹으로 일반화하므로 로컬 상태 간의 일관성이 약할 수 있습니다.또한 라이브 분산 객체는 개체 지향적 관점에서 고유한 ID를 가지며 분산 상태와 동작을 캡슐화할 수 있는 분산 다중 파티 프로토콜의 실행 인스턴스로 정의할 수 있습니다.

인터넷 프로토콜 제품군을 참조하십시오.

로컬 개체와 분산 개체

로컬 개체와 분산 개체는 여러 [3][4]면에서 다릅니다.그 중 몇 가지는 다음과 같습니다.

  1. 라이프 사이클 : 분산 객체의 작성, 이행 및 삭제가 로컬 객체와 다릅니다.
  2. 참조: 분산 개체에 대한 원격 참조는 메모리 주소에 대한 단순한 포인터보다 복잡합니다.
  3. 요청 지연 시간 : 분산 개체 요청이 로컬 메서드 호출보다 훨씬 느립니다.
  4. 오브젝트 액티베이션 : 분산 오브젝트를 임의의 시점에서 오브젝트 요구에 대응할 수 없는 경우가 있습니다.
  5. 병렬화 : 분산 객체는 병렬로 실행할 수 있습니다.
  6. 통신: 분산 개체 요청에 사용할 수 있는 다른 통신 기본 요소가 있습니다.
  7. 장애 : 분산 객체는 일반적인 로컬 객체보다 장애 지점이 훨씬 많습니다.
  8. 보안 : 배포로 인해 공격에 취약해집니다.

크로스 플랫폼 직렬화 프로토콜인 Cap'n Proto의 RPC 기능은 분산 객체 프로토콜에 해당합니다.분산 객체 메서드 호출은 인터페이스 참조/[5]기능을 통해 실행할 수 있습니다(필요한 경우 단일 네트워크 요청으로 체인으로 연결).

분산 객체는 NSC Connection 클래스와 함께 Cocoa API를 사용하여 Objective-C에서 구현됩니다.

분산 객체는 Java RMI에서 사용됩니다.

CORBA를 사용하면 분산 혼합 객체 시스템을 구축할 수 있습니다.

DCOM은 Microsoft 플랫폼 상의 분산 객체용 프레임워크입니다.

DDObjects는 Borland Delphi를 사용하는 분산 객체용 프레임워크입니다.

Jt는 메시징 패러다임을 사용하는 분산 컴포넌트 프레임워크입니다.

JavaSpaces는 분산 공유 메모리(공간 기반)의 Sun 사양입니다.

Pyro는 Python 프로그래밍 언어를 사용하는 분산 개체를 위한 프레임워크입니다.

분산 루비(DRB)는 루비 프로그래밍 언어를 사용하는 분산 개체를 위한 프레임워크입니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ Martin Fowler, 2014년 8월 13일, 마이크로서비스와 분산 객체의 제1법칙
  2. ^ 오스트로프스키, 버먼, 돌레브, D, 앤, J. (2008)."실시간 분산 객체를 사용한 프로그래밍", 제22회 객체 지향 프로그래밍에 관한 유럽회의의 속행, 2008년 7월 7일-11일, J. Vitek, Ed., 컴퓨터 과학 강의 노트, vol.142, Springer-Ver-lagidel, berlin, 463.heberg, Berlin, Berlin.
  3. ^ W. Emerich (2000) Engineering distributed objects, John Wiley & Sons Ltd.
  4. ^ 사무엘 C.Kendall, Jim Waldo, Ann Wollrath 및 Geoff Wyant 1994.분산 컴퓨팅에 관한 주의사항.테크니컬 리포트미국 캘리포니아주 마운틴뷰 Sun Microsystems, Inc.
  5. ^ "Cap'n Proto: RPC Protocol".