본문 바로가기
IT 정보/용어

GIOP란? CORBA 통신의 보이지 않는 규칙

by 희품 2025. 8. 29.
반응형

GIOP란? CORBA 통신의 보이지 않는 규칙 썸네일 이미지

IOR(Interoperable Object Reference)라는 것이 있다. 멀리 떨어진 객체를 찾아가는 디지털 주소록과 같은 존재이다.
주소를 알았다면 다음은 무엇일까? 바로 '대화'를 시작해야 한다. 그런데 서로 다른 환경에서, 다른 언어로 만들어진 객체들은 어떤 '언어'와 '문법'을 사용해서 대화해야 할까?
여기서 CORBA(Common Object Request Broker Architecture)의 또 다른 핵심 개념인 GIOP(General Inter-ORB Protocol)가 등장한다.

GIOP는 분산된 객체들이 서로 오해 없이 소통하기 위해 반드시 지켜야 할 약속, 즉 통신의 기본 문법과 규칙을 정의하는 프로토콜이다.

 

GIOP(General Inter-ORB Protocol)란?

분산 컴퓨팅 환경에서 서로 다른 객체 요청 브로커(ORB) 간의 통신을 가능하게 하는 GIOP(General Inter-ORB Protocol)를 보여주는 다이어그램.

GIOP는 '범용 ORB 간 프로토콜'을 의미한다. 이는 CORBA 표준에서 ORB(Object Request Broker)들이 서로 통신하기 위해 사용하는 메시지 형식과 데이터 표현 방식을 정의한 추상적인 명세이다. 여기서 '추상적'이라는 단어가 매우 중요하다. GIOP 자체는 특정 네트워크 전송 계층(예: TCP/IP)에 종속되지 않는다. 대신, 어떤 전송 기술을 사용하든 그 위에서 ORB 간에 교환되는 메시지의 구조는 반드시 GIOP를 따라야 한다고 규정한다.

 

만약 IOR이 원격 객체의 '주소'라면, GIOP는 그 주소로 찾아가서 나누는 대화의 '언어'와 '형식'이다. GIOP 덕분에 자바로 만들어진 ORB가 보낸 요청 메시지를 C++로 만들어진 ORB가 정확하게 해석하고 응답할 수 있는 것이다.

 

GIOP 메시지의 종류 - 통신의 기본 단위

GIOP는 ORB 간의 상호작용을 위해 몇 가지 표준적인 메시지 유형을 정의한다. 통신 중에 오가는 모든 정보는 이 메시지 형식 중 하나에 담겨 전달된다. 대표적인 메시지 유형은 무엇이 있을까?

GIOP 메시지의 종류를 운석과 같은 멋진 이미지로 표현

  • Request (요청): 클라이언트가 원격 객체의 특정 동작(메서드)을 실행시키기 위해 보내는 메시지이다. 여기에는 대상 객체를 가리키는 정보(Object Key), 호출할 메서드 이름, 그리고 필요한 인자(Argument)들이 포함된다.
  • Reply (응답): 서버가 클라이언트의 Request 메시지에 대한 결과를 반환할 때 사용하는 메시지이다. 메서드 실행 결과 값이나, 오류가 발생했을 경우 예외(Exception) 정보를 담아 보낸다.
  • CancelRequest (요청 취소): 클라이언트가 이전에 보냈던 Request를 취소하고 싶을 때 보내는 메시지이다.
  • LocateRequest (객체 위치 요청): 클라이언트가 특정 객체가 현재 서버에서 유효한지, 혹은 요청을 처리할 수 있는 상태인지 확인할 때 사용한다.
  • LocateReply (객체 위치 응답): LocateRequest에 대한 서버의 응답이다. 객체의 상태 정보를 담고 있다.
  • CloseConnection (연결 종료): 서버 측에서 더 이상 통신이 필요 없어 연결을 종료하려 할 때 클라이언트에게 알리는 메시지이다.

 

추상적인 약속인 GIOP, 구체적인 구현을 IIOP로

DMS(문서 관리 시스템), 디지털 문서를 저장, 구성, 트랙 및 관리하는 소프트웨어. 효율적인 생성, 저장, 검색 및 배포를 위한 중앙 집중식 저장소

GIOP는 추상적인 '규칙'일 뿐이라고 했다. 그렇다면 실제 네트워크상에서는 어떻게 이 규칙이 구현될까? 여기서 IIOP(Internet Inter-ORB Protocol)가 등장한다. IIOP는 GIOP 명세를 TCP/IP 네트워크 위에서 구현한 가장 대표적이고 표준적인 프로토콜이다.

 

쉽게 비유하자면, GIOP가 '편지를 쓰는 양식(받는 사람, 주소, 내용, 보내는 사람 순으로 적는다)'이라는 규칙을 정한 것이라면, IIOP는 그 편지를 '우체국의 표준 편지 봉투에 넣어 TCP/IP라는 우편 시스템을 통해 전달하는 구체적인 방법'인 셈이다. 오늘날 우리가 CORBA 통신을 이야기할 때 사실상 IIOP 통신을 의미하는 경우가 대부분이며, 모든 CORBA 2.0 이상 버전의 ORB는 의무적으로 IIOP를 지원해야 한다.

 

 

상호 운용성의 핵심, CDR(Coomon Data Representation)

미래 도시에 자동 배송 시스템을 갖춘 스마트 물류 항공, 해상 화물, 운송 트럭 운송으로부터 선적된 화물은 자율적으로 분배됩니다. 교통 혁신 기술.

GIOP가 진정한 상호 운용성을 보장하는 또 다른 비결은 CDR(Common Data Representation)이라는 데이터 표현 규칙에 있다. 서로 다른 시스템은 데이터를 표현하는 방식이 다를 수 있다. 예를 들어, 숫자를 메모리에 저장하는 순서(바이트 순서, Endianness)가 시스템마다 다를 수 있다.

 

CDR은 정수, 부동소수점, 문자열 등 모든 기본 데이터 타입이 네트워크를 통해 전송될 때 어떤 바이트 형태로 변환되어야 하는지를 명확하게 정의한다. 데이터를 보내는 쪽은 자신의 시스템 방식과 상관없이 CDR 규칙에 따라 데이터를 '직렬화(Serialization)'하고, 받는 쪽은 CDR 규칙에 따라 바이트 스트림을 원래의 데이터로 '역직렬화(Deserialization)'한다. 이 표준화된 데이터 표현 방식 덕분에 시스템 아키텍처나 프로그래밍 언어의 차이를 완벽하게 극복할 수 있다.

 


 

양자 컴퓨팅: 글로벌 기술 네트워크, 혁신, 혁신, 미래 솔루션, 기술 혁신에 양자 컴퓨팅 기술을 보유 하는 사업가.

GIOP는 개발자가 직접 다루는 기술은 아니지만, 분산 컴퓨팅의 근간을 이루는 매우 중요한 개념이다. 보이지 않는 곳에서 시스템 간의 원활한 소통을 책임지는 통신 규약으로서, 오늘날 gRPC의 프로토콜 버퍼(Protocol Buffers)와 같은 현대적인 기술에도 그 철학적 명맥을 이어주고 있다.

 

 

궁금하신 내용이 있으면 댓글 남겨주세요. 꼬리말 이미지.

#GIOP #CORBA #IIOP #분산시스템 #미들웨어 #네트워크프로토콜 #IT기술 #프로그래밍 #CDR #ORB #분산객체 #상호운용성

반응형