Arquitetura Computadores
Arquitetura Computadores
Arquitetura Computadores
com
http://www.candidatoreal.com
Sum
ario
I Fundamentos de Computac
ao 16
1 Arquitetura e Organiza c
ao de Computadores 17
1.1 Conceitos Basicos . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.2 Estrutura e Funcionamento da CPU . . . . . . . . . . . . . . . . 18
1.2.1 Pipelines . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.3 Conjunto de Instrucoes . . . . . . . . . . . . . . . . . . . . . . . . 22
1.4 Unidade de Controle . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.5 Modos de Enderecamento . . . . . . . . . . . . . . . . . . . . . . 25
1.6 Organizac
ao de Mem oria . . . . . . . . . . . . . . . . . . . . . . . 26
1.7 Desempenho do computador . . . . . . . . . . . . . . . . . . . . . 28
1.7.1 Tempo de execuc ao de um programa . . . . . . . . . . . . 29
1.7.2 Desempenho da CPU . . . . . . . . . . . . . . . . . . . . 29
1.7.3 Programas para medir desempenho . . . . . . . . . . . . . 30
1.7.4 Comparando desempenho . . . . . . . . . . . . . . . . . . 30
1.7.5 Lei de Amdahl . . . . . . . . . . . . . . . . . . . . . . . . 31
2 Componentes de um Computador 33
2.1 Principais componentes de Hardware . . . . . . . . . . . . . . . . 34
2.1.1 Discos Rgidos . . . . . . . . . . . . . . . . . . . . . . . . 34
2.1.2 Teclado . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.1.3 Mouse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.1.4 Placa de rede . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.1.5 Impressora . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.1.6 Monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3 Aritmetica Computacional 39
3.1 Numeros Com Sinal e N umeros Sem Sinal . . . . . . . . . . . . . 39
http://www.candidatoreal.com
1
http://www.candidatoreal.com
4 Sistemas Operacionais 44
4.1 Introduc
ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.2 Conceitos B asicos . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.2.1 Multiprogramac ao . . . . . . . . . . . . . . . . . . . . . . 46
4.2.2 Processo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.2.3 Interrupcoes . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.2.4 Threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.3 Escalonamento de Processos . . . . . . . . . . . . . . . . . . . . . 49
4.4 Entrada e Sada . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.4.1 Camadas do subsistema de Entrada e Sada . . . . . . . . 51
4.5 Gerencia de Mem oria . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.6 Sistemas de Arquivos . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.6.1 Conceitos b asicos sobre arquivos . . . . . . . . . . . . . . 54
4.6.2 Implementacao de arquivos . . . . . . . . . . . . . . . . . 56
4.6.3 Cache de Sistema de Arquivos . . . . . . . . . . . . . . . 57
4.6.4 Gerenciamento do espaco livre . . . . . . . . . . . . . . . 58
4.6.5 Diretorios . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.6.6 Implementacao de diret orios . . . . . . . . . . . . . . . . . 61
4.7 Sistemas Operacionais Distribudos . . . . . . . . . . . . . . . . . 61
4.7.1 Estruturac ao de Sistemas Distribudos . . . . . . . . . . . 63
II L
ogica de Programac
ao 83
6 Orientac
ao a Objetos 84
6.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
http://www.candidatoreal.com
2
http://www.candidatoreal.com
10 Metricas 118
10.1 Metricas de processo e aperfeicoamento de processo de software . 118
http://www.candidatoreal.com
3
http://www.candidatoreal.com
11 Testes 127
11.1 Teste de caminho b asico . . . . . . . . . . . . . . . . . . . . . . . 127
11.2 Teste de estrutura de controle . . . . . . . . . . . . . . . . . . . . 129
11.2.1 Teste de condic ao . . . . . . . . . . . . . . . . . . . . . . . 129
11.2.2 Teste de fluxo de dados . . . . . . . . . . . . . . . . . . . 130
11.2.3 Teste de ciclo . . . . . . . . . . . . . . . . . . . . . . . . . 130
11.3 Teste caixa-preta . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
11.3.1 Metodos de teste baseados em grafo . . . . . . . . . . . . 131
11.3.2 Particionamento de equivalencia . . . . . . . . . . . . . . 131
11.3.3 An alise de valor limite . . . . . . . . . . . . . . . . . . . . 132
11.3.4 Teste de comparac ao . . . . . . . . . . . . . . . . . . . . . 132
11.3.5 Teste de matriz ortogonal . . . . . . . . . . . . . . . . . . 132
11.4 Teste de ambientes, arquiteturas e aplicac oes especializadas . . . 133
11.5 Estrategia de teste de software . . . . . . . . . . . . . . . . . . . 134
12 UML 136
12.1 Diagrama de caso de uso . . . . . . . . . . . . . . . . . . . . . . . 136
12.1.1 Ator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
12.1.2 Descric
ao do caso de uso . . . . . . . . . . . . . . . . . . . 137
12.2 Diagrama de classe . . . . . . . . . . . . . . . . . . . . . . . . . . 137
12.2.1 Associacoes de classe . . . . . . . . . . . . . . . . . . . . . 138
12.3 Diagramas de seq uencia . . . . . . . . . . . . . . . . . . . . . . . 140
12.4 Diagramas de colaborac ao . . . . . . . . . . . . . . . . . . . . . . 140
12.5 Diagramas de estado . . . . . . . . . . . . . . . . . . . . . . . . . 141
12.6 Diagramas de atividade . . . . . . . . . . . . . . . . . . . . . . . 143
12.7 Elementos auxiliares . . . . . . . . . . . . . . . . . . . . . . . . . 144
12.8 Diagramas de componente . . . . . . . . . . . . . . . . . . . . . . 144
12.9 Diagramas de distribuic ao . . . . . . . . . . . . . . . . . . . . . . 144
13 Gerencia de Configura c
ao e Mudan cas 145
13.1 As Atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
13.2 Artefatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
13.3 Papeis e Responsabilidades . . . . . . . . . . . . . . . . . . . . . 147
IV Linguagem de Programac
ao Java 155
15 Conceitos B asicos de Java 156
15.1 Pacotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
15.2 Modificadores de Acesso . . . . . . . . . . . . . . . . . . . . . . . 157
4
http://www.candidatoreal.com
15.3 Vari
aveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
15.4 Operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
15.5 Express oes, Sentencas e Blocos . . . . . . . . . . . . . . . . . . . 160
15.6 Comandos de Controle de Fluxo . . . . . . . . . . . . . . . . . . 161
15.7 Classes Aninhadas . . . . . . . . . . . . . . . . . . . . . . . . . . 166
15.8 Tipos Enumerados . . . . . . . . . . . . . . . . . . . . . . . . . . 167
15.9 Anotacoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
15.10Genericos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
15.11Reflex
ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
17 Colec
oes 188
17.1 Interface Collection . . . . . . . . . . . . . . . . . . . . . . . . . . 189
17.2 Interface Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
17.3 Interface List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
17.4 Interface Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
17.5 Interface Queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
5
http://www.candidatoreal.com
21 Acessibilidade 224
21.1 Definic
ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
21.2 Princpios da acessibilidade . . . . . . . . . . . . . . . . . . . . . 224
21.3 Tecnicas de avaliac
ao de acessibilidade . . . . . . . . . . . . . . . 227
22 Padr
oes Web W3C 229
23 XML 233
23.1 O que e XML? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
23.2 Caractersticas do XML . . . . . . . . . . . . . . . . . . . . . . . 234
23.3 Comparac ao entre XML e HTML . . . . . . . . . . . . . . . . . . 234
23.4 Sintaxe basica do XML . . . . . . . . . . . . . . . . . . . . . . . 234
23.5 Conjunto de tags . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
23.6 NameSpaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
23.7 Gram atica de um documento XML . . . . . . . . . . . . . . . . 239
23.8 Tecnologias XML . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
23.9 Benefcios da linguagem XML . . . . . . . . . . . . . . . . . . . . 245
23.10Ferramentas de desenvolvimento . . . . . . . . . . . . . . . . . . 246
24 XSLT 247
24.1 O que e uma folha de estilo? . . . . . . . . . . . . . . . . . . . . 247
24.2 Comparac ao entre o CSS e XSL . . . . . . . . . . . . . . . . . . . 247
24.3 O que e o XSL? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
24.4 O que e o XSLT? . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
24.5 Caractersticas do XSLT . . . . . . . . . . . . . . . . . . . . . . . 249
24.6 Declarando um documento XSL . . . . . . . . . . . . . . . . . . . 249
24.7 Elemento <xsl:template> . . . . . . . . . . . . . . . . . . . . . . 250
http://www.candidatoreal.com
6
http://www.candidatoreal.com
VI Redes de Comunicac
ao 270
27 Tecnicas B asicas de Comunica c
ao 271
27.1 Base Te orica da Comunicac ao de Dados . . . . . . . . . . . . . . 271
27.2 Taxa M axima de Dados em um Canal . . . . . . . . . . . . . . . 272
27.3 Sinais Digitais Binarios . . . . . . . . . . . . . . . . . . . . . . . 272
27.4 Transmiss ao em Banda Base . . . . . . . . . . . . . . . . . . . . . 273
27.5 Classificac
ao dos Sinais . . . . . . . . . . . . . . . . . . . . . . . . 273
27.6 Tecnicas de Codificac
ao de Linha . . . . . . . . . . . . . . . . . . 274
27.6.1 Codificacao NRZ . . . . . . . . . . . . . . . . . . . . . . . 274
27.6.2 Codificacao RZ . . . . . . . . . . . . . . . . . . . . . . . . 275
27.6.3 Codificacao AMI (Alternate Mark Invertion) . . . . . . . 275
27.6.4 Codificacao HDB-3 (High Density Bipolar with 3 Zero
Maximum Tolerance) . . . . . . . . . . . . . . . . . . . . 275
27.6.5 Codificacao Manchester . . . . . . . . . . . . . . . . . . . 276
27.7 Modulac ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
27.7.1 Modulac ao de Onda Contnua . . . . . . . . . . . . . . . . 277
27.7.2 Modulac ao de Pulsos . . . . . . . . . . . . . . . . . . . . . 279
27.8 Tecnicas de Multiplexac ao . . . . . . . . . . . . . . . . . . . . . . 280
27.8.1 FDM - Frequency Division Multiplexing . . . . . . . . . . 281
27.8.2 TDM - Time Division Multiplexing . . . . . . . . . . . . . 281
27.8.3 OFDM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
27.8.4 WDM -Wavelength Division Multiplexing . . . . . . . . . 282
27.9 Protocolos de Acesso M ultiplo . . . . . . . . . . . . . . . . . . . . 283
http://www.candidatoreal.com
7
http://www.candidatoreal.com
31 O Modelo de Refer
encia OSI 314
32 Roteamento 316
32.1 Link State e Distance Vector . . . . . . . . . . . . . . . . . . . . 317
32.1.1 Vetor de Dist
ancias vs. Estado do Link . . . . . . . . . . 319
32.2 Protocolos de Roteamento . . . . . . . . . . . . . . . . . . . . . . 320
32.2.1 RIP - Routing Information Protocol . . . . . . . . . . . . 320
32.2.2 OSPF - Open Shortest Path First . . . . . . . . . . . . . 320
32.2.3 IGRP e EIGRP . . . . . . . . . . . . . . . . . . . . . . . . 321
8
http://www.candidatoreal.com
42 Camada de Aplica c
ao 364
42.1 Proxy Cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
VII Ger
encia de Redes 366
43 O protocolo SNMP 367
http://www.candidatoreal.com
VIII Seguran
ca da Informac
ao 370
44 Polticas de Seguran ca de Informa c
ao 371
44.1 Polticas de Seguranca . . . . . . . . . . . . . . . . . . . . . . . . 371
44.2 Projeto de Seguranca . . . . . . . . . . . . . . . . . . . . . . . . . 372
44.3 Plano de Seguranca . . . . . . . . . . . . . . . . . . . . . . . . . . 372
44.4 Normas de Seguranca . . . . . . . . . . . . . . . . . . . . . . . . 373
44.4.1 ISO/IEC 17799 . . . . . . . . . . . . . . . . . . . . . . . . 373
9
http://www.candidatoreal.com
10
http://www.candidatoreal.com
11
http://www.candidatoreal.com
58 Normaliza c
ao 473
58.1 Aspectos desej
aveis em um bom projeto . . . . . . . . . . . . . . 473
http://www.candidatoreal.com
59 Transforma
cao do Modelo Conceitual 475
12
http://www.candidatoreal.com
XII Administra
cao de Bancos de Dados Relacionais 489
62 Ger
encia de Transa
coes 490
63 Controle de Concorr
encia 492
64 Ger
encia de Desempenho 494
66 Administra c
ao de Bancos de Dados SQL Server 506
http://www.candidatoreal.com
13
http://www.candidatoreal.com
XV Ger
encia de Projetos segundo PMBOK 525
69 Gerenciamento de Escopo 526
69.1 WBS e Definic
ao do Escopo . . . . . . . . . . . . . . . . . . . . . 526
14
http://www.candidatoreal.com
75 Gerenciamento da Comunica c
ao 547
75.1 Um mais sobre Planejamento da Comunicac
ao . . . . . . . . . . 547
http://www.candidatoreal.com
77 Gerenciamento da Integra c
ao 550
77.1 Ferramentas de Apoio `
a Integrac
ao . . . . . . . . . . . . . . . . . 550
15
http://www.candidatoreal.com
Parte I
Fundamentos de
Computa
c
ao
http://www.candidatoreal.com
16
http://www.candidatoreal.com
Captulo 1
Arquitetura e Organiza
cao
de Computadores
1.1 Conceitos B
asicos
Dois conceitos fundamentais no estudo dos sistemas de computac ao sao o de
Arquitetura e Organizacao de computadores. O termo arquitetura refere-se aos
atributos do ponto de vista do programador, e portanto, tem impacto direto
sobre sobre a execuc
ao l
ogica de um programa. O termo organizacao, refere-se
as unidades operacionais e suas interconex
` oes. Desta forma, uma mesma ar-
quitetura pode ser implementadas por meio de diferentes organizac
oes.
O ciclo de execuc
ao de cada uma das instruc oes de um programa e divi-
dido nos seguintes estados: (i)Calculo do Endereco de Instruc ao; (ii)Busca da
Instruc
ao (Instruction Fetch); (iii) Decodificac
ao da Instruc
ao; (iv)Calculo do
Endereco do Operando; (v)Busca do Operando (Operand Fetch); (vi)Execuc ao
http://www.candidatoreal.com
A estrutura b
asica de um computador e composta pelos seguintes compo-
nentes:
17
http://www.candidatoreal.com
(iii)Dispositivos de E/S;
(iv)Sistemas de Interconex
ao.
Esses componentes tambem possuem suas subdivis oes. A CPU por exemplo
se subdivide em: Unidade de Controle, Unidade L ogica e Aritmetica (ALU),
Registradores e por fim as Interconexoes da CPU. Cada um desses componentes
er
a melhor descrito posteriormente. Para interconectar dois ou mais dispositivos
em um sistema s ao utilizados os chamados barramentos. Os barramentos s ao
compostos por linhas que podem ser de Dados, Endereco ou Controle. Os
barramentos de controle podem ser utilizados por exemplo para controlar direito
de leitura ou escrita em mem oria ou E/S, interrupc
oes, confirmac
oes, rel
ogio
e reset. O projeto dos barramentos que comp oe um sistema s ao de grande
importancia no desempenho do sistema. Quest oes importantes no projeto de
barramentos sao:
(iv)Largura - n
umero de linhas;
18
http://www.candidatoreal.com
No ciclo de interrupc
ao, o conteudo do registrador PC dever ser salvo, para
que mais tarde a CPU possa retornar sua atividade normal depois de processar
a interrupc
ao. O conte udo do PC e transferido para MBR. A endereco de
mem oria reservado para guardar o valor de PC (ex: topo da pilha) e carregado
para MAR, e ent ao a unidade de controle solicita uma escrita na mem oria. Por
fim o PC e carregado com o endereco da rotina de interrupc ao, para que o no
proximo ciclo de instruc
ao seja feita a busca da instruc
ao apropriada. A figura
1.4 mostra o fluxo de dados do ciclo de interrupc ao.
19
http://www.candidatoreal.com
1.2.1 Pipelines
Como pudemos ver, um ciclo de instruc ao pode subdividido em etapas menores.
Uma divis ao comum e a baseada nos ciclos de busca, indireto, execucao e inter-
rupc
ao. A ideia da tecnica de pipeline e trabalhar as diversas etapas do ciclo
de instruc
ao de forma paralela, e n ao de forma serial, de forma aumentar o
20
http://www.candidatoreal.com
desempenho da CPU.
(2)DI - Decodificac
ao da Instruc
ao;
(3)CO - Calculo dos Enderecos dos Operandos;
Essa subdivisao busca fazer com que os tempos gastos em cada um dos 6
est
agios seja parecido. Se os 6 est
agios pudessem ser executados em paralelo, o
desempenho seria aproximadamente 6 vezes maior.
No entanto, podem existir conflitos de acesso ` a mem oria por parte dos
estagios e nem todas as instrucoes possuem os seis est
agios. Somam-se `a esses
dois problemas, a existencia de instrucoes de desvios, principais inimigas da
tecnica de pipeline. Para lidar com os problemas introduzidos pelas instrucoes
de desvio sao utilizadas tecnicas como:
M
ultiplos Fluxos (duplicac
ao de est
agios iniciais);
http://www.candidatoreal.com
Mem
oria de Laco de Repetic
ao (loop buffer );
Previs
ao de Desvio baseadas no opcode;
Previs
ao de Desvio baseadas em hist
orico (BTB - Branch Target Buffer,
tambem conhecida como BHT - Branch History Table).
21
http://www.candidatoreal.com
s
ao:
(i)C
odigo da operac
ao (opcode): especifica a operac
ao a ser efetuada;
(ii)Referencia `
a Operando Fonte: indica as entradas para a operac
ao;
(iii)Referencia ao operando Destino: A operac
ao pode produzir um resul-
tado;
(iv)Endereco da pr
oxima instruc
ao: Pode ser indicado implicitamente (ex:
registrador PC).
22
http://www.candidatoreal.com
As instruc
oes podem ser classificadas em:
(iv)Controle: instruc
oes de teste e desvio.
Os tipos de operac
oes mais comuns s
ao:
(iii)L
ogicas: and,or,shl/shr;
(iv)Convers
ao de Tipos: jmp,call,loop,int/into;
23
http://www.candidatoreal.com
Os quatro registradores b
asicos da unidade de controle s
ao:
O ciclo de busca ocorre no incio de cada ciclo de instruc ao, fazendo com
que a instruc
ao seja obtida na mem oria no endereco indicado pelo registrador
PC, e armazenada no registrador IR. Uma vez completada essa etapa, pode ser
necess
ario que se busquem operandos para a instruc ao. Isso e realizado no ciclo
de indireto. Ap os o termino do ciclo de execuc ao, e feita uma checagem para
determinar se ocorreu alguma interrupc ao, e neste caso o conte udo de PC e
salvo em mem oria e PC e carregado com um endereco da rotina de interrupc ao
apropriada. Os ciclos de busca, indireto e de interrupc ao envolvem um n umero
pequeno e fixo de microoperac oes. Isso nao ocorre nos ciclos de execucao. Em
uma m aquina com N c odigos de instruc
ao podem existir N diferentes seq uencias
de microoperacoes para o ciclo de execucao.
Todas as microoperac
oes caem em uma das seguintes categorias:
mento);
(iii)Transferencia de dados de interface externa para registrador;
(iv)Execuc
ao de operac
oes l
ogicas e aritmeticas, usando registradores como
entrada e sada.
24
http://www.candidatoreal.com
Indireto: o campo de endereco aponta para uma posicao de mem oria que
contem o endereco de mem oria do operando. Sua principal desvantagem
e a necessidade de dois acessos ` a memoria. A vantagem em relac ao ao
modo de enderecamento direto e o aumento do espaco de enderecamento,
que passa a ser igual 2n onde n e o tamanho da palavra;
25
http://www.candidatoreal.com
1.6 Organizac
ao de Mem
oria
Um sistema de computador tpico e equipado com uma hierarquia de subsis-
temas de mem oria, algumas internas (diretamente acessveis pelo processador,
como registradores, cache e mem oria principal) e outras externas (acessveis
pelo processador por meio de um m odulo de E/S, como disco e cdrom). As
caractersticas fundamentais de um sistema de mem oria s
ao:
1. Localizac
ao - processador, interna (principal), externa (secund
aria);
2. Capacidade - tamanho da palavra e n
umero da palavra;
3. Unidade de Transferencia - palavra, bloco;
4. Metodo de Acesso - seq
uencial, direto, aleat
orio, associativo;
5. Desempenho - tempo de acesso, tempo de ciclo e taxa de transferencia;
6. Tecnologia - semicondutores, magnetica,
optica, magneto-
optico;
http://www.candidatoreal.com
Quanto ao metodo de acesso das mem orias internas, vale a pena destacar os
acessos aleat
orio e associativo. No acesso aleat orio, cada unidade enderec avel
possui um mecanismo de enderecamento u nico e fisicamente conectado a ela. E
o metodo utilizado na mem oria principal. O esquema associativo consiste em
um tipo de mem oria de acesso aleat
orio que possibilita comparar simultanea-
mente um certo n umero de bits de uma palavra com todas palavras da mem oria
(totalmente associativo) ou com um conjunto de palavras de mem oria (associa-
tivo por conjunto). O metodo associativo e empregado pelas mem orias cache.
26
http://www.candidatoreal.com
As restric
oes de um projeto de mem
oria podem ser resumidos por 3 quest oes:
Capacidade, Velocidade e Custo. Neste cen ario, valem as seguintes relac
oes:
A organizac
ao hierarquica dos sistemas de mem oria visa lidar com o dilema
imposto pelas relac
oes apresentadas. A hierarquia e elaborada de forma que as
a medida que nela descemos as seguintes relacoes s
ao tambem v alidas:
A Mem oria Expandida emprega uma tecnologia mais lenta que a mem orias
principais. Ela funciona como um ramo lateral a mem oria principal, n
ao se
http://www.candidatoreal.com
A utilizac
ao de mem orias cache tem por objetivo proporcionar uma veloci-
dade de acesso pr oxima a velocidade de acesso aos registradores, no entanto
oferecendo uma capacidade maior do que o conjunto de registradores, e custo
n
ao muito superior ao da mem oria principal. Os principais elementos de projeto
de mem orias cache sao:
27
http://www.candidatoreal.com
ii Func
ao de Mapeamento - direto, associativo, associativo por conjuntos;
iii Algoritmo de Substituic
ao - LRU, FIFO, LFU, Aleat
orio;
v Tamanho da Linha;
vi N
umero de Mem
orias Cache - um ou dois nveis, unificada/separada.
O terceiro elemento e o n
umero de mem orias cache do sistema. Atualmente,
a organizacao mais comuns e baseada em 2 nveis, um interno ao processador
(L1) e outro externo (L2). Originalmente, a maioria dos projetos de cache
inclui uma u nica memoria cache, que armazenava tanto instruc oes como da-
dos. Recentemente, tornou-se comum a utilizac ao de mem orias separadas para
http://www.candidatoreal.com
instruc
oes e dados. Em processadores modernos que se valem de tecnicas de
busca antecipada de instrucao (Pipeline), tecnicas de Cache Separadas s ao mais
eficientes que as de Cache Unificada.
28
http://www.candidatoreal.com
29
http://www.candidatoreal.com
Programas reais;
N
ucleos ou kernels (pedacos de programas reais);
Toy Benchmarks (programas com 10 a 100 linhas de c
odigo que produzem
um resultado conhecido a priori);
Benchmarks sinteticos (similar em filosofia aos n
ucleos, tentam casar a
freq
uencia media de operac
oes de um grande conjunto de programas).
30
http://www.candidatoreal.com
Computador A Computador B
Programa 1 (s) 1 10
Programa 2 (s) 1000 100
Total (s) 1001 110
1
Media Aritmetica = Tempo (i,n) = (1.4)
n
n
Media Harm
onica = Taxa (i,n) = Pn 1 (1.5)
i=1 T axai
v
u n
uY
Media Geometrica = Tempo Normalizado (i,n) = t
n
T normalizadoi (1.6)
i=1
Alem das media, existem ainda outras medidas de desempenho. Uma das
alternativas e a metrica MIPS (million instruction per second), que e dada por
um das seguintes express oes:
N
umero de instrucoes
MIPS =
Tempo de execucao x 106
Freq
uencia de Clock
=
CPI 106
Existem problemas com o uso da metrica MIPS. Ela especifica a taxa de
execucao de instruc
oes, mas n
ao considera a capacidade de executar mais ou
menos trabalho. Portanto, n ao podemos comparar m aquinas com conjuntos de
instruc
oes diferentes. Outro problema e que os resultados obtidos variam en-
tre programas no mesmo computador, o que impede que determinada m aquina
tenha um MIPS caracterstico.
MFLOPS = (1.7)
ao x 106
Tempo de execuc
Uma operac ao de ponto flutuante pode ser uma operac
ao de adic
ao, sub-
trac
ao, multiplicac
ao ou divis
ao aplicada a operandos expressos em precisao
simples ou dupla.
31
http://www.candidatoreal.com
32
http://www.candidatoreal.com
Captulo 2
Componentes de um
Computador
O computador est
a organizado em dois componentes que s
ao:
33
http://www.candidatoreal.com
Os slots s
ao respons
aveis por ligar os perifericos aos barramentos e suas
velocidades e largura de banda s
ao correspondentes as dos seus respectivos bar-
ramentos. Na placa-m ae s
ao encontrados varios slots para encaixe de placas
(vdeo, som, rede, modem, etc.). Alguns exemplos de slots: ISA, PCI, AGP,
PCI Express, etc.
34
http://www.candidatoreal.com
A descric
ao de cada um dos termos da soma e a seguinte:
35
http://www.candidatoreal.com
2.1.2 Teclado
O teclado e o principal periferico de entrada de dados utilizado na integrac
ao
direta de usu
arios com o computador. O princpio de operacao do teclado e bas-
tante simples: gerar um smbolo para cada tecla pressionada. Mecanicamente,
um teclado pode ser visto como uma matriz de i linhas e j colunas as quais
entram em contato quando uma tecla e pressionada. A cada elemento i,j da
matriz correspondente um caractere.
36
http://www.candidatoreal.com
2.1.3 Mouse
O mouse e um periferico de entrada que historicamente se juntou ao teclado
como auxiliar no processo de entrada de dados, especialmente em programas
com interface grafica. O mouse tem como func ao movimentar o cursor (apon-
tador) pela tela do computador. O formato mais comum do cursor e uma seta,
contudo, existem opcoes no sistema operacional e softwares que permitem per-
sonalizarmos o cursor do mouse.
Existem modelos com um, dois, tres ou mais bot oes cuja funcionalidade
depende do ambiente de trabalho e do programa que est
a a ser utilizado. Clara-
mente, o bot
ao esquerdo e o mais utilizado.
O mouse original possua dois discos que rolavam nos eixos X e Y e tocavam
diretamente na superfcie. O modelo mais conhecido de rato e provavelmente o
mouse baseado em uma esfera, que roda livremente, mas que na pr atica gira dois
discos que ficam em seu interior. O movimento dos discos pode ser detectado
tanto mecanicamente quanto por meio otico.
moveis. De modo muito simplificado, eles tiram fotografias que sao comparadas
e que permitem deduzir o movimento que foi feito.
37
http://www.candidatoreal.com
2.1.5 Impressora
As impressoras sao dispositivos de sada que tem por finalidade imprimir em
papel ou filme pl
astico os resultados do processamento. Da mesma forma que
os monitores, a imagem impressa e resultado de muitos pontos impressos indi-
vidualmente que no conjunto formam o texto ou a imagem desejados. Tambem
de forma semelhante aos monitores, as impressoras evoluram a partir de dis-
positivos que imprimiam apenas caracteres em uma u nica cor para as modernas
impressoras capazes de reproduzir imagens sofisticadas, de alta resoluc
ao gr
afica,
em milhares de cores. As impressoras s ao classificadas em:
primir gr
aficos. Na impress ao de textos, os caracteres s
ao impressos como
pontos, que em determinada configurac ao formam a imagem gr afica do
caractere a ser impresso. Quando se utiliza uma impressora gr afica para
imprimir texto, existe a possibilidade de utilizar um grande n umero de
diferentes fontes graficas, definidas por software.
2.1.6 Monitor
38
http://www.candidatoreal.com
Captulo 3
Aritm
etica Computacional
3.1 N
umeros Com Sinal e N
umeros Sem Sinal
Existe uma grande variedade de opc
oes para representar os n
umeros inteiros
com ou sem sinal. Apenas quatro se destacam: sinal e amplitude/magnitude
(S + M ), complemento de 1, complemento de 2 e notac
ao em excesso (biased ).
3.1.2 Complemento de 1
Neste sistema de representac ao o bit mais a esquerda representa o sinal: 0 (zero)
para indicar o valor positivo e 1 (um) para indicar o valor negativo. Para os
n
umeros positivos, os n-1 bits representam o m odulo. O simetrico de um n
umero
positivo e obtido pelo complemento de todos os seus dgitos (trocando 0 por 1
e vice-versa) incluindo o bit de sinal. A amplitude ou faixa de representac ao
para n bits e [(2n1 1); 2n1 1]. Por exemplo, para n = 8 a faixa de
representacao e [127; 127]. Neste sistema o zero possui duas representac oes,
http://www.candidatoreal.com
3.1.3 Complemento de 2
Neste sistema de representac
ao o bit mais a esquerda representa o sinal: 0 (zero)
para indicar o valor positivo e 1 (um) para indicar o valor negativo. Para os
numeros positivos, os bits restantes representam o m odulo. A amplitude ou
ao para n bits e [(2n1 ); 2n1 1]. Por exemplo, para
faixa de representac
n=8 a faixa de representac
ao e [128; 127]. Este sistema possui representac ao
assimetrica, o n
umero de representacoes negativas e maior do que a positiva.
Este sistema o zero possui uma u nica representac
ao, por exemplo, n=4 (0000).
39
http://www.candidatoreal.com
3.1.4 Nota
cao em excesso
Neste sistema de representac ao o bit mais a esquerda representa o sinal: 1
(um) para indicar o valor positivo e 0 (zero) para indicar o valor negativo. A
amplitude ou faixa de representac ao para n bits e [(2n1 ); 2n1 1]. Por
exemplo, para n=8 a faixa de representac ao e [128; 127]. Neste sistema cada
umero inteiro corresponde ao valor desejado acrescido de um excesso de 2n1 ,
n
onde n pode ser 4, 5, 7, 8, 16, etc.
Este sistema tem uma vantagem em relac ao aos outros sistemas apresenta-
dos anteriormente: o valor em bin ario com todos os bits a 0 (zero) representa o
menor valor inteiro, que este tenha sinal ou n ao, e o mesmo se aplica ao maior
valor em binario, i.e., com todos os bits 1: representa o maior inteiro, com ou
sem sinal.
Bin
ario (4 bits) S+M C1 C2 Excesso de 8 (n=4)
0000 +0 +0 0 -8 (0 - 8)
0001 1 1 1 -7 (1 - 8)
0010 2 2 2 -6 (2 - 8)
0011 3 3 3 -5 (3 - 8)
0100 4 4 4 -4 (4 - 8)
0101 5 5 5 -3 (5 - 8)
0110 6 6 6 -2 (6 - 8)
0111 7 7 7 -1 (7 - 8)
1000 -0 -7 -8 0 (8 - 8)
1001 -1 -6 -7 1 (9 - 8)
http://www.candidatoreal.com
1010 -2 -5 -6 2 (10 - 8)
1011 -3 -4 -5 3 (11 - 8)
1100 -4 -3 -4 4 (12 - 8)
1101 -5 -2 -3 5 (13 - 8)
1110 -6 -1 -2 6 (14 - 8)
1111 -7 -0 -1 7 (15 - 8)
40
http://www.candidatoreal.com
3.2 Adic
ao e Subtra
cao
Numa soma os bits s ao somados um a um da direita para a esquerda, com os
carries sendo passados para o pr oximo bit `a esquerda. A operacao de sub-
trac
ao usa a adic
ao. O subtraendo e simplesmente negado antes de ser somado
ao minuendo. Lembre-se que a m aquina trata com numeros representados em
complemento a 2. O exemplo a seguir mostra as operac oes de soma (6 + 7) e
subtrac
ao (7 6) (complemento 2) bit a bit entre dois n
umeros representados
com 4 dgitos binarios.
7 = 0111
6 = 0110
13 = 1101 (soma)
1 = 0001 (subtrac
ao)
3.3 Operac
oes L
ogicas
Os computadores manipulam palavras, mas e muito u til, tambem, manipular
campos de bits dentro de uma palavra ou mesmo bits individuais. O exame
de caracteres individuais (8 bits) dentro de uma palavra e um bom exemplo
dessa necessidade. Assim, as arquiteturas de conjuntos de instruc oes incluem
instruc
oes para manipulacao de bits.
http://www.candidatoreal.com
41
http://www.candidatoreal.com
3.4 Construc
ao de uma Unidade L
ogica Aritm
etica
A ALU (Arithmetic and Logic Control) e a parte central do hardware de uma
CPU. Ela e respons
avel por realizar operac
oes aritmeticas e l
ogicas b
asicas, e
pode ser implementada com quatro componentes: AND, OR, INVERTER e
MULTIPLEXOR (3.4).
Entrada Sada
a b carry in soma carry out
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
As sadas soma e carry out s
ao:
42
http://www.candidatoreal.com
Somar os n
umeros;
Normalizar o resultado;
Arredondar o resultado para o n
umero m
aximo de casas permitidas.
Um hardware para somar n umeros de ponto flutuante tem que fazer as mes-
mas operac
oes com numeros binarios. Vejamos um exemplo:
Exemplo: Somar os n umeros 0.5 e -0.4375 em bin
ario e apresente com 4 bits
de precis
ao; trunque o resultado na fase de arredondamento.
4. Arredondamento
http://www.candidatoreal.com
O n
umero final est
a OK.
43
http://www.candidatoreal.com
Captulo 4
Sistemas Operacionais
4.1 Introduc
ao
O sistema operacional e uma camada de software colocada entre o hardware
e os programas que executam tarefas para os usu arios. O sistema operacional
e responsavel pelo o acesso aos perifericos, ou seja, sempre que um programa
necessita de algum tipo de operac
ao de entrada e sada, ele solicita ao sistema
operacional.
44
http://www.candidatoreal.com
pela interface por meio da qual o usu ario acessa os servicos do sistema opera-
cional. Essa interface e formada pelas chamadas de sistema e pelos programas
de sistema.
N
umero de usu
arios
Monousu arios: projetados para suportar um u
nico usu
ario. Exemp-
los de desse tipo de sistema s
ao o MS DOS, Windows 3x, Windows
9x, etc;
Multiusu
arios: projetados para suportar v
arias sess
oes de usu
arios.
Exemplos desse sistema s
ao Windows NT, UNIX, etc;
N
umero de tarefas
45
http://www.candidatoreal.com
Sistemas Mainframes;
Sistemas desktop;
Sistemas distribudos;
Sistemas handheld;
Sistemas paralelos.
4.2 Conceitos B
asicos
4.2.1 Multiprogramac
ao
A multiprogramac ao torna mais eficiente o aproveitamento dos recursos do com-
putador. Isso e conseguido por meio da execuc ao simult
anea de varios progra-
mas. Em um sistema multiprogramado diversos programas s ao mantidos na
memoria ao mesmo tempo.
4.2.2 Processo
Um processo pode ser definido como um programa em execuc ao. O processo e
considerado um elemento ativo, pois altera o seu estado `
a medida que executa
um programa. E o processo que realiza as chamadas de sistema.
No estado New um novo processo e criado. Apos ser criado, o processo entra
em um ciclo de processador. Ele precisa do processador para executar, mas o
processador podera estar ocupado com outro processo, ele dever a esperar. Di-
versos processos podem estar no nesse mesmo estado. Nesse caso, e necess ario
manter uma fila com os processos aptos a ganhar o processador. Essa fila e
chamada de fila de aptos (ready queue). No estado New, o sistema operacional
46
http://www.candidatoreal.com
O processo fica no estado Blocked ate ser atendido. Com isso, o processador
fica livre. O sistema operacional seleciona outro do processo da fila de aptos
para receber o processador. O estado Exit indica que o processo terminou sua
execucao ou foi abortado.
4.2.3 Interrup
coes
O mecanismo de interrupc ao constitui a base de operac
ao de um sistema mul-
tiprogramac ao. O mecanismo de interrupc ao permite que o controlador de
periferico chame a atenc ao do processador. A func ao basica do controlador
de periferico e conectar o dispositivo em questao ao processador.
47
http://www.candidatoreal.com
Interrupc
oes de software, tambem chamadas de traps, s ao causadas pela ex-
ecuc
ao de uma instruc ao especfica para isso. O efeito e semelhante a uma
chamada de sub-rotina, pois o pr oprio programa interrompido e quem gera a
interrupc
ao. O maior uso para interrupc oes de software e a implementac ao
de chamadas de sistemas, por meio das quais os programas solicitam servicos
ao sistema operacional. N ao e possvel desabilitar as interrupc
oes de software,
mesmo porque n ao e necess
ario.
4.2.4 Threads
Uma thread nada mais e que um fluxo de execuc
ao. Na maior parte das vezes,
cada processo e formado por um conjunto de recursos mais uma u
nica thread.
48
http://www.candidatoreal.com
Filas de Prioridades s
ao a base das polticas de escalonamento nos sistemas
operacionais modernos. A cada processo e associada uma prioridade. O pro-
cesso de maior prioridade e quem toma a posse do processador no momento
oportuno. Uma variante dos algoritmos de prioridades pura, s ao os os algo-
ritmos de Prioridade com Preempc ao. Neste esquema, um processo da fila de
prontos que tenha prioridade maior que o processo em execuc ao pode tomar
49
http://www.candidatoreal.com
O escalonador respons
avel por determinar qual processo receber
a o direito de
executar e chamado Escalonador de Curto Prazo. Existem tambem os escalon-
adores de Longo e Medio Prazo. O escalonador de Medio Prazo e parte por
exemplo do processo swapper e esta intimamente ligado a gerencia de mem oria,
enquanto o escalonador de longo prazo determina quando um processo novo
e de fato admitido no sistema para disputa dos recursos. E o escalonador de
longo prazo quem determina o grau de multiprogramac ao do sistema e tambem
e conhecido como Job Scheduller.
Interrupc
oes: Os perifericos chamam a atenc ao do processador atraves
de um sinal de hardware. Cabe ao processador identificar, priorizar e
mascarar as interrupc
oes geradas pelos perifericos;
Acesso Direto ` a Mem oria (DMA): Em situac oes em que o volume de dados
e muito grande, utiliza-se esta tecnica para permitir que perifericos tenham
acesso direto a mem oria sem a necessidade da intermediac ao por parte do
processador.
O localizac
ao dos perifericos do ponto de vista da arquitetura do sistema
pode ser feita de basicamente de duas maneiras: Mapeamento em Mem oria e
50
http://www.candidatoreal.com
51
http://www.candidatoreal.com
4.5 Ger
encia de Mem
oria
Umas das funcoes fundamentais de um sistema operacional moderno e realizar a
gerencia da mem oria principal do computador de forma permitir que os diversos
processos executem de forma eficiente e protegida. Quando o assunto e gerencia
de mem oria, dois conceitos b
asicos s
ao os de mem oria l
ogica e mem
oria fsica. Os
programas fazem referencia ` a enderecos l
ogicos que no momento da execuc ao s
ao
traduzidos em um endereco real chamado endereco fsico. As primeiras tecnicas
de traduc
ao de enderecos eram baseadas em registradores de base e limites.
52
http://www.candidatoreal.com
Na tecnica de paginac
ao pura, o processo n ao precisa mais ocupar um tre-
cho contguo de mem oria, no entanto, ainda e necessario que todas as pagina
de um processo estejam carregadas na mem oria no momento da execuc ao. Uma
evoluc
ao do esquema de paginacao e a tecnica de Mem oria Virtual. Mem oria
Virtual consiste em um esquema de paginac ao sob demanda, no qual somente
as p
aginas necessarias para a execuc
ao de um processo s ao carregadas para a
http://www.candidatoreal.com
mem oria.
53
http://www.candidatoreal.com
1. Alocac
ao de uma p
agina fsica;
2. Localizac
ao da P
agina Fsica no Disco;
3. Leitura da P
agina no Disco;
4. Atualizac
ao da Tabela de P
aginas;
FCFS: Escolhe a p
agina que est
a a mais tempo na mem
oria;
Otimo: Escolhe a p
agina que vai ser acessada mais remotamente no futuro
(n
ao e implementavel);
O Trashing e a situac
ao em que um processo possui poucas p
aginas fsicas
e o tempo gasto em page-faults e muito alto, predominando no tempo total de
processamento. Uma forma de solucionar este problema e utilizar a tecnica de
swap para permitir que o processo possa executar de forma satisfat
oria.
4.6.1 Conceitos b
asicos sobre arquivos
Um arquivo e um recipiente no qual dados s ao armazenados. Em geral, cada
arquivo contem um conjunto de dados que possui algum significado pr atico para
o usuario ou para o sistema. Um arquivo pode conter um programa execut avel,
um m odulo de um programa fonte, um texto, uma figura, etc. Cada arquivo e
identificado por um nome, o qual permite que o usu ario faca referencias a ele.
Alem do nome, cada arquivo possui uma serie de outros atributos que s ao man-
tidos pelo sistema operacional como tipo de conte udo, tamanho, data e hora
do ultimo acesso, data e hora da u
ltima alterac
ao, lista de usu arios que podem
54
http://www.candidatoreal.com
adas a partir de 0 (ou a partir de 1 em alguns sistemas), sendo que cada posic
ao
corresponde a um byte.
55
http://www.candidatoreal.com
4.6.2 Implementa
c
ao de arquivos
A forma basica de implementar arquivos e criar, para cada arquivo no sistema,
um descritor de arquivo. O descritor de arquivo e um registro no qual s ao
mantidas as informac oes a respeito do arquivo. Essas informac oes incluem os
seus atributos, alem de outros dados que nao s
ao visveis aos usu
arios, mas s
ao
necess
arios para o que o sistema operacional implemente as operac oes sobre os
arquivos.
56
http://www.candidatoreal.com
Uma soluc ao tpica e criar, para cada processo, uma Tabela de Arquivos
Abertos por Processo (TAAP). Cada entrada ocupada na TAAP corresponde a
um arquivo aberto pelo processo correspondente. No mnimo, a TAAP contem
em cada entrada as seguintes informac oes: posic
ao corrente no arquivo, tipo de
acesso (leitura ou leitura e escrita) e apontador para a entrada correspondente
na TDAA. A figura 4.4 mostra as tabelas TDAA e TAAP. Toda TDAA como
as TAAP devem ficar na mem oria do sistema operacional, fora do acesso dos
processos de usuario.
sas func
oes s
ao implementadas baseando-se em tres formas b asicas de alocac
ao
de arquivos: alocacao com areas contguas, alocacao encadeada e a alocac ao
indexada.
57
http://www.candidatoreal.com
func
ao, chamada de sistema ou operac
ao sobre arquivos. Entretanto, caches rep-
resentam um grande aumento no desempenho de qualquer sistema de arquivos,
pois o uso do disco tente a ser intenso em sistemas operacionais de prop osito
gerais. O objetivo do cache e manter na mem oria principal uma certa quanti-
dade de blocos do disco. Dessa forma, se algum bloco for requisitado para leitura
ou escrita, ele ser
a encontrado na memoria principal, evitando o acesso ao disco.
A forma basica de operacao e bem simples. Toda vez que um bloco de disco
e necess
ario para leitura e/ou escrita, a cache e pesquisada. Se o bloco estiver
na cache, essa c
opia e usada. Se o bloco nao estiver na cache, ele e lido do disco,
colocado na cache e ent ao utilizado.
Cada bit presente no mapa representa um bloco fsico do disco. Os bits sao
considerados numerados da direita para esquerda, isto e, o bit menos significa-
tivo do primeiro byte e o bit n
umero zero. Bit ligado indica bloco ocupado,
58
http://www.candidatoreal.com
Para alocar mais um bloco fsico para um arquivo, basta percorrer o mapa
de bits ate encontrar um bit zero. O bit e ent ao ligado para indicar que o
respectivo bloco agora esta ocupado. Quando um arquivo e destrudo e seus
blocos liberados, basta desligar os bits correspondentes. O mapa de bits deve
ser mantido na mem oria principal para que a busca seja r
apida.
O espaco livre em disco tambem pode ser gerenciado por meio de uma lista
contendo os n umeros de todos os blocos fsicos livres (Lista de Blocos Livres).
Como essa lista e grande no caso de um disco quase vazio, ela deve ser mantida
no pr oprio disco. Para acelerar o processo de alocac ao e liberac
ao de blocos
fsicos, alguns blocos da lista sao copiados para a mem oria principal. Logo, so-
mente ser a necessario acessar o disco quando todos os enderecos de blocos livres
copiados para a mem oria principal tiverem sido alocados. Ou ainda, quando
remoc oes de arquivos liberarem blocos fsicos em tal quantidade que alguns blo-
cos de enderecos tenham que ser escritos em disco. Alguns sistemas operacionais
atualizam periodicamente a lista de enderecos em disco para minimizar a cor-
rupc ao do sistema de arquivos em caso de falha no computador.
4.6.5 Diret
orios
http://www.candidatoreal.com
Os diret
orios s
ao as estruturas do sistema de arquivos que contem a informac ao
quais arquivos existem no disco. Um diret orio pode ser entendido como sendo
um conjunto de arquivos ou um conjunto de referencias a arquivos. Existem
diversas formas de estruturar os diret orios de um sistema. A mais simples e ter
um unico diretorio para o disco inteiro. Nesse caso, o diretorio corresponde a
uma lista de todos os (possivelmente milhares) arquivos do disco. Essa soluc ao,
conhecida como diret orio linear, e aceit
avel apenas para sistemas de arquivo
muito pequenos. Por exemplo, pode ser utilizada para discos flexveis de pe-
quena capacidade.
59
http://www.candidatoreal.com
usuario em questao.
60
http://www.candidatoreal.com
4.6.6 Implementa
c
ao de diret
orios
A forma mais simples de implementar diret orios e consider
a-lo como arquivos
especiais, cujo conteudo e manipulado pelo pr oprio sistema operacional. Dessa
forma, todo o mecanismo de alocac ao, liberac
ao e localizac
ao de blocos fsicos no
disco, disponvel para arquivos, tambem e usado para os diret orios. Diret orios
passam a ser arquivos cujo conte udo e definido pelo sistema operacional e cujo
acesso e controlado por parte do usuario.
Em qualquer solucao, cada diretorio nada mais e que uma tabela. Existem
diversas implementac
oes possveis para tabelas que podem ser usadas na im-
plementac
ao de um diretorio. Entre elas, destaca-se a lista n
ao ordenada, lista
ordenada e a tabela hash.
61
http://www.candidatoreal.com
Distribuic
ao inerente: algumas aplicac
oes s
ao distribudas por natureza.
Toler
ancia a falhas: em caso de falha de uma m
aquina, o sistema como
um todo pode sobreviver, apresentando apenas uma degradac ao de de-
sempenho.
E as desvantagens:
A rede de interconex
ao pode causar problemas ou n
ao dar vaz
ao a de-
manda.
u
nico espaco de enderecamento virtual compartilhado por todas as
CPUs).
Multicomputador: m aquinas que n
ao possuem mem oria compartil-
hada, isto e, cada processador possui sua mem
oria privada.
Barramento: um u nico cabo, rede, barramento ou outro meio que
conecte todas as maquinas. Analogia: TV a cabo.
Switch: existem cabos individuais conectando m
aquina a m
aquina,
com v
arios padr
oes possveis.
62
http://www.candidatoreal.com
Outra classificac
ao: Fortemente acoplado(Tightly Coupled): comunicac ao
r
apida entre os processadores (grande n
umero de bits por segundo). Fracamente
acoplado(Loosely Coupled): atraso para troca de mensagem entre m aquinas e
alto.
Com a criac
ao de novas arquiteturas de computadores, surgiram novas de-
mandas de software e, em especial, novas func
oes exigidas ao S.O. Pode-se con-
siderar como uma boa classificacao da evoluc
ao dos Sistemas Operacionais a
tabela abaixo. A tabela 4.1 apresenta uma comparac ao entre as caractersticas
dos S.O modernos
Gerac
ao Sistema Caracterstica Objetivo
1a SO Centralizado Gerenciamento de Processos Gerenciamento de
Gerenciamento de Mem oria recursos
Gerenciamento de E/S Mem oria estendida
Gerenciamento de Arquivos Virtualidade
2a SO de Rede Acesso Remoto Compartilhamento de
Troca de Informac oes recursos
Navegacao na rede Interoperabilidade
3a SO Distribudo Vis
ao global do Sistema de Vis
ao de computador
arquivos,
Unico em sistema
Espaco de nomes de M ultiplos
Tempo, Seguranca Computadores
Poder Computacional Transparencia
4a SO Cooperativo Aplicac
oes Distribudas Trabalho cooperativo
Aut
onomo Abertas e Cooperativas Autonomia
4.7.1 Estrutura
cao de Sistemas Distribudos
Estrutura
cao baseada na distribui
c
ao fsica
Dentre os varios modelos baseados da distribuic ao fsica, encontram-se o modelo
hier
arquico, o do cache de CPU, o usu ario servidor e o modelo de conjunto de
processadores.
No modelo hier arquico, os computadores s ao dispostos em uma rede sob a
forma de arvore, de maneira que quanto mais pr oximos estiverem da raiz, mais
potentes dever ao ser. O computador da raiz tratar a, de forma geral, do sistema
como um todo, enquanto que os computadores distantes da raiz tratar ao de
tarefas especficas e especializadas.
http://www.candidatoreal.com
63
http://www.candidatoreal.com
Estrutura
cao L
ogica
Modelo de processos:
Esses processos podem encapsular tanto elementos ativos com natureza, con-
sistindo dos programas referentes `as atividades do sistema e do usu
ario quanto
elementos naturalmente passivos correspondendo aos recursos e suas respecti-
vas operac
oes, confinados em gerenciadores de recursos. A comunicac
ao entre os
processos, implementada pelo sistema operacional, pode ocorrer de duas formas:
Modelo de objetos:
O modelo de objetos baseia-se no encapsulamento das v arias partes de um sis-
tema em elementos denominados objetos que s ao estruturados de forma a apre-
sentarem um conjunto de operac oes respons
aveis pelo seu comportamento. Para
conseguir acessar um objeto, um processo deve ter capacidade de faze-lo, usando
o conhecimento do nome do objeto e a posse da autorizac ao para cessar algu-
mas ou todas as suas operac oes. Cada objeto distribudo nao opera sozinho. A
princpio ele e construdo para trabalhar com outros objetos e, para isso, precisa
de uma especie de barramento. Tais barramentos fornecem infra-estrutura
para os objetos, adicionando novos servicos que podem ser herdados durante
a construcao do objeto, ou mesmo em tempo de execuc ao para alcancar altos
nveis de colaboracao com outros objetos independentes. CORBA e um exemplo
de barramento.
http://www.candidatoreal.com
64
http://www.candidatoreal.com
Captulo 5
Principais Processadores de
Mercado
Willamette
Os primeiros modelos de Pentium 4 eram baseados no n ucleo Willamette,
que tinha 8 KB de cache L1 para dados; 12 KB de cache L1 para instrucao;
256 KB de cache L2; trabalhava externamente a 400 MHz (100 MHz trans-
http://www.candidatoreal.com
ferindo quatro dados por pulso de clock); padr ao de pinagem soquete 423
e 478; clock interno de 1,30 a 2 GHz; suporte a instrucoes MMX (oferece
um modelo de execuc ao SIMD (Single Instruction Multiple Data, ou seja,
fluxo u
nico de instruc
oes e m
ultiplos de dados) simples, capaz de efetuar
processamentos de dados inteiros, empacotados em registros de 64 bits.
As instruc
oes MMX melhoraram a execuc ao das assim chamadas tarefas
multimdias, como codificar e decodificar vdeo), SSE (Streaming SIMD
Extensions) e SSE2; tecnologia de construcao de 180 nan ometro.
Northwood
Em seguida vieram os modelos de Pentium 4 baseados no n
ucleo North-
65
http://www.candidatoreal.com
wood. Este nucleo e cerca de 60% menor do que o nucleo Willamette dev-
ido ao seu processo de fabricac
ao de 130 nan
ometros. O nucleo Northwood
possui 8 KB de cache L1 para dados; 12 KB de cache L1 para instruc ao;
512 KB ou 2 MB de cache L2; barramento externo rodando a 400 MHz,
533 MHz ou 800 MHz (100 MHz, 133 MHz e 200 MHz transferindo quatro
dados por pulso de clock, respectivamente); clock interno de 1,60 a 3,4
GHz; suporte a instrucoes MMX, SSE e SSE2. Alguns modelos possuem
suporte a tecnologia Hyper-Threading.
Prescott
O n ucleo Prescott e construdo com tecnologia de 90 nanometros e uti-
lizado nos processadores Pentium 4 modernos. Ele pode ser encontrado
com 16 KB de cache L1 para dados; 12 KB de cache L1 para instruc ao;
512 KB, 1 MB ou 2 MB de cache L2; trabalha externamente a 533 MHz
ou 800 MHz (133 MHz e 200 MHz transferindo quatro dados por pulso
de clock, respectivamente); com clock interno de 2,26 a 3,80 GHz; suporte
as novas instruc
` oes MMX, SSE, SSE2 e SSE3. Alguns modelos possuem
suporte a tecnologia Hyper-Threading, XD, EM64T, SpeedStep (permite
que o sistema operacional ajuste o clock do processador, diminuindo-o ao
executar aplicativos que exigem menos poder e economizando energia) e
a VT (Virtualization Technology ), originalmente conhecida como Van-
derpool. A tecnologia VT permite que um processador funcione como se
fosse varios processadores trabalhando em paralelo de modo a permitir
que v arios sistemas operacionais sejam executados ao mesmo tempo em
uma mesma m aquina. Embora o clock de um Prescott seja o mesmo de
um Northwood, alguns softwares de teste mostraram que um Northwood e
ligeiramente mais veloz que um Prescott.
Prescott 2M
O Pentium 4 Extreme Edition foi lancado em novembro de 2003 e foi o
primeiro processador para desktop a possuir o cache L3 integrado, carac-
terstica esta presente apenas em processadores voltados para o mercado
corporativo.
Este processador possui 2 MB de cache L3 sendo acessado na mesma
frequencia de operacao interna do processador. Os primeiros modelos de
Pentium 4 Extreme Edition eram baseados no n ucleo Gallatin, que tinha
8 KB de cache L1 para dados; 12 KB de cache L1 para instruc ao; 512 KB
de cache L2 e 2 MB de cache L3; trabalhava externamente a 800 MHz
e 1066MHz (200 MHz ou 266 MHz transferindo quatro dados por pulso
http://www.candidatoreal.com
66
http://www.candidatoreal.com
Smithfield
Os processadores Pentium D e Pentium Extreme Edition da serie 800 s ao
baseados no n ucleo Smithfield. O n ucleo Smithfield consiste na verdade
em duas pastilhas de silcio do n ucleo Prescott montadas em um u nico
processador.
As principais caractersticas dos processadores Pentium D da serie 800 s
ao:
tecnologia de n
ucleo duplo; 16 KB de cache L1 de dados por n ucleo; 12 KB
de cache L1 de instrucao por n
ucleo; 2 MB de cache L2 (1 MB por n ucleo);
barramento externo de 800 MHz (200 MHz transferindo quatro dados por
pulso de clock), 533 MHz no caso do Pentium D 805 (133 MHz transferindo
quatro dados por pulso de clock); clock interno de 2,66 a 3,20 GHZ para
o Pentium D e 3,20 GHz para o Extreme Edition; suporte ` as instruc
oes
SSE3; soquete 775; processo de fabricac ao de 90 nm; tecnologia EM64T,
XD e SpeedStep (modelos 840 e 830); e tecnologia Hyper-Threading nos
processadores Pentium Extreme Edition. Os processadores Pentium D
n
ao tem esta tecnologia.
Presler
Os processadores Pentium D e Pentium Extreme Edition da serie 900 s ao
baseados no nucleo Presler.
As principais caractersticas dos processadores Pentium D e Pentium Ex-
treme Edition da serie 900 s ao: tecnologia de n ucleo duplo; 16 KB de
cache L1 de dados por n ucleo; 12 KB de cache L1 de instruc
ao por n
ucleo;
4 MB de cache L2 (2 MB por n ucleo); barramento externo de 800 MHz
(200 MHz transferindo quatro dados por pulso de clock) nos processadores
Pentium D ou 1.066 MHz (266 MHz transferindo quatro dados por pulso
http://www.candidatoreal.com
Pentium M
O Pentium M e o processador da Intel voltado para o mercado de notebooks e
utilizado pela plataforma Centrino. A plataforma Centrino da Intel e um con-
67
http://www.candidatoreal.com
Processador Pentium M
Intel Chipsets 855 ou 915
Rede Wireless Intel/PRO
Banias
Os primeiros modelos de Pentium M eram baseados no n ucleo Banias,
que tinha 32 KB de cache L1 de instruc oes e 32 KB de cache L1 de
dados; 1 MB de cache L2; trabalhava externamente a 400 MHz (100 MHz
transferindo quatro dados por pulso de clock); clock interno de 1,10 a
1,50GHz; suporte as instrucoes SSE2; tecnologia Enhanced SpeedStep;
tecnologia de construc
ao de 0, 13m; padr
ao de pinagem soquete 478 e
479.
Dothan
O nucleo Dothan e construdo com tecnologia de 90 nan
ometros e utilizado
nos processadores Pentium M modernos. Ele possui 32 KB de cache L1
de instruc
oes e 32 KB de cache L1 de dados; 2 MB de cache L2; trabalha
externamente a 400 MHz ou 533 MHz (100 MHz e 133 MHz transferindo
quatro dados por pulso de clock, respectivamente); clock interno de 1,10
a 2,26 GHz; suporte as instruc oes SSE2; tecnologia Enhanced SpeedStep,
Execute Disable (alguns modelos); padr ao de pinagem soquete 478 e 479.
Tamanho do cache L2
Clock interno
Clock do barramento externo
Essas diferencas fazem com que o Celeron seja mais barato e tenha um de-
sempenho menor do que os processadores Pentium II, Pentium III e Pentium
4, sendo, portanto, destinado para o mercado de usu arios domesticos ou para
aqueles que nao necessitam de grande poder computacional.
68
http://www.candidatoreal.com
O Celeron D e a vers
ao topo de linha dos processadores Celeron. Esse pro-
cessador e baseado no Pentium 4 com n ucleo Prescott e possui tecnologia de 65
e 90 nan
ometros.
69
http://www.candidatoreal.com
3945ABG.
Core 2 Duo
O Core 2 e a gerac
ao mais recente de processadores lancada pela Intel (os
primeiros modelos foram lancados oficialmente em 27 de julho de 2006). A
chegada do Core 2 significa a substituic
ao da marca Pentium, que estava sendo
usada pela companhia desde 1993. Os modelos mais comuns e conhecidos dessa
linha se chamam Core 2 Duo (com n ucleo duplo), que substitui o Pentium 4 e o
Pentium D, mas existe tambem um modelo Core 2 Quad (com n ucleo quadruplo)
e os modelos Core 2 Extreme (high end), que substitui o Pentium Extreme
70
http://www.candidatoreal.com
Edition.
A diferenca entre o Core 2 Duo e o Core 2 Extreme e que este ultimo tra-
balha com clocks mais elevados e tem o multiplicador de clock destravado, o
que permite fazer overclock alterando o multiplicador de clock do processador.
Cuidado para nao confundir o processador Core 2 Duo com o Core Duo. O
Core Duo (conhecido anteriormente pelo nome-c odigo Yonah) e o nome com-
ercial para um Pentium M com dois n ucleos de processamento construdo com
tecnologia de 65 nm. J
a o Core 2 Duo e o nome comercial para o processador de
nome-c odigo Merom (para notebooks) ou Conroe (para desktops), que utiliza a
nova microarquitetura Core da Intel.
O modelos Core 2 Duo possuem clock interno de 1,80 a 2,66 GHz, o Core 2
Quad possuiu clock interno de 2,40 GHz e o Core 2 Extreme 2,66 e 2,93 GHz.
5.1.4 Xeon
Em 1998 a Intel estabeleceu uma distinc ao entre seus processadores voltados
para o mercado de servidores e estac oes de trabalho dos voltados para o mer-
cado de usu arios domesticos. Desde ent ao, a Intel passou a incluir o termo
Xeon(pronuncia-se zon) no nome dos processadores voltados para o mer-
cado de servidores e estac
oes de trabalho. Esses processadores reconhecem mais
mem oria RAM, permitem trabalhar em ambiente multiprocessado (isto e, com
placas-mae com v arios processadores instalados sobre ela) e possui um desem-
71
http://www.candidatoreal.com
Pentium 4 Xeon
Este processador deveria se chamar Pentium 4 Xeon, mas a Intel optou pelo
nome Xeon. Como comentamos anteriormente, o Xeon e um processador voltado
para o mercado de servidores e estacoes de trabalho baseado no Pentium 4,
sendo, portanto, um processador Intel de 7a gerac
ao. Como vimos, os proces-
sadores anteriores da serie Xeon usavam a arquitetura Intel de 6a gerac
ao (a
mesma do Pentium Pro).
Xeon MP
Como ja explicamos, a diferenca entre o Xeon MP e o Xeon e a quantidade de
processadores suportados no modo de multiprocessamento simetrico: o Xeon
suporta ate dois processadores em uma mesma placa-mae, enquanto que o Xeon
MP suporta ate quatro processadores por barramento.
72
http://www.candidatoreal.com
Xeon N
ucleo Duplo (50xx e 7xxx)
A tecnologia de n ucleo duplo traz dois processadores inteiros dentro de um
mesmo inv olucro. Como os processadores Xeon de n ucleo duplo modelos 50xx
e 7xxx tem a tecnologia HyperThreading ? que simula a existencia de dois pro-
cessadores em cada n ucleo ? o sistema operacional reconhece cada processador
Xeon de nucleo duplo como sendo quatro processadores. Assim, em um servidor
com dois processadores Xeon de n ucleo duplo, o sistema operacional reconhecer
a
oito processadores (quatro n ucleos, dois por processador, e dois processadores
l
ogicos por n
ucleo).
Xeon N
ucleo Duplo (51xx)
Intel lancou recentemente uma nova serie de processadores Xeon (51xx) baseada
na nova microarquitetura Core, a mesma usada pelos processadores Core 2 Duo.
Esta nova serie era conhecida anteriormente por seu nome-c odigo, Woodcrest.
73
http://www.candidatoreal.com
5.1.5 Itanium
O projeto de processadores de 64 bits da Intel j
a se arrasta por muitos anos.
O primeiro processador lancado usando essa tecnologia foi o Itanium e recente-
mente a Intel lancou mais um processador IA-64, o Itanium 2.
J
a o Itanium 2 tem uma mem oria cache L1 de 32 KB, uma mem oria cache
L2 de 256 KB e uma mem oria cache L3 de 1,5 MB ou de 3 MB, dependendo
do modelo. Os mais atuais possuem uma cache L3 de 6, 8, 12, 18 ou 24 MB
dependendo do modelo. Seu barramento externo e de 128 bits, rodando a 400
ou 533 MHz. Possuem suporte a tecnologia Dual-Core, EM64T, VT.
74
http://www.candidatoreal.com
5.2 AMD
5.2.1 Sempron
O Sempron e o processador da AMD voltado para o mercado low-end, ou seja,
ele e destinado a usu
arios que n
ao precisam de grande poder computacional e
que estao mais preocupados com preco do que com desempenho. O concorrente
do Sempron e Celeron D da Intel.
Soquete 462
http://www.candidatoreal.com
75
http://www.candidatoreal.com
Soquete 754
Os processadores Sempron soquete 754 s ao na realidade processadores Athlon
64 com menos mem oria cache e sem as extens
oes de 64 bits, sendo que modelos
lancados mais recentemente passaram a contar com as extens oes de 64 bits.
Soquete AM2
Ao contrario dos processadores Sempron soquete 754, que trabalham apenas
na configurac
ao de um u
nico canal (single channel), os processadores Sempron
soquete AM2 podem utilizar a configurac ao de dois canais (dual channel), do-
brando a taxa de transferencia no acesso `a mem oria desde que voce use dois
ou quatro m odulos de memoria em seu micro. Lembre-se que os processadores
Sempron soquete 754 aceitam somente mem orias DDR, enquanto que os pro-
cessadores Sempron soquete AM2 aceitam somente mem orias DDR2.
concorrente
http://www.candidatoreal.com
5.2.2 Athlon 64
Os processadores mais novos da AMD encontrados no mercado atualmente s ao
baseados na arquitetura do Athlon 64, tambem conhecida como x86-64 ou ham-
76
http://www.candidatoreal.com
Soquete 754
Usado pelas primeiras vers oes de Athlon 64, alguns modelos de Sempron
e Turion 64. Seu controlador de mem oria usa somente um canal (single
channel), o que significa que o processador acessa a mem
oria a 64 bits;
Soquete 939
Usado pelos processadores Athlon 64, Athlon 64 FX, Athlon 64 X2 e o
Opteron. Seu controlador de mem oria usa dois canais (dual channel),
o que significa que o processador acessa `a mem oria a 128 bits, se dois
modulos de mem oria forem usados.
Soquete 940
Usado pelos primeiros processadores Athon 64 FX e pelo Opteron. Seu
controlador de mem oria usa dois canais (dual channel), o que significa que
o processador acessa a mem oria a 128 bits, se dois m
odulos forem usados
(ou um n umero par de m odulos de mem oria for usado). E necessaria a
utilizac
ao de mem
orias do tipo ECC;
Soquete AM2
http://www.candidatoreal.com
Soquete F
Este soquete de 1.207 pinos criado para os novos modelos do Opteron
tambem e usado pelos processadores Athlon 64 FX utilizados na plataforma
77
http://www.candidatoreal.com
Athlon 64
O Athlon 64 pode ser encontrado em vers
oes para o soquete 754, soquete 939 e
o novo soquete AM2. E pode ser encontrado com diferentes vers oes de n
ucleo
(90 nan
ometros ou 130 nanometros). O concorrente direto do Atlhon 64 e o
Pentium 4.
78
http://www.candidatoreal.com
de cache de L1 de instruc
oes e 64 KB de cache L1 de dados; 512 KB ou 1 MB
de cache de mem oria L2; barramento HyperTransport trabalhando a 800 MHz
(3,2 GB/s) ou a 1 GHz (4 GB/s). Esses clocks podem tambem ser referenciados
como 1.600 MHzou 2.000 MHz, respectivamente; configurac ao de mem oria
DDR dual channel nos modelos soquete 939 e AM2 (precisa de dois m odulos de
modulos de mem oria para usar este recurso); conjunto de instruc
oes SSE3 em
alguns modelos.
Athlon 64 X2
O Athlon 64 X2 e um Athlon 64 com tecnologia de n ucleo duplo, ou seja, ele
possui dois processadores dentro de um s
o. Todos os processadores Athlon 64
X2 s
ao encontrados para soquete 939 e AM2. O principal corrente do Athlon
64 X2 e o Pentium D Dual Core.
Athlon 64 FX
Originalmente a diferenca entre o Athlon 64 e o Athlon 64 FX era a quanti-
dade de mem oria cache L2 (512 KB no Athlon 64 vs. 1 MB no Athlon 64 FX)
e maior flexibilidade para overclock, j
a que ele vinha com o multiplicador de
clock destravado.
5.2.3 Turion 64
Lancado para ser o principal concorrente do Pentium M da Intel, o Turion 64 da
AMD e um processador de baixo consumo voltado para o mercado de notebooks.
79
http://www.candidatoreal.com
Turion 64 X2
O Turion 64 X2 e um Turion 64 com tecnologia de dois n
ucleos e com suporte as
memorias DDR2 na configuracao de dois canais (dual channel), o que significa
que o processador pode acessar a memoria a 128 bits.
80
http://www.candidatoreal.com
5.2.4 Opteron
O Opteron e o processador da AMD voltado para o mercado de servidores de
rede. Ele e baseado na arquitetura do Athlon 64. Os principais concorrentes
s
ao o Intel Xeon e Intel Itanium.
Soquete 939
Existem alguns modelos de Opteron da serie 1 para este soquete. Eles
n
ao passam de modelos de Athlon 64 ou de Athlon 64 X2 (se tiver dois
n
ucleos) com outro nome. Estes modelos trabalham com mem orias DDR
http://www.candidatoreal.com
comuns;
Soquete 940
Estes modelos necessitam mem orias DDR registradas(isto e, com buffer),
que e um tipo especialde memoria para servidores;
Soquete AM2
Existem alguns modelos de Opteron da serie 1 para este soquete. Eles
n
ao passam de modelos de Athlon 64 X2 com outro nome (porem com a
tecnologia de virtualizacao, n
ao presente no Athlon 64 X2). Estes modelos
trabalham com mem orias DDR2 comuns;
81
http://www.candidatoreal.com
Soquete F
Estes modelos trabalham com mem orias DDR2 registradas(isto e, com
buffer), que e um tipo especialde mem oria para servidores.
82
http://www.candidatoreal.com
Parte II
L
ogica de Programa
cao
http://www.candidatoreal.com
83
http://www.candidatoreal.com
Captulo 6
Orientac
ao a Objetos
6.1 Introduc
ao
A analise e o projeto orientados a objetos tem como meta identificar o melhor
conjunto de objetos para descrever um sistema de software. O funcionamento
deste sistema se da por meio do relacionamento e troca de mensagens entres os
objetos.
Na programac ao orientada a objetos, implementa-se um conjunto de classes
que definem os objetos presentes no sistema de software. Cada classe determina
o comportamento (definido nos metodos) e os estados possveis (atributos) de
seus objetos, assim como o relacionamento com outros objetos.
As linguagens de programac ao que d
ao suporte a orientac
ao a objetos s
ao:
Smaltalk, Perl, Python, Ruby, PHP, ColdFusion, C++, Object Pascal, Java,
JavaScript, ActionScript, Delphi e C#.
84
http://www.candidatoreal.com
2. Metodos
uma rotina que e executada por um objeto ao receber uma mensagem.
E
Os metodos determinam o comportamento dos objetos de uma classe e
s
ao an
alogos `
as func
oes ou procedimentos da programac
ao estruturada. O
envio de mensagens (chamado de metodos) pode alterar o estado de um
objeto.
3. Atributos
Os atributos s
ao os elementos que definem a estrutura de uma classe. Os
85
http://www.candidatoreal.com
atributos tambem sao conhecidos como vari aveis de classe, e podem ser
divididos em dois tipos b asicos: atributos de inst
ancia e de classe. Os
valores dos atributos de instancia determinam o estado de cada objeto.
Um atributo de classe possui um estado que e compartilhado por todos os
objetos de uma classe. Atributos de classe podem ser chamados tambem
de atributos est
aticos ou constantes.
As mensagens enviadas a um objeto (chamada de metodo) podem mudar
o valor de um ou mais atributos, alterando o estado de um objeto.
4. Classes
Uma classe e um modelo (prot otipo) que defini as vari
aveis (estado) e os
metodos (comportamento) comuns a todos os objetos do mesmo tipo. Na
classe s
ao definidas as vari
aveis e implementados os metodos. Os objetos
s
ao criados a partir de suas classes.
As classes nao s
ao diretamente suportadas em todas as linguagens de ob-
jetos, e n
ao s
ao necess
arias para que a linguagem seja orientada a objetos.
Alem dos metodos e atributos de uma classe, outros possveis membros
s
ao:
Construtor: define o comportamento no momento da criac ao de um ob-
jeto de uma classe; Destrutor: define o comportamento no momento da
destruic
ao do objeto de uma classe. Normalmente utilizado para liberar
recurso (mem oria) do sistema; Propriedade: define o acesso a um estado
do objeto; Evento: define um ponto em que o objeto pode chamar outros
procedimentos de acordo com seu comportamento e estado interno;
Obs.: Lembrar sempre que a classe define as caractersticas comuns e os
objetos s
ao inst
ancias dessa classe, com estado pr
opria.
5. Mensagens
Objetos se comunicam entre si por meio do envio de mensagens. Quando
um objeto A deseja que o objeto B realize um dos seus metodos (de B), o
objeto A envia uma mensagem para o objeto B. Algumas vezes, o objeto
que recebe a mensagem precisa de mais informac oes para saber exata-
mente o que fazer. Por exemplo, quando voce quer trocar as marchas de
uma bicicleta, deve-se indicar qual a marcha desejada. Esta informac
ao
acompanha a mensagem como um par ametro.
Assim, tres componentes fazem parte de uma mensagem:
o objeto para onde a mensagem e enderecada (bicicleta); o nome do
http://www.candidatoreal.com
6. Heranca
A heranca e um mecanismo que permite criar novas classes a partir de
classes j
a existentes, aproveitando-se das caractersticas existentes na classe
a ser extendida. Com a heranca e possvel criar classes derivadas (sub-
classes) a partir de classes bases (superclasses).
86
http://www.candidatoreal.com
classe podem invocar metodos que tem a mesma assinatura (nome, lista
de parametros e retorno), mas comportamentos distintos, especializado
para cada classe derivada, usando para tanto uma referencia a um objeto
do tipo superclasse.
A decisao sobre qual metodo deve ser selecionado, de acordo com o tipo da
classe derivada, e tomada em tempo de execuc ao por meio do mecanismo
de ligac
ao tardia. No caso do polimorfismo, e necessario que os metodos
tenham exatamente a mesma identificac ao, sendo utilizado o mecanismo
de redefinic
ao de metodos. A seguir um exemplo de polimorfismo.
87
http://www.candidatoreal.com
Note que, embora o metodo calcular tenha sido chamado duas vezes no in-
terior de mostrarCalculo, o comportamento apresentado variou de acordo
com a classe ao qual ele representava no momento.
http://www.candidatoreal.com
Os benefcios do polimorfismo s
ao: a clareza e manutenc
ao do c
odigo, a
divis
ao da complexidade e aplicac
oes flexvies.
Algumas linguagens promovem o polimorfismo principalmente por meio
do uso de classes abstratas e interfaces, como e o caso da linguagem Java.
8. Sobrecarga
A sobrecarga e um tipo de polimorfismo que permite a existencia de v
arios
metodos de mesmo nome, porem com assinaturas levemente diferentes, ou
seja, variando no n
umero e tipo de argumentos e o valor de retorno. Ficara
a cargo de o compilador escolher de acordo com as listas de argumento os
procedimentos ou metodos a serem executados. Por exemplo:
88
http://www.candidatoreal.com
9. Interfaces
Uma interface e uma colec
ao de definic
oes de metodos abstratos (sem im-
plementac
ao). E utilizada para os objetos interagirem entre si. A classe
que implementa a interface deve implementar todos os metodos definidos
na interface. Uma interface, tambem, pode incluir declarac oes de con-
stantes.
Apesar de uma classe abstrata implementar metodos abstratos, n ao se
pode confundir interface com classe abstrata. As classes abstratas n ao
podem ser instanciadas, e estas so s
ao utilizadas como superclasses. Por
exemplo, comida no mundo real. N ao existe uma inst ancia (objeto) do
tipo comida. O que existe s
ao inst
ancias de cenouras, mac as, bananas, etc.
Comida representa o conceito abstrato e nao e capaz de criar uma inst
ancia
pr
opria. As classes abstratas podem possuir metodos implementados.
Em Java, para definir uma interface utiliza-se a palavra interface. Emb-
ora, uma classe nao possa conter mais de uma superclasse, a classe pode
implementar mais de uma interface. Por este motivo, muitas das vezes as
interfaces s
ao apresentadas como uma alternativa para heranca m ultipla
de classes.
http://www.candidatoreal.com
10. Pacotes
Para tornar as classes mais f aceis de serem encontradas e utilizadas, para
evitar conflitos de nomes e para controlar o acesso, pode-se agrupar classes
relacionadas em pacotes (packages). Os pacotes organizam as classes e as
interfaces relacionadas. Cada pacote criado corresponde a um diret orio,
ou seja, as classes e as interfaces de um mesmo pacote devem estar em um
mesmo diret orio.
A utilizac
ao de pacotes proporciona as seguintes vantagens:
Fica mais facil para outros programadores determinar quais classes e in-
terfaces est
ao relacionadas; Os nomes das classes de um pacote nao irao
89
http://www.candidatoreal.com
90
http://www.candidatoreal.com
91
http://www.candidatoreal.com
Parte III
Metodologia de
Desenvolvimento
http://www.candidatoreal.com
92
http://www.candidatoreal.com
Captulo 7
Ciclo de Vida
Um modelo de ciclo de vida ou modelo de processo pode ser visto como uma
representacao abstrata de um esqueleto de processo, incluindo tipicamente algu-
mas atividades principais, a ordem de precedencia entre elas e, opcionalmente,
artefatos requeridos e produzidos. De maneira geral, um modelo de processo de-
screve uma filosofia de organizacao de atividades, estruturando as atividades do
processo em fases e definindo como essas fases est ao relacionadas. Entretanto,
ele n
ao descreve um curso de ac oes preciso, recursos, procedimentos e restric
oes.
Ou seja, ele e um importante ponto de partida para definir como o projeto deve
ser conduzido, mas a sua adoc ao n
ao e o suficiente para guiar e controlar um
projeto de software na pr atica.
Ainda que os processos tenham de ser definidos caso a caso, de maneira
geral, o ciclo de vida de um software envolve, pelo menos, as seguintes fases:
Planejamento O objetivo do planejamento de projeto e fornecer uma estru-
tura que possibilite ao gerente fazer estimativas razo aveis de recursos,
custos e prazos. Uma vez estabelecido o escopo de software, com os req-
uisitos esbocados, uma proposta de desenvolvimento deve ser elaborada,
isto e, um plano de projeto deve ser elaborado configurando o processo
a ser utilizado no desenvolvimento de software. A ` medida que o projeto
progride, o planejamento deve ser detalhado e atualizado regularmente.
Pelo menos ao final de cada uma das fases do desenvolvimento (an alise
e especificac
ao de requisitos, projeto, implementac
ao e testes), o planeja-
mento como um todo deve ser revisto e o planejamento da etapa seguinte
deve ser detalhado. O planejamento e o acompanhamento do progresso
http://www.candidatoreal.com
An
alise e Especifica cao de Requisitos Nesta fase, o processo de levanta-
mento de requisitos e intensificado. O escopo deve ser refinado e os req-
uisitos mais bem definidos. Para entender a natureza do software a ser
construdo, o engenheiro de software tem de compreender o domnio do
problema, bem como a funcionalidade e o comportamento esperados. Uma
vez capturados os requisitos do sistema a ser desenvolvido, estes devem
ser modelados, avaliados e documentados. Uma parte vital desta fase e
a construc
ao de um modelo descrevendo o que o software tem de fazer (e
nao como faze-lo).
93
http://www.candidatoreal.com
Implementa c
ao O projeto deve ser traduzido para uma forma passvel de
execuc
ao pela m
aquina. A fase de implementac
ao realiza esta tarefa, isto
e, cada unidade de software do projeto detalhado e implementada.
Testes inclui diversos nveis de testes, a saber, teste de unidade, teste de in-
tegrac
ao e teste de sistema. Inicialmente, cada unidade de software im-
plementada deve ser testada e os resultados documentados. A seguir, os
diversos componentes devem ser integrados sucessivamente ate se obter o
sistema. Finalmente, o sistema como um todo deve ser testado.
Entrega e Implanta c
ao uma vez testado, o software deve ser colocado em
producao. Para tal, contudo, e necessario treinar os usu
arios, configurar
o ambiente de produc ao e, muitas vezes, converter bases de dados. O
proposito desta fase e estabelecer que o software satisfaz os requisitos
dos usu arios. Isto e feito instalando o software e conduzindo testes de
aceitac
ao. Quando o software tiver demonstrado prover as capacidades
requeridas, ele pode ser aceito e a operacao iniciada.
Opera
cao nesta fase, o software e utilizado pelos usu
arios no ambiente de
produc
ao.
Manutenc
ao Indubitavelmente, o software sofrer a mudancas ap
os ter sido en-
tregue para o usuario. Alterac
oes ocorrerao porque erros foram encon-
trados, porque o software precisa ser adaptado para acomodar mudancas
em seu ambiente externo, ou porque o cliente necessita de funcionalidade
adicional ou aumento de desempenho. Muitas vezes, dependendo do tipo
e porte da manutencao necess
aria, essa fase pode requerer a definic
ao de
http://www.candidatoreal.com
94
http://www.candidatoreal.com
7.2 Modelo em V
O modelo em V e uma variac ao do modelo em cascata que procura enfatizar
a estreita relac
ao entre as atividades de teste (teste de unidade, teste de in-
tegrac
ao, teste de sistema e teste de aceitac
ao) e as demais fases do processo,
http://www.candidatoreal.com
95
http://www.candidatoreal.com
96
http://www.candidatoreal.com
Modelagem do neg
ocio. O fluxo de informac
ao entre as func
oes do neg
ocio
e modelado.
Modelagem dos dados. O fluxo de informac
ao e refinado num conjunto de
objetos de dados.
Modelagem do processo. Os objetos de dados s ao tranformados para con-
seguir o fluxo de informac
ao necess
ario para implementar uma funcao do
neg
ocio. Descric
oes do processamento s ao criadas.
Gera
cao da aplicacao. O RAD considera o uso de tecnicas de quarta gerac
ao.
O processo RAD trabalha para reusar componentes de programas exis-
tentes ou criar componentes reus
aveis.
Teste e entrega. Os componentes novos devem ser testados e todas as inter-
faces devem ser exaustivamente exercitadas.
As desvantagens do RAD s
ao:
1. O RAD exige desenvolvedores e clientes compromissados com atividades
continuamente r
apidas.
2. Nem todos tipo de de aplicac
ao s
ao apropriados para o RAD.
3. Quando riscos tecnicos s
ao elevados o RAD n
ao e adequado.
e um pouco de desenho e implementac ao. Numa segunda gerac ao, deve-se con-
cluir a an alise, fazer uma parte significativa do desenho e um pouco mais de
implementac ao. Numa terceira iterac ao, deve-se concluir o desenho, fazer-se
parte substancial da implementac ao, testar e integrar um pouco, etc. Ou seja,
a principal consequencia da aproximac ao iterativa e que os produtos finais de
todo o processo v ao sendo amadurecidos e completados ao longo do tempo, mas
cada iteracao produz sempre um conjunto de produtos finais.
A cada iterac ao sao realizadas as seguintes tarefas:
An
alise. Refinamento de requisitos, refinamento do modelo conceitual.
Projeto. Refinamento do projeto arquitetural, projeto de baixo nvel.
97
http://www.candidatoreal.com
Implementa
cao. Codificac
ao e testes.
Transi
cao para produto. Ddocumentac
ao, instalac
ao, . . ..
an
alise de risco;
engenharia;
construc
ao e liberac
ao;
avaliac
ao do cliente.
O modelo espiral e, atualmente a abordagem mais realstica para desen-
volvimento de software em grande escala, e usa uma abordagem que capacita
a empresa que presta o servico, e o cliente a entender e reagir aos riscos em
cada etapa evolutiva. Este tipo de modelo exige consider avel experiencia na
determinac
ao de riscos e depende dessa experiencia para ter sucesso.
98
http://www.candidatoreal.com
Desvantagens:
Pode ser difcil convencer grandes clientes (particularmente em situac
oes
de contrato) de que a abordagem evolutiva e control avel.
A abordagem deste tipo de modelo exige consider avel experiencia na avaliac
ao
dos riscos e baseia-se nessa experiencia para o sucesso. Se um grande risco
n
ao for descoberto, poder ao ocorrer problemas.
Este tipo de modelo e relativamente novo e n
ao tem sido amplamente
usado.
importante ter em conta que podem existir diferencas entre o prot
E otipo
e o sistema final. O prot
otipo pode n
ao cumprir os requisitos de desem-
penho, pode ser incompleto, e pode refletir somente alguns aspectos do
sistema a ser desenvolvido.
O modelo em espiral pode levar ao desenvolvimento em paralelo de m ultiplas
partes do projeto, cada uma sendo abordada de modo diferenciado, por
isso e necess
ario o uso de tecnicas especficas para estimar e sincronizar
cronogramas, bem como para determinar os indicadores de custo e pro-
gresso mais adequados.
1. Identificac
ao dos principais interessados do sistema ou do subsistema.
2. Determinac
ao das condic
oes de lucro do interessado.
3. Negociac
ao das condic
oes de ganho do interessado para reconcili
a-las no
ambito das condic
oes ganha-ganha para todos os envolvidos.
Alem da enfase na negociac
ao inicial, o modelo espiral ganha-ganha introduz
tres marcos de processo, chamados pontos de ancoragem, que ajudam a esta-
belecer quendo um ciclo e completado em torno da espiral e fornecem marcos
de decis ao antes do projeto de software presseguir. Esses pontos de ancoragem
s
ao:
99
http://www.candidatoreal.com
7.7 Modelo de m
etodos formais
O modelo de metodos formais compreende um conjunto de atividades que de-
terminam uma especificacao matem atica para o software. Uma variante dessa
abordagem e denominada engenharia de software cleanroon (Sala Simpa). Uti-
lizando metodos formais eliminam-se muitos problemas encontrados nos outros
modelos, como p.ex., ambig uidade, incompletitude e inconsistencia, que podem
ser corrigidas mais facilmente de forma n ao ad hoc, mas atraves de an alise
matem atica.
http://www.candidatoreal.com
7.8 T
ecnicas de quarta gera
cao
As tecnicas de quarta gerac
ao concentram-se na capacidade de se especificar o
software a uma m aquina em um nvel que esteja pr
oximo `
a linguagem natural.
Engloba um conjunto de ferramentas de software que possibilitam que:
100
http://www.candidatoreal.com
Obten
cao dos Requisitos. O cliente descreve os requisitos os quais s
ao traduzi-
dos para um prot
otipo operacional. Os principais problemas s ao:
Estrat
egia de projeto. : Para pequenas aplicac oes e possvel mover-se do
passo de obtencao dos requisitos para o passo de implementac ao usando
uma Linguagem de 4G. Para grandes projetos e necess ario desenvolver
uma estrategia de projeto. De outro modo ocorrerao os mesmos problemas
encontrados quando se usa abordagem convencional (baixa qualidade).
Implementac
ao usando 4GL. Os resultados desejados s ao representados de
modo que haja gerac
ao autom atica de c
odigo. Deve existir uma estrutura
de dados com informacoes relevantes e que seja acessvel pela 4GL .
101
http://www.candidatoreal.com
Captulo 8
An
alise Comparativa de
Processos de
Desenvolvimento
102
http://www.candidatoreal.com
Concepc
ao nesta fase, e estabelecido o escopo do projeto e suas fronteiras,
determinando os principais casos de uso do sistema. Esses casos de uso
devem ser elaborados com a precis ao necess
aria para se proceder estima-
tivas de prazos e custos. As estimativas devem ser globais para o projeto
como um todo e detalhadas para a fase seguinte. Assim, a enfase nesta
etapa recai sobre o planejamento e, por conseguinte, e necess ario levan-
tar requisitos do sistema e preliminarmente analisa-los. Ao termino dessa
fase, s
ao examinados os objetivos do projeto para se decidir sobre a con-
tinuidade do desenvolvimento;
Elaborac
ao o prop osito desta fase e analisar mais refinadamente o domnio do
problema, estabelecer uma arquitetura de fundac ao s
olida, desenvolver um
plano de projeto para o sistema a ser construdo e eliminar os elementos
de projeto que oferecem maior risco. Embora o processo deva sempre
acomodar alterac oes, as atividades da fase de elaborac ao asseguram que
os requisitos, a arquitetura e os planos estao suficientemente estaveis e que
os riscos est
ao suficientemente mitigados, de modo a se poder prever com
http://www.candidatoreal.com
Transi
cao nesta fase, o software e disponibilizado `
a comunidade usu
aria. Ap
os
o produto ter sido colocado em uso, naturalmente surgem novas consid-
erac
oes que vao demandar a construc ao de novas vers
oes para permitir
ajustes do sistema, corrigir problemas ou concluir algumas caractersticas
que foram postergadas.
103
http://www.candidatoreal.com
Alem dos conjuntos de iterac oes em cada fase, as fases em si podem ocorrer
de forma iterativa. Como mostra a figura 8.2, elas n ao necessariamente tem a
mesma durac ao. O esforco realizado em cada uma varia fortemente em func ao
das circunst
ancias especficas do projeto.
http://www.candidatoreal.com
104
http://www.candidatoreal.com
8.3 Scrum
Scrum e um processo para construir software incrementalmente em ambientes
complexos, onde os requisitos n ao s
ao claros ou mudam com muita freq uencia.
Em Rugby, Scrum e um time de oito integrantes que trabalham em conjunto
para levar a bola adiante no campo. Ou seja: times trabalhando como uma
unidade altamente integrada com cada membro desempenhando um papel bem
definido e o time inteiro focando num u nico objetivo.
O objetivo do Scrum e fornecer um processo conveniente para projetos e
desenvolvimento orientado a objetos. A metodologia e baseada em princpios
semelhantes aos de XP: equipes pequenas, requisitos pouco est aveis ou descon-
hecidos, e iterac
oes curtas para promover visibilidade para o desenvolvimento.
No entanto, as dimens oes em Scrum diferem de XP.
http://www.candidatoreal.com
105
http://www.candidatoreal.com
prove pr
aticas
ageis de gerenciamento enquanto XP prove pr
aticas integradas
de engenharia de software.
8.4 Crystal
Crystal/Clear faz parte, na realidade, de um conjunto de metodologias criado
por Cockburn. As premissas apresentadas para a existencia deste conjunto s
ao:
N
ao exige nenhum processo especfico de modelagem.
106
http://www.candidatoreal.com
Iterac
ao do modelo funcional (Functional model iteration).
Iterac
ao de projeto e construc
ao (Design and build iteration).
Implementac
ao final (Final implementation).
Pr
aticas:
Usu
ario sempre envolvido.
Adaptac
ao ao neg
ocio e o criterio para entregas.
Construa o produto certo antes de voce constru-lo corretamente.
Mudancas s
ao reversveis utilizando pequenas iterac
oes.
Requisitos s
ao acompanhados em alto nvel.
http://www.candidatoreal.com
107
http://www.candidatoreal.com
108
http://www.candidatoreal.com
Captulo 9
Engenharia de Requisitos
109
http://www.candidatoreal.com
Verifica
cao e Valida c
ao de Requisitos A verificac ao de requisitos avalia se
o documento de Especificac ao de Requisitos est a sendo construdo de
forma correta, de acordo com padr oes previamente definidos, sem con-
ter requisitos ambguos, incompletos ou, ainda, requisitos incoerentes ou
impossveis de serem testados. J a a validac
ao diz respeito a avaliar se esse
documento est a correto, ou seja, se os requisitos e modelos documentados
atendem ` as reais necessidades e requisitos dos usu arios / cliente.
Ger
encia de Requisitos se preocupa em gerenciar as mudancas nos requisi-
tos j
a acordados, manter uma trilha dessas mudancas, gerenciar os rela-
cionamentos entre os requisitos e as dependencias entre o documento de
requisitos e os demais artefatos produzidos no processo de software, de
forma a garantir que mudancas nos requisitos sejam feitas de maneira
controlada e documentada.
9.2 T
ecnicas de Levantamento de Requisitos
9.2.1 Observa
c
ao
A observacao possibilita um contato pessoal e estreito do pesquisador com o
fenomeno pesquisado, o que apresenta uma serie de vantagens. As tecnicas de
observac
ao s
ao extremamente u teis para descobriraspectos novos de um prob-
lema. Isto se torna crucial nas situac oes em que nao existe uma base te orica
s
olida que oriente a coleta de dados. Ao mesmo tempo em que o contato direto
e prolongado do pesquisador com a situac ao pesquisada apresenta as vantagens
mencionadas, envolve tambem uma serie de problemas. Algumas crticas s ao
feitas ao metodo de observacao, primeiramente por provocar alterac oes no am-
biente ou no comportamento das pessoas observadas. Outra crtica e a de que
este metodo se baseia muito na interpretacao pessoal. Alem disso ha criticas no
sentido de que o grande envolvimento do pesquisador leve a uma vis ao distorcida
do fenomeno ou a uma representac ao parcial da realidade.
9.2.2 Entrevista
Entrevista e uma tecnica de elicitac
ao de requisitos muito usada. O engenheiro
de requisitos ou analista discute o sistema com diferentes usu arios , a partir da
qual elabora um entendimento de seus requisitos. H a, basicamente, 2 tipos de
entrevista: a) entrevistas fechadas onde o engenheiro de requisitos procura as
perguntas para um conjunto um pre-definido de quest oes; b) entrevistas abertas
http://www.candidatoreal.com
110
http://www.candidatoreal.com
9.2.3 An
alise de Protocolo
A an alise de protocolo pede a` pessoa se engajar em alguma tarefa e corrente-
mente falar sobre esta tarefa, explicando o seu pensamento do processo. Usu arios
alegam que esse tipo de linguagem pode ser considerada uma verbalizac ao di-
reta do processo cognitivo especfico. A an alise de protocolo nao e um guia
confiavel sobre o que as pessoas est ao pensando, ela est a sujeita a problemas
de interpretacoes pelos analistas. A restric
ao em estudar protocolos e que as
pessoas podem produzir linguagens que oferece um perfil de atividade cogni-
tiva autonoma. Segundo (Goguen, 1997), mesmo se fosse possvel conseguir um
perfil de atividade cognitiva autonoma da pessoa, tal objeto seria inapropriado
para o processo de requisitos, porque o cliente n ao tem qualquer modelo mental
pre-existente do sistema desejado. Os clientes tem conhecimento sobre neg ocios
e necessidades organizacionais, enquanto o time de requisitos tem conhecimento
sobre as possibilidade tecnicas.
9.2.4 JAD
JAD e uma marca registrada da IBM. O tema principal do JAD e colocar
autoridades representativas e gerenciais juntas dentro de um workshop estrutu-
rado para promover decis oes. Segundo (Damian, 1997) JAD consiste de 5 fases:
definic
ao do projeto, pesquisa, preparac
ao para a sess
ao JAD, a sessao JAD, o
documento final. As fases de definic ao de projeto e pesquisa no processo JAD
lidam com a coleta de informac oes. A sessao JAD e entao usada para validar
as informacoes recolhidas nas fases anteriores. O processo JAD concentrase na
sessao JAD, e deste modo JAD contribui para a elicitac ao de requisitos como
significado para validar as informacoes j
a colhidas. Na sess
ao JAD, as pessoas
certas tem que estar envolvidas, e a presenca de um facilitador pode ajudar a
manter a sess ao focalizada e minimizar ataques e defesas emocionais improdu-
tivas. JAD promove cooperac ao, entendimento, e trabalho em grupo entre os
varios grupos de usuarios e o pessoal de sistemas de informac
ao.
9.2.5 PD
Tradicionalmente valores democr aticos, os quais tem sido levados em conta no
processo de projeto, tem sido somente aqueles concentrados em fatores tecnicos
e economicos. Mas com o uso do PD fatores tecnicos-sociais tem sido levados em
conta. O projeto deveria ser feito com o usu ario. Aprendizado m utuo deveria
ser uma parte importante do trabalho em um grupo de projeto, n ao sendo
meramente uma visita aos laborat orios de pesquisa. Trabalhadores e clientes s
ao
http://www.candidatoreal.com
9.2.6 QFD
O termo qualidade e definido como um conjunto de meios para produzir eco-
nomicamente produtos ou servicos, os quais satisfacam os requisitos do cliente.
QFD e um conceito que prove meios de interpretar requisitos do cliente em req-
uisitos tecnicos, apropriados para cada est
agio do desenvolvimento e produc ao
111
http://www.candidatoreal.com
9.2.7 CRC
Como definido em (Zhu, 1998), CRC e uma sess ao de grupo, que e similar ao
JAD, onde os papeis dos participantes e o papel do facilitador sao claramente
definidos. Em CRC, participantes consistem nao somente de usu arios e facilita-
dor, mas tambem de outras pessoas envolvidas indiretamente no sistema. CRC
e diferente de JAD e QFD pois ele foca-se no usuario operativo.
9.2.8 Prototipa
cao
Este metodo para elicitac
ao de requisitos utiliza-se do uso de uma tecnica de
prototipac
ao para a avaliac
ao do usu ario. O conjunto inicial de requisitos e
usado como base para criar o Prot otipo de Interface do Usu ario com o sis-
tema inicial (simplificado). Para essa criac ao, o projetista precisa manter o
prot
otipo tao simples quanto possvel. O ponto forte desta atividade e apre-
sentar muitas alternativas para o usu ario antes de se gastar muito esforco para
qualquer prototipo em particular. Ap os a aceitac
ao do prot
otipo pelos usu
arios,
os desenvolvedores precisam criar um documento de especificac ao dos requisitos
paralelo ao prototipo de interface (McConnel, 1998).
9.2.9 Cen
arios
Usuarios finais e outros agentes do sistema acham a utilizac ao de cen arios mais
f
aceis para relacionar-se aos exemplos da vida real do que descric oes abstratas
das func
oes realizadas pelo sistema. Por essa raz ao, e freq
uentemente u til desen-
volver um conjunto de interacao dos cen arios, e usar estes para elicitar e clarear
requisitos de sistema. Cen arios s
ao exemplos de sess oes de interac
ao as quais
s
ao concentradas com um tipo u nico de interac
ao entre um usu ario final e o sis-
tema. Usu arios finais simulam suas interacoes usando cen arios. Eles explicam
para o time de engenheiros de requisito o que eles est ao fazendo e a informac ao
da qual eles precisam do sistema para descrever a tarefa descrita no cen ario.
9.2.10 FAST
http://www.candidatoreal.com
3. A solicitac
ao de produto e distribuda para todos os participantes antes
da data da reuni ao.
112
http://www.candidatoreal.com
solicitado a cada participante que faca uma lista dos objetos que s
4. E ao
parte do ambiente , uma lista de servicos (processos ou func oes), uma
lista de restric
oes (custo, tamanho, regras de neg
ocio) e criterios de de-
sempenho.
9.3 An
alise de Requisitos
A analise de requisitos e uma atividade de engenharia de software que vence
o especo entre a engenharia de requisitos, no nvel de sistema, e o projeto de
software. As atividades de engenharia de requisitos resultam na especificac ao
das caractersticas operacionais do software (func ao, dados e comportamento).
A analise de requisitos constroi modelos de domnio que fornecem ao projetista
uma vis ao do software.
A especificac
ao de requisitos e produzida no auge da tarefa de an
alise. Alguns
padroes sugerem que uma especificac ao de requisitos deve conter:
http://www.candidatoreal.com
Introdu
cao. Declara as metas e objetivos do software.
Descri
cao da informa c
ao. Fornece uma descric
ao detalhada do problema que
o software deve resolver. O conte
udo, fluxo e estrutura da informac
ao s
ao
documentados.
Descri
cao funcional. Uma narrativa de processamento e fornecida para cada
func
ao.
Descri
cao comportamental. Examina a operac ao do software como consequencia
de eventos externos e caractersticas de controle geradas internamente.
113
http://www.candidatoreal.com
Crit
erios de valida c
ao. Informa como devemos reconhecer uma implementacao
bem-sucedida e quais classes de testes devem ser conduzidas para validar
a func
ao, o desempenho e as restric
oes.
Bibliografia e ap endice. A bibliografia contem todos os documentos que se
relacionam ao software. O apendice contem informacoes que suplementa
as especificac
oes.
9.3.1 M
etodos de an
alise
Entre os mais importantes metodos de an alise, tres se destacam: A an
alise estru-
turada, a an
alise essencial e a an
alise orientada a objetos. A seguir discutiremos
suas principais caractersticas.
An
alise estruturada
A An alise Estruturada adota uma visao de desenvolvimento baseada em um
modelo entrada-processamento-sada. No paradigma estruturado, os dados sao
considerados separadamente das func
oes que os transformam e a decomposic
ao
funcional e usada intensamente.
An
alise essencial
Os metodos orientados a funcoes conduzem o desenvolvimento de software estru-
turando as aplicac oes segundo a otica das func
oes (ac
oes) que o sistema dever
a
realizar. Os metodos orientados a dados, por sua vez, enfatizam a identificac ao
e estruturac ao dos dados, subjugando a an alise das func
oes para um segundo
plano. Esses metodos tem origem no projeto de bancos de dados e, geralmente,
tem no modelo de Entidades e Relacionamentos (ER) sua principal ferramenta.
A an alise essencial e uma metodologia estruturada, sendo uma evoluc ao da
analise estruturada. Essa metodologia procurou conciliar as abordagens ori-
entadas a dados e a func oes em um u nico metodo, utilizando modelos para
dados, func oes e controles (DFDs, DERs e Diagramas de Transic ao de Estados,
respectivamente) como ferramentas para a modelagem de sistemas.
An
alise orientada o objeto
A orientac
ao a objetos pressup
oe que o mundo e composto por objetos, onde
um objeto e uma entidade que combina estrutura de dados e comportamento
funcional. No paradigma orientado a objetos, os sistemas s ao estruturados a
http://www.candidatoreal.com
9.3.2 Modelagem da an
alise
DFDs
Ferramenta de modelagem utilizada para descrever a transformac ao de entradas
em sadas. Representa um sistema como uma rede de processos interligados
entre si por fluxos de dados e dep a ferramenta de modelagem
ositos de dados. E
mais importante da an alise estruturada. Junto com o DER, e a ferramenta mais
importante da an alise essencial. Seus componentes s ao:
114
http://www.candidatoreal.com
Dicion
ario de Dados
O dicionario de dados e uma listagem organizada de todos os elementos de
dados pertinentes ao sistema, com definic
oes precisas para que os usu
arios e
desenvolvedores possam conhecer o significado de todos os itens de dados. Ex-
emplificando para uma estrutura de dados nome: nome = ttulo-cortesia +
115
http://www.candidatoreal.com
primeiro-nome + (nome-intermedi
ario) + u ltimo-nome, ttulo-cortesia = [Sr.
Sra. Srta. Dr. Professor] etc. . .
Aspectos de an
alise essencial
O modelo comportamental determina o comportamento interno do sistema para
que este possa interagir corretamente com o ambiente. Ap
os a construc
ao do
modelo comportamental, teremos os seguintes artefatos:
Especificac
ao da L ogica dos Processos (Mini-especifica c
oes). Descreve
a l
ogica dos processos do DFD que n ao foram detalhados em diagramas
de nvel inferior (l
ogica dos processos primitivos).
Como podemos perceber, a an alise essencial faz uso praticamente das mesmas
tecnicas de modelagem da analise estruturada, a saber a modelagem de dados
(utilizando modelos de entidades e relacionamentos), a modelagem funcional
(utilizando Diagramas de Fluxo de Dados - DFDs) e a modelagem de controle
(utilizando diagramas de transic ao de estados). Isso e bastante natural, j a
que a an alise essencial e, de fato, uma extens ao da analise estruturada. Na
realidade, a principal diferenca entre a an alise essencial e a an
alise estruturada
esta na estrategia para atacar o problema: a primeira defende uma abordagem
baseada em eventos, onde a an alise de eventos passa a ser um passo fundamental,
a segunda e baseada apenas na decomposic ao top-down da funcionalidade do
sistema.
http://www.candidatoreal.com
116
http://www.candidatoreal.com
requisitos s
ao as Matrizes de Rastreabibilidade (Traceability Matrix ), que usual-
mente correlacionam requisitos com casos de testes, e tecnicas de Referencias
Cruzadas. Entre os produtos de mercado utilizadas para realizar gerenciamento
e rastreamento de requisitos podemos citar o Rational RequisitePro, Caliber-RM,
RTS e RDT.
http://www.candidatoreal.com
117
http://www.candidatoreal.com
Captulo 10
M
etricas
letadas com base individual dever ser privadas e servir como indicador apenas
para o indivduo. Exemplo de metricas privadas incluem porporc ao de defeitos
(por indviduo e por m odulo) e erros encontrados durante o desenvolvimento.
Metricas publicas geralmente assimilam informac oes, que eram originalmente
privadas. Porporc oes de defeitos de projeto (absolutamente n ao atribuveis a
um certo indivduo), esforco, tempo transcorrido e dados relacionados s
ao coleta-
dos e avaliados numa tentativa de sescobrir indicadores, que possam aperfeicoar
o desempenho do processo organizacional.
Ha uma sutil diferenca entre erros e defeitos. Um defeito ocorre quando
atividades de garantia de qualidade deixam de descobrir um erro num produto
produzido durante o processo de software.
118
http://www.candidatoreal.com
5. Os dados resultantes s
ao analisados, para descobrir as categorias que pro-
duzem um maior custo para a organizac ao.
6. S
ao desenvolvidos planos para modificar o processo, com o objetivo de
eliminar (ou reduzir a freq
uencia das) classes de erros e defeitos que s
ao
mais dispendiosas.
10.2 M
etricas de projeto
As metricas de projeto s
ao usadas para evitar atrasos, avaliar a qualidade e n ao
ultrapassar os custos permitidos. A primeira aplicac ao das metricas de projeto,
na maioria dos projetos de software, ocorre durante a estimativa. Metricas
coletadas de projetos anteriores s
ao usadas como base e ` a medida que o projeto
prossegue, medidas de esforco e de tempo s ao comparadas com as estimativas
originais. Dessa maneira, o gerente do projeto monitora e controla o progresso.
` medida que o trabalho tecnico se inicia, outras metricas de projeto comecam
A
a ter importancia. A taxa de produc ao, representada em termos de p aginas de
documentac ao, horas de revisao, pontos por func ao e linhas de c odigo fonte
entregue, e medida. A ` medida que o software evolui, metricas tecnicas s ao
coletadas para avaliar a qualidade do projeto.
http://www.candidatoreal.com
10.3 Medic
ao de software
As medicoes sao categorizadas em medidas diretas e indiretas. As medidas di-
retas do processo de engenharia de software incluem custo, linhas de c odigo
(lines of code, LOC) produzidas, velocidade de execucao, tamanho de mem oria
e defeitos relatados durante um certo perodo. Medidas indiretas do produto in-
cluem funcionalidade, qualidade, complexidade, eficiencia, confiabilidade, manuteni-
bilidade e muitas outras habilidades.
119
http://www.candidatoreal.com
10.3.1 M
etricas orientadas a tamanho
Sao metricas baseadas em linhas de c
odigo. Metricas orientadas a tamanho
nao s
ao universalmente aceitas como o melhor modo de medir o processo de
desenvolvimento de software. Os opositores argumentam que essas metricas pe-
nalizam programas curtos e bem feitos e que medidas de LOC s ao dependentes
da linguagem de programacao. Por outro lado, existem muitos modelos de esti-
mativas que usam LOC ou KLOC como entrada chave e essas metricas podem
ser facilmente coletadas. As metricas orientadas a tamanho mais utilizadas
incluem:
Erros por KLOC (milhares de linha c
odigo).
Defeitos por KLOC.
$ por LOC.
P
aginas de documentac
ao por KLOC.
Erros por pessoa-mes.
LOC por pessoa-mes.
$ por p
agina de documentac
ao.
10.3.2 M
etricas orientadas a func
ao
Metricas de software orientadas a funcao usam uma medida da funcionalidade
entregue pela aplicacao como valor de normalizacao.
Pontos por func
ao s
ao calculados completando a tabela 10.1. Cinco carac-
tersticas do domnio da informac
ao s
ao determinadas e as contagens s ao reg-
istradas na tabela. Essas caractersticas s
ao definidas da seguinte maneira:
Quantidade de entradas do usu ario. S
ao contadas as entradas do usu
ario
que fornecem dados distintos.
Quantidade de sadas do usu
ario. S
ao contados telas, relat
orios, mensagens
de erros etc.
N
umero de consultas do usu ario. S
ao contadas consultas distintas. Uma
consulta e definida como um entrada que resulta na gerac
ao de alguma
resposta imediata.
Quantidade de arquivos. Cada grupo de dados l ogico (que pode ser parte
de uma base de dados maior ou um arquivo separado) e contado. Esses
http://www.candidatoreal.com
120
http://www.candidatoreal.com
Par
ametro de medic
ao Contagem Simples Medio Complexo Total
121
http://www.candidatoreal.com
10.3.3 M
etricas de pontos por funcao estendidas
A medida de pontos por func ao foi originalmente projetada para ser usada
em aplicac oes de sistemas de informacao comerciais. A medida de pontos por
funcao ficou inadequada para muitos sistemas embutidos e de engenharia (que
enfatizam func ao e controle).
Uma extens ao de pontos por func
ao, chamada pontos por caracterstica uti-
lizada em eplicac oes de software de sistemas. Para calcular pontos por carac-
terstica, valores de domnio de informacao s
ao novamente contados e ponder-
ados. Alem disso, a metrica pontos por caracterstica trata uma nova carac-
tersitca do software: algoritmos.
Outra extens ao de pontos por funcao, para sistemas em tempo real e pro-
dutos de engenharia, foi desenvolvida pela Boeing. Essa abordagem integra a
dimens ao de dados do software com as dimens oes funcional e de controle para
forncer uma medida orientada a func ao, adequada a aplicacoes que enfatizam
as capacidades de func ao e controle. Essa extens ao e chamada de pontos por
funcao 3D. As tres dimensoes s
ao:
Dimensao de dados. Semelhante a contagem de pontos por func
ao tradi-
cional.
Dimens ao funcional. Considera a quantidade de operac
oes internas necess
arias
para transformar dados de entrada para transformar dados de entrada em
sada.
Dimens medida contando a quantidade de transic
ao de controle. E oes entre
estados.
10.4 M
etricas de qualidade de software
A medic
ao da qualidade de software e uma atividade de natureza subjetiva.
Qualidade de software e uma mistura complexa de fatores que vao variar com
cada aplicac
ao diferente e com os clientes que as encomendam. As principais
medidas sao mostradas a seguir:
Corre
cao. A medida mais comum e defeitos por KLOC. Para fins de avaliac
ao
de qualidade, defeitos sao contados durante um perodo padr
ao, tipica-
mente um ano.
122
http://www.candidatoreal.com
Utiliza
cao. Se e amig avei ao uso. Pode ser medida em quatro t opicos: (1)
aptidao fsica ou intelectual necess
aria para aprender a lidar com o sistema,
(2) o tempo necess ario para se tornar moderadamente eficiente no uso
do sistema, (3) o aumento lquido de produtividade e (4) uma avaliac ao
subjetiva das atitudes dos usu arios com relac
ao ao sistema.
Outra medicao muito utilizada e a eficiencia na remoc
ao de defeitos defect
removal efficiency, DRE). A DRE e uma medida da capacidade de filtragem das
atividades de controle e garantia de qualidade de software, ` a medida que sao
aplicadas. A formula utilizada e DRE = E/(E + D). Onde E e a quantidade
de erros encontrados e D a quantidade de defeitos.
As principais formas de classificar fatores de qualidade sao apresentadas nas
subsec
oes a seguir.
Opera
cao do produto. Correc
ao, confiabilidade, utilizac
ao, integridade e eficiencia.
Revis
ao do produto. Mantenabilidade, flexibilidade e testabilidade.
Transi
cao do produto. Portabilidade, reutilizac
ao e interoperabilidade.
difcil desenvolver medidas diretas desses fatores. Assim, um conjunto de
E
metricas e definido e usado para desenvolver expressoes para cada um dos fatores
de acordo com a seguinte relac ao: Fq = c1 m1 + c2 m2 ... + cn mn , em que
Fq e um fator de qualidade de software, cn s ao coeficientes de regress
ao, mn s
ao
as metricas que afetam o fator de qualidade. Infelizmente, muitas das metricas
definidas podem ser medidas apenas sunjetivamente. As metricas podem estar
em forma de checklist que e usada para atribuir um grau a atributos especficos
do software. O peso atribudo a cada metrica e dependente de produtos e
preocupac oes locais.
10.4.2 FURPS
A Hewlett-Packard desenvolveu um conjunto de fatores de qualidade que re-
cebeu a sigla FURPS: funcionalidade, utilizac
ao, confiabilidade, desempenho e
http://www.candidatoreal.com
Utiliza
cao. Avaliada considerando fatores humanos como estetica, consistencia
e documentacao.
Confiabilidade. Avaliada medindo a freq uencia e a severidade das falhas, a
precis
ao dos resultados de sada, o tempo medio entre falhas (MTTF), a
capacidade de recuperac
ao de falhas e previsibilidade do programa.
123
http://www.candidatoreal.com
Utiliza
cao. Grau em que o software e f acil de usar com os subatributos -
inteligibilidade, adestrabilidade e operabilidade.
Efici
encia. Grau em que o software faz uso otimizado dos recursos do sistema
com os subatributos - comportamento em relac
ao ao tempo e comporta-
mento em relac
ao aos recursos.
Esses fatores n
ao necessariamente se prestam a medidas diretas. No entanto,
fornecem de fato uma base valiosa para medidas indiretas e uma excelente lista
de verificac
ao para avaliar a qualidade de um sistema.
10.5 Estimativas
Muitas vezes, as estimativas s ao feitas usando-se a experiencia passada como
u
nico guia. Mas se um novo projeto for totalmente diferente dos projetos re-
alizados ate o momento? Assim, apenas a experencia passada talvez n ao seja
http://www.candidatoreal.com
2. Metricas de software s
ao utilizadas e o hist
orico e usado como uma base
a partir da qual estimativas sao feitas.
124
http://www.candidatoreal.com
O COCOMO II usa pontos por objeto. Como pontos por func ao, o pontos por
objeto e uma medida indireta de software que e calculada usando-se a contagem
da quantidade de telas (na interface com o usu ario, relat
orios e componentes.
Cada inst ancia de objeto em um dos tres nveis de complexidade (simples, medio,
difcil). Essencialmente, a complexidade e func ao da quantidade e fonte das
tabelas de dados do cliente e servidores, que s ao necess arias para gerar a tela ou
125
http://www.candidatoreal.com
relat
orio, e da quantidade de vistas ou sec
oes apresentadas como parte da tela
ou relat
orio.
Deve-se notar que outros modelos de estimativa mais sofisticados (usando
FP e KLOC) tambem est ao disponveis como parte do COCOMO II.
http://www.candidatoreal.com
126
http://www.candidatoreal.com
Captulo 11
Testes
127
http://www.candidatoreal.com
propriedades:
A probabilidade de que uma ligac
ao (aresta) ser
a executada.
O tempo de processamento gasto durante o percurso de uma ligac
ao.
A mem
oria necess
aria durante o percurso de uma ligac
ao.
Os recursos necess
arios durante o percurso de uma ligac
ao.
Existem algoritmos que podem ser aplicados ` as matrizes de grafo. Usando
essaas tecnicas, a an
alise necess
aria para projetar casos de teste pode ser parcial
ou totalmente automatizada.
128
http://www.candidatoreal.com
tres testes s
ao necessarios para tornar o valor de E1 maior que, igual a, ou menor
que o de E2 .
Para uma express ao booleana com n vari aveis, todos os 2n possveis testes
s
ao necess arios (n > 0), mas e pr atica somente quando n e pequeno.
Caso uma express ao booleana seja singular (na qual cada vari avel ocorre
apenas uma vez), h a como gerar um conjunto de testes com menos do que 2n
testes tal que esse conjunto de testes garante a detecc ao de erros de operadores
booleanos m ultiplos e e tambem efetivo para detectar outros erros. Uma delas e
a tecnica de teste de desvio e operador relacional (branch and relational operator,
BRO). Ela usa restric oes de condic
ao para uma condic ao C. Uma restric ao de
condicao para C com n condic oes simples e definida como (D1 , D2 , . . . , Dn ),
em que Di (0 < i n) e um smbolo que especifica uma restric ao sobre o
resultado da i-esima condic ao simples da condic
ao C. Diz-se que uma restric ao
de condic ao D para uma condic ao C e coberta por uma execuc ao de C se,
durante a execuc ao de C, o resultado de cada condic ao simples de C satisfaz a
correspondente restric ao em D. N ao entendeu nada? Como exemplo, considere
a condicao:
C1 : B1 &B2
http://www.candidatoreal.com
129
http://www.candidatoreal.com
130
http://www.candidatoreal.com
11.3.1 M
etodos de teste baseados em grafo
Os objetos que est ao modelados no software e as relacoes que conectam esses
objetos sao utilizadas para criar um grafo. Os n os representam os objetos, as
arestas representam as ligac
oes, os pesos de n
o descrevem as propriedade de um
objeto, assim como os pesos das arestas representam propriedades das ligac oes.
Uma ligac ao direcionada (representada por uma seta) indica que a relacao se
move em apenas uma direc ao. Ligacoes paralelas s
ao usadas quando diversas
relac
oes s
ao estabelecidas entre os n
os.
Os metodos de teste de comportamento que podem fazer usos de grafos s ao:
Modelagem de fluxo de transa c
ao. Os n
os representam passos em alguma
transac
ao e as arestam representam conexoes l
ogicas.
Modelagem de estado finito. Os n os representam diferentes estados do soft-
ware observ
aveis pelo usu
ario e as aresta representam as transic
oes.
Modelagem do fluxo de dados. Os n os s
ao objetos de daods e as ligac
oes
s
ao transformac
oes que ocorrem para traduzir um objeto de dados em
outro.
131
http://www.candidatoreal.com
11.3.3 An
alise de valor limite
Um grande n umero de erros tende a ocorrer nas fronteiras do domnio de en-
trada. E por essa raz ao que a analise de valor-limite (boundary value analysis,
BVA) foi desenvolvida como tecnica de teste.
A BVA leva ` a selec
ao de casos de teste nas bordas da classe. Em vez de
focalizar somente as condic oes de entrada, a BVA deriva casos de teste tambem
para o domnio de sada.
Se uma condic ao de entrada especifica um intervalo ou um valor limitado
pelos valores a e b, casos de teste devem ser projetados com os valores a e b e
imediatamente acima e imediatamente abaixo de a e b. O mesmo vale para as
condic
oes de sada. Se as estruturas de dados tem limites prescritos, certifique-se
de projetar um caso de teste para exercitar a estrutura de dados no seu limite.
132
http://www.candidatoreal.com
Teste da documenta c
ao e dispositivos de ajuda. Pode ser abordado em
duas fases. A primeira fase, revisao e inspenc ao, examina o documento
quanto `
a clare editorial. A segunda fase, teste ao vivo, usa a documentacao
em conjunto com o uso do programa real. Nesta fase, os v arios metodos
de caixa-preta podem ser utilizados.
de eventos externos.
Testes intertarefas. Tarefas assncornas que se comunicam sao testadas
com diferentes taxas de dados e carga de processamento para detectar
se erros de sincronizac
ao entre tarefas v
ao ocorrer.
Teste de sistema. O software e o hardware s ao integrados e todo um
conjunto de testes de sistema e conduzido numa tentativa de descobrir
erros na interface software-hardware.
133
http://www.candidatoreal.com
11.5 Estrat
egia de teste de software
O projeto efetivo de caso de testes e importante, mas n ao suficiente para o
sucesso da atividade de testes. A estrategia, isto e, a serie planejada de re-
alizac
ao de testes, e tambem crucial. Basicamente, h a tres grandes fases de
teste:
Teste de unidade. Tem por objetivo testar a menor unidade do projeto (um
componente de software que n ao pode ser subdividido), procurando iden-
tificar erros de l
ogica e de implementac
ao em cada modulo separamente.
Teste de integra c
ao. Visa descobrir erros associados `
as interfaces entre os
modulos quando esses s
ao integrados para formar a estrutura do produto
de software.
Teste de sistema. Tem por objetivo identificar erros de func oes (requisitos
funcionais) e caractersticas de desempenho (requisito n
ao funcional) que
n
ao estejam de acordo com as especificacoes.
Tipicamente, os primeiros testes focalizam componentes individuais e apli-
cam testes caixa-branca e caixa-preta. Na integrac ao, o foco e o projeto e a ar-
quitetura do sistema. Finalmente, uma serie de testes de alto nvel e executada
quando o sistema estiver operacional, visando descobrir erros nos requisitos.
No teste de unidade, faz-se necess ario construir pequenos componentes para
permitir testar modulos invidualmente, os ditos drivers e stubs. Um driver e um
programa respons avel pela ativac
ao e coordenac
ao do teste de uma unidade. Ele
e responsavel por receber dados de teste fornecidos pelo testador, passar esses
dados para a unidade que est a sendo testada, obter os resultados produzidos e
apresenta-los ao testador. Um stub e uma unidade que substitui, na hora do
teste, uma outra unidade chamada pela unidade que est a sendo testada. Em
geral, um stub simula o comportamento de uma unidade chamada com o mnimo
de computac ao ou manipulac ao de dados.
A abordagem de integracao de m odulos pode ter impacto na quantidade de
drivers e stubs a ser construda. Sejam as seguintes abordagens:
Integrac
ao ascendente (bottom-up). Cada m odulo no nvel inferior da hi-
erarquia e testado individualmente. A seguir, s
ao testados m odulos que
chamam os previamentes testados. Neste caso, apenas drivers sao necess
arios.
Integrac
ao descendente (top-down). Comeca de cima para baixo. Apenas
stubs s
ao necess
arios.
http://www.candidatoreal.com
134
http://www.candidatoreal.com
Teste de aceita c
ao. Realizado pelos clientes. Assegura que o sistema solici-
tado e o que foi construdo.
Teste de instalac
ao. Necess ario quando os testes de aceitac
ao n
ao s
ao feitos
onde o software ser
a realmente instalado.
http://www.candidatoreal.com
135
http://www.candidatoreal.com
Captulo 12
UML
12.1.1 Ator
Um ator e uma entidade externa (fora do sistema) que interage com o sistema
participando (e freq
uentemente iniciando) um caso de uso. Atores podem ser
pessoas reais (por exemplo usu
arios do sistema), outro sistema de computador
ou eventos externos.
136
http://www.candidatoreal.com
Atores nao representam as pessoa fsica ou sistemas, mas sua regra. Isto
significa que quando uma pessoa interage com o sistema de diferentes maneiras
(assumindo diferentes regras) ela ser
a representada por diversos atores. Por ex-
emplo, uma pessoa que fornece suporte ao cliente por telefone e recebe ordens do
cliente para o sistema pode ser representado por um ator da equipe de suporte.
12.1.2 Descri
cao do caso de uso
Descric
ao do caso de uso s
ao narrativas de texto do caso de uso. Elas usualmente
tomam a forma de uma nota ou um documento que e de alguma maneira ligado
ao caso de uso, e explana o processo ou atividades que tomar ao lugar no caso
de uso.
137
http://www.candidatoreal.com
+ indica atributos p
ublicos.
# indica atributos protegidos.
indica atributos privados
As operac oes tambem sao exibidas com pelo menos seu nome, e podem
tambem mostrar seus par ametros e valores de retorno.
Classes podem ter modelos, um valor que e usado para uma classe ou tipo n ao
especificado. O tipo de modelo e especificado quando uma classe e iniciada (isto
e um objeto e criado). Modelos existem no C + + moderno e foram introduzidos
no Java 1.5 onde eles sao chamados de genericos.
12.2.1 Associa
coes de classe
Classes podem relacionar-se (ser associada com) com outras de diferentes maneiras:
http://www.candidatoreal.com
Generaliza
cao
EM UML, uma generalizac ao entre duas classes coloca-as numa hierarquia rep-
resentando o conceito de heranca de uma classe derivada de uma classe base.
Em UML, Generalizac oes sao representadas por uma linha conectando duas
classes, com uma seta no lado da classe base.
Associa
coes
S
ao o mecanismo que permite objetos comunicarem-se entre si. Elas descrevem
a conex
ao entre diferentes classes (a conex
ao entre os objetos atuais e chamada
138
http://www.candidatoreal.com
Agrega
cao
Agregac
oes s
ao um tipo especial de associac
ao no qual as duas classes partici-
pantes nao possuem em nvel igual, mas fazem um relacionamento todo-parte.
Uma agregac ao descreve como a classe que possui a regra do todo, e composta
(tem) de outras classes, que possuem a regra das partes. Para agregac oes, a
classe que age como o todo sempre tem uma multiplicidade de um.
Em UML, agregac oes s
ao representadas por uma associac ao que mostra
um romb oide no lado do todo. Representac ao visual de um relacionamento
Agregac
ao em UML.
http://www.candidatoreal.com
Composi
cao
Composic oes s
ao associac
oes que representam agregacoes muito fortes. Isto
significa que composic
oes formam relacionamentos todo-parte tambem, mas o
relacionamento e t
ao forte que as partes n
ao pode existir independentes.
Em UML, composic oes s
ao representadas por um romb oide s
olido no lado
do todo.
139
http://www.candidatoreal.com
140
http://www.candidatoreal.com
pelos diagramas de seq uencia, mas neste, a enfase e colocada em como as in-
terac
oes ocorrem no tempo, enquanto os diagramas de colaborac ao colocam os
relacionamentos entre os objetos e sua topologia em destaque.
Em diagramas de colaborac ao, as mensagens enviadas de um objeto para
outro sao representadas por setas, mostrando o nome da mensagem, par ametros,
e a sequencia da mensagem. Diagramas de colaborac ao sao especialmente in-
dicados para mostrar um fluxo ou situac ao especfica do programa e podem,
rapidamente, demonstrar ou explanar um processo na l ogica do programa.
tence a exatamente uma classe e representa um resumo dos valores dos atributos
que uma classe pode tomar. Um estado UML descreve o estado interno de um
objeto para uma classe em particular
Observe que nem toda mudanca em um dos atributos de um objeto pode ser
representada por um estado, mas somente aquelas mudancas que podem afetar
significativamente o trabalho do objeto.
Existem dois tipos especiais de estados: inicial e final. Eles s
ao especiais
porque nenhum evento pode fazer com que um objeto retorne para seu estado
inicial, e da mesma maneira nenhum evento pode tirar um objeto de seu estado
final, uma vez que ele j
a o tenha alcancado.
141
http://www.candidatoreal.com
142
http://www.candidatoreal.com
143
http://www.candidatoreal.com
Linhas de texto. S
ao u
teis para adicionar informac
oes curtas de texto ao di-
agrama. S
ao textos livres.
Notas. S
ao u teis para adicionar informac
oes mais detalhadas sobre um objeto
ou situacao especfica. Elas possuem a grande vantagem de poderem ser
ancoradas a elementos UML para mostrar que a nota pertence a um objeto
especfico ou situacao.
Caixas. S
ao ret
angulos de forma livre que podem ser usados para agrupar itens,
tornando os diagramas mais legveis.
144
http://www.candidatoreal.com
Captulo 13
Ger
encia de Configura
cao e
Mudancas
A gestao da configurac
ao do software e uma atividade guarda-chuva e e aplicada
ao longo de todo o processo de software. O gerenciamento de configurac ao e de
solicitac
oes de mudanca envolve os seguintes itens:
Identificac
ao dos itens de configurac
ao;
Restric
ao das mudancas nesses itens;
Definic
ao e o gerenciamento das configurac
oes desses itens.
Sem o controle dos in umeros artefatos produzidos pelas muitas pessoas que
trabalham em um projeto, s ao criados artefatos conflitantes, gerando um grande
desperdcio para a organizacao. Os principais problemas s ao a atualizac
ao si-
http://www.candidatoreal.com
mult
anea, a notificac
ao limitada e a existencia de v
arias vers
oes. A seguir, cada
uma delas e descrita em detalhes.
Atualizac
ao simultanea:
Quando dois ou mais membros da equipe trabalham separadamente no
mesmo artefato, o ultimo membro a fazer mudancas desfaz o trabalho re-
alizado pelo anterior. O problema b asico e que se um sistema n
ao permite a
atualizac
ao simult
anea, isso leva as mudancas em serie e diminui o ritmo do
processo de desenvolvimento. Entretanto, com a atualizac ao simultanea,
o desafio e detectar se ocorreram atualizac oes simultaneamente e resolver
145
http://www.candidatoreal.com
Notificac
ao limitada:
Quando um problema e corrigido nos artefatos compartilhados por v
arios
desenvolvedores e alguns deles n
ao s
ao notificados da mudanca.
Varias vers
oes:
A maioria dos programas de grande porte e desenvolvida em v arias vers
oes
evolutivas. Uma vers ao pode estar sendo usada pelo cliente, enquanto
outra esta em teste e uma terceira ainda est a em desenvolvimento. Se
forem encontrados problema em qualquer uma das vers oes, as correc
oes
devem ser propagadas entre elas. Isso pode levar a confus oes que levam
a confusoes dispendiosas. Um sistema de Gerencia de Configurac ao e u
til
para gerenciar as diversas variantes de sistemas de software em desenvolvi-
mento pois controla as versoes que sao utilizadas em determinadas builds
do software ao compilar builds de programas individuais ou de uma nova
vers
ao do software de acordo com a especificacao definida pelo usuario e ao
impor polticas de desenvolvimento do sistema. Os principais benefcios
do gerenciamento da mudanca s ao:
Suporte a diversos metodos de desenvolvimento;
Preservac
ao da integridade do produto;
Garantia da abrangencia e precis
ao do produto configurado;
Ambiente est
avel no qual o produto ser
a desenvolvido;
Restric
ao das mudancas feitas nos artefatos com base nas polticas
do projeto;
Trilha de auditoria indicando por que, quando e por quem um artefato
foi alterado.
Alem disso, ele armazena dados detalhados sobre as alterac
oes, tais como,
quem criou uma vers ao especifica, quais vers
oes dos c
odigo fonte foram
utilizadas em determinado build, alem de outras informac oes relevantes.
13.1 As Atividades
http://www.candidatoreal.com
Configurar ambiente;
Estabelecer polticas;
Escrever plano;
Criar unidade de implantac
ao;
Relatar status de configurac
ao;
Realizar auditorias de configurac
ao;
146
http://www.candidatoreal.com
Criar baselines;
Fazer mudancas;
Liderar mudancas;
Enviar solicitac
ao de mudanca;
Atualizar solicitac
ao de mudanca.
13.2 Artefatos
Na disciplina de Gerencia de Configurac
ao os principais artefatos s
ao:
Reposit
orio do projeto;
Unidade de implantac
ao;
Metricas do projeto;
Registro da auditoria de configurac
ao.
13.3 Pap
eis e Responsabilidades
Na disciplina de Gerencia de Configurac
ao os principais papeis e responsabili-
dades s
ao:
http://www.candidatoreal.com
Gerente de configurac
ao
Configurar ambiente;
Estabelecer polticas;
Escrever plano;
Criar unidades de implantac
ao;
Relatar status de configurac
ao;
Realizar auditoria de configurac
ao.
147
http://www.candidatoreal.com
Integrador
Criar espacos de trabalho de integrac
ao;
Criar baselines;
Promover baselines.
Outros papeis
148
http://www.candidatoreal.com
Captulo 14
CMM - Capability
Maturity Model
1. Inicial
2. Repetitivo
3. Definido
4. Gerenciado
5. Em Otimizac
ao
excelencia na gest
ao de software. O objetivo principal nas transic oes desses
nveis de maturidade e a realizac
ao de um processo controlado e mensurado
como a fundacao para melhoria contnua. Cada nvel de maturidade possui um
conjunto de praticas de software e gest
ao especficas, denominadas
areas-chave
do processo (KPA). Estas devem ser implantadas para a organizac ao atingir o
nvel de maturidade em questao.
O CMM identifica os nveis atraves dos quais uma organizacao deve evoluir
para estabelecer uma cultura de excelencia na engenharia de software. Como
cada nvel de maturidade do CMM forma a base necess aria sobre a qual o
pr
oximo nvel ser
a construdo, normalmente tentar pular nveis e improdutivo,
149
http://www.candidatoreal.com
A adoc
ao de um processo de desenvolvimento ajuda a garantir que pr aticas
existentes s
ao utilizadas em momentos de stress. Quando estas pr
aticas s
ao ado-
tadas, os projetos decorrem e sao gerenciados de acordo com o planejamento
inicial.
http://www.candidatoreal.com
150
http://www.candidatoreal.com
As
areas chaves de processo desse nvel de maturidade s
ao:
Acompanhamento e Supervis
ao de Projeto de Software (SPTO);
As
areas chaves de processo desse nvel de maturidade s
ao:
Definic
ao do Processo da Organizac
ao (OPD);
Coordenac
ao entre Grupos (IC);
Revis
oes Tecnicas Formais (PR).
151
http://www.candidatoreal.com
Organizac
oes neste nvel conseguem metas qualitativas para o processo de
desenvolvimento de software e de manutenc
ao.
As
areas chaves de processo desse nvel de maturidade s
ao:
As
areas chaves de processo desse nvel de maturidade s
ao:
http://www.candidatoreal.com
Prevenc
ao de Defeitos (DP);
152
http://www.candidatoreal.com
As
areas-chave do Nvel 3 est
ao focadas tanto nas quest
oes do projeto, quanto
da organizac
ao, conforme a organizac ao estabelece uma infra-estrutura que efe-
tivamente institucionaliza os processos de engenharia de software e de gerenci-
amento de todos os projetos.
Figura 14.2: Areas-chave de processo no modelo CMM
153
http://www.candidatoreal.com
de maturidade.
Pessoas
Nvel 1: Sucesso depende de indivduos e her
ois. Regime constante
de emergencia (apagar incendio). Relacionamento entre grupos e
descoordenado e muitas vezes conflitante;
Nvel 2: Sucesso ainda depende de indivduos, mas passam a contar
com apoio gerencial. Os compromissos s ao compreendidos e gerenci-
ados. Existe treinamento para algumas func oes;
Nvel 3: Grupos de projeto trabalham de maneira coordenada. O
treinamento e planejado de acordo com as necessidades de cada papel
e aplicado convenientemente;
Nvel 4: Existe um forte sentido de trabalho em equipe;
Nvel 5: Todos est
ao engajados em atividades de melhoria contnua.
Tecnologia
Nvel 1: A introduc
ao de novas tecnologias e arriscada;
Nvel 2: Atividades bem definidas facilitam a introduc
ao de novas
tecnologias;
Nvel 3: Novas tecnologias s
ao avaliadas qualitativamente;
Nvel 4: Novas tecnologias s
ao avaliadas quantitativamente;
Nvel 5: Novas tecnologias s
ao planejadas e introduzidas com total
controle.
Medidas
154
http://www.candidatoreal.com
Parte IV
Linguagem de Programa
c
ao
Java
http://www.candidatoreal.com
155
http://www.candidatoreal.com
Captulo 15
Conceitos B
asicos de Java
15.1 Pacotes
Em projetos pequenos e comum colocar todos os arquivos java em um u nico
diret
orio. Essa e uma abordagem r apida, simples. No entanto, se o pequeno
projeto comecar a crescer, o n
umero de arquivos aumentar
a e administr
a-los em
um unico diret
orio pode se tornar um problema.
Pacotes nao s
ao nada mais que uma forma de organiza os arquivos que inte-
gram o projeto em diferentes diret
orios de acordo com suas funcionalidades ou
categoria a qual eles pertencam.
156
http://www.candidatoreal.com
Para indicar que uma classe pertence a um determinado pacote basta inciar
o arquivo java como mostrado no exemplo a seguir.
//Somente c
odigo pode vir antes dessa linha
package world;
Uma classe p ublica pode ser acessada por qualquer outra classe. Caso seja
declarada sem o modificador public, a classe ser
a package-private, ou seja, s
o
podera ser acessada por classes do mesmo pacote.
15.3 Vari
aveis
Na linguagem de programac
ao Java s
ao definidos os seguintes tipos de vari
aveis:
Vari
aveis de Inst
ancia (Atributos n
ao est
aticos): Um objeto armazena seu
estado individual em atributos n ao est
aticos, ou seja, declarados sem o
157
http://www.candidatoreal.com
Vari aveis de Classe (Atributos est aticas): Uma vari avel de classe e todo
atributo declarado com o modificador static. Isso indica ao compilador
que existe apenas uma c opia da variavel, n
ao importando o n umero de
vezes que essa classe foi instanciada. Portanto, quando o valor de uma
variavel de classe e alterada em um dos objetos, o novo valor se torna
visvel para todos os outros objetos da mesma classe. Para impedir que
uma vari avel de classe tenha seu valor alterado ela deve ser declarada com
o mofificador final.
Variaveis Locais: As vari aveis locais sao utilizadas para armazenar o es-
tado tempor ario dos metodos. A sintaxe de declarac ao de uma variavel
local e similar a de declarac ao de uma vari avel de inst
ancia. O que deter-
mina se uma vari avel e local e a parte do c
odigo em que ela e declarada
- entre as chaves que determinam o incio e o fim de um metodo. Uma
vari
avel e visvel apenas para o metodo no qual foi declarada; n ao pode
ser acessada do resto da classe.
// Vari
avel de Inst^
ancia
public int velocidade = 0;
// Vari
avel de Classe
public static int qtdRodas = 2;
// Vari
avel de Classe com valor constante
public static final String marca = "Caloi";
}
http://www.candidatoreal.com
15.4 Operadores
A lista abaixo sumariza os operadores suportados pela linguagem Java:
Operador de Atribuic
ao Simples
= Operador de Atribuic
ao Simples
158
http://www.candidatoreal.com
Operadores aritmeticos
+ Adic
ao (Tambem utilizado para concatenac
ao de Strings)
- Subtrac
ao
Multiplicac
ao
/ Divis
ao
% Resto da Divisao
Operadores Un
arios
+ Operador un
ario mais
Operador un
ario menos; Inverte o sinal de uma vari
avel
++ Operador de Incremento; Incrementa um valor de 1
Operador de Decremento; Decrementa o valor de 1
! Operador L
ogico de complemento; Inverte o valor de um boolean
Operadores de Comparac
ao
== Igual
!= Diferente
> Maior
>= Maior ou Igual
< Menor
<= Menor ou Igual
instanceof Compara um objeto a um tipo especfico
Operadores Condicionais
159
http://www.candidatoreal.com
15.5 Express
oes, Senten
cas e Blocos
Uma express ao e uma construc
ao feita de vari
aveis, operadores e chamadas de
metodos, descrita de acordo com a sintaxe da linguagem. A seguir, exemplos
de express
oes:
//Declara
c~ao e inicializa
c~ao de uma v
ari
avel do tipo int
int cadence = 0;
//Atribui
c~ao de valor a uma posic~
ao de um vetor de int
anArray[0] = 100;
//Imprimindo um valor na tela
System.out.println("Element 1 at index 0: " + anArray[0]);
//Atribui
c~ao de valor baseado no resultado de uma operac~ao de adi
c~ao
result = 1 + 2;
//Utiliza
c~ao de par^
entesis para explicitar ordem de execu c~
ao das opera
c~oes
zaz = x / (y+10);
// Statement de atribuic~
ao
aValue = 8933.234;
// Statement de incremento
aValue++;
// Statement de chamada de metodo
System.out.println("Hello World!");
// Statement de cria
c~ao de objeto
Bicycle myBike = new Bicycle();
class BlockDemo {
public static void main(String[] args) {
boolean condition = true;
if (condition) { // begin block 1
System.out.println("Condition is true.");
} // end block one
else { // begin block 2
System.out.println("Condition is false.");
} // end block 2
}
}
160
http://www.candidatoreal.com
If-Then
void applyBrakes(){
if (isMoving){ // the "if" clause: bicycle must moving
currentSpeed--; // the "then" clause: decrease current speed
}
}
If-Then-Else
//Exemplo 1
void applyBrakes(){
if (isMoving) {
currentSpeed--;
} else {
System.err.println("The bicycle has already stopped!");
}
}
//Exemplo 2
class IfElseDemo {
public static void main(String[] args) {
grade = B;
} else if (testscore >= 70) {
grade = C;
} else if (testscore >= 60) {
grade = D;
} else {
grade = F;
}
//O resultado ser
a C pois, uma vez que a condi
c~ao
e atendida,
//o restante do c
odigo If-Then-Else n~
ao
e mais avaliado
System.out.println("Grade = " + grade);
161
http://www.candidatoreal.com
}
}
Switch
class SwitchDemo {
public static void main(String[] args) {
int month = 2;
int year = 2000;
int numDays = 0;
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
numDays = 31;
break;
case 4:
case 6:
case 9:
case 11:
numDays = 30;
break;
case 2:
if ( ((year % 4 == 0) && !(year % 100 == 0))
|| (year % 400 == 0) )
numDays = 29;
else
numDays = 28;
break;
default:
System.out.println("Invalid month.");
break;
}
http://www.candidatoreal.com
While e Do-While
//Exemplo While
class WhileDemo {
public static void main(String[] args){
int count = 1;
//Teste realizado antes da execu
c~ao do bloco de c
odigo
162
http://www.candidatoreal.com
//Exemplo Do-While
class DoWhileDemo {
public static void main(String[] args){
int count = 1;
do {
System.out.println("Count is: " + count);
count++;
//Teste ao fim da execu
c~ao do bloco de c
odigo
//C
odigo
e executado ao menos uma vez
} while (count <= 11);
}
}
For
//Exemplo 1
class ForDemo {
public static void main(String[] args){
for(int i=1; i<11; i++){
System.out.println("Count is: " + i);
}
}
}
//Exemplo 2
for ( ; ; ) { //infinite loop
// c
odigo
}
//Exemplo 3
class EnhancedForDemo {
http://www.candidatoreal.com
Break
//Exemplo 1
class BreakDemo {
163
http://www.candidatoreal.com
//Exemplo 2
class BreakWithLabelDemo {
public static void main(String[] args) {
int[][] arrayOfInts = {{32,87,3,589},
{12,1076,2000,8},
{622,127,77,955}};
search:
for (i = 0; i < arrayOfInts.length; i++) {
for (j = 0; j < arrayOfInts[i].length; j++) {
if (arrayOfInts[i][j] == searchfor) {
foundIt = true;
http://www.candidatoreal.com
if (foundIt) {
System.out.println("Found " + searchfor + " at " + i + ", " + j);
} else {
System.out.println(searchfor + " not in the array");
164
http://www.candidatoreal.com
}
}
}
Continue
//Exemplo 1
class ContinueDemo {
public static void main(String[] args) {
//Exemplo 2
class ContinueWithLabelDemo {
public static void main(String[] args) {
test:
for (int i = 0; i <= max; i++) {
int n = substring.length();
int j = i;
int k = 0;
while (n-- != 0) {
if (searchMe.charAt(j++)!= substring.charAt(k++)) {
//Interrompe a itera
c~ao do loop while e vai
//para proxima itera
c~ao do loop for,
//marcada pelo label test
continue test;
165
http://www.candidatoreal.com
}
}
foundIt = true;
break test;
}
System.out.println(foundIt ? "Found it" : "Didnt find it");
}
}
Classes Aninhadas
Classes Instanciadas
Classes Membro
Classes Locais
Classes An
onimas
http://www.candidatoreal.com
//Classe externa
class Par {
166
http://www.candidatoreal.com
//Classe interna
static class Chave {
private String nome;
public Chave(String nome) {
this.nome = nome;
}
}
as vari
aveis podem assumir. Por exemplo: estacoes do ano, naipes ou cartas do
baralho, planetas do sistema solar etc. Originalmente, a forma padrao utilizada
para representar tipos enumerados era o chamado int Enum Pattern (tipos enu-
merados baseados em inteiros).
167
http://www.candidatoreal.com
Valores imprimidos n
ao s
ao explicativos: Como os valores s
ao int, quando
impressos n
ao apresentam a informacao que representam diretamente.
private printSeasons() {
//Loop recuperando cada um dos valores poss
veis de Season
for (Season s : Season.values()){
System.out.println(s);
}
}
}
15.9 Anotac
oes
Anotacoes (annotations) proveem dados sobre o programa mas n ao s
ao parte do
do programa propriamente dito. Elas n ao possuem efeito direto na operac
oes do
c
odigo com o qual est ao relacionadas. Esse recurso da linguagem Java permite
que o programador n ao se preocupe em escrever c odigo auxiliar (arquivos de
configurac
ao, por exemplo). A ideia e que o programador diga o que tem que
ser feito utilizando as anotacoes e ferramentas auxiliares facam o restante do
http://www.candidatoreal.com
Informac
oes para o compilador: Anotac
oes podem ser utilizadas pelo com-
pilador para detectar erros ou sumprimir mensagens de warning;
Processamento em tempo de Compilac ao ou Deploy: Ferramentas aux-
iliares podem processar as anotac
oes para gerar c
odigo, arquivos XML
etc;
Processamento em tempo de Execuc ao: Algumas anotac
oes podem ser
processsadas em tempo de execuc
ao;
168
http://www.candidatoreal.com
Documentac
ao: Anotacoes podem ser utilizadas para substituir coment
arios
no c
odigo.
Os tres pre-defindos de anotac
oes utilizadas pelo compilador s
ao:
@Deprecated: Indica que o elemento marcado est
a deprecated e n
ao deve
ser mais utilizado. O compilador gera um warning sempre que um pro-
grama utilizar um uma classe, um metodo ou um atributo marcado como
@Deprecated;
//Indica que o m
etodo ir
a sobrescrever o m
etodo da superclasse
@Override
int overriddenMethod() { //c
odigo }
15.10 Gen
ericos
http://www.candidatoreal.com
Os genericos s
ao um recurso introduzido a partir Java 5 e permite ao progra-
mador escrever c odigo abstraindo tipos de dados. Os genericos s
ao tipicamente
utilizados em conjunto com interfaces ex: List) que herdam da interface Collec-
tion ou de classes que a implementam (ex: AbstractList, ArrayList, LinkedList,
Vector)
169
http://www.candidatoreal.com
//Criac~
ao de uma collection do tipo LinkedList
List myIntList = new LinkedList();
//Adi
c~ao de um elemento do tipo Integer a collection
myIntList.add(new Integer(0));
//Recuperando um elemento da collection. Cast para Integer
e necess
ario
Integer x = (Integer) myIntList.iterator().next();
//Criac~
ao de uma collection LinkedList para armazenar objetos do tipo Integer
List<Integer> myIntList = new LinkedList<Integer>();
//Adi
c~ao de um elemento do tipo Integer a collection
myIntList.add(new Integer(0));
////Recuperando um elemento da collection. Cast n~ao e necess
ario
Integer x = myIntList.iterator().next();
//Wildcards ou Coringas
//M
etodo com par^
ametro Casulo. Aceita Casulo de qualquer tipo
void imprimir (Casulo<?> c) {
// c
odigo do m
etodo ...
}
170
http://www.candidatoreal.com
15.11 Reflex
ao
A Reflection permite um programa Java examinar ou fazer a introspecc ao nele
mesmo, ou seja, olhar e examinar suas propriedades e estrutura. Com isso, voce
pode, por exemplo obter o nome de todos os membros de uma classe, como
atributos e metodos, bem como executar um metodo usando a Introspection.
Esse recurso e utilizado, por exemplo, pelos ambientes de desenvolvimento (as
IDEs) para examinar e exibir a estrutura e conte udo das classes e beans. A
seguir um exemplo do uso de refetions.
import java.lang.reflect.*;
171
http://www.candidatoreal.com
System.out.println("exce
c~ao #" + j + " " + evec[j]);
//Sa
da da execu
c~ao da classe Classe1:
//Lista de m
etodos da Classe1 com todas as suas propriedades
-------------------------------------
nome = funcao1
-------------------------------------
membro de:class Classe1
modificador:private
par^
ametro #0 class java.lang.Object
par^
ametro #1 int
excec~
ao #0 class java.lang.NullPointerException
tipo de retorno = int
-------------------------------------
nome = main
-------------------------------------
membro de:class Classe1
modificador:public static
par^
ametro #0 class [Ljava.lang.String;
tipo de retorno = void
http://www.candidatoreal.com
172
http://www.candidatoreal.com
Captulo 16
Classes Essenciais
16.1.1 Exce
coes tpicas
Em Java excecoes s
ao objetos. A classe Exception e a superclasse de todas as
excec
oes. Exemplos tpicos de excec
oes s
ao:
Indice de uma array fora do intervalo permitido (ArrayIndexOutOfBound-
sException);
Problemas em operac
oes aritmeticas, como overflows e divis
oes por zero
(ArithmeticException);
173
http://www.candidatoreal.com
Argumentos inv
alidos numa chamada a um metodo (IllegalArgumentEx-
ception);
Uso de uma referencia que n
ao aponta para nenhum objeto (NullPoint-
erException);
Acesso a um arquivo inexistente (FileNotFoundException);
Erros de banco de dados (SQLException);
//Exemplo 1: M
etodo indica que todas exce
c~oes ser~
ao lan
cadas, ou seja,
// n~
ao ser~
ao tratadas internamente.
//Exemplo 2: M
etodo indica que as exce~
oes do tipo excecao1
http://www.candidatoreal.com
174
http://www.candidatoreal.com
try {
http://www.candidatoreal.com
// C
odigo que pode gerar exce
c~oes dos tipos
// ExceptionType1 e ExceptionType2
}catch(ExceptionType1 opa1){
// C
odigo para lidar com uma exce
c~ao do tipo
// ExceptionType1
175
http://www.candidatoreal.com
}finally{
// C
odigo que deve ser executado em qualquer caso
Threads s
ao comumente chamadas de processos leves. Processos e threads
proveem um ambiente de execuc
ao, mas criar uma thread requer menos recursos
que criar um processo. As threads existem dentro dos processos - cada processo
possui pelo menos uma. As threads compartilham os recursos do processo, in-
cluindo mem oria e arquivos abertos, favorecendo a eficiencia da comunicac
ao,
porem a tornando potencialmente problem atica.
Cada aplicac
ao possui pelo menos uma thread - ou v
arias, se considerarmos
a threads de sistema. Do ponto de vista do programador, uma aplicacao comeca
com apenas uma u nica thread chamada main, e essa possui a habilidade para
criar novas threads.
http://www.candidatoreal.com
176
http://www.candidatoreal.com
177
http://www.candidatoreal.com
16.2.3 Interrup
coes
Uma interrupcao indica que a thread deve parar o que est
a fazendo e comecar
a fazer outra coisa. E o programador quem deve definir como a thread deve
responder a uma interrupcao. O uso mais comum de interrupc oes e finalizar a
execuc
ao de uma thread.
16.2.4 Joins
O metodo join e usado para fazer com que uma thread aguarde ate que outra
thread termine. Em geral, o join e utilizado para a thread esperar pelo termino
da execuc
ao de suas threads filhas. Imagine uma aplicac ao que dependa da
execuc
ao de tres tarefas independentes A, B e C. A aplicac
ao s
o pode continuar
quando cada uma das tarefas estiver sido completada. Portanto, a aplicac ao
(thread principal) deve executar o metodo join para cada uma das tarefas A,B
e C. O codigo java para essa situac
ao teria a seguinte estrutura:
//C
odigo inicial da thread main
//Threads auxiliares A, B e C
Thread a = new thread_tarefaA();
Thread b = new thread_tarefaB();
Thread c = new thread_tarefaC();
http://www.candidatoreal.com
//C
odigo restante da thread main
178
http://www.candidatoreal.com
16.2.5 Sincroniza
c
ao
As threads se comunicam entre si essencialmente por meio de compartilhamento
no acesso de atributos e referencias a objetos. Essa e uma forma de comunicac ao
eficiente, porem permite a ocorrencia de dois tipos de erros: interferencia entre
threads e erros de consistencia de mem oria. Para contornar esses problemas o
Java oferece o recurso de sincronizac ao.
//Interfer^
encia entre threads
int a = 0;
thread_incrementa_a.start();
thread_decrementa_a.start();
thread_imprime_a.start();
statements sincronizadas.
179
http://www.candidatoreal.com
private int c = 0;
//M
etodos sincronizados para manipular um contador
public synchronized void increment() {c++;}
public synchronized void decrement() {c--;}
public synchronized int value() {return c;}
private long c1 = 0;
private long c2 = 0;
private Object lock1 = new Object();
private Object lock2 = new Object();
(new Thread(r)).start();
e.execute(r);
180
http://www.candidatoreal.com
Na primeira forma, uma nova thread seria criada para realizar a tarefa
definida em r, enquanto na segunda, isso dependeria da implementac
ao da in-
terface executora.
Streams de Bytes
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
181
http://www.candidatoreal.com
int c;
while ((c = in.read()) != -1) {
out.write(c);
}
} finally {
if (in != null) {in.close();}
if (out != null) {out.close();}
}
}
}
Streams de Caracteres
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
}
}
import java.io.FileReader;
182
http://www.candidatoreal.com
import java.io.FileWriter;
import java.io.BufferedReader;
import java.io.PrintWriter;
import java.io.IOException;
No exemplo 1 o c
odigo utiliza operac
oe de I/O n
ao bufferizadas. Isso significa
que a cada requisic
ao de leitura ou escrita expressa no c odigo e prontamente
tratada pelo sistema operacional, disparando, por exemplo, acesso ao disco ou
a rede.
`
Para reduzir esse tipo de overhead a plataforma Java implementa I/O streams
bufferizados. Os input streams leem dados de uma area de buffer; a API in-
put nativa so e chamada quando esse buffer est a vazio ou n
ao contem os dados
procurados. Similarmente, os output streams escrevem dados para uma area de
buffer, enquanto a API nativa de output s o e chamada quando o buffer de es-
crita est
a cheio ou quando algum comando que implique no flushing e utilizado,
por exemplo, println.
16.3.2 Serializa
c
ao - Streams de Objetos
Os streams apresentados ate agora s ao chamados data streams. Assim como
http://www.candidatoreal.com
183
http://www.candidatoreal.com
import java.io.*;
try {
// Serializa o objeto para um arquivo
ObjectOutput out = new ObjectOutputStream(
new FileOutputStream("pessoa.ser")
);
out.writeObject(p);
out.close();
}catch (IOException e) {
//Pode ser gerado na serializac~
ao ou desserializa
c~ao
System.out.println(e.getMessage());
}catch (ClassNotFoundException e) {
//Pode ser gerado desserializac~
ao
System.out.println(e.getMessage());
}
}
184
http://www.candidatoreal.com
185
http://www.candidatoreal.com
#Esta
e uma linha de comentario
#Mon Jun 11 22:37:16 BRT 2007
app.diretorio=/zaz/traz/bin
app.usuario=camatchones
app.mododeoperacao=producao
import java.util.Properties;
import java.io.*;
}catch(Exception e){
System.out.println(e.getMessage());
}
}
}
186
http://www.candidatoreal.com
187
http://www.candidatoreal.com
Captulo 17
Colec
oes
s
ao:
188
http://www.candidatoreal.com
Reduc
ao do esforco de aprendizado de APIs, eliminando a necessidade de
se aprender v
arias APIs de colec
oes diferentes;
Reduc
ao do esforco de projetar e implementar APIs, eliminando a neces-
sidade de se criar APIs de colec
oes pr
oprias;
As colec oes s
ao necess
arias, devido o uso dos arrays possuir uma serie de
limitac
oes, como por exemplo:
Um array n
ao pode ter o tamanho modificado depois de criado;
// Basic operations
int size();
boolean isEmpty();
boolean contains(Object element);
boolean add(E element); //optional
boolean remove(Object element); //optional
Iterator<E> iterator();
// Bulk operations
boolean containsAll(Collection<?> c);
boolean addAll(Collection<? extends E> c); //optional
189
http://www.candidatoreal.com
// Array operations
Object[] toArray();
<T> T[] toArray(T[] a);
// Basic operations
int size();
boolean isEmpty();
boolean contains(Object element);
boolean add(E element); //optional
boolean remove(Object element); //optional
Iterator<E> iterator();
// Bulk operations
boolean containsAll(Collection<?> c);
boolean addAll(Collection<? extends E> c); //optional
boolean removeAll(Collection<?> c); //optional
http://www.candidatoreal.com
// Array Operations
Object[] toArray();
<T> T[] toArray(T[] a);
Existem 3 implementac
oes da interface Set:
190
http://www.candidatoreal.com
HashSet: Implementac ao de Set que utiliza uma tabela hash para guardar
seus elementos. N ao garante a ordem de iterac
ao, nem que a ordem per-
manecer a constante com o tempo (uma modificac ao da colec
ao pode al-
terar a ordenac
ao geral dos elementos). Por utilizar o algoritmo de tabela
hash, o acesso e r
apido, tanto para leitura quanto para modificac
ao.
LinkedHashSet: Implementac ao de Set que estende HashSet, mas adi-
ciona previsibilidade ` a ordem de iterac
ao sobre os elementos, isto e, uma
iterac
ao sobre seus elementos (utilizando o Iterator) mantem a ordem de
inserc
ao (a inserc
ao de elementos duplicados nao altera a ordem anterior).
Internamente, e mantida uma lista duplamente encadeada que mantem
esta ordem. Por ter que manter uma lista paralelamente ` a tabela hash, a
modificacao deste tipo de colec
ao acarreta em uma leve queda na perfor-
mance em relac ao ` a HashSet, mas ainda e mais r
apida que uma TreeSet,
que utiliza comparac oes para determinar a ordem dos elementos.
A seguir s
ao mostrados alguns exemplos:
import java.util.*;
Rodando o programa:
A sa
da produzida ser
a:
191
http://www.candidatoreal.com
Duplicate detected: i
Duplicate detected: i
Rodando o programa:
A sa
da produzida ser
a:
Duplicate detected: i
Duplicate detected: i
Rodando o programa:
A sa
da produzida ser
a:
Duplicate detected: i
Duplicate detected: i
import java.util.*;
192
http://www.candidatoreal.com
dups.add(a);
// Destructive set-difference
uniques.removeAll(dups);
System.out.println("Unique words: " + uniques);
System.out.println("Duplicate words: " + dups);
}
Ha duas implementac
oes Set com finalidades especiais: EnumSet e CopyOn-
WriteArraySet.
// Positional access
E get(int index);
E set(int index, E element); //optional
boolean add(E element); //optional
void add(int index, E element); //optional
E remove(int index); //optional
boolean addAll(int index,
Collection<? extends E> c); //optional
http://www.candidatoreal.com
// Search
int indexOf(Object o);
int lastIndexOf(Object o);
// Iteration
ListIterator<E> listIterator();
ListIterator<E> listIterator(int index);
// Range-view
List<E> subList(int from, int to);
193
http://www.candidatoreal.com
Existem 2 implementac
oes da interface List:
A seguir s
ao mostrados alguns exemplos:
import java.util.*;
c.add("Jose");
Iterator i = c.iterator();
while( i.hasNext() ) {
System.out.print( i.next() + " " );
}
System.out.println();
System.out.println(c.get(2));
System.out.println(c);
}
194
http://www.candidatoreal.com
Ha uma implementac
ao List com finalidades especiais: CopyOnWriteAr-
rayList.
// Basic operations
V put(K key, V value);
V get(Object key);
V remove(Object key);
boolean containsKey(Object key);
boolean containsValue(Object value);
int size();
boolean isEmpty();
// Bulk operations
void putAll(Map<? extends K, ? extends V> m);
void clear();
// Collection Views
http://www.candidatoreal.com
195
http://www.candidatoreal.com
Existem 3 implementac
oes da interface Map:
HashMap: Implementac ao de Map que utiliza uma tabela hash para ar-
mazenar seus elementos. O tempo de acesso aos elementos (leitura e mod-
ificac
ao) e constante (muito bom) se a func
ao de hash for bem distribuda,
isto e, a chance de dois objetos diferentes retornarem o mesmo valor pelo
metodo hashCode() e pequena.
A seguir s
ao mostrados alguns exemplos:
import java.util.*;
196
http://www.candidatoreal.com
Rodando o programa:
A sa
da produzida ser
a:
8 distinct words:
8 distinct words:
8 distinct words:
H
a duas implementac
oes Map com finalidades especiais: EnumMap, WeakHashMap
e IdentityMap.
E element();
boolean offer(E e);
E peek();
http://www.candidatoreal.com
E poll();
E remove();
197
http://www.candidatoreal.com
podem usar regras diferentes de colocac ao. Cada implementac ao de queue deve
especificar suas propriedades.
possvel que algumas implementac
E oes de queue restrinja o numero de el-
ementos que prende; tais filas s ao conhecidas como limitadas. Algumas im-
plementacoes de queue em java.uitl.concurrent s ao limitadas, mas as imple-
mentacoes em java.util nao sao.
As implementac oes da queue geralmente n ao permitem a inserc
ao de elemen-
tos nulos. A implementac ao de LinkedList, que foi adaptada para implementar
uma queue, e uma excec ao.
A seguir e mostrado um exemplo:
import java.util.*;
198
http://www.candidatoreal.com
Captulo 18
18.1 Conceitos B
asicos
Java Database Connectivity ou JDBC e um conjunto de classes e interfaces
(API) escritas em Java que faz o envio de instruc
oes SQL para qualquer banco
de dados relacional.
As 4 categorias de driver s
ao:
199
http://www.candidatoreal.com
}
A classe Class tem como func
ao instanciar a classe identificada entre parenteses
e registr
a-la com a JVM, que ir a utiliz
a-la para acessar o SGBD. Em nosso ex-
emplo, utilizamos a ponteODBC-JDBC. A Class e uma classe no pacote de
java.lang.
18.3 Conex
ao
Feito o carregamento dos drivers, o proximo passo e o estabelecimento da
conexao. Tipicamente uma aplicac
ao JDBC conecta ao banco de dados usando
200
http://www.candidatoreal.com
Para abrirmos uma conex ao, normalmente teremos que entrar em contato
com o SGBD. A linha mostrada abaixo d
a a ideia geral de como e feita `
a conex
ao
atraves do mecanismo DriverManager:
try{
Connection con = DriverManager.getConnection(url,"user", "password");
}catch( SQLException x ){
System.out.println( "Couldnt get connection!" );
}
banco de dados e o programador pode utiliz a-lo para enviar statements SQL
para o banco.
18.4 Statements
necess
E ario criar um objeto da classe Statement para armazenar o pedido
que ser
a enviado ao SGBD. O programador deve simplesmente criar um objeto
deste tipo, informar a cadeia de strings que representa seu comando SQL e
depois executa-lo, usando metodos especiais dependendo do tipo de comando
desejado. Para um SELECT, usa-se o executeQuery. Para INSERT, UPDATE
e DELETE executeUpdate. Por exemplo:
201
http://www.candidatoreal.com
202
http://www.candidatoreal.com
Note que voce pode possuir diversos tipos de campos diferentes, e nem por
isso precisa usar aspas duplas, aspas simples ou nenhuma aspas na hora de
passar os valores para serem incluidos/consultados/alterados no banco. Esta e
uma das principais vantagens de se usar PreparedStatement.
Lembre-se que a ordem dos sets dever ao ser dadas na mesma ordem que
foi inserido os sinais de interrogac
ao. A seguir e mostrada uma operac
ao de
UPDATE usando Statement e PreparedStatement.
//Usando Statement
updateSales.setString(2, "Colombian");
pstmt.executeUpdate();
18.6 Transac
ao
Existem situac
oes onde nao se deseja que uma instruc
ao tenha efeito a n
ao ser
que outras tambem tenham. Algumas situac oes necessitam que dados sejam
includos em mais de uma tabela para que sejam considerados consistentes. Ou
os dados estao presentes em todas as tabelas ou n
ao devem estar presentes em
nenhuma.
203
http://www.candidatoreal.com
con.setAutoCommit(false);
con.commit();
Caso algo nao tenha dado certo, podemos executar o metodo rollback para
que todo o statement seja descartado.
con.rollback();
importante lembrar algumas coisas quando lidamos com a transac
E ao de
maneira manual. Os recursos de banco normalmente ficam presos, esperando
um commi() ou rollback(). Assim, se um programa tratar ou entrar em loop
(ou mesmo demorar muito) o acesso ao banco fica prejudicado. Existe ainda a
possibilidade de um dirty read, onde outro programa recupera dados do disco
que voce est
a alterando, mas ainda nao validou. Esse tipo de comportamento
pode ser evitado aumentando o nvel de isolamento entre transac
oes. Verifique
o metodo setTransactionIsolation() da classe Connection.
18.7 Informac
oes Complementares
Ocasionalmente, voce ira sentir necessidade de obter mais informac
oes sobre o
resultado de um SELECT ou mesmo sobre a tabela em quest ao. Pode-se obter
esses dados utilizando a classe ResultSetMetaData, que pode ser criada segundo
o exemplo:
ResultSet rs = stmt.executeQuery(query);
ResultSetMetaData meta = rs.get.MetaData();
http://www.candidatoreal.com
...
Statement stmt = conn.createStatement();
204
http://www.candidatoreal.com
import java.sql.*;
//estabelecendo a conex~
ao
Connection con = DriverManagerSet.getConnection("jdbc:obc:bd");
//criando statement
Statement stmt = con.createStatement();
//Executando a consulta
ResultSet rs = stmt.executeQuery("SELECT LOGIN, NOME FROM ATENDENTE");
//Percorrendo o resultset
While(rs.next()){
String login = rs.getString("LOGIN");
http://www.candidatoreal.com
205
http://www.candidatoreal.com
con.setAutoCommit(false);
}
http://www.candidatoreal.com
206
http://www.candidatoreal.com
Captulo 19
A plataforma J2EE
Sistemas de Informac
ao (EIS-tier ).
As caractersticas mais comuns dos componentes J2EE s
ao o fato deles serem
unidades de software auto-contidas e a capacidade de comunicac ao com outros
componentes. O que distingue um componente J2EE de uma classe comum e o
fato deles poderem ser combinados para formar uma aplicac ao J2EE, alem de
serem disponibilizados, executados e gerenciados por um servidor J2EE, comu-
mente chamado de servidor de aplicac ao.
207
http://www.candidatoreal.com
Seguranca;
Gerenciamento de Transac
oes;
Busca de Nomes e Diret
orios utilizando JNDI (Java Naming and Directory
Interface);
Conectividade Remota entre clientes e EJBs;
http://www.candidatoreal.com
Criac
ao de Destruic ao de EJBs e Servlets (Ciclo de Vida dos Compo-
nentes). S ao utilizados pools de componentes para atender as requisic
oes
dos usu arios. N ao e o programador instancia um componete no c odigo
do cliente, porem a criac ao efetiva do objeto acontece no servidor de
aplicac
ao, onde o componente existe e e executado de fato;
Acesso `
as APIs da plataforma;
208
http://www.candidatoreal.com
Clientes Web: P aginas Web din amicas geradas por componentes Web
(JSP ou Servlets) e que s
ao exibidas no browser. Existe ainda os applets,
que s
ao pequenos clientes de aplicac
ao escritos em Java e que rodam na
JVM embutida no browser.
209
http://www.candidatoreal.com
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
/**
* Method to receive get requests from the web server
* (Passes them onto the doPost method)
* @param req The HttpServletRequest which contains the
* information submitted via get
* @param res A response containing the required response
* data for this request
**/
/**
* Method to receive and process Post requests from the web server
* @param req The HttpServletRequest which contains the information
* submitted via post
* @param res A response containing the required response data for this request
**/
"<BODY>\n"+
"<CENTER><BR><B>\n"+
"Hello "+name+"\n"+
"</B></CENTER>\n</BODY>\n</HTML>";
210
http://www.candidatoreal.com
<HTML>
<HEAD><TITLE>My Name Servlet Demonstration</TITLE></HEAD>
<BODY>
<CENTER>
<FORM ACTION="/servlet/MyNameServlet" METHOD=POST>
Please Enter your name <INPUT TYPE=TEXT NAME="yourname">
<INPUT TYPE=SUBMIT VALUE=Submit>
</FORM>
</CENTER>
</BODY>
</HTML>
<HTML>
<HEAD><TITLE>My Name Servlet Response</TITLE></HEAD>
<BODY>
<CENTER><BR><B>
Hello zazaza
</B></CENTER>
</BODY>
</HTML>
211
http://www.candidatoreal.com
As sessoes s
ao representadas pelo objeto HttpSession. Uma sess ao pode ser
acessada chamando o metodo getSession do objeto request. Esse metodo re-
torna a sess
ao corrente associada com o request, e se ela ainda n
ao existir, uma
212
http://www.candidatoreal.com
sess
ao e criada. Como o metodo getSession pode modificar o header da resposta
(response header), esse metodo deve ser chamado antes de recuperados o Print-
Writer ou o ServletOutputStream (objetos que servem para mandar dados para
o cliente).
Atributos podem ser associados a uma sess ao pelo nome. Tais atributos
podem ser acessados por qualquer componente Web que pertenca ao mesmo
contexto esteja atendendo uma requisic
ao que seja parte da mesma sess
ao. A
seguir um exemplo de Servlet que mantem sessoes:
Como n ao h
a nenhuma forma de um cliente HTTP sinalizar que uma sess ao
nao e mais necess
aria (a n
ao ser via aplicac
ao), cada sess
ao possui um valor de
timeout. O valor de timeout pode ser acessado atr aves dos metodos getMax-
InactiveInterval e MaxInactiveInterval. Geralmente o tempo m aximo de
inatividade permitido para uma sess ao tambem e feita no servidor de aplicac
ao.
<HTML>
<BODY>
http://www.candidatoreal.com
Todo c
odigo java aparece na pagina .jsp deve estar entre as tags % e %.
Para imprimir algum valor na p agina e utilizada as tag %= e %, ou alterna-
tivamente os metodos out.print() ou out.println(), como mostrado no exemplo
a seguir:
213
http://www.candidatoreal.com
<HTML>
<BODY>
<% Date date = new Date(); %>
Hello! The time is now
<%
// This scriptlet generates HTML output
out.println( String.valueOf( date ));
%>
</BODY>
</HTML>
// Exemplo 1:
// Inclui uma p
agina dentro de outra no momento da compila
c~ao.
<jsp:include page="hello.jsp"/>
// Exemplo 2:
// Localiza e instancia um bean com o determinado nome e escopo
214
http://www.candidatoreal.com
Para utilizar uma tag carregada de uma biblioteca externa antes de mais
nada e preciso utilizar a diretiva taglib para especificar onde a biblioteca de tag
(tag library) est
a localizada.
<HTML>
<BODY>
<blx:getProperty name="user" property="*">
<FORM METHOD=POST ACTION="SaveName.jsp">
Whats your name? <INPUT TYPE=TEXT NAME=username SIZE=20><BR>
Whats your e-mail address? <INPUT TYPE=TEXT NAME=email SIZE=20><BR>
Whats your age? <INPUT TYPE=TEXT NAME=age SIZE=4>
<P><INPUT TYPE=SUBMIT>
</FORM>
</blx:getProperty>
</BODY>
</HTML>
<HTML>
<BODY>
<%
// Captura o valor do campo tx_name do form submetido
String nome = request.getParameter("tx_name");
//Captura o ip de origem da requisi
c~ao
String ip = request.getRemoteHost();
%>
Ol
a <b> <%=nome%> </b>, o endere
co IP da sua m
aqina
e <%=ip%>
215
http://www.candidatoreal.com
</BODY>
</HTML>
As inst
ancias dos EJBs s
ao executadas em containers de EJB nos servidores
de aplicac
ao. S
ao os containers que gerenciam o ciclo de vida dos EJBs, de-
cidindo quando eles devem ser criados ou destrudos.
Session Beans:
Modelam os processo da l ogica de neg ocios, executam tarefas para os
clientes e podem implementar web services. No momento da requisic ao do
cliente, um session bean e alocado para atendimento, tornando exclusivo
ate o fim do atendimento da requisic ao. Os sessions beans podem ser de
dois tipos: stateless ou statefull. Os beans stateless n
ao mantem o estado
da conversacao, ou seja, ap
os o termino da execuc
ao de um metodo todo
o estado (valor dos atributos do EJB) se perdem, e o mesmo e liberado, se
tornando livre para atender outra requisicao. Ja com os beans statefull, o
estado pode ser modificados e recuperado entre sucessivas invocac oes de
metodos. Todos os metodos invocados pelo cliente s ao enviados a mesma
instancia, que mantem o estado ate que a sess ao termine ou o bean seja
destrudo.
http://www.candidatoreal.com
Entity Beans:
Sao responsaveis pela persistencia dos dados da aplicac
ao, geralmente uti-
lizando bancos de dados. Nesse contexto, bean desse tipo est a associado
a uma tabela em um BD, enquanto cada int ancia de um entity bean rep-
resenta um registro de tal tabela. Esse tipo de bean pode ser compartil-
hado por m ultiplos usu
arios, sendo necessario para isso o gerenciamento
de transac
oes, que e um dos servicos prestados pelo container EJB. Cada
bean tem um identificador u nico que permite encontr a-lo. Como na tabela
de um BD relacional, um entity bean pode estar relacionado a outros, po-
dendo este relacionamento ser implementado pelo pr oprio bean ou pelo
container. Com os entity beans, o container e respons avel por todas as
216
http://www.candidatoreal.com
O ciclo de vida dos EJBs statefull, por sua vez, e descrito pelo seguintes
estados e eventos:
217
http://www.candidatoreal.com
Os processos de desativac
ao e ativac
ao de um EJB consistem em salvar
seu estado em mem oria secundaria e restaur
a-lo, respectivamente. Nesses
processos os containers utilizam tecnicas de serializac
ao. Atualmente, os
containers tem implementado a serializac
ao utilizando arquivos XML.
Como foi discutido, os containers fazem uso dos chamados pools de EJBs,
que s
ao um conjunto de beans designados a atender as requisic oes dos
usu
arios. Em determinados momentos, os beans de um pool podem estar
completamente alocados para atendimento de usu arios. Um cliente que
desejasse ter sua requisic
ao atendida teria que aguardar a desalocac
ao de
um bean por parte de um cliente.
218
http://www.candidatoreal.com
219
http://www.candidatoreal.com
Parte V
Desenvolvimento Web
http://www.candidatoreal.com
220
http://www.candidatoreal.com
Captulo 20
Usabilidade
20.1 Definic
ao
A norma ISO 9241-11 define a usabilidade como: a extens ao em que um produto
pode ser usado por usu arios especficos para alcancar objetivos especficos com
efic
acia, eficiencia e satisfaca
o num contexto especfico de uso. E, define uma
estrutura para a usabilidade, figura 20.1.
http://www.candidatoreal.com
221
http://www.candidatoreal.com
Usar texto negro em fundo branco sempre que possvel para uma legibili-
dade maior;
Usar cores de fundo planas ou com texturas, mas que sejam extremamente
subtis;
Assegurar que o texto se encontra numa cor que se possa imprimir (n
ao
branco);
Usar localizac
oes familiares para as barras de navegacao; Usar um design
adequado para que nunca seja necess ario recorre ao scroll horizontal;
Usar um eixo de simetria para centrar o texto numa p agina; Encorajar o
uso do scroll atraves da colocac
ao de uma imagem que fique semi-escondida
no fundo da p agina.
Usar travess
oes para separar horizontalmente diferentes tipos de conte
udos;
Fixar a resoluc
ao das p
aginas a mais de 800 X 600. P aginas de grandes
resoluc
oes podem obrigar o utilizador a fazer scroll horizontal.
222
http://www.candidatoreal.com
20.3 T
ecnicas de avalia
c
ao de usabilidade
A usabilidade pode ser avaliada por diversas tecnicas. As mais usuais s ao da
heurstica e dos testes com utilizadores.
A heurstica e uma das formas de avaliar a usabilidade mais econ omica e
pratica, permitindo detectar problemas na fase de desenvolvimento da interface.
Esta tecnica consiste em levantar quest oes heursticas relacionadas `a interface
como: navegac ao, controle, funcionalidade, linguagem, ajuda e suporte, con-
sistencia e erros. Nunca deve ser feita individualmente, pois uma pessoa n ao
tem capacidade de levantar todas as quest oes heursticas.
A tecnica dos testes com utilizadores obriga que o produto esteja pelo menos
em forma de prot otipo para poder ser testado. O utilizador testa a interface
tendo por base um conjunto de tarefas que foram definidas como princpios
heursticos.
Portanto, o objetivo de um bom design de p aginas Web e obter alta quali-
dade, no que diz respeito n ao somente a uma boa aparencia visual, como tambem
a estruturac
` ao da informac
ao de forma a permitir aos usu arios encontr
a-la r
apida
e eficaz.
http://www.candidatoreal.com
223
http://www.candidatoreal.com
Captulo 21
Acessibilidade
21.1 Definic
ao
A acessibilidade descreve os problemas de usabilidade encontrados por usu arios
com necessidades especiais ou com limitac oes tecnologicas. Na pr
atica, a acessi-
bilidade de uma interface e indicada pela facilidade de acesso de um indivduo,
independente de suas capacidades fsicas, sensoriais e cognitivas, do seu am-
biente e das condic oes de trabalho e das barreiras tecnol ogicas. Ou seja, a
acessibilidade significa que pessoas com necessidades especiais podem apreen-
der, compreender, navegar e interagir com a Web.
As causas mais freq uentes de falta de acessibilidade em muitas p aginas da
Web para todos os usu arios est
ao muitas vezes associadas: ` a falta de estru-
tura que desorienta o usu ario dificultando a navegacao e ao uso abusivo de
informacoes gr
aficas (imagens, macros, scripts Java, elementos multimdia) sem
proporcionar alternativas adequadas de texto ou outro tipo de coment ario.
224
http://www.candidatoreal.com
Os criadores de conte udo para a Web necessitam tornar suas produc oes com-
preensveis e naveg aveis, empregando uma linguagem clara e disponibilizando
meios de navegac ao e apropriac ao da informacao apresentada. Disponibilizar
mecanismos de orientac ao de p agina e ferramentas de navegacao s
ao fatores que
potencializam a acessibilidade ` a Web ao garantir a perceptibilidade e navega-
bilidade no site, pois sem esses elementos, os usu arios podem, por exemplo, n ao
compreender tabelas, listas ou menus extensos.
O documento WCAG 1.0 descreve os 14 princpios ou diretrizes que abordam
as quest oes relacionadas `a acessibilidade `a Web. Cada diretriz possui pontos de
verificac
ao os quais sao classificados por nveis de prioridade. Os 14 princpios
s
ao:
225
http://www.candidatoreal.com
226
http://www.candidatoreal.com
21.3 T
ecnicas de avalia
cao de acessibilidade
As avaliac oes e validac
oes s
ao especificadas num documento do W3C chamado
Evaluating Web Sites Accessibility, onde s ao apresentados dois metodos de
avaliacao de acessibilidade: Avaliac ao de Preliminar de Acessibilidade (iden-
tificac
ao de forma r apida dos problemas gerais de acessibilidade num site) e
Avaliac ao de Conformidade (verificac ao do grau de conformidade de um site
com os padr oes de acessibilidade, WCAG. Este metodo identifica problemas de
acessibilidade mais especficos num site).
A avaliac
ao e validacao da acessibilidade s
ao feitas por meio de ferramentas
autom aticas ou da revis ao direta manual. Os metodos autom aticos s
ao geral-
mente r apidos, mas n ao sao capazes de identificar todos os aspectos da acessi-
bilidade. Esses metodos n ao s
ao capazes de avaliar conte udo gerado dinamica-
mente. A avaliac ao humana pode ajudar a garantir a clareza da linguagem e a
facilidade de navegac ao.
Para a validac ao autom atica da acessibilidade de uma p agina ou de um
site podemos utilizar as ferramentas ou servicos de an alise da acessibilidade e
compatibilidade, como Bobby, o validador par HTML 4 do W3C e o TAW. O
ideal e a combinac ao dos metodos manuais e autom aticos.
A avaliacao e validacao da acessibilidade de uma p agina ou de um site ` a
Web devem estar presentes desde as fases iniciais do desenvolvimento do doc-
umento. O W3C-WAI aponta como metodo para testar uma p agina ou site,
apos a implementac ao dos princpios de acessibilidade, os seguintes pontos de
verificacao:
http://www.candidatoreal.com
227
http://www.candidatoreal.com
6. Utilizar v
arios navegadores, antigos e recentes;
7. Utilizar um navegador de emiss ao automatica de falas, com leitores de
tela, com software de aplicac
ao, monitores monocrom aticos, etc;
228
http://www.candidatoreal.com
Captulo 22
Padr
oes Web W3C
229
http://www.candidatoreal.com
230
http://www.candidatoreal.com
231
http://www.candidatoreal.com
sua interpretac
ao. Os namespaces XML s ao conjuntos de tipos de elemen-
tos e atributos possveis para cada tipo. As triplas do RDF se baseiam
em namespaces de forma que a cada recurso seja associado uma dupla
de propriedade e valor. Os namespaces podem ser referenciados por meio
de uma URI, que se constitui em um reposit orio compartilhado, e nao-
ambguo, onde usu arios e programas de validac
ao de c
odigo XML podem
consultar a sintaxe e propriedades sem anticas dos conceitos cobertos;
232
http://www.candidatoreal.com
Captulo 23
XML
23.1 O que
e XML?
Extensible Markup Language (XML) e uma linguagem de marcac ao (utilizac
ao
de tags) para descrever os dados de p aginas Web de forma estruturada. O
XML e um dos padr oes adotado pelo W3C e foi projetado para descrever o
conteudo de uma pagina Web em vez da sua formatac ao. O XML e derivado da
linguagem SGML (Standard Generalized Markup Language), que e um padr ao
internacional para definic
ao de formatos de representacao de documentos. O
SGML e muito mais complexo de se implementar do que o XML. A figura 23.1
mostra um exemplo de uma p agina Web em XML.
Como o XML trata apenas do conte udo do documento, existem diversos
padroes para descrever o formato da apresentacao dos dados. Uma das formas
de apresentar tais documentos e por meio das folhas de estilo. As principais
linguagens de estilo s
ao o CSS (Cascading Style Sheets) e o XSL (Extensible
Style Sheets). Ent
ao, a apresentac
ao dos dados ficar
a a cargo dessas linguagens.
http://www.candidatoreal.com
233
http://www.candidatoreal.com
Facilita a gerac
ao de dados, a leitura de dados e assegura que a estrutura
de dados n ao e ambgua;
extensvel e independente de plataforma;
E
modular, pois a permite a definic
E ao de um novo formato de documento
pela combinac
ao e reuso de outros formatos;
N
ao possui tags pre-definidas, e permite um n
umero infinito de tags;
23.3 Comparac
ao entre XML e HTML
O XML e o HTML s ao primos. O XML n ao veio para substituir o HTML. Eles
derivam da mesma linguagem, o SGML. A grande diferenca entre o HTML e
o XML e que o HTML descreve como os dados devem ser apresentados (for-
matacao dos dados) numa p agina Web enquanto o XML descreve os dados
(conteudo) de uma p agina Web.
Ambos fazem o uso de tags (palavras delimitadas por < e >) e atributos.
Enquanto o HTML especifica o que cada tag e atributo significam e frequente-
mente como o texto entre elas aparece num browser, o XML usa as tags somente
para delimitar as porc oes de dados, e deixa a interpretacao dos dados para a
aplicac
ao que ira ler este dado. Por exemplo, enquanto em um documento
HTML uma tag p indica um par agrafo, no XML essa tag pode denotar um
preco, um par ametro, uma pessoa, etc.
Enquanto ao uso das tags nas duas linguagens, O XML as tags n ao s
ao
pre-definidas e pode-se usar um n umero infinito de tags. O HTML isso n ao e
possvel.
http://www.candidatoreal.com
23.4 Sintaxe b
asica do XML
O componente b asico no XML e o elemento, que e composto pela uma tag
inicial, pelo conte
udo e pela uma tag final. A express
ao book e chamada de
234
http://www.candidatoreal.com
tag inicial (comeca com e termina com ) e /book e chamada de tag final
(comeca com / e termina com ). Estas marcac oes sao definidas pelo usu
ario.
A estrutura ou o texto entre as tags iniciais e finais e chamado de conte udo. As
tags no XML s ao case sensitive.
Os elementos podem incluir outros elementos (ditos elementos filhos) e tex-
tos. No exemplo da figura 23.1, bookl ist e o elemento raiz e o book e o elemento
filho. Usam-se elementos repetidos com a mesma tag (book) para representar
colec
oes de dados, figura 23.1.
Um elemento pode n ao ter qualquer conte udo. Este tipo de elemento e
designado por elemento vazio, por exemplo, o elemento \ <figura path=... >
que marca onde deve ser inserido uma figura. Os elementos vazios possuem uma
sintaxe diferente, inicia-se por < e termina em >, que e a forma abreviada de
escrever <elem-ident> <elem-ident>. N ao e permitida a utilizac
ao de espaco
em branco no nome dos elementos. O nome dos elementos pode comecar somente
com letras, underscore ou dois pontos.
A linguagem XML permite associar atributos aos elementos. Os atributos
s
ao utilizados para especificar as propriedades ou caractersticas do elemento.
O atributo e definido como um par (nome, valor) separado por um sinal de
igual (=) e sempre aparecem na tag inicial. Assim como nas tags, o usu ario
pode definir tambem os atributos. O valor do atributo e sempre um conjunto
de caracteres que deve estar entre aspas. Por exemplo:
<disciplina cod="cop025"> T
ecnicas de programa
c~ao</disciplina>
Algumas regras b
asicas devem ser lembradas na construc
ao de um docu-
mento XML:
235
http://www.candidatoreal.com
Instru
cao de processamento mecanismo que permite a inserc ao de informac
oes
explcitas em um documento destinadas a uma aplicac ao. Os interpre-
tadores XML n ao interpretam essas informac
oes, mas simplesmente as
repassam para a aplicacao. A instruc
ao de processamento nao faz parte
do conte udo do documento;
Sintaxe:
<? ?>
Exemplo:
<?html action="hr"?>
Declara
cao XML e um tipo de instruc ao de processamento. Qualquer doc-
umento XML dever comecar sempre com uma declarac ao XML. Nor-
malmente, se contiver algo antes da declarac ao ou se estiver ausente, a
aplicac
ao acusar
a erro. Existem tres tipos de atributos para a declarac
ao:
version (Obrigat orio e indica a versao do XML utilizado, 1.0), stan-
dalone (Opcional e indica se o documento est a autocontido. Aceita os
valores yescaso o documento n ao tenha referencias a entidade externa e
nocaso contr ario.), encoding (Opcional e indica qual codificac
ao usada
para os caracteres. O valor para caractere portugues e isso-8859-1);
http://www.candidatoreal.com
Sintaxe:
<?xml ?>
Exemplo:
Coment
arios utilizado para indicar que o conte
udo a seguir n
ao e para ser
processado;
Sintaxe:
236
http://www.candidatoreal.com
<!-- -->
Exemplo:
<!--Isto
e um coment
ario -->
Exemplo:
PCDATA (Parser Character Data) utilizado para designar que o texto en-
tre as duas marcac
oes e um dado e nao um texto. Isso e utilizado na
definic
ao das DTDs ou gramatica do documento;
Refer
encias e possvel associar identificadores u
nicos aos elementos, por meio
de um atributo de identificacao, id. Com isto permite-se que elementos
distintos referenciem-se entre si;
Exemplo:
<!ENTITY ...>
237
http://www.candidatoreal.com
A verificac
ao sintatica de um documento XML e feita por parsers que anal-
isam um documento e enviam mensagens de erro ao detectar erros de sintaxe.
Existem dois tipos de parser: o paser validador, que verifica se um documento e
bem formado, e o parser n ao validador, que verifica se um documento e v alido.
Um documento XML e bem formado quando obedece a sintaxe XML, e um doc-
umento XML e v alido quando obedece a uma gram atica especificada por uma
DTD. Pode-se dizer que um documento v alido e um documento bem formatado,
mas o contrario nao.
23.6 NameSpaces
Como os nomes dos elementos em XML n ao estao pre-definidos, pode ocorrer
um conflito de nome quando um documento XML importa outro documento
XML, pois esses documentos podem usar o mesmo nome para descrever dois
tipos diferentes de elementos, por exemplo, o elemento < table > da figura 23.3.
prefixo, criam-se dois tipos diferentes de elementos do tipo < table >.
Para definir/criar um namespace o usu ario deve definir o atributo xmlns
(XML NameSpace) a tag inicial de um elemento no documento XML com a
sintaxe xmlns:namespace-prefix =namespace. Quando o namespace e definido
a tag inicial do elemento, todos os elementos filhos com o mesmo prefixo s ao
associados com o mesmo namespace. O atributo xmlns pode ser utilizado em
qualquer elemento e n ao apenas no n
o raiz. A figura 23.4 mostra alguns exemplos
de namespace e a Ilustrac ao 6 mostra a utilizac ao de namespace em vez de
prefixo para o exemplo da figura 23.3.
Pode-se perceber pela figura 23.4.(a) que a string identificadora de um
namespace e grande para ser manipulada diretamente. Para que sua utilizac ao
238
http://www.candidatoreal.com
seja vi
avel, utiliza-se um prefixo, uma especie de abreviatura para os names-
paces. De acordo com a figura 23.4.(b) os prefixos seriam catalogo, encomenda
e jcr.
A especificac
ao de namespaces da W3C estabelece que o namespace deve ter
um URI para garantir a unicidade dos nomes dos elementos.
Note que o endereco usado para identificar o namespace n ao e usado pelo
parser para buscar informacao. O u nico proposito e dar ao namespace um
nome u nico. Entretanto, e comum usar o namespace como um ponteiro para
uma p agina Web real contendo informac oes sobre o namespace. Por exemplo,
a figura 23.5 mostra a declarac
ao de namespaces distintos para especificar onde
s
ao buscados os dados da definicao de elementos com o mesmo nome, no caso <
http://www.candidatoreal.com
23.7 Gram
atica de um documento XML
Algumas vezes existe a necessidade de definir os elementos que podem aparecer
em um documento XML, o conte udos destes, e os atributos que podem estar
associados aos elementos. Tambem, existe a necessidade de definir a estrutura
do documento especificando, por exemplo, quais s ao os subelementos de um
elemento e a seq
uencia que eles devem aparecer. A primeira linguagem proposta
239
http://www.candidatoreal.com
para a definic
ao dessas regras nos documentos XML foi a DTD (Document Type
Definition).
Existem quatro tipos de declarac oes que podem ser utilizadas em um DTD:
elementos, atributos, entidades e instruc oes de processamento. As entidades
est
ao relacionas com a organizac ao fsica do documento XML, as instruc oes de
processamento foram explicadas anteriormente, os elementos s ao definidos pela
palavra-chave ELEMENT e a lista de atributos de cada elemento e definida pela
palavra-chave ATTLIST. As principais declarac oes que ocorrem em um DTD
s
ao de elementos e de atributos.
As declaracoes de elementos especificam como deve ser o conte udo do ele-
mento. As seguintes declaracoes podem ser feitas:
Definir a seq
uencia em os subelementos de um elemento devem aparecer:
(a, b)
Sintaxe:
<!ELEMENT nome_elemento
(seq
u^encia de subelemento separados por v
rgula na
ordem que devem aparecer)>
Exemplo:
<!ELEMENT biblio (t
tulo, autor, tipo_pub)>
240
http://www.candidatoreal.com
A figura 23.6 mostra o documento XML que descreve uma agenda e a figura
23.7 mostra as especificac
oes do documento DTD.
241
http://www.candidatoreal.com
As declarac
oes de atributo servem para especificar o nome, o tipo de dado
associado ao atributo e opcionalmente especificar se ha algum valor padr
ao de
atributo: Sintaxe:
<!ATTLIST nome_elemento {nome_atributo tipo_atributo}> onde {nome_atributo tipo_atributo} den
Obs.: Alternativamente pode-se utilizar a seguinte sintaxe:
<!ATTLIST nome_elemento nome_atributo1 tipo_atributo1>
<!ATTLIST nome_elemento nome_atributo2 tipo_atributo2>
As seguintes declarac
oes de tipo de atributo podem ser feitas:
possveis:
242
http://www.candidatoreal.com
Obs.:
Exemplo:
http://www.candidatoreal.com
243
http://www.candidatoreal.com
Exemplo:
<!DOCTYPE agenda SYSTEM "agenda.dtd">
<!DOCTYPE agenda SYSTEM "http://xml.idi.uminho.pt/DTDs/agenda.dtd">
Obs.: Esta declarac
ao indica que o elemento raiz do documento e agenda e que
o DTD pode ser encontrado no sistema no arquivo agenda.dtd.
A declaracao DOCTYPE n ao pode aparecer livremente num documento
XML. Ela deve aparecer sempre ap os a declarac
ao XML e antes do elemento
raiz, figura 23.9.
Pelas declarac
oes b
asicas que uma DTD pode utilizar, observa-se que os tipos
de dados que podem ser declarados s ao de certa forma limitados. Para ampliar
as possibilidades de se definir tipos de dados, outro tipo de esquema foi definido
pelo W3C denominado XML Schema ou XSD (XML Schema Definition).
244
http://www.candidatoreal.com
XForms (XML Forms) usa XML para definir a forma dos dados;
XQuery (XML Query Language) e usado para consultar dados em XML;
SOAP (Simple Object Access Protocol) e um protocolo em XML que per-
mite as aplicac
oes trocarem informac
oes sobre o protocolo http;
WSDL (Web Services Description Language) e uma linguagem baseada
em XML para descrever web services;
RDF (Resource Description FrameWork) e uma linguagem baseada em
XML para descrever recursos da Web;
RSS (Really Simple Syndication) e um formato para indicar notcias e conte
udos
novos de um site;
WAP (Wireless Application Protocol) foi desenvolvido para mostrar conte
udo
para cliente wireless, como celulares;
SMIL (Syncronized Multimedia Integration Language) e uma linguagem
para descrever apresentac
oes audiovisuais;
SVG (Scalable Vector Graphics) define formatos gr
aficos em XM.
245
http://www.candidatoreal.com
Integrac
ao de dados de fontes diferentes;
Computac
ao e manipulac
ao local;
M
ultiplas formas de visualizar os dados;
Atualizac
ao granulares dos documentos;
F
acil distribuic
ao na Web;
Escalabilidade;
Compreens
ao.
Expat;
XML4J;
MSXML;
Editores:
Editores de texto comum;
Xeena;
http://www.candidatoreal.com
246
http://www.candidatoreal.com
Captulo 24
XSLT
24.1 O que
e uma folha de estilo?
Quando um site Web e complexo e consiste de muitas p aginas produzidas por
v
arios autores que trabalham na mesma empresa, frequentemente e interessante
ter um meio de impedir que diferentes p aginas tenham uma aparencia distinta.
Esse problema pode ser resolvido usando-se folhas de estilo.
Quando as folhas de estilo s ao utilizadas, as paginas individuais deixam de
usar estilos fsicos, como negrito e italico. Em vez disso, os desenvolvedores
http://www.candidatoreal.com
utilizam estilos pr oprios como < dn > (definic ao), < em > (enfase fraca),
< strong > (enfase forte) e < var > (vari aveis). Os estilos l
ogicos s
ao definidos
na folha de estilo, referida no incio de cada pagina. Uma folha de estilo pode
ser comparada a um arquivo #include em um programa C: a mudanca em uma
u
nica definic
ao de macro provoca a alterac ao em todos os arquivos de programa
que incluem o cabecalho.
24.2 Comparac
ao entre o CSS e XSL
A semelhanca entre as essas duas folhas de estilo, CSS e XSL, esta em ambas
podem ser usadas em documentos XML, mas o CSS n ao transforma documentos.
247
http://www.candidatoreal.com
24.3 O que
e o XSL?
O XSL e uma linguagem para descrever folhas de estilo para documentos XML.
composta por tres linguagens descendentes de XML:
E
24.4 O que
e o XSLT?
O XSLT e a parte do XSL usada para transformar um documento XML em
outro documento XML, ou em outro tipo de documento (tx, pdf, rtf, HTML,
XHTML, etc.). O XSLT utiliza o XPath para encontrar informac oes nos doc-
umentos XML. XPath e usado para navegar atraves dos elementos e atributos
nos documentos XML.
O XSLT define um conjunto de regras de transformac ao que ser
ao aplicadas
a um documento XML ( arvore fonte) para produzir outro documento XML
(
arvore resultado). Nesse processo de transformac
ao, o XSLT utiliza o XPath
para definir partes do documento de origem (fonte) que combinem com um ou
mais templates pre-definidos. Quando uma combinac ao e encontrada, o XSLT
transforma essas partes do documento de origem no documento de resultado.
As partes do documento de origem que n ao s
ao combinadas com o template
permanecer ao sem modificac
oes no documento de resultado.
O XSLT permite:
Converter conte
udo de elementos para valores de atributos, ou vice-versa;
248
http://www.candidatoreal.com
Manipula
arvores;
Uso de XSL NameSpaces o W3C prove um namespace para as tags XSL.
O elemento raiz que declara um documento ser uma folha de estilo XSL
e o elemento <xsl:stylesheet> ou <xsl:transform>. Esses dois elementos s
ao
sin
onimos e s
ao as tags mais externas de um documento XSL.
249
http://www.candidatoreal.com
O modo correto de declarar uma folha de estilo XSL de acordo com a re-
comendac
ao W3C XSLT:
ou
Obs.:
1. Para obter acesso aos elementos, atributos e caracterstica do XSLT, deve-
se declarar o namespace XSLT no incio do documento;
2. O xmlns:xsl=http://www.w3.org/1999/XSL/Transformidentifica a Re-
comendac ao NameSpace oficial do W3C. Caso utilize este namespace, deve
incluir o atributo version=1.0.
O restante da declarac
ao na folha de estilo XSL e referente a como transfor-
mar o documento XML. Essa transformac ao e realizada utilizando os principais
elementos XSLT:
Apos a definic
ao do arquivo XSL e preciso associar este arquivo no docu-
mento XML. A instruc ao que deve ser includa no documento XML para que o
interpretador XML faca uso da folha de estilo XSL definida e:
<?xml-stylesheet type="text/xsl" href="localiza
c~ao do arquivo.xsl"?>
A figura 24.2 mostra o arquivo XML com esta associac
ao. A figura 24.1 e a
http://www.candidatoreal.com
declarac
ao da folha de estilo para esse documento XML. A figura 24.3 mostra a
visualizac
ao do documento XML no browser utilizando a folha de estilo definida
anteriormente. Ao abrir o documento XML o browser transforma o documento
XML em HTML.
250
http://www.candidatoreal.com
251
http://www.candidatoreal.com
252
http://www.candidatoreal.com
253
http://www.candidatoreal.com
254
http://www.candidatoreal.com
funcionaria.
Para disponibilizar os dados XML para todos os tipos de navegadores, o
documento XML e transformado no servidor e enviado como HTML puro para
o browser. Isso pode ser feito utilizando a linguagem ASP.
255
http://www.candidatoreal.com
Captulo 25
Gerenciador de Conte
udo
Web Zone/Plone
25.1 Gest
ao de Conte
udo
Os produtos e servicos de informac
ao dados, textos, imagens, sons, softwares,
etc. sao identificados na rede com o nome generico de conte udos. A ideia
basica da Gestao de Conte udos (GC) e agilizar o processo de criac
ao, gest
ao
e publicac
ao de informacao. Em geral, os sistemas de gest ao de conteudos
automatizam o processo de gest ao e publicac
ao e permitem que usu arios n
ao
tecnicos possam criar conte
udos com maior facilidade.
O processo de gestao de conteudo, figura 25.1, envolve as seguintes etapas:
1. Criac
ao de documentos;
2. Revis
ao de documentos;
3. Inclus
ao de metadados (Indexac
ao) e controle de qualidade;
4. Publicac
ao;
5. Revis
ao peri
odica
6. Arquivamento ou eliminac
ao dos documentos.
http://www.candidatoreal.com
256
http://www.candidatoreal.com
257
http://www.candidatoreal.com
25.3 Zope
O Zope (Z Object Publishing Environment) e uma plataforma de desenvolvi-
mento de aplicacoes Web baseada em Python e oferece um sistema de gest ao
de conteudos, onde o usu ario poder publicar e gerenciar o conte udo Web. E
um ambiente totalmente Orientado a Objetos e o permite o desenvolvimento
via Web. O Zope integra um grande n umero de ferramentas e funcionalidades
como uma base de dados de objetos, um m odulo de publicacao de objetos Web
e uma linguagem de gerac ao din amica de p
aginas.
O Zope e um ambiente multiplataforma (funciona em Unix, Linux, Mac Os
e Windows). E registrado com a licenca ZPL (Zope Public License), compatvel
com GPL (General Public License).
Diferente das outras solucoes do mercado, a finalidade do Zope nao e publicar
p
aginas HTML, mas objetos que podem ser montados automaticamente a partir
de componentes cujo comportamento, dados e a aparencia s ao configur aveis pelo
projetista do site. Esta abordagem torna o Zope mais apto ` a publicacao de
conte
udo Web que os outros produtos.
A arquitetura do Zope, mostrada na figura 25.2, e constituda pelos seguintes
modulos:
Servidor Web (ZServer) O Zope possui seu pr oprio servidor web, o Zope
Server, e dispensa a presenca de qualquer outro servidor web. Entretanto
n
ao impede a utilizac
ao de outro servidor web como Apache e Microsoft
IIS. ;
Banco de dados orientado a objetos (ZODB) o Zope possui seu pr oprio
servidor de Banco de Dados Orientado a Objetos (ZODB), onde armazena
os objetos em uma representac
ao simples e eficiente, que e formada pela
classe do objeto e uma estrutura de dicion ario contendo nas chaves as
propriedades do objeto e nos valores associados `as chaves que cada pro-
http://www.candidatoreal.com
priedade possui;
ZClassses Funcionam como molduras para os novos objetos no Zope. S ao es-
truturas utilizadas para criar novos objetos Zope, que podem ter como
base outros objetos. Um objeto Zope pode ser uma pasta, um documento
DTML, um metodo, etc. ZClasses podem ser criadas e ampliadas uti-
lizando apenas a interface web;
Zope Products S
ao produtos implementados em Python;
Integra
cao com banco de dados relacionais O Zope apresenta componentes
de acesso a v
arios bancos de dados, por exemplo, MYSQL, Oracle, Post-
Grees, Interbase, etc;
258
http://www.candidatoreal.com
259
http://www.candidatoreal.com
25.4 Plone
O Plone e um sistema gest ao de conte
udo livre e de c
odigo aberto que roda
em servidores Zope. Surgiu de uma evoluc ao do CMF (Content Management
Framework) do Zope. O Plone foi escrito em Python e roda sobre o Zope o
CMF. O Plone vem com um sistema de workflow, seguranca e func oes pre-
configuradas, um conjunto de tipos de conte udo e suporte a v
arias lnguas. O
Plone nao substitui o CMF, ele o complementa em funcionalidade e tambem
em ambig uidade de interface com usu ario, apresentando uma interface mais
amigavel para o usuario final. A figura 25.3 mostra a arquitetura do Zope,
CMF e Plone.
Algumas caractersticas do Plone:
Internacionaliza
cao a interface de usu
arios e traduzida para diversas lnguas;
Usabilidade permite desenvolver sites com alto nvel de usabilidade e acessi-
bilidade;
Personalizac
ao de templates o Plone separa o conte
udo do template no qual
o conte
udo est
a sendo exibido. Os templates do Plone sao escritos em
c
odigos HTML com folhas de estilo CSS;
http://www.candidatoreal.com
Personalizac
ao de registro de usu arios o Plone possui um completo sis-
tema de registro de usu arios, onde e possvel personalizar o registro de
usu
arios. E possvel usar informac
oes de usu arios de outros bancos de
dados relacional (LDAP, AD, e outros);
Workflow e seguran ca o workflow controla a l ogica de processamento de
conte udo de um site. E possvel configurar o workflow na web utilizando
ferramentas gr aficas. Para cada item de conte udo em um site Plone e
possvel construir uma lista de usu arios que podem acess a-lo e se est
ao
habilitados a interagir com este conte udo (editar, ver, excluir, comentar,
etc.);
260
http://www.candidatoreal.com
Os tipos b
asicos de conte
udo do Plone s
ao:
261
http://www.candidatoreal.com
Notcia contem pequenos artigos e podem possuir ttulo assim como uma de-
scric
ao opcional.
Algumas definic
oes relacionadas ao Plone:
Portlet Um site Plone possui uma tres colunas por padr ao. As colunas da
esquerda e da direita possuem uma serie de caixas que mostram algum
tipo de informac
ao. Cada uma dessas caixas e chamada de portlet;
Plone workflow por meio das permiss oes padr ao (pendente, p ublico, privado
e esboco) do workflow Plone e possvel criar nveis de acesso a informac
oes,
vis
oes de conte udos diferenciadas e regras de administrac ao de conteudo
especficas para cada tipo de conte udo;
262
http://www.candidatoreal.com
Captulo 26
Web Services
26.1 O que
e Web Services?
Web Service e um componente de software identificado por uma URI que in-
depende de implementac ao ou de plataforma e pode ser descrito, publicado e
invocado sobre uma rede por meio de mensagens padr ao XML. As mensagens
XML s ao transportadas usando protocolos padr oes da Internet. Com web ser-
vice e possvel realizar a integrac
ao entre sistemas desenvolvidos em diferentes
linguagens e plataforma, e disponibilizar servicos interativos na Web. E uma
tecnologia de padr ao aberto e padronizada pelo W3C.
A arquitetura do Web Service e constituda por tres componentes b asicos:
o servidor de registro (broker server ou service registry), o provedor de servicos
(service provider) e o solicitante de servicos (service requestor). As interac oes
entre esses componentes s ao de busca, publicacao e interac
ao de operacoes.
Na operac ao de publicacao o provedor publica a descric ao do servico de
tal forma que um solicitante possa localiz a-la. Na operac ao de busca o solici-
tante obtem a descricao do servico diretamente ou consulta o servidor de registro
procurando pelo tipo de servico desejado. Essa operac ao pode ser executada em
duas fases distintas: desenvolvimento ou execuc ao. Na operac ao de interacao
o solicitante chama ou inicia uma interac ao com o provedor, em tempo de ex-
ecuc
ao, utilizando os detalhes contidos na descric ao do servico para localizar,
contactar e chamar o servico. A figura 26.1 mostra os componentes e a interac ao
entre eles.
O provedor de servicos representa a plataforma que hospeda o web service
permitindo que os clientes acessem o servico. O provedor de servicos fornece o
http://www.candidatoreal.com
263
http://www.candidatoreal.com
Publicac
ao processo, opcional, por meio do qual o fornecedor do web services
da a conhecer a existencia do seu servico, efetuando o registro do mesmo
no reposit
orio do web service;
Descoberta processo, opcional, por meio do qual uma aplicacao cliente toma
conhecimento da existencia do web services pretendido pesquisando num
reposit
orio UDDI;
Descri
cao processo pelo qual o web service exp oe a sua API (documento
WSDL). Desta maneira a aplicacao cliente tem acesso a toda a interface
do web service, onde encontram descritas todas as funcionalidades por ele
disponibilizadas;
http://www.candidatoreal.com
Invoca
cao (Mensagens) processo pelo qual o cliente e o servidor interagem,
por meio do envio de mensagens;
A conjugac
ao desses quatro estados permite constituir o ciclo de vida de um
web service:
O fornecedor constroi o servico utilizando a linguagem de programac
ao que
entender;
De seguida, especifica a interface/assinatura do servico que definiu em
WSDL;
264
http://www.candidatoreal.com
Apos a conclus
ao dos dois primeiros passos, o fornecedor registra o servico
no UDDI;
O utilizador (aplicac
ao cliente) pesquisa num reposit
orio UDDI e encontra
o servico;
A aplicac
ao cliente estabelece a ligac
ao com o web service e estabelece um
di
alogo com este, via mensagens SOAP.
A interac
ao entre os web services se da sob varios protocolos abertos, em
diferentes nveis de abstrac
ao. Os protocolos utilizados para realizar a comu-
nicac
ao s
ao o: UDDI (Universal Description Discovery and Integration), WSDL
(Web Services Description Language), XML, SOAP (Simple Object Access Pro-
tocol) e o HTTP, conforme figura 26.3.
http://www.candidatoreal.com
265
http://www.candidatoreal.com
26.2 SOAP
O SOAP (Simple Object Access Protocol) e um protocolo leve para troca de
informacoes em um ambiente descentralizado e distribudo que permite comu-
nicac
ao entre aplicacoes de forma simples e completamente independente de
sistema operacional, linguagem de programac o protocolo
ao ou plataforma. E
de comunicac ao para os Web Services.
A comunicac ao e realizada por meio de trocas de mensagens, transmitidas
em formato XML, incluindo os par ametros usados nas chamadas, bem como
os dados de resultados. Tambem pode ser utilizado para invocar, publicar e
localizar web services no registro UDDI.
Parte da sua especificac ao e composta por um conjunto de regras de como
utilizar o XML para representar os dados. Outra parte define o formato de
mensagens, convenc oes para representar as chamadas de procedimento remoto
(RPC Remote Procedure Calls) utilizando o SOAP, e associac oes ao protocolo
HTTP. O protocolo HTTP e o u nico protocolo padronizado pelo SOAP, mas
existem algumas implementac oes que suportam outros protocolos como SMTP,
TCP/IP, FTP e etc.
Uma mensagem SOAP nada mais e do que um fragmento XML bem formado,
encapsulado por um par de elementos SOAP. A mensagem SOAP consiste dos
seguintes elementos, figura 26.4:
Envelope toda mensagem SOAP deve conte-lo. E o elemento raiz do docu-
mento XML. Define o incio e o fim das mensagens;
http://www.candidatoreal.com
266
http://www.candidatoreal.com
objeto localizado em outro ponto da rede, atraves de uma chamada local a este
objeto. Cada chamada ou requisic ao exige uma resposta.
O processo de uma chamada RPC: Antes de serem enviadas pela rede, as
chamadas de RPC (emitidas pela aplicac ao cliente) s
ao encapsuladas (ou serial-
izadas) segundo o padr ao SOAP. O servico remoto, ao receber a mensagem faz
o processo contr ario, desencapsulando-a e extraindo as chamadas de metodo.
A aplicac
ao servidora ent ao processa esta chamada, e envia uma resposta ao
cliente. O processo ent ao se repete: a resposta e tambem serializada e enviada
pela rede. Na m aquina cliente, esta resposta e desencapsulada e e repassada
para a aplicac
ao cliente.
A especificac
ao SOAP define as seguintes informac oes, como necess
arias em
toda chamada de RPC:
Os par
ametros do metodo (requisic
ao ou resposta);
26.3 WSDL
O WSDL (Web Services Description Language) e uma linguagem baseada em
http://www.candidatoreal.com
XML, utilizada para descrever um web service. Um web service deve definir
todas as suas interfaces, operac oes, esquemas de codificac ao, o conteudo das
mensagens, onde o servico est a disponvel e quais os protocolos de comunicac ao
s
ao usados para conversar com o servico e entre outros neste documento. Um
documento WSDL define um XML Schema para descrever um web service.
A descric
ao de um servico consiste de duas partes, figura 26.5: definic ao de
implementac ao do servico e definic
ao da interface do servico. A separac
ao entre
as duas camadas permite que elas sejam utilizadas separadamente.
A parte de definic
ao de interface do servico descreve o web service, incluindo
metodos que s ao invocados e par ametros que s ao enviados. A parte de definicao
267
http://www.candidatoreal.com
de implementac
ao de servicos descreve como uma interface de servico e im-
plementada por um provedor: onde o servico est a instalado e como pode ser
acessado. As descric
oes dos elementos das duas partes:
tipos de dados corretos (par ametros, etc) de acordo com a definic ao encontrada
no documento. As duas partes envolvidas em uma interac ao web service pre-
cisam ter acesso ` a mesma descric ao WSDL para conseguirem entender uma ` a
outra. Em seguida, a mensagem e enviada para o endereco onde o servico est a
localizado, a fim de que possa ser processada. O web service, quando recebe esta
mensagem valida-a conforme as informac oes contidas no documento WSDL. A
partir de ent ao, o servico remoto sabe como tratar a mensagem, sabe como
processa-la (possivelmente enviando-a para outro programa) e como montar a
resposta ao cliente.
268
http://www.candidatoreal.com
26.4 UDDI
Para que um servico seja utilizado e necess ario que o cliente consiga localiz a-
lo, e essa localizac
ao pode ser feita por meio do UDDI (Universal Description,
Discovery and Integration), que e uma especificac ao tecnica para descrever,
descobrir e publicar web services.
Uma implementac ao de UDDI corresponde a um registro web service, que
prove um mecanismo para busca e publicac ao de web services. Um registro
UDDI contem informac oes categorizadas sobre os servicos e as funcionalidades
que eles oferecem, e permite a associac ao desses servicos com suas informac oes
tecnicas, geralmente definidas usando WSDL.
O UDDI possui um componente central chamado UDDI Project, que ma-
nipula um registro global e p ublico chamado business registry. A informac ao
oferecida pelo bussines registry consiste de tres componentes: white pages, yel-
low pages e green pages.
A informacao fornecida por um registro UDDI pode ser comparada ` a uma
lista telef
onica. As p aginas brancas (white pages), fornecem informac oes tais
como nome da organizac ao, contato e identificadores. As p aginas amarelas
(yellow pages) s ao compostas por um ndice de servicos e produtos e as p aginas
verdes (green pages) contem informac oes a respeito de transac
oes, descric
oes de
servico e invocac
ao de aplicacoes.
As informacoes contidas em arquivos de descric ao de servico (WSDL) com-
pletam aquelas que est ao no registro. No entanto, UDDI n ao fornece suporte
a varios tipos de descric
ao de servico, mas n ao suporta a criacao de descric
oes
WSDL de forma direta.
Uma descric ao WSDL completa consiste da combinac ao dos documentos de
interface e de implementac ao de servico. A primeira e publicada no registro
UDDI como businessservice e a segunda como tmodel.
26.5 Seguranca
A seguranca no envio de mensagens SOAP e um t opico importante. Em um nvel
mais baixo, mensagens SOAP podem ser trocadas pela rede utilizando HTTPS
ao inves de HTTP. Como HTTPS utiliza SSL no seu transporte, fica garantida
a protec
ao contra possveis intervenc
oes. Alem disso, o cliente e servidor podem
verificar cada um suas respectivas identidades.
Embora HTTPS resolva o problema de protec ao das mensagens contra possveis
invasores, este n ao ajuda muito quando se necessita da seguranca necess aria
http://www.candidatoreal.com
269
http://www.candidatoreal.com
Parte VI
Redes de Comunica
c
ao
http://www.candidatoreal.com
270
http://www.candidatoreal.com
Captulo 27
T
ecnicas B
asicas de
Comunicac
ao
27.1 Base Te
orica da Comunica
cao de Dados
As informac oes podem ser transmitidas por fios fazendo-se variar alguma pro-
priedade fsica, como voltagem ou corrente. Representando o valor dessa volt-
agem ou corrente como uma func ao de tempo com uma valor u nico, f(t), pode-se
criar um modelo para o comportamento do sinal e analis a-lo matematicamente.
Tal an
alise e conhecida como An alise de Fourier e ela afirma que qualquer
funcao peri
odica razoavelmente est avel, g(t), com o perodo T pode ser con-
struda como a soma de um n umero (possivelmente infinito) de senos e co-senos.
A decomposic ao dos harm onicos que comp oe que comp oe a func
ao e a chamada
serie de Fourier.
Nenhum recurso de transmiss ao e capaz de transmitir sinais sem perder
parte da energia no processo. Se todos os coeficientes da seria de Fourier fossem
igualmente reduzidos, o sinal resultante seria reduzido em amplitude, mas n ao
seria distorcido. Infelizmente, todos os meios de transmiss ao reduzem diferentes
componentes de Fourier por diferentes valores e, em conseq uencia disso, intro-
duzem distorc oes. Em geral, as amplitudes s ao transmitidas sem reduc ao, de
0 a alguma freq uencia fc, com todas as freq uencias acima dessa freq uencia de
corte sendo atenuadas A faixa de freq uencias transmitidas sem serem fortemente
atenuadas denomina-se largura de banda. Na pr atica, o corte n ao e ntido; as-
sim, muitas vezes a largura de banda varia desde 0 ate a freq uencia em que a
http://www.candidatoreal.com
271
http://www.candidatoreal.com
27.2 Taxa M
axima de Dados em um Canal
Em 1924, Henry Nyquist percebeu que ate mesmo um canal perfeito tem uma
capacidade de transmiss ao finita. Ele derivou uma equac ao expressando a taxa
m axima de dados de um canal sem rudo com largura de banda finita. Em 1948,
Claude Shannon aprofundou o trabalho e o estendeu ao caso de uma canal com
rudo aleatorio (isto e, termodin amico).
Nyquist provou que, se um sinal arbitr ario atravessar um filtro com baixa
frequencia de corte H, o sinal filtrado poder a ser completamente reconstrudo
a partir de apenas 2H amostras (exatas) por segundo. Fazer uma amostragem
da linha com uma rapidez maior que 2H/s seria in util, pois os componentes
de freq uencia mais alta que essa amostragem poderia recuperar j a teriam sido
filtrados. Se o sinal consistir em V nveis discretos o teorema de Nyquist afirma
que:
S
Maximum Data Rate = 2Hlog2 (1 + ) (27.1)
N
Se houver rudo aleat orio, a situac
ao ir
a se deteriorar mais rapidamente.
Alem disso, sempre existe rudo aleat orio (termico) presente, devido ao movi-
mento das moleculas no sistema. O volume de rudo termico presente e medido
pela relac
ao entre a potencia do sinal e a potencia do rudo, chamada relacao
sinal/rudo. Dessa forma, o principal resultado de Shannon e que a taxa m axima
de dados de um canal com rudos cuja largura de banda e H Hz, e cuja relac ao
sinal/rudo e S/N, e dada por:
S
Maximum Number of Bits/sec = Hlog2 (1 + ) (27.2)
N
Por exemplo, um canal com largura de banda de 3000 Hz com uma relac ao
sinal/rudo de 30 db nunca pode transmitir muito mais que 30000 bps, inde-
pendente da quantidade de nveis de sinal utilizados e da freq
uencia com que as
amostras s ao obtidas.
272
http://www.candidatoreal.com
27.4 Transmiss
ao em Banda Base
Banda base e freq
uentemente utilizada para a transmiss ao digital de dados, um
u
nico canal utiliza a largura de banda total disponvel. Assim, a transmiss ao
de um sinal em banda base consiste em enviar o sinal de forma digital atraves
da linha (forma de onda digital), ou seja, enviar os bits conforme a necessidade,
de acordo com um padr ao digital. Desde que a distancia entre o transmissor e
receptor seja de alguns quilometros, a banda de transmiss ao disponvel seja em
torno de 15 KHz e o meio de transmiss ao tenha certas caractersticas, e possvel
realizar a Codificac
ao Banda Base do sinal digital. Nesse sentido, a dist ancia
alcancada na transmissao diminui conforme aumenta a velocidade transmiss ao.
O alcance m aximo e definido como sendo a distancia m axima em que e possvel
transmitir mantendo a taxa de erro abaixo de um valor predeterminado.
http://www.candidatoreal.com
27.5 Classificac
ao dos Sinais
Os sinais em Banda Base podem ser classificados quanto a durac
ao e polaridade
de seus pulsos:
Durac
ao:
273
http://www.candidatoreal.com
Polaridade:
27.6 T
ecnicas de Codifica
c
ao de Linha
As diversas tecnicas de codificac
ao do sinal digital procuram gerar o sinal codi-
ficado com muitas transicoes, a fim de facilitar a recuperac
ao do sincronismo no
modem receptor (recuperac ao do relogio). Alem disso, procura-se concentrar o
espectro de transmiss ao do sinal codificado dentro de uma faixa de freq uencia
com pouco componente DC. Diversas tecnicas de codificac ao s
ao ilustradas na
figura 27.2 e descritas adiante.
http://www.candidatoreal.com
27.6.1 Codifica
cao NRZ
Com o c odigo NRZ, o nvel do sinal e mantido constante em uma de duas
tens
oes possveis, pela duracao de um intervalo de bit. Se as duas voltagens
274
http://www.candidatoreal.com
permitidas sao 0 e V, a forma de onda NRZ e dita UNIPOLAR. Este sinal tem
uma componente DC diferente de zero. Por outro lado, o sinal NRZ BIPOLAR
usa duas polaridades, +V e -V, deste modo prove uma componente DC nula.
A codificac
ao NRZ apresenta carencia de transic oes de dados, o que resulta
em um pobre desempenho na recuperac ao de relogio no receptor. A recuperacao
do rel
ogio nesse contexto significa recuperar o relogio usado no transmissor para
temporizar a codificac
ao do sinal e assim permitir a recuperac ao da informacao
no lado receptor. Esta caracterstica limita o seu uso apenas para pequenas
dist
ancias de transmissao e conex oes entre estac
oes.
27.6.2 Codifica
cao RZ
O nvel do sinal que representa o bit de valor 1 dura a primeira metade do
intervalo do bit, ap
os o qual o sinal retorna para o nvel de referencia (zero) para
o restante meio intervalo de bit. Um bit 0 e indicado por uma n ao mudanca,
com o sinal continuando no nvel de referencia (zero).
Sua principal vantagem reside no aumento das transic oes e comparac ao
com o NRZ, com uma resultante melhoria na recuperac ao do rel ogio no re-
ceptor. Nota-se que uma seq uencia muito grande de 0 resulta em um sinal sem
transic
oes, o que representa um problema para os circuitos de recuperac ao de
rel
ogio.
27.6.3 Codifica
cao AMI (Alternate Mark Invertion)
Na codificac
ao AMI (bipolar), o bit 0 e sempre codificado como nvel zero, e os
bits 1 s
ao codificados como +V ou -V, onde a polaridade e alternada para cada
ocorrencia de bit 1. A codificac
ao AMI resulta em uma componente DC nula.
A representacao AMI pode ser NRZ (100 % do tempo de bit) ou RZ (50% do
tempo de bit).
A garantia de transicao dos nveis para cada bit 1, proporciona um otimo
desempenho na recuperac ao de rel
ogio, melhorando ainda mais quando o sinal
for RZ. Esta codificac
ao apresenta ainda a capacidade de detecc ao de erro, pois
amplitudes positivas consecutivas sem uma amplitude negativa intermedi aria (e
vice-versa) constituem uma violac ao da regra AMI e indicam que ocorreu um
erro na transmiss ao. Entretanto, quando ocorrer uma seq uencia longa de zeros,
o sinal codificado fica muito tempo sem transic oes na linha, o que dificulta a
obtenc
ao do relogio de sincronismo.
27.6.4 Codifica
cao HDB-3 (High Density Bipolar with 3
http://www.candidatoreal.com
275
http://www.candidatoreal.com
27.6.5 Codifica
cao Manchester
Na codificacao Manchester, cada perodo de bits e dividido em dois intervalos
iguais. Um bit 1 bin ario e enviado quando a voltagem e definida como alta du-
rante o primeiro intervalo, e como baixa no segundo intervalo. Um bit 0 bin ario
e exatamente o oposto: primeiro baixo depois alto. Esse esquema garante que
cada perodo de bit ter a uma transicao na parte intermediaria, tornando facil
para o receptor sincronizar-se com o transmissor. Uma desvantagem da cod-
ificac
ao Manchester e que ela exige duas vezes mais largura de banda que a
codificac
ao bin
aria direta, pois os pulsos s
ao a metade da largura. Por exemplo,
para transmitir dados a 10 Mbps, o sinal precisa mudar 20 milh oes de vezes por
segundo.
A codificac
ao Manchester diferencial e uma variacao da codificac
ao Manch-
ester apresentada. Nela um bit 1 e indicado pela ausencia de uma transic ao
no incio do intervalo. Um bit 0 e indicado pela presenca de uma transic ao
no incio do intervalo. Em ambos os casos tambem existe uma transic ao na
parte intermedi aria. O esquema diferencial exige equipamento mais complexo,
mas oferece maior imunidade a rudos. Todos os sistemas Ethernet usam a
codificac
ao Manchester devido a sua simplicidade.
http://www.candidatoreal.com
27.7 Modulac
ao
Modulacao e o processo pelo qual alguma caracterstica de uma onda portadora
e variada de acordo com a mensagem (sinal modulante), produzindo um sinal
276
http://www.candidatoreal.com
27.7.1 Modula
cao de Onda Contnua
As linhas de transmiss ao enfrentam tres problemas principais: atenuac ao, dis-
torc
ao de retardo e rudo. Devido a esses problemas e principalmente ao fato
de a atenuac ao e a velocidade de propagac ao variarem em func ao da freq
uencia,
nao e interessante ter uma grande variedade de freq uencias no sinal. Infeliz-
mente, as ondas quadradas usadas em sinais digitais tem um amplo espectro de
frequencias e, portanto, estao sujeitas a uma forte atenuac ao e a uma distorc ao
de retardo. Esses efeitos tornam a sinalizac ao em banda base (DC) inadequada,
http://www.candidatoreal.com
277
http://www.candidatoreal.com
A modulac
ao digital consiste em aplicar um sinal digital (bin ario) como
sinal modulante da portadora ao inves de um sinal anal ogico como ocorre na
modulac
ao anal
ogica descrita anteriormente. As modulac oes digitais mais us-
adas s
ao ASK (Amplitude Shift Keying), FSK (Frequency Shift Keying), PSK
(Phase Shift Keying). Essas tecnicas de modulac
ao s
ao representadas na figura
27.7.
http://www.candidatoreal.com
Para atingir velocidades cada vez mais altas nao basta apenas aumentar
a taxa de amostragem. O teorema de Nyquist afirma que mesmo com uma
linha de 3000Hz perfeita nao ha raz
ao para uma amostragem mais rapida que
6000Hz. Na pr atica, a maioria dos modens realizam amostragens 2400 vezes/s
e se concentra em obter mais bits por amostra.
278
http://www.candidatoreal.com
27.7.2 Modula
cao de Pulsos
http://www.candidatoreal.com
279
http://www.candidatoreal.com
Modula
cao de C
odigo de Pulso
O processo de transformac ao das redes telefonicas em redes totalmente digitais
tanto no que diz respeito ` a comutac
ao como ` a transmissao teve incio quando
da introduc
ao, em escala comercial, dos sistemas de transmiss ao PCM. O PCM
(Modulacao por C odigo de Pulso) transforma um sinal anal ogico em uma serie
de pulsos binarios que podem ser manipulados. Sendo assim, o objetivo da mod-
ulac
ao PCM e fazer com que um sinal anal ogico possa ser transmitido atraves
de um meio fsico com transmiss ao digital.
O processo de modulac ao PCM consiste basicamente em tres etapas, nessa
ordem: amostragem, quantizac ao e codificac
ao. A figura 27.9 ilustra o processo
de modulacao PCM, passo a passo. Uma etapa adicional chamada compress ao
pode ser inserida ap os a etapa de quantizac ao para manipular a sada desse
processo e transform a-lo em uma quantizac ao nao-linear, melhorando assim a
robustez a problemas de rudo no canal.
27.8 T
ecnicas de Multiplexa
cao
Multiplexac
ao e a transmiss
ao simult
anea de v
arios sinais por um unico canal.
Desse modo, v arias fontes com esquemas de modulac ao individuais podem ser
multiplexados em um mesmo canal. O objetivo b asico para a utilizac
ao desta
280
http://www.candidatoreal.com
quema, a linha do tempo e dividida em quadros que por sua vez e dividida em
slots. Dessa forma, o acesso ao meio e garantido atraves da alocac ao desses
slots de tempo entre as estac oes que compoe o sistema. E mais eficiente em
comparacao ao sistema anterior, entretanto necessita acrescentar bits adicionais
ao sinal original para sincronia e gerenciamento da rede. A Figura 27.12 ilustra
o esquema.
27.8.3 OFDM
O metodo de multiplexac
ao OFDM e uma tecnica de transmiss
ao multiporta-
dora que surgiu no fim da decada de sessenta como uma evolucao de FDM.
281
http://www.candidatoreal.com
O princpio basico em OFDM e eleger freq uencias ortogonais entre si, dito de
outra forma, deve-se garantir que nenhuma subportadora seja produto de com-
binac
ao linear das demais presentes no canal. Isso permite prescindir da banda
de guarda presente na tecnica FDM. O benefcio imediato obtido com OFDM e
a economia de largura de banda. Essa tecnica e particularmente u til nos casos
de transmiss oes sem fio, pois alem da eficiencia espectral, a tecnica OFDM se
apresenta mais robusta em relac ao aos problemas inerentes ao canal sem fio.
282
http://www.candidatoreal.com
283
http://www.candidatoreal.com
Captulo 28
Topologias de Redes
Malha
A interconex
ao e total garantindo alta confiabilidade, porem a complexi-
dade da implementac ao fsica e o custo inviabilizam seu uso comercial;
Estrela
A conex
ao e feita atraves de um n o central que exerce controle sobre a
comunicac
ao. Sua confiabilidade e limitada `a confiabilidade do n
o central,
cujo mau funcionamento prejudica toda a rede;
Barramento
As estac
oes s
ao conectadas atraves de um cabo com difus
ao da informac
ao
para todos os n os. E necess
aria a adoc
ao de um metodo de acesso para
as estac
oes em rede compartilharem o meio de comunicac ao, evitando
colis
oes. E de f
acil expans
ao, mas de baixa confiabilidade, pois qualquer
problema no barramento impossibilita a comunicac ao em toda a rede;
Anel
O barramento toma a forma de um anel, com ligac oes unidirecionais ponto
a ponto. A mensagem e repetida de estac ao para estac
ao ate retornar `
a
http://www.candidatoreal.com
estac
ao de origem, sendo entao retirada do anel. Como o sinal e recebido
por um circuito e reproduzido por outro h a a regenerac
ao do sinal no meio
de comunicac ao; entretanto ha tambem a inserc
ao de um atraso a cada
estac
ao. O tr
afego passa por todas as estac
oes do anel, sendo que somente
a estac
ao destino interpreta a mensagem;
Arvore
a expans
E ao da topologia em barra herdando suas capacidades e limitac oes.
O barramento ganha ramificac
oes que mantem as caractersticas de difus
ao
das mensagens e compartilhamento de meio entre as estac oes;
284
http://www.candidatoreal.com
Mistas
Combinam duas ou mais topologias simples. Alguns exemplos s ao o de es-
trelas conectadas em anel e as
arvores conectadas em barramento. Procu-
ram explorar as melhores caractersticas das topologias envolvidas, procu-
rando em geral realizar a conex ao em um barramento u nico de m odulos
concentradores aos quais sao ligadas as estacoes em configurac
oes mais
complexas e mais confi
aveis.
285
http://www.candidatoreal.com
Captulo 29
Arquitetura de Redes
29.1 Organizac
ao em Camadas
Para reduzir a complexidade do projeto, a maioria das redes e organizada como
uma pilha de camadas colocadas umas sobre as outras. O n umero de camadas
e suas func
oes podem ser diferentes de uma rede para outra. No entanto, em
todas as redes o objetivo principal da implementac ao em camadas e fazer com
que uma camada ofereca servicos ` as camadas superiores, isolando a camada
superior dos detalhes de implementacao. A camada n de uma m aquina se co-
munica com a camada n de outra m aquina utilizando um conjunto de regras
e convenc
oes chamado protocolo. Essas entidades situadas em m aquinas difer-
entes s
ao chamadas de pares. Na verdade, a camada n de uma m aquina nao
se comunica com a camada n da outra m aquina diretamente. As informacoes
s
ao passadas para as camadas inferiores ate que se alcance a camada mais baixa.
286
http://www.candidatoreal.com
Captulo 30
Protocolos de Rede
Quando o computador tem dados para enviar para algum destinat ario rep-
resentado por um endereco IP, por exemplo, ele encapsula esses dados em um
pacote IP e ent ao tem que realizar algumas etapas antes de enviar. Primeiro ele
verifica se o endereco IP destino pertence ou n ao a mesma rede em que ele est a
conectado. Em caso afirmativo, ele precisa ent ao determinar qual o endereco
fsico correspondente ao endereco IP destino, para que ent ao possa encapsular
o pacote IP em um frame e coloc a-lo no meio de transmiss ao. Para determinar
o endereco fsico destino o computador primeiramente verifica se existe uma
entrada em sua tabela de Cache de ARP. Caso exista,ele encapsula o pacote IP
em um frame e envia, caso contr ario e necess
ario que se envie uma mensagem
ARP em broadcast com a seguinte pergunta: Quem possui o endereco IP end?
Todas as m aquinas da rede local ir
ao receber a mensagem e analisar o conte udo.
Aquela que possuir endereco end responder a a mensagem arp enviando seu en-
dereco fsico.
http://www.candidatoreal.com
287
http://www.candidatoreal.com
Alocac
ao Autom atica - um endereco IP e fornecido para de forma perma-
nente pelo servidor de DHCP;
Alocac
ao Din
amica - as configuracoes do host s
ao fornecidas por um de-
terminado perodo de tempo chamado lease. As configurac oes podem
ser canceladas antes desse perodo expirar caso seja de interesse do host;
Alocac
ao Manual - as configurac
oes do host s
ao ajustadas manualmente
pelo administrador da rede.
Entre os par ametros de configuracao fornecidos pelo DHCP, est ao, o en-
dereco de rede, a m
ascara de subrede, o tempo de durac ao da licenca (lease),
endereco do gateway padrao, endereco dos servidores de DNS, etc.
A alocac
ao din
amica de endereco e o mais importante servico fornecido pelo
DHCP. Para um host adquirir configurac oes as seguintes etapas s
ao necess
arias:
288
http://www.candidatoreal.com
dos); Type (tipo de registro); e Value (sua sem antica depende do tipo de
registro). Os tipos de registros existentes s
ao:
Name Servers (Servidores de Nomes): s ao programas servidores que detem
informac
ao sobre a estrutura da arvore de domnio e tambem tem a ca-
pacidade de registrar informac
oes. Resumidamente, h a quatro classes de
servidores de nomes: servidores de nomes raiz (cerca de 13 servidores);
servidores DNS de domnio de nvel superior (.int, .com, .mil, .net, .br, .jp,
etc. - cerca de 200 servidores); servidores DNS com autoridade (chama-
dos de AUTHORITH - os que detem os registros de recursos de servidores,
localizados em sua zona, que podem ser acessados publicamente); e servi-
dores intermediarios;
289
http://www.candidatoreal.com
290
http://www.candidatoreal.com
Distribuic
ao de carga: implementado por meio do tipo de registro A com
mais de um IP de servidores replicados (ex. Web ou FTP) utilizados na
distribuic
ao de carga. Ao resolver o nome, o DNS faz um rodzio entre os
IPs cadastrados;
291
http://www.candidatoreal.com
As conex
oes TCP podem se encontrar nos seguintes estados:
FIN-WAIT-1 - A aplicac
ao informou que acabou de transmitir;
A conex
ao passa de um estado para o outro em resposta a eventos que s
ao
as chamadas as func
oes OPEN, SEND, RECEIVE, CLOSE, ABORT, STATUS
ou ent
ao segmentos contendo flags SYN, ACK, RST, e FIN, alem dos timeouts.
292
http://www.candidatoreal.com
O valor mnimo entre essas janelas reflete o numero m aximo de bytes que um
transmissor pode enviar. O mecanismo de janela de congestionamento funciona
da seguinte maneira: Ao estabelecer a conex ao o valor da janela de congestion-
amento e setado para o valor m aximo do segmento (MSS) cordado na conex ao.
feita ent
E ao a transmiss ao de um segmento de tamanho MSS. Caso n ao tenha
ocorrido timeout, o valor da janela de congestionamento e aumentado para duas
vezes o anterior. Esse procedimento segue ate que uma transmiss ao resulte em
timeout. Caso isso ocorra o procedimento e reiniciado a partir do valor inicial.
Esse e um algoritmo exponencial. Existe uma variante que permite a utilizac ao
de um limiar a partir do qual o crescimento passa a ser linear e nao exponencial.
Na internet essa tecnica e utilizada.
Entre as in
umeras aplicac
oes do protocolo UDP est ao os servicos de RIP,
SNMP, DHCP, DNS, VoIP, jogos online, aplicac oes de multimdia, entre out-
ras. Em um servico de transmiss ao de voz, a retransmiss ao do dado n ao e
http://www.candidatoreal.com
u
til devido ao atraso, assim como em uma transmiss um proto-
ao de vdeo. E
colo da camada de transporte e possui um cabecalho simplificado com apenas
4 campos que sao:(i)Source Port;(ii) Destination Port;(iii)Lenght;(iv)Checksum.
293
http://www.candidatoreal.com
Uma p
agina Web (ou documento) e constituda de OBJETOS. Um objeto e
simplesmente um arquivo. Exemplos de objetos s ao: arquivo HTML, imagem
JPEG, imagem GIF, applet JAVA, etc. Cada objeto e referenciado por uma
u
nica URL. Cada URL tem dois componentes: o nome do hospedeiro e o nome
do caminho do objeto. Por exemplo, na URL http://www.universidade.br/departamento/figura.gif,
www.universidade.br e o nome do hospedeiro e /departamento/figura.gif e o
nome do caminho do objeto.
O HTTP usa o TCP como seu protocolo de transporte. Por padr ao, as por-
tas utilizadas s
ao as 80 (prim
aria) e 8080 (alternativa). Desta forma, as trocas
de mensagens s ao realizadas de forma orientada a conex ao. Estas conexoes po-
dem ser persistentes ou nao-persistentes.
http://www.candidatoreal.com
As conex
oes n
ao-persistentes seguem o seguinte fluxo:
O processo cliente abre uma conex
ao TCP executando a APRESENTAC
AO
DE TRES VIAS (three way handshake);
294
http://www.candidatoreal.com
H a duas vers
oes de conex oes persistentes: SEM PARALELISMO e COM
PARALELISMO. Na vers ao sem paralelismo, o cliente emite uma nova req-
uisic
ao somente quando a resposta anterior foi recebida. O modo default do
HTTP usa conex oes persistentes com paralelismo. Nesse caso, o cliente emite
uma requisicao logo que encontra uma referencia, mesmo antes de receber uma
resposta a uma requisicao anterior (PIPELINE).
Host: www.someschool.edu
Connection: close
User-agent: Mozilla/4.0
Accept-language: fr
Em primeiro lugar, vemos que esta mensagem est a escrita em texto ASCII
comum. Embora ela tenha cinco linhas, ela poderia ter de uma a diversas lin-
has. A primeira linha sempre e denominada LINHA DE REQUISIC
AO. As
subseq uentes s
ao denominadas LINHAS DE CABEC ALHO. A linha de req-
uisic
ao e composta por tres campos: o campo do METODO; o da URL; e o da
VERSAO do HTTP. A linha de cabecalho Host especifica o hospedeiro no qual o
295
http://www.candidatoreal.com
objeto reside (este campo e utilizado para buscar objetos em servidores proxy).
Ao incluir a linha de cabecalho Connection: close, o browser est a encerrando
a conex ao. A linha de cabecalho User-agent especifica o agente de usu ario, ou
seja, o tipo de browser (o servidor pode enviar versoes diferentes de um mesmo
objeto). Por fim, o cabecalho Accept-language mostra que o usu ario prefere
receber uma vers ao em frances do objeto se este existir.
Agora que j
a apresentamos um exemplo de mensagem de requisic
ao, vamos
a um exemplo tpico de mensagem de resposta.
HTTP/1.1 200 OK
Connection: close
Date: Thu, 03 Jul 2003 12:00:15 GMT
Server: Apache/1.3.0 (Unix)
Last-Modified: Sun, 5 May 2003 09:23:24 GMT
Content-Length: 6821
Content-Type: text/html
296
http://www.candidatoreal.com
GET - Este metodo solicita um objeto, identificado por uma URL in-
dicada na mensagem de requisic ao. Um GET condicional e um tipo
especfico de GET. Ele deve possuir pelo menos uma linha de cabecalho
do tipo If-Modified-Since ou If-UnModified-Since. De uma forma geral,
ele permite melhorar o desempenho transmitindo apenas os dados que
atendem determinada condic ao. Existe tambem o GET parcial que
permite que apenas parte da informacao seja transmitida. Isso pode ser
utilizado quando o cliente j
a possui uma parte dos dados. Para isso o
campo Range do cabecalho deve ser preenchido. A grande maioria das
mensagens de requisic
ao tem a forma de metodo GET;
HEAD - Este metodo e semelhante ao GET, contudo e utilizado para
trazer apenas os cabecalhos da mensagem que s
ao exatamente os retorna-
dos pelo GET e n ao os objetos requisitados;
POST - Este metodo e utilizado para acrescentar informac oes a uma req-
uisic
ao. Por exemplo, quando o cliente preenche algum formul ario de
http://www.candidatoreal.com
297
http://www.candidatoreal.com
DELETE - Este metodo solicita que um objeto determinado por uma URL
seja deletado no Servidor Web;
TRACE - Este metodo requisita o destino final a refletir (enviar de volta)
a mensagem que est a recebendo. O campo de cabecalho Max-Fowards
pode ser preenchido de forma limitar o n
umero de proxies para detectar
possveis loops;
CONNECT: N
ao e utilizado atualmente. Ele e reservado para uso futuro;
OPTIONS: fornece um meio para que o cliente consulte o servidor sobre
suas propriedades ou sobre as de um objeto especfico.
Os CODIGOS DE ESTADO s ao c
odigos para representar o atual estado do
servidor. S
ao separados nas seguintes classes:
A vers
ao 1.1 do HTTP e totalmente compatvel com a vers
ao 1.0, contudo
h
a algumas diferencas. As duas principais s
ao:
A vers
ao 1.0 n
ao suporta conexoes persistentes. J
a a vers
ao 1.1 suporta
ambos os tipos de conex
ao, persistente e n
ao-persistente;
A vers
ao 1.0 permite somente tres tipos de metodos: GET, POST e
HEAD.
298
http://www.candidatoreal.com
bem comum descrito pela figura 30.3. Suponha que Alice queira enviar a Bob
uma simples mensagem ASCII. Os seguintes passos s ao seguidos:
Alice comp
oe a mensagem e solicita ao seu Agente de Usu
ario a entregar
esta mensagem a Bob;
299
http://www.candidatoreal.com
Bob chama seu Agente de Usu ario para ler a mensagem quando for mais
conveniente para ele. Vale salientar que a comunicacao entre o Agente de
Usuario de Bob e seu Servidor de Correio nao pode se dar via SMTP. Este
u
ltimo passo do processo dever a ser feito via um dos protocolos: HTTP,
POP3 ou IMAP.
A cada comando enviado pelo cliente SMTP, haver a uma resposta enviada
pelo servidor SMTP via um c odigo de resposta e eventualmente uma mensagem
de explicac
ao. Os principais comandos sao:
300
http://www.candidatoreal.com
TURN: faz com que os cliente e servidor troquem de papel, o cliente passa
a ser servidor e vice-versa;
301
http://www.candidatoreal.com
TRANSAC e ATUALIZAC
AO
AO.
Em uma transac
ao POP3, o Agente de Usu
ario emite comandos e o Servidor
de Correio emite uma resposta a cada comando recebido. Ha duas respostas
possveis:
+OK: indica que correu tudo bem com o comando anterior. Esta resposta
as vezes vem seguida de dados do servidor para o cliente;
`
-ERR: indica que houve algo errado com o comando anterior.
Os comandos do POP3 s
ao definidos na RFC 1939. Os principais s
ao:
Um Agente de Usu ario que utiliza POP3 frequentemente pode ser configu-
rado pelo usu ario final para LER-E-APAGAR ou para LER-E-GUARDAR. A
sequencia de comandos emitida por um Agente de Usu ario depende desta con-
http://www.candidatoreal.com
figurac
ao.
302
http://www.candidatoreal.com
303
http://www.candidatoreal.com
Outra caracterstica importante do IMAP e que ele tem comandos que per-
mitem que um Agente de Usu ario obtenha componentes de mensagens. Por
exemplo, um Agente de Usuario pode obter apenas o cabecalho ou somente
uma das partes de uma mensagem MIME multiparte. Essa caracterstica e u til
quando ha uma conex ao de largura de banda estreia entre o Agente de Usuario
e seu Servidor de Correio. Com uma conex ao deste tipo, o usu
ario pode decidir
n
ao baixar todas as mensagens de sua Caixa Postal, evitando, em particular,
mensagens longas que possam conter, por exemplo, arquivos grandes.
304
http://www.candidatoreal.com
305
http://www.candidatoreal.com
Assim como o HTTP, o FTP tambem usa o TCP como protocolo de ca-
mada de transporte. Contudo, h a algumas diferencas importantes. Diferente
do HTTP, o FTP usa duas conex oes TCP paralelas para transferir um ar-
quivo: uma CONEXAO DE CONTROLE e uma CONEXAO DE DADOS. A
primeira e utilizada para enviar informacoes de controle, por exemplo, identi-
ficac
ao de usu
ario, senha, comandos para trocar diret orio remoto e comandos
de inserir/pegar arquivos. A conex ao de dados e usada para enviar efetivamente
os dados. Como s ao usadas conexoes distintas para controle e dados, dizemos
que o FTP envia informac oes de controle FORA DA BANDA. Por padr ao, as
portas utilizadas sao as 21 (conex
ao de controle) e 20 (conex ao de dados).
306
http://www.candidatoreal.com
O protocolo FTP, assim como o HTTP, envia comandos e respostas por meio
da conexao de controle no formato ASCII. Contudo, o FTP permite que o cliente
especifique o formato dos dados armazenados a serem transferidos na conex ao
de dados. Os formatos mais utilizados s
ao: ASCII, Binary, EBCDIC e USASCII.
307
http://www.candidatoreal.com
308
http://www.candidatoreal.com
x4x: Ainda n
ao especificada;
309
http://www.candidatoreal.com
Vale mencionar que o protocolo TFTP (Trivial File Transfer Protocol) e uma
opc
ao para quem n ao necessita da robustez do protocolo FTP. O TFTP usa o
protocolo UDP/69 para fazer a entrega dos pacotes, ao contr ario do protocolo
FTP que usa o protocolo TCP. As principais caractersticas deste protocolo
s
ao: nao permite visualizac
ao dos diretorios; n
ao implementa autenticac
ao de
usuarios; e n
ao implementa mecanismos de criptografia. As operac oes de es-
crita/leitura s
ao descritas pelas figuras 30.5
310
http://www.candidatoreal.com
de QoS s ao assinalados por meio desse campo do cabecalho. (4) Total Lenght:
Tamanho total do datagrama (dados e cabecalho). (5) Identification: Identi-
fica a qual datagrama pertence um fragmento. (6) Time to Live: Contador de
tempo de vida do pacote. Decrementado a cada hop. (7) Protocol: Identifica
qual protocolo de camada superior est a encapsulado. (8) Header Checksum:
Identifica se cabecalhos estam corrompidos. (9) Source/Destination Address.
(10) Options e Padding: Suporta opc oes (Ex: Seguranca) e Preenchimento.
Com esta estrategia e possvel criar redes com tamanhos mais adequados as
necessidades. Para identificar como um datagramas deve ser encaminhado por
um roteador, por exemplo, e feito um AND l ogico da mascara com o endereco
IP de destino do datagramas para pesquisar por qual linha ele deve sair.
E AO
854 (na verdade tambem em diversos outros RFCs). Ele e um protocolo popular
utilizado para fazer login remoto entre qualquer par de hospedeiros. Por padr
ao,
ele utiliza o TCP como protocolo de transporte via porta 23. Na verdade, nada
impede que sejam utilizadas outras portas.
311
http://www.candidatoreal.com
A figura 30.6 apresenta o cen ario tpico de envio de caracteres via Telnet.
A seguir, s
ao examinados os segmentos TCP que s ao enviados entre o cliente e
o servidor deste cen
ario. Admite-se que os n umeros de seq
uencia iniciais sejam
42 e 79 para cliente e servidor, respectivamente. Lembre-se que estes n umeros
representam os n umeros dos segmentos aguardados cada m aquina. Vamos aos
segmentos:
Vale a pena comentar que este protocolo vem perdendo bastante espaco para
o protocolo SSH. Pois o SSH prove todas as funcionalidades do Telnet com a
adic
ao de uma forte criptrografia de dados, inclusive senhas, e de uso de chaves
p
ublicas para a realizac
ao de autenticac
ao. Com este tipo de autenticac ao, se
garante que o servidor e realmente quem ele diz que e.
312
http://www.candidatoreal.com
313
http://www.candidatoreal.com
Captulo 31
O Modelo de Refer
encia
OSI
linha que pareca livre de erros para a camada de rede. Deve implementar
mecanismos de fragmentac ao e montagem, controle de fluxo, tratamentos
de erros e mecanismos de confirmac ao caso o servico seja confi
avel. Para
melhorar o desempenho pode-se utilizar a tecnica de Pipelining. Deve
possuir tambem mecanismos de retransmiss ao;
3. Camada de Rede - Determinar como os pacotes s ao roteados da origem ao
destino. Evitar congestionamentos e atrasos excessivos. Deve se preocu-
par tambem com enderecamento e tamanhos de pacotes,que podem ser
diferentes nas diversas redes. E papel da camada proporcionar interoper-
abilidade entre as redes. Deve implementar servicos orientados a conex
ao
(circuitos virtuais) e n
ao orientados a conex
ao (datagramas).
314
http://www.candidatoreal.com
315
http://www.candidatoreal.com
Captulo 32
Roteamento
316
http://www.candidatoreal.com
Os roteadores podem conhecer as informac oes uns dos outros durante o pro-
cesso. As entradas manuais nas tabelas de roteamento s ao chamadas de ro-
tas est aticas. As rotas descobertas automaticamente s ao chamadas de rotas
din amicas. Quando um algoritmo de roteamento atualiza uma tabela de rotea-
mento, seu principal objetivo e determinar as melhores informacoes para incluir
na tabela. Cada algoritmo de roteamento interpreta ` a sua maneira o que e
melhor. O algoritmo gera um n umero, chamado valor metrico, para cada cam-
inho atraves da rede. Geralmente, quanto menor o n umero da metrica, melhor
e o caminho. Voce pode calcular a metrica com base em uma u nica carac-
terstica do caminho; voce pode calcular metricas mais complexas combinando
v
arias caractersticas. As metricas comumente usadas pelos roteadores s ao as
seguintes:
Vetor de Dist
ancias (Distance Vector );
Estado do Link (Link State).
http://www.candidatoreal.com
317
http://www.candidatoreal.com
de dist
ancia prossegue, os roteadores descobrem o melhor caminho para as redes
de destino, com base nas informac oes que recebem de cada vizinho. Quando
a topologia em uma rede de protocolo de vetor de dist ancia e alterada, devem
ocorrer atualizac
oes na tabela de roteamento. Da mesma forma que acontece
com o processo de explorac ao da rede, as atualizac
oes das alterac
oes na topolo-
gia prosseguem passo a passo, de roteador para roteador. Os algoritmos de vetor
de distancia solicitam que cada roteador envie toda a sua tabela de rotea-
mento para cada um dos vizinhos adjacentes. As tabelas de roteamento incluem
informacoes sobre o custo total do caminho (definido pela sua metrica) e o en-
dereco l
ogico do primeiro roteador no caminho para cada rede contida na tabela.
de informac
oes comuns de roteamento a todos os roteadores na internetwork.
Existem duas quest oes relacionadas ao link state:
Requisitos de processamento e mem oria: Executar protocolos de rotea-
mento de link state, na maior parte das situacoes, requer que os roteadores
usem mais mem oria e executem mais processamento que os protocolos
de roteamento de vetor de dist ancia. Para roteamento de link state, a
mem oria deve ser capaz de reter informacoes de diversos bancos de dados,
da
arvore de topologia e da tabela de roteamento. Usar o algoritmo de
Dijkstra para calcular o SPF requer uma tarefa de processamento propor-
cional ao numero de links na internetwork, multiplicado pelo n umero de
roteadores na internetwork;
318
http://www.candidatoreal.com
izac
oes de bancos de dados de roteamento. O protocolo de roteamento hbrido
balanceado converge rapidamente, como os protocolos de link state. Entretanto,
ele difere dos protocolos de vetor de dist
ancia e de link state porque usa menos
recursos, como largura de banda, mem oria e sobrecarga de processador. Ex-
emplos de protocolos hbridos s
ao o IS-IS (Intermediate System-to-Intermediate
System) da OSI e EIGRP (Enhanced Interior Gateway Routing Protocol) da
Cisco.
319
http://www.candidatoreal.com
Quando se usa o RIP, o numero m aximo de saltos pelos quais os dados podem
ser encaminhados e 15. Alguns avancos foram introduzidos na nova vers ao do
RIP, chamada de RIP2. Esta nova vers ao trata da questao de VLSMs (m ascara
de tamanho vari avel), autenticac
ao, e atualizac
oes de roteamento simultaneas
(multicast). RIP2 nao apresenta avancos expressivos em relacao ao RIP porque
ainda apresenta limitacoes na contagem de hops e lenta convergencia, o que
essencial nas grandes redes atuais.
H
a duas caractersticas principais no OSPF. A primeira, e um protocolo de
padrao aberto,. A segunda, e um protocolo baseado no algoritmo SPF (link-
state), tambem chamado de algoritmo de Dijkstra. O OSPF utiliza o conceito
de roteamento hierarquico.
N
ao h
a limite na contagem de hops;
http://www.candidatoreal.com
320
http://www.candidatoreal.com
Permite a autenticac
ao de rota utilizando diferentes metodos para a aut-
enticac
ao de senha;
321
http://www.candidatoreal.com
Captulo 33
Redes Ethernet
A rede Ethernet e um padr ao de rede local que foi padronizado pelo comite
IEEE 802 como IEEE 802.3. As redes Ethernet vem sendo, desde 1990, as mais
utilizadas para implementac
ao de LANs.
322
http://www.candidatoreal.com
Dessa forma, apos um adaptador detectar uma colis ao pela primeira vez (n =
1) escolher
a um valor de K no conjunto {0, 1}. No caso de uma rede de 10Mbps,
o tempo de transmiss ao de um bit e igual a 0.1 microssegundos e supondo que
o K escolhido seja 1, ent ao o adaptador ter a que esperar por um tempo igual
a 51.2 microssegundos antes de uma nova tentativa de transmiss ao. Ap os a
segunda deteccao de colis
ao, o valor de K ser
a escolhido entre 0, 1, 2, 3. A partir
da decima colis
ao o valr de K ser a escolhido no conjunto {0, 1, 2, 4, ..., 1023}.
No padr
ao Fast Ethernet tambem foi introduzido um mecanismo de controle
de fluxo. Quando um receptor deseja que o tansmissor interrompa a transmiss
ao
por um tempo, ele envia um quadro especial chamado pause frame, que indica
http://www.candidatoreal.com
100Base-TX: E o sub-padr
ao mais utilizado para redes Fast Ethernet.
Ele funciona sobre cabos UTP de categoria 5 ou superior, embora utilize
apenas os pares laranja e verde do cabo de acordo com o padr oes de
terminac
ao TIA/EIA-568A e TIA/EIA-568B. Cada enlace pode ter no
323
http://www.candidatoreal.com
324
http://www.candidatoreal.com
325
http://www.candidatoreal.com
Captulo 34
Cabeamento Estruturado
de um sistema e a atenuac
ao do sinal ao longo do cabo, foi necessario estabelecer
alguns modos de classificac
ao para o cabeamento em par met alico e o respectivo
hardware de conex ao. Criou-se ent
ao a subdivisao em uma serie de categorias e
classes por capacidades de desempenho. Nessa classificac ao, uma categoria ou
classe de desempenho superior do cabo significa maior eficiencia e uma menor
atenuac
ao. Dentre as categorias destacam-se a 5e e a 6.
34.1.1 Interfer
encias nos Cabos de Par Trancado
O Crosstalk nao ocorre apenas no par adjacente (pair to pair NEXT), mas em
todos os outros pares de um cabo UTP podem interferir com seus pr
oprios nveis
326
http://www.candidatoreal.com
34.2 Categorias 5e
A letra eno nome da categoria significa Enhanced, ou seja, a categoria 5e
representa uma melhoria das caractersticas dos materiais utilizados na categoria
http://www.candidatoreal.com
5, permitindo um melhor desempenho. Pode ser usado para freq uencias de ate
100MHz em redes 1000BASE-T e 1000BASE-TX. Ele e igual a categoria 5,
porem com especificac
oes adicionais como os parametros PS NEXT, Balanco,
PS ELFEXT, Return Loss.
O cabeamento Categoria 5 e normalmente direcionado para o mercado resi-
dencial, mas sua utilizac
ao vem caindo devido ao seu custo ser praticamente o
mesmo da Categoria 5e. Reforcando essa afirmativa, nos projetos atuais de infra-
estrutura e recomendada a utilizac
ao de cabeamento de, no mnimo, Categoria
5e para pequenas redes com poucos servicos ou que tenham car ater provis
orio
e Categoria 6 para as redes novas ou de maior porte.
327
http://www.candidatoreal.com
34.3 Categoria 6
A Categoria 6 pode ser vista como um aperfeicoamento no projeto de infra-
estrutura das redes locais. Ela segue seus predecessores, as categorias 3, 4, 5 e 5e,
cada uma provendo maior capacidade de transporte de informac ao para usu arios
finais. Torna-se uma opcao que oferece alta performance para a distribuicao hor-
izontal em um sistema estruturado, permitindo suporte para aplicac oes como
voz tradicional (telefone anal
ogico ou digital), VoIP, Ethernet (10Base-T), Fast
Ethernet (100Base-TX) e Gigabit Ethernet a 4 pares (1000Base-T), com mel-
hor performance em relac ao a Categoria 5e. Ela permite ainda suporte para
aplicac
oes ATM e novas tecnologias como Ethernet a 10Gbps sem investimen-
tos adicionais na infra-estrutura existente.
Os sistemas Categoria 6 foram projetados para atender basicamente os seguintes
objetivos:
manter boa relacao custo x benefcio dos sistemas UTP, bem como facilitar
sua instalac
ao e operacao;
garantir a interoperabilidade com os atuais sistemas Categoria 5e;
roporcionar uma nova infra-estrutura com capacidade para servicos fu-
turos (redes de pr
oxima gerac
ao).
Outro fato que deve ser considerado e que os requisitos para o link (meio de
transmiss ao entre dois pontos, nao incluindo a conexao de equipamentos) e canal
(meio de transmiss ao fim-a-fim entre dois pontos no qual existem equipamentos
de aplicac
oes especficos conectados) na Categoria 6 s ao compatveis com os da
Categoria 5e, fazendo com que os projetistas escolham a Categoria 6, substi-
tuindo as redes Categoria 5e. A tabela 34.2 resumo as principais informac oes
sobre as categorias de cabos UTP.
328
http://www.candidatoreal.com
34.5 Cabeac
ao Estruturada Norma EIA/TIA
568
Pode-se definir a cabeac
ao estruturado como um sistema baseado na padronizacao
das interfaces e meios de transmiss
ao, de modo a tornar o cabeac
ao independente
da aplicac
ao e do layout. O cabeac
ao estruturado descreve ainda os sistemas de
rede interna e de campus e sua interconex ao com a planta externa.
Entrada do Edifcio;
http://www.candidatoreal.com
Sala de Equipamentos;
Cabeac
ao do Backbone;
Arm
ario de Telecomunicac
oes;
Cabeac
ao Horizontal;
Area de Trabalho.
As instalac
oes de entrada no edifcio fornecem o ponto no qual e feita a inter-
face entre a cabeacao externa e a cabeac ao intra-edifcio e consistem de cabos,
329
http://www.candidatoreal.com
Ligac
ao vertical entre os pisos (subidas ou risers)
bone s
ao mostrados na tabela 34.1:
Tipos Dist
ancias M
aximas
Cabo UTP de 100 ohms (22 ou 24 AWG) 800 metros(2625 pes) Voz
Cabo STP (par trancado blindado) de 150 ohms 90 metros(295 pes) Dados*
Fibra Optica Multimodo de 62,5/125 m 2000 metros (6560 pes)
Fibra Optica Monomodo de 8,5/125 m 3000 metros (9840 pes)
330
http://www.candidatoreal.com
Topologia em estrela
N
ao possuir mais do que dois nveis hier
arquicos de cross-connects
N
ao s
ao permitidos Bridge Taps
Os cabos de conex
ao ou de jumper no cross-connect principal ou inter-
medi
ario n
ao podem exceder 20 metros (66 pes)
Evitar a instalac
ao em areas onde existam fontes de interferencias eletro-
magneticas ou de radio freq
uencia.
331
http://www.candidatoreal.com
Cabeac
ao Horizontal;
Tomada de Telecomunicac
oes, tambem chamado Sada de Informac
ao;
Terminac
oes de Cabo;
Cross-Connections.
332
http://www.candidatoreal.com
de parede, (em geral, 3 metros) mais as conex oes internas do Armario de Tele-
comunicac oes e entre este e os equipamentos ativos (7 metros restantes). Em
complemento, cada area de trabalho deve ter no mnimo DUAS posic oes de
sada de informac
ao: uma para voz e outra para dados.
Equipamento da estac
ao: computadores, terminais de dados, telefone, etc.;
Cabos de ligac
ao - cord
oes modulares, cabos de adaptac
ao, jumpers de
fibra;
Adaptadores.
333
http://www.candidatoreal.com
ser
ao apresentadas as categorias de cabeac
ao com tecnologia de par trancado
UTP e de fibra
optica.
6 m no arm
ario de telecomunicac
oes;
3 m na estac
ao de trabalho.
334
http://www.candidatoreal.com
34.6.2
Fibra Optica
A fibra optica pode ser utilizada tanto para a Cabeac ao Horizontal como para a
Vertical. A fibra para Cabeac ao Horizontal e do tipo multimodo de 62,5/125mm
com um mnimo de duas fibras. A Cabeac ao Vertical ou Backbone utiliza fibras
dos tipos multimodo de 62,5/125mm e monomodo formados em grupos de 6 ou
12 fibras.
As premissas para uma Cabeac ao Backbone com fibra opticas, tem sido
e continuam a ser baseadas em fibras multimodo de 62,5/125mm, devido ` a
possibilidade de uso de transmissores opticos com LED nessas fibras. Com
o rapido crescimento dos requisitos de largura de banda, atualmente, tem-se
instalado fibras
opticas monomodo em adic ao ` as fibras multimodo, para atender
os requisitos atuais e futuros. Sistemas de fibras monomodo atendem tanto
maiores bandas de freq uencias como tambem tem maior capacidade para longas
distancias do que as fibras
opticas multimodo. A Figura 34.9 ilustra os tipos de
fibras
opticas empregados.
Figura 34.9: Tipos de Fibras Opticas
335
http://www.candidatoreal.com
A capacidade de terminac
ao para um mnimo de duas fibras, por acopla-
mento 568SC;
34.7 C
odigo de Cores para Sistemas de Cabe
cao
UTP
A EIA/TIA 568A define um sistema de codificacao com quatro cores b asicas,
em combinac
ao com o branco, para os condutores UTP de 100 Ohms, assim
como a ordem dos pares no conector RJ-45, conforme ilustrado na figura 34.10.
Figura 34.10: C
odigo de cores EIA/TIA 568A
Figura 34.11: C
odigo de cores EIA/TIA 568B
336
http://www.candidatoreal.com
Captulo 35
35.1 O padr
ao IEEE 802.11
O IEEE 802.11, tambem conhecido como Wi-Fi, e a tecnologia mais utilizada
atualmente para implementacao de redes locais sem fio. Entre os padr oes 802.11
que mais se destacam est ao o 802.11a, 802.11b e 802.11g. Esses tres padr oes
compartilham caractersticas como formato do quadro, protocolo de acesso ao
meio, capacidade de reduzir taxa de transmissao para alcancar dist
ancias maiores
e a possibilidade de operar tanto em modo de infra-estrutura como em modo ad
hoc. As diferencas entre os padroes a, b e g se concentra na camada fsica de
acordo com a tabela 35.1.
337
http://www.candidatoreal.com
Padr
ao Faixa de Frequencia Taxa de Dados
802.11b 2.4-2.485 GHz ate 11 Mbps
802.11a 5.1-5.8 GHz ate 54 Mbps
802.11g 2.4-2.485 GHz ate 54 Mbps
35.1.1 CSMA/CA
O protocolo de acesso ao meio utilizado pelas redes do padr ao 802.11 e o
CSMA/CA (Carrier Sense for Multiple Access with Colision Avoidance). Esse
protocolo se baseia no fato de que e extremamente difcil detectar colis
oes em
enlaces sem fio, e por isso, tenta evit
a-las sempre que possvel. O CSMA/CA
funciona da seguinte maneira:
1. Se a estac
ao perceber que o canal est
a ocioso, ela transmitir
a o quadro
ap
os um curto espaco de tempo conhecido como DIFS (Distributed Inter-
Frame Space);
2. Caso contr
ario, a estac
ao escolher
a um valor aleat
orio de backoff e iniciar
a
a contagem regressiva a partir desse valor assim que detectar o canal
ocioso;
4. Se a estac
ao receber a confirmac ao e tiver outro quadro para transmitir,
http://www.candidatoreal.com
ent
ao ela ela ir
a iniciar o protocolo a partir da fase 2. Caso n
ao receba nen-
huma confirmac ao, voltara para fase 2 porem ir
a escolher por um backoff
dentro de um intervalo de tempo maior.
338
http://www.candidatoreal.com
339
http://www.candidatoreal.com
Captulo 36
Elementos de Interconex
ao
de Redes de Computadores
36.1 Repetidores
S
ao elementos que interligam dois segmentos de um mesmo domnio de colis ao.
Os sinais eletricos que trafega em ambos sentidos s
ao amplificados analogica-
mente permitindo comunicacoes em maiores distancias. Portanto, estes elemen-
tos operam na CAMADA FISICA do modelo OSI.
36.2 Hubs
Este e um termo generico para CONCENTRADORES. Eles s ao elementos de
CAMADA FISICA do modelo OSI. Portanto, todos os n os conectados a um hub,
ou a um conjunto de hubs interconectados, fazem parte de um mesmo domnio
de colis
ao (topologia barramento). Desta forma, cada n o deve ser capaz de de-
tectar colis
oes e decidir o momento de realizar transmiss
oes e/ou retransmiss
oes.
340
http://www.candidatoreal.com
36.3 Switches
Estes s
ao elementos de CAMADA DE ENLACE do modelo OSI tambem denom-
inados de COMUTADORES. Geralmente eles funcionam tambem como repeti-
dores. Diferentemente dos hubs, os switches dividem a rede em domnios de
colis
ao (um domnio por porta). Desta forma, o switch ao comutar um quadro
de um domnio para outro deve ser capaz de implementar algum tipo de cont-
role de acesso para ser possvel detectar colis
oes e decidir o momento de realizar
transmissoes e/ou retransmiss oes.
As comutacoes s
ao realizadas por meio de consultas a tabelas din amicas que
http://www.candidatoreal.com
341
http://www.candidatoreal.com
36.4 Bridges
As bridges (PONTES) s ao muito semelhantes aos switches. Na verdade, muitas
pessoas usam ambos os termos de forma intercambi avel. A principal diferenca
e que os switches sao usados com maior frequencia para conectarem computa-
dores individuais, enquanto as bridges s
ao mais usadas para conectarem redes.
Contudo, todas as caractersticas dos switches apresentadas na sec
ao anterior
tambem estao presentes nas bridges.
36.5 Roteadores
S
ao elementos da CAMADA DE REDE do modelo OSI. Eles tambem geral-
http://www.candidatoreal.com
342
http://www.candidatoreal.com
36.6 Gateways
Estes elementos podem ser divididos em duas grandes classes: Gateways Con-
versores de Meio e Gateways Tradutores de Protocolos.
343
http://www.candidatoreal.com
Captulo 37
Redes Multimdia
Flutuac
ao (Jitter ): E a variacao do atraso entre os pacotes. Em out-
ras palavras, e a variacao do intervalo de tempo entre os recebimento de
pacotes subsequentes de um determinado fluxo.
A rigidez dos requisitos das aplicac oes mais comuns e mostrada na tabela a
37.1:
No que diz respeito `a confiabilidade, por exemplo, pode-se dizer que o servico
de correio eletr
onico e mais sensvel do que uma aplicac
ao de vdeo sob demanda,
http://www.candidatoreal.com
j
a que o corrompimento dos dados pode invalidar por completo uma mensagem.
Em uma aplicac ao de vdeo sob demanda pode conviver com alguns pacotes
com erro sob pena da perda parcial da qualidade do vdeo. E por esse motivo
que em redes TCP/IP aplicac oes de multimdea, geralmente, utilizam servicos
da camada de transporte baseados em UDP e n ao em TCP, evitando os atrasos
gerados pelo estabelecimento de conex ao, confirmac
oes e retransmissoes.
344
http://www.candidatoreal.com
Aplicac
ao Confiabilidade Retardo Jitter Largura de Banda
Correio Eletr
onico Alta Baixa Baixa Baixa
Transferencia de Arquivos Alta Baixa Baixa Media
Acesso `
a Web Alta Media Baixa Media
Login Remoto Alta Media Media Baixa
Audio por demanda Baixa Baixa Alta Media
Vdeo por demanda Baixa Baixa Alta Alta
Telefonia Baixa Alta Alta Baixa
Videoconferencia Baixa Alta Alta Alta
345
http://www.candidatoreal.com
346
http://www.candidatoreal.com
Func
oes de Borda: Entende-se por borda como o primeiro dispositivo
habilitado a DiffServ (host ou roteador) no caminho entre a origem e o
destino. A func
ao dos dispositivos de borda s ao a classific
ao dos pacotes
e o condicionamento do tr afego. A classificac
ao do trafego consiste na
marcacao do campo DS (Differentiated Service), que na verdade e o campo
ToS (Type of Service) do pacote IP. O condicionamento do tr afego est
a
relacionado com a limitac
ao de par
ametros pre-acordados como taxa media
de envio, taxa de pico etc.
Funcao Central: Quando um pacote marcado com DS chega a um roteador
habilitado a DiffServ ele e repassado de acordo com o seu comportamento
de salto (per-hop behavior - PHB) associado a sua classe. O PHB influencia
na maneira como os buffers e a largura de banda s ao compartilhados entre
as classes de tr
afego no roteador. Os dois tipos de PHB definidos ate agora
s
ao o PHB de repasse acelerado (expedited forwarding - EF), que garante
a taxa de partida de uma determinada classe ser a maior ou igual do que
uma taxa configurada, e o PHB de envio assegurado (assured forwarding -
AF), que permite criacao de regras de descarte preferencial entre as classes.
Um aspecto de fundamental import ancia na arquitetura DiffServ e que o
comportamento de salto dos pacotes depende u nica e exclusivamente de
sua classe de trafego.
http://www.candidatoreal.com
347
http://www.candidatoreal.com
Captulo 38
38.1 X.25
O conjunto de protocolos X.25 foi projetado no final da decada de 70. Nessa
epoca, os PCs e as estacoes de trabalho n ao estavam amplamente disseminados
e nao dispunham de muito suporte para rede. Basicamente, eram usados os
chamados terminais burrospara acessarem os mainframes atraves das redes
de computadores. Dessa forma, para dar o suporte necess ario aos terminais
burrosos projetistas da X.25 decidiram injetar inteligencia na rede. Como
sabemos hoje, essa filosofia e oposta `
a filosofia da Internet, que coloca muito da
complexidade nos sistemas finais e espera o mnimo dos servicos de camada de
rede.
Outra parte importante do contexto tecnol ogico do final dos anos 70 e do
comeco dos anos 80 se refere aos enlaces fsicos. Naquela epoca, quase todos
os enlaces terrestres eram de cobre, apresentavam rudos e estavam propensos
a erros. Os enlaces de fibra optica ainda n ao tinham sado dos laborat orios de
pesquisa. As taxas de erros de bits sobre enlaces de longa dist ancia eram muitas
ordens de grandeza maiores do que s ao agora sobre o enlaces opticos. Devido `as
altas taxas de erros, tinha sentido projetar o protocolo X.25 com recuperac ao de
erros em cada enlace. Em particular, sempre que um protocolo X.25 envia um
pacote, ele conserva uma c opia do pacote ate que o comutador seguinte (na rota
do pacote) devolva um reconhecimento, indicando que o pacote foi recebido livre
de erros. A recuperac ao de erros por enlace reduz significativamente a taxa de
transmissao, o que era consistente com o contexto tecnol ogico da epoca altas
taxas de erros de enlace e terminais n ao inteligentes. Alem disso, o projeto da
http://www.candidatoreal.com
348
http://www.candidatoreal.com
Aviso de congestionamento
349
http://www.candidatoreal.com
350
http://www.candidatoreal.com
38.3 Interligac
ao de Redes LAN
A interligac
ao das redes LAN de v arios escritorios compondo uma rede WAN,
e uma aplicacao tpica para o uso da tecnologia Frame Relay. O tr afego usual
das redes de dados e normalmente de 2 tipos: interativo (comando - resposta),
ou seja, solicitac
ao de usu arios e aplicac
oes clientes e respostas de aplicac
oes
servidoras, e por rajadas (bursty), quando grandes quantidades de dados s ao
transferidas de forma n ao contnua.
O Frame Relay, atraves de roteadores ou equipamentos de acesso (FRAD)
instalados nos escrit orios, permite utilizar uma porta u nica em cada escritorio
para compor redes do tipo malha (meshed) onde a comunicac ao de um escrit
orio
com todos os outros e possvel sem a complexidade do uso de m ultiplas portas
e multiplos circuitos dedicados.
Alem disso, o uso dos circuitos virtuais do Frame Relay para compor a rede
permite tempos de provisionamento muito menores e reconfigurac ao de rede ou
aumento de banda com maior facilidade.
351
http://www.candidatoreal.com
38.3.2 Intera
c
ao entre Frame Relay e ATM
Para buscar aumentar a interoperabilidade do Frame Relay com outros pro-
tocolos de dados, o FR F orum e o ATM F orum, os org
aos responsaveis pelo
desenvolvimento de Acordos de Implementac ao (IAs), desenvolveram padr oes
para interligar equipamentos dessas tecnologias atraves de PVCs.
Foram padronizadas duas formas de interoperabilidade. A primeira, chamada
de Frame Relay/ATM Network Interworking for PVCs, padroniza uma fun-
cionalidade respons avel pelo encapsulamento dos PVCs para que os mesmos
possam ser transportados indistintamente nas redes da 2 tecnologias. Seu uso
tpico ocorre quando a rede Frame Relay tem com n ucleo uma rede ATM, para
otimizar ainda mais o uso de banda e a seguranca. A figura a seguir apresenta
esta soluc
ao.
A segunda forma de interoperabilidade, chamada de Frame Relay/ATM Ser-
vice Interworking for PVCs, padroniza uma funcionalidade respons avel pela
convers ao dos protocolos (FR ATM), que pode ser incorporada tantos aos
equipamentos de acesso como aos equipamentos da rede. Seu uso tpico ocorre
quando o usu ario possui redes Frame Relay em alguns escrit
orios que devem se
interligar com a rede ATM da matriz. A figura a seguir apresenta esta solucao.
352
http://www.candidatoreal.com
353
http://www.candidatoreal.com
Captulo 39
39.1 VLANs
39.1.1 Defini
cao
Uma Virtual Lan, ou simplesmente vlan, e um metodo para se criar redes l
ogicas
independentes dentro de uma rede fsica. As vlans facilitam a administrac
ao da
rede separando logicamente segmentos l ogicos de uma lan, por exemplo, depar-
tamentos distintos. As vlans reduzem o domnio de broadcast, diminuindo o
tr
afego na rede. Ou seja, os pacotes ARP broadcast enviados por um host A
que deseja descobrir o endereco MAC de um host B, ambos de uma mesma vlan
V, nao ser ao escutados por um host C que n ao pertenca a vlan V. Uma vlan
e uma subrede na qual os computadores n ao necessariamente precisam estar
conectados no mesmo segmento fsico. O que torna as vlans extremamente flex-
iveis e o fato de os administradores da rede podem configurar as vlans atraves
de software.
354
http://www.candidatoreal.com
destino. Embora muitas das novas placas Ethernet ja sejam compatveis com o
padrao 802.1q, geralmente o quadro e marcado com a tag vlan por um switch.
Dessa forma, apenas os switches precisam ser configurados.
355
http://www.candidatoreal.com
Captulo 40
A ideia b
asica do ATM e transmitir as informac oes em pequenos pacotes
chamdos celulas. As celulas ATM possuem o tamanho fixo de 53 bytes, sendo 5
para o cabecalho e 48 para a carga u
til. O fato das celulas terem tamanho fixo
permite que todo o roteamento das celulas seja feito via hardware. A estrutura
de uma celula ATM pode ser vista na figura (est a faltando) ??.
CLP (Cell Loss Priority): indica prioridade da celula caso sejam necess
arios
descartes por motivos de congestionmento;
356
http://www.candidatoreal.com
357
http://www.candidatoreal.com
ABR (Available Bit Rate): Garantida uma taxa mnima de transmiss ao.
Aplicado a conex oes que transportam trafego em rajadas que podem pre-
scindir da garantia de banda, variando a taxa de bits de acordo com a
disponibilidade da rede ATM. Aplicac oes tpicas deste servico tambem
s
ao as interligac
oes entre redes e a emulac
ao de LANs;
358
http://www.candidatoreal.com
Outra considerac
ao importante sobre a tecnologia MPLS e que, diferente-
http://www.candidatoreal.com
mente de outras tecnologias de circuito virtual como ATM, uma conex ao MPLS
e unidirecional. Uma conex ao MPLS e tambem chamada LSP (Label Switched
Path). Para estabelecimento de uma comunicac ao bidirecional e necess
ario es-
tabelecer dois LSPs. Isso e feito de forma independente entre origem e destino,
de forma que os dados em um sentido podem seguir por uma rota diferente dos
dados no sentido oposto.
359
http://www.candidatoreal.com
Captulo 41
Arquitetura TCP/IP
41.1 Vis
ao geral
A arquitetura TCP/IP surgiu com a criac ao de uma rede chamada ARPANET,
que foi uma rede criada para manter comunicac ao entre os
org
aos do governo
dos EUA e as universidades. A ARPANET cresceu e tornou-se a rede mundial
de computadores, a Internet.
A arquitetura TCP/IP trata de um conjunto de protocolos divididos em qua-
tro camadas: Fsica (host/Rede), Rede (Inter-Rede ou Internet), Transporte e
Aplicac
ao; onde cada uma executa um conjunto bem definido de func oes de co-
municacao. Nesta arquitetura n
ao existe uma estruturac
ao formal para cada ca-
mada conforme ocorre no modelo OSI. Ela procura definir um protocolo pr oprio
para cada camada, assim como a interface de comunicac ao entre duas camadas
adjacentes. A figura ?? 1 mostra a arquitetura TCP/IP.
41.2 Comparac
ao entre a arquitetura OSI e TCP/IP
Os modelos de referencia OSI e TCP/IP tem muito em comum. Os dois se ba-
seiam no conceito de pilha de protocolos independentes. Alem disso, as camadas
tem praticamente as mesmas func oes. Apesar dessas semelhancas, os modelos
tem muitas diferencas.
O modelo OSI torna explcita a diferenca do conceito de servico, de interface
e de protocolo. Enquanto que o modelo TCP/IP n ao diferencia com clareza
esses conceitos. Por esse motivo, o modelo OSI os protocolos s ao bem mais en-
http://www.candidatoreal.com
360
http://www.candidatoreal.com
361
http://www.candidatoreal.com
362
http://www.candidatoreal.com
363
http://www.candidatoreal.com
Captulo 42
Camada de Aplica
c
ao
Interceptac
ao: Trabalha interceptando o trafego da rede de forma trans-
parentemente, n ao sendo necessaria nenhuma configurac
ao adicional nos
browsers. Sao utilizados especialmente pelos ISPs.
364
http://www.candidatoreal.com
365
http://www.candidatoreal.com
Parte VII
Ger
encia de Redes
http://www.candidatoreal.com
366
http://www.candidatoreal.com
Captulo 43
O protocolo SNMP
Uma rede gerenciada por SNMP e composta basicamente por tres elementos
que sao: (i) os dispositivos gerenciados; (ii) os agentes de monitoramento e (iii)
os sistemas de gerenciamento de rede (Network Management Systems - NMSs).
coletar informac
oes dos agentes periodicamente para armazena-las em bases de
dados para serem an alisados posteriormente. Um NMS pode ainda solicitar a
alterac
ao de alguma informacao enviando uma mensagem SET ao agente. As
mensagens enviadas do NMS para o agente utilizam a porta UDP 161. Para
recuperar todos os objetos de uma determinada sub arvore da MIB pode ser
utilizada a operac
ao GETNEXT.
Na segunda forma, o agente envia uma mensagem para o NMS quando de-
tecta alguma situac
ao pre definida. As mensagens enviadas do agente para
o NMS s ao cahamadas traps. O protocolo SNMP conta com algumas traps
nativas, porem os agentes podem ser contrudos para enviar traps em outras
367
http://www.candidatoreal.com
situac
oes n
ao previstas pelo protocolo SNMP. As traps s
ao enviadas utilizando
a porta UDP 162.
368
http://www.candidatoreal.com
369
http://www.candidatoreal.com
Parte VIII
Seguranca da Informa
c
ao
http://www.candidatoreal.com
370
http://www.candidatoreal.com
Captulo 44
Polticas de Seguran
ca de
Informac ao
Uma vez que a poltica e um estatuto, e necess ario que a sua elaborac ao,
aprovacao e aplicacao sigam os ritos internos da instituicao na qual sera aplicada.
O carater estrategico de uma poltica de seguranca deve garantir que a mesma
aborde quest oes que s ao essenciais para a corporac ao como um todo. Cada
regra da poltica serve como referencia b asica para a elaborac
ao do conjunto de
regras particulares e detalhadas que comp oem as normas e os procedimentos de
seguranca.
Com o intuito de tornar a poltica de seguranca um instrumento que viabilize
a aplicacao pr atica e a manutenc ao de uma infra-estrutura de seguranca para a
instituic
ao, e necessario que a poltica seja desdobrada em estatutos mais detal-
hados. Estes estatutos podem ser referidos como polticas especficas, normas,
371
http://www.candidatoreal.com
regras complementares, ou controles. Outros nveis podem existir, tal qual numa
hierarquia, sendo que o limite ser a ditado pelas necessidades e conveniencias da
instituic
ao para a qual s ao elaborados as regras de seguranca. Cabe ressaltar
que, quanto mais baixo o nvel hier arquico de um documento de seguranca em
relac
ao `a poltica, mais detalhado e de car ater operacional sera.
importante lembrar que toda regra aplicada a uma instituic
E ao deve estar
em conson ancia com os objetivos fins da mesma. A seguranca n ao e um fim em
si mesma, mas um meio para se chegar a um objetivo maior.
A poltica de seguranca como um elemento institucional da organizac ao pos-
sui um ciclo de vida indefinido e deve prever todos os mecanismos de defesa
contra qualquer ameaca conforme estabelecido no estudo de custos x benefcios.
Considerando a mutabilidade de tais elementos e dos pr oprios objetivos e metas
da organizac ao, uma poltica s
o apresentar a efetividade ao longo do tempo se
sofrer constantes reavaliac oes e atualizac
oes.
ISMS - Information Security Management System, ou Sistema de Gerencia-
mento da Seguranca da Informac ao (SGSI) - e o resultado da aplicac
ao planejada
de objetivos, diretrizes, polticas, procedimentos, modelos e outras medidas ad-
ministrativas que, de forma conjunta, definem como s ao reduzidos os riscos para
seguranca da informac ao.
Identificac
ao dos ativos da empresa em termos de informac
oes;
An
alise dos riscos de seguranca;
An
alise dos requisitos de seguranca e compromissos;
Definic
ao de uma norma de seguranca;
Desenvolvimento de procedimentos para implantar a norma e uma es-
trategia de implementac
ao;
http://www.candidatoreal.com
Implementac
ao, gerenciamento e auditoria dos procedimentos de segu-
ranca.
372
http://www.candidatoreal.com
gerencia superior. Muitas empresas exigem que o pessoal assine uma declarac ao
indicando que leu, compreendeu e concorda em cumprir as normas. A norma
de seguranca e um documento vivo. Pelo fato de as organizac oes mudarem
continuamente, as normas de seguranca devem ser atualizadas com regulari-
dade a fim de refletirem novas orientac oes comerciais e mudancas tecnol ogicas
(Oppenheimer, 1999).
373
http://www.candidatoreal.com
Gest
ao de Ativos;
Controle de Acesso;
http://www.candidatoreal.com
Aquisic
ao, Desenvolvimento e Manutenc
ao de Sistemas de Informac
ao;
Gest
ao de Incidentes de Seguranca da Informac
ao;
Gest
ao da Continuidade de Neg
ocios;
Conformidade.
Ela permite que uma empresa construa de forma muito r apida uma poltica
de seguranca baseada em controles de seguranca eficientes. Os outros caminhos
para se fazer o mesmo, sem a norma, s ao constituir uma equipe para pesquisar
374
http://www.candidatoreal.com
riscos.
27003 Guia pr
atico para a implementac
ao de um SGSI, baseado na ISO IEC
27001. Ainda est
a em processo de desenvolvimento (previs
ao 2008-2009).
27005 Fornece diretrizes para o gerenciamanto de riscos de SI. Esta norma ser
a
constituda por indicac
oes para implementac
ao, monitoramento e melhoria
375
http://www.candidatoreal.com
44.4.3 Diferen
cas entre a ISO/IEC 17799 e a ISO 27001
A norma ISO/IEC 27001 (Information Technology - Information Security Man-
agement Systems - Requirements) trata da implantac ao de um processo de
gestao de seguranca da informacao (ISMS - Information Security Management
Systems). Esta norma em conjunto com a ISO/IEC 17799 (C odigo de Boas
Praticas da Gest ao de Seguranca da Informacao) sao as principais referencias,
atualmente, para a quem procura tratar a quest ao da seguranca da informac ao
de maneira eficiente e com efic acia.
A ISO 27001 e uma norma que gere seguranca na corporac ao, ou seja, cria
um sistema de seguranca (SGSI) dentro de uma Organizac ao. Isso em nenhum
momento garante seguranca, s o torna o ambiente mais control avel. Nesta norma
ela contem controles de seguranca, apenas cita, por exemplo, o controle A.9.1.1 e
Permetro de Seguranca Fsica, uma definic
ao muito abragente,e pode ter v arias
interpretac
oes.
Ja a ISO/IEC 17799 possui todos os controles que tem na ISO 27001, s o
que com explicac oes e exemplos de implementac ao. Isso ajuda muito na imple-
mentacao numa corporac ao. Um fato importante e que s o ha certificac
ao ISO
27001, e n ao a NBR 17799. Alem disso, a certificac ao ISO 27001, contem um
descritivo do escopo, ou seja, quando uma empresa declara que e certificada ISO
27001, ela pode ser certificada apenas no CPD, por exemplo.
Como e uma norma de sistema de seguranca, a ISO 27001 tambem contem
controles de outras ISO, por exemplo a ISO 15408 (seguranca no desenvolvi-
mento), mas n ao quer dizer que ao atender completamente a ISO 27001, ser a
atendida a ISO 15408 ou o ITIL, que tambem possui alguns de seus controles
nessa norma.
376
http://www.candidatoreal.com
devem especificar como controlar incidentes (quer dizer, o que fazer e quem con-
tatar se uma intromissao for detectada), fazer auditoria e desenvolver o plano
de contingencia com objetivo de manter o negocio sempre ativo.
Os procedimentos de seguranca podem ser comunicados aos usu arios e ad-
ministradores em turmas de treinamento lideradas por instrutores qualificados.
Obter a conscientizac
ao de usu
arios finais.
44.7 Classificac
ao de Informa
coes
Segundo Claudia Dias (Dias, 2000), diferentes tipos de informac ao devem ser
protegidos de diferentes maneiras. Por isso a classificac ao das informacoes e
um dos primeiros passos para o estabelecimento de uma poltica de seguranca
de informac
oes. Um vez classificada a informac
ao, a poltica pode definir como
377
http://www.candidatoreal.com
P
ublicas ou de uso irrestrito As informac oes e os sistemas assim classifica-
dos podem ser divulgados a qualquer pessoa sem que haja implicac oes
para a instituic
ao. Exemplo: servicos de informacao ao p
ublico em geral,
informac
oes divulgadas a` imprensa ou pela internet.
378
http://www.candidatoreal.com
Captulo 45
Seguranca Fsica e L
ogica
45.2 Seguranca L
ogica
Envolve os mecanismos de controle de acesso. Os controles de acessos s ao pro-
jetos para mitigar vulnerabilidades associadas ao acesso.
Define-se sujeito (subject) como sendo a representac ao do usuario dentro do
http://www.candidatoreal.com
379
http://www.candidatoreal.com
semantica de autorizac
ao que pode ser expressa no modelo e conseq uentemente a
sua implementac ao. Os principais modelos de controle de acesso hoje s ao DAC
(Discretionary Access Control), MAC (Mandatory Access Control) e RBAC
(Role-Based Access Control).
380
http://www.candidatoreal.com
portanto tem controle (discrec ao) total em quem deve ter permiss oes para aces-
sar o objeto. Um usu ario transforma-se em dono do objeto ao cri a-lo. No
modelo discrecion ario, se Joao e dono de um objeto (um arquivo, por exem-
plo), ela pode conceder a Jose a permiss ao de acess
a-lo em um modo qualquer
de operacao. Posteriormente, ele pode revogar essa permiss ao a qualquer mo-
mento. O princpio b asico de DAC e possess ao do objeto pelo usuario que o
criou.
Atualmente, o DAC e o modelo mais popular de controle de acesso, pela
sua utilizac
ao em grande escala em sistemas operacionais comerciais. Todas
as variantes do UNIX, o Netware e a serie Windows NT, 2000 e XP utilizam
o modelo DAC como seu modelo b asico de controle de acesso. Estes sistemas
operacionais utilizam extensamente a tecnica de listas de controle de acesso para
conceber a implementar as suas checagens de autorizac ao, dispondo tambem do
conceito de grupos de usu arios para facilitar na administrac
ao e concessao de
permissoes.
381
http://www.candidatoreal.com
do que a de um sistema DAC, por exemplo, que precisa associar usu arios a
objetos diretamente, sem a construc ao do papel entre os dois, atuando como
componente estabilizador.
Alem do forte motivo de facilitar o gerenciamento das permiss oes de acesso,
um outro ponto motivador de RBAC e a sua flexibilidade de adaptac ao a regras
de acesso particulares de cada sistema, atraves do recurso de constraints. Con-
straints sao predicados que, aplicados a relacoes e func
oes do modelo, retornam
um valor aceito ou n ao aceito. Isso permite expressar, na poltica de acesso
do sistema, restricoes como a separac ao de deveres, em que um mesmo usu ario
nao pode subverter a seguranca do sistema ao exercer dois papeis conflitantes
ao mesmo tempo. Por exemplo, um mesmo usu ario nao poderia ser ao mesmo
382
http://www.candidatoreal.com
383
http://www.candidatoreal.com
Captulo 46
Backup de Dados
Existem v
arias formas de se garantir a disponibilidade da informac ao, a mais
importante e a c
opia destes dados em local seguro, ou seja, o backup de dados.
Os backups podem ser classificados em tres tipos:
384
http://www.candidatoreal.com
385
http://www.candidatoreal.com
Captulo 47
Vrus e Ataques
Conceito b
asicos:
Cracker Termo usado para designar quem quebra um sistema de seguranca,
de forma ilegal ou sem etica. Este termo foi criado em 1985 pelos hackers
em defesa contra o uso jornalstico do termo hacker.
Hacker Habitualmente (e erradamente) confundido com cracker, um hacker e
um expert ou Problem Solver, aquele que apresenta soluc
oes para proble-
mas tecnicos relativos `
a Internet.
White Hat (aka hacker etico) Hacker em seguranca, utiliza os seus conheci-
mentos na explorac
ao e detecc
ao de erros de concepc
ao, dentro da lei.
Black Hat (aka cracker ou dark-side hacker) criminoso ou malicioso hacker,
um cracker.
Gray hat Tem as habilidades e intencoes de um hacker de chapeu branco na
maioria dos casos, mas por vezes utiliza seu conhecimento para prop
ositos
menos nobres.
Script Kiddie Antigamente chamado de Lammer, e um indivduo que n ao
tem domnio dos conhecimentos de programac ao. E pouco experiente,
com poucas nocoes de informatica, porem tenta fazer-se passar por um
cracker a fim de obter fama, o que acaba gerando antipatia por parte dos
hackers verdadeiros.
Newbie Newbie, Noob ou a sigla NB, e aquele jovem aprendiz de hacker que
http://www.candidatoreal.com
386
http://www.candidatoreal.com
387
http://www.candidatoreal.com
Alem dos mecanismo mais tradicionais de infecc ao tais como setor de boot,
macros e mem oria, tres vetores tambem se destacam: correio eletr
onico, compar-
tilhamento de arquivos e falhas no sistema operacional. Curiosamente enquanto
os vrus antigos faziam uso de mecanismos extremamente complexos para se
infectar, hoje em dia v arios dos vermes e vrus fazem uso dos proprios recursos
do sistema operacional.
47.1 Estrat
egias de combate `
a pragas eletr
onicas
A estrategia de mais longo prazo e a prevenc ao. Usu arios, suporte e admin-
istradores devem ser alertados para os riscos de vrus de computador e mecanis-
mos eficazes, em acordo com a poltica de seguranca, que deve ser colocada em
pratica.
As tarefas mais comuns que devem ser realizadas s ao a an alise e remoc
ao de
compartilhamento de redes Microsoft, an alise e atualizac
ao do sistema opera-
cional e analise e atualizac
ao do sistema de antivrus do usu ario.
Campanhas de conscientizac ao tambem sao importantes, os usu arios devem
ser alertados sobre os perigos existentes em determinadas ac oes, como baixar
arquivos execut aveis por e-mail.
http://www.candidatoreal.com
47.1.1 Antivrus
Todos os antivrus agem de forma semelhante. Existem dois metodos b asicos
usados para combater vrus. O primeiro consiste em manter nos antivrus um
grande banco de dados onde ficam registradas todas as assinaturas (parte do
388
http://www.candidatoreal.com
389
http://www.candidatoreal.com
Captulo 48
Princpios de Criptografia
390
http://www.candidatoreal.com
Bob pode ainda cifrar uma mensagem com sua pr opria chave privada e
enviar para Alice. Nesse caso, para decifrar a mensagem Alice dever a uti-
lizar a chave p ublica de Bob. Dessa forma, Alice poderia garantir que foi
realmente Bob quem enviou a mensagem e n ao um impostor. Algoritmos
de criptografia assimetrica geralmente s ao baseados em operac oes de fa-
torac
ao, exponenciac ao e logaritmos de grandes n umeros, o que os torna
muito mais lentos do que os algoritmos simetricos. A criptografia de chave
assimetrica e a base do sistema de criptografia de chave p ublica, que ser
a
discutido mais adiante;
391
http://www.candidatoreal.com
Cifra de C
esar cada letra do texto cifrado recebe a letra do texto aberto mais
uma constante, com rotac
ao no alfabeto.
Cifra Monoalfab etica Cada letra do texto aberto e substituda por uma outra
u
nica letra.
RC2 e RC4 Mais r apidos do que o DES, esses codigos podem se tornar mais
seguros com o simples aumento do tamanho das chaves, O RC2 pode
substituir perfeitamente o DES com a vantagem de ser 2 vezes mais rapido,
j
a o RC4 fica 10 vezes mais r
apido. Algumas chaves s
ao fracas. Suas chaves
s
ao de 1 a 2048 bits.
http://www.candidatoreal.com
392
http://www.candidatoreal.com
A pessoa (B), recebe as mensagens de (A) e (C), na qual ela usa a chave
privada para descriptografar;
A pessoa (B), le as mensagens, e se, tiver que responde-las, dever
a usar
as chaves p
ublicas de criptografia de (A) e ou (C).
Escolha dois n
umeros primos extensos, p e q (geralmente, de 1024
bits)
Calcule n = p x q e z = (p-1) x (q-1)
Escolha um n
umero d tal que z e d sejam primos entre si
Encontre e de forma que e x d = 1 mod z
393
http://www.candidatoreal.com
Com esses par ametros calculados com antecedencia, estamos prontos para
comecar a criptografia. Divida o texto simples (considerado um string de bits)
em blocos, de modo que cada mensagem de texto simples P fique no intervalo
0 <= P < n. Isso pode ser feito agrupando-se o texto simples em blocos de k
bits, onde k e o maior inteiro para o qual a desigualdade 2k < n e verdadeira.
Para criptografar a mensagem P, calcule C = P e(modn). Para descrip-
tografar C, calcule P = Cd(modn). E possvel provar que, para todo P na faixa
especificada, as func
oes de criptografia e descriptografia sao inversas entre si.
Portanto, a chave p ublica consiste no par (e,n) e a chave privada consiste em
(d,n).
Lento demais para codificar grande volume de dados, mas amplamente uti-
lizado para a distribuic
ao de chaves. A seguranca do sistema est a baseado na
dificuldade de fatorar numeros grandes.
48.4 T
ecnicas de Quebra de Criptografia
Basicamente, os tres tipos de ataque destinado `
a quebra de criptografia s
ao:
Ataque Exclusivo a Texto Cifrado N ao se conhece o texto aberto. An alise
estatstica geralmente e utilizada para se extrair algo do texto cifrado.
394
http://www.candidatoreal.com
Captulo 49
Autenticac
ao
49.1 Autenticac
ao de Mensagens
Autenticac ao de mensagens e um mecanismo ou servico utilizado para verificar
a integridade de uma mensagem. Os metodos mais comuns s ao MAC (message
autentication code) e funcoes hashes seguras. O MAC requer o uso de chave
secreta e e produzido atraves do uso dessa chave em uma mensagem de tamanho
vari
avel. Uma func ao hash mapeia uma mensagem de tamanho vari avel em um
hash de tamanho fixo e para garantir o n ao-rep
udio e utilizado em conjunto com
uma chave privada.
Quando o metodo de autenticac ao garante o nao rep udio, ent
ao trata-se de
uma assinatura digital. O MAC n ao prove assinatura digital, uma vez que o
remetente e o receptor compartilham a mesma chave.
As funcoes hash sao utilizadas para a geracao de sum arios de mensagens
message digests. Com os sumarios de mensagens e possvel fornecer autenticac ao
sem que haja sigilo e tem quatro propriedades:
1. Se a mensagem e fornecida, o c
alculo de seu sum
ario e f
acil.
2. Se o sum
ario e fornecido, ser
a impossvel encontrar a mensagem original.
As func
oes de hash mais utilizadas s
ao o MD5 e o SHA-1. O sum
ario gerado
pelo MD5 possui 128 bits e e um melhoramento do MD4. J a o SHA-1 trabalha
com hash de 160 bits. O SHA-1 foi considerado o sucessor do MD5. Ambos
tem vulnerabilidades comprovadas. Em algumas correntes, e sugerido que o
SHA-256 ou superior seja usado para tecnologia crtica.
O MAC mais utilizado e o HMAC, que e utilizado no IPSec. O HMAC se
baseia em algoritmos de hash como o SHA-1 e o MD5.
395
http://www.candidatoreal.com
49.2.1 M
etodos de Autenticac
ao
A autenticac
ao pode ser feita com a combinac
ao de um ou mais dos itens abaixo:
Algo que voce tenha, um cart ao de banco ou um cart ao com chip (aut-
enticac
ao tipo 2). Em alguns casos, esses dispositivos geram senhas auto-
maticamente e s ao conhecidos como tokens.
Algo que voce e, impress
ao digital ou escaneamento de retina (autenticac
ao
tipo 3). Os par ametros de desempenho mais importantes em um sistema
de biometria s ao: FRR (False Rejection Rate), FAR(False Acceptance
Rate), tempo de registro, tempo de atendimento e aceitabilidade (n ao
invasivo).
49.2.2 Autenticac
ao baseada em uma chave secreta com-
partilhada
Para efetuar uma autenticac ao baseada em uma chave secreta compartilhada, e
necess
ario que Alice e Bob estabelecam essa chave (Kab ).
Os protocolos de autenticac ao baseada em uma chave secreta e baseada
no princpio do desafio-resposta (challenge-response), onde o emissor envia um
n
umero aleat orio para o receptor (nonce); quando este recebe a mensagem,
transforma o n umero recebido em uma forma especial e o retorna ao emissor.
Uma brecha que n ao deve existir no protocolo e a possibilidade de ataque
por reflex
ao, em que uma pessoa no meio da comunicac ao recebe um desafio. A
pessoa indesejada cria outra conex ao para obter a resposta para aquele desafio,
assim, utiliza a resposta para o sucesso da autenticacao anterior.
Outras propriedades importantes para os protocolos dessa classe s ao:
partilhadas Kab e Kab ;
396
http://www.candidatoreal.com
Nao antes e N
ao depois (Ex. Nao antes de 05/03/2006 - 14:35:02, Nao
depois de 05/03/2007 - 14:03:2006 )
Informa
cos de chave p
ublica da entidade Algoritmo de chave p
ublica e
Chave p
ublica.
Assinatura da AC A garantia que a AC prove sobre a veracidade das in-
formac
oes contidas neste certificado de acordo com as polticas da AC
Identificador da chave do titular E uma extensao do X.509 que possui um
identificador numerico para a chave p
ublica contida neste certificado, es-
pecialmente util para que programas de computador possam se referir a
ela
397
http://www.candidatoreal.com
Atributos ou extens oes A vasta maioria dos certificados X.509 possui cam-
pos chamados extens oes (OID) que proveem algumas informacoes ex-
tras, como cadastros adicionais do titular e do emitente, especificac
oes
de proposito do certificado e etc.
http://www.candidatoreal.com
398
http://www.candidatoreal.com
Captulo 50
Seguranca em diversas
camadas
399
http://www.candidatoreal.com
50.2 IPSec
A IETF sabia h a muitos anos da carencia de seguranca na Internet. Para au-
menta-la, havia uma disputa para definir onde coloc a-la. Para especialistas, a
seguranca deveria ser colocada no nvel de aplicac ao. A dificuldade com essa
abordagem e que ela exigiria que todas as aplicac oes fossem modificadas afim
de torna-las seguras. Outra abordagem seria colocar a seguranca em um nvel
intermedi ario entre aplicac
ao e transporte, como e feito no SSL. Dessa forma,
as aplicac
oes nao precisariam ser alteradas completamente.
Embora trabalhe na camada IP, o IPSec e orientado a conex oes. Isso se deve
` necessidade do estabelecimento de uma chave de criptografia que ser
a a utilizada
por um determinado perodo. No contexto do IPSec, uma conex ao e chamada
SA (Security Association). Uma SA e uma conex ao unidirecional, de forma
que caso se deseje conex
ao segura em ambos os sentidos, serao necessarias duas
SAs. Para o estabelecimento de chaves, o IPSec utiliza um procolo chamado
IKE (Internet Key Exchange).
400
http://www.candidatoreal.com
401
http://www.candidatoreal.com
Abaixo, s
ao apresentadas as tres aplicac
oes ditas mais importantes para as
VPNs.
ACESSO REMOTO VIA INTERNET
DE LANS VIA INTERNET
CONEXAO
DE COMPUTADORES NUMA INTRANET
CONEXAO
No desenvolvimento de soluc oes de rede, e bastante desej avel que sejam
implementadas facilidades de controle de acesso a informac oes e a recursos cor-
porativos. A VPN deve dispor de recursos para permitir o acesso de clientes
remotos autorizados aos recursos da LAN corporativa, viabilizar a interconex ao
de LANs de forma a possibilitar o acesso de filiais, compartilhando recursos e
informacoes e, finalmente, assegurar privacidade e integridade de dados ao atrav-
essar a Internet bem como a pr opria rede corporativa. A seguir s ao enumeradas
caractersticas mnimas desej aveis numa VPN:
Autenticac ao de Usu arios: Verificac
ao da identidade do usu ario, restringindo
o acesso ` as pessoas autorizadas. Deve dispor de mecanismos de auditoria,
provendo informac oes referentes aos acessos efetuados - quem acessou, o que
e quando foi acessado.
Gerenciamento de Endereco: O endereco do cliente na sua rede privada n ao
deve ser divulgado, devendo-se adotar enderecos fictcios para o tr afego externo.
Criptografia de Dados: Os dados devem trafegar na rede p ublica ou privada
num formato cifrado e, caso sejam interceptados por usu arios nao autoriza-
dos, n ao dever ao ser decodificados, garantindo a privacidade da informac ao.
O reconhecimento do conte udo das mensagens deve ser exclusivo dos usu arios
autorizados.
Gerenciamento de Chaves: O uso de chaves que garantem a seguranca das
mensagens criptografadas deve funcionar como um segredo compartilhado exclu-
sivamente entre as partes envolvidas. O gerenciamento de chaves deve garantir
a troca peri odica das mesmas, visando manter a comunicac ao de forma segura.
Suporte a M ultiplos Protocolos: Com a diversidade de protocolos existentes,
torna-se bastante desej avel que uma VPN suporte protocolos padr ao de fato
usadas nas redes p ublicas, tais como IP (Internet Protocol), IPX (Internetwork
Packet Exchange), etc.
As redes virtuais privadas baseiam-se na tecnologia de tunelamento cuja
existencia e anterior `
as VPNs. Ele pode ser definido como processo de encapsular
um protocolo dentro de outro. O uso do tunelamento nas VPNs incorpora
um novo componente a esta tecnica: antes de encapsular o pacote que ser a
transportado, este e criptografado de forma a ficar ilegvel caso seja interceptado
http://www.candidatoreal.com
402
http://www.candidatoreal.com
403
http://www.candidatoreal.com
As regras podem ser criadas pelo administrador de acordo com o que de-
seja implementar, por exemplo, um firewall ou NAT. Cada regra especifica um
padr ao ou criterio a ser comparado com os pacotes e um alvo. Um alvo e uma
ac
ao pre-definida a ser tomada quando um pacote casa com a regra. Os alvos
mais comuns s ao:
REJECT: impede que o pacote siga adiante e envia uma mensagem ICMP
ao sistema de origem;
MASQUERADE: mascara os pacotes como se eles tivessem sido originados
pela m
aquina local. Utilizado para implementac
ao de NAT.
404
http://www.candidatoreal.com
do iptables.
405
http://www.candidatoreal.com
As conex oes TCP sao caracterizadas por uma serie de atributos como IPs
de origem e destino, portas de origem de destino, n
umeros de sequencia etc. Em
conjunto, esses atributos determinam o estado de uma conex ao TCP.
1. Permite abertura de conex oes TCP com origem na rede 10.0.0.0/24 e porta
acima de 1023 para qualquer outro host na porta TCP 80. O detalhe e
que, alem de controlar quem tem o direito de abertura da conex
ao, a regra
tambem cuida de todos os pacotes trocados em ambos os sentidos ate o
fim conexao.
406
http://www.candidatoreal.com
Alguns firewalls s
ao capazes de implementar o conceito de estados para co-
municacoes baseadas em UDP. Geralmente, isso e alcancado utilizando-se
um temporizador. Dessa forma, os pacotes UDP trasmitidos em ambos os
sentidos entre uma origem e um destino s ao tratados como uma conex ao
pelo perodo de tempo definido pelo timeout.
s
ao areas intermediarias entre a rede interna e externa onde os servidores que
recebem tr afego externo estao hospedados de maneira separada da rede interna
de uma corporac ao.
a) Dual Homed Host - s ao Bastion hosts nos quais o firewall e implementado,
expondo sua interface externa e desativando o roteamento entre as interfaces
externas e as interfaces internas. Assim, conex oes externas chegariam ate o
Bastion host apenas, e conex oes internas teriam que obrigatoriamente passar
pelo Bastion Host. Como mostra a figura abaixo, entre a internet e um Dual
Homed host, poderia ser implementado um conjunto de filtros de pacotes, no
roteador mais pr oximo, por exemplo, para diminuir as possibilidades de ataques,
407
http://www.candidatoreal.com
408
http://www.candidatoreal.com
um firewall separa a rede externa da DMZ que hospeda os servicos que podem
ser acessados pela rede externa, como por exemplo, um servidor de correio
corporativo. Dentro da DMZ est a tambem o bastion host que contem o firewall
que da acesso da rede interna ` a DMZ e roteia as requisicoes da rede interna
para o roteador da DMZ. Esta arquitetura de screened subnets permite maior
seguranca a uma rede, uma vez que as tentativas de invas ao ser
ao efetuadas
contra bastion hosts que n ao possuem acesso ` a rede interna, e que o bastion
host de sada da rede e protegido por filtros de entrada no roteador externo.
409
http://www.candidatoreal.com
host. O host cifra o nonce com uma chave simetrica pre-compartilhada e envia
de volta ao AP, que decifra o nonce e autentica o host. A partir da, o host
pode iniciar a transmiss
ao dos dados de fato.
Como foi dito, os hosts sem fio e o AP possuem uma chave pre-compartilhada.
Essa chave possui comprimento de 40 bits. Os outros 24 bits necess arios para
formar a chave de 64 bits do RC4 s ao gerados dinamicamente a cada frame
trasmitido. Esses 24 bits s ao chamados vetor de inicializac ao (IV). O IV e
transmitido em texto aberto no mesmo frame que carrega os dados cifrados.
Alem disse, os IVs eventualmente precisam ser reutilizados, j a que seu range e
de apenas 224 . Dessa forma, ao detectar a reutilizacao um IV, o atacante pode
fazer com que um transmissor cifre os dados conhecidos. Ao receber os dados
cifrados, o atacante poder a calcular a sequencia KiIV . Da proxima vez que IV
for reutilizado, o atacante poder a decifrar os dados utilizando a sequencia.
50.7 802.11i
O padr ao 802.11i, tambem conhecido como WAP, prop oe mecanismos de segu-
ranca para redes 802.11 mais avancados que o WEP. O WAP preve formas de
cifragem mais fortes, autenticac
ao individual, e a utilizac
ao de um servidor de
autenticac
ao (AS) separado do AP. O processo de asociac ao entre uma estac
ao
cliente (STA) e um AP no padr ao 802.11i segue as seguintes etapas:
410
http://www.candidatoreal.com
Parte IX
Alta Disponibilidade
http://www.candidatoreal.com
411
http://www.candidatoreal.com
Captulo 51
Soluc
oes de
Armazenamento RAID,
SAN e NAS
51.1 RAID
Tal como em diversas outras areas, quando n ao e possvel aumentar o desem-
penho de um componente, uma soluc ao possvel passa pelo uso de m ultiplos
componentes em paralelo. No caso do armazenamento, isto leva ao desenvolvi-
mento de conjuntos de discos que operam independentemente e em paralelo.
Com v arios discos, pedidos de I/O podem ser tratados em paralelo, desde que
os dados residam em discos separados. Do mesmo modo, um u nico pedido de
I/O pode ser tratado de igual modo em paralelo caso os dados se encontrem
distribudos ao longo de diversos discos.
Com o uso de v arios discos, torna-se claro que existem muitos modos de
organizar os dados e nos quais a redund ancia pode ser adicionada para aumentar
a confiabilidade. O esquema RAID (Redundant Array of Independent Disks)
puro consiste em 7 nveis (de zero a seis). N ao ha qualquer relac
ao hier
arquica
entre eles, mas cada um deles designa arquiteturas distintas que partilham 3
caractersticas diferentes.
Os dados s
ao distribudos pelos drives fsicos de um array.
Redundancia de capacidade e usada para armazenar informac
ao de pari-
dade, que garante a recuperacao dos dados no caso de uma falha num
disco.
51.1.1 RAID 0
Este nvel RAID refere-se a um array de discos onde os dados est
ao divididos em
faixas, mas nao existe nenhuma redund ancia para toler
ancia a falhas. Sempre
que a performance e a capacidade forem a preocupac ao principal e o baixo
412
http://www.candidatoreal.com
custo for mais importante que a confiabilidade adicional, esta e uma opc ao a
considerar. A figura 51.1 exemplifica o tipo de estrutura existente num sistema
deste tipo.
Na verdade, a distribuic
ao dos dados nos drives n ao e completamente uni-
forme. Os arquivos s ao divididos em fragmentos de tamanho configur avel (chunk
size, ou stripe size). Assim, se est
a sendo usado 3 HDs em RAID 0, utilizando
fragmentos de 32 KB, por exemplo, ao gravar um arquivo de 80 KB teramos
fragmentos de 32 KB gravados nos dois primeiros HDs e os 16 KB finais se-
riam gravados no terceiro, sendo que os 16 KB que sobraramno terceiro HD
ficariam como espaco desperdicado.
Arranjos RAID-0 podem oferecer alta performance de escrita se comparados
a verdadeiros nveis de RAID por n ao apresentarem sobrecarga associada com
http://www.candidatoreal.com
413
http://www.candidatoreal.com
51.1.2 RAID 1
Esse esquema tradicional para toler ancia a falhas de disco, chamado espel-
hamento (mirroring) ou sombreamento, utiliza o dobro da quantidade de discos
do RAID 0. Formalmente, para esta implementac ao s
ao necess
arios no mnimo
dois discos. O funcionamento deste nvel e simples: todos os dados s
ao gravados
em dois discos diferentes; se um disco falhar ou for removido, os dados preser-
vados no outro disco permitem a n ao descontinuidade da operac ao do sistema.
A figura 51.2 apresenta este esquema.
Um pedido de leitura pode ser satisfeito por qualquer um dos dois discos
que contenha os dados em questao, podendo ser escolhido o que implicar
um tempo menor de procura e latencia de rotac
ao.
http://www.candidatoreal.com
A recuperac ao de uma falha e simples. Quando ocorre uma falha num dos
discos, e sempre possvel aceder aos dados utilizando o outro disco.
414
http://www.candidatoreal.com
51.1.3 RAID 2
Raramente s ao usados, e em algum momento ficaram obsoletos pelas novas
tecnologias de disco. RAID-2 e similar ao RAID-4, mas armazena informac ao
ECC (error correcting code), que e a informac
ao de controle de erros, no lugar da
paridade. Isto ofereceu pequena protec ao adicional, visto que todas as unidades
de disco mais novas incorporaram ECC internamente. RAID 2 pode oferecer
maior consistencia dos dados se houver queda de energia durante a escrita.
Baterias de seguranca e um desligamento correto, porem, podem oferecer os
mesmos benefcios. As figuras 51.3 e 51.4 ilustram o esquema RAID 2 bem
como a forma em que as operacoes de leitura e escrita s ao realizadas.
415
http://www.candidatoreal.com
51.1.4 RAID 3
Assim como RAID 2, raramente s ao usados, e e semelhante ao RAID 4, exceto
por usar o menor tamanho possvel para a stripe. Como resultado, qualquer
pedido de leitura invocar a todos os discos, tornando a execucao de requisic
oes
diferentes em paralelo difceis ou impossveis. A fim de evitar o atraso devido
a latencia rotacional, o RAID-3 exige que todos os eixos das unidades de disco
estejam sincronizados. A maioria das unidades de disco mais recentes n ao pos-
suem a habilidade de sincronizac ao do eixo, ou se sao capazes disto, faltam os
conectores necess arios, cabos e documentac ao do fabricante.
416
http://www.candidatoreal.com
51.1.5 RAID 4
Tal como nos outros sistemas RAID, s ao usadas faixas, mas no caso das imple-
mentac
oes RAID de 4 a 6, estas faixas sao relativamente grandes. Em RAID 4,
uma faixa de paridade e calculada bit a bit para faixas correspondentes em cada
disco de dados. Os bits de paridade s ao armazenados no disco redundante. Ao
contr
ario do sistema de RAID 3 que armazena a paridade bit-a-bit, em RAID
4 a paridade e armazenada sob a forma de blocos e associada a um conjunto de
blocos de dados.
417
http://www.candidatoreal.com
51.1.6 RAID 5
Este tipo de RAID largamente usado funciona de forma similar ao RAID 4, mas
supera alguns dos problemas mais comuns sofridos por esse tipo. As informac oes
sobre paridade para os dados do array s ao distribudas ao longo de todos os
discos do array , ao inves de serem armazenadas num disco dedicado, oferecendo
assim mais desempenho que o RAID 4, e, simultaneamente, toler ancia a falhas.
A ideia de paridade distribuda reduz o gargalo de escrita, pois agora as
escritas concorrentes nem sempre exigem acesso ` as informac
oes de paridade
a um mesmo disco dedicado. Contudo, o desempenho de escrita geral ainda
sofre por causa do processamento adicional causado pela leitura, rec alculo e
atualizac
ao da informacao sobre paridade.
http://www.candidatoreal.com
418
http://www.candidatoreal.com
bilidade de dados. Teria de ocorrer um erro em tres dos discos durante o tempo
medio para reparac
ao para que isso tornasse os dados indisponveis. Por outro
lado, subjacente a este sistema est a um write penalty substancial, pois cada
escrita afeta obrigatoriamente dois blocos de paridade.
419
http://www.candidatoreal.com
420
http://www.candidatoreal.com
O uso de SANs gera uma melhora de performance das aplicac oes, por ex-
emplo, permitindo que o dado enviado diretamente do dispositivo de origem ao
dispositivo de destino nao requeira intervenc
ao do servidor. As SANs tambem
habilitam novas arquiteturas de rede nas quais varios computadores (hosts) aces-
sam varios dispositivos de armazenamento conectados na mesma rede. Conheca
outros benefcios que o uso da SAN pode oferecer ` as empresas:
421
http://www.candidatoreal.com
rede. A excec
ao fica com a ligac
ao ponto-a-ponto, como veremos a seguir.
Liga
cao ponto-a-ponto (point-to-point)
Para alguns nao e considerada uma topologia de SAN, uma vez que n ao possui
escalabilidade alguma. Neste tipo de ligacao, os servidores s
ao ligados dire-
tamente ao storage, sem nenhum equipamento intermedi ario, como switch. O
n
umero m aximo de servidores envolvidos e igual ao n
umero de portas que o
storage possui. Comparado com a ligac ao SCSI, no entanto, esta topologia,
que utiliza Fibre Channel, apresenta uma performance muito melhor e atinge
dist
ancias maiores.
422
http://www.candidatoreal.com
Loops ou an
eis: Fibre Channel Arbitrated Loop (FC-AL)
Nesta topologia utiliza-se hub, cuja largura de banda de no maximo de 100 MB/s
e compartilhada por todos os seus membros. Teoricamente suporta loops com
ate 126 dispositivos, mas na pratica este n
umero e bem menor. Esta topologia
esta sendo muito pouco utilizada nas SANs modernas. Algumas pessoas com-
param esta topologia como uma rede Token Ring, em que a largura de banda e
dividida por todos os dispositivos do loop. Entretanto h a equipamentos antigos
que n ao suportam o modo fabric e, assim, e utilizado o modo em loop.
423
http://www.candidatoreal.com
vantagens em relac
ao ao sistema de armazenamento ligado ao servidor. A seguir
um resumo das principais diferencas entre cada tecnologia.
Protocolo:
SAN: Serial SCSI-3
NAS: TCP/IP, NFS/CIFS
Compartilhamento:
SAN: Drives de discos e fitas
NAS: Sistemas de arquivos
424
http://www.candidatoreal.com
Permite:
SAN: Diferentes servidores acessarem o mesmo drive de disco ou fita
de forma transparente para o usuario final.
NAS: Diferentes usu
arios acessarem o mesmo sistema de arquivos ou
ate um mesmo arquivo.
Substitui:
Aplicac
oes:
Muitos poderiam argumentar que SAN e mais poderoso que NAS ou que
NFS e CIFS sendo executado sobre TCP/IP gera muita mais sobrecarga para
o cliente que o iSCSI sendo executado sobre um Fibre Channel. Estas quest oes
poderiam dar a entender que sistemas SAN resultam em maior throughput para
o cliente que os sistemas NAS. Essa observac ao e verdadeira se consideramos
como clientes os grandes servidores, entretanto grande parte das aplicac oes s
ao
menos exigentes sob esse ponto de vista sendo o desempenho oferecido pelo NAS
http://www.candidatoreal.com
bastante suficiente.
Enquanto SAN oferece acessos concorrentes em nvel de dispositivos, NAS
oferece em nvel de arquivos e essa e uma exigencia de muitas aplicac
oes. Outra
vantagem do NAS e que ele e mais simples de se entender e aprender. Em geral,
os protocolos e tecnologias que envolvem os sistemas SAN s ao relativamente
complexos. Alem disso, SAN e composto de diversas partes de hardware, que
s
ao especializados para tal sistema, de diferentes fabricantes. Se o ambiente onde
ser
a implantado a SAN nunca recebeu um sistema assim, todos os equipamentos
devem ser adquiridos. No caso do NAS isso n ao acontece, pois o NAS permite
usar a infra-estrutura de rede ja presente no ambiente. Enfim, o sistema NAS e
mais facil de se manter que o sistema SAN. Outra conseq uencia imediata e que
425
http://www.candidatoreal.com
sistemas SAN s ao mais caros que os NAS. Outro destaque e que o NAS permite
que arquivos sejam replicados automaticamente para outros pontos, tornando
mais f acil protege-los contra falhas.
Entretanto, NAS tem limitac oes tambem. Embora os esquemas de replicac ao
oferecidos por alguns NAS propiciem excelentes formas de recuperac ao, carac-
terstica mais difcil de ser suportada em SANs, backups ter ao de serem feitos
em fitas em algum momento e fazer backup de um arquivo para uma fita pode
ser um desafio. Uma das raz oes e que fazer um backup completo para fita ir a
exigir muito mais tarefas de I/O que qualquer outra aplicac ao. Isso significa que
fazer backup de um arquivo relativamente grande ir a sobrecarregar bastante o
sistema. Nesse sentido, sistemas SANs ainda s ao mais eficientes. Em comple-
mento, realizar backup de um determinado arquivo significa que o sistema de
arquivo ter a que ser atravessado da mesma forma como se um usu ario estivesse
usando-o e isso e outro motivo de sobrecarga no sistema. Por fim, embora seja
plausvel que a maioria das aplicac oes nao seja limitada pelo throughput de um
sistema de arquivos e importante ressaltar que teoricamente um sistema NAS
e capaz de transferir mais dados que o NAS. Assim se a aplicac ao necessitar
de grandes transferencias de dados e preciso fazer uma avaliac ao de qual opc ao
melhor se adapta ao perfil da aplicac ao.
Assim como o NAS possuem vantagens e desvantagens o mesmo ocorre com
SAN. A primeira vantagem do SAN em relac ao ao NAS e que o ultimo so e capaz
de atender a requisic oes em nvel de arquivos via NFS e CIFS enquanto o SAN
e capaz de atender requisic oes de acesso a dispositivos. Alem disso, enquanto
alguns veem complexidade no SAN outros veem como flexibilidade, ou seja, os
recursos de sistema de arquivos e gerenciamento de volumes disponveis no SAN
nao podem ser oferecidos pelo NAS. Outro ponto diz respeito ao fato que SAN
pode ser mais r apido que NAS, conforma discutido anteriormente. A capacidade
em throughput da SAN possibilita backups em maior escala e recuperac ao mais
f
acil. V arias desvantagens da SAN j a foram citadas, mas a principais s ao seu
custo e complexidade.
http://www.candidatoreal.com
426
http://www.candidatoreal.com
Captulo 52
Clusters de servidores
Um cluster e um conjunto de m
aquinas independentes, chamadas n os, que co-
operam umas com as outras para atingir um determinado objetivo comum. Por
serem fracamente agrupadas, para atingir este objetivo elas devem comunicar
umas com as outras a fim de coordenar e organizar todas as ac oes a serem
tomadas. Deste modo, para um usu ario externo, o cluster e visto como sendo
um unico sistema.
427
http://www.candidatoreal.com
52.0.2 Abstra
coes em um Cluster
Um cluster possui varios elementos que, juntos com sua arquitetura, fornecem
a funcionalidade desejada. Uma abstrac ao dos elementos e necess
aria para se
poder compreender qual o comportamento de cada um deles.
CPU;
http://www.candidatoreal.com
Mem
oria;
Reposit
orio de Armazenamento;
Interconex
ao.
Recurso: Um recurso representa certa funcionalidade oferecida em um n o.
Ele pode ser fsico, como por exemplo uma impressora, ou l ogico, como por
exemplo um endereco IP. Recursos s ao a unidade b
asica de gerenciamento,
e podem migrar de um n o a outro. Independentemente se for resultado de
uma falha ou intervencao humana, o processo de migrac ao de um recurso
de um no para outro e chamado de failover. Como um recurso representa
uma funcionalidade, ele pode falhar. Por isso, monitores devem observar
428
http://www.candidatoreal.com
Camada de Ligac
ao: agrupa canais de comunicac
ao em uma u
nica ligac
ao
entre dois n
os.
Camada de Integrac
ao: forma a topologia do cluster.
Camada de Recuperacao: executa a recuperac ao (failover) e a inicial-
izac
ao/parada controlada de servicos depois de uma transicao do cluster.
429
http://www.candidatoreal.com
Estrutura:
Preco:
Cluster: relativamente baixo.
430
http://www.candidatoreal.com
Cluster: t
ao confi
avel quanto precisa ser.
Sist. Distribudo: pouco / muito confi
avel.
Seguranca:
Cluster: os n
os confiam uns nos outros.
Sist. Distribudo: os n
os n
ao confiam uns nos outros.
431
http://www.candidatoreal.com
Tipos de Armazenamento
Dependendo da escala, performance, funcionalidade e flexibilidade do cluster,
s
ao necess arias diferentes implementacoes de armazenamento. Os principais
metodos de armazenamento sao o compartilhamento total, sem compartilhamento
e espelhamento de disco.
No compartilhamento total, todos os servidores acessam o mesmo meio de
armazenamento. Este modelo apresenta potenciais problemas de corrupc ao de
dados quando mais de um servidor est a ativo. Para soluc
ao deste problema,
http://www.candidatoreal.com
caractersticas de locking s
ao desejadas. Esta implementac
ao e bastante comum
em clusters assimetricos.
432
http://www.candidatoreal.com
433
http://www.candidatoreal.com
Nesse contexto, um cluster pode ser caracterizado como uma plataforma al-
ternativa, aliando o poder e a velocidade de processamento das arquiteturas ded-
icadas (MPPs) com a disponibilidade de recursos (hardware e software baratos)
das redes de estac
oes.
Quando comparados com arquiteturas dedicadas, os clusters de multipro-
cessadores simetricos apresentam um grande n umero de vantagens. Eles s ao
relativamente baratos (seus custos s ao menores que o custo de um supercom-
putador paralelo), eles oferecem uma boa relac ao custo/desempenho (porque
todo o hardware e o software necess arios est
ao `
a disposic
ao), e, da mesma forma,
suas volumosas vendas atraem investimentos diretos para o seu r apido melhora-
mento. Eles tambem permitem um desenvolvimento progressivo de aplicac oes,
434
http://www.candidatoreal.com
435
http://www.candidatoreal.com
Captulo 53
Balanceamento de Carga
Todo hardware tem o seu limite, e muitas vezes o mesmo servico tem que ser
repartido por v
arias maquinas, sob pena de se tornar congestionado. Estas
soluc
oes podem-se especializar em pequenos grupos sobre os quais se faz um
balanceamento de carga: utilizacao do CPU, de armazenamento ou de rede.
Qualquer uma delas introduz o conceito de clustering, ou server farm, j
a que o
balanceamento sera, provavelmente, feito para v
arios servidores.
tr
afego por caminhos alternativos a fim de descongestionar os acessos aos servi-
dores.O mecanismo/dispositivo respons avel pelo balanceamento e chamado de
director. Na verdade, ele pode existir sob v arias formas, dependendo do(s)
servico(s) que se pretende balancear. Este director serve tambem de interface
entre o cluster de servidores e os clientes do(s) servico(s) - tudo o que os clientes
conhecem e o endereco semi-p ublico deste servidor. Esta abordagem (cl assica)
e algo limitada, em termos de escalabilidade e n umero de tramas que o direc-
tor consegue redireccionar, principalmente devido ` a velocidade dos barramentos
das placas de rede. Existem, no entanto, outras soluc oes mais complexas que
tiram melhor partido das caractersticas do protocolo TCP/IP em conjunto com
um roteamento de pacotes especializado, tais como NAT, IP Tunneling e Direct
436
http://www.candidatoreal.com
53.2.1 NAT
Em redes de computadores, NAT, Network Address Translation, tambem con-
hecido como masquerading e uma tecnica que consiste em reescrever os enderecos
IP de origem de um pacote que passam sobre um router ou firewall de maneira
que um computador de uma rede interna tenha acesso ao exterior (rede p ublica).
53.2.2 IP Tunneling
http://www.candidatoreal.com
437
http://www.candidatoreal.com
438
http://www.candidatoreal.com
aplicac
ao executada no gateway (preparada para ser paralelizada) pode ser dis-
tribuda por v
arios nos, entregando os resultados mais rapido do que se fosse
processada por apenas um n o.
439
http://www.candidatoreal.com
a todos os usu
` arios. Alem disso, a instalac
ao n
ao requer privilegios especiais e
pode ser efetuada por qualquer usu ario.
440
http://www.candidatoreal.com
441
http://www.candidatoreal.com
Parte X
Sistemas Operacionais
http://www.candidatoreal.com
442
http://www.candidatoreal.com
Captulo 54
Ambiente Microsoft
Windows 2000/2003
Ap
os ter instalado o servidor DHCP, o PROXIMO PASSO e autorizar o
servidor DHCP no Active Directory. Somente membros do grupo Enterprise
Admins (Administradores de empresa) tem permissao para autorizar um servi-
dor DHCP no Active Directory. A autorizac
ao obrigat
oria no Active Directory
443
http://www.candidatoreal.com
e uma medida de seguranca para evitar que servidores DHCP secundarios se-
jam introduzidos na rede sem o conhecimento do administrador. O caminho a
ser seguido e o: Iniciar >> Programas >> Ferramentas Administrativas >>
DHCP; clique no nome do servidor DHCP; Selecione o comando Acao >> Au-
torizar.
Escopo DHCP: uma faixa especfica de enderecos IP que deve estar dentro
da faixa de enderecos da rede onde o servidor DHCP ser a utilizado. Mais
de um escopo pode ser definido para uma rede (10.10.20.0/255.255.255.0),
por exemplo: 10.10.10.20.30 a 10.10.20.100; 10.10.10.20.120 a 10.10.20.150;
e 10.10.10.20.200 a 10.10.20.250. Cada escopo definira uma sub-rede. Para
cada escopo, e necess
ario configurar uma serie de par
ametros: m ascara de
sub-rede, default gateway, endereco IP de um ou mais servidores DNS,
endereco IP do servidor WINS e assim por diante;
Intervalos de Exclusao: uma faixa especfica de enderecos IP para retirar
de um escopo, ou seja, enderecos que voce n ao quer que sejam concedi-
dos aos clientes da rede. Lembrando que enderecos IPs excludos podem
estar ativos na sua rede, como por exemplo, em computadores ou outros
dispositivos de rede configurados manualmente (IP fixo);
Pool de Enderecos: conjunto de enderecos especificados no escopo DHCP
descontando os eventuais intervalos de exclus
ao. Enfim, os enderecos que
ser
ao cedidos automaticamente aos clientes do servico;
Intervalo de Duracao da Concess ao: especifica por quanto tempo um
cliente DHCP pode usar um endereco IP atribudo antes que seja necess
ario
renovar a configurac
ao com o servidor DHCP;
Enderecos Reservados: concess ao permanente a hosts especificados na sua
rede. Cada reserva de IP e associada ao MAC Address da interface de rede
do host em questao. Vale ressaltar que os enderecos reservados devem estar
fora do intervalo de exclusao.
Apos definir e configurar um escopo, ele deve SER ATIVADO antes que o
http://www.candidatoreal.com
servidor DHCP comece a fazer concess oes aos clientes. No entanto, voce n
ao
deve ativar um novo escopo ate ter especificado as opc
oes DHCP para ele (de-
fault gateway, numero IP do servidor DNS e assim por diante).
444
http://www.candidatoreal.com
54.1.2 Integra
c
ao do DHCP com o DNS
O servidor DHCP pode ser utilizado para fazer atualizac oes din
amicas no DNS,
em nome dos clientes DHCP. Ou seja, quando um cliente DHCP e inicializado
e obtem uma concess ao de endereco, o DHCP pode atualizar os registros de
recurso de endereco (A) e ponteiro (PTR) do cliente, na base de dados do DNS.
Esse processo exige o uso de uma opc ao de DHCP adicional, a opc
ao FQDN do
Windows. Essa opc ao permite ao cliente fornecer seu nome de domnio total-
mente qualificado (FQDN) e instruc oes para o servidor DHCP sobre como deseja
que o servidor processe atualizac
oes dinamicas de DNS (se houver) em seu nome.
445
http://www.candidatoreal.com
446
http://www.candidatoreal.com
Apos a instalac
ao do servidor DNS, o PROXIMO PASSO e criar uma ZONA
PRIMARIA DIRETA. Por exemplo, vamos supor que voce est a implementando
a estrutura de DNS da rede da sua empresa, cujo domnio root e abc.com.br.
A zona e chamada prim aria porque ela ainda nao existe e esta sendo criada
para conter as informac oes do domnio. Ela e chamada direta, porque conter a
informac
oes para resoluc ao de nomes para endereco IP, ou seja, fornecido um
nome no domnio abc.com.br, esta zona conter a informac
oes para retornar o
endereco IP associado a este nome.
Para resolver esta questao foi criado um domnio especial chamado de IN-
ADDR.ARPA. Este domnio faz parte das definic oes atuais do DNS e foi a
maneira encontrada para fornecer a resoluc ao reversa de nomes sem que hou-
vesse a necessidade de pesquisar em todos os servidores DNS. Para criar o espaco
de nomes reverso, sao criados subdomnios do domnio especial in-addr.arpa. Os
nomes destes subdomnios s ao formados pela ordem inversa do n umero IP da
rede. Por exemplo, considere a rede 100.20.50.0/255.255.255.0. A zona para res-
oluc
ao reversa desta rede seria 50.20.100.in-addr.arpa. E importante ressaltar
que o uso de domnios in-addr.arpa e aplicado a todas as redes baseadas no
protocolo IPv4. Ou seja, este uso n ao e uma particularidade dos sistemas Win-
http://www.candidatoreal.com
Quando voce cria uma zona pela primeira vez, ela e uma zona prim aria.
Somente na zona prim aria e permitido fazer alterac oes nos registros da zona.
Alem da zona prim aria, o DNS permite que sejam feitas c opias da zona em out-
ros servidores DNS. Estas c opias s
ao as ZONAS SECUNDARIAS. Por exemplo,
voce pode ter uma zona primaria no servidor DNS da matriz da empresa e criar
uma zona secund aria (c
opia da zona prim aria), nos servidores DNS de cada fil-
ial, para reduzir o tr
afego, devido `a resoluc
ao de nomes DNS, nos links de WAN.
As zonas secund arias tambem s ao reconhecidas como AUTORIDADES para o
447
http://www.candidatoreal.com
Por padr ao, quando o servidor DNS e instalado, uma lista chamada ROOT
HINTS e criada e gravada em um arquivo chamado Cache.dns localizado na
pasta \%windir%\System32\Dns. Esta lista armazena informac oes dos servi-
dores para o domnio root (representado pelo ponto .) e para os domnios de
nvel superior (.com, .net, .gov, etc.). Este recurso garante a interac
ao entre
servidores DNS ao redor do mundo de forma a ser possvel a resoluc ao de qual-
quer FQDN (Nome de Domnio Totalmente Qualificado).
Apos a instalac
ao e configurac
ao do servidor DNS e necess
aria a criac
ao de
novos registros de recursos. No Windows 2000/2003 Server, foram dados os
seguintes nomes para os campos do registro de recursos: Owner; Time to Live;
Class; Type; Record-specific data. Alem dos tipos de registros padr ao IPv4,
tambem s ao suportados outros tipos, como por exemplo, o tipo AAAA que
define um mapeamento de um nome DNS em um endereco de host no padr ao
IPv6. (ipv6 host1.example.microsoft.com. IN AAAA 4321:0:1:2:3:4:567:89ab).
Nos CLIENTES Windows 2000/2003 Server, a configurac ao do DNS envolve as
seguintes tarefas (ao configurar as propriedades do TCP/IP do cliente):
Configurar uma lista de servidores DNS que ser ao usados pelos clientes
para resolver nomes DNS. Vale ressaltar que a lista sempre e utilizada de
forma sequencial, ou seja, primeiramente o primeiro servidor da lista e
consultado. Caso este esteja offline ou haja problemas na comunicacao, o
cliente consultar
a o pr
oximo servidor da lista e assim por diante;
http://www.candidatoreal.com
448
http://www.candidatoreal.com
54.2.2 Seguran
ca de Acesso
Voce pode definir configuracoes de seguranca para limitar o acesso ` as con-
figurac
oes dos servidores DNS. Por padr ao, os grupos Domain Admins (Ad-
ministradores do domnio), Enterprise Admins (Administradores de empresa),
DNS Admins (Administradores do DNS) e o grupo Administrators tem per-
missao de controle total nos servidores DNS. Voce pode retirar as permiss oes
de todos os grupos deixando apenas as permiss oes do grupo DNS Admins (e
talvez tambem a do grupo Administrators). Com isso, voce pode controlar
quais usu arios podem fazer alterac
oes nos servidores DNS por meio da inclus ao
destes usu arios no grupo DNS Admins. E muito IMPORTANTE notar que e
necessario manter as permissoes padr ao de acesso a servidor DNS atribudas ao
grupo Authenticated Users (Usu arios Autenticados). Se voce retirar este grupo,
os usu arios da rede n
ao conseguirao ler informac
oes no servidor DNS, ou seja,
as consultas dos clientes n
ao ser
ao respondidas. Na pr atica e como se o servidor
DNS estivesse desligado.
54.2.3 Integra
cao do DNS com o Active Directory
Outro controle que e muito importante e em relacao `
as quais clientes ter
ao per-
missao para incluir registros dinamicamente no DNS. Sem um controle de quem
pode fazer atualizacoes din
amicas, um usu ario mal intencionado poder a regis-
trar uma serie de registros falsos ou ate mesmo registrar milhares de registros
em um ataque do tipo Denial of Service, apenas com o objetivo de paralisar
o servidor DNS e com isso os servicos que dependem do DNS. No Windows
2000/2003 Server voce pode fazer com que o DNS somente aceite atualizac oes
din
amicas enviadas por hosts autenticados no domnio, proporcionando assim
uma maior seguranca no acesso ` as informac
oes das zonas do DNS. Este tipo
de atualizac
ao e conhecido como Atualizac ao Dinamica Segura (Security Dy-
namic Update). Porem, este tipo de atualizac ao somente est a disponvel em
zonas DNS integradas com o Active Directory, onde voce pode definir uma lista
de permissao de acesso (semelhante a uma lista de permiss oes NTFS em uma
pasta).
O DNS e necess
ario, obrigat
orio, para localizac
ao dos DCs (Controladores
de Domnio) do domnio;
http://www.candidatoreal.com
A integrac
ao inicia no momento da instalac ao do Active Directory em um
member server para torn a-lo um DC. O assistente de instalac ao do Active Di-
rectory solicita que voce informe o nome DNS do domnio para o qual est a sendo
criado um novo DC. Durante a instalac ao o assistente deve ser capaz de se conec-
tar a um servidor DNS que seja AUTORIDADE para o domnio informado. Se
isso n
ao for possvel, o assistente ir
a se oferecer para instalar e configurar o DNS
no proprio servidor que est a sendo promovido a DC. Se isso tambem n ao for
449
http://www.candidatoreal.com
NTFS para uma pasta ou arquivo). Esta lista pode ser editada para ter
um controle mais refinado sobre quem tem acesso e qual o nvel de acesso;
A replicac
ao do Active Directory e mais r
apida, mais eficiente e mais
segura do que o mecanismo de transferencia de zonas padr
ao do DNS.
Nota: Apenas as zonas prim arias podem ser armazenadas no Active Direc-
tory. Um servidor DNS nao pode armazenar zonas secund
arias no diret
orio. Ele
devera armazen
a-las em arquivos de texto padr
ao.
450
http://www.candidatoreal.com
54.2.6 Distribui
cao de Carga
Por padr ao, o servico DNS usa a atribuic
ao de prioridades a sub-redes locais
como o metodo para dar preferencia a enderecos IP da mesma rede quando uma
consulta de cliente e resolvida para um nome de host que esta mapeado a mais
de um endereco IP. Ou seja, se o cliente enviou uma consulta para um nome e
existem, por exemplo, dois enderecos IP associados a este nome, o servidor DNS
dara preferencia ao endereco IP que for da mesma rede do cliente que enviou
a consulta. Esse recurso permite que o aplicativo do cliente se conecte ao host
que esteja usando seu endereco IP mais proximo (e normalmente o mais rapido).
451
http://www.candidatoreal.com
Um diret orio e uma base de dados estruturada hier arquica contendo difer-
entes tipos de informac oes e oferece uma versatilidade muito grande na hora de
buscar a informac ao desejada. Um servico de diretorio contem informac
oes em
forma de entradas. Cada entrada contem uma serie de dados (atributos). Uma
boa analogia seria uma lista telef onica, que contem entradas: nomes de pessoas,
nomes de empresas, etc. Cada entrada contem uma serie de atributos: telefone,
endereco, etc.
452
http://www.candidatoreal.com
GPO (Group Policy). Com a utilizac ao do AD, os usu arios poderao ter apenas
uma senha para acessar todos os recursos disponveis na rede. O que representa
um grande avanco se comparado a um cen ario onde e necess
ario ter diferentes
senhas para diferentes recursos (acessar o sistema principal da empresa, ler seus
e-mails, se logar no computador, etc.).
54.3.2 Defini
coes de Floresta, Domnio, Site e Unidade
Organizacional
Um domnio pode ser definido como um limite administrativo e de seguranca.
Ele e um limite administrativo, pois as contas de Administrador tem permiss oes
de acesso em todos os recursos do domnio, mas n ao em recursos de outros
domnios. Ele e um limite de seguranca porque cada domnio tem definic oes de
polticas de seguranca que se aplicam ` as contas de usu arios e demais recursos
dentro do domnio e n ao a outros domnios. Eles tambem podem ser definidos
como unidades de replicac ao. Todos os controladores de domnio podem receber
alterac
oes e replic
a-las em todos os outros controladores deste domnio. Cada
domnio do Active Directory e identificado por um sistema de nomes de domnios
http://www.candidatoreal.com
453
http://www.candidatoreal.com
Com a utilizacao de domnios, podemos fazer com que nossa rede reflita
a estrutura de uma empresa. Desta forma, permite se que usu arios de um
domnio acessem recursos localizados em outros domnios. Algumas carac-
tersticas pr
oprias de cada domnio:
454
http://www.candidatoreal.com
54.3.4 Seguran
ca com o Active Directory
O Active Directory garante um ambiente de diret orio seguro para a organizac
ao,
pois usa os recursos internos de autenticac
ao de logon e autorizac
ao de usu
arios,
que s
ao os principais recursos da LSA (Autoridade de Seguranca Local). O AD
oferece suporte a v arios protocolos padr ao da Internet e mecanismos de au-
tenticac
ao usados para comprovar a identidade no logon, incluindo Kerberos
V5, certificados X.509 v3, cart oes inteligentes, infra-estrutura de KPI (chave
p
ublica) e protocolo LDAP usando a SSL (Secure Sockets Layer).
455
http://www.candidatoreal.com
Origens
O Apache HTTP Server, em sua primeira vers ao, foi baseado no UNIX httpd
Server. Este desenvolvimento ocorreu durante a primeira gerac ao da Web. Por
muitos anos, este servidor esteve bastante atrelado ` a plataforma UNIX. A vers ao
1.3, que ainda e bastante utilizada, foi a u ltima vers
ao que assumia que o sis-
tema operacional fosse UNIX ou UNIX-LIKE (Linux, OpenBSD, FreeBSD, Sun
http://www.candidatoreal.com
456
http://www.candidatoreal.com
stalac
ao). Seu desenvolvimento sempre foi e continua sendo focado, u nico
e exclusivamente, na plataforma Windows. Portanto, ele NAO E MULTI-
PLATAFORMA. Um benefcio direto desta abordagem e a vantagem de se poder
implementar uma forte cooperac ao entre o IIS e o pr
oprio kernel do Windows,
o que influencia e muito em sua performance. IIS e na verdade uma colec ao de
servicos, incluindo servidores para: Web, FTP, SMTP e Network News Transfer
Protocol (NNTP). Sua vers ao atual e a 6.0, mas a Microsoft incluir
a a vers
ao
7.0 do IIS em sua nova plataforma chamada Windows Longhorn Server.
Licen
cas
O Apache HTTP Server sempre teve e continua tendo seu c odigo aberto. Sua
licenca permite seu desenvolvimento e seu uso de forma irrestrita.
Aplica
coes Web
O Apache usa por padr ao a Common Gateway Interface (CGI) para suportar
aplicac
oes web. Foram criados tambem diversos m
odulos para suportar outras
linguagens de programacao. Portanto, o Apache suporta diversas linguagens,
tais como: PHP, ASP, Perl, Python, Ruby, C++, etc. Vale ressaltar que devido
a sua natureza modular, o Apache pode suportar novas linguagens se necess
ario.
O IIS suporta por padr ao o Active Server Pages (ASP). Pouco se comenta,
mas e possvel habilitar no IIS a utilizac
ao de outras linguagens como Perl ou
PHP. Isto se deve ao fato do ASP ser a linguagem preferida pela Microsoft. De-
pois do lancamento da plataforma .NET em 2002 o IIS ganhou tambem a func ao
de gerenciar o ASP.NET. Alem disso, o IIS passou a suportar novos servicos,
como Universal Description, Discovery, and Integration (UDDI) Services, Simple
Object Access Protocol (SOAP) e Web Services Description Language (WSDL).
De qualquer forma, as opc oes de linguagens suportadas pelo IIS s ao menores
que as suportadas pelo Apache.
cem. Usu arios de servicos podem usar UDDI para descobrir servicos que lhes in-
teressem e obter os metadados necess arios para utilizar esses servicos. A especi-
ficac
ao UDDI define: APIs SOAP utilizadas para publicar e obter informac oes
de um registro UDDI; Esquemas XML do modelo de dados do registro e do
formato das mensagens SOAP; Definic oes WSDL das APIs SOAP; Definic oes
de registro UDDI (modelos tecnicos - tModels) de diversos sistemas de identi-
ficac
ao e categorizac
ao, que podem ser utilizados para identificar e categorizar
registros UDDI.
457
http://www.candidatoreal.com
Performance
Muitos estudos sobre performance tem sido feitos, contudo, seus resultados n
ao
apontam com clareza qual servidor tem maior performance. Na verdade, tem-se
mostrado que o que mais influencia na performance e a qualidade da imple-
mentac
ao da aplicac
ao Web, indiferentemente se esta sendo executada no IIS
ou Apache. Ambos os servidores oferecem alguns recursos importantes para o
quesito performance, a saber:
Seguran
ca
Com relac
ao ao canal de comunicac ao, ambos os servidores utilizam o HTTPS
(HTTP over SSL) para a realizac ao da encriptac
ao dos dados. Portanto, n ao
existem grandes diferencas entre os dois servidores com relac
ao `
a seguranca no
canal de comunicac
ao.
http://www.candidatoreal.com
458
http://www.candidatoreal.com
consider
avel.
Administra
cao
Sem duvida a maior diferenca entre os dois servidores e com relac
ao aos seus
recursos de configurac
ao e administrac
ao.
A configurac
ao do Apache e geralmente feita na mao, editando arquivos em
formato texto. Isto e feito tanto em pequenos servidores quanto grandes. A
principal vantagem existente e a possibilidade de se utilizar de templates que
automatizam o processo de configurac ao em v arios servidores em uma Web
Farm. Por outro lado, a configurac
ao manual pode se tornar difcil se estiverem
sendo configurados m ultiplos Web sites. Uma alternativa e a utilizac
ao de fer-
ramentas (Web-based ou GUI-based). Webmin e um exemplo quando se estiver
utilizando sistemas UNIX-LIKE.
Com relac
ao ao IIS, a administrac
ao e sempre feita via console (GUI-based
Microsoft Management Console snap-in). Este console prove um ambiente co-
mum para a administrac ao tanto do IIS quando dos diversos servidores (Web,
FTP, SMTP e NNTP) que o comp oem.
459
http://www.candidatoreal.com
sobre como certo Web site usa a CPU. Process Throttling permite que o
uso da CPU;
WebDAV: possibilita que usu arios remotos possam publicar, trancar e
administrar recursos usando uma conexao HTTP;
SSL 3.0 and TLS: provem metodos seguros de troca de informac
oes entre
cliente e servidor;
Digest Authentication: um dos muitos mecanismos de autenticac
ao supor-
tados pelo IIS. Ele e o mecanismo que trabalha melhor entre servidores
proxy e firewalls.
460
http://www.candidatoreal.com
Durante a instalac
ao do sistema operacional no servidor que funcionar
a como
SERVIDOR DE APLICAC
AO, e fortemente recomendado a utilizac
ao do sis-
tema de arquivo NTFS. Este sistema prove basicamente os seguintes benefcios:
estabelecimento de cotas para usu arios; compress
ao de partic
oes e arquivos;
controle de acesso em nvel de diretorio e/ou arquivo.
461
http://www.candidatoreal.com
As configurac
oes do terminal services com relac
ao aos par
ametros de co-
municac
ao podem ser realizadas em quatro nveis hierarquicos (descendente):
Group Policies (GPO); Terminal Services configuration; User configuration;
Client configuration.
462
http://www.candidatoreal.com
Os protocolos de comunicac
ao s
ao aqueles que implementam funcionalidades
da camada de aplicac ao do modelo OSI. Algumas dessas funcionalidades s ao
providas pelos processos de comunicac ao. Os processos de comunicacao su-
portados pelo terminal services sao: named pipes; mail slots; Windows sock-
ets; remote procedure calls; NetBIOS; NetDDE, server message blocks, DCOM
(COM+); SOAP.
463
http://www.candidatoreal.com
54.5.3 Licen
cas
Para que um servidor funcione corretamente no modo servidor de aplicac
ao,
algumas licencas devem ser adquiridas. S
ao elas:
Client Access License (CAL): necess aria para que clientes possam se conec-
tar ao servidor e utilizarem servicos como: compartilhamento de arquivos
e impressoras; e outros servicos de redes. Essa licenca pode ser obtida
por usuario ou por dispositivo, o que for mais vantajoso para quem estiver
comprando as licencas;
Terminal Server Client Access License (TS-CAL): necess aria para que
clientes possam se conectar ao servidor e utilizarem aplicativos Windows.
Essa licenca tambem pode ser obtida por usu ario ou por dispositivo.
464
http://www.candidatoreal.com
Parte XI
Banco de Dados
http://www.candidatoreal.com
465
http://www.candidatoreal.com
Captulo 55
Conceitos B
asicos
Como o modelo E-R, explicado com mais detalhes, ` a frente, o modelo ori-
entado a objetos tem por base um conjunto de objetos. Aqui, utilizamos os
conceitos de classes, metodos, etc. Ao contr
ario do modelo E-R, cada objeto,
possui uma unica identidade, independente dos valores neles contidos.
466
http://www.candidatoreal.com
Projeto L
ogico: Escolher um SGDB e converter o projeto conceitual em
um esquema do modelo de dados do SGDB, exemplo: modelo relacional;
467
http://www.candidatoreal.com
Captulo 56
Abordagem Relacional
56.1 Conceitos
O abordage relacional apresenta basicamente cinco conceitos que s
ao:
Relac
ao: E um conjunto de tuplas. Composto por um cabecalho e um
corpo. O cabecalho possui um n umero fixo de atributos n ao-ambguos
(grau da relac
ao). Corpo e um n
umero variavel de tuplas (cardinalidade
da relac
ao) em que a ordem nao relevante.
A restric
ao de domnio e a condic
ao em que os atributos devem ser aceitos
somente dentro de um conjunto especificado, por exemplo: um valor maior que
http://www.candidatoreal.com
A restric
ao de integridade referencial e a condic
ao em que desejamos garantir
que um valor que aparece em uma relac ao para um dado conjunto de atributos
tambem apareca para um certo conjunto de atributos de outra relac ao. Um
conjunto de atributos FK no esquema da relac ao R1 e uma chave estrangeira
de R1 que referencia R2 se:
468
http://www.candidatoreal.com
2. para qualquer tupla t1 de r1 (R1 ), ou existe uma tupla t2 emr2 (R2 ) tal que
t1 [F K] = t2 [P K], ou t1 [F K] e nulo.
Violac
oes de restric
oes que podem ocorrer:
rejeitar;
propagar a exclus
ao; .
modificar os valores dos atributos referenciados para nulo.
Uma assercao e um predicado que expressa uma condic ao que desejamos que
seja sempre satisfeita no banco de dados. Restric oes de domnio e de integri-
dade sao casos particulares de asserc
oes. Asserc
oes complexas podem prejudicar
o desempenho do banco de dados.
A noc
ao de dependencia funcional generaliza o conceito de superchave. Quando
dizemos que uma determinada relac ao possui a dependencia funcional
queremos dizer que para todos os pares de tuplas t1 e t2 , se t1 [] = t2 [] ent
ao
t1 [] = t2 []. Ou seja, se duas tuplas assumem os mesmos valores para o con-
junto de atributos ent ao tambem deve assumir os mesmos valores para o
conjunto de atributos . A clausura do conjunto dependencias funcionais F e
denotada por F + e inclui as dependencias funcionais logicamente implcitas.
http://www.candidatoreal.com
469
http://www.candidatoreal.com
Captulo 57
Modelagem Entidade
Relacionamento
57.1 Conceitos
Nesta etapa, nos movemos de uma descric
ao informal do que os usu
arios desejam
para uma descric
ao formal. Os conceitos mais importantes sao:
Relacionamento: Associac
ao entre duas ou mais entidades;
470
http://www.candidatoreal.com
57.2 Cardinalidade
Um para um: uma entidade em A est
a associada a no m
aximo uma enti-
dade em B.
57.3 Representa
c
ao Gr
afica
Conjunto de entidades: ret
angulos;
Atributos: elipses;
471
http://www.candidatoreal.com
Especializac
ao: no caso de um conjunto de entidades que possuem sub-
grupos de entidades, pode-se realizar a especializacao fazendo que esses
subconjuntos tenham os mesmos atributos do conjunto de entidades princi-
pal mais atributos especficos para o subconjunto que n
ao e compartilhado
com outros subconjuntos. E como se fosse uma heranca.
Generalizac
ao: Difere da especializac
ao no sentido de como e feito o pro-
jeto. Na generalizac
ao, o projetista procura atributos em comum para
formar um conjunto de entidades pai. A representac ao no diagrama e a
mesma (uso do losango ISA).
472
http://www.candidatoreal.com
Captulo 58
Normaliza
cao
R1 R 2 R 1
http://www.candidatoreal.com
R1 R 2 R 2 .
473
http://www.candidatoreal.com
474
http://www.candidatoreal.com
Captulo 59
Transformac
ao do Modelo
Conceitual
475
http://www.candidatoreal.com
Captulo 60
Linguagem SQL
60.1 Criac
ao de tabela
Uma nova tabela pode ser criada especificando o seu nome juntamente com os
nomes das colunas e seus tipos de dado:
A sintaxe usada anteriormente requer que seja lembrada a ordem das colunas.
Uma sintaxe alternativa permite declarar as colunas explicitamente:
60.2 Consultas
http://www.candidatoreal.com
Para ver os dados de uma tabela, a tabela deve ser consultada. O comando
SELECT do SQL e utilizado para esta func
ao. Por exemplo, para ver todas as
linhas da tabela clima digite:
476
http://www.candidatoreal.com
A consulta da forma:
SELECT clima.cidade, clima.temp_min, clima.temp_max,
clima.prcp, clima.data, cidades.localizacao
FROM clima, cidades
WHERE cidades.nome = clima.cidade;
SELECT *
FROM clima INNER JOIN cidades
ON (clima.cidade = cidades.nome);
Desejamos fazer a varredura da tabela clima e, para cada uma de suas linhas,
encontrar a linha correspondente em cidades. Se nenhuma linha for encontrada,
desejamos que algum valor vazioseja colocado nas colunas da tabela cidades.
Este tipo de consulta e chamado de juncao externa (outer join). As consultas
vistas anteriormente sao junc
oes internas (inner join). O comando ent ao fica
assim:
SELECT *
FROM clima LEFT OUTER JOIN cidades
ON (clima.cidade = cidades.nome);
60.3 Func
oes de agrega
cao
Existem funcoes de agregac
ao para contar (count), somar (sum), calcular a
media (avg), o valor m
aximo (max) e o valor mnimo (min) para um conjunto
de linhas.
Como exemplo, podemos obter a maior temperatura mnima ocorrida em
qualquer lugar com
477
http://www.candidatoreal.com
Se desejarmos saber a cidade (ou cidades) onde esta leitura ocorreu, podemos
tentar
As agregac
oes tambem s
ao muito u
teis quando combinadas com a cl
ausula
GROUP BY. Por exemplo, pode ser obtida a maior temperatura mnima obser-
vada em cada cidade com
60.4 Atualizac
oes e exclus
oes
As linhas existentes podem ser atualizadas utilizando o comando UPDATE.
Suponha que foi descoberto que as leituras de temperatura est
ao todas mais
altas 2 graus ap
os 28 de novembro de 1994. Estes dados podem ser corrigidos
da seguinte maneira:
UPDATE clima
SET temp_max = temp_max - 2, temp_min = temp_min - 2
WHERE data > 1994-11-28;
478
http://www.candidatoreal.com
Suponha que n
ao estamos mais interessados nos dados do clima em Hayward.
Entao precisamos excluir suas linhas da tabela. As exclus oes s
ao realizadas
utilizando o comando DELETE:
60.5 Vis
oes
Suponha que a consulta combinando os registros de clima e de localizac ao das
cidades seja de particular interesse para sua aplicac
ao, mas que voce n
ao deseja
digitar esta consulta toda vez que necessitar dela. Voce pode, entao, criar uma
vis
ao baseada na consulta, atribuindo um nome a esta consulta pelo qual e
possvel referenci
a-la como se fosse uma tabela comum.
479
http://www.candidatoreal.com
Captulo 61
Conceitos de
Datawarehousing e
Bussiness Inteligence
Alem de j
a guardarem os dados de forma ordenada, os BDs Multidimen-
http://www.candidatoreal.com
480
http://www.candidatoreal.com
Dimensoes s
ao os elementos que participam de um fato. Elas determinam o
contexto de um assunto de neg ocios. As dimens
oes normalmente n ao possuem
valores numericos, pois s
ao somente descritivas e classificat
orias dos elemen-
tos que participam de um fato. Um Datawarehouse que analisa vendas de um
produto (fato) poderia ter as seguintes dimens
oes: tempo, localizac
ao, clientes,
vendedores.
As dimensoes podem ser compostas por membros que podem conter hierar-
quias. Membros (atributos) s ao as possveis divis
oes ou classificac
oes de uma
http://www.candidatoreal.com
dimensao. A dimens ao tempo poderia ser dividida nos seguintes membros: ano,
trimestre e mes e a dimens
ao localizac
ao em: cidade, estado e pas.
As Medidas (variaveis) s
ao os atributos numericos que representam um fato
e e sobre eles que s
ao feitas as analises do neg
ocio. Sao por exemplo, o valor
em reais das vendas, o n umero de unidades vendidas, o custo da venda. Uma
medida e determinada pela combinac ao das dimensoes que participam de um
fato, e est
ao localizadas como atributos de um fato.
481
http://www.candidatoreal.com
Utilizando a abstrac
ao da organizac
ao da informac
ao em um cubo, podemos
definir mais facilmente as quatro operacoes b
asicas OLAP:
Drill Down: consiste em detalhar o nvel dos dados, navegar do mais alto
nvel ate o dado detalhado. Exemplo: Em vez de ver as vendas anuais,
passar a ver as vendas trimestrais. Ou em vez de ver as vendas por estado,
ver por cidade;
do esquema. Esta e a u
nica tabela com m ultiplos relacionamentos para as out-
ras tabelas. As outras tabelas possuem um u nico relacionamento para a tabela
central. A tabela central e chamada fato (fact table) e as outras tabelas s ao
chamados de dimens ao (dimension table). A figura 61.2 ilustra o esquema es-
trela.
Como ja dissemos uma dimens ao pode conter uma ou mais hierarquias que
podem ser decompostas em tabelas separadas, gerando uma estrutura conhecida
por snowflake. A figura 61.3 ilustra uma estrutura snowflake.
482
http://www.candidatoreal.com
61.2 Datawarehousing
http://www.candidatoreal.com
O datawarehouse possibilita a an
alise de grandes volumes de dados, coleta-
dos dos sistemas transacionais (OLTP). Sao as chamadas series hist
oricas que
possibilitam uma melhor analise de eventos passados, oferecendo suporte ` as
483
http://www.candidatoreal.com
Nao vol
atil: pois as informac
oes j
a presentes no banco s
ao raramente
modificadas (sobrescrita). Os novos dados s ao absorvidos pelo banco,
integrando-se com as informacoes previamente armazenadas;
484
http://www.candidatoreal.com
s
ao sistemas que se enquadram nessa categoria.
485
http://www.candidatoreal.com
Quanto `
a localizac
ao dos dados a serem utilizados na an
alise, atualmente
existem duas abordagens:
486
http://www.candidatoreal.com
487
http://www.candidatoreal.com
488
http://www.candidatoreal.com
Parte XII
Administra
cao de Bancos
de Dados Relacionais
http://www.candidatoreal.com
489
http://www.candidatoreal.com
Captulo 62
Ger
encia de Transa
coes
Alterac
oes devem ser desfeitas. As transac
ao podem ainda se encontrar em
cinco estados que s
ao: (1)Ativa; (2)Parcialmente Confirmada; (3)Confirmada;
(4)Falha; (5)Terminada.
As propriedades desej
aveis de uma transac
ao devem ser:
490
http://www.candidatoreal.com
em conflito. Dizemos que uma escala e conflito serializ avel se ela e equivalente
em conflito `a uma escala seq uencial (uma escala que contem as instruc oes de
cada transacao agrupadas). E possvel ter duas escalas de execucao que pro-
duzam o mesmo resultado, mas que n ao sejam equivalentes em conflito.
491
http://www.candidatoreal.com
Captulo 63
Controle de Concorr
encia
E comum que uma transac ao deseje mudar o tipo de lock que possui so-
bre um determinado item. Esta operac ao e chamada de convers ao de lock. Se
apenas uma transac
ao possuir o read lock, ela pode atualiz
a-lo para write lock.
Uma transac
ao que possua um write lock pode converte-lo para read lock ap os
terminar suas operac
oes de escria. Essa operac
oes s
ao tambem chamadas up-
grade e downgrade.
Os locks bin
arios e os locks read/write embora garantam a exclusividade
mutua, n
ao podem garantir a serializac
ao na execuc
ao de transac
oes concor-
rentes. Um outro protocolo que visa solucionar os dois problemas e o chamado
Two-Phase Locking (2PL). As fases sao: (i) Crescimento (Growning) e (ii) En-
492
http://www.candidatoreal.com
493
http://www.candidatoreal.com
Captulo 64
Ger
encia de Desempenho
494
http://www.candidatoreal.com
ordenacao fsica dos registros no disco. Portanto, pode ser definido no m aximo
um ndice deste tipo. Embora o desempenho das operac oes de consulta seja
otimizado com a utilizac ao de ndices, e importante ressaltar que a existencia
de ndices representa um overhead significativo nas operac oes de inserc
ao, atu-
alizac
ao e exclus ao. Para consultas baseadas em multiplos campos, podem ser
definidos ndices m ultiplos, ou seja, baseado em 2 ou mais campos. Indices do
tipo clustering s ao especialemte u teis em consultas envolvendo intervalo (range
queries). Os ndices baseados em B+Trees s ao u
teis para pesquisas em inter-
valos e testes de igualdade, enquanto os ndices baseados em func oes hash s ao
extremamente eficientes para testes de igualdade, podendo otimizar bastante
operacoes de JOIN.
Alguns cuidados adicionais podem ser tomados para garantir o bom desem-
penho do sistema. A utilizacao da operac
ao DISTINCT causa uma operacao de
ordenac
ao, e portanto e muito custosa. Cl
ausulas DISTINC redundantes devem
ser eliminadas. Deve-se ter cuidado com a utilizac ao de tabelas tempor
arias,
porem em casos especias elas podem ser u teis.
495
http://www.candidatoreal.com
1. An
alise sint
atica e traduc
ao;
2. Otimizac
ao;
3. Avaliac
ao.
N
umero de tuplas de cada relac
ao;
N
umero de blocos que contem as tuplas de cada relac
ao;
N
umero de bytes de uma tupla para uma certa relac
ao;
N
umero de valores distintos que aparecem numa relac
ao para um deter-
minado atributo;
N
umero medio de registros que satisfazem uma condic
ao de igualdade para
um determinado atributo.
http://www.candidatoreal.com
Podemos processar consultas que envolvem selec oes simples por meio da ex-
ecuc
ao de uma varredura linear, de uma procura bin aria ou do uso de ndices.
Podemos tratar as selecoes complexas computando uni oes e intersecc
oes dos re-
sultados de selec
oes simples. Podemos ordenar relacoes maiores que a mem oria
usando o algoritmo do merge-sort externo. Uma junc ao pode ser calculada por
diversos algoritmos e o sistema deve ser sagaz para escolher a melhor alternativa
para cada caso.
496
http://www.candidatoreal.com
Parte XIII
497
http://www.candidatoreal.com
Captulo 65
Administra
c
ao de Bancos
de Dados Oracle
Database Buffer Cache (DBBC): o DBBC e uma area de mem oria que
armazena os blocos de dados lidos do disco. Quando um processo necessita
de acessar dados do banco ele primeiro consulta essa area de mem oria.
Todas as operacoes sobre os dados do banco s ao realizadas nessa area
antes de serem persistidas em disco. No Oracle, a poltica de substituic
ao
de blocos utilizada e a LRU (Last Recently Used );
Shared Pool: o shared pool e uma area compartilhada que armazena in-
formac
oes sobre as instruc
oes SQL enviadas pelos processos usu ario (texto
do comando, planos de execuc ao etc.) e informac
oes sobre o dicion
ario de
dados (nome das tabelas, colunas, tipos, privilegios etc.);
Redo Log Buffer: buffer circular que contem informac oes sobre as modi-
http://www.candidatoreal.com
ficac
oes efetuadas no banco de dados. O redo log buffer e uma das estrturas
utilizadas para realizar a recuperacao do banco de dados. E importante
ressaltar que o redo log buffer e utilizado apenas para recuperacao e nao
para operac oes de rollback;
498
http://www.candidatoreal.com
Duas outras estruturas de mem oria tambem tem muita importancia na ar-
quitetura Oracle. A primeira delas e o Java Pool, que define a quantidade de
mem oria que pode ser alocada pela JVM (Java Virtual Machine). A segunda
dela e o Large Pool, que e utilizada para operacoes de backup, recuperac
ao,
entre outras. Em alguns casos, pode ser utilizada para operac
oes de ordenac
ao.
499
http://www.candidatoreal.com
Alem desses quatro, o Oracle possui uma serie de outros processos em back-
ground que sao de instalac
ao e uso opcionais. Os mais importantes s ao os
seguintes:
ARCH: E o respons
avel por copiar o redo log file (que e um buffer circular)
para um dispositivos de armazenamento offline para que os logs n ao sejam
perdidos;
o processo respons
Pnnn: E avel pela execuc
ao de consultas paralelas;
65.1.5 Arquivos
Em conjunto, O SGA e os processos em background formam uma int ancia Or-
acle. O banco de dados propriamente dito e formado por tres tipos de arquivos
que sao:
500
http://www.candidatoreal.com
501
http://www.candidatoreal.com
65.3.2 Checkpoints
A um tempo especfico, todos os dados do database buffer cache modificados s
ao
escritos em disco pelo processo DBWR; este evento e chamado de checkpoint. O
processo CKPT e respons avel para informar ao processo DBWR o momento de
gravar os dados em disco. O DBWR tambem atualiza os arquivos de controle
do banco de dados para indicar o mais recente checkpoint. O processo CKPT
e opcional; se ele n
ao estiver presente, o LGWR assume sua responsabilidade.
No momento do checkpoint a falta de sincronismo entre o DBBC e os arquivos
de redo e eliminada. Os eventos em que um checkpoint ocorre s ao:
A cada log switch.
Ap
os ocorrido um certo tempo desde o u
ltimo checkpoint (LOG CHECK-
POINT TIMEOUT).
Quando a inst
ancia sofre um shutdown, a menos que ela seja abortada.
Quando forcada pelo DBA. (ALTER SYSTEM CHECKPOINT)
Quando uma tablespace e colocada offline com pelo menos um arquivo
(datafile) online.
certas circunstancias.
Um segmento de rollback e usado para permitir a consistencia da leitura, re-
cuperar um comando quando ocorre o dead-lock, recuperar uma transac ao ate
uma certa marca identificada por um SAVEPOINT (marcador para instruc oes
nao confirmadas), recuperar uma transac ao terminada por uma falha de pro-
cesso de um usu ario e desfazer todas as transacoes pendentes durante a recu-
perac
ao de uma inst ancia.
Todas as operac
oes de atualizac
ao de dados em um banco de dados envolvem
os segmentos de rollback para permitir a consistencia da leitura, a recuperacao
das informacoes e permitir que uma transac ao ou um comando sejam descon-
siderados ou desfeitos.
502
http://www.candidatoreal.com
65.3.4 Consist
encia de leitura
O Database Buffer Cache e organizado em duas listas: a dirty list e a least
recently used list (LRU). A dirty list e uma lista que contem os blocos alterados
que ainda n ao foram escritos em disco. A LRU e uma lista que contem blocos
do ORACLE que foram alterados pelos comandos dos usu arios mas ainda nao
foram gravados em disco. Contem ainda blocos livres e blocos em uso. Assim,
quando um processo servidor precisa ler um bloco de dados do disco para a
mem oria, ele:
1. Pesquisa nas listas LRU e dirty list pelo bloco de dados desejado.
2. Caso esse bloco de dados n
ao seja localizado, o processo servidor pesquisa
a lista LRU em busca de um bloco livre.
3. Em seguida, o processo servidor move os blocos alterados encontrados na
lista LRU para a dirty list, ou seja, movimenta-os para a lista de blocos
alterados ainda n ao gravados nos arquivos de dados, de acordo com a
localizac
ao de cada um deles, durante o processo de pesquisa de um bloco
livre.
4. Finalmente, o processo servidor efetua uma c
opia do bloco de dados do
disco para um bloco livre.
5. Esse procedimento termina quando o processo servidor localiza um bloco
livre ou se um n
umero especfico de blocos forem pesquisados sem encon-
trar um unico bloco livre.
Se nenhum bloco foi encontrado, o ORACLE deve gravar os blocos alterados
da dirty list para os arquivos em disco, para liberar espaco em mem
oria para
os novos blocos de dados que precisam ser manipulados pelos comandos dos
usu
arios.
65.4 Configurac
ao do Servidor
A criac
ao de um banco de dados pode ser realizada atraves de uma ferramenta
gr
afica conhecida como Database Configuration Assistant. Com essa ferramenta
tambem e possvel configurar opc
oes de um banco de dados existente, deletar
um banco de dados e gerenciar gabaritos de banco de dados. As etapas s ao as
seguintes:
http://www.candidatoreal.com
503
http://www.candidatoreal.com
Criac
ao de estruturas de armazenamento prim
arias do banco de dados
(tablespaces).
Criac
ao e alterac
ao de objetos prim
arios: tabelas, vis
oes etc. ap
os os
desenvolvedores terem projetado a aplicac
ao.
Administrac
ao de usu
arios, controle de acesso e seguranca do sistema.
http://www.candidatoreal.com
Planejamento e execuc
ao de backup e de restaurac
ao das informac
oes do
banco de dados.
504
http://www.candidatoreal.com
65.5.2 Outros p
apeis
Responsavel pela seguran ca E um papel que existe somente em alguns ca-
sos. Pode assumir as responsabilidades de administrac ao de usu
arios,
controle de acesso e seguranca do sistema.
Administradores de redes Respons aveis em administar os produtos de rede
da Oracle como os servicos de rede da Oracle.
Administradores de aplica c
ao Cada aplicac ao deve ter um administrador
de aplicac
ao, que ser
a respons
avel por ela.
Usu
arios do banco de dados Respons aveis pela criac
ao, modificac
ao e delec
ao
de dados quando permitidos, alem da obtenc
ao de realatorios atraves do
dados.
http://www.candidatoreal.com
505
http://www.candidatoreal.com
Captulo 66
Administra
c
ao de Bancos
de Dados SQL Server
e informac
oes sobre replicac
ao.
66.1.1 Cat
alogos de sistema
Cada banco de dados Oracle executa em cat alogo de sistema centralizado, ou
dicion
ario de dados, que reside na tablespace SYSTEM. No caso do SQL Server
2005, cada banco de dados mantem seu cat alogo de sistema, que possui in-
formac
oes relacionadas, por exemplo, ` a: objetos do banco de dados (tabelas,
506
http://www.candidatoreal.com
507
http://www.candidatoreal.com
508
http://www.candidatoreal.com
Parte XIV
ITIL
http://www.candidatoreal.com
509
http://www.candidatoreal.com
Captulo 67
Suporte a Servi
cos
67.1.2 Responsabilidades
Receber, registrar, priorizar e rastrear chamadas de servico;
Produzir informac
oes gerenciais;
510
http://www.candidatoreal.com
67.1.3 V
arios Tipos de Central
Central de Atendimento Call Center. Apenas registra e encaminha para
outras
areas da organizac
ao.
Central de Suporte Call Center. Gerencia, coordena e resolve incidentes o
mais r
apido possvel. Utiliza o gerenciamento de comunicac
ao e ferramen-
tas de suporte ao conhecimento como tecnologia de apoio. Normalmente,
trata apenas incidentes.
Os incidentes podem ser detectados pelos usu arios ou por algum processo de
monitoracao, alem de poderem surgir de d uvidas, manifestac
oes ou requisic
oes
de servico. As sadas do processo de gerenciamento de incidentes podem ser
o reestabelecimento do servico, o esclarecimento da d uvida, a atendimento da
requisic
ao de servico, a identificac
ao de uma necessidade de mudanca, ou ainda,
o registro de um problema.
Identificac
ao e Registro do Incidente: Registro dos incidentes seja qual
for a fonte de abertura, reportando sintomas, diagn
ostico b
asico, itens de
configuracao envolvidos, perfil do usu
ario etc;
Analise e Classificac
ao: Especifica melhor os sintomas do incidente para
determinar a solucao;
Priorizac
ao: Combina os fatores impacto e urgencia para definir a prior-
idade do incidente em relac
ao ao demais (Matriz Impacto x Urgencia).
Tambem e levado em considerac
ao o acordo de nvel de servico (ANS ou
SLA);
511
http://www.candidatoreal.com
67.2.3 Pap
eis e Responsabilidades
Gestor de Incidentes: Avaliar e garantir a eficiencia e qualidade do servico,
auditar base de incidentes, garantir a avaliac
ao da satisfac
ao dos usu
arios,
produzir relat
orios gerenciais e realizar an
alise crtica do processo;
1o Nvel de atendimento: Receber, categorizar e priorizar as requisic oes
dos usuarios. Realizar investigac
ao inicial e aplicar soluc
oes de contorno
conhecidas. Caso necess ario, encaminhar os incidentes para o nvel ade-
quado de atendimento;
2o Nvel de atendimento: Desenvolver, quando possvel, uma soluc
ao de
contorno ou definitiva. Caso necess
ario, encaminhar incidente para o ter-
ceiro nvel;
3o Nvel de atendimento: Nvel mais alto de atendimento de incidentes.
Deve obrigatoriamente desenvolver uma solucao de contorno;
Equipes Especializadas: Atende ` as solicitac
oes de servico, esclarecimento
de d
uvidas e manifestacoes dos usuarios encaminhadas pelo primeiro nvel.
Deve executar os servicos segundo procedimentos pre-definidos.
http://www.candidatoreal.com
512
http://www.candidatoreal.com
67.3.2 Defini
coes Importantes
SC Soluc
oes de Contorno. Eliminam o sintoma ou reduzem o impacto de um
erro, sem eliminar as suas causas.
Problemas e Erros Conhecidos Um problema e a causa subjacente descon-
hecida de um ou mais Incidentes. Um Problema passa a Erro Conhecido
quando a causa-raiz for conhecida e for identificada uma soluc
ao de con-
torno ou uma alternativa definitiva.
BDP Base de Dados de Problemas. Base de Dados que contem todos os reg-
istros de problemas.
BDS Base de Dados de Problemas. Base de Dados que contem informac oes
referente aos Erros Conhecidos, suas respectivas Soluc
oes de Contorno e
demais soluc
oes definitivas.
Completar as revis
oes dos principais Problemas
67.3.4 Pap
eis e Responsabilidades
Gestor de Problemas Analisar e garantir a eficiencia do processo atraves da
auditoria e da revisao. Respons
avel tambem pela produc
ao de relat orios
gerenciais, alocac
ao dos Responsaveis Tecnicos e pela identificac
ao de
tendencias.
Responsavel T ecnico pelo Problema Identificar, registrar, categorizar e pri-
orizar. Investigar e diagnosticar a causa do Problema.
513
http://www.candidatoreal.com
67.4.2 Atividades
Planejamento: Identificac
ao do escopo, granularidade, objetivos, polticas
e procedimentos para o processo de gerenciamento de configurac ao;
Identificac
ao e Denominacao: Selec
ao e identificac
ao dos ICs, definindo
seus atributos, inter-relacionamento e identificacao;
Registro e Hist
orico da Situac
ao: Realiza a atualizac
ao no BDGC seguindo
procedimentos pre-definidos, de forma n ao perder o controle do ciclo de
vida dos ICs e vinculacao `
as RDMs;
Descric
ao da Situac
ao: Gerac
ao de relat
orios sobre status e ciclo de vida
dos ICs, permitindo a localizac
ao de mudancas;
Verificac
ao e Auditoria: Verificar a consistencia entre a situac
ao real e o
BDGC e demais bibliotecas controladas.
514
http://www.candidatoreal.com
67.4.3 Pap
eis e Responsabilidades
Gestor de Configurac ao: Implementar polticas de gerenciamento de con-
figurac
ao e assegurar sua disseminac
ao e utilizac
ao por toda organizac
ao.
Elaborar relat orios com indicadores do processo e an alises de impacto.
Deve ser membro do Grupo de Aconselhamento de Mudancas (GAMA);
Administrador de Configurac ao: Administrar o BDGC, assegurando sua
atualizac
ao a cada mudanca. Deve ainda auditar o BDGC, garantindo sua
consistencia com o invent
ario fsico.
67.5.2 Responsabilidades
Controle das alterac
oes em todos os Ices;
Levantamento e registro das mudancas;
Avaliac
ao de impacto, custo, benefcio e risco associado `
as mudancas;
Justificativa da mudanca perante o neg
ocio e obtenc
ao de aprovac
ao para
as mudancas;
Gerencia e coordenac
ao da implementac
ao de mudancas;
Monitoramento e informes sobre a implementac
ao;
Revis
ao e fechamento das RDM (requisic
oes de mudancas).
67.5.3 Defini
coes Importantes
Mudan
ca Padrao E a mudanca bem conhecida, rotineira e que comprovada-
mente n
ao causa alto impacto.
Mudan
ca Normal Planejada E a mudanca planejada e programada respei-
http://www.candidatoreal.com
515
http://www.candidatoreal.com
Proje
cao de Indisponibilidade PSA - Projected Services Availability. Contem
detalhes das mudancas e sua interferencia nos Acordos de Nvel de Servicos
e na disponibilidade de servicos.
Revis
ao P
os-Implementa c
ao Revis ao da Mudanca realizada ap
os a imple-
mentac
ao. Tem por objetivo avaliar se a mudanca atingiu e se houve
imprevistos ou efeitos colaterais.
Prioriza
cao de Mudan cas A priorizacao das mudancas e realizada de acordo
com o seu impacto e a sua urgencia.
software.
Garantir a localizac
ao do HW e do SW e assegurar que apenas as vers
oes
corretas sejam instaladas.
516
http://www.candidatoreal.com
Garantir a acur
acia do DHD (Dep osito de Hardware Definitivo) e que todo
IC retirado para ser utilizado no ambiente operacional seja reposto.
67.6.3 Defini
coes Importantes
BSD Biblioteca de Software Definitiva. DSL - Definitive Software Library.
Colec
ao de itens de configurac
ao de software e documentac
ao guardados
em local seguro. Todas versoes liberadas devem estar salvas na BSD.
Libera
cao Pacote Liberac oes completas, deltas ou as duas s
ao agrupadas em
pacote para liberac
ao.
67.6.4 Pap
eis e Responsabilidades
Gestor de Libera
c
oes Garantir que o processo seja seguido. Efetua auditoria
no BSD e no DHD. Autoriza a liberac
ao para o ambiente de produc
ao.
http://www.candidatoreal.com
517
http://www.candidatoreal.com
Captulo 68
Entrega de Servi
cos
Melhorar a especificac
ao dos servicos;
518
http://www.candidatoreal.com
68.2.2 Responsabilidades
Otimizar os recursos financeiros.
Apoiar decis
oes de investimentos.
Atribuir valores dos servicos e rateio dos custos por cliente.
Influenciar o comportamento do cliente.
Melhorar o controle dos contratos Externos/Fornecedores.
http://www.candidatoreal.com
Or
camento
Processo de previs
ao e controle dos gastos em dinheiro. As suas responsabili-
dades compreendem:
Previsao do orcamento necess
ario para a realizac
ao de servicos de TI no
perodo acordado.
519
http://www.candidatoreal.com
Garantia que a despesa real possa ser comparada com a despesa prevista
a qualquer momento do perodo.
Reduc
ao do risco de gastar alem do orcado.
Garantir a disponibilizac
ao de verba para cobrir despesas extras.
Contabilidade
Conjunto de processos que permite a organizac ao de TI prestar contas de como
o dinheiro foi gasto em um determinado perodo de tempo, sendo capaz de iden-
tificar custo por clientes, servicos ou atividades. Deve ter focos nos custos para
justificar investimentos e lucro zero para que a organizac ao possa contabilizar
as despesas de TI. As responsabilidades da disciplina compreendem:
Contabilizac
ao do dinheiro gasto para provis
ao dos servicos de TI.
Identificac
ao do custo de mudancas.
Cobran
ca
Conjunto de processos necess arios para faturar um Cliente (Oops...) pelos
servicos prestados, otimizando a relac
ao custo/benefcio do ponto de vista do
negocio. As responsabilidades da disciplina compreendem:
Recuperac
ao dos custos dos servicos de TI dos clientes dos servicos.
520
http://www.candidatoreal.com
68.3.2 Atividades
Gerenciamento de Capacidade do Neg ocio: Garante que as capacidades
futuras do neg
ocio sejam consideradas e planejadas em tempo certo. Re-
http://www.candidatoreal.com
521
http://www.candidatoreal.com
Dizemos que um servico esta disponvel quando o cliente o recebe dentro das
condic
oes do acordo de nvel de servico. Portanto, a taxa de disponibilidade e
dada pela seguinte f
ormula:
522
http://www.candidatoreal.com
Administrac
ao: Quando e como invocar o plano;
Infra-Estrutura de TI: Quais os itens envolvidos;
Procedimentos Operacionais: Instruc
oes de trabalho;
Pessoal: Respons
aveis, contatos e substitutos;
Site de Contingencia: Localizac
ao, contato e transporte;
Retorno ao normal: Como, onde e quanto tempo para o retorno.
E a sopa de letrinhas n ao tem fim. Algumas outras siglas que podem ser
u
teis na hora da prova s
ao: BIA (Business Impact Analysis), OCP (Operational
Continuity Plan), DRP (Disaster Recovery Plan). Todas essas an alises e planos,
na verdade, fazem parte do Plano de Continuidade de Neg ocios.
http://www.candidatoreal.com
68.5.2 Est
agios
Incio: Obtencao do aval gerencial e levantamento dos servicos de TI
crticos para o neg
ocio;
Requisitos Estrategicos: Analise de Risco e de Impacto e elaborac
ao da
estrategia de continuidade;
Implementac ao: Planejamento e implementac ao das instalac
oes para re-
cuperacao, elaborac
ao do plano de continuidade, medidas para reduc
ao de
riscos e realizac
ao de testes iniciais;
523
http://www.candidatoreal.com
Recuperac
ao Gradual (Cold Standby): Ambiente computacional vazio, ex-
ceto por energia e telecomunicac
oes. Mnimo de 72 horas para reestab-
elecimento dos servicos;
Recuperacao Intermedi
aria (Warm Standby): Ambiente com equipamen-
tos para recuperac
ao dos servicos mais crticos entre 24 e 72 horas;
Recuperac
ao Imediata (Hot Standby): Instalac
ao alternativa com espel-
hamento contnuo de equipamentos e dados.
http://www.candidatoreal.com
524
http://www.candidatoreal.com
Parte XV
Ger
encia de Projetos
segundo PMBOK
http://www.candidatoreal.com
525
http://www.candidatoreal.com
Captulo 69
Gerenciamento de Escopo
A primeira
area de conhecimento definida pelo PMBOK e a de Gerenciamento
de Escopo. Os principais processos respectivas atividades desta
area s
ao:
1. Iniciac
ao: declarac
ao formal do incio do projeto, com a elaborac
ao do
Project Charter ;
2. Planejamento: declarac ao do escopo, indicando justificativas para o pro-
jeto, alem dos principais produtos, subprodutos e objetivos do projeto;
3. Detalhamento: elaboracao da Estrutura Analtica do Projeto (EAP ), tambem
conhecida como Work Breakdown Structure (WBS ), que tem por objetivo
identificar fases, atividades e pacotes de trabalho. A WBS e de grande
import ancia para realizac
ao de estimativas de tempo e custo;
4. Verificac
ao: trata da aceitac
ao do escopo;
5. Controle de Mudancas: identifica as mudancas de escopo assim como seus
motivos e impactos, alem de tratar dos ajustes necess
arios.
Structure).
526
http://www.candidatoreal.com
facilitar a realizac
ao das estimativas, a definic
ao de baseline para controle de
desempenho e a atribuic ao clara de responsabilidades. A estrutura mais comum
usada para representar essa decomposic ao e
arvore. O nvel 1 (raiz) e consid-
erado o pr oprio projeto, seguido pelas entregas, que podem ser seguidas por
outras entregas, seguidas por atividades e assim por diante. Cada elemento de
cada nvel da EAP deve receber um identificador exclusivo.
Finalmente, o Dicion ario da EAP contem uma descric ao do nvel dos pa-
cotes de trabalho e os detalhes relativos `as atividades dentro de cada pacote.
Nele se encontram informac oes como custos, orcamentos, prazos, distribuic
ao de
recursos e descric
ao das atividades. Outro conceito importante s ao os marcos
de projeto (milestones). Os marcos s ao realizac
oes significativas do projeto que
ajudam a verificar o andamento dos trabalhos.
http://www.candidatoreal.com
527
http://www.candidatoreal.com
Captulo 70
Gerenciamento de Recursos
Humanos
Vantagens:
528
http://www.candidatoreal.com
Desvantagens:
O gerente de projeto tem pouca ou nenhuma autoridade oficial;
V
arios projetos disputam recursos limitados e prioridades;
Os integrantes do projeto s
ao leais ao gerente funcional.
70.1.2 Organiza
c
ao por Projeto
As organizacoes por projeto sao praticamente o oposto das organizac oes fun-
cionais. O enfoque e o proprio projeto, assim cultiva-se a lealdade ao projeto e
n ao a um gerente funcional. Os gerentes de projeto tem total autoridade sobre
o projeto e respondem diretamente ao CEO. As equipes s ao formadas e seus
membros com freq uencia s
ao co-alocados, ou seja, trabalham no mesmo local
fsico.
http://www.candidatoreal.com
Vantagens:
529
http://www.candidatoreal.com
O enfoque da organizac
ao e o projeto;
Os recursos da organizac
ao s
ao destinados ao projeto;
Lealdade ao gerente do projeto;
Comunicac
ao efetiva.
Desvantagens:
Quando o projeto e finalizado a equipe e desalocada;
Uso dos recursos pode n
ao ser eficiente;
Duplicac
ao de func
oes.
70.1.3 Organiza
cao Matricial
As organizac oes matriciais surgiram para minimizar as diferencas entre os pontos
fortes e fracos das organizacoes funcionais e das estruturadas por projeto.e mel-
hor explor a-los. Assim, os objetivos s ao atendidos, tecnicas eficientes de geren-
ciamento de projetos s ao aplicadas, ao mesmo tempo que tambem se mantem a
estrutura hier arquica da organizacao.
530
http://www.candidatoreal.com
Vantagens:
Quando o projeto e finalizado, a equipe e alocada em outras ativi-
dades na empresa;
A disseminac
ao de informac
oes ocorre na vertical e horizontal;
Os recursos escassos s
ao bem utilizados.
Desvantagens:
Mais de um gerente para a equipe do projeto se reportar;
Grande probabilidade de conflitos;
Precisa de pessoal administrativo extra para cumprir as necessidades
dos projetos.
secundarios. S
o h
a comunicac
ao vertical.
531
http://www.candidatoreal.com
Teoria da Realizac
ao.
Maslow defendia a hip otese de que os seres humanos possuem cinco necessi-
dades basicas, distribudas em ordem hierarquica. Eis um resumo de cada uma
delas, do nvel mais alto ate o mais baixo:
Realizac
ao pessoal - Trabalhar no seu potencial m
aximo;
Necessidade de protec
ao e seguranca - Seu bem-estar fsico e seus per-
tences.
532
http://www.candidatoreal.com
ameacadas. Em raz ao disso, agem como ditadores e imp oem ao seu pessoal
controles muito rgidos. J
a os gerentes partid
arios da Teoria Y entendem que as
pessoas vao se interessar por dar o melhor de si, se tiverem a motivac ao certa
e as expectativas adequadas. Assim, proporcionam apoio ` as suas respectivas
equipes, preocupam-se com seus membros e s ao bons ouvintes.
533
http://www.candidatoreal.com
Captulo 71
Gerenciamento do Tempo
Os processos da
area de Gerenciamento do Tempo segundo o PMBOK s
ao:
1. Definic
ao das Atividades: definir as atividades e respectivos respons
aveis.
2. Sequenciamento das atividades: estabelecer relac
oes de precedencia entre
as atividades (Diagramas de Precedencia);
3. Estimativas de Durac ao: estimar a durac
ao do projeto utilizando alguma
abordagem (TopDown, BottomUp). As principais tecnicas utilizadas para
realizac
ao de estimativas s
ao Modelos Matem aticos, Analogias e Consul-
toria de Especialistas;
4. Desenvolvimento do Cronograma : utilizac ao de alguma tecnica matematica
como PERT, CPM (Critical Path Method ) para formalizar o cronograma.
Tecnicas de Nivelamento de Recursos leva a alocac ao dos recursos em
conta no estabelecimento de precedencias das atividades. Para comprimir
o cronograma as tecnicas mais comuns s ao Crashing (adicao de recursos)
e Fast-Tracking (antecipac
ao de inicio de atividade);
5. Controle do Cronograma: comparar, analisar e revisar o cronograma para
permitir administrar desvios ao longo do projeto.
71.1 T
ecnicas de Desenvolvimento do Cronograma
Consiste em formalizar o cronograma, identificando suas datas, caminhos crticos
e registrando os marcos e pontos de controle identificados. H
a seis ferramentas
http://www.candidatoreal.com
An
alise Matem
atica;
Compress
ao de cronograma;
Simulac
ao;
Heurstica de nivelamento de recursos;
Software de gerenciamento de projeto;
Estrutura de Codificac
ao.
534
http://www.candidatoreal.com
71.1.1 An
alise Matem
atica
A an alise matem
atica consiste no c
alculo das datas de incio mais cedo e de
termino mais tarde das atividades do projeto - sem levar em conta as limitac
oes
dos recursos, o que acaba gerando prazos te
oricos. A an
alise matem
atica abrange
tres tecnicas:
O metodo CPM calcula as datas de incio mais cedo, de fim mais cedo, de
incio mais tarde e de fim mais tarde de cada atividade. Para isso, baseia-se
em redes seq uenciais (em que uma atividade acontece depois da outra) e numa
estimativa unica de durac ao para cada atividade. O caminho crtico de todo
o projeto e o caminho mais longo. Toda atividade com folga igual a zero e
considerada uma tarefa do caminho crtico. Assim, para calcular a durac ao do
caminho crtico basta somar a durac ao de cada atividade com folha igual a zero.
Existem dois tipos de folga: folga total e folga livre. A primeira e o tempo to-
tal pelo qual e possvel atrasar o incio da tarefa sem prorrogar o termino do
projeto. Ja a folga livre e o tempo durante o qual e possvel atrasar o incio da
tarefa sem prorrogar o incio de uma tarefa subseq uente.
O que e preciso saber sobre a tecnica GERT e que ela aceita desvio condi-
cional, looping e tratamento probabilstico. Por exemplo, um o projeto de um
software pode exigir o teste de modulos individuais antes da verificac
ao do pro-
grama como um todo, a cada m odulo precisa ser aprovado em seu teste ` a parte.
Cada teste constitui uma execucao no laco.
A tecnica PERT usa o valor esperado para definir a durac ao do projeto, por-
tanto se baseia em ferramentas estatsticas para isso. As tecnicas com e PERT
s
ao muito parecidas, entretanto CPM usa a durac ao mais prov avel e PERT o
valor esperado (ou media ponderada).
71.1.2 Compress
ao do Cronograma
http://www.candidatoreal.com
535
http://www.candidatoreal.com
71.1.3 Simula
cao
Na simulacao parte-se de diferentes conjuntos de premissas para chegar a diver-
sas durac
oes par ao projeto. O principal representante e a Simulac
ao de Monte
Carlo que mostra a probabilidade de todas as possveis datas de termino do pro-
jeto. Outra tecnica chamada what-if (an alise de hip
oteses) permite examinar o
cronograma sob diversas circunst ancias.
536
http://www.candidatoreal.com
Captulo 72
Gerenciamento de Custo
3. Orcamentac
ao dos Custos: alocacao das estimativas globais de custo s
ao
utilizadas para formalizar o orcamento;
72.1 T
ecnicas de Estimativas de Custos
As estimativas de custos emprega cinco ferramentas e tecnicas para gerar esti-
mativas:
Estimativa An
aloga
Modelagem Parametrica
Estimativas bottom-up
Ferramentas computadorizadas
72.1.1 Estimativas An
alogas
http://www.candidatoreal.com
537
http://www.candidatoreal.com
538
http://www.candidatoreal.com
Captulo 73
Gerenciamento de Riscos
73.1 An
alise Qualitativa
A An alise Qualitativa de Riscos visa ` a detecc
ao do impacto dos riscos identifi-
cados sobre os objetivos do projeto e sua probabilidade de ocorrencia. Tambem
http://www.candidatoreal.com
539
http://www.candidatoreal.com
73.2 An
alise Quantitativa de Riscos
A An alise Quantitativa de Riscos avalia os impactos e quantifica a exposic
ao do
projeto aos riscos por meio da atribuic ao de probabilidades numericas a cada
um e aos seus impactos sobre os objetivos do projeto. Para tanto, s ao usadas
tecnicas como a simulac ao de Monte Carlo e a an alise de decis
oes. Pode-se
usar tanto a An alise Qualitativa quanto a An alise Quantitativa para avaliar os
riscos, ou usar apenas uma dos dois. Essa decis ao ser
a tomada com base na
complexidade do projeto. As ferramentas e tecnicas desse processo s ao:
Entrevistas;
An
alise de Sensibilidade;
An
alise da
arvore de decis
oes;
Simulac
ao.
os nveis de toler
ancia aos riscos por parte dos stakeholders. Ela examina a ex-
tensao a qual a incerteza de cada elemento do projeto afeta o objetivo que est a
sendo examinado quando todos os outros elementos incertos s ao mantidos em
seus valores iniciais.
A an alise da
arvore de decisoes s
ao diagramas que mostram a seq uencia de
decis
oes inter-relacionadas e os resultados esperados de acordo com a alternativa
escolhida. Em geral existe mais de uma escolha ou opc ao disponvel quando
nos deparamos com uma decis ao - ou, nesse caso, possveis consequencias de
um evento de risco. As escolhas disponveis s ao expostas em forma de arvore,
comecando ` a esquerda com a decis ao relacionada ao risco, e ramificando para a
540
http://www.candidatoreal.com
541
http://www.candidatoreal.com
Captulo 74
Gerenciamento de
Qualidade
1. Planejamento: definic
ao dos padr
oes de qualidade relevantes ( Bench-
marking, Diagrama Espinha de Peixe (causa/efeito) e Fluxograma Pro-
cesso);
2. Garantia: verificar relev
ancia dos processos definidos;
74.1 T
ecnicas de Planejamento da Qualidade
O processo de Planejamento da Qualidade visa ao cumprimento de padr oes de
qualidade para o projeto em quest ao, elaborando, para tanto, um plano. Se-
gundo o guide to PMBOK a qualidade e planejada, n ao inspecionada. Portanto,
uma sada desse processo e o plano de gerenciamento da qualidade que especi-
fica como a poltica de qualidade ser
a implementada pela equipe de gerencia de
projeto no decorrer das atividades. Para isso, v arias ferramentas sao empre-
gadas. Os principais exemplos s ao: analise de custo/benefcio, benchmarking,
http://www.candidatoreal.com
74.1.1 An
alise Custo/Benefcio
Analise de custo/benefcio aborda as compensacoes no custo da qualidade. E
mais barato e eficiente prevenir problemas do que ter de perder tempo e dinheiro
para corrigi-los mais tarde. O guide to PMBOK salienta que o custo b asico do
cumprimento dos requisitos de qualidade num projeto equivale ` as despesas im-
plicadas na execucao das atividades de gerenciamento da qualidade.
542
http://www.candidatoreal.com
74.1.2 Benchmarking
um processo de comparac
E ao de atividades anteriores similares ` as do projeto
atual para obter um par
ametro de referencia para a avaliac
ao do desempenho. A
comparac
ao acaba sugeringo ideias para melhorar a qualidade no projeto atual.
Por exemplo, se a impressora imprime 8 p aginas por minuto e o projeto est a
considerando comprar uma que imprima 14 p aginas por minuto, a referencia e
a impressora usada no projetos ate ent
ao.
74.1.3 Fluxograma
S
ao diagramas que mostram as etapas l ogicas a serem executadas para atingir
um objetivo. Tambem podem discriminar como se d ao as relac
oes entre os di-
versos elementos de um sistema. Os fluxogramas podem ajudar a identificar
possibilidades de ocorrencia de problemas no projeto. H a dois tipos mais co-
muns de fluxogramas: os diagramas de processo ou sistema e os diagramas de
causa e efeito.
74.1.4 Elabora
cao de Experimentos
uma tecnica estatstica que identifica os elementos ou vari
E aveis que surtir
ao
os efeitos mais profundos sobre os resultados globais do projeto. Ela e aplicada
com mais freq uencia ao produto do projeto, mas tambem pode ser utilizada nos
processos de gerenciamento que examinam relac oes de compensac
ao. O processo
cria e realiza experimentos para chegar `a soluc
ao ideal de um problema, a partir
de um n umero limitado de exemplos.
543
http://www.candidatoreal.com
Custo de Prevenc
ao;
Custo de Avaliac
ao;
Custo de falhas, divididos em custos internos e custos externos.
Os custos de prevenc
ao sao aqueles associados ao cumprimento dos requi-
sitos dos clientes por meio da geracao de produtos livres de defeitos; vem a
tona logo no comeco do processo e compreendem fatores como planejamento da
qualidade, treinamento, analise de projeto.
Os custos de avaliac
ao s
ao aqueles em que se incorre para examinar o pro-
duto ou processo e averiguar se determinados requisitos est
ao sendo atendidos.
Podem incluir custos associados a elementos como inspecoes e testes.
Tres te
oricos em particular s
ao respons
aveis pela expans ao do movimento
pelo gerenciamento da qualidade e das teorias a respeito do custo da quali-
dade: Crosby, Juran e Deming. Crosby criou a pr atica do zero defeito - que
significa, basicamente, acertar de primeira. A prevenc ao e a peca central da
teoria de Crosby. Juran e conhecido pelo seu princpio da adequac ao ao uso
- que significa, em termos simples, a satisfac
ao ou superac
ao das expectativas
dos stakeholders clientes. A conformidade e peca central na teoria de Juran.
Deming afirma que ate 85% do custo da qualidade s ao problemas gerenciais.
Quando a quest ao da qualidade chega `
a base, ao patamar dos oper arios, estes
http://www.candidatoreal.com
74.2 T
ecnicas de Controle da Qualidade
O controle de qualidade preocupa-se particularmente com o monitoramento dos
resultados do trabalho, a fim de verificar se est
ao cumprindo os padroes estab-
elecidos no plano de gerenciamento da qualidade. Existem v arias ferramentas e
tecnicas nesse processo:
544
http://www.candidatoreal.com
Inspec
ao;
Gr
aficos de Controle (Carta de Controle);
Diagramas de Pareto;
Diagramas de Dispers
ao;
Amostragem Estatstica;
Elaborac
ao de Fluxogramas (Diagramas de Causa e Efeito, Fluxograma
de Sistemas);
An
alise das Tendencias.
74.2.1 Gr
aficos de Controle
Medem os resultados dos processos ao longo do tempo e exibem-nos em formato
gr
afico; constituem uma maneira de mensurar variac oes a fim de averiguar se
as variac
oes dos processos estao ou nao sob controle. Os gr aficos de controle
se baseiam na mediac ao de variac
oes de amostras escolhidas e mensuradas das
quais se determinam a media e o desvio-padr ao. O controle da qualidade cos-
tuma ser mantido - ou considerado sob controle - dentro de mais ou menos tres
desvios-padrao. Em outras palavras, o Controle da Qualidade considera que o
processo encontra-se sob controle quando se sabe que 99,73% das pecas a ele
submetidas v ao recair num intervalo aceitavel da media. Caso de descubra uma
peca fora desse intervalo, deve-se averiguar a necessidade de eventuais medidas
corretivas.
Figura 74.2: Gr
afico de Controle
545
http://www.candidatoreal.com
546
http://www.candidatoreal.com
Captulo 75
Gerenciamento da
Comunicac
ao
ciamento das comunicac oes. Ele estabelece como coletar, armazenar, arquivar
e corrigir ou atualizar materiais j a divulgados. Contem tambem uma lista das
informacoes a serem distribudas, o momento de sua comunicac ao e a estrutura
de distribuic
ao, alem de descrever como os stakeholders podem ter acesso a in-
formacoes do projeto antes das datas de divulgac ao. As informac oes a serem
compartilhadas e os metodos de distribuic ao dependem das necessidades dos
stakeholders, da complexidade do projeto e das polticas organizacionais.
547
http://www.candidatoreal.com
Captulo 76
Gerenciamento das
Aquisic
oes
A
area de gerenciamento de comunicac
oes e composta pelos seguintes processos:
2. Preparac
ao: elaborac
ao da documentacao para licitac
oes ou concorrencia;
3. Obtenc
ao de Propostas: selec
ao de fornecedores utilizando criterios definidos;
4. Administrac
ao de Contratos: acompanhar desempenho de fornecedores;
5. Encerramento Contrato: formalizar fim de contrato e arquivamento de
informac
oes.
fabricar os bens ou servicos necess arios par ao projeto. J a a outra tecnica trata
da selecao do tipo de contrato usado para aquisic ao de produto ou servico. Os
tipos de contrato s ao:
548
http://www.candidatoreal.com
Os objetivos do projeto;
Uma descric
ao do trabalho do projeto;
Especificac
oes concisas do bem ou servico necess
arios;
Um cronograma do projeto.
http://www.candidatoreal.com
549
http://www.candidatoreal.com
Captulo 77
Gerenciamento da
Integrac
ao
no processo de planejamento. No u
ltimo caso, o GVA, que visa ` a mensurac
ao
e ao relato do andamento do projeto, incorpora o cronograma do projeto, seu
escopo e recursos como um todo para determinar se existem discrep ancias no
projeto. No primeiro caso, OGVA apoia o c
alculo das variac
oes de custo.
550
http://www.candidatoreal.com
Captulo 78
551