O DESENVOLVIMENTO DE UMA FERRAMENTA PARA COMUNICAÇÃO EM REDE CHAT DE CHAMADA E VOZ
Por: igorcsoares • 20/5/2020 • Trabalho acadêmico • 16.868 Palavras (68 Páginas) • 146 Visualizações
UNIVERSIDADE PAULISTA – UNIP
CIÊNCIA DA COMPUTAÇÃO
DESENVOLVIMENTO DE UMA FERRAMENTA PARA COMUNICAÇÃO EM REDE
CHAT DE CHAMADA E VOZ
IGOR CORREIA SOARES R.A N1399C-4
IGOR HENRIQUE GOMES R.A D42IIH-4
DAVID DOS SANTOS PEREIRA R.A N17723-3
GABRIEL NOGUEIRA SHIOTA R.A N181842
SÃO PAULO – SP
2020
UNIVERSIDADE PAULISTA – UNIP
CIÊNCIA DA COMPUTAÇÃO
DESENVOLVIMENTO DE UMA FERRAMENTA PARA COMUNICAÇÃO EM REDE
Atividade Prática Supervisionada tem como proposta mostrar uma aplicação chat com comando de voz
SÃO PAULO – SP
2020
Índice
índice….............................................................................................................03
1.0 Objetivo.......................................................................................................04
2.0 Introdução..................................................................................................05
3.0 Fundamentos da comunicação de dados em rede.................................09
4.0 Projeto (estrutura) do programa...............................................................15
Figura 1 Banco de Dados utilizado no projeto..............................................15
Figura 2 Programa servidor usado para repassar as mensagens entre os clientes conectados............................................................................................15
Figura 3 Após iniciar o servidor ele fica aguardando conexões de clientes..16
Figura 4 Tela inicial do programa Cliente solicitando login para utilização...16
Figura 5 Tela de cadastro............................................................................17
Figura 6 Campos preenchidos.....................................................................17
Figura 7 Ao clicar em cadastrar a mensagem de êxito é exibida..................18
Figura 8 Campos do login preenchidos........................................................18
Figura 9 Login feito com sucesso.................................................................19
Figura 10 Cliente se conectou ao servidor...................................................19
Figura 11 Tela de chat.................................................................................20
5.0 Relatório com as linhas de código...........................................................22
Servidor.......................................................................................................22
Cliente.........................................................................................................22
Conexão ao Banco de Dados.....................................................................26
Comandos do Banco de Dados..................................................................26
Form inicial..................................................................................................29
Form de cadastro........................................................................................31
Form Chat...................................................................................................34
Form voip....................................................................................................37
6.0 Bibliografia.................................................................................................40
7.0 Fichas..........................................................................................................42
1.0 Objetivo
Este trabalho tem como objetivo apresentar uma ferramenta de comunicação em rede, um programa para com a opção de áudio ou melhor áudio conferência, onde será possível duas pessoas dialogarem (terem uma conversa) através de uma conexão em rede.
Esta comunicação em rede se dará por meio de sockets de Berkeley, utilizando o protocolo UDP/IP, como o TCP tem confirmação de envio, ele acaba aumentando o atraso da rede desnecessariamente. O ideal é usar um protocolo que, caso um pacote de áudio se perca, ele simplesmente gera um pouco de ruído na aplicação, mas não impede que futuros pacotes deixem de chegar ao destino. O TCP é mais adequado para transferências confiáveis, como a de arquivos, será utilizado o protocolo RTP (Real-time Transport Protocol) para transmissão em tempo real dos dados de áudio através do endereço de IP. A linguagem de programação que será utilizada é o Java, por ser simples e multiplataforma.
- Introdução
Comunicação é, e sempre foi, uma das maiores necessidades da sociedade humana desde os primórdios de sua existência. Conforme as civilizações se espalhavam, ocupando áreas cada vez mais dispersas geograficamente, a comunicação à longa distância se tornava, cada vez mais, uma necessidade e um desafio para toda a humanidade. Formas de comunicação através de sinais de fumaça ou pombos-correios foram às maneiras encontradas por nossos ancestrais para tentar aproximar as comunidades distantes que até então não podiam manter contato/comunicação entre si. Sempre procuramos maneiras mais rápidas de comunicarmos informações importantes, seja por um e-mail entre funcionários de uma empresa ou um chat entre dois funcionários em industrias diferentes, ou até mesmo um SMS como vemos atualmente, mensagens instantâneas em tempo real, como é o caso do WhatsApp, etc. A invenção do telégrafo por Samuel F. B. Morse, em 1838, inaugurou uma nova época nas comunicações. Nos primeiros telégrafos utilizados no século XIX, mensagens eram codificadas em cadeias de símbolos binários (código Morse) e então transmitidas manualmente por um operador através de um dispositivo gerador de pulsos elétricos. Desde então, a comunicação através de sinais elétricos atravessou uma grande evolução, dando origem à maior parte dos grandes sistemas de comunicação que temos hoje em dia, como o telefone, o rádio e a televisão. A evolução no tratamento de informações não aconteceu somente na área da comunicação. Equipamentos para processamento e armazenamento de informações também foram alvo de grandes invenções ao longo do nosso desenvolvimento. A introdução de sistemas de computadores na década de 1950 foi, provavelmente, o maior avanço do século nesse sentido. Inicialmente, os computadores eram máquinas caríssimas e de grande porte que centralizaram em um único ponto o processamento das aplicações de vários usuários e, muitas vezes, de toda uma organização. Com a redução de custos do hardware e a introdução dos microcomputadores no cenário da informática, a estrutura 26 centralizada cedeu lugar a uma estrutura totalmente distribuída, na qual, diversos equipamentos dos mais variados portes, processam informações de formas isoladas, o que acarreta uma série de problemas futuros. Dentre eles destaca-se a duplicação desnecessária de recursos de hardware (impressoras, discos, etc.) e de software (programas, arquivos de dados, etc.). A fusão dos computadores e das comunicações teve uma profunda influência na forma como os sistemas computacionais eram melhor organizados. Está totalmente ultrapassado o conceito de um “centro de computadores”, como uma sala para onde os usuários levam os programas a serem processados. O velho modelo de um computador atendendo a todas às necessidades computacionais de organização foi substituído pelas chamadas redes de computadores, nas quais os trabalhos são realizados por uma série de computadores interconectados. Uma rede é um grupo de pelo menos dois computadores que são ligados entre si de forma que possam se comunicar uns com os outros, compartilhando recursos e informações com maior velocidade e praticidade e precisão. Forouzan e Mosharraf (2003, p. 01) descrevem a rede como um meio de transmissão de dados com ou sem fio. Olifer & Olifer (2008, p. 04) comprovam que as redes de computadores também podem ser consideradas um meio de transmissão de informações a longa distância. Para isso as redes de computadores implementam diversos métodos de codificação de dados e multiplexação amplamente adotados nos sistemas de telecomunicações. Segundo Forouzan (2008, p. 07), redes de computadores é um conjunto de dispositivos (normalmente conhecido como nós) conectados por links de comunicação. Um nó pode ser um computador, uma impressora ou outro dispositivo de envio e/ou recepção de dados, que estejam a outros nós da rede. Scrimger, LaSalle, Parihar e Gupta (2002, p. 03) titubeiam a rede como dois ou mais computadores que compartilham informações. Contudo, as redes podem ser bastante diversificadas. Uma rede de computadores permite que o usuário compartilhe uma enorme quantidade de informações e enviem mensagens uns aos outros, incluindo textos, imagens, áudios e vídeos. 27 Olifer & Olifer (2008, p. 04) provem a influência das redes de computadores sobre outros tipos de redes de telecomunicações, onde resultou em uma convergência de redes, um processo que começou muito antes da internet. Independentemente do tamanho e do grau de complexidade, o objetivo básico de uma rede de computadores é garantir que todos os recursos de informação sejam compartilhados rapidamente, com segurança e de forma confiável. Para tanto, a rede deve possuir meios de transmissão eficientes, regras básicas (protocolos) e mecanismos capazes de garantir o transporte das informações entre os elementos que a constituem. Apesar de a indústria de informática ser jovem quando comparada a outros setores (como, por exemplo, o de automóveis e o de transportes aéreos, farmacêuticos, comerciais, etc.), foi simplesmente espetacular o progresso que os computadores conheceram em um curto período de tempo. Nas duas primeiras décadas de sua existência, os sistemas computacionais eram acondicionados, geralmente, em uma grande sala com paredes de vidro, através das quais os visitantes podiam contemplar embevecido o cérebro daquela maravilha eletrônica. Uma empresa de médio porte ou uma universidade conta com apenas um ou dois computadores, enquanto as grandes instituições tinham, no máximo, algumas dezenas. Era pura ficção científica a ideia de que, em apenas 20 anos, haveria milhões de computadores igualmente avançados do tamanho de um selo postal. A partir destas considerações, visa-se responder a seguinte pergunta: como que se utiliza esse conjunto de dispositivos conectados? Partindo-se da hipótese, que assimilando o tempo e o conteúdo de estudo com as informações obtidas através de pesquisas é possível, de forma estratégica, desenvolver um mecanismo de comunicação em rede na linguagem Java, com a utilização das primitivas dos sockets de Berkeley, ou componentes derivados destes, e voz sobre IP. Com pesquisas, avaliações e benefícios, o trabalho busca relatar o processo de desenvolvimento de uma ferramenta de comunicação em rede, desde a sua concepção até a sua finalização. O trabalho intenciona esclarecer conceitos, funções e aplicações da comunicação em rede. Para tanto, apresentando o desenvolvimento de uma ferramenta simples com a integração de um banco de dados, voz sobre IP e as primitivas dos sockets de Berkeley. Fundamentado em obras publicadas por estudiosos especialistas que já apontaram os conceitos, usos, aplicações e falhas no processo de desenvolvimento de uma ferramenta para comunicação em rede. A presente pesquisa busca unificar e transmitir os principais conceitos de suas obras. A junção de oito obras, de ano e autores diferentes, resulta no presente trabalho. No primeiro capítulo reunimos conceitos gerais de comunicação de dados em rede, história, mercado e tipos de redes. Nesta etapa consideramos as definições de sete autores dos que foram consultados. A saber, Comer (1999), Stevens (1999), Forouzan (2008), Mosharraf (2012), Olifer & Olifer (2008), Scrimger (2002), Lasalle (2002), Parihar (2002), Gupta (2002), Soares (1995), Lemos (1995), Colcher (1995), Tanenbaum (2011) e Wetherall (2011). No segundo capítulo é descrito, parcialmente, o planejamento de desenvolvimento da aplicação. Nesta etapa consideramos as definições do autor Bezerra (2015) e usufruímos das ferramentas TFS – Team Foundation Service, Pencil Project, StarUML, brModelo, Toad Data Modeler 6.1, Microsoft Visio 2016, Microsoft Excel 2016 e Microsoft Word 2016. 29 No terceiro capítulo é descrito, parcialmente, o processo (estrutura) de desenvolvimento do programa. Nesta etapa consideramos as definições do autor Santos (2014), os principais softwares utilizados no processo foram a IDE Eclipse Java Mars x64 com acesso ao JDK 1.8.0_121 x64 e JRE 1.8.0_121 x64, últimas versões até o presente momento de dissertação, Oracle Database 11g Express Edition, Sublime Text três, Visual StudioCode, SQL Developer, TFS - Team Foundation Service, Notepad e o Prompt de Comando. A linguagem de programação utilizada foi Java Standard Edition 8 (JSE 8). O quarto capítulo apresenta algumas imagens da aplicação em funcionamento.
...