80 likes | 244 Views
RPC. Remote Procedure Call (RPC) Apelul procedurii la distanta. RPC. C ând un proces de pe maşina A apelează o procedură de pe maşina B, acest proces este suspendat , iar execuţia procedurii apelate are loc pe maşina B.
E N D
RPC Remote Procedure Call (RPC) Apelul procedurii la distanta
RPC Când un proces de pe maşina A apelează o procedură de pe maşina B, acest proces este suspendat, iar execuţia procedurii apelate are loc pe maşina B. Procedurii apelate la distanţă i se pot transmite parametri, rezultatul apelului fiind returnat înapoi procesului A.
RPC • Dezvoltarea unei aplicaţii client / server care foloseşte RPC • presupune: • realizarea interfeţei; • generarea stuburilor; • realizarea aplicaţiei client; • realizarea aplicaţiei server.
RPC • Interfaţa: • Defineşte modul în care clientul şi serverul se pot recunoaşte într-o reţea • Defineşte procedurile la distanţă pe care serverul le pune la dispoziţie • Defineşte parametrii pentru aceste proceduri • uuidgen -i –ohello.idl
RPC • Generarea stub-urilor: • midl hello.idl • (midl /app_config hello.idl) • Rezulta: • hello.h – header (declaraţia funcţiilor RPC) • hello_c.c – stub-ul clientului • hello_s.c – stub-ul serverului
RPC Conexiunea client-server (binding): aplicaţia Client RpcStringBindingCompose– crează string-ul folosit pt. binding RpcBindingFromStringBinding– realizează conexiunea şi obţine handler-ul binding-ului RpcStringFree– eliberează string-ul RpcBindingFree– rupe legătura dintre client şi server (deconectare)
RPC Conexiunea client-server (binding): aplicaţia Server RpcServerUseProtseqEp– specifică protocolul utilizat RpcServerRegisterIf– înregistrează interfaţa în reţea RpcServerListen– pune serverul în stadiul de ascultare după apeluri RPC RpcMgmtStopServerListening– opreşte serverul