Invocação Remota de Procedimentos (RPC) Alexandre Bragança 2001 DEI / ISEP.

Slides:



Advertisements
Apresentações semelhantes
Estrutura de Dados Pilha by Aquiles Burlamaqui. Definição Uma pilha é uma das várias estruturas de dados que admitem remoção de elementos e inserção de.
Advertisements

Sistemas Operacionais II N Aula prática Java Sockets, RPC e RMI Eduardo Bezerra.
INTRODUÇÃO A COMPUTAÇÃO ENG. CIVIL
Interações cliente/servidor usando o UDP
Denise Guliato Faculdade de Computação – UFU
Um programa em C Bibliotecas Variáveis globais
Linguagem de Programação IV
Manipulação de Strings Marco Reis. Novo arquivo Adicione ManipulacaoDeStrings.c ao projeto. Cada projeto pode ter apenas um método main. Como outros programas.
Funções em C.
Novas Tecnologias Microsoft.
Shop Notas de implementação [Exercício da Disciplina de ADAV]
Classes C++ Class nome da classe { private: membros privados
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula /08/2011 Professor Leomir J. Borba-
Listas encadeadas Prof. Rosana Palazon.
Programação II Estruturas de Dados
TADS – Tipos Abstratos de Dados
Introdução à Computação - Jorge Macêdo
Java RMI Alcides Calsavara. Objetivos Permitir que um método de uma classe Java em execução em uma máquina virtual JVM chame um método de um objeto (instância.
1 Java: Tratamento de Exceções Alcides Calsavara.
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
Prof.: Sergio Pacheco Estruturas de Dados I Prof.: Sergio Pacheco 1.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo II Confecção de Tabelas.
PROGRAMAÇÃO DISTRIBUÍDA EM JAVA Verão/2001
Objetos Distribuídos - Programação Distribuída Orientado a Objetos Luiz Affonso Guedes.
Armazenamento de Dados em Arquivos
Slides Prof. Jean SIMÃO Revisão: Prof. João FABRO
Slides: Prof. João Fabro UTFPR - Curitiba
Armazenamento de Dados em Arquivos
Slides: Prof. SIMÃO Revisão: Prof. João Fabro
Slides: Prof. João Fabro UTFPR - Curitiba
Fundamentos de Programação 1
Introdução a Computação e Cálculo Numérico
PROGRAMAÇÃO ESTRUTURADA II
PROGRAMAÇÃO ESTRUTURADA II
INPE / CAP-315 Airam J. Preto, Celso L. Mendes Aula 27 (1) Programação com MPI Tópicos: Modelo de Programação Funções de Ambiente Funções Básicas.
Estrutura de dados II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Estrutura de dados II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
UNIDADE 6 - complemento Funções recursivas
PROGRAMAÇÃO I PONTEIROS.
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Desenvolvimento de Aplicações CORBA
Objetos Distribuídos para WEB Prof. Paulo Fernando da Silva FURB – Universidade Regional de Blumenau Pós-Graduação em Desenvolvimento WEB.
Tipos Especiais de Listas
APRENDER A APRENDER deve ser nossa meta. Comandos de Controle de Programa Comandos de Seleção Prof. Me. Jeime Nunes.
TMV Gestão de Redes e de Sistemas Distribuídos ???? Sumário  Arquitectura de Gestão SNMP  Arquitectura de Gestão OSI/TMN  Novas Arquitecturas.
Estruturas de Dados Aula 11: TAD Pilha
Prof.: Edson Holanda Teoria da computação
Declarando e Chamando Funções
 São utilizadas para dividir um código maior (mais complexo) em partes menores (mais simples).  Quando uma mesma tarefa é realizada várias vezes em um.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo VII Variáveis Indexadas Numéricas.
Estruturas de Dados Aula 6: Cadeias de Caracteres
Vendo o código como um bolo... com várias camadas! Interface com o usuário (GUI) Comunicação Negócio Dados.
PCI- Estrutura Condicional Profa. Mercedes Gonzales Márquez.
Revisão Luis Antonio Tavares
Programação de Computadores I – Arquivos
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo IX Subprogramação e Recursividade.
Arquitetura do DCOM Alexandre Ricardo Nardi
Vendo o código como um bolo... com várias camadas! Interface com o usuário (GUI) Comunicação Negócio Dados.
Fundamentos de Programação 1 Slides 18 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Arquivos Seqüências ou de Texto ”.
Fundamentos de Programação 1 Slides 19 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Arquivos Binários”.
Fundamentos de Programação 1 Aula N. 02 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Laços de Repetição em C”
Aula Prática 6 Ponteiros Monitoria  Quando declaramos uma matriz:  tipo meuArray[tam];  O compilador aloca a matriz em uma região de memória.
Fundamentos de Programação 1 Slides 21 Prof.ª Fabiany e Prof. SIMÃO Linguagem C “Lista Encadeada”.
Fundamentos de Programação 1 Slides 22 Prof.ª Fabiany e Prof. SIMÃO Linguagem C “Lista Duplamente Encadeada - Projeto com vários Arquivos”.
Fundamentos de Programação 1
Fundamentos de Programação 1
Fundamentos de Programação 1
Função de buscar elemento na lista simplesmente encadeada
Transcrição da apresentação:

Invocação Remota de Procedimentos (RPC) Alexandre Bragança 2001 DEI / ISEP

Modelo de Programação

Cliente-Servidor

Funcionamento

OSF DCE n DCE = Distributed Computing Environment n OSF = Open Software Foundation

Exemplo Hello World /* file hellop.c */ #include #include void HelloProc(unsigned char * pszString) { printf(%s\n, pszString); } /* file: hello.c, a stand-alone application */ #include hellop.c void main(void) { unsigned Char * pszString = Hello, World; HelloProc(pszString); }

Definição do Interface //file hello.idl [uuid(7a98c cf-b73b-00aa00b677a7),version(1.0)] interface hello { void HelloProc([in, string] unsigned char * pszString); void Shutdown(void); } A função Shutdown permite que o cliente desligue o servidor A função Shutdown permite que o cliente desligue o servidor

Geração dos Stubs Midl hello.idl Hello.h A incluir no cliente e no servidor hello_c.c Stub Cliente hello_s.c Stub Servidor

Implementação do código do Servidor #include #include "hello.h" // header file generated by MIDL compiler void HelloProc(unsigned char * pszString) { printf("%s\n", pszString); } void Shutdown(void) { RPC_STATUS status; printf("Calling RpcMgmtStopServerListening\n"); status = RpcMgmtStopServerListening(NULL); printf("RpcMgmtStopServerListening returned: 0x%x\n", status); if (status) { exit(status); } printf("Calling RpcServerUnregisterIf\n"); status = RpcServerUnregisterIf(NULL, NULL, FALSE); printf("RpcServerUnregisterIf returned 0x%x\n", status); if (status) { exit(status); }

Compilação & Execução Compilação Cliente: helloc.exe helloc.c - Código do cliente hello_c.c – Stub Servidor: hellos.exe hellos.c – Código do servidor hellop.c – Implementação dos serviços hello_s.c – Stub do servidor Execução No servidor: hellos No cliente: helloc