Sistemas distribuídos Prof. Emiliano Monteiro
Serviços web (web services) Nos serviços web um cliente específico de uma determinada aplicação interage pela Internet com um serviço que possui uma interface especializada. Serviços web fornecem um meio pelo qual um programa cliente em uma organização pode interagir com um servidor em outra organização. Serviços web fornecem serviços que podem se integrar a outros serviços web. Os serviços web são uma extensão da web e podem ser acionados por servidores web!
Serviços web Serviços web e servidores web não são a mesma coisa. A representação de dados e o empacotamento de mensagens trocadas é feito em XML O protocolo SOAP - Simple Object Access Protocol: especifica as regras de uso do XML Um serviço web é identificado por um URI e pode ser acessado pelos clientes usando mensagens formatadas em XML Um serviço web fornece uma descrição do serviço a qual inclui uma definição de interface e outras informações, essa definição feita na linguagem WSDL ( Web Services Description Language)
URI, URL e URN URI Uniform Resource Identifier, pode ser de dois tipos: URL (uniform resource locator): inclui informações sobre a localização de recursos, exe: o nome de domínio de um servidor. URN (uniform resource names): não depende de localização, mas contam com um serviço de pesquisa para mapear recursos, Exemplo: urn:isbn:0451450523
Serviços web Um serviço web pode ser gerenciado por um servidor web, com suas páginas web ou ser um serviço separado do servidor web. Os serviços da Amazon são fornecidos por SOAP ou REST (Representational State Transfer). Tanto SOAP como os dados que ele transporta são feitos em XML. Um serviço web pode funcionar permanentemente ou ser acionado sob demanda.
Estrutura de uma mensagem SOAP SOAP Envelope SOAP Header SOAP Body POST /InStock HTTP/1.1 Host: www.example.org Content-Type: application/soap+xml; charset=utf-8 Content-Length: 299 SOAPAction: "http://www.w3.org/2003/05/soap-envelope" <?xml version="1.0"?> <soap:envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:m="http://www.example.org/stock/surya"> <soap:header> </soap:header> <soap:body> <m:getstockprice> <m:stockname>googl</m:stockname> </m:getstockprice> </soap:body> </soap:envelope>
WSDL - Web Services Description Language É usado para descrever os serviços web É escrito em XML É uma recomendação do W3C de 26 junho 2007
WSDL - Web Services Description Language É usado para descrever os serviços web É escrito em XML É uma recomendação do W3C de 26 junho 2007
.NET Remoting Caso 1: tudo no mesmo equipamento! Server.exe (GUI feito em C# e Client.exe (GUI feita em C# e Canal TCP Registrar Responder.dll Notificar
.NET Remoting Caso 1: tudo no mesmo equipamento! Server.exe (GUI feito em C# e Notificar Client.exe (GUI feita em C# e Canal TCP Registrar Responder.dll Responder tem apenas um método que pode ser acionado remotamente, é o método falaresposta()
.NET Remoting Caso 1: tudo no mesmo equipamento! Server.exe (GUI feito em C# e Client.exe (GUI feita em C# e Canal TCP Registrar Responder.dll Notificar
.NET Remoting Caso 1: tudo no mesmo equipamento! Server.exe (GUI feito em C# e Client.exe (GUI feita em C# e Canal TCP Registrar Responder.dll Notificar
.NET Remoting Caso 1: tudo no mesmo equipamento! Server.exe (GUI feito em C# e Client.exe (GUI feita em C# e Canal TCP Registrar Responder.dll Notificar
.NET Remoting Caso 1: tudo no mesmo equipamento! Server.exe (GUI feito em C# e Client.exe (GUI feita em C# e Canal TCP Registrar Responder.dll Notificar
.NET Remoting Caso 1: tudo no mesmo equipamento! Server.exe (GUI feito em C# e Client.exe (GUI feita em C# e Canal TCP Registrar Responder.dll Notificar
.NET Remoting Caso 1: tudo no mesmo equipamento! Server.exe (GUI feito em C# e Client.exe (GUI feita em C# e Canal TCP Registrar Responder.dll Notificar
Início da classe Responder Início do Client Início do Server
Caso 2: Usando dois equipamentos! Server.exe (GUI feito em C# e Client.exe (GUI feita em C# e Canal TCP Registrar Responder.dll Notificar Atenção: Ambos estão no mesmo segmento de rede!
Usando arquivos de configuração Arquivo do Server server.exe.config Arquivo do Client client.exe.config O formato é XML, pode usar a extensão.xml se o programador desejar!
Chamada lógica Camada física Client.exe Server.exe e Responder.dll Client.exe Server.exe e Responder.dll Windows Windows Windows Windows Guest 1 Guest 2 Guest 1 Guest 2 Hypervisor SO Host Hypervisor SO Host Pasta compartilhada na máquina Host contendo: Server.exe, Client.Exe e Responder.dll Pasta compartilhada na máquina Host contendo: Server.exe, Client.Exe e Responder.dll
Cenário utilizando 2 VMs Equipamento, 1 rodando o Cliente.exe Equipamento 2, rodando o Server.exe e o Responder.dll
Cenário utilizando 2 VMs Equipamento, 1 rodando o Cliente.exe Equipamento 2, rodando o Server.exe e o Responder.dll