본문 바로가기
IT

CORBA와 Java IDL

by Wiblee 2015. 6. 2.

CORBA란?


CORBA(Common Object Request Broker Architecture)는 컴포넌트 기반 소프트웨어 개발을 위한 산업 표준입니다. CORBA는 서로 다른 언어로 쓰여지고 서로 다른 플랫폼에서 돌아가는 소프트웨어 컴포넌트들이 서로 상호작용할 수 있도록 하는 인터페이스 규약입니다. 

CORBA 스펙은 http://www.omg.org/spec/CORBA/ 에 업데이트되고 있습니다. 



CORBA Implementations(구현체)


CORBA 스펙 자체는 규약에 불과하며, 이를 구현한 구현체들을 이용해야 합니다. CORBA 구현체에는 다음과 같은 것들이 있습니다.


  • Borland(지금은 MicroFocus에 매각됨)의 VisiBroker - C++ JAVA 매핑
  • IONA의 Orbix : C++, Smalltalk, Java 매핑
  • Oracle의 JAVA IDL : JAVA 매핑
  • MICO with IDL : C++ 매핑, 오픈소스
  • OpenORB : 오픈소스
  • OpalORB with IDL : Perl 매핑


CORBA client와 CORBA server


CORBA client는 CORBA server의 method들을 호출하는 컴포넌트입니다.

CORBA server는 인터페이스를 통해 client들에게 서비스(메소드 등)를 제공하는 컴포넌트입니다.



CORBA IDL (Interface Definition Language)


CORBA server object에 의해 제공되는 서비스들은 CORBA IDL로 쓰여진 인터페이스를 통해 노출됩니다.


IDL 파일은 ORB에 포함된 platform-/language- specific IDL compiler로 컴파일됩니다. 예를 들어 JAVA IDL에는 idlj 라는 컴파일러가 있습니다. IDL compiler는 stub과 skeleton 파일을 만드는데, stub은 client의 프로그래밍 언어와 맞기 위해 만들어지고, 서버의 각 CORBA object를 위해 client는 상응하는 stub 파일을 컴파일해야 합니다.



IDL-to-JAVA Bindings


IDL은 language binding을 정의합니다.


 IDL

JAVA 

 module

 package 

 interface

 interface 

 operation

 method 

 readonly attribute

 getter method 

 readwrite attribute (default)

 getter and setter methods 



CORBA 구현체 구성요소


ORB : object들 간 통신 중재

IDL compiler : 인터페이스를 target 언어 stub/skeleton으로 변형

Naming Service : CORBA object들을 위치시키는데 client들에 의해 사용.



Java IDL

Java IDL은 CORBA 구현체 중 하나로서, JDK 안에 포함되어 있어 쉽게 사용할 수 있고 설정도 간편합니다. Java IDL 역시 ORB, Naming Service, IDL-to-Java compiler(idlj)로 구성되어 있습니다. 





댓글