객체 요청 브로커
객체 요청 브로커(ORB)는 분산 컴퓨팅 환경에서 객체 간의 통신을 가능하게 하는 소프트웨어 아키텍처이다. ORB는 클라이언트가 네트워크 상의 서버 객체에 위치 투명적으로 요청을 보낼 수 있도록 중개자 역할을 수행하며, 객체의 위치나 구현 세부 사항에 대한 지식 없이도 객체 서비스를 호출할 수 있게 한다.
역할 및 기능
- 위치 투명성: ORB는 클라이언트가 서버 객체의 물리적 위치나 네트워크 주소를 알 필요 없이 객체를 호출할 수 있도록 한다. 클라이언트는 객체의 인터페이스만 알면 된다.
- 중개 및 라우팅: 클라이언트의 요청을 해당 객체가 존재하는 서버로 전달하고, 서버의 응답을 다시 클라이언트에게 전달한다.
- 객체 활성화 및 관리: ORB는 필요에 따라 서버 객체를 활성화하고, 객체의 생명주기를 관리한다.
- 인터페이스 정의: 인터페이스 정의 언어(IDL, Interface Definition Language)를 사용하여 객체의 인터페이스를 정의하고, 클라이언트와 서버가 동일한 인터페이스를 공유하도록 한다.
- 프로토콜 독립성: ORB는 다양한 통신 프로토콜을 지원하여, 이기종 환경에서도 객체 간의 통신을 가능하게 한다.
동작 방식
- 클라이언트는 원하는 객체에 대한 요청을 ORB에 전달한다.
- ORB는 인터페이스 저장소(Interface Repository)를 참조하여 요청된 객체의 인터페이스를 확인한다.
- ORB는 서버 객체의 위치를 찾고, 요청을 해당 서버로 전달한다.
- 서버 객체는 요청을 처리하고, 결과를 ORB에 반환한다.
- ORB는 결과를 클라이언트에 전달한다.
표준 및 구현체
가장 대표적인 ORB 표준은 OMG(Object Management Group)에서 정의한 CORBA(Common Object Request Broker Architecture)이다. CORBA는 다양한 프로그래밍 언어와 플랫폼을 지원하며, 다양한 ORB 구현체(예: ORBit, JacORB, TAO)가 존재한다.
활용 분야
ORB는 분산 시스템, 엔터프라이즈 애플리케이션 통합(EAI), 미들웨어 등 다양한 분야에서 활용된다. 특히 CORBA는 금융, 통신, 국방 등 높은 안정성과 확장성을 요구하는 시스템에 많이 사용되었다.