Upload
phungnga
View
217
Download
0
Embed Size (px)
Citation preview
FACULDADE DE TECNOLOGIA DE ITAPIRA
“OGARI DE CASTRO PACHECO”
GABRIEL TALTARI MARCHI
JAIR BATISTA JUNIOR
WARNNER ATTILIO FERNANDES SINOTTI
CONNECTLAYER:
SOFTWARE EDUCACIONAL PARA COMPREENSÃO DA CAMADA
FÍSICA DO MODELO DE REFERENCIA OSI
ITAPIRA-SP
2017
FACULDADE DE TECNOLOGIA DE ITAPIRA
“OGARI DE CASTRO PACHECO”
GABRIEL TALTARI MARCHI
JAIR BATISTA JUNIOR
WARNNER ATTILIO FERNANDES SINOTTI
CONNECTLAYER:
SOFTWARE EDUCACIONAL PARA COMPREENSÃO DA CAMADA
FÍSICA DO MODELO DE REFERENCIA OSI
Trabalho de Graduação apresentado ao Curso
de Tecnologia em Gestão da Tecnologia da
Informação da Faculdade de Tecnologia de
Itapira como pré-requisito para a obtenção do
Título de Tecnólogo em Gestão da Tecnologia
da Informação.
Orientadores: Prof. Ms. Luiz Henrique
Biazotto; Prof. Esp. Adriano Ricardo Ruggero;
Prof. Dr. Joaquim M. F. Antunes Neto.
ITAPIRA-SP
2017
Ficha catalográfica elaborada pela Biblioteca da Faculdade de Tecnologia de Itapira –
Ogari de Castro Pacheco
MARCHI, Gabriel Taltari; BATISTA JÚNIOR, Jair; SINOTTI, Warnner Atílio Fernandes.
Connectlayer: Software Educacional para Compreensão da Camada Física do Modelo de Eeferência OSI
/ Gabriel Taltari Marchi; Jair Batista Júnior; Warnner Atílio Fernandes Sinotti. 2017. 40p.
Orientadores: Luiz Henrique Biazotto; Adriano Ricardo Ruggero
Monografia (Graduação) – Curso Tecnologia da Gestão da Tecnologia da Informação da Faculdade de
Tecnologia de Itapira, 2017.
1. Tecnologia da Informação. 2 Modelo de Referência OSI. 3 Software Educacional. 4
Programação Orientada a Objeto. I. MARCHI, Gabriel Taltari; BATISTA JÚNIOR, Jair;
SINOTTI, Warnner Atílio Fernandes. II Monografia (Graduação) – Faculdade de Tecnologia
de Itapira. III. Título
M332c CDD 005.3
FACULDADE DE TECNOLOGIA DE ITAPIRA
“OGARI DE CASTRO PACHECO”
GABRIEL TALTARI MARCHI
JAIR BATISTA JUNIOR
WARNNER ATTILIO FERNANDES SINOTTI
CONNECTLAYER:
SOFTWARE EDUCACIONAL PARA COMPREENSÃO DA CAMADA
FÍSICA DO MODELO DE REFERENCIA OSI
Trabalho de Graduação apresentado ao Curso de Tecnologia em Gestão da Tecnologia da
Informação da Faculdade de Tecnologia de Itapira como pré-requisito para a obtenção do
Título de Tecnólogo em Gestão da Tecnologia da Informação.
STATUS:
CONCEITO:
BANCA EXAMINADORA
Prof. Esp. Nilton Cesar Sacco:
Prof. Dr. Pedro Domingos Antoniolli:
Prof. Esp. Adriano Ricardo Ruggero:
Prof. Ms. Luiz Henrique Biazotto (orientador):
ITAPIRA – SP, 30 de junho de 2017
AGRADECIMENTOS
A Deus, por iluminar e estar sempre presente em nossas vidas.
Aos nossos pais e familiares, que foram essenciais nessa caminhada rumo ao sucesso,
pois dedicaram tempo e carinho quando mais necessitamos.
Aos professores que estiveram presentes durante os três anos que foram aplicadores de
conhecimento e permitiram enriquecer a nossa bagagem acadêmica.
Em especial, ao professor Luiz Henrique Biazotto, que disponibilizou o seu tempo e
conhecimento para nos auxiliar e incentivar com este projeto, mesmo estando distante.
Ao professor Adriano Ricardo Ruggero, que assumiu a tarefa de nos ajudar e se
comprometeu nesta empreitada. Ao professor Joaquim M. F. Antunes Neto, que
colaborou e lutou ao nosso lado para que conseguíssemos atingir nosso objetivo.
Também a amiga Pamela Soares Baldessini, que disponibilizou seu tempo e intelecto para
poder colaborar conosco.
Além do amigo e colega Fabio Stefanini Silveira, que particípio de maneira unilateral
neste trabalho, nos auxiliando e compartilhando conhecimento, sem sua ajuda impar não
teríamos obtido sucesso.
Ainda, a toda equipe de apoio da faculdade Fatec (portaria, secretaria, biblioteca e entre
outros) que também estiveram presentes durante o dia a dia.
“Para se ter sucesso, é necessário amar de
verdade o que se faz. Caso contrário,
levando em conta apenas o lado racional,
você simplesmente desiste. É o que acontece
com a maioria das pessoas.”
Steve Jobs – 1955 - 2011
RESUMO
Atualmente são componentes chaves a inovação e a capacidade de criação e intelectual,
para tanto a sociedade busca por conhecimento para suprir essas necessidades. O
desenvolvimento de habilidades e a flexibilidade pelo “saber” exige soluções eficazes,
que em contrapartida cria preocupações entre os educadores e educandos. O desinteresse
do ser humano em aprender e compreender novos conhecimentos é de grande importância
para a sociedade e um problema existente deste o século XVIII. Agora, com os avanços
tecnológicos, as informações passaram a ter cada vez mais conteúdos abrangentes e de
fácil acesso. Porém, alguns termos técnicos requerem a utilização manuais extensos o que
torna o processo da compreensão muitas vezes lento e ineficaz, por se tratar de uma leitura
repetitiva e que que exige muito tempo. O ConnectLayer, busca facilitar a questão do
ensino de aprendizagem, fornecendo um conteúdo didático e de fácil compreensão,
especifico da disciplina de Redes de Computadores, referente ao conteúdo relacionado ao
modelo de referencia OSI (Open Systems Interconnection), abstraindo sua camada física,
que é por muitos literários, pouco comentada e de difícil compreensão para o corpo
discente.
Palavras-chave: ConnectLayer, Rede de Computadores, Tecnologia da Informação.
Software Educacional. Modelo de Referencia OSI.
ABSTRACT
The key components nowadays are innovation, creativity and intellectual capacity, for
which society seeks knowledge to meet these needs. Skills development and flexibility
through "knowledge" requires effective solutions, which in turn creates concerns among
educators and learners. The interest of the human being in learning and understanding
new things is of great importance to society and an existing problem of this eighteenth
century. Now, with technological advances, information has become increasingly
understandable and easier to access. However, some technical terms require the use of
extensive manuals, which makes the understanding process often slow and ineffective
since it is a repetitive and time-consuming reading. The ConnectLayer seeks to facilitate
this teaching issue, providing a didactic and easy to understand, specific content on
Computer Networks, related to the OSI (Open Systems Interconnection) reference model,
abstracting its physical layer, which is by many literary, little commented and difficult
understanding for the student body.
Keywords: Information Technology; Software; OSI Reference Model. Java. Object
Oriented Programming.
LISTA DE ILUSTRAÇÕES
Figura 1 - Camadas do modelo de referência OSI.......................................................... 17 Figura 2 - Comunicação de dados emissor e receptor .................................................... 22 Figura 3 - Protocolo humano e protocolo de redes ......................................................... 23 Figura 4 - Camadas do protocolo TCP/IP ...................................................................... 25 Figura 5 – Principais linguagens de computação mais utilizadas .................................. 28 Figura 6 – Raspberry PI 2 Modelo B .............................................................................. 31 Figura 7 – Editor de Fluxo do Node-RED ...................................................................... 32 Figura 8 – Transformação de comunicação de rede humana em bits ............................. 33 Figura 9 – ConnectLayer – Layout correspondente ao modelo transmissor/receptor .... 33 Figura 10 – ConnectLayer – Interface do usuário .......................................................... 34 Figura 11 – ConnectLayer – Caixa de diálogo ............................................................... 36 Figura 12 – ConnectLayer – Modelo Prático ................................................................. 37
LISTA DE TABELAS
Tabela 1 – Ranking de linguagens de programação mais utilizadas. ............................. 27
LISTA DE ABREVIATURAS E SIGLAS
ABNT Associação Brasileira de Normas Técnicas
ACK Acknowledge
ARM Advance Risc Machine
ARPA Advanced Research Projects Agency
API Application Programming Interface
ASP AppleTalk Session Protocol
ASCII American Standard Code for Information Interchange
CPD Centro de Processamento de Dados
CPU Central Processing Unit
CRC Cyclical Redudancy Check
GE General Eletric
IBM International Business Machines
IDC International Data Corporation
IEC International Electrotechnical Commission
IP Internet Protocol
IOT Internet Of Things
IPX Internetwork Packet Exchange
IPTO Information Processing Techiniques Office
ISO International Organization for Standardization
MAC Media Access Control
MIT Massachusetts Institute of Technology
NASA National Aeronautics and Space Administration
NBR National Board of Review
NFS Network File System
NIO Non-Bloking I/O
OSI Open Systems Interconnection
RAM Random Access Memory
RPC Remote Procedure Call
SD Secure Digital Card
SPX Sequenced Packet Exchange
SQL Structured Query Language
TCP Transmission Control Protocol
TI Tecnologia da Informação
UCLA University of California at Los Angeles
UDP User Datagram Protocol
UML Unified Modeling Language
UTP Unshielded Twisted Pair
SUMÁRIO
1 INTRODUÇÃO ................................................................................................ 12
2 METODOLOGIA ............................................................................................ 15 2.1 Tipo De Pesquisa ............................................................................................... 15
3 RESULTADOS ................................................................................................. 17 3.1 Aspectos Teóricos Do Modelo De Referência OSI ........................................... 17
3.1.1 NÍVEL 7 – CAMADA DE APLICAÇÃO ................................................................... 17
3.1.2 NÍVEL 6 – CAMADA DE APRESENTAÇÃO ............................................................. 18
3.1.3 NÍVEL 5 – CAMADA DE SESSÃO .......................................................................... 18
3.1.4 NÍVEL 4 – CAMADA DE TRANSPORTE ................................................................. 18
3.1.5 NÍVEL 3 – CAMADA DE REDE ............................................................................. 19
3.1.6 NÍVEL 2 – CAMADA DE ENLACE (LINK DE DADOS) ............................................ 19
3.1.7 NÍVEL 1 – CAMADA FÍSICA ................................................................................. 19
3.2 Comunicação De Dados ..................................................................................... 20 3.3 Protocolos ........................................................................................................... 22 3.3.1 TCP/IP ................................................................................................................ 24
4 O CONNECLAYER ........................................................................................ 26 4.1 Requisitos Do Sistema/Linguagem Operacional ............................................... 26 4.2 Java ..................................................................................................................... 28
4.3 Netty IO .............................................................................................................. 29 4.4 Rapsberry PI ....................................................................................................... 30 4.5 Node-RED .......................................................................................................... 31 4.6 Características Do Sistema ................................................................................. 32
5 PERSPECTIVAS DE APLICAÇÃO METODOLÓGICA .......................... 38
6 CONSIDERAÇÕES FINAIS .......................................................................... 41
REFERÊNCIAS ........................................................................................................ 42
12
1 INTRODUÇÃO
Entre o início da década de 90 e o novo milênio eram consideradas mídias de
massa a imprensa, o cinema, o rádio e a televisão (SILVEIRA, 2004), no entanto mídias
emergentes como a rede mundial de computadores e a telefonia vinham ganhando força
(DEFLEUR; BALL-ROKEACH, 1993).
Nos dias de hoje, apoiando-se na globalização, a Internet abrange expressivas
parcelas da população mundial, o que a transformou em parte da cultura de massa
(CASTELLS, 2000, 2003; LEITÃO; NICOLACI-DA-COSTA, 2000, 2003). Em meio às
novidades e a velocidade com os quais os avanços tecnológicos vêm se destacando, o
atual mercado de Tecnologia da Informação (TI) deve possibilitar grandes oportunidades,
de acordo com IDC Brasil (International Data Corporation), responsável por pesquisas
e consultorias em relação ao setor, a prospecção para o ano de 2016, é de um crescimento
de 2,6% em relação ao ano anterior (IDC Brasil, 2016).
Porém, as comunicações entre computadores iniciaram-se anos antes no auge da
guerra fria pelo departamento de Defesa Americano, a partir da criação da ARPA
(Advanced Research Projects Agency), agencia militar de pesquisas (NORBERG;
O'NEILL, 1996), juntamente com o apoio de algumas universidades, como a UCLA
(University of California at Los Angeles) e o MIT (Massachusetts Institute of
Technology) (HAFNER, 1996).
Robert Taylor, então psicólogo experimental da NASA (National Aeronautics and
Space Administration), assumiu o comando do IPTO (Information Processing
Techiniques Office), departamento vinculado a ARPA, e deu inicio a um projeto para
interligar as diferentes instituições de apoio, com intuito de compartilhar informações e
conhecimento, então em 1966, nasce a ARPANET (ABBATE, 2000).
Contudo haviam muitas dificuldades no andamento do projeto ARPANET, uma
delas era a grande diversidade de computadores que deveriam ser interligados, na época,
fabricantes como IBM (International Business Machines), GE (General Eletric) e outros,
eram totalmente incompatíveis. Para solucionar este problema, foi adotada a implantação
de uma arquitetura que consentisse em quebrar a complexidade das tarefas em camadas,
ou seja, transforma-las em tarefas de menor dificuldade e que interagissem de forma
hierárquica, de um nível mais “baixo” – (Meios físicos de comunicação, sinais elétricos
13
e transmissão de bits), a um nível mais alto – (Informações e dados próximos da
compreensão humana) (ABBATE, 2000).
Foi então que em meados de 1983, Day e Zimmermann deram início a uma
padronização, chamada de Modelo de Referencia OSI (Open Systems Interconnection),
conhecida como o padrão de protocolos de comunicação (DAY; ZIMMERMANN,
1983), normalizado pela organização ISO (International Organization for
Standardization), em conjunto com a IEC (International Electrotechnical Commission);
o primeiro é o órgão internacional responsável pela padronização e normalização em
todos os campos técnicos; já, a segunda entidade, trata-se de uma comissão internacional
responsável pela especificação de normas técnicas a serem utilizadas nas áreas de
telecomunicações e eletrônica, por tanto, se trata de uma norma técnica internacional –
ISO/IEC – 7498-4/1994, revista em 1995 (DAY, 1995).
Este trabalho é uma pesquisa de caso, cujo o foco é facilitar o aprendizado a
respeito do funcionamento da camada um, do modelo de referencia OSI, nomeada camada
física, onde o ensino de arquitetura de redes de computadores dos cursos de graduação
tem se mostrado um desafio.
Em livros como Tanenbaum (2010) e Stallings (2005), existem tentativas de
descrever a maioria das arquiteturas em uso. Segundo Hannessy (2008) a palavra
arquitetura abrange todos os três aspectos do projeto de computadores: arquitetura do
conjunto de instruções, que se referem ao conjunto de instruções visíveis pelo
programador, organização, que inclui os aspectos de alto nível do projeto de um
computador; hardware, que se refere ao projeto lógico detalhado e a tecnologia de
empacotamento do computador.
Para muitos alunos, a variedade de arquiteturas com diferentes possibilidades de
implementação traz confusão e, consequentemente, desestímulo, ainda mais por ser uma
abordagem superficial em função ao grande leque de variedade de casos a serem
estudados (SANTOS; SILVA; MACEDO, 2011).
Por se tratar de um tema muito específico, e com pouco referencial teórico
conceitual, assim sendo realizado em maior parte por estudos práticos. Para que se tenha
um conhecimento mais amplo de tais tópicos, será necessário um estudo mais
aprofundado dos tópicos aqui referidos, sendo todo tópico uma base para estudos futuros.
A partir de então, ao longo da história da rede de computadores, diversas
tecnologias vêm se desenvolvendo e influenciando profundamente a forma como os
sistemas computacionais eram organizados. O que até então era conhecido como CPD
14
(Centro de Processamento de Dados), hoje chamado de Departamento de Tecnologia da
Informação, local onde os usuários levavam os dados para serem processados, tornou-se
obsoleto e foi substituído por um novo conceito, no qual os dados podem ser processados
de maneira distribuída simultaneamente por uma grande quantidade de computadores
separados, porem interconectados, dando cara ao que conhecemos hoje com internet ou
rede mundial de computadores (TANENBAUM, 2010).
Desta forma, o objetivo geral deste trabalho é cooperar junto ao corpo docente,
com a transmissão de informação bibliográfica dos conceitos da camada física do modelo
de referência OSI. Os objetivos específicos residem em: elaborar um software capaz de
demonstrar a importância da transmissão de dados em bits e seu funcionamento; facilitar
a compreensão do conteúdo relacionado ao modelo de referencia OSI, mais
especificamente a camada física.
15
2 METODOLOGIA
Tartuce (2006) descreve que a metodologia científica é concebida no estudo
sistemático e lógico dos métodos aplicados nas ciências, levando-se em conta seus
fundamentos, sua validade e sua relação com as teorias científicas. De forma geral, “[...]
o método científico compreende basicamente um conjunto de dados iniciais e um sistema
de operações ordenadas adequado para a formulação de conclusões, de acordo com certos
objetivos predeterminados” (GERHARDT; SOUZA, 2009, p. 11).
2.1 TIPO DE PESQUISA
O projeto se enquadra na categoria de pesquisa exploratória e aplicada. Souza e
colaboradores (2013, p. 13) descrevem que a pesquisa aplicada “[...] visa adquirir ou gerar
novos conhecimentos, novos processos, para a solução imediata de problemas
determinados e específicos, com objetivo prático. Usa a pesquisa básica como suporte
para isto. A pesquisa aplicada operacionaliza as ideias”.
Além do mais, o presente estudo traz a abordagem de uma pesquisa experimental.
Trata-se de um método de investigação que se utiliza da manipulação de tratamentos na
perspectiva de estabelecer relações de causa-efeito nas variáveis investigadas. A variável
independente é manipulada para avaliar seu efeito sobre uma variável dependente
(CERVO; BERVIAN, 1983). O cunho de pesquisa tecnológica não pode ser esquecido,
pois o presente trabalho se trata de um tipo de pesquisa científica aplicada
(VALERIANO, 1998), que visa a materialização de um software voltado para a
compreensão de uma metodologia de ensino, que neste caso é o estudo da camada física
do modelo de referencia OSI (TANENBAUM, 2010).
A argumentação científica deste estudo deu-se por meio de uma revisão
bibliográfica narrativa. Não se utilizou critérios explícitos e sistemáticos para a busca e
análise crítica da literatura. A busca pelos estudos não necessariamente esgotou as fontes
de informações. A seleção dos estudos e a interpretação das informações estiveram
sujeitas de acordo com as necessidades dos autores e da temática em estudo (CERVO;
BERVIAN, 1983).
Os descritores utilizados para a busca foram: modelo de referencia OSI, software
pedagógico, arquitetura de redes, linguagens de programação, orientação a objeto, Java,
rede de computadores e comunicação de dados. Os trabalhos incluídos foram publicados
16
entre os anos de 1983 a 2016 no idioma português e inglês. Em relação aos aspectos
éticos, as normas de autorias foram respeitadas sendo que todas as obras utilizadas têm
seus autores referenciados e citados de acordo com a ABNT/NBR 6023/2002 e NBR
10520/2002.
17
3 RESULTADOS
Neste capitulo serão tratados os aspectos técnicos para que seja possível entender
os conceitos utilizados no ConnectLayer, como o Modedelo de Referencia OSI e o
funcionamento de suas camadas, com foco nos resultados esperados para este projeto.
3.1 ASPECTOS TEÓRICOS DO MODELO DE REFERÊNCIA OSI
Como já citado anteriormente o modelo de referência OSI, se trata de uma
especificação que normaliza como a rede de computadores e seus protocolos devem
funcionar de forma abstrata, porem complementar. Isso se faz graças a organização da
rede em níveis ou camadas, alinhadas uma sob a outra, como se estivessem empilhadas.
Cada camada difere uma da outra em relação a sua função especifica, porem a finalidade
de cada nível é oferecer determinados serviços aos níveis superiores, desta forma isolando
a implementação de cada recurso (TANENBAUM, 2010), como mostra a Figura 1.
Figura 1 - Camadas do modelo de referência OSI.
7 Aplicação
6 Apresentação
5 Sessão
4 Transporte
3 Rede
2 Enlace
1 Física
Fonte: Adaptado de Tanenbaum (2010).
3.1.1 NÍVEL 7 – CAMADA DE APLICAÇÃO
Na camada de aplicação estão os aplicativos propriamente ditos, dos usuários ou
os serviços dos sistemas. Esta camada cuida da comunicação entre as aplicações, sendo
que cada aplicação possui protocolos específicos de comunicação. As aplicações que
oferecem recursos aos usuários ou aos sistemas mais conhecidos atualmente são aquelas
18
que oferecem serviços no padrão da internet, como: navegadores; programas para
transferência de arquivos e envio e recebimento de e-mails (FILIPPETTI, 2002).
3.1.2 NÍVEL 6 – CAMADA DE APRESENTAÇÃO
Neste nível de camada, diferente das outras de nível inferior que serão vistas
adiante, que tratam da movimentação dos bits, está relaciona-se diretamente com sintaxe
e à semântica das informações transmitidas. Isso possibilita a comunicação entre
diferentes dispositivos que possuem distintas representações de dados, definindo as
estruturas de dados de forma abstrata, além de uma codificação padrão usada na conexão
(TANENBAUM, 2010; ROSA, 2016).
3.1.3 NÍVEL 5 – CAMADA DE SESSÃO
A responsabilidade da camada de sessão é estabelecer, gerenciar e finalizar as
sessões entre o dispositivo transmissor e receptor de dados. Segundo Tanenbaum (2010),
uma sessão oferece diversos serviços, como manter o controle de quem deve transmitir a
cada momento, impedir que as duas partes tentem executar a mesma operação e realizar
a verificação periódica de longas transmissões para permitir que elas continuem a partir
do ponto em que estavam ao ocorrer uma falha). Alguns exemplos de protocolos dessa
camada são: Network File System (NFS), Structured Query Language (SQL), Remote
Procedure Call (RPC), AppleTalk Session Protocol (ASP), entre outros (FILIPPETTI,
2002).
3.1.4 NÍVEL 4 – CAMADA DE TRANSPORTE
A transferência de dados, na camada de transporte, ocorre de modo transparente,
independente da tecnologia, topologia ou configuração das redes nas camadas inferiores
e superiores (FRANCISCATO; CRISTO; PERLIN 2014). Basicamente, quando no lado
transmissor, este nível é responsável por dividir em pacotes os dados da camada de Sessão
repassando-os para o nível inferior, a camada de Rede. Já quando no lado receptor, a
função desta camada é remontar os pacotes recebidos do nível de Rede para o dado
originalmente transmitido e envia-lo para a camada de Sessão (GUERRA, 2002).
Além disso para Guerra (2002), a camada de transporte faz o controle de fluxo de
pacotes, colocando-os em ordem caso cheguem de forma desordenada, faz a correção de
19
erros, respondendo para o lado transmissor que a informação foi recebida com sucesso,
processo chamado de ACK (Acknowledge), este nível ainda faz a intermediação entre as
camadas físicas (camadas de 1 a 3) e as camadas de aplicação (camadas de 5 a 7).
3.1.5 NÍVEL 3 – CAMADA DE REDE
Está camada cuida do endereçamento dos pacotes, convertendo endereços lógicos
em endereços físicos, podendo desta forma determinar origem que os pacotes cheguem
ao endereço de destino corretamente. Ainda é responsabilidade da camada de rede
determinar a rota que os pacotes devem seguir para atingir seu destino, baseando-se em
fatores como as condições de trafego da rede e suas prioridades (GUERRA, 2002).
Para Tanenbaum (2010), cabe a camada de rede superar os problemas que podem
ocorrer, a fim de permitir que redes heterogêneas sejam interconectadas.
3.1.6 NÍVEL 2 – CAMADA DE ENLACE (LINK DE DADOS)
A camada de Enlace ou Link de Dados, é responsável por detectar e tentar corrigir
opcionalmente os erros de transmissão do nível inferior, a camada de Física, sendo assim
alterando uma transmissão não confiável em confiável, para o uso da camada de Rede
(FRANCISCATO; CRISTO; PERLIN, 2014).
Para tanto neste nível é assegurado, quando do lado transmissor, que os dados
sejam transmitidos para o equipamento apropriado e convertidos em bits, para serem
enviados através dos meios físicos. Além disso é função deste nível formatar as
mensagens em frames adicionando-as ao cabeçalho customizado contendo o endereço de
hardware, conhecido como endereço MAC (Media Access Control), que define como os
pacotes são alocados e transmitidos no meio físico (FILIPPETTI, 2002).
3.1.7 NÍVEL 1 – CAMADA FÍSICA
Este nível, é de fato o foco da demonstração do software ConnectLayer. A camada
física considera a transmissão e recepção de bits brutos através de um canal de
comunicação, para tanto é necessário garantir que, quando o dispositivo transmissor
enviar o bit 1, o dispositivo do lado receptor deverá receber um bit de valor 1, e vice-
versa (GUERRA, 2002; TANENBAUM, 2010).
20
A camada Física, descreve todas as interfaces elétricas, óticas, mecânicas e
funcionais ligadas ao meio físico, exemplo o cabo de rede UTP (Unshielded Twisted
Pair), utilizado para interligar dispositivos e computadores, sendo esta camada
responsável pela conversão dos sinais elétricos/analógicos para sinais digitais, também
chamados de binários, os transportando para os níveis superiores (TANENBAUM, 2010).
Além dos cabos UPTs, também chamados de cabos de par trançado, existem
diversos outros meios de conexão entre os meios físicos, como: cabos coaxiais e cabos
de fibra ótica. A tecnologia das redes sem fio usam o ar como meio de transmissão, neste
caso, se dá tanto por meio de ondas de rádio como por luz infravermelho.
De maneira geral, a camada física, é a responsável por converter todos os sinais
digitais gerados pelas camadas superiores, em algum tipo de sinal analógico e transporta-
los usando de um meio de transmissão, seja por cabos elétricos, luz ou ar.
Mesmo sabendo dessas informações para muitos estudantes da área de Tecnologia
da Informação é difícil poder vislumbrar como esses dados digitais são transformados em
sinais e transmitidos pelos meios de comunicação físicos, sendo que, o ConnectLayer,
tenta abstrair essa dificuldade, mostrando como isso acontece a partir de um modelo
prático e lógico, no qual, é possível visualizar essa transformação.
3.2 COMUNICAÇÃO DE DADOS
A comunicação de dados é a troca de informação entre dois dispositivos por algum
meio de comunicação, para que o envio de dados aconteça é necessário uma combinação
entre hardware, toda infraestrutura física como os equipamentos e cabos usados para
transportar os sinais de um lugar a outro; e software, que viabiliza o processo de
comunicação, já que são necessários serviços para resolver problemas de alta
complexidade que não só envia sinais de um dispositivo de origem para um dispositivo
de destino. A eficiência de um sistema de comunicação depende fundamentalmente de
três características, entrega – o sistema deve entregar os dados ao destino correto;
confiabilidade – o sistema deve garantir a entrega dos dados; e tempo de atraso – o sistema
deve entregar dados em um tempo limite e pré-determinado (FOROUZAN, 2006).
Além disso um sistema básico de comunicação é composto por 5 elementos:
Mensagem – é a informação a ser transmitida e pode ser constituída de
texto, números, figuras, áudio ou vídeo ou qualquer combinação desses;
21
Transmissor – é o dispositivo que envia a mensagem de dados e pode ser
um computador, um smartphone, uma câmera fotográfica, etc.;
Receptor – é o dispositivo que recebe a mensagem de dados e também
pode ser um computador, um smartphone, uma câmera fotográfica e assim
por diante;
Meio – é o caminho físico por onde viaja a informação que sai do
transmissor e vai até receptor e pode ser um cabo de par trançado, cabo
coaxial, fibra ótica ou ondas de rádio (micro-ondas terrestre ou via
satélite).
Protocolo – é um conjunto de regras que rege a comunicação de dados e
representa um acordo entre os dispositivos que se comunicam, sendo que
sem um protocolo até podem ser conectados, porem não estabelecem uma
comunicação;
Uma maneira análoga de representar a comunicação de dados é relacionar o
sistema de transmissão e recepção de dados, como o serviço de correios (FOROUZAN,
2006), como exemplifica a Figura 2, a seguir.
22
Figura 2 - Comunicação de dados emissor e receptor
Fonte: Adaptado de Forouzan
Ainda uma comunicação de dados pode acontecer de três maneiras diferentes,
simplex – modo de comunicação unilateral, como em uma via de mão única, apenas um
dispositivo é capaz de transmitir enquanto o outro só é capaz de receber; half-duplex –
neste modo cada dispositivo pode transmitir ou receber, mas nunca ao mesmo tempo,
enquanto um dos dispositivos está transmitindo o outro está recebendo e vice-versa; e
full-duplex – já este modo ambos os dispositivos podem transmitir e receber
simultaneamente, como em uma via de mão dupla, o trafego de dados pode fluir nas duas
direções ao mesmo tempo.
3.3 PROTOCOLOS
Uma rede computacional possui diversos dispositivos conectados a ela, contudo
esses aparelhos não podem simplesmente trocar dados e esperar que sejam
compreendidos, para que isso ocorra e a comunicação seja de fato estabelecida, é
necessário que ao menos dois dispositivos estejam de acordo com o protocolo utilizado.
Um protocolo é um conjunto de regras que rege a comunicação de dados entre
dois dispositivos ou mais, definindo o que é e como a informação serão comunicadas,
tendo como elementos chaves a sintaxe, a semântica e a temporização (FOROUZAN,
2006).
23
Para entender mais facilmente o conceito por traz de um protocolo, uma analogia
pode ser feita quando um ser humano faz uso de boas maneiras, um dos protocolos
humanos, ao iniciar uma conversa. O protocolo de rede é muito parecido com o protocolo
humano, com a diferença explicita de que são os componentes de hardware e software
que fazem a troca das mensagens (KUROSE; ROSS, 2010), a Figura 3, exemplifica as
diferenças de dialogo entre pessoas e máquinas.
Figura 3 - Protocolo humano e protocolo de redes
Fonte: Adaptado de Kurose e Ross (2010).
Com isso é possível compreender como funciona a troca de mensagens e a
necessidade dos protocolos de rede, já que se faz necessário que os dispositivos
conectados a rede conversem com o mesmo idioma, para que um entenda o outro. De
modo transparente os diversos protocolos no estão presentes no dia-a-dia de todas as
pessoas, isso ao utilizar desde o uso de smartphone para checar e-mails, que emprega os
protocolos IMAP (Internet Message Access Protocol) e SMTP (Simple Mail Transfer
Protocol), ou navegar na internet, que utiliza o protocolo HTTP (Hypertext Transfer
Protocol), até nas empresas que possuem maquinário de grande porte que se conectam a
rede para transmitir indicadores em relação ao seu estado produtivo, embora todos os
protocolos tenham sua importância de maneira especifica, não faz parte desse estudo
explicar cada um deles, mas sim mostrar o protocolo de camadas da internet, o TCP/IP
(Transmission Control Protocol/Internet Protocol), que é a junção de dois protocolos e
base para a grande maioria dos demais (CASTELUCCI, 2011).
24
3.3.1 TCP/IP
Como já citado os protocolos são camadas de dados ou uma linguagem que
definem como os dados enviados por programas serão transferidos para a rede e como a
rede deve funcionar (FRANCISCATO; CRISTO; PERLIN, 2014). Uma rede pode
utilizar outros tipos de protocolos, como o NetBEUI (Network Basic Input/Output System
Extended User Interface), o IPX/SPX (Internetwork Packet Exchange/Sequenced Packet
Exchange), entre outros, mas neste projeto será dada ênfase ao protocolo TCP/IP, cujo o
seu funcionamento será explicado de maneira ampla e fácil entendimento de informações.
Seguindo algumas proposições, deve ser considerado que a maioria das
transmissões de redes locais utilizam uma sequência do tipo half-duplex, será explicado
mais adiante, quando utiliza-se um transmissor e um receptor; as redes que utilizam hubs,
no qual cada computador é conectado a um cabo individual, neste caso o componente
funciona como repetidor, enviando para as máquinas da rede as informações que recebe;
se alguma transmissão esteja sendo executada entre dois dispositivos, nenhuma outra
transmissão pode ser realizada ao mesmo tempo; se a transmissão ocorrer de um arquivo
grande, o restante da rede terá que esperar com o tempo proporcional ao tamanho da
transmissão de dados, caso ocorra interferências no meio do caminho de transferência ou
o não a finalização de envio de dados corretamente ao seu destino, a transmissão retoma
novamente o processo de envio dos dados faltantes ou pacotes. Os protocolos são
responsáveis por esta funcionalidade, no qual, primeiramente os dados são divididos em
pequenos “pedaços” de tamanho fixo que são chamados de pacotes ou quadros. Dentro
de cada pacote há uma informação de endereçamento qual informado a origem e o destino
do pacote. As placas de rede dos computadores possuem um endereço fixo, que é gravado
em hardware. As placas são como os endereços de ruas, no qual os dados a serem
transmitidos, adiciona o endereço origem ou destino de seu trajeto. Vale ressaltar que a
velocidade de transmissão de dados em uma rede é altamente dependente do número de
transmissões simultâneas efetuadas e a placa de rede, ao adicionar um pacote de dados
no cabo da rede, inicia uma conta chamada Checksum ou CRC (Cyclical Redudancy
Check) (FRANCISCATO; CRISTO; PERLIN 2014).
De acordo com Cyclades, Checksum ou CRC é nada mais que uma conta que
consiste em somar todos os bytes presentes no pacote de dados e enviar o resultado dentro
do próprio pacote. A placa de rede do dispositivo receptor irá refazer esta conta e verificar
se o resultado calculado corresponde ao valor enviado pelo dispositivo transmissor. Se os
25
valores forem iguais, significa que o pacote chegou íntegro ao seu destino. Caso
contrário, significa que houve algo de errado na transmissão, no qual os dados recebidos
são diferentes dos originalmente enviados e os dados chegaram corrompidos ao destino
(TANEMBAUM 2010).
Figura 4 - Camadas do protocolo TCP/IP
Aplicação
Transporte
Internet
Interface de Redes
Fonte: Adaptado de Tanenbaum (2010).
Tendo como conceitos técnicos e teóricos tudo o que foi abortado até este ponto,
pode-se dizer que o software em questão, busca apresentar o funcionamento de alguns
desses tópicos, dentro de cenário da Camada Física do Modelo de Referencia OSI, sendo
um facilitador da transmissão deste conteudo de forma dinâmica e didática.
26
4 O ConnecLayer
O software do qual este documento faz referência é chamado ConnectLayer, de
um modo geral o sistema se trata de uma plataforma ou serviço para troca de mensagens
que simula a transferência de informações entre homem e máquina, mas restringindo o
assunto a camada física do modelo de referência OSI, desta forma a ferramenta é capaz
de exibir as mensagens transmitidas e recebidas em conjuntos binários, ou seja bits puros,
convertendo-os em sinais elétricos que são exibidos em um circuito contendo 8 leds, que
representam o estado binário de cada mensagem, transmitida pela rede.
O circuito de leds é controlado por um microcomputador, chamado Raspberry PI,
e sistema operacional linux, e seu foco é para fins didáticos como será descrito.
4.1 REQUISITOS DO SISTEMA/LINGUAGEM OPERACIONAL
Dentro do contexto de desenvolvimento de software, diversas abordagens fazem
parte do conteúdo disciplinar de introdução ao que se refere a programação de
computadores. Isso geralmente implica na escolha de um modelo ou paradigma de
programação, como por exemplo a programação funcional, lógica, estruturada e por fim
a programação orientada a objetos (MARIANI, 1999).
Entre tantos paradigmas referentes as linguagens de programação, fez-se a opção
pelo modelo de POO (Programação Orientado a Objeto), que parte do pressuposto de sua
compreensão por meio da relação existente entre as diversas entidades que fazem parte
do domínio do problema, essas entidades normalmente são chamadas de classes. Uma
classe descreve quais os atributos e quais as funcionalidades de um objeto específico.
Paralelo a isso, a orientação a objeto busca por meio de métodos tradicionais de
modelagem e desenho, uma forma que exemplifique facilmente todo o universo-
problema, de modo que, seja vislumbrado como os programas executam processos sobre
os dados, para tal geralmente é utilizada a notação UML (Unified Modeling Language)
(RICARTE, 2001).
O enfoque da programação orientada a objeto, se trata da visualização do mundo
real como um conjunto de objetos, no qual cada um possui diferentes características
representadas por seus atributos (dados) e métodos (processos), sempre interagindo uns
com os outros (YAMAGUTI, 2006).
27
A principal vantagem deste tipo de programação está na abstração, já que é
possível definir estruturas e operações, que partem do conceito de herança, que se trata
de uma técnica na qual, o objeto no topo da hierarquia, chamado de objeto (pai), transfere
todas suas características para os objetos abaixo na cadeia hierárquica, chamados de
objetos (filhos), favorecendo assim o reaproveitamento de código. Outro fator diferencial
é o polimorfismo, que permite por parte do desenvolvedor a adição de determinadas
funcionalidades que um programa necessitará executar, de maneira mais rápida e eficiente
(RICARTE, 2001).
Atualmente existem muitas linguagens no mercado voltadas para este modelo de
programação, entre as mais populares podemos citar, C++, C# (Sharp) e Java.
Para o desenvolvimento do ConnetcLayer, a opção foi feita pela linguagem de
programação Java. Por estar em primeiro lugar no ranking de plataformas mais utilizadas,
como aponta pesquisa realizada pela TIBE, empresa especializada na qualidade de
software, como demostra a Tabela 1, o Java possui uma imensa biblioteca de frameworks
disponíveis no mercado prontos para o uso, como o JavaFX e o Netty.IO, que
abordaremos mais adiante.
Tabela 1 – Ranking de linguagens de programação mais utilizadas.
Fonte: Adaptado de TIBE (2016), empresa especializada em qualidade de software.
dez/16 dez/15 Linguagem de Programação Classificação
1 1 Java 17.85%
2 2 C 8.72%
3 3 C++ 5.33%
4 4 Python 4.23%
5 7 Visual Basic.NET 3.30%
6 5 C# 3.17%
7 6 PHP 2.91%
8 8 JavaScript 2.86%
9 11 Assembly Language 2.53%
10 9 Perl 2.33%
11 15 Objetive-C 2.32%
12 10 Ruby 2.14%
13 14 Swift 2.13%
14 12 Visual Basic 1.96%
15 13 Delphi/Object Pascal 1.95%
16 50 Go 1.93%
17 18 R 1.82%
18 16 MATLAB 1.81%
19 24 Groovy 1.78%
20 19 PL/SQL 1.49%
28
4.2 JAVA
O Java surgiu em 1991, criado por um grupo de engenheiros da até então
desconhecida Sun Microsystems, com o foco de ser uma linguagem simples para
dispositivos de uso doméstico, como controles remotos de TVs, aparelhos telefônicos,
fornos elétricos e geladeiras; contudo, isso nunca aconteceu conforme o planejado. Como
o Java foi criado para funcionar em qualquer tipo de arquitetura, utilizando o conceito de
máquina virtual, a linguagem acabou caindo no gosto dos desenvolvedores e sendo usada
para diversas finalidades e hoje é uma linguagem de programação mais usada em todo o
mundo (MENGUE, 2002).
Após adquirir tantos adeptos e se estabelecido no mercado a Sun Microsystems, é
comprada pela Oracle, uma das gigante da tecnologia, no ano de 2008, dando sequência
no desenvolvimento da plataforma. Isso deu ainda mais força para a plataforma Java, que
atualmente possui uma grande biblioteca de frameworks, como os famosos Spring
Framework, Jersey e Hibernate, cada um com uma função específica com a finalidade
de ajudar o trabalho do desenvolvedor (RICARTE, 2001).
Como já foi dito anteriormente o Java é atualmente a linguagem mais utilizada
entre os desenvolvedores, além disso ela tem se mantido entre a 5 primeiras desde 2001,
como mostra a imagem a seguir.
Figura 5 – Principais linguagens de computação mais utilizadas
Fonte: Adaptado de TIBE (2016) empresa especializada em qualidade de software.
Além da forte relação com a comunidade e o mercado de desenvolvimento de
software, existem outros quesitos para a utilização do Java, para o desenvolvimento do
29
ConnectLayer, podemos citar o Garbage Collector, ou Coletor de Lixo, que faz o
gerenciamento automático de alocação e limpeza dos dados da memória liberando blocos
que não estão sendo mais usados pela aplicação, podendo evitar leitura e escrita fora do
limite do arrays, acesso a memória não iniciada e remover explicitamente a referência a
objetos sinalizando que não são mais necessários, a aplicação é totalmente transparente
ao desenvolvedor. O Java também é uma plataforma open-source, ou seja, de código
aberto, não agregando custos com a compra de licenças para o seu uso e é atualizado
frequentemente, podendo ser considerada uma linguagem segura neste aspecto
(RICARTE, 2001).
4.3 NETTY IO
Netty é uma estrutura que conecta cliente-servidor NIO (Non-Bloking I/O),
permite o desenvolvimento rápido e fácil de aplicações de rede, tais como servidores de
protocolo e clientes.
A biblioteca Netty oferece uma nova forma de desenvolver suas aplicações de
rede, o que torna mais fácil e escalável. Desta forma, é possível prescindir a complexidade
envolvida e fornecendo uma API (Application Programming Interface) de fácil utilização
que desacopla a lógica de negócios a partir do código de manipulação de rede.
Geralmente, os aplicativos de rede têm problemas de escalabilidade, caso sua construção
é construída em Netty ou em outras APIs. O componente chave do Netty é a natureza
assíncrona, oferecendo um tal nível de vias indiretas que possibilita uma simplificação a
programação de rede TCP ou UDP servers. Atualmente, a Netty está inserida em
companhias conhecidas como Twitter, Apache Cassandra, RedHat, HornetQ entre outros,
por ter uma arquitetura robusta, de fácil utilização e manuseio, adquirir excelentes
performances e robustez, segurança e suporte. Além de visar soluções alternativas para
erros e limitações conhecidas em Java NIO (MAURER, 2013).
O processamento assíncrono funciona de forma mais eficiente, permitindo-lhe
iniciar uma seção, obter notificação de conclusão sem ter que encerrar outra seção,
resumindo, processamento assíncrono funciona em linhas paralelas com um mesmo
proposito. A técnica mais utilizada com o processamento assíncrono são chamadas de
Callbacks (Chamada de retorno), que possibilita passar a informação para o método após
ser concluído. O Non-blocking I/O ou NIO é um pacote utilizado no Java, um acesso de
baixo nível de operações do sistema. Suas características principais são buffers de dados
30
de tipos primitivos, codificadores e decodificadores de conjuntos de caracteres, canais de
I/O, interface de arquivo que suporta bloqueios e mapeamento de memória de arquivos,
facilidade de entrada e saída multiplexada e não bloqueadora para escrever servidores
escaláveis (MAURER, 2013).
A transferência do Non-blocking I/O constituída em buffers, permite transferência
de um número pequeno de operações possibilitando uma extensão continua de memória.
Embora sua implementação pode selecionar memória para alinhamento ou características
de paginação. Exclusivamente, isto permite que o conteúdo do buffer ocupe a mesma
memória física usada pelo sistema operacional subjacente para suas operações de entradas
e saídas nativas, permitindo o mecanismo de transferência direcionada e eliminando a
necessidade de qualquer cópia adicional. Em grande parte dos sistemas operacionais,
desde que a área específica da memória tenha as propriedades corretas, a transferência
pode ocorrer sem usar a CPU (Central Processing Unit). O buffer Non-blocking I/O, são
intencionalmente limitados em recursos para apoiar essas metas (MAURER, 2013).
4.4 RAPSBERRY PI
O hardware conhecido como Raspberry PI (RPi), surgiu na Universidade de
Cambridge, Reino Unido, com a finalidade de reduzir o desinteresse de alunos dos cursos
de Tecnologia de Informação, pelo desenvolvimento de hardwares eletrônicos, para
mudar esse cenário foi desenvolvido o microcomputador (SILVA; SÁ; FERREIRA,
2015).
Sendo um mini microcomputador, seu tamanho é equivalente a um cartão de
crédito, exigindo pouco espaço fisico; O RPi utilizado neste projeto, possui um
processador ARM (Advance Risc Machine) Cortex A7 32 bits 900 MHz, 1 GB de
memória RAM (Random Access Memory), cartão micro-SD (Secure Digital Card) e o
Sistema Operacional Linux; bem como, possibilita conexões GPIO (General Purpose
Input/Output), que são portas programáveis de entrada e saída de dados, utilizadas para
prover interface entre periféricos.
31
Figura 6 – Raspberry PI 2 Modelo B
Fonte: Raspberry Foudantion (2017)
4.5 NODE-RED
O Node-RED é editor de workflows multiplataforma que possui interfaces ricas
baseadas em Javascript e Node.js, criado em 2013, como um projeto paralelo da IBM,
que pode ser utilizado dentro do contexto de IoT (Internet Of Things), ou Internet da
Coisas, o qual não será abordado neste trabalho (MARIANO, 2016)
A ferramenta foi escolhida, por já possuir integração nativa com o hardware da
Raspberry PI, além da facil implementação de fluxos, baseados em drop-down, arrastar
e soltar.
Dentro do cenário do ConnectLayer, o Node-RED irá permitir construir um
gráfico (fluxo) composto de nós, os quais podem ser mensagens de entrada e saída ou
uma lógica. Essas mensagens são passadas pelos nós, podendo ser processadas ou
transformadas. Sendo que no o objetivo final do fluxo será controlar o acender e apagar
do circuito de leds, a partir da GPIO da Raspbery PI.
32
Figura 7 – Editor de Fluxo do Node-RED
Fonte: Próprios autores (2017).
4.6 CARACTERÍSTICAS DO SISTEMA
O ConnectLayer é um sistema de código fonte aberto desenvolvido na linguagem
de programação Java e faz uso de interfaces gráficas ricas, além do framework NettyIO,
que implementa o uso de Java Sockets, conforme descrito nos tópicos anteriores, o que
nos da os recursos necessários para realizar a camada de comunicação com uma rede local
de computadores.
Para executar o aplicativo em qualquer computador é necessário ter a máquina
virtual do Java, ou JRE (Java Runtime Environment), instalada em sua versão 1.8 ou
superior.
O sistema é constituído de uma única tela, e sua interface foi construída de acordo
com a Figura 8, baseado no conceito de camadas do modelo de referência OSI, dando
destaque ao transmissor – chamado de nó de origem, e o receptor – chamado de nó de
destino, além do próprio processamento das informações em conjuntos binários.
33
Figura 8 – Transformação de comunicação de rede humana em bits
Fonte: Repositório público do Google Imagens (2017).
Já a Figura 9, mostra o layout do prótotipo da aplicação representando as mesmas
caracteristicas do modelo anterior, podemos notar o né de origem em verde, o nó de
destino em azul e a area de processamento em vermelho.
Figura 9 – ConnectLayer – Layout correspondente ao modelo transmissor/receptor
Fonte: Próprios autores (2017).
34
O modelo final da interface de aplicação sofreu pequenas mudanças entre a etapa
de prototipagem até a etapa de desenvolvimento, foram adicionados ícones de leds que
representam o estado ativo ou inativo do conjunto binário, mas manteve as mesmas ideias
e conceitos, como mostra a Figura 10, em destaque podemos ver em tom de verde o nó
de origem e em tom de azul o nó de destino, centralizado ao layout, temos a fila de
processamento que está destacada em vermelho nas imagens anteriores.
Figura 10 – ConnectLayer – Interface do usuário
Fonte: Próprios autores (2017).
Como pôde ser visto na figura anterior, o designer da aplicação segue um modelo
simples e didático, sendo que, a disposição dos componentes e botões de ação seguem
um fluxo lógico de operações, detalhado a seguir:
1. Nó de origem: o nó de origem representa o transmissor da mensagem, do
qual, tem como responsabilidade servir como meio de entrada do texto do
usuário e transforma-lo em binário a medida que os valores são imputados.
No exemplo, temos a mensagem “Olá mundo”, escrita em linguagem
natural, que pode ser facilmente interpretada pelo homem, já na caixa de
texto inferior, temos o mesmo conteúdo, porem em linguagem de maquina,
mas facilmente processada pelo computador.
35
2. Botões de ação: o botão processar, ao disparar a ação de clique, enfileira
todo o texto, de acordo com sua ordem escrita e inicia o envio de
mensagens para o receptor, letra a letra. Já o botão de reset, limpa todas as
informações tanto da tela, quanto da memória da aplicação;
3. Lista de processamento: a lista de processamento armazena todo o texto
de acordo com sua ordem de inserção, no caso “Olá mundo”, exibindo o
conteúdo que será processado em uma ordem lógica, baseado no conceito
de fila, ou seja, o primeiro item que entrar será o primeiro item a ser
processado;
4. Processo atual: simplesmente mostra qual dos itens da lista de
processamento está sendo executado naquele determinado momento,
exibindo a letra, no exemplo nota-se a letra “o”, e seu código hexadecimal,
nota-se o código “0x6f”, de representação na tabela ASCII (American
Standard Code for Information Interchange), que se trata de um padrão
internacional de representação, que utiliza até 8 bits, para formar um
caractere, e que pode ser utilizado para confrontar se a informação contida
no ConnectLayer, está mesmo correta;
5. Estado do circuito de leds: este componente exibe qual é o estado do
circuito de leds, do modelo físico, sendo que sua representação
ligado/desligado, deve estar de acordo com a sequencia binária do item em
processamento. Caso não o software não esteja ligado a seu modelo físico,
o conteúdo é exibido de forma a representa-lo, fazendo seu uso opcional;
6. Nó de destino: o nó de destino representa o receptor da mensagem, no
qual, todo o texto será montado passo a passo, após a transmissão de cada
informação da lista, como pode ser visto no exemplo na caixa de texto
superior é exibido o conteúdo binário da mensagem “Olá mundo”, que
aparece na caixa texto inferior, sendo esse o estágio final do processo;
7. Configuração/Conexão: este componente exibe o estado de conexão da
aplicação, bem como abre a caixa de diálogo de configuração e conexão
com a rede de dados.
Além da interface com o usuário a aplicação mostra um caixa de diálogo, que é
aberta ao clicar no botão de ação de configuração, encontrado no item 7, como visto
anteriormente na imagem, a Figura 11, representa o diálogo.
36
Figura 11 – ConnectLayer – Caixa de diálogo
Fonte: Próprios autores (2017).
Nesta caixa de diálogo podem ser definidas as configurações correspondentes a
conexão da rede, como:
Endereço IP: endereço de rede que está aguardando uma conexão com a
aplicação, por padrão a configuração é o endereço local 127.0.0.1;
Porta: porta que está aberta, esperando por uma conexão e transmissão de
dados do ConnectLayer, por padrão seu valor é 7879;
Delay: este é tempo em segundo que o software vai esperar para enviar
cada item da fila de processamento, por padrão este valor é 1 segundo;
Botão Conectar: inicia a conexão com a rede de acordo com as
informações inseridas nos itens anteriores;
Botão Cancelar: simplesmente fecha a caixa de diálogo, sem fazer
qualquer alteração.
O ConnectLayer tende a ser uma ferramenta simples, de fácil manipulação e de
pouquíssima interação, no que diz respeito a interface gráfica, seu foco está em manter
tudo centralizado para que seja possível acompanhar rapidamente o que está acontecendo
passo a passo, dentro do processo de transmissão e recepção de dados.
Além da propria aplicação, faz parte da plataforma o que é chamado de modelo
prático ou físico, que se trata propriamente de converter os sinais digitais em sinais
elétricos, através de uma conexão TCP/IP, e exibi-los em um conjunto de 8 leds que
fazem sua representação binária, como pode ser visto na Figura 12.
37
Figura 12 – ConnectLayer – Modelo Prático
Fonte: Próprios autores (2017).
O modelo prático, é contituido apenas de uma Raspberry PI, como já citado em
tópico anteriror, acoplada de um simples circuito de conjunto de leds. Tambem é onde
está instalado o software Node-RED e o sistema operacional Linux.
Apesar de colaborar com a questão didática, seu uso é opcional, já que a aplicação
funciona mesmo sem a conexão com o modelo.
38
5 PERSPECTIVAS DE APLICAÇÃO METODOLÓGICA
O plano de aula se trata do detalhamento do plano de ensino, possibilitando criar
uma situação didática em aula. Segundo Gil (2012, p. 39), ele esclarece que “o que difere
o plano de ensino do plano de aula é a especificidade com conteúdos pormenorizados e
objetivos mais operacionais”. Ao elaborar o plano de aula, é indispensável que seja
concebido o plano de ensino levando em conta suas fases “preparação e apresentação de
objetivos, conteúdos e tarefas; desenvolvimento da matéria nova; consolidação (fixação
de exercícios, recapitulação, sistematização); aplicação e avaliação” (LIBÂNEO, 1993,
p.241), além disso, o controle de tempo auxilia o professor a se orientar sobre quais etapas
deve se dar maior ênfase em sua abordagem educacional.
Com base em seu plano de ensino, o professor pode preparar suas aulas, organizar
um cronograma, onde separa o conteúdo em módulos para cada aula, apresentando
atividades, leituras e dinâmicas a serem feitas e discutidas durante suas aulas. O plano de
aula facilita a sistematização das atividades para atingir os objetivos que foram propostos,
para que se possa ter um maior aproveitamento, “os professores devem levar em
consideração as suas fases: preparação e apresentação de objetivos, conteúdos e tarefas;
desenvolvimento da matéria nova; consolidação (fixação de exercícios, recapitulação,
sistematização); aplicação; avaliação” (LIBÂNEO, 1993, p.241). Um plano de ensino
passa pelas seguintes etapas:
O tema a ser abordado: assunto, conteúdo a ser trabalhado;
Objetivos gerais a serem alcançados: o que os alunos irão conseguir
absorver com o estudo do tema abordado.
Objetivos específicos: relacionados a cada etapa de desenvolvimento da
aula.
Etapas previstas: a previsão de tempo, onde o professor organiza o que
ira ser trabalhado em pequenas etapas.
A metodologia a ser utilizada: definir a forma que o conteúdo será
trabalhado, quais recursos utilizar para auxiliar a promover o aprendizado
e compartilhamento de conhecimento sugerido no plano da sala de aula;
Avaliação: a maneira que será utilizada pelo professor para avaliar a
aprendizagem do aluno.
A bibliografia: Todo o material que o professor utilizou para realizar seu
planejamento.
39
A seguir, tem-se um plano de aula elaborado pelos orientandos e orientador, o
qual ministra a disciplina de Redes de Computadores, na Faculdade de Tecnologia de
Itapira “Dr. Ogari de Castro Pacheco”. O objetivo foi trazer mais subsídios de reflexão
para o desenvolvimento de uma aula sobre camada física, em uma próxima etapa de
continuidade deste projeto.
Plano de Aula
Dados de Identificação
Professor: Adriano Ricardo Ruggero
Disciplina: Redes de Computadores
Tema: Camada Física - Modelo Prático
Turma: 4 Período
Data: 17 de maio de 2017
Duração da aula: 1h 40 minutos
1 Objetivos
1.1 Geral
Observar, de forma interativa, o funcionamento da camada física de uma rede de
comunicação de dados.
1.2 Específicos
• Compreender na teoria o funcionamento da camada física de uma rede de comunicação
de dados;
• Aprender como a camada física converte as informações oriundas das camadas
superiores em sinais elétricos;
• Visualizar os sinais elétricos no modelo prático desenvolvido pelos alunos.
2 Conteúdos
• Modelo OSI (relembrando...);
• Função da Camada Física;
• Meios de transmissão;
40
• Protocolos de transmissão de dados;
• Níveis de sinal;
• Apresentação do modelo prático;
• Interação com o modelo prático.
3 Procedimentos metodológicos
Introdução teórica ao Modelo OSI de camadas. Funções da Camada Física do Modelo
OSI. Exemplos de meios de transmissão de dados (cabo, fibra óptica, sinais de rádio).
Introdução a protocolos de transmissão e níveis de sinal. Apresentação do modelo prático
desenvolvido pelos alunos. Interação com o modelo prático.
4 Recursos didáticos
Lousa, notebook, projetor, plataforma ConnectLayer.
5 Avaliação
Participação e interesse dos alunos.
Referências
WETHERALL, David J.; TANENBAUM, Andrew S. Redes de Computadores. 5 ed.
São Paulo: Peasrson, 2011.
KUROSE, James F.; ROSS, Keith W. Redes de Computadores e a Internet: uma
abordagem top-down. 3 ed. São Paulo: Addison-Wesley, 2005.
Baseado nos resultados deste trabalho, foi desenvolvido este plano de aula para
que seja um modelo sugestivo de implatação do ConnectLayer, dentro do plano de ensino
de qualquer instituição técnica, voltada para a area de Tecnologia da Informação, que
tenha interesse de usar-lo como recurso didático.
41
6 CONSIDERAÇÕES FINAIS
De acordo com (BERNARDES; MARCONDES 2006) é importante salientar que
as mudanças estão ficando cada vez mais rápidas e que estas provocam alterações em
todo ambiente global e isto também se insere nas organizações e principalmente em suas
práticas administrativas e tecnológicas.
Desta forma, a iniciativa de criar um software pedagógico capaz de auxiliar tanto
o corpo discente quando a compartilhamento de conhecimento para o corpo docente, se
mostra uma alternativa eficaz diante das dificuldades do ensino-aprendizagem. O
software é de caráter simples e tem a função de mostrar informações durante a troca de
mensagens binárias (0 ou 1), entre um transmissor e um receptor, assim, pôde-se entender
como funciona visualmente este processo no nível da Camada Física do Modelo de
Referencia OSI.
Espera-se que o software pedagógico desenvolvido ajude na maior compreensão,
por parte dos alunos, na disciplina de redes de computadores, mais especificamente, a
camada física do modelo de referência OSI, além contribuir na diminuição do
desinteresse dos discentes, transformando a abordagem prática em estímulos, também
para os docentes.
São perspectivas futuras: a melhoria e reavaliação do software; a realização-testes;
a identificação de bugs, falhas e gargalos; e a implementação do software em sua
instituição de origem.
Por fim a plataforma será distribuida a parte deste trabalho, sob licença livre, para
o sistema operacional Windows, tambem será compartilhado o código-fonte de toda
aplicação, para que os alunos e professores possam estudar, aprender e evoluir o projeto,
sendo que, o conteudo será disponibilizado pela sua instituição de origem.
42
REFERÊNCIAS
ABBATE, Janet. Inventing the Internet. Cambridge, England: First MIT, 2000.
BERNARDES, Cyro; MARCONDES, Reynaldo Cavalheiro. Teoria Geral da
Administração: gerenciando organizações; Saraiva, São Paulo. 2006.
CASTELUCCI, Daniella. Protocolos de comunicação em redes de computadores.
Disponível em: <https://daniellacastelucci.wordpress.com/2011/04/08/protocolos-de-
comunicacao-em-redes-de-computadores/>. Acesso 10/12/2016.
CASTELLS, M. A Sociedade em Rede. São Paulo: Editora Paz e Terra, 2000.
CERVO, Amado L.; BERVIAN, Pedro A. Metodologia Científica: para uso dos
estudantes universitários. 3.ed. São Paulo: McGraw-Hill do Brasil, 1983.
DEFLEUR, Melvin L.; BALL-ROKEACH, Sandra. Teorias da comunicação de Massa.
Rio de Janeiro: Editora Zahar, 1993.
FERREIRA, Sila Sá. Especificando Objeto de Aprendizagem para Raspberry Pi
usando Design Instrucional.
FILIPPETTI, Marco Aurélio. CCNA 4.1 Guia de estudo completo. Florianópolis:
Visual Books Editora, 2008.
GERHARDT, Tatiana Engel; SILVEIRA, Denise Tolfo. Métodos de Pesquisa. Porto
Alegre: Editora da UFRGS, 2009.
GIL, Antônio Carlos. Metodologia do ensino superior. 4.ed. São Paulo: Atlas, 2012.
GUERRA, André Roberto. Consideracoes sobre a Utilizacao do Recurso Wake Up.
Florianópolis: Universidade Ferederal de Santa Catarina, 2002.
HAFNER, K. Lyon, M., 1996, Where wizards stay up late: the origins of the Internet.
New York, Simon & Schuster.
IDC; Mercado brasileiro de PCs volta a crescer após um ano e meio de queda,
segundo a IDC. Disponível em: < http://br.idclatin.com/releases/news.aspx?id=2053>.
Acesso 14/10/2016.
KUROSE, James F.; ROSS, Keith W. Rede de Computadores e a Internet: Uma
abordagem Top-Down. Tradução Opportunity Translations, revisão técnica Wagner
Zucchi. 5.ed. São Paulo: Addilson Wesley, 2010.
LIBÂNEO, J. C. Organização e gestão escolar: teoria e prática. Goiânia: Alternativa,
1993.
MARIANI, Antônio Carlos. O Mundo dos Atores: uma perspectiva de introdução a
programação orientada a objetos. Florianópolis: Universidade Federal de Santa Catarina,
1999.
43
MARIANO, Integração de tecnologias da internet das coisas a um supervisor de
energia através da programação orientada à fluxos.
MAURER, Norman; Netty in Action. Version 5. Editora MEAP Edition, 2013.
MENGUE, Fábio; Curso de Java Básico. Campinas: Universidade Estadual de
Campinas, 2002.
NICOLACI-DA-COSTA; Na Malha da Rede: Os impactos íntimos da Internet. Rio
de Janeiro: Editora Campus, 1998.
NORBERG; O'Neill; New York: 1996.
SILVA, Ana Cristina de Souza E; SILVA, Maria de Fátima Santos da; SIMÕES,
Regimilde Ramos Simões. A Didática do Ensino e Metodologias Utilizadas como
Estratégia para o Ensino Superior. Disponível em:
<https://psicologado.com/atuacao/psicologia-escolar/a-didatica-do-ensino-e-
metodologias-utilizadas-como-estrategia-para-o-ensino-superior>. Acesso 20/02/2017.
REDMONK; Language Rankings 2016. Disponível em:
<http://redmonk.com/sogrady/2016/07/20/language-rankings-6-16/>. Acesso
02/11/2016
RICARTE, Ivan Luiz Marques. Programação Orientada a Objetos: Uma Abordagem
com Java. Campinas: Universidade Estadual de Campinas, 2001.
SANTOS; Macedo Silva. Mapas Conceituais E Aprendizagem Significativa No
Ensino De Rede De Computadores Do Curso Superior De Telecomunicações, 2011.
SILVA, Marcelo Carlos. O Ensino De Matematica: Gestão Da Sala De Aula, 2008.
SOUZA, Dalva Inês; MÜLLER, Deise Margô; FRACASSI, Maria Angélica Thiele;
ROMEIRO, Solange Bianco Borges. Manual de orientações para projetos de pesquisa
Manual de orientações para projetos de pesquisa. Novo Hamburgo: FESLSVC, 2013.
55 p.
STALLINGS, h William, Redes e Sistemas de Comunicação de Dados, Rio de Janeiro:
CAMPUS, 2005
SUN MICROSYSTEMS. About Java. Disponível em:
<https://java.com/pt_BR/about/>. Acesso em: 02/11/2016.
TANENBAUM, Andrew S. Redes de Computadores. CAMPUS, 2010.
TIOBE, The Software Quality Company. November Headline: Is Haskell finally going
to hit the top 20?. Disponível em: < http://www.tiobe.com/tiobe-index/>. Acesso em:
03/12/2016.
VALERIANO, Dalton L. Gerência de projetos: pesquisa, desenvolvimento e
engenharia. São Paulo: Makron Books, 1998.
44
YAMAGUTI, Silvio Yochio. Orientação a objetos no desenvolvimento de sistemas:
conceitos e características. Brasília: Escola Superior Aberta do Brasil, 2006.