Escolar Documentos
Profissional Documentos
Cultura Documentos
Handbook de TI para Concursos - O Guia Definitivo
Handbook de TI para Concursos - O Guia Definitivo
com
http://www.candidatoreal.com
Sum
ario
http://www.candidatoreal.com
Fundamentos de Computac
ao
16
1 Arquitetura e Organiza
c
ao de Computadores
1.1 Conceitos B
asicos . . . . . . . . . . . . . . . . .
1.2 Estrutura e Funcionamento da CPU . . . . . .
1.2.1 Pipelines . . . . . . . . . . . . . . . . .
1.3 Conjunto de Instruc
oes . . . . . . . . . . . . . .
1.4 Unidade de Controle . . . . . . . . . . . . . . .
1.5 Modos de Enderecamento . . . . . . . . . . . .
1.6 Organizac
ao de Mem
oria . . . . . . . . . . . . .
1.7 Desempenho do computador . . . . . . . . . . .
1.7.1 Tempo de execuc
ao de um programa . .
1.7.2 Desempenho da CPU . . . . . . . . . .
1.7.3 Programas para medir desempenho . . .
1.7.4 Comparando desempenho . . . . . . . .
1.7.5 Lei de Amdahl . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
17
17
18
20
22
24
25
26
28
29
29
30
30
31
2 Componentes de um Computador
2.1 Principais componentes de Hardware
2.1.1 Discos Rgidos . . . . . . . .
2.1.2 Teclado . . . . . . . . . . . .
2.1.3 Mouse . . . . . . . . . . . . .
2.1.4 Placa de rede . . . . . . . . .
2.1.5 Impressora . . . . . . . . . .
2.1.6 Monitor . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
33
34
34
36
37
37
38
38
3 Aritm
etica Computacional
3.1 N
umeros Com Sinal e N
umeros Sem Sinal . . .
3.1.1 Sinal e amplitude/magnitude . . . . . .
3.1.2 Complemento de 1 . . . . . . . . . . . .
3.1.3 Complemento de 2 . . . . . . . . . . . .
3.1.4 Notac
ao em excesso . . . . . . . . . . .
3.2 Adic
ao e Subtrac
ao . . . . . . . . . . . . . . . .
3.3 Operac
oes L
ogicas . . . . . . . . . . . . . . . .
3.4 Construc
ao de uma Unidade L
ogica Aritmetica
3.5 Ponto Flutuante . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
39
39
39
39
39
40
41
41
42
43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
http://www.candidatoreal.com
4 Sistemas Operacionais
4.1 Introduc
ao . . . . . . . . . . . . . . . . . . . . . . .
4.2 Conceitos B
asicos . . . . . . . . . . . . . . . . . . .
4.2.1 Multiprogramac
ao . . . . . . . . . . . . . .
4.2.2 Processo . . . . . . . . . . . . . . . . . . . .
4.2.3 Interrupc
oes . . . . . . . . . . . . . . . . . .
4.2.4 Threads . . . . . . . . . . . . . . . . . . . .
4.3 Escalonamento de Processos . . . . . . . . . . . . .
4.4 Entrada e Sada . . . . . . . . . . . . . . . . . . . .
4.4.1 Camadas do subsistema de Entrada e Sada
4.5 Gerencia de Mem
oria . . . . . . . . . . . . . . . . .
4.6 Sistemas de Arquivos . . . . . . . . . . . . . . . . .
4.6.1 Conceitos b
asicos sobre arquivos . . . . . .
4.6.2 Implementacao de arquivos . . . . . . . . .
4.6.3 Cache de Sistema de Arquivos . . . . . . .
4.6.4 Gerenciamento do espaco livre . . . . . . .
4.6.5 Diret
orios . . . . . . . . . . . . . . . . . . .
4.6.6 Implementacao de diret
orios . . . . . . . . .
4.7 Sistemas Operacionais Distribudos . . . . . . . . .
4.7.1 Estruturac
ao de Sistemas Distribudos . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
44
44
46
46
46
47
48
49
50
51
52
54
54
56
57
58
59
61
61
63
5 Principais Processadores de
5.1 Processadores Intel . . . .
5.1.1 Famlia Pentium .
5.1.2 Famlia Celeron . .
5.1.3 Famlia Core . . .
5.1.4 Xeon . . . . . . . .
5.1.5 Itanium . . . . . .
5.2 AMD . . . . . . . . . . .
5.2.1 Sempron . . . . . .
5.2.2 Athlon 64 . . . . .
5.2.3 Turion 64 . . . . .
5.2.4 Opteron . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
65
65
65
68
69
71
74
75
75
76
79
81
http://www.candidatoreal.com
II
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
L
ogica de Programac
ao
6 Orienta
c
ao a Objetos
6.1 Introduc
ao . . . . . . . . .
6.2 Conceitos fundamentais .
6.3 Princpios de programac
ao
6.4 Tratamento de excecoes .
III
Mercado
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
83
. . . . . . . . . . . .
. . . . . . . . . . . .
orientada a objetos
. . . . . . . . . . . .
Metodologia de Desenvolvimento
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
84
84
84
90
90
92
7 Ciclo de Vida
93
7.1 Modelo seq
uencial linear . . . . . . . . . . . . . . . . . . . . . . . 95
7.2 Modelo em V . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
7.3 Modelo de prototipagem . . . . . . . . . . . . . . . . . . . . . . . 96
http://www.candidatoreal.com
7.4
7.5
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
96
97
97
98
99
100
100
100
100
8 An
alise Comparativa de Processos de Desenvolvimento
8.1 RUP - Rational Unified Process . . . . . . . . . . . . . . .
8.2 XP - Extreme Programming . . . . . . . . . . . . . . . . .
8.3 Scrum . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.4 Crystal . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.5 Feature Driven Development (FDD) . . . . . . . . . . . .
8.6 Dynamic Systems Development Method (DSDM) . . . .
8.7 Adaptive Software Development (ASD) . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
102
102
105
105
106
106
107
107
9 Engenharia de Requisitos
9.1 O Processo de Engenharia de Requisitos
9.2 Tecnicas de Levantamento de Requisitos
9.2.1 Observac
ao . . . . . . . . . . . .
9.2.2 Entrevista . . . . . . . . . . . . .
9.2.3 An
alise de Protocolo . . . . . . .
9.2.4 JAD . . . . . . . . . . . . . . . .
9.2.5 PD . . . . . . . . . . . . . . . . .
9.2.6 QFD . . . . . . . . . . . . . . . .
9.2.7 CRC . . . . . . . . . . . . . . . .
9.2.8 Prototipac
ao . . . . . . . . . . .
9.2.9 Cen
arios . . . . . . . . . . . . . .
9.2.10 FAST . . . . . . . . . . . . . . .
9.3 An
alise de Requisitos . . . . . . . . . . .
9.3.1 Metodos de an
alise . . . . . . . .
9.3.2 Modelagem da an
alise . . . . . .
9.4 Gerenciamento de Requisitos . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
109
109
110
110
110
111
111
111
111
112
112
112
112
113
114
114
116
software
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
.
.
.
.
.
.
.
.
.
.
.
.
118
118
119
119
120
120
122
122
123
123
124
124
125
http://www.candidatoreal.com
7.6
7.7
7.8
Modelo RAD . . . . . . . . . . . . . . . . . . .
Modelos de processo de software evolucion
arios
7.5.1 Modelo incremental . . . . . . . . . . .
7.5.2 Modelo espiral . . . . . . . . . . . . . .
7.5.3 Modelo espiral ganha-ganha . . . . . . .
7.5.4 Modelo de desenvolvimento concorrente
Desenvolvimento baseado em componentes . . .
Modelo de metodos formais . . . . . . . . . . .
Tecnicas de quarta gerac
ao . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
10 M
etricas
10.1 Metricas de processo e aperfeicoamento de processo
10.2 Metricas de projeto . . . . . . . . . . . . . . . . . .
10.3 Medic
ao de software . . . . . . . . . . . . . . . . .
10.3.1 Metricas orientadas a tamanho . . . . . . .
10.3.2 Metricas orientadas a func
ao . . . . . . . .
10.3.3 Metricas de pontos por funcao estendidas .
10.4 Metricas de qualidade de software . . . . . . . . .
10.4.1 Fatores de qualidade de McCall . . . . . . .
10.4.2 FURPS . . . . . . . . . . . . . . . . . . . .
10.4.3 ISO 9126 . . . . . . . . . . . . . . . . . . .
10.5 Estimativas . . . . . . . . . . . . . . . . . . . . . .
10.5.1 COCOMO (Constructive Cost Model) . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
de
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
http://www.candidatoreal.com
http://www.candidatoreal.com
11 Testes
11.1 Teste de caminho b
asico . . . . . . . . . . . . . . . . . . . .
11.2 Teste de estrutura de controle . . . . . . . . . . . . . . . . .
11.2.1 Teste de condic
ao . . . . . . . . . . . . . . . . . . . .
11.2.2 Teste de fluxo de dados . . . . . . . . . . . . . . . .
11.2.3 Teste de ciclo . . . . . . . . . . . . . . . . . . . . . .
11.3 Teste caixa-preta . . . . . . . . . . . . . . . . . . . . . . . .
11.3.1 Metodos de teste baseados em grafo . . . . . . . . .
11.3.2 Particionamento de equivalencia . . . . . . . . . . .
11.3.3 An
alise de valor limite . . . . . . . . . . . . . . . . .
11.3.4 Teste de comparac
ao . . . . . . . . . . . . . . . . . .
11.3.5 Teste de matriz ortogonal . . . . . . . . . . . . . . .
11.4 Teste de ambientes, arquiteturas e aplicac
oes especializadas
11.5 Estrategia de teste de software . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
127
127
129
129
130
130
131
131
131
132
132
132
133
134
12 UML
12.1 Diagrama de caso de uso . . . . .
12.1.1 Ator . . . . . . . . . . . .
12.1.2 Descric
ao do caso de uso .
12.2 Diagrama de classe . . . . . . . .
12.2.1 Associac
oes de classe . . .
12.3 Diagramas de seq
uencia . . . . .
12.4 Diagramas de colaborac
ao . . . .
12.5 Diagramas de estado . . . . . . .
12.6 Diagramas de atividade . . . . .
12.7 Elementos auxiliares . . . . . . .
12.8 Diagramas de componente . . . .
12.9 Diagramas de distribuic
ao . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
136
136
136
137
137
138
140
140
141
143
144
144
144
13 Ger
encia de Configura
c
ao e Mudan
cas
13.1 As Atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.2 Artefatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.3 Papeis e Responsabilidades . . . . . . . . . . . . . . . . . . . . .
145
146
147
147
149
150
150
150
151
152
152
152
153
IV
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Linguagem de Programac
ao Java
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
155
15 Conceitos B
asicos de Java
156
15.1 Pacotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
15.2 Modificadores de Acesso . . . . . . . . . . . . . . . . . . . . . . . 157
http://www.candidatoreal.com
http://www.candidatoreal.com
15.3 Vari
aveis . . . . . . . . . . . . . .
15.4 Operadores . . . . . . . . . . . .
15.5 Express
oes, Sentencas e Blocos .
15.6 Comandos de Controle de Fluxo
15.7 Classes Aninhadas . . . . . . . .
15.8 Tipos Enumerados . . . . . . . .
15.9 Anotac
oes . . . . . . . . . . . . .
15.10Genericos . . . . . . . . . . . . .
15.11Reflex
ao . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
157
158
160
161
166
167
168
169
171
16 Classes Essenciais
16.1 Exception e Controle de Excec
oes . . . . .
16.1.1 Excec
oes tpicas . . . . . . . . . .
16.1.2 Capturando Excec
oes . . . . . . .
16.2 Threads e Concorrencia . . . . . . . . . .
16.2.1 Definindo e Iniciando uma Thread
16.2.2 Pausando a execuc
ao com sleep . .
16.2.3 Interrupc
oes . . . . . . . . . . . . .
16.2.4 Joins . . . . . . . . . . . . . . . . .
16.2.5 Sincronizac
ao . . . . . . . . . . . .
16.2.6 Executores e Thread Pools . . . .
16.3 Streams e Serializacao . . . . . . . . . . .
16.3.1 I/O Streams . . . . . . . . . . . .
16.3.2 Serializac
ao - Streams de Objetos .
16.4 Classes e Operac
oes de I/O . . . . . . . .
16.5 Classes para manipulac
ao de propriedades
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
173
173
173
175
176
176
177
178
178
179
180
181
181
183
185
185
17 Cole
c
oes
17.1 Interface
17.2 Interface
17.3 Interface
17.4 Interface
17.5 Interface
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
188
189
190
193
195
197
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
199
199
200
200
201
203
203
204
205
19 A plataforma J2EE
19.1 Containers J2EE . . . . . . . . . . .
19.2 Clientes J2EE . . . . . . . . . . . . .
19.3 Um pouco mais sobre Servlets . . . .
19.3.1 Ciclo de Vida dos Servlets . .
19.3.2 Mantendo o estado do cliente
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
207
208
209
209
211
212
Collection
Set . . . .
List . . .
Map . . .
Queue . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
http://www.candidatoreal.com
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Desenvolvimento Web
213
215
216
217
220
20 Usabilidade
221
20.1 Definic
ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
20.2 Princpios da usabilidade . . . . . . . . . . . . . . . . . . . . . . . 222
20.3 Tecnicas de avaliac
ao de usabilidade . . . . . . . . . . . . . . . . 223
21 Acessibilidade
21.1 Definic
ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21.2 Princpios da acessibilidade . . . . . . . . . . . . . . . . . . . . .
21.3 Tecnicas de avaliac
ao de acessibilidade . . . . . . . . . . . . . . .
224
224
224
227
22 Padr
oes Web W3C
229
http://www.candidatoreal.com
23 XML
23.1 O que e XML? . . . . . . . . . . .
23.2 Caractersticas do XML . . . . . .
23.3 Comparac
ao entre XML e HTML .
23.4 Sintaxe b
asica do XML . . . . . .
23.5 Conjunto de tags . . . . . . . . . .
23.6 NameSpaces . . . . . . . . . . . . .
23.7 Gram
atica de um documento XML
23.8 Tecnologias XML . . . . . . . . . .
23.9 Benefcios da linguagem XML . . .
23.10Ferramentas de desenvolvimento .
24 XSLT
24.1 O que e uma folha de estilo? . .
24.2 Comparac
ao entre o CSS e XSL .
24.3 O que e o XSL? . . . . . . . . . .
24.4 O que e o XSLT? . . . . . . . . .
24.5 Caractersticas do XSLT . . . . .
24.6 Declarando um documento XSL .
24.7 Elemento <xsl:template> . . . .
24.8 Elemento <xsl:value-of> . . . . .
24.9 Elemento <xsl:for-each> . . . . .
24.10Elemento <xsl:sort> . . . . . . .
24.11Elemento <xsl:if> . . . . . . . .
24.12Elemento <xsl:choose> . . . . .
24.13Elemento <xsl:apply-templates>
24.14XSL no lado Cliente . . . . . . .
24.15XSL no lado Servidor . . . . . .
24.16Processadores XSLT . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. .
. .
. .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
233
233
234
234
234
236
238
239
244
245
246
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
247
247
247
248
248
249
249
250
251
252
252
252
253
253
254
254
255
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
http://www.candidatoreal.com
25 Gerenciador de Conte
udo Web Zone/Plone
25.1 Gest
ao de Conte
udo . . . . . . . . . . . . . .
25.2 Sistema de Gest
ao de Conte
udo . . . . . . . .
25.3 Zope . . . . . . . . . . . . . . . . . . . . . . .
25.4 Plone . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
256
256
257
258
260
26 Web Services
26.1 O que e Web Services?
26.2 SOAP . . . . . . . . .
26.3 WSDL . . . . . . . . .
26.4 UDDI . . . . . . . . .
26.5 Seguranca . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
263
263
266
267
269
269
VI
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Redes de Comunicac
ao
270
http://www.candidatoreal.com
27 T
ecnicas B
asicas de Comunica
c
ao
27.1 Base Te
orica da Comunicac
ao de Dados . . . . . . . . .
27.2 Taxa M
axima de Dados em um Canal . . . . . . . . . .
27.3 Sinais Digitais Bin
arios . . . . . . . . . . . . . . . . . .
27.4 Transmiss
ao em Banda Base . . . . . . . . . . . . . . . .
27.5 Classificac
ao dos Sinais . . . . . . . . . . . . . . . . . . .
27.6 Tecnicas de Codificac
ao de Linha . . . . . . . . . . . . .
27.6.1 Codificac
ao NRZ . . . . . . . . . . . . . . . . . .
27.6.2 Codificac
ao RZ . . . . . . . . . . . . . . . . . . .
27.6.3 Codificac
ao AMI (Alternate Mark Invertion) . .
27.6.4 Codificac
ao HDB-3 (High Density Bipolar with
Maximum Tolerance) . . . . . . . . . . . . . . .
27.6.5 Codificac
ao Manchester . . . . . . . . . . . . . .
27.7 Modulac
ao . . . . . . . . . . . . . . . . . . . . . . . . .
27.7.1 Modulac
ao de Onda Contnua . . . . . . . . . . .
27.7.2 Modulac
ao de Pulsos . . . . . . . . . . . . . . . .
27.8 Tecnicas de Multiplexac
ao . . . . . . . . . . . . . . . . .
27.8.1 FDM - Frequency Division Multiplexing . . . . .
27.8.2 TDM - Time Division Multiplexing . . . . . . . .
27.8.3 OFDM . . . . . . . . . . . . . . . . . . . . . . .
27.8.4 WDM -Wavelength Division Multiplexing . . . .
27.9 Protocolos de Acesso M
ultiplo . . . . . . . . . . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
3 Zero
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
28 Topologias de Redes
271
271
272
272
273
273
274
274
275
275
275
276
276
277
279
280
281
281
281
282
283
284
29 Arquitetura de Redes
286
29.1 Organizac
ao em Camadas . . . . . . . . . . . . . . . . . . . . . . 286
30 Protocolos de Rede
30.1 ARP - Address Resolution Protocol . . . . . .
30.2 DHCP - Dynamic Host Configuration Protocol
30.3 DNS - Domain Name System . . . . . . . . . .
30.4 TCP - Transmission Control Protocol . . . . .
30.5 UDP - User Datagram Protocol . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
287
287
287
289
291
293
http://www.candidatoreal.com
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
31 O Modelo de Refer
encia OSI
314
32 Roteamento
32.1 Link State e Distance Vector . . . . . . . . . .
32.1.1 Vetor de Dist
ancias vs. Estado do Link
32.2 Protocolos de Roteamento . . . . . . . . . . . .
32.2.1 RIP - Routing Information Protocol . .
32.2.2 OSPF - Open Shortest Path First . . .
32.2.3 IGRP e EIGRP . . . . . . . . . . . . . .
http://www.candidatoreal.com
294
299
301
303
305
305
306
310
311
.
.
.
.
.
.
316
317
319
320
320
320
321
33 Redes Ethernet
33.1 Protocolo CSMA/CD . . . . . . . . . . . . . . . . . . . . . . . .
33.2 Fast Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33.3 Gigabit Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . .
322
322
323
324
34 Cabeamento Estruturado
34.1 Par Trancado . . . . . . . . . . . . . . . . . . . . .
34.1.1 Interferencias nos Cabos de Par Trancado .
34.2 Categorias 5e . . . . . . . . . . . . . . . . . . . . .
34.3 Categoria 6 . . . . . . . . . . . . . . . . . . . . . .
34.4 Categoria 5e vs. Categoria 6 . . . . . . . . . . . .
34.5 Cabeac
ao Estruturada Norma EIA/TIA 568 . . .
34.5.1 Sistemas de Cabeamento Estruturado . . .
34.6 Desempenho do Hardware e Meios de Transmiss
ao
34.6.1 Cabeamento UTP . . . . . . . . . . . . . .
326
326
326
327
328
328
329
329
333
334
335
336
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
de
. .
. .
. .
. .
. .
. .
Computadores
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
340
340
340
341
342
342
343
http://www.candidatoreal.com
37 Redes Multimdia
37.1 Qualidade de Servico . . . . . . . . . . . . . . . . . . . . . . . . .
37.2 Servicos Integrados - IntServ . . . . . . . . . . . . . . . . . . . .
37.3 Servicos Diferenciados - DiffServ . . . . . . . . . . . . . . . . . .
344
344
346
347
348
348
348
349
350
351
351
352
352
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
360
360
360
361
361
362
362
42 Camada de Aplica
c
ao
364
42.1 Proxy Cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
http://www.candidatoreal.com
VII
Ger
encia de Redes
366
43 O protocolo SNMP
367
43.1 Management Information Base . . . . . . . . . . . . . . . . . . . 368
VIII
Seguran
ca da Informac
ao
44 Polticas de Seguran
ca de Informa
c
ao
44.1 Polticas de Seguranca . . . . . . . . .
44.2 Projeto de Seguranca . . . . . . . . . .
44.3 Plano de Seguranca . . . . . . . . . . .
44.4 Normas de Seguranca . . . . . . . . .
44.4.1 ISO/IEC 17799 . . . . . . . . .
9
370
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
371
371
372
372
373
373
http://www.candidatoreal.com
. . . . . . . . . . . .
17799 e a ISO 27001
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
375
376
376
377
377
45 Seguran
ca Fsica e L
ogica
379
45.1 Seguranca Fsica . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
45.2 Seguranca L
ogica . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
45.2.1 Matrizes de acesso, listas de controle de acesso e capabilities379
45.2.2 Modelos de Controle de Acesso . . . . . . . . . . . . . . . 380
46 Backup de Dados
384
46.1 Meios de Armazenamento . . . . . . . . . . . . . . . . . . . . . . 384
47 Vrus e Ataques
386
47.1 Estrategias de combate `
a pragas eletr
onicas . . . . . . . . . . . . 388
47.1.1 Antivrus . . . . . . . . . . . . . . . . . . . . . . . . . . . 388
http://www.candidatoreal.com
48 Princpios de Criptografia
48.1 Tipos de Criptografia . . . . . . . . . .
48.2 Algoritmos de Criptografia Simetricos .
48.3 Algoritmos de Criptografia Assimetricos
48.4 Tecnicas de Quebra de Criptografia . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
390
391
392
393
394
49 Autentica
c
ao
49.1 Autenticac
ao de Mensagens . . . . . . . . . . . . .
49.2 Protocolos de Autenticac
ao . . . . . . . . . . . . .
49.2.1 Metodos de Autenticac
ao . . . . . . . . . .
49.2.2 Autenticac
ao baseada em uma chave secreta
49.3 Certificado Digital . . . . . . . . . . . . . . . . . .
395
. . . . . . . . 395
. . . . . . . . 396
. . . . . . . . 396
compartilhada396
. . . . . . . . 397
50 Seguran
ca em diversas camadas
50.1 Secure Sockets Layer . . . . . . . . . . .
50.2 IPSec . . . . . . . . . . . . . . . . . . .
50.3 Virtual Private Network (VPN) . . . . .
50.4 Filtragem de Pacotes e Firewalls . . . .
50.4.1 Regras iptables - Exemplo 1 . . .
50.4.2 Regras iptables - Exemplo 2 . . .
50.4.3 Firewall Stateful . . . . . . . . .
50.4.4 Application Gateway . . . . . . .
50.4.5 Arquitetura de firewall e DMZ .
50.5 Sistemas de Detecc
ao de Intrus
ao (IDS)
50.6 Seguranca em Redes Wireless 802.11 . .
50.6.1 WEP . . . . . . . . . . . . . . .
50.7 802.11i . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
10
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
399
399
400
401
403
405
405
406
407
407
409
409
409
410
http://www.candidatoreal.com
IX
Alta Disponibilidade
411
51 Solu
c
oes de Armazenamento RAID, SAN e NAS
412
51.1 RAID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
51.1.1 RAID 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
51.1.2 RAID 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
51.1.3 RAID 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
51.1.4 RAID 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
51.1.5 RAID 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
51.1.6 RAID 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
51.1.7 RAID 6 (Redund
ancia de P+Q) . . . . . . . . . . . . . . 419
51.1.8 Tipos Hbridos . . . . . . . . . . . . . . . . . . . . . . . . 419
51.1.9 Comparativo de Desempenho entre as diversas configurac
oes
RAID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420
51.2 SAN - Storage Area Network . . . . . . . . . . . . . . . . . . . . 420
51.2.1 Hardware para SAN . . . . . . . . . . . . . . . . . . . . . 421
51.2.2 Topologias de SAN . . . . . . . . . . . . . . . . . . . . . . 422
51.3 NAS - Network Attached Stotage . . . . . . . . . . . . . . . . . . 423
51.4 Comparativo entre SAN e NAS . . . . . . . . . . . . . . . . . . . 424
http://www.candidatoreal.com
52 Clusters de servidores
52.0.1 Princpios de um Cluster . . . .
52.0.2 Abstrac
oes em um Cluster . . . .
52.0.3 Arquitetura de um Cluster . . .
52.0.4 Cluster X Sistemas Distribudos
52.0.5 Cluster de Alta Disponibilidade .
52.0.6 Cluster de Alto Desempenho . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
427
427
428
429
430
431
433
53 Balanceamento de Carga
53.1 Balanceamento de armazenamento (storage) .
53.2 Balanceamento de rede . . . . . . . . . . . . .
53.2.1 NAT . . . . . . . . . . . . . . . . . . .
53.2.2 IP Tunneling . . . . . . . . . . . . . .
53.2.3 Direct Routing . . . . . . . . . . . . .
53.3 Algoritmos de balanceamento . . . . . . . . .
53.4 Balanceamento de CPU . . . . . . . . . . . .
53.4.1 Sistema de processamento distribudo
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
436
436
436
437
437
438
438
439
439
.
.
.
.
.
.
.
.
.
.
.
.
Sistemas Operacionais
442
11
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
443
443
443
445
445
446
446
446
447
http://www.candidatoreal.com
54.2.2
54.2.3
54.2.4
54.2.5
54.2.6
54.2.7
54.3 Active
54.3.1
54.3.2
Seguranca de Acesso . . . . . . . . . . . . . . . . . . . . .
Integrac
ao do DNS com o Active Directory . . . . . . . .
Servidor DNS somente Cache . . . . . . . . . . . . . . . .
Arquivo Hosts . . . . . . . . . . . . . . . . . . . . . . . .
Distribuic
ao de Carga . . . . . . . . . . . . . . . . . . . .
Comando ipconfig/dnscmd Relacionadas ao DNS . . . . .
Directory . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tipos de Servidores . . . . . . . . . . . . . . . . . . . . .
Definic
oes de Floresta, Domnio, Site e Unidade Organizacional . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54.3.3 Recursos do Active Directory . . . . . . . . . . . . . . . .
54.3.4 Seguranca com o Active Directory . . . . . . . . . . . . .
54.3.5 Ferramentas de Controle . . . . . . . . . . . . . . . . . . .
54.4 IIS - Internet Information Services . . . . . . . . . . . . . . . . .
54.4.1 IIS versus Apache HTTP Server . . . . . . . . . . . . . .
54.4.2 Principais Componentes do IIS . . . . . . . . . . . . . . .
54.4.3 Principais Recursos do IIS . . . . . . . . . . . . . . . . . .
54.4.4 Principais Diferencas entre IIS4, IIS5 e IIS6 . . . . . . . .
54.5 Terminal Services . . . . . . . . . . . . . . . . . . . . . . . . . . .
54.5.1 Principais Benefcios . . . . . . . . . . . . . . . . . . . . .
54.5.2 Protocolos de Comunicac
ao . . . . . . . . . . . . . . . . .
54.5.3 Licencas . . . . . . . . . . . . . . . . . . . . . . . . . . . .
XI
Banco de Dados
449
449
451
451
451
451
452
453
453
454
455
456
456
456
459
460
461
461
462
463
464
465
55 Conceitos B
asicos
466
56 Abordagem Relacional
468
56.1 Conceitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
56.2 Esquemas e Restric
oes de Integridade . . . . . . . . . . . . . . . 468
http://www.candidatoreal.com
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
470
470
471
471
471
58 Normaliza
c
ao
473
58.1 Aspectos desej
aveis em um bom projeto . . . . . . . . . . . . . . 473
58.2 Forma normal de Boyce-Codd . . . . . . . . . . . . . . . . . . . . 473
58.3 Terceira forma normal . . . . . . . . . . . . . . . . . . . . . . . . 474
59 Transforma
c
ao do Modelo Conceitual
60 Linguagem SQL
60.1 Criac
ao de tabela . . . .
60.2 Consultas . . . . . . . .
60.3 Func
oes de agregac
ao . .
60.4 Atualizac
oes e exclus
oes
60.5 Vis
oes . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
12
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
475
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
476
476
476
477
478
479
http://www.candidatoreal.com
XII
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
480
480
481
483
485
487
Administra
c
ao de Bancos de Dados Relacionais 489
62 Ger
encia de Transa
c
oes
490
63 Controle de Concorr
encia
492
64 Ger
encia de Desempenho
494
XIII
497
65 Administra
c
ao de Bancos de Dados Oracle
65.1 Arquitetura de um Servidor Oracle . . . . . . . .
65.1.1 Estruturas em mem
oria . . . . . . . . . .
65.1.2 Processos server . . . . . . . . . . . . . .
65.1.3 Processos user . . . . . . . . . . . . . . .
65.1.4 Processos em Background . . . . . . . . .
65.1.5 Arquivos . . . . . . . . . . . . . . . . . .
65.2 Arquitetura Oracle de Armazenamento de Dados
65.3 Tratamento de Transac
oes no Oracle . . . . . . .
65.3.1 Gerenciamento do Redo Log . . . . . . . .
65.3.2 Checkpoints . . . . . . . . . . . . . . . . .
65.3.3 Segmentos de rollback . . . . . . . . . . .
65.3.4 Consistencia de leitura . . . . . . . . . . .
65.4 Configurac
ao do Servidor . . . . . . . . . . . . .
65.5 Tipos de Usu
arios Oracle . . . . . . . . . . . . .
65.5.1 Administradores de banco de dados . . .
65.5.2 Outros p
apeis . . . . . . . . . . . . . . . .
http://www.candidatoreal.com
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
498
498
498
499
499
499
500
501
501
501
502
502
503
503
504
504
505
66 Administra
c
ao de Bancos de Dados SQL Server
66.1 Arquitetura de um Servidor SQL Server . . . . . . . .
66.1.1 Cat
alogos de sistema . . . . . . . . . . . . . . .
66.1.2 Processos em background . . . . . . . . . . . .
66.2 Arquitetura SQL Server de Armazenamento de Dados
66.3 Tratamento de Transac
oes no SQL Server . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
506
506
506
507
507
507
XIV
ITIL
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
509
67 Suporte a Servi
cos
510
67.1 Service Desk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510
13
http://www.candidatoreal.com
67.1.1 Objetivos . . . . . . . . . .
67.1.2 Responsabilidades . . . . .
67.1.3 V
arios Tipos de Central . .
Gerenciamento de Incidentes . . .
67.2.1 Objetivos . . . . . . . . . .
67.2.2 Atividades do Processo . .
67.2.3 Papeis e Responsabilidades
Gerenciamento de Problemas . . .
67.3.1 Objetivos . . . . . . . . . .
67.3.2 Definic
oes Importantes . . .
67.3.3 Atividades do Processo . .
67.3.4 Papeis e Responsabilidades
Gerenciamento de Configurac
ao . .
67.4.1 Objetivos . . . . . . . . . .
67.4.2 Atividades . . . . . . . . . .
67.4.3 Papeis e Responsabilidades
Gerenciamento de Mudancas . . .
67.5.1 Objetivos . . . . . . . . . .
67.5.2 Responsabilidades . . . . .
67.5.3 Definic
oes Importantes . . .
Gerenciamento de Liberac
ao . . . .
67.6.1 Objetivo . . . . . . . . . . .
67.6.2 Atividades do Processo . .
67.6.3 Definic
oes Importantes . . .
67.6.4 Papeis e Responsabilidades
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
510
510
511
511
511
511
512
512
512
513
513
513
514
514
514
515
515
515
515
515
516
516
516
517
517
68 Entrega de Servi
cos
68.1 Gerenciamento do Nvel de Servico
68.1.1 Objetivos . . . . . . . . . .
68.2 Gerenciamento Financeiro . . . . .
68.2.1 Objetivos . . . . . . . . . .
68.2.2 Responsabilidades . . . . .
68.2.3 Atividades do Processo . .
68.2.4 Elementos de Custo . . . .
68.3 Gerenciamento da Capacidade . .
68.3.1 Objetivos . . . . . . . . . .
68.3.2 Atividades . . . . . . . . . .
68.4 Gerenciamento de Disponibilidade
68.4.1 Objetivos . . . . . . . . . .
68.4.2 Ciclo de vida do incidente .
68.5 Gerenciamento de Continuidade . .
68.5.1 Objetivos . . . . . . . . . .
68.5.2 Est
agios . . . . . . . . . . .
68.5.3 Tipos de Continuidade . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
518
518
518
519
519
519
519
520
521
521
521
522
522
522
523
523
523
524
67.2
67.3
67.4
67.5
http://www.candidatoreal.com
67.6
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
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
528
528
528
529
530
531
531
71 Gerenciamento do Tempo
71.1 Tecnicas de Desenvolvimento do Cronograma
71.1.1 An
alise Matem
atica . . . . . . . . . .
71.1.2 Compress
ao do Cronograma . . . . . .
71.1.3 Simulac
ao . . . . . . . . . . . . . . . .
71.1.4 Heurstica do nivelamento de recursos
71.1.5 Estrutura de Codificac
ao . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
534
534
535
535
536
536
536
72 Gerenciamento de Custo
72.1 Tecnicas de Estimativas de Custos
72.1.1 Estimativas An
alogas . . .
72.1.2 Modelagem Parametrica . .
72.1.3 Estimativa bottom-up . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
537
537
537
538
538
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
73 Gerenciamento de Riscos
539
73.1 An
alise Qualitativa . . . . . . . . . . . . . . . . . . . . . . . . . . 539
73.2 An
alise Quantitativa de Riscos . . . . . . . . . . . . . . . . . . . 540
http://www.candidatoreal.com
74 Gerenciamento de Qualidade
74.1 Tecnicas de Planejamento da Qualidade
74.1.1 An
alise Custo/Benefcio . . . . .
74.1.2 Benchmarking . . . . . . . . . .
74.1.3 Fluxograma . . . . . . . . . . . .
74.1.4 Elaborac
ao de Experimentos . .
74.1.5 Custo da Qualidade . . . . . . .
74.2 Tecnicas de Controle da Qualidade . . .
74.2.1 Gr
aficos de Controle . . . . . . .
74.2.2 Diagramas de Pareto . . . . . . .
74.2.3 Diagramas de Dispers
ao . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
542
542
542
543
543
543
544
544
545
545
546
75 Gerenciamento da Comunica
c
ao
547
75.1 Um mais sobre Planejamento da Comunicac
ao . . . . . . . . . . 547
76 Gerenciamento das Aquisi
c
oes
548
76.1 Um pouco mais sobre Planejamento de Aquisic
oes . . . . . . . . 548
77 Gerenciamento da Integra
c
ao
550
77.1 Ferramentas de Apoio `
a Integrac
ao . . . . . . . . . . . . . . . . . 550
78 Sobre os Ciclos do Projeto e Processos de Gerenciamento
15
551
http://www.candidatoreal.com
Parte I
http://www.candidatoreal.com
Fundamentos de
Computa
c
ao
16
http://www.candidatoreal.com
Captulo 1
Arquitetura e Organiza
c
ao
de Computadores
1.1
Conceitos B
asicos
http://www.candidatoreal.com
As func
oes b
asicas de um computador s
ao o processamento de dados, armazenamento de dados, transferencia de dados e controle. Para desempenhar
essas func
oes o computador precisa executar um conjunto de instruc
oes (programa). Os computadores que conhecemos s
ao baseados no conceito de programa armazenado, introduzido por Von-Neuman. As instruc
oes do programa
e os dados s
ao armazenados em uma mem
oria, de forma que a alterac
ao de um
programa consiste na alteracao de um endereco de mem
oria.
O ciclo de execuc
ao de cada uma das instruc
oes de um programa e dividido nos seguintes estados: (i)Calculo do Endereco de Instruc
ao; (ii)Busca da
Instruc
ao (Instruction Fetch); (iii) Decodificac
ao da Instruc
ao; (iv)C
alculo do
Endereco do Operando; (v)Busca do Operando (Operand Fetch); (vi)Execuc
ao
da Operac
ao; (vii)Armazenamento do Resultado. No entanto, os computadores
modernos utilizam o conceito de interrupc
ao para diminuir o tempo de ociosidade dos processadores, o ciclo de execuc
ao das instruc
oes ganham mais alguns
estados. As classes de interrupc
oes mais comuns s
ao interrupc
oes de software,
de rel
ogio, de E/S e de falha de hardware.
A estrutura b
asica de um computador e composta pelos seguintes componentes:
(i)Unidade Central de Processamento(CPU);
(ii)Mem
oria Principal;
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 Interconex
oes 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
import
ancia no desempenho do sistema. Quest
oes importantes no projeto de
barramentos s
ao:
(i)Tipo - dedicado ou multiplexado;
(ii)Metodo de Arbitracao - Centralizado ou Distribudo;
(iii)Temporizac
ao - Sncrona ou Assncrona;
(iv)Largura - n
umero de linhas;
(v) Tipo de Transferencia - leitura, escrita, leitura/modificac
ao/escrita,
escrita/leitura, em bloco.
Para aumentar o desempenho do sistema, os barramentos s
ao organizados de
forma hier
arquica, de forma isolar o tr
afego de dados entre CPU e mem
oria do
tr
afego proveniente de operac
oes de E/S. Os chamados barramentos de expans
ao
proporcionam maior flexibilidade ao sistema (ex: SCSI), enquanto os barramentos de alta velocidade s
ao utilizados para dispositivos de alta capacidade (ex:
FireWire).
1.2
http://www.candidatoreal.com
18
http://www.candidatoreal.com
http://www.candidatoreal.com
19
http://www.candidatoreal.com
http://www.candidatoreal.com
1.2.1
Pipelines
20
http://www.candidatoreal.com
desempenho da CPU.
A tecnica de pipeline pode ser descrita genericamente como uma estrategia
de aceitar novas entradas em uma extremidade sem que as entradas previas
tenha aparecido como sadas na outra extremidade. Imaginemos um esquema
em que o ciclo de instruc
ao e subdividido em 2 etapas que s
ao a busca da instruc
ao e a execuc
ao. Enquanto uma instruc
ao est
a sendo executada, a pr
oxima
instruc
ao pode estar sendo buscada. Este esquema configura um pipeline de 2
est
agios, e a tecnica utilizada e a de busca antecipada de instruc
ao (Instruction
Prefetch ou Fetch Overlap). Embora possa ser obtido um ganho de desempenho,
o pipeline de 2 est
agios ainda e muito fraco para lidar com instruc
oes de desvio,
nas quais a busca da pr
oxima instruc
ao depende do resultado da execuc
ao da
instruc
ao corrente.
Portanto, uma subdivis
ao do ciclo de instruc
ao em um n
umero maior de
est
agios pode proporcionar maior desempenho. Imaginemos o ciclo de instruc
ao
como sendo composto dos seguintes est
agios:
(1)BI - Busca da Instruc
ao;
(2)DI - Decodificac
ao da Instruc
ao;
(3)CO - Calculo dos Enderecos dos Operandos;
(4)BO - Busca dos Operandos;
(5)EI - Execuc
ao da instruc
ao;
(6)EO - Escrita do Operando.
Essa subdivis
ao 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.
http://www.candidatoreal.com
21
http://www.candidatoreal.com
http://www.candidatoreal.com
1.3
Conjunto de Instru
c
oes
A operac
ao da CPU e determinada pelo conjunto de instruc
oes que ela executa.
S
ao as chamadas instruc
oes de m
aquina. A colec
ao de instruc
oes que uma CPU
pode executar e chamada Conjunto de Instruc
oes. O conjunto de instruc
oes
deve ser suficiente para traduzir programas escritos em uma linguagem de alto
nvel para a linguagem de m
aquina. Os principais elementos e uma instruc
ao
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 resultado;
(iv)Endereco da pr
oxima instruc
ao: Pode ser indicado implicitamente (ex:
registrador PC).
22
http://www.candidatoreal.com
http://www.candidatoreal.com
23
http://www.candidatoreal.com
1.4
Unidade de Controle
http://www.candidatoreal.com
24
http://www.candidatoreal.com
1.5
Modos de Endere
camento
http://www.candidatoreal.com
25
http://www.candidatoreal.com
1.6
Organizac
ao de Mem
oria
http://www.candidatoreal.com
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:
1. Menor tempo de acesso, maior custo por bit;
2. Maior capacidade, menor custo por bit;
3. Maior capacidade, menor tempo de acesso.
A organizac
ao hier
arquica 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 relac
oes s
ao tambem v
alidas:
1 O custo por bit diminui;
2 A capacidade aumenta;
3 O tempo de acesso aumenta;
4 A freq
uencia de acesso pelo processador diminui.
Desse modo, as mem
orias menores, mais caras e mais r
apidas s
ao combinadas com mem
oria de maior capacidade, mais lentas e baratas.
A chave do sucesso dessa organizac
ao baseia-se principalmente na relac
ao
4, que resume o princpio da Localidade das Referencias. Este princpio diz
que ao longo da execuc
ao de um programa, as referencias feitas `
a mem
oria pelo
processador, tanto no caso de instruc
oes como dados, tendem a formar grupos
no qual est
ao pr
oximas umas das outras. Desse modo e possvel organizar os
dados ao longo de uma hierarquia de forma que a porcentagem de acessos `
a um
certo nvel seja sucessivamente bem inferior do que a porcentagem de acessos `
a
um nvel imediatamente superior.
http://www.candidatoreal.com
Registradores, mem
oria cache e mem
oria principal s
ao as tres formas de
mem
oria interna que empregam tecnologias de semicondutores. O uso de tres
nveis explora as diferencas de velocidade e custo dessas mem
orias. Alem delas, alguns sistemas utilizam tecnologias e tecnicas adicionais na hierarquia de
mem
oria.
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
comunicando com a mem
oria externa. J
a a tecnica de Mem
oria Virtual permite
que os discos funcionem como uma extens
ao da mem
oria principal, aumentando
o desempenho do sistema.
A utilizac
ao de mem
orias cache tem por objetivo proporcionar uma velocidade 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 s
ao:
i Tamanho - deve ser projetado para conjugar bem velocidade, capacidade
e custo;
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;
iv Poltica de Escrita - direta (write-through), de volta (write-back) e u
nica
(write-once);
v Tamanho da Linha;
vi N
umero de Mem
orias Cache - um ou dois nveis, unificada/separada.
Entre os elementos de projeto de mem
oria cache vale destacar tres. O
primeiro e a Func
ao de Mapeamento, que diz respeito a determinar onde um
bloco da mem
oria principal pode ser encontrado na mem
oria cache. Para realizar este mapeamento s
ao necess
arios o endereco do bloco na mem
oria principal e a func
ao de mapeamento. No esquema de mapeamento direto, um determinado conjunto de blocos da mem
oria principal s
o pode ser encontrado em
de f
uma linha especfica da mem
oria cache. E
acil implementac
ao, porem pode
utilizar de forma ineficiente o espaco da cache. No mapeamento associativo
um bloco da mem
oria principal pode ser colocado em qualquer linha da cache.
Maximiza a ocupac
ao da cache, porem exige uma l
ogica de controle que realize comparac
ao do r
otulo com todas as linhas do cache simultaneamente. No
esquema associativo por conjuntos, um bloco da mem
oria principal pode se encontrar em um conjunto de linhas da cache, e n
ao nela toda. Visa conjugar
vantagens dos metodos direto e associativo.
http://www.candidatoreal.com
1.7
Desempenho do computador
1
T empo de Execucao
28
(1.1)
http://www.candidatoreal.com
1.7.1
Tempo de execuc
ao de um programa
F
ormulas bastante simples relacionam a medida do tempo de execuc
ao gasto no
processador com a metrica basica baseada nos ciclos de clock e tempo do ciclo
de clock:
Tempo de CPU do programa
http://www.candidatoreal.com
Essas f
ormulas n
ao incluem qualquer referencia ao n
umero de instruc
oes
necess
arias `
a execuc
ao de um programa. O tempo de execuc
ao tambem depende
do n
umero de instruc
oes do programa. O n
umero de ciclos de clock necess
arios
a execuc
`
ao de uma instruc
ao e dado por:
No de ciclos de clock = No instruc
oes do programa x CPI
(1.2)
A CPI e a media do n
umero de ciclos por instruc
ao. Este par
ametro permite
a comparac
ao entre diferentes implementac
oes de uma mesma arquitetura do
conjunto de instruc
oes, uma vez que o n
umero de instruc
oes para a execuc
ao do
programa nas diferentes implementac
oes e o mesmo.
1.7.2
Desempenho da CPU
29
http://www.candidatoreal.com
(1.3)
1.7.3
Existem quatro nveis de programas que podem ser usados para avaliac
ao de
desempenho, eles est
ao listados em ordem decrescente de precis
ao de previs
ao:
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).
Os benchmarks s
ao conjuntos de aplicac
oes que representam cargas de trabalho cujo objetivo e estimar o desempenho das cargas de trabalho reais. Os
benchmarks podem conter aplicac
oes tpicas de processamento cientfico, compiladores, processadores de texto entre outras.
http://www.candidatoreal.com
1.7.4
Comparando desempenho
http://www.candidatoreal.com
Programa 1 (s)
Programa 2 (s)
Total (s)
Computador A
1
1000
1001
Computador B
10
100
110
1
n
n
1
i=1 T axai
(1.4)
(1.5)
v
u n
uY
n
T normalizadoi (1.6)
Media Geometrica = Tempo Normalizado (i,n) = t
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:
MIPS
=
=
N
umero de instruc
oes
Tempo de execuc
ao x 106
Freq
uencia de Clock
CPI 106
http://www.candidatoreal.com
N
umero de op. de ponto flutuante
Tempo de execuc
ao x 106
(1.7)
Uma operac
ao de ponto flutuante pode ser uma operac
ao de adic
ao, subtrac
ao, multiplicac
ao ou divis
ao aplicada a operandos expressos em precis
ao
simples ou dupla.
1.7.5
Lei de Amdahl
31
http://www.candidatoreal.com
Desempenho ap
os a melhora
Desempenho antes da melhora
(1.8)
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:
Hardware: corresponde a parte fsica que est
a dividida em: unidade de
entrada e sada, processador, mem
oria principal e mem
oria secund
aria;
classificado
Software: e o conjunto de programas que d
a vida `
a m
aquina. E
em software aplicativo (jogos, planilha, etc.) e software b
asico (sistema
operacional, compiladores, editores de texto, etc.).
Para interligar os componentes do hardware existe uma placa de suporte
especial, chamada placa-m
ae. A placa-m
ae e respons
avel por gerenciar toda a
transac
ao entre o processador e os perifericos. Os componentes principais da
placa-m
ae s
ao: chipset, BIOS, barramentos, e slots.
http://www.candidatoreal.com
33
http://www.candidatoreal.com
2.1
2.1.1
http://www.candidatoreal.com
Os discos rgidos s
ao dispositivos de armazenamento destinados a grandes quantidades de dados. Fisicamente, um disco rgido pode ser visto como um composto por dois grandes blocos, como na figura 2.2. O primeiro bloco e um
conjunto de discos magneticos superpostos em alturas diferentes com auxlio de
um eixo central. No momento de acesso ao disco, essa estrutura e mantida em
uma rotac
ao constante. O segundo bloco e uma estrutura mec
anica que suporta
um conjunto de cabecotes, um para cada superfcie de disco. Essa estrutura e
capaz de realizar movimentos de vai-e-vem de maneira que os cabecotes possam
ser deslocados desde a borda do disco ate o centro.
http://www.candidatoreal.com
http://www.candidatoreal.com
(2.1)
A descric
ao de cada um dos termos da soma e a seguinte:
Tempo de Seek: tempo necess
ario para deslocar o cabecote de leitura e
escrita ate o cilindro correspondente `
a trilha a ser acessada;
Tempo de Latencia: tempo necess
ario, uma vez o cabecote posicionado j
a
na trilha correta, para o setor a ser lido, ou escrito, se posicionar sob o
cabecote de leitura e escrita no incio do setor a ser lido (ou escrito);
Tempo de Transferencia: corresponde ao tempo necess
ario `
a transferencia
dos dados, isso e, `
a leitura ou a escrita dos dados.
35
http://www.candidatoreal.com
2.1.2
Teclado
http://www.candidatoreal.com
36
http://www.candidatoreal.com
2.1.3
Mouse
http://www.candidatoreal.com
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.
Os modelos mais modernos de mouse s
ao totalmente
oticos, n
ao tendo pecas
m
oveis. De modo muito simplificado, eles tiram fotografias que s
ao comparadas
e que permitem deduzir o movimento que foi feito.
2.1.4
Placa de rede
http://www.candidatoreal.com
2.1.5
Impressora
As impressoras s
ao 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 individualmente que no conjunto formam o texto ou a imagem desejados. Tambem
de forma semelhante aos monitores, as impressoras evoluram a partir de dispositivos 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:
http://www.candidatoreal.com
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
3.1.1
Sinal e amplitude/magnitude
http://www.candidatoreal.com
3.1.2
Complemento de 1
3.1.3
Complemento de 2
http://www.candidatoreal.com
O complemento de 2 de um n
umero e obtido em dois passos: primeiro obtemse o complemento de todos os bits (inclusive o de sinal); e ao resultado obtido
soma-se 1 (um) em bin
ario, desprezando o u
ltimo transporte, se houver.
Uma maneira pr
atica de se obter o complemento de 2 de um n
umero e copiar
da direita para a esquerda todos os bits ate encontrar o primeiro bit 1 (copiar
inclusive este bit), e inverter todos os demais bits. Um exemplo para n=4:
0110 (6 na base 10)
1001 (n
umero bin
ario invertido)
+ 0001 (soma bin
aria com 1)
1010 (complemento de 2)
usando a regra:
0110 < > 1001
3.1.4
Nota
c
ao em excesso
http://www.candidatoreal.com
S+M
+0
1
2
3
4
5
6
7
-0
-1
-2
-3
-4
-5
-6
-7
C1
+0
1
2
3
4
5
6
7
-7
-6
-5
-4
-3
-2
-1
-0
C2
0
1
2
3
4
5
6
7
-8
-7
-6
-5
-4
-3
-2
-1
40
Excesso de 8 (n=4)
-8 (0 - 8)
-7 (1 - 8)
-6 (2 - 8)
-5 (3 - 8)
-4 (4 - 8)
-3 (5 - 8)
-2 (6 - 8)
-1 (7 - 8)
0 (8 - 8)
1 (9 - 8)
2 (10 - 8)
3 (11 - 8)
4 (12 - 8)
5 (13 - 8)
6 (14 - 8)
7 (15 - 8)
http://www.candidatoreal.com
3.2
Adic
ao e Subtra
c
ao
http://www.candidatoreal.com
3.3
Operac
oes L
ogicas
41
http://www.candidatoreal.com
3.4
Construc
ao de uma Unidade L
ogica Aritm
etica
Entrada
b carry in
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
soma
0
1
1
0
1
0
0
1
Sada
carry out
0
0
0
1
0
1
1
1
http://www.candidatoreal.com
Para completar o projeto de uma ALU de n bits, podemos conectar n somadores de um bit. Os carry outs gerados pelos bits menos significativos s
ao
propagados por toda extens
ao do somador.
A operac
ao de subtrac
ao pode ser realizada somando-se o minuendo com
a negac
ao do subtraendo. Este efeito e realizado acrescentando uma entrada
complementada de b ao somador e ativando o carry in do bit menos significativo
para um. O somador ent
ao calcula a + b + 1.
Outras func
oes de interesse, com o XOR podem ser includas na ALU. Algumas operac
oes n
ao s
ao, em geral, implementadas na ALU (3.4). Exemplos:
shift, multiplicac
ao, divis
ao e operac
oes de ponto flutuante.
42
http://www.candidatoreal.com
3.5
Ponto Flutuante
http://www.candidatoreal.com
3. Normalizar o resultado
0.001 21 = 1.0 24
4. Arredondamento
O n
umero final est
a OK.
43
http://www.candidatoreal.com
Captulo 4
Sistemas Operacionais
4.1
Introduc
ao
http://www.candidatoreal.com
44
http://www.candidatoreal.com
http://www.candidatoreal.com
N
umero de tarefas
Monotarefa: capazes de executar apenas uma tarefa de cada vez. Por
exemplo, o MS DOS, etc;
Multitarefa: capazes de executar v
arias tarefas simultaneamente,
como uma compilac
ao e um processamento de texto. Por exemplo,
Windows, Unix, etc;
Tipo de servico oferecido ao usu
ario
Sistemas de processamento em lote (batch);
Sistemas de tempo compartilhado (time sharing);
Sistemas de tempo real (real time);
45
http://www.candidatoreal.com
Sistemas Mainframes;
Sistemas desktop;
Sistemas distribudos;
Sistemas handheld;
Sistemas paralelos.
4.2
4.2.1
Conceitos B
asicos
Multiprogramac
ao
A multiprogramac
ao torna mais eficiente o aproveitamento dos recursos do computador. Isso e conseguido por meio da execuc
ao simult
anea de v
arios programas. Em um sistema multiprogramado diversos programas s
ao mantidos na
mem
oria ao mesmo tempo.
A ideia da multiprogramac
ao e aproveitar o tempo ocioso do processador
durante as operac
oes de entrada e sada, ou seja, enquanto o periferico executa
o comando enviado, o sistema operacional inicia a execuc
ao de outro programa.
Isso faz com que exista uma maximizac
ao do uso do processador e da mem
oria.
Em um ambiente monoprogramado, o processador ficaria parado durante a realizac
ao do acesso a um periferico.
4.2.2
Processo
http://www.candidatoreal.com
46
http://www.candidatoreal.com
http://www.candidatoreal.com
4.2.3
Interrup
c
oes
O mecanismo de interrupc
ao constitui a base de operac
ao de um sistema multiprogramac
ao. O mecanismo de interrupc
ao permite que o controlador de
periferico chame a atenc
ao do processador. A func
ao b
asica do controlador
de periferico e conectar o dispositivo em quest
ao ao processador.
Uma interrupc
ao sempre sinaliza a ocorrencia de algum evento. Quando
ela acontece, desvia a execucao da posic
ao atual de programa para uma rotina
47
http://www.candidatoreal.com
4.2.4
Threads
http://www.candidatoreal.com
48
http://www.candidatoreal.com
4.3
Escalonamento de Processos
http://www.candidatoreal.com
http://www.candidatoreal.com
4.4
Entrada e Sada
http://www.candidatoreal.com
50
http://www.candidatoreal.com
Atende as requisic
oes na ordem de
4.4.1
http://www.candidatoreal.com
51
http://www.candidatoreal.com
4.5
Ger
encia de Mem
oria
http://www.candidatoreal.com
52
http://www.candidatoreal.com
http://www.candidatoreal.com
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;
5. Processo vai para fila de pronto.
O respons
avel por carregar a p
agina solicitada e o pager. Para carregar
uma nova p
agina l
ogica para mem
oria muitas vezes e necess
ario descarregar
uma p
agina para o disco. Os algoritmos de substituic
ao de p
aginas s
ao os
respons
aveis por decidir qual p
agina ser
a escolhida para deixar a mem
oria. Exemplos de algoritmos de substituic
ao de p
agina s
ao:
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 implement
avel);
LRU: Escolhe a que a mais tempo n
ao e acessada (obs: algoritmo implementado por hist
orico de bits);
Second Chance: Organiza p
aginas em forma de um fila circular e utiliza
bits de controle.
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
Sistemas de Arquivos
http://www.candidatoreal.com
4.6.1
Conceitos b
asicos sobre arquivos
http://www.candidatoreal.com
http://www.candidatoreal.com
http://www.candidatoreal.com
4.6.2
Implementa
c
ao de arquivos
A forma b
asica 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 n
ao s
ao visveis aos usu
arios, mas s
ao
necess
arios para o que o sistema operacional implemente as operac
oes sobre os
arquivos.
Um descritor de arquivo contem as seguintes informac
oes: nome do arquivo,
extens
ao do nome do arquivo, tamanho em byte, data e hora do u
ltimo acesso,
data e hora da u
ltima alteracao, identificac
ao do usu
ario que criou o arquivo, local no disco onde o conte
udo do arquivo foi alocado, etc. A forma usual e manter
o descritor de um arquivo na mesma partic
ao onde est
a o seu conte
udo. Dessa
forma, esse disco poder
a ser ate mesmo fisicamente removido de um computador
e conectado a outro. Os arquivos nele poder
ao ser acessados normalmente no
novo computador.
http://www.candidatoreal.com
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 usu
ario.
http://www.candidatoreal.com
4.6.3
57
http://www.candidatoreal.com
func
ao, chamada de sistema ou operac
ao sobre arquivos. Entretanto, caches representam 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 quantidade de blocos do disco. Dessa forma, se algum bloco for requisitado para leitura
ou escrita, ele ser
a encontrado na mem
oria principal, evitando o acesso ao disco.
A cache do sistema de arquivos utiliza uma
area da mem
oria principal e e
controlada pelo sistema operacional. Na verdade, existem diversos locais onde
possvel haver uma cache global, uma
uma cache de disco pode ser mantida. E
cache exclusiva para cada sistema de arquivos, etc.
A forma b
asica 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 n
ao estiver na cache, ele e lido do disco,
colocado na cache e ent
ao utilizado.
Uma quest
ao importante e quando atualizar o disco ap
os um bloco presente
na cache ter sido alterado. Do ponto de vista de desempenho, o ideal e postergar a atualizac
ao do disco ao m
aximo no sentido de minimizar as escritas em
disco. Por outro lado, caso ocorra uma pane do sistema, toda a informac
ao na
cache ser
a perdida, o disco ficar
a desatualizado e, possivelmente, o sistema de
arquivos ficar
a corrompido. Existem diversas polticas que podem ser utilizadas.
Uma cache de sistema de arquivo pode possuir milhares de blocos, o que
torna invi
avel uma pesquisa seq
uencial da mesma para localizar determinado
bloco. Dada a natureza din
amica dessa estrutura e sua import
ancia para o desempenho do sistema como um todo, uma tabela hash e utilizada. O sistema de
arquivos fornece o n
umero da partic
ao e o n
umero do bloco, e uma func
ao hash e
utilizada para determinar o endereco do bloco na cache, caso ele esteja na cache.
http://www.candidatoreal.com
4.6.4
Uma das tarefas do sistema de arquivos e gerenciar o espaco livre nos discos.
Em outras palavras, determinar quais setores do disco est
ao livres e podem
ser alocados para aumentar o tamanho de um arquivo. Uma forma simples de
gerenciar o espaco livre em disco e por meio de um mapa de bits. A figura 4.5
mostra esse mecanismo.
Cada bit presente no mapa representa um bloco fsico do disco. Os bits s
ao
considerados numerados da direita para esquerda, isto e, o bit menos significativo do primeiro byte e o bit n
umero zero. Bit ligado indica bloco ocupado,
58
http://www.candidatoreal.com
http://www.candidatoreal.com
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 s
ao copiados para a mem
oria principal. Logo, somente ser
a necess
ario 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 blocos de enderecos tenham que ser escritos em disco. Alguns sistemas operacionais
atualizam periodicamente a lista de enderecos em disco para minimizar a corrupc
ao do sistema de arquivos em caso de falha no computador.
4.6.5
Diret
orios
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 u
nico diret
orio para o disco inteiro. Nesse caso, o diret
orio 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 pequena capacidade.
59
http://www.candidatoreal.com
http://www.candidatoreal.com
60
http://www.candidatoreal.com
4.6.6
Implementa
c
ao de diret
orios
http://www.candidatoreal.com
4.7
http://www.candidatoreal.com
formado por m
aquinas aut
onomas e software fornecendo a abstrac
ao de uma
m
aquina u
nica. As principais vantagens s
ao:
Econ
omicas: aproveitar m
aquinas potencialmente ociosas; mais barato
v
arios processadores interconectados do que um supercomputador.
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 desempenho.
Crescimento incremental: o poder computacional pode ser aumentado
atraves da inclus
ao de novos equipamentos.
Flexibilidade: sistemas distribudos s
ao mais flexveis do que m
aquinas
isoladas, por isso muitas vezes s
ao utilizados ate mesmo que n
ao se es essa flexibilidade que permite que v
teja buscando desempenho. E
arios
usu
arios compartilhem dados e perifericos.
E as desvantagens:
Pouco software de alto nvel disponvel para sistemas distribudos.
Dificuldades para evitar acesso indevido (seguranca).
A rede de interconex
ao pode causar problemas ou n
ao dar vaz
ao a demanda.
Sistemas distribudos consistem de v
arias CPUs interconectadas. No entanto, h
a v
arias formas diferentes no qual esse hardware pode estar organizado.
Dentre as v
arias classificac
oes existentes, Flynn prop
oe uma taxonomia considerando o n
umero de fluxo de instruc
oes e o n
umero de fluxo de dados.
SISD(Single Instruction Single Data): fluxo de instruc
oes e dados u
nico e
a caracterstica dos uniprocessadores tradicionais
http://www.candidatoreal.com
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 demandas de software e, em especial, novas func
oes exigidas ao S.O. Pode-se considerar como uma boa classificac
ao 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
1a
Sistema
SO Centralizado
2a
SO de Rede
3a
SO Distribudo
4a
SO Cooperativo
Aut
onomo
Caracterstica
Gerenciamento de Processos
Gerenciamento de Mem
oria
Gerenciamento de E/S
Gerenciamento de Arquivos
Acesso Remoto
Troca de Informac
oes
Navegac
ao na rede
Vis
ao global do Sistema de
arquivos,
Espaco de nomes
Tempo, Seguranca
Poder Computacional
Aplicac
oes Distribudas
Abertas e Cooperativas
Objetivo
Gerenciamento de
recursos
Mem
oria estendida
Virtualidade
Compartilhamento de
recursos
Interoperabilidade
Vis
ao de computador
Unico
em sistema
de M
ultiplos
Computadores
Transparencia
Trabalho cooperativo
Autonomia
4.7.1
Estrutura
c
ao de Sistemas Distribudos
http://www.candidatoreal.com
Estrutura
c
ao baseada na distribui
c
ao fsica
Dentre os v
arios 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.
O modelo de cache de CPU consiste na utilizac
ao de computadores de menor
porte como elementos que interligam terminais com uma grande CPU. Nesse
caso, uma parte do processamento ser
a executada no computador ligado ao
terminal, e a outra parte no computador central.
O modelo usu
ario-servidor(cliente/servidor) surgiu na medida em que os
computadores pequenos, crescendo em potencia e tendo seus precos reduzidos,
diminuram gradativamente a import
ancia do computador central do modelo
cache de CPU.
63
http://www.candidatoreal.com
Estrutura
c
ao L
ogica
Modelo de processos:
Esses processos podem encapsular tanto elementos ativos com natureza, consistindo dos programas referentes `
as atividades do sistema e do usu
ario quanto
elementos naturalmente passivos correspondendo aos recursos e suas respectivas operac
oes, confinados em gerenciadores de recursos. A comunicac
ao entre os
processos, implementada pelo sistema operacional, pode ocorrer de duas formas:
Chamada remota de procedimento: este tipo de comunicac
ao entre processos e bastante dependente da linguagem usada para implementac
ao
do sistema, devendo satisfazer suas restric
oes com relac
ao a chamada de
procedimento e a passagem de par
ametros.
Troca explcita de mensagem: este j
a e mais flexvel do que o anterior,
suas restric
oes est
ao relacionadas com a existencia de ligac
oes implcitas
ou explcitas entre os processos e com a interpretac
ao da mensagem.
http://www.candidatoreal.com
Modelo de objetos:
O modelo de objetos baseia-se no encapsulamento das v
arias partes de um sistema em elementos denominados objetos que s
ao estruturados de forma a apresentarem 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 algumas ou todas as suas operac
oes. Cada objeto distribudo n
ao 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 construc
ao do objeto, ou mesmo em tempo de execuc
ao para alcancar altos
nveis de colaborac
ao com outros objetos independentes. CORBA e um exemplo
de barramento.
64
http://www.candidatoreal.com
Captulo 5
Principais Processadores de
Mercado
5.1
5.1.1
Processadores Intel
Famlia Pentium
Pentium 4
O processador Pentium 4 da Intel foi lancado em novembro de 2000, usando a
microarquitetura x86 de setima gerac
ao da Intel, chamada Netburst, que veio
com um pipeline muito longo com a intenc
ao de permitir clocks mais altos.
Os processadores Pentium 4 podem encontrados em tres vers
oes de n
ucleos:
Willamette, Northwood e Prescott.
http://www.candidatoreal.com
65
http://www.candidatoreal.com
wood. Este n
ucleo e cerca de 60% menor do que o n
ucleo Willamette devido ao seu processo de fabricac
ao de 130 nan
ometros. O n
ucleo 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.
http://www.candidatoreal.com
Prescott
O n
ucleo Prescott e construdo com tecnologia de 90 nan
ometros e utilizado 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 Vanderpool. A tecnologia VT permite que um processador funcione como se
fosse v
arios 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, caracterstica esta presente apenas em processadores voltados para o mercado
corporativo.
Este processador possui 2 MB de cache L3 sendo acessado na mesma
freq
uencia de operac
ao 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
de clock, respectivamente); clock interno de 3,20 a 3,46 GHz; suporte `
as
instruc
oes MMX, SSE e SSE2; tecnologia Hyper-Threading; tecnologia de
construc
ao de 130 nan
ometros.
Os modelos de Pentium 4 Extreme Edition atuais s
ao baseados no n
ucleo
Prescott 2M com tecnologia de 90 nan
ometros. Possuem 16 KB de cache
L1 para dados; 12 KB de cache L1 para instruc
ao; 2 MB de cache L2; n
ao
possuem cache L3; trabalhava externamente a 1066 MHz (266 MHz transferindo quatro dados por pulso de clock); clock interno de 3,73 GHz; suporte `
as instruc
oes MMX, SSE, SSE2 e SSE3; tecnologia Hyper-Threading,
EM64T.
66
http://www.candidatoreal.com
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 instruc
ao 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 n
ucleo Presler.
As principais caractersticas dos processadores Pentium D e Pentium Extreme 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
de clock) nos processadores Pentium Extreme Edition; clock interno de
2,80 a 3,60 GHZ para o Pentium D e 3,46 a 3,73 GHz para o Extreme
Edition; suporte `
as instruc
oes SSE3; soquete 775; processo de fabricac
ao
de 65 nm; tecnologia EM64T, XD, VT e SpeedStep (modelos 840 e 830); e
tecnologia Hyper-Threading nos processadores Pentium Extreme Edition.
Os processadores Pentium D n
ao tem esta tecnologia.
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 con67
http://www.candidatoreal.com
http://www.candidatoreal.com
5.1.2
Famlia Celeron
O nome Celeron e utilizado pela Intel para designar sua linha de processadores de
baixo custo. Na verdade, o Celeron e uma vers
ao econ
omica dos processadores
topo de linha da Intel. Ou seja, o Celeron e uma vers
ao ?capada? do Pentium
II, Pentium III ou do Pentium 4, com algumas caractersticas reduzidas ou
removidas. O Celeron diferencia-se do Pentium II, Pentium III ou do Pentium
4 em basicamente tres aspectos:
Tamanho do cache L2
Clock interno
Clock do barramento externo
Essas diferencas fazem com que o Celeron seja mais barato e tenha um desempenho 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 n
ao necessitam de grande poder computacional.
68
http://www.candidatoreal.com
Existem v
arios modelos de Celeron, mas atualmente o comercializado pela
Intel e o Celeron D. O sufixo D e apenas para diferenci
a-lo das gerac
oes anteriores.
O Celeron D e a vers
ao topo de linha dos processadores Celeron. Esse processador e baseado no Pentium 4 com n
ucleo Prescott e possui tecnologia de 65
e 90 nan
ometros.
O Celeron D possui 16 KB de cache L1 de dados, 256 e 512 KB de cache
L2, trabalha externamente a 533 MHz (133 MHz transferindo quatro dados por
pulso de clock), suporte ?s instruc
oes multimdia SSE3, encapsulamento FCPGA e FC-LGA, padr
ao de pinagem soquete 478 ou 775, e pode ser encontrado
com clocks de 2,13 GHz a 3,60 GHz. Por ser uma vers
ao ?capada? do Pentium 4
Prescott, que permite alcancar com maior facilidade freq
uencias mais elevadas,
o Celeron D n
ao suporta a tecnologia Hyper-Threading, que permite simular
em um u
nico processador fsico dois processadores l
ogicos, e n
ao possui n
ucleo
duplo.
Alguns processadores Celeron D possuem a tecnologia EM64T (Extended
Memory 64-bit Technology), que permite ao processador acessar mais mem
oria
RAM, e a tecnologia XD (eXecute Disable), que impede que determinados tipos
de vrus ataquem o micro.
Antes do Celeron D, vieram alguns outros modelos: Celeron SEPP (Convington), Celeron A (Medocino), Celeron PPGA (Mendocino), Celeron Coppermine,
Celeron Tualatin, Celeron Willamette, Celeron Northwood e o Celeron M.
5.1.3
Famlia Core
Core Duo
http://www.candidatoreal.com
69
http://www.candidatoreal.com
L2 de 1 MB, um por n
ucleo. J
a no Core Duo, existe apenas um cache L2 de 2
MB que e compartilhado entre os dois n
ucleos.
Com o cache compartilhado, a quantidade de mem
oria cache que cada n
ucleo
utiliza n
ao e fixa. Com um cache L2 de 2 MB, em um dado momento um n
ucleo
pode estar usando 1,5 MB de cache e o outro 512 KB (0,5 MB), por exemplo.
Se em um processador de n
ucleo duplo com cache separado o cache L2 de um
n
ucleo acabe(isto e, seu 1 MB est
a sendo totalmente usado), ele precisa ir `
a
lenta mem
oria RAM buscar os dados, diminuindo o desempenho do sistema. No
caso do cache compartilhado, cada n
ucleo pode simplesmente redimensionaro
seu cache L2.
Outra vantagem do cache L2 compartilhado e que se um n
ucleo buscou um
dado ou uma instruc
ao e a armazenou no cache L2, esta mesma informac
ao
pode ser aproveitada pelo outro n
ucleo. Em processadores de n
ucleo duplo
com mem
orias cache separadas o segundo n
ucleo teria de acessar este dado (ou
instruc
ao) atraves do barramento local do processador, isto e, pelo lado de
forado processador, usando o clock do barramento local, que e muito inferior
ao clock interno do processador, diminuindo o desempenho do sistema.
http://www.candidatoreal.com
http://www.candidatoreal.com
Edition.
O Core 2 Duo e o primeiro processador para desktop a usar a nova microarquitetura Core. O lancamento do processador Core 2 Duo (nome-c
odigo Conroe
para desktop e Meron para port
ateis) marca o incio de uma nova gerac
ao de
processadores baseados na nova microarquitetura Core, e declara de uma vez por
todas o fim da microarquitetura Netburst usada desde 2000 pelos processadores
Intel de 7a gerac
ao. Como a microarquitetura Core e baseada na arquitetura do
Pentium M e do Pentium III, podemos dizer que o Core 2 Duo e um processador
Intel de 6a gerac
ao.
A diferenca entre o Core 2 Duo e o Core 2 Extreme e que este u
ltimo trabalha 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 n
ao confundir o processador Core 2 Duo com o Core Duo. O
Core Duo (conhecido anteriormente pelo nome-c
odigo Yonah) e o nome comercial 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.
As principais caractersticas tecnicas dos processadores da famlia Core 2
(Core 2 Duo e Core 2 Extreme) s
ao as seguintes: arquitetura Core; 64 KB de
cache L1 (32 KB de dados + 32 KB de instruc
oes) por n
ucleo; tecnologia de dois
n
ucleos (o Core 2 Extreme QX6700 tem tecnologia de quatro n
ucleos); tecnologia de 65 nm; soquete 775; barramento externo de 800 MHz (200 MHz transferindo quatro dados por pulso de clock) ou 1.066 MHz (266 MHz transferindo
quatro dados por pulso de clock); 2 MB, 4 MB ou 8 MB (Extreme QX6700) de
cache de mem
oria L2 compartilhado; tecnologia de Virtualizac
ao (exceto o Core
2 Duo E4300); tecnologia Intel EM64T; instruc
oes SSE3 e SSSE3 (atualizac
ao
da SSE3); Execute Disable; Intelligent Power Capability; tecnologia Enhanced
SpeedStep.
http://www.candidatoreal.com
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.
Existem os modelos Core 2 Duo para notebook com as caractersticas mencionadas anteriormente, mas com um barramento externo de 667 ou 533 MHz.
5.1.4
Xeon
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 estac
oes de trabalho baseado no Pentium 4,
sendo, portanto, um processador Intel de 7a gerac
ao. Como vimos, os processadores anteriores da serie Xeon usavam a arquitetura Intel de 6a gerac
ao (a
mesma do Pentium Pro).
A diferenca entre os processadores Xeon MP e Xeon e que o primeiro permite multiprocessamento simetrico com quatro ou mais processadores, enquanto
que o Xeon permite multiprocessamento com no m
aximo dois processadores.
Antigamente, o processador Xeon era chamado Xeon DP(multiprocessamento
simetrico com ate dois processadores), sendo posteriormente renomeado para
apenas Xeon.
http://www.candidatoreal.com
Xeon MP
Como j
a 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-m
ae, enquanto que o Xeon
MP suporta ate quatro processadores por barramento.
72
http://www.candidatoreal.com
Na realidade e possvel construir servidores com mais de quatro processadores Xeon MP em uma mesma placa-m
ae. Para isso, no entanto, os processadores devem ser agrupados de quatro em quatro ? j
a que eles s
o suportam
ate quatro processadores por barramento ? devendo haver uma conex
ao entre
os chipsets. Por exemplo, em um servidor com oito processadores Xeon MP,
os quatro primeiros processadores estar
ao interligados atraves do mesmo barramento, enquanto os outros quatro processadores estar
ao interligados atraves de
um segundo barramento. A comunicac
ao entre os barramentos locais ser
a feita
pelo chipset.
As principais caractersticas dos processadores Xeon MP s
ao: soquete 603;
cache L1 de execuc
ao de 150 KB; cache L1 de dados de 8 KB ou de 16 KB
nos modelos com suporte `
a tecnologia EM64T; multiprocessamento simetrico
diretamente com ate quatro processadores; tecnologia Hyper-Threading. Alguns
modelos possuem suporte `
as instruc
oes SSE3, e `
as tecnologias XD, EM64T.
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 processadores em cada n
ucleo ? o sistema operacional reconhece cada processador
Xeon de n
ucleo 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).
http://www.candidatoreal.com
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.
Tenha em mente que os processadores Xeon de n
ucleo duplo de outras series
(50xx e 7xxx) s
ao baseados na microarquitetura do Pentium 4 (Netburst) e por
isso possuem a tecnologia HyperThreading, que n
ao est
a presente na microarquitetura Core.
73
http://www.candidatoreal.com
5.1.5
Itanium
http://www.candidatoreal.com
74
http://www.candidatoreal.com
5.2
5.2.1
AMD
Sempron
http://www.candidatoreal.com
Soquete 462
Os processadores Sempron soquete 462 s
ao, na realidade, processadores Athlon
XP com barramento externo de 333 MHz (166 MHz transferindo dois dados por
pulso de clock) e 256 KB de mem
oria cache L2 (ou 512 KB no caso do modelo
3000+).
Essa categoria de Sempron possui as demais caractersticas do Athlon XP,
tais como: 64 KB de cache L1 de instruc
oes e 64 KB de cache L1 de dados;
256 KB ou 512 KB de cache de mem
oria L2; suporte `
as instruc
oes MMX,
3DNow!, SSE e SSE2 (mas n
ao `
as instruc
oes SSE3); processo de fabricac
ao de
130 nan
ometro.
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.
As principais caractersticas dos processadores Sempron soquete 754 s
ao:
64 KB de cache de L1 de instruc
oes e 64 KB de cache L1 de dados; 128
KB ou 256 KB de cache de mem
oria L2; barramento HyperTransport (barramento externo para acesso ao chipset Northbridge. Esta tecnologia permite
o processador comunicar-se com a mem
oria RAM e com os demais circuitos
do micro ao mesmo tempo, pois existe outro barramento externo para acesso
a mem
`
oria RAM. Antigamente, era apenas um barramento de acesso externo)
trabalhando a 800 MHz (este clock pode tambem ser referenciado como 1.600
MHz) para os modelos atuais; configurac
ao de mem
oria single channel; suporte
a instruc
oes SSE3 nos modelos que tem as extens
oes de 64 bits habilitadas; processo de fabricac
ao de 90 nan
ometros.
Soquete AM2
Ao contr
ario 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), dobrando a taxa de transferencia no acesso `
a mem
oria desde que voce use dois
ou quatro m
odulos de mem
oria em seu micro. Lembre-se que os processadores
Sempron soquete 754 aceitam somente mem
orias DDR, enquanto que os processadores Sempron soquete AM2 aceitam somente mem
orias DDR2.
http://www.candidatoreal.com
5.2.2
Athlon 64
76
http://www.candidatoreal.com
http://www.candidatoreal.com
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
necess
(ou um n
umero par de m
odulos de mem
oria for usado). E
aria a
utilizac
ao de mem
orias do tipo ECC;
Soquete AM2
Usado pelos novos processadores Athlon 64, Athlon 64 FX e Athlon 64
X2. Nesses processadores o controlador de mem
oria integrado suporta
mem
orias DDR2-533, DDR2-667 e DDR2-800 na configurac
ao de dois
canais (dual channel), o que significa que o processador acessa a mem
oria
a 128 bits, se dois m
odulos forem usados. Lembre-se que o controlador
de mem
oria dos processadores soquete 754, 939 e 940 suportam apenas
mem
orias DDR;
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
Quad FX da AMD (Athlon 64 FX modelos 7x). Os processadores que utilizam este soquete trabalham no modo SMP (multiprocessamento simetrico),
podendo trabalhar com mais de um processador em paralelo. Assim
como os processadores soquete AM2, nesses processadores o controlador
de mem
oria integrado tambem suporta mem
orias DDR2-533, DDR2-667
e DDR2-800 na configurac
ao de dois canais (dual channel), o que significa
que o processador acessa a mem
oria a 128 bits, se um n
umero par de
m
odulos de mem
oria for usado.
O controlador de mem
oria integrado nos novos processadores Athlon 64 soquete AM2 e Athlon 64 FX soquete F suporta mem
orias DDR2-533, DDR2-667 e
DDR2-800. O problema, no entanto, e como o clock do barramento de mem
oria
e obtido. Em vez de ser gerado atraves do clock base do processador (clock
HTT, que e de 200 MHz), e usada uma divis
ao do clock interno do processador.
O valor desta divis
ao e metade do valor do multiplicador do processador.
Por exemplo, um processador AMD64 com um multiplicador de clock 12x
ter
a um divisor do barramento de mem
oria de 6. Este processador trabalhar
a
a 2,4 GHz (200 MHz x 12) e sua mem
oria funcionar
a a 400 MHz (DDR2-800,
2.400 MHz / 6). Tenha em mente que as mem
orias DDR e DDR2 s
ao rotuladas
com o dobro dos seus clocks reais.
http://www.candidatoreal.com
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
m
odulos 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.
As principais caractersticas tecnicas do Athlon 64 X2 s
ao as seguintes: 64
KB de cache de L1 de instrucoes e 64 KB de cache L1 de dados por n
ucleo; 512
KB ou 1 MB de cache de mem
oria L2 por n
ucleo; barramento HyperTransport
trabalhando a 1 GHz (4 GB/s). Esse clock pode tambem ser referenciado como
2.000 MHz; configurac
ao de mem
oria DDR dual channel em todos os modelos;
conjunto de instruc
oes SSE3 em alguns modelos.
Athlon 64 FX
http://www.candidatoreal.com
5.2.3
Turion 64
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
mem
orias DDR2 na configurac
ao de dois canais (dual channel), o que significa
que o processador pode acessar a mem
oria a 128 bits.
http://www.candidatoreal.com
80
http://www.candidatoreal.com
5.2.4
Opteron
http://www.candidatoreal.com
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.
Processadores Opteron que trabalham com mem
orias DDR2 tambem s
ao
chamados de Opteron de Segunda Gerac
ao.
Em todos os modelos de Opteron o controlador de mem
oria usa dois canais
(dual channel), ou seja, o processador acessa a mem
oria a 128 bits, se dois
m
odulos forem usados (ou se um n
umero par de m
odulos de mem
oria forem
usados).
As principais caractersticas tecnicas do Opteron s
ao as seguintes: suporte
a multiprocessamento Simetrico; 64 KB de cache de L1 de instruc
oes e 64 KB
de cache L1 de dados; 1 MB de cache de mem
oria L2 por n
ucleo; barramento
HyperTransport trabalhando a 800 MHz (3,2 GB/s) ou 1 GHz (4 GB/s); configurac
ao de mem
oria em dois canais (voce precisa instalar dois ou um n
umero
par de m
odulos de mem
oria para usar este recurso); podem acessar ate 1 TB
(terabyte) de mem
oria RAM; suporte `
as instruc
oes MMX, 3Dnow!, SSE e SSE2
(SSE3 apenas nos modelos mais novos); tencnologia EVP (Enhanced Vrus Protection); tecnologia de virtualizac
ao AMD-V nos modelos de quatro dgitos.
http://www.candidatoreal.com
82
http://www.candidatoreal.com
Parte II
http://www.candidatoreal.com
L
ogica de Programa
c
ao
83
http://www.candidatoreal.com
Captulo 6
Orientac
ao a Objetos
6.1
Introduc
ao
A an
alise 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 d
a 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#.
http://www.candidatoreal.com
6.2
Conceitos fundamentais
1. Objetos
Os objetos do mundo real compartilham duas caractersticas: possuem um
estado e tem um comportamento. Por exemplo, cachorro tem um estado
(nome, cor, raca) e um comportamento (latindo, comendo, lambendo).
Analogamente, objetos de software s
ao modelados de acordo com os objetos do mundo real, ou seja, possuem estado e comportamento (objeto e
uma abstrac
ao do mundo real). Um objeto de software armazena seu estado em vari
aveis e implementa seu comportamento com metodos. Estas
vari
aveis e metodos s
ao formalmente chamados de vari
aveis de inst
ancia
e metodos de inst
ancia a fim de distingu-los de vari
aveis e metodos de
classe.
As vari
aveis de um objeto fazem parte do seu n
ucleo (centro). Os metodos
envolvem e escondem o n
ucleo do objeto de outros componentes da aplicac
ao,
1. Empacotar as vari
aveis de um objeto sobre protec
ao de seus metodos e
chamado de encapsulamento. O encapsulamento e utilizado para esconder
detalhes de implementac
ao pouco importante. Este e um dos princpios
fundamentais da programac
ao orientada a objetos.
84
http://www.candidatoreal.com
http://www.candidatoreal.com
85
http://www.candidatoreal.com
atributos tambem s
ao 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 inst
ancia 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 n
ao s
ao diretamente suportadas em todas as linguagens de objetos, 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 objeto 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 exatamente 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.
http://www.candidatoreal.com
86
http://www.candidatoreal.com
ao profunda quanto
necess
ario. Os metodos e vari
aveis s
ao herdados por meio dos nveis. Em
geral, quanto mais baixa na hierarquia for a posic
ao da classe, mais especfico e o seu comportamento.
Como benefcios do conceito de heranca, podemos citar:
Subclasses oferecem comportamentos especializados a partir de elementos
b
asicos comuns, oferecidos pela superclasse. A utilizac
ao do conceito de
heranca e muito interessante, pois promove um grande reuso e reaproveitamento de c
odigo existente; Programadores podem definir classes abstratas
que determinam comportamentos genericos. A superclasse abstrata define
e pode implementar parcialmente o comportamento de uma classe, mas a
maioria das informac
oes da classe fica indefinida ou n
ao e implementada.
A heranca m
ultipla ocorre quando uma classe pode estender caractersticas
de v
arias outras classes ao mesmo tempo, ou seja, quando a subclasse
possui mais de uma superclasse. Algumas linguagens evitam utilizar este
mecanismo, pois pode levar uma codificac
ao confusa o que dificulta a
manutenc
ao do c
odigo. A linguagem Java n
ao suporta heranca m
ultipla,
apenas heranca simples. J
a a linguagem C++ oferece suporte `
a heranca
m
ultipla.
Uma linguagem ao utilizar heranca m
ultipla est
a sujeita a dois problemas: colis
ao de nomes (nomes identicos nas classes superiores) e heranca
repetida (classe herda de uma classe superior que herda de uma classe
comum);
http://www.candidatoreal.com
7. Polimorfismo
Segundo a terminologia de orientac
ao a objetos, polimorfismo significa que
uma mesma mensagem enviada a diferentes objetos resulta em um comportamento que e dependente da natureza do objeto que est
a recebendo a
mensagem. Ou seja, duas ou mais classes derivadas de uma mesma superclasse podem invocar metodos que tem a mesma assinatura (nome, lista
de par
ametros e retorno), mas comportamentos distintos, especializado
para cada classe derivada, usando para tanto uma referencia a um objeto
do tipo superclasse.
A decis
ao 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 necess
ario 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
http://www.candidatoreal.com
}
Note que, embora o metodo calcular tenha sido chamado duas vezes no interior de mostrarCalculo, o comportamento apresentado variou de acordo
com a classe ao qual ele representava no momento.
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. Ficar
a
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
(String x, String y)
http://www.candidatoreal.com
http://www.candidatoreal.com
6.3
Princpios de programa
c
ao orientada a objetos
http://www.candidatoreal.com
6.4
Tratamento de exce
c
oes
O termo excec
ao e usado para designar um evento que ocorre durante a execuc
ao
de um programa que desvia o fluxo normal de instruc
oes. Em outras palavras,
uma excec
ao e uma condic
ao provocada por uma situac
ao excepcional que requer
uma ac
ao especfica imediata. Muitos tipos de erros podem causar excec
oes:
problemas que variam desde erros serios de hardware, tal como uma falha no
disco rgido, a erros simples de programac
ao, tal como tentar acessar um ndice
inexistente de um vetor, divis
ao por zero, um objeto n
ao inicializado, etc.
Erros causam excec
oes, mas podem existir excec
oes que n
ao s
ao erros. Por
exemplo, numa func
ao que le dados de um arquivo, a chegada ao final do arquivo
e uma condic
ao excepcional que pode ser considerada como excec
ao.
Linguagens como ADA, C++, JAVA e EIFFEL possuem mecanismos pr
oprios
de tratamento de excec
oes que facilitam a vida dos programadores tornando
ainda o c
odigo mais legvel uma vez que separam o c
odigo principal do c
odigo
de tratamento do erro.
Quando uma excec
ao ocorre, ela necessita ser tratada. A unidade ou bloco
de c
odigo que manipula a excec
ao e denominada tratador de excec
ao e a ac
ao
de indicar a ocorrencia de excec
ao e transferir o controle para o tratador de
excec
ao e denominada sinalizac
ao da excec
ao.
Tratadores de excec
ao se comportam como procedimentos chamados implicitamente pela ocorrencia de uma excec
ao. Como tratadores de excec
ao n
ao s
ao
chamados diretamente, eles n
ao possuem nome. Em sua definic
ao costumam
conter vari
aveis locais e bloco de c
odigo de tratamento. J
a as excec
oes devem
possuir nome bem definido para que possam ser identificadas.
Caso o tratador que capturou a excec
ao n
ao tenha conhecimento suficiente
para tratar a excec
ao ele pode lancar a excec
ao para um nvel superior (propagac
ao
da excec
ao). Assim pode-se gerar uma cadeia de propagac
ao ate que um tratador capture a excec
ao ou ate atingir-se o nvel mais alto da hierarquia dos
90
http://www.candidatoreal.com
http://www.candidatoreal.com
91
http://www.candidatoreal.com
Parte III
http://www.candidatoreal.com
Metodologia de
Desenvolvimento
92
http://www.candidatoreal.com
Captulo 7
Ciclo de Vida
http://www.candidatoreal.com
Um modelo de ciclo de vida ou modelo de processo pode ser visto como uma
representac
ao abstrata de um esqueleto de processo, incluindo tipicamente algumas atividades principais, a ordem de precedencia entre elas e, opcionalmente,
artefatos requeridos e produzidos. De maneira geral, um modelo de processo descreve uma filosofia de organizac
ao 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 estrutura que possibilite ao gerente fazer estimativas razo
aveis de recursos,
custos e prazos. Uma vez estabelecido o escopo de software, com os requisitos esbocados, uma proposta de desenvolvimento deve ser elaborada,
isto e, um plano de projeto deve ser elaborado configurando o processo
` medida que o projeto
a ser utilizado no desenvolvimento de software. A
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 planejamento como um todo deve ser revisto e o planejamento da etapa seguinte
deve ser detalhado. O planejamento e o acompanhamento do progresso
fazem parte do processo de gerencia de projeto.
An
alise e Especifica
c
ao de Requisitos Nesta fase, o processo de levantamento de requisitos e intensificado. O escopo deve ser refinado e os requisitos 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
n
ao como faze-lo).
93
http://www.candidatoreal.com
http://www.candidatoreal.com
Opera
c
ao nesta fase, o software e utilizado pelos usu
arios no ambiente de
produc
ao.
Manuten
c
ao Indubitavelmente, o software sofrer
a mudancas ap
os ter sido entregue para o usu
ario. Alterac
oes ocorrer
ao porque erros foram encontrados, 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 manutenc
ao necess
aria, essa fase pode requerer a definic
ao de
um novo processo, onde cada uma das fases precedentes e re-aplicada no
contexto de um software existente ao inves de um novo.
Os modelos de processo, de maneira geral, contemplam as fases An
alise e Especificac
ao de Requisitos, Projeto, Implementac
ao, Testes e Entrega e Implantac
ao.
A escolha de um modelo de processo e fortemente dependente das caractersticas
do projeto. Assim, e importante conhecer alguns modelos de ciclo de vida e em
que situac
oes s
ao aplic
aveis.
94
http://www.candidatoreal.com
7.1
Modelo seq
uencial linear
http://www.candidatoreal.com
7.2
Modelo em V
http://www.candidatoreal.com
http://www.candidatoreal.com
7.3
Modelo de prototipagem
7.4
Modelo RAD
O desenvolvimento r
apido de aplicaca
o (rapid application development, RAD e
um modelo incremental que enfatiza o ciclo de desenvolvimento extremamente
curto. Abrange as seguintes fases:
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 conseguir o fluxo de informac
ao necess
ario para implementar uma func
ao do
neg
ocio. Descric
oes do processamento s
ao criadas.
Gera
c
ao da aplica
c
ao. O RAD considera o uso de tecnicas de quarta gerac
ao.
O processo RAD trabalha para reusar componentes de programas existentes ou criar componentes reus
aveis.
Teste e entrega. Os componentes novos devem ser testados e todas as interfaces 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.
7.5
http://www.candidatoreal.com
7.5.1
http://www.candidatoreal.com
Implementa
c
ao. Codificac
ao e testes.
Transi
c
ao para produto. Ddocumentac
ao, instalac
ao, . . ..
Vantagens do processo incremental e iterativo:
Possibilidade de avaliar mais cedo os riscos e pontos crticos do projeto, e
identificar medidas para os eliminar ou controlar.
Reduc
ao dos riscos envolvendo custos a um u
nico incremento. Se a equipe
que desenvolve o software precisar repetir a iterac
ao, a organizac
ao perde
somente o esforco mal direcionado de uma iterac
ao, n
ao o valor de um
produto inteiro.
Definic
ao de uma arquitetura que melhor possa orientar todo o desenvolvimento.
Disponibilizac
ao natural de um conjunto de regras para melhor controlar
os inevit
aveis pedidos de alterac
oes futuras.
Permite que os v
arios intervenientes possam trabalhar mais efetivamente
pela interac
ao e partilha de comunicac
ao da resultante.
7.5.2
Modelo espiral
http://www.candidatoreal.com
planejamento;
an
alise de risco;
engenharia;
construc
ao e liberac
ao;
avaliac
ao do cliente.
O modelo espiral e, atualmente a abordagem mais realstica para desenvolvimento 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
http://www.candidatoreal.com
7.5.3
As melhores noegociac
oes buscam um resultado ganha-ganha. Isto e, o cliente
ganha obtendo um produto ou sistema que satisfaz `
a maior parte das necessidades do cliente, e o desenvolvedor ganha trabalhando com orcamentos e prazos
de entrega realsticos e possveis de serem cumpridos.
O modelo espiral ganha-ganha define um conjunto de atividades de negociac
ao no comeco de cada passagem, em torno da espiral. Ao inves de uma u
nica
atividade de comunicac
ao com o cliente,as seguintes atividades s
ao definidas:
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
http://www.candidatoreal.com
Objetivos de ciclo de vida (life cycle objectives, LCO). Define um conjunto de objetivos para cada atividade principal.
Arquitetura do ciclo de vida (life cycle architecture, LCA). Estabelece
objetivos que precisam ser satisfeitos, `
a medida que a arquitetura do sistema, e do software, e definida.
Capacidade operacional inicial (initial operational capability, IOC). Representa
um conjunto de objetivos associado com a preparac
ao do software para
instalac
ao e distribuic
ao.
7.5.4
7.6
O desenvolvimento baseado em componentes incorpora caractersticas de tecnologias orientadas a objetos no modelo espiral. A atividade de engenharia
comeca com a identificac
ao de classes candidatas. Se a classe existe, ela ser
a reutilizada. Se a classe n
ao existe, ela ser
a desenvolvida nos moldes do paradigma
de orientac
ao a objetos.
7.7
Modelo de m
etodos formais
http://www.candidatoreal.com
O modelo de metodos formais compreende um conjunto de atividades que determinam uma especificac
ao matem
atica para o software. Uma variante dessa
abordagem e denominada engenharia de software cleanroon (Sala Simpa). Utilizando 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.
7.8
T
ecnicas de quarta gera
c
ao
http://www.candidatoreal.com
Obten
c
ao dos Requisitos. O cliente descreve os requisitos os quais s
ao traduzidos para um prot
otipo operacional. Os principais problemas s
ao:
O cliente pode estar inseguro quanto aos requisitos.
O cliente pode ser incapaz de especificar as informac
oes de um modo
que uma ferramenta 4GL possa realizar.
As 4GLs atuais n
ao s
ao sofisticadas suficientemente para acomodar
a verdadeira linguagem natural.
Estrat
egia de projeto. : Para pequenas aplicac
oes e possvel mover-se do
passo de obtenc
ao 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 ocorrer
ao os mesmos problemas
encontrados quando se usa abordagem convencional (baixa qualidade).
Implementa
c
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 .
http://www.candidatoreal.com
101
http://www.candidatoreal.com
Captulo 8
http://www.candidatoreal.com
An
alise Comparativa de
Processos de
Desenvolvimento
Um processo de desenvolvimento de software pode ser visto como um guia para
o desenvolvimento e deve estabelecer: as atividades a serem realizadas durante
o desenvolvimento de software, sua estrutura e organizac
ao (decomposic
ao e
precedencia de atividades), incluindo a definic
ao de um modelo de ciclo de vida;
os artefatos requeridos e produzidos por cada uma das atividades do processo;
os procedimentos (metodos, tecnicas e normas) a serem adotados na realizac
ao
das atividades; os recursos necess
arios para a realizac
ao das atividades, dentre
eles recursos humanos, recursos de hardware e recursos de software, incluindo
as ferramentas a serem utilizadas para apoiar a aplicac
ao dos procedimentos na
realizac
ao das atividades; e roteiros para a elaborac
ao dos principais documentos
(artefatos) gerados no desenvolvimento. Entre as principais metodologias em
uso no mercado de software atualmente est
ao RUP e XP.
De maneira geral, o ciclo de vida de um software envolve, pelo menos, as
atividades de planejamento, levantamento de requisitos, an
alise, projeto, implementac
ao, testes, implantac
ao, operac
ao e manutenc
ao.
Uma vez que o software e sempre parte de um sistema (ou neg
ocio) maior,
o trabalho comeca pelo estabelecimento dos requisitos para todos os elementos
do sistema e, na seq
uencia, procede-se a alocac
ao para software de algum subconjunto destes requisitos. Esta etapa e a Engenharia de Sistemas e antecede a
todas as demais relacionadas.
8.1
102
http://www.candidatoreal.com
http://www.candidatoreal.com
Concep
c
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 estimativas 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 levantar requisitos do sistema e preliminarmente analis
a-los. Ao termino dessa
fase, s
ao examinados os objetivos do projeto para se decidir sobre a continuidade do desenvolvimento;
Elabora
c
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 est
ao suficientemente est
aveis e que
os riscos est
ao suficientemente mitigados, de modo a se poder prever com
precis
ao os custos e prazos para a conclus
ao do desenvolvimento.
Constru
c
ao durante esta fase, um produto completo e desenvolvido de maneira
iterativa e incremental, para que esteja pronto para a transic
ao `
a comunidade usu
aria.
Transi
c
ao nesta fase, o software e disponibilizado `
a comunidade usu
aria. Ap
os
o produto ter sido colocado em uso, naturalmente surgem novas considerac
oes que v
ao 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
http://www.candidatoreal.com
104
http://www.candidatoreal.com
8.2
XP - Extreme Programming
http://www.candidatoreal.com
8.3
Scrum
105
http://www.candidatoreal.com
prove pr
aticas
ageis de gerenciamento enquanto XP prove pr
aticas integradas
de engenharia de software.
8.4
Crystal
8.5
Metodo
agil e adaptativo
http://www.candidatoreal.com
http://www.candidatoreal.com
8.6
http://www.candidatoreal.com
Mudancas s
ao reversveis utilizando pequenas iterac
oes.
Requisitos s
ao acompanhados em alto nvel.
Testes integrados ao ciclo de vida.
8.7
E
uma
Arcabouco para evitar o caos. O cliente deve estar sempre presente. E
metodologia voltada para o desenvolvimento de aplicac
oes em conjunto (Joint
Application development - JAD).
Possui tres ciclos de fase:
107
http://www.candidatoreal.com
http://www.candidatoreal.com
orientado a miss
Os ciclos duram de 4 a 8 semanas. E
oes (Mission-driven),
pois atividades s
ao justificadas atraves de uma miss
ao, que pode mudar ao longo
baseado em componentes e interativo. Os prazos s
do projeto. E
ao pre-fixados
(time-boxed), pois forca os participantes do projeto a definir severamente decis
oes do projeto. Uma propriedade interessante e a toler
ancia a mudancas
(Change-tolerant). As mudancas s
ao freq
uentes, ent
ao e sempre melhor estar pronto a adapt
a-las do que control
a-las. Isso e feito atraves de constante
avaliac
ao de quais componentes podem mudar.
108
http://www.candidatoreal.com
Captulo 9
Engenharia de Requisitos
9.1
http://www.candidatoreal.com
As descric
oes das func
oes que um sistema deve incorporar e das restric
oes que
devem ser satisfeitas s
ao os requisitos para o sistema. Isto e, os requisitos de
um sistema definem o que o sistema deve fazer e as circunst
ancias sob as quais
deve operar. Em outras palavras, os requisitos definem os servicos que o sistema
deve fornecer e disp
oem sobre as restric
oes `
a operac
ao do mesmo.
Requisitos s
ao, normalmente, classificados em requisitos funcionais e n
ao
funcionais. Requisitos funcionais, como o pr
oprio nome indica, apontam as
func
oes que o sistema deve fornecer e como o sistema deve se comportar em determinadas situac
oes. J
a os requisitos n
ao funcionais descrevem restric
oes sobre
as func
oes oferecidas, tais como restric
oes de tempo, de uso de recursos etc. Alguns requisitos n
ao funcionais dizem respeito ao sistema como um todo e n
ao a
funcionalidade especfica. Dependendo da natureza, os requisitos n
ao funcionais
podem ser classificados de diferentes maneiras, tais como requisitos de desempenho, requisitos de portabilidade, requisitos legais, requisitos de conformidade
etc.
Os processos de engenharia de requisitos variam muito de uma organizac
ao
para outra, mas, de maneira geral, a maioria dos processos de Engenharia de
Requisitos e composta das seguintes atividades:
Levantamento (ou Descoberta ou Elicita
c
ao) de Requisitos Nesta fase,
os usu
arios, clientes e especialistas de domnio s
ao identificados e trabalham junto com os engenheiros de requisitos para descobrir, articular e
entender a organizac
ao como um todo, o domnio da aplicac
ao, os processos de neg
ocio especficos, as necessidades que o software deve atender e
os problemas e deficiencias dos sistemas atuais.
An
alise de Requisitos visa a estabelecer um conjunto acordado de requisitos
consistentes e sem ambig
uidades, que possa ser usado como base para
o desenvolvimento do software. Para tal, diversos tipos de modelos s
ao
construdos.
Documenta
c
ao de Requisitos e a atividade de representar os resultados da
Engenharia de Requisitos em um documento (ou conjunto de documentos),
contendo os requisitos do software.
109
http://www.candidatoreal.com
Verifica
c
ao 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 conter 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 requisitos j
a acordados, manter uma trilha dessas mudancas, gerenciar os relacionamentos 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
9.2.1
T
ecnicas de Levantamento de Requisitos
Observa
c
ao
A observac
ao possibilita um contato pessoal e estreito do pesquisador com o
fen
omeno pesquisado, o que apresenta uma serie de vantagens. As tecnicas de
observac
ao s
ao extremamente u
teis para descobriraspectos novos de um problema. Isto se torna crucial nas situac
oes em que n
ao 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 ambiente ou no comportamento das pessoas observadas. Outra crtica e a de que
este metodo se baseia muito na interpretac
ao pessoal. Alem disso h
a criticas no
sentido de que o grande envolvimento do pesquisador leve a uma vis
ao distorcida
do fen
omeno ou a uma representac
ao parcial da realidade.
http://www.candidatoreal.com
9.2.2
Entrevista
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 correntemente falar sobre esta tarefa, explicando o seu pensamento do processo. Usu
arios
alegam que esse tipo de linguagem pode ser considerada uma verbalizac
ao direta do processo cognitivo especfico. A an
alise de protocolo n
ao e um guia
confi
avel sobre o que as pessoas est
ao pensando, ela est
a sujeita a problemas
de interpretac
oes pelos analistas. A restric
ao em estudar protocolos e que as
pessoas podem produzir linguagens que oferece um perfil de atividade cognitiva aut
onoma. Segundo (Goguen, 1997), mesmo se fosse possvel conseguir um
perfil de atividade cognitiva aut
onoma 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
http://www.candidatoreal.com
9.2.5
PD
9.2.6
QFD
O termo qualidade e definido como um conjunto de meios para produzir economicamente produtos ou servicos, os quais satisfacam os requisitos do cliente.
QFD e um conceito que prove meios de interpretar requisitos do cliente em requisitos tecnicos, apropriados para cada est
agio do desenvolvimento e produc
ao
111
http://www.candidatoreal.com
9.2.7
CRC
9.2.8
Prototipa
c
ao
9.2.9
Cen
arios
http://www.candidatoreal.com
Usu
arios 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 desenvolver 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 sistema. Usu
arios finais simulam suas interac
oes 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
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 desempenho.
5. Quando a reuni
ao a FAST comeca, o primeiro t
opico de discuss
ao e a
necessidade e a justificativa do produto.
6. Cada um apresenta suas listas, crticas e debates s
ao proibidos nesta etapa.
7. Uma lista combinada que elimina objetos redundantes e produzida, mas
n
ao apaga nada.
8. A lista e modificada com uma discuss
ao dirigida pelo facilitador. O produto e a lista de consenso.
9. A equipe e subdividida em equipes menores; cada uma trabalha para
produzir miniespecificaco
es, ou seja, detalham cada objeto da lista de
consenso.
10. As equipes apresentam suas miniespecificac
oes e a lista e modificada novamente atraves de discuss
oes.
11. Cada participante da reuni
ao cria os criterios de validac
ao para os elementos da lista.
12. Uma lista de consenso de criterios de validac
ao e criada.
13. Alguem fica respons
avel em redigir o rascunho completo das especificac
ao.
9.3
An
alise de Requisitos
http://www.candidatoreal.com
A an
alise 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 an
alise de requisitos constr
oi 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
padr
oes sugerem que uma especificac
ao de requisitos deve conter:
Introdu
c
ao. Declara as metas e objetivos do software.
Descri
c
ao 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
c
ao funcional. Uma narrativa de processamento e fornecida para cada
func
ao.
Descri
c
ao comportamental. Examina a operac
ao do software como conseq
uencia
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 implementac
ao
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 informac
oes que suplementa
as especificac
oes.
9.3.1
M
etodos de an
alise
http://www.candidatoreal.com
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
partir dos objetos que existem no domnio do problema, isto e, os sistemas s
ao
modelados como um n
umero de objetos que interagem.
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
a ferramenta de modelagem
entre si por fluxos de dados e dep
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
http://www.candidatoreal.com
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:
Diagrama de Entidades e Relacionamentos.
Diagramas de Fluxos de Dados Preliminar (DFD Particionado por Eventos).
Para cada evento do sistema, deve ser construdo um DFD.
Diagramas de Fluxos de Dados Organizados em Nveis Hier
arquicos.
Representa os processos em nveis hier
arquicos, a partir do diagrama zero.
Diagramas de Transi
c
ao de Estados. Representa o comportamento das entidades e relacionamentos com atributos ao longo do tempo. Ser
a construdo um DTE para cada entidade ou relacionamento com atributo do
DER que possuir comportamento significativo, isto e, possuir mais de um
estado ao longo de seu ciclo de vida.
Dicion
ario de Dados. Descreve os dados representados no DER, nos DFDs
e nos DTEs.
Especifica
c
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).
http://www.candidatoreal.com
9.4
Gerenciamento de Requisitos
116
http://www.candidatoreal.com
http://www.candidatoreal.com
requisitos s
ao as Matrizes de Rastreabibilidade (Traceability Matrix ), que usualmente 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.
117
http://www.candidatoreal.com
Captulo 10
M
etricas
Metricas devem ser coletadas de modo que os indicadores de processo e de
produto possam ser determinados. Indicadores de processo permitem `
a organizac
ao de engenharia de software ter ideia da efic
acia de um processo existente
(o paradigma, as tarefas de engenharia de software, os produtos de trabalho e os
marcos de tempo). J
a os indicadores de projeto permitem ao gerente de projeto
de software:
Avaliar o status de um projeto em andamento.
Acompanhar riscos potenciais.
Descobrir
areas-problemas anter que elas se tornem crticas.
Ajustar fluxo de trabalho ou tarefas.
Avaliar a capacidade da equipe de projeto de controlar a qualidade dos
produtos do trabalho de software.
Em alguns casos, as mesmas metricas podem ser usadas para determinar
indicadores de projeto e de processo.
http://www.candidatoreal.com
10.1
M
etricas de processo e aperfei
coamento de
processo de software
N
os medimos a efic
acia de um processo de software indiretamente. H
a usos
p
ublicos e privados de diferentes tipos de dados do processo. As metricas coletadas 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 p
ublicas 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 coletados e avaliados numa tentativa de sescobrir indicadores, que possam aperfeicoar
o desempenho do processo organizacional.
H
a 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
10.2
M
etricas de projeto
http://www.candidatoreal.com
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 import
ancia. A taxa de produc
ao, representada em termos de p
aginas de
documentac
ao, horas de revis
ao, pontos por func
ao e linhas de c
odigo fonte
` medida que o software evolui, metricas tecnicas s
entregue, e medida. A
ao
coletadas para avaliar a qualidade do projeto.
10.3
Medic
ao de software
As medic
oes s
ao categorizadas em medidas diretas e indiretas. As medidas diretas do processo de engenharia de software incluem custo, linhas de c
odigo
(lines of code, LOC) produzidas, velocidade de execuc
ao, tamanho de mem
oria
e defeitos relatados durante um certo perodo. Medidas indiretas do produto incluem funcionalidade, qualidade, complexidade, eficiencia, confiabilidade, manutenibilidade e muitas outras habilidades.
119
http://www.candidatoreal.com
10.3.1
M
etricas orientadas a tamanho
S
ao metricas baseadas em linhas de c
odigo. Metricas orientadas a tamanho
n
ao s
ao universalmente aceitas como o melhor modo de medir o processo de
desenvolvimento de software. Os opositores argumentam que essas metricas penalizam programas curtos e bem feitos e que medidas de LOC s
ao dependentes
da linguagem de programac
ao. Por outro lado, existem muitos modelos de estimativas 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
http://www.candidatoreal.com
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
grupos de dados tambem s
ao conhecidos como arquivos mestres l
ogicos.
Quantidade de interfaces externas. Todas as interfaces em linguagem de
m
aquina (p. ex., arquivos de dados em um meio de armazenamento), que
s
ao usadas para transmitir informac
ao a outro sistema s
ao contadas.
Uma vez coletados esses dados, um valor de complexidade e associado com
cada contagem. Para contar pontos por func
ao (function points, FP), e usada
a seguinte relac
ao:
P
FP = total da contagem [0, 65 + 0, 01 (Fi )]
Os Fi s
ao valores de ajuste de complexidade, baseados nas respostas das
seguintes perguntas:
120
http://www.candidatoreal.com
Par
ametro de medic
ao
Contagem
Simples
Medio
Complexo
N
umero de arquivos
10
15
10
http://www.candidatoreal.com
14. A aplicac
ao est
a projetada para facilitar modificac
oes e para facilidade de
uso pelo usu
ario?
Cada uma dessas quest
oes e respondida usando uma escala que varia entre 0 a
5. Os valores constantes e os fatores de peso podem ser ajustado empiricamente
para a equac
ao dos pontos de func
ao. S
ao exemplos importantes de medidas de
produtividade, qualidade e outros atributos de software as metricas:
Erros por FP.
Defeitos por FP.
$ por FP.
P
aginas de documentacao por FP.
FP por pessoa-mes.
121
Total
http://www.candidatoreal.com
10.3.3
M
etricas de pontos por funcao estendidas
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 v
ao variar com
cada aplicac
ao diferente e com os clientes que as encomendam. As principais
medidas s
ao mostradas a seguir:
http://www.candidatoreal.com
Corre
c
ao. A medida mais comum e defeitos por KLOC. Para fins de avaliac
ao
de qualidade, defeitos sao contados durante um perodo padr
ao, tipicamente um ano.
Manutenibilidade. Uma metrica utilizada e o tempo medio para modicac
ao
(mean-time-to-change, MTTC), que e o tempo despendido para analisar o
pedido de modificac
ao, projetar uma modificac
ao adequada, implementar
a modificac
ao, test
a-la e distribu-la para todos os usu
arios. Outra metrica
e chamada prejuzo - custo para corrigir defeitos encontrados depois que
o software foi entregue a seus usu
arios finais.
a capacidade do sistema resistir `
Integridade. E
a ataques (tanto acidentais
quanto intencionais). Ameaca e a probabilidade de um ataque ocorrer
a probabilidade de um ataque
dentro de um certo perodo. Seguranca. E
ser repelido.
A
integridade
do
sistema
pode
ser ent
ao definido como inteP
gridade =
(1 ameaca) (1 seguranca).
122
http://www.candidatoreal.com
Utiliza
c
ao. Se e amig
avei ao uso. Pode ser medida em quatro t
opicos: (1)
aptid
ao 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 medic
ao 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 s
ao
aplicadas. A f
ormula 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 s
ao apresentadas nas
subsec
oes a seguir.
10.4.1
http://www.candidatoreal.com
10.4.2
FURPS
A Hewlett-Packard desenvolveu um conjunto de fatores de qualidade que recebeu a sigla FURPS: funcionalidade, utilizac
ao, confiabilidade, desempenho e
suportabilidade. Esses fatores podem ser definidos da seguinte maneira:
Funcionalidade. Avaliada pelo conjunto de caractersticas e capacidades do
programa.
Utiliza
c
ao. Avaliada considerando fatores humanos como estetica, consistencia
e documentac
ao.
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
10.4.3
ISO 9126
http://www.candidatoreal.com
10.5
Estimativas
124
http://www.candidatoreal.com
10.5.1
http://www.candidatoreal.com
Modelo de composi
c
ao de aplica
c
ao. Usado durante os primeiros est
agios
do processo.
Modelo do primeiro est
agio de projeto. Usado ap
os os requisitos terem
sido estabilizados e a arquitetura b
asica do software ter sido estabelecida.
Modelo para o est
agio ap
os a arquitetura. Usado durante a construc
ao do
software.
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
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.
126
http://www.candidatoreal.com
Captulo 11
Testes
Teste e um processo de execuc
ao de um programa com a finalidade de encontrar
um erro. Os teses podem ser planejados e projetados antes que qualquer c
odigo
tenha sido gerado. Os primeiros testes planejados e executados geralmente
` medida que o teste progride, o
concentram-se nos componentes individuais. A
foco se desloca numa tentativa de encontrar erros em conjuntos integrados de
componente e finalmente em todo o sistema.
A testabilidade de software e a facilidade com que o programa pode ser
testado. Existem metricas que podem medir a testabilidade do software.
Quando o software para computador e considerado, teste caixa-preta referese a testes que s
ao conduzidos na interface do software.
Um teste de caixa-branca e baseado num exame rigoroso do detalhe procedimental. Caminhos l
ogicos internos do software s
ao testados, definindo casos de testes que exercitam conjuntos especficos de condic
oes ou ciclos. Teste
caixa-branca completo e impossvel para grandes sistemas de software. Um
teste caixa-branca n
ao deve, no entanto, ser descartado como n
ao pr
atico. Um
n
umero limitado de caminhos l
ogicos importantes pode ser selecionado e exercitado. H
a tres motivos importantes pelos quais se deve usar testes caixa-branca:
Os erros tendem a ocorrer em condic
oes ou controle que est
ao fora da
func
ao principal.
http://www.candidatoreal.com
Freq
uentemente acreditamos que um caminho l
ogico n
ao e prov
acel de ser
executado quando, na realidade, ele pode ser executado em base regular.
prov
E
avel que um erro tipogr
afico exista tanto num caminho l
ogico obscuro quanto num caminho principal.
11.1
Teste de caminho b
asico
Teste de caminho b
asico e uma tecnica de teste caixa-branca proposta inicialmente por Tom McCabe. O metodo de caminho b
asico permite ao projetista
de casos de teste originar uma medida da complexidade l
ogica de um projeto
procedimental e usar essa medida como guia para definir um conjunto b
asico
de caminhos de execuc
ao. Casos de testes derivados para exercitar o conjunto
b
asico executam garantidamente cada comando programa pelo menos uma vez
durante o teste.
127
http://www.candidatoreal.com
http://www.candidatoreal.com
http://www.candidatoreal.com
11.2
11.2.1
Teste de condic
ao
Teste de condic
ao e um metodo de projeto de caso de teste que exercita as
condic
oes l
ogicas contidas em um m
odulo de programa. Uma condic
ao simples
e uma vari
avel booleana ou uma express
ao relacional, possivelmente precedida
por um operador de negac
ao. Uma condic
ao composta e composta de duas ou
mais condic
oes simples, operadores booleanos e parenteses.
Diversas estrategias para teste de condic
ao tem sido propostas. O teste de
desvio e provavelmente a estrategia de teste de condic
ao mais simples. Para
uma condic
ao composta C, os ramos verdadeiro e falso de C e cada condic
ao
simples de C precisam ser executadas pelo menos uma vez.
O teste de domnio requer que tres ou quatro testes sejam derivados para
uma express
ao relacional. Para uma express
ao relacional da forma
E1 < operador relacional > E2
http://www.candidatoreal.com
tres testes s
ao necess
arios 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
condic
ao 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 condic
ao:
C1 : B1 &B2
em que B1 e B2 s
ao vari
aveis booleanas. A restric
ao de condic
ao para C1 e
da forma (D1 , D2 ), em que cada um de D1 e D2 e t ou f . O valor (t, f ) e
uma restric
ao de condic
ao para C1 . A estrategia de teste BRO exige que o
conjunto de restric
oes {(t, t), (t, f ), (f, t)} seja coberto pelas execuc
oes de C1 .
Se C1 est
a incorreto, pelo menos uma das condic
oes do conjunto vai fazer C1
falhar. Outro exemplo: C2 : B1 &(E3 = E4 ) possui o conjunto de restric
oes
{(t, =), (f, =), (t, <), (t, >)}, sendo E3 e E4 express
oes aritmeticas.
129
http://www.candidatoreal.com
11.2.2
O met
odo de teste de fluxo de dados seleciona caminhos de teste de um programa de acordo com a localizac
ao das definic
oes e do uso das vari
aveis no
programa. Para ilustrar a abordagem de teste de fluxo de dados, considere que
cada comando de um programa e atribudo um n
umero de comando u
nico e
que cada func
ao n
ao modifica seus par
ametros ou vari
aveis globais. Para um
comando com S como seu n
umero de comando,
DEF (S) = {X/comando S contem uma definic
ao de X}
U SO(S) = {X/comando S contem um uso de X}
Se o comando S e um comando se ou de ciclo, seu conjunto DEF e vazio e
seu conjunto USO e baseado na condic
ao do comando S. A definic
ao da vari
avel
X no comando S e considerada como estando viva no comando S se existe um
caminho do comando S para o comando S que n
ao contem qualquer outra
definic
ao de X.
Uma cadeia definic
ao-uso (DU) da vari
avel X e da forma [X, S, S ] em que S
e S s
ao n
umeros de comandos, X pertence a DEF (S) e U SO(S ), e a definic
ao
de X no comando S est
a viva no comando S .
A estrategia de teste DU exige que cada cadeia DU seja coberta pelo menos
uma vez. Foi mostrado que o teste DU n
ao cobre todos os ramos em situac
oes
raras. A abordagem de teste de fluxo de dados e efetiva para detecc
ao de erros.
No entanto, os problemas de medida da cobertura e de selec
ao dos caminhos
de teste s
ao mais difceis do que os problemas correspondentes para o teste de
condic
ao.
11.2.3
Teste de ciclo
http://www.candidatoreal.com
http://www.candidatoreal.com
11.3
Teste caixa-preta
Um teste caixa-preta, tambem chamado de teste comportamental, focaliza os requisitos funcionais do software. O teste caixa-preta tende a ser aplicado durante
os u
ltimos est
agios do teste.
11.3.1
M
etodos de teste baseados em grafo
http://www.candidatoreal.com
11.3.2
Particionamento de equival
encia
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 por essa raz
trada. E
ao que a an
alise 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.
11.3.4
Teste de comparac
ao
http://www.candidatoreal.com
11.3.5
Teste de matriz ortogonal pode ser aplicado a problemas nos quais o domnio
de entrada e relativamente pequeno, mas grande demais para acomodar teste
exaustivo. Quando o teste de matriz ortogonal ocorre, e criada uma matriz
ortogonal L9 de casos de teste. A matriz ortogonal L9 tem uma propriedade
de balanceamento (est
ao distribudos uniformemente pelo domnio de teste).
A abordagem de teste de matriz ortogonal nos possibilita obter boa cobertura
de teste com muito menos casos de teste que a estrategia exaustiva. Outras
definic
oes s
ao importantes:
132
http://www.candidatoreal.com
11.4
http://www.candidatoreal.com
133
http://www.candidatoreal.com
11.5
Estrat
egia de teste de software
http://www.candidatoreal.com
Integra
c
ao ascendente (bottom-up). Cada m
odulo no nvel inferior da hierarquia e testado individualmente. A seguir, s
ao testados m
odulos que
chamam os previamentes testados. Neste caso, apenas drivers s
ao necess
arios.
Integra
c
ao descendente (top-down). Comeca de cima para baixo. Apenas
stubs s
ao necess
arios.
Sanduche. Considera uma camada alvo no meio da hierarquia e utiliza abordagens ascendente e descendente.
Big-bang. Testar individualemte cada m
odulo e depois integr
a-los de uma s
o
vez. Neste caso, tanto drivers quanto stubs s
ao necess
arios para cada
m
odulo. Trabalhoso e suicida.
Os testes de sistema incluem diversos tipos de testes, realizados na seguinte
ordem:
Teste funcional. Verifica se o sistema integrado realiza as func
oes especificadas nos requisitos.
134
http://www.candidatoreal.com
http://www.candidatoreal.com
Teste de instala
c
ao. Necess
ario quando os testes de aceitac
ao n
ao s
ao feitos
onde o software ser
a realmente instalado.
135
http://www.candidatoreal.com
Captulo 12
UML
12.1
http://www.candidatoreal.com
inclui-se que especifica que um Caso de Uso toma lugar dentro de outro Caso
de Uso
estende que especifica que em determinadas situac
oes, ou em algum ponto
(chamado um ponto de extens
ao) um caso de uso ser
a estendido por outro.
Generaliza
c
ao especifica que um caso de uso herda as caractersticas do super
caso de uso, e pode sobrepor algumas delas ou adicionar novas de maneira
semelhante a heranca entre classes.
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 n
ao 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 exemplo, 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
c
ao 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.
http://www.candidatoreal.com
12.2
Diagrama de classe
137
http://www.candidatoreal.com
http://www.candidatoreal.com
12.2.1
Associa
c
oes de classe
Classes podem relacionar-se (ser associada com) com outras de diferentes maneiras:
Generaliza
c
ao
EM UML, uma generalizac
ao entre duas classes coloca-as numa hierarquia representando o conceito de heranca de uma classe derivada de uma classe base.
Em UML, Generalizac
oes s
ao representadas por uma linha conectando duas
classes, com uma seta no lado da classe base.
Associa
c
oes
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
c
ao
http://www.candidatoreal.com
Agregac
oes s
ao um tipo especial de associac
ao no qual as duas classes participantes n
ao 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.
Composi
c
ao
Composic
oes s
ao associac
oes que representam agregac
oes 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
12.3
Diagramas de seq
u
encia
Diagramas de seq
uencia mostram a troca de mensagens entre diversos objetos,
numa situac
ao especfica e delimitada no tempo. Diagramas de seq
uencia colocam enfase especial na ordem e nos momentos nos quais mensagens para os
objetos s
ao enviadas.
Em diagramas de seq
uencia, objetos s
ao representados atraves de linhas
verticais tracejadas, com o nome do objeto no topo. O eixo do tempo e tambem
vertical, aumentando para baixo, de modo que as mensagens s
ao enviadas de um
objeto para outro na forma de setas com a operac
ao e os nomes dos par
ametros.
http://www.candidatoreal.com
12.4
Diagramas de colabora
c
ao
Diagramas de colaborac
ao mostram as interac
oes que ocorrem entre os objetos
participantes numa situac
ao especfica. A informac
ao e parecida com a mostrada
140
http://www.candidatoreal.com
http://www.candidatoreal.com
12.5
Diagramas de estado
141
http://www.candidatoreal.com
http://www.candidatoreal.com
142
http://www.candidatoreal.com
12.6
Diagramas de atividade
http://www.candidatoreal.com
143
http://www.candidatoreal.com
12.7
Elementos auxiliares
12.8
Diagramas de componente
Diagramas de componente mostram os componentes do software (sejam componentes de tecnologias como KParts, componentes CORBA ou Java Beans ou
apenas sec
oes do sistema que s
ao claramente distintas) e os artefatos de que eles
s
ao feitos como arquivos de c
odigo fonte, bibliotecas de programac
ao ou tabelas
de bancos de dados relacionais.
Componentes podem possui interfaces (isto e classes abstratas com operac
oes)
que permitem associac
oes entre componentes.
12.9
Diagramas de distribui
c
ao
http://www.candidatoreal.com
Diagramas de distribuic
ao mostram as inst
ancias dos componentes de tempo
de execuc
ao e suas associac
oes. Eles incluem n
os que s
ao recursos fsicos, tipicamente um computador simples. Eles tambem mostram interfaces e objetos
(inst
ancias da classe).
144
http://www.candidatoreal.com
Captulo 13
Ger
encia de Configura
c
ao e
Mudancas
A gest
ao 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;
Auditoria das mudancas nesses itens;
Definic
ao e o gerenciamento das configurac
oes desses itens.
http://www.candidatoreal.com
Os metodos e ferramentas utilizadas para o controle das mudancas e considerado com o Sistema de Gerenciamento de Mudancas de uma organizac
ao. Ele
e contem informac
oes chaves sobre os processos de desenvolvimento, promoc
ao,
implantac
ao e manutenc
ao de produtos da organizac
ao e armazenam a base de
ativos e de artefatos potencialmente reutiliz
aveis resultantes da execuc
ao desses
processos. Sendo assim, ele e parte integrante dos processos gerais de desenvolvimento.
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 simult
anea, a notificac
ao limitada e a existencia de v
arias vers
oes. A seguir, cada
uma delas e descrita em detalhes.
Atualizac
ao simult
anea:
Quando dois ou mais membros da equipe trabalham separadamente no
mesmo artefato, o ultimo membro a fazer mudancas desfaz o trabalho realizado 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 simult
anea,
o desafio e detectar se ocorreram atualizac
oes simultaneamente e resolver
145
http://www.candidatoreal.com
http://www.candidatoreal.com
13.1
As Atividades
http://www.candidatoreal.com
13.2
Artefatos
http://www.candidatoreal.com
13.3
Pap
eis e Responsabilidades
147
http://www.candidatoreal.com
http://www.candidatoreal.com
148
http://www.candidatoreal.com
Captulo 14
CMM - Capability
Maturity Model
CMM, do acr
onimo em ingles de Capability Maturity Model, e uma metodologia de diagn
ostico e avaliac
ao de maturidade do desenvolvimento de softwares
em uma organizac
ao.
Ele descreve os principais elementos de um processo de desenvolvimento de
software. O CMM descreve os est
agios de maturidade atraves dos quais organizac
oes passam enquanto evoluem o seu ciclo de desenvolvimento de software,
atraves de avaliac
ao contnua, identificac
ao de problemas e ac
oes corretivas dentro de uma estrategia de melhoria dos processos. Este caminho de melhoria e
definido por cinco nveis de maturidade:
1. Inicial
2. Repetitivo
3. Definido
4. Gerenciado
http://www.candidatoreal.com
5. Em Otimizac
ao
O CMM fornece `
as organizac
oes orientac
ao sobre como ganhar controle do
processo de desenvolvimento de software e como evoluir para uma cultura de
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 fundac
ao para melhoria contnua. Cada nvel de maturidade possui um
conjunto de pr
aticas 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 organizac
ao 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
porque n
ao haver
a estabilidade na melhoria do processo, justamente pela falta
da base que a sustentaria.
14.1
14.1.1
Nvel 1 - Inicial
14.1.2
Nvel 2 - Repetitivo
http://www.candidatoreal.com
150
http://www.candidatoreal.com
As
areas chaves de processo desse nvel de maturidade s
ao:
Gerencia de Requisitos (RM);
Planejamento de Projeto de Software (SPP);
Acompanhamento e Supervis
ao de Projeto de Software (SPTO);
Gerencia de Subcontratato de Software (SSM);
Garantia da Qualidade de Software (SQA);
Gerencia da Configuracao de Software (SCM).
14.1.3
Nvel 3 - Definido
A organizac
ao possui um conjunto de processos padr
oes, os quais s
ao a base
do nvel 3. Estes est
ao estabelecidos e s
ao melhorados periodicamente. Estes
processos padr
oes s
ao usados para estabelecer uma consistencia dentro da organizac
ao. Projetos estabelecem seus processos definidos pelo conjunto de padr
oes
processuais da organizac
ao.
O gerenciamento da organizac
ao estabelece os objetivos dos processos baseado
no conjunto de padr
oes pre-definidos e garante que estes objetivos sejam encaminhados de forma apropriada.
Uma crtica distinc
ao entre os nveis 2 e 3 e o escopo dos padr
oes, descric
ao
dos processos e procedimentos. No nvel 2, os padr
oes, descric
oes de processos e procedimentos podem ser bem diferentes em cada inst
ancia especfica do
processo (por exemplo, em um projeto particular). No nvel 3, os padr
oes, descric
oes de processo e procedimentos para o projeto s
ao guiados pelo conjunto
padr
ao de processos da organizac
ao.
As
areas chaves de processo desse nvel de maturidade s
ao:
Foco no Processo da Organizac
ao (OPF);
Definic
ao do Processo da Organizac
ao (OPD);
http://www.candidatoreal.com
151
http://www.candidatoreal.com
14.1.4
Nvel 4 - Gerenciado
Utilizando metricas precisas, o gerenciamento pode efetivamente controlar os esforcos para desenvolvimento de software. Em particular, o gerenciamento pode
identificar caminhos para ajustar e adaptar o processo para projetos particulares sem perda de metricas de qualidade ou desvios das especificac
oes.
Organizac
oes neste nvel conseguem metas qualitativas para o processo de
desenvolvimento de software e de manutenc
ao.
Subprocessos s
ao selecionados conforme a import
ancia na performance total
do processo. Esses subprocessos selecionados s
ao controlados usando tecnicas
estatsticas e qualitativas.
Uma crtica distinc
ao entre o nvel de maturidade 3 e 4 e a previsibilidade
do desempenho do processo. No nvel 4, o desempenho do processo e controlado
usando tecnicas estatsticas e qualitativas, e e previsvel qualitativamente. No
nvel 3, os processos s
ao somente previsveis qualitativamente.
As
areas chaves de processo desse nvel de maturidade s
ao:
Gerencia Quantitativa do Processo (QPM);
Gerencia de Qualidade de Software (SQM).
14.1.5
Nvel 5 - Otimizado
O nvel de maturidade 5 foca no contnuo aumento do desempenho dos processos atraves de melhoras de inovac
ao tecnol
ogica e incremental. Objetivos de
melhoria quantitativa dos processos para a organizac
ao s
ao estabelecidos, continuamente revisados, refletindo os objetivos da organizac
ao, e usando criterios
de gerencia de processos.
Os efeitos da melhora da revis
ao dos processos s
ao medidas e acompanhadas utilizando-se de processos de melhoria de qualidade. Ambos, os processo
definidos e o conjunto de processos padr
oes da organizac
ao s
ao alvos de melhoria
de metricas.
http://www.candidatoreal.com
As
areas chaves de processo desse nvel de maturidade s
ao:
Prevenc
ao de Defeitos (DP);
Gerencia da Mudanca Tecnol
ogica (TCM);
Gerencia da Mudanca do Processo (PCM).
14.2
As
areas-chave de processo do Nvel 2 est
ao focadas nas quest
oes do projeto de
software relacionadas ao estabelecimento de controles b
asicos de gerenciamento
do projeto, e tem os seguintes objetivos:
152
http://www.candidatoreal.com
Gerencia de Requisitos `
a Estabelecer um entendimento comum entre o
cliente e os requisitos (desejos, necessidades) do cliente que ser
ao atendidos
pela soluc
ao a ser desenvolvida;
Planejamento de Projeto de Software `
a Estabelecer planos coerentes para
realizar a engenharia de software e o gerenciamento do projeto;
Acompanhamento e Supervis
ao de Projeto de Software `
a Estabelecer uma
adequada visibilidade do andamento (progresso) do software, de forma que
o gerenciamento possa tomar ac
oes corretivas se o planejamento original
n
ao estiver sendo seguido;
Gerencia de Subcontratato de Software `
a Selecionar fornecedores qualificados e gerenci
a-los de forma eficiente;
Garantia da Qualidade de Software `
a Fornecer ao gerenciamento visibilidade do processo em uso e dos produtos em construc
ao;
Gerencia da Configuracao de Software `
a Estabelecer e manter a integridade
dos produtos durante todo o ciclo de vida do software.
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 efetivamente institucionaliza os processos de engenharia de software e de gerenciamento de todos os projetos.
As
areas-chave do Nvel 4 est
ao focadas no estabelecimento quantitativo
tanto do processo de software, quanto dos produtos em construc
ao.
http://www.candidatoreal.com
As
areas-chave do Nvel 5 cobrem quest
oes que tanto a organizac
ao, quanto
os projetos devem considerar para implementar melhorias no processo de software que sejam contnuas e mensur
aveis.
14.3
Efeitos da evolu
c
ao do nvel de maturidade
A evoluc
ao no nvel de maturidade causa efeitos nas pessoas, nas tecnologias e
nas pr
aticas de medidas. A seguir s
ao apresentados esses efeitos em cada nvel
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 gerenciados. 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
Nvel 1: Coleta de dados e feita de maneira ad hoc;
Nvel 2: Coleta de dados de atividades de planejamento e acompanhamento e feita de maneira sistem
atica;
http://www.candidatoreal.com
154
http://www.candidatoreal.com
Parte IV
http://www.candidatoreal.com
Linguagem de Programa
c
ao
Java
155
http://www.candidatoreal.com
Captulo 15
Conceitos B
asicos de Java
15.1
Pacotes
http://www.candidatoreal.com
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;
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
15.2
Modificadores de Acesso
Os modificadores de acesso s
ao keywords adicionadas ao c
odigo para determinar
se atributos, metodos ou classes poderam ser acessados a partir de outras classes.
Os modificadores de acesso presentes na linguagem Java s
ao: public, private,
protected e package-private (implcito quando n
ao e usado nenhum modificador
na declarac
ao da classe, atributo ou metodo).
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
poder
a ser acessada por classes do mesmo pacote.
Os metodos e atributos aceitam outros modificadores alem do public. O
modificador private d
a acesso somente dentro da classe, enquanto o modificador
protected permite acesso dentro do pacote e `
as subclasses.
Assim como nas classes, caso nenhum modificador seja declarado, fica implcito
o modificador package-private.
http://www.candidatoreal.com
Pacote
sim
n
ao
sim
sim
Subclasse
sim
n
ao
sim
n
ao
Todos
sim
n
ao
n
ao
n
ao
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
http://www.candidatoreal.com
15.4
Operadores
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 Divis
ao
Operadores Un
arios
+
++
Operador
Operador
Operador
Operador
Operador
un
ario mais
un
ario menos; Inverte o sinal de uma vari
avel
de Incremento; Incrementa um valor de 1
de Decremento; Decrementa o valor de 1
L
ogico de complemento; Inverte o valor de um boolean
Operadores de Comparac
ao
==
!=
>
>=
<
<=
instanceof
Igual
Diferente
Maior
Maior ou Igual
Menor
Menor ou Igual
Compara um objeto a um tipo especfico
Operadores Condicionais
&&
||
?:
AND Condicional
OR Condicional
Tern
ario (Forma curta para if-then-else)
http://www.candidatoreal.com
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 posi
c~
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 opera
c~
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);
Em java uma sentenca (statements) e definida como uma unidade completa
de execuc
ao. Os seguintes tipos de express
oes podem se tornar sentencas quando
terminadas com um ponto e vrgula: (i) Express
oes de Atribuic
ao; (ii) Express
oes com ++ ou ; (iii) Chamada de metodos e (iv) Express
oes de Criac
ao
de objetos.
// Statement de atribui
c~
ao
aValue = 8933.234;
// Statement de incremento
aValue++;
// Statement de chamada de m
etodo
System.out.println("Hello World!");
// Statement de cria
c~
ao de objeto
Bicycle myBike = new Bicycle();
Essas s
ao as chamadas statements de express
ao. Existem ainda as statements de declarac
ao de vari
avel e de controle de fluxo.
http://www.candidatoreal.com
http://www.candidatoreal.com
15.6
As statements de um c
odigo geralmente s
ao executadas na medida na ordem em
aparecem. No entanto, os comandos de controle de fluxo podem ser utilizadas
ara interromper o fluxo de execuc
ao empregando decis
oes, looping e desvios,
permitindo que ao programa executar condicionalmente blocos de c
odigo particulares. Os principais comandos de controle de fluxo da linguagem Java s
ao
mostrados a seguir.
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) {
http://www.candidatoreal.com
http://www.candidatoreal.com
}
}
Switch
class SwitchDemo {
public static void main(String[] args) {
http://www.candidatoreal.com
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;
}
//O resultado ser
a 29
System.out.println("Number of Days = " + numDays);
}
}
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
http://www.candidatoreal.com
//Exemplo 2
for ( ; ; ) { //infinite loop
// c
odigo
}
//Exemplo 3
class EnhancedForDemo {
public static void main(String[] args){
int[] numbers = {1,2,3,4,5,6,7,8,9,10};
for (int item : numbers) {
System.out.println("Count is: " + item);
}
}
}
Break
//Exemplo 1
class BreakDemo {
163
http://www.candidatoreal.com
http://www.candidatoreal.com
http://www.candidatoreal.com
}
}
}
Continue
//Exemplo 1
class ContinueDemo {
public static void main(String[] args) {
String searchMe = "peter piper picked a peck of pickled peppers";
int max = searchMe.length();
int numPs = 0;
for (int i = 0; i < max; i++) {
//interested only in ps
if (searchMe.charAt(i) != p){
//Vai para o pr
oximo loop sem executar
//o restante do c
odigo do bloco for
continue;
}
//process ps
numPs++;
}
System.out.println("Found " + numPs + " ps in the string.");
}
}
//Exemplo 2
class ContinueWithLabelDemo {
public static void main(String[] args) {
String searchMe = "Look for a substring in me";
String substring = "sub";
boolean foundIt = false;
http://www.candidatoreal.com
http://www.candidatoreal.com
}
}
foundIt = true;
break test;
}
System.out.println(foundIt ? "Found it" : "Didnt find it");
}
}
15.7
Classes Aninhadas
http://www.candidatoreal.com
Classes An
onimas
As classes aninhadas s
ao os tipos mais simples de classes internas. Uma
classe e definida dentro da outra como se fosse um membro static. Elas permitem
definir acesso privado ou protegido e agrupa classes logicamente relacionadas.
S
ao referenciadas via Externa.Interna, como se fosse um atributo est
atico. A
seguir um exemplo de classe aninhada e de como referenci
a-la:
//Classe externa
class Par {
private Chave chave;
166
http://www.candidatoreal.com
http://www.candidatoreal.com
15.8
Tipos Enumerados
Tipos enumerados s
ao aqueles que possuem um conjunto finitos de valores que
as vari
aveis podem assumir. Por exemplo: estac
oes do ano, naipes ou cartas do
baralho, planetas do sistema solar etc. Originalmente, a forma padr
ao utilizada
para representar tipos enumerados era o chamado int Enum Pattern (tipos enumerados baseados em inteiros).
// int
public
public
public
public
Enum Pattern
static final
static final
static final
static final
int
int
int
int
SEASON_WINTER
SEASON_SPRING
SEASON_SUMMER
SEASON_FALL
167
=
=
=
=
0;
1;
2;
3;
http://www.candidatoreal.com
http://www.candidatoreal.com
15.9
Anotac
oes
Anotac
oes (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
trabalho. Alguns exemplos do uso de anotac
oes s
ao:
Informac
oes para o compilador: Anotac
oes podem ser utilizadas pelo compilador para detectar erros ou sumprimir mensagens de warning;
Processamento em tempo de Compilac
ao ou Deploy: Ferramentas auxiliares 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 programa utilizar um uma classe, um metodo ou um atributo marcado como
@Deprecated;
@Override: Informa ao compilador que o elemento marcado deve sobrescrever o elemento de mesmo nome declarado na superclasse. Embora
a anotac
ao n
ao seja obrigat
orio para sobrescrever um metodo, utiliz
a-la
ajuda a prevenir erros;
@SuppressWarnings: Indica ao compilador situac
oes em que os warnings
devem ser suprimidos;
A seguir alguns exemplos de utilizac
ao das anotac
oes descritas.
//Marca o m
etodo como deprecated
@Deprecated
static void deprecatedMethod() { //c
odigo }
//Indica que o m
etodo ir
a sobrescrever o m
etodo da superclasse
@Override
int overriddenMethod() { //c
odigo }
//Indica ao compilador para suprimir warning gerados pelo uso
//de m
etodos deprecated
@SuppressWarnings("deprecation")
void useDeprecatedMethod() {
//O uso de um m
etodo deprecated geraria um warning
objectOne.deprecatedMethod();
}
http://www.candidatoreal.com
15.10
Gen
ericos
Os genericos s
ao um recurso introduzido a partir Java 5 e permite ao programador escrever c
odigo abstraindo tipos de dados. Os genericos s
ao tipicamente
utilizados em conjunto com interfaces ex: List) que herdam da interface Collection ou de classes que a implementam (ex: AbstractList, ArrayList, LinkedList,
Vector)
Quando um elemento e retirado de uma Collection e necess
ario realizar um
cast para o tipo do elemento armazenado na Collection. Alem de incoveniente,
isso e inseguro. O compilador n
ao checa se o cast realizado e do mesmo tipo do
armazenado na colec
ao. Dessa forma, o cast pode falhar em tempo de execuc
ao.
169
http://www.candidatoreal.com
//Cria
c~
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();
Os genericos proveem uma forma de comunicar ao compilador o tipo armazenado na colec
ao, permitindo que a checagem seja feita em tempo de compilac
ao. Alem de evitar erros em tempo de execuc
ao, a utilizac
ao de genericos
elimina a necessidade de casts.
//Cria
c~
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();
Os tipos genericos tem como grande vantagem o aproveitamento de c
odigo.
A interface Collection e um exemplo disso. As operac
oes de adicionar ou remover um novo elemento, determinar o tamanho, verificar se a collection est
a
vazia ou recuperar o ndice de um determinado elemento, por exemplo, certamente s
ao aplic
aveis a collections do tipo Integer, String ou de outra classe
qualquer. Exemplos de interfaces genericas s
ao List e Iterator. A seguir, alguns
trechos dessas duas interfaces como definidas no pacote java.util.
http://www.candidatoreal.com
http://www.candidatoreal.com
15.11
Reflex
ao
import java.lang.reflect.*;
public class Classe1 {
http://www.candidatoreal.com
171
http://www.candidatoreal.com
System.out.println("exce
c~
ao #" + j + " " + evec[j]);
//Recupera o tipo de retorno do m
etodo
System.out.println("tipo de retorno = " + m.getReturnType());
}
}
catch (Throwable e) {
System.err.println(e);
}
}
}
//Sa
da da execu
c~
ao da classe Classe1:
//Lista de m
etodos da Classe1 com todas as suas propriedades
http://www.candidatoreal.com
------------------------------------nome = funcao1
------------------------------------membro de:class Classe1
modificador:private
par^
ametro #0 class java.lang.Object
par^
ametro #1 int
exce
c~
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
172
http://www.candidatoreal.com
Captulo 16
Classes Essenciais
16.1
Uma excec
ao e um evento que ocorre durante a execuc
ao de um programa interrompendo seu fluxo normal de execuc
ao.
Quando um erro ocorre dentro de um metodo, o metodo cria um objeto
chamado exception e o entrega ao controle de execuc
ao (runtime system), que
contem informac
oes sobre o erro, incluindo seu tipo e o estado do programa
quando o erro ocorreu. O ato de criar um objeto exception e a entreg
a-lo ao
runtime system e chamado lancamento de uma excec
ao (throwing an exception).
http://www.candidatoreal.com
16.1.1
Exce
c
oes tpicas
Em Java excec
oes 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 (ArrayIndexOutOfBoundsException);
Problemas em operac
oes aritmeticas, como overflows e divis
oes por zero
(ArithmeticException);
173
http://www.candidatoreal.com
http://www.candidatoreal.com
http://www.candidatoreal.com
16.1.2
Capturando Excec
oes
http://www.candidatoreal.com
175
http://www.candidatoreal.com
}finally{
// C
odigo que deve ser executado em qualquer caso
}
Quando ocorre uma excec
ao, os blocos catch s
ao examinados sucessivamente
ate que o argumento corresponda ao tipo da excec
ao. No exemplo acima, se
ExceptionType2 for uma subclasse de ExceptionType1, o segundo bloco catch
nunca ser
a alcancado. Neste caso, deve-se inverter a ordem dos blocos catch.
O bloco finally e opcional, e normalmente e usado para realizar ac
oes que
independem da ocorrencia de uma excec
ao em um dado bloco de comandos.
Por exemplo, em um sistema que escreve informac
oes em um banco de dados,
e necess
ario fechar a conex
ao com este u
ltimo ao final da operac
ao de escrita,
independentemente da operac
ao ter sido bem-sucedida ou n
ao. Tendo isso em
vista, o comando respons
avel por fechar a conex
ao deve ficar dentro de um bloco
finally.
16.2
Threads e Concorr
encia
Em programac
ao concorrente existem duas unidades b
asicas de execuc
ao: processos e threads. Em java, os recrsos para programac
ao concorrente s
ao mais
voltados para o uso de threads.
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, incluindo mem
oria e arquivos abertos, favorecendo a eficiencia da comunicac
ao,
porem a tornando potencialmente problem
atica.
http://www.candidatoreal.com
Cada aplicac
ao possui pelo menos uma thread - ou v
arias, se considerarmos
a threads de sistema. Do ponto de vista do programador, uma aplicac
ao comeca
com apenas uma u
nica thread chamada main, e essa possui a habilidade para
criar novas threads.
16.2.1
http://www.candidatoreal.com
16.2.2
Pausando a execuc
ao com sleep
http://www.candidatoreal.com
177
http://www.candidatoreal.com
16.2.3
Interrup
c
oes
Uma interrupc
ao indica que a thread deve parar o que est
a fazendo e comecar
o programador quem deve definir como a thread deve
a fazer outra coisa. E
responder a uma interrupc
ao. O uso mais comum de interrupc
oes e finalizar a
execuc
ao de uma thread.
for (int i = 0; i < importantInfo.length; i++) {
//Pause for 4 seconds
try {
Thread.sleep(4000);
} catch (InterruptedException e) {
//Weve been interrupted: no more messages.
return;
}
//Print a message
System.out.println(importantInfo[i]);
}
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 c
odigo java para essa situac
ao teria a seguinte estrutura:
public static void main(String args[]) {
System.out.println("Thread main iniciada");
//C
odigo inicial da thread main
http://www.candidatoreal.com
//Threads auxiliares A, B e C
Thread a = new thread_tarefaA();
Thread b = new thread_tarefaB();
Thread c = new thread_tarefaC();
//Iniciando as threads auxiliares
a.start();
b.start();
c.start();
//Aguardando as threads auxiliares terminarem
a.join();
b.join();
c.join();
//C
odigo restante da thread main
178
http://www.candidatoreal.com
16.2.5
Sincroniza
c
ao
//Interfer^
encia entre threads
//Tr^
es threads que atuam sobre o mesmo dado
//N~
ao
e poss
vel garantir a ordem de execu
c~
ao das opera
c~
oes
//pois em princ
pio, as threads s~
ao iniciadas ao mesmo tempo.
int a = 0;
thread_incrementa_a.start();
thread_decrementa_a.start();
thread_imprime_a.start();
http://www.candidatoreal.com
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;}
}
Ao contr
ario dos metodos sincronizados, as statements sincronizadas devem
especficar para qual objeto dever
a ser obtido o lock. Essa tecnica pode ser u
til
quando e implementar concorrencia com uma granularidade mais fina. Uma
exemplo de c
odigo para criac
ao de statements sincronizadas e mostrado abaixo:
public class MsLunch {
private
private
private
private
long c1 = 0;
long c2 = 0;
Object lock1 = new Object();
Object lock2 = new Object();
http://www.candidatoreal.com
16.2.6
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 interface executora.
Geralmente, as interfaces executoras s
ao criadas utilizando as chamadas
ThreadPools, que consistem de um conjunto de threads (worker threads) respons
aveis pela execuc
ao das tarefas. Quando o metodo execute e chamado
sobre o objeto r, uma worker thread e alocada para rodar a tarefa definida em
r. Caso n
ao exista nenhuma worker thread disponvel no momento, r e colocada
em uma fila de espera ate que uma worker thread seja liberada.
Usando pools de threads e possvel minimizar o overhead de criac
ao de
threads e otimizar o gerenciamento de mem
oria, uma vez que e possvel definir o
n
umero m
aximo de threads no pool de acordo com as necessidades da aplicac
ao
e quantidade de recursos do sistema.
16.3
Streams e Serializa
c
ao
16.3.1
I/O Streams
http://www.candidatoreal.com
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
A plataforma java armazena os valores dos caracteres utilizando a convec
ao
Unicode. As operac
oes de com streams de caracteres automaticamente convertem do formato Unicode para o formato local.
//Exemplo 1: Stream de Caracteres
//Copia o arquivo xanadu.txt para characteroutput.txt caracter e caracter
http://www.candidatoreal.com
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class CopyCharacters {
public static void main(String[] args) throws IOException {
FileReader inputStream = null;
FileWriter outputStream = null;
try {
inputStream = new FileReader("xanadu.txt");
outputStream = new FileWriter("characteroutput.txt");
int c;
while ((c = inputStream.read()) != -1) {
outputStream.write(c);
}
} finally {
if (inputStream != null) {inputStream.close();}
if (outputStream != null) {outputStream.close();}
}
}
}
No entanto, I/O de caracteres geralmente ocorrem linha a linha. Uma linha
e um conjunto de caracteres terminada por um caracter especial de fim de linha.
O c
odigo a seguir executa a mesma tarefa do exemplo 1, porem copia o arquivo
linha a linha e utiliza estrategias de buffering.
//Exemplo 2: Stream de Caracteres linha a linha
//Copia o arquivo xanadu.txt para characteroutput.txt linha a linha
import java.io.FileReader;
182
http://www.candidatoreal.com
import
import
import
import
java.io.FileWriter;
java.io.BufferedReader;
java.io.PrintWriter;
java.io.IOException;
http://www.candidatoreal.com
16.3.2
Serializa
c
ao - Streams de Objetos
http://www.candidatoreal.com
implementados nas classes de stream para objetos. A seguir, um exemplo simples para serializac
ao de objetos em Java.
import java.io.*;
public class Pessoa implements Serializable{
public String nome = "Maria";
public int idade = 30;
public String sexo = "feminino";
public Pessoa (String p_nome, int p_idade, String p_sexo){
nome = p_nome;
idade = p_idade;
sexo = p_sexo;
}
public static void main (String [] args){
Pessoa p = new Pessoa("Maria",10,"feminino");
try {
// Serializa o objeto para um arquivo
ObjectOutput out = new ObjectOutputStream(
new FileOutputStream("pessoa.ser")
);
out.writeObject(p);
out.close();
http://www.candidatoreal.com
http://www.candidatoreal.com
}
Embora as classes ObjectInputStream e ObjectOutputStream sejam suficientes para serializar e desserializar a maioria dos objetos no Java, ela possui
o incoveniente de utilizar arquivos bin
arios, o que dificulta a leitura direta por
um usu
ario ou por outras aplicac
oes (escritas em outras linguagens, por exemplo). Muitas aplicac
oes realiz
ao serializac
ao com arquivos XML, o que permite
contornar os problemas da legibilidade e integrac
ao mais facilmente.
Existem in
umeros pacotes para serializac
ao de objetos em arquivos XML.
Quando se est
a trabalhando com java beans, por exemplo, duas classes muito
utilizadas para serializac
ao de objetos em XML s
ao java.beans.XMLEncoder e
java.beans.XMLDecoder. A seguir, um trecho de c
odigo exemplificando o uso
dessas classes.
http://www.candidatoreal.com
16.4
Classes e Opera
c
oes de I/O
16.5
185
http://www.candidatoreal.com
#Esta
e uma linha de coment
ario
#Mon Jun 11 22:37:16 BRT 2007
app.diretorio=/zaz/traz/bin
app.usuario=camatchones
app.mododeoperacao=producao
E a seguir e mostrado um exemplo de c
odigo Java para manipulac
ao de um
arquivo de propriedades.
import java.util.Properties;
import java.io.*;
public class Exemplo {
public Exemplo (){}
public static void main (String [] args){
try{
// Cria e le os valores padrao para um objeto Propertie
Properties defaultProps = new Properties();
FileInputStream in = new FileInputStream("exemplo.properties");
defaultProps.load(in);
in.close();
// Utilizacao as propriedades quando precisarmos
String diretorio = defaultProps.getProperty("app.diretorio");
String usuario = defaultProps.getProperty("app.usuario");
// Modificamos/Criando valores das propriedades
if (usuario.equals("joao")){
defaultProps.setProperty("app.dataDir", "/home/joao");
defaultProps.setProperty("app.nova_configuracao", "12345");
}
http://www.candidatoreal.com
186
http://www.candidatoreal.com
http://www.candidatoreal.com
vem ganahando popularidade, no entanto, os arquivos de propriedades continuam ser uma forma simples e eficaz de gerenciar configuracoes simples.
187
http://www.candidatoreal.com
Captulo 17
Colec
oes
Uma colec
ao e simplesmente um grupo de objetos em uma u
nica unidade. As
colec
oes s
ao usadas para armazenar, recuperar, manipular e comunicar dados
agregados. Tipicamente, representam itens de dados que d
ao forma a um grupo
natural, tal como uma m
ao do poker (uma colec
ao dos cart
oes) e uma pasta de
correspondencia (uma colec
ao das letras).
Uma framework de colec
oes e uma arquitetura unificada para representac
ao e
manipulac
ao das colec
oes, permitindo que elas sejam manipuladas independentemente dos detalhes de sua implementac
ao. Todos os frameworks de colec
oes
contem:
Interfaces: Estes s
ao os tipos de dados abstratos que representam as
colec
oes. As interfaces permitem que as colec
oes sejam manipuladas independentemente dos detalhes de sua representac
ao. Em linguagem orientadas `
a objeto as interfaces d
ao forma geralmente a uma hierarquia;
Implementac
oes: Estas s
ao as implementac
oes concretas das relac
oes da
colec
ao. Essencialmente, s
ao estruturas de dados reus
aveis;
http://www.candidatoreal.com
Algoritmos: Estes s
ao os metodos que executam computac
oes u
teis, tais
como procurar e ordenar objetos de uma determinada colec
ao. Os algoritmos s
ao polim
orficos, isto e, o mesmo metodo pode ser usado em diferentes
implementac
oes.
As principais vantagens do framework de colec
oes (collection framework)
s
ao:
Reduc
ao do esforco de programac
ao, fornecendo estruturas de dados e
algoritmos u
teis, para que n
ao seja necess
ario reescreve-los;
Aumento da performance: fornecendo implementac
oes de alta performance. Como as v
arias implementac
oes de cada interface s
ao substituveis,
os programas podem ser facilmente refinados trocando-se as implementac
oes;
Interoperabilidade entre APIs n
ao relacionadas, estabelecendo uma linguagem comum para passagem de colec
oes;
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 necessidade de se criar APIs de colec
oes pr
oprias;
Promover o re
uso de software, fornecendo uma interface padr
ao para
colec
oes e algoritmos para manipul
a-los.
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;
Somente pode conter elementos de um mesmo tipo;
Para inserir ou retirar um elemento e necess
ario modificar a posic
ao de
outros elementos.
17.1
Interface Collection
http://www.candidatoreal.com
http://www.candidatoreal.com
//optional
//optional
//optional
// Array operations
Object[] toArray();
<T> T[] toArray(T[] a);
}
17.2
Interface Set
http://www.candidatoreal.com
// 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
boolean retainAll(Collection<?> c);
//optional
void clear();
//optional
// 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 permanecer
a constante com o tempo (uma modificac
ao da colec
ao pode alterar 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 adiciona 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 n
ao 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
modificac
ao deste tipo de colec
ao acarreta em uma leve queda na performance em relac
ao `
a HashSet, mas ainda e mais r
apida que uma TreeSet,
que utiliza comparac
oes para determinar a ordem dos elementos.
TreeSet: Implementac
ao de SortedSet. SortedSet e uma interface que estende Set, adicionando a sem
antica de ordenac
ao natural dos elementos.
A posic
ao dos elementos no percorrimento da colec
ao e determinado pelo
retorno do metodo compareTo(o), caso os elementos implementem a interface Comparable, ou do metodo compare(o1,o2) de um objeto auxiliar que
implemente a interface Comparator. A TreeSet utiliza internamente uma
TreeMap, que por sua vez utiliza o algoritmo Red-Black para a ordenac
ao
da
arvore de elementos. Isto garante a ordenac
ao ascendente da colec
ao, de
acordo com a ordem natural dos elementos, definida pela implementac
ao
da interface Comparable ou Comparator. Use esta classe quando precisar
de um conjunto (de elementos u
nicos) que deve estar sempre ordenado,
mesmo sofrendo modificac
oes.
A seguir s
ao mostrados alguns exemplos:
import java.util.*;
http://www.candidatoreal.com
http://www.candidatoreal.com
Duplicate detected: i
Duplicate detected: i
4 distinct words: [i, left, saw, came]
O tipo de implementac
ao Set no exemplo anterior e HashSet, que como dito
anteriormente n
ao faz nenhuma garantia a respeito da ordem dos elementos no
Set. Caso seja necess
ario imprimir a lista em ordem alfabetica basta mudar o
tipo de implementac
ao de HashSet para TreeSet. A nova sada do programa
anterior para TreeSet seria a seguinte:
Rodando o programa:
prompt#> java FindDups i came i saw i left
A sa
da produzida ser
a:
Duplicate detected: i
Duplicate detected: i
4 distinct words: [came, i, left, saw]
Caso fosse utilizado uma LinkedHashSet a sada seria a seguinte:
Rodando o programa:
prompt#> java FindDups i came i saw i left
A sa
da produzida ser
a:
Duplicate detected: i
Duplicate detected: i
http://www.candidatoreal.com
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);
}
}
Executando o c
odigo anterior com os mesmos argumentos dos programas
anteriores (i came i saw i left) a sada deste programa seria:
Unique words:
17.3
Interface List
http://www.candidatoreal.com
//optional
//optional
//optional
//optional
//optional
// 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:
ArrayList: Implementac
ao de List que utiliza internamente um array de
objetos. Em uma inserc
ao onde o tamanho do array interno n
ao e suficiente, um novo array e alocado (de tamanho igual a 1.5 vezes o array original), e todo o conte
udo e copiado para o novo array. Em uma
inserc
ao no meio da lista o conte
udo posterior ao ndice e deslocado em
uma posic
ao. Esta implementac
ao e a recomendada quando o tamanho
da lista e previsvel (evitando realocac
oes) e as operac
oes de inserc
ao e
remoc
ao s
ao feitas, em sua maioria, no fim da lista (evitando deslocamentos), ou quando a lista e mais lida do que modificada (otimizado para
leitura aleat
oria).
LinkedList: Implementac
ao de List que utiliza internamente uma lista
encadeada. A localizac
ao de um elemento na n-esima posic
ao e feita
percorrendo-se a lista da ponta mais pr
oxima ate o ndice desejado. A
inserc
ao e feita pela adic
ao de novos n
os, entre os n
os adjacentes, sendo
que antes e necess
aria a localizac
ao desta posic
ao. Esta implementac
ao e
recomendada quando as modificac
oes s
ao feitas em sua maioria tanto no
incio quanto no final da lista, e o percorrimento e feito de forma seq
uencial (via Iterator) ou nas extremidades, e n
ao aleat
oria (por ndices). Um
exemplo de uso e como uma fila (FIFO - First-In-First-Out), onde os elementos s
ao retirados da lista na mesma seq
uencia em que s
ao adicionados.
A seguir s
ao mostrados alguns exemplos:
import java.util.*;
http://www.candidatoreal.com
http://www.candidatoreal.com
17.4
Interface Map
http://www.candidatoreal.com
// Bulk operations
void putAll(Map<? extends K, ? extends V> m);
void clear();
// Collection Views
public Set<K> keySet();
public Collection<V> values();
public Set<Map.Entry<K,V>> entrySet();
// Interface for entrySet elements
public interface Entry {
K getKey();
V getValue();
V setValue(V value);
}
195
http://www.candidatoreal.com
}
Existem 3 implementac
oes da interface Map:
HashMap: Implementac
ao de Map que utiliza uma tabela hash para armazenar seus elementos. O tempo de acesso aos elementos (leitura e modificac
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.
TreeMap: Implementacao de SortedMap. SortedMap e uma Interface que
estende Map, adicionando a sem
antica de ordenac
ao natural dos elementos, an
alogo `
a SortedSet. Tambem adiciona operac
oes de partic
ao da
colec
ao, com os metodos headMap(k) - que retorna um SortedMap com
os elementos de chaves anteriores a k -, subMap(k1,k2) - que retorna um
SortedMap com os elementos de chaves compreendidas entre k1 e k2 - e
tailMap(k) - que retorna um SortedMap com os elementos de chaves posteriores a k. A TreeMap utiliza o algoritmo Red-Black para a ordenac
ao da
arvore de elementos. Isto garante a ordenac
ao ascendente da colec
ao, de
acordo com a ordem natural dos elementos, definida pela implementac
ao
da interface Comparable ou Comparator. Use esta classe quando precisar
de um conjunto (de elementos u
nicos) que deve estar sempre ordenado,
mesmo sofrendo modificac
oes.
LinkedHashMap: Implementac
ao de Map que estende HashMap, mas adiciona 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 n
ao 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
modificac
ao deste tipo de colec
ao acarreta em uma leve queda na performance em relac
ao `
a HashMap, mas ainda e mais r
apida que uma TreeMap,
que utiliza comparac
oes para determinar a ordem dos elementos.
A seguir s
ao mostrados alguns exemplos:
http://www.candidatoreal.com
import java.util.*;
public class Freq {
public static void main(String[] args) {
Map<String, Integer> m = new HashMap<String, Integer>();
// Initialize frequency table from command line
for (String a : args) {
Integer freq = m.get(a);
m.put(a, (freq == null) ? 1 : freq + 1);
}
System.out.println(m.size() + " distinct words:");
System.out.println(m);
}
196
http://www.candidatoreal.com
}
Rodando o programa:
prompt#> java Freq if it is to be it is up to me to delegate
A sa
da produzida ser
a:
8 distinct words:
{to=3, delegate=1, be=1, it=2, up=1, if=1, me=1, is=2}
Caso fosse usado uma TreeMap ao inves de HashMap a sada seria:
8 distinct words:
{be=1, delegate=1, if=1, is=2, it=2, me=1, to=3, up=1}
E caso fosse utilizado LinkedHashMap a sada seria:
8 distinct words:
{if=1, it=2, is=2, to=3, be=1, up=1, me=1, delegate=1}
H
a duas implementac
oes Map com finalidades especiais: EnumMap, WeakHashMap
e IdentityMap.
17.5
Interface Queue
http://www.candidatoreal.com
http://www.candidatoreal.com
http://www.candidatoreal.com
198
http://www.candidatoreal.com
Captulo 18
Conceitos B
asicos
http://www.candidatoreal.com
As 4 categorias de driver s
ao:
o tipo mais simples mas restrito `
TIPO 1: PONTE JDBC-ODBC E
a
plataforma Windows. Utiliza ODBC para conectar-se com o banco de
dados, convertendo metodos JDBC em chamadas `
as func
oes do ODBC.
Esta ponte e normalmente usada quando n
ao h
a um driver puro-java (Tipo
4) para determinado banco de dados, pois seu uso e desencorajado devido
a dependencia de plataforma.
`
TIPO 2: DRIVER API-NATIVO O driver API-Nativo traduz as chamadas
JDBC para as chamadas da API cliente do banco de dados usado (Oracle,
Sybase, Informix, DB2, ou outro SGBD). Como a ponte JDBC-ODBC,
pode precisar de software extra instalado na m
aquina cliente.
TIPO 3: DRIVER DE PROTOCOLO DE REDE Traduz a chamada
JDBC para um protocolo de rede independente do banco de dados utilizado, que e traduzido para o protocolo do banco de dados por um servidor. Por utilizar um protocolo independente, pode conectar as aplicac
oes
o modelo mais flexvel.
java a v
arios banco de dados diferente. E
199
http://www.candidatoreal.com
18.2
Carregamento de drivers
http://www.candidatoreal.com
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //Or any other driver
}catch(Exception x){
System.out.println( "Unable to load the driver class!" );
}
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 exemplo, utilizamos a ponteODBC-JDBC. A Class e uma classe no pacote de
java.lang.
18.3
Conex
ao
http://www.candidatoreal.com
http://www.candidatoreal.com
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 execut
a-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
http://www.candidatoreal.com
...
String query = "SELECT NOME, IDADE FROM PESSOA";
ResultSet rs = stmt.executeQuery(query);
While(rs.next()){
String nome = rs.getString("NOME");
Int idade = rs.getInt("IDADE");
...
Para acessar os nomes e as idades corremos cada registro e acessamos os
valores de acordo com o tipo. O metodo next() movimenta o cursor para o
pr
oximo registro, tornando aquele registro o corrente. Podemos ent
ao executar outros metodos. Note que o cursor inicialmente fica posicionado acima do
primeiro registro, exigindo uma primeira execuc
ao do next() para que possamos
processar o primeiro registro.
Utilizamos metodos cujo nome se iniciam com get para obter os dados das
colunas. Eles devem ser obtidos de acordo com o tipo (o cast pode ser efetuado,
quando houver possibilidade), e esses metodos permitem que apontemos as colunas pelo nome ou pelo ndice (seu n
umero, na hora em que foi recebida e n
ao
na ordem da tabela original). Assim, o c
odigo anterior poderia ser:
String nome = rs.getString(1);
Int idade = rs.getInt(2);
Esta ultima abordagem tem uma melhor performance. Caso o programador
queira atualizar o atributo nome da quinta linha do resultSet poderia fazer da
seguinte maneira.
rs.absolute(5); //move o cursor para o quinto registro
rs.updateString("NOME", "Joao"); //altera o valor da coluna NOME
rs.updateRow(); //atualiza a coluna na tabela
202
http://www.candidatoreal.com
18.5
Prepared Statements
http://www.candidatoreal.com
18.6
Transac
ao
Existem situac
oes onde n
ao 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 est
ao presentes em todas as tabelas ou n
ao devem estar presentes em
nenhuma.
203
http://www.candidatoreal.com
18.7
Informac
oes Complementares
Ocasionalmente, voce ir
a 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:
http://www.candidatoreal.com
ResultSet rs = stmt.executeQuery(query);
ResultSetMetaData meta = rs.get.MetaData();
A classe ResultSetMetaData lhe fornece informac
oes acerca do n
umero de
colunas recebidas, o nome e o tipo das colunas, se alguma coluna aceita dados
nulos, campos de data etc. Alem disso fornece tambem informac
oes sobre a
tabela com que estamos trabalhando. Abaixo segue um exemplo mais completo:
...
Statement stmt = conn.createStatement();
// Tabela a ser analisada
ResultSet rset = stmt.executeQuery("SELECT * from EMP ");
ResultSetMetaData rsmd = rset.getMetaData();
204
http://www.candidatoreal.com
18.8
Exemplo Extra
http://www.candidatoreal.com
//Executando a consulta
ResultSet rs = stmt.executeQuery("SELECT LOGIN, NOME FROM ATENDENTE");
//Percorrendo o resultset
While(rs.next()){
String login = rs.getString("LOGIN");
String nome = rs.getString("NOME");
System.out.println("LOGIN:"+login);
Systems.out.println("NOME:"+nome);
}
//Pegando terceiro registro do ResultSet e alterando seu LOGIN
rs.absolute(3);
rs.updateString("LOGIN", "jsilva");
rs.updateRow(); //atualiza a coluna na tabela
//desativando o auto commit
205
http://www.candidatoreal.com
con.setAutoCommit(false);
//atualizando o segundo registro sem usar updateRow
rs.absolute(2)
stmt.executeUpdate(
"UPDATE FROM ATENDENTE SET LOGIN= "jsouza" WHERE NOME = "
+ rs.getString("NOME") + ""
);
//Varias outras opera
c~
oes de UPDATE
...
//"commitando" todos os updates realizados de uma
unica vez
con.commit();
}
http://www.candidatoreal.com
206
http://www.candidatoreal.com
Captulo 19
A plataforma J2EE
A plataforma J2EE e uma soluc
ao baseada em componentes para projeto, desenvolvimento, montagem e disponibilizac
ao de aplicac
oes distribudas em ambientes corporativos. O J2EE oferece, entre outras tecnologias:
Modelo multi-camada de aplicac
oes distribudas (multi-tier );
Componentes Reutiliz
aveis;
Modelo de seguranca unificado;
Controle de transac
oes flexveis;
Suporte a servicos Web (web services).
No modelo multi-camada distribudo da arquitetura J2EE as seguintes caractersticas s
ao importantes:
Os componentes que comp
oem a aplicac
ao podem estar em diferentes
m
aquinas;
Suas localizac
oes dependem da camada a que pertence.
Tipicamente, as aplicac
oes J2EE s
ao divididas em 4 camadas que s
ao:
Cliente (client-tier );
Web (web-tier );
http://www.candidatoreal.com
Neg
ocios (bussiness-tier );
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, comumente chamado de servidor de aplicac
ao.
A tabela a seguir mostra exemplos de componentes J2EE e o seus respectivos
tipo e local de execuc
ao.
207
http://www.candidatoreal.com
Tipo
Cliente J2EE
Web
Neg
ocios
Local de Execuc
ao
Cliente
Servidor
Servidor
19.1
Containers J2EE
http://www.candidatoreal.com
http://www.candidatoreal.com
Gerenciamento de conex
oes com bancos de dados. Os servidores de aplicac
ao
implementam o conceito de pools de conex
oes. O programador n
ao precisa escrever o c
odigo para abertura e encerramento da conex
ao, pois isso
e papel do servidor de aplicac
ao;
Persitencia do estado dos componentes.
19.2
Clientes J2EE
http://www.candidatoreal.com
19.3
Um servlet e uma classe java que extende as capacidades do servidor que acessam aplicac
oes num modelo de programa requisic
ao e resposta. Os servlets,
como definidos na interface Servlet disponvel no pacote javax.servlet, s
ao independentes de protocolo, e definem os metodos que todos os servlets devem
implementar. Os servlets s
ao especialmente populares no desenvolvimento de
aplicac
oes Web, cuja comunicac
ao e baseada no protocolo HTTP.
A classe HttpServlet, disponvel no pacote javax.servlet.http, implementa a
interface Servlet e prove a base para implementac
ao de aplicac
oes Web empregando o protocolo HTTP.
Do ponto de vista do cliente, um servlet funciona atendendo uma requisic
ao
e gerando conte
udo din
amico em forma de p
aginas web, em HTML por exemplo,
como resposta. O c
odigo a seguir exemplifica a criac
ao de um servlet.
209
http://www.candidatoreal.com
import
import
import
import
javax.servlet.*;
javax.servlet.http.*;
java.io.*;
java.util.*;
http://www.candidatoreal.com
http://www.candidatoreal.com
}
O servlet interpreta a informac
ao dos formul
ario HTML para gerar uma
p
agina, tambem HTML, como resposta `
a requisic
ao do cliente. O trecho a
seguir mostra o c
odigo HTML da p
agina que contem o formul
ario.
<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>
Enquanto o trecho de c
odigo a seguir mostra a p
agina HTML retornada
como resposta pelo servlet, supondo que o us
ario tenha digitado zazaza.
<HTML>
<HEAD><TITLE>My Name Servlet Response</TITLE></HEAD>
<BODY>
<CENTER><BR><B>
Hello zazaza
</B></CENTER>
</BODY>
</HTML>
19.3.1
http://www.candidatoreal.com
O inicio do clico de vida de um servlet ocorre quando o administrador do sistema inicia uma aplicac
ao baseada em um servlet. Nesse momento, o container
respons
avel pelos servlets no servidor de aplicac
ao cria uma inst
ancia de um
servlet. O container tambem passa os par
ametros de inicializac
ao do servlet
atraves do metodo init. Os par
ametros de inicializac
ao persistem ate o servlet
ser destrudo.
Se o processo de incializacao ocorrer com sucesso, o servlet se torna disponvel
para servico (atendimento de requisic
oes). Se o processo falhar o container
descarrega o servlet.
Ap
os a que um servlet se torna disponvel, o administrador pode optar para
coloc
a-lo em um estado de indisponvel, e assim ele permanecer
a ate que o administrador execute a operacao contr
aria.
Quando um requisic
ao de um cliente chega ao servidor de aplicac
ao, o container cria os objetos request e response, que s
ao passados de par
ametro para
o metodo service.
211
http://www.candidatoreal.com
http://www.candidatoreal.com
19.3.2
Muitas aplicac
oes requerem que uma serie de requisic
oes de um mesmo cliente
sejam associadas uma com a outra, para que uma determinada operac
ao faca
sentido. Um exemplo pr
atico e uma aplicac
ao de carrinho de compras, em que
o cliente vai navegando durante as p
aginas escolhendo os produtos e ao final
realiza a compra de fato. O perodo que compreende a entrada no site, passando pela escolha dos produtos e chegando ao pagamento ou ao cancelamento
e comumente chamada de sess
ao. A aplicac
ao e respons
avel por manter o estado
da sess
ao, tendo em vista que o protocolo HTTP e um protocolo stateless.
Para suportar aplicac
oes que precisam manter um estado, os servlets oferecem APIs para implementar o conceito de sess
ao.
As sess
oes s
ao representadas pelo objeto HttpSession. Uma sess
ao pode ser
acessada chamando o metodo getSession do objeto request. Esse metodo retorna 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 PrintWriter 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 sess
oes:
public class CashierServlet extends HttpServlet {
public void doGet (HttpServletRequest request,HttpServletResponse response)
throws ServletException, IOException {
// Get the users session and shopping cart
HttpSession session = request.getSession();
ShoppingCart cart = (ShoppingCart)session.getAttribute("cart");
...
...
// Determine the total price of the users books
double total = cart.getTotal();
Como n
ao h
a nenhuma forma de um cliente HTTP sinalizar que uma sess
ao
n
ao 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 getMaxInactiveInterval e MaxInactiveInterval. Geralmente o tempo m
aximo de
inatividade permitido para uma sess
ao tambem e feita no servidor de aplicac
ao.
19.4
http://www.candidatoreal.com
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>
A primeira linha da p
agina e um exemplo de diretiva JSP. Elas sempre s
ao
definidas entre as tags %@ e %. No exemplo e utilizada uma diretiva de import, que tem por objetivo importar pacotes assim como em uma classe java
comum. Existem outros tipos de diretivas, sendo as mais conhecidas a include
e taglib.
A diretiva include inclue o conte
udo do arquivo especificado durante a fase
de compilac
ao da p
agina JSP, ou seja, quando esta e convertida em um Servlet.
muito u
Neste caso, os dois arquivos s
ao combinados para gerar um s
o. E
til
quando uma p
agina e estruturada em partes bem definidas (topo, menu, rodape, etc.). A seguir um exemplo do uso de uma diretiva include.
<%@ include file="right_menu.jsp" %>
<HTML>
<BODY>
<h1> Noticias do dia </h1>
COECA aprova mais de 30 em 2007. A soma dos sal
arios j
a chega a R$ 150.000!
</BODY>
</HTML>
http://www.candidatoreal.com
// Exemplo 2:
// Localiza e instancia um bean com o determinado nome e escopo
<jsp:useBean id="cart" scope="session" class="session.Carts" />
<jsp:setProperty name="cart" property="*" />
214
http://www.candidatoreal.com
19.4.1
Quando uma p
agina JSP e requisitada pela primeira vez, o container compila
a p
agina JSP gerando um servlet. Nas chamadas sucessivas essa etapa n
ao e
mais necess
aria, a n
ao ser que a p
agina JSP tenha sido modificada. Portanto,
as p
aginas JSP s
ao, em u
ltima inst
ancia, processadas como servlets.
http://www.candidatoreal.com
215
http://www.candidatoreal.com
</BODY>
</HTML>
19.5
http://www.candidatoreal.com
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 conversac
ao, 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 requisic
ao. J
a 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
inst
ancia, que mantem o estado ate que a sess
ao termine ou o bean seja
destrudo.
Entity Beans:
S
ao respons
aveis pela persistencia dos dados da aplicac
ao, geralmente utilizando 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 representa um registro de tal tabela. Esse tipo de bean pode ser compartilhado por m
ultiplos usu
arios, sendo necess
ario 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, podendo 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
19.5.1
http://www.candidatoreal.com
http://www.candidatoreal.com
http://www.candidatoreal.com
218
http://www.candidatoreal.com
http://www.candidatoreal.com
219
http://www.candidatoreal.com
Parte V
http://www.candidatoreal.com
Desenvolvimento Web
220
http://www.candidatoreal.com
Captulo 20
Usabilidade
20.1
Definic
ao
http://www.candidatoreal.com
221
http://www.candidatoreal.com
Em geral, s
ao considerados os seguintes atributos para verificac
ao da usabilidade numa interface: funcionalidade correta; a eficiencia de uso; a facilidade
de aprendizagem; a facilidade de relembrar; toler
ancia ao erro do usu
ario; e
satisfac
ao do usu
ario.
20.2
Princpios da usabilidade
http://www.candidatoreal.com
222
http://www.candidatoreal.com
20.3
T
ecnicas de avalia
c
ao de usabilidade
http://www.candidatoreal.com
223
http://www.candidatoreal.com
Captulo 21
Acessibilidade
21.1
Definic
ao
http://www.candidatoreal.com
21.2
Princpios da acessibilidade
http://www.candidatoreal.com
nalidade ou func
ao que o
audio ou o vdeo, de maneira a se adaptar o melhor possvel a canais sensoriais alternativos e as tecnologias de apoio (software ou hardware para ajudar pessoas com incapacidade ou deficiencia)
atualmente disponveis no mercado;
Criar p
aginas que n
ao dependam exclusivamente de um tipo de equipamento. As p
aginas devem ser acessveis a usu
arios que n
ao possuam
mouse, que recebam voz ou texto, etc.
Os criadores de conte
udo para a Web necessitam tornar suas produc
oes compreensveis e naveg
aveis, empregando uma linguagem clara e disponibilizando
meios de navegac
ao e apropriac
ao da informac
ao apresentada. Disponibilizar
mecanismos de orientac
ao de p
agina e ferramentas de navegac
ao s
ao fatores que
potencializam a acessibilidade `
a Web ao garantir a perceptibilidade e navegabilidade 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 s
ao classificados por nveis de prioridade. Os 14 princpios
s
ao:
1. Fornecer alternativas ao conte
udo sonoro ou visual esta diretriz indica a
necessidade de disponibilizar conte
udo que, ao ser apresentado ao usu
ario,
transmita, em essencia, as mesmas func
oes e finalidades do conte
udo
sonoro e visual. Assim, deve-se fornecer um equivalente textual a cada
elemento n
ao textual;
2. N
ao recorrer apenas a cor deve-se garantir a percepc
ao do texto e dos
elementos gr
aficos do documento, mesmo quando s
ao vistos sem cores.
Assim, deve-se assegurar que todas as informac
oes veiculadas por meio
de cores estejam tambem disponveis sem cor, por exemplo, a partir de
informac
oes do contexto ou de marcac
ao apropriada;
http://www.candidatoreal.com
http://www.candidatoreal.com
http://www.candidatoreal.com
http://www.candidatoreal.com
http://www.candidatoreal.com
21.3
T
ecnicas de avalia
c
ao 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
avaliac
ao de acessibilidade: Avaliac
ao de Preliminar de Acessibilidade (identificac
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 validac
ao da acessibilidade s
ao feitas por meio de ferramentas
autom
aticas ou da revis
ao direta manual. Os metodos autom
aticos s
ao geralmente r
apidos, mas n
ao s
ao capazes de identificar todos os aspectos da acessibilidade. Esses metodos n
ao s
ao capazes de avaliar conte
udo gerado dinamicamente. 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 avaliac
ao e validac
ao da acessibilidade de uma p
agina ou de um site `
a
Web devem estar presentes desde as fases iniciais do desenvolvimento do documento. O W3C-WAI aponta como metodo para testar uma p
agina ou site,
ap
os a implementac
ao dos princpios de acessibilidade, os seguintes pontos de
verificac
ao:
1. Utilizar uma ferramenta de acessibilidade autom
atica e ferramentas de
validac
ao de navegadores;
2. Validar a sintaxe (HTML, XML, etc.);
3. Validar as folhas de estilo;
4. Utilizar um navegador s
o de texto ou um emulador;
5. Utilizar v
arios navegadores gr
aficos com o som e os gr
aficos ativos, sem
gr
aficos, sem mouse e sem carregar frames, programas interpret
aveis, folhas de estilo ou applets;
227
http://www.candidatoreal.com
6. Utilizar v
arios navegadores, antigos e recentes;
7. Utilizar um navegador de emiss
ao autom
atica de falas, com leitores de
tela, com software de aplicac
ao, monitores monocrom
aticos, etc;
8. Utilizar corretores ortogr
aficos e gramaticais;
9. Rever o documento, verificando a clareza e a simplicidade;
10. Validar p
aginas com usu
arios reais.
http://www.candidatoreal.com
Acessibilidade e usabilidade s
ao conceitos que se inter-relacionam, pois ambos buscam a eficiencia e efic
acia no uso de uma interface. A observac
ao de
alguns criterios ou fatores a serem ressaltados na elaborac
ao de uma p
agina
Web pode auxiliar na concepc
ao de bons projetos de interface e conseq
uentemente, melhorar a qualidade da interac
ao do usu
ario com a aplicac
ao.
228
http://www.candidatoreal.com
Captulo 22
Padr
oes Web W3C
http://www.candidatoreal.com
Padr
oes Web (Web Standards ou Tableless) e um conjunto de normas, diretrizes,
recomendac
oes, notas, artigos, tutoriais e afins de car
ater tecnico, produzidos
pelo W3C e destinados a orientar fabricantes, desenvolvedores e projetistas para
o uso de pr
aticas que possibilitem a criac
ao de uma Web acessvel a todos,
ajudados por diversos recursos que fazem uma Web mais agrad
avel de usar.
Toda essa padronizac
ao e para atender a ideia da Web Sem
antica que
consiste organizar os documentos Web de tal forma, que estes possam ser interpretados automaticamente, facilitando a pesquisa e cruzamento das informac
oes
dos documentos. Ou seja, alem da informac
ao, a m
aquina saberia distinguir a
que se refere esta informac
ao. Um exemplo pr
atico disso e que, se utiliz
assemos
o elemento address para definir os enderecos em nosso site, uma ferramenta
de busca poderia criar uma indexac
ao destes enderecos, e disponibilizar para o
usu
ario. Quantas vezes voce visitou o site de uma empresa e cansou de procurar
pelo endereco, ou um telefone de atendimento ao cliente? A Web Sem
antica n
ao
e uma substituic
ao a Web atual, mas sim uma extens
ao da atual. E a base da
Web Sem
antica e o XML, o RDF e a Ontologia.
Existem diversas vantagens na aplicac
ao dos padr
oes Web. Entre elas, vale
destacar:
Acessibilidade tanto para deficientes quanto para usu
arios de dispositivos
m
oveis como PDAs, celulares, smartphones, etc.; O browser interpreta as
informac
oes de layout (em um arquivo CSS) de 30% a 70% mais rapidamente, o que gera uma queda consider
avel no download dos arquivos do
site;
Economia de banda na transmiss
ao dos arquivos, pois com a utilizac
ao dos
padr
oes os arquivos possuem menor tamanho; O c
odigo HTML se torna
muito mais compacto ao se separar conte
udo, design e programac
ao;
Melhor visibilidade no Google e nos demais mecanismos de busca, pois os
padr
oes utilizam a estrutura sem
antica simples do HTML;
Maior facilidade de atualizac
ao e mudancas no layout.
Algumas tecnologias padronizadas pelo W3C:
229
http://www.candidatoreal.com
http://www.candidatoreal.com
http://www.candidatoreal.com
linguagem de programac
ao e do sistema operacional. Normalmente, o protocolo utilizado para troca de informac
oes e o HTTP, pois este n
ao possui
problema de seguranca com firewalls e proxy. Ou seja, o http por ser um
protocolo da Internet nao e bloqueado pelos firewalls e proxy. A u
ltima
recomendac
ao lancada pelo W3C foi SOAP 1.2;
uma linguagem baseada
WSDL (Web Services Description Language) E
em XML para descric
ao de Web Services e como acess
a-los. A u
ltima
recomendac
ao lancada pelo W3C foi WSDL 1.1;
uma linguagem para repreRDF (Resource Description Framework) E
sentar informac
oes na Web. O RDF usa notac
ao XML como sintaxe de
codificac
ao para descricao de metadados. A ideia do RDF e a descric
ao
dos dados e dos metadados em tres componentes: recurso (qualquer objeto
que e identific
avel unicamente por um URI), propriedade (e uma caracterstica, um atributo ou relacionamento especfico de um recurso) e valor,
e uma forma coerente de acesso aos padr
oes de metadados (namespace)
publicados na Web. Um dos benefcios do RDF e permitir que aplicac
oes
possam agir de forma inteligente e automatizada sobre as informac
oes
publicadas na Web. A u
ltima recomendac
ao lancada pelo W3C foi RDF
1.0;
http://www.candidatoreal.com
231
http://www.candidatoreal.com
sua interpretac
ao. Os namespaces XML s
ao conjuntos de tipos de elementos 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 n
aoambguo, onde usu
arios e programas de validac
ao de c
odigo XML podem
consultar a sintaxe e propriedades sem
anticas dos conceitos cobertos;
2. URI (Uniform Resource Identifier) e uma cadeia de caracteres que identifica um recurso da internet. O URI mais comum e o URL que identifica
um endereco de domnio, mas os URIs podem tambem identificar livros,
elementos de uma p
agina e pessoas individuais, por exemplo;
http://www.candidatoreal.com
232
http://www.candidatoreal.com
Captulo 23
XML
23.1
O que
e XML?
http://www.candidatoreal.com
233
http://www.candidatoreal.com
23.2
Caractersticas do XML
http://www.candidatoreal.com
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 (formatac
ao dos dados) numa p
agina Web enquanto o XML descreve os dados
(conte
udo) 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 frequentemente como o texto entre elas aparece num browser, o XML usa as tags somente
para delimitar as porc
oes de dados, e deixa a interpretac
ao dos dados para a
aplicac
ao que ir
a 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.
Os arquivos XML s
ao arquivos textos, e n
ao s
ao destinados `
a leitura por
um ser humano como o HTML e. Isso fica a cargo de outras linguagens. As
especificac
oes de XML s
ao muito mais rgidas que a especificac
ao do HTML.
Elas estabelecem que e obrigat
orio rejeitar sintaticamente arquivos incorretos,
mesmo que o navegador possa descobrir o que o Web designer pretendia. Os
navegadores s
o tem permiss
ao para indicar o erro.
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 s
ao 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 textos. 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>
http://www.candidatoreal.com
http://www.candidatoreal.com
23.5
Conjunto de tags
?>
Exemplo:
<?html action="hr"?>
http://www.candidatoreal.com
Declara
c
ao XML e um tipo de instruc
ao de processamento. Qualquer documento XML dever comecar sempre com uma declarac
ao XML. Normalmente, 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 vers
ao do XML utilizado, 1.0), standalone (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);
Sintaxe:
<?xml
?>
Exemplo:
<?xml version="1.0" standalone="yes" encoding="UCS-2" ?>
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 -->
Elementos explicado anteriormente;
Atributos explicado anteriormente;
CDATA utilizado quando se deseja que os caracteres de texto n
ao sejam confundidos com os elementos de marcac
ao, por exemplo o uso do sinal < e
>;
Sintaxe:
<![CDATA[ ... ]]>
Exemplo:
<![CDATA[Imprima a tecla <<ENTER>>]]>
PCDATA (Parser Character Data) utilizado para designar que o texto entre as duas marcac
oes e um dado e n
ao um texto. Isso e utilizado na
definic
ao das DTDs ou gram
atica do documento;
Refer
encias e possvel associar identificadores u
nicos aos elementos, por meio
de um atributo de identificac
ao, id. Com isto permite-se que elementos
distintos referenciem-se entre si;
Exemplo:
<biblio id="bib" ano="2001">
...
</biblio>
http://www.candidatoreal.com
http://www.candidatoreal.com
A verificac
ao sint
atica de um documento XML e feita por parsers que analisam 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 documento 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 contr
ario n
ao.
23.6
NameSpaces
http://www.candidatoreal.com
238
http://www.candidatoreal.com
http://www.candidatoreal.com
23.7
Gram
atica de um documento XML
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 declarac
oes de elementos especificam como deve ser o conte
udo do elemento. 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)>
Definir elementos vazios: constante EMPTY Exemplo:
<!ELEMENT image EMPTY>
Definir a ocorrencia repetida de um elemento em particular:
Pelo menos uma vez: (elemento)+ Exemplo:
<!ELEMENT biblio (titulo, autor+, tipo_pub)>
Zero ou mais vezes: (elemento)* Exemplo:
<!ELEMENT tabela_biblio (biblio*)>
http://www.candidatoreal.com
Definir que o elemento deve ser um entre uma lista de elementos: (a|b)
Exemplo:
<!ELEMENT tipo_pub (periodico | evento)>
Obs.: O elemento tipop ub e composto por um elemento periodico ou
evento.
Definir que o elemento tem presenca opcional: (elemento)? Exemplo:
<!ELEMENT biblio (titulo, autor, tipo_pub, resumo?)>
Definir que o elemento e uma string de caracteres: #P CDAT A Exemplo:
<!ELEMENT autor (#PCDATA)>
240
http://www.candidatoreal.com
doc (para)+>
nome (#PCDATA)>
lugar (#PCDATA)>
data (#PCDATA)>
para ANY>
http://www.candidatoreal.com
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 h
a algum valor padr
ao de
atributo: Sintaxe:
http://www.candidatoreal.com
http://www.candidatoreal.com
http://www.candidatoreal.com
Exemplo:
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 declarac
ao 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.
23.8
Tecnologias XML
A seguir s
ao apresentadas as tecnologias relacionadas ao XML:
XHTML (Extensible HTML) e uma vers
ao explcita do HTML;
XML DOM (XML Document Object Model) define um padr
ao de acesso
e manipulac
ao de documentos XML;
XSL (Extensible Style Sheet Language) consiste de tres partes: XSLT,
XPath e XML-FO;
XSLT (XSL Transformation) e usado para transformar documentos XML
em outros formatos, como XHTML;
http://www.candidatoreal.com
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 permite 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.
http://www.candidatoreal.com
23.9
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.
23.10
Ferramentas de desenvolvimento
Parsers:
Expat;
XML4J;
MSXML;
Editores:
Editores de texto comum;
http://www.candidatoreal.com
Xeena;
246
http://www.candidatoreal.com
Captulo 24
XSLT
Uma das principais ideias de XML e deixar explcita a separac
ao entre conte
udo,
estrutura e apresentac
ao de um documento para Web. Como XML trata apenas
do conte
udo dos documentos, devem existir outros padr
oes para descrever o
formato de apresentac
ao dos dados. Uma das formas de permitir apresentac
ao
de tais documentos e por meio das folhas de estilo.
Linguagens de folhas de estilo (style sheets) foram projetadas para permitir que a descric
ao de estilo de apresentac
ao de documentos seja separada da
representac
ao do conte
udo dos documentos. Isto facilita a reutilizac
ao de um
mesmo documento para diferentes aplicac
oes ou diferentes tipos de usu
arios
que requerem diferentes vis
oes do mesmo. O princpio b
asico destas linguagens e prover uma sintaxe que permita associar partes especficas do conte
udo
de documentos a estilos ou ac
oes que devem ser realizadas sobre tais partes.
As principais linguagens de estilo s
ao a CSS (Cascading Style Sheets) e XSL
(Extensible Style Sheet).
http://www.candidatoreal.com
24.1
O que
e uma folha de estilo?
24.2
Comparac
ao entre o CSS e XSL
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
XSLT (XSL Transformation) linguagem para transformar documentos XML;
XPath linguagem para definir parte de um documento XML;
XSL-FO (XSL Formatting Object) linguagem para formatar documentos
XML.
A componente mais importante do XSL e o XSLT.
24.4
O que
e o XSLT?
http://www.candidatoreal.com
248
http://www.candidatoreal.com
24.5
Caractersticas do XSLT
24.6
http://www.candidatoreal.com
Como o XSL obedece a mesma sintaxe do XML, quando se cria uma especificac
ao de folha de estilo XSL, deve-se incluir a instruc
ao de processamento (por
exemplo, <?xml version=1.0standalone=yesencoding=UCS-2?>) para arquivos XML no incio do arquivo que descreve a folha de estilo. Os arquivos
XSL tem extens
ao .xsl. A figura 24.1 mostra um exemplo de um arquivo XSL.
http://www.candidatoreal.com
O modo correto de declarar uma folha de estilo XSL de acordo com a recomendac
ao W3C XSLT:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
ou
<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
Obs.:
1. Para obter acesso aos elementos, atributos e caracterstica do XSLT, devese declarar o namespace XSLT no incio do documento;
2. O xmlns:xsl=http://www.w3.org/1999/XSL/Transformidentifica a Recomendac
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 transformar o documento XML. Essa transformac
ao e realizada utilizando os principais
elementos XSLT:
< xsl : template >;
< xsl : value of >;
< xsl : f or each >;
< xsl : sort >;
< xsl : if >;
< xsl : choose >;
< xsl : apply templates >.
Ap
os a definic
ao do arquivo XSL e preciso associar este arquivo no documento 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:
http://www.candidatoreal.com
24.7
Elemento <xsl:template>
http://www.candidatoreal.com
http://www.candidatoreal.com
24.8
Elemento <xsl:value-of>
251
http://www.candidatoreal.com
24.9
Elemento <xsl:for-each>
24.10
Elemento <xsl:sort>
http://www.candidatoreal.com
24.11
Elemento <xsl:if>
252
http://www.candidatoreal.com
24.12
Elemento <xsl:choose>
http://www.candidatoreal.com
24.13
Elemento <xsl:apply-templates>
253
http://www.candidatoreal.com
24.14
http://www.candidatoreal.com
Foi explicado anteriormente como o XSL pode ser usado para transformar um
documento XML em HTML. O truquefoi adicionar uma descric
ao XSL no
arquivo XML e deixar a transformac
ao para o browser. Embora isso funcione
bem, n
ao e sempre desejado incluir a referencia ao XSL no arquivo XML essa
soluc
ao n
ao funcionaria com um navegador sem nenhuma facilidade XSL.
Uma soluc
ao mais vers
atil e usar o JavaScript para fazer a transformac
ao de
XML para HTML. Usando-se JavaScript pode-se:
Permitir que o JavaScript faca um teste de navegac
ao especfico;
Usar diferentes modelos de estilo de acordo com o navegador e/ou as
necessidades de usu
ario.
Usando JavaScript e possvel transformar dados de um formato para outro,
suportando diferentes navegadores e diferentes necessidades dos usu
arios.
24.15
A soluc
ao apresentada anteriormente utilizando JavaScript esbarra no problema de o browser n
ao suportar um parser XML, pois a transformac
ao n
ao
254
http://www.candidatoreal.com
24.16
Processadores XSLT
http://www.candidatoreal.com
255
http://www.candidatoreal.com
Captulo 25
Gerenciador de Conte
udo
Web Zone/Plone
25.1
Gest
ao de Conte
udo
http://www.candidatoreal.com
6. Arquivamento ou eliminac
ao dos documentos.
http://www.candidatoreal.com
25.2
Sistema de Gest
ao de Conte
udo
http://www.candidatoreal.com
Classifica
c
ao, indexa
c
ao e busca de conte
udo inclui mecanismos automatizados de classificac
ao e indexac
ao e de recursos de busca eficientes
baseados em metadados;
Gest
ao de interface com usu
arios o conte
udo e independente da l
ogica da
aplicac
ao e da apresentac
ao visual. A publicac
ao e din
amica em func
ao
do usu
ario e do dispositivo de sada. O acesso ao conte
udo e controlado
e pode ser agrupado em tres
areas de controle: Acesso p
ublico, Acesso
restrito por licenca e acesso privilegiado (controlado a partir de regras
relacionadas ao conte
udo e usu
ario);
Sindicaliza
c
ao (syndication) tecnica que permite compartilhar informac
ao
entre diferentes sites por meio do formato RSS;
Gest
ao de vers
oes permite manipular diferentes vers
oes do site, ou de um
conjunto de conte
udos;
Grava
c
ao das a
c
oes e possibilidade de desfaz
e-las permite que se recupere de erros. Todas as mudancas no site (incluindo mudancas na l
ogica,
apresentac
ao e conte
udo) podem ser desfeitas.
257
http://www.candidatoreal.com
No mercado de gest
ao de conte
udos, o ambiente Zope, uma framework para
gest
ao de conte
udos, e o Plone, sistema de gest
ao de conte
udos, ambos de c
odigo
aberto, tem atrado um n
umero crescente de empresas e usu
arios.
Obs.: Um framework (literalmente: moldura, esqueleto, armac
ao) e um
am
algama de servicos de softwaresat
omicos coerentes. Considerando como
tijolosde base, estes servicos s
ao montados para formar uma aplicac
ao. A
equipe pode concentrar-se nas regras de neg
ocios e n
ao nos aspectos tecnicos
dos projetos.
25.3
Zope
de conte
udos, 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 publicac
ao 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
registrado com a licenca ZPL (Zope Public License), compatvel
e Windows). E
com GPL (General Public License).
Diferente das outras solucoes do mercado, a finalidade do Zope n
ao 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 publicac
ao de
conte
udo Web que os outros produtos.
A arquitetura do Zope, mostrada na figura 25.2, e constituda pelos seguintes
m
odulos:
http://www.candidatoreal.com
http://www.candidatoreal.com
http://www.candidatoreal.com
http://www.candidatoreal.com
25.4
Plone
http://www.candidatoreal.com
http://www.candidatoreal.com
http://www.candidatoreal.com
Os tipos b
asicos de conte
udo do Plone s
ao:
o mais usado e
Documento apresenta informac
oes est
aticas para o usu
ario. E
pode ser considerado como uma p
agina de um site;
Evento representam reuni
oes, eventos, encontros, semin
arios, e s
ao utilizados
nas pesquisas por t
opico de calend
ario;
Arquivo objetos podem conter arquivos passveis serem baixados;
Pasta serve para adicionar outros tipos de conte
udo. Pode ser usada para
como uma pasta no disco
definir vis
oes de informac
oes personalizadas. E
rgido;
Imagem e uma imagem do tipo GIF ou JPEG;
Link s
ao enderecos Web;
261
http://www.candidatoreal.com
Notcia contem pequenos artigos e podem possuir ttulo assim como uma descric
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;
ZPT (Zope Page Template) e um sistema de templates usados pelo Plone
para exibic
ao de algum conte
udo;
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 conte
udo
especficas para cada tipo de conte
udo;
Archetype e um framework para o desenvolvimento automatizado de produtos
(conte
udos) no Plone;
ArchGenXML e uma ferramenta de gerac
ao de c
odigo que permite desenvolver novos tipos de conte
udo por meio de um modelo UML.
http://www.candidatoreal.com
262
http://www.candidatoreal.com
Captulo 26
Web Services
http://www.candidatoreal.com
26.1
O que
e Web Services?
Web Service e um componente de software identificado por uma URI que independe 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 service e possvel realizar a integrac
ao entre sistemas desenvolvidos em diferentes
uma
linguagens e plataforma, e disponibilizar servicos interativos na Web. E
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, publicac
ao e interac
ao de operac
oes.
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 solicitante obtem a descric
ao 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 interac
ao
o solicitante chama ou inicia uma interac
ao com o provedor, em tempo de execuc
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
servico e e respons
avel por publicar a descric
ao do servico que prove. O solicitante de servicos e a aplicacao que est
a procurando, invocando uma interac
ao
com o web service, ou seja, requisita a execuc
ao de um servico. O solicitante de
servico pode ser uma pessoa acessando por meio do browser ou uma aplicac
ao
realizando uma invocac
ao aos metodos descritos na interface do web service. O
servidor de registro e um reposit
orio central que contem a descric
ao (informac
ao)
de um web service, e e por meio do servidor de registro que essas descric
oes s
ao
publicadas e disponibilizadas para localizac
ao.
Os clientes buscam por servicos no servidor de registro e recuperam informac
oes referentes `
a interface de comunicac
ao para os web service durante
263
http://www.candidatoreal.com
http://www.candidatoreal.com
264
http://www.candidatoreal.com
http://www.candidatoreal.com
A interac
ao entre os web services se d
a sob v
arios protocolos abertos, em
diferentes nveis de abstrac
ao. Os protocolos utilizados para realizar a comunicac
ao s
ao o: UDDI (Universal Description Discovery and Integration), WSDL
(Web Services Description Language), XML, SOAP (Simple Object Access Protocol) e o HTTP, conforme figura 26.3.
http://www.candidatoreal.com
em reposit
orios disponveis na Internet. Assim, se um desenvolvedor precisar
resolver uma determinada tarefa, pode encontrar o web service que mais se
adequar `
a sua necessidade.
Como os firewalls convencionais e proxies n
ao bloqueiam a porta utilizada
pelo protocolo HTTP, n
ao existem grandes restric
oes para o uso deste tipo de
aplicac
ao em redes de longa dist
ancia.
Pode-se definir, resumidamente, o web service como sendo um servico de
software disponibilizado na Internet, descrito com um arquivo WSDL, registrado
via UDDI, acessado utilizando SOAP e com dados representados em XML sendo
transmitidos via HTTP.
A disseminac
ao no uso de web services nos u
ltimos anos incentivou o mercado
a oferecer uma grande variedade de ferramentas e aplicac
oes para prover suporte
a essa tecnologia. Atualmente, as principais plataformas para web services s
ao:
Sun Microsystems, IBM, BEA, Apache, Systinet e Microsoft.
26.2
SOAP
http://www.candidatoreal.com
http://www.candidatoreal.com
http://www.candidatoreal.com
26.3
WSDL
267
http://www.candidatoreal.com
http://www.candidatoreal.com
Port e a combinac
ao de um binding com endereco de rede, fornecendo o endereco alvo para a comunicac
ao dos servicos.
T
ao logo o cliente tenha acesso `
a descric
ao do servico a ser utilizado, a
implementac
ao do Web Service pode ser feita em qualquer linguagem de programac
ao. Normalmente s
ao utilizadas linguagem construdas para interac
ao
com a Web, como exemplo Java Servlets ou ASP, que, em seguida, chamam um
outro programa ou objeto.
Basicamente, quando o cliente deseja enviar uma mensagem para um determinado web service, ele obtem a descric
ao do servico (atraves da localizac
ao do
respectivo documento WSDL), e em seguida constr
oi a mensagem, passando os
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 precisam 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
process
a-la (possivelmente enviando-a para outro programa) e como montar a
resposta ao cliente.
268
http://www.candidatoreal.com
26.4
UDDI
http://www.candidatoreal.com
26.5
Seguranca
269
http://www.candidatoreal.com
Parte VI
http://www.candidatoreal.com
Redes de Comunica
c
ao
270
http://www.candidatoreal.com
Captulo 27
T
ecnicas B
asicas de
Comunicac
ao
http://www.candidatoreal.com
27.1
Base Te
orica da Comunica
c
ao de Dados
As informac
oes podem ser transmitidas por fios fazendo-se variar alguma propriedade fsica, como voltagem ou corrente. Representando o valor dessa voltagem 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
func
ao peri
odica razoavelmente est
avel, g(t), com o perodo T pode ser construda 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, introduzem 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; assim, muitas vezes a largura de banda varia desde 0 ate a freq
uencia em que a
metade da potencia e transmitida.
A largura de banda e uma propriedade fsica do meio de transmiss
ao, e
em geral depende da construc
ao, da espessura e do comprimento do meio. Em
alguns casos um filtro e introduzido no circuito para limitar o volume de largura
de banda disponvel para cada cliente. Por exemplo, uma linha telef
onica pode
ter uma largura de banda de 1MHz para curtas dist
ancias, mas as empresas de
telefonia limitam essa faixa a cerca de 3100 Hz.
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 aleat
orio (isto e, termodin
amico).
Nyquist provou que, se um sinal arbitr
ario atravessar um filtro com baixa
freq
uencia 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
)
(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 movimento 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 relac
ao
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:
Maximum Data Rate = 2Hlog2 (1 +
S
)
(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, independente da quantidade de nveis de sinal utilizados e da freq
uencia com que as
amostras s
ao obtidas.
Maximum Number of Bits/sec = Hlog2 (1 +
http://www.candidatoreal.com
27.3
http://www.candidatoreal.com
27.4
Transmiss
ao em Banda Base
http://www.candidatoreal.com
27.5
Classificac
ao dos Sinais
273
http://www.candidatoreal.com
27.6
T
ecnicas de Codifica
c
ao de Linha
http://www.candidatoreal.com
27.6.1
Codifica
c
ao 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 s
ao 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 rel
ogio no receptor. A recuperac
ao
do rel
ogio nesse contexto significa recuperar o rel
ogio usado no transmissor para
temporizar a codificac
ao do sinal e assim permitir a recuperac
ao da informac
ao
no lado receptor. Esta caracterstica limita o seu uso apenas para pequenas
dist
ancias de transmiss
ao e conex
oes entre estac
oes.
27.6.2
Codifica
c
ao RZ
27.6.3
Codifica
c
ao AMI (Alternate Mark Invertion)
http://www.candidatoreal.com
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 representac
ao AMI pode ser NRZ (100 % do tempo de bit) ou RZ (50% do
tempo de bit).
A garantia de transic
ao 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 rel
ogio de sincronismo.
27.6.4
Codifica
c
ao HDB-3 (High Density Bipolar with 3
Zero Maximum Tolerance)
http://www.candidatoreal.com
polaridade da violac
ao anterior, transmitir
a 000V. No caso em que o u
ltimo
pulso transmitido seja uma violac
ao ou tenha polaridade identica `
a polaridade
da violac
ao anterior, transmitir
a V00V. Essa escolha entre 000V e V00V faz
com que violac
oes sucessivas sejam de polaridades opostas, o que garante a n
ao
existencia de sinal DC na linha.
Na recepc
ao, o decodificador tem de verificar, inicialmente, a violac
ao AMI
e, posteriormente, o n
umero de zeros que precede esta violac
ao, para determinar
se o u
ltimo pulso transmitido e tambem uma violac
ao. Isto e feito da seguinte
forma: se na recepc
ao houver dois pulsos, com mesma polaridade, separados por
tres zeros, o segundo pulso e violac
ao, logo, e eliminado. Se na recepc
ao houver
dois pulsos, com mesma polaridade, separados por dois zeros, ambos os pulsos
s
ao violac
ao, logo, ambos s
ao eliminados. Nota-se que na codificac
ao HDB-3 s
ao
contornados os problemas do aparecimento do nvel DC e da falta de transic
oes
para recuperac
ao do sinal de rel
ogio.
27.6.5
Codifica
c
ao Manchester
http://www.candidatoreal.com
Na codificac
ao 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 durante 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 transic
ao na parte intermedi
aria, tornando f
acil
para o receptor sincronizar-se com o transmissor. Uma desvantagem da codificac
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 variac
ao da codificac
ao Manchester 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.
27.7
Modulac
ao
Modulac
ao 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
http://www.candidatoreal.com
27.7.1
Modula
c
ao de Onda Contnua
As linhas de transmiss
ao enfrentam tres problemas principais: atenuac
ao, distorc
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,
n
ao e interessante ter uma grande variedade de freq
uencias no sinal. Infelizmente, as ondas quadradas usadas em sinais digitais tem um amplo espectro de
freq
uencias e, portanto, est
ao sujeitas a uma forte atenuac
ao e a uma distorc
ao
de retardo. Esses efeitos tornam a sinalizac
ao em banda base (DC) inadequada,
exceto em baixas velocidades e em dist
ancias curtas.
Para contornar os problemas associados `
a sinalizac
ao DC e usada a sinal introduzido no sinal um tom contnuo na faixa de 1000 a 2000 Hz,
izac
ao AC. E
denominado onda portadora senoidal. Sua amplitude, freq
uencia ou fase pode
ser modulada para transmitir informac
oes.
Basicamente, existem dois tipos de modulac
ao de onda contnua, a anal
ogica
e a digital. Pode-se citar como exemplo de modulac
ao anal
ogica a modulac
ao
AM (Amplitude Modulation) onde a variac
ao da amplitude da portadora ocorre
de acordo com a variac
ao do sinal modulante. Este tipo de modulac
ao tem
algumas derivac
oes, tais como, AM-DSB (Double-Sideband Amplitude Modulation), AM-DSB-SC (Double-Sideband Suprisse Carrier Amplitude Modulation)
277
http://www.candidatoreal.com
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 usadas 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
O n
umero de amostras por segundo e medido em baud. Durante cada baud, e
enviado um smbolo. Desse modo, uma linha de n bauds transmite n smbolos/s.
Se o smbolo consiste em 0 volts para representar um valor l
ogico 0 e 1 volt para
indicar um valor l
ogico 1, a taxa de bits e 2400 bps. Porem se as voltagens
0, 1, 2, 3 volts s
ao usadas, cada smbolo consiste em dois bits, e assim uma
linha de 2400 bauds pode transmitir 2400 smbolos/ s a uma taxa de dados de
4800 bps. De modo semelhante, com quatro deslocamentos de fase possveis,
tambem existem 2bits/smbolo, e portanto mais uma vez a taxa de bits e o dobro
da taxa em bauds. Essa u
ltima tecnica e amplamente usada e se denomina
QPSK (Quadrature Phase Shift Keying). Desse modo, a tecnica de modulac
ao
determina o n
umero de bits/smbolo.
Todos os modens avancados utilizam uma combinac
ao de tecnicas de modulac
ao para transmitir v
arios bits por baud. Com freq
uencia, v
arias amplitudes e v
arios deslocamentos de fase s
ao combinados para transmitir diversos
bits/smbolo. A figura 27.8 (b) abaixo apresenta uma estrutura de modulac
ao
na qual s
ao usadas quatro amplitudes e quatro fases, dando um total de 16 combinac
oes diferentes. Esse esquema de modulac
ao pode ser usado para transmitir
4 bits por smbolo. Ele e chamado QAM-16 (Quadrature Amplitude Modulation). A figura 27.8 (c) permite 64 combinac
oes diferentes. Diagramas como os
apresentados na figura 27.8 s
ao denominados de diagramas de constelac
ao.
http://www.candidatoreal.com
27.7.2
Modula
c
ao de Pulsos
A modulac
ao por pulsos iniciou a partir da teoria da amostragem, a qual estabelece que a informac
ao contida em qualquer sinal anal
ogico pode ser recuperada
a partir de amostras do sinal tomadas a intervalos regulares de tempo.
A modulac
ao por pulsos pode ser anal
ogica ou codificada. No caso anal
ogico,
os valores das amostras do sinal s
ao transferidos para as amplitudes, durac
oes
ou posic
oes de pulsos de formato fixo conhecido. No caso digital, os valores das
amostras s
ao convertidos para n
umeros bin
arios que por sua vez s
ao codificados
em seq
uencias de pulsos que representam cada um dos valores bin
arios. Um
exemplo desse tipo de modulac
ao e o PCM.
279
http://www.candidatoreal.com
Modula
c
ao de C
odigo de Pulso
O processo de transformac
ao das redes telef
onicas em redes totalmente digitais
tanto no que diz respeito `
a comutac
ao como `
a transmiss
ao teve incio quando
da introduc
ao, em escala comercial, dos sistemas de transmiss
ao PCM. O PCM
(Modulac
ao por C
odigo de Pulso) transforma um sinal anal
ogico em uma serie
de pulsos bin
arios que podem ser manipulados. Sendo assim, o objetivo da modulac
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 modulac
ao 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 n
ao-linear, melhorando assim a
robustez a problemas de rudo no canal.
http://www.candidatoreal.com
27.8
T
ecnicas de Multiplexa
c
ao
Multiplexac
ao e a transmiss
ao simult
anea de v
arios sinais por um u
nico 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
27.8.1
http://www.candidatoreal.com
27.8.2
A tecnica de multiplexac
ao TDM (Time Division Multiplexing) e baseada no
domnio do tempo e s
o pode ser empregado em sistemas digitais. Nesse esquema, 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
mais eficiente em
slots de tempo entre as estac
oes que comp
oe o sistema. E
comparac
ao 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 multiportadora que surgiu no fim da decada de sessenta como uma evoluca
o de FDM.
281
http://www.candidatoreal.com
27.8.4
http://www.candidatoreal.com
282
http://www.candidatoreal.com
27.9
Protocolos de Acesso M
ultiplo
http://www.candidatoreal.com
Alocac
ao Fixa
Acesso Aleat
orio
Alocac
ao Din
amica
Canal Ocioso
sim
n
ao
n
ao
Colis
oes
n
ao
sim
n
ao
283
Sobrecarga
n
ao
n
ao
sim
http://www.candidatoreal.com
Captulo 28
Topologias de Redes
A topologia de uma rede de comunicac
ao refere-se `
a forma como os enlaces
fsicos e os n
os est
ao organizados, determinando os caminhos fsicos existentes e
utiliz
aveis entre quaisquer pares de estac
oes conectadas a essa rede. A topologia
de uma rede muitas vezes caracteriza o seu tipo, eficiencia e velocidade. As
topologias mais comuns s
ao as seguintes:
Malha
A interconex
ao e total garantindo alta confiabilidade, porem a complexidade 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;
http://www.candidatoreal.com
Barramento
As estac
oes s
ao conectadas atraves de um cabo com difus
ao da informac
ao
necess
para todos os n
os. E
aria a adoc
ao de um metodo de acesso para
as estac
oes em rede compartilharem o meio de comunicac
ao, evitando
de f
colis
oes. E
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
estac
ao de origem, sendo ent
ao 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 h
a 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 estrelas conectadas em anel e as
arvores conectadas em barramento. Procuram explorar as melhores caractersticas das topologias envolvidas, procurando em geral realizar a conex
ao em um barramento u
nico de m
odulos
concentradores aos quais s
ao ligadas as estac
oes em configurac
oes mais
complexas e mais confi
aveis.
http://www.candidatoreal.com
285
http://www.candidatoreal.com
Captulo 29
Arquitetura de Redes
29.1
Organizac
ao em Camadas
http://www.candidatoreal.com
286
http://www.candidatoreal.com
Captulo 30
Protocolos de Rede
30.1
http://www.candidatoreal.com
30.2
O DHCP (Dynamic Host Configuration protocol) e um protocolo que objetiva realizar a configurac
ao din
amica de hosts em uma rede ou na Internet. O
DHCP consiste de dois componentes b
asicos que s
ao um protocolo para trocar
mensagens e transportar informac
oes relativas a configurac
oes do host e um
mecanismo para controlar a alocac
ao de enderecos de rede.
287
http://www.candidatoreal.com
http://www.candidatoreal.com
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:
Um cliente faz um broadcast de uma mensagem DHCPDISCOVER para
na sua rede local fsica. Caso o servidor de DHCP n
ao esteja naquela rede
fsica, os agentes relay encaminham as mensagens para frente atraves dos
roteadores;
Os servidores recebem a mensagem DHCPDISCOVER e respondem com
uma mensagem DHCPOFFER com as configurac
oes que ele pode fornecer;
O cliente recebe uma ou mais mensagem DHCPOFFER e escolhe qual
delas responder
a enviando um broadcast da mensagem DHCPREQUEST
indicando qual servidor escolheu e possivelmente adicionando novos requisitos de configurac
ao;
O servidor recebe a mensagem DHCPREQUEST e checa em sua base de
dados se e possvel fornecer as configurac
oes desejadas pelo host. Caso
seja possvel, envia uma mensagem com o DHCPACK, sen
ao envia um
288
http://www.candidatoreal.com
30.3
http://www.candidatoreal.com
arvore e
dividida em ZONAS n
ao-superpostas. Normalmente, cada zona tem um
servidor de nome principal (onde os registros s
ao mantidos em disco) e um
ou mais servidores secund
arios;
Resource Records (Registro de Recursos): A principal func
ao do DNS
e mapear nomes de domnios em registros de recursos (n
ao somente endereco IP). Um registro de recurso e uma tupla de cinco campos: Domain name (normalmente existem muitos registros, de tipos diferentes,
para cada domnio); Time to live (tempo de vida do registro); Class (IN
quando relacionado `
a Internet, outros c
odigos s
ao raramente encontrados); 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 capacidade 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 (chamados de AUTHORITH - os que detem os registros de recursos de servidores,
localizados em sua zona, que podem ser acessados publicamente); e servidores intermedi
arios;
289
http://www.candidatoreal.com
Tipo
SOA
A
NS
Significado
Incio de autoridade
Endereco IP de um host Inteiro de 32 bits
Troca de mensagens de correio
Servidor de nomes
CNAME
PTR
Nome can
onico
Ponteiro
HINFO
Descric
ao de host
TXT
Texto
MX
Valor
Par
ametro para essa zona
http://www.candidatoreal.com
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;
Apelidos de hospedeiros: implementado por meio do tipo de registro
CNAME (um hospedeiro com nome complicado pode ter um ou mais
apelidos);
Apelidos de servidores de correio: implementado por meio do tipo de
registro MX;
O DNS utiliza UDP/53 para resoluc
ao de nomes e TCP/53 para realizar
transferencia de zonas.
O nome completo de um host da rede e conhecido como FQDN - Full Qualifided Domain Name. Por exemplo, ftp.abc.com.br e um FQDN. ftp (a primeira
parte do nome) e o nome de host e o restante representa o domnio DNS no qual
est
a o host.
Dica Importante: O administrador do servidor DNS local pode desabilitar o
recurso de recurs
ao em um servidor DNS em situac
oes onde os usu
arios devem
estar limitados a utilizar apenas o servidor DNS da Intranet da empresa. Desta
forma, somente os enderecos internos (armazenados no disco do servidor DNS
local - AUTHORITH) ser
ao resolvidos.
O nslookup e uma ferramenta, comum ao Windows e ao Linux, utilizada
para se obter informac
oes sobre registros de DNS de um determinado domnio,
host ou IP. Podemos utilizar esta ferramenta em dois modos diferentes. No
modo direto, onde digitamos o comando nslookup e mais alguns par
ametros, e
no modo interativo, onde digitamos somente o comando nslookup e um prompt
e aberto para que sejam realizadas consultas ao servidor DNS. Alguns exemplos
de par
ametros/consultas s
ao: nslookup nome do host/nomes e enderecos do
servidor DNS e do host; nslookup -querytype=ANY nome do host/todas as
informac
oes disponveis do servidor DNS e do host.
http://www.candidatoreal.com
30.4
291
http://www.candidatoreal.com
http://www.candidatoreal.com
http://www.candidatoreal.com
30.5
http://www.candidatoreal.com
um protocolo destinado
O UDP e um dos principais protocolos da Internet. E
ao envio de mensagens custas. Por isso se diz que ele e um protocolo orientado a
mensagens e tambem stateless. N
ao proporciona nenhuma garantia de entrega
nem ordenac
ao. No entanto, e muito mais leve e eficiente do que o TCP. Esse
e um dos motivos pelos quais o UDP e muito utilizado em aplicac
oes sensveis
ao tempo.
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 outras. Em um servico de transmiss
ao de voz, a retransmiss
ao do dado n
ao e
um protou
til devido ao atraso, assim como em uma transmiss
ao de vdeo. E
colo da camada de transporte e possui um cabecalho simplificado com apenas
4 campos que s
ao:(i)Source Port;(ii) Destination Port;(iii)Lenght;(iv)Checksum.
Cada um e formado por 16 bits. Os campos Source Port e Checksum s
ao
opcionais. Na pr
atica, o campo e quase sempre utilizado, enquanto o campo
imporSource Port pode ser utilizado quando se deseja receber uma resposta. E
tante lembrar que na comunicac
ao UDP n
ao existem mensagens de confirmac
ao.
Quando essas ocorrem se devem a iniciativa da aplicac
ao que est
a utilizando o
UDP e n
ao das regras de comunicac
ao do protocolo em si. Exemplo: Uma
querie DNS e enviada ao servidor que por sua vez responde utilizando tambem
293
http://www.candidatoreal.com
30.6
http://www.candidatoreal.com
http://www.candidatoreal.com
Ap
os o tempo de transmiss
ao da mensagem resposta, o processo cliente
recebe a mensagem de resposta, extrai o arquivo da mensagem de resposta
e o apresenta.
Desta forma, para cada objeto transferido h
a a exigencia de abertura de
uma nova conex
ao TCP. Como geralmente as p
aginas Web s
ao consistidas de
um arquivo-base HTML e diversos objetos referenciados, este tipo de conex
ao
se mostrou um tanto quanto ineficiente.
O tipo de conex
ao persistente permite um aumento consider
avel na eficiencia
das trocas de mensagens. Neste tipo de conex
ao, o servidor deixa a conex
ao TCP
aberta ap
os enviar resposta. Ou seja, requisic
oes e respostas subseq
uentes entre
os mesmos cliente e servidor podem ser enviadas por meio da mesma conex
ao.
Em geral, o servidor HTTP fecha uma conex
ao quando ela n
ao e usada durante
certo tempo (configur
avel).
H
a duas vers
oes de conex
oes persistentes: SEM PARALELISMO e COM
PARALELISMO. Na vers
ao sem paralelismo, o cliente emite uma nova requisic
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 requisic
ao logo que encontra uma referencia, mesmo antes de receber uma
resposta a uma requisic
ao anterior (PIPELINE).
Uma outra forma de paralelismo e o cliente abrir conex
oes paralelas com um
servidor. Nos modos default, a maioria dos browsers abre de cinco a dez conex
oes
TCP paralelas, cada uma delas manipula uma transac
ao requisic
ao/resposta.
importante salientar que o servidor envia as respostas HTTP ao cliente
E
sem armazenar nenhuma informac
ao de estado sobre este. Se um determinado
cliente solicita o mesmo objeto duas vezes em um perodo de poucos segundos,
o servidor n
ao responde dizendo que acabou de enviar o objeto. Em vez disso,
ele envia novamente o objeto ao cliente. Em outras palavras, o HTTP e um
PROTOCOLO SEM ESTADO.
http://www.candidatoreal.com
Como j
a se pode notar, as mensagens s
ao de dois tipos: mensagem de requisic
ao e mensagem de resposta. Antes de apresentar os principais campos do
tipo de mensagem de requisicao, vamos a um exemplo tpico.
GET /somedir/page.html HTTP/1.1
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
do HTTP. A linha de cabecalho Host especifica o hospedeiro no qual o
VERSAO
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 vers
oes 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.
O formato geral de uma mensagem de requisic
ao e mostrado na figura abaixo.
http://www.candidatoreal.com
CODIGO
DE ESTADO; e uma MENSAGEM de texto correspondente. A linha
de cabecalho Connection: close indica que o servidor fechar
a a conex
ao ap
os o
envio da mensagem. A linha de cabecalho Date indica a hora e a data em que
a resposta foi criada e enviada pelo servidor (n
ao se refere `
a data de criac
ao do
objeto nem de sua u
ltima alterac
ao). A linha de cabecalho Server mostra por
qual tipo de servidor a mensagem foi criada. A linha de cabecalho Last-Modified
indica a hora e a data em que o objeto foi criado ou sofreu a u
ltima modificac
ao
(fundamental para a implementac
ao de servidores proxy). A linha de cabecalho
Content-Length indica o n
umero de bytes do objeto que est
a sendo enviado.
Por fim, a linha de cabecalho Content-Type mostra o tipo de objeto presente
296
http://www.candidatoreal.com
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:
1xx (Informational) - Raramente utilizados na pr
atica. Ex. 100 - Indicam
que servidor concorda em atender ou continuar atendendo requisic
ao do
cliente;
2xx (Successful) - Indicam que a requisic
ao foi corretamente recebida,
entendida, aceita e que o conte
udo (se houver) est
a sendo retornado. Ex.
200 - requisic
ao bem-sucedida; 204 - sem conte
udo;
3xx (Redirection) - Indica que o cliente deve procurar em outro lugar,
usando um URL diferente ou seu pr
oprio cache. Ex. 301 - a p
agina foi
movida; 304 - a p
agina no cache ainda e v
alida;
4xx (Client Error) - Indica um erro do cliente ao fazer a requisic
ao. Ex.
403 - p
agina;
5xx (Server Error) - Indica um erro do servidor ao processar a requisic
ao.
http://www.candidatoreal.com
http://www.candidatoreal.com
30.7
http://www.candidatoreal.com
299
http://www.candidatoreal.com
http://www.candidatoreal.com
DE INFORMAC
OES.
Neste tipo de protocolo, as conex
oes s
ao abertas pelas
por este motivo
m
aquinas que desejam enviar as informac
oes (cliente SMTP). E
que o u
ltimo passo da transferencia entre dois usu
arios, entre Agente de Usu
ario
destinat
ario e seu Servidor de Correio, n
ao pode ser feito via SMTP.
importante observar que o SMTP normalmente n
E
ao usa servidores de correio intermedi
arios para enviar correspondencia, mesmo quando os dois servidores est
ao localizados em lados opostos do mundo. Isto porque ele utiliza
o TCP como protocolo de transporte, que e orientado a conex
ao. Portanto,
geralmente os Servidores de Correio cliente e servidor se conectam diretamente
(virtualmente falando).
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 s
ao:
DATA: inicializa a transmiss
ao do corpo da mensagem;
300
http://www.candidatoreal.com
http://www.candidatoreal.com
30.8
301
http://www.candidatoreal.com
e ATUALIZAC
TRANSAC
AO
AO.
Durante a fase de autorizac
ao, o Agente de Usu
ario envia um nome de
usu
ario e uma senha (`
as claras) para autenticar o usu
ario. Na fase de transac
ao,
tambem nesta fase que o Agente
as mensagens s
ao transferidas ao cliente. E
de Usu
ario pode marcar/desmarcar as mensagens que dever
ao ser apagadas, e
obter estatsticas de correio. A fase de atualizac
ao ocorre ap
os o cliente ter
solicitado o encerramento da conex
ao. Nesse momento, o Servidor de Correio
apaga as mensagens que foram marcadas.
Em uma transac
ao POP3, o Agente de Usu
ario emite comandos e o Servidor
de Correio emite uma resposta a cada comando recebido. H
a 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:
USER: informa o nome de usu
ario;
PASS: informa a senha de usu
ario;
LIST: solicita a listagem das mensagens, e seus respectivos tamanhos,
presentes na caixa postal;
RETR: solicita o descarregamento de uma mensagem;
DELE: marca uma mensagem para ser deletada na fase de atualizac
ao;
QUIT: determina que o servidor envie um ok e ent
ao feche a conex
ao.
http://www.candidatoreal.com
302
http://www.candidatoreal.com
30.9
http://www.candidatoreal.com
303
http://www.candidatoreal.com
Outra caracterstica importante do IMAP e que ele tem comandos que permitem 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 h
a uma conex
ao de largura de banda estreia entre o Agente de Usu
ario
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.
Hoje, um n
umero cada vez maior de usu
arios est
a enviando e acessando
e-mails por meio de seus browsers Web. Esse tipo de servico e provido por
praticamente todos os sites ISPs, bem como universidades e empresas importantes. Com esse servico, o Agente de Usu
ario e um browser Web comum e o
usu
ario se comunica com sua Caixa Postal, tanto enviando quanto recebendo
mensagens, via HTTP, e n
ao via os protocolos SMTP, POP3 ou IMAP. Contudo, os Servidores de Correio continuam se comunicando entre si via SMTP.
Essa soluc
ao tambem e extremamente conveniente quando o usu
ario est
a em
tr
ansito. Pois, como ocorre com o IMAP, usu
arios podem organizar suas mensagens em uma hierarquia de pastas no servidor remoto. Na verdade, muitas
implementac
oes de e-mail pela Web utilizam um servidor IMAP para prover a
funcionalidade de pastas e busca. Nesse caso, o acesso `
as pastas e mensagens e
provido por scripts que rodam em um servidor HTTP e usam o protocolo IMAP
para se comunicar com um servidor IMAP.
http://www.candidatoreal.com
POP3
RFC 1939
110
PC do usu
ario
Offline
Pequeno
Mnima
N
ao
N
ao
Pequeno
N
ao
N
ao
Sim
304
IMAP
RFC 2060
143
Servidor
Online
Grande
Intensa
Sim
Sim
Grande
Sim
Possvel
N
ao
http://www.candidatoreal.com
30.10
30.11
http://www.candidatoreal.com
305
http://www.candidatoreal.com
30.12
http://www.candidatoreal.com
Assim como o HTTP, o FTP tambem usa o TCP como protocolo de camada de transporte. Contudo, h
a algumas diferencas importantes. Diferente
do HTTP, o FTP usa duas conex
oes TCP paralelas para transferir um ar DE CONTROLE e uma CONEXAO
DE DADOS. A
quivo: uma CONEXAO
primeira e utilizada para enviar informac
oes de controle, por exemplo, identificac
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 conex
oes distintas para controle e dados, dizemos
que o FTP envia informac
oes de controle FORA DA BANDA. Por padr
ao, as
portas utilizadas s
ao as 21 (conex
ao de controle) e 20 (conex
ao de dados).
Diferentemente do HTTP, o FTP precisa manter informac
oes de estado sobre cada usu
ario conectado ao servidor. Em particular, o servidor deve associar
a conex
ao de controle com uma conta de usu
ario especfica e tambem deve
monitorar o diret
orio corrente do usu
ario enquanto este passeia pela arvore do
diret
orio remoto. Portanto, diz-se que o FTP e um PROTOCOLO COM ESTADO.
Uma caracterstica bastante importante do FTP e o fato da conex
ao de controle permanecer aberta durante toda uma sess
ao enquanto e necess
aria uma
nova conex
ao de dados para transferencia da cada arquivo. Ou seja, se for
necess
aria a transferencia de dois arquivos entre os mesmos cliente e servidor,
em uma mesma sess
ao FTP, somente uma conex
ao de controle ser
a aberta, mas
ser
ao abertas duas conex
oes de dados, uma para cada arquivo.
306
http://www.candidatoreal.com
http://www.candidatoreal.com
307
http://www.candidatoreal.com
http://www.candidatoreal.com
http://www.candidatoreal.com
http://www.candidatoreal.com
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: n
ao permite visualizac
ao dos diret
orios; n
ao implementa autenticac
ao de
usu
arios; e n
ao implementa mecanismos de criptografia. As operac
oes de escrita/leitura s
ao descritas pelas figuras 30.5
http://www.candidatoreal.com
30.13
IP - Internet Protocol
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: Identifica 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 o crescimento das redes os enderecos IP est
ao se tornando um problema para os administradores da Internet. Apesar de matematicamente serem
possveis em torno de 4 bilh
oes de enderecos, muitos deles n
ao podem ser utilizados ou simplesmente s
ao desperdicados devido ao esquema de distribuic
ao
de enderecos inadequado baseado em classes. Um outro problema decorrente e
a sobrecarga das tabelas de roteamento. Para solucionar o problema surgiu o
IPv6 porem ate que a migrac
ao ocorra por completo ser
ao necess
arios alguns
anos segundo especialistas. Uma outra soluc
ao para este problema e chamada IP
Classless. O esquema de enderecamento padr
ao divide os enderecos nas classes
A,B e C onde a diferenca entre a quantidade de enderecos em cada uma das
classes e muito grande, fazendo com que ocorra um desperdcio muito grande
de enderecos. O esquema IP Classless utiliza uma mascara de 32 bits para
identificar a rede. Exemplos de mascara s
ao:
11111111
11111111
11111111
11111111
11111111
11111111
11111111
11100000
11111111
00000000
11111111
00000000
00000000 255.255.255.0
00000000 255.255.0.0
11111000 255.255.255.252
00000000 255.32.0.0
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.
O endereco de broadcast em uma rede IP e sempre o u
ltimo endereco da
faixa. Por exemplo: Na rede 10.0.0.0/24, o endereco de broadcast e 10.0.0.255,
enquanto em na rede 172.22.4.0/22 o endereco de broadcast seria 172.22.7.255.
http://www.candidatoreal.com
30.14
311
http://www.candidatoreal.com
http://www.candidatoreal.com
http://www.candidatoreal.com
http://www.candidatoreal.com
313
http://www.candidatoreal.com
Captulo 31
O Modelo de Refer
encia
OSI
O modelo de referencia OSI (Open Systems Interconnection) foi o primeiro passo
para a padronizac
ao internacional dos processos de comunicac
ao de sistemas
abertos. Sistemas abertos sao aqueles que est
ao abertos a comunicac
ao com
outros sistemas. Os princpios aplicados para se chegar ao modelo de 7 camadas
foram os seguintes:
Uma camada deve ser criada onde houver necessidade de abstrac
ao acional;
Cada camada deve executar tarefa bem definida;
O limite das camadas deve minimizar o fluxo de informac
oes sobre as
interfaces.
O modelo OSI n
ao e uma arquitetura, pois n
ao especifica servicos e protocolos exatos de cada camada. Ele apenas indica o que cada camada deve fazer.
As 7 camadas propostas no modelo OSI e suas respectivas func
oes s
ao:
http://www.candidatoreal.com
http://www.candidatoreal.com
http://www.candidatoreal.com
7. Camada de Aplicac
ao - Contem os protocolos que implementam de fato
as aplicac
oes dos usu
arios.
315
http://www.candidatoreal.com
Captulo 32
Roteamento
Tres importantes protocolos rote
aveis s
ao o IP, o IPX e o AppleTalk. O IP e o
protocolo oficial da Internet e faz parte da pilha de protocolos TCP/IP, por isso
e o mais importante. Embora a maior atenc
ao deve ser dada no IP, e importante saber que existem outros protocolos rote
aveis (IPX/SPX e o AppleTalk).
Protocolos como o IP, o IPX/SPX e o AppleTalk fornecem suporte `
a camada 3
e s
ao, portanto, rote
aveis.
http://www.candidatoreal.com
Entretanto, h
a protocolos que n
ao suportam a camada 3. Eles s
ao classificados como protocolos n
ao-rote
aveis. O mais comum desses protocolos n
aorote
aveis e o NetBEUI. O NetBEUI e um protocolo pequeno, r
apido e eficiente,
cuja execuc
ao se limita a um segmento. Para um protocolo ser rote
avel, ele deve
propiciar a habilidade de atribuir um n
umero de rede, assim como um n
umero
de host, a cada dispositivo individual. Alguns protocolos, como o IPX, exigem
apenas que voce atribua um n
umero de rede, porque usam um endereco MAC
de host para o n
umero fsico. Outros protocolos, como o IP, exigem que voce
forneca um endereco completo, alem de uma m
ascara de sub-rede. O endereco
de rede e obtido pela operac
ao AND do endereco com a m
ascara de sub-rede.
Os protocolos de roteamento determinam os caminhos que os protocolos
roteados seguem para seus destinos. Exemplos de protocolos de roteamento
incluem o Routing Information Protocol (RIP), o Interior Gateway Routing
Protocol (IGRP), o Enhanced Interior Gateway Routing Protocol (EIGRP) e o
Open Shortest Path First (OSPF). Os protocolos de roteamento permitem que
os roteadores conectados criem internamente um mapa de outros roteadores na
rede ou na Internet. Isso permite o roteamento (ou seja, selec
ao do melhor
caminho e comutac
ao). Tais mapas tornam-se parte da tabela de roteamento
de cada roteador.
Os dois tipos de protocolos de roteamento s
ao os Exterior Gateway Protocols (EGPs) e os Interior Gateway Protocols (IGPs). Os Exterior Gateway
Protocols roteiam os dados entre sistemas aut
onomos. Um exemplo de EGP e o
BGP (Border Gateway Protocol), o principal protocolo de roteamento externo
da Internet. Os protocolos RIP, OSPF, IGRP e EIGRP s
ao exemplos de IGPs.
O administrador de rede pode inserir as informac
oes manualmente no roteador.
316
http://www.candidatoreal.com
32.1
A maioria dos algoritmos de roteamento pode ser classificada como um dos dois
algoritmos b
asicos:
Vetor de Dist
ancias (Distance Vector );
http://www.candidatoreal.com
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 topologia prosseguem passo a passo, de roteador para roteador. Os algoritmos de vetor
de dist
ancia solicitam que cada roteador envie toda a sua tabela de roteamento para cada um dos vizinhos adjacentes. As tabelas de roteamento incluem
informac
oes sobre o custo total do caminho (definido pela sua metrica) e o endereco l
ogico do primeiro roteador no caminho para cada rede contida na tabela.
Loops de roteamento podem ocorrer se a convergencia lenta de uma rede em
uma configurac
ao nova provoca entradas de roteamento inconsistentes. Os algoritmos de roteamento de vetores de dist
ancia s
ao autocorrigveis, mas um problema de loop de roteamento pode exigir primeiro uma contagem ate o infinito.
Para evitar esse problema prolongado, os protocolos de vetores de dist
ancia definem o infinito como um n
umero m
aximo especfico. Esse n
umero se refere a
uma metrica de roteamento (por exemplo, um contador de saltos simples).
O segundo algoritmo b
asico usado para roteamento e o algoritmo de link
state. Os algoritmos de roteamento baseados em link state, tambem conhecidos como algoritmos SPF (shortest path first - primeiro caminho mais curto),
mantem um banco de dados complexo de informac
oes sobre a topologia. Enquanto o algoritmo de vetor de dist
ancia tem informac
oes n
ao especficas sobre
redes distantes e nenhum conhecimento sobre roteadores distantes, um algoritmo
de roteamento de link state mantem conhecimento completo sobre roteadores
distantes e de como est
ao interconectados. O roteamento de link state usa:
LSAs (Link-State Advertisements - aviso de estado do link);
Um banco de dados topol
ogico;
O algoritmo SPF e a
arvore SPF resultante;
http://www.candidatoreal.com
http://www.candidatoreal.com
32.1.1
Vetor de Dist
ancias vs. Estado do Link
http://www.candidatoreal.com
319
http://www.candidatoreal.com
32.2
Protocolos de Roteamento
32.2.1
32.2.2
Uma descric
ao pode ser determinac
ao de um caminho
otimo, pois esse Interior
Gateway Protocol realmente usa v
arios criterios para determinar a melhor rota
para um destino. Esses criterios incluem as medidas de custo, que s
ao subdivididas em itens como a velocidade de rota, o tr
afego, a confiabilidade e a seguranca.
H
a duas caractersticas principais no OSPF. A primeira, e um protocolo de
padr
ao aberto,. A segunda, e um protocolo baseado no algoritmo SPF (linkstate), tambem chamado de algoritmo de Dijkstra. O OSPF utiliza o conceito
de roteamento hier
arquico.
OSPF apresenta algumas caractersticas importantes que s
ao:
http://www.candidatoreal.com
N
ao h
a limite na contagem de hops;
O uso eficiente de VLSM e muito u
til na alocac
ao de enderecos IP;
OSPF usa multicast de IP para enviar atualizac
oes de link-state. Isto
garante menor processamento nos roteadores que n
ao est
ao escutando os
pacotes OSPF;
Apresenta melhor convergencia que o RIP;
Permite um melhor balanceamento de carga;.
Permite uma divis
ao l
ogica da rede, onde roteadores podem ser divididos
em
areas. Isto limita a explos
ao de atualizac
oes de link state por toda a
320
http://www.candidatoreal.com
32.2.3
IGRP e EIGRP
http://www.candidatoreal.com
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.
A Ethernet foi originalmente baseada na ideia de comunicar computadores
a partir de um cabo coaxial compartilhado que funcionava como um meio de
transmiss
ao em broadcast. Dessa forma, os computadores disputam o meio para
realizar uma transmiss
ao e podem ocorrer colis
oes. Para controlar o acesso
ao meio de transmiss
ao e as colis
oes, as redes Ethernet utiliza um protocolo
chamado CSMA/CD (Carrier Sense for Multiple Access with Colision Detection), que ser
a detalhado mais adiante.
No entanto, essa configurac
ao era problem
atica na medida que problemas
em qualquer parte do cabo interrompiam a comunicac
ao em toda a rede. Para
contornar esse problema, foram introduzidos os os hubs. Porem, em termos do
domnio de colis
ao, n
ao h
a diferencas entre um hub e um cabo u
nico compartilhado, o que imp
oe restric
oes pr
aticas ao tamanho da rede. A soluc
ao para
esse problema e a utilizac
ao de switches, que limitam o domnio de colis
ao `
a um
enlace ponto-a-ponto.
http://www.candidatoreal.com
33.1
Protocolo CSMA/CD
322
http://www.candidatoreal.com
33.2
Fast Ethernet
http://www.candidatoreal.com
O Padr
ao Fast Ethernet (IEEE 802.3u) foi lancado em 1995 como a evoluc
ao
do padr
ao Ethernet original. As principais modificac
oes introduzidas foram o
aumento da velocidade de transmiss
ao de 10 para 100 Mbps, a possibilidade
de transmiss
ao no modo full-duplex. O protocolo de acesso ao meio utilizado
e o CSMA/CD, assim como no padr
ao Ethernet. No modo full-duplex, um
adaptador est
a apto a receber e transmitir a qualquer momento e a utilizac
ao
do CSMA/CD e dispensada, na medida em que n
ao existem mais colis
oes nem
disputa pelo meio.
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
o tempo que o transmissor deve esperar antes de continuar com a transmiss
ao
(time-to-wait).
O padr
ao Fast Ethernet e subdividido em sub-padr
oes de acordo com o meio
de transmiss
ao utilizado. As principais sub-divis
oes do padr
ao Fast-Ethernet s
ao
as seguintes:
o sub-padr
100Base-TX: E
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
m
aximo 100 metros de comprimento. O esquema de codificac
ao utilizado
no padr
ao 100Base-TX e o MLT-3;
100Base-FX: Essa e uma vers
ao que utiliza um par de fibras
opticas multimodo com terminadores do tipo SC, ST ou MIC. O esquema de codificac
ao
utilizado e o NRZI;
100Base-SX: Assim como o padr
ao 100Base-FX, tambem utiliza um par de
fibras
opticas multimodo. O padr
ao SX difere do FX por utilizar
optica
de ondas de comprimento curto (short wavelength), o que o torna mais
acessvel. No entanto, o padr
ao FX permite alcancar dist
ancias maiores;
100Base-BX: Transmiss
ao e recebimento s
ao realizados por um u
nico cabo
de fibra, utiliza para isso, tecnicas de multiplexac
ao por comprimento e
onda.
33.3
Gigabit Ethernet
Em 1999, o padr
ao Gigabit Ethernet (IEEE 802.3z) extendeu a velocidade das
redes Ethernet de 100 Mbps para 1 Gbps. Assim como o Fast-Ethernet, o padr
ao
Gigabit permite operac
ao nos modos half e full-duplex e utiliza o mecanismo
de controle de fluxo baseado em pause frames.No modo half-duplex ainda e utilizado o protocolo CSMA/CD.
http://www.candidatoreal.com
http://www.candidatoreal.com
http://www.candidatoreal.com
325
http://www.candidatoreal.com
Captulo 34
Cabeamento Estruturado
34.1
Par Trancado
http://www.candidatoreal.com
igual ao UTP a
Shield Twisted Pair - STP (cabo com blindagem): E
diferenca e que possui uma blindagem feita com a malha do cabo, que o
protege mais que o UTP. Porem e mais caro, menos usado e necessita de
aterramento. Este genero de cabo, por estar revestido diminui as interferencias eletromagneticas externas, protege mais da umidade, etc.
Considerando que o fator principal para determinar o alcance m
aximo possvel
de um sistema e a atenuac
ao do sinal ao longo do cabo, foi necess
ario 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 subdivis
ao 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 n
ao 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
http://www.candidatoreal.com
34.2
Categorias 5e
327
http://www.candidatoreal.com
34.3
Categoria 6
A Categoria 6 pode ser vista como um aperfeicoamento no projeto de infraestrutura 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 opc
ao que oferece alta performance para a distribuic
ao horizontal 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 melhor performance em relac
ao a Categoria 5e. Ela permite ainda suporte para
aplicac
oes ATM e novas tecnologias como Ethernet a 10Gbps sem investimentos adicionais na infra-estrutura existente.
Os sistemas Categoria 6 foram projetados para atender basicamente os seguintes
objetivos:
manter boa relac
ao 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 futuros (redes de pr
oxima gerac
ao).
http://www.candidatoreal.com
34.4
328
http://www.candidatoreal.com
34.5
Cabeac
ao Estruturada Norma EIA/TIA
568
34.5.1
http://www.candidatoreal.com
Area
de Trabalho.
As instalac
oes de entrada no edifcio fornecem o ponto no qual e feita a interface entre a cabeac
ao externa e a cabeac
ao intra-edifcio e consistem de cabos,
329
http://www.candidatoreal.com
http://www.candidatoreal.com
Fibra Optica
Multimodo de 62,5/125 m
Dist
ancias M
aximas
800 metros(2625 pes) Voz
90 metros(295 pes) Dados*
2000 metros (6560 pes)
3000 metros (9840 pes)
http://www.candidatoreal.com
http://www.candidatoreal.com
331
http://www.candidatoreal.com
O arm
ario de telecomunicac
oes e a
area dentro de um edifcio que aloja
o equipamento do sistema de cabeamento de telecomunicac
oes. Inclui as terminac
oes mec
anicas e/ou cross-connects para o sistema de cabeamento horizontal e backbone.
O subsistema de Cabeac
ao Horizontal compreende os cabos que v
ao desde a
Tomada de Telecomunicac
oes da Area
de Trabalho ate o Arm
ario de Telecomunicac
oes. O subsistema de Cabeac
ao Horizontal possui os seguintes elementos:
Cabeac
ao Horizontal;
Tomada de Telecomunicac
oes, tambem chamado Sada de Informac
ao;
Terminac
oes de Cabo;
Cross-Connections.
Existem tres tipos de meios de transmiss
ao a serem considerados como opc
oes
para o cabeamento horizontal, todos para a dist
ancia m
axima de 90 metros:
Cabo UTP de 4-pares, 100 ohms (condutores s
olidos de 24 AWG)
Cabo STP de 2-pares, 150 ohms
http://www.candidatoreal.com
332
http://www.candidatoreal.com
ao:
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.
http://www.candidatoreal.com
34.6
http://www.candidatoreal.com
ser
ao apresentadas as categorias de cabeac
ao com tecnologia de par trancado
UTP e de fibra
optica.
34.6.1
Cabeamento UTP
Os cabos UTPs s
ao compostos de pares de fios trancados n
ao blindados de 100
Ohms. Este tipo de cabo, nos dias de hoje, s
ao projetados para alto desempenho
na transmiss
ao de dados ou voz. Segundo a norma, o cabo UTP pode ser
classificado em tres categorias como mostrado abaixo:
Categoria 3 - Utiliza cabos com pares de fios trancados s
olidos de bitola 24
AWG. Os fios AWG24 apresentam uma imped
ancia tpica de 100 Ohms,
a 16 MHz. Estes cabos s
ao utilizados para transmiss
ao de sinais ate 16
MHz.
Categoria 4 - Utiliza cabos com pares de fios trancados s
olidos de bitola
22 ou 24 AWG, com imped
ancia de 100 Ohms a 20 MHz. Este cabos s
ao
utilizados para transmiss
ao ate uma largura de banda de 20 MHz;
Categoria 5 - Utiliza cabos com pares de fios trancados sem blindagem
de bitola 22 ou 24 AWG e imped
ancia de 100 Ohms a 100 MHz. Este
tipo de categoria e recomend
avel para aplicac
oes com taxa de transmiss
ao
elevada, por exemplo, para transmiss
ao de imagens e dados a 100 Mbps.
A atenuac
ao e comumente derivada da medida do sinal de varredura da
freq
uencia na sada de um cabo de comprimento maior ou igual a 100 metros
(328 ft), ou seja, e a perda de potencia do sinal no meio, em func
ao da dist
ancia a
uma determinada freq
uencia. As perdas por diafonia ou NEXT s
ao comumente
derivadas de medidas de varredura de freq
uencia. Por exemplo, na comunicac
ao
de voz, seus efeitos s
ao sentidos por linhas cruzadas, isto e, vozes estranhas que
s
ao escutadas durante uma ligac
ao telef
onica. A imped
ancia caracterstica do
cabo UTP para Cabeac
ao Horizontal e Backbone e de 100 Ohms + 15% de 1
MHz ate a maior freq
uencia da categoria (16, 20 ou 100 MHz).
Em complemento, os Terminadores para cabo UTP devem utilizar contatos
por deslocamento por isolador (IDC). Os limites m
aximos para jumper/cord
oes
de ligac
ao s
ao:
20 m para cross-connect principal;
http://www.candidatoreal.com
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 r
apido 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
dist
ancias do que as fibras
opticas multimodo. A Figura 34.9 ilustra os tipos de
fibras
opticas empregados.
http://www.candidatoreal.com
http://www.candidatoreal.com
34.7
C
odigo de Cores para Sistemas de Cabe
c
ao
UTP
Figura 34.10: C
odigo de cores EIA/TIA 568A
http://www.candidatoreal.com
Um outro padr
ao de cores da cabeac
ao UTP, derivado da EIA/TIA 568A, o
padr
ao EIA/TIA 568B, n
ao muito utilizado nos dias atuais, define a seq
uencia
de cores da figura 34.11.
Figura 34.11: C
odigo de cores EIA/TIA 568B
336
http://www.candidatoreal.com
Captulo 35
http://www.candidatoreal.com
a respons
Estac
ao-base: E
avel pelo envio e recebimento dos dados de e
para os hospedeiros sem fio `
a ela associados. Exemplos de estac
ao-base
s
ao torres celulares, pontos de acesso de uma rede 802.11 etc. Em geral,
as estac
oes-base est
ao ligadas `
a uma infra-estrutura maior de rede (uma
LAN cabeada, a internet etc.) que e respons
avel pelo fornecimentos dos
servicos mais comuns como atribuic
ao de endereco e roteamento. Quando
isso acontece e dito que a rede est
a operando no modo de infra-estrutura.
Algumas tecnologias de rede sem fio permitem que os dispositivos m
oveis se
comuniquem diretamente sem a necesidade de uma estac
ao base. Esse modo de
operac
ao e chamado ad hoc. Nesse caso os pr
orprios hospedeiros sem fio devem
ser capazes de fornecer servicos b
asicos de atribuic
ao de endereco, roteamento,
resoluc
ao de nomes etc.
35.1
O padr
ao IEEE 802.11
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
http://www.candidatoreal.com
338
http://www.candidatoreal.com
O padr
ao 802.11 conta ainda com um mecanismo de reserva de canal que
ajuda a evitar colis
oes. O mecanismo e baseado no envio de quadros especiais
chamados RTS (Request to Send ) e CTS (Clear to Send ). Quando um transmissor deseja enviar um quadro de dados DATA, ele pode solicitar a reserva do
canal enviando um quadro RTS para a estac
ao-base. O RTS indica o tempo
total necess
ario para a transmiss
ao de DATA. Ao receber o RTS, a estac
aobase envia um quadro CTS em broadcast para toda a rede. O quadro CTS
tem como finalidade dar permiss
ao para o envio do quadro DATA e instruir os
demais transmissores a n
ao enviarem nada durante o tempo reservado.
35.1.2
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 analogicamente permitindo comunicacoes em maiores dist
ancias. Portanto, estes elementos operam na CAMADA FISICA do modelo OSI.
Estes equipamentos deixaram de ser largamente utilizados devido ao fato dos
hubs ativos, switches, gateways e roteadores terem passado a exercer tambem a
func
ao de amplificac
ao.
36.2
Hubs
http://www.candidatoreal.com
340
http://www.candidatoreal.com
36.3
Switches
Estes s
ao elementos de CAMADA DE ENLACE do modelo OSI tambem denominados de COMUTADORES. Geralmente eles funcionam tambem como repetidores. 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 controle de acesso para ser possvel detectar colis
oes e decidir o momento de realizar
transmiss
oes e/ou retransmiss
oes.
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 s
ao usados com maior freq
uencia para conectarem computadores individuais, enquanto as bridges s
ao mais usadas para conectarem redes.
Contudo, todas as caractersticas dos switches apresentadas na sec
ao anterior
tambem est
ao presentes nas bridges.
http://www.candidatoreal.com
36.5
Roteadores
S
ao elementos da CAMADA DE REDE do modelo OSI. Eles tambem geralmente funcionam como repetidores, ou seja, regeneram os sinais recebidos antes
de realizarem a comutac
ao. Assim como os switches e bridges, os roteadores
tambem s
ao COMUTADORES, porem com uma complexidade muito maior. O
que reflete no tempo de comutac
ao e tambem nos recursos disponveis.
Seu papel fundamental e escolher, por meio de algum algoritmo de roteamento, uma dentre as eventuais muitas rotas entre um n
o de origem e um n
o
de destino. Vale ressaltar que no caso dos switches e bridges a comutac
ao e
mais f
acil, visto que a rota e u
nica, o que nem sempre acontece no caso das
roteadores. Uma caracterstica muito importante dos roteadores e a capacidade
342
http://www.candidatoreal.com
36.6
Gateways
Estes elementos podem ser divididos em duas grandes classes: Gateways Conversores de Meio e Gateways Tradutores de Protocolos.
Os Conversores de Meio sao exatamente os roteadores multiprotocolo. Ou
seja, s
ao elementos de CAMADA DE REDE do modelo OSI.
http://www.candidatoreal.com
J
a os Tradutores de Protocolos podem ser elementos de CAMADA DE
Fundamentalmente os primeiros
TRANSPORTE ou CAMADA DE APLICAC
AO.
realizam convers
oes entre segmentos (unidade de camada de transporte) de protocolos distintos e os u
ltimos realizam convers
oes entre mensagens (unidade de
camada de aplicac
ao) de protocolos distintos. Vale ressaltar que durante as convers
oes o que se busca e manter a sem
antica dos dados. Por isso, nem sempre e
possvel converter um protocolo em outro.
343
http://www.candidatoreal.com
Captulo 37
Redes Multimdia
37.1
Qualidade de Servi
co
http://www.candidatoreal.com
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
Audio
por demanda
Alta
Media
Media
Baixa
Baixa
Baixa
Alta
Media
Baixa
Baixa
Alta
Alta
Telefonia
Baixa
Alta
Alta
Baixa
Videoconferencia
Baixa
Alta
Alta
Alta
http://www.candidatoreal.com
Moldagem de Tr
afego: Muitas vezes uma m
aquina pode transmitir pacotes
com espacamento n
ao uniforme, o que pode gerar congestionamento na
rede. A moldagem de tr
afego est
a relacionada `
a regulagem da taxa media
de transmiss
ao dos dados. Para realizar tal tarefa s
ao utilizadas tecnicas
como o algoritmo do balde furado (leaky bucket) ou o algoritmo do balde
de smbolos (token bucket);
Reserva de Recursos: Se for possvel fazer com que todos os pacotes de um
fluxo sigam a mesma rota, torna-se possvel reservar recursos para garantir que a capacidade necess
aria estar
a disponvel. Portanto, As aplicac
oes
s
ao respons
aveis por definir os seus requisitos quanto a utilizac
ao dos recursos de CPU, espaco em buffers e largura de banda. O conjunto desses
par
ametros e chamado especificac
ao de fluxo, e e com base nele que os
roteadores ao longo da rota decidem se v
ao ou n
ao aceitar o fluxo. Ao
longo do caminho da origem ao destino, os requisitos da especificac
ao
de fluxo podem ser alterados para baixo (ex: diminuic
ao da largura de
banda, diminuic
ao do pacote de tamanho m
aximo etc.). Ao fim do caminho origem destino os par
ametros est
ao ajustados conforme a capacidade
dos roteadores intermedi
arios, e a transmiss
ao pode ser iniciada ou n
ao.
Esse processo e conhecido como controle de admiss
ao;
Enfileiramento Priorit
ario: Utilizac
ao de m
ultiplas filas, cada uma com
uma prioridade asociada. Cada pacote que chega e direcionado `
a uma das
filas de acordo com sua classe. Os pacotes a serem transmitidos s
ao sempre
aqueles da fila de maior prioridade que ainda n
ao est
a vazia. Algumas
345
http://www.candidatoreal.com
implementac
oes permitem a interrupc
ao de uma transmiss
ao de um pacote
de prioridade mais baixa para transmiss
ao de um pacote de prioridade
masi alta (preempc
ao).
Varredura Cclica e WQF: Na varredura cclica os pacotes s
ao classificados e colocados em filas de sada da mesma forma que no enfileiramento
priorit
ario. No entanto, nessa disciplina o escalonador alterna o direito de
transmitir de forma cclica a cada perodo (Ex: fila 1, fila 2, fila 3, fila 1,
fila 2, fila 3 etc.). No WQF (Weighted Fair Queuing ou Enfileiramento
Justo Ponderado) o direito de transmitir e ponderado entre as filas. (Ex:
fila 1, fila 1, fila 1, fila 2, fila 3, fila 3, fila 1, fila 1, fila 1, fila 2, fila 3, fila
3 etc.).
37.2
http://www.candidatoreal.com
Aceitac
ao da chamada: Assim que recebe Tspec e Rspec o roteador pode
determinar se pode ou n
ao aceitar a chamada.
Na Internet, o protocolo RSVP (Resource Reservation Protocol ) e o protocolo de sinalizac
ao preferido Ele foi especialmente desenvolvido para servicos
integrados de Internet e permite que as pr
oprias aplicac
oes requeiram da rede
reservas de recursos necess
arios para seus diversos servicos. O RSVP e executado nos hosts, para definir as especificac
oes de fluxo, e nos roteadores,
para propagac
ao das especificac
oes pela rota e para manutenc
ao do estado da
conex
ao.
Outra caracterstica importante na arquitetura IntServ s
ao as classes de
servico oferecidos. As classes s
ao os modelos de qualidade de servico oferecidos. As duas grandes classes de servico do intServ s
ao: (i)Servico de Qualidade
Garantida e (ii) Servico de Rede de Carga Controlada.
A primeira grande desvantagem da arquitetura IntServ est
ao relacionadas
com a escalabilidade, uma vez que os roteadores precisam manter o estado de
cada um dos fluxos transmitidos, o que pode ocasionar sobrecarga em roteadores
de backbone. A segunda desvantagem do IntServ e que ela atende apenas um
n
umero pequeno de classes de servico.
346
http://www.candidatoreal.com
37.3
http://www.candidatoreal.com
Func
ao 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 criac
ao 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 tr
afego.
347
http://www.candidatoreal.com
Captulo 38
http://www.candidatoreal.com
38.1
X.25
38.2
Frame Relay
http://www.candidatoreal.com
38.2.1
Estrutura do Frame
http://www.candidatoreal.com
349
http://www.candidatoreal.com
http://www.candidatoreal.com
38.2.2
Considere a transmiss
ao de um datagrama IP entre dois sistemas finais que est
ao
em duas redes Ethernet interconectadas por uma rede Frame Relay. Quando um
quadro Ethernet chega ao roteador fonte, a placa Ethernet do roteador retira os
campos Ethernet e passa o datagrama IP `
a camada de rede. A camada de rede
passa o datagrama IP `
a placa de interface Frame Relay. Essa placa encapsula
o datagrama IP em um quadro Frame Relay. Ela tambem calcula o CRC (2
bytes) e insere o valor resultante no campo CRC. O campo de camada de enlace
(2 bytes) contem um campo de n
umero de circuito virtual de 10 bits. A placa
de interface obtem o n
umero do CV de uma tabela que associa n
umeros de rede
IP a n
umeros de CV. Ela ent
ao transmite o pacote.
A placa de interface transmite o pacote Frame Relay a um comutador Frame
Relay pr
oximo, de propriedade de um provedor de servicos Frame Realy. O
comutador examina o campo de CRC. Se o quadro tiver um erro, o comutador
o descartar
a. Se n
ao houver erro no quadro, o comutador usar
a o n
umero de
350
http://www.candidatoreal.com
38.3
Interligac
ao de Redes LAN
A interligac
ao das redes LAN de v
arios escrit
orios compondo uma rede WAN,
e uma aplicac
ao 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 escrit
orio
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 m
ultiplos circuitos dedicados.
http://www.candidatoreal.com
38.3.1
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 protocolos de dados, o FR F
orum e o ATM F
orum, os
org
aos respons
aveis 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 funcionalidade 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 Service 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 soluc
ao.
http://www.candidatoreal.com
38.3.3
352
http://www.candidatoreal.com
http://www.candidatoreal.com
353
http://www.candidatoreal.com
Captulo 39
VLANs
39.1.1
Defini
c
ao
http://www.candidatoreal.com
39.1.2
Protocolo 802.1q
http://www.candidatoreal.com
http://www.candidatoreal.com
355
http://www.candidatoreal.com
Captulo 40
Redes ATM
Uma rede ATM (Asyncronous Transfer Mode) tem como principal caracterstica
o fato de ser orientada a conex
ao, Portanto, antes do incio da transmiss
ao de
dados e necess
ario que todos os roteadores entre a origem e o destino registrem a
existencia da conex
ao e reservem recursos para ela. Essas conex
oes s
ao chamadas
de circuitos virtuais, que podem ser din
amicos (Switched Virtual Circuit - SVC)
ou permanentes (Permanent Virtual Circuit - PVC). O protocolo de sinalizac
ao
utilizado para estabelecimento das conex
oes e o Q.2931.
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) ??.
VPI (Virtual Path Identifier ): representa o n
umero da rota virtual ate o
destinat
ario da informac
ao u
til;
VCI (Virtual Channel Identifier ):representa o n
umero do canal virtual
dentro de uma rota virtual especfica;
http://www.candidatoreal.com
356
http://www.candidatoreal.com
http://www.candidatoreal.com
http://www.candidatoreal.com
40.2
http://www.candidatoreal.com
358
http://www.candidatoreal.com
http://www.candidatoreal.com
Assim como em outras tecnologias de circuito virtual, o MPLS utiliza protocolos auxiliares para criar e desfazer suas conex
oes. Atualmente s
ao utilizados
o CR-LDP (Contraint-based Routing - Label Distribution Protocol ) e o RSVPTE (Resource Reservation Protocol - Traffic Engineering). Ambos realizam a
distribuic
ao de r
otulos com base em restric
oes de qualidade de servico, rotas
obrigat
orias etc.
Outra considerac
ao importante sobre a tecnologia MPLS e que, diferentemente 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 estabelecer 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
http://www.candidatoreal.com
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 baseiam 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 encapsulados que os do TCP/IP e podem ser substitudos com relativa facilidade.
O modelo TCP/IP n
ao e nem um pouco abrangente e n
ao consegue descrever
outras pilhas de protocolo que n
ao a pilha TCP/IP.
Uma diferenca explcita est
a no n
umero de camadas. O modelo OSI possui
sete e o TCP/IP possui quatro. Outra diferenca est
a na
area de comunicac
ao
sem conex
ao e orientada a conex
oes. Na camada de rede, o modelo OSI e
compatvel com a comunicac
ao sem conex
ao e orientada a conex
oes. No entanto,
na camada de transporte, o modelo aceita apenas comunicac
ao orientada a
conex
oes. O modelo TCP/IP s
o tem um modo de operac
ao na camada de rede
(sem conex
ao), mas aceita ambos os modos na camada de transporte.
360
http://www.candidatoreal.com
41.3
A arquitetura TCP/IP n
ao defini muito bem o que acontece nesta camada, apenas especifica que o host tem que se conectar `
a rede utilizando algum protocolo
para que seja possvel enviar pacotes IP. Esse protocolo n
ao e definido e varia
de host para host e de rede para rede.
Esta camada tambem e chamada de camada de abstrac
ao de hardware, pois
sua func
ao principal ser uma interface do modelo TCP/IP com os diversos tipos
de rede (X25, ATM, FDDI, Ethernet, Token Ring, Frame-Relay, etc.). Como
h
a uma grande variedade de tecnologias de rede, que utilizam diferentes velocidades, protocolos, meios de transmiss
ao, etc., esta camada n
ao e normatizada
pelo modelo TCP/IP, o que prove uma das grandes vantagens do modelo: a
possibilidade de interconex
ao e interoperac
ao de redes heterogeneas.
Os protocolos desta camada s
ao:
PPP (Point-to-Point Protocol): e um protocolo ponto a ponto utilizado
para transportar datagramas atraves de uma conex
ao serial entre dois dispositivos de rede, por exemplo, entre modems (do usu
ario e do provedor
de Internet). Ele aceita a detecc
ao de erros, negociac
ao de opc
oes, compactac
ao de cabecalhos e, opcionalmente, a transmiss
ao confi
avel com o
uso de um formato de quadro do tipo HDLC.
ARP (Address Resolution Protocol): e um protocolo utilizado para descobrir o endereco fsico (MAC) de uma m
aquina a partir de seu endereco
IP;
RARP (Reverse ARP): e um protocolo utilizado descobrir o endereco IP
de uma m
aquina a partir de um endereco fsico.
http://www.candidatoreal.com
41.4
Camada de Inter-Rede
A camada de Inter-Rede e a primeira normatizada pelo modelo TCP/IP. Conhecida tambem como camada Internet (Rede), esta camada define o protocolo
IP (Internet Protocol) respons
avel pelo enderecamento dos hosts e roteadores.
A tarefa desta camada e entregar pacotes IP onde eles s
ao necess
arios. O roteamento de pacotes e uma quest
ao de grande import
ancia nesta camada, assim
como a necessidade de evitar o congestionamento.
Alem do protocolo IP, a camada de Inter-Rede define alguns outros protocolos:
ICMP (Internet Control Message Protocol): e um protocolo utilizado para
transmiss
ao de mensagens de controle ou ocorrencia de problemas;
361
http://www.candidatoreal.com
41.5
Camada de Transporte
uma
A camada de transporte e o n
ucleo de toda a hierarquia de protocolos. E
camada fim a fim, isto e, uma entidade desta camada da m
aquina de origem s
o
se comunica com uma entidade par da m
aquina de destino. Sua func
ao e prover
uma transferencia de dados confi
avel e econ
omica entre a m
aquina de origem e
a m
aquina de destino, independente das redes fsicas em uso no momento.
Dois protocolos fim a fim s
ao definidos nesta camada. O primeiro deles,
o TCP (Transmission Control Protocol) e um protocolo orientado a conex
ao
confi
avel que permite a entrega sem erros de um fluxo de bytes, verificando se a
ordem e a seq
uencia dos dados recebidos e enviados est
ao corretas. O segundo
protocolo, O UDP (User Datagram Protocol) e um protocolo sem conex
ao e
n
ao-confi
avel, ou seja, n
ao oferece nenhuma garantia em relac
ao `
a entrega dos
dados ao destino.
Para distinguir entre v
arias aplicac
oes, a camada de Transporte associa um
identificador a cada processo de aplicac
ao. Esse identificador e chamado de
porta. Para uma aplicac
ao falarcom outra numa m
aquina remota, e preciso
conhecer n
ao apenas o endereco IP da m
aquina destino, mas tambem a porta
associada a cada aplicac
ao. O UDP e o TCP fornecem um conjunto de portas
que permite a m
ultiplos processos dentro de uma u
nica m
aquina usarem os
servicos providos pelo UDP e TCP simultaneamente. O protocolo TCP utiliza
o conceito de sockets para caracterizar uma conex
ao entre a origem e o destino.
O socket consiste no endereco IP da m
aquina e a porta.
http://www.candidatoreal.com
41.6
Camada de Aplica
c
ao
362
http://www.candidatoreal.com
http://www.candidatoreal.com
363
http://www.candidatoreal.com
Captulo 42
Camada de Aplica
c
ao
42.1
Proxy Cache
http://www.candidatoreal.com
Intermedi
ario: Geralmente utilizados em ambientes que constituem um
domnio administrativo (empresas, universidades etc.), uma vez que e
necess
aria a configuracao dos browsers. Esse tipo de proxy pode ainda
implementar outras func
oes como autenticac
ao e filtros de conte
udo.
Para que um proxy possa atender as requisic
oes dos usu
arios de forma correta e necess
ario que ele determine se um documento que est
a em cache e v
alido
ou n
ao. Para isso, os servidores proxy utilizam alguns campos do cabecalho das
respostas HTTP. O campo Max-Age, por exemplo, informa por quanto tempo
em segundos a resposta ser
a valida. Quando o documento em cache n
ao possui
a informac
ao max-age, o proxy pode utilizar o metodo GET em conjunto com o
campo If-Modified-Since (GET condicional) para solicitar ao servidor uma nova
c
opia do mesmo caso ele tenha sido modificado desde a data definida.
Os proxies podem ainda serem organizados de forma hier
arquica, de modo
que um proxy possa consultar outros sobre seu conte
udo e, baseado nos tempos de respostas, decide qual cache entregar
a um dado objeto. Para essa comunicac
ao s
ao utilizados protocolos como o ICP (Internet Cache Protocol ) e
HTCP (Hyper Text Caching Protocol ). Outro mecanismo de implementar a comunicac
ao entre proxies e utilizando o chamado Cache-Digest, que consiste de
um sum
ario do conte
udo do cache de um servidor que e trocado periodicamente
364
http://www.candidatoreal.com
http://www.candidatoreal.com
365
http://www.candidatoreal.com
Parte VII
http://www.candidatoreal.com
Ger
encia de Redes
366
http://www.candidatoreal.com
Captulo 43
O protocolo SNMP
O SNMP (Simple Network Management Protocol ) e um protocolo da camada de
aplicac
ao que facilita a troca de informac
oes de gerenciamento entre dispositivos
de rede. O SNMP e o padr
ao de fato para gerenciamento de redes.
Uma rede gerenciada por SNMP e composta basicamente por tres elementos
que s
ao: (i) os dispositivos gerenciados; (ii) os agentes de monitoramento e (iii)
os sistemas de gerenciamento de rede (Network Management Systems - NMSs).
Um dispositivo gerenciado e qualquer elemento da rede (hub, switch, roteador,
servidor etc.) que contenha um agente SNMP. Os disposivos gerenciados coletam e armazenam informac
oes e as tornam disponveis para os NMSs atraves
do protocolo SNMP. Essa informac
oes s
ao armazenadas nas chamadas MIBs
(Management Information Base).
Um agente e um software que reside em um dispositivo gerenciado e tem conhecimento sobre as informac
oes de gerenciamento e e repons
avel pela traduc
ao
dessas para um formato compatvel com o SNMP.
http://www.candidatoreal.com
http://www.candidatoreal.com
situac
oes n
ao previstas pelo protocolo SNMP. As traps s
ao enviadas utilizando
a porta UDP 162.
Um conjunto de dispositivos SNMP (disposiotivos gerenciados e NMSs) podem ser agrupados em comunidades. Uma mensagem SNMP originada por um
dispositivo SNMP que de fato pertence a comunidade SNMP referenciada e considerada uma mensagem SNMP autentica.
Atualmente existem duas vers
oes do protocolo SNMP que s
ao SNMPv1 e
SNMPv2. O SNMPv2 introduziu duas novas operac
oes que s
ao GETBULK e
INFORM. A GETBULK permite o NMS recuperar grandes blocos de dados
aumentando a eficiencia do protocolo, enquanto a operac
ao INFORM permite
a comunicac
ao entre dois NMSs na mesma rede.
43.1
http://www.candidatoreal.com
368
http://www.candidatoreal.com
http://www.candidatoreal.com
369
http://www.candidatoreal.com
Parte VIII
http://www.candidatoreal.com
Seguranca da Informa
c
ao
370
http://www.candidatoreal.com
Captulo 44
Polticas de Seguran
ca de
Informac
ao
http://www.candidatoreal.com
44.1
Polticas de Seguran
ca
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 ser
a.
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 possui 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 Gerenciamento da Seguranca da Informac
ao (SGSI) - e o resultado da aplicac
ao planejada
de objetivos, diretrizes, polticas, procedimentos, modelos e outras medidas administrativas que, de forma conjunta, definem como s
ao reduzidos os riscos para
seguranca da informac
ao.
44.2
Projeto de Seguran
ca
http://www.candidatoreal.com
Definic
ao de uma norma de seguranca;
Desenvolvimento de procedimentos para implantar a norma e uma estrategia de implementac
ao;
Implementac
ao, gerenciamento e auditoria dos procedimentos de seguranca.
44.3
Plano de Seguran
ca
http://www.candidatoreal.com
http://www.candidatoreal.com
44.4
Normas de Seguran
ca
44.4.1
ISO/IEC 17799
http://www.candidatoreal.com
17799 e a vers
ao brasileira da norma ISO, homologada pela ABNT em setembro
de 2001. A norma ISO e rigorosamente identica a norma BS7799. A norma
brasileira e a traduc
ao literal da norma ISO.
BS7799 - Brithish Standart 7799 - e uma norma de seguranca da informac
ao
destinada a empresas. Criada na Inglaterra, teve seu desenvolvimento iniciado
em 1995, dividindo-se em duas partes: A BS7799-1 e a BS7799-2. A BS7799-1
e a primeira parte da norma que contem uma introduc
ao, definic
ao de extens
ao
e condic
oes principais de uso da norma. Disponibiliza 148 controles divididos
planejada como um documento de referencia para
em dez partes distintas. E
implementar boas pr
aticasde seguranca na empresa.
A BS7799-2 e a segunda parte da norma e tem por objetivo proporcionar
uma base para gerenciar a seguranca da informac
ao dos sistemas das empresas.
Uma empresa que implante a norma BS/ISO acaba por constituir um ISMS. A
forma de como implementar um ISMS e descrita na norma BS7799-2.
As normas publicadas pela Organizac
ao Internacional de Normalizac
ao, a
ISO, tem uma grande aceitac
ao no mercado. Um exemplo disso e a norma
ISO 9001:2000, que trata da Gest
ao da Qualidade, considerada como a mais
difundida norma da ISO que existe no mundo. No caso da NBR ISO IEC
17799, que e um C
odigo de Boas Pr
aticas para a Seguranca da Informac
ao, a
sua aplicac
ao e um pouco mais restrita que a ISO 9001:2000, pois ela n
ao e uma
norma voltada para fins de certificac
ao.
Entretanto, a NBR ISO IEC 17799 pode ser usada pela maioria dos setores
da economia, pois todas as Organizac
oes, independentemente do seu porte ou
do ramo de atuac
ao, do setor p
ublico ou privado, precisam proteger suas informac
oes sensveis e crticas.
As principais recomendac
oes da NBR ISO IEC 17799 s
ao organizadas em 11
sec
oes:
Poltica de Seguranca de Informac
ao;
Organizando a Seguranca da Informac
ao;
Gest
ao de Ativos;
Seguranca em Recursos Humanos;
Seguranca Fsica e do Ambiente;
http://www.candidatoreal.com
374
http://www.candidatoreal.com
44.4.2
http://www.candidatoreal.com
27001 Define requisitos para estabelecer, implementar, operar, monitorar, revisar, manter e melhorar um Sistema de Gest
ao de Seguranca de In a norma usada para fins de certificac
formac
ao. E
ao e substitui a norma
a base para as Organizac
brit
ancia BS7799-2:2002. E
oes que desejam implementar um SGSI.
27002 Guia pr
atico de diretrizes e princpios gerais para iniciar, implementar,
manter e melhorar a gest
ao de SI em uma Organizac
ao. Os objetivos de
controle e os controles atendem aos requisitos identificados na an
alise de
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).
27004 Fornece diretrizes com relac
ao a tecnicas e procedimentos de medic
ao
para avaliar a efic
acia dos controles de SI implementados, dos processos
de SI e do SGSI. 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
http://www.candidatoreal.com
A norma ISO/IEC 27001 (Information Technology - Information Security Management Systems - Requirements) trata da implantac
ao de um processo de
gest
ao de seguranca da informac
ao (ISMS - Information Security Management
Systems). Esta norma em conjunto com a ISO/IEC 17799 (C
odigo de Boas
Pr
aticas da Gest
ao de Seguranca da Informac
ao) s
ao 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.
J
a 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 implementac
ao numa corporac
ao. Um fato importante e que s
o h
a 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 desenvolvimento), 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.
44.5
Procedimentos de Seguran
ca
http://www.candidatoreal.com
devem especificar como controlar incidentes (quer dizer, o que fazer e quem contatar se uma intromiss
ao for detectada), fazer auditoria e desenvolver o plano
de contingencia com objetivo de manter o neg
ocio sempre ativo.
Os procedimentos de seguranca podem ser comunicados aos usu
arios e administradores em turmas de treinamento lideradas por instrutores qualificados.
44.6
Arquitetura de Seguran
ca
http://www.candidatoreal.com
44.7
Classificac
ao de Informa
c
oes
http://www.candidatoreal.com
trat
a-la de acordo com sua classe, escolhendo mecanismos de seguranca mais
adequados.
A classificac
ao mais comum de informac
oes e aquela que as divide em 04
nveis:
P
ublicas ou de uso irrestrito As informac
oes e os sistemas assim classificados podem ser divulgados a qualquer pessoa sem que haja implicac
oes
para a instituic
ao. Exemplo: servicos de informac
ao ao p
ublico em geral,
informac
oes divulgadas a` imprensa ou pela internet.
Internas ou de uso interno Podem ser chamadas tambem de corporativas.
As informac
oes e os sistemas assim classificados n
ao devem sair do
ambito
da instituic
ao. Porem, se isto ocorrer, as conseq
uencias n
ao ser
ao crticas.
Exemplo: Servicos de informac
ao interna ou documentos de trabalho corriqueiros que s
o interessam aos funcion
arios.
Confidenciais Informac
oes e sistemas tratados como confidenciais dentro da
instituic
ao e protegidos contra o acesso externo. O acesso a estes sistemas e informac
oes e feito de acordo com sua estrita necessidade, isto
e, os usu
arios s
o podem acess
a-los se estes forem fundamentais para o
desempenho satisfat
orio de suas func
oes na instituic
ao. O acesso n
ao
autorizado a esses dados e sistemas pode comprometer o funcionamento
da instituic
ao, causar danos financeiros ou perdas de fatias do mercado
para o concorrente. Exemplo: Dados pessoais de clientes e funcion
arios,
senhas, informac
oes sobre vulnerabilidades de seguranca dos sistemas institucionais, contratos, balancos entre outros.
http://www.candidatoreal.com
378
http://www.candidatoreal.com
Captulo 45
Seguranca Fsica e L
ogica
45.1
Seguranca Fsica
http://www.candidatoreal.com
45.2
Seguranca L
ogica
45.2.1
http://www.candidatoreal.com
http://www.candidatoreal.com
45.2.2
380
http://www.candidatoreal.com
http://www.candidatoreal.com
381
http://www.candidatoreal.com
usu
arios e potencialmente milh
oes de arquivos espalhados pelos seus sistemas.
O gerenciamento das permiss
oes de cada um destes objetos em uma escala como
esta n
ao e um problema simples de se resolver, j
a que cada objeto possui sua
pr
opria informac
ao de acesso individual.
Por exemplo, quando um usu
ario e removido do sistema, costuma ser necess
ario
remover suas informac
oes de acesso a todos os objetos em que possua o acesso.
Da mesma forma, quando um objeto novo e criado, e necess
ario definir as suas
permiss
oes. Em grandes sistemas computacionais multi-usu
ario, essas quest
oes
pesam bastante.
Uma outra desvantagem tanto do MAC quanto do DAC e que e complicado
estender suas regras de acesso para incluir mecanismos de protec
ao e excec
oes
que acontecem normalmente em sistemas. Como exemplo, toma-se o caso de
um sistema hospitalar. Expressar a seguinte regra em sistemas com MAC ou
DAC tradicionais e difcil: Na maior parte do tempo, cada medico s
o tem acesso
aos dados dos seus pacientes. Quando estiver no seu turno na UTI, ele ter
a
tambem acesso aos pacientes que est
ao internados na UTI. Ao acabar seu turno,
perde este acesso adicional. A complexidade de se expressar esse tipo de comportamento faz com que acabe-se configurando os sistemas com protec
oes mais
relaxadas do que o estritamente necess
ario.
http://www.candidatoreal.com
http://www.candidatoreal.com
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:
Backup total Realiza uma c
opia de todos os dados para a mdia, n
ao importando o conte
udo do u
ltimo backup. seja, o atributo de arquivamento
e desmarcado ou redefinido. Uma fita atualizada de backup total pode
ser usada para restaurar um servidor completamente em um determinado
momento.
Backup incremental Salva os arquivos que foram alterados desde o u
ltimo
backup. Neste processo o novo arquivo e armazenado na mdia e o arquivo
original n
ao e removido da mdia. No processo de restaurac
ao devemos
ter o u
ltimo backup completo e dos os backups incrementais desde ent
ao.
http://www.candidatoreal.com
46.1
Meios de Armazenamento
Definida as necessidades b
asicas a serem atendidas devemos selecionar um do
tipos de armazenamento, que podem ser: on-line, Pr
oximos e off-line.
As mdias de armazenamento on-line consistem em discos rgidos ou arrays de discos. Estas mdias fornecem uma disponibilidade em tempo real e s
ao
normalmente utilizados para fornecer uma forma altrnativa de armazenamento.
Estas mdias n
ao substituem os backups offline.
O armazenamento pr
oximo e formado por Jukeboxes
oticos e c
opias locais, que est
ao rapidamente acessveis, normalmente fazem uso de rob
os para
384
http://www.candidatoreal.com
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 problemas tecnicos relativos `
a Internet.
White Hat (aka hacker etico) Hacker em seguranca, utiliza os seus conhecimentos 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 intenc
oes de um hacker de chapeu branco na
maioria dos casos, mas por vezes utiliza seu conhecimento para prop
ositos
menos nobres.
http://www.candidatoreal.com
http://www.candidatoreal.com
http://www.candidatoreal.com
387
http://www.candidatoreal.com
http://www.candidatoreal.com
47.1
Estrat
egias de combate `
a pragas eletr
onicas
47.1.1
Antivrus
http://www.candidatoreal.com
http://www.candidatoreal.com
389
http://www.candidatoreal.com
Captulo 48
Princpios de Criptografia
Em um processo de comunicac
ao, uma mensagem pode ser definida como um
conjunto de informac
oes que um remetente deseja enviar para um ou mais destinat
arios. O processo de modificar uma mensagem de forma esconder seu
conte
udo e chamado encriptac
ao. A ciencia que estuda a encriptac
ao e decriptac
ao de mensagens e chamada Criptografia. No incio, a criptografia era
utilizada com o u
nico intuito de garantir confidencialidade. Somente as pessoas
que conhecessem o processo de criptografia utilizada poderiam ler a mensagem.
Atualmente, a criptografia e utilizada para prover tambem as seguintes garantias:
Autenticac
ao: Provar a identidade dos participantes em um processo de
comunicac
ao;
Integridade: Permitir que o receptor verifique se a mensagem n
ao foi alterada ou corrompida ao longo do caminho;
http://www.candidatoreal.com
Incontestabilidade: Impedir que um remetente negue o envio de uma mensagem. A incontestabilidade tambem e chamada n
ao-rep
udio. Em outras
palavras, e possvel provar para um terceiro que uma mensagem s
o pode
ter sido gerada por um remetente especfico.
Um algoritmo de criptografia e uma func
ao matem
atica utilizada para encriptar e decriptar uma mensagem. Inicialmente, o segredo da comunicac
ao era
baseado no segredo do algoritmo de criptografia, de forma que para que duas se
comunicassem de forma segura, ambas precisavam conhecer o algoritmo. Nos
sistemas criptogr
aficos atuais o segredo de comunicac
ao e baseado no segredo de
uma chave de criptografia. A chave de criptografia e passada como par
ametro
para o algoritmo pra que esse possa criptografar ou descriptografar uma mensagem. Neste modelo, o algoritmo de criptografia e p
ublico, e somente aqueles
que conhecem a chave de criptografia utilizada para encriptar uma mensagem
s
ao capazes de decript
a-la.
O conjunto de valores que uma chave pode assumir e chamado espaco de
chaves (keyspace). Na Internet, por exemplo, atualmente s
ao utilizadas chaves
com comprimento de ate 4096 bits, o que permite escolher uma chave em um
conjunto de 24096 elementos. Portanto, utilizando uma chave com esse comprimento seria possvel criptografar uma mensagem de 24096 formas diferentes
390
http://www.candidatoreal.com
48.1
Tipos de Criptografia
As tecnicas de criptografia s
ao divididas em tres tipos principais que s
ao: (i)
Func
oes Hash; (ii) Criptografia Simetrica e (iii) Criptografia Assimetrica. O
tipo de garantia (autenticac
ao, integridade, n
ao-rep
udio e confiabilidade) que se
deseja no processo de comunicac
ao e o que determina qual o tipo de criptografia
que se deve utilizar. Os tipos de criptografia s
ao descritos a seguir:
Func
oes Hash: Func
oes matem
aticas que transformam um texto em uma
sequencia de caracteres de tamanho fixo (128, 160, 512 bits, por exemplo)
independente do tamanho do texto. A sequencia de caracteres geradas e
conhecida como resumo da mensagem (message digest). A seguranca das
func
oes hash se baseiam no fato delas serem func
oes s
o de ida. A sada
do processo de uma func
ao hash n
ao e dependente da entrada de uma
forma clara, o que na pr
atica torna impossvel alterar uma mensagem de
modo que o mesmo hash seja gerado e mensagem continue fazendo sentido.
Boas func
oes hash tambem devem garantir que seja computacionalmente
impossvel gerar a mensagem original a partir de seu hash;
http://www.candidatoreal.com
391
http://www.candidatoreal.com
48.2
http://www.candidatoreal.com
392
http://www.candidatoreal.com
Cifra
Autor
Blowfish
DES
IDEA
RC4
RC5
Rijndael
Serpent
Bruce Schneier
IBM
Massey e Xuejia
Ronald Rivest
Ronald Rivest
Daemen e Rijmen
Anderson, Biham,
Knudsen
IBM
Bruce Schneier
3DES
Twofish
Comprimento
da chave
1 a 448 bits
56 bits
128 bits
1 a 2048 bits
128 a 256 bits
128 a 256 bits
128 a 256 bits
168 bits
128 a 256 bits
Coment
arios
Velho e lento
Muito fraco para usar agora
Bom, mas patenteado
Algumas chaves s
ao fracas
Bom, mas patenteado
Melhor escolha
Muito forte
Segunda melhor escolha
Muito forte; amplamente utilizado
48.3
A criptografia de chave p
ublica ou criptografia assimetrica, foi criada em 1970.
Esse metodo funciona com uma chave para criptografar, e outra para descriptografar a mesma mensagem.No sistema de chave p
ublica, cada pessoa tem que
ter duas chaves, uma que fica publicamente disponvel, e outra, que deve ser
mantida em segredo. O algoritmo que se mantem ate hoje e o RSA, que e patenteado pela RSADSI (RSA Data Security Incorporated) nos Estados Unidos.
Para entender como funciona, observe abaixo:
As pessoas (A) e (C), escrevem mensagens, utilizando a chave p
ublica da
pessoa (B), note que, a partir desse momento somente ela, poder
a ler as
mensagens;
As mensagens s
ao enviadas a pessoa (B) atraves da Internet;
A pessoa (B), recebe as mensagens de (A) e (C), na qual ela usa a chave
privada para descriptografar;
http://www.candidatoreal.com
393
http://www.candidatoreal.com
48.4
T
ecnicas de Quebra de Criptografia
http://www.candidatoreal.com
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 func
oes 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 n
ao 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 func
oes hash s
ao utilizadas para a gerac
ao 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.
http://www.candidatoreal.com
395
http://www.candidatoreal.com
49.2
Protocolos de Autentica
c
ao
A autenticac
ao e a tecnica atraves de qual um processo confirma que seu parceiro
na comunicac
ao e quem deve ser e n
ao um impostor.
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 saiba, um n
umero de identificac
ao pessoal ou uma senha
(autenticac
ao tipo 1).
Algo que voce tenha, um cart
ao de banco ou um cart
ao com chip (autenticac
ao tipo 2). Em alguns casos, esses dispositivos geram senhas automaticamente 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
Autentica
c
ao baseada em uma chave secreta compartilhada
http://www.candidatoreal.com
396
http://www.candidatoreal.com
49.3
Certificado Digital
Um certificado digital, ou identidade digital, pode ser visto como uma carteira
de identidade para uso na internet. Tecnicamente, um certificado digital e um
conjunto de dados (um arquivo), assinado digitalmente pela autoridade certificadora e contento tipicamente informac
oes como: Chave p
ublica do certificado;
Nome e endereco de e-mail do dono do certificado; Nome e assinatura digital da
autoridade certificadora; Privilegios de acesso a sites seguros; Outras.
Uma Autoridade Certificadora e uma entidade de confianca que administra
a gest
ao de certificados digitais atraves da emiss
ao, revogac
ao e renovac
ao dos
mesmos por aprovac
ao individual. Uma Autoridade Certificadora pode emitir
diferentes tipos de certificados, atribuindo diferentes nveis de confianca a cada
tipo. Para cada tipo de certificado e utilizado um processo diferente para realizar
a verificac
ao da identidade do solicitante.
O padr
ao para descrever certificados e o X.509 (pela ITU). Um modo diferente de certificar chaves p
ublicas e o PKI (Public Key Infrastructure). Uma
PKI tem v
arios componentes, incluindo usu
arios, CAs, entidades de registro,
certificados e diret
orios. A func
ao e fornecer um modo de estruturar esses componentes e definir padr
oes para os v
arios documentos e protocolos. Uma forma
particularmente simples de PKI e uma hierarquia de CAs.
Um certificado digital e um arquivo de computador que contem um conjunto
de informac
oes referentes a entidade para o qual o certificado foi emitido (seja
uma empresa, pessoa fsica ou computador) mais a chave p
ublica referente a
chave privada que acredita-se ser de posse unicamente da entidade especificada
no certificado. Um certificado padr
ao X.509 contem os seguintes campos:
Vers
ao Contem a vers
ao do certificado X.509, atualmente vers
ao 3
N
umero serial Todo certificado possui um, n
ao e globalmente u
nico, mas
u
nico no
ambito de uma AC, ac LCRs usam o serial para apontar quais
certificados se encontram revogados
Tipo de algoritmo Contem um identificador do algoritmo criptogr
afico usado
pela AC para assinar o certificado juntamente com o tipo de func
ao de
hash criptogr
afica usada no certificado
Nome do titular Nome da entidade para o qual o certificado foi emitido
http://www.candidatoreal.com
http://www.candidatoreal.com
http://www.candidatoreal.com
Atributos ou extens
oes A vasta maioria dos certificados X.509 possui campos chamados extens
oes (OID) que proveem algumas informac
oes extras, como cadastros adicionais do titular e do emitente, especificac
oes
de prop
osito do certificado e etc.
398
http://www.candidatoreal.com
Captulo 50
Seguranca em diversas
camadas
50.1
Em 1995, a ent
ao dominante do mercado de browsers, Netscape, resolveu introduzir um pacote de seguranca chamado Secure Sockets Layer (SSL), para
atender demandas por conex
oes mais seguras na internet. O SSL se tornou um
padr
ao e ate hoje e utilizado para prover conex
oes seguras. O SSL est
a posicionado entre a camada de transporte e a camada de aplicac
ao da pilha TCP/IP
e funciona provendo servicos de autenticac
ao do servidor, comunicac
ao secreta
e integridade dos dados.
O SSL pode ser utilizado para prover seguranca na comunicac
ao de qualquer
aplicac
ao baseada em TCP. O uso do SSL com HTTP, geralmente e referenciado
como HTTPS (Secure HTTP ). O HTTPS geralmente utiliza a porta TCP 443,
ao inves da porta 80.
http://www.candidatoreal.com
http://www.candidatoreal.com
50.2
IPSec
A IETF sabia h
a muitos anos da carencia de seguranca na Internet. Para aument
a-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 torn
a-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 n
ao precisariam ser alteradas completamente.
Uma outra vis
ao e que os usu
arios n
ao conhecem seguranca, e portanto
n
ao seriam capazes de implement
a-la corretamente nos nveis de transporte ou
aplicac
ao. A partir desse princpio, IETF introduziu o IPSec.
O IPSec e uma sute de protocolos que foi desenvolvida para proporcionar
autenticac
ao, confidencialidade e integridade dos dados no nvel de rede. Todos
os servicos oferecidos pelo IPSec s
ao baseados em criptografia de chave simetrica
importante ressaltar que o projeto
porque o alto desempenho e importante. E
do IPSec e independente do algoritmo de criptografia utilizado, de modo que a
quebra de um algoritmo n
ao represente o fim da utilidade do projeto.
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, ser
ao necess
arias duas
SAs. Para o estabelecimento de chaves, o IPSec utiliza um procolo chamado
IKE (Internet Key Exchange).
http://www.candidatoreal.com
400
http://www.candidatoreal.com
http://www.candidatoreal.com
50.3
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
http://www.candidatoreal.com
http://www.candidatoreal.com
http://www.candidatoreal.com
50.4
403
http://www.candidatoreal.com
http://www.candidatoreal.com
http://www.candidatoreal.com
do iptables.
50.4.1
50.4.2
http://www.candidatoreal.com
405
http://www.candidatoreal.com
50.4.3
Firewall Stateful
Um firewall de filtro de pacotes e dito um firewall sem estado. Isso porque ele
trata cada um dos pacotes que atravessam a interface de forma independente.
Na segunda sequencia de regras, por exemplo, foram necess
arias duas regras
para garantir que os hosts da rede 192.168.10.0/24 pudessem acessar a porta
TCP 23 de um outro host qualquer. Cada uma das regras tratava os pacotes em
um determinado sentido. Em uma conex
ao TCP, sempre existe fluxo de dados
em ambos os sentidos entre origem e destino.
As conex
oes TCP s
ao 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.
Ao contr
ario dos firewalls de filtro de pacotes, um firewal stateful n
ao filtra
pacotes de forma isolada, mas sim com base em informac
oes sobre o estado
de conex
oes pre-estabelecidas. Para um firewall stateful, a comunicac
ao bidirecional e implcita, de forma que n
ao h
a necessidade de se escrever regras de
filtragem para cada um dos sentidos. A seguir s
ao mostrados alguns exemplos
de ragras para um firewall stateful utilizando a sintaxe do iptables.
http://www.candidatoreal.com
http://www.candidatoreal.com
50.4.4
Application Gateway
http://www.candidatoreal.com
50.4.5
A arquitetura de implementac
ao do firewall tambem e um fator de an
alise importante. Por arquitetura de implementac
ao entende-se a posic
ao relativa que
o firewall possui em relac
ao a`s redes protegidas, aos recursos de conex
ao e `
as
redes externas.
A an
alise da arquitetura de implementac
ao de firewalls traz os conceito de
Bastion Host e DMZ, que precisam ser explicados: Bastion Hosts s
ao servidores
cuidadosamente implementados e de alta seguranca que mantem contato com a
rede externa, conseq
uentemente estando expostos aos riscos de ataques. DMZs
s
ao
areas intermedi
arias entre a rede interna e externa onde os servidores que
recebem tr
afego externo est
ao 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
http://www.candidatoreal.com
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 d
a acesso da rede interna `
a DMZ e roteia as requisic
oes 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.
http://www.candidatoreal.com
50.5
Sistemas de Detec
c
ao de Intrus
ao (IDS)
Detecc
ao de intrus
ao e uma tentativa de monitorar estac
oes ou fluxos de rede
com o intuito de descobrir ac
oes de intrusos. Mais especificamente, um SDI
tenta detectar ataques ou usos impr
oprios e alerta o respons
avel pela rede do
acontecimento. O funcionamento e an
alogo ao de um sistema de detecc
ao de
ladr
oes, usado em casas para se proteger de eventuais incidentes. O sistema
domiciliar inicialmente precisa ser configurado e ter especificado o que monitorar
(janelas, portas, movimento) e para quem alertar ou chamar em caso de uma
invas
ao (polcia, donos da casa). No sistema computacional, tambem precisamos
determinar se queremos monitorar fluxos de rede, processos internos de uma
estac
ao ou servidor, ou ainda um sistema de arquivos, por exemplo. E devemos
deixar claro para quem enviar os alarmes ou relat
orios e como estes devem ser
enviados, tendo como alternativas o e-mail, pager, ou ainda um pacote SNMP.
Teoricamente, esse tipo de sistema seria somente passivo, observando pacotes
na rede ou processos em uma estac
ao de trabalho e alertando os respons
aveis.
Porem, alguns sistemas possuem a habilidade de reagir `
as invas
oes, deixando
de ser um sistema exclusivamente de detecc
ao e pode ser definido como um
Sistema de Prevenc
ao de Intrus
ao (IPS). Exemplos de reac
oes podem ser um
fechamento de conex
ao, um bloqueio no firewall, execuc
ao de algum arquivo, ou
ainda a desabilitac
ao de uma conta.
Os sistemas de detecc
ao de intrus
ao servem, como j
a foi dito, para indicar
que alguma tentativa de intrus
ao foi feita no sistema. Para isso, existem dois
tipos diferentes de detecc
ao que podem ser empregados, os baseados na rede
e os baseados na estac
ao. Cada um tem uma maneira distinta de abordar
o problema e o modo como isso e feito traz vantagens e desvantagens para
cada tipo. Resumidamente, podemos dizer que os sistemas baseados na estac
ao
monitoram dados em uma determinada m
aquina, sejam eles processos, sistemas
de arquivos e o uso de CPU, por exemplo; enquanto que os sistemas baseados
na rede observam todos os dados trocados entre estac
oes.
50.6
50.6.1
WEP
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.
No entanto, o WEP n
ao preve nenhum mecanismo de distribuic
ao de chaves
e n
ao possui autenticac
ao individual. Isso significa dizer que todos os hosts sem
fio utilizam a mesma chave simetrica para se autenticar no AP. Alem disso, o
processo de cifragem WEP 802.11 ainda apresenta outras falhas graves.
No WEP, cada um dos frames tansmitidos e criptografado com o algortimo
RC4, que utiliza uma chave de 64 bits para gerar um fluxo de chaves de tamanho
1 byte (KiIV ). Cada chave do fluxo gerado e utilizada para cifrar um byte de um
frame enviado fazendo um XOR. A gerac
ao do fluxo de chaves e determinstica,
ou seja, uma chave de 64 bits sempre gera a mesma sequencia de chaves de um
byte.
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 reutilizac
ao 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 pr
oxima 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 seguranca 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:
http://www.candidatoreal.com
410
http://www.candidatoreal.com
Parte IX
http://www.candidatoreal.com
Alta Disponibilidade
411
http://www.candidatoreal.com
Captulo 51
Soluc
oes de
Armazenamento RAID,
SAN e NAS
51.1
RAID
http://www.candidatoreal.com
51.1.1
RAID 0
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.
http://www.candidatoreal.com
http://www.candidatoreal.com
51.1.2
RAID 1
http://www.candidatoreal.com
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 operac
oes de leitura e escrita s
ao realizadas.
http://www.candidatoreal.com
http://www.candidatoreal.com
51.1.4
RAID 3
http://www.candidatoreal.com
http://www.candidatoreal.com
(51.1)
Supondo que ocorre uma avaria no disco X0, adicionando X3 xor X0 a ambos
os lados da equac
ao obtemos:
X0 = X3(n) xor X2(n) xor X1(n)
(51.2)
51.1.5
RAID 4
http://www.candidatoreal.com
417
http://www.candidatoreal.com
51.1.6
RAID 5
http://www.candidatoreal.com
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 informac
ao sobre paridade.
418
http://www.candidatoreal.com
51.1.7
RAID 6 (Redund
ancia de P+Q)
http://www.candidatoreal.com
51.1.8
Tipos Hbridos
Dadas as limitac
oes de cada nvel RAID, diversos criadores de dispositivos de
armazenamento tentaram criar novas formas RAID combinando caractersticas
de cada um dos nveis originais.
419
http://www.candidatoreal.com
http://www.candidatoreal.com
51.1.9
51.2
A SAN poderia ser definida como uma rede de alta velocidade, comparada `
a
LAN (Local Area Network), que permite o estabelecimento de conex
oes diretas
entre os dispositivos de armazenamento e processadores (servidores) centralizados `
a extens
ao suportada pela dist
ancia das fibras
oticas. A SAN pode ser vista
como uma extens
ao do conceito que permite que os dispositivos de armazenamento sejam compartilhados entre servidores e interconectados entre si. Uma
SAN pode ser compartilhada entre servidores ou dedicada a um servidor local
ou remoto.
Outra definic
ao diz que SAN s
ao dois ou mais dispositivos se comunicando
via protocolo serial SCSI, tal como Fibre Channel ou iSCSI. Segundo essa
definic
ao, uma LAN que trafega nada mais do que tr
afego de storage n
ao pode
ser considerada uma SAN. O que diferencia uma LAN de uma SAN (ou de uma
NAS) e o protocolo que e usado. Assim, se o tr
afego de storage trafega em uma
LAN atraves do protocolo iSCSI, ent
ao essa LAN pode ser considerada uma
SAN. Entretanto, simplesmente enviar dados de backup atraves de uma LAN
dedicada isso n
ao a torna uma SAN. Enfim, uma SAN e uma rede que usa um
protocolo serial SCSI para transferir dados.
A figura 51.10 abaixo mostra uma vis
ao geral de uma SAN conectando v
arios
servidores a v
arios sistemas de armazenamento:
SANs criam novos metodos de conex
ao de armazenamento aos servidores.
Estes novos metodos prometem uma not
avel melhora em performance e disponibilidade. SANs s
ao usadas para conectar conjuntos de armazenamento compartilhados a v
arios servidores, e s
ao usadas por servidores em ambiente de
cluster para fail over. Elas podem interconectar discos ou fitas de mainframe a
servidores ou clientes de rede e podem criar caminhos paralelos de dados para
ambientes de computac
ao e de alta largura de banda. A SAN e uma outra rede
que difere das redes tradicionais, porque foi concebida a partir de interfaces de
armazenamento.
Alem disso, a SAN pode ser usada para contornar os conhecidos gargalos de
rede, pois suporta diretamente altas velocidades de transferencia de dados entre
420
http://www.candidatoreal.com
http://www.candidatoreal.com
51.2.1
http://www.candidatoreal.com
http://www.candidatoreal.com
51.2.2
Topologias de SAN
As SANs atuais s
ao todas construdas em uma topologia fsica de estrela. Um
switch e conectado ao storage e neles conectamos todos os outros servidores da
rede. A excec
ao fica com a ligac
ao ponto-a-ponto, como veremos a seguir.
Liga
c
ao ponto-a-ponto (point-to-point)
Para alguns n
ao e considerada uma topologia de SAN, uma vez que n
ao possui
escalabilidade alguma. Neste tipo de ligac
ao, os servidores s
ao ligados diretamente 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
http://www.candidatoreal.com
51.3
http://www.candidatoreal.com
http://www.candidatoreal.com
51.4
http://www.candidatoreal.com
Permite:
SAN: Diferentes servidores acessarem o mesmo drive de disco ou fita
de forma transparente para o usu
ario final.
NAS: Diferentes usu
arios acessarem o mesmo sistema de arquivos ou
ate um mesmo arquivo.
Substitui:
SAN: Os drivers de discos e fitas locais, ou seja, drivers conectados
diretamente ao servidor. Com SAN, centenas de sistemas podem
compartilhar o mesmo drive de disco ou fita.
NAS: Servidores Unix NFS e servidores NT CIFS que possibilitavam
sistemas de arquivos compartilhados em rede.
Aplicac
oes:
SAN:Processamento de aplicac
oes de banco de dados de miss
ao critica; Backup de dados centralizado; Operac
oes de recuperac
ao de desastres; Consolidacao de armazenamento.
NAS: Compartilhamento de arquivo em NFS e CIFS; Transferencia
de pequenos blocos de dados a longas dist
ancias; Acesso ao banco de
dados limitado somente a leitura.
Vantagens:
SAN: Alta disponibilidade; Confiabilidade na transferencia de dados;
Trafego reduzido na rede primaria; Flexibilidade de configurac
ao;
Alto desempenho; Alta escalabilidade; Gerenciamento centralizado;
Oferta de m
ultiplos fornecedores.
http://www.candidatoreal.com
http://www.candidatoreal.com
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, caracterstica 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 complemento, 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 n
ao 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 u
ltimo s
o 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
n
ao 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.
426
http://www.candidatoreal.com
Captulo 52
Clusters de servidores
Um cluster e um conjunto de m
aquinas independentes, chamadas n
os, que cooperam 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 u
nico sistema.
http://www.candidatoreal.com
52.0.1
Princpios de um Cluster
Para ser u
til, um cluster precisa seguir alguns princpios b
asicos:
427
http://www.candidatoreal.com
Comodidade: Os n
os em um cluster devem ser m
aquinas normais interconectadas por uma rede generica. O sistema operacional tambem deve
ser padr
ao, sendo que o software de gerenciamento deve ir acima dele como
uma aplicac
ao qualquer.
Escalabilidade: Adicionar aplicac
oes, n
os, perifericos e interconex
oes de
rede deve ser possvel sem interromper a disponibilidade dos servicos do
cluster.
Transparencia: O cluster, que e construdo com um grupo de n
os independentes fracamente agrupados, deve apresentar-se como um u
nico sistema
a clientes externos ao cluster. Aplicac
oes clientes interagem com o cluster
como se fosse um u
nico servidor com alta performance e/ou alta disponibilidade.
Confiabilidade: o cluster deve ter capacidade de detectar falhas internas
ao grupo, assim como de tomar atitudes para que estas n
ao comprometam
os servicos oferecidos.
Gerenciamento e Manutenc
ao: Um dos problemas dos clusters e sua manutenc
ao
e configurac
ao, que muitas vezes s
ao tarefas complexas e propensas a gerar
erros. Um mecanismo f
acil de configurac
ao e manutenc
ao do ambiente
deve existir a fim de que o cluster n
ao seja um grande sistema complexo
com um
arduo trabalho de administrac
ao.
52.0.2
Abstra
c
oes em um Cluster
Um cluster possui v
arios 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.
N
o: Como visto anteriormente, o n
o e a unidade b
asica do cluster; grupos de n
os formam um cluster. Em um cluster, um n
o comunica-se com
os outros atraves de mensagens sobre conex
oes de rede, e falhas em n
os
podem ser detectadas atraves de timeouts de comunicac
ao. Um n
o e um
sistema computacional unicamente identificado conectado a um ou mais
computadores em uma rede. Assim, um n
o tem quatro componentes principais:
http://www.candidatoreal.com
CPU;
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 n
o 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
52.0.3
Arquitetura de um Cluster
http://www.candidatoreal.com
http://www.candidatoreal.com
Camada de Qu
orum: determina qual partic
ao do cluster possui autorizac
ao para prosseguir com sua execuc
ao.
Servico de Barreiras: prove um servico de sincronizac
ao global ao cluster.
Servico de Nomes: prove um servico de nomes global ao cluster.
52.0.4
http://www.candidatoreal.com
http://www.candidatoreal.com
52.0.5
http://www.candidatoreal.com
http://www.candidatoreal.com
http://www.candidatoreal.com
Tipos de Armazenamento
Dependendo da escala, performance, funcionalidade e flexibilidade do cluster,
s
ao necess
arias diferentes implementac
oes 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,
caractersticas de locking s
ao desejadas. Esta implementac
ao e bastante comum
em clusters assimetricos.
http://www.candidatoreal.com
http://www.candidatoreal.com
52.0.6
http://www.candidatoreal.com
http://www.candidatoreal.com
Redes de estac
oes (NOW): s
ao arquiteturas que correspondem a um conjunto de estac
oes de trabalho interligadas atraves de uma rede local (LAN)
e que servem como plataforma de execuc
ao de aplicac
oes distribudas.
Nesse tipo de arquitetura, a comunicac
ao e feita por troca de mensagens
entre as diversas aplicac
oes que executam na rede. Esse tipo de arquitetura e largamente utilizado, tanto comercialmente como academicamente.
Como exemplo, podemos citar Estac
oes Sun interligadas por rede Ethernet.
Nesse contexto, um cluster pode ser caracterizado como uma plataforma alternativa, aliando o poder e a velocidade de processamento das arquiteturas dedicadas (MPPs) com a disponibilidade de recursos (hardware e software baratos)
das redes de estac
oes.
Quando comparados com arquiteturas dedicadas, os clusters de multiprocessadores simetricos apresentam um grande n
umero de vantagens. Eles s
ao
relativamente baratos (seus custos s
ao menores que o custo de um supercomputador 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 melhoramento. Eles tambem permitem um desenvolvimento progressivo de aplicac
oes,
434
http://www.candidatoreal.com
http://www.candidatoreal.com
Arquiteturas assimetricas: possuem nodos diferentes. Podem possuir nodos homogeneos, mas com diferentes velocidades e capacidades de processamento ou nodos homogeneos com diferentes recursos de computac
ao
(ex.: mem
oria). Arquiteturas dessa classe dificultam possveis an
alises de
desempenho.
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 m
aquinas, sob pena de se tornar congestionado. Estas
soluc
oes podem-se especializar em pequenos grupos sobre os quais se faz um
balanceamento de carga: utilizac
ao do CPU, de armazenamento ou de rede.
Qualquer uma delas introduz o conceito de clustering, ou server farm, j
a que o
balanceamento ser
a, provavelmente, feito para v
arios servidores.
53.1
http://www.candidatoreal.com
53.2
Balanceamento de rede
436
http://www.candidatoreal.com
53.2.1
NAT
Em redes de computadores, NAT, Network Address Translation, tambem conhecido 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).
Utilizamoe s seguinte situac
ao como exemplo. A estac
ao com IP 192.168.1.13
faz uma requisic
ao, por exemplo, para um endereco externo. O pacote sai
com o IP da estac
ao e corre em direc
ao ao intermediador entre o ambiente interno e externo, o gateway. O gateway, atraves do protocolo NAT mascara o
IP da estac
ao com seu IP (200.158.112.126 - que e v
alido na internet) assim
fazendo com que o pacote seja entregue no destino solicitado pela estac
ao. No
retorno do pacote, ele parte do endereco externo, chega a nossa rede no servidor
NAT (200.158.112.126) e l
a volta ate o IP da estac
ao assim chegando `
a estac
ao
(192.168.1.13).
http://www.candidatoreal.com
53.2.2
IP Tunneling
Um IP Tunnel e um termo tecnico para designar o encapsulamento de um pacote IP dentro de outro, com o prop
osito de simular uma conex
ao fsica entre
duas redes remotas atraves de uma outra rede.
Este processo e frequentemente usado com o protocolo IPsec para criar um
meio de conectar duas redes usando uma VPN. O meio para que essas duas
redes se vejam e, tipicamente, a Internet. Dessa forma o fator limitador que
e a dist
ancia e praticamente eliminado, permitindo a utilizadores de uma rede
disp
or dos recursos de outra rede remota como se fossem locais.
437
http://www.candidatoreal.com
53.2.3
Direct Routing
53.3
Algoritmos de balanceamento
http://www.candidatoreal.com
438
http://www.candidatoreal.com
53.4
Balanceamento de CPU
Este tipo de balanceamento e efectuado pelos sistemas de processamento distribudo e consiste, basicamente, em dividir a carga total de processamento pelos
v
arios processadores no sistema (sejam eles locais ou remotos).
53.4.1
http://www.candidatoreal.com
439
http://www.candidatoreal.com
http://www.candidatoreal.com
440
http://www.candidatoreal.com
http://www.candidatoreal.com
No padr
ao MPI, uma aplicac
ao e constituda por um ou mais processos
que se comunicam, acionando-se func
oes para o envio e recebimento de mensagens entre os processos. Inicialmente, na maioria das implementac
oes, um
conjunto fixo de processos e criado. Porem, esses processos podem executar
diferentes programas. Por isso, o padr
ao MPI e algumas vezes referido como
MPMD (multiple program multiple data). Elementos importantes em implementac
oes paralelas s
ao a comunicac
ao de dados entre processos paralelos e o
balanceamento da carga. Dado o fato do n
umero de processos no MPI ser normalmente fixo, neste texto e enfocado o mecanismo usado para comunicac
ao de
dados entre processos. Os processos podem usar mecanismos de comunicac
ao
ponto a ponto (operac
oes para enviar mensagens de um determinado processo
a outro). Um grupo de processos pode invocar operac
oes coletivas (collective)
de comunicac
ao para executar operac
oes globais. O MPI e capaz de suportar
comunicac
ao assncrona e programac
ao modular, atraves de mecanismos de comunicadores (communicator) que permitem ao usu
ario MPI definir m
odulos que
encapsulem estruturas de comunicac
ao interna.
441
http://www.candidatoreal.com
Parte X
http://www.candidatoreal.com
Sistemas Operacionais
442
http://www.candidatoreal.com
Captulo 54
Ambiente Microsoft
Windows 2000/2003
54.1
A implementac
ao do DHCP no Windows 2000/2003 Server e baseada em padr
oes
definidos pelo IETF - Internet Engineering Task Force. Por padr
ao, este servico
e instalado durante a instalac
NAO
ao tpica do Windows 2000/2003 Server. E
importante ressaltar que este servico n
ao pode ser instalado nos Windows 98,
Me, 2000 Professional, XP Professional, XP Home, Vista, etc. J
a os clientes
DHCP podem ser quaisquer hosts baseados no Microsoft Windows.
A maioria das tarefas de administrac
ao do DHCP pode ser executada no
console DHCP, que e acessado atraves de: Iniciar >> Programas >> Ferramentas Administrativas >> DHCP. Inclusive, e possvel utilizar um u
nico console
DHCP para se conectar, remotamente atraves da rede, com diferentes servidores DHCP. Por padr
ao, a maior parte das informac
oes (log e banco de dados)
deste servidor e armazenada na pasta \%windir%\System32\dhcp, onde windir
se refere `
a pasta onde o Windows foi instalado.
http://www.candidatoreal.com
54.1.1
Processo de Instalac
ao/Configurac
ao
O processo de instalac
ao se d
a seguindo os passos: Iniciar >> Configurac
oes
>> Painel de Controle; Adicionar ou Remover Programas; Adicionar ou Remover Componentes do Windows. O DHCP e classificado como um SERVIC
O
DE REDE (Networking Services). Ap
os a instalac
ao, n
ao e preciso reinicializar
o servidor para que o servico possa ser disponibilizado, basta seguir alguns procedimentos obrigat
orios que ser
ao mencionados abaixo. Lembrando que este
servico e configurado para executar no contexto da conta LOCAL SYSTEM.
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 permiss
ao para autorizar um servidor DHCP no Active Directory. A autorizac
ao obrigat
oria no Active Directory
443
http://www.candidatoreal.com
http://www.candidatoreal.com
http://www.candidatoreal.com
54.1.2
Integra
c
ao do DHCP com o DNS
54.1.3
http://www.candidatoreal.com
Esta e uma funcionalidade que foi introduzida no Windows 98. Ela tambem
est
a presente no Windows XP, Vista, Longhorn Server e no Windows Server
2000/2003. Se os clientes estiverem configurados para usar um servidor DHCP
(em vez de serem configurados manualmente com um endereco IP e outros
par
ametros), o servico do cliente DHCP entrar
a em funcionamento a cada vez
que o computador for inicializado. O servico do cliente DHCP usa um processo
de tres etapas para configurar o cliente com um endereco IP e outras informac
oes
de configurac
ao:
O cliente DHCP tenta localizar um servidor DHCP e obter as configurac
oes
do protocolo TCP/IP, a partir desse servidor;
Se um servidor DHCP n
ao puder ser encontrado, o cliente DHCP configura automaticamente seu endereco IP e m
ascara de sub-rede usando
um endereco selecionado da rede classe B reservada, 169.254.0.0, com a
m
ascara de sub-rede, 255.255.0.0 (RECURSO APIPA). O cliente DHCP
ir
a fazer uma verificac
ao na rede, para ver se o endereco que ele est
a se
auto-atribuindo j
a n
ao est
a em uso na rede. Se o endereco j
a estiver em
uso ser
a caracterizado um conflito de enderecos. Se um conflito for encontrado, o cliente selecionar
a outro endereco IP. A cada conflito de endereco,
o cliente ir
a tentar novamente a configurac
ao autom
atica escolhendo um
445
http://www.candidatoreal.com
54.1.4
54.1.5
Regra 80/20
http://www.candidatoreal.com
54.2
A implementac
ao do DNS no Windows 2000/2003 Server e baseada em padr
oes
definidos pelo IETF - Internet Engineering Task Force. Por padr
ao, este servico
e instalado durante a instalac
NAO
ao tpica do Windows 2000/2003 Server. E
importante ressaltar que este servico n
ao pode ser instalado nos Windows 98,
Me, 2000 Professional, XP Professional, XP Home, Vista, etc. J
a os clientes
DNS podem ser quaisquer hosts baseados no Microsoft Windows.
A maioria das tarefas de administrac
ao do DNS pode ser executada no console DNS, que e acessado atraves de: Iniciar >> Programas >> Ferramentas Administrativas >> DNS. Inclusive, e possvel utilizar um u
nico console
DNS para se conectar, remotamente atraves da rede, com diferentes servidores DNS. Por padr
ao, a maior parte das informac
oes (lista de servidores
ROOT HINTS e informac
oes sobre zonas) deste servidor e armazenada na pasta
\%windir%\System32\Dns, onde windir se refere `
a pasta onde o Windows foi
instalado.
446
http://www.candidatoreal.com
54.2.1
Processo de Instalac
ao/Configurac
ao
O processo de instalac
ao se d
a seguindo os passos: Iniciar >> Configurac
oes
>> Painel de Controle; Adicionar ou remover programas; Adicionar ou Remover Componentes do Windows. O DNS e classificado como um SERVIC
O
DE REDE (Networking Services). Ap
os a instalac
ao, n
ao e preciso reinicializar
o servidor para que o servico possa ser disponibilizado. Lembrando que este
servico e configurado para executar no contexto da conta LOCAL SYSTEM.
Ap
os a instalac
ao do servidor DNS, o PROXIMO
PASSO e criar uma ZONA
http://www.candidatoreal.com
447
http://www.candidatoreal.com
domnio em quest
ao e podem responder `
as consultas enviadas pelos clientes. A
u
nica diferenca, em relac
ao `
a zona prim
aria, e que nas zonas secund
arias n
ao
podem ser feitas alterac
oes, adic
oes e exclus
oes de registros de recursos. Sempre que houver alterac
oes, o servidor DNS onde est
a a zona prim
aria, notifica
os servidores DNS onde existem zonas secund
arias e, ent
ao, os servidores DNS
da zona secund
ario solicitam que as alterac
oes sejam envidas a partir da zona
prim
aria. Com isso o DNS mantem as zonas sincronizadas, ou seja, alterac
oes
feitas nas zonas prim
arias s
ao repassadas para as zonas secund
arias. O DNS
INCREMENTAL, ou seja, somente as
usa um mecanismo de REPLICAC
AO
alterac
oes s
ao replicadas e n
ao todo o conte
udo da zona.
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 servidores 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 qualquer FQDN (Nome de Domnio Totalmente Qualificado).
Ap
os 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 um nome (de host) DNS para cada computador;
Configurar um sufixo DNS prim
ario para o computador, que e posicionado
ap
os o nome de host para formar o FQDN. Por exemplo, abc.com.br;
http://www.candidatoreal.com
448
http://www.candidatoreal.com
54.2.2
Seguran
ca de Acesso
54.2.3
Integra
c
ao do DNS com o Active Directory
http://www.candidatoreal.com
O DNS e necess
ario, obrigat
orio, para localizac
ao dos DCs (Controladores
de Domnio) do domnio;
O servico Netlogon usa o novo suporte ao servidor DNS para fornecer
registro de controladores de domnio no seu espaco de nomes de domnio
DNS. Enfim, sua func
ao b
asica e executar registros a cerca do AD no DNS.
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 Directory 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 conectar 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 pr
oprio servidor que est
a sendo promovido a DC. Se isso tambem n
ao for
449
http://www.candidatoreal.com
http://www.candidatoreal.com
450
http://www.candidatoreal.com
54.2.4
54.2.5
Arquivo Hosts
Se n
ao for encontrada a resposta no cache local do DNS, o programa resolvedor
consulta as entradas do arquivo hosts. Este e um arquivo texto que fica na pasta
onde o Windows 2000/2003 Server foi instalado, dentro do seguinte caminho:
\system32\drivers\etc. Este arquivo possui entradas do tipo: um n
umero IP
por linha associado a um ou mais nomes:
10.200.200.3 www.abc.com.br intranet.abc.com.br
10.200.200.4 ftp.abc.com.br arquivos.abc.com.br
54.2.6
Distribui
c
ao de Carga
http://www.candidatoreal.com
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 est
a 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
dar
a 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 pr
oximo (e normalmente o mais r
apido).
Round Robin e o algoritmo de rotac
ao utilizado pelo Windows 2000/2003
Server para a realizac
ao da distribuic
ao de carga entre dois ou mais servidores
DNS da rede. Vale ressaltar que a atribuic
ao de prioridade a sub-rede locais
substitui o uso da rotac
ao Round Robin para nomes com v
arios enderecos IP associados. Entretanto, quando o recurso Round Robin est
a ativado, ele continua
sendo utilizado como metodo de classificac
ao secund
aria. Ou seja, caso haja um
nome associado a v
arios enderecos IP n
ao pertencentes `
a rede local, o algoritmo
de Round Robin e utilizado para determinar qual endereco ser
a retornado.
54.2.7
451
http://www.candidatoreal.com
54.3
Active Directory
http://www.candidatoreal.com
Um diret
orio e uma base de dados estruturada hier
arquica contendo diferentes tipos de informac
oes e oferece uma versatilidade muito grande na hora de
buscar a informac
ao desejada. Um servico de diret
orio 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.
Active Directory e uma implementac
ao do protocolo LDAP feita pela Microsoft. Isto somente e possvel porque o protocolo LDAP e um padr
ao aberto.
Existem muitas outras implementac
oes, por exemplo, OpenLDAP (uma vers
ao
open source). O Active Directory implementa, alem do protocolo LDAP, outras funcionalidades como o DNS e o Kerberos. Ele e utilizado como base de
dados centralizada de informac
oes necess
arias para a operac
ao de uma rede distribuda de computadores. Isto porque ele armazena informac
oes de usu
arios
e suas permiss
oes, grupos, m
aquinas existentes na rede, recursos comuns, seja
de disco ou fsicos, como impressoras e outros perifericos. Alem de armazenar
v
arios objetos em seu banco de dados, o AD disponibiliza v
arios servicos, como:
autenticac
ao dos usu
arios, replicac
ao do seu banco de dados, pesquisa dos objetos disponveis na rede, administrac
ao centralizada da seguranca utilizando
452
http://www.candidatoreal.com
54.3.1
Tipos de Servidores
http://www.candidatoreal.com
54.3.2
Defini
c
oes de Floresta, Domnio, Site e Unidade
Organizacional
453
http://www.candidatoreal.com
54.3.3
http://www.candidatoreal.com
Logon u
nico: com esse recurso, o usu
ario necessita fazer apenas um logon
para acessar os recursos em diversos servidores da rede, inclusive e-mail e
banco de dados;
Conta de usu
ario u
nica: os usu
arios possuem apenas um nome de usu
ario
para acessar os recursos da rede. As contas de usu
arios ficam armazenadas
no banco de dados do AD;
Gerenciamento centralizado: com os domnios baseados no AD, temos
uma administrac
ao centralizada. Todas as informac
oes sobre contas de
usu
arios, grupos e recursos da rede, podem ser administradas a partir de
um u
nico local no domnio;
Escalabilidade: os domnios podem crescer a qualquer momento, sem limite de tamanho. A forma de administrac
ao e a mesma para uma rede
pequena ou grande.
454
http://www.candidatoreal.com
54.3.4
Seguran
ca com o Active Directory
http://www.candidatoreal.com
A autenticac
ao entre domnios ocorre por meio de relac
oes de confianca.
Confianca e uma relac
ao estabelecida entre dois ou mais domnios que permite aos usu
arios em um domnio serem autenticados por um controlador de
outro domnio. As relac
oes de confianca podem ser transitivas ou intransitivas, mas devem sempre estar presentes para que os usu
arios de um domnio
tenham acesso aos recursos compartilhados de outro domnio. As relac
oes de
confianca no Windows NT s
ao diferentes das relac
oes de confianca em sistemas
operacionais Windows 2000/2003. No Windows NT 4.0 e vers
oes anteriores,
as relac
oes de confianca s
ao limitadas a dois domnios e a relac
ao de confianca
e unidirecional e intransitiva. Todas as relac
oes de confianca em florestas do
Windows 2000/2003 s
ao relac
oes de confianca transitivas bidirecionais. Desta
forma, se o domnio X confia no domnio Y, e Y confia no domnio W, ent
ao X
tambem confia em W (propriedade transitiva) e W confia em Y que confia em
X (propriedade bidirecional).
De uma forma geral, um PROTOCOLO DE CONFIANC
A funciona da
seguinte maneira. Um controlador de domnio autentica usu
arios e aplicativos
usando um destes dois protocolos: Kerberos V5 ou NTLM. O protocolo Kerberos V5 e o protocolo padr
ao para computadores que executam o Windows
2000/2003. Se algum computador envolvido em uma transac
ao n
ao fornecer suporte a Kerberos V5, o protocolo NTLM ser
a usado. Com o protocolo Kerberos
V5, ap
os a autenticac
ao, o cliente solicita a um controlador no domnio de sua
conta uma permiss
ao para o servidor no domnio confiante. Essa permiss
ao e
emitida por um intermedi
ario de confianca do cliente e do servidor. O cliente
apresenta essa permiss
ao confi
avel ao servidor do domnio confiante para que
seja autenticada. Quando um cliente tenta acessar recursos de um servidor em
outro domnio usando a autenticac
ao NTLM, o servidor que contem o recurso
deve entrar em contato com um controlador de domnio no domnio da conta
do cliente para verificar as credenciais dessa conta.
Alem de proteger o acesso `
a rede por meio de autenticac
ao, o AD ajuda
a proteger os recursos compartilhados, pois facilita a autorizac
ao de usu
ario.
Depois que um logon de usu
ario e autenticado, os direitos atribudos ao usu
ario
atraves de grupos de seguranca e das permiss
oes concedidas em relac
ao ao recurso compartilhado determinar
ao se o usu
ario ter
a autorizac
ao de acesso ao
recurso. Ou seja, o AD tambem implementa CONTROLE DE ACESSO (similar ao do NTFS). Lembrando que o controle de acesso e administrado no nvel
do objeto, por meio da configurac
ao de diversos nveis de acesso, ou permiss
oes,
aos objetos, como: Controle Total, Gravac
ao, Leitura ou Sem Acesso.
455
http://www.candidatoreal.com
54.3.5
Ferramentas de Controle
V
arias ferramentas adicionais que podem ser usadas para configurar, gerenciar
e depurar o Active Directory est
ao disponveis como ferramentas de linha de
comando. Essas ferramentas s
ao conhecidas como ferramentas de suporte. As
mais usadas s
ao: Movetree, SIDWalk, LDP, Dnscmd, DSACLS, Netdom, NETDiag, NLTest, Repadmin, Replmon, DSAStat, ADSI Edit, SDCheck, ACLDiag,
DFSUtil, Dcdiag e ADMT.
54.4
O IIS (Internet Information Services) e um SERVIDOR WEB criado pela Microsoft para seus sistemas operacionais para servidores. Na verdade, para ser
mais preciso, ele e um conjunto integrado de servicos de rede que permite a
publicac
ao de conte
udo, disponibilizac
ao de arquivos, e execuc
ao de aplicac
oes
em ambientes Intranet, Extranet e Internet.
E
instalado durante a instalac
Por padr
ao, o IIS NAO
ao tpica do Windows 2000/2003 Server. Para instalar o IIS, clique no bot
ao Iniciar >> Painel
de Controle >> Ferramentas Administrativas >> clique em Assistente para
configurar o Servidor >> clique em Avancar e Avancar. Para voce comecar a
configurar o IIS, clique no bot
ao Iniciar >> Painel de Controle >> Ferramentas Administrativas >> clique em Gerenciador dos Servicos de informac
oes da
Internet.
54.4.1
Eles s
ao servidores concorrentes diretos entre si, ent
ao, de certa forma, possuem
algumas caractersticas convergentes e outras divergentes. Cada um possui suas
fraquezas e forcas. Ao longo desta sec
ao, ser
ao feitas as principais comparac
oes
entre os dois servidores.
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 sistema operacional fosse UNIX ou UNIX-LIKE (Linux, OpenBSD, FreeBSD, Sun
Solaris, etc.). Sua vers
ao 2.0 foi reprojetada para abstrair o sistema operacional
utilizado, passando a ser, portanto, um SISTEMA MULTIPLATAFORMA.
Isto e feito utilizando-se basicamente do Apache Portable Runtime (APR) e
do Multi-Processing Modules (MPMs). Os MPMs s
ao especficos para cada
plataforma. Por exemplo, para a plataforma Windows, este m
odulo e baseado
fortemente no conceito de threads, pois Windows favoresse esse tipo de aplicativo. J
a no caso da plataforma Linux, seu desenvolvimento e baseado fortemente
em forking process. Sua vers
ao atual e a 2.2.
A Microsoft iniciou a distribuic
ao do IIS a partir do Windows NT 3.51.
Desde ent
ao, este servidor sempre esteve disponvel (n
ao como padr
ao de in456
http://www.candidatoreal.com
stalac
ao). Seu desenvolvimento sempre foi e continua sendo focado, u
nico
E
MULTIe exclusivamente, na plataforma Windows. Portanto, ele NAO
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.
Embora o IIS n
ao tenha seu c
odigo aberto, ele possui uma licenca liberal
que garante seu desenvolvimento e uso.
Aplica
c
oes 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 programac
ao. 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.
http://www.candidatoreal.com
457
http://www.candidatoreal.com
http://www.candidatoreal.com
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.
Um outro aspecto da seguranca que deve ser analisado e a vulnerabilidade do
pr
oprio host e do Web server. Como o Apache e um sistema multiplataforma,
sua an
alise quanto `
a seguranca n
ao e t
ao trivial. Esta responsabilidade fica
muito mais associada ao sistema operacional que propriamente ao servidor Web.
O Apache geralmente e utilizado com os SO UNIX-LIKE, que praticamente em
todos os casos executam o servidor Web em modo usu
ario. Desta forma, falhas
de seguranca no servidor Web acabam n
ao sendo t
ao significativas ao sistema
como um todo. Por outro lado, o IIS s
o pode ser utilizado com o Windows,
que desde suas primeiras vers
oes e bastante conhecido pelas suas falhas de seguranca. Mesmo em suas vers
oes mais atuais, devido `
a forte colaborac
ao entre
o Windows e o IIS, via HTTP.sys, seu hist
orico de vulnerabilidade e bastante
458
http://www.candidatoreal.com
consider
avel.
Um terceiro aspecto da seguranca a ser analisado e o controle de acesso a
conte
udo. Com relac
ao a este aspecto, ambos os servidores s
ao eficientes. O
Apache tipicamente utiliza o HTTP Basic Authentication (geralmente sobre o
possvel tambem este controle ser
SSL) para a realizac
ao das autenticac
oes. E
gerido pelo pr
oprio administrador local via arquivos de usernames/password,
o que n
ao seria nada modular. Como o Apache e altamente modular, uma
alternativa a isto e a sua integrac
ao com o LDAP ou Active Directory (AD). J
a
o IIS, que e altamente integrado ao Windows, oferece autenticac
ao e autorizac
ao
tipicamente via AD. Autorizac
oes para URLs especificas tipicamente ocorrem
sobre o sistema ACLs. Cabe ressaltar que em sites din
amicos, a realizac
ao de
autorizac
ao e autenticac
ao pode se tornar extremante oneroso. Sendo assim,
geralmente esta responsabilidade e passada para a aplicac
ao.
Administra
c
ao
Sem d
uvida 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 m
ao, 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 ferramentas (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 comum para a administrac
ao tanto do IIS quando dos diversos servidores (Web,
FTP, SMTP e NNTP) que o comp
oem.
54.4.2
http://www.candidatoreal.com
http://www.candidatoreal.com
54.4.3
Um servico que n
ao faz parte do IIS, mas que est
ao altamente relacionados e
o INDEXING SERVICE. Este servidor e utilizado na criac
ao de cat
alogos de
documentos que podem ser buscados dentro de um sistema. Quando este servico
e adicionando a um Web site, usu
arios s
ao capazes de fazer buscas por t
opicos
de interesse via formul
arios do pr
oprio HTML.
Exclusivamente com relac
ao ao IIS, os principais recursos disponibilizados
s
ao:
HTTP 1.1 and HTTP Compression;
Host Headers: permite que diversos Web sites possam ser hospedados em
um mesmo servidor. O IIS usa o host name passado no cabecalho HTTP
para determinar o site (pasta no servidor) que o usu
ario est
a acessando;
FTP Restart: permite que downloads via FTP possam ser restabelecidos,
em caso de uma eventual desconex
ao, a partir do ponto anterior;
Active Server Pages (ASP): utilizada juntamente com HTML e Component Object Model (COM) para criac
ao de aplicac
oes din
amicas e interativas baseadas em Web;
http://www.candidatoreal.com
(in-process), MEDIA
(pooled out-of-process) e ALTA (out-of-process);
Process Accounting and Throttling: Process Accounting prove informac
oes
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 conex
ao 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 suportados pelo IIS. Ele e o mecanismo que trabalha melhor entre servidores
proxy e firewalls.
460
http://www.candidatoreal.com
54.4.4
IIS5
Windows 2000
Arquitetura
Metabase configuration
Seguranca
32-bit
Binary
32-bit
Binary
Windows authentication;
SSL;
Kerberos
Administrac
ao
remota
HTMLA
Suporte a Mail
Suporte a IP
SMTP
IPv4
SMTP
IPv4
Plataforma
IIS6
Windows Server
2003
32-bit e 64-bit
XML
Windows
authentication;
SSL; Kerberos;
Passport support
Remote
Administration Tool
(HTML); Remote
Desktop
SMTP e POP3
IPv4 e IPv6
54.5
Terminal Services
http://www.candidatoreal.com
SERVIDOR DE APLICAC
AO,
e fortemente recomendado a utilizac
ao do sistema 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 diret
orio e/ou arquivo.
461
http://www.candidatoreal.com
As configurac
oes do terminal services com relac
ao aos par
ametros de comunicac
ao podem ser realizadas em quatro nveis hier
arquicos (descendente):
Group Policies (GPO); Terminal Services configuration; User configuration;
Client configuration.
Cabe tambem ressaltar que esta tecnologia n
ao e somente utilizada pela
Microsoft. Por exemplo, o Linux Terminal Server Project trabalha exatamente
na quest
ao de possibilitar servidores Linux funcionarem como terminal services.
54.5.1
Principais Benefcios
importante notar que, na realidade, esta tecnologia pode ser aplicada e utiE
lizada tanto em clientes quanto em servidores. A seguir, s
ao sintetizados os
mais relevantes benefcios ao se utilizar esta tecnologia. Alguns t
opicos dizem
respeito `
a utilizac
ao em servidores e outros em clientes.
Administrac
ao Remota versus Servidor de Aplicac
ao. O terminal server
(SERVIDOR) pode funcionar nestes dois modos (simultaneamente ou n
ao).
No primeiro modo, ser
a possvel acesso remoto ao servidor (simular ao Remote Desktop usado em clientes). O segundo modo permite que aplicac
oes
sejam executadas no servidor e que diversos clientes acessem essa aplicac
ao
de forma simult
anea atraves da rede (este modo e instalado como um
m
odulo a parte do SO). Este recurso e especialmente interessante para
compartilhamento de aplicac
oes em uma intranet. Uma observac
ao importante: algumas aplicac
oes instaladas antes da configurac
ao e ativac
ao do
servidor como servidor de aplicac
ao podem n
ao funcionar corretamente.
Isto ocorre devido ao fato de aplicac
oes multiusu
arios terem requisitos
diferentes de configuracoes;
http://www.candidatoreal.com
Construc
ao de redes com clientes sem SO pr
oprio. Geralmente estes
clientes s
ao equipamentos pobres, em relac
ao ao hardware. S
ao geralmente computadores reaproveitados. Eles tambem s
ao chamados de thin
clients, pois suas configurac
oes s
ao basicamente: HD AUSENTE, um
mnimo de RAM, uma placa gr
afica simples, uma placa de rede simples
e interfaces de entrada/sada (teclado, mouse e monitor). Como estes
equipamentos n
ao possuem HD, eles utilizam via rede um u
nico SO, o do
terminal services. S
ao estabelecidas ligac
oes necess
arias para criac
oes de
sess
oes de trabalho no servidor que s
ao visveis e control
aveis pelos thin
clients;
Esta tecnologia tambem pode ser utilizada para redirecionamento de diversos recursos de clientes, tais como: drives de CD, disquete, etc.; clipboard;
portas COM; portas LPT; impressoras; sada de
audio; etc.;
Terminal Server Client. Disponvel para Windows XP Home Edition e
Professional Edition instalados em clientes. O Remote Desktop Protocol (RDP) permite acesso a terminal services. Em ambos os SOs, h
a
disponvel tambem o Remote Assistance, que possibilita um usu
ario solicitar ajuda a um especialista, que pode assumir o controle da m
aquina
cliente. Para o Windows XP Professional, h
a um m
odulo adicional, o Remote Desktop, que possibilita o uso de m
aquinas clientes de forma remota.
462
http://www.candidatoreal.com
54.5.2
Protocolos de Comunicac
ao
http://www.candidatoreal.com
Surgiu com:
RDP 5.0
Windows 2000
RDP 5.1
Windows XP
640 x 480 ate
1600 x 1200 pixels
(24 bits); Transmiss
ao de
audio;
Redirecionamento
de portas COM;
Suporte a Smart
Cards;
Administrac
ao Remota do
servidor
RDP 5.2
Windows
Server
2003
Todas
as
propriedades
anteriores
com
poucas
adic
oes,
como
reconex
ao
autom
atica; transmiss
ao de Windows
key
(ALT+TAB,
etc.)
http://www.candidatoreal.com
54.5.3
Licen
cas
http://www.candidatoreal.com
464
http://www.candidatoreal.com
Parte XI
http://www.candidatoreal.com
Banco de Dados
465
http://www.candidatoreal.com
Captulo 55
Conceitos B
asicos
Um sistema de gerencia de banco de dados (SGBD) e uma colec
ao de arquivos e
programas inter-relacionados que permitem ao usu
ario o acesso para consultas
e alterac
oes desses dados. O maior benefcio do banco de dados e proporcionar
ao usu
ario uma vis
ao abstrata dos dados.
A abstrac
ao de dados se d
a em tres nveis: nvel canceitual, nvel l
ogico e
nvel fsico e ser
ao explicados abaixo.
A capacidade de modificar a definic
ao dos esquemas em determinado nvel
sem afetar o esquema do nvel superior, e chamado independencia dos dados. A
independencia de dados l
ogica (alterac
ao no nvel l
ogico) e mais difcil de ser alcancada que a independencia fsica, uma vez que os programas de aplicac
ao s
ao
mais fortemente dependentes da estrutura l
ogica dos dados do que de seu acesso.
Como o modelo E-R, explicado com mais detalhes, `
a frente, o modelo orientado 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 u
nica identidade, independente dos valores neles contidos.
Existem tres modelos l
ogicos com base em registros:
http://www.candidatoreal.com
http://www.candidatoreal.com
necess
de banco de dados. E
ario aceitar inconsistencias tempor
arias para que as
transac
oes possam ocorrer sem problemas, mas dever
a ser possvel retornar caso
ocorra uma falha, por isso todo SGDB deve conter um sistema de recuperac
ao.
O arquivo de dados armazena o pr
oprio banco de dados, o dicion
ario de da muito
dos armazena os metadados relativos `
a estrutura do banco de dados. E
usado, portanto uma implementac
ao eficiente e importante.
Um projeto de banco de dados envolve as seguintes etapas:
An
alise de Requisitos: Processo informal que envolve discuss
oes entre grupos de usu
arios;
Projeto Conceitual: Descric
ao de alto nvel dos dados a serem armazenados no BD (modelo ER);
Projeto L
ogico: Escolher um SGDB e converter o projeto conceitual em
um esquema do modelo de dados do SGDB, exemplo: modelo relacional;
Refinamento do esquema: Identificar potenciais problemas, usando teorias
como a normalizac
ao;
Projeto Fsico: Garantir criterios de desempenho, envolve, por exemplo,
a construc
ao de ndices para tabelas;
http://www.candidatoreal.com
467
http://www.candidatoreal.com
Captulo 56
Abordagem Relacional
56.1
Conceitos
56.2
Esquemas e Restri
c
oes de Integridade
http://www.candidatoreal.com
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:
1. inserir(v1,...,vn) pode causar:
violac
ao de integridade de identidade (chave prim. nula);
violac
ao de restric
ao de chave;
violac
ao de integridade referencial.
2. excluir(PK) pode causa violac
ao de integridade refencial. Podemos lidar
com isso das seguintes maneiras:
rejeitar;
propagar a exclus
ao; .
modificar os valores dos atributos referenciados para nulo.
oes
3. atualizac
ao(PK, atributo, novo valor): podem causar as mesmas violac
vistas anteriormente quando ou a chave prim
aria ou chave estrangeira s
ao
atualizadas.
Uma asserc
ao e um predicado que expressa uma condic
ao que desejamos que
seja sempre satisfeita no banco de dados. Restric
oes de domnio e de integridade s
ao casos particulares de asserc
oes. Asserc
oes complexas podem prejudicar
o desempenho do banco de dados.
Um gatilho(trigger) e um comando que e executado pelo sistema automaticamente, em conseq
uencia de uma modificac
ao no banco de dados. O padr
ao
SQL-92 n
ao disp
oe da gatilhos.
http://www.candidatoreal.com
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 conjunto 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.
469
http://www.candidatoreal.com
Captulo 57
Modelagem Entidade
Relacionamento
57.1
Conceitos
http://www.candidatoreal.com
Prim
aria: chave candidata definida pelo projetista do BD para identificar as entidades;
Estrangeira: atributo de um conjunto de entidades que e chave prim
aria
de outro conjunto de entidades;
Relacionamento: Associac
ao entre duas ou mais entidades;
Conjunto de Relacionamentos: Colec
ao de relacionamentos similares;
Atributo Descritivo: registram informac
ao sobre o relaciomento;
Atributo Multivalorado: quando mais de um valor pode ser inserido, por
exemplo, um funcion
ario pode ter v
arios dependentes e pode-se criar um
atributo multivalorado para colocar o nome de cada um desses dependentes.
470
http://www.candidatoreal.com
57.2
Cardinalidade
57.3
Representa
c
ao Gr
afica
http://www.candidatoreal.com
57.4
471
http://www.candidatoreal.com
Especializac
ao: no caso de um conjunto de entidades que possuem subgrupos de entidades, pode-se realizar a especializac
ao fazendo que esses
subconjuntos tenham os mesmos atributos do conjunto de entidades principal mais atributos especficos para o subconjunto que n
ao e compartilhado
como se fosse uma heranca.
com outros subconjuntos. E
Generalizac
ao: Difere da especializac
ao no sentido de como e feito o projeto. 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).
http://www.candidatoreal.com
Agregac
ao: Permite-nos tratar um conjunto de relacionamento como um
conjunto de entidades com o prop
osito de permitir a participac
ao em outros relacionamentos.
472
http://www.candidatoreal.com
Captulo 58
Normaliza
c
ao
58.1
Aspectos desej
aveis em um bom projeto
http://www.candidatoreal.com
58.2
Uma relac
ao do esquema R est
a na FNBC (forma normal de Boyce-Codd) com
respeito a conjunto F de dependencias funcionais se todas as dependencias fun473
http://www.candidatoreal.com
58.3
Podemos aceitar uma forma normal mais fraca chamada teceira forma normal
(3FN). Essa forma normal permite dependencias funcionais n
ao-triviais.
Uma relac
ao do esquema R est
a na 3F N com respeito a conjunto F de
dependencias funcionais se todas as dependencias funcionais em F + da forma
, em que R e R atendem ao menos uma das exigencias abaixo:
e uma dependencia funcional trivial.
e uma superchave para o esquema R.
Cada atributo de A em est
a contido em uma chave candidata de R.
http://www.candidatoreal.com
474
http://www.candidatoreal.com
Captulo 59
Transforma
c
ao do Modelo
Conceitual
Conjunto de entidades fortes: uma coluna para cada um de seus atributos;
Conjunto de entidades fracas: uma columa para cada um de seus atributos mais as colunas que compreendem os atributos que formam a chave
prim
aria do conjunto de entidades dominantes;
Conjunto de Relacionamentos: Formado pelos seus atributos descritivos e
pelas chaves prim
arias de cada uma das entidades participantes;
http://www.candidatoreal.com
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:
CREATE TABLE clima (
cidade
varchar(80),
temp_min
int,
temp_max
int,
prcp
real,
data
date
);
-- temperatura m
nima
-- temperatura m
axima
-- precipita
c~
ao
http://www.candidatoreal.com
60.2
Consultas
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:
SELECT * FROM clima
Pode ser especificada qualquer express
ao arbitr
aria na lista de selec
ao. Por
exemplo, pode ser escrito
SELECT cidade, (temp_max+temp_min)/2 AS temp_media, data FROM clima
476
http://www.candidatoreal.com
http://www.candidatoreal.com
SELECT *
FROM clima LEFT OUTER JOIN cidades
ON (clima.cidade = cidades.nome);
Tambem e possvel fazer a junc
ao da tabela consigo mesmo. Isto e chamado
de autojunc
ao (self join).
60.3
Func
oes de agrega
c
ao
Existem func
oes 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
SELECT max(temp_min) FROM clima;
477
http://www.candidatoreal.com
Se desejarmos saber a cidade (ou cidades) onde esta leitura ocorreu, podemos
tentar
SELECT cidade FROM clima WHERE temp_min = max(temp_min);
ERRADO!
mas n
ao funciona porque a func
ao de agregac
ao max n
ao pode ser usada na
cl
ausula WHERE (esta restric
ao existe porque a cl
ausula WHERE determina
as linhas que v
ao passar para o est
agio de agregac
ao e, portanto, precisa ser
avaliada antes das func
oes de agregac
ao serem computadas). Entretanto, uma
forma correta e a subconsulta abaixo:
SELECT cidade FROM clima
WHERE temp_min = (SELECT max(temp_min) FROM clima);
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 observada em cada cidade com
SELECT cidade, max(temp_min)
FROM clima
GROUP BY cidade;
Cada resultado da agregacao e calculado sobre as linhas da tabela correspondendo a uma cidade. Estas linhas agrupadas podem ser filtradas utilizando a
cl
ausula HAVING
http://www.candidatoreal.com
60.4
Atualizac
oes e exclus
oes
temp_min = temp_min - 2
478
http://www.candidatoreal.com
Suponha que n
ao estamos mais interessados nos dados do clima em Hayward.
Ent
ao precisamos excluir suas linhas da tabela. As exclus
oes s
ao realizadas
utilizando o comando DELETE:
DELETE FROM clima WHERE cidade = Hayward;
60.5
Vis
oes
60.6
Chaves estrangeiras
http://www.candidatoreal.com
479
http://www.candidatoreal.com
Captulo 61
Conceitos de
Datawarehousing e
Bussiness Inteligence
61.1
http://www.candidatoreal.com
480
http://www.candidatoreal.com
61.1.1
Modelagem Multidimensional
http://www.candidatoreal.com
Dimens
oes 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 elementos 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 dimens
oes podem ser compostas por membros que podem conter hierarquias. Membros (atributos) s
ao as possveis divis
oes ou classificac
oes de uma
dimens
ao. 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 (vari
aveis) s
ao os atributos numericos que representam um fato
e e sobre eles que s
ao feitas as an
alises do neg
ocio. S
ao 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 dimens
oes que participam de um
fato, e est
ao localizadas como atributos de um fato.
Para facilitar o entendimento, o modelo multidimensional e representado
pelo desenho de um cubo. Todavia, o n
umero de dimens
oes geralmente e maior
481
http://www.candidatoreal.com
http://www.candidatoreal.com
482
http://www.candidatoreal.com
http://www.candidatoreal.com
61.2
Datawarehousing
483
http://www.candidatoreal.com
tomadas de decis
oes presentes e a previs
ao de eventos futuros. Por definic
ao, os
dados em um datawarehouse n
ao s
ao vol
ateis, ou seja, eles n
ao mudam, salvo
quando e necess
ario fazer correc
oes de dados previamente carregados. Os dados
est
ao disponveis somente para leitura e n
ao podem ser alterados. A ferramenta
mais popular para explorac
ao de um datawarehouse e a Online Analytical Processing OLAP ou Processo Analtico em Tempo Real, mas muitas outras podem
ser usadas.
Os datawarehouse surgiram como conceito academico na decada de 80. Com
o amadurecimento dos sistemas de informac
ao empresariais, as necessidades de
an
alise dos dados cresceram paralelamente. Os sistemas OLTP n
ao conseguiam
cumprir a tarefa de an
alise com a simples gerac
ao de relat
orios. Nesse contexto,
a implementac
ao do datawarehouse passou a se tornar realidade nas grandes
corporac
oes. O mercado de ferramentas de datawarehouse, que faz parte do
mercado de Business Intelligence, cresceu ent
ao, e ferramentas melhores e mais
sofisticadas foram desenvolvidas para apoiar a estrutura do data warehouse e
sua utilizac
ao.
Atualmente, por sua capacidade de sumarizar a analisar grandes volumes
de dados,o datawarehouse e o n
ucleo dos sistemas de informac
oes gerenciais e
apoio `
a decis
ao das principais soluc
oes de business intelligence do mercado.
Um Datawarehouse e caracterizado como uma colec
ao de dados orientada a
assunto, integrada, n
ao-vol
atil e variante no tempo que auxiliam nas decis
oes
de gerenciamento. Datawarehouses fornecem acesso aos dados para an
alises
complexas, descoberta de conhecimento e tomada de decis
oes. Algumas caractersticas importantes dos datawarehouses s
ao:
Orientada ao assunto: pois o objetivo e tomar decis
oes sobre o assuntotema dos dados;
Integrada: pois deve consolidar dados de diferentes origens ou fontes;
N
ao 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 informac
oes previamente armazenadas;
http://www.candidatoreal.com
484
http://www.candidatoreal.com
Estas transac
oes requerem detalhes, dados atualizados, leitura e atualizac
ao
de poucos (dezenas de) registros que s
ao acessados tipicamente por suas chaves
prim
arias. Bancos de dados operacionais tendem a ter tamanho de centenas de
megabytes a gigabytes. Consistencia e capacidade de recuperac
ao do banco de
dados s
ao crticas e a maximizac
ao da vaz
ao de transac
oes s
ao metricas chaves
de performance. Conseq
uentemente, o banco de dados e projetado para refletir
a Sem
antica operacional de aplicac
oes conhecidas e, em particular, minimizar
conflitos de concorrencia.
Datawarehouse, em contraste, e dirigido a suporte a decis
ao. Dados hist
oricos,
sumariados e consolidados s
ao mais importantes que dados detalhados em registros individuais. J
a que o datawarehouse contem dados consolidados geralmente a partir de muitos banco de dados operacionais, sobre muitos perodos
de tempo, eles tendem a serem maiores que os banco de dados operacionais.
Datawarehouse de empresas s
ao projetados para ter tamanho de centenas de gigabytes a terabytes. O trabalho pesado de um datawarehouse s
ao as consultas
intensivas na maioria das vezes ad hoc (consultas complexas que podem acessar
milh
oes de registros e realizar muitas buscas por registros), uni
oes e agregac
oes.
Vaz
ao de consulta e tempo de resposta s
ao mais importantes que vaz
ao de
transac
oes. Para facilitar an
alises e visualizac
oes complexas, os dados em um
datawarehouse s
ao tipicamente modelados multidimensionalmente. Por exemplo, em um datawarehouse de vendas, tempo de vendas, lugar de vendas, vendedor e produto podem ser algumas dimens
oes de interesse. Freq
uentemente, estas
dimens
oes s
ao hier
arquicas, o tempo pode ser organizado na hierarquia dia-mestrimestre-ano, produto como produto-categoria-ind
ustria (marca) para facilitar
e ampliar o domnio de consultas que podem ser feitas no Datawarehouse. O
modelo estrela, floco de neves s
ao dois exemplos de esquemas multidimensionais
com os quais um datawarehouse pode ser modelado.
http://www.candidatoreal.com
61.3
um acr
OLTP `
aE
onimo de Online Transaction Processing ou Processamento de
transac
oes em tempo-real. S
ao sistemas que se encarregam de registrar todas
as transac
oes contidas em uma determinada operac
ao organizacional, ou seja, e
uma aplicac
ao que tem como caracterstica principal muitas atualizac
oes em dados operacionais. Por exemplo: sistema de transac
oes banc
arias registra todas
as operac
oes efetuadas em um banco. Os ERPs (Enteprise Resource Planning)
s
ao sistemas que se enquadram nessa categoria.
um acr
OLAP `
aE
onimo de Online Analitical Processing ou Processamento
a categoria de tecnologia de software que capacita
analtico em tempo-real. E
os analistas, gerentes e executivos a conseguir obter discernimento nos dados
atraves de um acesso r
apido, consistente e interativo, para uma larga variedade
de possibilidades de vis
oes da informac
ao que vem a ser transformada a partir de dados cruspara refletir o real dimensionamento da corporac
ao como
entendido pelo usu
ario. A funcionalidade OLAP e caracterizada pela an
alise
din
amica multidimensional dos dados consolidados da corporac
ao, dando suporte `
as atividades de an
alise e navegac
ao do usu
ario final. A funcionalidade
485
http://www.candidatoreal.com
OLTP
Transac
ao
At
omico
Presente
Poucos Registros
Registro
Processo
Muitos
OLAP
An
alise
Agregado
Hist
orico, Atual e Projetado
Muitos Registros
Arrays
Assunto
Poucos
http://www.candidatoreal.com
ROLAP `
a OLAP Relacional. Sistemas ROLAP fornecem an
alise multidimensional de dados armazenados em uma base de dados relacional. Atualmente
existem duas maneiras de se fazer este trabalho:
Fazer todo o processamento dos dados no servidor da base de dados; o
servidor OLAP gera os comandos SQL em m
ultiplos passos e as tabelas
tempor
arias necess
arias para o devido processamento das consultas;
Executar comandos SQL para recuperar os dados, mas fazer todo o processamento (incluindo joins e agregac
oes) no servidor OLAP.
Alem das caractersticas b
asicas de sistemas OLAP, servidores ROLAP devem tambem:
Utilizar metadados para descrever o modelo dos dados e para auxiliar na
construc
ao das consultas. Desta maneira um analista pode executar suas
an
alises utilizando seus pr
oprios termos;
486
http://www.candidatoreal.com
ao, a antecipac
ao
da maneira como os dados ser
ao acessados e o alto grau de agregac
ao dos dados
fazem com que sistemas MOLAP tenham um excelente desempenho. Alem de
serem r
apidos, outra grande vantagem desses sistemas e o rico e complexo conjunto de func
oes de an
alise que oferecem.
HOLAP `
a O armazenamento HOLAP (OLAP Hbrido) e uma combinac
ao
dos tipos de armazenamento MOLAP e ROLAP. Os dados de agregac
ao s
ao
armazenados em MOLAP, enquanto os dados de base s
ao deixados no banco de
dados relacional.
http://www.candidatoreal.com
61.4
um reposit
Data Mart: e um subconjunto de um data warehouse. E
orio
de dados extrados das fontes operacionais ou de um data warehouse que e
projetado para servir as necessidades particulares de um grupo especfico.
Na pr
atica, o data ware house e data mart pode trabalhar juntos. O data
warehouse atende as necessidades estrategicas da organizac
ao, enquanto
o data mart atende as necessidades gerenciais mais a nvel operacional.
Quando os data mart atualiza seus dados atraves do data warehouse, ele
e considerado de dependente. Quando ele atualiza os dados atraves das
fontes operacionais, ele e considerado independente;
Agregac
oes: Grande parte dos usu
arios n
ao est
a interessada em realizar
uma consulta que retorne uma grande quantidade de linhas de uma tabela
de fatos, mas sim em sumarizar os resultados usando operac
oes de soma ou
media por exemplo. Para evitar que as mesmas operac
oes sejam realizadas
a cada vez que um usu
ario execute uma consulta, e importante realizar
um levantamento das agregac
oes e sum
arios nos quais os usu
arios est
ao
interessados;
Funcionamento (Fluxo de dados). Os dados para serem usados para fins
analticos devem ser transformados e carregados dos sistemas OLTP para
487
http://www.candidatoreal.com
http://www.candidatoreal.com
Granularidade: e o nvel de detalhe contido nas unidades de dados existentes no data warehouse. A granularidade e importante porque pode
diminui o tempo de acesso aos dados que realmente interessam e diminuem a quantidade de discos r
apidos e caros necess
arios para armazenar
uma grande quantidade de dados hist
oricos.
488
http://www.candidatoreal.com
Parte XII
http://www.candidatoreal.com
Administra
c
ao de Bancos
de Dados Relacionais
489
http://www.candidatoreal.com
Captulo 62
Ger
encia de Transa
c
oes
Uma transac
ao e a unidade l
ogica de processamento, e pode incluir uma ou mais
operac
oes sobre o Banco de Dados. Para garantir a correc
ao, uma transac
ao
deve ser executada ate o final. As duas operac
oes b
asicas fornecidas por um
banco de dados s
ao READ e WRITE. As fronteiras de uma transac
ao podem
ser definidas explicitamente na aplicac
ao atraves das chamadas BEGIN TRANSACTION e END TRANSACTION.
Entende-se por transac
oes concorrentes aquelas que s
ao executadas ao mesmo
tempo e pelo menos uma operac
ao de WRITE e executada por alguma das
transac
oes. A possibilidade de existir transac
oes sendo executadas de forma
concorrente faz com que o SGBD utilize tecnicas para realizar o controle de
concorrencia. Uma vez iniciado o processamento da transac
ao, o SGBD deve
garantir que ela ser
a executada ate o final e os resultados ser
ao armazenados
de forma permanete. No entanto, durante a execuc
ao de uma transac
ao podem
ocorrer falhas como crash do sistema, falhas no disco, cat
astrofes. Isso faz com
que o SGBD tenha que utilizar tecnicas de Recuperac
ao em caso de falhas.
Para efeitos e recuperac
ao s
ao utilizadas as seguintes operac
oes sobre as
transac
oes:
BEGIN TRANSACTION - Marca o incio da transac
ao;
http://www.candidatoreal.com
490
http://www.candidatoreal.com
http://www.candidatoreal.com
491
http://www.candidatoreal.com
Captulo 63
Controle de Concorr
encia
Entende-se por transac
oes concorrentes aquelas que desejam executar ao mesmo
tempo e pelo menos uma operac
ao de WRITE precisa ser realizada. O SGBD
e respons
avel por garantir o acesso mutuamente exclusivo a um item de dados
qualquer. Em outras palavras, enquanto uma transac
ao acessa um item de dado,
nenhuma outra poder
a modific
a-lo. A forma mais simples de se implementar
o controle de concorrencia e a utilizac
ao de mecanismos de bloqueio baseados
em locks bin
arios, atraves das operac
oes b
asicas lock e unlock, que devem ser
aplicadas antes e depois da realizac
ao de uma operac
ao qualquer (READ ou
WRITE) sobre qualquer item de dados.
http://www.candidatoreal.com
Os locks bin
arios tem o incoveniente de n
ao permitir que duas ou mais
transac
oes que desejem realizar operac
oes apenas de leitura acessem o item simultaneamente. Isso diminui o desempenho do sistema, uma vez que muitas
transac
oes tem que aguardar na fila de espera por acesso a um item de dados. Para contornar esse problema, um outro mecanismo de lock baseado em 3
operac
oes foi criado. Quando um transac
ao deseja aenas ler um item, ela realiza
uma operac
ao read lock, permitindo que outras transac
oes que desejem apenas
ler o mesmo item tambem possam executar simultaneamente. Se uma operac
ao
deseja escrever, deve primeiro executar uma operac
ao do tipo write lock. Nenhuma operac
ao de leitura ou escrita pode ser realizada por outra transac
ao sobre
um item que esteja bloqueado para escrita. A operac
ao unlock deve ser aplicada
ap
os o termino das operac
oes de leitura ou escrita por parte das transac
oes que
detem o lock de um item.
comum que uma transac
E
ao deseje mudar o tipo de lock que possui sobre 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 upgrade e downgrade.
Os locks bin
arios e os locks read/write embora garantam a exclusividade
m
utua, n
ao podem garantir a serializac
ao na execuc
ao de transac
oes concorrentes. Um outro protocolo que visa solucionar os dois problemas e o chamado
Two-Phase Locking (2PL). As fases s
ao: (i) Crescimento (Growning) e (ii) En492
http://www.candidatoreal.com
http://www.candidatoreal.com
493
http://www.candidatoreal.com
Captulo 64
Ger
encia de Desempenho
O Design fsico do Banco de Dados e o processo de escolha das estruturas de
armazenamento e metodos de acesso de forma que um bom desempenho possa
ser atingido pelas diversas aplicac
oes. Cada SGBD oferece uma diversidade de
opc
oes de organizac
ao de arquivos e metodos de acessos especiais como ndices,
clustering de registros relacionados, encadeamento de registros relacionados usando ponteiros, e func
oes hash. Os criterios utilizados que guiam a escolha das
opc
oes de design fsico s
ao o Tempo de Rsposta, a Utilizac
ao do Espaco e o
Throughput de Transac
oes. O desempenho das estruturas e metodos de acesso
depende fundamentalmente do tamanho dos arquivos, portanto durante a fase
de design devem ser realizadas estimativas de crescimento dos arquivos. O
crescimento pode se dar tanto no tamanho dos registros assim como no n
umero
de registros por arquivo.
http://www.candidatoreal.com
http://www.candidatoreal.com
ordenac
ao 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, atualizac
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 intervalos e testes de igualdade, enquanto os ndices baseados em func
oes hash s
ao
extremamente eficientes para testes de igualdade, podendo otimizar bastante
operac
oes de JOIN.
Uma outra estrategia utilizada para otimizac
ao em Bancos de Dados e a
Desnormalizac
ao. Essa tecnica consiste em armazenar o banco de dados em uma
forma normal mais fraca como a 1NF ou 2NF, introduzindo algumas depedencias
funcionais que n
ao existiriam nas formas BCNF ou 4NF. Essa tecnica se baseia
em eliminar a necessidade de operac
oes de JOIN, de forma que consultas possam ser respondidas acessando o menor n
umero de arquivos possveis. Outras
duas tecnicas que podem ser utilizadas s
ao o Particionamento Vertical, que consiste na divis
ao de um tabela e m
ultiplas tabelas de colunas iguais, porem com
um n
umero menor de linhas por tabela, e o Particionamento Horizontal, que
consiste em transformar uma relac
ao R(K, A, B, C, D, ...) em m
ultiplas relac
oes
R1 (K, A, B), R2 (K, C, D), R3 (K, ...). As tecnicas de particionamento s
ao interressantes pois n
ao sacrificam a forma normal da relac
ao original.
Alguns cuidados adicionais podem ser tomados para garantir o bom desempenho do sistema. A utilizac
ao da operac
ao DISTINCT causa uma operac
ao 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.
SELECT SSN FROM EMPLOYEE E
WHERE SALARY = SELECT MAX (SALARY) FROM EMPLOYEE AS M
WHERE M.DNO = E.DNO
http://www.candidatoreal.com
http://www.candidatoreal.com
http://www.candidatoreal.com
N
umero de valores distintos que aparecem numa relac
ao para um determinado atributo;
N
umero medio de registros que satisfazem uma condic
ao de igualdade para
um determinado atributo.
Podemos processar consultas que envolvem selec
oes simples por meio da execuc
ao de uma varredura linear, de uma procura bin
aria ou do uso de ndices.
Podemos tratar as selec
oes complexas computando uni
oes e intersecc
oes dos resultados de selec
oes simples. Podemos ordenar relac
oes 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
http://www.candidatoreal.com
497
http://www.candidatoreal.com
Captulo 65
Administra
c
ao de Bancos
de Dados Oracle
65.1
65.1.1
Estruturas em mem
oria
http://www.candidatoreal.com
498
http://www.candidatoreal.com
65.1.2
Processos server
Os processos server s
ao recebem as requisic
oes dos processos user, realizam o
parse das instruc
oes SQL, verificam as permiss
oes de acesso do usu
ario, traz os
dados do disco para o DBBC, caso necess
ario, e retorna os dados para o usu
ario.
Um processo server pode ser dedicado para um processo user (dedicated server
process) ou compartilhado entre m
ultipos processos user (shared server process).
Os processos server compartilhados s
o s
ao possveis em sistemas multi-threaded.
65.1.3
Processos user
As func
oes desempenhadas pelos processos user s
ao se conectar com os processos
server, enviar instruc
oes SQL e receber os resultados. Caso o servidor suporte
processos server compartilhados, diversos processos server podem ser atendidos
por um mesmo processo server.
65.1.4
Processos em Background
http://www.candidatoreal.com
Ao contr
ario dos processos server, os processo em background n
ao realizam
nenhuma comunicac
ao com os processos user. Os processos em backgound s
ao
respons
aveis pelas tarefas de apoio para garantir o funcionamento do sistema
de gerenciamento de banco de dados como um todo. Um sistema Oracle tem
in
umeros processos em background, porem apenas 4 deles s
ao obrigat
orios que
s
ao:
Process Monitor (PMON): Realiza a recuperac
ao quando algum processo
falha, alem de liberar o cache, locks e demais recursos que o processo
estava utilizando;
System Monitor (SMON): Realiza o processo de recuperac
ao da inst
ancia
durante o processo de inicializac
ao, limpa segmentos tempor
arios que n
ao
est
ao mais em uso, recupera transac
oes terminadas de forma anormal e
realiza desfragmentac
ao nos arquivos de dados para facilitar a alocac
ao;
Database Writer (DBWR): A func
ao principal do DBWR e escreve os
blocos de dados modificados (dirty) do DBBC para o disco. Isso e feito
nas seguintes situac
oes: (i) quando a lista de blocos modificados atinge um
tamanho configurado; (ii) quando o processo percorre um quantidade configurada de blocos e n
ao encontra nenhum bloco livre; (iii) quando ocorre
499
http://www.candidatoreal.com
um timeout; (iv) quando ocorre um checkpoint ou (v) quando o DBWR recebe um sinal do processo LGWR. Dessa forma, o processo DBWR alem
de garantir que as alerac
oes feitas em buffer ser
ao persistidas, tambem
gerencia o espaco em buffer para melhorar o desempenho do banco;
o respons
Log Writer (LGWR): E
avel por copiar as informac
oes do redo log
buffer para o o redo log file (arquivo de log com a mesma estrutura do redo
log buffer). O LGWR tambem e respos
avel por atualizar os headers dos
arquivos de dados quando ocorre um checkpoint. O LGWR e disparado
nas seguintes situac
oes: (i) quando ocorre um commit; (ii) quando ocorre
um checkpoint; (iii) quando ocorre um timeout ou (iv) quando o redo log
buffer atinge um terco de sua capacidade.
Alem desses quatro, o Oracle possui uma serie de outros processos em background que s
ao de instalac
ao e uso opcionais. Os mais importantes s
ao os
seguintes:
CKPT: Atualiza os headers dos arquivos de dados quando ocorre um
checkpoint. A utilizac
ao desse processo pode ajudar a melhorar o desempenho do sistema permitindo que o processo LGWR se concentre apenas
na c
opia do redo log buffer para o disco;
RECO: Respons
avel pela recuperac
ao de falhas envolvendo transac
oes distribudas. Esse processo e necess
ario quando o Oracle est
a rodando de
forma distribuda;
o respons
ARCH: E
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;
SNPn: Controla a replicac
ao de objetos dos banco de dados em outro site.
Essas c
opias s
ao cahamadas snapshots. Esse processo pode ser escalonado
para executar periodicamente;
LCKn: Realiza o controle de locks entre m
ultiplas inst
ancias;
http://www.candidatoreal.com
65.1.5
Arquivos
http://www.candidatoreal.com
http://www.candidatoreal.com
65.2
65.3
Tratamento de Transa
c
oes no Oracle
65.3.1
http://www.candidatoreal.com
conte
udo do redo log buffer em determinadas situac
oes, como em um COMMIT
por exemplo. Essa escrita e feita de maneira circular. Quando n
ao houver mais
espaco para escreve no arquivo de Redo Log atual, o LGWR comeca a escrever
no pr
oximo arquivo. Caso esteja no u
ltimo arquivo do buffer, o LGWR voltar
a
possvel configurar o banco de dados para
a escrever no primeiro arquivo. E
arquivar as informac
oes escritas nos arquivos de redo. Com essa configurac
ao,
o processo ARCH ser
a ativado.
Um log switch e o ponto quando o banco de dados para de escrever em um
arquivo de Redo Log e comeca a escrever em outro. Um log switch tambem
pode ser forcado pelo DBA e pode ser configurado para ocorrer em intervalos
regulares. O Oracle atribui, para cada arquivo de Redo Log, um log sequence
number toda vez que um log switch ocorre. A ordem atribuda pelos log sequence
numbers e utilizada na recuperac
ao do banco de dados em caso de falha.
65.3.2
Checkpoints
http://www.candidatoreal.com
65.3.3
Segmentos de rollback
http://www.candidatoreal.com
65.3.4
Consist
encia de leitura
65.4
Configurac
ao do Servidor
http://www.candidatoreal.com
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:
Etapa 1 Em uma tela, ser
a possvel escolher se e desejado criar um banco de
dados, configurar ou deletar um j
a existente ou gerenciar gabaritos. Nesse
caso, ser
a criado um banco de dados.
Etapa 2 Ser
a possvel escolher sobre qual gabarito se deseja basear o banco
de dados a ser criado. H
a como escolher gabaritos otimizados para data
warehouse, processamento de transac
oes ou para uso geral.
Etapa 3 Ser
a atribudo o Nome do Banco de Dados Global, pelo qual o banco
de dados e identificado exclusivamente. Alem disso, ser
a necess
ario identificar o nome de uma inst
ancia para o banco de dados que est
a sendo
criado.
503
http://www.candidatoreal.com
Etapa 4 Ser
a necess
ario selecionar se deseja que o banco esteja em Modo Servidor Dedicado ou em Modo de Servidor Compartilhado. No primeiro caso,
cada conex
ao cliente e atendida um processo servidor para atender somente a esse cliente. No segundo caso, ser
a possvel para um processo
servidor atender mais de uma conex
ao cliente.
Etapa 5 Nessa etapa, os par
ametros de inicializac
ao relacionados `
a mem
oria, `
a
localizac
ao dos arquivos de configurac
ao e ao conjunto de caracteres ser
ao
configurados.
Etapa 6 Ser
a configurado o armazenamento do banco de dados, atraves de uma
tela ser
a possvel configurar arquivos de controle, tablespaces, arquivos de
dados, segmentos de rollback e grupos de redo logs.
Etapa 7 Na u
ltima etapa, haver
a a opc
ao de criar o banco de dados ou, simplesmente, utiliz
a-lo como gabarito.
65.5
Tipos de Usu
arios Oracle
Os tipos de usu
arios (papeis) variam de acordo com o lugar, mas podem ser divididos em administadores de banco de dados, respons
aveis pela seguranca, administradores de rede, desenvolvedores de aplicac
ao, administradores de aplicac
ao
e usu
arios do banco de dados.
65.5.1
http://www.candidatoreal.com
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.
Garantia do atendimento aos termos da licenca Oracle e contato direto
com o suporte tecnico da Oracle.
Monitorac
ao e otimizacao do desempenho do banco de dados.
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
http://www.candidatoreal.com
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 realat
orios atraves do
dados.
505
http://www.candidatoreal.com
Captulo 66
Administra
c
ao de Bancos
de Dados SQL Server
66.1
http://www.candidatoreal.com
66.1.1
Cat
alogos de sistema
506
http://www.candidatoreal.com
66.1.2
Processos em background
http://www.candidatoreal.com
66.2
66.3
Tratamento de Transa
c
oes no SQL Server
507
http://www.candidatoreal.com
http://www.candidatoreal.com
508
http://www.candidatoreal.com
Parte XIV
http://www.candidatoreal.com
ITIL
509
http://www.candidatoreal.com
Captulo 67
Suporte a Servi
cos
67.1
Service Desk
67.1.1
Objetivos
67.1.2
Responsabilidades
http://www.candidatoreal.com
510
http://www.candidatoreal.com
67.1.3
V
arios Tipos de Central
67.2
Gerenciamento de Incidentes
67.2.1
Objetivos
http://www.candidatoreal.com
67.2.2
Atividades do Processo
Identificac
ao e Registro do Incidente: Registro dos incidentes seja qual
for a fonte de abertura, reportando sintomas, diagn
ostico b
asico, itens de
configurac
ao envolvidos, perfil do usu
ario etc;
An
alise e Classificac
ao: Especifica melhor os sintomas do incidente para
determinar a soluc
ao;
Priorizac
ao: Combina os fatores impacto e urgencia para definir a prioridade 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
http://www.candidatoreal.com
67.3
Gerenciamento de Problemas
67.3.1
Objetivos
http://www.candidatoreal.com
67.3.2
Defini
c
oes 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 desconhecida de um ou mais Incidentes. Um Problema passa a Erro Conhecido
quando a causa-raiz for conhecida e for identificada uma soluc
ao de contorno ou uma alternativa definitiva.
BDP Base de Dados de Problemas. Base de Dados que contem todos os registros 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.
67.3.3
Atividades do Processo
Controle de Problemas
Identificac
ao e registro do Problema
Classificaca
o do Problema
Investigac
ao e diagn
ostico do Problema
Controle de Erros
Identificac
ao e registro do Erro
Avaliac
ao do Erro
Registro da resoluc
ao do Erro
Fechamento do Erro
Monitoramento da resoluc
ao do Erro
http://www.candidatoreal.com
An
alise de tendencias
Direcionamento das ac
oes de suporte
Fornecimento de informac
oes para a organizac
ao
Obtenc
ao de Informac
oes gerenciais a partir dos dados de Problemas
Completar as revis
oes dos principais Problemas
67.3.4
Pap
eis e Responsabilidades
http://www.candidatoreal.com
67.4
Gerenciamento de Configura
c
ao
67.4.1
Objetivos
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 Denominac
ao: Selec
ao e identificac
ao dos ICs, definindo
seus atributos, inter-relacionamento e identificac
ao;
http://www.candidatoreal.com
514
http://www.candidatoreal.com
67.4.3
Pap
eis e Responsabilidades
Gestor de Configurac
ao: Implementar polticas de gerenciamento de configurac
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
Gerenciamento de Mudan
cas
67.5.1
Objetivos
Garantir a aplicac
ao de metodos e procedimentos padronizados a fim de lidar
eficientemente com todas as mudancas no ambiente operacional, minimizando
os impactos na qualidade dos servicos e prevenindo a ocorrencia de incidente
provenientes das mudancas realizadas.
67.5.2
Responsabilidades
67.5.3
Defini
c
oes Importantes
http://www.candidatoreal.com
http://www.candidatoreal.com
respons
Gestor de Mudan
ca Change Manager E
avel pelas mudancas que
ocorrer
ao no ambiente de TI. Ele n
ao detem o poder de autorizar qualquer
mudanca, isso cabe ao GAM.
GAM Grupo de Aconselhamento de Mudancas. CAB - Change Advisory Board.
Tem a responsabilidade de planejar, avaliar e aprovar mudancas de medio
e alto impacto. O grupo e multidisciplinar, pode ter representantes do
Service Desk, desenvolvedores,
area de relacionamento com o cliente etc.
GAM/CE Grupo de Aconselhamento de Mudancas/Comite Emergencial. CAB/EC
- Change Advisory Board/Emergency Committee. Tem a mesma func
ao
do GAM, porem para mudanca emergenciais de alto e medio impacto.
Envolve nveis hier
arquicos mais altos da TI.
Agenda de Mudan
cas (AM) Contem detalhes de todas as mudancas aprovadas
usada para que todos os grupos afetados
e suas datas de implementac
ao. E
por uma mudanca possam se planejar.
Proje
c
ao 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 implementac
ao. Tem por objetivo avaliar se a mudanca atingiu e se houve
imprevistos ou efeitos colaterais.
Prioriza
c
ao de Mudan
cas A priorizac
ao das mudancas e realizada de acordo
com o seu impacto e a sua urgencia.
67.6
Gerenciamento de Libera
c
ao
67.6.1
Objetivo
Gerenciar a liberac
ao de componentes de software, hardware e documentos nas
implementac
oes e modificac
oes dos servicos, garantindo liberac
oes compatveis,
licenciadas e apropriadas para o ambiente de produc
ao. Opera como interface
entre o Gerenciamento de Mudancas e o Gerenciamento de Configurac
oes.
http://www.candidatoreal.com
67.6.2
Atividades do Processo
http://www.candidatoreal.com
67.6.3
Defini
c
oes Importantes
67.6.4
Pap
eis e Responsabilidades
http://www.candidatoreal.com
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.
Respons
avel T
ecnico pela Libera
c
ao Desenvolver o projeto, construc
ao e
configurac
ao da liberacao. Realizar testes. Realizar a instalac
ao e distribuic
ao de SW e HD. Armazenar o software na BSD.
517
http://www.candidatoreal.com
Captulo 68
Entrega de Servi
cos
68.1
68.1.1
Objetivos
http://www.candidatoreal.com
518
http://www.candidatoreal.com
Requisic
oes de Nvel de Servico: Documentos para fornecer vis
ao detalhada das necessidades do cliente, usados para ajustar ou criar novos
servicos (Service Level Request - SLR);
Acordo de Nvel Operacional (ANO): Formalizac
ao de acordos com fornecedores internos da organizac
ao, sobre manutenc
ao de servicos ou componentes de servicos (Operational Level Agreement - OLA);
Contratos de Apoio: Contratos de apoio com fornecedores externos (Underpinning Contract - UC);
Programa de Aperfeicoamento de Servicos (PAS): Identificar e implementar ac
oes necess
arias para superar dificuldades e restabelecer a qualidade
do servico;
Gerenciamento do Relacionamento com o Cliente: Administrar o relacionamento com os clientes visando a sustentac
ao dos acordos de nvel de
servico e nivelamento das expectativas;
Monitorac
ao, Revis
ao e Informac
ao: Garantir o andamento do processo e
o cumprimento das metas estabelecidas nos acordos.
68.2
Gerenciamento Financeiro
68.2.1
Objetivos
68.2.2
Responsabilidades
http://www.candidatoreal.com
68.2.3
Atividades do Processo
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.
Garantia que as receitas estar
ao disponveis para cobrir despesas previstas.
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 identificar 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.
C
alculo do custo de provimento dos servicos de TI para clientes externos
e internos.
An
alise Custo x Benefcio ou o retorno do investimento (ROI).
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
neg
ocio. As responsabilidades da disciplina compreendem:
Recuperac
ao dos custos dos servicos de TI dos clientes dos servicos.
Rateio dos custo entre os clientes da TI.
Influencia do comportamento do Cliente.
Precificar os servicos.
http://www.candidatoreal.com
68.2.4
Elementos de Custo
520
http://www.candidatoreal.com
68.3
Gerenciamento da Capacidade
68.3.1
Objetivos
http://www.candidatoreal.com
68.3.2
Atividades
521
http://www.candidatoreal.com
68.4
Gerenciamento de Disponibilidade
68.4.1
Objetivos
http://www.candidatoreal.com
68.4.2
522
http://www.candidatoreal.com
68.5
Gerenciamento de Continuidade
68.5.1
Objetivos
http://www.candidatoreal.com
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.
68.5.2
Est
agios
Incio: Obtenc
ao do aval gerencial e levantamento dos servicos de TI
crticos para o neg
ocio;
Requisitos Estrategicos: An
alise de Risco e de Impacto e elaborac
ao da
estrategia de continuidade;
Implementac
ao: Planejamento e implementac
ao das instalac
oes para recuperac
ao, elaborac
ao do plano de continuidade, medidas para reduc
ao de
riscos e realizac
ao de testes iniciais;
523
http://www.candidatoreal.com
68.5.3
Tipos de Continuidade
Soluc
oes de contorno manuais: Medidas tempor
arias ate que os servicos
sejam restabelecidos;
Acordos de reciprocidade: Organizac
oes concordam auxiliar uma a outra
em caso de desastres;
Recuperac
ao Gradual (Cold Standby): Ambiente computacional vazio, exceto por energia e telecomunicac
oes. Mnimo de 72 horas para reestabelecimento dos servicos;
Recuperac
ao Intermedi
aria (Warm Standby): Ambiente com equipamentos para recuperac
ao dos servicos mais crticos entre 24 e 72 horas;
http://www.candidatoreal.com
Recuperac
ao Imediata (Hot Standby): Instalac
ao alternativa com espelhamento contnuo de equipamentos e dados.
524
http://www.candidatoreal.com
Parte XV
http://www.candidatoreal.com
Ger
encia de Projetos
segundo PMBOK
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 projeto, 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.
http://www.candidatoreal.com
69.1
WBS e Defini
c
ao do Escopo
No processo de Definic
ao do Escopo, as entregas s
ao subdivididas em componentes menores e gerenci
aveis, para permitir o planejamento de tarefas e
atividades. As ferramentas e tecnicas desse processo s
ao a decomposic
ao e os
modelos da estrutura analtica do projeto (EAP ou WBS - Work Breakdown
Structure).
Segundo o PMBOK, a EAP e um conjunto de componentes do projeto, estruturados com base nas entregas, que organiza e define o escopo total do projeto;
o trabalho n
ao includo na EAP est
a fora do escopo do projeto. Assim, com a
declarac
ao de escopo, a EAP equivale a um acordo b
asico entre os stakeholders
e os integrantes da equipe com relac
ao ao escopo do projeto. Enfim, a EAP deve
especificar o escopo completo do trabalho necess
ario para concluir o projeto.
A decomposic
ao e uma das ferramentas usadas na preparac
ao da EAP, e
envolve a subdivis
ao das entregas em componentes distintos o suficiente para
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 considerado 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.
http://www.candidatoreal.com
Finalmente, o Dicion
ario da EAP contem uma descric
ao do nvel dos pacotes 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.
527
http://www.candidatoreal.com
Captulo 70
Gerenciamento de Recursos
Humanos
A fase de Gerenciamento de Recursos Humanos engloba os seguintes processos:
1. Planejamento Organizacional : definic
ao de equipes, perfis e responsabilidades, alem do formato da equipe (ex: democr
atica descentralizada, controlada centralizada, controlada descentralizada). Deve levar em considerac
ao as caractersticas da organizac
ao (matricial forte ou fraca, orientada
a projetos,etc);
2. Montagem de Equipe: alocac
ao de pessoas ou equipes aos papeis definidos;
http://www.candidatoreal.com
70.1
Estruturas Organizacionais
70.1.1
Organiza
c
ao Funcional
As organizac
oes funcionais giram em torno de especialidades e s
ao agrupadas
por func
ao - da o nome organizac
ao funcional. Nela pode haver, por exemplo,
um departamento de recursos humanos, outro de marketing e etc. O trabalho
executado nesses departamentos e especializado e requer que os funcion
arios
tenham aptid
oes especficas e experiencia nas func
oes para cumprir as responsabilidades. Esse tipo de organizac
ao e configurado de maneira hier
arquica, ou
seja, cada funcion
ario responde a um u
nico gerente e, em u
ltima inst
ancia, existe
um u
nico respons
avel no topo. Cada departamento ou grupo e administrado
separadamente e tem um
ambito de controle limitado. A seguir s
ao apresentadas as vantagens e desvantagens dessa organizac
ao.
As principais vantagens e desvantagens dessa organizac
ao s
ao:
Vantagens:
528
http://www.candidatoreal.com
70.1.2
Organiza
c
ao por Projeto
http://www.candidatoreal.com
As organizac
oes por projeto s
ao praticamente o oposto das organizac
oes funcionais. O enfoque e o pr
oprio 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.
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
c
ao Matricial
As organizac
oes matriciais surgiram para minimizar as diferencas entre os pontos
fortes e fracos das organizac
oes funcionais e das estruturadas por projeto.e melhor explor
a-los. Assim, os objetivos s
ao atendidos, tecnicas eficientes de gerenciamento de projetos s
ao aplicadas, ao mesmo tempo que tambem se mantem a
estrutura hier
arquica da organizac
ao.
http://www.candidatoreal.com
http://www.candidatoreal.com
70.2
Planejamento Organizacional
http://www.candidatoreal.com
70.3
Desenvolvimento da Equipe
http://www.candidatoreal.com
http://www.candidatoreal.com
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 v
ao 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.
http://www.candidatoreal.com
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 Consultoria de Especialistas;
4. Desenvolvimento do Cronograma : utilizac
ao de alguma tecnica matem
atica
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 (adic
ao 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.
http://www.candidatoreal.com
71.1
T
ecnicas de Desenvolvimento do Cronograma
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:
Metodo do caminho crtico (CPM - Critical Path Method);
Tecnica de An
alise e Avaliac
ao Gr
afica (GERT - Graphical Evaluation
and Review Technique);
Tecnica de An
alise e Avaliac
ao de Programa (PERT - Program Evaluation
and Review Technique).
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 u
nica 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 total pelo qual e possvel atrasar o incio da tarefa sem prorrogar o termino do
projeto. J
a 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 condicional, looping e tratamento probabilstico. Por exemplo, um o projeto de um
software pode exigir o teste de m
odulos individuais antes da verificac
ao do programa como um todo, a cada m
odulo precisa ser aprovado em seu teste `
a parte.
Cada teste constitui uma execuc
ao no laco.
http://www.candidatoreal.com
71.1.2
Compress
ao do Cronograma
535
http://www.candidatoreal.com
71.1.3
Simula
c
ao
Na simulac
ao parte-se de diferentes conjuntos de premissas para chegar a diversas 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 projeto. Outra tecnica chamada what-if (an
alise de hip
oteses) permite examinar o
cronograma sob diversas circunst
ancias.
71.1.4
A an
alise matem
atica n
ao leva em considerac
ao a disponibilidade de recursos.
Entretanto, com freq
uencia o cronograma inicial tem perodos de tempo com
mais atividades do que recursos disponveis para elas e que nem sempre e possvel
alocar `
as tarefas 100 % do tempo dos membros da equipe. Nesse contexto, o
nivelamento de recursos - tambem chamado metodo baseado em recursos - visa
a aplainar a distribuic
ao de recursos para que as tarefas sejam concludas sem
sobrecarregar ninguem, ao mesmo tempo procurando manter o projeto dentro
do cronograma.
71.1.5
Estrutura de Codificac
ao
http://www.candidatoreal.com
A estrurura de codificac
ao e uma ferramenta e tecnica relacionada `
a possibilidade de ordenar atividades com base em caractersticas que lhes podem ser
atribudas - como por exemplo classificac
oes da EAP, fases do projeto, tipo de
atividades e etc.
536
http://www.candidatoreal.com
Captulo 72
Gerenciamento de Custo
Os processos englobados pela
area de Gerenciamento de Custo s
ao:
1. Planejamento dos Recursos: determinar quais recursos ser
ao necess
arios
e em que quantidade;
2. Estimativa dos Custos: associar custo aos recursos enumerados;
3. Orcamentac
ao dos Custos: alocac
ao das estimativas globais de custo s
ao
utilizadas para formalizar o orcamento;
4. Controle dos Custos: revisar o orcamento, identificar e administrar desvios.
72.1
T
ecnicas de Estimativas de Custos
http://www.candidatoreal.com
Ferramentas computadorizadas
72.1.1
Estimativas An
alogas
As estimativas an
alogas, tambem chamadas de estimativas top-down, s
ao uma
forma de opini
ao especializada. Nessa tecnica usa-se a durac
ao real de uma
atividade similar realizada num projeto anterior para projetar a durac
ao da
atividade atual. Essa tecnica e muito u
til quando as atividades anteriores de
referencia s
ao realmente pr
oximas com a atividade que est
ao sendo avaliada. E
particularmente u
til quando n
ao h
a informac
oes minuciosas sobre o projeto como ocorre em suas fases iniciais, por exemplo.
537
http://www.candidatoreal.com
72.1.2
Modelagem Param
etrica
um modelo matem
E
atico que usa par
ametros - ou caractersticas do projeto para prever custos. A ideia e descobrir um ou v
arios par
ametros que se modifiquem paralelamente aos custos do projeto, incorporando-os ao modelo para
chegar a um custo total. Para utilizar essa tecnica e preciso haver um padr
ao
no trabalho, de modo que possamos usar uma estimativa desse elemento para
gerar a estimativa total do projeto. A modelagem parametrica e semelhante `
a
estimativa an
aloga, na medida em que preve o custo do projeto inteiro de cima
para baixo.
72.1.3
Estimativa bottom-up
http://www.candidatoreal.com
538
http://www.candidatoreal.com
Captulo 73
Gerenciamento de Riscos
A
area de gerenciamento de riscos e respons
avel por minimizar a probabilidade
de ocorrencia de desvios ao longo do ciclo de vida do projeto. Os processos do
Gerenciamento de Riscos s
ao:
1. Planejamento: definir qual ser
a a abordagem aos riscos;
2. Identificac
ao: identificar, descrever e classificar os riscos;
3. An
alise Qualitativa: associar probabilidades e graus de impacto aos riscos
atraves de tecnicas como Matriz de Graduac
ao, Matriz Probabilidade x
Impacto;
4. An
alise Quantitativa: associar probabilidades e graus de impacto de forma
http://www.candidatoreal.com
73.1
An
alise Qualitativa
A An
alise Qualitativa de Riscos visa `
a detecc
ao do impacto dos riscos identificados sobre os objetivos do projeto e sua probabilidade de ocorrencia. Tambem
classifica os riscos por prioridade, de acordo com os efeitos sobre os objetivos do
projeto. Nesse processo, basta atribuir ao risco um valor alto, medio ou baixo
(ou alguma combinac
ao similar).
As ferramentas desse processo, de uma forma geral, visam a descobrir a
probabilidade de um evento de risco e a determinar seu impacto caso venha a
ocorrer. Nesse sentido, a ferramenta e tecnica Probabilidade e Impacto do Risco
atribui probabilidades aos eventos de risco identificados e calcula seu efeito sobre os objetivos do projeto. Esses metodos permitem determinar que riscos
demandam o gerenciamento mais agressivo.
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;
http://www.candidatoreal.com
Simulac
ao.
An
alise de Sensibilidade e um metodo de an
alise do possvel impacto dos
eventos de risco sobre o projeto e determinac
ao de que evento (ou eventos) de
risco tem maior impacto potencial. Tambem pode ser empregada para averiguar
os nveis de toler
ancia aos riscos por parte dos stakeholders. Ela examina a extens
ao 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 decis
oes 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 conseq
uencias 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
http://www.candidatoreal.com
A simulac
ao tem como principal representante a tecnica de Monte Carlo.
Ela ajuda a quantificar os riscos associados ao projeto com um todo. Os riscos
identificados e seus possveis impactos sobre os objetivos do projeto s
ao examinados sob o prisma do projeto global. A tecnica e usada para determinar os
possveis resultados pr meio da simulac
ao do projeto diversas vezes seguidas.
541
http://www.candidatoreal.com
Captulo 74
Gerenciamento de
Qualidade
Os processos para realizac
ao do Gerenciamento de Qualidade como definidos no
PMBOK s
ao:
1. Planejamento: definic
ao dos padr
oes de qualidade relevantes ( Benchmarking, Diagrama Espinha de Peixe (causa/efeito) e Fluxograma Processo);
2. Garantia: verificar relev
ancia dos processos definidos;
3. Controle: analisar de padr
oes est
ao sendo seguidos, identificar causas de
desvios. Ferramentas muito utilizadas s
ao a Carta Controle, Diagrama de
Pareto (direcionar ac
oes corretivas).
http://www.candidatoreal.com
74.1
T
ecnicas de Planejamento da Qualidade
74.1.1
An
alise Custo/Benefcio
An
alise de custo/benefcio aborda as compensac
oes 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 implicadas na execuc
ao 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 diversos elementos de um sistema. Os fluxogramas podem ajudar a identificar
possibilidades de ocorrencia de problemas no projeto. H
a dois tipos mais comuns de fluxogramas: os diagramas de processo ou sistema e os diagramas de
causa e efeito.
Os diagramas de causa e feito mostram a relac
ao entre os efeitos dos problemas e suas causas, apresentando todas as possveis causas prim
arias e secund
arias dos problemas, bem como os efeitos de cada soluc
ao sugerida. Esse
diagrama tambem e chamado de espinha de peixe ou de Ishikawa.
http://www.candidatoreal.com
74.1.4
Elabora
c
ao de Experimentos
543
http://www.candidatoreal.com
74.1.5
Custo da Qualidade
http://www.candidatoreal.com
Custos de falhas s
ao aqueles que ocorrem quando as coisas n
ao se passam
conforme o planejado. S
ao dois tipos: internos (tambem chamado de custo de
erro) e externos (tambem chamado de custo de defeito). O primeiro se imp
oe
quando os requisitos do cliente deixam de ser satisfeitos com o produto ainda
sob controle da organizac
ao. Os custos de falhas externas se d
ao quando o produto j
a chegou ao cliente e este entende que suas determinac
oes ainda n
ao foram
atendidas.
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 qualidade: 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
tem pouco controle a exercer. Ao lado dos tres te
oricos, pode-se citar como de
importante relev
ancia a Abordagem Kaizen que significa melhoria contnua.
74.2
T
ecnicas de Controle da Qualidade
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
Figura 74.2: Gr
afico de Controle
http://www.candidatoreal.com
74.2.2
Diagramas de Pareto
545
http://www.candidatoreal.com
74.2.3
Diagramas de Dispers
ao
http://www.candidatoreal.com
Os diagramas de dispers
ao usam duas vari
aveis, uma denominada vari
avel independente, que e entrada, e outra chamada vari
avel dependente, que e uma
sada, e mostram a relac
ao entre ambas, sob a forma de pontos no gr
afico.
546
http://www.candidatoreal.com
Captulo 75
Gerenciamento da
Comunicac
ao
Segundo o PMBOK,o Gerenciamento da Comunicac
ao e dividido nos seguintes
processos:
1. Planejamento: definic
ao das informac
oes necess
arias, objetos de comunicac
ao e layouts de documentos;
2. Distribuic
ao das Informac
oes: disponibilizar as informac
oes necess
arias
as partes envolvidas;
`
3. Relato de Desempenho: relat
orios de situac
ao, de progresso e previs
oes;
4. Encerramento Administrativo: encerramento formal do projeto. Divulgac
ao
dos resultados do projeto para patrocinadores e cliente, considerc
oes finais,
an
alise dos pontos fracos e fortes.
http://www.candidatoreal.com
75.1
Compreende a determinac
ao das necessidades de comunicac
ao do stakeholders
por meio da definic
ao dos tipos de dados necess
arios e do formato em que ser
ao
transmitidos. Dois fatores influenciam esse processo: os requisitos de comunicac
ao e a tecnologia envolvida. A sada desse processo e o plano de gerenciamento das comunicac
oes. Ele estabelece como coletar, armazenar, arquivar
e corrigir ou atualizar materiais j
a divulgados. Contem tambem uma lista das
informac
oes 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 informac
oes 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:
1. Planejamento: identificac
ao das necessidades que ser
ao melhor atendidas
por terceiros. Elaboracao da SOW (Specification of Work );
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.
http://www.candidatoreal.com
76.1
O Planejamento de Aquisic
oes e um processo que identifica os bens ou servicos a
serem comprados fora da organizac
ao - o que inclui confirmar se devem adquirir
os produtos ou servicos e, em caso afirmativo, quanto e quando. Duas ferramentas s
ao usadas com freq
uencia nesse processo: an
alise ?make or buy? e
selec
ao do tipo de contrato. A principal decis
ao a ser tomada por medio dessa
an
alise e se vai ser melhor, em termos de custos para a organizac
ao, comprar ou
fabricar os bens ou servicos necess
arios par ao projeto. J
a a outra tecnica trata
da selec
ao do tipo de contrato usado para aquisic
ao de produto ou servico. Os
tipos de contrato s
ao:
Contratos de preco fixo ou preco global: O contratado arca com a maior
parte dos riscos;
Contrato de custos reembols
aveis: O contratante arca com a maior parte
dos riscos;
+ Custo mais remunerac
ao fixa
548
http://www.candidatoreal.com
http://www.candidatoreal.com
Um cronograma do projeto.
549
http://www.candidatoreal.com
Captulo 77
Gerenciamento da
Integrac
ao
Para assegurar que
areas estao bem coordenadas o PMBOK define a
area de
Gerenciamento da Integrac
ao, que e composta pelos seguintes processos:
1. Desenvolvimento do Plano do Projeto: reune todas as
areas em em um
documento chamado Plano de Projeto);
2. Execuc
ao do Plano: onde e gasto maior parte Orcamento;
3. Controle Integrado de Mudancas: analisar as possveis mudancas, motivos
e respectivos impactos ao longo do projeto. Os ajustes devem ser feitos
de forma integrada.
77.1
Ferramentas de Apoio `
a Integra
c
ao
http://www.candidatoreal.com
Duas ferramentas s
ao usadas nessa
area: Gerenciamento de Valor Agregado
(GVA ou EVM - Earned Value Management) e os softwares de gerenciamento
de projetos. O GVA e uma metodologia de integrac
ao de projetos empregada
para integrar processos e mensurar o desempenho do projeto ao longo do ciclo
de vida do projeto. O MS Project e um exemplo de software de ap
oio `
a gerencia
de projetos. Outro exemplo e o Primavera TeamPlayer.
O GVA pode ser empregado tanto no processo de controle de custos quanto
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 ap
oia o c
alculo das variac
oes de custo.
550
http://www.candidatoreal.com
Captulo 78
http://www.candidatoreal.com
Como mencionado anteriormente, os projetos possuem um ciclo de vida parecido. Esse ciclo de vida pode ser organizado nos seguintes grupos processos:
iniciac
ao, planejamento, execuc
ao, controle e encerramento. Os cinco grupos
s
ao iterativos. A figura 78.1 apresenta os grupos de processos em um ciclo de
vida de projeto tpico.