bruno césar lopes trecenti um estudo sobre redes wireless

Propaganda
0
FUNDAÇÃO DE ENSINO EURÍPIDES SOARES DA ROCHA
CENTRO UNIVERSITÁRIO “EURÍPIDES DE MARÍLIA” – UNIVEM
CURSO DE ADMINISTRAÇÃO DE EMPRESAS COM HABILITAÇÃO EM ANÁLISE
DE SISTEMAS
BRUNO CÉSAR LOPES TRECENTI
UM ESTUDO SOBRE REDES WIRELESS NO
DESENVOLVIMENTO DE UM SISTEMA.
MARÍLIA
2007
1
BRUNO CÉSAR LOPES TRECENTI
UM ESTUDO SOBRE REDES WIRELESS NO
DESENVOLVIMENTO DE UM SISTEMA.
Trabalho de conclusão de curso apresentado ao
Curso de Administração de Empresas com
Habilitação em Análise de Sistemas do Centro
Universitário Eurípides de Marilia, mantido pela
Fundação de Ensino Eurípides Soares da Rocha,
para obtenção do Título de Bacharel em
Administração de Empresas com Habilitação em
Análise de Sistemas.
Orientador:
Professor Ms. Ricardo Petruzza do Prado
MARÍLIA
2007
2
3
A mente que se abre a uma nova idéia jamais voltará ao seu tamanho original.
(Albert Einstein)
4
TRECENTI, Bruno César L.. UM ESTUDO SOBRE REDES WIRELESS NO
DESENVOLVIMENTO DE UM SISTEMA. 2007. 69 f. Trabalho de Conclusão de Curso
(Bacharel em Administração de Empresas com habilitação em Análise de Sistemas) – Centro
Universitário Eurípides de Marília, Fundação de Ensino Eurípides Soares da Rocha, Marília,
2007.
RESUMO
Este estudo buscou identificar e explorar os padrões IEEE 802.3; 802.11 e 802.16 –
conhecidos respectivamente como Ethernet, Wireless LAN (Wi-fi) e Wi-Max, demonstrando
suas características e refletindo-as na engenharia de software como uma variável que permite
a abertura de novos horizontes para o desenvolvimento de software.
Palavras Chave: Redes, Wireless, Engenharia de Software.
5
TRECENTI, Bruno César L.. UM ESTUDO SOBRE REDES WIRELESS NO
DESENVOLVIMENTO DE UM SISTEMA. 2007. 69 f. Trabalho de Conclusão de Curso
(Bacharel em Administração de Empresas, habilitado em Análise de Sistemas) – Centro
Universitário Eurípides de Marília, Fundação de Ensino Eurípides Soares da Rocha, Marília,
2007.
ABSTRACT
This study sought to identify and exploit the IEEE 802.3; 802.11 and 802.16 standards,
respectively known as Ethernet, Wireless LAN (Wi-fi) and Wi-Max, demonstrating its
features and reflecting them in engineering software such as a variable that allows the opening
of new horizons for the development of software.
Keywords: Network, Wireless¸ Software Engineering.
6
LISTA DE ILUSTRAÇÕES
Figura 1.1: Modelo Cliente Servidor .................................................................................... 17
Figura 1.2: Modelo Cliente Servidor .................................................................................... 18
Figura 1.3 Aparelho Roteador D-Link WBR-2310. ............................................................. 22
Figura 1.4 Aparelho Switch D-Link DES-1024D ................................................................ 23
Figura 1.5 Exemplo de uma rede Broadcast. ........................................................................ 26
Figura 1.6 Exemplo de uma rede Multicast .......................................................................... 27
Figura 1.7 Rede Ponto a Ponto ............................................................................................. 27
Figura 1.8 Rede em Anel ...................................................................................................... 28
Figura 1.9 Rede em Estrela................................................................................................... 28
Figura 1.10 Rede Hierárquica. .............................................................................................. 29
Figura 1.11 Rede Distribuída................................................................................................ 30
Figura 2.1 Modelo em Cascata ............................................................................................. 49
Figura 2.2 Modelo de desenvolvimento evolucionário ........................................................ 50
Figura 2.3 Camadas da aplicação. ........................................................................................ 57
Figura 2.4 Arquitetura cliente-servidor de três camadas. ..................................................... 59
Figura 2.5 Arquitetura de objetos distribuídos. .................................................................... 61
7
LISTA DE TABELAS
Tabela 1.1 Classificação de processadores interconectados por escala................................ 25
Tabela 1.2 Os modelos de Referência OSI e TCP/IP ........................................................... 37
Tabela 1.3 Protocolos e Redes no modelo TCP/IP ............................................................... 38
Tabela 1.4 Os Tipos mais comuns de cabeamento Ethernet ................................................ 39
Tabela 2.1 Especificação de requisitos de sistema utilizando um formulário padrão. ......... 53
Tabela 3.1 Métricas para especificação de requisitos não funcionais. ................................. 66
8
LISTA DE ABREVIATURAS E SIGLAS
CORBA: Common Object Request Broker Architecture
DCOM: Distributed Component Object Model
DEC: Digital Equipment Corporation
DSSS: Direct Sequence Spread Spectrum
ERP: Enterprises Resources Planning
FTP: File Transfer Protocol
FHSS: Frequency Hopping Spread Spectrum
HTTP: Hyper Text Transfer Protocol
IEEE: Institute of Electrical and Electronics Engineers
IP: Internet Protocol
ISM: Industrial, Scientific, Medical (Bandas de Radiofreqüência)
LAN: Local Area Network
LLC: Logical Link Control
MAC: Medium Access Control
MAN: Metropolitan Area Network
Mbps: Mega Bytes por segundo
Mhz: Megahertz
PAN: Personal Area Network
OFDM: Orthogonal Frequency Division Multiplexing
OSI: Open Systems Interconnection
SMTP: Simple Mail Transfer Protocol
TCP: Transmissão de Controle de Protocolo orientado a Conexão
UDP: Protocolo de Transmissão não orientado a Conexão
9
WAN: Wide Area Network
WAP: Wireless Internet Protocol
Wi-Fi: Wireless Fidelity
Wi-Max: Worldwide Interoperability for Microwave Access
WLAN: Wireless Local Area Networks
WWW: World Wide Web.
10
SUMÁRIO
INTRODUÇÃO .................................................................................................................... 12
CAPÍTULO 1 - REDES ....................................................................................................... 14
1.1. Redes de Comunicação .............................................................................................. 14
1.2. Redes de Computadores ............................................................................................ 15
1.2.1. Aplicações comerciais ........................................................................................... 16
1.2.2. Aplicações Domésticas e Lazer ............................................................................. 18
1.2.3. Usuários móveis ..................................................................................................... 20
1.3. Hardware e Tipos de Rede......................................................................................... 21
1.3.1. Emissores e Receptores ......................................................................................... 21
1.3.2. Meios de Transmissão ........................................................................................... 23
1.3.3. Tipos de Redes ....................................................................................................... 24
1.3.4. Topologia das Redes. ............................................................................................. 25
1.3.5. Redes Locais .......................................................................................................... 30
1.3.6. Redes Metropolitanas ............................................................................................ 31
1.3.7. Redes Geograficamente Distribuídas..................................................................... 32
1.4. Modelos de Referências e Camadas .......................................................................... 32
1.4.1. Hierarquia de protocolos ........................................................................................ 33
1.4.2. Tipos de Serviços ................................................................................................... 33
1.4.3. Modelo OSI............................................................................................................ 35
1.4.3.1.
Camada Física .................................................................................................... 35
1.4.3.2.
Camada de Enlace de Dados .............................................................................. 35
1.4.3.3.
Camada de Rede ................................................................................................. 36
1.4.3.4.
Camada de Transporte ........................................................................................ 36
1.4.3.5.
Camada de Sessão .............................................................................................. 36
1.4.3.6.
Camada de Apresentação ................................................................................... 37
1.4.3.7.
Camada de Aplicação ......................................................................................... 37
1.4.4. Modelo de referência TCP/IP ................................................................................ 37
1.4.4.1.
Camada Host/Rede ............................................................................................. 38
1.4.4.1.1.
Ethernet ........................................................................................................... 39
1.4.4.2.
Camada de Rede ................................................................................................. 40
1.4.4.3.
Camada de Transporte ........................................................................................ 41
1.4.4.4.
Camada de Aplicação ......................................................................................... 42
1.4.5. Arquitetura IEEE 802 ............................................................................................ 42
1.4.5.1.
Medium Access Control (MAC) ........................................................................ 42
1.4.5.2.
Logical Link Control (LLC) ............................................................................... 43
1.5. Redes Wireless .......................................................................................................... 43
11
CAPÍTULO 2 - DESENVOLVIMENTO DE SOFTWARE................................................ 47
2.1. Engenharia de Software ............................................................................................. 47
2.2. Modelos de Processos de Software ........................................................................... 48
2.2.1. Modelo Cascata...................................................................................................... 48
2.2.2. Modelo de Desenvolvimento Evolucionário ......................................................... 49
2.3. Especificação ............................................................................................................. 50
2.3.1. Estudo de viabilidade ............................................................................................. 51
2.3.2. Requisitos............................................................................................................... 51
2.3.2.1.
Requisitos de Sistema......................................................................................... 52
2.4. Projeto e Desenvolvimento........................................................................................ 54
2.4.1. Projeto de Arquitetura ............................................................................................ 55
2.4.1.1.
Arquitetura de sistemas distribuídos .................................................................. 56
2.4.1.1.1.
Arquiteturas de cliente-servidor ..................................................................... 57
2.4.1.1.2.
Arquiteturas de objetos distribuídos. .............................................................. 59
2.5. Validação e Evolução ................................................................................................ 61
CAPÍTULO 3 - WIRELESS E O DESENVOLVIMENTO DE SOFTWARE............................. 63
3.1. Visão geral ................................................................................................................. 63
3.2. Wireless e o processo de especificação de software.................................................. 63
3.3. Wireless no desenvolvimento e arquitetura de software ........................................... 66
CONCLUSÕES .................................................................................................................... 68
REFERÊNCIAS ................................................................................................................... 70
12
INTRODUÇÃO
Atualmente, com a realidade da globalização, nota-se uma grande evolução na
utilização de meios de comunicação mais ágeis, seguros e eficientes, como celulares, internet,
rádio freqüência, etc. Entretanto o meio de comunicação cuja demanda está em ascensão
atualmente são as Redes Wireless.
Uma Rede de Comunicação pode ser definida como a utilização de um meio físico
para conectar dois ou mais componentes de um grupo. Transferindo este conceito para área de
informática uma rede pode utilizar de fios, cabos, radiofreqüência, para fazer a comunicação
entre dois ou mais computadores de um grupo.
Wireless é um termo inglês e sua tradução é justamente sua característica, ou seja, a
não utilização de fios para transmissão de informações entre o grupo. Uma rede desse tipo
utiliza-se de transmissores e receptores, que são capazes de emitir e receber ondas de
radiofreqüência, para efetuar a comunicação entre os diversos computadores do grupo. Podese notar dentro dessa tecnologia diversas variações que influenciam principalmente em: área
de cobertura, velocidade da conexão, e segurança; e implementam diferentes métodos para
transmissão de dados como: Bluetooth, Radiofreqüência e Infravermelho.
Tendo em vista essa tecnologia emergente e sua grande presença no mercado atual,
esse projeto identifica e caracteriza as diferentes possibilidades de utilização de redes
Wireless no desenvolvimento de um software, destacando principalmente as diferenças e
semelhanças, em todo o processo, em relação a uma rede de fios convencional (Par-trançado).
O projeto também define as referidas redes sem fio de acordo com os padrões da IEEE, assim
possibilitando também uma análise técnica de suas características e funcionalidades, e como
elas interferem no desenvolvimento de software.
13
Como o objetivo do projeto é identificar as influências de uma rede sem fio em um
software, este descreve ainda todas as fases do desenvolvimento de software, bem como as
dos diversos processos.
14
CAPÍTULO 1 - REDES
1.1.
Redes de Comunicação
A comunicação é um avanço tecnológico da humanidade que contribui para a
melhoria das interações sociais, a partir da escrita o homem pôde comunicar-se e assim
agilizar e facilitar as atividades desenvolvidas de acordo com sua necessidade. Além disso, a
comunicação permitiu a criação de regras e doutrinas a serem seguidas pelos integrantes da
sociedade.
A comunicação em geral envolve vários elementos básicos: o emissor, o receptor, a
mensagem, o canal e o meio de comunicação, esses elementos são as variáveis da
comunicação que está a ser transmitida em um determinado ambiente.
A rede de comunicação de um grupo é na verdade varias comunicações estabelecidas
entre um receptor e um emissor, através de um canal em certo meio de comunicação.
Podemos observar as primeiras redes de comunicação desde a Idade Antiga 4.000 a.C. onde
as sociedades, em um mesmo grupo, se comunicavam através de mensageiros. Essa
tecnologia foi sendo aprimorada juntamente com a escrita devido ao grande crescimento da
população mundial as expansões marítimas e a dispersão de diversas comunidades pelo
mundo, criou a demanda de um meio de comunicação mais ágil e eficaz, pois muitas vezes a
mensagem não chegava ao receptor, ou chegava com ruídos ou incompleta, comprometendo a
comunicação.
A posterior invenção do telégrafo elétrico, do rádio, do televisor e do telefone para
suprir essa crescente demanda criada pelas necessidades sociais e por necessidades surgidas
nas guerras, foi um importante avanço na comunicação à distância o que deu origem a várias
redes de comunicação em escala global.
15
Entretanto o nascimento e crescimento da indústria de informática foi o avanço
tecnológico que impactou as redes de comunicação. Conforme cita Tanenbaum (2003):
O século XVII foi a época dos grandes sistemas mecânicos [...] O século
XIX foi a era das máquinas a vapor [...] As principais conquistas do século
XX se deram no campo da aquisição, do processamento e da distribuição
das informações.
Entre outros desenvolvimentos, [...] o nascimento e criação sem precedentes
da indústria da informática e o lançamento de satélites de comunicação.
Assim os computadores criaram uma enorme facilidade na manutenção das
informações, obviamente cresceu também o volume dessas informações o que levou a
demanda de um meio de comunicação mais eficiente e de um processamento de informações
mais avançado. Contudo essas tecnologias tiveram um rápido avanço e em menos de 20 anos
havia milhares de computadores espalhados pelo mundo, sendo eles utilizados para fins
comerciais, industriais, e lazer.
Em uma empresa, antigamente a utilização do computador era restrita a uma pessoa
por vez, executando apenas um processo, atualmente devido ao advento das Redes de
Comunicação um mesmo processo pode ser efetuado por vários computadores
interconectados e diferentes pessoas. Essa nova estrutura e as Redes de Comunicação, que
vamos citar por Redes de Computadores, são o objeto de estudo e aplicação no
desenvolvimento de um software.
1.2.
Redes de Computadores
As redes de computadores como citado anteriormente pode ter diversas
funcionalidades e finalidades, ou seja, podemos utilizá-las para diversos fins como: comercial
16
e industrial, doméstico e lazer, cada qual com suas especificidades e características
mencionadas abaixo.
1.2.1.
Aplicações comerciais
A quantidade de informações necessárias para o funcionamento de uma empresa é
muito grande quando pensamos em transcrevê-las em papéis e documentos físicos, este
aspecto nas empresas foi um fator crítico para globalização e para a utilização de
computadores no processamento de informações. Hoje se percebe um grande numero de
computadores dentro das empresas com esta finalidade, entretanto essa informação não tem
valor algum se tratada individualmente, e nesse ponto surgiu a necessidade de criar um grupo
interconectado de computadores para o processamento dessas informações.
A correlação entre esses computadores permitiu o compartilhamento de recursos e
criação de uma empresa informatizada, agilizando todos os processos sejam eles processos
físicos como: impressoras, scanners, etc. ou de informações como registros de clientes,
produtos, etc.
Esse avanço permitiu a integração das diversas áreas da administração de empresas
com a informática permitindo a empresa um ganho excepcional em eficiência e agilidade,
com esse objetivo, empresas de desenvolvimento de software criaram sistemas que integram
todas as áreas e processos da empresa, um sistema que implementa o modelo cliente servidor,
ou seja, um servidor de informações ou de aplicações que pode ser acessado por diversos
clientes, assim todos os integrantes das diversas áreas da empresa tinham comum acesso as
informações de todas as áreas.
Um exemplo do modelo cliente servidor convencional pode ser observado na Figura
1.1:
17
Figura 1.1: Modelo Cliente Servidor
Fonte:
http://www.fccn.pt/index.php?module=pagemaster&PAGE_user_op=view_page&PAGE_id=425&M
MN_position=208:5. Acessado em 18/09/2007
O modelo cliente servidor basicamente efetua uma transferência, entre o emissor e o
receptor, da mensagem, por exemplo, o cliente envia uma solicitação para o servidor através
da rede, este processa a solicitação e devolve uma resposta para o cliente. Nesse caso, como
podemos observar na Figura 1.2, temos duas comunicações uma na direção cliente – servidor
e outra na direção servidor – cliente onde cada um são respectivamente emissor e receptor em
cada transação.
18
Figura 1.2: Modelo Cliente Servidor
Fonte: Adaptada de:
http://www.fccn.pt/index.php?module=pagemaster&PAGE_user_op=view_page&PAGE_id=425&M
MN_position=208:5. Acessado em 18/09/2007
A partir do modelo cliente servidor essas empresas criaram software como o
Enterprises Resources Planning (ERP), que são responsáveis por controlar, fazer manutenção
e planejar todos os recursos físicos e de informação da empresa através do modelo cliente
servidor com um potencial banco de dados. A importância de uma rede em um sistema ERP
está descrita no capitulo 3, bem como as técnicas de implementação de uma rede cliente
servidor, ou seja, LANs, MANs, WANs e suas topologias: anel, ponto a ponto, difusão,
barramento, malha e estrela.
1.2.2.
Aplicações Domésticas e Lazer
As redes não são somente uma interação entre os computadores de uma empresa,
mas pode também abranger metrópoles, e ser até uma rede mundial, com todo esse potencial
surgiu a World Wide Web (WWW) que tem âmbito mundial e funciona como uma rede
convencional, as pessoas têm acesso a informações de todo o mundo a partir de seus
computadores pessoais.
19
Além disso, pode ser utilizado para a comunicação informal entre grupos de pessoas
como nos chats abertos ou chats privados, como exemplo o MSN Messenger sistema de
mensagens instantâneo ou o Internet Relay Chat (IRC), e mais recentemente através de
recursos audiovisuais com a criação do Voice Internet Protocol (VoIP), que implementa um
sistema para áudio-conferência através da internet.
As redes estão presentes também nos sistemas de e-mail também é de grande
utilidade não somente doméstica, mas comercial também, é um sistema capaz de enviar e
receber correspondências com pessoas de todo o mundo com diversos recursos audiovisuais.
Podemos também citar o uso de redes para entretenimento através de jogos
interativos onde jogadores compartilham através da internet o mesmo jogo, competindo com
diversos jogadores de todo o mundo. Um dos jogos mais bem sucedidos da atualidade é o
Counter-Strike da produtora Valve, que simula em um ambiente urbano ataques terroristas e a
repressão dele com forças militares, um jogo típico de tiro em terceira dimensão e
multiplayer, para vários jogadores através de uma rede. Há também outras opções de jogos
com capacidade para até cinco mil jogadores simultaneamente, são os chamados massively
multiplayer on-line games ou MMOG ou ainda MMO, geralmente são jogos de Role Playing
Game (RPG) que simulam uma história desenvolvida pelo personagem (jogador) dentro de
um mundo virtual. Um exemplo desse tipo de jogo é o World of Warcraft da produtora
Blizzard e o Second Life da Liden Research, que implementam um mundo virtual cheio de
possibilidades e de variações.
Além disso, podemos citar o uso da internet para compras e comércio de
mercadorias, assim abrindo um enorme leque de possibilidades para as empresas expandirem
seus negócios e facilitando a vida de compradores.
20
Tanenbaum (2003) cita alguns dos usos mais populares da internet para usuários
domésticos: Acesso a informações remotas, comunicação entre pessoas, entretenimento
interativo e comércio eletrônico.
Um dos adventos da utilização doméstica de redes foi o surgimento de diversas
redes não hierárquicas para compartilhamento de informações, ou seja, não existem conexões
cliente-servidor fixas e cada usuário pode ter acesso as informações de outro usuário. Esse
fato possibilitou as conexões diretas mais conhecidas por suas abreviações como Peer-to-Peer
(P2P), Business-to-Business (B2B), etc. e também a circulação ilegal de musicas e vídeos sem
direitos autorais.
1.2.3.
Usuários móveis
As redes de computadores, não são somente aquelas redes interligadas por fio como
vimos anteriormente, elas implementam também a tecnologia wireless, sem fio ou o padrão
IEEE 802.11, possibilitando assim a conexão de usuários moveis como notebooks, Personal
Digital Assistants (PDA) e quaisquer aparelhos eletrônicos móveis com conectividade a uma
rede local ou global.
Uma pessoa que possui um notebook pessoal pode acessar a internet ou a rede
interna de sua empresa com seu próprio equipamento apenas utilizando a tecnologia wireless.
Entretanto nem toda rede sem é móvel e nem toda rede móvel é sem fio, observe que um
computador do tipo desktop pode estar conectado a uma rede sem fio através de um roteador
wireless (rede sem fio imóvel) e um notebook quando utilizado em um hotel através de uma
rede conectada via fio telefônico (rede com fio móvel).
21
Nota-se atualmente a presença de redes também nos celulares mais recentes que
implementam a tecnologia Wireless Application Protocol (WAP), pode-se com essa
tecnologia ter acesso a contas de banco, e-mail, chats, e sites da internet em geral através do
celular. Além dessa rede celulares também implementam a tecnologia Bluetooth, que
implementa o padrão IEEE 802.11b e também presente nos padrões 802.15(Wireless PANs) e
802.16(Wireless MANs). O Bluetooth citado acima é uma das redes em ascensão no mercado
mundial, algumas das redes sem fio para escritório e residenciais já utilizam dessa tecnologia.
1.3.
Hardware e Tipos de Rede
As redes podem ser constituídas de diversas tecnologias para a emissão, recepção
fluxo e segurança das informações, em função disso dispõem-se também diversas formas de
estruturação do grupo ou dos grupos constituintes em uma rede. Essa estruturação facilita o
fluxo da informação e agiliza o processo de difusão da rede.
1.3.1.
Emissores e Receptores
Os emissores e receptores de rede normalmente são implementados em um único
aparelho, e normalmente implementa-se uma única tecnologia como o padrão IEEE 802.3
Ethernet para conexões em redes locais com fio, entretanto não é difícil encontrar atualmente
aparelhos que implementam duas ou mais tecnologias como a Ethernet e Wireless. Um
exemplo desse aparelho e o roteador D-Link modelo WBR-2310, apresentado na Figura 1.3,
que implementa quatro padrões IEEE: 802.11g, 802.11b, 802.3 e 802.3u.
22
Figura 1.3 Aparelho Roteador D-Link WBR-2310.
Fonte: http://www.dlink.com/products/?sec=0&pid=470. Acessado em 17/09/2007
Para computadores em uma rede convencional, utilizam-se o padrão IEEE 802.3 que
geralmente é implementado juntamente com a placa-mãe dos computadores, quando não este
pode ser adaptado através de uma placa de rede que utiliza o mesmo padrão.
Em uma rede de pequeno porte, a conexão entre os computadores pode ser
configurada de modo a ser intermediada por um aparelho chamado Hub que facilita
distribuição da rede, esse aparelho interconecta dois ou mais computadores, entretanto não é
muito eficiente pois permite o tráfego interno de uma conexão por vez.
Em redes de grande porte não convém a utilização de um Hub já que este prejudica a
velocidade de conexão, contudo um outro aparelho chamado Switch, como ilustra a Figura
1.4, possui a mesma função de um Hub entretanto o Switch faz com que cada conexão nele
seja independente, segmentada, e assim evita colisões de dados e a espera por uma conexão,
podendo ser chamado também de comutador.
23
Figura 1.4 Aparelho Switch D-Link DES-1024D
Fonte: http://www.dlink.com/products/?sec=0&pid=75. Acessado em 17/09/2007
1.3.2.
Meios de Transmissão
Os meios de transmissão podem ser: guiados ou sem fio. Para transmissão guiada
temos:
Meios magnéticos (Fita Cassete, DVD);
Cabo de Par Trançado (Diversos fios traçados em pares);
Cabo coaxial (Fio único com camadas de proteção);
Fibra ótica (Fio com proteção refletora da luz).
Transmissão sem fio:
Transmissão de radio;
Transmissão de Microondas;
Transmissão por ondas de infravermelho;
Transmissão por ondas de Luz.
24
1.3.3.
Tipos de Redes
As redes podem estar dispostas de diversas formas sem uma regra geral, entretanto
existem algumas distribuições que são mais adequadas a uma determinada situação ou
disposição física existente. Em função disso Tanenbaum (2003) cita que:
Não existe nenhuma taxonomia de aceitação geral na qual todas as redes de
computadores possam ser classificadas, mas duas dimensões se destacam
das demais: a tecnologia de transmissão e a escala.
Assim temos que as redes dispõem-se atualmente de duas formas:
Difusão;
Ponto a Ponto.
Em um sistema por difusão temos que a mensagem é divulgada em um canal para
todos os integrantes da rede, essas mensagens contém um campo de endereçamento que
contém o destino da mensagem, entretanto a mensagem não muda seu caminho de acordo
com o destino. Na realidade ela é distribuída a todos da rede e apenas aqueles que estão
citados no endereço podem recebê-la. Esse método é também conhecido como broadcasting.
As redes de pequeno porte geralmente são redes multicasting devido a sua alta
versatilidade e simplicidade, entretanto redes com um grande número de integrantes tendem a
seguir outro método o ponto a ponto ou unicasting. O unicasting consiste em várias conexões
entre dois computadores, um pacote tem que passar por diversas máquinas até chega seu
destino e não necessariamente precisa dirigir-se a todas elas, geralmente pacotes seguem o
caminho mais rápido os quais são calculados entre os receptores e emissores por roteadores.
Segundo Tanenbaum (2003) outro método de analisar as redes é através de sua
escala, veja a Tabela 1.1 a seguir:
25
Tabela 1.1 Classificação de processadores interconectados por escala
Distância entre
Processadores
Processadores
Localizados no(a)
mesmo(a)
Exemplo
1 metro
Metro quadrado
Rede Pessoal
10 metros
Sala
100 metros
Edifício
1 quilometro
Campus
10 quilômetros
Cidade
100 quilômetros
País
1.000 quilômetros
Continente
10.000
quilômetros
Planeta
Rede Local
Rede Metropolitana
Rede Ortograficamente distribuída
A Internet
Fonte: Redes de computadores, Tanenbaum (2003)
1.3.4.
Topologia das Redes.
A topologia regra as distribuições físicas de uma rede de acordo com suas
necessidades e funcionalidades. Assim dispõe Tauroco (1977, p.46):
A topologia da rede depende do projeto das operações, da
confiabilidade e do custo operacional da rede... Ao planejar uma rede
muitos fatores devem ser considerados na escolha da topologia mais
adequada.
Esses fatores dependem de: quais e quantos computadores terão acesso à rede, qual a
disposição física desses computadores, quais operações utilizaram a rede, a rede se conectará
com outras. Além disso, um fator determinante da topologia é o tipo de rede: difusão ou ponto
a ponto, entretanto não podemos dizer que as topologias apresentadas a seguir são únicas ou
26
regras gerais, elas podem assumir infinitas formas de acordo com a necessidade, entretanto as
que aqui apresento são as principais e mais utilizadas devido a sua versatilidade.
As estruturas básicas são de ponto a ponto e por difusão, existem também topologias
mistas formando redes mais complexas como: as redes do tipo estrela, hierárquica, em anel e
as redes distribuídas.
Uma rede onde os pacotes (mensagens) são comumente difundidos, ou seja, para todos
os integrantes do grupo, é definida como broadcasting, banda-larga ou multiponto, como
ilustra a Figura 1.5:
Figura 1.5 Exemplo de uma rede Broadcast.
Fonte: http://www.wildpackets.com/images/compendium/epnx_broadcast.gif.
17/09/2007
Acessado
em
Ainda citando broadcasting, pode-se observar a difusão da mensagem de uma forma
diferente, ou seja, com destinatários identificados, esse método recebe outro nome
multicasting, onde o destinatário pode ser um ou um grupo de integrantes da rede. Um
exemplo dessa topologia de rede pode ser observado na Figura 1.6:
27
Figura 1.6 Exemplo de uma rede Multicast
Fonte: http://www.gamedev.net/reference/programming/features/multicast/diagram3.jpg
Uma rede ponto a ponto, ilustrada na Figura 1.7, é o tipo mais simples de conexão que
pode ser feita entre dois computadores, consiste em uma conexão única e direta, pode utilizarse de um cabo de par trançado, fibra ótica ou de redes sem fio: Bluetooth e Infravermelho,
basicamente aceita todos os meios de transmissão por ser a mais simples.
Figura 1.7 Rede Ponto a Ponto
Fonte: http://www.uem.mz/chess/imagens/rede5c.jpg. Acessado em 17/09/2007
Uma rede ponto a ponto pode-se estender em diversas formas e tamanhos, sempre
havendo a conexão entre dois computadores diretamente, duas topologias destacam-se nesse
caso:
A topologia do anel consiste em efetivar a conexão dos computadores de modo com
que forme um ciclo fechado entre eles, tendo assim a forma de um anel, é uma estrutura
versátil, entretanto pode não eficaz caso haja uma falha em dois pontos da conexão, o que
28
pode comprometer em parte ou por completo a rede, podemos observar um exemplo dessa
topologia na Figura 1.8:
Figura 1.8 Rede em Anel
Fonte: http://www.apena.rcts.pt/cform/cursos2001/internet1/paginas3/Image25.gif, acessado em
17/09/2007
Uma topologia muito utilizada durante a fase de crescimento das redes nas empresas
foi a rede em estrela, apresentada na Figura 1.9, onde todos os computadores tem acesso ao
computador central.
Figura 1.9 Rede em Estrela
Fonte:
http://upload.wikimedia.org/wikipedia/gl/thumb/1/1c/Topolox%C3%ADa_en_estrela.png/180pxTopolox%C3%ADa_en_estrela.png . Acessado em 08/10/2007.
Essa topologia foi substituída posteriormente por uma mais adequada à utilização de
computadores em redes nas empresas, que com o passar do tempo cresceu exponencialmente
e devido a esse crescimento a utilização de uma rede mais eficaz se tornou um fator chave
para agilidade e versatilidade dos processos.
29
As redes hierárquicas fizeram esse papel de substituto das antigas redes em estrela,
tendo assim um maior controle dos usuários. Esse processo foi muito utilizado, conforme cita
Tarouco (1977, p.49), para supervisão de processos em real-time. Pode-se dizer que a
utilização dessa topologia contribui também para a utilização do sistema ERP, facilitando o
controle dos usuários, a qual é uma característica chave desse sistema. Pode-se observar um
exemplo dessa topologia na Figura 1.10:
Figura 1.10 Rede Hierárquica.
Fonte: http://www.microsoft.com/brasil/pequenasempresas/images/sgc/sus_2_0_overview_03.jpg.
Acessado em 17/09/2007.
Todas essas topologias se fundiram em uma com o advento da internet e a World
Wide Web (WWW), originando as redes distribuídas uma das maiores e mais utilizadas redes
mundialmente, a vantagem de uma rede desse tipo é que sua conexão raramente pode ser
interrompida já que oferece diversos caminhos para um mesmo ponto. Por isso também sua
implementação foi um sucesso para a internet, como mostra a Figura 1.11.
30
Figura 1.11 Rede Distribuída.
Fonte: http://www.sonicguard.com/Media/gatewaydiagram.jpg, Acessado em 08/10/2007.
As redes wireless podem assumir diferentes topologias dependendo do seu uso e
funcionalidade, segundo Tanenbaum (2003): o padrão 802.11 da IEEE poderia funcionar em
dois modos, na presença de uma estação-base ou na ausência de uma estação base, isso
implica que: quando essa rede disponibilizar de uma estação base os computadores estariam
conectados via difusão ou broadcasting, e quando não eles se comunicariam entre si
formando uma rede ponto a ponto. Essa flexibilidade que a torna a tecnologia atual de maior
importância para o mundo da informática.
1.3.5.
Redes Locais
A definição de uma rede local é uma característica subjetiva que depende da
percepção de tamanho de cada, por exemplo, a distancia de um quilômetro pode não significar
local para uma pessoa e pode se muito perto para outra, entretanto Tanenbaum (2003) define
31
redes locais como sendo “redes privadas contidas em um único edifício ou campus
universitário com até alguns quilômetros de extensão”.
Uma rede local também pode ser definida com uma rede privada onde somente os
integrantes previamente autorizados podem ter acesso a ela, por ser uma rede local um termo
usual lhe é conferido LAN acrônimo do inglês Local Area Network.
Geralmente as redes locais são conectadas por difusão através de cabos, geralmente
os cabos de par trançado, que permitem uma conexão que varia de 10 Mbps a 100 Mbps,
entretanto há redes com maiores velocidades de conexão como 1 Gbps a 10 Gbps, e
justamente por serem composta de fios são limitadas as distancias de conexão entre os pares
de computadores.
Atualmente com o advento da tecnologia wireless as redes locais estão migrando
para essa nova tecnologia passando a implantá-la, entre os diversos benefícios físicos que esta
apresenta os mais importantes são a velocidade que pode variar entre 11 Mbps a 54 Mbps e a
ausência de fios. O alcance das redes sem fio locais varia entre 50 metros com o aparelho
cercado por paredes ou obstáculos e 500 metros ao ar livre sem nenhum obstáculo.
1.3.6.
Redes Metropolitanas
Redes metropolitanas assim como as redes locais também dependem da percepção de
cada pessoa sobre seu tamanho, entretanto podemos dizer que uma rede metropolitana como o
próprio nome sugere é uma rede que abrange uma metrópole ou uma cidade. Redes de
televisão a cabo, estações de rádio são exemplos práticos dessa tecnologia.
As redes metropolitanas ou MAN geralmente são redes de difusão ou broadcasting
atualmente estas redes não se restringem apenas a redes de TV ou rádio, fornecendo também
32
conexão para internet mais conhecida como conexão de “banda larga”, e hoje se observa
também esse mesmo serviço, porém wireless.
1.3.7.
Redes Geograficamente Distribuídas
Wide Area Network (WAN) esse é o termo para denominar redes que abrangem uma
região geograficamente distribuída, geralmente um continente ou país. Essas redes geralmente
utilizam a topologia de redes distribuídas, onde se observa diversas redes e algumas sub-redes
interligando-as, as redes são compostas por computadores normalmente denominados hosts e
a sub-rede de servidores e roteadores que direcionam, encaminham e gerenciam as mensagens
transmitidas. Normalmente os comutadores que têm por função direcionar as mensagens
transmitidas são capazes de medir os caminhos mais rápidos a serem utilizados, através de
algoritmos de roteamento, tornando a velocidade de conexão mais ágil.
Como podemos observar a tecnologia wireless também é presente nesse tipo de rede,
tornando as redes mais flexíveis e simples, o termo mais utilizado para esse tipo de rede
wireless é Wi-Max, o qual é uma tecnologia atual e com constantes avanços.
1.4.
Modelos de Referências e Camadas
Neste tópico descrevem-se as redes em suas estruturas físicas e teóricas, um modelo
de referência descreve a arquitetura de uma rede. Citarei dois exemplos importantes o modelo
OSI e o TCP/IP, o primeiro apesar de menos freqüente possui características básicas
importantes e o segundo tem em seus protocolos uma importante referência para qualquer
rede.
33
No modelo OSI observa-se sete camadas, cada qual deve possuir uma função
definida, entretanto no OSI não observamos o tratamento de arquitetura de rede, pois não
especifica os protocolos e serviços a serem utilizados, apenas descreve a função das camadas.
1.4.1.
Hierarquia de protocolos
Para reduzir a complexidade do projeto de uma rede elas são organizadas em
camadas ou níveis, que varia de rede para rede, entretanto cada camada tem uma função
definida e deve oferecer serviços a camada de nível superior a ela.
Entre duas camadas existe uma interface que define as operações e serviços que são
oferecidos a camada superior pela inferior. As interfaces podem ser diferentes de rede para
rede desde que o não prejudique o funcionamento correto da camada superior. Entretanto as
interfaces são desenvolvidas de forma a reduzir o volume de informações de uma camada
para outra e simplificar a comunicação entre as duas camadas.
O conjunto de camadas e protocolos e chamado de arquitetura de rede, uma
arquitetura de rede contem informações suficientes para que sejam desenvolvidos softwares e
hardwares capazes de utilizar os protocolos definidos por ela.
1.4.2.
Tipos de Serviços
Os serviços oferecidos pela camada inferior a superior podem ser de dois tipos
diferentes: serviços orientados a conexão e serviços não orientados a conexão.
Os serviços orientados a conexão baseia-se em conexão, ou seja, necessita de uma
conexão para ser realizado assim para utilizar do serviço primeiro e necessário estabelecer a
conexão, utilizá-la e depois liberá-la.
34
Por outro lado os serviços não orientados a conexão são relativamente
independentes, não é necessário uma conexão para efetivar a transmissão da mensagem, para
isso a própria mensagem contem informações do endereço e é roteada até o seu destino.
Geralmente os serviços dispõem de confirmação das mensagens enviadas, esse
serviço é dito como um serviço confiável, já um serviço que não dispõem de uma
confirmação é dito um serviço não confiável. Ambos são importantes e ambos têm suas
vantagens e desvantagens, por exemplo, um serviço confiável que dispõe de uma confirmação
pode tornar o trafego de informações maior, já que a resposta utiliza o mesmo meio para
trafegar, por outro lado existem situações em que a resposta é extremamente importante para
o usuário que esta utilizando o serviço.
Um serviço é especificado por diversas primitivas que definem qual processo é
executado ou qual ação deve tomar em determinada situação. Como exemplo temos um
sistema cliente/servidor: as primitivas seriam LISTEN, CONNECT, RECEIVE, SEND,
DISCONNECT. Em primeira instancia o servidor executa a primitiva LISTEN estando o
mesmo aguardando para aceitar uma conexão, assim o cliente executa CONNECT
estabelecendo a conexão, o servidor por sua vez se prepara para receber a informação
executando a primitiva RECEIVE, o cliente por seguinte envia a informação através da
primitiva SEND, ao final da transação o cliente executa DISCONNECT liberando o servidor
para executar outro LISTEN para futuras conexões.
É importante diferenciar serviço de protocolo: o serviço executa uma operação ou
serviço na interface entre as camadas, já o protocolo relaciona-se com os pacotes enviados
entre duas ou mais maquinas.
35
1.4.3.
Modelo OSI
Esse modelo é baseado em uma proposta desenvolvida pelo International Standards
Organization (ISO) em uma iniciativa para padronizar as conexões entre os computadores,
desse projeto originou-se o modelo de referência em questão. O OSI é um acrônimo do termo
em inglês Open Systems Interconnection, que significa interconexões de sistemas abertos.
1.4.3.1. Camada Física
A camada física trata da transmissão de bits brutos por um canal de comunicação,
essa camada deve garantir a integridade da informação transmitida sem que haja ruídos e
distorções na mensagem enviada. E responsabilidade dessa camada a representação de um bit,
que depende da voltagem e da duração, estabelecer sentidos da transmissão: se apenas um
sentido ou nos dois sentidos simultaneamente, o inicio e o termino de uma conexão, e por fim
a quantidade de conectores e suas finalidades.
Podemos citar dois meios físicos que se aplicam a redes: Meios guiados e meios não
guiados. Para o primeiro podemos citar fios de cobre e fibra ótica, e para o segundo ondas de
rádio e raios laser transmitidas pelo ar.
1.4.3.2. Camada de Enlace de Dados
A camada de enlace atua gerenciando a transmissão de dados identificando erros não
aparentes na camada física, separando a mensagem em frames (quadros) fazendo com que
esses quadros sejam transmitidos seqüencialmente, e por fim aplicando controle de erros e de
fluxo.
36
1.4.3.3. Camada de Rede
A camada de rede tem como principal função o estabelecimento, a manutenção e o
termino de uma conexão, para tanto converte os endereços lógicos dos pacotes em endereços
físicos fazendo com que os pacotes cheguem ao seu destino. As rotas definidas podem ser
estáticas ou dinâmicas: pré-definidas de acordo com a rede, ou estabelecida e determinadas a
cada conexão, respectivamente. Cabe ainda a camada de rede gerenciar essas rotas e evitar
congestionamento e gargalos de dados.
1.4.3.4. Camada de Transporte
Sua função é captar os dados da camada anterior, adequá-los e repassar para a
camada de rede garantindo que todas essas unidades cheguem corretamente a outra
extremidade. A ISO define o protocolo de transporte para operar em dois modos: orientado a
conexão (TCP) e não orientado a conexão (UDP).
1.4.3.5. Camada de Sessão
A camada de sessão atua gerenciando a conversa através de uma sessão. Essa sessão
dispõe de diversos serviços como: controle de diálogo, gerenciamento de tokens e
sincronização. O controle de diálogo gerencia a transmissão ordenando quem deve transmitir
evitando colisões, o gerenciamento de tokens impede que as partes executem uma operação
critica ao mesmo tempo e que por fim essa conexão termine, e a sincronização realiza
verificações periódicas permitindo que uma ação seja retomada de onde foi interrompida caso
haja alguma falha.
37
1.4.3.6. Camada de Apresentação
A responsabilidade principal dessa camada é a apresentação dos dados ao receptor,
assim ela faz as adaptações necessárias para que o computador de destino possa compreender
a mensagem enviada.
1.4.3.7. Camada de Aplicação
Esta camada dispõe aos usuários protocolos para serviços como e-mail, transferência
de arquivos, acesso a paginas da internet.
1.4.4.
Modelo de referência TCP/IP
O modelo TCP/IP surgiu a partir sucessão da ARPANET, uma rede de pesquisa
utilizada por universidades e patrocinada pelo Departamento de Defesa dos Estados Unidos
que por causa do surgimento de redes de rádio e satélite teve seu funcionamento prejudicado
por problemas com os protocolos existentes, o que forçou a criação de uma nova arquitetura
de referência, o TCP/IP.
As principais camadas colocadas em comparação com o modelo OSI podem ser
observadas na Tabela 1.2 a seguir:
Tabela 1.2 Os modelos de Referência OSI e TCP/IP
7
6
5
4
3
2
1
OSI
Aplicação
Apresentação
Sessão
Transporte
Rede
Enlace de dados
Física
TCP/IP
Aplicação
Transporte
Inter-redes
Host/Rede
Fonte: Redes de computadores, Tanenbaum (2003)
38
Observa-se que diferentemente do modelo de referência OSI o modelo TCP/IP
possui apenas quatro camadas, que são suficientes para uma conexão eficiente e versátil.
Observam-se na Tabela 1.3 os principais protocolos utilizados do modelo de
referência TCP/IP:
Tabela 1.3 Protocolos e Redes no modelo TCP/IP
Serviços
Protocolos
TELNET
FTP
SMTP
TCP
Camadas
HTTP
DNS
UDP
Transporte
IP
Redes
ARPANET
PPP
LAN
Aplicação
Rede
ETHERNET
Wi-Fi
Host Rede
Fonte: Adaptada de Redes de Computadores, Tanenbaum (2003)
1.4.4.1. Camada Host/Rede
Segundo Tanenbaum (2003) a camada de host/rede não é muito bem especificada
pelo modelo de referência TCP/IP, relatando que o host conecta-se à rede utilizando algum
protocolo capaz de enviar pacotes IP. Portanto não é definido nenhum protocolo e o mesmo
pode variar de host para host.
Entretanto para o nosso projeto iremos destacar e aprofundar um pouco mais o
sistema Ethernet de cabeamento para camadas físicas ou de Host/Rede, esse é o sistema
atualmente mais usado mundialmente e esta em suposto declínio devido a acessão do sistema
Wireless Fidelity (Wi-Fi).
39
1.4.4.1.1. Ethernet
Desenvolvido no Palo Alto Research Center (PARC) da Xerox por Robert Metcalfe,
e aperfeiçoado posteriormente pela Digital Equipment Corporation (DEC), Intel e Xerox
conjuntamente estabelecendo o padrão DIX que viera se tornar o padrão IEEE 802.3 a
Ethernet se tornou uma dos sistemas mais utilizados nas diversas redes locais de todo o
mundo, principalmente quando Metcalfe impulsionou seu mercado com a criação da empresa
de tecnologia de rede a famosa 3Com.
Ethernet faz menção ao éter luminoso, material utilizado no cabeamento de um dos
primeiros sistemas criados.
Um sistema que utiliza cabeamento Ethernet basicamente utiliza uma rede do tipo
multiponto, onde o computador antes de transmitir verifica a disponibilidade de utilizar o
meio de transmissão, no caso o cabo. Esse sistema fora atualizado com o tempo, o mais
utilizado de todos foi o cabeamento 10Base-T ou cabeamento par trançado, devido a sua
adaptabilidade as necessidades da época: flexibilidade, extensão, velocidade, etc.
Entretanto existem outros tipos que também são bastante usados, os mais comuns
estão descritos na Tabela 1.4.
Tabela 1.4 Os Tipos mais comuns de cabeamento Ethernet
Nome
Cabo
Máximo de seg.
Nós/ seg.
Vantagens
10Base5
Coaxial Grosso
500 m
100
Cabo Original
10Base2
10Base-T
10Base-F
Coaxial Fino
Par Trançado
Fibra óptica
185 m
100 m
2.000 m
30
1.024
1.024
Sem necessidade de hubs
Sistema mais econômico
Melhor entre edifícios
Fonte: Redes de Computadores, Tanenbaum (2003)
40
Com a evolução incessante da tecnologia e da capacidade de armazenamento dos
computadores, exigiu-se mais das redes e o sistema Ethernet teve que ser várias vezes
otimizado. Assim surgiram diversas formas de cabeamento, e diversas velocidades de
transmissão e atualmente com o advento da internet de banda larga e a expansão de LANs por
todo o mundo, criou-se o cabo do tipo 100Base-T de categoria 5, o que significa que pode ser
utilizado para freqüências de até 100mhz e transmitir dados em até 100mbps.
A desvantagem da Ethernet e dos cabeamentos par trançado 100Base-T e 10Base-T
é a sua restrição ao tamanho máximo que dois hosts podem estar conectados que é de cem
metros, devido a confiabilidade e a algoritmos de detecção de colisão que não entraremos em
detalhes por serem muito complexos e não afetar o projeto em suma importância.
Existem, entretanto cabeamentos Ethernet para grandes distâncias, é o caso da fibra
ótica que pode alcançar até cinco mil metros de distância máxima entre hosts e velocidades
que variam de 10mbps a 1gbps de cabeamentos 10Base-F e 1000Base-LX.
As tecnologias que utilizam fibra ótica são de alto custo para empresas e difícil
flexibilidade, o cabo não pode sofre algumas ou nenhuma deflexão para garantir a transmissão
dos dados.
A vantagem do uso de uma rede Ethernet é sua simplicidade de flexibilidade já que
permite a conexão de diversos computadores, até mesmo ramificando com hubs e switchs e
ser interativa com outros meios de transmissão como wireless, que veremos mais adiante.
1.4.4.2. Camada de Rede
A camada de rede como citado no modelo OSI é responsável pela manutenção da
conexão e sua efetivação, no modelo TCP/IP o pacote oficial para esta tarefa é o IP: Internet
41
Protocol, esta camada permite a camada de host injetar os pacotes em qualquer rede e garante
seu trafego independentemente da rede.
Os pacotes, de um modo simplificado, possuem divisões que contem informações
sobre sua: tamanho, endereço de origem, endereço de destino e a mensagem.
Em conjunto a esse protocolo observa-se também o ICMP acrônimo de Internet
Control Message Protocol que atua como um controlador de pacotes e de rotas enviando
pacotes com mensagens para tanto.
1.4.4.3. Camada de Transporte
Mantém a conversação entre os pares de host, observam-se aqui dois protocolos para
executar tal tarefa:
TCP acrônimo de Transmission Control Protocol é um protocolo orientado a
conexão, como descrito no modelo OSI este fragmenta os bytes em mensagens e os
repassa para a próxima camada no host de origem, e o inverso ocorre no host destino
tudo isso a dentro de uma chamada solicitada pelo host de origem e terminada após a
transmissão, esse protocolo verifica erros e os corrige, descarta pacotes duplicados, e
recupera pacotes que são perdidos.
UDP acrônimo de User Datagram Protocol é um protocolo não orientado à
conexão que não é capaz de realizar testes de verificação de erros, nem aceita
recuperação de dados perdidos, por isso é utilizado em aplicações que não requerem
o controle do fluxo, como transmissão de dados de voz ou de vídeo.
42
1.4.4.4. Camada de Aplicação
Contem os protocolos de nível mais alto que fornecem uma interface para o usuário
como:
SMTP: Simple Mail Transfer Protocol serviços de correio eletrônico;
HTTP: HyperText Transfer Protocol
que provem as famosas páginas da
internet e transferência de arquivos;
FTP: File Transfer Protocol utilizado exclusivamente para transferência de
arquivos;
DNS: Domain Name Systems que traduz endereços de IP para nomes e nomes
para endereços IP;
TELNET um protocolo que permite acesso remoto ao sistema operacional de
um sistema.
1.4.5.
Arquitetura IEEE 802
A arquitetura IEEE 802 estabelece padrões para as camadas: física e de enlace de
dados; dos modelos ISO/OSI. As duas subcamadas mais importantes estabelecidas por esse
padrão são: MAC e LLC.
1.4.5.1. Medium Access Control (MAC)
Tem sua principal função controlar o acesso ao meio, ou seja, decidir quem terá
acesso para continuar a transmissão caso haja mais de um emissor, também estabelece um
único endereço fixo para a placa de rede e proporciona acesso a seus recursos através de um
43
driver. Em palavras simples é o porteiro de um brinquedo no parque de diversões que decide a
hora dos foliões entrarem ou esperar.
1.4.5.2. Logical Link Control (LLC)
É a subcamada superior da camada de enlace de dados que esta descrita segundo os
padrões 802.2 do IEEE, assim esta subcamada é responsável por acrescentar ao pacote um
cabeçalho especifico que poderá ser reconhecido na subcamada LLC destino.
Este cabeçalho do LLC que permite a utilização de diversos protocolos na camada de
rede, e permite o que os pacotes trafeguem em qualquer camada física estabelecida pelo
padrão IEEE 802. Assim é possível estabelecer pontes de conexões entre os diversos meios
físicos como wireless e par-trançado
1.5.
Redes Wireless
As redes sem fio são redes que utilizam ao invés de fios, para realizar a comunicação
entre diversos computadores, outras tecnologias que podem ser radiofreqüência, microondas e
infravermelho.
Atualmente destacam-se vários tipos de redes sem fio, ordenados por amplitude da
área de cobertura do menor para o maior:
WPAN é um acrônimo do termo americano Wireless Personal Areal Network,
envolve conexões de rede sem fio a nível pessoal ou particular de curta distância (até
1 metro) dentro dessa categoria estão celulares, notebooks e PDAs quando utilizam,
por exemplo, a tecnologia Bluetooth, ou qualquer tecnologia que implementa o
padrão IEEE 802.15, para se comunicar.
44
WLAN é outro acrônimo do termo americano Wireless Local Area Network,
trata-se de redes locais de pequeno alcance variando de 10 a 100 metros a distância
entre os hosts, utilizam o padrão IEEE 802.11, geralmente difusos por
radiofreqüência, entretanto já se observa a utilização de WLAN com Bluetooth e
também infravermelho. Uma observação importante: o padrão IEEE 802.11 é um
projeto para redes que possuam móveis, entretanto não impede usuários fixos de
utilizá-la.
Wi-Max é uma sigla em inglês do termo Worldwide Interoperability for
Microwave Access, como segue a ordem, trata de redes com amplitude
metropolitana, segundo Ribeiro (2005):
O Wi-Max na versão 802.16a, ratificada pelo fórum em janeiro de 2004,
funciona nas freqüências entre 2 e 11 GHz, com alcance máximo de 50
quilômetros, além da transmissão de dados à velocidade de 70 Mbps.
Entretanto ao contrario do que se pensa o Wi-Max não é um projeto para redes de
usuários moveis, mas sim uma rede para usuários fixos por ser originado de redes de TV por
assinatura (sem fio), entretanto o padrão IEEE 802.16e pretende garantir essa mobilidade.
Existem dois tipos de conexão sem fio: com estação base e sem estação base.
Com estação base a transmissão e feita por uma antena de alto alcance ligada
por um fio ou diretamente a um servidor e os hosts recebem e transmitem os dados
através de uma antena, geralmente utiliza os padrões 802.11 ou 802.16 do IEEE.
Sem estação base a conexão da rede é feita diretamente entre os hosts que
desejam se comunicar sem a necessidade da informação seguir para um servidor e
depois retransmitida, geralmente utiliza o padrão 802.15 mais comum o Bluetooth.
45
Um exemplo de uma conexão desse tipo é a troca de arquivos de música, ringtones,
imagens ou qualquer outro arquivo entre dois celulares via Bluetooth.
As redes wireless, como o próprio nome já nos diz, tratam de uma rede sem fio que
utiliza outros meios para efetivar a comunicação entre dois ou mais computadores, abaixo
estão descritos os mais comuns meios de transmissão da camada física segundo o modelo
ISO/OSI e o padrão IEEE 802.11:
Infravermelho é uma transmissão difusa que permite duas velocidades de 1 a
2 mbps, é um tipo de rede restrito a um ambiente fechado ou totalmente aberto já que
seus sinais não são capazes de atravessar paredes. Por esse motivo, por ser uma rede
de largura de banda pequena e sofrer freqüentes ruídos causado por raios solares esta
não é uma rede muito popular.
Frequency Hopping Spread Spectrum (FHSS) utiliza uma transmissão dentro
de uma faixa de freqüência dividida em 79 canais, assim a transmissão e feita entre
os diversos canais dispostos, para tanto os hosts devem utilizem o mesmo modo para
o alternador de freqüência as conexões permaneceram sincronizadas alternando
aleatoriamente os canais. Isso permite maior segurança contra invasores que
dificilmente conseguem identificar o canal de transmissão já que o mesmo se altera
em no máximo 400 milissegundos. É um meio popular, entretanto de baixa largura
de banda.
Direct Sequence Spread Spectrum (DSSS) semelhante ao FHSS efetua a
transmissão trocando os canais, entretanto a sua diferença é que os canais não são
trocados aleatoriamente, mas sim em uma seqüência. Por isso motivo ela torna-se
uma tecnologia não segura para transmitir necessitando de criptografias para que seja
uma transmissão segura.
46
Orthogonal Frequency Division Multiplexing (OFDM), foi uma das
primeiras tecnologias a utilizar uma largura de banda maior que as outras podendo
transmitir até 54 mbps, em uma analogia simples funciona semelhantemente ao
FHSS porem transmitindo em vários canais simultaneamente.
A subcamada MAC de enlace de dado é diferenciada do padrão 802.3 para Ethernet,
pois como o meio nem sempre é igual para todos alguns usuários podem estar fora do alcance
de outros usuários o que implica que os dois podem transmitir ao mesmo tempo para o mesmo
destino causando colisões. Isso foi tratado de duas formas na subcamada MAC através de dois
modos de operação:
Distributed Coordination Function (DCF): nesse modo há dois métodos de
operação, o primeiro analogamente é semelhante à Ethernet o emissor transmite seu
quadro se o canal estiver desocupado e se houver colisões os transmissores aguardam
um tempo aleatório definido pelo algoritmo de recuo binário igual à Ethernet. Outro
método é a utilização de um canal virtual, onde todos que desejam transmitir um
quadro reivindicam um canal virtual, esse é formado pelos hosts dentro da área do
transmissor que informa outros hosts dentro da sua área sobre a disponibilidade do
canal e assim sucessivamente deixando o canal livre para transmissão.
Point Coordination Function (PCF): nesse modo todas estações são controladas
pela estação-base, que efetua um polling perguntando quais estações desejam enviar
quadros, e assim ordenando a utilização do canal.
47
CAPÍTULO 2 - DESENVOLVIMENTO DE SOFTWARE
2.1.
Engenharia de Software
O desenvolvimento de um software, ao contrário do que pressupõe o censo comum,
trata não apenas da criação de um algoritmo e interfaces para interação com o usuário, mas
sim de todo o processo de sua produção. O desenvolvimento de todos esses processos é
conhecido como Engenharia de Software conforme cita Sommerville (2004):
A engenharia de software é uma disciplina da engenharia que se ocupa de
todos os aspectos da produção de software, desde os estágios iniciais de
especificação do sistema até a manutenção desse sistema, depois que ele
entrou em operação.
Portanto podemos identificar em um software uma estrutura a qual foi previamente
elaborada e estruturada, essa estruturação comum a todos os softwares e efetuada por
processos, que são um conjunto de atividades para esse fim. Em um desenvolvimento de um
software há diversos processos, que podemos organizá-los dessa forma:
Especificação: onde são definidas as restrições de operações e funcionalidades.
Desenvolvimento: produção do software de acordo com as especificações.
Validação: garante a funcionalidade do software de acordo com o desejo do cliente.
Evolução: deve garantir que o software esteja sempre atualizado complementando
necessidades futuras do cliente.
Para este projeto iremos destacar as fases de especificação e desenvolvimento já que
elas estão presentes e interagem diretamente com o assunto tratado.
48
2.2.
Modelos de Processos de Software
A união de todos esses processos faz-se criar o que chamamos de engenharia de
software, esses processos por sua vez podem ser organizados de forma a simplificar e dividir
as etapas da engenharia, essa divisão podemos chamar de modelos de processo.
Atualmente os modelos em cascata e de desenvolvimento evolucionário são os mais
utilizados no mercado para o desenvolvimento de sistemas práticos, esses modelos
basicamente possuem as mesmas etapas, entretanto o primeiro e desenvolvido
seqüencialmente e o segundo em múltiplos aspectos.
Contudo há outros dois modelos relevantes: o desenvolvimento formal e o
desenvolvimento orientado a reuso. O primeiro raramente é utilizado, entretanto foi muito
utilizado antigamente por tratar de projetos complexos, já o desenvolvimento orientado ao
reuso tende a um crescimento por estar diretamente ligado a reutilização de código, um fato
que podemos considerar essencial para projeto de softwares web ou para internet.
2.2.1.
Modelo Cascata
O modelo cascata foi o primeiro modelo de processo de software publicado,
originou-se de outros processos de engenharia. Basicamente define cinco etapas que vão da
especificação até a evolução do software, como mostra a Figura 2.1:
49
Figura 2.1 Modelo em Cascata
Fonte: Engenharia de Software, Sommerville (2004)
Nesse modelo cada fase é executada seqüencialmente, sendo assim a fase seguinte
somente será iniciada ao termino da fase anterior. Quando o software é colocado em
operação, podem ser detectados erros ou até mesmo necessidade atualizações e para tanto há
um retrocesso nas fases anteriores a fim de suprir a necessidade ou corrigir o erro.
2.2.2.
Modelo de Desenvolvimento Evolucionário
O modelo de desenvolvimento evolucionário é conhecido por não trabalhar
seqüencialmente como no modelo em cascata, ao invés disso são efetuadas diversas etapas
durante o processo sem uma seqüência previamente estabelecida.
Basicamente esse modelo compreende o desenvolvimento de um software inicial e
atualização constante dele com base nas informações obtidas do usuário (cliente) até que seja
concluído um software final com os aprimoramentos desejados, geralmente utilizando
técnicas de prototipação, como ilustra a Figura 2.2.
Esse modelo apresenta vantagens no que diz respeito a agilidade e atendimento das
expectativas do cliente. Entretanto há problemas quando o software for demasiadamente
50
complexo pois há uma má estruturação do projeto, alem de exigir técnicas de programação e
desenvolvimento rápidos.
Figura 2.2 Modelo de desenvolvimento evolucionário
Fonte: Engenharia de Software, Sommerville (2004)
2.3.
Especificação
Na engenharia de software foi visto que há vários processos que compõem seu
desenvolvimento, o primeiro passo para criação de qualquer que seja o software utilizando
qualquer metodologia ou modelo é o processo de especificação, que por se tratar da primeira
etapa se torna importante, pois define o que será feito em todas as outras próximas etapas.
É ressaltar que esse processo deve ser muito bem elaborado, pois todos os processos
seguintes dependem diretamente do que for estabelecido na especificação, isto implica que se
houver uma má definição da especificação todos os outros processos serão prejudicados
ampliando o custo geral do projeto.
51
O processo de especificação envolve quatro componentes básicos: o estudo da
viabilidade, levantamento e análise de requisitos, especificação de requisitos e validação de
requisitos. Para este trabalho a especificação é uma parte importante, pois é justamente na
especificação que entram definição das variáveis de rede como, usar uma rede distribuída, ou
uma rede multiponto; qual tecnologia usar wireless ou par-trançado. E esse é justamente o
objetivo desse trabalho demonstrar como uma rede sem fio pode interferir no
desenvolvimento de um software.
Contudo neste capítulo apenas farei menções sobre a engenharia de software e no
capítulo seguinte introduzirei as interferências citadas acima.
2.3.1.
Estudo de viabilidade
O estudo de viabilidade é feito de forma rápida e barata, analisando do ponto de vista
comercial e financeiro se o sistema proposto é viável. O resultado deve decidir a progressão
ou não do projeto.
2.3.2.
Requisitos
Como vimos os requisitos devem ser muito bem definidos para efetivação de um
bom software, entretanto não é fácil estabelecer com exatidão as necessidades do cliente e o
que o sistema deve fazer, e é justamente esse problema que a engenharia de requisitos resolve.
A engenharia de requisitos é um método eficaz de captar as informações, analisá-las
e estruturá-las dentro do projeto, segundo Sommerville (2004):
Alguns dos problemas que surgem durante o processo de engenharia de
requisitos são resultantes da falta de uma nítida separação entre esses
diferentes níveis de descrição.
Ainda segundo este autor a separação acima citada se confere em três:
52
Requisitos do usuário: descrevem as funções que o sistema deve fornecer e as
restrições sob as quais deve operar normalmente em linguagem natural ou diagramas.
Requisitos de sistema: estabelece detalhadamente as funções e restrições do
sistema, em alguns casos pode até mesmo ser usada como contrato.
Especificação de projeto de software: uma descrição abstrata do projeto servido de
base para a estrutura do projeto e da implementação.
Analisando superficialmente os diferentes níveis de especificação o primeiro deve
tratar uma linguagem simples e objetiva sem termos técnicos para serem apresentadas a
gerentes do cliente e dos fornecedores que não possuam conhecimento técnico do assunto. Já
os requisitos de sistema devem descrever detalhadamente e tecnicamente como irá funcionar
todo o processo do sistema, tendo como alvos profissionais técnicos e gerentes de projeto. E o
ultimo deve ser voltado para os engenheiros que irão definir o projeto e seu desenvolvimento.
2.3.2.1. Requisitos de Sistema
Vamos tratar aqui apenas os requisitos de sistema, pois engloba as outras duas
divisões para especificação de requisitos. Como vimos este documento estabelece uma
descrição mais detalhada dos requisitos de usuário e podem até servir como base para um
contrato e por isso deve conter uma especificação completa e consistente de todo o sistema.
Essa especificação e freqüente descrita em linguagem natural, entretanto essa
linguagem pode ser ambígua em alguns casos, pode adquirir diversas compreensões por
diferentes leitores e muitas vezes pode ser restrita a detalhes técnicos.
Pensando em resolver esses problemas de linguagem foram criadas diversas notações
para especificação de requisitos de sistemas, a mais freqüente e a que irei citar é a linguagem
53
natural estruturada, que pode ser compreendida com um exemplo citado por Sommerville
(2004). Esse exemplo disposto na Tabela 2.1 introduz formulários com o propósito de
descrever em linguagem natural estruturada as entradas, saídas e outros detalhes da função
adicionar nós de um sistema de edição de projeto.
Há outras linguagens de especificação de requisitos:
Linguagem de descrição de projeto: semelhante a uma linguagem de programação,
entretanto com recursos abstratos para especificar os requisitos pela definição de um
modelo operacional do sistema.
Notações gráficas: utiliza desenhos e notas textuais para definir o sistema.
Especificações matemáticas: utiliza conceitos matemáticos para detalhar o sistema,
é muito complexa e raramente compreendida.
Tabela 2.1 Especificação de requisitos de sistema utilizando um formulário padrão.
Função
Descrição
Entradas
Origem
Saídas
Destino
Requer
PréCondição
PósCondição
Efeitos
Colaterais
Adicionar nós.
Adiciona um nó em um desenho existente. O usuário seleciona o tipo de nó
e seu posicionamento. Quando adicionado ao desenho, o nó se torna a
seleção atual. O Usuário escolhe a posição do nó movimentando o cursor
para a área em que o nó será adicionado.
Tipo de nó, Posição do nó, Identificador do desenho.
Tipo de nó e Posição do nó são entradas fornecidas pelo usuário;
Identificador de desenho se origina da base de dados.
Identificador do desenho.
O banco de dados do desenho. O desenho é designado para a base de dados
no término da operação.
Gráfico de desenho associado ao identificador de desenho de entrada.
O desenho é aberto e exibido na tabela do usuário.
O desenho é imutável, a não ser pela adição de um nó do tipo especificado
em dada posição.
Fonte: Engenharia de Software, Sommerville (2004)
Nenhum
54
As especificações dos requisitos de sistemas são freqüentemente classificadas como
funcionais ou não funcionais ou requisitos de domínio:
Requisitos funcionais: declaram o que o sistema deve fazer (funções), como ele
reage a entradas e como destina as saídas, alem de definir o comportamento em
situações especificas.
Requisitos não funcionais: são restrições sobre os serviços ou funções oferecidas
pelo sistema.
Requisitos de domínio: são requisitos que se origina do domínio de aplicação do
sistema e que refletem características do domínio.
Nesse projeto vale ressaltar a importância dos requisitos não funcionais, pois alem de
definir diversas características de hardware necessárias eles definem as características da rede
em qual o sistema deve ser instalado, definindo assim as métricas dela. Assim pode-se
comparar qual o melhor tipo de rede e como isso afeta no projeto.
2.4.
Projeto e Desenvolvimento
O desenvolvimento e a implementação de um software estão diretamente ligados ao
projeto, por se tratar da conversão do que foi projetado em um sistema executável. O projeto
em si descreve o que deve ser implementado no software até mesmo citando algoritmos a
serem utilizados. Normalmente durante o projeto são efetivadas diversas versões não oficiais
do software a fim de obter um feedback para correção de projetos anteriores, à medida que são
liberadas essas versões são acrescentadas formas e detalhes de forma a suprir alguma
necessidade não observada anteriormente.
55
Existem diversas atividades especificas no processo de projeto, e por serem divididas
elas sugerem uma seqüência, entretanto as atividades podem ser intercaladas com o feedback
e a reestruturação. Entrarei em detalhes apenas no projeto de arquitetura e os outros apenas
citarei cada atividade para compreensão do processo:
Projeto de arquitetura: identifica e documenta os subsistemas.
Especificação abstrata: para cada subsistema existe uma especificação abstrata
assim como as especificações de sistema.
Projeto de interface: identifica e documenta como deve ser implementada a
interface entre os subsistemas.
Projeto de componentes: projeta as funções dos componentes de cada interface.
Projeto de estrutura de dados: referencia e especifica as estruturas de dados e seus
relacionamentos.
Projeto de algoritmos: projeta os algoritmos para os serviços definidos
detalhadamente.
O processo de projeto de software não é restrito a esse modelo e pode ser flexível de
acordo com a necessidade do cliente.
2.4.1.
Projeto de Arquitetura
O projeto de arquitetura onde os subsistemas decompostos anteriormente necessitam
de uma interação de definição, o processo de identificar e comunicar os subsistemas é
chamado projeto de arquitetura.
56
O projeto de arquitetura em suma estrutura o sistema em diversos subsistemas
principais cada qual com diversos módulos, ao final do projeto têm-se um documento de
projeto de arquitetura, contendo uma serie de representações gráficas e textuais do sistema.
2.4.1.1. Arquitetura de sistemas distribuídos
Irei enfatizar a arquitetura de sistemas distribuídos, pois estas são as arquiteturas que
dizem respeito ao meu trabalho por tratar de sistemas que cooperam entre si conectados
através uma rede.
Um sistema distribuído trata de um software que tem como características a divisão
de suas tarefas e atividades a mais de um computador, geralmente são vários computadores
interligados por uma rede, vimos no primeiro capítulo a topologia de uma rede distribuída a
qual esse sistema é adepto, entretanto o conceito de sistema distribuído não o restringe a
apenas redes distribuídas mas sim a todo e qualquer tipo de rede.
Portanto cabe a engenharia de software criar uma arquitetura adequada a esses
sistemas, tendo em vista sua grande utilização causada pelo surgimento de redes flexíveis,
simples e rápidas como a Ethernet e mais recentemente com a ascensão das redes wireless.
Sommerville (2004) faz uma importante descrição dessa tarefa da engenharia para
criar uma arquitetura de software adequada:
O desafio para os projetistas de sistemas distribuídos esta em projetar
software e hardware para que eles forneçam características desejáveis dos
sistemas distribuídos e, ao mesmo tempo, minimizem os problemas inerentes
a esse sistema.
Neste projeto, analisei duas modalidades de arquitetura de sistemas distribuídos
apresentados pelo autor:
Arquiteturas cliente-servidor: serviços fornecidos aos clientes pelo sistema.
57
Arquiteturas objetos distribuídos: sistema como um conjunto de objetos, sem
distinção entre um provedor e o usuário desse serviço.
2.4.1.1.1. Arquiteturas de cliente-servidor
Em uma arquitetura cliente-servidor a modelagem de uma aplicação é feita como um
conjunto de serviços fornecidos pelo servidor aos seus clientes. Ambos são tratados como
processos diferentes, sendo que os clientes necessitam saber a disponibilidade do servidor,
mas não necessariamente de outros clientes.
A arquitetura cliente-servidor deve refletir as atividades desenvolvidas da aplicação
de uma maneira simples porem objetiva. Um modo de demonstrar essas atividades é através
de camadas como pode ser observado na Figura 2.3, onde o software é estruturado em três
camadas: a camada de apresentação, camada de processamento de aplicações, e a camada de
gerenciamento de dados.
Figura 2.3 Camadas da aplicação.
Fonte: Engenharia de Software, Sommerville (2004)
58
Sobre essa estrutura pode-se definir claramente as atividades que serão atribuídas aos
clientes e aos servidores. Geralmente as camadas são dividas em duas: uma na parte do cliente
e outra na parte do servidor assim surge dois modelos para a arquitetura cliente-servidor:
Modelo cliente-magro: onde todo o processamento de aplicação e
gerenciamento de dados é efetuado no servidor, e o cliente é responsável apenas pela
apresentação.
Modelo cliente-gordo: onde o servidor se encarrega apenas
pelo
gerenciamento de dados, encarregando o cliente pelo processamento da aplicação e
apresentação.
O modelo cliente-magro descrito é uma tendência atual devido à flexibilidade
proporcionada por sistemas web, os quais utilizam como software de apresentação um
browser de protocolos da rede como o HTTP. A desvantagem é que nesse modelo há um
grande tráfego na rede e exige uma capacidade muito grande de processamento do servidor
dependendo do número de clientes, iremos discutir a evolução dessas características mais
adiante no terceiro capítulo.
Em contrapartida o cliente-gordo utiliza um servidor com a capacidade apenas de
gerenciar o banco de dados e o cliente se responsabiliza pela grande carga de processamento,
isso permite um menor tráfego de dados na rede à medida que exige mais dos hardwares do
cliente. Há, contudo, métodos de programação em linguagem de gerenciamento de banco de
dados que visam minimizar esse tráfego e amenizar a carga de processamento do cliente,
geralmente utilizam-se funções, threads e triggers no banco de dados para executar tarefas
básicas, por exemplo, de inserção e busca. Há também uma desvantagem quanto à
manutenção desse software o qual pode ser bem dispendioso caso haja muitos clientes.
59
Atualmente com as tecnologias tendendo para o desenvolvimento de softwares
flexíveis e mais acessíveis, como o de aplicativos web, houve uma separação das atividades
do servidor, dividindo assim as fisicamente as camadas lógicas de aplicação. Assim de modo
simplificado temos um cliente, um servidor para aplicações web e um servidor para
gerenciamento de banco de dados, como ilustra a Figura 2.4.
Figura 2.4 Arquitetura cliente-servidor de três camadas.
Fonte: Engenharia de Software, Sommerville (2004)
As arquiteturas cliente-servidor de três camadas são mais escalonáveis, ou seja,
podem ser aumentadas ou diminuídas sem prejudicar a arquitetura geral, além de permitir um
menor tráfego na rede, reduz a carga de processamento distribuindo a tarefa entre dois
servidores.
2.4.1.1.2. Arquiteturas de objetos distribuídos.
Vimos na arquitetura cliente-servidor que os clientes são restritos a apenas receber
serviços de servidores, não podendo recebê-los de outro cliente, esse modelo é bem pratico
para certos tipos de aplicações, mas de certo modo restringe a flexibilidade para os projetistas
60
que necessitam planejar expansões e meios de distribuir a carga excedente de uma expansão
nos servidores.
A arquitetura de objetos distribuídos elimina essa distinção existente entre cliente e
servidor, ou seja, todos os componentes do sistema atuam como clientes e servidores
trabalhando em conjunto com um intermediador, o autor cita dois desses intermediadores que
não entraremos em detalhes o Common Object Request Broker Architecture (CORBA) e o
Distributed Component Object Model (DCOM). Atualmente temos o Java RMI e Java IDL
seu funcionamento basicamente é semelhante, ou seja, fornecer uma gama de serviços que
permita a comunicação entre os objetos como mostra a Figura 2.5.
Diferentemente da arquitetura cliente-servidor não há preocupação com o tráfego na
rede e por conseqüência quanto à cliente-gordo ou magro, afinal os objetos podem se localizar
em diversos pontos da rede. Alem de ser uma arquitetura de sistema muito aberta que permite
a entrada de recursos facilmente, ela é totalmente flexível pode-se criar objetos que venham
substituir outros que possuem mesmas características de serviços sem interferir os outros
objetos. Há também a opção de fazer com que objetos migrem pela rede diminuindo cargas de
processamento e aumentando o desempenho do sistema.
A desvantagem perceptível dessa arquitetura é que exige muito trabalho para serem
projetadas por serem muito complexas. Um exemplo dessa arquitetura é observado na Figura
2.5 .
61
Figura 2.5 Exemplo de uso do Java RMI.
Fonte: http://www.devmedia.com.br/images/articles/178782/arqrmi.gif. Acessado em 11/12/2007.
O Java RMI utiliza a camada de transporte para fazer a comunicação entre objetos
que podem estar em um mesmo computador ou em diversos computadores. Ele permite a
utilização dos métodos de um objeto remotamente através do Remote Method Invocation,
assim permitindo a interação dos diversos objetos do sistema. Além disso não é necessária a
preocupação do programador com o empacotamento dos dados já que esse é feito pelo próprio
RMI.
2.5.
Validação e Evolução
A validação do software se caracteriza por uma serie de verificações, testes e
validações de todas as variáveis do sistema, seu objetivo principal e demonstrar que o
software atende as especificações do cliente e esta de acordo com os requisitos préestabelecidos.
Em grandes projetos, onde os sistemas são subdivididos em subsistemas, módulos e
unidades, requerem vários estágios de testes, estes incluem: testes de componentes, testes de
62
integração dos módulos e subsistemas ao sistema geral, e por fim o teste do usuário para
aceite do sistema.
Um teste de usuário essencial para grandes projetos consiste em distribuir versões
beta para usuários que concordem com sua utilização, assim podem ser reportados erros
detectados por esses usuários que porventura tenham passado em branco por todos os outros
testes. Esse retorno desperta os projetistas para correção do erro e depois o sistema e depurado
novamente, não há restrições quanto à quantidade de versões beta, entretanto é comum haver
uma ou duas versões desse tipo.
A evolução do software trata de sua manutenção e atualização depois de liberado a
versão final, segundo Sommerville (2004) costuma-se diferenciar o desenvolvimento da
evolução, entretanto trata-se de um processo conjunto. Em vias gerais isso é percebido no
mercado atual já que varias empresas abandonaram a forma de cobrança única pelo software e
adotaram a cobrança por pacotes de serviço ao software por prazos determinados, e algumas
até mesmo por assinatura de software.
63
CAPÍTULO 3 - WIRELESS E O DESENVOLVIMENTO DE SOFTWARE
3.1.
Visão geral
Vimos durante os dois capítulos as diferentes variáveis que temos em ambos as
teorias, tanto em redes como no desenvolvimento de software. Por exemplo, existem
diferentes tipos de redes: redes com fios, redes sem fios, redes por difusão, redes ponto-aponto, alem de uma gama de protocolos de redes diferentes para cada tipo. E da mesma forma
temos a engenharia de software com projetos que possuem especificações diferentes, mais
adequadas às necessidades do cliente, projetos de arquiteturas diferentes que afetam seu
desenvolvimento.
É fato que as redes são um fator muito importante atualmente para o
desenvolvimento de um software de grande porte ou até mesmo para pequenas organizações,
afinal o que seria dele sem uma rede para trafegar todos os dados. Imagine milhões e milhões
de papeis de um lado para outro, provavelmente sem nenhuma organização, alem de muitas
perdas e transtornos.
Além disso, a rede tem um papel importante na definição do software, por exemplo,
uma empresa com um grande número de filiais em um amplo espaço que necessita utilizar o
mesmo sistema de controle gerencial solicita o desenvolvimento desse software. Certamente
durante a análise de requisitos e estudo de viabilidade será questionado qual o tipo de rede,
topologia, tecnologia, etc. adequados para esse sistema, e de acordo com a decisão como deve
ser tratado a arquitetura desse software, e como isso impacta no seu desenvolvimento.
3.2.
Wireless e o processo de especificação de software
Dentro do processo de especificação de software trabalha-se com o levantamento e
análise dos requisitos não funcionais e funcionais do sistema a ser desenvolvido, de acordo
64
com o que foi levantado já é possível definir qual tecnologia será utilizada para se construir o
software dentro de uma definição da rede. Não podemos dizer que a rede define como o
software deve ser, nem que o software define a rede, mas sim que ambos são interdependentes
e devem ser definidos em conjunto, apesar da existência de exceções esse é o modo correto de
visualização de uma rede e um software.
Geralmente a engenharia de software não deve ser voltada apenas para um tipo de
tecnologia ou se prender a um tipo de rede, mas sim deve ser flexível e apto para possíveis
mudanças futuras, isso tudo pode ser definido no documento de requisitos a partir de sua
análise. Segundo Sommerville (2004) uma falha em cumprir um requisito não funcional pode
tornar todo o sistema inútil, tal fato seria comprovado se, por exemplo, uma nova rede não
seja capaz de suportar o tráfego de informações e o sistema necessite dessa rede.
Portanto temos que para redes wireless os requisitos não funcionais variam das redes
convencionais de par trançado (Ethernet) apenas no padrão IEEE da camada física e nos
protocolos da subcamada de enlace MAC, tendo em vista que as camadas superiores são
padronizadas pela subcamada de enlace LLC. As seguintes especificações sobre taxa de
transmissão, área de cobertura e banda, devem ser observadas segundo o padrão IEEE 802.11:
Infravermelho: suporta taxas de transmissão entre 1 a 2 mbps e restrito a ambientes
fechados.
FHSS: suporta taxas de transmissão entre 1 e 2 mbps, cobre um área de até 300
metros em ambientes abertos e 120 metros em ambientes fechados, disponibilidade
de uso da banda ISM de 2,4 MHz.
65
DSSS: suporta taxas de transmissão entre 1, 2, 5.5 e 11 mbps, cobre um área de até
300 metros em ambientes abertos e 120 metros em ambientes fechados,
disponibilidade de uso da banda ISM de 2,4 MHz.
OFDM: suporta taxas de transmissão de até 54 mbps, cobre um área de até 300
metros em ambientes abertos e 120 metros em ambientes fechados, disponibilidade
de uso da banda ISM de 5 Mhz.
Já o padrão IEEE 802.16 possui algumas características diferentes entretanto todos
podem chegar com uma área de cobertura de até 50 km em campo aberto, mas há projetos que
visam a aproximação desse padrão com o IEEE 802.11:
Quadrature Amplitude Modulation (QAM-64): usado para clientes que situam-se
próximo a antena de transmissão, para 25 Mhz de banda (valor típico) alcança até
150 mbps de taxa de transmissão.
Quadrature Amplitude Modulation (QAM-16): usado para clientes que situam-se a
uma distância media da antena de transmissão, para 25 Mhz de banda (valor típico)
alcança até 100 mbps de taxa de transmissão.
Quadrature Phase Shift Keying (QPSK): usado para clientes que situam-se
distantes da antena de transmissão, para 25 Mhz de banda (valor típico) alcança até
50 mbps de taxa de transmissão.
A subcamada MAC de enlace de dados é compatível em dois modos para o padrão
IEEE 802.11, entretanto diferenciam do padrão IEEE 802.16 que é completamente orientado a
conexões.
66
As redes wireless também podem ser usadas de diferentes modos de acordo com seu
tipo: com estação-base ou sem estação-base. O primeiro permite a criação de LANs, MANs e
WANs na arquitetura cliente servidor e o segundo na arquitetura de objetos distribuídos como
veremos a seguir.
Portanto ao definir qual rede utilizar deve ser levado em conta sua capacidade e
restrições alem de sua funcionalidade, tudo isso deve ser levantando e definido qual se adapta
as necessidades e partir dessa decisão documentar os requisitos e adequar o software a eles.
Um modo de documentá-los é descrito por Sommerville (2004) conforme a Tabela
3.1.
Tabela 3.1 Métricas para especificação de requisitos não funcionais.
Propriedade
Velocidade
Tamanho
Facilidade de Uso
Confiabilidade
Robustez
Portabilidade
Métrica
Transações processadas / Segundo
Kb, Mb, Gb
Tempo de treinamento
Taxa de ocorrencia de falhas
Probabilidade de que dados sejam corrompidos por falhas
Número de sistemas alvo, Área de cobertura, Meio utilizado.
Fonte: Adaptada de Engenharia de Software, Sommerville (2004)
3.3.
Wireless no desenvolvimento e arquitetura de software
As redes wireless são disponíveis para praticamente qualquer tipo de software
desenvolvido que utilize mais de um computador justamente pela sua flexibilidade, essa
flexibilidade permite que diversas arquiteturas sejam moldadas a partir dessa tecnologia.
Diferentemente de uma rede do tipo par-trançado que restringe apenas a redes com pouca
mobilidade ou nenhuma, as redes wireless permitem uma gama enorme de possibilidades e
soluções para o desenvolvimento de software.
67
Sommerville (2004) em relação aos sistemas distribuídos atuais cita que:
Hoje em dia, existem limites bem distintos entre esses tipos de sistema, mas
esses limites vão desaparecer no futuro. À medida que os sistemas de rede
sem fio de alta velocidade se tornarem amplamente disponíveis, será
possível integrar dinamicamente produtos com sistemas embutidos, como
agendas eletrônicas com sistemas mais genéricos.
A utilização de uma rede wireless permite tanto a criação de um software com uma
arquitetura cliente-servidor quanto uma arquitetura de objetos distribuídos:
Cliente-servidor: Para essa arquitetura a utilização da rede pode ser muito intensa se
for um cliente-gordo como estudamos em engenharia e, portanto deve-se pensar em
tecnologias com maior taxa de transmissão. Ao contrario quando se fala em clientemagro podendo ser utilizado uma tecnologia com menor taxa de transmissão. Isso
impacta no custo do projeto já que aparelhos com maior capacidade tendem a ser
mais dispendiosos. Além disso deve-se trabalhar com uma estação-base, geralmente
no servidor de dados ou de aplicações, aumentando ainda mais os custos.
Apesar dos altos custos é uma ótima opção para empresas cujos hosts são notebooks
e que possuam alta mobilidade.
Objetos Distribuídos: apesar de complexa pode ser facilmente adaptada a uma rede
wireless, inclusive seria um adaptação ótima já que as essas rede não depende de
uma estação-base, podendo cada host interligar ao outro e estabelecer uma rede.
68
CONCLUSÕES
Analisando a grande ascensão das redes wireless pode-se definir essa tecnologia
como sendo essencial não somente na definição e desenvolvimento de softwares, como
também em sua utilização. Segundo a empresa MSL Wireless SA fornecedora de serviços de
rede, existe atualmente cerca de dois bilhões de usuários dessa tecnologia e nos últimos cinco
anos a velocidade de equipamentos WLAN para internet foi multiplicada por cem, nota-se,
portanto wireless que é uma tecnologia emergente e como o trabalho apresentou deve ser
estudada dentro do desenvolvimento de um software.
Durante o projeto verificou-se que há inúmeras oportunidades para se criar um
software adequado a rede e de se estabelecer uma rede adequada ao software. Também foi
possível observar que estes são interdependentes é que não há uma maneira de separar o
desenvolvimento de software das redes, apesar de atualmente ter sido um fato ocorrente e
prejudicial ao projeto.
Além disso, dentro das várias pesquisas efetuadas entre os autores e na internet,
podem-se compreender a fundo todas as tecnologias envolvidas com o desenvolvimento de
software e também as redes de computadores, principalmente as redes wireless e seus
aspectos determinantes no desenvolvimento do software conforme o proposto pelo tema.
Como se observa no trabalho a tecnologia wireless por ser um conceito atual e
emergente demanda diversos estudos no campo de desenvolvimento de software, visando esse
ponto sugere-se como pesquisa futura temas como: o estudo de novas arquiteturas de objetos
distribuídos, mensurar a comparação entre wireless e par trançado, comparar arquiteturas
cliente-servidor e objetos distribuídos.
69
Contudo, com em todos esses conceitos estudados e pesquisados, pode-se concluir
que as redes wireless estão presentes no mercado atual proporcionando flexibilidade e
facilidades aos desenvolvedores, projetistas, analistas e engenheiros que podem hoje usufruir
dessa tecnologia para garantir a criação de softwares de qualidade e adequados as
necessidades atuais do mercado.
70
REFERÊNCIAS
IEEE. GetIEEE 802. Disponível em: <http://standards.ieee.org/getieee802/index.html>.
Acesso em: 23 setembro 2007.
MSL Wireless S.A.. A Revolução Wireless. Disponível em:
<http://www.mls.com.br/servicos/wireless.cfm>. Acesso em: 11 setembro 2007.
RIBEIRO, Priscila. ESTUDO DE TECNOLOGIA WIRELESS PARA APLICAÇÕES E
COMPARTILHAMENTO EM REDES. Monografia (Pós-Graduação em Redes de
Computadores e Internet) – Centro Universitário Eurípides de Marília, Fundação de Ensino
Eurípides Soares da Rocha, Marília, 2005.
SOMMERVILLE, Ian. Engenharia de Software. Addison Wesley, 2003.
TANENBAUM, Andrew S.. Redes de Computadores. Tradução da 4ª Edição. Campus,
2003.
TAROUCO, Liane M. R.. Redes de comunicação de dados. FENAME/MEC e
CAPRE/SEPLAN, 1977.
Wikipédia. Software Engineering. Disponível em:
<http://en.wikipedia.org/wiki/Software_engineering>. Acesso em: 28 agosto 2007.
______. Computer Network. Disponível em:
<http://en.wikipedia.org/wiki/Computer_network>. Acesso em: 17 junho 2007.
______. OSI model. Disponível em: <http://en.wikipedia.org/wiki/OSI_model>. Acesso em:
17 junho 2007.
______. TCP/IP model. Disponível em: <http://en.wikipedia.org/wiki/TCP/IP_model>.
Acesso em: 21 junho 2007.
______. IEEE 802. Disponível em: <http://en.wikipedia.org/wiki/IEEE_802> Acesso em: 22
junho 2007.
71
TRECENTI, Bruno César L.
Um estudo um estudo sobre redes wireless no desenvolvimento de
um sistema / Bruno César L. Trecenti; orientador: Ricardo Petruzza do
Prado. Marília, SP: [s.n.], 2007.
Trabalho de Conclusão (Curso de Administração de Empresas com
Habilitação em Análise de Sistemas) – Centro Universitário Eurípides de
Marília – Fundação de Ensino Eurípides Soares da Rocha.
1. Redes
2. Wireless 3. Engenharia de Software
CDD: 38453
Download