*** CORBA(Common Object Request Broker Architecture)
1989 년대에, 현존하는 객체지향 기술을 바탕으로 응용 프로그램들을 결합하기 위한 객체지향 표준을 제정하기 위 해 OMG(Object Management Group)가 탄생하였다. OMG는 700개 이상의 컴퓨터 관련 단체들이 참가하여 객체 지향 기술을 기반으로 이종의 분산된 환경 하에서 응용 프로그램들을 통합하고 상호연동할 수 있는 표준기술을 제정했는데, 바로 이 표 준이 OMA(Object Management Architecture)이다.
OMA는 응용 프로그램간의 통합뿐만 아니 라 객체의 생성, 소멸에서부터 저장, 트랜잭션(transaction) 기능에 이르기까지 분산 객체 환경에서 필요한 모든 서비스 를 총칭하는 것이다. 이들 기능 중 CORBA는 컴퓨터 내부의 Bus처럼 서로 다른 프로그램들 사이의 Bus 역할을 하는 모듈로 서 프로그래머가 원하는 메소드 등의 위치에 관계없이 마치 로컬에 있는 것처럼 사용할 수 있도록 하는 기능을 제공한다. 따라 서 CORBA는 OMA에서 가장 중요한 요소가 된다.
CORBA는 어플리케이션으로 하여금 한 operation이 분산 객체에 의해서 수행되게 하며, 그 operation의 결과에 대하여 그 요청을 만든 어플리케이션에게 리턴하도록 한다. 이것은 기본 적인 클라이언트/서버 기능이며, 클라이언트는 요청을 만들어 서버에게 주고 그 서버는 그 요청에 대해 응답한다. 데이터는 클라이언트 로부터 서버로 전달되며, 그 데이터는 특정 객체의 특정 operation으로 구성되어 있다. 데이터는 그러고 나서 응답의 형태 (form)로 클라이언트에게 리턴된다.
CORBA를 사용함으로써 다음과 같은 이점을 얻을 수 있다.
1. CORBA는 많은 언어를 지원한다. CORBA는 또한 하나의 분산 어플리케이션에서 이것을 혼합된 형태로도 지원한다.
2. CORBA는 분산과 객체 지향을 지원한다.
3. CORBA 는 산업 표준이다. 이것은 벤더들 사이에서의 경쟁을 유발하고 질좋은 구현들이 존재할 수 있도록 해준다. CORBA 표준은 또한 개발자들에게 구현들 사이에서의 일정 수준의 portability를 제공한다.
4. CORBA는 고수준의 상호작용성을 제공한다. 이것은 서로 다른 CORBA제품에서 만들어진 분산 객체들이 서로 통신 할 수 있도록 한다.
* 참조 사이트
1. Corba Homepage
http://www.corba.org
2. OMG Homepage
http://www.omg.org/
3. OMG Korean Working Group
http://dpnm.postech.ac.kr/komg/
*** OMG에 대해
OMG 는 지난 89년 5월 8개 회사(3Com, 아메리카 온라인, 캐논, 데이터 제너럴, HP, 필립스 텔레커뮤니케이션즈, 썬 마이크로 시스템즈, 유니시스)가 주축이 돼 설립했다. 그 해 10월 비영리 집단으로서 독립적인 활동을 시작했다. 기술적으로 훌륭하며 상업적 으로 가치가 있고 소프트웨어 산업에서 벤더 독립적인 것을 개발하기 위한 노력으로 현재 OMG의 회원은 800개사를 넘어섰 다. OMG에서는 분산객체 관리 시스템의 요구 사항을 충족시키기 위해 CORBA를 제안했다. 이러한 디자인 과정에서 OMG가 무게 를 두고 있는 부분은 완전히 개방된 객체 구조를 생성한다는 점이다. 즉, 현재의 소프트웨어는 기본적으로 이식성 (portability)과 상호 운용성(interoperability)을 가져야 한다는 요구 조건을 기본으로 하고 있다.
OMG가 제안한 표준은 현재 대다수의 컴퓨터 회사나 연구 분야에서 받아들여지고 있는데 그 성공 비결은 다음과 같다.
OMG 는 프로그램 코드 자체를 제안하는 것이 아니라 인터페이스 명세만 제안한다. 이 인터페이스 명세 는 IDL(Interface Definition Language)이라는 특정 프로그래밍 언어에 종속되지 않는 독립적인 언어이며 특 정 운영체제 또는 네트워크에 종속되지 않는다.
각 ORB 구현 제품은 CORBA 2.0/2.3/3.0 명세를 따르면 이 제품들 간에 상호 운용할 수 있다.
OMG 는 세계 표준인 CORBA/IIOP, 객체 서비스, 인터넷 퍼실리티(Internet Facilities), 도메인 인터페이스 규격 (Domain Interface Specification)을 통해 '세상 어디서나 사용하는 미들웨어'라는 슬로건을 내걸고 발전 해 나가고 있다.
OMG는 표준화 객체 소프트웨어의 도입을 통해 컴포넌트 기반의 소프트웨어 시장을 형성하는 역할을 했 다. 즉, 애플리케이션 개발을 위한 공통적인 프레임워크를 제공하기 위해 세부적인 규격을 제정하고 있는 것이다. OMG에 대 한 더 많은 정보는 OMG 홈페이지(www.omg.org)를 참고하기 바란다.
*** CORBA의 각종 서비스
CORBA 의 서비스에 대한 일반적인 정의를 내리자면, ORB를 이용해 소프트웨어를 개발할 때 개발된 코드를 재사용하기 위해, 개발 소프트웨 어 도메인에 독립적으로 작업할 수 있는 프로그램을 말한다. 이것은 개발에 필요한 중요한 문제를 해결하기 위해 여러 중요한 기능 을 한 가지씩 담당할 수 있게 만들어졌고, 이 서비스들을 조합해 당면한 문제들을 해결할 수도 있다. 현재 OMG는 15개 의 CORBA 서비스 규격을 발표했다.
*** COSS1에 정의된 CORBA 서비스
* 명명 서비스 (Naming Service) : 객체 정보의 등록 및 검색과 관련된 기능을 제공하는 서비스로 네트워크에 산재돼 있는 구현객체들 이 자신의 정보를 등록하고, 클라이언트 프로그램들은 자신이 필요한 구현객체의 정보를 이름으로 검색, 구현객체 정보를 취득한다. 취 득한 구현객체의 정보로 구현객체에 접근할 수 있도록 해주는 서비스가 명명 서비스다.
* POS 서비스 : POS 는 CORBA 객체가 종료돼도 객체의 상태를 유지 관리해주는 서비스다. 클라이언트 프로그램은 이 POS를 이용해 객체의 현재 상태 를 다른 매체에 저장하고 필요할 때 PID를 이용, 저장된 객체를 복구해 사용할 수 있다.
* 생명 주기 서비스 (Life Cycle Service) : 이 서비스는 객체의 초기 생성부터 소멸되는 시점까지 일련의 객체 생명 주기를 관리하는 서 비스로, Naming, Externalization, Relationship 서비스와 연계해 사용한다.
* 이벤트 서비스(Event Service) : 이벤트 서비스는 객체들간의 이벤 트 메시지를 처리할 수 있는 서비스로, 객체들 간의 콜백 기능을 이벤트 서비스로 대치해 사용할 수 있다.
*** COSS2에 정의된 CORBA 서비스
* 트랜잭션 서비스(Transaction Service, OTS) : OTS는 객체의 트랜잭션을 관리하는 서비스로 RDB에서 트랜잭션을 관리하듯이, CORBA 객체에 대한 트랜잭션을 처리할 수 있게 지원하는 서비스다.
* 동 시 동작 제어 서비스(Concurrency Control Service) : 객체들의 특정 자원에 대한 동시 접근을 제어하는 서비 스다. 예를 들어, 프린팅하는 기능을 갖는 구현객체가 프린터를 사용중일 때 다른 객체가 프린터를 사용하지 못하게 하고, 먼저 프린 터를 사용하는 객체가 프린터를 독점하지 못하게 제어하는 기능을 지원하는 서비스다.
* 관계 서비스(Relationship Service) : 객체 사이의 관계를 관리하는 서비스로 디자인 시에 작성된 관계 외에도 관계가 없는 객체 사이를 런타임에 관계를 설정할 수 있게 지원하는 서비스다.
* 외 부화 서비스(Externalization Service) : 객체 상태의 저장 및 재생을 지원하는 서비스로 POS는 플랫 파 일, 관계형 데이터베이스, 객체 데이터베이스 등을 사용해 관리하지만 이 서비스는 객체 상태를 스트림화하기 때문에 다양한 방법으 로 저장하고 나중에 재생해 사용할 수 있는 기능을 지원한다.
*** COSS3에 정의된 CORBA 서비스
* 보 안 서비스(Security Service) : CORBA 객체들의 보안을 관리하는 서비스로 네트워크를 기반으로 하는 분산 환경에 서 시스템을 공격하고자 하는 사람, 부적절한 방법으로 시스템을 이용하는 사용자에 의해 발견될 수 있는 모든 보안 구멍 (security holes)을 막도록 설계했으며 안전한 환경에서 상호 작용하는 객체가 보안 정책이 집행 중이라는 사실 을 알 수 없도록 설계돼 있다.
* 시간 서비스(Time Service) : 분산된 객체간의 시간 동기화를 관리하 는 서비스다. 예를 들어, 서울과 미국에서 9시에 어떤 통계 작업을 진행하고자 할 때 서로 시각에 대한 개념이 다르기 때문에 집계 가 잘 안 될 수 있다. 이때 이 서비스를 통해 서로의 시간을 동기화할 수 있으면 정확히 9시에 통계 작업이 진행돼 원하는 결과 를 얻을 수 있을 것이다.
*** COSS4에 정의된 CORBA 서비스
* 질의 서비스 (Query Service) : 질의문을 사용, 객체를 검색하는 기능을 갖는 서비스로 질의문에서 작성된 기준에 만족하는 어트리뷰트 를 갖는 객체를 검색해 낼 수 있다. 이 서비스에서 사용하는 질의문은 SQL이나 OQL 중 하나를 사용할 수 있다.
* 라 이선싱 서비스(Licensing Service) : 사용자가 객체를 사용하기 위한 라이선스를 관리하는 서비스로, ORB 기반의 컴 포넌트를 개발하고 서비스를 제공하는 제공업자가 사용자들이 사용한 컴포넌트들에 대한 사용 대가를 회수할 때에 필요한 자료 및 기능 을 제공하기 위해, ORB 기반의 컴포넌트 사용에 대한 라이선스를 관리하는 서비스다.
* 프로퍼티 서비스 (Properties Service) : 객체의 동적 프로퍼티를 생성하고, 이를 관리하는 서비스다. 이미 IDL에 정의되어 있 는 객체에 프로퍼티를 추가할 경우 보통의 경우 해당 객체의 IDL을 수정, 다시 컴파일해 사용해야 한다. 하지만 이 서비스를 사용 하면 런타임에 특정 객체의 프로퍼티를 동적으로 생성해 사용할 수 있는 기능을 지원한다.
*** COSS5에서 정의된 CORBA 서비스
* 트 레이더 서비스(Trader Service) : 객체를 등록하고, 검색할 수 있도록 지원하는 서비스로 Exporter가 트레이더에 게 기능 정보를 제공하면, Importer가 필요한 기능을 질의문으로 만들어 객체 정보를 검색하는 서비스다. 이 서비스를 사용하 면, Exporter가 제공하는 기능 정보를 Importer가 트레이더를 통해 필요한 기능의 객체를 검색하고, 검색된 객체 정보 를 이용해 네트워크에 분산돼 있는 구현객체에 접근, 필요한 기능을 사용할 수 있다.
* 컬렉션 서비 스 (Collection Service) : 이 서비스는 객체들에 대한 리스트 관리를 지원하는 서비스로, 동일한 객체들을 일렬 로 묶거나(list), 서로 다른 객체들을 꾸러미(bag)로 만들 필요가 있을 때 사용하는 서비스다.
1989 년대에, 현존하는 객체지향 기술을 바탕으로 응용 프로그램들을 결합하기 위한 객체지향 표준을 제정하기 위 해 OMG(Object Management Group)가 탄생하였다. OMG는 700개 이상의 컴퓨터 관련 단체들이 참가하여 객체 지향 기술을 기반으로 이종의 분산된 환경 하에서 응용 프로그램들을 통합하고 상호연동할 수 있는 표준기술을 제정했는데, 바로 이 표 준이 OMA(Object Management Architecture)이다.
OMA는 응용 프로그램간의 통합뿐만 아니 라 객체의 생성, 소멸에서부터 저장, 트랜잭션(transaction) 기능에 이르기까지 분산 객체 환경에서 필요한 모든 서비스 를 총칭하는 것이다. 이들 기능 중 CORBA는 컴퓨터 내부의 Bus처럼 서로 다른 프로그램들 사이의 Bus 역할을 하는 모듈로 서 프로그래머가 원하는 메소드 등의 위치에 관계없이 마치 로컬에 있는 것처럼 사용할 수 있도록 하는 기능을 제공한다. 따라 서 CORBA는 OMA에서 가장 중요한 요소가 된다.
CORBA는 어플리케이션으로 하여금 한 operation이 분산 객체에 의해서 수행되게 하며, 그 operation의 결과에 대하여 그 요청을 만든 어플리케이션에게 리턴하도록 한다. 이것은 기본 적인 클라이언트/서버 기능이며, 클라이언트는 요청을 만들어 서버에게 주고 그 서버는 그 요청에 대해 응답한다. 데이터는 클라이언트 로부터 서버로 전달되며, 그 데이터는 특정 객체의 특정 operation으로 구성되어 있다. 데이터는 그러고 나서 응답의 형태 (form)로 클라이언트에게 리턴된다.
CORBA를 사용함으로써 다음과 같은 이점을 얻을 수 있다.
1. CORBA는 많은 언어를 지원한다. CORBA는 또한 하나의 분산 어플리케이션에서 이것을 혼합된 형태로도 지원한다.
2. CORBA는 분산과 객체 지향을 지원한다.
3. CORBA 는 산업 표준이다. 이것은 벤더들 사이에서의 경쟁을 유발하고 질좋은 구현들이 존재할 수 있도록 해준다. CORBA 표준은 또한 개발자들에게 구현들 사이에서의 일정 수준의 portability를 제공한다.
4. CORBA는 고수준의 상호작용성을 제공한다. 이것은 서로 다른 CORBA제품에서 만들어진 분산 객체들이 서로 통신 할 수 있도록 한다.
* 참조 사이트
1. Corba Homepage
http://www.corba.org
2. OMG Homepage
http://www.omg.org/
3. OMG Korean Working Group
http://dpnm.postech.ac.kr/komg/
*** OMG에 대해
OMG 는 지난 89년 5월 8개 회사(3Com, 아메리카 온라인, 캐논, 데이터 제너럴, HP, 필립스 텔레커뮤니케이션즈, 썬 마이크로 시스템즈, 유니시스)가 주축이 돼 설립했다. 그 해 10월 비영리 집단으로서 독립적인 활동을 시작했다. 기술적으로 훌륭하며 상업적 으로 가치가 있고 소프트웨어 산업에서 벤더 독립적인 것을 개발하기 위한 노력으로 현재 OMG의 회원은 800개사를 넘어섰 다. OMG에서는 분산객체 관리 시스템의 요구 사항을 충족시키기 위해 CORBA를 제안했다. 이러한 디자인 과정에서 OMG가 무게 를 두고 있는 부분은 완전히 개방된 객체 구조를 생성한다는 점이다. 즉, 현재의 소프트웨어는 기본적으로 이식성 (portability)과 상호 운용성(interoperability)을 가져야 한다는 요구 조건을 기본으로 하고 있다.
OMG가 제안한 표준은 현재 대다수의 컴퓨터 회사나 연구 분야에서 받아들여지고 있는데 그 성공 비결은 다음과 같다.
OMG 는 프로그램 코드 자체를 제안하는 것이 아니라 인터페이스 명세만 제안한다. 이 인터페이스 명세 는 IDL(Interface Definition Language)이라는 특정 프로그래밍 언어에 종속되지 않는 독립적인 언어이며 특 정 운영체제 또는 네트워크에 종속되지 않는다.
각 ORB 구현 제품은 CORBA 2.0/2.3/3.0 명세를 따르면 이 제품들 간에 상호 운용할 수 있다.
OMG 는 세계 표준인 CORBA/IIOP, 객체 서비스, 인터넷 퍼실리티(Internet Facilities), 도메인 인터페이스 규격 (Domain Interface Specification)을 통해 '세상 어디서나 사용하는 미들웨어'라는 슬로건을 내걸고 발전 해 나가고 있다.
OMG는 표준화 객체 소프트웨어의 도입을 통해 컴포넌트 기반의 소프트웨어 시장을 형성하는 역할을 했 다. 즉, 애플리케이션 개발을 위한 공통적인 프레임워크를 제공하기 위해 세부적인 규격을 제정하고 있는 것이다. OMG에 대 한 더 많은 정보는 OMG 홈페이지(www.omg.org)를 참고하기 바란다.
*** CORBA의 각종 서비스
CORBA 의 서비스에 대한 일반적인 정의를 내리자면, ORB를 이용해 소프트웨어를 개발할 때 개발된 코드를 재사용하기 위해, 개발 소프트웨 어 도메인에 독립적으로 작업할 수 있는 프로그램을 말한다. 이것은 개발에 필요한 중요한 문제를 해결하기 위해 여러 중요한 기능 을 한 가지씩 담당할 수 있게 만들어졌고, 이 서비스들을 조합해 당면한 문제들을 해결할 수도 있다. 현재 OMG는 15개 의 CORBA 서비스 규격을 발표했다.
*** COSS1에 정의된 CORBA 서비스
* 명명 서비스 (Naming Service) : 객체 정보의 등록 및 검색과 관련된 기능을 제공하는 서비스로 네트워크에 산재돼 있는 구현객체들 이 자신의 정보를 등록하고, 클라이언트 프로그램들은 자신이 필요한 구현객체의 정보를 이름으로 검색, 구현객체 정보를 취득한다. 취 득한 구현객체의 정보로 구현객체에 접근할 수 있도록 해주는 서비스가 명명 서비스다.
* POS 서비스 : POS 는 CORBA 객체가 종료돼도 객체의 상태를 유지 관리해주는 서비스다. 클라이언트 프로그램은 이 POS를 이용해 객체의 현재 상태 를 다른 매체에 저장하고 필요할 때 PID를 이용, 저장된 객체를 복구해 사용할 수 있다.
* 생명 주기 서비스 (Life Cycle Service) : 이 서비스는 객체의 초기 생성부터 소멸되는 시점까지 일련의 객체 생명 주기를 관리하는 서 비스로, Naming, Externalization, Relationship 서비스와 연계해 사용한다.
* 이벤트 서비스(Event Service) : 이벤트 서비스는 객체들간의 이벤 트 메시지를 처리할 수 있는 서비스로, 객체들 간의 콜백 기능을 이벤트 서비스로 대치해 사용할 수 있다.
*** COSS2에 정의된 CORBA 서비스
* 트랜잭션 서비스(Transaction Service, OTS) : OTS는 객체의 트랜잭션을 관리하는 서비스로 RDB에서 트랜잭션을 관리하듯이, CORBA 객체에 대한 트랜잭션을 처리할 수 있게 지원하는 서비스다.
* 동 시 동작 제어 서비스(Concurrency Control Service) : 객체들의 특정 자원에 대한 동시 접근을 제어하는 서비 스다. 예를 들어, 프린팅하는 기능을 갖는 구현객체가 프린터를 사용중일 때 다른 객체가 프린터를 사용하지 못하게 하고, 먼저 프린 터를 사용하는 객체가 프린터를 독점하지 못하게 제어하는 기능을 지원하는 서비스다.
* 관계 서비스(Relationship Service) : 객체 사이의 관계를 관리하는 서비스로 디자인 시에 작성된 관계 외에도 관계가 없는 객체 사이를 런타임에 관계를 설정할 수 있게 지원하는 서비스다.
* 외 부화 서비스(Externalization Service) : 객체 상태의 저장 및 재생을 지원하는 서비스로 POS는 플랫 파 일, 관계형 데이터베이스, 객체 데이터베이스 등을 사용해 관리하지만 이 서비스는 객체 상태를 스트림화하기 때문에 다양한 방법으 로 저장하고 나중에 재생해 사용할 수 있는 기능을 지원한다.
*** COSS3에 정의된 CORBA 서비스
* 보 안 서비스(Security Service) : CORBA 객체들의 보안을 관리하는 서비스로 네트워크를 기반으로 하는 분산 환경에 서 시스템을 공격하고자 하는 사람, 부적절한 방법으로 시스템을 이용하는 사용자에 의해 발견될 수 있는 모든 보안 구멍 (security holes)을 막도록 설계했으며 안전한 환경에서 상호 작용하는 객체가 보안 정책이 집행 중이라는 사실 을 알 수 없도록 설계돼 있다.
* 시간 서비스(Time Service) : 분산된 객체간의 시간 동기화를 관리하 는 서비스다. 예를 들어, 서울과 미국에서 9시에 어떤 통계 작업을 진행하고자 할 때 서로 시각에 대한 개념이 다르기 때문에 집계 가 잘 안 될 수 있다. 이때 이 서비스를 통해 서로의 시간을 동기화할 수 있으면 정확히 9시에 통계 작업이 진행돼 원하는 결과 를 얻을 수 있을 것이다.
*** COSS4에 정의된 CORBA 서비스
* 질의 서비스 (Query Service) : 질의문을 사용, 객체를 검색하는 기능을 갖는 서비스로 질의문에서 작성된 기준에 만족하는 어트리뷰트 를 갖는 객체를 검색해 낼 수 있다. 이 서비스에서 사용하는 질의문은 SQL이나 OQL 중 하나를 사용할 수 있다.
* 라 이선싱 서비스(Licensing Service) : 사용자가 객체를 사용하기 위한 라이선스를 관리하는 서비스로, ORB 기반의 컴 포넌트를 개발하고 서비스를 제공하는 제공업자가 사용자들이 사용한 컴포넌트들에 대한 사용 대가를 회수할 때에 필요한 자료 및 기능 을 제공하기 위해, ORB 기반의 컴포넌트 사용에 대한 라이선스를 관리하는 서비스다.
* 프로퍼티 서비스 (Properties Service) : 객체의 동적 프로퍼티를 생성하고, 이를 관리하는 서비스다. 이미 IDL에 정의되어 있 는 객체에 프로퍼티를 추가할 경우 보통의 경우 해당 객체의 IDL을 수정, 다시 컴파일해 사용해야 한다. 하지만 이 서비스를 사용 하면 런타임에 특정 객체의 프로퍼티를 동적으로 생성해 사용할 수 있는 기능을 지원한다.
*** COSS5에서 정의된 CORBA 서비스
* 트 레이더 서비스(Trader Service) : 객체를 등록하고, 검색할 수 있도록 지원하는 서비스로 Exporter가 트레이더에 게 기능 정보를 제공하면, Importer가 필요한 기능을 질의문으로 만들어 객체 정보를 검색하는 서비스다. 이 서비스를 사용하 면, Exporter가 제공하는 기능 정보를 Importer가 트레이더를 통해 필요한 기능의 객체를 검색하고, 검색된 객체 정보 를 이용해 네트워크에 분산돼 있는 구현객체에 접근, 필요한 기능을 사용할 수 있다.
* 컬렉션 서비 스 (Collection Service) : 이 서비스는 객체들에 대한 리스트 관리를 지원하는 서비스로, 동일한 객체들을 일렬 로 묶거나(list), 서로 다른 객체들을 꾸러미(bag)로 만들 필요가 있을 때 사용하는 서비스다.
'UP! > Web Service' 카테고리의 다른 글
그리드 서비스를 위한 Repository 시스템 개발 (0) | 2008.08.21 |
---|---|
분산객체와 웹 서비스의 차이점 (0) | 2008.08.21 |
분산객체시스템 종류 (0) | 2008.08.21 |
웹 서비스와 관련된 10가지 질문 (0) | 2008.08.21 |
XML,SOAP,UDDI,WSDL (0) | 2008.08.21 |