일반 객체 요구 매개자간 프로토콜
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
일반 객체 요구 매개자간 프로토콜(GIOP)은 Object Management Group(OMG)이 정의한 프로토콜로, 객체 지향 분산 시스템 환경에서 객체 간의 상호 운용성을 제공한다. GIOP는 Common Data Representation(CDR), Interoperable Object Reference (IOR), 정의된 메시지 형식을 포함하며, 원격 메서드 호출, 응답, 오류 처리 등을 위한 다양한 메시지 형식을 규정한다. GIOP 메시지는 바이너리 형식으로 표현되며, 헤더를 통해 식별된다. GIOP의 대안으로, 특정 환경에 맞춰 효율성을 높이는 환경에 특화된 ORB 간 프로토콜(ESIOP)이 존재하며, DCE-CIOP는 분산 컴퓨팅 환경(DCE)에서 사용하기 위한 ESIOP의 한 예시이다. GIOP는 OMG의 등록 상표가 아니므로 자유롭게 사용할 수 있다.
더 읽어볼만한 페이지
| 일반 객체 요구 매개자간 프로토콜 | |
|---|---|
| 일반 정보 | |
| 이름 | 일반 객체 요구 매개자간 프로토콜 |
| 영어 명칭 | General Inter-ORB Protocol |
| 약칭 | GIOP |
| 종류 | 프로토콜 |
| OSI 모델 계층 | 표현 계층 및 응용 계층 |
| 상세 정보 | |
| 목적 | 객체 요청 브로커들이 CORBA 환경에서 통신하는 데 사용 |
| 기반 프로토콜 | TCP/IP |
| 관련 프로토콜 | IIOP (Internet Inter-ORB Protocol) - GIOP의 특정 구현체 |
| 특징 | 추상적인 프로토콜로, 다양한 전송 계층에서 사용 가능 |
| 메시지 형식 | Request (요청) Reply (응답) CancelRequest (요청 취소) LocateRequest (객체 위치 요청) LocateReply (객체 위치 응답) CloseConnection (연결 종료) MessageError (오류 메시지) Fragment (메시지 조각) |
| 추가 정보 | |
| 최적화 | 다양한 최적화 기법 (예: 압축)을 통해 효율성을 향상시킬 수 있음 |
| 보안 | SSL/TLS와 같은 보안 프로토콜을 통해 보안 강화 가능 |
2. 메시지 형식
객체 관리 그룹(OMG)은 일반 객체 요구 매개자간 프로토콜(GIOP)을 정의하며, 여기에는 객체 요청, 객체 구현 확정, 통신로 관리 등의 목적을 위해 에이전트 간에 교환되는 정의된 메시지 형식이 포함된다. 주요 메시지는 다음과 같다:[6]
- Request: 원격 메서드를 호출한다.
- Reply: `Request`에 대한 응답으로, 보통 원격 메서드의 반환 데이터를 포함한다. 서버 측 리디렉션 지시나 예외를 포함할 수 있다.
- CancelRequest: 이전에 보낸 `Request`를 취소한다(`Reply`를 기다리지 않음).
- LocateRequest: 서버가 원격 객체를 지원하는지 확인하고, 지원하지 않으면 요청을 보낼 주소를 묻는다.
- LocateReply: `LocateRequest`에 대한 응답으로, 원격 객체의 새 주소를 포함할 수 있다.
- CloseConnection: 서버가 보내며, 더 이상 응답하지 않음을 나타낸다.
- MessageError: 잘못된 메시지에 대한 응답으로 보내진다. 외부 오류 알림에는 사용되지 않는다(`Request`에 대한 `Reply`로 오류를 알림).
- Fragment: 이전 메시지의 연속을 포함하며, 긴 메시지는 분할되어 전송된다.
2. 1. Common Data Representation (CDR)
Common Data Representation|커먼 데이터 리프리젠테이션영어(CDR)은 OMG IDL의 데이터형을 ORB 간의 저수준 통신용 표현으로 매핑하는 규정이다.[1]2. 2. 상호 운용 가능 객체 참조 (IOR)
IOR은 원격 객체에 대한 참조 형식을 규정한다. IOR은 태그가 붙은 프로파일과 각종 정보를 운반하는 컴포넌트로 구성된다. 전형적인 IOR에는 프로토콜 버전, 서버 주소, 원격 객체를 식별하는 바이트열(객체 키)로 구성된다.[1]2. 3. 정의된 메시지 형식
객체 요청, 객체 구현 확정, 통신로 관리 등의 목적으로 메시지가 에이전트 간에 교환된다. 메시지에는 다음과 같은 것이 있다.[6]- '''Request''' - 원격 메서드 호출.
- '''Reply''' - ''Request''에 대한 응답 메시지. 일반적으로 원격 메서드에서 반환되는 데이터를 포함하며, 경우에 따라 서버 측으로의 리디렉션 지시나 예외 기술이 포함된다.
- '''CancelRequest''' - 이전에 보낸 ''Request''를 취소(''Reply''를 기다리지 않겠다는 선언).
- '''LocateRequest''' - 해당 서버가 원격 객체를 지원하는지 확인하는 메시지. 지원하지 않는 경우 해당 객체에 대한 요청을 보낼 주소를 묻는다.
- '''LocateReply''' - ''LocateRequest''에 대한 응답 메시지. 경우에 따라 해당 원격 객체의 새로운 주소가 포함된다.
- '''CloseConnection''' - 서버에서 보내며, 앞으로 응답하지 않음을 나타낸다.
- '''MessageError''' - 부정한 메시지에 대한 응답으로 전송된다. 외부로의 오류 통지에는 사용되지 않는다 (관리 서버의 ''Request''에 대한 ''Reply''로 오류를 통지한다).
- '''Fragment''' - 이전 메시지의 속행을 포함하는 메시지. 긴 메시지는 분할되어 전송된다.
3. 바이너리 형식
GIOP 메시지를 바이너리 형식으로 덤프 표시하면 헤더가 독특하여 즉시 식별할 수 있다.
- 4개의 ASCII 문자: G I O P
- 2바이트의 버전 번호 (1바이트가 메이저 버전이며 현재는 1만 해당)
- 1바이트의 메시지 플래그. LSB로 엔디안을 나타낸다 (0 - 빅 엔디안, 1 - 리틀 엔디안).
- 1바이트의 메시지 유형 (''Reply'', ''Request'', ''Fragment'' 등을 나타냄)
- 4바이트의 메시지 길이 (헤더 부분은 포함하지 않음)
메시지는 정수 태그가 붙은 임의의 데이터 조각의 전송에도 사용된다. 이러한 데이터 조각은 서비스 컨텍스트라고 하며, 필요에 따라 통신 표준을 확장하는 데 사용된다. 표준으로 제공되는 서비스 컨텍스트에는 예외를 던지는 서비스 컨텍스트, 문자 코드를 지정하는 서비스 컨텍스트 등이 있다. 클라이언트와 서버의 인터셉터에서 메시지에 서비스 컨텍스트를 추가하여 서로 주고받을 수도 있다.
4. 환경에 특화된 ORB 간 프로토콜 (ESIOP)
CORBA는 일반 객체 요구 매개자간 프로토콜(GIOP)의 대안으로 환경에 특화된 ORB 간 프로토콜(Environment Specific Inter-ORB Protocol, ESIOP) 개념을 포함하고 있다. GIOP는 대부분의 CORBA 구현체의 범용 목적의 요구를 충족하기 위해 정의되지만, ESIOP는 특수한 요구사항을 해결하기 위한 시도이다.[8][9]
4. 1. ESIOP의 특징
ESIOP는 특수한 요구사항을 해결하기 위한 시도로 볼 수 있다. 예를 들어, ESIOP는 제한된 대역폭이나 높은 지연 시간을 가진 네트워크 환경에서 효율성을 높이기 위해 대안적인 프로토콜 인코딩을 사용할 수 있다.[8][9] 또한, ESIOP는 분산 컴퓨팅 환경(DCE)과 같이 일부 CORBA가 아닌 기술 스택 위에 CORBA를 계층화하는 데 사용될 수 있다.[8][9]4. 2. DCE-CIOP
DCE 공통 ORB 간 프로토콜(DCE Common Inter-ORB Protocol, DCE-CIOP)은 분산 컴퓨팅 환경(DCE)에서 사용하기 위한 환경에 특화된 ORB 간 프로토콜(Environment Specific Inter-ORB Protocol, ESIOP)이다.[8][9] DCE-CIOP는 CORBA를 DCE RPC와 CDR(Command Data Representation)과 매핑시켜 준다.[8][10] DCE-CIOP는 CORBA 2.6.1 표준의 16장에 정의되어 있다.[11]5. GIOP의 법적 상태
CORBA, IIOP, OMG 등의 약칭은 Object Management Group의 등록 상표이므로 사용에 주의해야 한다. 그러나 GIOP는 등록 상표가 아니다(http://www.omg.org/legal/tm_list.htm OMG 상표 목록 참조). 따라서 경우에 따라 GIOP라는 용어를 사용하는 것이 좋다.
참조
[1]
웹사이트
IIOP: OMG's Internet Inter-ORB Protocol: A Brief Description
http://www.omg.org/l[...]
2014-08-19
[2]
서적
Design Patterns in Communications Software
https://books.google[...]
Cambridge University Press
2001-07-23
[3]
서적
Fundamentals of Distributed Object Systems: The CORBA Perspective
https://books.google[...]
John Wiley & Sons
2004-04-07
[4]
간행물
A bridge for heterogeneous communication between CORBA and DCE
https://books.google[...]
Springer
1997-12-05
[5]
서적
The Common Object Request Broker: Architecture and Specification: Revision 2.6.1
http://www.omg.org/c[...]
OMG
2016-05-11
[6]
웹사이트
About the Common Object Request Broker Architecture Specification Version 3.4
https://www.omg.org/[...]
2023-04-13
[7]
웹인용
보관된 사본
http://www.omg.org/l[...]
2014-08-19
[8]
서적
Design Patterns in Communications Software
https://books.google[...]
Cambridge University Press
2001-07-23
[9]
서적
Fundamentals of Distributed Object Systems: The CORBA Perspective
https://books.google[...]
John Wiley & Sons
2004-04-07
[10]
간행물
A bridge for heterogeneous communication between CORBA and DCE
https://books.google[...]
Springer
1997-12-05
[11]
서적
The Common Object Request Broker: Architecture and Specification: Revision 2.6.1
http://www.omg.org/c[...]
OMG
2016-05-11
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com