70 likes | 371 Views
컴퓨터 네트워크 Chapter 11 RPC 프로그래밍 임효택. RPC 프로그래밍. 소개. [ 그림 11.1] RPC 원격 절차 호출 모델. RPC 프로그래밍. - RPC 클라이언트 클라이언트는 클라이언트 stub 라고 하는 프로시져를 호출 한다 . 클라이언트 stub 의 목적 파라미터를 모아서 필요함녀 이들을 표준화된 형식으로 바꾼 다음 하나 이상의 네트워크 메시지를 만드는 것 . 미샬링 : 클라이언트 파라미터들을 하나의 네트워크 메시지로 만드는 것 .
E N D
PART 03 프로그래밍 컴퓨터 네트워크 Chapter 11 RPC 프로그래밍 임효택
PART 03 프로그래밍 RPC 프로그래밍 • 소개 [그림 11.1] RPC 원격 절차 호출 모델
PART 03 프로그래밍 RPC 프로그래밍 - RPC 클라이언트 • 클라이언트는 클라이언트 stub라고 하는 프로시져를 호출 한다. • 클라이언트 stub의 목적 • 파라미터를 모아서 필요함녀 이들을 표준화된 형식으로 바꾼 다음 하나 이상의 네트워크 메시지를 만드는 것. • 미샬링 : 클라이언트 파라미터들을 하나의 네트워크 메시지로 만드는 것. • 네트워크 메시지는 원격의 시스템으로 전송 • 연결-지향 또는 비연결 프로토콜 사용 - RPC 서버 • 서버 stub는 실제의 서버 함수를 호출하기 위해 프로시져 호출을 함으로서 네트워크 메시지에서 받은 파라미터들을 넘겨준다. • 프로시져가 끝날 때 그 결과를 서버 stub에게 반환 • 메시지는 네트워크를 따라 다시 클라이언트 stub에게 보내짐 • 클라이언트 stub는 자신의 커널로부터 네트워크 메시지를 읽음.
RPC 프로그래밍 PART 03 프로그래밍 • XDR(eXternal Data Representation) - XDR 개요 • 각각의 컴퓨터 구조들은 데이터의 표현을 위해 각기 정의된 표현 방식을 사용 • XDR은 클라이언트와 서버가 교환하는 대부분의 데이터 형태에 대한 규정을 한다. • XDR 표준은 열거된 데이터 형태의 대해 어떻게 인코드 되어야 하는지 명시 • XDR을 사용하는 클라이언트와 서버는 이들이 교환하려는 메시지의 정확한 형식 에 동의해야 한다. • 데이터에 대한 필드의 형태와 정확한 형식을 모른다면 XDR 인코드된 메시지를 해석할 수 없다.
RPC 프로그래밍 PART 03 프로그래밍 - SUN RPC • Sun RPC 기능은 대부분의 BSD 계열의 UNIX 운영체제에서 제공 • Sun RPC 기능은 다음과 같은 요소들로 구성 • Rpcgen 컴파일러 • XDR 기능 • 런타임 라이브러리 • Rpcgen을 사용하여 클라이언트와 서버를 만들기 위해 작성해야 하는 프로 그램을 보여준다.
RPC 프로그래밍 PART 03 프로그래밍 • SUN RPC 예제 프로그램 - datetime 예제 프로그램 • 이 프로그램은 클라이언트가 RPC를 이용해 서버의 현재 시각을 알 수 있도록 하는 프로그램이다. • 프로그래머는 다음의 3개의 파일을 작성해야 한다. • 클라이언트 프로그램(rdate.c) • 서버 프로그램(date_proc.c) • RPC 명세 파일(date.x) [그림 11.4] RPC 예제 프로그램 처리과정
RPC 프로그래밍 PART 03 프로그래밍 - Dictionary lookup • Rpcgen을 사용하는 예로서 간단한 데이터베이스를 구현하는 응용 • 데이터베이스는 다음과 같은 네 가지 기본적인 동작을 제공 • Initialize : 데이터베이스 초기화 • Insert : 해로운 항목 추가 • Delete : 항목 제거 • Lookup : 항목 검색 • RPC 프로그래밍을 위한 6가지 단계 • 단계 1 : 클라이언트와 서버 프로그램 작성 • 단계 2 : Rpcgen 명세(specification)를 작성 • 단계 3 : Rpcgen 실행 • 단계 4 : 클라이언트 프로그램 컴파일과 링크 • 단계 5 : 서버 프로그램의 컴파일과 링크 • 단계 6 : 서버를 구동, 클라이언트를 실행