브로커는 다양한 응용 클라이언트가 데이터베이스 서버에 연결할 수 있도록 중계하는 미들웨어이다. 브로커를 포함하는 큐브리스 시스템은 아래 그림과 같이, 응용 클라이언트, Cub_Broker, Cub_CAS, 데이터베이스 서버를 포함한 다중 계층 구조를 가진다.
지원되는 응용 클라이언트로는 C-API, ODBC, JDBC, PHP, Tcl/Tk, Python 등이 있다.
Cub_CAS(Cubrid Common Application Server)는 연결을 요청하는 모든 종류의 응용 클라이언트가 사용하는 공용 응용 서버 역할을 한다.. 또한, Cub_CAS는 데이터베이스 서버의 클라이언트로 동작하여 클라이언트의 요청에 의해 데이터베이스 서버와 연결을 제공한다. 서비스 풀 내에서 구동되는 Cub_CAS의 개수는 설정 파일에 지정할 수 있으며, Cub_Broker에 의해 동적으로 조정된다.
Cub_CAS는 CUBRID 데이터베이스 서버의 클라이언트 라이브러리와 링크되는 프로그램으로 서버 프로세스에는 클라이언트 모듈로 동작하며, 쿼리 파싱이나 최적화, 실행 계획 생성 등의 작업이 클라이언트 모듈에서 수행된다.
Cub_Broker는 응용 클라이언트와 Cub_CAS 사이의 연결을 중계하는 기능을 수행한다. 즉, 응용 클라이언트가 접근을 요청하면, Cub_Broker는 공유 메모리(shared memory)를 통해 Cub_CAS의 상태를 파악하여 접근 가능한 Cub_CAS에게 요청을 전달하고, 해당 Cub_CAS로부터 전달 받은 요청에 대한 처리 결과를 응용 클라이언트에게 반환한다.
또한, Cub_Broker는 서비스 풀(service pool) 내의 Cub_CAS 개수를 조정하여 서버 부하를 관리하고, Cub_CAS의 구동 상태를 모니터링 및 관리한다. 만약, 응용 클라이언트의 요청을 Cub_CAS 1에게 전달하였는데, 비정상적인 종료로 인해 Cub_CAS 1과의 연결이 실패하면, Cub_Broker는 응용 클라이언트에게 연결 실패에 관한 에러 메시지를 전송하고 Cub_CAS 1을 재구동한다. 새롭게 구동된 Cub_CAS 1은 정상적인 대기 상태가 되어, 새로운 응용 클라이언트의 요청에 의해 재연결된다.
공유 메모리에는 Cub_CAS의 상태 정보가 저장되며, Cub_Broker는 공유 메모리에 저장된 Cub_CAS의 상태 정보를 참조하여 응용 클라이언트와의 연결을 중계한다. 공유 메모리에 저장된 Cub_CAS의 상태 정보를 통해 시스템 관리자는 어떤 Cub_CAS가 현재 작업을 수행중인지, 어떤 응용 클라이언트의 요청이 처리 중인지를 확인할 수 있다.