휴대용 분산 객체
Portable Distributed ObjectsPDO(Portable Distributed Objects)는 컴퓨터 네트워크에서 원격으로 실행할 수 있는 객체 지향 코드를 만들기 위한 API(Application Programming Interface)입니다.NeXT Computer, Inc.에서 OpenStep 시스템을 사용하여 개발되었으며 Objective-C를 사용하면 패키지를 매우 쉽게 작성할 수 있습니다.CORBA와 같은 유사한 시스템에 비해 매우 가볍고 빠른 것이 특징이다.
Solaris, HP-UX 및 OPENSTEP 시스템의 모든 버전에서 PDO 버전을 사용할 수 있었습니다.단, SunOS 및 Solaris 버전이 출시된 후에 배포될 것으로 예상되는 Digital Unix 버전(그 후 OSF/1)에 대한 합의도 발표되었습니다.이러한 플랫폼의 제품 라이센스 가격은 "소규모 서버"에서 2,500달러에서 "대규모 서버"[1]에서 10,000달러까지 다양했습니다.Microsoft OLE와 함께 작동하는 버전도 D'[2]OLE로 불리며, 모든 플랫폼에서 PDO를 사용하여 작성된 분산 코드를 Microsoft 시스템에 로컬 OLE 개체인 것처럼 표시할 수 있습니다.
PDO는 1990년대 초에 만들어진 다수의 분산 객체 시스템 중 하나로, GUI 기반 마이크로컴퓨터의 "프런트 엔드" 애플리케이션이 처리 및 데이터 스토리지를 위해 메인프레임 및 미니컴퓨터에서 실행되는 코드를 호출하는 설계 모델입니다.Microsoft는 OLE를 Component Object Model(COM)[citation needed] 및 DCOM이라고 하는 유사한 분산 버전으로 발전시키고 있었고 IBM은 System Object Model(SOM/DSOM)을 보유하고 있었으며 Sun Microsystems는 분산 개체를 어디서나 홍보하고 있었으며 소규모 플레이어들도 다수 있었습니다.COM의 [citation needed]제한된 기능을 제외하고, 이러한 시스템의 대부분은 매우 무겁고, 매우 크고 느린 경향이 있으며, 종종 사용이 매우 어려웠습니다.
반면 PDO는 이동성과 배포를 모두 처리하기 위해 Objective-C 런타임에 소수의 기능에 의존했습니다.주요 기능은 모든 클래스에서 "두 번째 기회" 메서드를 지원하는 언어였습니다. 객체가 메서드를 지원하지 않아 메서드 호출이 실패하면(일반적으로 강력한 타이핑으로 인해 대부분의 언어에서 허용되지 않음), 런타임은 메시지를 콤팩트한 형식으로 번들하여 객체의 메시지로 되돌립니다.forwardInvocation메서드를 사용합니다.[3]
의 통상적인 동작forwardInvocation메시지(「발신」)[clarification needed]로부터 취득한 상세를 포함한 에러를 반환하는 것이었습니다.PDO는 대신 다음과 같은 새로운 오브젝트를 다수 제공했습니다.forwardInvocation호출 오브젝트를 네트워크상의 다른 머신에 전달한 메서드.다른 네트워크와 플랫폼을 지원하는 다양한 버전이 있습니다.일부 네트워크 셋업(일반적으로 몇 줄) 후에는 PDO 오브젝트가 로컬로 인스턴스화되어 시스템상의 다른 오브젝트와 동일하게 호출되기 때문에 리모트오브젝트에서의 호출 방식은 거의 보이지 않습니다.그런 다음 PDO 개체는 처리를 위해 호출을 원격 시스템으로 전달하고 결과를 반환할 때 번들을 해제했습니다.
CORBA와 비교했을 때 PDO 프로그램의 크기는 일반적으로 1/10 이하였습니다. NeXT 직원은 약 15줄의 코드로 [4]여러 페이지의 CORBA 기사를 재실장하는 방법을 보여주는 잡지에 쓰는 것이 일반적이었습니다.프로그래밍 측면에서 PDO만큼 사용하기 쉬운 것은 거의 없었습니다.
그러나 PDO는 기능하기 위해 Objective-C에 전적으로 의존했습니다.당시 C++가 더 널리 사용되었고 코드베이스를 완전히 새로운 언어와 패러다임으로 바꾸려는 노력이 너무 [citation needed]부담스러운 것으로 여겨졌기 때문에, 이것은 대부분의 사람들이 지불하기를 꺼리는 대가였다.PDO는 전혀 활용되지 않았고, NeXT는 1995년에 새로운 WebObjects 프레임워크에 중점을 두었습니다.
로컬 프로세스에 알려진 개체를 다른 프로세스에서 인스턴스화하는 기능은 알려진 보안 취약성으로, Apple은 이러한 이유로 PDO 사용을 강력히 권장하지 않습니다.
OS X 플랫폼 외에 분산 오브젝트의 [5]독자적인 실장이 있는 GNUstep도 있습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ Nash, Kim S. (28 March 1994). "NextStep port to DEC OSF/1 on way". Computerworld. p. 24. Retrieved 5 March 2022.
- ^ "NeXT Ships D'OLE Release 3.5 and Enterprise Objects Framework 1.1 for Windows NT". Business Wire. Business Wire. January 15, 1996. Archived from the original on May 14, 2005. Retrieved 2008-02-08.
- ^ Apple, Inc. (October 19, 2009). "Message Forwarding". Retrieved 2017-11-22.
- ^ Ernest N. Prabhakar (August 1, 1995). "Implementing Distributed Objects". Dr. Dobb's Journal. CMP Technology. Retrieved 2008-02-08.
- ^ Adam Fedor (May 26, 2007). "Distributed Objects". Objective-C GNUstep Base Programming Manual. GNUstep project. Retrieved 2007-08-09.