Thinking Different





CORBA - Common Object Request Broker Architecture

  • 정의;
    • CORBA 네트웍에서 분산 프로그램 객체를 생성, 배포, 관리하기 위한 규격으로 네트웍 상의 서로 다른 장소에 있는 프로그램들이 “인터페이스 브로커”를 통해 통신이 가능하도록 해준다.
    • OMG(Object Managemet Group)에서 개발.
  • 구성요소;
    • ORB(Object Request Broker):클라이언트 프로그램이 분산 네트웍에서 서버가 어디 있는지, 또는 서버 프로그램이 어떤 인터페이스를 가질지 인식하지 않고서도, 서버 프로그램이나 객체로부터 서비스를 요구할 있다는
    • GIOP(General Inter-ORB Protocol)
    • IOP(Internet Inter-ORB Protocol)
  • CORBA 경쟁대상: 독자적인 분산 객체 구조를 가진 마이크로소프트의 DCOM(Distributed Component Object Model)

 

ORB - Object Request Broker

  • 정의:
    • 객체들 간의 클라이언트/서버 관계를 맺어주는 미들웨어이다
    • ORB 요구된 컴포넌트를 찾아 통신하기 위해 CORBA 인터페이스 리포지터리(interface repository) 사용
    • CORBA IDL 이용해 public interface 선언

 

  • 서비스
    • Life cycle service : 컴포넌트를 어떻게 만들고, 복사하고, 이동하고, 지우는가 등에 관한 서비스
    • Persistence service : 자료를 객체지향형 데이터베이스, 관계형 데이터베이스 그리고 보통의 텍스트 파일에 저장하는 능력을 제공
    • Naming service : 컴포넌트가 다른 컴포넌트를 이름으로 찾고 기존 명명규칙(naming systems)이나 DCE, X.500, Sun NIS 같은 디렉토리 지원을 가능케
    • Event service : 컴포넌트가 통보 받을 특정 이벤트를 지정하도록
    • Concurrency control service : ORB 하여금 트랜잭션이나 스레드의 처리가 끝날때까지 데이터를 잠그는 (lock) 관리하도록
    • Transaction service : 트랜잭션이 완료되었을때 데이터베이스 갱신을 확정하거나, 그렇지 못한 경우 트랜잭션이 발생하기 상태로 복귀되는 것을 보증
    • Relationship service : 이전에 "만난" 적이 없는 컴포넌트간의 동적 관계를 설정하고 관계를 지속
    • Externalization service : "스트림"에서 컴포넌트의 입출 자료를 가져오는 방법을 제공
    • Query service : 컴포넌트가 데이터베이스를 조회할 있도록 . 서비스는 SQL3 규격과 ODMG(Object Database Management Group) OQL(Object Query Language) 기반을
    • Licensing service : 사용 대가를 치를 목적으로 컴포넌트의 사용이 측정되도록 . 요금 부과는 세션, 노드, 활성체 생성, 사이트 단위로 가능
    • Properties service : 컴포넌트가 다른 컴포넌트에 사용될 있도록 자기 묘사를 담도록

 

COM - Distributed Component Object Model

  • 정의 : COM 프로그램의 컴포넌트 객체들을 개발하고 지원하기 위한 하부 기반구조로서 CORBA (Common Object Request Broker Architecture)에서 정의된 수준의 기능 제공을 목표로 한다.

 

DCOM - Distributed Component Object Model

  • 정의 : DCOM 네트웍 상에서 클라이언트 프로그램 객체가 다른 컴퓨터에 있는 서버 프로그램 객체에 서비스를 요청할 있도록 해주는 마이크로소프트의 프로그램 인터페이스 표준, COM 같은 컴퓨터(윈도우95 NT 시스템) 내에서 사용될 있도록 클라이언트와 서버에 인터페이스 집합을 제공

 

COM+ - an extension to the Component Object Model

  • 정의 ; COM+ MS사의 2.0버전인 COM(Component Object Model) 차기버전으로 소프트웨어 컴포넌트 패키지인 액티브X 콘트롤들이 서로 통신할 있도록 해주는 업계표준 객체프로그래밍 아키텍처
  • COM+ 향상기능;
    • COM+ 프로그래밍 작업 반복적이거나 복잡한 작업을 단순화하고 서비스호출 등을 자동화함으로써 개발시간을 크게 단축
    • 디렉토리서비스 수준의 객체관리를 비롯 각종 서비스호출용 코드수를 최소화함으로써 트랜잭션서버나 메시지큐서버 클라이언트서버 애플리케이션서비스를 보다 쉽게 액세스할 있도록 설계
    • 윈도NT 윈도95만을 지원해온 COM 달리 COM+부터는 솔라리스, HPUX, 디지털VX 유닉스버전을 비롯 IBM MVS 버전 지원
  • COM+ 특징들;
    • 프로그래밍 작업의 단순화를 비롯 효율적인 객체관리
    • 쉬워진 애플리케이션서비스 액세스
    • 풍부한 확장성

 

CORBA DCOM 비교

 

CORBA

- 다양한 플랫폼 지원

- 다양한 프로그래밍 언어 지원

- 위치 투명성 지원

- 정적 동적 호출 지원

- 인터페이스 언어(IDL) 상속 지원

- 강력한 보안 모델

- 멀티쓰레드 지원

- 폴트 톨러런스와 밸런싱 사양

- 코바 벤더의 표준화된 확장

- 코바 사양을 100% 지원하는 제품의 부재

- 표준화 되지 못한 명령어

DCOM

- 뛰어난 개발

- 다양한 Active 컨트롤

- 정적 동적 호출 지원

- 위치 투명성 지원

- 멀티쓰레드 지원

- 윈도우 95/NT Solaris 2.5 지원

- 인터페이스만 상속 지원

- 정적 호출을 위한 인터페이스와 동적 호출을 위한 인터페이스가 일관되지 못함

- 폴트 톨러런스와 로드 밸런싱 사양의 미비

- 기술 구현의 난이도가 높음

 

IIOP (Internet Inter-ORB Protocol)

  • 정의:
    • IIOP(Internet Inter-ORB Protocol) 코바(CORBA)기반 객체 통신표준으로 객체와 응용 프로그램 사이의 통신에 사용되는 공개 인터넷 프로토콜
    • IIOP 분산 객체 컴퓨팅을 위해 OMG(Object Management Group)에서 제정한 표준 스펙인 코바(CORBA) 사양의 일부
  • 장점:
    • 분산 컴퓨팅을 위한 응용 프로그램 개발이 쉬워질뿐만 아니라,
    • 하드웨어와 운용체계, 프로그래밍 언어와 무관하게 분산 객체들간에 커뮤니케이션이 이루어져 비록 프로그램이 인터넷 상의 다른 컴퓨터에서 실행되고 있다고 하더라도, 마치 같은 프로그램의 일부인 처럼 사용할 있다.

 

RMI - (Remote Method Invocation)

  • 정의 :
    • RMI 자바 프로그래밍 언어와 개발환경을 사용하여 서로 다른 컴퓨터들 상에 있는 객체들이 분산 네트웍 내에서 상호 작용하는 객체지향형 프로그램을 작성할 있는 방식
    • RMI 일반적으로 RPC라고 알려져 있는 것의 자바 버전

 

[출처] CORBA와 DCOM의 비교|작성자 협객