인터페이스 정의언어, 구현언어로 매핑을 지원.
객체지향 개념. C++의 class와 비슷하지만, JAVA의 interface와 더욱 유사.
interface Sample {
attribute long a; // attribute 키워드 없으면 에러.
readonly attribute string b;
string oper1();
oneway void oper2();
void oper3() raises(UsrException);
};
간단히 뭐 이런 식.
상속 가능, 다중 상속도 가능, 단 상속 받을 interface간에 같은 이름이 있으면 안됨.
interface A {
attribute long l;
void oper();
};
interface B {
attribute long l; // 이름 충돌 에러 발생
};
interface C: A, B {
void oper(); // 재정의 시도 에러 발생
};
Scop을 정하고 계층화 하는 module을 사용할 수도 있음.
module CF {
interface DomainManager{};
module CF1{
interface Resource{};
};
};
CF::DomainManager, CF:CF1:Resource 이런 식으로 접근이 가능함.
이렇게 만들어진 IDL 파일과 실제 구현과의 mapping은 IDL 컴파일러가 하는 것 같은데,
그 과정이 궁금함. 프로그래머는 어느 수준까지 정의해 줘야 하는가?
TAG IDL
댓글을 달아 주세요
옛날에 다니던 회사에서는 저렇게 정의한 IDL 을 가지고 서버 클라이언트 간 통신 모듈 만들 때 사용했는뎅.
2007.12.10 11:39 [ ADDR : EDIT/ DEL : REPLY ]IDL 로 인터페이스를 정의하면 IDL 컴파일러가 네트웍 IO 를 책임지는 소스까진 generate 하고 나머지
비지니스 로직은 generate 된 소스에다가 사용자가 직접 프로그램해서 추가해넣고.
IDL 컴파일러 구현은 프레임웍을 만드는 프로그래머가 다 했... ㄷㄷ.. -_-;;; (근데 뭐 간단하게 만든거라
상속 이런건 지원 못하고.. -.-)
nezy 슨배닷! +_+
2007.12.13 03:01 [ ADDR : EDIT/ DEL : REPLY ]그르쿤요. 현재 omniORB를 사용하고 있는데 omniidl 이란 놈이 컴파일을 해주는 듯.
사실 지금은 다 구현된 소스를 쓰고 있어서... 이에 관련된 프로그래밍은 할 필요가 없... ^ㅇ^
그러나. 아직 궁금증이 다 해소가 되지 않는군요.
이런거 때문에 자꾸 파다 보면, 항상 프로젝트 진도는 안나가고 산으로 가있는. TAT
그나저나ㅡ 본 지 백만년.... ;ㅁ;