Principais Aplicativos de Socket


Daniel Tenório dos Santos
Sistemas de Informação – Faculdade Estácio de Alagoas.

O avanço da tecnologia na utilização de socket contribuiu para a melhoria no desempenho das aplicações desenvolvidas nos dias atuais. Disponível através de componentes em vários frameworks, o socket tem facilitado a comunicação entre aplicações, de forma até transparente para o usuário e em algumas aplicações, chegam a ser atualizadas de maneira que, a funcionalidade dos sistemas não sejam interrompidas e os usuários não chegam a perceber essas operações que são realizadas de forma real.

1. Introdução

No processo de software, existe a comunicação, o socket permite isso de forma a ser indispensável nos sistemas distribuídos, pois existe uma ligação entre os processos do servidor com o cliente. Um socket é a interface entre a camada de aplicação e a de transporte. [01]
Nas aplicações desenvolvidas, cliente e servidor podem estar em máquinas diferentes e distantes. Através de protocolos, eles se comunicam e trocam mensagens, os serviços via socket são implementados em  protocolos TCP e UDP.[01]
Para uma conexão ser estabelecida, um programa cliente deve:
  • Abrir um socket;
  • Abrir um stream de entrada e um stream de saída para o socket;
  • Dependendo do servidor, pode ler e escrever por meio dos streams segundo o protocolo;
  • Fechar o stream;
  • Fechar o socket.
Neste artigo, veremos os principais sockets e em alguns, suas vantagens e desvantagens.

2. Socket na Aplicação TCP

Quando o cliente conecta o servidor, o processo no servidor deve estar executando antes da solicitação do cliente, que já aceita o socket disponibilizando uma porta de comunicação. [01]
Nessa comunicação é especificado o endereço IP e o número da porta do servidor e quando ele é contactado é criado um novo socket para a comunicação com o cliente, com isso, fica liberado uma nova comunicação para um novo cliente que deseje fazer a conexão, na aplicação, a conexão TCP é um fluxo de dados onde as mensagens são fragmentadas em pacotes, sem duplicação, isso garante a entrega e a ordem dos pacotes, os pacotes são organizados porque são encaminhado através de uma tubulação virtual, com isso, não é necessário que as cadeias de bytes contenham IP e número da porta.[01]

3. Socket na Aplicação UDP

Também, torna-se possível a comunicação entre processos UDP nessas aplicações. O UDP é um serviço e sem conexão.[01]

Para tornar possível a conexão, é necessário incorporar o endereço IP ao conjunto de bytes enviados, também dever ser informado a porta de comunicação. Todo esse conjunto recebe o nome de pacote e o socket é responsável por colocar na rede esse pacote, por ser um serviço sem conexão, o UDP não garante de que o pacote realmente chegará ao seu destino.

Lado Cliente:

[05].O cliente sabe o nome do servidor e a porta que o servidor está escutando, o cliente também tem que se identificar ao servidor, estabelecendo uma porta local usada durante a conexão. Tudo isso é destinado pelo sistema.
     Figura 1. Solicitação do cliente.[05]
 
Lado Servidor:

O Servidor aceita a conexão criando um novo socket para a mesma porta local e se conecta ao endereço e
porta do cliente através de um canal de comunicação. É necessário um novo socket porque ele precisa continuar escutando os pedidos de conexão enquanto atende as necessidades do cliente. Conforme figura 2.[05]

    Figura 2. Canal de comunicação entre cliente e servidor.[05]

4. DCE/RTC

Desenvolvido na Década de 90, iniciou a parte de utilização de socket para transmissão remota de procedimentos através de linguagem de programação.
Possui uma linguagem própria de definição de interfaces e foi a primeira ferramenta que permitia ser colado procedimentos remotos em servidores diferentes, através de programa principal instalado no servidor, era possível instalar partes de procedimentos em outros servidores e remotamente fazia locação para eles, antes nenhuma outra ferramenta tinha esses recursos.

4.1. Característica
Pose ser executada em protocolo TCP/IP;
Roda em Servidores Windows e Linux, para o Linux é necessário o Samba.

5. MSRPC

É o DCE/RTC com recursos mais avançados, incorporou uma linguagem de desenvolvimento própria da Microsoft, permite que os componentes sejam incluídos nas interfaces de desenvolvimento, tornando o socket parte da aplicação através de componentes, porém, não é multiplataforma, só  roda no Windows.

6. CORBA

Em uma arquitetura de requisição de objetos, o foco principal não são os procedimentos e sim os objetos. O Delphi é um exemplo que possui um componente do CORBA.
O socket cria um Proxy em modo runtime, isso significa que quando a aplicação distribuída que foi desenvolvida utilizando algumas linguagens de programação, detecta que um objeto está sendo invocado e não existe um proxy especifico para este fim, automaticamente, é gerado outro socket em modo de execução, tudo isso é realizado na medida em que a aplicação está sendo executada, ou seja, em modo runtime.

6.1. Vantagens

A principal vantagem é que não corremos risco de ter uma requisição negada por falta de Proxy, se a aplicação servidora não possuir esse recurso não será possível estabelecer a conexão, pois os serviços serão negados.

6.2. Desvantagens

É runtime, então o consumo de recursos da aplicação é igual, pois ele vai criar um proxy para cada cliente que chamar. Ao invés de utilizar o proxy de outra camada de software que estão gerenciando a aplicação distribuída, que isso economizaria memória e processamento na máquina, ele vai gerar um proxy dentro da aplicação para cada requisição, então quanto mais requisições forem feitas mais lento ficará a execução da aplicação.
Como é feita essa chamada?

Para cada chamada remota é criado um vinculo entre cliente e servidor e a troca dessas informações acontecem através de RTC, o proxy é um gerente de todas essas chamadas remotas, geralmente tudo isso é fornecido pelo sistema operacional ou por uma camada de software encarregada de gerenciamento, mas o CORBA, se encontrar o Proxy ele faz uso e a aplicação fica livre dessa tarefa. O CORBA garante que as requisições sejam sempre aceitas porque se ele não detectar um proxy padrão, ele cria um dentro da aplicação.

O CORBA é multiplataforma.

7. COM/DCOM

A Microsoft possui dois tipos de software distribuídos, um deles é totalmente orientado a objetos que foi modificado através do DCE/RPC.
Através de um arquivo de parâmetros é possível dar suporte a objetos que utiliza índices, esses índices ficam nesses arquivos que chamamos de arquivos de parâmetros globais, é possível fazer alterações nesses parâmetros.
Existe camada de transporte compatível com RPC, como é utilizada a mesma camada de transporte, não foi necessário criar outra para comunicação entre eles. No desenvolvimento desse socket a camada de transporte foi mantida e os outros recursos foram refeitos ou aprimorados.

7.1. Desvantagem

Por ser da Microsoft, só funciona em Servidores Windows.

8. JAVA RMI

Dispositivo RPC criado pela SUN exclusivamente para o JAVA, enquanto os outros utiliza biblioteca dinâmica o RMI é uma Classe, pode ser implementada em qualquer aplicação JAVA.

8.1. Vantagem

Por ser uma classe podemos implementar em aplicação que não seja distribuída, permite importar uma classe de outra aplicação.
É multiplataforma.

9. SOAP

Foi implementado pelo W3C que é um padrão próprio através de computação distribuída, pode ser utilizado com qualquer software.
Ele gera em sua própria arquitetura um envelope permitindo troca de mensagens, cria também regras específica para que as mensagens sejam codificadas, também cria um modelo para que essas mensagens sejam trocadas, ainda implementa um mecanismo de chamada remota de procedimentos independente da linguagem de programação.
Qualquer que seja a linguagem, os mecanismos são independentes da linguagem, com isso temos uma plataforma de programação independente. Só estabelece meios de comunicação, sem muitos recursos.

9.1 Vantagens

É Multiplataforma;
Permite implementar troca de mensagens distribuídas em sistemas pervasivos.

10. UDDI

È um mecanismo de registro para que clientes localizem serviços que são implementados por um servidor web.
Como isso acontece?
Um servidor registra informações sobre serviços disponíveis, os clientes fazem contatos com esses registros e localizam o serviço que é do seu interesse, e dependendo, pode utilizar tudo isso com outro middleware. O UDDI é multiplataforma.

11. XML

Não é um middleware, mas ele se integra aos middleware por ser uma linguagem de marcações extensiva, estabelece um padrão de troca de mensagens e formato de dados.
É fornecido uma representação de dados padrão de alto nível entre outros componentes RPC, é usado muito para trocar mensagem de uma aplicação para outra através do padrão XML.[02]
Hoje é utilizado muito em Notas Fiscais Eletrônicas e Banco de Dados, podemos ter várias linguagens de programação diferentes mas que conseguem trocar alguns tipos de informações, a atual geração baseada em XML é o XHTML onde os comandos podem ser usados ao longo do website como se eles fossem comandos HTML padrões.[02]

12. Referencias

[01].WIKIVERSIDADE.Introdução às Redes de Computadores/Programação com
 Sockets. Disponível em:
<http://pt.wikiversity.org/wiki/Introdu%C3%A7%C3%A3o_%C3%A0s_Redes_de_Co
mputadores/Programa%C3%A7%C3%A3o_com_sockets>. Acesso em: 06 de junho de 2011.
[02].blogspot.com.XML – Linguagem de Marcação Extensiva. Disponível em: <http://o-que-quer-dizer.blogspot.com/2008/06/xml-linguagem-de-marcacao-extensiva.html>
Acesso em: 06 de junho de 2011.
[03].MONNERAT, Nelson. Sockets. Disponível em: <http://nmonnerat.br.tripod.com>.
Acesso em: 05 de junho de 2011.
[04].HENRIQUE, Carlos. Comunicação Entre Processos. Disponível em: < http://pt.scribd.com/doc/55774976/5-Comunicacao-entre-Processos>.Acesso em: 05 de junho de 2011.
[05].NUNES. Leonardo R. .Sockets em Java.
Disponível em: <http://www.riopomba.ifsudestemg.edu.br/dcc/dcc/materiais/1089335456_PAPER%204%20-%20Sockets%20em%20JAVA.pdf>. Acesso em 13/06/2011

Comentários

Postagens mais visitadas deste blog

Auxiliares: Servos que sustentam a obra de Deus

O Chamado Silencioso: Quando Servir Fala Mais Alto que Falar

O diaconato e o reconhecimento do chamado: Um ministério que vai além das paredes