코바

위키백과 ― 우리 모두의 백과사전.

이 문서나 그 일부는 전산학에 대한 전문가의 참여가 필요합니다.

이 주제에 적절한 위키프로젝트가 있을 경우 그에 따라 이 틀을 고쳐주세요.

아래의 내용은 외국어가 번역되지 않고 그대로 옮겨진 내용숨겨져 있습니다.
이 문서는 편집 지침에 맞춰 다듬어야 합니다. 이 문서를 정리해 주세요.

코바(Common Object Request Broker Architecture; CORBA)는 OMG에서 정의한 표준으로 다양한 시스템에서 각종 프로그래밍 언어로 가능하고 분산환경에 소프트웨어 컴포넌트로 구성이 가능하게 하는 표준이다.

목차

[편집] 배경

분산 시스템원격 시스템간의 자원 공유, 개방성, 병렬성, 확장성, 고장 감내성, 위치 투명성 등을 제공해야 한다. 또한 80년대부터 대두 되었던 객체지향 기술의 객체는 데이터와 그 데이터를 조작할 수 있는 메소드(method)로 구성되어 있으며, 프로그램은 메시지에 의한 객체간 상호 작용을 기술함으로서 여러 문제를 해결할 수 있게 됐다.

분산 객체 기술은 이러한 두 기술의 장점을 효과적으로 통합하는 기술이며, 개발자에게 어플리케이션 개발의 생산성을 향상시켜주고, 사용자에게 분산 환경에 투명하게 통합된 정보를 제공한다.

이를 위해 OMG(Object Management Group)에서는 분산 컴퓨팅과 객체지향 기술을 하나로 합친 표준 아키텍처를 제안하게 되는데, 그것이 바로 CORBA이다.

[편집] 특징

CORBA는 어플리케이션들끼리 어느 위치든, 누가 만들었든 상관없이 상호간 통신을 보장하고 분산 객체 간의 상호 운용을 위한 통신 미들웨어 역할을 하며, 분산 객체 소프트웨어의 기본틀로서 서비스를 제공하는 부분과 제공받는 부분간의 투명한 정보 교환이 가능하도록 하며 분산 환경에서 응용 소프트웨어를 쉽게 개발할 수 있도록 지원한다.

분산 환경에서 클라이언트와 서버 간의 인터페이스만 정의되면 이들 서로 간의 서비스 요구나 결과 값의 전달이 하부 통신 메커니즘에 반영될 수 있다.

CORBA를 이용한 응용 소프트웨어 개발은 각종 투명성이 보장되기 때문에 사용자의 특정 응용 업무 개발 환경에 적합하고 개발 과정이 간단하고 효율적이다.

[편집] CORBA 어플리케이션 개발

CORBA 어플리케이션 디자인은 다른 기계에 존재하는 객체네트워크에서 통신할 수 있도록 추가 계층(layer)을 포함해야 한다. 이런 추가 계층은 스텁(stub)과 스켈레톤(skeleton)이라는 특수한 객체에 의해 조절한다.

CORBA 클라이언트에서 스텁은 서버에 실제로 구현한 객체에 대한 프록시(proxy) 역할을 한다. 클라이언트는 인터페이스를 구현한 객체와 직접 상호 작용하듯이 스텁에 접근하여, ORB(Object Request Broker) 소프트웨어를 통해 인터페이스를 호출한다.

CORBA 서버에서 ORB 소프트웨어는 인터페이스 호출을 생성된 스켈레톤에 자동으로 넘겨준다. 스켈레톤은 Portable Object Adapter(POA)를 통해 ORB 소프트웨어와 통신한다. 스켈레톤은 POA를 사용해 객체를 등록하고, 여기에 객체의 범위와 객체가 인스턴스화해 클라이언트에 반응할 수 있게 되는 시기등을 결정한다.

[편집] CORBA의 구조

  • ORB의 구성 (클라이언트 사이드)
    • IDL 스터브 : 클라이언트의 정적 통신을 담당
    • 동적 호출 인터페이스(DII: Dynamic Invocation Interface) : 동적 통신을 담당
    • 인터페이스 저장소(interface repository): 인터페이스들을 저장하고 동적 호출시 참조
    • ORB 인터페이스 : 클라이언트측과 서버측에서 모두 이용할 수 있는 의사 객체(pseudo object) 관련 서비스 제공
  • ORB의 구성 (서버 사이드)
    • 객체 어댑터(Object Adapter) : 디스크에 적재된 응용 서버의 활성화 및 비활성화 등을 담당
    • IDL 스켈톤 : 서버측에서의 정적 통신을 담당
    • 동적 스켈레톤 인터페이스(DSI:Dynamic Skeleton Interface) : 동적 통신을 담당
    • 구현 저장소(Implementation Repository) : 서버측 객체와 관련한 각종 정보를 적재
  • ORB 코어
    • 선택 가능한 컴포넌트에 ORB의 커널 기능을 제공
    • 최저한의 기능
      • 객체 레퍼런스의 생성, 해석 등의 객체의 기능적인 표현 기능
      • client와 object implementation 간의 요구(request)의 통신 기능
    • ORB 서비스 : 보안 컨텍스트를 오퍼레이션 호출인 요구와 함께 운반
  • 서버측과 클라이언트간의 정보 전달 경로
    • 클라이언트의 요구 메시지가 클라이언트 스터브(또는 DSI)을 통해 ORB core를 지나 서버측의 객체 어댑터로 전달며, 객체 어댑터는 요구한 서버의 위치를 구현 저장소를 통해 확인한 후 서버 활성화를 한다. 서버 실행이 끝나면 생성된 결과 값은 요구가 전달된 역순으로 클라이언트에게 전달된다.


아래의 내용은 한국어로 번역되지 않은 내용이 담겨 있습니다. 일주일 내 번역되지 않으면 삭제될 수 있습니다.
This article needs translation into Korean. If the article is not rewritten in Korean within a week it will be listed for deletion.

[편집] CORBA 구현 예

[편집] 관련 항목

[편집] 참고문헌

[편집] 바깥 고리