Você está na página 1de 551

Sum ario

I Fundamentos de Computa c ao
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16
17 17 18 20 22 24 25 26 28 29 29 30 30 31 33 34 34 36 37 37 38 38 39 39 39 39 39 40 41 41 42 43

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 Instru co es . . . . . . . . . . . . . . 1.4 Unidade de Controle . . . . . . . . . . . . . . . 1.5 Modos de Endere camento . . . . . . . . . . . . 1.6 Organiza c ao de Mem oria . . . . . . . . . . . . . 1.7 Desempenho do computador . . . . . . . . . . . 1.7.1 Tempo de execu c 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 . . . . . . . . . . . . . . 2 Componentes de um Computador 2.1 Principais componentes de Hardware 2.1.1 Discos R gidos . . . . . . . . 2.1.2 Teclado . . . . . . . . . . . . 2.1.3 Mouse . . . . . . . . . . . . . 2.1.4 Placa de rede . . . . . . . . . 2.1.5 Impressora . . . . . . . . . . 2.1.6 Monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

http://www.candidatoreal.com

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 Nota c ao em excesso . . . . . . . . . . . 3.2 Adi c ao e Subtra c ao . . . . . . . . . . . . . . . . 3.3 Opera c oes L ogicas . . . . . . . . . . . . . . . . 3.4 Constru c ao de uma Unidade L ogica Aritm etica 3.5 Ponto Flutuante . . . . . . . . . . . . . . . . .

http://www.candidatoreal.com

4 Sistemas Operacionais 4.1 Introdu c ao . . . . . . . . . . . . . . . . . . . . . . . 4.2 Conceitos B asicos . . . . . . . . . . . . . . . . . . . 4.2.1 Multiprograma c ao . . . . . . . . . . . . . . 4.2.2 Processo . . . . . . . . . . . . . . . . . . . . 4.2.3 Interrup c oes . . . . . . . . . . . . . . . . . . 4.2.4 Threads . . . . . . . . . . . . . . . . . . . . 4.3 Escalonamento de Processos . . . . . . . . . . . . . 4.4 Entrada e Sa da . . . . . . . . . . . . . . . . . . . . 4.4.1 Camadas do subsistema de Entrada e Sa da 4.5 Ger encia de Mem oria . . . . . . . . . . . . . . . . . 4.6 Sistemas de Arquivos . . . . . . . . . . . . . . . . . 4.6.1 Conceitos b asicos sobre arquivos . . . . . . 4.6.2 Implementa ca o de arquivos . . . . . . . . . 4.6.3 Cache de Sistema de Arquivos . . . . . . . 4.6.4 Gerenciamento do espa co livre . . . . . . . 4.6.5 Diret orios . . . . . . . . . . . . . . . . . . . 4.6.6 Implementa ca o de diret orios . . . . . . . . . 4.7 Sistemas Operacionais Distribu dos . . . . . . . . . 4.7.1 Estrutura c ao de Sistemas Distribu dos . . . 5 Principais Processadores de 5.1 Processadores Intel . . . . 5.1.1 Fam lia Pentium . 5.1.2 Fam lia Celeron . . 5.1.3 Fam lia 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 . . . . . . Mercado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

44 44 46 46 46 47 48 49 50 51 52 54 54 56 57 58 59 61 61 63 65 65 65 68 69 71 74 75 75 76 79 81

II

L ogica de Programa c ao
. . . . . . . . . . . . . . . . . . . . . . . . orientada a objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

83
84 84 84 90 90

http://www.candidatoreal.com

6 Orienta c ao a Objetos 6.1 Introdu c ao . . . . . . . . . 6.2 Conceitos fundamentais . 6.3 Princ pios de programa c ao 6.4 Tratamento de exce co es .

III

Metodologia de Desenvolvimento

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

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 m etodos formais . . . . . . . . . . . T ecnicas de quarta gera c ao . . . . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

96 97 97 98 99 100 100 100 100 102 102 105 105 106 106 107 107 109 109 110 110 110 111 111 111 111 112 112 112 112 113 114 114 116 118 118 119 119 120 120 122 122 123 123 124 124 125

8 An alise Comparativa de Processos de Desenvolvimento 8.1 RUP - Rational Unied 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) . . . . . . . . . . 9 Engenharia de Requisitos 9.1 O Processo de Engenharia de Requisitos 9.2 T ecnicas de Levantamento de Requisitos 9.2.1 Observa c 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 Prototipa c ao . . . . . . . . . . . 9.2.9 Cen arios . . . . . . . . . . . . . . 9.2.10 FAST . . . . . . . . . . . . . . . 9.3 An alise de Requisitos . . . . . . . . . . . 9.3.1 M etodos de an alise . . . . . . . . 9.3.2 Modelagem da an alise . . . . . . 9.4 Gerenciamento de Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

http://www.candidatoreal.com

10 M etricas 10.1 M etricas de processo e aperfei coamento de processo 10.2 M etricas de projeto . . . . . . . . . . . . . . . . . . 10.3 Medi c ao de software . . . . . . . . . . . . . . . . . 10.3.1 M etricas orientadas a tamanho . . . . . . . 10.3.2 M etricas orientadas a fun c ao . . . . . . . . 10.3.3 M etricas de pontos por fun cao estendidas . 10.4 M etricas 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 . . . . . . . . . . . . . . . . . . . . . .

software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

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 condi c ao . . . . . . . . . . . . . . . . . . . . 11.2.2 Teste de uxo de dados . . . . . . . . . . . . . . . . 11.2.3 Teste de ciclo . . . . . . . . . . . . . . . . . . . . . . 11.3 Teste caixa-preta . . . . . . . . . . . . . . . . . . . . . . . . 11.3.1 M etodos de teste baseados em grafo . . . . . . . . . 11.3.2 Particionamento de equival encia . . . . . . . . . . . 11.3.3 An alise de valor limite . . . . . . . . . . . . . . . . . 11.3.4 Teste de compara c ao . . . . . . . . . . . . . . . . . . 11.3.5 Teste de matriz ortogonal . . . . . . . . . . . . . . . 11.4 Teste de ambientes, arquiteturas e aplica c oes especializadas 11.5 Estrat egia de teste de software . . . . . . . . . . . . . . . . 12 UML 12.1 Diagrama de caso de uso . . . . . 12.1.1 Ator . . . . . . . . . . . . 12.1.2 Descri c ao do caso de uso . 12.2 Diagrama de classe . . . . . . . . 12.2.1 Associa c oes de classe . . . 12.3 Diagramas de seq u encia . . . . . 12.4 Diagramas de colabora c ao . . . . 12.5 Diagramas de estado . . . . . . . 12.6 Diagramas de atividade . . . . . 12.7 Elementos auxiliares . . . . . . . 12.8 Diagramas de componente . . . . 12.9 Diagramas de distribui c ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

127 127 129 129 130 130 131 131 131 132 132 132 133 134 136 136 136 137 137 138 140 140 141 143 144 144 144 145 146 147 147 149 150 150 150 151 152 152 152 153

13 Ger encia de Congura c ao e Mudan cas 13.1 As Atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.2 Artefatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.3 Pap eis e Responsabilidades . . . . . . . . . . . . . . . . . . . . . 14 CMM - Capability Maturity Model 14.1 Os n veis de maturidade no CMM . . . . . 14.1.1 N vel 1 - Inicial . . . . . . . . . . . . 14.1.2 N vel 2 - Repetitivo . . . . . . . . . 14.1.3 N vel 3 - Denido . . . . . . . . . . . 14.1.4 N vel 4 - Gerenciado . . . . . . . . . 14.1.5 N vel 5 - Otimizado . . . . . . . . . 14.2 Um pouco mais sobre KPAs . . . . . . . . 14.3 Efeitos da evolu c ao do n vel de maturidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

http://www.candidatoreal.com

IV

Linguagem de Programa c ao Java

155

15 Conceitos B asicos de Java 156 15.1 Pacotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 15.2 Modicadores de Acesso . . . . . . . . . . . . . . . . . . . . . . . 157

http://www.candidatoreal.com

15.3 Vari aveis . . . . . . . . . . . . . . 15.4 Operadores . . . . . . . . . . . . 15.5 Express oes, Senten cas e Blocos . 15.6 Comandos de Controle de Fluxo 15.7 Classes Aninhadas . . . . . . . . 15.8 Tipos Enumerados . . . . . . . . 15.9 Anota c oes . . . . . . . . . . . . . 15.10Gen ericos . . . . . . . . . . . . . 15.11Reex ao . . . . . . . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

157 158 160 161 166 167 168 169 171 173 173 173 175 176 176 177 178 178 179 180 181 181 183 185 185 188 189 190 193 195 197 199 199 200 200 201 203 203 204 205 207 208 209 209 211 212

16 Classes Essenciais 16.1 Exception e Controle de Exce c oes . . . . . 16.1.1 Exce c oes t picas . . . . . . . . . . 16.1.2 Capturando Exce c oes . . . . . . . 16.2 Threads e Concorr encia . . . . . . . . . . 16.2.1 Denindo e Iniciando uma Thread 16.2.2 Pausando a execu c ao com sleep . . 16.2.3 Interrup c oes . . . . . . . . . . . . . 16.2.4 Joins . . . . . . . . . . . . . . . . . 16.2.5 Sincroniza c ao . . . . . . . . . . . . 16.2.6 Executores e Thread Pools . . . . 16.3 Streams e Serializa c ao . . . . . . . . . . . 16.3.1 I/O Streams . . . . . . . . . . . . 16.3.2 Serializa c ao - Streams de Objetos . 16.4 Classes e Opera c oes de I/O . . . . . . . . 16.5 Classes para manipula c ao de propriedades 17 Cole c oes 17.1 Interface 17.2 Interface 17.3 Interface 17.4 Interface 17.5 Interface Collection Set . . . . List . . . Map . . . Queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

http://www.candidatoreal.com

18 JDBC - Java Database Connectivity 18.1 Conceitos B asicos . . . . . . . . . . . 18.2 Carregamento de drivers . . . . . . . 18.3 Conex ao . . . . . . . . . . . . . . . . 18.4 Statements . . . . . . . . . . . . . . 18.5 Prepared Statements . . . . . . . . . 18.6 Transa c ao . . . . . . . . . . . . . . . 18.7 Informa c oes Complementares . . . . 18.8 Exemplo Extra . . . . . . . . . . . . 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

http://www.candidatoreal.com

19.4 Um pouco mais sobre p aginas JSP 19.4.1 JSP vs. Servlets . . . . . . 19.5 Um pouco mais sobre EJBs . . . . 19.5.1 Ciclo de Vida dos EJBs . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

213 215 216 217

Desenvolvimento Web

220

20 Usabilidade 221 20.1 Deni c ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 20.2 Princ pios da usabilidade . . . . . . . . . . . . . . . . . . . . . . . 222 20.3 T ecnicas de avalia c ao de usabilidade . . . . . . . . . . . . . . . . 223 21 Acessibilidade 21.1 Deni c ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2 Princ pios da acessibilidade . . . . . . . . . . . . . . . . . . . . . 21.3 T ecnicas de avalia c ao de acessibilidade . . . . . . . . . . . . . . . 22 Padr oes Web W3C 23 XML 23.1 O que e XML? . . . . . . . . . . . 23.2 Caracter sticas do XML . . . . . . 23.3 Compara c 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 Benef cios da linguagem XML . . . 23.10Ferramentas de desenvolvimento . 24 XSLT 24.1 O que e uma folha de estilo? . . 24.2 Compara c ao entre o CSS e XSL . 24.3 O que e o XSL? . . . . . . . . . . 24.4 O que e o XSLT? . . . . . . . . . 24.5 Caracter sticas 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 224 224 227 229 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

. . . . . . . . . . . . . . . .

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 . . . . . . . . . . . . . . . . . . . . . . 26 Web Services 26.1 O que e Web Services? 26.2 SOAP . . . . . . . . . 26.3 WSDL . . . . . . . . . 26.4 UDDI . . . . . . . . . 26.5 Seguran ca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

256 256 257 258 260 263 263 266 267 269 269

VI

Redes de Comunica c ao
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Zero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

270
271 271 272 272 273 273 274 274 275 275 275 276 276 277 279 280 281 281 281 282 283 284

27 T ecnicas B asicas de Comunica c ao 27.1 Base Te orica da Comunica c 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 Classica c ao dos Sinais . . . . . . . . . . . . . . . . . . . 27.6 T ecnicas de Codica c ao de Linha . . . . . . . . . . . . . 27.6.1 Codica c ao NRZ . . . . . . . . . . . . . . . . . . 27.6.2 Codica c ao RZ . . . . . . . . . . . . . . . . . . . 27.6.3 Codica c ao AMI (Alternate Mark Invertion) . . 27.6.4 Codica c ao HDB-3 (High Density Bipolar with Maximum Tolerance) . . . . . . . . . . . . . . . 27.6.5 Codica c ao Manchester . . . . . . . . . . . . . . 27.7 Modula c ao . . . . . . . . . . . . . . . . . . . . . . . . . 27.7.1 Modula c ao de Onda Cont nua . . . . . . . . . . . 27.7.2 Modula c ao de Pulsos . . . . . . . . . . . . . . . . 27.8 T ecnicas de Multiplexa c 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 . . . . . . . . . . . . . . .

http://www.candidatoreal.com

28 Topologias de Redes

29 Arquitetura de Redes 286 29.1 Organiza c ao em Camadas . . . . . . . . . . . . . . . . . . . . . . 286 30 Protocolos de Rede 30.1 ARP - Address Resolution Protocol . . . . . . 30.2 DHCP - Dynamic Host Conguration 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

30.6 HTTP - Hyper Text Transfer Protocol . . . . . 30.7 SMTP - Simple Mail Transfer Protocol . . . . . 30.8 POP3 - Post Oce Protocol Version 3 . . . . . 30.9 IMAP - Internet Mail Access Protocol . . . . . 30.10LDAP - LightWeight Directory Access Protocol 30.11SNMP - Simple Network Management Protocol 30.12FTP - File Transfer Protocol . . . . . . . . . . 30.13IP - Internet Protocol . . . . . . . . . . . . . . 30.14TELNET - TELetype NETwork . . . . . . . . 31 O Modelo de Refer encia OSI 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 . . . . . . . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

294 299 301 303 305 305 306 310 311 314

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

316 317 319 320 320 320 321 322 322 323 324 326 326 326 327 328 328 329 329 333 334 335 336

33 Redes Ethernet 33.1 Protocolo CSMA/CD . . . . . . . . . . . . . . . . . . . . . . . . 33.2 Fast Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33.3 Gigabit Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Cabeamento Estruturado 34.1 Par Tran cado . . . . . . . . . . . . . . . . . . . . . 34.1.1 Interfer encias nos Cabos de Par Tran cado . 34.2 Categorias 5e . . . . . . . . . . . . . . . . . . . . . 34.3 Categoria 6 . . . . . . . . . . . . . . . . . . . . . . 34.4 Categoria 5e vs. Categoria 6 . . . . . . . . . . . . 34.5 Cabea c 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 . . . . . . . . . . . . . . 34.6.2 Fibra Optica . . . . . . . . . . . . . . . . . 34.7 C odigo de Cores para Sistemas de Cabe c ao UTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

http://www.candidatoreal.com

35 Redes sem o 337 35.1 O padr ao IEEE 802.11 . . . . . . . . . . . . . . . . . . . . . . . . 337 35.1.1 CSMA/CA . . . . . . . . . . . . . . . . . . . . . . . . . . 338 35.1.2 Formato do Quadro 802.11 . . . . . . . . . . . . . . . . . 339 36 Elementos de Interconex ao de Redes 36.1 Repetidores . . . . . . . . . . . . . . 36.2 Hubs . . . . . . . . . . . . . . . . . . 36.3 Switches . . . . . . . . . . . . . . . . 36.4 Bridges . . . . . . . . . . . . . . . . 36.5 Roteadores . . . . . . . . . . . . . . 36.6 Gateways . . . . . . . . . . . . . . . de . . . . . . . . . . . . Computadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 340 340 341 342 342 343

http://www.candidatoreal.com

37 Redes Multim dia 37.1 Qualidade de Servi co . . . . . . . . . . . . . . . . . . . . . . . . . 37.2 Servi cos Integrados - IntServ . . . . . . . . . . . . . . . . . . . . 37.3 Servi cos Diferenciados - DiServ . . . . . . . . . . . . . . . . . . 38 Redes X.25 e Frame Relay 38.1 X.25 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38.2 Frame Relay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38.2.1 Estrutura do Frame . . . . . . . . . . . . . . . . . . . . . 38.2.2 Envio de um datagrama IP de Ethernet para Frame Relay e Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . 38.3 Interliga c ao de Redes LAN . . . . . . . . . . . . . . . . . . . . . 38.3.1 Voz sobre Frame Relay (VoFR) . . . . . . . . . . . . . . . 38.3.2 Intera c ao entre Frame Relay e ATM . . . . . . . . . . . . 38.3.3 CIR (Taxa de Informa c ao Comprometida) . . . . . . . . .

344 344 346 347 348 348 348 349 350 351 351 352 352

39 Redes Virtuais Locais 354 39.1 VLANs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 39.1.1 Deni c ao . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 39.1.2 Protocolo 802.1q . . . . . . . . . . . . . . . . . . . . . . . 354 40 Redes de Circuito Virtuais 356 40.1 Redes ATM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356 40.2 MPLS - Multiprotocol Label Switching . . . . . . . . . . . . . . . 358 41 Arquitetura TCP/IP 41.1 Vis ao geral . . . . . . . . . . . . . . . . . . . . 41.2 Compara c ao entre a arquitetura OSI e TCP/IP 41.3 Camada F sica (host/rede) . . . . . . . . . . . 41.4 Camada de Inter-Rede . . . . . . . . . . . . . . 41.5 Camada de Transporte . . . . . . . . . . . . . . 41.6 Camada de Aplica c ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360 360 360 361 361 362 362

42 Camada de Aplica c ao 364 42.1 Proxy Cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364

VII
http://www.candidatoreal.com

Ger encia de Redes

366

43 O protocolo SNMP 367 43.1 Management Information Base . . . . . . . . . . . . . . . . . . . 368

VIII

Seguran ca da Informa c ao
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

370
371 371 372 372 373 373

44 Pol ticas de Seguran ca de Informa c ao 44.1 Pol ticas de Seguran ca . . . . . . . . . 44.2 Projeto de Seguran ca . . . . . . . . . . 44.3 Plano de Seguran ca . . . . . . . . . . . 44.4 Normas de Seguran ca . . . . . . . . . 44.4.1 ISO/IEC 17799 . . . . . . . . . 9

http://www.candidatoreal.com

44.4.2 Fam lia ISO 27000 . . . . . 44.4.3 Diferen cas entre a ISO/IEC 44.5 Procedimentos de Seguran ca . . . . 44.6 Arquitetura de Seguran ca . . . . . 44.7 Classica c ao de Informa c oes . . . .

. . . . . . . . . . . . 17799 e a ISO 27001 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

375 376 376 377 377

45 Seguran ca F sica e L ogica 379 45.1 Seguran ca F sica . . . . . . . . . . . . . . . . . . . . . . . . . . . 379 45.2 Seguran ca 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 V rus e Ataques 386 47.1 Estrat egias de combate ` a pragas eletr onicas . . . . . . . . . . . . 388 47.1.1 Antiv rus . . . . . . . . . . . . . . . . . . . . . . . . . . . 388 48 Princ pios de Criptograa 48.1 Tipos de Criptograa . . . . . . . . . . 48.2 Algoritmos de Criptograa Sim etricos . 48.3 Algoritmos de Criptograa Assim etricos 48.4 T ecnicas de Quebra de Criptograa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390 391 392 393 394

49 Autentica c ao 49.1 Autentica c ao de Mensagens . . . . . . . . . . . . . 49.2 Protocolos de Autentica c ao . . . . . . . . . . . . . 49.2.1 M etodos de Autentica c ao . . . . . . . . . . 49.2.2 Autentica c ao baseada em uma chave secreta 49.3 Certicado Digital . . . . . . . . . . . . . . . . . . 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 rewall e DMZ . 50.5 Sistemas de Detec c ao de Intrus ao (IDS) 50.6 Seguran ca em Redes Wireless 802.11 . . 50.6.1 WEP . . . . . . . . . . . . . . . 50.7 802.11i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

395 . . . . . . . . 395 . . . . . . . . 396 . . . . . . . . 396 compartilhada396 . . . . . . . . 397 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399 399 400 401 403 405 405 406 407 407 409 409 409 410

http://www.candidatoreal.com

10

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 H bridos . . . . . . . . . . . . . . . . . . . . . . . . 419 51.1.9 Comparativo de Desempenho entre as diversas congura c 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 52 Clusters de servidores 52.0.1 Princ pios de um Cluster . . . . 52.0.2 Abstra c oes em um Cluster . . . . 52.0.3 Arquitetura de um Cluster . . . 52.0.4 Cluster X Sistemas Distribu dos 52.0.5 Cluster de Alta Disponibilidade . 52.0.6 Cluster de Alto Desempenho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427 427 428 429 430 431 433 436 436 436 437 437 438 438 439 439

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 distribu do

http://www.candidatoreal.com

Sistemas Operacionais
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

442
443 443 443 445 445 446 446 446 447

54 Ambiente Microsoft Windows 2000/2003 54.1 DHCP - Dynamic Host Conguration Protocol . . 54.1.1 Processo de Instala c ao/Congura c ao . . . . 54.1.2 Integra c ao do DHCP com o DNS . . . . . . 54.1.3 APIPA - Automatic Private IP Addressing 54.1.4 Comandos ipcong Relacionados ao DHCP 54.1.5 Regra 80/20 . . . . . . . . . . . . . . . . 54.2 DNS - Domain Name System . . . . . . . . . . . . 54.2.1 Processo de Instala c ao/Congura c ao . . . .

11

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

Seguran ca de Acesso . . . . . . . . . . . . . . . . . . . . . Integra c ao do DNS com o Active Directory . . . . . . . . Servidor DNS somente Cache . . . . . . . . . . . . . . . . Arquivo Hosts . . . . . . . . . . . . . . . . . . . . . . . . Distribui c ao de Carga . . . . . . . . . . . . . . . . . . . . Comando ipcong/dnscmd Relacionadas ao DNS . . . . . Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . Tipos de Servidores . . . . . . . . . . . . . . . . . . . . . Deni c oes de Floresta, Dom nio, Site e Unidade Organizacional . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54.3.3 Recursos do Active Directory . . . . . . . . . . . . . . . . 54.3.4 Seguran ca 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 Diferen cas entre IIS4, IIS5 e IIS6 . . . . . . . . 54.5 Terminal Services . . . . . . . . . . . . . . . . . . . . . . . . . . . 54.5.1 Principais Benef cios . . . . . . . . . . . . . . . . . . . . . 54.5.2 Protocolos de Comunica c ao . . . . . . . . . . . . . . . . . 54.5.3 Licen cas . . . . . . . . . . . . . . . . . . . . . . . . . . . .

449 449 451 451 451 451 452 453 453 454 455 456 456 456 459 460 461 461 462 463 464

XI

Banco de Dados

465
466

55 Conceitos B asicos

56 Abordagem Relacional 468 56.1 Conceitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468 56.2 Esquemas e Restri c oes de Integridade . . . . . . . . . . . . . . . 468 57 Modelagem Entidade Relacionamento 57.1 Conceitos . . . . . . . . . . . . . . . . . . . . . 57.2 Cardinalidade . . . . . . . . . . . . . . . . . . . 57.3 Representa c ao Gr aca . . . . . . . . . . . . . . 57.4 Recursos do Modelo Entidade Relacionamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470 470 471 471 471

http://www.candidatoreal.com

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 Cria c ao de tabela . . . . 60.2 Consultas . . . . . . . . 60.3 Fun c oes de agrega c ao . . 60.4 Atualiza c oes e exclus oes 60.5 Vis oes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475 476 476 476 477 478 479

12

http://www.candidatoreal.com

60.6 Chaves estrangeiras . . . . . . . . . . . . . . . . . . . . . . . . . . 479 61 Conceitos de Datawarehousing e Bussiness Inteligence 61.1 Banco de Dados Multidimensionais . . . . . . . . . . . . . 61.1.1 Modelagem Multidimensional . . . . . . . . . . . . 61.2 Datawarehousing . . . . . . . . . . . . . . . . . . . . . . . 61.3 OLTP, OLAP, MOLAP, ROLAP e HOLAP . . . . . . . . 61.4 Outros conceitos importantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480 480 481 483 485 487

XII

Administra c ao de Bancos de Dados Relacionais 489


490 492 494

62 Ger encia de Transa c oes 63 Controle de Concorr encia 64 Ger encia de Desempenho

XIII

Oracle e Microsoft SQL Server


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

497
498 498 498 499 499 499 500 501 501 501 502 502 503 503 504 504 505 506 506 506 507 507 507

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 Transa c oes no Oracle . . . . . . . 65.3.1 Gerenciamento do Redo Log . . . . . . . . 65.3.2 Checkpoints . . . . . . . . . . . . . . . . . 65.3.3 Segmentos de rollback . . . . . . . . . . . 65.3.4 Consist encia de leitura . . . . . . . . . . . 65.4 Congura c 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

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 Transa c oes no SQL Server . . . . . . .

XIV

ITIL

509

67 Suporte a Servi cos 510 67.1 Service Desk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510

13

http://www.candidatoreal.com

67.2

67.3

67.4

67.5

67.6

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 Pap eis e Responsabilidades Gerenciamento de Problemas . . . 67.3.1 Objetivos . . . . . . . . . . 67.3.2 Deni c oes Importantes . . . 67.3.3 Atividades do Processo . . 67.3.4 Pap eis e Responsabilidades Gerenciamento de Congura c ao . . 67.4.1 Objetivos . . . . . . . . . . 67.4.2 Atividades . . . . . . . . . . 67.4.3 Pap eis e Responsabilidades Gerenciamento de Mudan cas . . . 67.5.1 Objetivos . . . . . . . . . . 67.5.2 Responsabilidades . . . . . 67.5.3 Deni c oes Importantes . . . Gerenciamento de Libera c ao . . . . 67.6.1 Objetivo . . . . . . . . . . . 67.6.2 Atividades do Processo . . 67.6.3 Deni c oes Importantes . . . 67.6.4 Pap eis 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 518 518 518 519 519 519 519 520 521 521 521 522 522 522 523 523 523 524

http://www.candidatoreal.com

68 Entrega de Servi cos 68.1 Gerenciamento do N vel de Servi co 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 . . .

XV

Ger encia de Projetos segundo PMBOK

525

69 Gerenciamento de Escopo 526 69.1 WBS e Deni c ao do Escopo . . . . . . . . . . . . . . . . . . . . . 526

14

http://www.candidatoreal.com

70 Gerenciamento de Recursos Humanos 70.1 Estruturas Organizacionais . . . . . . 70.1.1 Organiza c ao Funcional . . . . . 70.1.2 Organiza c ao por Projeto . . . . 70.1.3 Organiza c ao Matricial . . . . . 70.2 Planejamento Organizacional . . . . . 70.3 Desenvolvimento da Equipe . . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

528 528 528 529 530 531 531 534 534 535 535 536 536 536 537 537 537 538 538

71 Gerenciamento do Tempo 71.1 T ecnicas de Desenvolvimento do Cronograma 71.1.1 An alise Matem atica . . . . . . . . . . 71.1.2 Compress ao do Cronograma . . . . . . 71.1.3 Simula c ao . . . . . . . . . . . . . . . . 71.1.4 Heur stica do nivelamento de recursos 71.1.5 Estrutura de Codica c ao . . . . . . . 72 Gerenciamento de Custo 72.1 T ecnicas de Estimativas de Custos 72.1.1 Estimativas An alogas . . . 72.1.2 Modelagem Param etrica . . 72.1.3 Estimativa bottom-up . . . . . . . . . . . . . . . . . . . . . . . . . . .

73 Gerenciamento de Riscos 539 73.1 An alise Qualitativa . . . . . . . . . . . . . . . . . . . . . . . . . . 539 73.2 An alise Quantitativa de Riscos . . . . . . . . . . . . . . . . . . . 540 74 Gerenciamento de Qualidade 74.1 T ecnicas de Planejamento da Qualidade 74.1.1 An alise Custo/Benef cio . . . . . 74.1.2 Benchmarking . . . . . . . . . . 74.1.3 Fluxograma . . . . . . . . . . . . 74.1.4 Elabora c ao de Experimentos . . 74.1.5 Custo da Qualidade . . . . . . . 74.2 T ecnicas de Controle da Qualidade . . . 74.2.1 Gr acos 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

http://www.candidatoreal.com

75 Gerenciamento da Comunica c ao 547 75.1 Um mais sobre Planejamento da Comunica c ao . . . . . . . . . . 547 76 Gerenciamento das Aquisi c oes 548 76.1 Um pouco mais sobre Planejamento de Aquisi c oes . . . . . . . . 548 77 Gerenciamento da Integra c ao 550 77.1 Ferramentas de Apoio ` a Integra c ao . . . . . . . . . . . . . . . . . 550 78 Sobre os Ciclos do Projeto e Processos de Gerenciamento 551

15

http://www.candidatoreal.com

Parte I

Fundamentos de Computa c ao

http://www.candidatoreal.com

16

http://www.candidatoreal.com

Cap tulo 1

Arquitetura e Organiza c ao de Computadores


1.1 Conceitos B asicos

Dois conceitos fundamentais no estudo dos sistemas de computa c ao s ao o de Arquitetura e Organiza c ao de computadores. O termo arquitetura refere-se aos atributos do ponto de vista do programador, e portanto, t em impacto direto sobre sobre a execu c ao l ogica de um programa. O termo organiza c ao, refere-se as unidades operacionais e suas interconex ` oes. Desta forma, uma mesma arquitetura pode ser implementadas por meio de diferentes organiza c oes. As fun c oes b asicas de um computador s ao o processamento de dados, armazenamento de dados, transfer encia de dados e controle. Para desempenhar essas fun c oes o computador precisa executar um conjunto de instru c oes (programa). Os computadores que conhecemos s ao baseados no conceito de programa armazenado, introduzido por Von-Neuman. As instru c oes do programa e os dados s ao armazenados em uma mem oria, de forma que a altera c ao de um programa consiste na altera ca o de um endere co de mem oria. O ciclo de execu c ao de cada uma das instru c oes de um programa e dividido nos seguintes estados: (i)Calculo do Endere co de Instru c ao; (ii)Busca da Instru c ao (Instruction Fetch); (iii) Decodica c ao da Instru c ao; (iv)C alculo do Endere co do Operando; (v)Busca do Operando (Operand Fetch); (vi)Execu c ao da Opera c ao; (vii)Armazenamento do Resultado. No entanto, os computadores modernos utilizam o conceito de interrup c ao para diminuir o tempo de ociosidade dos processadores, o ciclo de execu c ao das instru c oes ganham mais alguns estados. As classes de interrup c oes mais comuns s ao interrup c 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

http://www.candidatoreal.com

(iii)Dispositivos de E/S; (iv)Sistemas de Interconex ao. Esses componentes tamb em possuem suas subdivis oes. A CPU por exemplo se subdivide em: Unidade de Controle, Unidade L ogica e Aritm etica (ALU), Registradores e por m 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, Endere co ou Controle. Os barramentos de controle podem ser utilizados por exemplo para controlar direito de leitura ou escrita em mem oria ou E/S, interrup c oes, conrma c 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)M etodo de Arbitra c ao - Centralizado ou Distribu do; (iii)Temporiza c ao - S ncrona ou Ass ncrona; (iv)Largura - n umero de linhas; (v) Tipo de Transfer encia - leitura, escrita, leitura/modica c 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 opera c oes de E/S. Os chamados barramentos de expans ao proporcionam maior exibilidade ao sistema (ex: SCSI), enquanto os barramentos de alta velocidade s ao utilizados para dispositivos de alta capacidade (ex: FireWire).

1.2

Estrutura e Funcionamento da CPU

Os principais elementos da CPU s ao a Unidade de Controle , a Unidade L ogica e Aritm etica (ULA) e os Registradores. Esses elementos se conectam internamente atrav es do barramento interno da CPU.

http://www.candidatoreal.com

A CPU se comunica com o mundo externo atrav es dos barramentos do sistema. Ao longo da execu c ao de um programa, os barramentos constituem os chamados caminho dos dados. No topo da organiza c ao hier arquica de mem oria em um sistema se encontram os registradores. Esses se dividem em dois tipos: Registradores vis veis ao Usu ario e Registradores de Controle e de Estado. Os registradores vis veis ao usu ario s ao aqueles que podem ser referenciados pela linguagem de montagem. Eles podem ser registradores de dados, endere co ou ent ao de prop osito geral. Os registradores de Controle e de Estado s ao utilizados para controlar a opera c ao da CPU. Na maioria das vezes n ao s ao vis veis aos usu arios. Exemplos de registradores de Controle e de Estado s ao o Program

18

http://www.candidatoreal.com

Counter (PC), Instruction Register (IR), Memory Address Register (MAR), Memory Buer Register (MBR), Program Status Word (PSW), Stack Pointer (SI), Page Table Base Register (PTBR), Page Table Base Limit (PTBL). A seq u encia de eventos ao longo de um ciclo de instru c ao depende do projeto da CPU, no entanto, em termos gerais, pode-se indicar o que acontece em nos subciclos de busca, indireto e interrup c ao. O ciclo de execu c ao depende do c odigo da opera c ao que ser a executada. A gura 1.1 mostra o diagrama de transi c ao de estados do ciclo de instru c ao.

Figura 1.1: Transi c ao de Estados do Ciclo de Instru c ao Durante o ciclo de busca, o contador de programa cont em o endere co da pr oxima instru c ao a ser buscada na mem oria. Esse endere co e movido para o registrador MAR e a unidade de controle requisita uma leitura na mem oria. O resultado da leitura e colocado no registrador MBR, que em seguida e copiado para o registrador IR. Enquanto isso o PC e incrementado de 1 para preparar a busca da pr oxima instru c ao. O uxo de dados do ciclo de busca e mostrado na gura 1.2. Ao m do ciclo de busca, o unidade de controle examina se a instru c ao especica algum operando com endere camento indireto. Os n bits mais a direita de MBR s ao colocados em MAR, e ent ao a unidade de controle requisita uma leitura a mem oria para carregar o valor do operando para MBR. O uxo de dados do ciclo de indireto e mostrado na gura 1.3. No ciclo de interrup c ao, o conte udo do registrador PC dever ser salvo, para que mais tarde a CPU possa retornar sua atividade normal depois de processar a interrup c ao. O conte udo do PC e transferido para MBR. A endere co de mem oria reservado para guardar o valor de PC (ex: topo da pilha) e carregado para MAR, e ent ao a unidade de controle solicita uma escrita na mem oria. Por m o PC e carregado com o endere co da rotina de interrup c ao, para que o no pr oximo ciclo de instru c ao seja feita a busca da instru c ao apropriada. A gura 1.4 mostra o uxo de dados do ciclo de interrup c ao.

http://www.candidatoreal.com

19

http://www.candidatoreal.com

Figura 1.2: Fluxo de Dados do Ciclo de Busca

Figura 1.3: Fluxo de Dados do Ciclo de Indireto

http://www.candidatoreal.com

Figura 1.4: Fluxo de Dados do Ciclo de Interrup c ao

1.2.1

Pipelines

Como pudemos ver, um ciclo de instru c ao pode subdividido em etapas menores. Uma divis ao comum e a baseada nos ciclos de busca, indireto, execu c ao e interrup c ao. A id eia da t ecnica de pipeline e trabalhar as diversas etapas do ciclo de instru c ao de forma paralela, e n ao de forma serial, de forma aumentar o

20

http://www.candidatoreal.com

desempenho da CPU. A t ecnica de pipeline pode ser descrita genericamente como uma estrat egia de aceitar novas entradas em uma extremidade sem que as entradas pr evias tenha aparecido como sa das na outra extremidade. Imaginemos um esquema em que o ciclo de instru c ao e subdividido em 2 etapas que s ao a busca da instru c ao e a execu c ao. Enquanto uma instru c ao est a sendo executada, a pr oxima instru c ao pode estar sendo buscada. Este esquema congura um pipeline de 2 est agios, e a t ecnica utilizada e a de busca antecipada de instru c 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 instru c oes de desvio, nas quais a busca da pr oxima instru c ao depende do resultado da execu c ao da instru c ao corrente. Portanto, uma subdivis ao do ciclo de instru c ao em um n umero maior de est agios pode proporcionar maior desempenho. Imaginemos o ciclo de instru c ao como sendo composto dos seguintes est agios: (1)BI - Busca da Instru c ao; (2)DI - Decodica c ao da Instru c ao; (3)CO - Calculo dos Endere cos dos Operandos; (4)BO - Busca dos Operandos; (5)EI - Execu c ao da instru c 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. No entanto, podem existir conitos de acesso ` a mem oria por parte dos est agios e nem todas as instru c oes possuem os seis est agios. Somam-se ` a esses dois problemas, a exist encia de instru c oes de desvios, principais inimigas da t ecnica de pipeline. Para lidar com os problemas introduzidos pelas instru c oes de desvio s ao utilizadas t ecnicas como:

http://www.candidatoreal.com

M ultiplos Fluxos (duplica c ao de est agios iniciais); Busca Antecipada de Instru c ao-Alvo de Desvio; Mem oria de La co de Repeti c ao (loop buer ); Previs ao de Desvio baseadas no opcode ; Previs ao de Desvio baseadas em hist orico (BTB - Branch Target Buer, tamb em conhecida como BHT - Branch History Table ). As guras 1.5 e 1.6 mostram os diagramas de tempo para o pipeline de instru c oes com e sem instru c oes de desvio.

21

http://www.candidatoreal.com

Figura 1.5: Diagrama do Tempo para Pipeline de Instru c oes

Figura 1.6: Efeito do desvio condicional no Pipeline de Instru c oes

1.3

Conjunto de Instru c oes

http://www.candidatoreal.com

A opera c ao da CPU e determinada pelo conjunto de instru c oes que ela executa. S ao as chamadas instru c oes de m aquina. A cole c ao de instru c oes que uma CPU pode executar e chamada Conjunto de Instru c oes. O conjunto de instru c oes deve ser suciente para traduzir programas escritos em uma linguagem de alto n vel para a linguagem de m aquina. Os principais elementos e uma instru c ao s ao: (i)C odigo da opera c ao (opcode): especica a opera c ao a ser efetuada; (ii)Refer encia ` a Operando Fonte: indica as entradas para a opera c ao; (iii)Refer encia ao operando Destino: A opera c ao pode produzir um resultado; (iv)Endere co da pr oxima instru c ao: Pode ser indicado implicitamente (ex: registrador PC). 22

http://www.candidatoreal.com

Os operandos fonte e destino podem estar localizados em mem oria (principal ou virtual), em algum registrador, ou em algum dispositivo de E/S. Cada instru c ao de um computador e representada internamente como um conjunto de bits. A instru c ao e dividida em campos correspondentes aos elementos da instru c ao. O papel da CPU e ler a instru c ao, extrair informa c ao de cada um dos campos e efetuar a opera c ao. Devido ` as diculdades de se lidar com a representa c ao bin aria, e utilizada uma esp ecie de nota c ao simb olica para representar as instru c oes de m aquina. Os c odigos das opera c oes s ao representados por mnem onicos. (ex: ADD, SUB, MPY, DIV, LOAD, STOR). O mesmo ocorre para os operandos. Um conjunto de instru c oes pode apresentar mais de um formato de instru c ao. As instru c oes podem ser classicadas em: (i)Processamento de Dados: instru c oes l ogicas e aritm eticas; (ii)Armazenamento de dados: instru c oes de mem oria; (iii)Movimenta c ao: instru c oes de E/S; (iv)Controle: instru c oes de teste e desvio. No projeto do conjunto de instru c oes as quest oes mais relevantes s ao o repert orio de opera c oes, os tipos de dados, o formato e tamanho das instru c oes, os registradores acess veis, e os modos de endere camento. As classes de dados sobre as quais as instru c oes de m aquina operam s ao endere cos, n umeros (ex: ponto xo, ponto utuante, decimal), caracteres (ex: ASCII e EBCDIC) e dados l ogicos. Os tipos de opera c oes mais comuns s ao: (i)Transfer encia de Dados: mov,push/pop,xlat,in/out; (ii)Aritm eticas: add,sub,mul,idiv; (iii)L ogicas: and,or,shl/shr; (iv)Convers ao de Tipos: jmp,call,loop,int/into; (vi)Controle do Sistema: hlt,wait;

http://www.candidatoreal.com

(vii)Transfer encia de Controle: blt,bgt,beq,call,jmp. Nas opera c oes de salto e desvio, e importante conhecer cada um dos c odigos de condi c ao envolvidos. (ex: Vai-Um, Zero, Paridade, Sinal, Overow) Na implementa c ao das chamadas de procedimento e importante ressaltar a utiliza c ao de pilhas para permitir chamadas reentrantes (uma chamada dentro da outra).

23

http://www.candidatoreal.com

1.4

Unidade de Controle

A unidade de controle coordena os diversos elementos do processador para que este possa realizar todas as suas fun c oes. A execu c ao de um programa consiste de uma seq u encia de ciclos de instru c ao. Um ciclo de instru c ao pode ser subdividido em quatro subciclos que s ao busca, indireto, execu c ao e interrup c ao. Somente os ciclos de busca e execu c ao est ao presentes em todos os ciclos de instru c ao. Cada subciclo, por sua vez, e composto por microopera c oes. Os quatro registradores b asicos da unidade de controle s ao: PC (Program Counter ): Mant em o endere co da pr oxima instru c ao a ser buscada na mem oria; MAR (Memory Address Register ): Especica endere co de memoria para uma opera c ao de leitura ou escrita; MBR (Memory Buer Register ): Conectado ao barramento do sistema. Cont em um valor a ser armazenado na mem oria ou o u ltimo valor dela lido; IR (Instruction Register ): Mant em a u ltima instru c ao buscada na mem oria. O ciclo de busca ocorre no in cio de cada ciclo de instru c ao, fazendo com que a instru c ao seja obtida na mem oria no endere co indicado pelo registrador PC, e armazenada no registrador IR. Uma vez completada essa etapa, pode ser necess ario que se busquem operandos para a instru c ao. Isso e realizado no ciclo de indireto. Ap os o termino do ciclo de execu c ao, e feita uma checagem para determinar se ocorreu alguma interrup c ao, e neste caso o conte udo de PC e salvo em mem oria e PC e carregado com um endere co da rotina de interrup c ao apropriada. Os ciclos de busca, indireto e de interrup c ao envolvem um n umero pequeno e xo de microopera c oes. Isso n ao ocorre nos ciclos de execu c ao. Em uma m aquina com N c odigos de instru c ao podem existir N diferentes seq u encias de microopera c oes para o ciclo de execu c ao. Todas as microopera c oes caem em uma das seguintes categorias: (i)Transfer encia de dados entre registradores;

http://www.candidatoreal.com

(ii)Transfer encia de dados entre registrador e interface externa (barramento); (iii)Transfer encia de dados de interface externa para registrador; (iv)Execu c ao de opera c oes l ogicas e aritm eticas, usando registradores como entrada e sa da. Portanto, a unidade de controle desempenha duas tarefas b asicas que s ao o seq uenciamento e a execu c ao das microopera c oes. A base para o funcionamento da unidade de controle s ao os sinais de controle, que constituem as entradas e sa das.

24

http://www.candidatoreal.com

As unidades de controle podem ser implementadas tanto em hardware quanto em software (Microprograma c ao ). A implementa c ao baseada em microprograma c ao e mais simples e tamb em mais barata do que as implementa c oes em hardware. As implementa c oes em hardware envolvem a cria c ao de uma l ogica complexa para sequenciamento das microopera c oes, o que a torna mais cara. No entanto, e mais eciente dos que as implementa c oes basadas em microprograma c ao. As arquiteturas CISC geralmente utilizam unidades de controle microprogramadas, devido ao grande n umero de instru c oes e sua complexidade. J a as arquiteturas RISC, geralmente utilizam implementa c oes baseadas em hardware uma vez que o n umero de instru c oes e reduzido e de baixa complexidade. As t ecnicas de microprograma c ao tamb em podem ser aplicadas em emula c oes, permitindo que m aquinas rodem programas escritos originalmente para outras m aquinas. Microprogramas podem conferir maior desempenho ao sistema operacional se forem utilizados na implementa c ao de certas primitivas. Al em disso, as t ecnicas de microprograma c ao podem ser utilizadas na implementa c ao de dispositivos de prop osito especial, por exemplo uma placa de rede (rmware ).

1.5

Modos de Endere camento

Os modos de endere camento est ao relacionados com a forma utilizada para especicar o valor ou endere co de um operando de uma instru c ao. Quest oes importantes na escolha do modo de endere camento s ao a quantidade de posi c oes de mem oria endere c aveis, exibilidade de endere camento, n umero de refer encias a mem oria feitas pela instru c ao e complexidade do c alculo do endere co. Em geral, as arquitetura n ao oferecem s o um modo de endere camento, mas sim um conjunto de modos. Por este motivo, e necess ario que exista uma forma de se identicar qual o modo de endere camento que se est a utilizando. Isso e feito atrav es do campo de modo de endere camento, que consiste em um subconjunto dos bits de uma instru c ao. Imediato : o valor do operando e especicado diretamente na instru c ao. Sua principal vantagem e n ao requer acesso a mem oria para obter o operando. A desvantagem e que esse modo imp oe uma limita c ao no tamanho do operando;

http://www.candidatoreal.com

Direto : o campo de endere co contem o endere co efetivo do operando na mem oria. Requer portanto apenas um acesso para determinar o valor do operando. Sua limita c ao e fornecer um espa co de endere camento limitado; Indireto : o campo de endere co aponta para uma posi c ao de mem oria que contem o endere co de mem oria do operando. Sua principal desvantagem e a necessidade de dois acessos ` a mem oria. A vantagem em rela c ao ao modo de endere camento direto e o aumento do espa co de endere camento, que passa a ser igual 2n onde n e o tamanho da palavra; Registrador : e semelhante ao modo direto, no entanto o modo de endere co se refere a um registrador e n ao ` a uma posi c ao de mem oria. Geralmente e

25

http://www.candidatoreal.com

composto por 3 ou 4 bits, o que permite referenciar de 8 a 16 registradores de prop osito geral. Suas vantagens s ao o tamanho pequeno do campo de endere co e n ao necessidade de se acessar a mem oria. Sua desvantagem e o espa co de endere camento limitado pelo n umero de registradores; Indireto via Registrador : semelhante ao modo de endere camento indireto. O campo de endere co aponta para o registrado que contem a posi c ao de mem oria do operando. Sua vantagem e a necessidade de um u nico acesso a mem oria, um a menos que no modo indireto; Deslocamento : requer que uma instru c ao tenha dois campos de endere co, com pelo menos um expl cito. O valor de um dos campos e usado diretamente (valor = A). O outro campo e baseado no c odigo da opera c ao, e especica um registrador cujo conte udo e adicionado a A, para produzir o endere co efetivo. Os tr es modos de endere camento por deslocamento s ao relativo, via registrador-base e indexado ; Pilha : A pilha e um bloco reservado de posi c oes em mem oria. Elementos podem ser colocados e removidos do topo da pilha. o apontador do topo da pilha (stack-pointer ) e mantido em um registrador. Portanto, de fato, refer encias a pilha s ao feitas por endere camento indireto via registrador.

1.6

Organiza c ao de Mem oria

Um sistema de computador t pico e equipado com uma hierarquia de subsistemas de mem oria, algumas internas (diretamente acess veis pelo processador, como registradores, cache e mem oria principal) e outras externas (acess veis pelo processador por meio de um m odulo de E/S, como disco e cdrom). As caracter sticas fundamentais de um sistema de mem oria s ao: 1. Localiza c ao - processador, interna (principal), externa (secund aria); 2. Capacidade - tamanho da palavra e n umero da palavra; 3. Unidade de Transfer encia - palavra, bloco; 4. M etodo de Acesso - seq uencial, direto, aleat orio, associativo; 5. Desempenho - tempo de acesso, tempo de ciclo e taxa de transfer encia;

http://www.candidatoreal.com

6. Tecnologia - semicondutores, magn etica, optica, magneto- optico; 7. Caracter sticas F sicas - vol atil/n ao vol atil, apag avel/n ao apag avel. Quanto ao m etodo de acesso das mem orias internas, vale a pena destacar os acessos aleat orio e associativo. No acesso aleat orio, cada unidade endere c avel possui um mecanismo de endere camento u nico e sicamente conectado a ela. E o m etodo utilizado na mem oria principal. O esquema associativo consiste em um tipo de mem oria de acesso aleat orio que possibilita comparar simultaneamente um certo n umero de bits de uma palavra com todas palavras da mem oria (totalmente associativo) ou com um conjunto de palavras de mem oria (associativo por conjunto). O m etodo associativo e empregado pelas mem orias cache.

26

http://www.candidatoreal.com

As restri c oes de um projeto de mem oria podem ser resumidos por 3 quest oes: Capacidade, Velocidade e Custo. Neste cen ario, valem as seguintes rela c 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 organiza c ao hier arquica dos sistemas de mem oria visa lidar com o dilema imposto pelas rela c oes apresentadas. A hierarquia e elaborada de forma que as a medida que nela descemos as seguintes rela c oes s ao tamb em v alidas: 1 O custo por bit diminui; 2 A capacidade aumenta; 3 O tempo de acesso aumenta; 4 A freq u encia 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 organiza c ao baseia-se principalmente na rela c ao 4, que resume o princ pio da Localidade das Refer encias. Este princ pio diz que ao longo da execu c ao de um programa, as refer encias feitas ` a mem oria pelo processador, tanto no caso de instru c oes como dados, tendem a formar grupos no qual est ao pr oximas umas das outras. Desse modo e poss vel organizar os dados ao longo de uma hierarquia de forma que a porcentagem de acessos ` a um certo n vel seja sucessivamente bem inferior do que a porcentagem de acessos ` a um n vel imediatamente superior. Registradores, mem oria cache e mem oria principal s ao as tr es formas de mem oria interna que empregam tecnologias de semicondutores. O uso de tr es n veis explora as diferen cas de velocidade e custo dessas mem orias. Al em delas, alguns sistemas utilizam tecnologias e t ecnicas 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 t ecnica de Mem oria Virtual permite que os discos funcionem como uma extens ao da mem oria principal, aumentando o desempenho do sistema. A utiliza c 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

http://www.candidatoreal.com

ii Fun c ao de Mapeamento - direto, associativo, associativo por conjuntos; iii Algoritmo de Substitui c ao - LRU, FIFO, LFU, Aleat orio; iv Pol tica 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 n veis, unicada/separada. Entre os elementos de projeto de mem oria cache vale destacar tr es. O primeiro e a Fun c 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 endere co do bloco na mem oria principal e a fun c 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 espec ca da mem oria cache. E acil implementa c ao, por em pode utilizar de forma ineciente o espa co da cache. No mapeamento associativo um bloco da mem oria principal pode ser colocado em qualquer linha da cache. Maximiza a ocupa c ao da cache, por em exige uma l ogica de controle que realize compara c 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 m etodos direto e associativo. O segundo elemento e Pol tica de Escrita, que visa garantir a coer encia das informa c oes nos diferentes mem orias acess veis pelo processador e dispositivos de E/S. Na t ecnica e a de escrita direta (write-through), todas as opera c oes de escrita s ao feitas na mem oria principal e no cache. Esta garante a coer encia em todas as mem orias do sistema, no entanto e de baixo desempenho. Na t ecnica de escrita de volta (write-back), as escritas s ao feitas apenas na cache. Minimiza as opera c oes de escrita em mem oria principal, por em imp oe que opera c oes de E/S acessem o cache. O terceiro elemento e o n umero de mem orias cache do sistema. Atualmente, a organiza c ao mais comuns e baseada em 2 n veis, um interno ao processador (L1) e outro externo (L2). Originalmente, a maioria dos projetos de cache inclui uma u nica mem oria cache, que armazenava tanto instru c oes como dados. Recentemente, tornou-se comum a utiliza c ao de mem orias separadas para instru c oes e dados. Em processadores modernos que se valem de t ecnicas de busca antecipada de instru c ao (Pipeline), t ecnicas de Cache Separadas s ao mais ecientes que as de Cache Unicada.

http://www.candidatoreal.com

1.7

Desempenho do computador
1 T empo de Execucao

O desempenho de um computador pode ser denido como: Desempenho = (1.1)

28

http://www.candidatoreal.com

O tempo e a medida de desempenho de um sistema computacional. Em geral, ele e medido em segundos e pode ser denido de diferentes maneiras. O tempo de resposta ou tempo decorrido (elapsed time ) dene o tempo total para se completar uma tarefa computacional, incluindo os acessos ` a mem oria e ao disco, as atividades de entrada e sa da e o overhead do sistema operacional. O tempo do processador (CPU time ) dene o tempo gasto pelo processador para executar um programa em particular, n ao considerando o tempo de execu c ao de outros programas, tempo de espera por I/O, etc. Este tempo e dividido em tempo do usu ario e tempo do sistema. O tempo do usu ario e o tempo gasto na execu c ao das instru c oes do programa do usu ario. J a o tempo do sistema e o tempo gasto pelo sistema operacional para executar tarefas em benef cio do programa do usu ario. A medida de tempo que mais interessa eo tempo de usu ario. Os projetistas medem a velocidade do hardware na execu c ao de suas fun c oes b asicas com o clock. O clock possui uma taxa constante e determina o momento da ocorr encia de eventos do pr oprio hardware. O tamanho de um per odo de clock e referenciado tanto como o tempo necess ario para completar um ciclo de clock quanto como a freq u encia do clock (inverso do ciclo de clock). Por exemplo, um ciclo de clock igual a 2 s corresponde a uma freq u encia de 500MHz, que e o inverso do ciclo de clock.

1.7.1

Tempo de execu c ao de um programa

F ormulas bastante simples relacionam a medida do tempo de execu c ao gasto no processador com a m etrica b asica baseada nos ciclos de clock e tempo do ciclo de clock: Tempo de CPU do programa = N de ciclos x Per odo de clock = N de ciclos / Freq u encia do clock

Essas f ormulas n ao incluem qualquer refer encia ao n umero de instru c oes necess arias ` a execu c ao de um programa. O tempo de execu c ao tamb em depende do n umero de instru c oes do programa. O n umero de ciclos de clock necess arios a execu ` c ao de uma instru c ao e dado por:

http://www.candidatoreal.com

No de ciclos de clock = No instru c oes do programa x CPI

(1.2)

A CPI e a m edia do n umero de ciclos por instru c ao. Este par ametro permite a compara c ao entre diferentes implementa c oes de uma mesma arquitetura do conjunto de instru c oes, uma vez que o n umero de instru c oes para a execu c ao do programa nas diferentes implementa c oes e o mesmo.

1.7.2

Desempenho da CPU

O desempenho da CPU na execu c ao de um programa pode ser medido em termos quantidade de instru c oes, do CPI e do per odo do clock:

29

http://www.candidatoreal.com

Tempo de CPU = No de instru c oes x CPI x Per odo do clock

(1.3)

O tempo de CPU e medido executando o programa, o per odo do clock e divulgado pelo fabricante e o n umero de instru c oes e obtido por meio de softwares conhecidos como execution prolers ou por simuladores de arquitetura. Em uma primeira aproxima c ao, o n umero de instru c oes, a CPI e o per odo do clock s ao afetados respectivamente pela capacidade de otimiza c ao do compilador, pela arquitetura do processador e de seu conjunto de instru c oes; e pela tecnologia empregada na implementa c ao da m aquina.

1.7.3

Programas para medir desempenho

Existem quatro n veis de programas que podem ser usados para avalia c ao de desempenho, eles est ao listados em ordem decrescente de precis ao de previs ao: Programas reais; N ucleos ou kernels (peda cos de programas reais); Toy Benchmarks (programas com 10 a 100 linhas de c odigo que produzem um resultado conhecido a priori); Benchmarks sint eticos (similar em losoa aos n ucleos, tentam casar a freq u encia m edia de opera c oes de um grande conjunto de programas). Os benchmarks s ao conjuntos de aplica c oes que representam cargas de trabalho cujo objetivo e estimar o desempenho das cargas de trabalho reais. Os benchmarks podem conter aplica c oes t picas de processamento cient co, compiladores, processadores de texto entre outras. Um Benchmark Suite e um conjunto de programas de avalia c ao. A Standard Performance Evaluation Corporation (SPEC) tem lan cado v arios benchmark suites: SPEC89, SPEC92, SPEC95 e SPEC2000. Estas benchmark suites s ao compostas por programas reais, escolhidos para serem representativos de programas que tipicamente demandam muita CPU e pouco I/O.

http://www.candidatoreal.com

1.7.4

Comparando desempenho

Uma vez selecionados os programas adequados para usar como benchmarks e decidida a m etrica de avalia ca o, tempo de resposta ou throughput (n umero de tarefas executadas por unidade de tempo), e necess ario decidir como comparar os dados de desempenho obtidos a partir de diferentes benchmarks. A maneira mais simples de considerar o desempenho relativo e usar o tempo total de execu c ao de dois programas em m aquinas diferentes. Por exemplo, os tempos de execu c ao de dois programas conforme a tabela 1.1. Outra maneira de sumarizar os tempos e utilizando as m edias aritm etica, harm onica ou geom etrica. A m edia geom etrica e inadequada, pois n ao prediz o tempo de execu c ao. 30

http://www.candidatoreal.com

Programa 1 (s) Programa 2 (s) Total (s)

Computador A 1 1000 1001

Computador B 10 100 110

Tabela 1.1: Tempo total de execu c ao de 2 programas

M edia Aritm etica = Tempo (i,n) = M edia Harm onica = Taxa (i,n) =

1 n n

(1.4) (1.5)

n 1 i=1 T axai

M edia Geom etrica = Tempo Normalizado (i,n) =

T normalizadoi (1.6)
i=1

Al em das m edia, existem ainda outras medidas de desempenho. Uma das alternativas e a m etrica MIPS (million instruction per second), que e dada por um das seguintes express oes: N umero de instru c oes Tempo de execu c ao x 106 Freq u encia de Clock CPI 106

MIPS

= =

Existem problemas com o uso da m etrica MIPS. Ela especica a taxa de execu c ao de instru c oes, mas n ao considera a capacidade de executar mais ou menos trabalho. Portanto, n ao podemos comparar m aquinas com conjuntos de instru c oes diferentes. Outro problema e que os resultados obtidos variam entre programas no mesmo computador, o que impede que determinada m aquina tenha um MIPS caracter stico. Outra alternativa e a m etrica denominada MFLOPS (million oating-point operations per second), que e dada pela seguinte express ao:

http://www.candidatoreal.com

MFLOPS =

N umero de op. de ponto utuante Tempo de execu c ao x 106

(1.7)

Uma opera c ao de ponto utuante pode ser uma opera c ao de adi c ao, subtra c ao, multiplica c ao ou divis ao aplicada a operandos expressos em precis ao simples ou dupla.

1.7.5

Lei de Amdahl

A lei de Amdhal pode ser utilizada para demonstrar o ganho de desempenho de uma m aquina. Este ganho e dito acelera c ao ou speedup. Entende-se por acelera c ao a medida de como a m aquina se comporta ap os a implementa c ao

31

http://www.candidatoreal.com

de uma melhora em rela c ao ao seu comportamento anterior. Podemos denir speedup como: speedup = Desempenho ap os a melhora Desempenho antes da melhora (1.8)

A lei de Amdhal demonstra que e errado esperar que a melhora em um dos aspectos que inuenciam no desempenho da m aquina resulte numa melhora no desempenho total proporcional ao tamanho do ganho inicial da fra c ao.

http://www.candidatoreal.com

32

http://www.candidatoreal.com

Cap tulo 2

Componentes de um Computador
O computador est a organizado em dois componentes que s ao: Hardware: corresponde a parte f sica que est a dividida em: unidade de entrada e sa da, processador, mem oria principal e mem oria secund aria; classicado 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 transa c ao entre o processador e os perif ericos. Os componentes principais da placa-m ae s ao: chipset, BIOS, barramentos, e slots. Chipset e o chip respons avel pelo controle de diversos dispositivos de entrada e sa da como o barramento, o acesso ` a mem oria, o acesso ao HD, perif ericos on-board e o-board, comunica c ao do processador com a mem oria RAM e entre outros componentes da placa-m ae. Uma placa-m ae possui dois chipsets: o chipset sul e o chiset norte. O chipset sul (south bridge ) e respons avel pelo controle de dispositivos de entrada ou sa da enquanto o chipset norte (north bridge ) faz a comunica c ao entre o processador e a mem oria principal.

http://www.candidatoreal.com

O BIOS (Basic Input/Output System) e o primeiro programa executado pelo computador ao ser ligado. Sua fun c ao prim aria e preparar a m aquina para que o sistema operacional, que pode estar armazenado em diversos tipos de dispositivos (discos r gidos, disquetes, CDs, etc) possa ser executado. O BIOS e armazenado num chip ROM (Read-Only Memory) localizado na placa-m ae, chamado ROM BIOS. O BIOS tamb em e respons avel por controlar o uso dos dispositivos e manter informa c oes de data e hora. O BIOS trabalha junto com o post, um software que testa os componentes do micro em busca de eventuais erros. Pode-se alterar as congura c oes de hardware atrav es do setup.

33

http://www.candidatoreal.com

Os barramentos permitem a interliga c ao entre os dispositivos da placa-m ae. S ao divididos em tr es conjuntos: via de dados, via de endere cos e via de controle. O desempenho do barramento pode ser medido pela sua largura de banda (32, 64 bits, etc.) e pela sua velocidade de transmiss ao (100 Mbps, 1G bps, etc.). Os slots s ao respons aveis por ligar os perif ericos aos barramentos e suas velocidades e largura de banda s ao correspondentes as dos seus respectivos barramentos. Na placa-m ae s ao encontrados v arios slots para encaixe de placas (v deo, som, rede, modem, etc.). Alguns exemplos de slots: ISA, PCI, AGP, PCI Express, etc.

2.1
2.1.1

Principais componentes de Hardware


Discos R gidos

Os discos r gidos s ao dispositivos de armazenamento destinados a grandes quantidades de dados. Fisicamente, um disco r gido pode ser visto como um composto por dois grandes blocos, como na gura 2.2. O primeiro bloco e um conjunto de discos magn eticos superpostos em alturas diferentes com aux lio de um eixo central. No momento de acesso ao disco, essa estrutura e mantida em uma rota c ao constante. O segundo bloco e uma estrutura mec anica que suporta um conjunto de cabe cotes, um para cada superf cie de disco. Essa estrutura e capaz de realizar movimentos de vai-e-vem de maneira que os cabe cotes possam ser deslocados desde a borda do disco at e o centro.

http://www.candidatoreal.com

Figura 2.1: Organiza c ao f sica do disco Do ponto de vista da organiza c ao l ogica, cada superf cie de um disco e dividida em circunfer encias conc entricas denominadas trilhas. Cada trilha, por sua vez, e subdividida radialmente em unidades chamadas setores. Em geral, os setores t em o mesmo tamanho. O setor possui a unidade m nima de leitura e grava c ao em um disco. O conjunto de todas as superf cies do disco que cam exatamente ` a mesma dist ancia do eixo central forma o cilindro, conforme a gura ??. As abstra c oes cilindro, trilha e setor s ao utilizadas para designar a organiza c ao l ogica da unidade de disco. A deni c ao de trilhas e de setores em 34

http://www.candidatoreal.com

um disco chama-se formata c ao f sica e e um procedimento realizado pelo fabricante. A capacidade total do disco e obtida multiplicando-se cabe cas x cilindros x setores x tamanho do setor.

Figura 2.2: Organiza c ao l ogica da unidade de disco Para acessar dados no disco, e necess ario informar ` a controladora o cilindro, a superf cie e o setor a ser acessado. Esse m etodo e denominado de CHS (Cylinder, Head, Sector). Outra maneira e acessar o disco e enxerg a-lo como um conjunto de blocos, no qual cada bloco e um ou mais setores. O n umero de blocos e ent ao convertido em cilindros, superf cie e setores por um procedimento que se denomina de LBA (Linear Block Addressing). Outros termos bastante comuns associados a disco r gidos s ao formata c ao l ogica e parti c oes. A formata c ao l ogica consiste em gravar informa c oes no disco de forma que arquivos possam ser escritos, lidos e localizados pelo sistema operacional. O conceito de parti c ao est a associado ` a capacidade de dividir logicamente um disco em v arios outros discos. Para realizar um acesso a um disco, e necess ario posicionar o cabe cote de leitura e escrita sob um determinado setor e trilha onde dado ser a lido ou escrito. O tempo total de acesso aos disco, seja para leitura ou para escrita, e dado pela seguinte f ormula:

http://www.candidatoreal.com

Ta cesso = Ts eek + Tl atencia + Tt ransf erencia A descri c ao de cada um dos termos da soma e a seguinte:

(2.1)

Tempo de Seek: tempo necess ario para deslocar o cabe cote de leitura e escrita at e o cilindro correspondente ` a trilha a ser acessada; Tempo de Lat encia: tempo necess ario, uma vez o cabe cote posicionado j a na trilha correta, para o setor a ser lido, ou escrito, se posicionar sob o cabe cote de leitura e escrita no in cio do setor a ser lido (ou escrito); Tempo de Transfer encia: corresponde ao tempo necess ario ` a transfer encia dos dados, isso e, ` a leitura ou a escrita dos dados. 35

http://www.candidatoreal.com

Outro fator relacionado com a redu c ao do tempo de acesso a um disco e o entrela camento (interleaving). Essa t ecnica numera os setores n ao mais de forma cont gua, mas sim com um espa co entre eles. O disco 2 da Ilustra c ao 14 possui um fator de entrela camento igual a 2. Isso signica que entre o setor k e o setor k+1, existem dois outros setores. O melhor fator de entrela camento para uma determinada unidade de disco depende da velocidade do processador, do barramento, do controlador e da velocidade de rota c ao do disco.

Figura 2.3: Trilha com 16 setores e diferentes fatores de entrela camento

2.1.2

Teclado

O teclado e o principal perif erico de entrada de dados utilizado na integra c ao direta de usu arios com o computador. O princ pio de opera c ao do teclado e bastante simples: gerar um s mbolo para cada tecla pressionada. Mecanicamente, um teclado pode ser visto como uma matriz de i linhas e j colunas as quais entram em contato quando uma tecla e pressionada. A cada elemento i,j da matriz correspondente um caractere. Quando uma tecla e pressionada, o teclado identica a linha e a coluna associadas a essa tecla e gera um c odigo que e denominado de scan mode (c odigo de varredura). O pressionar da tecla gera ainda uma interrup c ao de hardware, e por conseq u encia, a execu c ao de um tratador de interrup c oes espec co para o teclado. Com base no scan mode, o tratador de interrup c oes consulta uma tabela interna, substituindo o scan mode pelo c odigo ASCII correspondente ` a tecla pressionada. O c odigo ASCII da tecla, em seguida, e armazenado em uma regi ao especial da mem oria (buer do teclado) de onde e recuperado por chamadas do sistema operacional. Um teclado brasileiro difere de um teclado ingl es na posi c ao dos acentos e da cedilha, por exemplo. A solu c ao empregada e associar a certos programas aplicativos mapas de c odigos. Atrav es desses mapas de c odigos, os programas aplicativos s ao capazes de consumir caracteres do buer de teclado e convert elos de forma apropriada. O procedimento de ler os dados do teclado e escrev e-los na tela denomina-se ecoamento. Quando se tem v arias janelas abertas, os caracteres digitados devem ser direcionados ` a janela correta. Dois m etodos s ao normalmente empregados: centralizado e dedicado.

http://www.candidatoreal.com

36

http://www.candidatoreal.com

No m etodo centralizado o driver de teclado disponibiliza um conjunto de mini-buers os quais podem ser encadeados para formar um buer maior. Nesse caso, para cada janela aberta o sistema operacional atribui uma estrutura de dados na qual um dos seus elementos e um ponteiro utilizado para referenciar e lista encadeada de mini-buers. No m etodo dedicado, a bueriza c ao e feita diretamente em uma area de mem oria provida pela estrutura de dados associada ao terminal. Nesse caso, o n umero de entradas para o terminal e limitado pelo tamanho do buer dessa estrutura.

2.1.3

Mouse

O mouse e um perif erico de entrada que historicamente se juntou ao teclado como auxiliar no processo de entrada de dados, especialmente em programas com interface gr aca. O mouse tem como fun c ao movimentar o cursor (apontador) pela tela do computador. O formato mais comum do cursor e uma seta, contudo, existem op c oes no sistema operacional e softwares que permitem personalizarmos o cursor do mouse. O mouse funciona como um apontador sobre a tela do monitor, e disponibiliza, normalmente, quatro tipos de opera c oes: movimento, click (clique), duplo click e drag and drop (arrastar e largar). Existem modelos com um, dois, tr es ou mais bot oes cuja funcionalidade depende do ambiente de trabalho e do programa que est a a ser utilizado. Claramente, o bot ao esquerdo e o mais utilizado. O mouse e normalmente ligado ao computador atrav es de portas: serial, PS2 ou, mais recentemente, USB (Universal Serial Bus). Tamb em existem conex oes sem o, as mais antigas em infra-vermelho, as atuais em Bluetooth. Outros dispositivos de entrada competem com o mouse: Touchpads (usados basicamente em notebooks) e Trackballs. O mouse original possu a dois discos que rolavam nos eixos X e Y e tocavam diretamente na superf cie. 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 cam em seu interior. O movimento dos discos pode ser detectado tanto mecanicamente quanto por meio otico.

http://www.candidatoreal.com

Os modelos mais modernos de mouse s ao totalmente oticos, n ao tendo pe cas m oveis. De modo muito simplicado, eles tiram fotograas que s ao comparadas e que permitem deduzir o movimento que foi feito.

2.1.4

Placa de rede

Uma placa de rede e um dispositivo de hardware respons avel pela comunica c ao entre os computadores em uma rede. A placa de rede e o hardware que permite aos computadores conversarem entre si atrav es da rede. Sua fun c ao e controlar todo o envio e recebimento de dados atrav es da rede. Cada arquitetura de rede exige um tipo espec co de placa de rede, sendo as arquiteturas mais comuns as 37

http://www.candidatoreal.com

redes Ethernet e Token Ring. Al em da arquitetura usada, as placas de rede ` a venda no mercado diferenciamse tamb em pela taxa de transmiss ao, cabos de rede suportados e barramento utilizado (On-Board, PCI, ISA ou Externa via USB). As placas de rede para Notebooks podem ser on-board ou por uma placa PCMCIA. Quanto ` a taxa de transmiss ao, as placas mais comuns s ao Ethernet de 10, 100 ou 1000 Mbps e placas Token Ring de 4 Mbps e 16 Mbps. Usando placas Ethernet de 10 Mbps, por exemplo, devemos utilizar cabos de par tran cado de categoria 3 ou 5, ou ent ao cabos coaxiais. Usando uma placas de 100 Mbps o requisito m nimo a n vel de cabeamento s ao cabos de par tran cado n vel 5. No caso de redes Token Ring, os requisitos s ao cabos de par tran cado categoria 2 (recomend avel o uso de cabos categoria 3) para placas de rede de 4 Mbps, e cabos de par tran cado blindado categoria 4 para placas de 16 Mbps. Devido ` as exig encias de uma topologia em estrela das redes Token Ring, nenhuma placa de rede Token Ring suporta o uso de cabos coaxiais.

2.1.5

Impressora

As impressoras s ao dispositivos de sa da que tem por nalidade imprimir em papel ou lme 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. Tamb em de forma semelhante aos monitores, as impressoras evolu ram a partir de dispositivos que imprimiam apenas caracteres em uma u nica cor para as modernas impressoras capazes de reproduzir imagens sosticadas, de alta resolu c ao gr aca, em milhares de cores. As impressoras s ao classicadas em: Impressoras alfanum ericas: Esses equipamentos recebem do computador c odigos que representam caracteres alfanum ericos e portanto tem capacidade de imprimir apenas esses caracteres. Geralmente e poss vel usar apenas uma fonte gr aca, caracter stica do equipamento. Algumas impressoras permitem trocar o dispositivo de impress ao, viabilizando a utiliza c ao de um pequeno n umero de fontes gr acas; Impressoras gr acas: Esses equipamentos recebem do computador a informa c ao sobre os pontos a serem impressos. Dessa forma, podem imprimir gr acos. Na impress ao de textos, os caracteres s ao impressos como pontos, que em determinada congura c ao formam a imagem gr aca do caractere a ser impresso. Quando se utiliza uma impressora gr aca para imprimir texto, existe a possibilidade de utilizar um grande n umero de diferentes fontes gr acas, denidas por software.

http://www.candidatoreal.com

2.1.6

Monitor

38

http://www.candidatoreal.com

Cap tulo 3

Aritm etica Computacional


3.1 N umeros Com Sinal e N umeros Sem Sinal

Existe uma grande variedade de op c oes para representar os n umeros inteiros com ou sem sinal. Apenas quatro se destacam: sinal e amplitude/magnitude (S + M ), complemento de 1, complemento de 2 e nota c ao em excesso (biased ).

3.1.1

Sinal e amplitude/magnitude

Neste sistema de representa c ao o bit mais a esquerda representa o sinal: 0 (zero) para indicar o valor positivo e 1 (um) para indicar o valor negativo. Os bits restantes representam o m odulo. A amplitude ou faixa de representa c ao para n bits e [(2n1 1); 2n1 1]. Por exemplo, para n=8 a faixa de representa c ao e [127; 127]. Neste sistema o zero possui duas representa c oes, por exemplo, n = 4 (0000 e 1000).

3.1.2

Complemento de 1

http://www.candidatoreal.com

Neste sistema de representa c ao o bit mais a esquerda representa o sinal: 0 (zero) para indicar o valor positivo e 1 (um) para indicar o valor negativo. Para os n umeros positivos, os n-1 bits representam o m odulo. O sim etrico de um n umero positivo e obtido pelo complemento de todos os seus d gitos (trocando 0 por 1 e vice-versa) incluindo o bit de sinal. A amplitude ou faixa de representa c ao para n bits e [(2n1 1); 2n1 1]. Por exemplo, para n = 8 a faixa de representa c ao e [127; 127]. Neste sistema o zero possui duas representa c oes, por exemplo, n = 4 (0000 e 1000).

3.1.3

Complemento de 2

Neste sistema de representa c ao o bit mais a esquerda representa o sinal: 0 (zero) para indicar o valor positivo e 1 (um) para indicar o valor negativo. Para os n umeros positivos, os bits restantes representam o m odulo. A amplitude ou faixa de representa c ao para n bits e [(2n1 ); 2n1 1]. Por exemplo, para n=8 a faixa de representa c ao e [128; 127]. Este sistema possui representa c ao assim etrica, o n umero de representa c oes negativas e maior do que a positiva. Este sistema o zero possui uma u nica representa c ao, por exemplo, n=4 (0000). 39

http://www.candidatoreal.com

O complemento de 2 de um n umero e obtido em dois passos: primeiro obt emse 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 at e 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

Os computadores manipulam tanto n umero inteiros positivos quanto negativos, que s ao representados em complemento de 2.

3.1.4

Nota c ao em excesso

Neste sistema de representa c ao o bit mais a esquerda representa o sinal: 1 (um) para indicar o valor positivo e 0 (zero) para indicar o valor negativo. A amplitude ou faixa de representa c ao para n bits e [(2n1 ); 2n1 1]. Por exemplo, para n=8 a faixa de representa c ao e [128; 127]. Neste sistema cada n umero inteiro corresponde ao valor desejado acrescido de um excesso de 2n1 , onde n pode ser 4, 5, 7, 8, 16, etc. Este sistema tem uma vantagem em rela c ao aos outros sistemas apresentados anteriormente: o valor em bin ario com todos os bits a 0 (zero) representa o menor valor inteiro, que este tenha sinal ou n ao, e o mesmo se aplica ao maior valor em bin ario, i.e., com todos os bits 1: representa o maior inteiro, com ou sem sinal. Bin ario (4 bits) 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 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 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

40

http://www.candidatoreal.com

3.2

Adi c ao e Subtra c ao

Numa soma os bits s ao somados um a um da direita para a esquerda, com os carries sendo passados para o pr oximo bit ` a esquerda. A opera c ao de subtra c ao usa a adi c ao. O subtraendo e simplesmente negado antes de ser somado ao minuendo. Lembre-se que a m aquina trata com n umeros representados em complemento a 2. O exemplo a seguir mostra as opera c oes de soma (6 + 7) e subtra c ao (7 6) (complemento 2) bit a bit entre dois n umeros representados com 4 d gitos bin arios. 7 = 0111 6 = 0110 13 = 1101 (soma ) 1 = 0001 (subtra c ao ) Tanto a soma como a subtra c ao podem gerar overow ou underow, se o resultado obtido n ao puder ser representado pela quantidade de bits que formam uma palavra. Se somarmos ou subtrairmos dois n umeros com sinais contr arios, nunca ocorrer a overow ou underow. Isto porque operandos com sinais contr arios nunca podem ser maior do que qualquer dos operandos. O overow ocorre quando somamos dois operandos positivos e obtemos um resultado negativo, ou vice-versa. Isto signica que utilizamos o bit de sinal, gerando um carry, para armazenar um valor pertencente ao resultado da opera c ao. Racioc nio semelhante e realizado para detectar a ocorr encia do underow numa subtra c ao. Neste caso, o bit de sinal tamb em e usado para armazenar um valor pertencente ao resultado da opera c ao. Os projetistas de um sistema devem decidir onde tratar a ocorr encia de overow ou de underow em opera c oes aritm eticas. Elas podem ser tratadas tanto por hardware quanto por software. Pode existir a detec c ao por hardware que gera uma exce c ao, e que depois e tratada por software.

3.3

Opera c oes L ogicas

http://www.candidatoreal.com

Os computadores manipulam palavras, mas e muito u til, tamb em, manipular campos de bits dentro de uma palavra ou mesmo bits individuais. O exame de caracteres individuais (8 bits) dentro de uma palavra e um bom exemplo dessa necessidade. Assim, as arquiteturas de conjuntos de instru c oes incluem instru c oes para manipula c ao de bits. Um dos tipos de instru c ao utilizado e a de deslocamento de bits. As instru c oes podem deslocar bits tanto ` a direita quanto ` a esquerda. Todos os bits s ao movidos para o lado determinado e os bits que cam vazios s ao preenchidos com 0s. Outras instru c oes l ogicas muito u teis s ao implementadas na unidade l ogica e aritm etica de um processador s ao as opera c oes NOT, AND, OR e XOR. O exemplo abaixo mostra as opera c oes l ogicas, bit a bit, de deslocamento ` a direita, ` a esquerda, NOT, AND, OR e XOR.

41

http://www.candidatoreal.com

3.4

Constru c ao de uma Unidade L ogica Aritm etica

A ALU (Arithmetic and Logic Control) e a parte central do hardware de uma CPU. Ela e respons avel por realizar opera c oes aritm eticas e l ogicas b asicas, e pode ser implementada com quatro componentes: AND, OR, INVERTER e MULTIPLEXOR (3.4).

Figura 3.1: Multiplexador Para implementar um somador de um bit, precisa-se de duas entradas para os operandos, uma sa da para o resultado, uma entrada relativa ao carry in e um sa da relativa ao carry out. A tabela abaixo mostra a tabela verdade para o somador de um bit. a 0 0 0 0 1 1 1 1 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 Sa da carry out 0 0 0 1 0 1 1 1

As sa das soma e carry out s ao: soma = (a.b.carryin + a.b.carryin + a.b.carryin + a.b.carryin) carryout = (b.carryin + a.carryin + a.b)

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 signicativos s ao propagados por toda extens ao do somador. A opera c ao de subtra c ao pode ser realizada somando-se o minuendo com a nega c ao do subtraendo. Este efeito e realizado acrescentando uma entrada complementada de b ao somador e ativando o carry in do bit menos signicativo para um. O somador ent ao calcula a + b + 1. Outras fun c oes de interesse, com o XOR podem ser inclu das na ALU. Algumas opera c oes n ao s ao, em geral, implementadas na ALU (3.4). Exemplos: shift, multiplica c ao, divis ao e opera c oes de ponto utuante. 42

http://www.candidatoreal.com

Figura 3.2: ALU

3.5

Ponto Flutuante

Para somar dois n umeros na base 10 em nota c ao cient ca temos que: Alinhar os pontos; Somar os n umeros; Normalizar o resultado; Arredondar o resultado para o n umero m aximo de casas permitidas. Um hardware para somar n umeros de ponto utuante tem que fazer as mesmas opera c oes com n umeros bin arios. Vejamos um exemplo: Exemplo: Somar os n umeros 0.5 e -0.4375 em bin ario e apresente com 4 bits de precis ao; trunque o resultado na fase de arredondamento. 0.5 = 0.1 (bin ario) = 0.1 20 = 1.000 21 0.4375 = 0.0111 (bin ario) = 0.0111 20 = 1.110 22

1. Igualar os expoentes (modicar o n umero menor) 1.110 22 = 0.111 21 2. Somar as partes signicantes (mantissas) 1.000 21 + (0.111 21 ) = 1.000 21 + (1.001 21 ) = 0.001 21 3. Normalizar o resultado 0.001 21 = 1.0 24

http://www.candidatoreal.com

4. Arredondamento O n umero nal est a OK.

43

http://www.candidatoreal.com

Cap tulo 4

Sistemas Operacionais
4.1 Introdu c ao

O sistema operacional e uma camada de software colocada entre o hardware e os programas que executam tarefas para os usu arios. O sistema operacional e respons avel pelo o acesso aos perif ericos, ou seja, sempre que um programa necessita de algum tipo de opera c ao de entrada e sa da, ele solicita ao sistema operacional.

Figura 4.1: Sistema Operacional

http://www.candidatoreal.com

O objetivo do sistema operacional e tornar a utiliza c ao do computador mais eciente e mais conveniente. Uma utiliza c ao mais eciente do computador e obtida por meio da distribui ca o de seus recursos (mem oria principal, tempo de processador, impressora, espa co em disco, etc.) entre os programas. Uma utiliza c ao mais conveniente e obtida escondendo-se do programador detalhes do hardware, em especial os perif ericos. Para atingir esses objetivos, o sistema operacional oferece uma s erie de servi cos como: ger encia de mem oria, ger encia do processador, mem oria virtual, sistema de arquivos, sistema de entrada e sa da. A arquitetura de um sistema operacional corresponde ` a imagem que o usu ario tem do sistema, a forma como ele percebe o sistema. Esta imagem e denida

44

http://www.candidatoreal.com

pela interface por meio da qual o usu ario acessa os servi cos do sistema operacional. Essa interface e formada pelas chamadas de sistema e pelos programas de sistema. Os programas solicitam servi cos ao sistema operacional por meio das chamadas de sistema que transferem a execu c ao dos programas para o sistema operacional. A parte do sistema operacional respons avel para implementar as chamadas de sistema e normalmente chamadas de n ucleo ou kernel. Os principais componentes do kernel de qualquer sistema operacional s ao a ger encia de processador, ger encia de mem oria, sistema de arquivos e ger encia de entrada e sa da. Os programas de sistemas, algumas vezes chamados de utilit arios, s ao programas normais executados fora do kernel do sistema operacional. Eles implementam tarefas b asicas para utiliza c ao do sistema e muitas vezes s ao confundidos com pr oprio sistema operacional. Exemplos de programas de sistemas s ao os utilit arios para manipula c ao de arquivos, listar arquivos, imprimir arquivos, trocar nome de arquivos, data, hora e etc. O programa de sistema mais importante e o interpretador de comando. Sua tarefa e receber comandos e execut a-los. Esses comandos podem ser enviados de forma textual ou por meio de uma interface gr aca de usu ario (GUI). O sistema operacional n ao resolve problemas do usu ario nal. Somente quando ocorre algum evento especial que o sistema operacional e ativado. Dois tipos de eventos ativam o sistema operacional: uma chamada de sistema ou uma interrup c ao de perif erico. Os sistemas operacionais podem ser classicados segundo in umeros crit erios, dentre os quais os mais comuns s ao: N umero de usu arios Monousu arios: projetados para suportar um u nico usu ario. Exemplos de desse tipo de sistema s ao o MS DOS, Windows 3x, Windows 9x, etc; Multiusu arios: projetados para suportar v arias sess oes de usu arios. Exemplos desse sistema s ao Windows NT, UNIX, etc; N umero de tarefas

http://www.candidatoreal.com

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 compila c ao e um processamento de texto. Por exemplo, Windows, Unix, etc; Tipo de servi co 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 distribu dos; Sistemas handheld; Sistemas paralelos.

4.2
4.2.1

Conceitos B asicos
Multiprograma c ao

A multiprograma c ao torna mais eciente o aproveitamento dos recursos do computador. Isso e conseguido por meio da execu c ao simult anea de v arios programas. Em um sistema multiprogramado diversos programas s ao mantidos na mem oria ao mesmo tempo. A id eia da multiprograma c ao e aproveitar o tempo ocioso do processador durante as opera c oes de entrada e sa da, ou seja, enquanto o perif erico executa o comando enviado, o sistema operacional inicia a execu c ao de outro programa. Isso faz com que exista uma maximiza c ao do uso do processador e da mem oria. Em um ambiente monoprogramado, o processador caria parado durante a realiza c ao do acesso a um perif erico.

4.2.2

Processo

Um processo pode ser denido como um programa em execu c ao. O processo e considerado um elemento ativo, pois altera o seu estado ` a medida que executa o processo que realiza as chamadas de sistema. um programa. E Em muitos sistemas operacionais os processos s ao criados por outros processos, por meio de chamada de sistema. Nesse caso, e poss vel denir uma hierarquia de processos. O processo que faz a chamada de sistema e chamado de processo pai e o processo criado e chamado de processo lho. Um mesmo processo pai pode estar associado a v arios processos lhos. Os processos lhos, por sua vez, podem criar outros processos.

http://www.candidatoreal.com

Durante a sua execu c ao, um processo passa por diversos estados, reetindo o seu comportamento din amico, isto e, sua evolu c ao no tempo. Os poss veis estados para um processo s ao: cria c ao (new), apto (ready), executando (running), bloqueado (blocked) e terminado (exit). A gura 4.2 mostra esses cincos estados e as transi c oes do processo entre eles. No estado New um novo processo e criado. Ap os ser criado, o processo entra em um ciclo de processador. Ele precisa do processador para executar, mas o processador poder a estar ocupado com outro processo, ele dever a esperar. Diversos processos podem estar no nesse mesmo estado. Nesse caso, e necess ario manter uma la com os processos aptos a ganhar o processador. Essa la e chamada de la de aptos (ready queue). No estado New, o sistema operacional

46

http://www.candidatoreal.com

Figura 4.2: Ciclo de vida dos processos aloca recursos para o processo, mas n ao existe uma garantia de que o processo ser a executado. Os processos na la do processador est ao no estado Ready. Um u nico processo ocupa o processador a cada instante. O processo que ocupa o processador est a no estado Running. Neste estado processo pode realizar as chamadas de sistema. Enquanto o sistema espera pelo t ermino da chamada de sistema, o processo est a no estado Blocked. O processo ca no estado Blocked at e ser atendido. Com isso, o processador ca livre. O sistema operacional seleciona outro do processo da la de aptos para receber o processador. O estado Exit indica que o processo terminou sua execu c ao ou foi abortado. A mudan ca de estado de qualquer processo e iniciada por um evento. Esse evento aciona o sistema operacional, que ent ao altera o estado de um ou mais processos. O evento pode ser uma chamada de sistema ou uma interrup c ao de hardware. Alguns outros caminhos s ao poss veis no grafo de estado. Por exemplo, pode ocorrer de nenhum processo na mem oria principal est a no estado Ready, pois todos est ao aguardando uma opera c ao de entrada e sa da. Nesse caso, o sistema operacional realiza o swap (mover todo ou parte de um processo da mem oria para o disco) de um dos processos bloqueados para disco, e coloca numa la de processo suspensos. O estado para essa situa c ao e o Suspend. Quando a opera c ao de entrada e sa da de um dos processos e nalizada, o sistema operacional tr as do disco o processo da la de suspenso colocando no estado de Ready.

http://www.candidatoreal.com

4.2.3

Interrup c oes

O mecanismo de interrup c ao constitui a base de opera c ao de um sistema multiprograma c ao. O mecanismo de interrup c ao permite que o controlador de perif erico chame a aten c ao do processador. A fun c ao b asica do controlador de perif erico e conectar o dispositivo em quest ao ao processador. Uma interrup c ao sempre sinaliza a ocorr encia de algum evento. Quando ela acontece, desvia a execu ca o da posi c ao atual de programa para uma rotina 47

http://www.candidatoreal.com

espec ca. Essa rotina, respons avel por atender a interrup c ao e chamada de tratador de interrup c ao. O tratador realiza as a c oes necess arias em fun c ao da ocorr encia da interrup c ao. Em computador podem existir diversos controladores capazes de gerar interrup c oes. A forma mais simples de identicar a origem da interrup c ao e associar a cada controlador um tipo diferente de interrup c ao. Por exemplo, cada tipo de interrup c ao e identicado por um n umero. Existem momentos que um programa n ao pode ser interrompido enquanto realiza uma tarefa cr tica. Para isso, o processador possui instru c oes para habilitar e desabilitar as interrup c oes. Enquanto as interrup c oes estiverem desabilitadas, elas ser ao ignoradas pelo processador. Elas n ao s ao perdidas, apenas cam pendentes. Quando o programa tornar a habilitar as interrup c oes, elas ser ao imediatamente atendidas pelo processador. Interrup c oes de software, tamb em chamadas de traps, s ao causadas pela execu c ao de uma instru c ao espec ca para isso. O efeito e semelhante a uma chamada de sub-rotina, pois o pr oprio programa interrompido e quem gera a interrup c ao. O maior uso para interrup c oes de software e a implementa c ao de chamadas de sistemas, por meio das quais os programas solicitam servi cos ao sistema operacional. N ao e poss vel desabilitar as interrup c oes de software, mesmo porque n ao e necess ario. Existe uma terceira classe de interrup c oes geradas pelo pr oprio processador. S ao as interrup c oes por erro, muitas vezes chamadas de interrup c oes de exce c ao. Elas acontecem quando o processador detecta algum tipo de erro na execu c ao do programa. Por exemplo, uma divis ao por zero, um acesso a posi c ao de mem oria inv alido, etc.

4.2.4

Threads

Uma thread nada mais e que um uxo de execu c ao. Na maior parte das vezes, cada processo e formado por um conjunto de recursos mais uma u nica thread. A id eia do multithreading e associar v arios uxos de execu c ao (v arias threads) a um u nico processo. Em determinadas aplica c oes, e conveniente disparar v arias importante threads dentro de um mesmo processo (programa c ao concorrente). E notar que as threads existem no interior de um processo, compartilhando entre elas os recursos de processo, como espa co de endere camento, c odigo e dados. Devido a essa caracter stica, a ger encia de threads (cria c ao, destrui c ao, troca de contexto, sincroniza c ao) e mais leve quando comparada com processos. O chaveamento entre duas threads de um mesmo processo e muito mais r apido que o chaveamento entre dois processos. Em fun c ao disso, threads s ao muitas vezes chamadas de processos leves.

http://www.candidatoreal.com

48

http://www.candidatoreal.com

4.3

Escalonamento de Processos

Os mecanismos de gerenciamento de processador visam permitir que v arios processos compartilham o processador de forma aumentar a Utiliza c ao, aumentar o Throughput, diminuir o Tempo de Resposta e o Tempo Total de Execu c ao. Estas s ao as principais m etricas de desempenho de um sistema operacional no que diz respeito ` a gerencia de processador. Para alcan car bons resultados, os sistemas operacionais empregam v arias pol ticas de escalonamento para determinar qual processo tomar a posse do processador em um determinado instante. Essas pol ticas s ao os chamados Algoritmos de Escalonamento. Exemplo de algoritmos de escalonamento s ao: First In First Out (FIFO), Prioridades, Round-Robin, Shortest Job First (SJF), M ultiplas Filas com Realimenta c ao, entre outras. A parte do sistema operacional respons avel por escolher qual o processo tomar a posse do processador em um determinado instante e o Scheduller, enquanto o respons avel por entregar o processador de fato a um processo e o Dispatcher. o Dispatcher quem realiza o chaveamento de contexto, que consiste em E salvar o estado dos registradores do processo que deixar a o processador e carregar os registradores para o novo processo. O algoritmo FIFO e o mais simples e de implementa c ao mais f acil. No entanto, n ao e dos mais eciente no quesito tempo de resposta. Caso um processo muito grande tome posse do processador, outros processos podem ter que esperar um tempo muito longo at e que possam executar. O algoritmo Shortest Job First d a posse do processador ao processo que gastar a menos tempo executando. O tempo de resposta m edio e otimizado em rela c ao ao FIFO, no entanto, essa pol tica n ao pode ser implementada de forma perfeita uma vez que n ao e poss vel determinar quanto tempo um processo gastar a no processador na pr oxima vez em que tomar posse. Implementa c oes do SJF estimam esse tempo utilizando informa c oes passadas do processo. Os algor timos Round-Robin consistem em dividir o tempo de processamento em fatias de tempo chamadas time slots. Cada processo na la de prontos tem direito de executar durante um per odo de tempo xo antes de perder a posse do processador. Um problema neste algoritmo e a necessidade de determinar a fatia de tempo ideal, de forma que a impress ao de paralelismo na execu c ao n ao seja perdida. Uma fatia de tempo muito pequena,por exemplo, pode fazer com que o tempo gasto com chaveamento de contexto diminua a performance. Filas de Prioridades s ao a base das pol ticas de escalonamento nos sistemas operacionais modernos. A cada processo e associada uma prioridade. O processo de maior prioridade e quem toma a posse do processador no momento oportuno. Uma variante dos algoritmos de prioridades pura, s ao os os algoritmos de Prioridade com Preemp c ao. Neste esquema, um processo da la de prontos que tenha prioridade maior que o processo em execu c ao pode tomar 49

http://www.candidatoreal.com

http://www.candidatoreal.com

posse do processador antes do processo em execu c ao terminar de executar. Na verdade, nos sistema operacionais, n ao s o um algoritmo de escalonamento e utilizado na ger encia de processador. Usualmente, esse algoritmos s ao combinados de forma melhorar o desempenho do sistema. Algoritmos de m ultiplas las com realimenta c ao s ao exemplos de combina c ao de v arias pol ticas. Esses algoritmos permitem que seja dado um tratamento adequado ` a um determinado processo de acordo com o seu comportamento. Em ger encia de processador existem tamb em os conceitos de execu c ao em Background e Foreground. Processos em background s ao geralmente s ao aqueles que est ao rodando com uma prioridade muito baixa, necessitam de muito pouco input e geram tamb em um m nimo de output. Processos em foreground funcionam da forma oposta. O escalonador respons avel por determinar qual processo receber a o direito de executar e chamado Escalonador de Curto Prazo. Existem tamb em os escalonadores de Longo e M edio Prazo. O escalonador de M edio Prazo e parte por exemplo do processo swapper e est a intimamente ligado a gerencia de mem oria, enquanto o escalonador de longo prazo determina quando um processo novo o escalonador de e de fato admitido no sistema para disputa dos recursos. E longo prazo quem determina o grau de multiprograma c ao do sistema e tamb em e conhecido como Job Scheduller.

4.4

Entrada e Sa da

Uma das atribui c oes dos sistemas operacionais e realizar a ger encia de perif ericos, tamb em conhecida como ger encia de entrada e sa da. Os perif ericos s ao dispositivos que permitem que o computador se comunique com o mundo externo. A primeira preocupa c ao dos sistemas operacionais no que diz respeito a ger encia de E/S e a forma de comunica c ao que ser a utilizada, que pode ser serial ou paralela. As tr es formas b asicas de se implementar o controle de perif ericos s ao: E/S programada: O controle dos estado da opera c ao de E/S e feito atrav es de loops de status. A responsabilidade e do programador; A t ecnica utilizar o estado da opera ca o de E/S utilizada E/S programada e conhecida como polling; Interrup c oes: Os perif ericos chamam a aten c ao do processador atrav es de um sinal de hardware. Cabe ao processador identicar, priorizar e mascarar as interrup c oes geradas pelos perif ericos; Acesso Direto ` a Mem oria (DMA): Em situa c oes em que o volume de dados e muito grande, utiliza-se esta t ecnica para permitir que perif ericos tenham acesso direto a mem oria sem a necessidade da intermedia c ao por parte do processador. O localiza c ao dos perif ericos do ponto de vista da arquitetura do sistema pode ser feita de basicamente de duas maneiras: Mapeamento em Mem oria e

http://www.candidatoreal.com

50

http://www.candidatoreal.com

Espa co de E/S. Os drivers de dispositivos consistem em uma camada superior ao hardware e t em por objetivo esconder as diferen cas entre dispositivos de mesmo tipo. Existe tamb em a necessidade de se empregar t ecnicas de escalonamento de E/S de forma otimizar o atendimento das requisi c oes feitas aos perif ericos. Nos discos magn eticos, por exemplo, s ao utilizados algoritmos de escalonamento como: FCFS: First Come Fisrt Served. chegada; Atende as requisi c oes na ordem de

SSTF: Shortest Seek Time First. Atende primeiro as requisi c oes que necessitam de menor tempo de seek (seek time e o tempo necess ario para mover o cabe cote para a trilha adequada); SLTF: Shortest Latency Time First. Atende primeiro as requisi c oes de menor lat encia (lat encia e o tempo necess ario para localizar um setor dentro de uma trilha do disco. Diretamente relacionado com a velocidade de rota c ao do disco.); Scan: Varre o disco na dire c ao radial atendendo requisi c oes. S o atende requisi c oes em um sentido; CScan: Similar ao Scan, por em atende requisi c oes na subida e na descida. Al em de pol ticas de escalonamento de E/S, tamb em s ao utilizadas t ecnicas de Buer e Cache para aumentar o desempenho. A t ecnica empregada para realizar a aloca c ao e libera c ao de recursos e conhecida como Spooling. A ger encia de perif ericos tamb em se responsabiliza pelo controle de acesso aos perif ericos e tratamentos de erros.

4.4.1

Camadas do subsistema de Entrada e Sa da

O objetivo do subsistema de entrada e sa da e padronizar ao m aximo as rotinas de acesso aos perif ericos de forma a reduzir o n umero de rotinas de entrada e sa da. Para isso, o subsistema de entrada e sa da e organizado em uma estrutura de quatro camadas: hardware dos dispositivos de entrada e sa da, os drivers, a E/S independente de dispositivo e E/S n vel de usu ario. A gura 4.3 mostra essas camadas.

http://www.candidatoreal.com

A camada inferior de software (drivers) e composta por um conjunto de m odulos de software implementados para fornecer os mecanismos de acesso a um dispositivo de entrada e sa da espec co. A camada de software de E/S independente do dispositivo implementa procedimentos e fun c oes gerais a todos os dispositivos de entrada e sa da como: escalonamento de E/S, denomina c ao, bueriza c ao, cache de dados, aloca c ao e libera c ao, direitos de acesso e tratamentos de erro. A E/S n vel de usu ario e uma interface de programa c ao associada imporas bibliotecas de entrada e sa ` da, ou aplicativos de desenvolvimento. E tante notar que as bibliotecas de entrada e sa da n ao fazem parte do sistema operacional.

51

http://www.candidatoreal.com

Figura 4.3: Camadas do Subsistema de E/S

4.5

Ger encia de Mem oria

Umas das fun c oes fundamentais de um sistema operacional moderno e realizar a gerencia da mem oria principal do computador de forma permitir que os diversos processos executem de forma eciente e protegida. Quando o assunto e ger encia de mem oria, dois conceitos b asicos s ao os de mem oria l ogica e mem oria f sica. Os programas fazem refer encia ` a endere cos l ogicos que no momento da execu c ao s ao traduzidos em um endere co real chamado endere co f sico. As primeiras t ecnicas de tradu c ao de endere cos eram baseadas em registradores de base e limites. Nos sistemas multiprogramados, e necess ario tamb em implementar t ecnicas para que os diversos programas possam utilizar a mem oria ao mesmo tempo. Inicialmente, a mem oria era dividida em parti c oes de tamanho xo. Dois problemas decorrentes desta t ecnica s ao conhecidos como Fragmenta c ao Interna e a Fragmenta c ao Externa. A fragmenta c ao interna ocorre quando um programa aloca uma parti c ao de mem oria que excede a quantidade necess aria. O espa co excedente naquela parti c ao e desperdi cado. A fragmenta c ao externa ocorre quando apesar da quantidade total de mem oria ser suciente, n ao existe uma parti c ao cont gua capaz de atender as necessidades de um programa. Para solucionar o problema da fragmenta c ao interna, foi criado o mecanismo de particionamento din amico, no qual um programa aloca somente a quantidade exata de mem oria. No entanto, esse m etodo aumenta a fragmenta c ao externa uma vez que permite o aparecimento de lacunas pequenas demais para serem utilizadas por algum programa. Neste m etodo de particionamento s ao utilizadas v arias t ecnicas de preenchimento de lacunas. Exemplos s ao: First-Fit, Best-Fit, Worst-Fit e Circular-Fit. Para evitar o aparecimento de lacunas muito pequenas, foi criada uma t ecnica chamada Par agrafo, que consiste em determinar a menor unidade de aloca c ao de mem oria. Todas as t ecnicas apresentadas at e aqui levam em considera c ao o fato de que os programas devem ocupar areas cont guas de mem oria. Os sistema operacionais modernos supriram esta necessidade atrav es da t ecnica de Pagina c ao. Aqui aparecem os conceitos de p aginas l ogicas e p aginas f sicas, semelhantes aos de endere cos l ogicos e f sicos. Neste contexto, o endere co l ogico e formado

http://www.candidatoreal.com

52

http://www.candidatoreal.com

por duas partes que s ao o n umero da p agina mais o deslocamento dentro dela. Existe tamb em a necessidade de traduzir uma p agina l ogica em uma p agina f sica. A Tabela de P aginas e a respons avel por essa tarefa. Existem v arias formas de implement a-la. A primeira preocupa c ao e onde armazenar a tabela de p aginas. Em sistemas com tabelas muito pequenas, as tabelas de p aginas podem ser armazenadas em registradores, no entanto, em geral a tabela de p aginas e armazenada na pr opria mem oria principal utilizando registradores (PTBR e PTBL) para indicar a posi c ao da tabela na mem oria. Um problema inerente a esta t ecnica e a necessidade de se acessar a mem oria duas vezes quando se deseja ler um dado. Um acesso a tabela de p aginas e outra ao dado em si. Para minimizar este problema e utilizado um mecanismo chamado Translation LookAside Buer (TLB). O TLB consiste em uma mem oria de r apido acesso que armazena partes da tabela de p aginas. Quando a tradu c ao de uma pagina l ogica em uma p agina f sica e poss vel utilizando apenas o TLB, e dito que ocorreu um HIT, caso contr ario dizemos que ocorreu um MISS. A t ecnica de Segmenta c ao e utilizada para implementar a prote c ao de endere cos de mem oria utilizados por um processo. Usualmente isso e feito atrav es de registradores de limite. Quando um processo tenta acessar uma regi ao de mem oria protegida ocorre uma falha de segmenta c ao (Segmentation Fault ). Esta t ecnica n ao deve ser confundida com a t ecnica de segmenta c ao de mem oria presente em algumas arquiteturas, onde a mem oria e dividida em partes como Segmento de Dados, Segmento de C odigo, Pilha etc. O Swapping e uma outra t ecnica utilizada para gerenciamento de mem oria. Nesta t ecnica, um processo e suspenso e todas suas p aginas de mem oria s ao descarregadas para o disco (swap-out), liberando a mem oria para que algum outro processo possa executar. Quando processo suspenso pode voltar para mem oria, as p aginas do processo s ao novamente carregadas para a mem oria (swap-in). O swapper e respons avel pelo swap-in e swap-out. Na t ecnica de pagina c ao pura, o processo n ao precisa mais ocupar um trecho cont guo de mem oria, no entanto, ainda e necess ario que todas as p agina de um processo estejam carregadas na mem oria no momento da execu c ao. Uma evolu c ao do esquema de pagina c ao e a t ecnica de Mem oria Virtual. Mem oria Virtual consiste em um esquema de pagina c ao sob demanda, no qual somente as p aginas necess arias para a execu c ao de um processo s ao carregadas para a mem oria. Al em de aumentar o desempenho do sistema, esta t ecnica permite que existam programas com espa co de endere camento l ogico maiores. Para indicar se uma p agina se encontra ou n ao carregada na mem oria em um determinado instante, e utilizado um bit adicional para cada entrada da tabela. Quando um processo tenta acessar uma p agina que n ao est a carregada na mem oria e dito que ocorreu um page-fault. O processo e ent ao suspenso e at e que esteja pronto para executar novamente ocorre a seguinte seq u encia de eventos:

http://www.candidatoreal.com

53

http://www.candidatoreal.com

1. Aloca c ao de uma p agina f sica; 2. Localiza c ao da P agina F sica no Disco; 3. Leitura da P agina no Disco; 4. Atualiza c ao da Tabela de P aginas; 5. Processo vai para la 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 substitui c 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 substitui c 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 la circular e utiliza bits de controle. O Trashing e a situa c ao em que um processo possui poucas p aginas f sicas 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 t ecnica de swap para permitir que o processo possa executar de forma satisfat oria.

4.6

Sistemas de Arquivos

O sistema de arquivos e a parte do sistema operacional mais vis vel para os usu arios. Durante todo tempo, os usu arios manipulam arquivos contento textos, planilhas, desenhos, guras, jogos e etc. Este fato exige que o sistema operacional apresente uma interface coerente e simples. Para isso, o sistema de arquivos implementa o conceito de arquivo e diret orio.

http://www.candidatoreal.com

4.6.1

Conceitos b asicos sobre arquivos

Um arquivo e um recipiente no qual dados s ao armazenados. Em geral, cada arquivo cont em um conjunto de dados que possui algum signicado pr atico para o usu ario ou para o sistema. Um arquivo pode conter um programa execut avel, um m odulo de um programa fonte, um texto, uma gura, etc. Cada arquivo e identicado por um nome, o qual permite que o usu ario fa ca refer encias a ele. Al em do nome, cada arquivo possui uma s erie de outros atributos que s ao mantidos pelo sistema operacional como tipo de conte udo, tamanho, data e hora do u ltimo acesso, data e hora da u ltima altera c ao, lista de usu arios que podem 54

http://www.candidatoreal.com

acessar o arquivo, etc. Em geral, o sistema operacional suporta diversas opera c oes sobre os arquivos, como cria c ao e destrui c ao do arquivo, leitura e altera c ao do conte udo, troca de nome do arquivo, etc. Essas opera c oes correspondem a chamadas de sistema que os programas de usu ario podem usar para manipular os arquivos. Em sistemas multiusu arios, e importante controlar o acesso aos arquivos. Sistemas operacionais multiusu arios implementam mecanismos que permitem controlar quais os usu arios podem fazer o que em quais arquivos. O controle de acesso inicia com a identica c ao dos usu arios por meio de um c odigo de usu ario e uma senha. A partir do momento que a identica c ao do usu ario e aceita, todos os processos disparados a partir do terminal em quest ao poss passam a ter os direitos de acesso associados com aquele usu ario. E vel associar a cada arquivo uma lista de usu arios e direitos de acesso. A forma usual e permitir que apenas o usu ario que criou o arquivo possa alterar a lista contendo os direitos de acesso do arquivo. A forma como os dados s ao dispostos dentro de um arquivo determina sua estrutura interna. Cada tipo de arquivo possui uma estrutura interna apropriada para a sua nalidade. Por exemplo, arquivos de texto s ao organizados em linha ou par agrafos. Arquivos que cont em programas execut aveis s ao organizados em termos de segmento de c odigo e segmentos de dados. Em geral, os sistemas operacionais ignoram a estrutura interna dos arquivos. Para o sistema operacional, cada arquivo corresponde a uma seq u encia de bytes, cujo signicado e conhecido pelo usu ario que o criou. A u nica exce c ao s ao os arquivos que cont em programas execut aveis. Nesse caso, a estrutura interna e denida pelo pr oprio sistema operacional. Como o conceito de tipo de arquivo e u til para os usu arios, muitos sistemas operacionais suportam nomes de arquivos onde o tipo e indicado. A forma usual e acrescentar extens ao de nome que identique o tipo de arquivo em quest ao. O m etodo de acesso diz respeito ` a forma como o conte udo de um arquivo e acessado. O m etodo de acesso mais simples e o seq uencial. Este m etodo e usado pelos compiladores, para a impress ao de um arquivo, etc. Outro m etodo de acesso e o acesso relativo. Neste m etodo, o programa inclui na chamada de sistema qual posi c ao do arquivo a ser lida. As posi c oes do arquivo s ao numeradas a partir de 0 (ou a partir de 1 em alguns sistemas), sendo que cada posi c ao corresponde a um byte. Em muitos sistemas operacionais, existe o conceito de posi c ao corrente no arquivo. Nesse caso, a chamada de sistema para leitura ou escrita n ao informa uma posi c ao. Essa sempre acontece a partir da posi c ao corrente. O sistema operacional tamb em permite que o programa altere a posi c ao corrente do arquivo por meio de uma chamada de sistema. Existem outros m etodos de acesso mais sosticados, tais como seq uencial indexado, indexado, direto, etc. Tais m etodos de acesso s ao implementados a 55

http://www.candidatoreal.com

http://www.candidatoreal.com

partir dos m etodos seq uencial e relativo.

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 informa c oes a respeito do arquivo. Essas informa c oes incluem os seus atributos, al em de outros dados que n ao s ao vis veis aos usu arios, mas s ao necess arios para o que o sistema operacional implemente as opera c oes sobre os arquivos. Um descritor de arquivo cont em as seguintes informa c 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 altera ca o, identica c 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 parti c ao onde est a o seu conte udo. Dessa forma, esse disco poder a ser at e mesmo sicamente removido de um computador e conectado a outro. Os arquivos nele poder ao ser acessados normalmente no novo computador. O descritor e acessado a cada opera c ao de escrita ou leitura para determinar a localiza c ao no disco dos dados a serem escritos ou lidos. Para tornar mais r apido o acesso aos arquivos, o sistema de arquivos mant em na mem oria uma tabela contendo todos os descritores dos arquivos em uso. Quando um arquivo entra em uso, o seu descritor e copiado do disco para a mem oria. Quando o arquivo deixa de ser usado, o seu descritor em mem oria pode ter sido alterado em rela c ao ` a c opia do descritor em disco. Nesse caso, o sistema de arquivos escreve o descritor atualizado que est a na mem oria sobre a c opia original do descritor em disco. A maioria dos sistemas operacionais exige que os pr oprios programas informem quando um arquivo entra em uso e quando ele n ao e mais necess ario. Para tanto, existem as chamadas de sistema open e close. Tamb em eu til passar como par ametro o tipo de acesso que ser a feito, isto e, leitura (READONLY ou RD) ou leitura e escrita (READWRITE ou RW). O sistema de arquivos utiliza uma Tabela de Descritores de Arquivos Abertos (TDAA) para manter em mem oria os descritores dos arquivos abertos. A TDAA mant em informa c oes relativas aos arquivos abertos por todos os processos no sistema. Isso e necess ario porque normalmente e permitido que v arios processos abram um mesmo arquivo simultaneamente. Cada entrada armazena uma c opia do descritor do arquivo mantido em disco, assim como algumas informa c oes adicionais, necess arias apenas enquanto o arquivo est a aberto. Por exemplo, n umero de processos utilizando o arquivo no momento. As entradas da TDAA armazenam informa c oes que n ao variam conforme o processo que est a acessando o arquivo. Entretanto, existem informa c oes diretamente associadas com o processo que acessa o arquivo. Essas informa c oes n ao podem ser mantidas na TDAA, pois como v arios processos podem acessar o mesmo arquivo, elas possuir ao um valor diferente para cada processo. Um exemplo de informa c ao que depende do processo e a posi c ao corrente no arquivo. 56

http://www.candidatoreal.com

http://www.candidatoreal.com

Uma solu c ao t pica 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 m nimo, a TAAP cont em em cada entrada as seguintes informa c oes: posi c ao corrente no arquivo, tipo de acesso (leitura ou leitura e escrita) e apontador para a entrada correspondente na TDAA. A gura 4.4 mostra as tabelas TDAA e TAAP. Toda TDAA como as TAAP devem car na mem oria do sistema operacional, fora do acesso dos processos de usu ario.

Figura 4.4: TAAP vs. TDAA Uma vez aberto um arquivo, o processo utiliza chamadas de sistema com read e write para acessar o seu conte udo. N ao e necess ario, nem conveniente, que a cada chamada de sistema, o processo forne ca novamente o nome do arquivo. Como resultado de um open com sucesso, o sistema de arquivos retorna para o processo o n umero da entrada na TAAP associada com o arquivo aberto. Dessa forma, nas chamadas de sistemas ap os o open, o processo indica o arquivo atrav es do n umero de sua correspondente entrada na TAAP. A partir da TAAP, o sistema de arquivos pode imediatamente localizar o descritor no arquivo TDAA. Muitos sistemas operacionais chamam esse n umero de handle do arquivo. Existem duas fun c oes importantes que o sistema de arquivos deve realizar na implementa c ao das chamadas de sistema read e write. S ao elas a montagem e desmontagem de blocos l ogicos e a localiza c ao dos blocos l ogicos no disco. Essas fun c oes s ao implementadas baseando-se em tr es formas b asicas de aloca c ao de arquivos: aloca c ao com areas cont guas, aloca c ao encadeada e a aloca c ao indexada.

http://www.candidatoreal.com

4.6.3

Cache de Sistema de Arquivos

Uma importante estrutura de dados presente na implementa c ao de um sistema de arquivos e a sua cache. A cache n ao oferece nenhuma funcionalidade nova, isto e, a presen ca ou aus encia de uma cache n ao adiciona ou elimina nenhuma

57

http://www.candidatoreal.com

fun c ao, chamada de sistema ou opera c 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 poss uma cache de disco pode ser mantida. E vel haver uma cache global, uma cache exclusiva para cada sistema de arquivos, etc. A forma b asica de opera ca o 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 atualiza c 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 informa c ao na cache ser a perdida, o disco car a desatualizado e, possivelmente, o sistema de arquivos car a corrompido. Existem diversas pol ticas 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 parti c ao e o n umero do bloco, e uma fun c ao hash e utilizada para determinar o endere co do bloco na cache, caso ele esteja na cache. Eventualmente, a cache pode se encontrar completamente ocupada, sendo necess ario liberar espa co para algum outro bloco. A solu c ao t pica e escolher um bloco da cache, atualizar o seu conte udo no disco se necess ario, declarar esse bloco da cache como livre e utiliz a-lo para hospedar um novo bloco de disco. A pol tica para escolher o bloco da cache a ser liberado geralmente e a LRU (Least Recently Used ).

http://www.candidatoreal.com

4.6.4

Gerenciamento do espa co livre

Uma das tarefas do sistema de arquivos e gerenciar o espa co 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 espa co livre em disco e por meio de um mapa de bits. A gura 4.5 mostra esse mecanismo. Cada bit presente no mapa representa um bloco f sico do disco. Os bits s ao considerados numerados da direita para esquerda, isto e, o bit menos signicativo do primeiro byte e o bit n umero zero. Bit ligado indica bloco ocupado, 58

http://www.candidatoreal.com

Figura 4.5: Mapa de bits para gerenciamento de espa co livre e bit desligado indica bloco livre. O endere co do bloco representado por um determinado bit e denido pela pr opria posi c ao do bit dentro do mapa. Para alocar mais um bloco f sico para um arquivo, basta percorrer o mapa de bits at e encontrar um bit zero. O bit e ent ao ligado para indicar que o respectivo bloco agora est a ocupado. Quando um arquivo e destru do e seus blocos liberados, basta desligar os bits correspondentes. O mapa de bits deve ser mantido na mem oria principal para que a busca seja r apida. O espa co livre em disco tamb em pode ser gerenciado por meio de uma lista contendo os n umeros de todos os blocos f sicos 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 aloca c ao e libera c ao de blocos f sicos, alguns blocos da lista s ao copiados para a mem oria principal. Logo, somente ser a necess ario acessar o disco quando todos os endere cos de blocos livres copiados para a mem oria principal tiverem sido alocados. Ou ainda, quando remo c oes de arquivos liberarem blocos f sicos em tal quantidade que alguns blocos de endere cos tenham que ser escritos em disco. Alguns sistemas operacionais atualizam periodicamente a lista de endere cos em disco para minimizar a corrup c ao do sistema de arquivos em caso de falha no computador.

http://www.candidatoreal.com

4.6.5

Diret orios

Os diret orios s ao as estruturas do sistema de arquivos que cont em a informa c ao quais arquivos existem no disco. Um diret orio pode ser entendido como sendo um conjunto de arquivos ou um conjunto de refer encias 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 solu c ao, conhecida como diret orio linear, e aceit avel apenas para sistemas de arquivo muito pequenos. Por exemplo, pode ser utilizada para discos ex veis de pequena capacidade.

59

http://www.candidatoreal.com

Para sistemas multiusu arios, o diret orio linear e problem atico, pois os arquivos de diferentes usu arios cam misturados. Esse problema pode ser resolvido com uma estrutura de diret orios organizada em dois n veis. O diret orio principal cont em uma entrada para cada usu ario do sistema. Essa entrada n ao corresponde a um arquivo, mas sim a um subdiret orio que, por sua vez, cont em os arquivos do usu ario correspondente. Tamb em e necess ario criar no diret orio principal uma entrada para conter os arquivos do sistema. As entradas do diret orio principal s ao usualmente chamadas de subdiret orios. poss E vel estender o conceito de subdiret orios de tal forma que os usu arios tamb em possam criar livremente os seus pr oprios subdiret orios. Dessa forma, cada usu ario tem a liberdade de organizar os seus arquivos de forma lhe for mais conveniente. O resultado e um sistema de diret orios organizado na forma de arvore conforme a gura 4.6.

Figura 4.6: Diret orio organizado em forma de arvore Em um sistema de diret orios organizado na forma de arvore, qualquer arquivo ou subdiret orio pode ser identicado de forma n ao amb gua por meio do caminho (pathname) para atingi-lo a partir da raiz da arvore. Facilmente, a arvore de diret orio cresce at e uma altura tal que passa a ser desconfort avel fornecer sempre o caminho completo at e cada arquivo ou diret orio. O conceito de diret orio corrente facilita a identica c ao de arquivos nesse contexto. Dessa forma, um arquivo pode ser identicado por seu caminho absoluto, que inicia a raiz da arvore, ou pelo seu caminho relativo, que inicia no diret orio corrente do usu ario em quest ao. Uma exibilidade adicional presente em muitos sistemas operacionais est a na possibilidade de incluir o mesmo arquivo ou subdiret orio em v arios diret orios. Dessa forma, o mesmo arquivo passa a ter diversos nomes absolutos (mesmo na arvore, cada arquivo possui diversos nomes relativos, uma vez que o caminho relativo depende do diret orio corrente em quest ao. Essa facilidade e denominada de link e efetivamente transforma a estrutura de diret orios em um grafo.

http://www.candidatoreal.com

60

http://www.candidatoreal.com

4.6.6

Implementa c ao de diret orios

A forma mais simples de implementar diret orios e consider a-lo como arquivos especiais, cujo conte udo e manipulado pelo pr oprio sistema operacional. Dessa forma, todo o mecanismo de aloca c ao, libera c ao e localiza c ao de blocos f sicos no disco, dispon vel para arquivos, tamb em e usado para os diret orios. Diret orios passam a ser arquivos cujo conte udo e denido pelo sistema operacional e cujo acesso e controlado por parte do usu ario. Como diret orios s ao implementados como arquivos, cada diret orio possui tamb em seu descritor. Os diret orios s ao implementados como conjunto de descritores de arquivos, ou conjuntos de endere cos de descritores de arquivos. Quando diret orios s ao implementados como conjunto de descritores de arquivos, o conte udo de um diret orio corresponde aos descritores dos arquivos e dos subdiret orios contidos naquele diret orio, conforme a gura 4.7. Nesse caso, o nome do arquivo ou subdiret orio faz parte do seu descritor.

Figura 4.7: Diret orios contendo descritores de arquivos Outra possibilidade e separar um conjunto de blocos da parti c ao para armazenar exclusivamente os descritores de arquivos e de subdiret orios. Esse conjunto de blocos forma um vetor de descritores, no qual cada descritor pode ser identicado pelo n umero da parti c ao e pela posi c ao nesse vetor. Essa estrutura de dados forma o que e normalmente conhecido como um at le system, pois os descritores n ao incluem nomes, n ao existe nenhuma estrutura c ao dos arquivos em diret orios, apenas um diret orio u nico (vetor) e arquivos identicados pela posi c ao do vetor. Em qualquer solu c ao, cada diret orio nada mais e que uma tabela. Existem diversas implementa c oes poss veis para tabelas que podem ser usadas na implementa c ao de um diret orio. Entre elas, destaca-se a lista n ao ordenada, lista ordenada e a tabela hash.

http://www.candidatoreal.com

4.7

Sistemas Operacionais Distribu dos

Um sistema distribu do e uma cole c ao de computadores independentes que parecem ao usu ario como um u nico computador. Essa deni c ao implica hardware 61

http://www.candidatoreal.com

formado por m aquinas aut onomas e software fornecendo a abstra c 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. Distribui c ao inerente: algumas aplica c oes s ao distribu das por natureza. Toler ancia a falhas: em caso de falha de uma m aquina, o sistema como um todo pode sobreviver, apresentando apenas uma degrada c ao de desempenho. Crescimento incremental: o poder computacional pode ser aumentado atrav es da inclus ao de novos equipamentos. Flexibilidade: sistemas distribu dos s ao mais ex veis do que m aquinas isoladas, por isso muitas vezes s ao utilizados at e mesmo que n ao se es essa exibilidade que permite que v teja buscando desempenho. E arios usu arios compartilhem dados e perif ericos. E as desvantagens: Pouco software de alto n vel dispon vel para sistemas distribu dos. Diculdades para evitar acesso indevido (seguran ca). A rede de interconex ao pode causar problemas ou n ao dar vaz ao a demanda. Sistemas distribu dos 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 classica c oes existentes, Flynn prop oe uma taxonomia considerando o n umero de uxo de instru c oes e o n umero de uxo de dados. SISD(Single Instruction Single Data): uxo de instru c oes e dados u nico e a caracter stica dos uniprocessadores tradicionais MIMD(Multiple Instructions Multiple Data): caracteriza-se por v arios processadores interconectados. Tanembaum apresenta a seguinte subclassica c ao, onde os dois primeiros s ao denidos em rela c ao a organiza c ao da mem oria e os dois u ltimos em rela c ao a forma de interconex ao:

http://www.candidatoreal.com

Multiprocessador: m aquinas MIMD com mem oria compartilhada (um u nico espa co de endere camento virtual compartilhado por todas as CPUs). Multicomputador: m aquinas que n ao possuem mem oria compartilhada, isto e, cada processador possui sua mem oria privada. Barramento: um u nico cabo, rede, barramento ou outro meio que conecte todas as m aquinas. Analogia: TV a cabo. Switch: existem cabos individuais conectando m aquina a m aquina, com v arios padr oes poss veis.

62

http://www.candidatoreal.com

Outra classica c ao: Fortemente acoplado(Tightly Coupled): comunica c 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 cria c ao de novas arquiteturas de computadores, surgiram novas demandas de software e, em especial, novas fun c oes exigidas ao S.O. Pode-se considerar como uma boa classica c ao da evolu c ao dos Sistemas Operacionais a tabela abaixo. A tabela 4.1 apresenta uma compara c ao entre as caracter sticas dos S.O modernos
Gera c ao 1a Sistema SO Centralizado Caracter stica Gerenciamento de Processos Gerenciamento de Mem oria Gerenciamento de E/S Gerenciamento de Arquivos Acesso Remoto Troca de Informa c oes Navega c ao na rede Vis ao global do Sistema de arquivos, Espa co de nomes Tempo, Seguran ca Poder Computacional Aplica c oes Distribu das 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 Transpar encia Trabalho cooperativo Autonomia

2a

SO de Rede

3a

SO Distribu do

4a

SO Cooperativo Aut onomo

Tabela 4.1: Sistemas Operacionais

4.7.1

Estrutura c ao de Sistemas Distribu dos

Estrutura c ao baseada na distribui c ao f sica Dentre os v arios modelos baseados da distribui c ao f sica, 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 espec cas e especializadas. O modelo de cache de CPU consiste na utiliza c 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 pot encia e tendo seus pre cos reduzidos, diminu ram gradativamente a import ancia do computador central do modelo cache de CPU.

http://www.candidatoreal.com

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 opera c oes, connados em gerenciadores de recursos. A comunica c ao entre os processos, implementada pelo sistema operacional, pode ocorrer de duas formas: Chamada remota de procedimento: este tipo de comunica c ao entre processos e bastante dependente da linguagem usada para implementa c ao do sistema, devendo satisfazer suas restri c oes com rela c ao a chamada de procedimento e a passagem de par ametros. Troca expl cita de mensagem: este j a e mais ex vel do que o anterior, suas restri c oes est ao relacionadas com a exist encia de liga c oes impl citas ou expl citas entre os processos e com a interpreta c ao da mensagem. 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 opera c oes respons aveis pelo seu comportamento. Para conseguir acessar um objeto, um processo deve ter capacidade de faz e-lo, usando o conhecimento do nome do objeto e a posse da autoriza c ao para cessar algumas ou todas as suas opera c oes. Cada objeto distribu do n ao opera sozinho. A princ pio ele e constru do para trabalhar com outros objetos e, para isso, precisa de uma esp ecie de barramento. Tais barramentos fornecem infra-estrutura para os objetos, adicionando novos servi cos que podem ser herdados durante a constru c ao do objeto, ou mesmo em tempo de execu c ao para alcan car altos n veis de colabora c ao com outros objetos independentes. CORBA e um exemplo de barramento.

http://www.candidatoreal.com

64

http://www.candidatoreal.com

Cap tulo 5

Principais Processadores de Mercado


5.1
5.1.1

Processadores Intel
Fam lia Pentium

Pentium 4 O processador Pentium 4 da Intel foi lan cado em novembro de 2000, usando a microarquitetura x86 de s etima gera c ao da Intel, chamada Netburst, que veio com um pipeline muito longo com a inten c ao de permitir clocks mais altos. Os processadores Pentium 4 podem encontrados em tr es vers oes de n ucleos: Willamette, Northwood e Prescott. Os primeiros modelos de Pentium 4 utilizavam soquete 423, que, como o pr oprio nome j a sugere, possu a 423 terminais. Depois foram lan cados modelos de Pentium 4 com soquete 478, que, apesar de possu rem mais contatos do que os modelos anteriores (soquete 423), eram sicamente menores. Os modelos de Pentium 4 atuais utilizam um novo tipo de soquete, chamado Soquete 775. Willamette Os primeiros modelos de Pentium 4 eram baseados no n ucleo Willamette, que tinha 8 KB de cache L1 para dados; 12 KB de cache L1 para instru c ao; 256 KB de cache L2; trabalhava externamente a 400 MHz (100 MHz transferindo quatro dados por pulso de clock); padr ao de pinagem soquete 423 e 478; clock interno de 1,30 a 2 GHz; suporte a instru c oes MMX (oferece um modelo de execu c ao SIMD (Single Instruction Multiple Data, ou seja, uxo u nico de instru c oes e m ultiplos de dados) simples, capaz de efetuar processamentos de dados inteiros, empacotados em registros de 64 bits. As instru c oes MMX melhoraram a execu c ao das assim chamadas tarefas multim dias, como codicar e decodicar v deo), SSE (Streaming SIMD Extensions ) e SSE2; tecnologia de constru c ao de 180 nan ometro. Northwood Em seguida vieram os modelos de Pentium 4 baseados no n ucleo North-

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 fabrica c ao de 130 nan ometros. O n ucleo Northwood possui 8 KB de cache L1 para dados; 12 KB de cache L1 para instru c 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 instru co es MMX, SSE e SSE2. Alguns modelos possuem suporte a tecnologia Hyper-Threading. Prescott O n ucleo Prescott e constru do 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 instru c 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 instru ` c 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 lan cado em novembro de 2003 e foi o primeiro processador para desktop a possuir o cache L3 integrado, caracter stica esta presente apenas em processadores voltados para o mercado corporativo. Este processador possui 2 MB de cache L3 sendo acessado na mesma freq u encia de opera c 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 instru c 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 instru c oes MMX, SSE e SSE2; tecnologia Hyper-Threading ; tecnologia de constru c 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 instru c 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 instru c oes MMX, SSE, SSE2 e SSE3; tecnologia Hyper-Threading, EM64T.

http://www.candidatoreal.com

66

http://www.candidatoreal.com

Pentium D e Pentium Extreme Edition O processador Pentium D e a vers ao de dois n ucleos do Pentium 4, e o Pentium Extreme Edition e a vers ao do Pentium D com tecnologia HyperThreading habilitada. Os processadores Pentium D e Pentium Extreme Edition podem ser encontrados em duas vers oes de n ucleos: Smitheld e Presler. O Pentium D e o Pentium Extreme Edition s ao baseados na microarquitetura x86 de s etima gera c ao da Intel, chamada Netburst, ou seja, apesar do nome diferente, eles s ao internamente um Pentium 4 (ou melhor, dois processadores Pentium 4 em um u nico encapsulamento). A diferen ca b asica entre o Pentium D e o Pentium Extreme Edition e a aus encia da tecnologia HyperThreading nos processadores Pentium D. Smitheld Os processadores Pentium D e Pentium Extreme Edition da s erie 800 s ao baseados no n ucleo Smitheld. O n ucleo Smitheld consiste na verdade em duas pastilhas de sil cio do n ucleo Prescott montadas em um u nico processador. As principais caracter sticas dos processadores Pentium D da s erie 800 s ao: tecnologia de n ucleo duplo; 16 KB de cache L1 de dados por n ucleo; 12 KB de cache L1 de instru c 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 instru c oes SSE3; soquete 775; processo de fabrica c 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 t em esta tecnologia. Presler Os processadores Pentium D e Pentium Extreme Edition da s erie 900 s ao baseados no n ucleo Presler. As principais caracter sticas dos processadores Pentium D e Pentium Extreme Edition da s erie 900 s ao: tecnologia de n ucleo duplo; 16 KB de cache L1 de dados por n ucleo; 12 KB de cache L1 de instru c 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 instru c oes SSE3; soquete 775; processo de fabrica c 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 t em 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

junto de tecnologias desenvolvidas para notebooks e e formada por tr es componentes: Processador Pentium M Intel Chipsets 855 ou 915 Rede Wireless Intel/PRO Um notebook s o pode ser considerado Centrino se ele possuir todos esses tr es componentes. O processador Pentium M da Intel foi lan cado em mar co de 2003, usando a microarquitetura x86 de sexta gera c ao da Intel, ou seja, a mesma arquitetura usada pelos processadores Pentium Pro, Pentium II e Pentium III. Podem ser encontrados em duas vers oes de n ucleos: Banias e Dothan. Banias Os primeiros modelos de Pentium M eram baseados no n ucleo Banias, que tinha 32 KB de cache L1 de instru c oes e 32 KB de cache L1 de dados; 1 MB de cache L2; trabalhava externamente a 400 MHz (100 MHz transferindo quatro dados por pulso de clock); clock interno de 1,10 a 1,50GHz; suporte as instru c oes SSE2; tecnologia Enhanced SpeedStep; tecnologia de constru c ao de 0, 13m; padr ao de pinagem soquete 478 e 479. Dothan O n ucleo Dothan e constru do com tecnologia de 90 nan ometros e utilizado nos processadores Pentium M modernos. Ele possui 32 KB de cache L1 de instru c oes e 32 KB de cache L1 de dados; 2 MB de cache L2; trabalha externamente a 400 MHz ou 533 MHz (100 MHz e 133 MHz transferindo quatro dados por pulso de clock, respectivamente); clock interno de 1,10 a 2,26 GHz; suporte as instru c oes SSE2; tecnologia Enhanced SpeedStep, Execute Disable (alguns modelos); padr ao de pinagem soquete 478 e 479.

5.1.2

Fam lia Celeron

http://www.candidatoreal.com

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 caracter sticas reduzidas ou removidas. O Celeron diferencia-se do Pentium II, Pentium III ou do Pentium 4 em basicamente tr es aspectos: Tamanho do cache L2 Clock interno Clock do barramento externo Essas diferen cas 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 dom esticos 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 suxo D e apenas para diferenci a-lo das gera c 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 instru c oes multim dia 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 alcan car com maior facilidade freq u encias mais elevadas, o Celeron D n ao suporta a tecnologia Hyper-Threading, que permite simular em um u nico processador f sico 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 v rus 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

Fam lia Core

Core Duo O Core Duo (conhecido anteriormente pelo nome-c odigo Yonah ) e o primeiro processador da Intel voltado para o mercado de notebooks a ter tecnologia de dois n ucleos, isto e, dentro dele h a dois processadores completos. Curiosamente este e tamb em o primeiro processador da Intel adotado pela Apple. Na realidade este processador e um Pentium M com dois n ucleos de processamento e constru do com tecnologia de 65 nm (O Pentium M e atualmente constru do com tecnologia de 90 nm). Apesar de ter dois n ucleos de processamento dentro de um u nico processador, o tamanho do n ucleo do Core Duo e praticamente o mesmo do Pentium M (n ucleo Dothan). Isto signica que o custo para a Intel produzir um Core Duo e quase o mesmo para produzir um Pentium M, que tem apenas um u nico n ucleo. O cache de mem oria L2 do Core Duo e de 2 MB compartilhado entre os n ucleos (a Intel chama esta implementa c ao de cache L2 compartilhado de Smart Cache, ou cache inteligente). No Pentium D 840, por exemplo, que e um processador de n ucleo duplo, o tamanho do seu cache L2 e de 2 MB, sendo 1 MB destinado para cada n ucleo. Ou seja, no Pentium D existem dois cache

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 xa. 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 instru c ao e a armazenou no cache L2, esta mesma informa c 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 instru c ao) atrav es 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. As principais caracter sticas do Core Duo s ao as seguintes: tecnologia de n ucleo duplo; Nome-c odigo: Yonah ; 32 KB de cache L1 de instru c oes e 32 KB de cache L1 de dados 2 MB de cache L2 compartilhado entre os dois n ucleos; Soquete 478 ou 479; tecnologia de 65 nm; barramento externo de 667 MHz (166 MHz transferindo quatro dados por pulso de clock); tecnologia de Virtualiza c ao; tecnologia Execute Disable; tecnologia Enhanced SpeedStep; suporte ` as instru c oes SSE3. Podemos dividir a plataforma Centrino em tr es fam lias. A primeira fam lia e formada pelo processador Pentium M, chipset Intel 855/915 Express e rede sem o Intel PRO/Wireless. A segunda fam lia e formada pelo processador Intel Core Solo (vers ao do processador Intel Core Duo, mas com um u nico n ucleo de processamento ? at e o momento somente um modelo de Core Solo foi lan cado, T1300, rodando internamente a 1,66 GHz, externamente a 667 MHz, 2 MB de cache L2), chipset Intel 945 Express e rede sem o Intel PRO/Wireless 3945ABG. J a a terceira fam lia, tamb em conhecida como Centrino Duo (antes chamada Napa), traz para os notebooks o poder computacional dos processadores de dois n ucleos e e formada pelo processador Intel Core Duo com clock interno de 1,50 a 2,16 GHz, chipset 945 Express e rede Intel PRO/Wireless 3945ABG. Core 2 Duo O Core 2 e a gera c ao mais recente de processadores lan cada pela Intel (os primeiros modelos foram lan cados ocialmente em 27 de julho de 2006). A chegada do Core 2 signica a substitui c ao da marca Pentium, que estava sendo usada pela companhia desde 1993. Os modelos mais comuns e conhecidos dessa linha se chamam Core 2 Duo (com n ucleo duplo), que substitui o Pentium 4 e o Pentium D, mas existe tamb em um modelo Core 2 Quad (com n ucleo qu adruplo) e os modelos Core 2 Extreme (high end), que substitui o Pentium Extreme 70

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 lan camento do processador Core 2 Duo (nome-c odigo Conroe para desktop e Meron para port ateis) marca o in cio de uma nova gera c ao de processadores baseados na nova microarquitetura Core, e declara de uma vez por todas o m da microarquitetura Netburst usada desde 2000 pelos processadores Intel de 7a gera c 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 gera c ao. A diferen ca 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 constru do 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 caracter sticas t ecnicas dos processadores da fam lia 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 instru c 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 Virtualiza c ao (exceto o Core 2 Duo E4300); tecnologia Intel EM64T; instru c oes SSE3 e SSSE3 (atualiza c ao da SSE3); Execute Disable; Intelligent Power Capability; tecnologia Enhanced SpeedStep. 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 caracter sticas mencionadas anteriormente, mas com um barramento externo de 667 ou 533 MHz.

http://www.candidatoreal.com

5.1.4

Xeon

Em 1998 a Intel estabeleceu uma distin c ao entre seus processadores voltados para o mercado de servidores e esta c oes de trabalho dos voltados para o mercado de usu arios dom esticos. Desde ent ao, a Intel passou a incluir o termo Xeon(pronuncia-se z on) no nome dos processadores voltados para o mercado de servidores e esta c oes de trabalho. Esses processadores reconhecem mais mem oria RAM, permitem trabalhar em ambiente multiprocessado (isto e, com placas-m ae com v arios processadores instalados sobre ela) e possui um desem71

http://www.candidatoreal.com

penho maior que os processadores voltados para o mercado dom estico. A Intel lan cou vers oes para o mercado de servidores e esta c oes de trabalho dos seus processadores Pentium II e Pentium III, chamadas, respectivamente, de Pentium II Xeon e Pentium III Xeon. Assim, o processador Pentium II era direcionado para o mercado de usu arios dom esticos enquanto que o Pentium II Xeon era um processador voltado para o mercado de servidores e esta c oes de trabalho. A mesma coisa acontece com o Pentium III e Pentium III Xeon. No caso do Pentium 4, em vez do nome escolhido ter sido Pentium 4 Xeon, optou-se pelo nome Xeon. Ou seja, o Xeon e um processador voltado para o mercado de servidores e esta c oes de trabalho baseado no Pentium 4. Atualmente, existem os modelos Xeon Core 2 Duo e Core 2 Quad.

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 esta c oes de trabalho baseado no Pentium 4, sendo, portanto, um processador Intel de 7a gera c ao. Como vimos, os processadores anteriores da s erie Xeon usavam a arquitetura Intel de 6a gera c ao (a mesma do Pentium Pro). A diferen ca entre os processadores Xeon MP e Xeon e que o primeiro permite multiprocessamento sim etrico 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 sim etrico com at e dois processadores), sendo posteriormente renomeado para apenas Xeon. Os processadores Xeon possuem 8 KB de mem oria cache L1 para dados (16 KB nos modelos que possuem a tecnologia de 64 bits EM64T) e um cache L1 de execu c ao de 150 KB. O cache L2 pode ser de 512 KB, 1 MB ou 2 MB, sendo que alguns modelos possuem um cache L3, que pode ser de 1 MB, 2 MB, 4 MB ou 8 MB. O barramento externo pode ser de 667, 1066 ou 1333 MHz. Alguns modelos possuem suporte ` as instru c oes SSE3, e ` as tecnologias XD, EM64T e Hyper-Threading.

http://www.candidatoreal.com

Os modelos Xeon DP 53xx possuem suporte a tecnologia Quad-Core e n ao suportam a tecnologia Hyper-Threading.

Xeon MP Como j a explicamos, a diferen ca entre o Xeon MP e o Xeon e a quantidade de processadores suportados no modo de multiprocessamento sim etrico: o Xeon suporta at e dois processadores em uma mesma placa-m ae, enquanto que o Xeon MP suporta at e quatro processadores por barramento.

72

http://www.candidatoreal.com

Na realidade e poss vel 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 at e 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 atrav es do mesmo barramento, enquanto os outros quatro processadores estar ao interligados atrav es de um segundo barramento. A comunica c ao entre os barramentos locais ser a feita pelo chipset. As principais caracter sticas dos processadores Xeon MP s ao: soquete 603; cache L1 de execu c ao de 150 KB; cache L1 de dados de 8 KB ou de 16 KB nos modelos com suporte ` a tecnologia EM64T; multiprocessamento sim etrico diretamente com at e quatro processadores; tecnologia Hyper-Threading. Alguns modelos possuem suporte ` as instru c 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 t em a tecnologia HyperThreading ? que simula a exist encia 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). Todos os processadores Xeon de n ucleo duplo possuem as seguintes caracter sticas: soquete 604 (modelos 7xxx) ou 771 (modelos 50xx); Mesma arquitetura interna no Pentium 4 (Netburst ); instru c oes SSE3; cache L1 de dados de 16 KB e cache de execu c ao de 150 KB; suporte a multiprocessamento sim etrico com at e dois processadores por placa-m ae; barramento externo de 667, 800 ou 1066 MHz; tecnologia Execute Disable; tecnologia EM64T; tecnologia HyperThreading ; tecnologia de Virtualiza c ao nos modelos 7xxx e 50xx; tecnologia DemandBased Switching (DBS), exceto nos modelos 5060 e 5063; tecnologia Enhanced SpeedStep; tecnologia de constru c ao 90 nan ometros ou 65 nan ometros.

http://www.candidatoreal.com

Xeon N ucleo Duplo (51xx) Intel lan cou recentemente uma nova s erie de processadores Xeon (51xx) baseada na nova microarquitetura Core, a mesma usada pelos processadores Core 2 Duo. Esta nova s erie era conhecida anteriormente por seu nome-c odigo, Woodcrest. Tenha em mente que os processadores Xeon de n ucleo duplo de outras s eries (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

Todos os processadores Xeon da s erie 51xx possuem as seguintes caracter sticas: tecnologia de n ucleo duplo; tecnologia de 65 nm; soquete 771; instru c oes SSE3; cache L1 dividido, sendo 32 KB para dados e 32 KB para instru c oes por n ucleo; 4 MB de cache L2 compartilhado entre os n ucleos; barramento externo de 1066 ou 1333 MHz; tecnologia EM64T; tecnologia de Virtualiza c ao; tecnologia Execute Disable; tecnologia Demand-Based Switching (DBS), nos modelos 5160, 5150, 5148 e 5140; tecnologia Enhanced SpeedStep; tecnologia Dual Independent Bus (DIB), onde cada n ucleo tem seu pr oprio barramento externo em vez de ter apenas um barramento compartilhado entre nos n ucleos para a comunica c ao com os outros dispositivos do micro.

5.1.5

Itanium

O projeto de processadores de 64 bits da Intel j a se arrasta por muitos anos. O primeiro processador lan cado usando essa tecnologia foi o Itanium e recentemente a Intel lan cou mais um processador IA-64, o Itanium 2. Esses dois processadores possuem caracter sticas de hardware bastante pesadas. O Itanium tem os dois caches de mem oria (L1 e L2) dentro do pr oprio processador, como ocorre com os demais processadores atualmente, e ainda um cache extra (L3) dentro de seu cartucho, podendo esse circuito ter 2 MB ou 4 MB, dependendo da vers ao do processador. Ele consegue acessar at e 16 EB (Exabytes, 1 EB = 26 0) de mem oria RAM e usa um barramento externo de 64 bits rodando a 266 MHz, atingindo uma taxa de transfer encia de 2,1 GB/s. Esse processador usa uma mistura de soquete com cartucho. J a o Itanium 2 tem uma mem oria cache L1 de 32 KB, uma mem oria cache L2 de 256 KB e uma mem oria cache L3 de 1,5 MB ou de 3 MB, dependendo do modelo. Os mais atuais possuem uma cache L3 de 6, 8, 12, 18 ou 24 MB dependendo do modelo. Seu barramento externo e de 128 bits, rodando a 400 ou 533 MHz. Possuem suporte a tecnologia Dual-Core, EM64T, VT. Esses dois processadores s ao voltados exclusivamente para o mercado de servidores de alto desempenho. Isso deixa a AMD em grande vantagem, j a que haver a processadores de 64 bits da AMD voltados para usu arios comuns (como o Clawhammer ).

http://www.candidatoreal.com

Outra vantagem da arquitetura de 64 bits da AMD sobre a arquitetura de 64 bits da Intel e que a arquitetura da Intel n ao roda nativamente c odigo de 32 bits usado pelos programas atuais, ao contr ario do que ocorre nos processadores da AMD, que rodam diretamente esse tipo de c odigo. Isso signica que para rodar sistemas operacionais e aplicativos de 32 bits, os processadores IA-64 (Itanium, Itanium 2 e futuros processadores) precisam traduzir as instru c oes de 32 bits em instru c oes equivalentes de 64 bits. Isso faz com que haja uma demora na execu c ao da instru c ao, pois h a tempo perdido com essa convers ao. O resultado disso e obvio: em alguns casos pode ocorrer de sistemas operacionais e programas de 32 bits rodarem mais lentamente nos processadores IA-64 da Intel do que em processadores de 32 bits como o Pentium 4 e o Athlon XP.

74

http://www.candidatoreal.com

Mas, como esses processadores da Intel foram destinados ao mercado de servidores, isso n ao tem muita import ancia, j a que m aquinas usando esses processadores com certeza rodar ao programas e sistemas escritos diretamente com instru c oes de 64 bits. Mas como essa e uma nova tecnologia, n ao s o e demorado reescrever programas antigos como escrever novos programas para essa claro que esse mesmo problema existe nos processadores nova plataforma. E da AMD, isto e, possivelmente demorar a algum tempo at e existirem sistemas operacionais e programas escritos usando c odigo de 64 bits desses processadores. Mas, por outro lado, eles podem rodar diretamente c odigo de 32 bits, facilitando a entrada desses processadores no mercado.

5.2
5.2.1

AMD
Sempron

O Sempron e o processador da AMD voltado para o mercado low-end, ou seja, ele e destinado a usu arios que n ao precisam de grande poder computacional e que est ao mais preocupados com pre co do que com desempenho. O concorrente do Sempron e Celeron D da Intel. O processador Sempron est a dispon vel em tr es vers oes de soquete: 462 (Socket A), 754 e AM2 (940 pinos). Os processadores Sempron soquete 462 s ao vers oes mais simples do Athlon XP, enquanto que os processadores Sempron soquete 754 e soquete AM2 s ao vers oes mais simples do Athlon 64. Como o Sempron soquete 462 usa uma arquitetura interna completamente diferente dos processadores Sempron soquete 754 e soquete AM2, uma compara c ao direta entre esses dois processadores n ao e poss vel. A nomenclatura PR(Performance Rating) usada pelo Sempron s o serve para a compara c ao entre modelos de Sempron usando o mesmo tipo de soquete. N ao e poss vel comparar a nomenclatura PR do Sempron com a do Athlon XP ou com a do Athlon 64. Por exemplo, um Sempron 3000+ n ao e necessariamente mais r apido do que um Athlon XP 2800+ ou do que um Athlon 64 2800+.

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 caracter sticas do Athlon XP, tais como: 64 KB de cache L1 de instru c oes e 64 KB de cache L1 de dados; 256 KB ou 512 KB de cache de mem oria L2; suporte ` as instru c oes MMX, 3DNow!, SSE e SSE2 (mas n ao ` as instru c oes SSE3); processo de fabrica c 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 lan cados mais recentemente passaram a contar com as extens oes de 64 bits. As principais caracter sticas dos processadores Sempron soquete 754 s ao: 64 KB de cache de L1 de instru c 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 tamb em ser referenciado como 1.600 MHz) para os modelos atuais; congura c ao de mem oria single channel; suporte a instru c oes SSE3 nos modelos que t em as extens oes de 64 bits habilitadas; processo de fabrica c ao de 90 nan ometros.

Soquete AM2 Ao contr ario dos processadores Sempron soquete 754, que trabalham apenas na congura c ao de um u nico canal (single channel), os processadores Sempron soquete AM2 podem utilizar a congura c ao de dois canais (dual channel), dobrando a taxa de transfer encia no acesso ` a mem oria desde que voc e 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. As principais caracter sticas t ecnicas do Sempron AM2 s ao as seguintes: 64 KB de cache de L1 de instru co es e 64 KB de cache L1 de dados; 128 KB ou 256 KB de cache de mem oria L2; barramento HyperTransport trabalhando a 800 MHz (3.2 GB/s). Este clock pode tamb em ser referenciado como 1.600 MHz; o controlador de mem oria integrado suporta mem orias DDR2-400, DDR2-533 e DDR2-667 na congura c ao de dois canais (dual channel), o que signica que o processador acessa a mem oria a 128 bits, se dois ou quatro m odulos forem usados; conjunto de instru c oes SSE3; extens oes de 64 bits habilitadas; processo de fabrica c ao de 90 nan ometros.

http://www.candidatoreal.com

concorrente Existem os modelos de Semprom chamados Mobile Semprom. E direto do Pentium M. O Mobile Semprom possui as seguintes caracter sticas: 64 KB de cache de L1 de instru c oes e 64 KB de cache L1 de dados; 128KB ou 256KB de cache L2 incorporado ao processador; Northbridge integrado; prote c ao avan cada contra v rus; suporte a instru c oes SSE2; processo de fabrica c ao 90 nan ometros.

5.2.2

Athlon 64

Os processadores mais novos da AMD encontrados no mercado atualmente s ao baseados na arquitetura do Athlon 64, tamb em conhecida como x86-64 ou ham-

76

http://www.candidatoreal.com

mer. Os modelos de Athlon 64 s ao o Athlon 64, Athlon 64 FX e o Athlon 64 X2. Esses tr es processadores mais o Sempron s ao voltados para o mercado de desktops. O Athlon 64 e voltado para o mercado mid-range (usu arios entusiastas ou aqueles que necessitam de um poder computacional maior do que o proporcionado pelo Sempron) e o Athlon 64 FX e o Athlon 64 X2 s ao voltados para o mercado high-end (alto desempenho). Existem tr es outros processadores baseados na arquitetura do Athlon 64: Athlon 64 Mobile e Turion 64, que s ao voltados para o mercado de notebooks, e o Opteron, que e voltado para o mercado de servidores. A principal caracter stica da arquitetura do Athlon 64 e a presen ca do controlador de mem oria dentro do pr oprio processador e n ao no chipset, como acontece com outros processadores. Por causa desta arquitetura a comunica c ao entre o processador e os m odulos de mem oria e feita atrav es de um barramento dedicado, enquanto que a comunica c ao entre o processador e o chipset e feita atrav es de um barramento independente, chamado HyperTransport. Processadores da AMD baseados na arquitetura do Athlon 64 podem ser encontrados com os seguintes padr oes de pinagem: Soquete 754 Usado pelas primeiras vers oes de Athlon 64, alguns modelos de Sempron e Turion 64. Seu controlador de mem oria usa somente um canal (single channel), o que signica que o processador acessa a mem oria a 64 bits; Soquete 939 Usado pelos processadores Athlon 64, Athlon 64 FX, Athlon 64 X2 e o Opteron. Seu controlador de mem oria usa dois canais (dual channel), o que signica que o processador acessa ` a mem oria a 128 bits, se dois m odulos de mem oria forem usados. Soquete 940 Usado pelos primeiros processadores Athon 64 FX e pelo Opteron. Seu controlador de mem oria usa dois canais (dual channel), o que signica 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 utiliza c ao de mem orias do tipo ECC;

http://www.candidatoreal.com

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 congura c ao de dois canais (dual channel), o que signica 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 tamb em 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 sim etrico), podendo trabalhar com mais de um processador em paralelo. Assim como os processadores soquete AM2, nesses processadores o controlador de mem oria integrado tamb em suporta mem orias DDR2-533, DDR2-667 e DDR2-800 na congura c ao de dois canais (dual channel), o que signica 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 atrav es 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. O problema e quando o multiplicador de clock do processador e um n umero mpar. Para um processador AM2 com um multiplicador de clock 13x teoricamente o divisor do seu barramento de mem oria seria de 6,5. Como o barramento de mem oria do AMD64 n ao trabalha com divisores quebradoseste valor e arredondado para o pr oximo n umero inteiro, sete neste caso. Enquanto este processador funcionar a a 2,6 GHz (200 MHz x 13) seu barramento de mem oria funcionar a a 371 MHz (742 MHz DDR) e n ao a 400 MHz (800 MHz DDR), fazendo com que o processador n ao alcance a largura de banda m axima que as mem orias DDR2 podem fornecer. Outras caracter sticas encontradas nos processadores baseados na arquitetura do Athlon 64 s ao as seguintes: O processador n ao e vendido com base em seu clock de opera c ao, mas sim atrav es de um indicativo de desempenho chamado performance rating(PR); podem acessar at e 1 TB de mem oria RAM (barramento de endere cos de 40 bits, 240 = 1 TB); suporte ` as instru c oes MMX, 3Dnow!, SSE e SSE2 (SSE3 apenas nos modelos mais novos); tecnologia EVP (Enhanced V rus Protection, tamb em conhecida como NX Bit Disable); tecnologia CoolnQuiet (tecnologia que permite reduzir o barulho, o calor e o consumo de energia). Athlon 64 O Athlon 64 pode ser encontrado em vers oes para o soquete 754, soquete 939 e o novo soquete AM2. E pode ser encontrado com diferentes vers oes de n ucleo (90 nan ometros ou 130 nan ometros). O concorrente direto do Atlhon 64 e o Pentium 4. As principais caracter sticas t ecnicas do Athlon 64 s ao as seguintes: 64 KB

http://www.candidatoreal.com

78

http://www.candidatoreal.com

de cache de L1 de instru c 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 tamb em ser referenciados como 1.600 MHzou 2.000 MHz, respectivamente; congura c 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 instru c 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 caracter sticas t ecnicas do Athlon 64 X2 s ao as seguintes: 64 KB de cache de L1 de instru co es 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 tamb em ser referenciado como 2.000 MHz; congura c ao de mem oria DDR dual channel em todos os modelos; conjunto de instru c oes SSE3 em alguns modelos.

Athlon 64 FX Originalmente a diferen ca entre o Athlon 64 e o Athlon 64 FX era a quantidade de mem oria cache L2 (512 KB no Athlon 64 vs. 1 MB no Athlon 64 FX) e maior exibilidade para overclock, j a que ele vinha com o multiplicador de clock destravado. As principais caracter sticas t ecnicas do Athlon 64 FX s ao as seguintes: 64 KB de cache de L1 de instru c oes e 64 KB de cache L1 de dados por n ucleo; 1 MB de cache de L2; barramento HyperTransport trabalhando a 800 MHz (3,2 GB/s) ou 1 GHz (4 GB/s); congura c ao de mem oria DDR dual channel em todos os modelos; conjunto de instru c oes SSE3 em alguns modelos; n ucleo duplo nos modelos terminados em um n umero par. O Athlon 64 FX-60 foi o primeiro Athlon 64 FX de n ucleo duplo lan cado. Esta tecnologia faz com que o processador possua dois processadores completos em seu interior; O Athlon 64 FX-62 e baseado no novo soquete AM2 e, portanto, o seu controlador de mem oria suporta as mem orias DDR2.

http://www.candidatoreal.com

5.2.3

Turion 64

Lan cado para ser o principal concorrente do Pentium M da Intel, o Turion 64 da AMD e um processador de baixo consumo voltado para o mercado de notebooks. O Turion 64 e baseado na arquitetura do Athlon 64 e a principal diferen ca entre o Turion 64 e o Athlon 64 Mobile e o consumo de energia. Uma outra

79

http://www.candidatoreal.com

diferen ca entre eles e a quantidade de mem oria cache L2, que e de 1 MB nos processadores Athlon 64 Mobile, enquanto que os processadores Turion 64 podem ter mem oria cache L2 de 512 KB ou 1 MB, dependendo do modelo. Tanto o Turion 64 quanto o Athlon 64 Mobile possuem a tecnologia PowerNow! da AMD, que e similar a tecnologia CoolnQuiet usado pelos processadores desktop. Esta tecnologia altera o clock e a tens ao de alimenta c ao do processador de acordo com a carga de trabalho que esteja sendo realizada, de modo a economizar bateria. As principais caracter sticas do Turion 64 s ao as seguintes: o processador n ao e vendido com base em seu clock de opera c ao, mas atrav es de um n umero de modelo; 64 KB de cache de L1 de instru c 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); congura c ao de mem oria DDR single channel; soquete 754; podem acessar at e 1 TB (terabyte) de mem oria RAM; suporte as instru ` c oes MMX, 3Dnow!, SSE e SSE2 e SSE3; tecnologia PowerNow!; tecnologia EVP (Enhanced Virus Protection), tamb em conhecida como NX Bit Disable; tecnologia de 90 nan ometros. Os processadores Turion 64 est ao dispon veis em duas s eries: ML, que tem consumo m aximo (TDP, Thermal Design Power) de 35 W, e MT, que tem consumo m aximo de 25 W.

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 congura c ao de dois canais (dual channel), o que signica que o processador pode acessar a mem oria a 128 bits. O Turion 64 X2 e o primeiro processador para notebook da AMD com tecnologia de dois n ucleos e a usar o novo padr ao de pinagem soquete S1, que utiliza 638 pinos em vez dos 754 pinos usados no soquete do Turion 64. Portanto, sicamente um Turion 64 X2 e menor do que um Turion 64 por ter menos pinos. Enquanto que o concorrente do Turion 64 e o Pentium M, os concorrentes do Turion 64 X2 s ao os processadores da Intel Core Duo e Core 2 Duo (nomec odigo Merom). As principais caracter sticas do Turion 64 X2 s ao as seguintes: 64 KB de cache de L1 de instru c oes e 64 KB de cache L1 de dados por n ucleo; 256 ou 512 KB de cache de mem oria L2 por n ucleo; barramento HyperTransport trabalhando a 800 MHz (3,2 GB/s); congura c ao de mem oria DDR2 dual channel; soquete S1; podem acessar at e 1 TB (terabyte) de mem oria RAM; suporte ` as instru c oes MMX, 3Dnow!, SSE e SSE2 e SSE3; tecnologia PowerNow!; tecnologia de Virtualiza c ao; tencnologia EVP (Enhanced V rus Protection); tecnologia de 90 nan ometros.

http://www.candidatoreal.com

80

http://www.candidatoreal.com

5.2.4

Opteron

O Opteron e o processador da AMD voltado para o mercado de servidores de rede. Ele e baseado na arquitetura do Athlon 64. Os principais concorrentes s ao o Intel Xeon e Intel Itanium. Existem duas diferen cas principais entre o Opteron e os outros processadores baseados na arquitetura do Athlon 64. Primeiro, v arios modelos de Opteron permitem o multiprocessamento sim etrico (SMP), ou seja, permitem trabalhar com mais de um processador na placa-m ae, enquanto que os outros processadores n ao. Os processadores Opteron s ao identicados atrav es de um numero de modeloe o primeiro d gito deste n umero indica qual e o grau de processamento sim etrico que o processador aceita: os modelos de Opteron come cando com 1n ao permitem multiprocessamento sim etrico, enquanto que os modelos come cando com 2permitem multiprocessamento sim etrico com at e 2 processadores e os modelos come cando com 8permitem multiprocessamento sim etrico com at e8 processadores. Processadores Opteron com suporte a mem orias DDR usam um n umero de modelo de tr es d gitos, enquanto que processadores Opteron com suporte a mem orias DDR2 usam um n umero de modelo de quatro d gitos. A segunda diferen ca principal e no n umero de barramentos HyperTransport suportados. Todos os processadores baseados na arquitetura do Athlon 64 e os processadores Opteron iniciados com 1t em apenas um barramento HyperTransport. Processadores Opteron iniciados com 2t em dois barramentos HyperTransport (ou tr es, no caso dos processadores Opteron de quatro d gitos), enquanto que processadores Opteron iniciados com 8t em tr es barramentos HyperTransport. Os processadores Opteron podem ser encontrados para v arios tipos de soquete: Soquete 939 Existem alguns modelos de Opteron da s erie 1 para este soquete. Eles n ao passam de modelos de Athlon 64 ou de Athlon 64 X2 (se tiver dois n ucleos) com outro nome. Estes modelos trabalham com mem orias DDR comuns; Soquete 940 Estes modelos necessitam mem orias DDR registradas(isto e, com buer), que e um tipo especialde mem oria para servidores; Soquete AM2 Existem alguns modelos de Opteron da s erie 1 para este soquete. Eles n ao passam de modelos de Athlon 64 X2 com outro nome (por em com a tecnologia de virtualiza ca o, n ao presente no Athlon 64 X2). Estes modelos trabalham com mem orias DDR2 comuns;

http://www.candidatoreal.com

81

http://www.candidatoreal.com

Soquete F Estes modelos trabalham com mem orias DDR2 registradas(isto e, com buer), que e um tipo especialde mem oria para servidores. Processadores Opteron que trabalham com mem orias DDR2 tamb em s ao chamados de Opteron de Segunda Gera c 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 caracter sticas t ecnicas do Opteron s ao as seguintes: suporte a multiprocessamento Sim etrico; 64 KB de cache de L1 de instru c 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); congura c ao de mem oria em dois canais (voc e precisa instalar dois ou um n umero par de m odulos de mem oria para usar este recurso); podem acessar at e 1 TB (terabyte) de mem oria RAM; suporte ` as instru c oes MMX, 3Dnow!, SSE e SSE2 (SSE3 apenas nos modelos mais novos); tencnologia EVP (Enhanced V rus Protection); tecnologia de virtualiza c ao AMD-V nos modelos de quatro d gitos. Os seguintes modelos de Opteron s ao encontrados: Opteron Modelos 1xx (DDR) (soquete 940); Opteron Modelos 2xx (DDR) (soquete 940); Opteron Modelos 8xx (DDR) (soquete 940); Opteron Modelos 1xxx (DDR2) (soquete AM2); Opteron Modelos 2xxx (DDR2) (soquete F); Opteron Modelos 8xxx (DDR2) (soquete F).

http://www.candidatoreal.com

82

http://www.candidatoreal.com

Parte II

L ogica de Programa c ao

http://www.candidatoreal.com

83

http://www.candidatoreal.com

Cap tulo 6

Orienta c ao a Objetos
6.1 Introdu c ao

A an alise e o projeto orientados a objetos t em como meta identicar 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 programa c ao orientada a objetos, implementa-se um conjunto de classes que denem os objetos presentes no sistema de software. Cada classe determina o comportamento (denido nos m etodos) e os estados poss veis (atributos) de seus objetos, assim como o relacionamento com outros objetos. As linguagens de programa c ao que d ao suporte a orienta c ao a objetos s ao: Smaltalk, Perl, Python, Ruby, PHP, ColdFusion, C++, Object Pascal, Java, JavaScript, ActionScript, Delphi e C#.

6.2

Conceitos fundamentais

http://www.candidatoreal.com

1. Objetos Os objetos do mundo real compartilham duas caracter sticas: possuem um estado e tem um comportamento. Por exemplo, cachorro tem um estado (nome, cor, ra ca) 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 abstra c ao do mundo real). Um objeto de software armazena seu estado em vari aveis e implementa seu comportamento com m etodos. Estas vari aveis e m etodos s ao formalmente chamados de vari aveis de inst ancia e m etodos de inst ancia a m de distingu -los de vari aveis e m etodos de classe. As vari aveis de um objeto fazem parte do seu n ucleo (centro). Os m etodos envolvem e escondem o n ucleo do objeto de outros componentes da aplica c ao, 1. Empacotar as vari aveis de um objeto sobre prote c ao de seus m etodos e chamado de encapsulamento. O encapsulamento e utilizado para esconder detalhes de implementa c ao pouco importante. Este e um dos princ pios fundamentais da programa c ao orientada a objetos.

84

http://www.candidatoreal.com

Figura 6.1: Representa c ao de um objeto ` vezes, por raz As oes de eci encia ou implementa c ao, um objeto deseja expor algumas de suas vari aveis ou esconder alguns de seus m etodos. Esta capacidade de controlar quais componentes podem acessar seus m etodos e suas vari aveis e chamada de Controle de Acesso. Cada objeto tem sua identidade que signica que dois objetos s ao distintos mesmo que eles apresentem exatamente as mesmas caracter sticas (atributos iguais). Esta identica c ao de objeto deve ser u nica, uniforme e independente do conte udo do objeto. A estrutura de dados de um objeto e representada em termos de atributos (tamb em chamados de campos (elds)), ou seja, os dados ou informa c oes do objeto. A 1 mostra um exemplo da representa c ao de objeto do mundo real para o objeto de software. Os atributos Raio, x e y s ao as vari aveis de inst ancia. Em Java, para declarar uma vari avel de classe basta acrescentar a palavra static. O mesmo vale para o m etodo.

http://www.candidatoreal.com

Figura 6.2: Representa c ao do objeto do mundo real para o objeto de software 2. M etodos uma rotina que E e executada por um objeto ao receber uma mensagem. Os m etodos determinam o comportamento dos objetos de uma classe e s ao an alogos ` as fun c oes ou procedimentos da programa c ao estruturada. O envio de mensagens (chamado de m etodos) pode alterar o estado de um objeto. 3. Atributos Os atributos s ao os elementos que denem a estrutura de uma classe. Os

85

http://www.candidatoreal.com

atributos tamb em 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 tamb em de atributos est aticos ou constantes. As mensagens enviadas a um objeto (chamada de m etodo) 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 deni as vari aveis (estado) e os m etodos (comportamento) comuns a todos os objetos do mesmo tipo. Na classe s ao denidas as vari aveis e implementados os m etodos. 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. Al em dos m etodos e atributos de uma classe, outros poss veis membros s ao: Construtor: dene o comportamento no momento da cria c ao de um objeto de uma classe; Destrutor: dene o comportamento no momento da destrui c ao do objeto de uma classe. Normalmente utilizado para liberar recurso (mem oria) do sistema; Propriedade: dene o acesso a um estado do objeto; Evento: dene um ponto em que o objeto pode chamar outros procedimentos de acordo com seu comportamento e estado interno; Obs.: Lembrar sempre que a classe dene as caracter sticas 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 m etodos (de B), o objeto A envia uma mensagem para o objeto B. Algumas vezes, o objeto que recebe a mensagem precisa de mais informa c oes para saber exatamente o que fazer. Por exemplo, quando voc e quer trocar as marchas de uma bicicleta, deve-se indicar qual a marcha desejada. Esta informa c ao acompanha a mensagem como um par ametro. Assim, tr es componentes fazem parte de uma mensagem:

http://www.candidatoreal.com

o objeto para onde a mensagem e endere cada (bicicleta); o nome do m etodo a realizar (mudar marcha); par ametro(s) necess arios para realizar o m etodo (segunda marcha); A mensagem, tamb em, pode ser direcionada diretamente a uma classe por meio da invoca c ao de um m etodo din amico. 6. Heran ca A heran ca e um mecanismo que permite criar novas classes a partir de classes j a existentes, aproveitando-se das caracter sticas existentes na classe a ser extendida. Com a heran ca e poss vel criar classes derivadas (subclasses) a partir de classes bases (superclasses).

86

http://www.candidatoreal.com

As subclasses herdam todas as caracter sticas de suas superclasses, como suas vari aveis (estado) e seus m etodos (comportamento). Entretanto, as subclasses n ao est ao limitadas ao comportamento herdado de sua superclasse. As subclasses podem adicionar vari aveis e m etodos a aqueles herdados. As subclasses, tamb em, podem redenir (override) m etodos herdados e oferecer implementa c oes especializadas para estes m etodos. O conceito de heran ca pode ser aplicado para mais de um n vel. A arvore de heran ca, ou hierarquia de classe, pode ser t ao profunda quanto necess ario. Os m etodos e vari aveis s ao herdados por meio dos n veis. Em geral, quanto mais baixa na hierarquia for a posi c ao da classe, mais espec co e o seu comportamento. Como benef cios do conceito de heran ca, podemos citar: Subclasses oferecem comportamentos especializados a partir de elementos b asicos comuns, oferecidos pela superclasse. A utiliza c ao do conceito de heran ca e muito interessante, pois promove um grande reuso e reaproveitamento de c odigo existente; Programadores podem denir classes abstratas que determinam comportamentos gen ericos. A superclasse abstrata dene e pode implementar parcialmente o comportamento de uma classe, mas a maioria das informa c oes da classe ca indenida ou n ao e implementada. A heran ca m ultipla ocorre quando uma classe pode estender caracter sticas 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 codica c ao confusa o que diculta a manuten c ao do c odigo. A linguagem Java n ao suporta heran ca m ultipla, apenas heran ca simples. J a a linguagem C++ oferece suporte ` a heran ca m ultipla. Uma linguagem ao utilizar heran ca m ultipla est a sujeita a dois problemas: colis ao de nomes (nomes id enticos nas classes superiores) e heran ca repetida (classe herda de uma classe superior que herda de uma classe comum); 7. Polimorsmo Segundo a terminologia de orienta c ao a objetos, polimorsmo signica 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 m etodos que t em a mesma assinatura (nome, lista de par ametros e retorno), mas comportamentos distintos, especializado para cada classe derivada, usando para tanto uma refer encia a um objeto do tipo superclasse. A decis ao sobre qual m etodo deve ser selecionado, de acordo com o tipo da classe derivada, e tomada em tempo de execu c ao por meio do mecanismo de liga c ao tardia. No caso do polimorsmo, e necess ario que os m etodos tenham exatamente a mesma identica c ao, sendo utilizado o mecanismo de redeni c ao de m etodos. A seguir um exemplo de polimorsmo.

http://www.candidatoreal.com

87

http://www.candidatoreal.com

public abstract class OperacaoMatematica { public abstract double calcular(double x, double y); } public class Soma extends OperacaoMatematica { public double calcular(double x, double y) { return x+y; } } public class Subtracao extends OperacaoMatematica { public double calcular(double x, double y) { return x-y; } } public class Contas { public static void mostrarCalculo(OperacaoMatematica operacao, double x, double y) { system.out.println("O resultado e: " + operacao.calcular(x, y); } public static void main( String args[] ) { //Primeiro calculamos uma soma Contas.mostrarCalculo(new Soma(), 5, 5); //Imprime o resultado e: 10 Contas.mostrarCalculo(new Subtracao(), 5, 5); //Imprime o resultado e: 0 } } Note que, embora o m etodo 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 benef cios do polimorsmo s ao: a clareza e manuten c ao do c odigo, a divis ao da complexidade e aplica c oes ex vies. Algumas linguagens promovem o polimorsmo 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 polimorsmo que permite a exist encia de v arios m etodos de mesmo nome, por em 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 m etodos a serem executados. Por exemplo: 88

http://www.candidatoreal.com

http://www.candidatoreal.com

public class Soma { public int Soma (int x, int y) { return x+y; } public String Soma { return x+y; } (String x, String y)

public double Soma (double x, double y) { return x+y; } } 9. Interfaces Uma interface e uma cole c ao de deni c oes de m etodos abstratos (sem im utilizada para os objetos interagirem entre si. A classe plementa c ao). E que implementa a interface deve implementar todos os m etodos denidos na interface. Uma interface, tamb em, pode incluir declara c oes de constantes. Apesar de uma classe abstrata implementar m etodos abstratos, n ao se pode confundir interface com classe abstrata. As classes abstratas n ao podem ser instanciadas, e estas s o s ao utilizadas como superclasses. Por exemplo, comida no mundo real. N ao existe uma inst ancia (objeto) do tipo comida. O que existe s ao inst ancias de cenouras, ma c as, bananas, etc. Comida representa o conceito abstrato e n ao e capaz de criar uma inst ancia pr opria. As classes abstratas podem possuir m etodos implementados. Em Java, para denir uma interface utiliza-se a palavra interface. Embora, uma classe n ao possa conter mais de uma superclasse, a classe pode implementar mais de uma interface. Por este motivo, muitas das vezes as interfaces s ao apresentadas como uma alternativa para heran ca m ultipla de classes. 10. Pacotes Para tornar as classes mais f aceis de serem encontradas e utilizadas, para evitar conitos de nomes e para controlar o acesso, pode-se agrupar classes relacionadas em pacotes (packages). Os pacotes organizam as classes e as interfaces relacionadas. Cada pacote criado corresponde a um diret orio, ou seja, as classes e as interfaces de um mesmo pacote devem estar em um mesmo diret orio. A utiliza c ao de pacotes proporciona as seguintes vantagens: Fica mais f acil para outros programadores determinar quais classes e interfaces est ao relacionadas; Os nomes das classes de um pacote n ao ir ao 89

http://www.candidatoreal.com

http://www.candidatoreal.com

conitar com nomes e classes de outros pacotes; Pode-se permitir que classes dentro de um mesmo pacote tenham acesso irrestrito entre si, e restringir o acesso por parte de classes denidas fora do pacote. Em Java, para criar um pacote coloca-se a palavra chave package no in cio do arquivo onde a classe ou interface e denida. Obs.: Apenas os membros (classe, vari aveis e m etodos) p ublicos s ao acess veis fora do pacote onde foram denidos. Obs.: Para uma linguagem ser considerada verdadeiramente orientada a objetos, a linguagem de programa c ao deve oferecer, no m nimo, as caracter sticas de: encapsulamento, heran ca e polimorsmo.

6.3

Princ pios de programa c ao orientada a objetos

Basicamente, os princ pios de programa c ao orientada a objetos s ao: Classes, objetos e inst ancias; Campos, m etodos e propriedades; Sobrecarga; Heran ca e classes hier arquicas; Polimorsmo; Interfaces.

6.4

Tratamento de exce c oes

http://www.candidatoreal.com

O termo exce c ao e usado para designar um evento que ocorre durante a execu c ao de um programa que desvia o uxo normal de instru c oes. Em outras palavras, uma exce c ao e uma condi c ao provocada por uma situa c ao excepcional que requer uma a c ao espec ca imediata. Muitos tipos de erros podem causar exce c oes: problemas que variam desde erros s erios de hardware, tal como uma falha no disco r gido, a erros simples de programa c ao, tal como tentar acessar um ndice inexistente de um vetor, divis ao por zero, um objeto n ao inicializado, etc. Erros causam exce c oes, mas podem existir exce c oes que n ao s ao erros. Por exemplo, numa fun c ao que l e dados de um arquivo, a chegada ao nal do arquivo e uma condi c ao excepcional que pode ser considerada como exce c ao. Linguagens como ADA, C++, JAVA e EIFFEL possuem mecanismos pr oprios de tratamento de exce c oes que facilitam a vida dos programadores tornando ainda o c odigo mais leg vel uma vez que separam o c odigo principal do c odigo de tratamento do erro. Quando uma exce c ao ocorre, ela necessita ser tratada. A unidade ou bloco de c odigo que manipula a exce c ao e denominada tratador de exce c ao e a a c ao de indicar a ocorr encia de exce c ao e transferir o controle para o tratador de exce c ao e denominada sinaliza c ao da exce c ao. Tratadores de exce c ao se comportam como procedimentos chamados implicitamente pela ocorr encia de uma exce c ao. Como tratadores de exce c ao n ao s ao chamados diretamente, eles n ao possuem nome. Em sua deni c ao costumam conter vari aveis locais e bloco de c odigo de tratamento. J a as exce c oes devem possuir nome bem denido para que possam ser identicadas. Caso o tratador que capturou a exce c ao n ao tenha conhecimento suciente para tratar a exce c ao ele pode lan car a exce c ao para um n vel superior (propaga c ao da exce c ao). Assim pode-se gerar uma cadeia de propaga c ao at e que um tratador capture a exce c ao ou at e atingir-se o n vel mais alto da hierarquia dos 90

http://www.candidatoreal.com

tratadores onde normalmente um tratador padr ao ser a executado na sa da do programa. Outra quest ao importante e o ponto de retorno ap os a execu c ao do bloco de c odigo do tratador. Isto depender a do modelo de continua c ao adotado pelo mecanismo de tratamento de exce c ao. Em geral, adota-se um dos seguintes modelos de continua c ao: Termina c ao: assume que o erro e cr tico e que n ao existem condi c oes de retornar ao ponto onde a exce c ao foi gerada, retornando o controle para o n vel superior. Nesta alternativa a unidade onde ocorreu a exce c ao e todas as unidades na pilha de chamada de subprogramas at e onde o tratador de exce c ao foi executado s ao encerradas, continuando-se a execu c ao do programa na unidade onde o tratador foi encontrado, ap os a regi ao de tratamento; Retomada: assume-se que o erro pode ser corrigido e a execu c ao pode retornar para o bloco onde ocorreu a exce c ao. Portanto, o retorno e feito para o bloco gerador do erro. Embora, em princ pio, essa solu c ao pare ca ser a mais apropriada, a experi encia tem mostrado que essa alternativa raramente e efetiva. Normalmente, as linguagens t em adotado o modelo de termina c ao. Em Java, a exce c ao e um tipo especial de objeto que e criado quando algo sai de errado em um programa. Ap os criar uma exce c ao, o ambiente de execu c ao envia este reobjeto ao seu programa, numa a c ao denominada levantar uma exce c ao. E sponsabilidade do programa capturar esta exce c ao. Para capturar uma exce c ao utilizam-se as cl ausulas try (blocos de c odigos protegidos) e catch (tratadores de exce c oes). Para passar para frente a exce c ao, utiliza-se a palavra trhows. As exce c oes em Java s ao inst ancias da classe Exception (superclasse) ou de suas herdeiras.

http://www.candidatoreal.com

91

http://www.candidatoreal.com

Parte III

Metodologia de Desenvolvimento

http://www.candidatoreal.com

92

http://www.candidatoreal.com

Cap tulo 7

Ciclo de Vida
Um modelo de ciclo de vida ou modelo de processo pode ser visto como uma representa c ao abstrata de um esqueleto de processo, incluindo tipicamente algumas atividades principais, a ordem de preced encia entre elas e, opcionalmente, artefatos requeridos e produzidos. De maneira geral, um modelo de processo descreve uma losoa de organiza c ao de atividades, estruturando as atividades do processo em fases e denindo como essas fases est ao relacionadas. Entretanto, ele n ao descreve um curso de a c oes preciso, recursos, procedimentos e restri c oes. Ou seja, ele e um importante ponto de partida para denir como o projeto deve ser conduzido, mas a sua ado c ao n ao e o suciente para guiar e controlar um projeto de software na pr atica. Ainda que os processos tenham de ser denidos 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 esbo cados, uma proposta de desenvolvimento deve ser elaborada, isto e, um plano de projeto deve ser elaborado congurando 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 nal de cada uma das fases do desenvolvimento (an alise e especica c ao de requisitos, projeto, implementa c 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 ger encia de projeto. An alise e Especica c ao de Requisitos Nesta fase, o processo de levantamento de requisitos e intensicado. O escopo deve ser renado e os requisitos mais bem denidos. Para entender a natureza do software a ser constru do, o engenheiro de software tem de compreender o dom nio 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 constru c ao de um modelo descrevendo o que o software tem de fazer (e n ao como faz e-lo).

http://www.candidatoreal.com

93

http://www.candidatoreal.com

Projeto Esta fase e respons avel por incorporar requisitos tecnol ogicos aos requisitos essenciais do sistema, modelados na fase anterior e, portanto, requer que a plataforma de implementa c ao seja conhecida. Basicamente, envolve duas grandes etapas: projeto da arquitetura do sistema e projeto detalhado. O objetivo da primeira etapa e denir a arquitetura geral do software, tendo por base o modelo constru do na fase de an alise de requisitos. Essa arquitetura deve descrever a estrutura de n vel mais alto da aplica c ao e identicar seus principais componentes. O prop osito do projeto detalhado e detalhar o projeto do software para cada componente identicado na etapa anterior. Os componentes de software devem ser sucessivamente renados em n veis maiores de detalhamento, at e que possam ser codicados e testados. Implementa c ao O projeto deve ser traduzido para uma forma pass vel de execu c ao pela m aquina. A fase de implementa c ao realiza esta tarefa, isto e, cada unidade de software do projeto detalhado e implementada. Testes inclui diversos n veis de testes, a saber, teste de unidade, teste de integra c ao e teste de sistema. Inicialmente, cada unidade de software implementada deve ser testada e os resultados documentados. A seguir, os diversos componentes devem ser integrados sucessivamente at e se obter o sistema. Finalmente, o sistema como um todo deve ser testado. Entrega e Implanta c ao uma vez testado, o software deve ser colocado em produ c ao. Para tal, contudo, e necess ario treinar os usu arios, congurar o ambiente de produ c ao e, muitas vezes, converter bases de dados. O prop osito desta fase e estabelecer que o software satisfaz os requisitos dos usu arios. Isto e feito instalando o software e conduzindo testes de aceita c ao. Quando o software tiver demonstrado prover as capacidades requeridas, ele pode ser aceito e a opera c ao iniciada. Opera c ao nesta fase, o software e utilizado pelos usu arios no ambiente de produ c ao. Manuten c ao Indubitavelmente, o software sofrer a mudan cas ap os ter sido entregue para o usu ario. Altera c oes ocorrer ao porque erros foram encontrados, porque o software precisa ser adaptado para acomodar mudan cas em seu ambiente externo, ou porque o cliente necessita de funcionalidade adicional ou aumento de desempenho. Muitas vezes, dependendo do tipo e porte da manuten c ao necess aria, essa fase pode requerer a deni c ao de um novo processo, onde cada uma das fases precedentes e re-aplicada no contexto de um software existente ao inv es de um novo. Os modelos de processo, de maneira geral, contemplam as fases An alise e Especica c ao de Requisitos, Projeto, Implementa c ao, Testes e Entrega e Implanta c ao. A escolha de um modelo de processo e fortemente dependente das caracter sticas do projeto. Assim, e importante conhecer alguns modelos de ciclo de vida e em que situa c oes s ao aplic aveis.

http://www.candidatoreal.com

94

http://www.candidatoreal.com

7.1

Modelo seq uencial linear

Algumas vezes chamado de ciclo de vida cl assico ou modelo em cascata, o modelo seq uencial linear requer uma abordagem sistem atica seq uencial para o desempenho do software. Abrange as seguintes atividades: Modelagem e engenharia do sistema. Estabelecimento de todos os requisitos do sistema, aloca c ao de algum desses requisitos para o software. An alise de requisitos de software. O processo de deni c ao de requisitos e intensicado e focalizado especicamente no software. Os requisitos do sistema do spftware s ao documentados e revistos com o cliente. Projeto. Traduz os requisitos para uma representa c ao do software, que pode ser avaliada quanto ` a qualidade, antes que a codica c ao tenha in cio. Enfoca quatro atributos distintos: estrutura de dados, arquitetura do software, representa c oes da interface e detalhes procedimentais (algoritmicos). Gera c ao de c odigo. O projeto e traduzido para linguagem de m aquina. Teste. S ao conduzidos para descobrir erros e garantir que entradas denidas produzir ao resultados reais, que concordam com os resultados exigidos. Manuten c ao. O software ir a inevitavelmente sofrer modica c oes. A manuten c ao reaplica cada uma das fases precedentes a um programa existente. O modelo seq uencial linear e o mais amplamente usado. Entre os problemas encontrados quando esse modelo e aplicado s ao: 1. Modica c oes podem causar confus ao ` a medida que o projeto prossegue, pois o modelo acomoda intera c ao apenas indiretamente. 2. Exige que o cliente estabele ca todos os requisitos explicitamente. 3. Uma vers ao execut avel do programa s o car a dispon vel quando o projeto terminar.

7.2

Modelo em V

http://www.candidatoreal.com

O modelo em V e uma varia c ao do modelo em cascata que procura enfatizar a estreita rela c ao entre as atividades de teste (teste de unidade, teste de integra c ao, teste de sistema e teste de aceita c ao) e as demais fases do processo, como mostra a gura 7.1. O modelo em V sugere que os testes de unidade s ao utilizados basicamente para vericar a implementa ca o e o projeto detalhado. Uma vez que os testes de integra c ao est ao focados na integra c ao das unidades que comp oem o software, eles tamb em s ao usados para avaliar o projeto detalhado. Assim, testes de unidade e integra c ao devem garantir que todos os aspectos do projeto do sistema foram implementados corretamente no c odigo. Quando os testes de integra c ao atingem o n vel do sistema como um todo (teste de sistema), o projeto da arquitetura passa a ser o foco. Neste momento, busca-se vericar se o sistema atende aos requisitos denidos na especica c ao. Finalmente, os testes de aceita c ao, conduzidos tipicamente pelos usu arios e clientes, valida os requisitos, 95

http://www.candidatoreal.com

conrmando que os requisitos corretos foram implementados no sistema (teste de valida c ao). A conex ao entre os lados direito e esquerdo do modelo em V implica que, caso sejam encontrados problemas em uma atividade de teste, a correspondente fase do lado esquerdo e suas fases subseq uentes podem ter de ser executadas novamente para corrigir ou melhorar esses problemas.

Figura 7.1: O modelo em V Os modelos seq uenciais pressup oem que o sistema e entregue completo, ap os a realiza c ao de todas as atividades do desenvolvimento. Entretanto, nos dias de hoje, os clientes n ao est ao mais dispostos a esperar o tempo necess ario para tal, sobretudo, quando se trata de grandes sistemas. Dependendo do porte do sistema, podem se passar anos at e que o sistema que pronto, sendo invi avel esperar. Assim, outros modelos foram propostos visando a, dentre outros, reduzir o tempo de desenvolvimento. A entrega por partes, possibilitando ao usu ario dispor de algumas funcionalidades do sistema enquanto outras est ao sendo ainda desenvolvidas, e um dos principais mecanismos utilizados por esses modelos, como veremos a seguir.

7.3

Modelo de prototipagem

http://www.candidatoreal.com

O paradigma de prototipagem come ca com a deni c ao dos requisitos. Um projeto r apido e realizado e concentra-se na representa c ao daqueles aspectos que car ao vis veis pelo cliente. O prot otipo e criado e avaliado e e ajustado para satisfazer as necessidades do cliente. Idealmente, o prot otipo serve como um mecanismo para identica c ao dos requisitos do software. A prototipagem pode ser problem atica, pois o cliente v e o que parece ser uma vers ao execut avel do software, ignorando que o prot otipo apenas consegue funcionar precariamente.

7.4

Modelo RAD

O desenvolvimento r apido de aplica ca 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 uxo de informa c ao entre as fun c oes do neg ocio e modelado. Modelagem dos dados. O uxo de informa c ao e renado num conjunto de objetos de dados. Modelagem do processo. Os objetos de dados s ao tranformados para conseguir o uxo de informa c ao necess ario para implementar uma fun c ao do neg ocio. Descri c oes do processamento s ao criadas. Gera c ao da aplica c ao. O RAD considera o uso de t ecnicas de quarta gera c 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 aplica c ao s ao apropriados para o RAD. 3. Quando riscos t ecnicos s ao elevados o RAD n ao e adequado.

7.5
7.5.1

Modelos de processo de software evolucion arios


Modelo incremental

http://www.candidatoreal.com

Este modelo e uma extens ao do modelo espiral sendo por em mais formal e rigoroso. O desenvolvimento de um produto comercial de software e uma grande tarefa que pode ser estendida por v arios meses, possivelmente um ano ou mais. Por isso, e mais pr atico dividir o trabalho em partes menores ou itera c oes. Cada itera c ao resultar a num incremento. Itera c oes s ao passos em uxo de trabalho e incrementos s ao crescimentos do produto. O princ pio subjacente ao processo incremental e iterativo e que a equipe envolvida possa renar e alargar paulatinamente a qualidade, detalhe e ambito do sistema envolvido. Por exemplo, numa primeira itera c ao deve-se identicar a vis ao global e determinar a viabilidade econ omica do sistema, efetuar a maior parte da an alise e um pouco de desenho e implementa c ao. Numa segunda gera c ao, deve-se concluir a an alise, fazer uma parte signicativa do desenho e um pouco mais de implementa c ao. Numa terceira itera c ao, deve-se concluir o desenho, fazer-se parte substancial da implementa c ao, testar e integrar um pouco, etc. Ou seja, a principal consequ encia da aproxima c ao iterativa e que os produtos nais de todo o processo v ao sendo amadurecidos e completados ao longo do tempo, mas cada itera c ao produz sempre um conjunto de produtos nais. A cada itera c ao s ao realizadas as seguintes tarefas: An alise. Renamento de requisitos, renamento do modelo conceitual. Projeto. Renamento do projeto arquitetural, projeto de baixo n vel. 97

http://www.candidatoreal.com

Implementa c ao. Codica c ao e testes. Transi c ao para produto. Ddocumenta c ao, instala c ao, . . .. Vantagens do processo incremental e iterativo: Possibilidade de avaliar mais cedo os riscos e pontos cr ticos do projeto, e identicar medidas para os eliminar ou controlar. Redu c ao dos riscos envolvendo custos a um u nico incremento. Se a equipe que desenvolve o software precisar repetir a itera c ao, a organiza c ao perde somente o esfor co mal direcionado de uma itera c ao, n ao o valor de um produto inteiro. Deni c ao de uma arquitetura que melhor possa orientar todo o desenvolvimento. Disponibiliza c ao natural de um conjunto de regras para melhor controlar os inevit aveis pedidos de altera c oes futuras. Permite que os v arios intervenientes possam trabalhar mais efetivamente pela intera c ao e partilha de comunica c ao da resultante.

7.5.2

Modelo espiral

O modelo original em espiral organiza o desenvolvimento como um processo iterativo em que v arios conjuntos de fases se sucedem at e se obter o sistema nal. Um ciclo se inicia com a determina c ao de objetivos, alternativas e restri c oes (primeira tarefa) onde ocorre o comprometimento dos envolvidos e o estabelecimento de uma estrat egia para alcan car os objetivos. Na segunda tarefa, an alise e avalia c ao de alternativas, identica c ao e solu c ao de riscos, executa-se uma an alise de risco. Prototipa c ao e uma boa ferramenta para tratar riscos. Se o risco for considerado inaceit avel, pode parar o projeto. Na terceira tarefa ocorre o desenvolvimento do produto. Neste quadrante pode-se considerar o modelo cascata. Na quarta tarefa o produto e avaliado e se prepara para iniciar um novo ciclo. Varia c oes do modelo espiral consideram entre tr es e seis tarefas ou setores da espiral, que podem ser: comunica c ao com o cliente; planejamento;

http://www.candidatoreal.com

an alise de risco; engenharia; constru c ao e libera c ao; avalia c ao do cliente. O modelo espiral e, atualmente a abordagem mais real stica para desenvolvimento de software em grande escala, e usa uma abordagem que capacita a empresa que presta o servi co, e o cliente a entender e reagir aos riscos em cada etapa evolutiva. Este tipo de modelo exige consider avel experi encia na determina c ao de riscos e depende dessa experi encia para ter sucesso. 98

http://www.candidatoreal.com

Vantagens deste modelo: O modelo em espiral permite que ao longo de cada itera c ao se obtenham vers oes do sistema cada vez mais completas, recorrendo ` a prototipagem para reduzir os riscos. Este tipo de modelo permite a abordagem do renamento seguido pelo modelo em cascata, mas que incorpora um enquadramento iterativo que reete, de uma forma bastante real stica, o processo de desenvolvimento. Desvantagens: Pode ser dif cil convencer grandes clientes (particularmente em situa c oes de contrato) de que a abordagem evolutiva e control avel. A abordagem deste tipo de modelo exige consider avel experi encia na avalia c ao dos riscos e baseia-se nessa experi encia para o sucesso. Se um grande risco n ao for descoberto, poder ao ocorrer problemas. Este tipo de modelo e relativamente novo e n ao tem sido amplamente usado. importante ter em conta que podem existir diferen E cas entre o prot otipo e o sistema nal. O prot otipo pode n ao cumprir os requisitos de desempenho, pode ser incompleto, e pode reetir somente alguns aspectos do sistema a ser desenvolvido. O modelo em espiral pode levar ao desenvolvimento em paralelo de m ultiplas partes do projeto, cada uma sendo abordada de modo diferenciado, por isso e necess ario o uso de t ecnicas espec cas para estimar e sincronizar cronogramas, bem como para determinar os indicadores de custo e progresso mais adequados.

7.5.3

Modelo espiral ganha-ganha

http://www.candidatoreal.com

As melhores noegocia c 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 or camentos e prazos de entrega real sticos e poss veis de serem cumpridos. O modelo espiral ganha-ganha dene um conjunto de atividades de negocia c ao no come co de cada passagem, em torno da espiral. Ao inv es de uma u nica atividade de comunica c ao com o cliente,as seguintes atividades s ao denidas: 1. Identica c ao dos principais interessados do sistema ou do subsistema. 2. Determina c ao das condi c oes de lucro do interessado. 3. Negocia c ao das condi c oes de ganho do interessado para reconcili a-las no ambito das condi c oes ganha-ganha para todos os envolvidos. Al em da enfase na negocia c ao inicial, o modelo espiral ganha-ganha introduz tr es marcos de processo, chamados pontos de ancoragem, que ajudam a estabelecer quendo um ciclo e completado em torno da espiral e fornecem marcos de decis ao antes do projeto de software presseguir. Esses pontos de ancoragem s ao: 99

http://www.candidatoreal.com

Objetivos de ciclo de vida (life cycle objectives, LCO). Dene 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 denida. Capacidade operacional inicial (initial operational capability, IOC). Representa um conjunto de objetivos associado com a prepara c ao do software para instala c ao e distribui c ao.

7.5.4

Modelo de desenvolvimento concorrente

O modelo de desenvolvimento concorrente e representado como uma s erie de grandes atividades t ecnicas, tarefas e seus estados associados. Ele dene uma s erie de eventos que podem disparar transi c oes de um estado para outro, para freq cada uma das atividades da engenharia de software. E uentemente usado como um paradigma para o desenvolvimento de aplica c oes Cliente/Servidor. Pode ser aplicado a todo tipo de desenvolvimento de software e fornece uma vis ao exata de como est a o estado do projeto.

7.6

Desenvolvimento baseado em componentes

O desenvolvimento baseado em componentes incorpora caracter sticas de tecnologias orientadas a objetos no modelo espiral. A atividade de engenharia come ca com a identica c 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 orienta c ao a objetos.

7.7

Modelo de m etodos formais

O modelo de m etodos formais compreende um conjunto de atividades que determinam uma especica c ao matem atica para o software. Uma variante dessa abordagem e denominada engenharia de software cleanroon (Sala Simpa). Utilizando m etodos formais eliminam-se muitos problemas encontrados nos outros modelos, como p.ex., ambig uidade, incompletitude e inconsist encia, que podem ser corrigidas mais facilmente de forma n ao ad hoc, mas atrav es de an alise matem atica.

http://www.candidatoreal.com

7.8

T ecnicas de quarta gera c ao

As t ecnicas de quarta gera c ao concentram-se na capacidade de se especicar o software a uma m aquina em um n vel que esteja pr oximo ` a linguagem natural. Engloba um conjunto de ferramentas de software que possibilitam que: O sistema seja especicado em uma linguagem de alto n vel. O c odigo fonte seja gerado automaticamente a partir dessas especica c oes. Atividades das t ecnicas de quarta gera c ao englobam: 100

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 especicar as informa c oes de um modo que uma ferramenta 4GL possa realizar. As 4GLs atuais n ao s ao sosticadas sucientemente para acomodar a verdadeira linguagem natural. Estrat egia de projeto. : Para pequenas aplica c oes e poss vel mover-se do passo de obten c ao dos requisitos para o passo de implementa c ao usando uma Linguagem de 4G. Para grandes projetos e necess ario desenvolver uma estrat egia 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 gera c ao autom atica de c odigo. Deve existir uma estrutura de dados com informa co es relevantes e que seja acess vel pela 4GL . Teste. O desenvolvedor deve efetuar testes e desenvolver uma documenta c ao signicativa. O software desenvolvido deve ser constru do de maneira que a manuten c ao possa ser efetuada prontamente.

http://www.candidatoreal.com

101

http://www.candidatoreal.com

Cap tulo 8

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 organiza c ao (decomposi c ao e preced encia de atividades), incluindo a deni c ao de um modelo de ciclo de vida; os artefatos requeridos e produzidos por cada uma das atividades do processo; os procedimentos (m etodos, t ecnicas e normas) a serem adotados na realiza c ao das atividades; os recursos necess arios para a realiza c ao das atividades, dentre eles recursos humanos, recursos de hardware e recursos de software, incluindo as ferramentas a serem utilizadas para apoiar a aplica c ao dos procedimentos na realiza c ao das atividades; e roteiros para a elabora c 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, implementa c ao, testes, implanta c ao, opera c ao e manuten c ao. Uma vez que o software e sempre parte de um sistema (ou neg ocio) maior, o trabalho come ca pelo estabelecimento dos requisitos para todos os elementos do sistema e, na seq u encia, procede-se a aloca c ao para software de algum subconjunto destes requisitos. Esta etapa e a Engenharia de Sistemas e antecede a todas as demais relacionadas.

http://www.candidatoreal.com

8.1

RUP - Rational Unied Process

O Processo Unicado proposto pela Rational (Rational Unied Process RUP) foi criado para apoiar o desenvolvimento orientado a objetos, fornecendo uma forma sistem atica para se obter reais vantagens no uso da Linguagem de Modelagem Unicada (Unied Modeling Language UML). De fato, ele n ao e exatamente um processo: e uma infraestrutura gen erica de processo que pode ser

102

http://www.candidatoreal.com

especializada para uma ampla classe de sistemas de software, para diferentes areas de aplica c ao, tipos de organiza c ao, n veis de compet encia e tamanhos de projetos. O RUP est a fundamentado em tr es princ pios b asicos: orienta c ao a casos de uso, arquitetura e itera c ao. Ele e dito dirigido a casos de uso, pois s ao os casos de uso que orientam todo o processo de desenvolvimento. Com base no modelo de casos de uso, s ao criados uma s erie de modelos de an alise, projeto centrado em arquitetura, e implementa c ao, que realizam estes casos de uso. E pois defende a deni c ao de um esqueleto para a aplica c ao (a arquitetura), a ganhar corpo gradualmente ao longo do desenvolvimento. Finalmente, o RUP e iterativo e incremental, oferecendo uma abordagem para particionar o trabalho em por c oes menores ou mini-projetos. Esses tr es conceitos s ao igualmente importantes. A arquitetura prov e a estrutura para guiar o desenvolvimento do sistema em itera c oes, enquanto os casos de uso denem as metas e conduzem o trabalho de cada itera c ao. O ciclo de vida adotado no RUP e tipicamente evolutivo. Contudo, uma forma de organiza c ao em fases e adotada para comportar os ciclos de desenvolvimento, permitindo uma ger encia mais efetiva de projetos complexos. Ao contr ario do tradicionalmente denido como fases na maioria dos modelos de ciclo de vida planejamento, levantamento de requisitos, an alise, projeto, implementa c ao e testes, s ao denidas fases ortogonais a estas, a saber: 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 t ermino 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 renadamente o dom nio do problema, estabelecer uma arquitetura de funda c ao s olida, desenvolver um plano de projeto para o sistema a ser constru do e eliminar os elementos de projeto que oferecem maior risco. Embora o processo deva sempre acomodar altera c oes, as atividades da fase de elabora c ao asseguram que os requisitos, a arquitetura e os planos est ao sucientemente est aveis e que os riscos est ao sucientemente 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 transi c 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 considera c oes que v ao demandar a constru c ao de novas vers oes para permitir ajustes do sistema, corrigir problemas ou concluir algumas caracter sticas que foram postergadas.

http://www.candidatoreal.com

103

http://www.candidatoreal.com

importante real E car que dentro de cada fase, um conjunto de itera c oes, envolvendo planejamento, levantamento de requisitos, an alise, projeto e implementa c ao e testes, e realizado. Contudo, de uma itera c ao para outra e de uma fase para a pr oxima, a enfase sobre as v arias atividades muda, como mostra a gura 8.1, em que a cor preta indica grande enfase, enquanto a cor branca indica muito pouca enfase. Na fase de concep c ao, o foco principal recai sobre o entendimento dos requisitos e a determina c ao do escopo do projeto (planejamento e levantamento de requisitos). Na fase de elabora c ao, o enfoque est a na captura e modelagem dos requisitos (levantamento de requisitos e an alise), ainda que algum trabalho de projeto e implementa c ao seja realizado para prototipar a arquitetura, evitando certos riscos t ecnicos. Na fase de constru c ao, o enfoque concentra-se no projeto e na implementa c ao, visando evoluir e rechear o prot otipo inicial, at e obter o primeiro produto operacional. Finalmente, a fase de transi c ao concentra-se nos testes, visando garantir que o sistema possui o n vel adequado de qualidade. Al em disso, usu arios devem ser treinados, caracter sticas ajustadas e elementos esquecidos adicionados.

Figura 8.1: A enfase principal de cada uma das fases Al em dos conjuntos de itera c oes em cada fase, as fases em si podem ocorrer de forma iterativa. Como mostra a gura 8.2, elas n ao necessariamente t em a mesma dura c ao. O esfor co realizado em cada uma varia fortemente em fun c ao das circunst ancias espec cas do projeto.

http://www.candidatoreal.com

Figura 8.2: O modelo de ciclo de vida proposto no RUP

104

http://www.candidatoreal.com

8.2

XP - Extreme Programming

A metodologia XP (Extreme Programming ) e destinada a grupos pequenos de desenvolvimento, e em projetos de dura c ao de at e 36 meses. Os principais papeis nesta metodologia s ao: Programador - foco da metodologia; Coach - respons avel por quest oes t ecnicas do projeto, maior conhecimento do processo,valores e pr aticas XP. Verica o comportamento da equipe; Tracker - Coletar sinais vitais do projeto uma ou 2 vezes por semana e mantem todos informados; Gerente - respons avel pelos assuntos administrativos,mantem um forte relacionamento com o cliente. Entre as principais caracteristicas da metodologia XP est ao: (i) Met aforas - Utiliza c ao de compara oes e analogias para facilitar entendimento; (ii)Design Simples do Sistema ; (iii)Testes Automatizados - Testes de Unidade e de Aceita c ao; (iv)Refactoring - Todo desenvolvedor tem o dever de melhorar um c odigo que esteja funcionado por em mal escrito; (v)Programa ca o de Dupla - Todo c odigo deve ser implementado em dupla; (vi)Propriedade Coletiva do C odigo ; (vii)Semana de 40 horas - Evitar trabalhar a mais. Incialmente se obtem resultados, mas depois h a o desgaste; (viii)Integra c ao cont nua - Eliminar erros graves de integra c ao; (ix)Releases Curtos - Release e um conjunto de funcionalidade bem denidas e que representam algum valor para o cliente. Um projeto XP pode ter um ou mais releases no seu ciclo; (x)Story Cards - Cartoes escritos pelos usu arios onde s ao descritas funcionalidades do sistema; (xi)CRC - Linguagem para Modelagem de Classes do XP. Utiliza os story cards.

8.3

Scrum

http://www.candidatoreal.com

Scrum e um processo para construir software incrementalmente em ambientes complexos, onde os requisitos n ao s ao claros ou mudam com muita freq u encia. Em Rugby, Scrum e um time de oito integrantes que trabalham em conjunto para levar a bola adiante no campo. Ou seja: times trabalhando como uma unidade altamente integrada com cada membro desempenhando um papel bem denido e o time inteiro focando num u nico objetivo. O objetivo do Scrum e fornecer um processo conveniente para projetos e desenvolvimento orientado a objetos. A metodologia e baseada em princ pios semelhantes aos de XP: equipes pequenas, requisitos pouco est aveis ou desconhecidos, e itera c oes curtas para promover visibilidade para o desenvolvimento. No entanto, as dimens oes em Scrum diferem de XP. Scrum divide o desenvolvimento em sprints de 30 dias. Equipes pequenas, de at e 7 pessoas, s ao formadas por projetistas, programadores, engenheiros e gerentes de qualidade. Estas equipes trabalham em cima de funcionalidade (os requisitos, em outras palavras) denidas no in cio de cada sprint. A equipe toda e respons avel pelo desenvolvimento desta funcionalidade. Todo dia, e feita uma reuni ao de 15 minutos onde o time exp oes ` a ger encia o que ser a feito no pr oximo dia, e nestas reuni oes os gerentes podem levantar os fatores de impedimento, e o progresso geral do desenvolvimento. Scrum e interessante porque fornece um mecanismo de informa c ao de status que e atualizado continuamente, e porque utiliza a divis ao de tarefas dentro da equipe de forma explicita. Scrum e XP s ao complementares pois Scrum

105

http://www.candidatoreal.com

prov e pr aticas ageis de gerenciamento enquanto XP prov e pr aticas integradas de engenharia de software.

8.4

Crystal

Crystal/Clear faz parte, na realidade, de um conjunto de metodologias criado por Cockburn. As premissas apresentadas para a exist encia deste conjunto s ao: Todo projeto tem necessidades, conven c oes e uma metodologia diferentes. O funcionamento do projeto e inuenciado por fatores humanos, e h a melhora neste quando os indiv duos produzem melhor. Comunica c ao melhor e lan camentos freq uentes reduzem a necessidade de construir produtos intermedi arios do processo. Crystal/Clear e uma metodologia direcionada a projetos pequenos, com equipes de at e 6 desenvolvedores. Assim como com SCRUM, os membros da equipe tem especialidades distintas. Existe uma forte enfase na comunica c ao entre os membros do grupo. Existem outras metodologias Crystal para grupos maiores. Toda a especica c ao e projeto s ao feitos informalmente, utilizando quadros publicamente vis veis. Os requisitos s ao elaborados utilizando casos de uso, um conceito similar ` as est orias de usu ario em XP, onde s ao enunciados os requisitos como tarefas e um processo para sua execu c ao. As entregas das novas vers oes de software s ao feitos em incrementos regulares de um m es, e existem alguns subprodutos do processo que s ao responsabilidade de membros espec cos do projeto. Grande parte da metodologia e pouco denida, e segundo o autor, isto e proposital; a id eia de Crystal/Clear e permitir que cada organiza c ao implemente as atividades que lhe parecem adequadas, fornecendo um m nimo de suporte u til do ponto de vista de comunica c ao e documentos.

8.5

Feature Driven Development (FDD)

M etodo agil e adaptativo Foco nas fases de desenho e constru c ao.

http://www.candidatoreal.com

Interage com outras metodologias. N ao exige nenhum processo espec co de modelagem. Possui desenvolvimento iterativo. Enfatiza aspectos de qualidade durante o processo e inclui entregas freq uentes e tang veis. Suporta desenvolvimento agil com r apidas adapta c oes ` as mudan cas de requisitos e necessidades do mercado. O FDD consiste de 5 processos principais: 106

http://www.candidatoreal.com

Desenvolver um modelo compreens vel (Develop an overall model). Construir uma lista de funcionalidades (Build a features list). Planejar por funcionalidade (Plan By Feature). Projetar por funcionalidade (Design by feature). Construir por funcionalidade (Build by feature).

8.6

Dynamic Systems Development Method (DSDM)

um arcabou Progenitor do XP. E co para desenvolvimento r apido de aplica c oes (RAD). Fixa tempo e recursos ajustando a quantia de funcionalidades. Funciona com pequenas equipes. Suporta mudan cas nos requisitos durante o ciclo de vida. Consiste em cinco fases: Estudo das possibilidades (Feasibility study). Estudo dos neg ocios (Business study). Itera c ao do modelo funcional (Functional model iteration). Itera c ao de projeto e constru c ao (Design and build iteration). Implementa c ao nal (Final implementation). Pr aticas: Usu ario sempre envolvido. Equipe do DSDM autorizada a tomar decis oes. Foco na frequente entrega de produtos. Adapta c ao ao neg ocio e o crit erio para entregas. Construa o produto certo antes de voc e constru -lo corretamente. Desenvolvimento iterativo e incremental. Mudan cas s ao revers veis utilizando pequenas itera c oes.

http://www.candidatoreal.com

Requisitos s ao acompanhados em alto n vel. Testes integrados ao ciclo de vida.

8.7

Adaptive Software Development (ASD)

iterativo e incremental. Funciona bem em sistemas grandes e complexos. E E uma Arcabou co para evitar o caos. O cliente deve estar sempre presente. E metodologia voltada para o desenvolvimento de aplica c oes em conjunto (Joint Application development - JAD). Possui tr es ciclos de fase:

107

http://www.candidatoreal.com

Especular (Speculate). Fixa prazos e objetivos e dene um plano baseado em componentes. Colaborar (Collaborate). Constru c ao concorrente de v arios componentes. Aprender (Learn). Repetitivas revis oes de qualidade e foco na demostran c ao das funcionalidades desenvolvidas (Learning loop). H a presen ca do cliente e de especialistas do dom nio. orientado a miss Os ciclos duram de 4 a 8 semanas. E oes (Mission-driven), pois atividades s ao justicadas atrav es de uma miss ao, que pode mudar ao longo baseado em componentes e interativo. Os prazos s do projeto. E ao pr e-xados (time-boxed), pois for ca os participantes do projeto a denir severamente decis oes do projeto. Uma propriedade interessante e a toler ancia a mudan cas (Change-tolerant). As mudan cas s ao freq uentes, ent ao e sempre melhor estar pronto a adapt a-las do que control a-las. Isso e feito atrav es de constante avalia c ao de quais componentes podem mudar.

http://www.candidatoreal.com

108

http://www.candidatoreal.com

Cap tulo 9

Engenharia de Requisitos
9.1 O Processo de Engenharia de Requisitos

As descri c oes das fun c oes que um sistema deve incorporar e das restri c oes que devem ser satisfeitas s ao os requisitos para o sistema. Isto e, os requisitos de um sistema denem o que o sistema deve fazer e as circunst ancias sob as quais deve operar. Em outras palavras, os requisitos denem os servi cos que o sistema deve fornecer e disp oem sobre as restri c oes ` a opera c ao do mesmo. Requisitos s ao, normalmente, classicados em requisitos funcionais e n ao funcionais. Requisitos funcionais, como o pr oprio nome indica, apontam as fun c oes que o sistema deve fornecer e como o sistema deve se comportar em determinadas situa c oes. J a os requisitos n ao funcionais descrevem restri c oes sobre as fun c oes oferecidas, tais como restri c 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 espec ca. Dependendo da natureza, os requisitos n ao funcionais podem ser classicados 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 organiza c 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 dom nio s ao identicados e trabalham junto com os engenheiros de requisitos para descobrir, articular e entender a organiza c ao como um todo, o dom nio da aplica c ao, os processos de neg ocio espec cos, as necessidades que o software deve atender e os problemas e deci encias 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 constru dos. 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

http://www.candidatoreal.com

Verica c ao e Valida c ao de Requisitos A verica c ao de requisitos avalia se o documento de Especica c ao de Requisitos est a sendo constru do de forma correta, de acordo com padr oes previamente denidos, sem conter requisitos amb guos, incompletos ou, ainda, requisitos incoerentes ou imposs veis de serem testados. J a a valida c 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 mudan cas nos requisitos j a acordados, manter uma trilha dessas mudan cas, gerenciar os relacionamentos entre os requisitos e as depend encias entre o documento de requisitos e os demais artefatos produzidos no processo de software, de forma a garantir que mudan cas nos requisitos sejam feitas de maneira controlada e documentada.

9.2
9.2.1

T ecnicas de Levantamento de Requisitos


Observa c ao

A observa c ao possibilita um contato pessoal e estreito do pesquisador com o fen omeno pesquisado, o que apresenta uma s erie de vantagens. As t ecnicas de observa c ao s ao extremamente u teis para descobriraspectos novos de um problema. Isto se torna crucial nas situa c 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 situa c ao pesquisada apresenta as vantagens mencionadas, envolve tamb em uma s erie de problemas. Algumas cr ticas s ao feitas ao m etodo de observa ca o, primeiramente por provocar altera c oes no ambiente ou no comportamento das pessoas observadas. Outra cr tica e a de que este m etodo se baseia muito na interpreta c ao pessoal. Al em 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 representa c ao parcial da realidade.

9.2.2

Entrevista

http://www.candidatoreal.com

Entrevista e uma t ecnica de elicita c ao de requisitos muito usada. O engenheiro de requisitos ou analista discute o sistema com diferentes usu arios , a partir da qual elabora um entendimento de seus requisitos. H a, basicamente, 2 tipos de entrevista: a) entrevistas fechadas onde o engenheiro de requisitos procura as perguntas para um conjunto um pr e-denido de quest oes; b) entrevistas abertas onde n ao h a agenda pr edenida e o engenheiro de requisitos discute, de modo aberto, o que os usu arios querem do sistema. Entrevistas podem ser efetivas para desenvolver um entendimento do problema e para elicitar muitos requisitos gerais do sistema. Usu arios nais s ao usualmente felizes para descreverem seus trabalhos e as diculdades que eles enfrentam de forma relativamente natural, entretanto eles podem ter expectativas n ao realistas sobre o suporte que o computador dar a. Portanto, entrevistas s ao muito menos efetivas para entendimento do dom nio da aplica c ao e para o entendimento das quest oes organizacionais as quais afetam os requisitos.

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 verbaliza c ao direta do processo cognitivo espec co. A an alise de protocolo n ao e um guia con avel sobre o que as pessoas est ao pensando, ela est a sujeita a problemas de interpreta c oes pelos analistas. A restri c ao em estudar protocolos e que as pessoas podem produzir linguagens que oferece um perl de atividade cognitiva aut onoma. Segundo (Goguen, 1997), mesmo se fosse poss vel conseguir um perl 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 pr e-existente do sistema desejado. Os clientes t em conhecimento sobre neg ocios e necessidades organizacionais, enquanto o time de requisitos tem conhecimento sobre as possibilidade t ecnicas.

9.2.4

JAD

JAD e uma marca registrada da IBM. O tema principal do JAD e colocar autoridades representativas e gerenciais juntas dentro de um workshop estruturado para promover decis oes. Segundo (Damian, 1997) JAD consiste de 5 fases: deni c ao do projeto, pesquisa, prepara c ao para a sess ao JAD, a sess ao JAD, o documento nal. As fases de deni c ao de projeto e pesquisa no processo JAD lidam com a coleta de informa c oes. A sess ao JAD e ent ao usada para validar as informa c oes recolhidas nas fases anteriores. O processo JAD concentrase na sess ao JAD, e deste modo JAD contribui para a elicita c ao de requisitos como signicado para validar as informa c oes j a colhidas. Na sess ao JAD, as pessoas certas t em que estar envolvidas, e a presen ca de um facilitador pode ajudar a manter a sess ao focalizada e minimizar ataques e defesas emocionais improdutivas. JAD promove coopera c ao, entendimento, e trabalho em grupo entre os v arios grupos de usu arios e o pessoal de sistemas de informa c ao.

9.2.5

PD

http://www.candidatoreal.com

Tradicionalmente valores democr aticos, os quais tem sido levados em conta no processo de projeto, tem sido somente aqueles concentrados em fatores t ecnicos e econ omicos. Mas com o uso do PD fatores t ecnicos-sociais tem sido levados em conta. O projeto deveria ser feito com o usu ario. Aprendizado m utuo deveria ser uma parte importante do trabalho em um grupo de projeto, n ao sendo meramente uma visita aos laborat orios de pesquisa. Trabalhadores e clientes s ao inteligentes e criativos, contribuidores produtivos para as organiza c oes, desde que sejam encorajados a expressarem seus desejos, aplicarem sua esperteza e exercitarem suas capacidades de tomar decis oes, assumindo responsabilidades do impacto de suas a c oes.

9.2.6

QFD

O termo qualidade e denido como um conjunto de meios para produzir economicamente produtos ou servi cos, os quais satisfa cam os requisitos do cliente. QFD e um conceito que prov e meios de interpretar requisitos do cliente em requisitos t ecnicos, apropriados para cada est agio do desenvolvimento e produ c ao 111

http://www.candidatoreal.com

do produto(Damian, 1997). As fases iniciais do QFD podem ser descritas como sendo simplesmente um sistema de identica c ao e prioriza c ao das necessidades do cliente obtidas de cada recurso avaliado. QFD e um conceito que aplica-se bem para a elicita c ao de requisitos, especialmente num modelo de elicita c ao onde a voz do cliente e o guia para a cria c ao de requisitos.

9.2.7

CRC

Como denido em (Zhu, 1998), CRC e uma sess ao de grupo, que e similar ao JAD, onde os pap eis dos participantes e o papel do facilitador s ao claramente denidos. Em CRC, participantes consistem n ao somente de usu arios e facilitador, mas tamb em de outras pessoas envolvidas indiretamente no sistema. CRC e diferente de JAD e QFD pois ele foca-se no usu ario operativo.

9.2.8

Prototipa c ao

Este m etodo para elicita c ao de requisitos utiliza-se do uso de uma t ecnica de prototipa c ao para a avalia c ao do usu ario. O conjunto inicial de requisitos e usado como base para criar o Prot otipo de Interface do Usu ario com o sistema inicial (simplicado). Para essa cria c ao, o projetista precisa manter o prot otipo t ao simples quanto poss vel. O ponto forte desta atividade e apresentar muitas alternativas para o usu ario antes de se gastar muito esfor co para qualquer prot otipo em particular. Ap os a aceita c ao do prot otipo pelos usu arios, os desenvolvedores precisam criar um documento de especica c ao dos requisitos paralelo ao prot otipo de interface (McConnel, 1998).

9.2.9

Cen arios

Usu arios nais e outros agentes do sistema acham a utiliza c ao de cen arios mais f aceis para relacionar-se aos exemplos da vida real do que descri c oes abstratas das fun c oes realizadas pelo sistema. Por essa raz ao, e freq uentemente u til desenvolver um conjunto de intera ca o dos cen arios, e usar estes para elicitar e clarear requisitos de sistema. Cen arios s ao exemplos de sess oes de intera c ao as quais s ao concentradas com um tipo u nico de intera c ao entre um usu ario nal e o sistema. Usu arios nais simulam suas intera c oes usando cen arios. Eles explicam para o time de engenheiros de requisito o que eles est ao fazendo e a informa c ao da qual eles precisam do sistema para descrever a tarefa descrita no cen ario.

http://www.candidatoreal.com

9.2.10

FAST

T ecnicas facilitadas de especica c ao de aplica c oes (facilitated application specication techniques). Consiste nos seguintes passos: 1. Reuni oes iniciais entre o cliente e o desenvolvedor (sess ao de perguntas e respostas). Produzem como resultado a solicita c ao de produto. 2. S ao selecionados local, hor ario e data para o FAST e e escolhido um facilitador. 3. A solicita c ao de produto e distribu da para todos os participantes antes da data da reuni ao.

112

http://www.candidatoreal.com

solicitado a cada participante que fa 4. E ca uma lista dos objetos que s ao parte do ambiente , uma lista de servi cos (processos ou fun c oes), uma lista de restri c oes (custo, tamanho, regras de neg ocio) e crit erios de desempenho. 5. Quando a reuni ao a FAST come ca, o primeiro t opico de discuss ao e a necessidade e a justicativa do produto. 6. Cada um apresenta suas listas, cr ticas 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 modicada 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 miniespecica co es, ou seja, detalham cada objeto da lista de consenso. 10. As equipes apresentam suas miniespecica c oes e a lista e modicada novamente atrav es de discuss oes. 11. Cada participante da reuni ao cria os crit erios de valida c ao para os elementos da lista. 12. Uma lista de consenso de crit erios de valida c ao e criada. 13. Algu em ca respons avel em redigir o rascunho completo das especica c ao.

9.3

An alise de Requisitos

A an alise de requisitos e uma atividade de engenharia de software que vence o espe co entre a engenharia de requisitos, no n vel de sistema, e o projeto de software. As atividades de engenharia de requisitos resultam na especica c ao das caracter sticas operacionais do software (fun c ao, dados e comportamento). A an alise de requisitos constr oi modelos de dom nio que fornecem ao projetista uma vis ao do software. A especica c ao de requisitos e produzida no auge da tarefa de an alise. Alguns padr oes sugerem que uma especica c ao de requisitos deve conter:

http://www.candidatoreal.com

Introdu c ao. Declara as metas e objetivos do software. Descri c ao da informa c ao. Fornece uma descri c ao detalhada do problema que o software deve resolver. O conte udo, uxo e estrutura da informa c ao s ao documentados. Descri c ao funcional. Uma narrativa de processamento e fornecida para cada fun c ao. Descri c ao comportamental. Examina a opera c ao do software como conseq u encia de eventos externos e caracter sticas de controle geradas internamente.

113

http://www.candidatoreal.com

Crit erios de valida c ao. Informa como devemos reconhecer uma implementa c ao bem-sucedida e quais classes de testes devem ser conduzidas para validar a fun c ao, o desempenho e as restri c oes. Bibliograa e ap endice. A bibliograa cont em todos os documentos que se relacionam ao software. O ap endice cont em informa c oes que suplementa as especica c oes.

9.3.1

M etodos de an alise

Entre os mais importantes m etodos de an alise, tr es se destacam: A an alise estruturada, a an alise essencial e a an alise orientada a objetos. A seguir discutiremos suas principais caracter sticas. An alise estruturada A An alise Estruturada adota uma vis ao de desenvolvimento baseada em um modelo entrada-processamento-sa da. No paradigma estruturado, os dados s ao considerados separadamente das fun c oes que os transformam e a decomposi c ao funcional e usada intensamente. An alise essencial Os m etodos orientados a fun co es conduzem o desenvolvimento de software estruturando as aplica c oes segundo a otica das fun c oes (a c oes) que o sistema dever a realizar. Os m etodos orientados a dados, por sua vez, enfatizam a identica c ao e estrutura c ao dos dados, subjugando a an alise das fun c oes para um segundo plano. Esses m etodos t em origem no projeto de bancos de dados e, geralmente, t em no modelo de Entidades e Relacionamentos (ER) sua principal ferramenta. A an alise essencial e uma metodologia estruturada, sendo uma evolu c ao da an alise estruturada. Essa metodologia procurou conciliar as abordagens orientadas a dados e a fun c oes em um u nico m etodo, utilizando modelos para dados, fun c oes e controles (DFDs, DERs e Diagramas de Transi c ao de Estados, respectivamente) como ferramentas para a modelagem de sistemas. An alise orientada o objeto A orienta c 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 dom nio do problema, isto e, os sistemas s ao modelados como um n umero de objetos que interagem.

http://www.candidatoreal.com

9.3.2
DFDs

Modelagem da an alise

Ferramenta de modelagem utilizada para descrever a transforma c ao de entradas em sa das. Representa um sistema como uma rede de processos interligados a ferramenta de modelagem entre si por uxos 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

Processo. Tamb em chamado de fun c ao, bolha ou transforma c ao, o processo representa as transforma c oes realizadas sobre os dados em um sistema e correspondem a fun c oes ou procedimentos que um sistema tem que prover. representado gracamente por c E rculos e deve ter um nome composto por um verbo e um objeto. Fluxo de dados. Representa uma cole c ao de itens de dados em movimento. E representado gracamente atrav es de uma seta entrando ou saindo de um processo, com a ponta indicando o sentido do uxo. Deve ter associado um nome o mais signicativo poss vel, de modo a facilitar a valida c ao do diagrama com os usu arios. Esse nome deve ser um substantivo que facilite a identica c ao da cole c ao de dados transportada. Dep osito de dados. O dep osito de dados e utilizado para modelar um reposit orio representado gracade uma cole c ao de pacotes de dados em repouso. E mente por duas linhas paralelas com um nome que represente seu conte udo e que normalmente e o plural do nome dos pacotes transportados pelos uxos para dentro e para fora do dep osito. Terminador ou entidade externa. Entidades externas ou terminadores s ao fontes ou destinos de dados do sistema. Representam os elementos do ambiente com os quais o sistema se comunica. Tipicamente, uma entidade externa e uma pessoa (p.ex. um cliente), um grupo de pessoas (p. ex. um departamento da empresa ou outras institui c oes) ou um outro sistema que interaja com o sistema em quest ao. Uma entidade externa deve ser identicada por um nome e representada por um ret angulo. Assim como no caso dos dep ositos de dados, em diagramas complexos, podemos desenhar um mesmo terminador mais de uma vez, para se evitar o cruzamento de linhas de uxos de dados ou para impedir que longas linhas de uxos de dados saiam de um lado a outro do diagrama. Quando o software e complexo, devemos organizar o DFD em n veis. Dois DFDs especiais est ao presentes em qualquer modelo funcional: Contexto. Mostra o sistema como uma caixa-preta, trocando informa c oes (uxos de dados) com entidades externas ao sistema. uma decomposi N vel 0 - Geral ou de Sistema. E c ao do diagrama de contexto, mostrando o funcionamento do sistema em quest ao, isto e, as grandes fun c oes do sistema e as interfaces entre elas. Os processos nesse diagrama necess recebem os n umeros 1, 2, 3, etc. . . E ario assegurar a coer encia entre os diagramas de contexto e de n vel 0, isto e, assegurar que os uxos de dados entrando ou saindo do diagrama efetivamente reproduzem as entradas e sa das do diagrama de contexto. Neste diagrama, devem aparecer os dep ositos de dados necess arios para a sincroniza c ao dos processos. Dicion ario de Dados O dicion ario de dados e uma listagem organizada de todos os elementos de dados pertinentes ao sistema, com deni c oes precisas para que os usu arios e desenvolvedores possam conhecer o signicado de todos os itens de dados. Exemplicando para uma estrutura de dados nome: nome = t tulo-cortesia + 115

http://www.candidatoreal.com

http://www.candidatoreal.com

primeiro-nome + (nome-intermedi ario) + u ltimo-nome, t tulo-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 constru c 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 constru do um DFD. Diagramas de Fluxos de Dados Organizados em N veis Hier arquicos. Representa os processos em n veis 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 constru do um DTE para cada entidade ou relacionamento com atributo do DER que possuir comportamento signicativo, 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. Especica c ao da L ogica dos Processos (Mini-especica c oes). Descreve a l ogica dos processos do DFD que n ao foram detalhados em diagramas de n vel inferior (l ogica dos processos primitivos). Como podemos perceber, a an alise essencial faz uso praticamente das mesmas t ecnicas de modelagem da an alise estruturada, a saber a modelagem de dados (utilizando modelos de entidades e relacionamentos), a modelagem funcional (utilizando Diagramas de Fluxo de Dados - DFDs) e a modelagem de controle (utilizando diagramas de transi c ao de estados). Isso e bastante natural, j a que a an alise essencial e, de fato, uma extens ao da an alise estruturada. Na realidade, a principal diferen ca entre a an alise essencial e a an alise estruturada est a na estrat egia para atacar o problema: a primeira defende uma abordagem baseada em eventos, onde a an alise de eventos passa a ser um passo fundamental, a segunda e baseada apenas na decomposi c ao top-down da funcionalidade do sistema.

http://www.candidatoreal.com

9.4

Gerenciamento de Requisitos

Gerenciar requisitos consiste de procedimentos para coletar, vericar e avaliar o considerado uma das primeiras mudan cas, de forma melhor administr a-las. E areas chave para melhoria de qualidade. No gerenciamento de requisitos um conceito importante e o de rastreabilidade. A rastreabilidade pode ser vista como a habilidade de acompanhar e descrever a vida de um requisito em ambas as dire c oes. Rastrear envolve identicar links entre requisitos, fontes dos requisitos e design do sistema. As ferramentas mais utilizadas para rastreamento de

116

http://www.candidatoreal.com

requisitos s ao as Matrizes de Rastreabibilidade (Traceability Matrix ), que usualmente correlacionam requisitos com casos de testes, e t ecnicas de Refer encias Cruzadas. Entre os produtos de mercado utilizadas para realizar gerenciamento e rastreamento de requisitos podemos citar o Rational RequisitePro, Caliber-RM, RTS e RDT.

http://www.candidatoreal.com

117

http://www.candidatoreal.com

Cap tulo 10

M etricas
M etricas devem ser coletadas de modo que os indicadores de processo e de produto possam ser determinados. Indicadores de processo permitem ` a organiza c ao de engenharia de software ter id eia da ec 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 cr ticas. Ajustar uxo 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 m etricas podem ser usadas para determinar indicadores de projeto e de processo.

10.1

M etricas de processo e aperfei coamento de processo de software

http://www.candidatoreal.com

N os medimos a ec acia de um processo de software indiretamente. H a usos p ublicos e privados de diferentes tipos de dados do processo. As m etricas coletadas com base individual dever ser privadas e servir como indicador apenas para o indiv duo. Exemplo de m etricas privadas incluem porpor c ao de defeitos (por ind viduo e por m odulo) e erros encontrados durante o desenvolvimento. M etricas p ublicas geralmente assimilam informa c oes, que eram originalmente privadas. Porpor c oes de defeitos de projeto (absolutamente n ao atribu veis a um certo indiv duo), esfor co, tempo transcorrido e dados relacionados s ao coletados e avaliados numa tentativa de sescobrir indicadores, que possam aperfei coar o desempenho do processo organizacional. H a uma sutil diferen ca 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

` medida que uma organiza A c ao sente-se mais confort avel, coletanto e usando m etricas de processo de software, a deriva c ao de indicadores simples d a lugar a uma abordagem mais rigorosa, chamada melhoria estat stica do processo de software (statistical software process improvemente, SPPI). Essencialmente, a SSPI usa a an alise de falhas de software para coletar informa c ao sobre todos erros e defeitos. A an alise de falhas funciona da seguinte maneira: 1. Todos os erros e defeitos s ao categorizados por origem (falha de especica c ao, falha de l ogica, n ao atendimento a padr oes). 2. O custo para corrigir cada erro e defeito e registrado. 3. A quantidade de erros e defeitos de cada categoria e contada e ordenada de forma decrescente. 4. O custo total de erros e defeitos de cada categoria e calculado. 5. Os dados resultantes s ao analisados, para descobrir as categorias que produzem um maior custo para a organiza c ao. 6. S ao desenvolvidos planos para modicar o processo, com o objetivo de eliminar (ou reduzir a freq u encia das) classes de erros e defeitos que s ao mais dispendiosas. Para a organiza c ao dessas m etricas s ao utilizados o gr aco de pizza que associa os erros e defeitos ` as suas origens e o diagrama espinha de peixe.

10.2

M etricas de projeto

As m etricas de projeto s ao usadas para evitar atrasos, avaliar a qualidade e n ao ultrapassar os custos permitidos. A primeira aplica c ao das m etricas de projeto, na maioria dos projetos de software, ocorre durante a estimativa. M etricas coletadas de projetos anteriores s ao usadas como base e ` a medida que o projeto prossegue, medidas de esfor co 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 t A ecnico se inicia, outras m etricas de projeto come cam a ter import ancia. A taxa de produ c ao, representada em termos de p aginas de documenta c ao, horas de revis ao, pontos por fun c ao e linhas de c odigo fonte ` medida que o software evolui, m entregue, e medida. A etricas t ecnicas s ao coletadas para avaliar a qualidade do projeto.

http://www.candidatoreal.com

10.3

Medi c ao de software

As medi c 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 execu c ao, tamanho de mem oria e defeitos relatados durante um certo per odo. Medidas indiretas do produto incluem funcionalidade, qualidade, complexidade, eci encia, conabilidade, manutenibilidade e muitas outras habilidades.

119

http://www.candidatoreal.com

10.3.1

M etricas orientadas a tamanho

S ao m etricas baseadas em linhas de c odigo. M etricas 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 m etricas penalizam programas curtos e bem feitos e que medidas de LOC s ao dep endentes da linguagem de programa c ao. Por outro lado, existem muitos modelos de estimativas que usam LOC ou KLOC como entrada chave e essas m etricas podem ser facilmente coletadas. As m etricas orientadas a tamanho mais utilizadas incluem: Erros por KLOC (milhares de linha c odigo). Defeitos por KLOC. $ por LOC. P aginas de documenta c ao por KLOC. Erros por pessoa-m es. LOC por pessoa-m es. $ por p agina de documenta c ao.

10.3.2

M etricas orientadas a fun c ao

M etricas de software orientadas a fun c ao usam uma medida da funcionalidade entregue pela aplica c ao como valor de normaliza c ao. Pontos por fun c ao s ao calculados completando a tabela 10.1. Cinco caracter sticas do dom nio da informa c ao s ao determinadas e as contagens s ao registradas na tabela. Essas caracter sticas s ao denidas da seguinte maneira: Quantidade de entradas do usu ario. S ao contadas as entradas do usu ario que fornecem dados distintos. Quantidade de sa das do usu ario. S ao contados telas, relat orios, mensagens de erros etc. N umero de consultas do usu ario. S ao contadas consultas distintas. Uma consulta e denida como um entrada que resulta na gera c ao de alguma resposta imediata.

http://www.candidatoreal.com

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 tamb em 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 informa c 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 fun c ao (function points, FP), e usada a seguinte rela c ao: 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 medi c ao Quantidade de entradas do usu ario Quantidade de sa das do usu ario Quantidade de consultas do usu ario N umero de arquivos Quantidade de interfaces externas

Contagem x x x x x

Simples 3 4 3 7 5

M edio 4 5 4 10 7

Complexo 6 7 6 15 10

Total

Tabela 10.1: Tabelas das caracter sticas dos pontos de fun c ao 1. O sistema requer salvamento (backup ) e recupera c ao (recovery )? 2. Comunica c oes de dados s ao necess arias? 3. H a fun c oes de processamento distribu do? 4. O desempenho e cr tico? 5. O sistema vai ser executado em um ambiente operacional existente, intensamente utilizado? 6. O sistema requer entradas de dados on-line? 7. A entrada de dados on-line exige que a transa c ao de entrada seja constru da atrav es de v arias telas ou opera c oes? 8. Os arquivos mestre s ao atualizados on-line? 9. As entradas, sa das, arquivos ou consultas s ao complexas? 10. O processomento interno e complexo? 11. O c odigo e projetado para ser reusado? 12. A convers ao e a instala c ao est ao inclu das no projeto? 13. O sistema est a projetado para instala c oes m ultiplas em diferentes organiza c oes? 14. A aplica c ao est a projetada para facilitar modica c oes e para facilidade de uso pelo usu ario?

http://www.candidatoreal.com

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 equa c ao dos pontos de fun c ao. S ao exemplos importantes de medidas de produtividade, qualidade e outros atributos de software as m etricas: Erros por FP. Defeitos por FP. $ por FP. P aginas de documenta ca o por FP. FP por pessoa-m es. 121

http://www.candidatoreal.com

10.3.3

M etricas de pontos por fun cao estendidas

A medida de pontos por fun c ao foi originalmente projetada para ser usada em aplica c oes de sistemas de informa c ao comerciais. A medida de pontos por fun c ao cou inadequada para muitos sistemas embutidos e de engenharia (que enfatizam fun c ao e controle). Uma extens ao de pontos por fun c ao, chamada pontos por caracter stica utilizada em eplica c oes de software de sistemas. Para calcular pontos por caracter stica, valores de dom nio de informa c ao s ao novamente contados e ponderados. Al em disso, a m etrica pontos por caracter stica trata uma nova caracter sitca do software: algoritmos. Outra extens ao de pontos por fun c ao, para sistemas em tempo real e produtos de engenharia, foi desenvolvida pela Boeing. Essa abordagem integra a dimens ao de dados do software com as dimens oes funcional e de controle para forncer uma medida orientada a fun c ao, adequada a aplica c oes que enfatizam as capacidades de fun c ao e controle. Essa extens ao e chamada de pontos por fun c ao 3D. As tr es dimens oes s ao: Dimens ao de dados. Semelhante a contagem de pontos por fun c ao tradicional. Dimens ao funcional. Considera a quantidade de opera c oes internas necess arias para transformar dados de entrada para transformar dados de entrada em sa da. medida contando a quantidade de transi Dimens ao de controle. E c oes entre estados.

10.4

M etricas de qualidade de software

A medi c 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 aplica c ao diferente e com os clientes que as encomendam. As principais medidas s ao mostradas a seguir: Corre c ao. A medida mais comum e defeitos por KLOC. Para ns de avalia c ao de qualidade, defeitos s ao contados durante um per odo padr ao, tipicamente um ano.

http://www.candidatoreal.com

Manutenibilidade. Uma m etrica utilizada e o tempo m edio para modica c ao (mean-time-to-change, MTTC), que e o tempo despendido para analisar o pedido de modica c ao, projetar uma modica c ao adequada, implementar a modica c ao, test a-la e distribu -la para todos os usu arios. Outra m etrica e chamada preju zo - custo para corrigir defeitos encontrados depois que o software foi entregue a seus usu arios nais. a capacidade do sistema resistir ` Integridade. E a ataques (tanto acidentais quanto intencionais). Amea ca e a probabilidade de um ataque ocorrer a probabilidade de um ataque dentro de um certo per odo. Seguran ca. E ser repelido. A integridade do sistema pode ser ent ao denido como integridade = (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 f sica ou intelectual necess aria para aprender a lidar com o sistema, (2) o tempo necess ario para se tornar moderadamente eciente no uso do sistema, (3) o aumento l quido de produtividade e (4) uma avalia c ao subjetiva das atitudes dos usu arios com rela c ao ao sistema. Outra medi c ao muito utilizada e a eci encia na remo c ao de defeitos defect removal eciency, DRE). A DRE e uma medida da capacidade de ltragem 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 classicar fatores de qualidade s ao apresentadas nas subse c oes a seguir.

10.4.1

Fatores de qualidade de McCall

Os fatores de qualidade de McCall concentram-se nos tr es aspectos importantes de um produto de software: suas caracter sticas operacionais, sua habilidade de passar por modica c oes e sua adaptabilidade a novos ambientes. A seguir s ao listados esses aspectos e os seus respectivos fatores: Opera c ao do produto. Corre c ao, conabilidade, utiliza c ao, integridade e eci encia. Revis ao do produto. Mantenabilidade, exibilidade e testabilidade. Transi c ao do produto. Portabilidade, reutiliza c ao e interoperabilidade. dif E cil desenvolver medidas diretas desses fatores. Assim, um conjunto de m etricas e denido e usado para desenvolver express oes para cada um dos fatores de acordo com a seguinte rela c ao: Fq = c1 m1 + c2 m2 ... + cn mn , em que Fq e um fator de qualidade de software, cn s ao coecientes de regress ao, mn s ao as m etricas que afetam o fator de qualidade. Infelizmente, muitas das m etricas denidas podem ser medidas apenas sunjetivamente. As m etricas podem estar em forma de checklist que e usada para atribuir um grau a atributos espec cos do software. O peso atribu do a cada m etrica e dependente de produtos e preocupa c oes locais.

10.4.2
http://www.candidatoreal.com

FURPS

A Hewlett-Packard desenvolveu um conjunto de fatores de qualidade que recebeu a sigla FURPS: funcionalidade, utiliza c ao, conabilidade, desempenho e suportabilidade. Esses fatores podem ser denidos da seguinte maneira: Funcionalidade. Avaliada pelo conjunto de caracter sticas e capacidades do programa. Utiliza c ao. Avaliada considerando fatores humanos como est etica, consist encia e documenta c ao. Conabilidade. Avaliada medindo a freq u encia e a severidade das falhas, a precis ao dos resultados de sa da, o tempo m edio entre falhas (MTTF), a capacidade de recupera c ao de falhas e previsibilidade do programa.

123

http://www.candidatoreal.com

Desempenho. Medido pela velocidade de processamento, tempo de resposta, consumo de recursos, throughput e eci encia. Suportabilidade. Combina a capacidade de estender o programa (estensibilidade), adaptabilidade e reparabilidade.

10.4.3

ISO 9126

A norma da ISO identica seis atributos-chave de qualidade: Funcionalidade. Grau com que o software satisfaz as necessidades declaradas com os subatributos - adequabilidade, precis ao, interoperabilidade, atendibilidade e seguran ca. Conabilidade. Per odo de tempo em que o software est a dispon vel para uso com os subatributos - maturidade, toler ancia a falha e recuperabilidade Utiliza c ao. Grau em que o software e f acil de usar com os subatributos inteligibilidade, adestrabilidade e operabilidade. Eci encia. Grau em que o software faz uso otimizado dos recursos do sistema com os subatributos - comportamento em rela c ao ao tempo e comportamento em rela c ao aos recursos. Mantenabilidade. Facilidade com a qual podem ser feitos reparos no software com os subatributos - analisabilidade, mutabilidade, estabilidade e testabilidade. Portabilidade. Facilidade com a qual o software pode ser transposto de um ambiente para outro com os subatributos - adaptabilidade, instabilidade, conformidade e permutabilidade. Esses fatores n ao necessariamente se prestam a medidas diretas. No entanto, fornecem de fato uma base valiosa para medidas indiretas e uma excelente lista de verica c ao para avaliar a qualidade de um sistema.

10.5

Estimativas

http://www.candidatoreal.com

Muitas vezes, as estimativas s ao feitas usando-se a experi encia passada como u nico guia. Mas se um novo projeto for totalmente diferente dos projetos realizados at e o momento? Assim, apenas a exper encia passada talvez n ao seja suciente. V arias t ecnicas de estimativa est ao dispon veis. Embora cada uma tenha suas particularidades, todas t em os seguintes atributos: 1. O escopo do projeto deve estar estabelecido. 2. M etricas de software s ao utilizadas e o hist orico e usado como uma base a partir da qual estimativas s ao feitas. 3. O projeto e dividido em pequenas partes que s ao estimadas individualmente.

124

http://www.candidatoreal.com

10.5.1

COCOMO (Constructive Cost Model)

O COCOMO e o modelo de estimativa emp rico mais utilizado na ind ustria. Existem tr es modelos neste m etodo: um modelo est COCOMO B asico. E atico de valor simples que computa o esfor co (e custo) de desenvolvimento de software como uma fun c ao do tamanho de programa expresso em linha de c odigo estimadas. COCOMO Intermedi ario. Computa o esfor co de desenvolvimento de software como uma fun c ao do tamanho do programa e de um conjunto de direcionadores de custo que incluem avalia c oes subjetivas do produto, do hardware, do pessoal e dos atributos do projeto. COCOMO Avan cado. Incorpora todas as caracter sticas da vers ao intermedi aria, com uma avalia c ao do impacto dos direcionadores de custo sobre cada passo (an alise, projeto, etc.) do processo de engenharia de software. O COCOMO classica os projetos em tr es tipos: Modelo org anico (ou convencional). Projetos de software simples, relativamente pequenos, nos quais pequenas equipes com boa experi encia em aplica c oes trabalham num conjunto de requisitos n ao t ao r gidos. Outras caracter sticas: ambiente est avel de desenvolvimento, algoritmos simples, pr emio relativamente baixo para t ermino antes do prazo, tamanho relativamente pequeno, projetos na faixa de 50.000 linhas de c odigo. Modelo semidestacado (ou difuso). Projeto de software intermedi ario (em tamanho e complexidade) onde a equipe mescla grande e pouca experi encia com aplica c oes, grande e pouca experi encia com a tecnologia, o tamanho dos software varia at e 300.000 linhas de c odigo. Modelo embutido (ou restrito). Um projeto que deve ser desenvolvido dentro de um conjunto r gido de restri c oes operacionais, de hardware e de software. O COCOMO II, assim como o seu predecessor e na verdade uma hierarquia de modelos que trata das seguintes areas: Modelo de composi c ao de aplica c ao. Usado durante os primeiros est agios do processo.

http://www.candidatoreal.com

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 constru c ao do software. O COCOMO II usa pontos por objeto. Como pontos por fun c 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 tr es n veis de complexidade (simples, m edio, dif cil). Essencialmente, a complexidade e fun c ao da quantidade e fonte das tabelas de dados do cliente e servidores, que s ao necess arias para gerar a tela ou

125

http://www.candidatoreal.com

relat orio, e da quantidade de vistas ou se c oes apresentadas como parte da tela ou relat orio. Deve-se notar que outros modelos de estimativa mais sosticados (usando FP e KLOC) tamb em est ao dispon veis como parte do COCOMO II.

http://www.candidatoreal.com

126

http://www.candidatoreal.com

Cap tulo 11

Testes
Teste e um processo de execu c ao de um programa com a nalidade 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 nalmente em todo o sistema. A testabilidade de software e a facilidade com que o programa pode ser testado. Existem m etricas 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, denindo casos de testes que exercitam conjuntos espec cos de condi c oes ou ciclos. Teste caixa-branca completo e imposs vel 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 tr es motivos importantes pelos quais se deve usar testes caixa-branca: Os erros tendem a ocorrer em condi c oes ou controle que est ao fora da fun c ao principal. 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.

http://www.candidatoreal.com

prov E avel que um erro tipogr aco 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 t ecnica de teste caixa-branca proposta inicialmente por Tom McCabe. O m etodo 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 denir um conjunto b asico de caminhos de execu c 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

O grafo de uxo mostra mostra o uxo de controle l ogico. Cada n o do grafo de uxo representa um ou mais comando procedimentais. As arestas representam o uxo de controle. As areas dlimitadas por arestras e n os s ao chamadas regi oes. Cada n o que cont em uma condi c ao e chamado de n o predicado e e caracterizada por duas ou mais arestas saindo dele. Complexidade ciclom atica e a m etrica de software que fornce uma medida quantitativa da complexidade l ogica do programa. O valor calculado para a complexidade ciclom atica dene o n umero de caminhos independentes no conjunto base de um programa e nos fornece um limite superior para a quantidade de testes que deve ser conduzida para garantir que todos os comandos tenho sido executados pelo menos uma vez. Um caminho independente e qualquer caminho ao longo do programa que introduz pelo menos um novo conjunto de comandos de processamento ou uma nova condi c ao. Um conjunto-base e um conjunto de caminhos em que todo comando do programa ter a sido garantidamente executado pelo menos uma vez e cada condi c ao ter a sido executada no seu lado verdadeiro e no seu lado falso. A complexidade ciclom atica e calculada de tr es maneiras: 1. O n umero de regi oes do grafo de uxo. 2. V (G) = E N + 2 em que E e o n umero de arestas e N o n umero de n os. 3. V (G) = P + 1 em que P e o n umero de n os predicados. Os seguintes passos podem ser aplicados para deriva c ao de casos de teste: 1. Usando o projeto ou c odigo como base, desenhe o grafo de uxo correspondente. 2. Determine a complexidade ciclom atica do grafo de uxo resultante. 3. Determine um conjunto-base de caminhos linearmente independentes. 4. Prepare casos de teste que v ao for car a execu c ao de cada caminho do conjunto-base. Uma matriz de grafo e uma matriz quadrada, cujo n umero de colunas e linhas e igual ao n umero de n os do grafo de uxo. Adicionando um peso de liga c ao a cada entrada da matriz, a matriz de grafo pode tornar-se uma possante ferramenta para avaliar a estrutura de controle do programa durante o teste. Em sua forma mais simples, o peso da liga c ao e 1 (existe uma conex ao) ou 0 (n ao existe uma conex ao). Outros pesos podem ser atribu dos com outras propriedades: A probabilidade de que uma liga c ao (aresta) ser a executada. O tempo de processamento gasto durante o percurso de uma liga c ao. A mem oria necess aria durante o percurso de uma liga c ao. Os recursos necess arios durante o percurso de uma liga c ao. Existem algoritmos que podem ser aplicados ` as matrizes de grafo. Usando essaas t ecnicas, a an alise necess aria para projetar casos de teste pode ser parcial ou totalmente automatizada. 128

http://www.candidatoreal.com

http://www.candidatoreal.com

11.2

Teste de estrutura de controle

A t ecnica de teste de estrutura de controle ampliam a cobertura da t ecnica de teste de caminho b asico e melhoram a qualidade do teste caixa-branca.

11.2.1

Teste de condi c ao

Teste de condi c ao e um m etodo de projeto de caso de teste que exercita as condi c oes l ogicas contidas em um m odulo de programa. Uma condi c ao simples e uma vari avel booleana ou uma express ao relacional, possivelmente precedida por um operador de nega c ao. Uma condi c ao composta e composta de duas ou mais condi c oes simples, operadores booleanos e par enteses. Diversas estrat egias para teste de condi c ao t em sido propostas. O teste de desvio e provavelmente a estrat egia de teste de condi c ao mais simples. Para uma condi c ao composta C , os ramos verdadeiro e falso de C e cada condi c ao simples de C precisam ser executadas pelo menos uma vez. O teste de dom nio requer que tr es ou quatro testes sejam derivados para uma express ao relacional. Para uma express ao relacional da forma E1 < operador relacional > E2 tr es 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 poss veis 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 detec c ao de erros de operadores booleanos m ultiplos e e tamb em efetivo para detectar outros erros. Uma delas e a t ecnica de teste de desvio e operador relacional (branch and relational operator, BRO). Ela usa restri c oes de condi c ao para uma condi c ao C . Uma restri c ao de condi c ao para C com n condi c oes simples e denida como (D1 , D2 , . . . , Dn ), em que Di (0 < i n) e um s mbolo que especica uma restri c ao sobre o resultado da i- esima condi c ao simples da condi c ao C . Diz-se que uma restri c ao de condi c ao D para uma condi c ao C e coberta por uma execu c ao de C se, durante a execu c ao de C , o resultado de cada condi c ao simples de C satisfaz a correspondente restri c ao em D. N ao entendeu nada? Como exemplo, considere a condi c ao:

http://www.candidatoreal.com

C1 : B1 &B2 em que B1 e B2 s ao vari aveis booleanas. A restri c ao de condi c 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 restri c ao de condi c ao para C1 . A estrat egia de teste BRO exige que o conjunto de restri c oes {(t, t), (t, f ), (f, t)} seja coberto pelas execu c oes de C1 . Se C1 est a incorreto, pelo menos uma das condi c oes do conjunto vai fazer C1 falhar. Outro exemplo: C2 : B1 &(E3 = E4 ) possui o conjunto de restri c oes {(t, =), (f, =), (t, <), (t, >)}, sendo E3 e E4 express oes aritm eticas.

129

http://www.candidatoreal.com

11.2.2

Teste de uxo de dados

O met odo de teste de uxo de dados seleciona caminhos de teste de um programa de acordo com a localiza c ao das deni c oes e do uso das vari aveis no programa. Para ilustrar a abordagem de teste de uxo de dados, considere que cada comando de um programa e atribu do um n umero de comando u nico e que cada fun c ao n ao modica seus par ametros ou vari aveis globais. Para um comando com S como seu n umero de comando, DEF (S ) = {X /comando S cont em uma deni c ao de X } U SO(S ) = {X /comando S cont em 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 condi c ao do comando S . A deni c 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 cont em qualquer outra deni c ao de X . Uma cadeia deni c 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 deni c ao de X no comando S est a viva no comando S . A estrat egia 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 situa c oes raras. A abordagem de teste de uxo de dados e efetiva para detec c ao de erros. No entanto, os problemas de medida da cobertura e de sele c ao dos caminhos de teste s ao mais dif ceis do que os problemas correspondentes para o teste de condi c ao.

11.2.3

Teste de ciclo

Teste de ciclo e uma t ecnica de teste caixa-branca que focaliza exclusivamente a validade de constru c oes de ciclo. Quatro diferentes classes de ciclos podem ser denidas: Ciclos simples. O seguinte conjunto de teste pode ser aplicado a ciclos simples em que n e o n umero m aximo de passagens permitidas no ciclo. 1. Pule o ciclo completamente. 2. Apenas uma passagem pelo ciclo. 3. Duas passagens pelo ciclo. 4. m passagens pelo ciclo em que m < n. 5. n 1, n, n + 1 passagens pelo ciclo. Ciclos aninhados. Seria muito complicado adotar as mesmas t ecnicas de ciclos simples neste caso. Uma abordagem e sugerida: 1. Comece no ciclo mais interno. Ajuste todos os outros cilos para o valores m nimos. 2. Conduze testes de ciclo simples para o ciclo mais interno enquanto mant em os ciclos externo nos seus valores m nimos de itera c ao. 3. Trabalhe em dire ca o ao extereior, conduzindo testes para o ciclo seguinte. 4. Continue at e que todos os ciclos tenham sido testados. 130

http://www.candidatoreal.com

http://www.candidatoreal.com

Ciclos concatenados. A mesma abordagem para o ciclo simples a menos que o mesmo contador e utilizado nos ciclos concatenados. Neste caso, e recomendada a abordagem a ciclos aninhados. Ciclos desestruturados. Sempre que poss vel essa classe de ciclos deve ser reprojetada.

11.3

Teste caixa-preta

Um teste caixa-preta, tamb em 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

Os objetos que est ao modelados no software e as rela c oes que conectam esses objetos s ao utilizadas para criar um grafo. Os n os representam os objetos, as arestas representam as liga c oes, os pesos de n o descrevem as propriedade de um objeto, assim como os pesos das arestas representam propriedades das liga c oes. Uma liga c ao direcionada (representada por uma seta) indica que a rela c ao se move em apenas uma dire c ao. Liga c oes paralelas s ao usadas quando diversas rela c oes s ao estabelecidas entre os n os. Os m etodos de teste de comportamento que podem fazer usos de grafos s ao: Modelagem de uxo de transa c ao. Os n os representam passos em alguma transa c ao e as arestam representam conex oes l ogicas. Modelagem de estado nito. Os n os representam diferentes estados do software observ aveis pelo usu ario e as aresta representam as transi c oes. Modelagem do uxo de dados. Os n os s ao objetos de daods e as liga c oes s ao transforma c oes que ocorrem para traduzir um objeto de dados em outro.

11.3.2

Particionamento de equival encia

http://www.candidatoreal.com

O particionamento de equival encia e um m etodo de teste caixa-preta que divide o dom nio de entrada de um programa em classes de dados, das quais casos de teste podem ser derivados. Uma classe de equival encia representa um conjunto de estados v alidos ou inv alidos para condi c oes de entrada. Classes de equival encia podem ser denidas de acordo com as seguintes diretrizes: 1. Se uma condi c ao de entrada especica um intervalo, uma classe de equival encia v alida e duas inv alidas s ao denidas. 2. Se uma condi c ao de entrada exige um valor espec co, uma classe de equival encia v alida e duas inv alidas s ao denidas. 3. Se uma condi c ao de entrada especica um membro de um conjunto, uma classe de quival encia v alida e uma inv alida s ao denidas. 4. Se uma condi c ao de entrada e booleana, uma classe de equival encia v alida e uma inv alida s ao denidas. 131

http://www.candidatoreal.com

Um elemento pode ter mais de uma condi c ao de entrada. Por exemplo, considere uma entrada de senha , h a condi c ao de entrada booleana (pode estar ou n ao presente) e condi c ao de entrada de valor (cadeia de seis caracteres).

11.3.3

An alise de valor limite

Um grande n umero de erros tende a ocorrer nas fronteiras do dom nio de en por essa raz trada. E ao que a an alise de valor-limite (boundary value analysis, BVA) foi desenvolvida como t ecnica de teste. A BVA leva ` a sele c ao de casos de teste nas bordas da classe. Em vez de focalizar somente as condi c oes de entrada, a BVA deriva casos de teste tamb em para o dom nio de sa da. Se uma condi c ao de entrada especica 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 condi c oes de sa da. Se as estruturas de dados t em limites prescritos, certique-se de projetar um caso de teste para exercitar a estrutura de dados no seu limite.

11.3.4

Teste de compara c ao

Quando um software redundante e desenvolvido (para aplica c oes cr ticas), equipes de engenheiros de software separadas desenvolvem vers oes independentes de uma aplica c ao usando a mesma especica c ao. Em tais situa c oes, cada vers ao pode ser testada com os mesmos dados de teste para garantir que todas fornecem sa da id entica. Depois, todas as vers oes s ao executadas em paralelo com compara c ao em tempo real para garantir consist encia. Essas vers oes independentes formam a base da t ecnica de teste caixa-preta chamada teste de compara c ao ou teste de emparelhamento. Quando m ultiplas implementa c oes da mesma especica c ao tivem sido produzidas, casos de teste projetadados usando outras t ecnicas de caixa-preta fornecem entradas a cada vers ao do software. Se a sa da de cada vers ao e a mesma, e considerado que todas as implementa c oes est ao corretas. Se a sa da e diferente, cada uma das aplica c oes e investigada para determinar se um defeito em uma ou mais vers oes e respons avel pela diferen ca. O teste de compara c ao n ao e a toda prova, se a especica c ao estiver errada, todas as vers oes ir ao provavelmente reetir o erro. Al em disso, se cada uma das vers oes independentes produzir resultados id enticos mas incorretos, o teste de compara c ao vai falhar na detec c ao do erro.

http://www.candidatoreal.com

11.3.5

Teste de matriz ortogonal

Teste de matriz ortogonal pode ser aplicado a problemas nos quais o dom nio 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 distribu dos uniformemente pelo dom nio de teste). A abordagem de teste de matriz ortogonal nos possibilita obter boa cobertura de teste com muito menos casos de teste que a estrat egia exaustiva. Outras deni c oes s ao importantes:

132

http://www.candidatoreal.com

Se todos os casos de teste com um determinado argumento igual a 1, por exemplo, falharem, trata-se de uma falha de modo singular. Se existe um problema consistente quando n veis espec cos de dois par ametros a inocorrem simultaneamente, ele e chamado de falha de modo duplo. E tera c ao danosa entre dois par ametros de teste. Matrizes ortogonais s o podem garantir a detec c ao de falhas de modo singular e duplo. No entanto, muitas falhas de multimodo s ao temb em detectadas por esses testes.

11.4

Teste de ambientes, arquiteturas e aplica c oes especializadas

Podemos citar as t ecnicas especializadas de testes: Teste de GUI. Como muitas GUI modernas t em a mesma apar encia e funcionamento, uma s erie de testes padr ao pode ser derivada. Devido ao grande n umero de opera c oes GUI, o teste deve ser conduzido usando ferramentas automatizadas. Teste de arquiteturas cliente/servidor. A natureza distribu da diculta muito, os teste s ao consideravelmente mais dif cil que em aplica c oes isoladas. Teste da documenta c ao e dispositivos de ajuda. Pode ser abordado em duas fases. A primeira fase, revis ao e inspen c ao, examina o documento quanto ` a clare editorial. A segunda fase, teste ao vivo, usa a documenta c ao em conjunto com o uso do programa real. Nesta fase, os v arios m etodos de caixa-preta podem ser utilizados. Teste de sistemas de tempo real. O projetista de casos de teste n ao tem apenas que considerar casos de teste caixa-branca e caixa-preta, mas tamb em manipula c ao de eventos (processamento de interrup c oes), a tempestividade dos dados e o paralelismo das tarefas que manipulam os dados. Uma estrat egia global de quatro passoas pode ser proposta: Teste de tarefa. Testes de caixa-branca e de caixa-preta s ao projetados e executados para cada tarefa. simulado o comportamento de um sistema Teste comportamental. E de tempo real e examinado seu comportamento como conseq u encia de eventos externos. Testes intertarefas. Tarefas ass ncornas que se comunicam s ao testadas com diferentes taxas de dados e carga de processamento para detectar se erros de sincroniza c ao entre tarefas v ao ocorrer. Teste de sistema. O software e o hardware s ao integrados e todo um conjunto de testes de sistema e conduzido numa tentativa de descobrir erros na interface software-hardware.

http://www.candidatoreal.com

133

http://www.candidatoreal.com

11.5

Estrat egia de teste de software

O projeto efetivo de caso de testes e importante, mas n ao suciente para o sucesso da atividade de testes. A estrat egia, isto e, a s erie planejada de realiza c ao de testes, e tamb em crucial. Basicamente, h a tr es grandes fases de teste: Teste de unidade. Tem por objetivo testar a menor unidade do projeto (um componente de software que n ao pode ser subdividido), procurando identicar erros de l ogica e de implementa c ao em cada m odulo separamente. Teste de integra c ao. Visa descobrir erros associados ` as interfaces entre os m odulos quando esses s ao integrados para formar a estrutura do produto de software. Teste de sistema. Tem por objetivo identicar erros de fun c oes (requisitos funcionais) e caracter sticas de desempenho (requisito n ao funcional) que n ao estejam de acordo com as especica c oes. Tipicamente, os primeiros testes focalizam componentes individuais e aplicam testes caixa-branca e caixa-preta. Na integra c ao, o foco e o projeto e a arquitetura do sistema. Finalmente, uma s erie de testes de alto n vel e executada quando o sistema estiver operacional, visando descobrir erros nos requisitos. No teste de unidade, faz-se necess ario construir pequenos componentes para permitir testar m odulos invidualmente, os ditos drivers e stubs. Um driver e um programa respons avel pela ativa c ao e coordena c ao do teste de uma unidade. Ele e respons avel por receber dados de teste fornecidos pelo testador, passar esses dados para a unidade que est a sendo testada, obter os resultados produzidos e apresent a-los ao testador. Um stub e uma unidade que substitui, na hora do teste, uma outra unidade chamada pela unidade que est a sendo testada. Em geral, um stub simula o comportamento de uma unidade chamada com o m nimo de computa c ao ou manipula c ao de dados. A abordagem de integra ca o de m odulos pode ter impacto na quantidade de drivers e stubs a ser constru da. Sejam as seguintes abordagens: Integra c ao ascendente (bottom-up ). Cada m odulo no n vel 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 ). Come ca de cima para baixo. Apenas stubs s ao necess arios. Sandu che. 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. Verica se o sistema integrado realiza as fun c oes especicadas nos requisitos. 134

http://www.candidatoreal.com

http://www.candidatoreal.com

Teste de desempenho. Verica se o sistema integrado atende os requisitos n ao funcionais do sistema (eci encia, seguran ca e conabilidade). Teste de aceita c ao. Realizado pelos clientes. Assegura que o sistema solicitado e o que foi constru do. Teste de instala c ao. Necess ario quando os testes de aceita c ao n ao s ao feitos onde o software ser a realmente instalado.

http://www.candidatoreal.com

135

http://www.candidatoreal.com

Cap tulo 12

UML
12.1 Diagrama de caso de uso

Diagramas de caso de uso descrevem relacionamentos e depend encias entre um grupo de caso de uso e os atores participantes no processo. Um Caso de uso descreve do ponto de vista dos atores um grupo de atividades num sistema que produz um resultado concreto e tang vel. Casos de uso s ao descri c oes de intera c oes t picas entre os usu arios de um sistema e o sistema propriamente dito. Eles representam a interface externa do sistema e especicam um conjunto de exig encias do que o sistema deve fazer. Quando trabalhar com Casos de Uso, e importante lembrar-se de algumas regras simples: Cada Caso de Uso est a relacionado com no m nimo um ator Cada Caso de Uso possui um iniciador (isto e um ator) Cada Caso de Uso liga-se a um resultado relevante (um resultado com valor de neg ocio) Casos de uso tamb em podem ter relacionamentos com outros casos de uso. Os tr es tipos mais comuns de relacionamento entre casos de uso s ao: inclui-se que especica que um Caso de Uso toma lugar dentro de outro Caso de Uso

http://www.candidatoreal.com

estende que especica que em determinadas situa c oes, ou em algum ponto (chamado um ponto de extens ao) um caso de uso ser a estendido por outro. Generaliza c ao especica que um caso de uso herda as caracter sticas do super caso de uso, e pode sobrepor algumas delas ou adicionar novas de maneira semelhante a heran ca 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 f sica ou sistemas, mas sua regra. Isto signica 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

Descri c 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.

Figura 12.1: Exemplo de um diagrama de caso de uso

http://www.candidatoreal.com

12.2

Diagrama de classe

Diagramas de classe mostram as diferentes classes que fazem um sistema e como elas se relacionam. Os diagramas de classe s ao chamados diagramas est aticos porque mostram as classes, com seus m etodos e atributos bem como os relacionamentos est aticos entre elas: quais classes conhecem quais classes ou quais classes s ao parte de outras classes, mas n ao mostram a troca de mensagens entre elas. Na UML, atributos s ao mostrados com pelo menos seu nome, e podem tamb em mostrar seu tipo, valor inicial e outras propriedades. Atributos podem tamb em ser exibidos com sua visibilidade:

137

http://www.candidatoreal.com

Figura 12.2: Exemplo de um diagrama de classe + indica atributos p ublicos. # indica atributos protegidos. indica atributos privados As opera c oes tamb em s ao exibidas com pelo menos seu nome, e podem tamb em mostrar seus par ametros e valores de retorno. Classes podem ter modelos, um valor que e usado para uma classe ou tipo n ao especicado. O tipo de modelo e especicado quando uma classe e iniciada (isto e um objeto e criado). Modelos existem no C + + moderno e foram introduzidos no Java 1.5 onde eles s ao chamados de gen ericos.

12.2.1
http://www.candidatoreal.com

Associa c oes de classe

Classes podem relacionar-se (ser associada com) com outras de diferentes maneiras: Generaliza c ao EM UML, uma generaliza c ao entre duas classes coloca-as numa hierarquia representando o conceito de heran ca de uma classe derivada de uma classe base. Em UML, Generaliza c 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

Figura 12.3: Exemplo de generaliza c ao conex ao do objeto, ou link. Associa c oes podem ter um regra que especica o prop osito da associa c ao e pode ser uni ou bidirecional (indicadando se os dois objetos participantes do relacionamento podem mandar mensagens para o outro, ou se apenas um deles sabe sobre o outro). Cada ponta da associa c ao tamb em possui uma valor de multiplicidade, que dita como muitos objetos neste lado da associa c ao pode relacionar-se com o outro lado. Em UML, associa c oes s ao representadas como linhas conectando as classes participantes do relacionamento, e podem tamb em mostrar a regra e a multiplicidade de cada um dos participantes. A multiplicidade e exibida como um intervalo [min . . . max] de valores n ao negativos, com um asterisco no lado m aximo representando innito.

Figura 12.4: Exemplo de associa c ao

Agrega c ao Agrega c oes s ao um tipo especial de associa c ao no qual as duas classes participantes n ao possuem em n vel igual, mas fazem um relacionamento todo-parte. Uma agrega c ao descreve como a classe que possui a regra do todo, e composta (tem) de outras classes, que possuem a regra das partes. Para agrega c oes, a classe que age como o todo sempre tem uma multiplicidade de um. Em UML, agrega c oes s ao representadas por uma associa c ao que mostra um romb oide no lado do todo. Representa c ao visual de um relacionamento Agrega c ao em UML.

http://www.candidatoreal.com

Figura 12.5: Exemplo de agrega c ao

Composi c ao Composi c oes s ao associa c oes que representam agrega c oes muito fortes. Isto signica que composi c oes formam relacionamentos todo-parte tamb em, mas o relacionamento e t ao forte que as partes n ao pode existir independentes. Em UML, composi c oes s ao representadas por um romb oide s olido no lado do todo.

139

http://www.candidatoreal.com

Figura 12.6: Exemplo de composi c ao

12.3

Diagramas de seq u encia

Diagramas de seq u encia mostram a troca de mensagens entre diversos objetos, numa situa c ao espec ca e delimitada no tempo. Diagramas de seq u encia colocam enfase especial na ordem e nos momentos nos quais mensagens para os objetos s ao enviadas. Em diagramas de seq u encia, objetos s ao representados atrav es de linhas verticais tracejadas, com o nome do objeto no topo. O eixo do tempo e tamb em vertical, aumentando para baixo, de modo que as mensagens s ao enviadas de um objeto para outro na forma de setas com a opera c ao e os nomes dos par ametros.

Figura 12.7: Exemplo de diagrama de seq u encia

http://www.candidatoreal.com

Mensagens podem ser s ncronas, o tipo normal de mensagem de chamada em que o controle e passado para o objeto chamado at e o m etodo ter terminado sua execu c ao, ou ass ncronas, em que o controle e passado diretamente para o objeto chamado. Mensagens s ncronas possuem uma caixa vertical no lado do objeto chamado para mostrar o controle do uxo do programa.

12.4

Diagramas de colabora c ao

Diagramas de colabora c ao mostram as intera c oes que ocorrem entre os objetos participantes numa situa c ao espec ca. A informa c ao e parecida com a mostrada

140

http://www.candidatoreal.com

pelos diagramas de seq u encia, mas neste, a enfase e colocada em como as intera c oes ocorrem no tempo, enquanto os diagramas de colabora c ao colocam os relacionamentos entre os objetos e sua topologia em destaque. Em diagramas de colabora c ao, as mensagens enviadas de um objeto para outro s ao representadas por setas, mostrando o nome da mensagem, par ametros, e a seq u encia da mensagem. Diagramas de colabora c ao s ao especialmente indicados para mostrar um uxo ou situa c ao espec ca do programa e podem, rapidamente, demonstrar ou explanar um processo na l ogica do programa.

Figura 12.8: Exemplo de diagrama de colabora c ao

12.5

Diagramas de estado

http://www.candidatoreal.com

Diagramas de Estado mostram os diferentes estados de um objeto durante sua vida, e o est mulo que faz com que o objeto mude seu estado. Diagramas de estado v eem objetos como m aquinas de estado. Estados s ao os blocos constru dos dos Diagramas de estado. Um estado pertence a exatamente uma classe e representa um resumo dos valores dos atributos que uma classe pode tomar. Um estado UML descreve o estado interno de um objeto para uma classe em particular Observe que nem toda mudan ca em um dos atributos de um objeto pode ser representada por um estado, mas somente aquelas mudan cas que podem afetar signicativamente o trabalho do objeto. Existem dois tipos especiais de estados: inicial e nal. Eles s ao especiais porque nenhum evento pode fazer com que um objeto retorne para seu estado inicial, e da mesma maneira nenhum evento pode tirar um objeto de seu estado nal, uma vez que ele j a o tenha alcan cado.

141

http://www.candidatoreal.com

Figura 12.9: Exemplo de diagrama de estado

http://www.candidatoreal.com

142

http://www.candidatoreal.com

12.6

Diagramas de atividade

Uma atividade e um passo simples num processo. Uma atividade e um estado no sistema com atividade interna e, pelo menos, uma transi c ao de sa da. Atividades podem tamb em ter mais de uma transi c ao de sa da se elas possuem condi c oes diferentes. O diagrama de atividade descreve a seq u encia de atividades num sistema com a ajuda das atividades. Diagramas de atividade s ao uma forma especial de diagramas de estado, que somente (ou principalmente) cont em atividades. Diagramas de atividade s ao similares aos diagramas de uxo de procedimentos, com a diferen ca de que todas as atividades s ao claramente anexas aos objetos. Diagramas de atividade s ao sempre associados a uma classe, uma opera c ao ou um caso de uso. Diagramas de atividade suportam atividades seq uenciais bem como paralelas. A execu c ao paralela e representada pelos cones Forquilha/Esperar, e para as atividades executadas em paralelo, n ao e importante a ordem na qual elas se executam (elas podem ser executadas ao mesmo tempo ou uma ap os a outra). Atividades podem formar hierarquias, isto signica que uma atividade pode ser composta por diversas atividades em detalhe, na qual as transi c oes de entrada e sa da devem corresponder ` as transi c oes de entrada e sa da do diagrama de detalhe.

http://www.candidatoreal.com

Figura 12.10: Exemplo de diagrama de atividade

143

http://www.candidatoreal.com

12.7

Elementos auxiliares

Existem dois elementos em UML que n ao possuem nenhum valor real sem antico para o modelo, mas auxiliam a elucidar partes do diagrama. Estes elementos s ao: Linhas de texto. S ao u teis para adicionar informa c oes curtas de texto ao diagrama. S ao textos livres. Notas. S ao u teis para adicionar informa c oes mais detalhadas sobre um objeto ou situa c ao espec ca. Elas possuem a grande vantagem de poderem ser ancoradas a elementos UML para mostrar que a nota pertence a um objeto espec co ou situa c ao. Caixas. S ao ret angulos de forma livre que podem ser usados para agrupar itens, tornando os diagramas mais leg veis.

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 se c 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 programa c ao ou tabelas de bancos de dados relacionais. Componentes podem possui interfaces (isto e classes abstratas com opera c oes) que permitem associa c oes entre componentes.

12.9

Diagramas de distribui c ao

Diagramas de distribui c ao mostram as inst ancias dos componentes de tempo de execu c ao e suas associa c oes. Eles incluem n os que s ao recursos f sicos, tipicamente um computador simples. Eles tamb em mostram interfaces e objetos (inst ancias da classe).

http://www.candidatoreal.com

144

http://www.candidatoreal.com

Cap tulo 13

Ger encia de Congura c ao e Mudan cas


A gest ao da congura c ao do software e uma atividade guarda-chuva e e aplicada ao longo de todo o processo de software. O gerenciamento de congura c ao e de solicita c oes de mudan ca envolve os seguintes itens: Identica c ao dos itens de congura c ao; Restri c ao das mudan cas nesses itens; Auditoria das mudan cas nesses itens; Deni c ao e o gerenciamento das congura c oes desses itens. Os m etodos e ferramentas utilizadas para o controle das mudan cas e considerado com o Sistema de Gerenciamento de Mudan cas de uma organiza c ao. Ele e contem informa c oes chaves sobre os processos de desenvolvimento, promo c ao, implanta c ao e manuten c ao de produtos da organiza c ao e armazenam a base de ativos e de artefatos potencialmente reutiliz aveis resultantes da execu c 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 conitantes, gerando um grande desperd cio para a organiza ca o. Os principais problemas s ao a atualiza c ao simult anea, a notica c ao limitada e a exist encia de v arias vers oes. A seguir, cada uma delas e descrita em detalhes. Atualiza c ao simult anea: Quando dois ou mais membros da equipe trabalham separadamente no mesmo artefato, o ultimo membro a fazer mudan cas desfaz o trabalho realizado pelo anterior. O problema b asico e que se um sistema n ao permite a atualiza c ao simult anea, isso leva as mudan cas em s erie e diminui o ritmo do processo de desenvolvimento. Entretanto, com a atualiza c ao simult anea, o desao e detectar se ocorreram atualiza c oes simultaneamente e resolver 145

http://www.candidatoreal.com

http://www.candidatoreal.com

quaisquer problemas de integra c ao quando essas mudan cas forem incorporadas. Notica c ao limitada: Quando um problema e corrigido nos artefatos compartilhados por v arios desenvolvedores e alguns deles n ao s ao noticados da mudan ca. V arias vers oes: A maioria dos programas de grande porte e desenvolvida em v arias vers oes evolutivas. Uma vers ao pode estar sendo usada pelo cliente, enquanto outra est a em teste e uma terceira ainda est a em desenvolvimento. Se forem encontrados problema em qualquer uma das vers oes, as corre c oes devem ser propagadas entre elas. Isso pode levar a confus oes que levam a confus oes dispendiosas. Um sistema de Gerencia de Congura c ao eu til para gerenciar as diversas variantes de sistemas de software em desenvolvimento pois controla as vers oes que s ao utilizadas em determinadas builds do software ao compilar builds de programas individuais ou de uma nova vers ao do software de acordo com a especica c ao denida pelo usu ario e ao impor pol ticas de desenvolvimento do sistema. Os principais benef cios do gerenciamento da mudan ca s ao: Suporte a diversos m etodos de desenvolvimento; Preserva c ao da integridade do produto; Garantia da abrang encia e precis ao do produto congurado; Ambiente est avel no qual o produto ser a desenvolvido; Restri c ao das mudan cas feitas nos artefatos com base nas pol ticas do projeto; Trilha de auditoria indicando por que, quando e por quem um artefato foi alterado. Al em disso, ele armazena dados detalhados sobre as altera c oes, tais como, quem criou uma vers ao especica, quais vers oes dos c odigo fonte foram utilizadas em determinado build, alem de outras informa c oes relevantes.

13.1
http://www.candidatoreal.com

As Atividades

Na disciplina de Gerencia de Congura c ao as principais atividades s ao: Congurar ambiente; Estabelecer pol ticas; Escrever plano; Criar unidade de implanta c ao; Relatar status de congura c ao; Realizar auditorias de congura c ao; 146

http://www.candidatoreal.com

Estabelecer processo de controle de mudan cas; Revisar solicita c ao de mudan ca; Conrmar, duplicar ou recusar requisi c ao de mudan ca; Crias espa cos de trabalho de integra c ao; Criar baselines; Promover baselines ( de desenvolvimento para testes, de testes para homologa c ao, etc.); Criar espa co de trabalho de desenvolvimento; Fazer mudan cas; Liderar mudan cas; Atualizar espa co de trabalho; Enviar solicita c ao de mudan ca; Atualizar solicita c ao de mudan ca.

13.2

Artefatos

Na disciplina de Gerencia de Congura c ao os principais artefatos s ao: Reposit orio do projeto; Plano de gerenciamento da congura c ao; Unidade de implanta c ao; M etricas do projeto; Registro da auditoria de congura c ao.

13.3
http://www.candidatoreal.com

Pap eis e Responsabilidades

Na disciplina de Gerencia de Congura c ao os principais pap eis e responsabilidades s ao: Gerente de congura c ao Congurar ambiente; Estabelecer pol ticas; Escrever plano; Criar unidades de implanta c ao; Relatar status de congura c ao; Realizar auditoria de congura c ao.

147

http://www.candidatoreal.com

Gerente de controle de mudan ca Estabelecer processo de controle de mudan cas; Revisar solicita c ao de mudan ca; Conrmar, duplicar ou recusar solicita c ao de mudan ca. Integrador Criar espa cos de trabalho de integra c ao; Criar baselines; Promover baselines. Outros papeis Criar espa co de trabalho de desenvolvimento; Fazer mudan cas; Liderar mudan cas; Atualizar espa co de trabalho; Enviar solicita c ao de mudan ca; Atualizar solicita c ao de mudan ca.

http://www.candidatoreal.com

148

http://www.candidatoreal.com

Cap tulo 14

CMM - Capability Maturity Model


CMM, do acr onimo em ingl es de Capability Maturity Model, e uma metodologia de diagn ostico e avalia c ao de maturidade do desenvolvimento de softwares em uma organiza c ao. Ele descreve os principais elementos de um processo de desenvolvimento de software. O CMM descreve os est agios de maturidade atrav es dos quais organiza c oes passam enquanto evoluem o seu ciclo de desenvolvimento de software, atrav es de avalia c ao cont nua, identica c ao de problemas e a c oes corretivas dentro de uma estrat egia de melhoria dos processos. Este caminho de melhoria e denido por cinco n veis de maturidade: 1. Inicial 2. Repetitivo 3. Denido 4. Gerenciado 5. Em Otimiza c ao O CMM fornece ` as organiza c oes orienta c ao sobre como ganhar controle do processo de desenvolvimento de software e como evoluir para uma cultura de excel encia na gest ao de software. O objetivo principal nas transi c oes desses n veis de maturidade e a realiza c ao de um processo controlado e mensurado como a funda c ao para melhoria cont nua. Cada n vel de maturidade possui um conjunto de pr aticas de software e gest ao espec cas, denominadas areas-chave do processo (KPA). Estas devem ser implantadas para a organiza c ao atingir o n vel de maturidade em quest ao. O CMM identica os n veis atrav es dos quais uma organiza c ao deve evoluir para estabelecer uma cultura de excel encia na engenharia de software. Como cada n vel de maturidade do CMM forma a base necess aria sobre a qual o pr oximo n vel ser a constru do, normalmente tentar pular n veis e improdutivo, 149

http://www.candidatoreal.com

http://www.candidatoreal.com

porque n ao haver a estabilidade na melhoria do processo, justamente pela falta da base que a sustentaria.

Figura 14.1: Modelo CMM

14.1
14.1.1

Os n veis de maturidade no CMM


N vel 1 - Inicial

No n vel 1 de maturidade os processos s ao geralmente ad hoc e a organiza c ao geralmente n ao disp oe de um ambiente est avel. O sucesso nestas organiza c oes depende da compet encia e hero smo dos funcion arios e n ao no uso de processos estruturados. Devido ao imediatismo, um ambiente ca otico, o n vel 1 de maturidade raramente produz um produto ou servi co que funcione; assim, freq uentemente eles excedem o or camento e o prazo em seus projetos.

14.1.2

N vel 2 - Repetitivo

No n vel 2 de maturidade, o desenvolvimento do software e repetido. O processo pode n ao se repetir para todos os projetos da organiza c ao. A organiza c ao pode usar ferramentas de Ger encia de Projetos para mapear os custos e o prazo do projeto. A ado c ao de um processo de desenvolvimento ajuda a garantir que pr aticas existentes s ao utilizadas em momentos de stress. Quando estas pr aticas s ao adotadas, os projetos decorrem e s ao gerenciados de acordo com o planejamento inicial. O status do projeto e os servi cos entregues s ao vis veis ao gerenciamento (por exemplo: e poss vel a visualiza c ao de marcos do projeto e o t ermino da maioria das tarefas). T ecnicas de gerenciamento de projetos s ao estabelecidas para mapear custos, prazos, e funcionalidades. Um m nimo de disciplina nos processos e estabelecido para que se possa repetir sucessos anteriores em projetos com escopo e aplica c ao similar. Ainda h a um risco signicante de exceder os custos e estimativas de prazo de desenvolvimento.

http://www.candidatoreal.com

150

http://www.candidatoreal.com

As areas chaves de processo desse n vel de maturidade s ao: Ger encia de Requisitos (RM); Planejamento de Projeto de Software (SPP); Acompanhamento e Supervis ao de Projeto de Software (SPTO); Ger encia de Subcontratato de Software (SSM); Garantia da Qualidade de Software (SQA); Ger encia da Congura ca o de Software (SCM).

14.1.3

N vel 3 - Denido

A organiza c ao possui um conjunto de processos padr oes, os quais s ao a base do n vel 3. Estes est ao estabelecidos e s ao melhorados periodicamente. Estes processos padr oes s ao usados para estabelecer uma consist encia dentro da organiza c ao. Projetos estabelecem seus processos denidos pelo conjunto de padr oes processuais da organiza c ao. O gerenciamento da organiza c ao estabelece os objetivos dos processos baseado no conjunto de padr oes pr e-denidos e garante que estes objetivos sejam encaminhados de forma apropriada. Uma cr tica distin c ao entre os n veis 2 e 3 e o escopo dos padr oes, descri c ao dos processos e procedimentos. No n vel 2, os padr oes, descri c oes de processos e procedimentos podem ser bem diferentes em cada inst ancia espec ca do processo (por exemplo, em um projeto particular). No n vel 3, os padr oes, descri c oes de processo e procedimentos para o projeto s ao guiados pelo conjunto padr ao de processos da organiza c ao. As areas chaves de processo desse n vel de maturidade s ao: Foco no Processo da Organiza c ao (OPF); Deni c ao do Processo da Organiza c ao (OPD); Programa de Treinamento (TP);

http://www.candidatoreal.com

Ger encia Integrada de Software (ISM); Engenharia de Produto de Software (SPE); Coordena c ao entre Grupos (IC); Revis oes T ecnicas Formais (PR).

151

http://www.candidatoreal.com

14.1.4

N vel 4 - Gerenciado

Utilizando m etricas precisas, o gerenciamento pode efetivamente controlar os esfor cos para desenvolvimento de software. Em particular, o gerenciamento pode identicar caminhos para ajustar e adaptar o processo para projetos particulares sem perda de m etricas de qualidade ou desvios das especica c oes. Organiza c oes neste n vel conseguem metas qualitativas para o processo de desenvolvimento de software e de manuten c ao. Subprocessos s ao selecionados conforme a import ancia na performance total do processo. Esses subprocessos selecionados s ao controlados usando t ecnicas estat sticas e qualitativas. Uma cr tica distin c ao entre o n vel de maturidade 3 e 4 e a previsibilidade do desempenho do processo. No n vel 4, o desempenho do processo e controlado usando t ecnicas estat sticas e qualitativas, e e previs vel qualitativamente. No n vel 3, os processos s ao somente previs veis qualitativamente. As areas chaves de processo desse n vel de maturidade s ao: Ger encia Quantitativa do Processo (QPM); Ger encia de Qualidade de Software (SQM).

14.1.5

N vel 5 - Otimizado

O n vel de maturidade 5 foca no cont nuo aumento do desempenho dos processos atrav es de melhoras de inova c ao tecnol ogica e incremental. Objetivos de melhoria quantitativa dos processos para a organiza c ao s ao estabelecidos, continuamente revisados, reetindo os objetivos da organiza c ao, e usando crit erios de ger encia 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 denidos e o conjunto de processos padr oes da organiza c ao s ao alvos de melhoria de m etricas. As areas chaves de processo desse n vel de maturidade s ao:

http://www.candidatoreal.com

Preven c ao de Defeitos (DP); Ger encia da Mudan ca Tecnol ogica (TCM); Ger encia da Mudan ca do Processo (PCM).

14.2

Um pouco mais sobre KPAs

As areas-chave de processo do N vel 2 est ao focadas nas quest oes do projeto de software relacionadas ao estabelecimento de controles b asicos de gerenciamento do projeto, e t em os seguintes objetivos: 152

http://www.candidatoreal.com

Ger encia de Requisitos ` a Estabelecer um entendimento comum entre o cliente e os requisitos (desejos, necessidades) do cliente que ser ao atendidos pela solu c 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 a c oes corretivas se o planejamento original n ao estiver sendo seguido; Ger encia de Subcontratato de Software ` a Selecionar fornecedores qualicados e gerenci a-los de forma eciente; Garantia da Qualidade de Software ` a Fornecer ao gerenciamento visibilidade do processo em uso e dos produtos em constru c ao; Ger encia da Congura ca o de Software ` a Estabelecer e manter a integridade dos produtos durante todo o ciclo de vida do software. As areas-chave do N vel 3 est ao focadas tanto nas quest oes do projeto, quanto da organiza c ao, conforme a organiza c 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 N vel 4 est ao focadas no estabelecimento quantitativo tanto do processo de software, quanto dos produtos em constru c ao. As areas-chave do N vel 5 cobrem quest oes que tanto a organiza c ao, quanto os projetos devem considerar para implementar melhorias no processo de software que sejam cont nuas e mensur aveis.

http://www.candidatoreal.com

Figura 14.2: Areas-chave de processo no modelo CMM

14.3

Efeitos da evolu c ao do n vel de maturidade

A evolu c ao no n vel de maturidade causa efeitos nas pessoas, nas tecnologias e nas pr aticas de medidas. A seguir s ao apresentados esses efeitos em cada n vel 153

http://www.candidatoreal.com

de maturidade. Pessoas N vel 1: Sucesso depende de indiv duos e her ois. Regime constante de emerg encia (apagar inc endio). Relacionamento entre grupos e descoordenado e muitas vezes conitante; N vel 2: Sucesso ainda depende de indiv duos, mas passam a contar com apoio gerencial. Os compromissos s ao compreendidos e gerenciados. Existe treinamento para algumas fun c oes; N vel 3: Grupos de projeto trabalham de maneira coordenada. O treinamento e planejado de acordo com as necessidades de cada papel e aplicado convenientemente; N vel 4: Existe um forte sentido de trabalho em equipe; N vel 5: Todos est ao engajados em atividades de melhoria cont nua. Tecnologia N vel 1: A introdu c ao de novas tecnologias e arriscada; N vel 2: Atividades bem denidas facilitam a introdu c ao de novas tecnologias; N vel 3: Novas tecnologias s ao avaliadas qualitativamente; N vel 4: Novas tecnologias s ao avaliadas quantitativamente; N vel 5: Novas tecnologias s ao planejadas e introduzidas com total controle. Medidas N vel 1: Coleta de dados e feita de maneira ad hoc; N vel 2: Coleta de dados de atividades de planejamento e acompanhamento e feita de maneira sistem atica; N vel 3: Todos os processos denidos t em coleta sistem atica de dados, os quais s ao compartilhados por todos os projetos da organiza c ao; N vel 4: A deni c ao e coleta de dados s ao padronizadas na organiza c ao e os dados s ao usados para entender os processos de maneira quantitativa e estabiliz a-los; N vel 5: Os dados coletados s ao usados para avaliar e selecionar possibilidades de melhoria de processos.

http://www.candidatoreal.com

154

http://www.candidatoreal.com

Parte IV

Linguagem de Programa c ao Java

http://www.candidatoreal.com

155

http://www.candidatoreal.com

Cap tulo 15

Conceitos B asicos de Java


15.1 Pacotes

Em projetos pequenos e comum colocar todos os arquivos java em um u nico diret orio. Essa e uma abordagem r apida, simples. No entanto, se o pequeno projeto come car a crescer, o n umero de arquivos aumentar a e administr a-los em um u nico diret orio pode se tornar um problema. Pacotes n ao s ao nada mais que uma forma de organiza os arquivos que integram o projeto em diferentes diret orios de acordo com suas funcionalidades ou categoria a qual eles perten cam. Por exemplo, os arquivos no pacote java.io s ao todos relacionados com funcionalidades de I/O, enquanto os arquivos do pacote java.net fornecem funcionalidades para tratar de redes. Em aplica c oes com interface gr aca, por exemplo, e muito comum encontrar um diret orio chamado ui (user interface). Al em de melhorar a organiza c ao dos arquivos que comp oe o projeto, a utiliza c ao de pacotes ajuda a evitar colis ao de nomes entre classes. Por exemplo: Se um programador denir uma classe chamada Vector, esse nome iria colidir com a classe Vector da JDK. No entanto, isso n ao ocorre por que a JDK usa java.util como um nome de pacote para a classe Vector. Dessa forma, a classe implementada pelo programador pode se chamar Vector. A gura 15.1 mostra uma estrutura de diret orios criada pela utiliza c ao de 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

Modicadores de Acesso

Os modicadores de acesso s ao keywords adicionadas ao c odigo para determinar se atributos, m etodos ou classes poderam ser acessados a partir de outras classes. Os modicadores de acesso presentes na linguagem Java s ao: public, private, protected e package-private (impl cito quando n ao e usado nenhum modicador na declara c ao da classe, atributo ou m etodo). Uma classe p ublica pode ser acessada por qualquer outra classe. Caso seja declarada sem o modicador public, a classe ser a package-private, ou seja, s o poder a ser acessada por classes do mesmo pacote. Os m etodos e atributos aceitam outros modicadores al em do public. O modicador private d a acesso somente dentro da classe, enquanto o modicador protected permite acesso dentro do pacote e ` as subclasses. Assim como nas classes, caso nenhum modicador seja declarado, ca impl cito o modicador package-private. A tabela 15.1 abaixo resumo as permi c oes de acesso impostas por cada um dos modicadores: Modicador public private protected nenhum Pacote sim n ao sim sim Subclasse sim n ao sim n ao Todos sim n ao n ao n ao

http://www.candidatoreal.com

Tabela 15.1: Modicadores de Acesso

15.3

Vari aveis

Na linguagem de programa c ao Java s ao denidos 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

modicador static. Atributos n ao est aticos s ao conhecidos com vari aveis de inst ancia por que seus valores s ao u nicos para cada inst ancia de uma classe; Vari aveis de Classe (Atributos est aticas): Uma vari avel de classe e todo atributo declarado com o modicador static. Isso indica ao compilador que existe apenas uma c opia da vari avel, n ao importando o n umero de vezes que essa classe foi instanciada. Portanto, quando o valor de uma vari avel de classe e alterada em um dos objetos, o novo valor se torna vis vel para todos os outros objetos da mesma classe. Para impedir que uma vari avel de classe tenha seu valor alterado ela deve ser declarada com o mocador nal. Vari aveis Locais: As vari aveis locais s ao utilizadas para armazenar o estado tempor ario dos m etodos. A sintaxe de declara c ao de uma vari avel local e similar a de declara c ao de uma vari avel de inst ancia. O que determina se uma vari avel e local e a parte do c odigo em que ela e declarada - entre as chaves que determinam o in cio e o m de um m etodo. Uma vari avel e vis vel apenas para o m etodo no qual foi declarada; n ao pode ser acessada do resto da classe. public class Bicicleta { // Vari avel de Inst^ ancia public int velocidade = 0; // Vari avel de Classe public static int qtdRodas = 2; // Vari avel de Classe com valor constante public static final String marca = "Caloi"; public void aumentaVelocidade (int incremento){ // Vari avel Local int novaVelocidade; = velocidade + incremento; velocidade = novaVelocidade; } }

http://www.candidatoreal.com

15.4

Operadores

A lista abaixo sumariza os operadores suportados pela linguagem Java: Operador de Atribui c ao Simples = Operador de Atribui c ao Simples

158

http://www.candidatoreal.com

Operadores aritm eticos + / % Adi c ao (Tamb em utilizado para concatena c ao de Strings) Subtra c ao Multiplica c 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 Compara c ao == != > >= < <= instanceof Igual Diferente Maior Maior ou Igual Menor Menor ou Igual Compara um objeto a um tipo espec co

Operadores Condicionais && || ?: AND Condicional OR Condicional Tern ario (Forma curta para if-then-else)

Operadores Bit a Bit e de Deslocamento (Shift)

http://www.candidatoreal.com

<< >> >>> & |

Complemento bit a bit un ario shift para esquerda Shift para direita Shift para direita sem sinal AND bit a bit OR exclusivo bit a bit OR bit a bit

159

http://www.candidatoreal.com

15.5

Express oes, Senten cas e Blocos

Uma express ao e uma constru c ao feita de vari aveis, operadores e chamadas de m etodos, 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 senten ca (statements ) e denida como uma unidade completa de execu c ao. Os seguintes tipos de express oes podem se tornar senten cas quando terminadas com um ponto e v rgula: (i) Express oes de Atribui c ao; (ii) Express oes com ++ ou ; (iii) Chamada de m etodos e (iv) Express oes de Cria c 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 declara c ao de vari avel e de controle de uxo. Um bloco e um grupo de zero ou mais statements entre um par de chaves. O exemplo a seguir ilustra o uso de blocos em Java:

http://www.candidatoreal.com

class BlockDemo { public static void main(String[] args) { boolean condition = true; if (condition) { // begin block 1 System.out.println("Condition is true."); } // end block one else { // begin block 2 System.out.println("Condition is false."); } // end block 2 } } 160

http://www.candidatoreal.com

15.6

Comandos de Controle de Fluxo

As statements de um c odigo geralmente s ao executadas na medida na ordem em aparecem. No entanto, os comandos de controle de uxo podem ser utilizadas ara interromper o uxo de execu c ao empregando decis oes, looping e desvios, permitindo que ao programa executar condicionalmente blocos de c odigo particulares. Os principais comandos de controle de uxo 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) { int testscore = 76; char grade; if (testscore >= 90) { grade = A; } else if (testscore >= 80) { grade = B; } else if (testscore >= 70) { grade = C; } else if (testscore >= 60) { grade = D; } else { grade = F; } //O resultado ser a C pois, uma vez que a condi c~ ao e atendida, //o restante do c odigo If-Then-Else n~ ao e mais avaliado System.out.println("Grade = " + grade); 161

http://www.candidatoreal.com

http://www.candidatoreal.com

} } Switch class SwitchDemo { public static void main(String[] args) { int month = 2; int year = 2000; int numDays = 0; switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: numDays = 31; break; case 4: case 6: case 9: case 11: numDays = 30; break; case 2: if ( ((year % 4 == 0) && !(year % 100 == 0)) || (year % 400 == 0) ) numDays = 29; else numDays = 28; break; default: System.out.println("Invalid month."); break; } //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

//Pode acontecer do codigo n~ ao ser executado nenhuma vez while (count < 11) { System.out.println("Count is: " + count); count++; } } } //Exemplo Do-While class DoWhileDemo { public static void main(String[] args){ int count = 1; do { System.out.println("Count is: " + count); count++; //Teste ao fim da execu c~ ao do bloco de c odigo //C odigo e executado ao menos uma vez } while (count <= 11); } } For //Exemplo 1 class ForDemo { public static void main(String[] args){ for(int i=1; i<11; i++){ System.out.println("Count is: " + i); } } } //Exemplo 2 for ( ; ; ) { //infinite loop // c odigo } //Exemplo 3 class EnhancedForDemo { 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

public static void main(String[] args) { int[] arrayOfInts = {32,87,3,589,12,1076,2000,8,622,127}; int searchfor = 12; int i; boolean foundIt = false; for (i = 0; i < arrayOfInts.length; i++) { if (arrayOfInts[i] == searchfor) { foundIt = true; //Encerra o loop for break; } } if (foundIt) { System.out.println("Found " + searchfor + " at index " + i); } else { System.out.println(searchfor + " not in the array"); } } } //Exemplo 2 class BreakWithLabelDemo { public static void main(String[] args) { int[][] arrayOfInts = {{32,87,3,589}, {12,1076,2000,8}, {622,127,77,955}}; int searchfor = 12; int i; int j = 0; boolean foundIt = false; search: for (i = 0; i < arrayOfInts.length; i++) { for (j = 0; j < arrayOfInts[i].length; j++) { if (arrayOfInts[i][j] == searchfor) { foundIt = true; //Encerra o loop for mais interno //e desvia para o label search break search; } } } if (foundIt) { System.out.println("Found " + searchfor + " at " + i + ", " + j); } else { System.out.println(searchfor + " not in the array"); 164

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; int max = searchMe.length() - substring.length();

http://www.candidatoreal.com

test: for (int i = 0; i <= max; i++) { int n = substring.length(); int j = i; int k = 0; while (n-- != 0) { if (searchMe.charAt(j++)!= substring.charAt(k++)) { //Interrompe a itera c~ ao do loop while e vai //para proxima itera c~ ao do loop for, //marcada pelo label test continue test; 165

http://www.candidatoreal.com

} } foundIt = true; break test; } System.out.println(foundIt ? "Found it" : "Didnt find it"); } }

15.7

Classes Aninhadas

No Java existe a possibilidade de se denir classes dentro de outra classe, como se fossem atributos ou m etodos. Algumas das vantagens de se utilizar esse recurso do Java s ao: Legibilidade: Classes podem ser sgrupadas por similaridade; Ocultamento: Podem ser privadas ou protegidas; Redigibilidade: Classes internas possuem acesso aos membros privados da classe que a deniu e vice-versa. Na verdade, o recurso de classes internas surgiu no Java 1.1 com esse prop osito. Como s ao denidas dentro de outras classes, o c odigo fonte ca no mesmo arquivo .java. Ao compilar, gera-se v arios arquivos .class, compondo o nome da classe externa e interna. Exemplo: Externa.java cont em a classe Externa, que dene uma classe interna chamada Interna. Ao compilar, gera-se Externa.class importante ressaltar que a classe interna n e Externa$Interna.class. E ao pode ter o mesmo nome da classe externa que a dene. No Java existem os seguintes tipos de classes internas: Classes Aninhadas Classes Instanciadas Classes Membro Classes Locais Classes An onimas

http://www.candidatoreal.com

As classes aninhadas s ao os tipos mais simples de classes internas. Uma classe e denida dentro da outra como se fosse um membro static. Elas permitem denir 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

private Valor valor; public Par(Chave chave, Valor valor) { this.chave = chave; this.valor = valor; } //Classe interna static class Chave { private String nome; public Chave(String nome) { this.nome = nome; } } //Classe interna com prote c~ ao de acesso protected static class Valor { private int valor; public Valor(int valor) { this.valor = valor; } } } public class Teste { public static void main(String[] args) { Par.Chave chave = new Par.Chave("Nota"); Par.Valor valor = new Par.Valor(10); Par par = new Par(chave, valor); } }

15.8
http://www.candidatoreal.com

Tipos Enumerados

Tipos enumerados s ao aqueles que possuem um conjunto nitos de valores que as vari aveis podem assumir. Por exemplo: esta c 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

= = = =

0; 1; 2; 3;

167

http://www.candidatoreal.com

Esse tipo de padroniza c ao apresentava os seguintes problemas: N ao seguro quanto ao tipo: Como uma season e representada por um int, pode-se passar qualquer valor inteiro (inclusive diferente de 0,1,2,3) quando uma season for requerida; necess Sem namespace: E ario criar um padr ao de nomenclatura para evitar colis ao com outros tipos enumerados. (Exemplo: SEASON ). Valores imprimidos n ao s ao explicativos: Como os valores s ao int, quando impressos n ao apresentam a informa c ao que representam diretamente. Para contornar esses problemas a partir do Java 5 foi introduzido o Typesafe Enum Pattern, a partir do qual os tipos enumerados podem ser expressos de forma mais simples. O c odigo abaixo mostra o uso do novo padr ao para tipos enumerados: public class Weather { //Define tipo enumerado Refrigerante public enum Season = {winter, spring, summer, fall}; private printSeasons() { //Loop recuperando cada um dos valores poss veis de Season for (Season s : Season.values()){ System.out.println(s); } } }

15.9

Anota c oes

http://www.candidatoreal.com

Anota c oes (annotations) prov eem dados sobre o programa mas n ao s ao parte do do programa propriamente dito. Elas n ao possuem efeito direto na opera c 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 congura c ao, por exemplo). A id eia e que o programador diga o que tem que ser feito utilizando as anota c oes e ferramentas auxiliares fa cam o restante do trabalho. Alguns exemplos do uso de anota c oes s ao: Informa c oes para o compilador: Anota c oes podem ser utilizadas pelo compilador para detectar erros ou sumprimir mensagens de warning; Processamento em tempo de Compila c ao ou Deploy: Ferramentas auxiliares podem processar as anota c oes para gerar c odigo, arquivos XML etc; Processamento em tempo de Execu c ao: Algumas anota c oes podem ser processsadas em tempo de execu c ao;

168

http://www.candidatoreal.com

Documenta c ao: Anota co es podem ser utilizadas para substituir coment arios no c odigo. Os tr es pr e-dendos de anota c 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 m etodo 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 anota c ao n ao seja obrigat orio para sobrescrever um m etodo, utiliz a-la ajuda a prevenir erros; @SuppressWarnings: Indica ao compilador situa c oes em que os warnings devem ser suprimidos; A seguir alguns exemplos de utiliza c ao das anota c 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(); }

15.10
http://www.candidatoreal.com

Gen ericos

Os gen ericos s ao um recurso introduzido a partir Java 5 e permite ao programador escrever c odigo abstraindo tipos de dados. Os gen ericos 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. Al em de incoveniente, isso e inseguro. O compilador n ao checa se o cast realizado e do mesmo tipo do armazenado na cole c ao. Dessa forma, o cast pode falhar em tempo de execu c 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 gen ericos prov eem uma forma de comunicar ao compilador o tipo armazenado na cole c ao, permitindo que a checagem seja feita em tempo de compila c ao. Al em de evitar erros em tempo de execu c ao, a utiliza c ao de gen ericos 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 gen ericos t em como grande vantagem o aproveitamento de c odigo. A interface Collection e um exemplo disso. As opera c oes de adicionar ou remover um novo elemento, determinar o tamanho, vericar 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 gen ericas s ao List e Iterator. A seguir, alguns trechos dessas duas interfaces como denidas no pacote java.util. public interface Iterator<E> { E next(); boolean hasNext(); //mais c odigo ... } public interface List<E> { void add(E x); Iterator<E> iterator(); //mais c odigo ... } Gen ericos permitem implementa c oes mais sosticadas como: //Wildcards ou Coringas //M etodo com par^ ametro Casulo. Aceita Casulo de qualquer tipo void imprimir (Casulo<?> c) { // c odigo do m etodo ... } //Limitando o tipo gen erico aceito pelo m etodo //M etodo s o aceita Casulo de Forma ou Casulos de subclasses de Forma 170

http://www.candidatoreal.com

http://www.candidatoreal.com

void desenhar (Casulo<? extends Forma> c){ // c odigo do m etodo ... }

15.11

Reex ao

A Reection permite um programa Java examinar ou fazer a introspec c ao nele mesmo, ou seja, olhar e examinar suas propriedades e estrutura. Com isso, voc e pode, por exemplo obter o nome de todos os membros de uma classe, como atributos e m etodos, bem como executar um m etodo usando a Introspection. Esse recurso e utilizado, por exemplo, pelos ambientes de desenvolvimento (as IDEs) para examinar e exibir a estrutura e conte udo das classes e beans. A seguir um exemplo do uso de refetions.

import java.lang.reflect.*; public class Classe1 { private int funcao1( Object p, int x ) throws NullPointerException { if (p == null) throw new NullPointerException(); return x; } public static void main(String args[]) { try { //Carrega a classe Class cls = Class.forName("Classe1"); //Recupera a lista de m etodos da classe Method methlist[] = cls.getDeclaredMethods(); //Imprime informa c~ oes (m etodos, modificadores, exce c~ oes) //sobre cada um dos m etodos da classe for (int i = 0; i < methlist.length; i++) { Method m = methlist[i]; System.out.println("-------------------------------------"); System.out.println("nome = " + m.getName()); System.out.println("-------------------------------------"); System.out.println("membro de:" + m.getDeclaringClass()); System.out.println("modificador:" + Modifier.toString(m.getModifiers())); //Recupera lista de par^ ametros do m etodo Class pvec[] = m.getParameterTypes(); for (int j = 0; j < pvec.length; j++) System.out.println("par^ ametro #" + j + " " + pvec[j]); //Recupera a lista de excess~ oes do m etodo Class evec[] = m.getExceptionTypes(); for (int j = 0; j < evec.length; j++)

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 ------------------------------------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

http://www.candidatoreal.com

172

http://www.candidatoreal.com

Cap tulo 16

Classes Essenciais
16.1 Exception e Controle de Exce c oes

Uma exce c ao e um evento que ocorre durante a execu c ao de um programa interrompendo seu uxo normal de execu c ao. Quando um erro ocorre dentro de um m etodo, o m etodo cria um objeto chamado exception e o entrega ao controle de execu c ao (runtime system), que cont em informa c 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 lan camento de uma exce c ao (throwing an exception). O runtime system ent ao pesquisa na pilha de chamadas por um m etodo que contenha um bloco de c odigo capaz de tratar a exce c ao. Esse bloco de c odigo e chamado tratador de exce c oes (exception handler). A pesquisa come ca no m etodo onde o erro ocorreu e procede na pilha na ordem reversa em que os m etodos foram chamados. Quando um tratador adequado e encontrado, o runtime syste o entrega a exce c ao. Um tratador e considerado adequado quando o tipo da exce c ao lan cada coincide com o tipo denido no tratador (IOException, ClassNotFoundException, etc.). Quando um tratador e escolhido diz-se que ele capturou a exce c ao (catches the exception). Se o runtime system pesquisa em toda a pilha de m etodos e n ao encontrar um tratador adequado, o programa ser a encerrado. A gura 16.1 mostra a ordem de pesquisa por um tratador para a exce c ao.

http://www.candidatoreal.com

16.1.1

Exce c oes t picas

Em Java exce c oes s ao objetos. A classe Exception e a superclasse de todas as exce c oes. Exemplos t picos de exce c oes s ao: Indice de uma array fora do intervalo permitido (ArrayIndexOutOfBoundsException); Problemas em opera c oes aritm eticas, como overows e divis oes por zero (ArithmeticException); 173

http://www.candidatoreal.com

Figura 16.1: Procura pelo tratador de exce c oes Argumentos inv alidos numa chamada a um m etodo (IllegalArgumentException); Uso de uma refer encia que n ao aponta para nenhum objeto (NullPointerException); Acesso a um arquivo inexistente (FileNotFoundException); Erros de banco de dados (SQLException); A classe Exception, por sua vez, e subclasse de Throwable, o que permite que as exce c oes sejam lan cadas. Se o programador desejar que a exce c ao assim lan cada seja tratada fora do m etodo que a gerou, ele deve explicitar isto usando a palavra chave throws seguida do tipo de exce c ao, na declara c ao do m etodo. //Exemplo 1: M etodo indica que todas exce c~ oes ser~ ao lan cadas, ou seja, // n~ ao ser~ ao tratadas internamente. public void simpleMethod1 (String x) throws Exception { //... if (problema1) throw Exception; //... } //Exemplo 2: M etodo indica que as exce~ oes do tipo excecao1 // e excecao2 nao ser~ ao tratadas internamente. public void simpleMethod2 (int a, int b) throws excecao1, excecao2 { //... if (problema1) throw excecao1; if (problema2) throw excecao2; //... } Na verdade, existe uma classe de exce c oes, a RuntimeException, que n ao precisam ser lan cada explicitamente. RuntimeException e uma superclasse das exce c oes que podem ocorrer durante a opera c ao normal da m aquina virtual Java. 174

http://www.candidatoreal.com

http://www.candidatoreal.com

Uma vez que a exce c ao foi lan cada, a execu c ao do m etodo e interrompida e o controle volta ao objeto que chamou este m etodo. Exemplos de classes que herdam de RuntimeException s ao ArithmeticException, BuerOverowException, ClassCastException, IllegalArgumentException, IndexOutOfBoundsException, NullPointerException, SystemException, etc. A gura 16.2 mostra como as exce c oes est ao organizadas na hierarquia de classes da linguagem Java.

Figura 16.2: Exceptions e Errors Al em das exce c oes t picas, a gura 16.2 mostra tamb em a classe Error. Error e uma subclasse de Throwable que indica situa c oes excepcionais externas a aplica c ao, das quais a aplica c ao nem sempre e capaz de se recuperar, por exemplo, um problema de hardware. Uma aplica c ao pode decidir por capturar um erro com objetivo de noticar o usu ario sobre o problema, no entanto, quase sempre faz mais sentido para o programa imprimir um stack trace e encerrar. A classe VirtualMachineError e um exemplo de subclasse de Error, que engloba problemas como falta de mem oria (OutOfMemoryError) e estouro de pilha (StackOverowError).

16.1.2

Capturando Exce c oes

Para capturar uma exce c ao e utilizada a seguinte estrutura de c odigo:

http://www.candidatoreal.com

try { // C odigo que pode gerar exce c~ oes dos tipos // ExceptionType1 e ExceptionType2 }catch(ExceptionType1 opa1){ // C odigo para lidar com uma exce c~ ao do tipo // ExceptionType1 }catch( ExceptionType2 opa2 ){ // C odigo para lidar com uma exce c~ ao do tipo // ExceptionType2

175

http://www.candidatoreal.com

}finally{ // C odigo que deve ser executado em qualquer caso } Quando ocorre uma exce c ao, os blocos catch s ao examinados sucessivamente at e que o argumento corresponda ao tipo da exce c ao. No exemplo acima, se ExceptionType2 for uma subclasse de ExceptionType1, o segundo bloco catch nunca ser a alcan cado. Neste caso, deve-se inverter a ordem dos blocos catch. O bloco nally e opcional, e normalmente e usado para realizar a c oes que independem da ocorr encia de uma exce c ao em um dado bloco de comandos. Por exemplo, em um sistema que escreve informa c oes em um banco de dados, e necess ario fechar a conex ao com este u ltimo ao nal da opera c ao de escrita, independentemente da opera c ao ter sido bem-sucedida ou n ao. Tendo isso em vista, o comando respons avel por fechar a conex ao deve car dentro de um bloco nally.

16.2

Threads e Concorr encia

Em programa c ao concorrente existem duas unidades b asicas de execu c ao: processos e threads. Em java, os recrsos para programa c ao concorrente s ao mais voltados para o uso de threads. Threads s ao comumente chamadas de processos leves. Processos e threads prov eem um ambiente de execu c 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 eci encia da comunica c ao, por em a tornando potencialmente problem atica. Cada aplica c ao possui pelo menos uma thread - ou v arias, se considerarmos a threads de sistema. Do ponto de vista do programador, uma aplica c ao come ca com apenas uma u nica thread chamada main, e essa possui a habilidade para criar novas threads.

http://www.candidatoreal.com

16.2.1

Denindo e Iniciando uma Thread

Existem duas formas b asicas de se denir uma thread em Java: implementar a interface Runnable ou extender a classe Thread. O c odigo para cada um das formas segue abaixo: //Implementando a interface Runnable public class HelloRunnable implements Runnable { public void run() { System.out.println("Hello from a thread!"); } 176

http://www.candidatoreal.com

public static void main(String args[]) { (new Thread(new HelloRunnable())).start(); } } //Extendendo a classe Thread public class HelloThread extends Thread { public void run() { System.out.println("Hello from a thread!"); } public static void main(String args[]) { (new HelloThread()).start(); } } A primeira forma e mais geral e ex vel, porque objetos Runnable podem herdar de outras classes diferentes de Thread. No entanto, a segunda forma e mais simples e funciona bem para aplica c oes que pouco complexas. Em ambos os casos, a tarefa executada pela thread deve ser implementada no m etodo Thread.run e para inici a-la deve ser utilizado o m etodo Thread.start.

16.2.2

Pausando a execu c ao com sleep

Thread.sleep faz com que a thread corrente suspenda sua execu c ao por um per odo de tempo espec co. Essa uma forma de liberar o processador para outras threads ou processos que estejam rodando no sistema. O par ametro do m etodo Thread.sleep e o tempo em milissegundos. public class SleepMessages { public static void main(String args[]) throws InterruptedException { String importantInfo[] = { "Mares eat oats", "Does eat oats", "Little lambs eat ivy", "A kid will eat ivy too" }; for (int i = 0; i < importantInfo.length; i++) { //Pausa a thread corrente (main) por 4 segundos Thread.sleep(4000); //Imprime uma mensagem System.out.println(importantInfo[i]); } } }

http://www.candidatoreal.com

177

http://www.candidatoreal.com

16.2.3

Interrup c oes

Uma interrup c ao indica que a thread deve parar o que est a fazendo e come car o programador quem deve denir como a thread deve a fazer outra coisa. E responder a uma interrup c ao. O uso mais comum de interrup c oes e nalizar a execu c 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 m etodo join e usado para fazer com que uma thread aguarde at e que outra thread termine. Em geral, o join e utilizado para a thread esperar pelo t ermino da execu c ao de suas threads lhas. Imagine uma aplica c ao que dependa da execu c ao de tr es tarefas independentes A, B e C. A aplica c ao s o pode continuar quando cada uma das tarefas estiver sido completada. Portanto, a aplica c ao (thread principal) deve executar o m etodo join para cada uma das tarefas A,B e C. O c odigo java para essa situa c ao teria a seguinte estrutura: public static void main(String args[]) { System.out.println("Thread main iniciada"); //C odigo inicial da thread main //Threads auxiliares A, B e C Thread a = new thread_tarefaA(); Thread b = new thread_tarefaB(); Thread c = new thread_tarefaC();

http://www.candidatoreal.com

//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

System.out.println("Thread main encerrada"); }

16.2.5

Sincroniza c ao

As threads se comunicam entre si essencialmente por meio de compartilhamento no acesso de atributos e refer encias a objetos. Essa e uma forma de comunica c ao eciente, por em permite a ocorr encia de dois tipos de erros: interfer encia entre threads e erros de consist encia de mem oria. Para contornar esses problemas o Java oferece o recurso de sincroniza c ao. O problema da interfer encia ocorre quando duas opera c oes, rodando em threads diferentes, mas atuando sobre o mesmo dado, se intercalam.

//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(); Os erros de inconsist encia de mem oria ocorrem quando diferentes threads t em diferentes vis oes daquilo que deveria ser o mesmo dado. As causas dos erros de inconsist encia de mem oria s ao complexas e est ao fora do escopo dessa se c ao. A chave para evitar esse tipo de erro est a em entender o que o Java chama de relacionamento happens-before. Esse relacionamento consiste em garantir que a mem oria escrita por uma statement espec ca est a vis vel para uma outra statement. Para criar esse tipo de relacionamento entre threads pode ser utilizado o m etodo Thread.join, como discutido anteriormente. A linguagem Java tamb em prov e outros dois idiomas para sincroniza c ao que s ao: m etodos sincronizados e statements sincronizadas. Com os m etodos sincronizados n ao e poss vel realizar duas chamadas simult aneas do m etodo sobre um u nico objeto. Quando uma thread est a executando um m etodo sincronizado sobre um objeto, todas as outras threads que invocam m etodos sincronizados para o mesmo objeto suspendem sua execu c ao at e que a primeira thread libere o objeto. Al em disso, os m etodos sincronizados estabelecem automaticamente uma rela c ao de happens-before com todas as chamadas subsequentes de m etodos sincronizados. Isso garante que a as mudan cas no estado do objeto estar ao vis veis para todas as threads. public class SynchronizedCounter { 179

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 m etodos sincronizados, as statements sincronizadas devem espec car para qual objeto dever a ser obtido o lock. Essa t ecnica pode ser u til quando e implementar concorr encia com uma granularidade mais na. Uma exemplo de c odigo para cria c 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();

public void inc1() { //Lock somente sobre o objeto lock1 synchronized(lock1) {c1++;} } public void inc2() { //Lock somente sobre o objeto lock2 synchronized(lock2) {c2++;} } }

16.2.6

Executores e Thread Pools

http://www.candidatoreal.com

Nos exemplos mostrados, existe uma conex ao direta entre a tarefa executada por uma nova thread, como denida no objeto Runnable, e a nova thread em sim, denida por um objeto Thread. Isso funciona bem para aplica c oes pequenas. Em aplica c oes de grande porte e mais apropriado separar a cria c ao e gerenciamento da threads do resto da aplica c ao. Os objetos que encapsulam as fun c oes de gerenciamento de threads s ao chamados executores (executors ). O pacote java.util.concurrency dene tr es interfaces executoras que s ao Executor, ExecutorService e ScheduledExecutorService. Essas interfaces denem m etodos para gerenciamento de threads na aplica c ao. Exemplo: Se r e um objeto do tipo Runnable, e e e um objeto do tipo Executor o trecho de c odigo (new Thread(r)).start(); poderia ser substitu do por e.execute(r); 180

http://www.candidatoreal.com

Na primeira forma, uma nova thread seria criada para realizar a tarefa denida em r, enquanto na segunda, isso dependeria da implementa c 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 execu c ao das tarefas. Quando o m etodo execute e chamado sobre o objeto r, uma worker thread e alocada para rodar a tarefa denida em r. Caso n ao exista nenhuma worker thread dispon vel no momento, r e colocada em uma la de espera at e que uma worker thread seja liberada. Usando pools de threads e poss vel minimizar o overhead de cria c ao de threads e otimizar o gerenciamento de mem oria, uma vez que e poss vel denir o n umero m aximo de threads no pool de acordo com as necessidades da aplica c ao e quantidade de recursos do sistema.

16.3
16.3.1

Streams e Serializa c ao
I/O Streams

Um I/O stream pode representar diferentes tipos de fonte e destino, incluindo arquivos em discos, dispositivos, outros programas e mem oria. Os streams suportam diversos tipos de dados, como simples bytes, tipos de dados primitivos e at e mesmo objetos complexos. Alguns streams simplesmente passam os dados, enquanto outros realizam algum tipo de manipula c ao e transforma c ao conforme necess ario. A seguir ser ao mostrados alguns exemplos da utiliza c ao de streams. Streams de Bytes Byte streams s ao utilizados para realizar input e output de bytes. Todas as classes byte stream herdam de InputStream e outputStream. Os streams de bytes representam o n vel mais baixo que pode ser alcan cado, e devem evitados. Todas as outras classes de stream s ao constru das com base na opera c oes denidas pelas classes de byte stream. //Exemplo 1: Stream de Bytes //Copia o arquivo xanadu.txt para outagain.txt byte a byte.

http://www.candidatoreal.com

import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class CopyBytes { public static void main(String[] args) throws IOException { FileInputStream in = null; FileOutputStream out = null; try { in = new FileInputStream("xanadu.txt"); out = new FileOutputStream("outagain.txt"); 181

http://www.candidatoreal.com

int c; while ((c = in.read()) != -1) { out.write(c); } } finally { if (in != null) {in.close();} if (out != null) {out.close();} } } } Streams de Caracteres A plataforma java armazena os valores dos caracteres utilizando a conve c ao Unicode. As opera c 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 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 m de linha. O c odigo a seguir executa a mesma tarefa do exemplo 1, por em copia o arquivo linha a linha e utiliza estrat egias de buering. //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

http://www.candidatoreal.com

import import import import

java.io.FileWriter; java.io.BufferedReader; java.io.PrintWriter; java.io.IOException;

public class CopyLines { public static void main(String[] args) throws IOException { BufferedReader inputStream = null; PrintWriter outputStream = null; try { inputStream = new BufferedReader(new FileReader("xanadu.txt")); outputStream =new PrintWriter(new FileWriter("characteroutput.txt")); String l; while ((l = inputStream.readLine()) != null) { outputStream.println(l); } } finally { if (inputStream != null) {inputStream.close();} if (outputStream != null) {outputStream.close();} } } } No exemplo 1 o c odigo utiliza opera c oe de I/O n ao buerizadas. Isso signica que a cada requisi c ao de leitura ou escrita expressa no c odigo e prontamente tratada pelo sistema operacional, disparando, por exemplo, acesso ao disco ou a rede. ` Para reduzir esse tipo de overhead a plataforma Java implementa I/O streams buerizados. Os input streams l eem dados de uma area de buer; a API input nativa s o e chamada quando esse buer est a vazio ou n ao cont em os dados procurados. Similarmente, os output streams escrevem dados para uma area de buer, enquanto a API nativa de output s o e chamada quando o buer de escrita est a cheio ou quando algum comando que implique no ushing e utilizado, por exemplo, println.

16.3.2
http://www.candidatoreal.com

Serializa c ao - Streams de Objetos

Os streams apresentados at e agora s ao chamados data streams. Assim como os data streams suportam I/O de tipos primitivos de dados, os object streams suportam I/O para objetos. A maioria das classes padr ao do java suportam a serializa c ao de seus objetos. Para que uma objetos de uma classe possam ser serializados a classe deve implementar a interface Serializable. A interface Serializable n ao dene m etodos ou atributos, servindo apenas para indicar que uma classe e serializ avel. As classes de streams de objetos s ao ObjectInputStream e ObjectOutputStream. Essas classes implementam as interfaces ObjectInput e ObjectOutput, que por sua ve s ao subitnerfaces de DataInput and DataOutput. Isso signica dizer que todos os m etodos para I/O de tipos de dados primitivos tamb em s ao 183

http://www.candidatoreal.com

implementados nas classes de stream para objetos. A seguir, um exemplo simples para serializa c 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(); // Desserializa o objeto a partir do arquivo File file = new File("pessoa.ser"); ObjectInputStream in = new ObjectInputStream( new FileInputStream(file) ); Pessoa clone = (Pessoa) in.readObject(); in.close();

http://www.candidatoreal.com

// Testa um atributo do novo objeto clone System.out.println("Nome de p: " + p.nome); System.out.println("Nome do clone de p: " + clone.nome); }catch (IOException e) { //Pode ser gerado na serializa c~ ao ou desserializa c~ ao System.out.println(e.getMessage()); }catch (ClassNotFoundException e) { //Pode ser gerado desserializa c~ ao System.out.println(e.getMessage()); } } 184

http://www.candidatoreal.com

} Embora as classes ObjectInputStream e ObjectOutputStream sejam sucientes para serializar e desserializar a maioria dos objetos no Java, ela possui o incoveniente de utilizar arquivos bin arios, o que diculta a leitura direta por um usu ario ou por outras aplica c oes (escritas em outras linguagens, por exemplo). Muitas aplica c oes realiz ao serializa c ao com arquivos XML, o que permite contornar os problemas da legibilidade e integra c ao mais facilmente. Existem in umeros pacotes para serializa c ao de objetos em arquivos XML. Quando se est a trabalhando com java beans, por exemplo, duas classes muito utilizadas para serializa c ao de objetos em XML s ao java.beans.XMLEncoder e java.beans.XMLDecoder. A seguir, um trecho de c odigo exemplicando o uso dessas classes.

PessoaXML p = new PessoaXML("Maria",10,"feminino"); // Serializa o objeto para um arquivo XML XMLEncoder e = new XMLEncoder( new BufferedOutputStream( new FileOutputStream("pessoa.xml"))); e.writeObject(p); e.close(); // Desserializa o objeto a partir do arquivo XML XMLDecoder d = new XMLDecoder( new BufferedInputStream( new FileInputStream("pessoa.xml"))); PessoaXML clone = (PessoaXML) d.readObject(); d.close();

16.4
http://www.candidatoreal.com

Classes e Opera c oes de I/O Classes para manipula c ao de propriedades

16.5

Boa parte das aplica c oes necessitam de algum tipo de congura c ao adicional que n ao pode ser embutida diretamente no c odigo. Em java, uma forma tradicional de se fazer isso envolve a utiliza c ao ddos chamados arquivos de propriedades, que podem ser manipulados a partir da classe java.util.Properties, que e uma extens ao da classe java.util.Hashtable. Um arquivo de propriedades guarda conjunto de pares nome/valor, que podem ser lidos ou alterados. O formato t pico de um arquivo de propriedades e motrado a seguir:

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 manipula c 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"); } // Salvamos para uma proxima execussao FileOutputStream out = new FileOutputStream("exemplo.properties"); defaultProps.store(out, "Isso e um coment ario!"); out.close();

http://www.candidatoreal.com

}catch(Exception e){ System.out.println(e.getMessage()); } } } Uma observa c ao importante e que o m etodo getProperty sempre retorna uma String, de modo que se uma propriedade e de algum outro tipo, essa deve ser convertida no momento da leitura. Atualmente o uso de arquivos XML para armazenamento de congura c oes

186

http://www.candidatoreal.com

vem ganahando popularidade, no entanto, os arquivos de propriedades continuam ser uma forma simples e ecaz de gerenciar conguracoes simples.

http://www.candidatoreal.com

187

http://www.candidatoreal.com

Cap tulo 17

Cole c oes
Uma cole c ao e simplesmente um grupo de objetos em uma u nica unidade. As cole c 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 cole c ao dos cart oes) e uma pasta de correspond encia (uma cole c ao das letras). Uma framework de cole c oes e uma arquitetura unicada para representa c ao e manipula c ao das cole c oes, permitindo que elas sejam manipuladas independentemente dos detalhes de sua implementa c ao. Todos os frameworks de cole c oes cont em: Interfaces: Estes s ao os tipos de dados abstratos que representam as cole c oes. As interfaces permitem que as cole c oes sejam manipuladas independentemente dos detalhes de sua representa c ao. Em linguagem orientadas ` a objeto as interfaces d ao forma geralmente a uma hierarquia; Implementa c oes: Estas s ao as implementa c oes concretas das rela c oes da cole c ao. Essencialmente, s ao estruturas de dados reus aveis; Algoritmos: Estes s ao os m etodos que executam computa c oes u teis, tais como procurar e ordenar objetos de uma determinada cole c ao. Os algoritmos s ao polim orcos, isto e, o mesmo m etodo pode ser usado em diferentes implementa c oes.

http://www.candidatoreal.com

As principais vantagens do framework de cole c oes (collection framework) s ao: Redu c ao do esfor co de programa c ao, fornecendo estruturas de dados e algoritmos u teis, para que n ao seja necess ario reescrev e-los; Aumento da performance: fornecendo implementa c oes de alta performance. Como as v arias implementa c oes de cada interface s ao substitu veis, os programas podem ser facilmente renados trocando-se as implementa c oes; Interoperabilidade entre APIs n ao relacionadas, estabelecendo uma linguagem comum para passagem de cole c oes;

188

http://www.candidatoreal.com

Redu c ao do esfor co de aprendizado de APIs, eliminando a necessidade de se aprender v arias APIs de cole c oes diferentes; Redu c ao do esfor co de projetar e implementar APIs, eliminando a necessidade de se criar APIs de cole c oes pr oprias; Promover o re uso de software, fornecendo uma interface padr ao para cole c oes e algoritmos para manipul a-los. As cole c oes s ao necess arias, devido o uso dos arrays possuir uma s erie de limita c oes, como por exemplo: Um array n ao pode ter o tamanho modicado depois de criado; Somente pode conter elementos de um mesmo tipo; Para inserir ou retirar um elemento e necess ario modicar a posi c ao de outros elementos.

Figura 17.1: Interfaces Collection

17.1

Interface Collection

Interface base para todos os tipos de cole c ao. Ela dene as opera c oes mais b asicas para cole c oes de objetos, como adi c ao (add) e remo c ao (remove) abstratos (sem informa c oes quanto ` a ordena c ao dos elementos), esvaziamento (clear), tamanho (size), convers ao para array (toArray), objeto de itera c ao (iterator), e verica c oes de exist encia (contains e isEmpty). A seguir e mostada a Interface Collection: public interface Collection<E> extends Iterable<E> {

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 189

http://www.candidatoreal.com

boolean removeAll(Collection<?> c); boolean retainAll(Collection<?> c); void clear(); // Array operations Object[] toArray(); <T> T[] toArray(T[] a); }

//optional //optional //optional

17.2

Interface Set

Interface que dene uma cole c ao, ou conjunto, que n ao cont em objetos duplicados. Isto e, s ao ignoradas as adi c oes caso o objeto ou um objeto equivalente j a exista na cole c ao. Por objetos equivalentes, entenda-se objetos que tenham o mesmo c odigo hash (retornado pelo m etodo hashCode()) e que retornem verdadeiro na compara c ao feita pelo m etodo equals(). N ao e garantida a ordena c ao dos objetos, isto e, a ordem de itera c ao dos objetos n ao necessariamente tem qualquer rela c ao com a ordem de inser c ao dos objetos. Por isso, n ao e poss vel indexar os elementos por ndices num ericos, como em uma List. A seguir e mostada a Interface Set: public interface Set<E> extends Collection<E> { // 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 implementa c oes da interface Set:

http://www.candidatoreal.com

190

http://www.candidatoreal.com

HashSet: Implementa c ao de Set que utiliza uma tabela hash para guardar seus elementos. N ao garante a ordem de itera c ao, nem que a ordem permanecer a constante com o tempo (uma modica c ao da cole c ao pode alterar a ordena c ao geral dos elementos). Por utilizar o algoritmo de tabela hash, o acesso e r apido, tanto para leitura quanto para modica c ao. LinkedHashSet: Implementa c ao de Set que estende HashSet, mas adiciona previsibilidade ` a ordem de itera c ao sobre os elementos, isto e, uma itera c ao sobre seus elementos (utilizando o Iterator) mant em a ordem de inser c ao (a inser c ao de elementos duplicados n ao altera a ordem anterior). Internamente, e mantida uma lista duplamente encadeada que mant em esta ordem. Por ter que manter uma lista paralelamente ` a tabela hash, a modica c ao deste tipo de cole c ao acarreta em uma leve queda na performance em rela c ao ` a HashSet, mas ainda e mais r apida que uma TreeSet, que utiliza compara c oes para determinar a ordem dos elementos. TreeSet: Implementa c ao de SortedSet. SortedSet e uma interface que estende Set, adicionando a sem antica de ordena c ao natural dos elementos. A posi c ao dos elementos no percorrimento da cole c ao e determinado pelo retorno do m etodo compareTo(o), caso os elementos implementem a interface Comparable, ou do m etodo 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 ordena c ao da arvore de elementos. Isto garante a ordena c ao ascendente da cole c ao, de acordo com a ordem natural dos elementos, denida pela implementa c 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 modica c oes. A seguir s ao mostrados alguns exemplos: import java.util.*; public class FindDups { public static void main(String[] args) { Set<String> s = new HashSet<String>(); for (String a : args) if (!s.add(a)) System.out.println("Duplicate detected: " + a); System.out.println(s.size() + " distinct words: " + s); } } Rodando o programa: prompt#> java FindDups i came i saw i left A sa da produzida ser a: 191

http://www.candidatoreal.com

http://www.candidatoreal.com

Duplicate detected: i Duplicate detected: i 4 distinct words: [i, left, saw, came] O tipo de implementa c 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 alfab etica basta mudar o tipo de implementa c ao de HashSet para TreeSet. A nova sa da 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 sa da 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: [i, came, saw, left]

http://www.candidatoreal.com

E agora um outro exemplo, modicando a classe FindDups: import java.util.*; public class FindDups2 { public static void main(String[] args) { Set<String> uniques = new HashSet<String>(); Set<String> dups = new HashSet<String>(); for (String a : args) if (!uniques.add(a)) 192

http://www.candidatoreal.com

dups.add(a); // Destructive set-difference uniques.removeAll(dups); System.out.println("Unique words: " + uniques); System.out.println("Duplicate words: " + dups); } } Executando o c odigo anterior com os mesmos argumentos dos programas anteriores (i came i saw i left) a sa da deste programa seria: Unique words: [left, saw, came]

Duplicate words: [i] H a duas implementa c oes Set com nalidades especiais: EnumSet e CopyOnWriteArraySet.

17.3

Interface List

Interface que extende Collection, e que dene cole c oes ordenadas (seq u encias), onde se tem o controle total sobre a posi c ao de cada elemento, identicado por um ndice num erico. Na maioria dos casos, pode ser encarado como um array de tamanho vari avel, pois, como os arrays primitivos, e acess vel por ndices, mas al em disso possui m etodos de inser c ao e remo c ao. A seguir e mostada a Interface List: public interface List<E> extends Collection<E> { // Positional access E get(int index); E set(int index, E element); boolean add(E element); void add(int index, E element); E remove(int index); boolean addAll(int index, Collection<? extends E> c); // 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

//optional //optional //optional //optional //optional

http://www.candidatoreal.com

http://www.candidatoreal.com

} Existem 2 implementa c oes da interface List: ArrayList: Implementa c ao de List que utiliza internamente um array de objetos. Em uma inser c ao onde o tamanho do array interno n ao e suciente, 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 inser c ao no meio da lista o conte udo posterior ao ndice e deslocado em uma posi c ao. Esta implementa c ao e a recomendada quando o tamanho da lista e previs vel (evitando realoca c oes) e as opera c oes de inser c ao e remo c ao s ao feitas, em sua maioria, no m da lista (evitando deslocamentos), ou quando a lista e mais lida do que modicada (otimizado para leitura aleat oria). LinkedList: Implementa c ao de List que utiliza internamente uma lista encadeada. A localiza c ao de um elemento na n- esima posi c ao e feita percorrendo-se a lista da ponta mais pr oxima at e o ndice desejado. A inser c ao e feita pela adi c ao de novos n os, entre os n os adjacentes, sendo que antes e necess aria a localiza c ao desta posi c ao. Esta implementa c ao e recomendada quando as modica c oes s ao feitas em sua maioria tanto no in cio quanto no nal 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 la (FIFO - First-In-First-Out), onde os elementos s ao retirados da lista na mesma seq u encia em que s ao adicionados. A seguir s ao mostrados alguns exemplos: import java.util.*; public class ExemploArrayList { public static void main(String[] args) { List c = new ArrayList(); c.add("Maria"); c.add("Joao"); c.add("Ana"); c.add("Joao"); c.add("Jose"); Iterator i = c.iterator(); while( i.hasNext() ) { System.out.print( i.next() + " " ); } System.out.println(); System.out.println(c.get(2)); System.out.println(c); } } 194

http://www.candidatoreal.com

http://www.candidatoreal.com

A sa da produzida ser a: Maria Joao Ana Joao Jose Ana [Maria, Joao, Ana, Joao, Jose] ArrayList e LinkedList tem algumas diferen cas, entre elas temos os m etodos addFirst, addLast, getFirst, getLast, removeFirst e removeLast para LinkedList que inserem, retornam e retiram um elemento no inicio ou no m de uma lista , com estes m etodos podemos simular pilhas e las. H a uma implementa c ao List com nalidades especiais: CopyOnWriteArrayList.

17.4

Interface Map

Interface que dene um array associativo, isto e, ao inv es de n umeros, objetos s ao usados como chaves para se recuperar os elementos. As chaves n ao podem se repetir (seguindo o mesmo princ pio da interface Set), mas os valores podem ser repetidos para chaves diferentes. Um Map tamb em n ao possui necessariamente uma ordem denida para o percorrimento. A seguir e mostada a Interface Map: public interface Map<K,V> { // Basic operations V put(K key, V value); V get(Object key); V remove(Object key); boolean containsKey(Object key); boolean containsValue(Object value); int size(); boolean isEmpty(); // Bulk operations void putAll(Map<? extends K, ? extends V> m); void clear();

http://www.candidatoreal.com

// 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 implementa c oes da interface Map: HashMap: Implementa c ao de Map que utiliza uma tabela hash para armazenar seus elementos. O tempo de acesso aos elementos (leitura e modica c ao) e constante (muito bom) se a fun c ao de hash for bem distribu da, isto e, a chance de dois objetos diferentes retornarem o mesmo valor pelo m etodo hashCode() e pequena. TreeMap: Implementa ca o de SortedMap. SortedMap e uma Interface que estende Map, adicionando a sem antica de ordena c ao natural dos elementos, an alogo ` a SortedSet. Tamb em adiciona opera c oes de parti c ao da cole c ao, com os m etodos 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 ordena c ao da arvore de elementos. Isto garante a ordena c ao ascendente da cole c ao, de acordo com a ordem natural dos elementos, denida pela implementa c 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 modica c oes. LinkedHashMap: Implementa c ao de Map que estende HashMap, mas adiciona previsibilidade ` a ordem de itera c ao sobre os elementos, isto e, uma itera c ao sobre seus elementos (utilizando o Iterator) mant em a ordem de inser c ao (a inser c ao de elementos duplicados n ao altera a ordem anterior). Internamente, e mantida uma lista duplamente encadeada que mant em esta ordem. Por ter que manter uma lista paralelamente ` a tabela hash, a modica c ao deste tipo de cole c ao acarreta em uma leve queda na performance em rela c ao ` a HashMap, mas ainda e mais r apida que uma TreeMap, que utiliza compara c oes para determinar a ordem dos elementos. A seguir s ao mostrados alguns exemplos: import java.util.*;

http://www.candidatoreal.com

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 inv es de HashMap a sa da 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 sa da seria: 8 distinct words: {if=1, it=2, is=2, to=3, be=1, up=1, me=1, delegate=1} H a duas implementa c oes Map com nalidades especiais: EnumMap, WeakHashMap e IdentityMap.

17.5

Interface Queue

Uma queue e uma cole c ao para prender elementos antes de processarem. Al em das opera c oes b asicas da cole c ao, as las fornecem a inser c ao, a remo c ao e opera c oes adicionais de inspe c ao. A seguir e mostrada a Interface Queue: public interface Queue<E> extends Collection<E> { E element(); boolean offer(E e); E peek(); E poll(); E remove(); } Queue tipicamente, mas n ao necessariamente, manipulam os elementos como uma FIFO (rst-in-rst-out). Entre as exce c oes est ao as priority queues (las com prioridades), que requisitam elementos de acordo com algum de seus valores. O primeiro elemento da la (cabe ca da la) e o elemento que seria removido pela chamada do m etodo remove ou poll. Em uma queue do tipo FIFO, todos os elementos novos s ao introduzidos no nal da la. Outros tipos de queue 197

http://www.candidatoreal.com

http://www.candidatoreal.com

podem usar regras diferentes de coloca c ao. Cada implementa c ao de queue deve especicar suas propriedades. poss E vel que algumas implementa c oes de queue restrinja o n umero de elementos que prende; tais las s ao conhecidas como limitadas. Algumas implementa c oes de queue em java.uitl.concurrent s ao limitadas, mas as implementa c oes em java.util n ao s ao. As implementa c oes da queue geralmente n ao permitem a inser c ao de elementos nulos. A implementa c ao de LinkedList, que foi adaptada para implementar uma queue, e uma exce c ao. A seguir e mostrado um exemplo: import java.util.*; public class Countdown { public static void main(String[] args) throws InterruptedException { int time = Integer.parseInt(args[0]); Queue<Integer> queue = new LinkedList<Integer>(); for (int i = time; i >= 0; i--) queue.add(i); while (!queue.isEmpty()) { System.out.println(queue.remove()); Thread.sleep(1000); } } } A classe PriorityQueue e uma la de prioridade baseada na estrutura de dados heap. Esta la requisita elementos de acordo com uma ordem especicada no tempo da constru c ao. A interface queue e estendida pela BlockingQueue. Algumas implementa c oes de BlockingQueue s ao: LinkedBlockingQueue, ArrayBlockingQueue, PriorityBlockingQueue, DelayQueue e a SynchronousQueue.

http://www.candidatoreal.com

198

http://www.candidatoreal.com

Cap tulo 18

JDBC - Java Database Connectivity


18.1 Conceitos B asicos

Java Database Connectivity ou JDBC e um conjunto de classes e interfaces (API) escritas em Java que faz o envio de instru c oes SQL para qualquer banco de dados relacional. API de baixo n vel e base para APIs de alto n vel; Amplia o que voc e pode fazer com java; Possibilita o uso de banco de dados j a instalados; Para cada banco de dados h a um driver JDBC que pode cair em quatro categorias. 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 m etodos JDBC em chamadas ` as fun c 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 depend ` encia 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 aplica c oes o modelo mais ex java a v arios banco de dados diferente. E vel.

http://www.candidatoreal.com

199

http://www.candidatoreal.com

TIPO 4: DRIVER NATIVO Converte as chamadas JDBC diretamente no protocolo do banco de dados. Implementado em java, normalmente e o independente de plataforma e escrito pelos pr oprios desenvolvedores. E tipo mais recomendado para ser usado.

Figura 18.1: Tipos de Drivers JDBC Como mostrado na gura 18.1 a aplica c ao java chama a biblioteca JDBC. Posteriormente o JDBC carrega um driver para que se comunique com a base de dados.

18.2

Carregamento de drivers

Depois de iniciar o programa e importar os pacotes necess arios (import java.sql.*), devemos seguir certos passos para que seja poss vel o acesso ao SGBD. Devemos inicialmente carregar o driver e depois criar a conex ao propriamente dita. A carga do driver e muito simples. Basta invocar o m etodo est atico: Class.forName(jdbc.XYZ). Exemplo: 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 fun c ao instanciar a classe identicada entre par enteses 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.

http://www.candidatoreal.com

18.3

Conex ao

Feito o carregamento dos drivers, o pr oximo passo e o estabelecimento da conex ao. Tipicamente uma aplica c ao JDBC conecta ao banco de dados usando 200

http://www.candidatoreal.com

um dos seguintes mecanismos: DriverManager: Esta implementa c ao requer que uma aplica c ao carregue um driver espec co, usando uma URL hardcoded. Como parte de sua inicializa c ao, a classe DriverManager tenta carregar as classes do driver referenciado. Isto permite que voc e customize os drivers de JDBC usados por suas aplica c oes. DataSource: Esta interface e preferida sobre a DriverManager porque permite que os detalhes sobre a origem dos dados sejam transparentes a sua aplica c ao. As propriedades de um objeto de DataSource s ao ajustadas de modo que represente uma origem particular de dados. Para abrirmos uma conex ao, normalmente teremos que entrar em contato com o SGBD. A linha mostrada abaixo d a a id eia geral de como e feita ` a conex ao atrav es do mecanismo DriverManager: try{ Connection con = DriverManager.getConnection(url,"user", "password"); }catch( SQLException x ){ System.out.println( "Couldnt get connection!" ); } A parte mais complexa e montar a url. Esta parte da informa c ao sempre se inicia com jdbc: mas o resto depende do fabricante do banco. Na seq u encia normalmente temos o nome do fabricante (ent ao temos jdbc:db2, jdbc:oracle, jdbc:psql e etc) e por u ltimo o nome da fonte de dados (ent ao temos jdbc:db2:db, jdbc:oracle:server.unicamp.br:1234/meubanco e etc). O pr oximo exemplo mostra como seria o estabelecimento de conex ao atrav es de um DataSource. InitialContext ic = new InitialContext() DataSource ds = ic.lookup("java:comp/env/jdbc/myDB"); Connection con = ds.getConnection(); Toda parte envolvida com a conex ao propriamente dita acontece de maneira transparente. O programador n ao tem necessidade nenhuma de saber o que se passa e, a n ao ser que ele um dia resolva escrever seu pr oprio driver para conex ao a algum SGBD, tem que se dar por satisfeito da coisa acontecer assim. A partir de agora, o objeto con representa uma conex ao ativa e aberta ao banco de dados e o programador pode utiliz a-lo para enviar statements SQL para o banco.

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 m etodos 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

Statement stmt = com.createStatement(); Neste ponto, um statement foi criado. Mas n ao existe nenhum comando SQL nele. Podemos executar um comando como no exemplo abaixo: stmt.executeUpdate( "DELETE FROM Clientes WHERE CPF = " + cpf + ""); Note que existe uma estrutura de par enteses, sinais de concatena c ao e aspas. Esses sinais s ao importantes e muitas vezes causam confus oes tremendas em programas. Deve-se ter muito cuidado com eles, principalmente quando houver vari aveis do programa java misturadas ao SQL. O m etodo mais comum de ser utilizado e o executeQuery. Mas ele retorna apenas dados. Assim, devemos ter outro tipo de classe que serve exclusivamente para receber esses dados, de maneira que possamos fazer uso deles no proces necess samento. Essa classe e chamada ResultSet. E ario instanciar um objeto desta classe que receba o resultado do executeQuery. Veja o exemplo: ResultSet rs = stmt.executeQuery("SELECT NOME, SOBRENOME, IDADE FROM PESSOA"); A partir de agora, tem-se um objeto chamado rs que armazena todos os dados recebidos. Em linhas gerais, os programadores estabelecem um loop onde fazer a leitura dos dados baseados em m etodos presentes na classe ResultSet. Esses m etodos permitem andarpelos resultados e copiar os valores para outros objetos. ... 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 m etodo next() movimenta o cursor para o pr oximo registro, tornando aquele registro o corrente. Podemos ent ao executar outros m etodos. Note que o cursor inicialmente ca posicionado acima do primeiro registro, exigindo uma primeira execu c ao do next() para que possamos processar o primeiro registro. Utilizamos m etodos 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 m etodos 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

http://www.candidatoreal.com

18.5

Prepared Statements

` vezes As e mais conveniente usar um objeto PreparedStatement para enviar comandos sql para a base de dados. Este tipo especial de statement e derivado da classe mais geral, Statement. A principal diferen ca e que o prepared statement cont em n ao apenas um comando SQL, mas sim um comando SQL pr e-compilado. Isso signica que quando o prepared statement e executado, o SGBD deve apenas rodar o comando SQL sem ter que fazer sua compila c ao primeiro. Os objetos PreparedStatements podem ser usados sem par ametros no comando SQL, embora seja mais freq uente o uso com par ametros. A vantagem da utiliza c ao de par ametros e que voc e pode fornecer valores diferentes ao mesmo statement a cada vez que voc e execut a-lo. PreparedStatement pstmt = conn.prepareStatement("insert into TABLE values (?,?)"); pstmt.setString(1,arquivo.getName()); pstmt.setBinaryStream(2,inputStream,(int)arquivo.length()); pstmt.executeUpdate(); Note que voc e pode possuir diversos tipos de campos diferentes, e nem por isso precisa usar aspas duplas, aspas simples ou nenhuma aspas na hora de passar os valores para serem incluidos/consultados/alterados no banco. Esta e uma das principais vantagens de se usar PreparedStatement. Lembre-se que a ordem dos sets dever ao ser dadas na mesma ordem que foi inserido os sinais de interroga c ao. A seguir e mostrada uma opera c ao de UPDATE usando Statement e PreparedStatement. //Usando Statement Statement stmt = con.createStatement(); String sql = "UPDATE COFFEES SET SALES = 75 WHERE COF_NAME LIKE Colombian"; stmt.executeUpdate(sql); //Usando Prepared Statement PreparedStatement pstmt = con.prepareStatement( "UPDATE COFFEES SET SALES = ? WHERE COF_NAME LIKE ?" ); updateSales.setInt(1, 75); updateSales.setString(2, "Colombian"); pstmt.executeUpdate();

http://www.candidatoreal.com

18.6

Transa c ao

Existem situa c oes onde n ao se deseja que uma instru c ao tenha efeito a n ao ser que outras tamb em tenham. Algumas situa c oes necessitam que dados sejam inclu dos 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

A t ecnica utilizada para garantir esse tipo de consist encia e o uso de transa c oes. Uma transa c ao nada mais e do que statements que s ao executados juntos, como uma coisa u nica: ou todos falham, ou todos s ao executados. A primeira provid encia e desabilitar o auto-commit. Quando uma conex ao e criada, o padr ao e que ela trate cada executeUpdate como uma transa c ao separada, que e validada (commit) assim que e completada. Assim, devemos utilizar o c odigo: con.setAutoCommit(false); A partir daqui, nenhum statement ser a validado at e que o programador permita. Todos eles ser ao agrupados e validados como um s o. Ao nal do processo (caso tudo tenha transcorrido de acordo com o esperado), executa-se: con.commit(); Caso algo n ao tenha dado certo, podemos executar o m etodo rollback para que todo o statement seja descartado. con.rollback(); importante lembrar algumas coisas quando lidamos com a transa E c ao de maneira manual. Os recursos de banco normalmente cam presos, esperando um commi() ou rollback(). Assim, se um programa tratar ou entrar em loop (ou mesmo demorar muito) o acesso ao banco ca prejudicado. Existe ainda a possibilidade de um dirty read, onde outro programa recupera dados do disco que voc e est a alterando, mas ainda n ao validou. Esse tipo de comportamento pode ser evitado aumentando o n vel de isolamento entre transa c oes. Verique o m etodo setTransactionIsolation() da classe Connection.

18.7

Informa c oes Complementares

Ocasionalmente, voc e ir a sentir necessidade de obter mais informa c oes sobre o resultado de um SELECT ou mesmo sobre a tabela em quest ao. Pode-se obter esses dados utilizando a classe ResultSetMetaData, que pode ser criada segundo o exemplo: ResultSet rs = stmt.executeQuery(query); ResultSetMetaData meta = rs.get.MetaData();

http://www.candidatoreal.com

A classe ResultSetMetaData lhe fornece informa c 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. Al em disso fornece tamb em informa c 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

// retorna o numero total de colunas int numColumns = rsmd.getColumnCount(); System.out.println("Total de Colunas = " + numColumns); // loop para recuperar os metadados de cada coluna for (int i=0; i<numColumns; i++) { System.out.println("Nome da Coluna=" + rsmd.getColumnName(i + 1)); System.out.println(" Tipo=" + rsmd.getColumnType(i + 1) ); System.out.println(" Nome do Tipo=" + rsmd.getColumnTypeName(i + 1)); System.out.println(" Tamanho=" + rsmd.getColumnDisplaySize(i + 1)); System.out.println(" Casas Decimais=" + rsmd.getScale(i + 1)); }

18.8

Exemplo Extra

Abaixo segue um exemplo extra com os assuntos tratados neste cap tulo. import java.sql.*; public class Principal{ public static void main(String[] args) throws Exception //carregando o driver Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //estabelecendo a conex~ ao Connection con = DriverManagerSet.getConnection("jdbc:obc:bd"); //criando statement Statement stmt = con.createStatement(); //Executando a consulta ResultSet rs = stmt.executeQuery("SELECT LOGIN, NOME FROM ATENDENTE"); //Percorrendo o resultset While(rs.next()){ String login = rs.getString("LOGIN"); 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

http://www.candidatoreal.com

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

Cap tulo 19

A plataforma J2EE
A plataforma J2EE e uma solu c ao baseada em componentes para projeto, desenvolvimento, montagem e disponibiliza c ao de aplica c oes distribu das em ambientes corporativos. O J2EE oferece, entre outras tecnologias: Modelo multi-camada de aplica c oes distribu das (multi-tier ); Componentes Reutiliz aveis; Modelo de seguran ca unicado; Controle de transa c oes ex veis; Suporte a servi cos Web (web services ). No modelo multi-camada distribu do da arquitetura J2EE as seguintes caracter sticas s ao importantes: Os componentes que comp oem a aplica c ao podem estar em diferentes m aquinas; Suas localiza c oes dependem da camada a que pertence. Tipicamente, as aplica c oes J2EE s ao divididas em 4 camadas que s ao: Cliente (client-tier ); Web (web-tier ); Neg ocios (bussiness-tier );

http://www.candidatoreal.com

Sistemas de Informa c ao (EIS-tier ). As caracter sticas mais comuns dos componentes J2EE s ao o fato deles serem unidades de software auto-contidas e a capacidade de comunica c ao com outros componentes. O que distingue um componente J2EE de uma classe comum eo fato deles poderem ser combinados para formar uma aplica c ao J2EE, al em de serem disponibilizados, executados e gerenciados por um servidor J2EE, comumente chamado de servidor de aplica c ao. A tabela a seguir mostra exemplos de componentes J2EE e o seus respectivos tipo e local de execu c ao.

207

http://www.candidatoreal.com

Figura 19.1: Arquitetura J2EE Componente Clientes da aplica c ao e Applets Servlets e P aginas JSP Enterprise Java Beans Tipo Cliente J2EE Web Neg ocios Local de Execu c ao Cliente Servidor Servidor

Tabela 19.1: Componentes J2EE

19.1

Containers J2EE

Na arquitetura J2EE um container e um ambiente que fornece um conjunto de servi cos para os componentes. Um componente deve ser colocado em um container apropriado para que possa ser executado. Um exemplo simples de container e o Apache Tomcat, que na arquitetura J2EE funciona como um container Web, fornecendo servi cos para rodar p aginas JSP e Servlets. Algumas dos servi cos prestados pelos containers podem ser congurados. Exemplo deles s ao: Seguran ca; Gerenciamento de Transa c oes; Busca de Nomes e Diret orios utilizando JNDI (Java Naming and Directory Interface);

http://www.candidatoreal.com

Conectividade Remota entre clientes e EJBs; No entanto, alguns dos servi cos oferecidos pelos containers n ao podem ser congurados, uma vez que contituem o n ucleo da arquitetura e conferem a escalabilidade da solu c ao. Exemplo de servi cos n ao congur aveis s ao: Cria c ao de Destrui c ao de EJBs e Servlets (Ciclo de Vida dos Componentes). S ao utilizados pools de componentes para atender as requisi c oes dos usu arios. N ao e o programador instancia um componete no c odigo do cliente, por em a cria c ao efetiva do objeto acontece no servidor de aplica c ao, onde o componente existe e e executado de fato; Acesso ` as APIs da plataforma; 208

http://www.candidatoreal.com

Gerenciamento de conex oes com bancos de dados. Os servidores de aplica c 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 aplica c ao; Persit encia do estado dos componentes.

19.2

Clientes J2EE

Na arquitetura J2EE existem basicamente dois tipos de clientes que s ao: Clientes Web: P aginas Web din amicas geradas por componentes Web (JSP ou Servlets) e que s ao exibidas no browser. Existe ainda os applets, que s ao pequenos clientes de aplica c ao escritos em Java e que rodam na JVM embutida no browser. Clientes de Aplica c ao: Permitem que o usu ario interaja com o servidor de aplica c ao atrav es de interfaces mais complexas, geralmente feitas utilizando as APIs Swing ao AWT (Abstract Window Toolkit ). importante ressaltar que toda a l E ogica de neg ocio e implementada pelos EJBs, que rodam no servidor de aplica c ao. Assim como os EJBs , os Servlets e p aginas JSP tamb em est ao em um servidor de aplica c ao, por em n ao no mesmo container. Os Servlets s ao classes Java que processam dinamicamente as requisi c oes e controem respostas na forma de p aginas HTML. As p aginas JSP permitem inserir c odigo java diretamente em um documento HMTL, sendo apropriadas para criar conte udo din amico e, em geral, para descrever a l ogica de apresenta c ao.

19.3

Um pouco mais sobre Servlets

http://www.candidatoreal.com

Um servlet e uma classe java que extende as capacidades do servidor que acessam aplica c oes num modelo de programa requisi c ao e resposta. Os servlets, como denidos na interface Servlet dispon vel no pacote javax.servlet, s ao independentes de protocolo, e denem os m etodos que todos os servlets devem implementar. Os servlets s ao especialmente populares no desenvolvimento de aplica c oes Web, cuja comunica c ao e baseada no protocolo HTTP. A classe HttpServlet, dispon vel no pacote javax.servlet.http, implementa a interface Servlet e prov e a base para implementa c ao de aplica c oes Web empregando o protocolo HTTP. Do ponto de vista do cliente, um servlet funciona atendendo uma requisi c ao e gerando conte udo din amico em forma de p aginas web, em HTML por exemplo, como resposta. O c odigo a seguir exemplica a cria c ao de um servlet.

209

http://www.candidatoreal.com

import import import import

javax.servlet.*; javax.servlet.http.*; java.io.*; java.util.*;

public class MyNameServlet extends HttpServlet { /** * Method to receive get requests from the web server * (Passes them onto the doPost method) * @param req The HttpServletRequest which contains the * information submitted via get * @param res A response containing the required response * data for this request **/ public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { doPost(req,res); } /** * Method to receive and process Post requests from the web server * @param req The HttpServletRequest which contains the information * submitted via post * @param res A response containing the required response data for this request **/ public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { //*****Read the value of the yourname parameter***** String name=req.getParameterValues("yourname")[0]; //*****Construct a response in HTML***** String reply="<HTML>\n"+ "<HEAD><TITLE>My Name Servlet Response</TITLE></HEAD>\n"+ "<BODY>\n"+ "<CENTER><BR><B>\n"+ "Hello "+name+"\n"+ "</B></CENTER>\n</BODY>\n</HTML>"; //*****Send the reply***** res.setContentType("text/html"); PrintWriter out=res.getWriter(); out.println(reply); out.close(); } 210

http://www.candidatoreal.com

http://www.candidatoreal.com

} O servlet interpreta a informa c ao dos formul ario HTML para gerar uma p agina, tamb em HTML, como resposta ` a requisi c 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

Ciclo de Vida dos Servlets

O inicio do clico de vida de um servlet ocorre quando o administrador do sistema inicia uma aplica c ao baseada em um servlet. Nesse momento, o container respons avel pelos servlets no servidor de aplica c ao cria uma inst ancia de um servlet. O container tamb em passa os par ametros de inicializa c ao do servlet atrav es do m etodo init. Os par ametros de inicializa c ao persistem at e o servlet ser destru do.

http://www.candidatoreal.com

Se o processo de incializa c ao ocorrer com sucesso, o servlet se torna dispon vel para servi co (atendimento de requisi c oes). Se o processo falhar o container descarrega o servlet. Ap os a que um servlet se torna dispon vel, o administrador pode optar para coloc a-lo em um estado de indispon vel, e assim ele permanecer a at e que o administrador execute a opera c ao contr aria. Quando um requisi c ao de um cliente chega ao servidor de aplica c ao, o container cria os objetos request e response, que s ao passados de par ametro para o m etodo service.

211

http://www.candidatoreal.com

O m etodo service recupera informa c oes sobre a requisi c ao a partir do objeto request, processa a requisi c ao, e em seguida utiliza o objeto response para criar uma resposta para o cliente.O m etodo service pode ainda chamar outros m etodos para processar a requisi c ao, como doGet(), doPost(), ou m etodos escritos pelo pr oprio programador. Quando o administrador encerra a aplica c ao, o container invoca o m etodo destroy() e descarrega o servlet. A gura 19.2 representa o diagrama de estados do ciclo de vida de um servlet.

Figura 19.2: Ciclo de vida do servlet

19.3.2

Mantendo o estado do cliente

http://www.candidatoreal.com

Muitas aplica c oes requerem que uma s erie de requisi c oes de um mesmo cliente sejam associadas uma com a outra, para que uma determinada opera c ao fa ca sentido. Um exemplo pr atico e uma aplica c ao de carrinho de compras, em que o cliente vai navegando durante as p aginas escolhendo os produtos e ao nal realiza a compra de fato. O per odo 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 aplica c ao e respons avel por manter o estado da sess ao, tendo em vista que o protocolo HTTP e um protocolo stateless. Para suportar aplica c 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 m etodo getSession do objeto request. Esse m etodo 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 m etodo getSession pode modicar o header da resposta (response header), esse m etodo 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 perten ca ao mesmo contexto esteja atendendo uma requisi c ao que seja parte da mesma sess ao. A seguir um exemplo de Servlet que mant em 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 aplica c ao), cada sess ao possui um valor de timeout. O valor de timeout pode ser acessado atr aves dos m etodos getMaxInactiveInterval e MaxInactiveInterval. Geralmente o tempo m aximo de inatividade permitido para uma sess ao tamb em e feita no servidor de aplica c ao.

19.4

Um pouco mais sobre p aginas JSP

Java Server Pages (JSP) e uma tecnologia que permite embutir c odigo java em uma p agina HTML para gerar conte udo din amico. Um exemplo simples de uma p agina JSP e a seguinte: <HTML> <BODY> <% int a = 1 + 3; %> Hello! O valor de a e <%= a %> </BODY> </HTML> Todo c odigo java aparece na p agina .jsp deve estar entre as tags % e %. Para imprimir algum valor na p agina e utilizada as tag %= e %, ou alternativamente os m etodos out.print() ou out.println(), como mostrado no exemplo a seguir: <%@ page import="java.util.*, java.lang.*" %> 213

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 denidas 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 especicado durante a fase de compila c 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 denidas (topo, menu, rodap e, 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> Um outro recurso das p aginas JSP s ao as chamadas taglibs, que s ao um mecanismo port avel para encapsular funcionalidades reus aveis em p aginas da Web. As tags podem ser de dois tipos: carregadas de uma biblioteca externa de tags ou pr e-denidas. As tags pr e-denidas sempre se iniciam com jsp. Exemplo de chamadas a tag pr e-denidas s ao mostrados abaixo:

http://www.candidatoreal.com

// Exemplo 1: // Inclui uma p agina dentro de outra no momento da compila c~ ao. <jsp:include page="hello.jsp"/>

// Exemplo 2: // Localiza e instancia um bean com o determinado nome e escopo <jsp:useBean id="cart" scope="session" class="session.Carts" /> <jsp:setProperty name="cart" property="*" /> 214

http://www.candidatoreal.com

<jsp:useBean id="checking" scope="session" class="bank.Checking" > <jsp:setProperty name="checking" property="balance" value="0.0" /> </jsp:useBean> Para utilizar uma tag carregada de uma biblioteca externa antes de mais nada e preciso utilizar a diretiva taglib para especicar onde a biblioteca de tag (tag library ) est a localizada. <%@ taglib prefix="blx" uri="/blx.tld" %> <jsp:useBean id="user" class="user.UserData" scope="session"/> <HTML> <BODY> <blx:getProperty name="user" property="*"> <FORM METHOD=POST ACTION="SaveName.jsp"> Whats your name? <INPUT TYPE=TEXT NAME=username SIZE=20><BR> Whats your e-mail address? <INPUT TYPE=TEXT NAME=email SIZE=20><BR> Whats your age? <INPUT TYPE=TEXT NAME=age SIZE=4> <P><INPUT TYPE=SUBMIT> </FORM> </blx:getProperty> </BODY> </HTML>

19.4.1

JSP vs. Servlets

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 modicada. Portanto, as p aginas JSP s ao, em u ltima inst ancia, processadas como servlets. Pelo fato de ser transformada em um servlet, durante o processamento de p aginas JSP, o container tamb em cria os objetos request e response. O objeto request armazena informa c oes enviadas na requisi c ao do cliente, por exemplo, os campos de um formul ario de cadastro. O seguinte trecho de c odigo mostra como o objeto request e utilizado em uma p agina JSP.

http://www.candidatoreal.com

<HTML> <BODY> <% // Captura o valor do campo tx_name do form submetido String nome = request.getParameter("tx_name"); //Captura o ip de origem da requisi c~ ao String ip = request.getRemoteHost(); %> Ol a <b> <%=nome%> </b>, o endere co IP da sua m aqina e <%=ip%>

215

http://www.candidatoreal.com

</BODY> </HTML>

19.5

Um pouco mais sobre EJBs

Os EJBs (Enterprise Java Beans ) s ao componentes de software simples, reutiliz aveis e port aveis, que podem ser combinados para criar aplica c oes corporativas. Eles encapsulam a l ogica de neg ocio, ou seja, o c odigo que realiza o prop osito da aplica c ao. Tecnicamente falando, os EJBs tamb em s ao classes Java, com seus pr oprios atributos e m etodos. As inst ancias dos EJBs s ao executadas em containers de EJB nos servidores de aplica c ao. S ao os containers que gerenciam o ciclo de vida dos EJBs, decidindo quando eles devem ser criados ou destru dos. Os principais benef cios da utiliza c ao dos beans s ao: O desenvolvedor dos clientes pode se concentra na l ogica de apresenta c ao; Os clientes s ao menos pesados, j a que os EJBs s ao executados nos containers do servidor de aplica c ao; Maior reutiliza c ao de componentes. Os dois tipos mais importantes de EJBs s ao: Session Beans: Modelam os processo da l ogica de neg ocios, executam tarefas para os clientes e podem implementar web services. No momento da requisi c ao do cliente, um session bean e alocado para atendimento, tornando exclusivo at e o m do atendimento da requisi c ao. Os sessions beans podem ser de dois tipos: stateless ou statefull. Os beans stateless n ao mant em o estado da conversa c ao, ou seja, ap os o t ermino da execu c ao de um m etodo todo o estado (valor dos atributos do EJB) se perdem, e o mesmo e liberado, se tornando livre para atender outra requisi c ao. J a com os beans statefull, o estado pode ser modicados e recuperado entre sucessivas invoca c oes de m etodos. Todos os m etodos invocados pelo cliente s ao enviados a mesma inst ancia, que mant em o estado at e que a sess ao termine ou o bean seja destru do.

http://www.candidatoreal.com

Entity Beans: S ao respons aveis pela persist encia dos dados da aplica c 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 transa c oes, que e um dos servi cos prestados pelo container EJB. Cada bean tem um identicador 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

chamadas ao banco de dados (Ex: Uma atualiza c ao de um entity bean faz com que o container dispare um SQL Update, enquanto a cria c ao de um novo entity bean ir a fazer o container disparar um SQL Insert.) A id eia e eliminar ao m aximo a necessidade de escrever comandos SQL. Todos os comandos SQL envidos ao banco fazem uso das conex oes dispon veis em um pool de conex oes, que tamb em e um servi co gerenciado pelo servidor de aplica c ao.

19.5.1

Ciclo de Vida dos EJBs

Um EJB passa por v arios estados ao longo de seu ciclo de vida, sendo que cada tipo de EJB tem um ciclo de vida espec co. No caso dos EJBs stateless, o ciclo de vida e descrito pelos seguintes estados e eventos: O bean inicia em estado Does Not Exist; O cliente invoca um m etodo create() na interface local; O container instancia o bean e os m etodos setSessionContext() e ejbCreate(), implementados no bean, s ao invocados. A partir da , o EJB passa para o estado Ready; Ao nal, o cliente invoca o m etodo remove() na interface local e em seguida o container invoca o m etodo ejbRemove(), implementado no bean, e o EJB volta para o estado Does Not Exist;

http://www.candidatoreal.com

Figura 19.3: Ciclo de vida de um EJB stateless O ciclo de vida dos EJBs statefull, por sua vez, e descrito pelo seguintes estados e eventos: O bean inicia em estado Does Not Exist; O cliente invoca um m etodo create() na interface local; O container instancia o bean e os m etodos setSessionContext() e ejbCreate(), implementados no bean, s ao invocados. A partir da , o EJB passa para o estado Ready; 217

http://www.candidatoreal.com

Quando no estado Ready, o container pode optar por desativar o bean, ou seja, transfer -lo para mem oria secund aria invocando o m etodo ejbPassivate(). Nesse caso, o EJB vai para o estado Passive; Para reativar o bean, o container deve chamar o m etodo ejbActivate(), levando-o para o estado Ready novamente; Ao nal, assim como nos EJBs stateless, o cliente invoca o m etodo remove() na interface local e em seguida o container invoca o m etodo ejbRemove(), implementado no bean, e o EJB volta para o estado Does Not Exist; Os processos de desativa c ao e ativa c ao de um EJB consistem em salvar seu estado em mem oria secund aria e restaur a-lo, respectivamente. Nesses processos os containers utilizam t ecnicas de serializa c ao. Atualmente, os containers t em implementado a serializa c ao utilizando arquivos XML. Como foi discutido, os containers fazem uso dos chamados pools de EJBs, que s ao um conjunto de beans designados a atender as requisi c oes dos usu arios. Em determinados momentos, os beans de um pool podem estar completamente alocados para atendimento de usu arios. Um cliente que desejasse ter sua requisi c ao atendida teria que aguardar a desaloca c ao de um bean por parte de um cliente. No entanto, alguns dos beans no pool podem estar inativos, aguardando papel do container decidir invoca c ao de m etodos por parte dos clientes. E quando um bean deve ir para o estado passivo (ser serializado) para liberar recursos, que em u ltima inst ancia se traduz em mem oria no servidor de aplica c ao, permitindo que novas requisi c oes sejam atendidas. Quando um cliente que teve seu bean serializado decidir realizar uma nova requisi c ao, um bean deve ser alocado e o seu estado deve ser restaurado da mem oria secund aria para a mem oria principal.

http://www.candidatoreal.com

218

http://www.candidatoreal.com

Figura 19.4: Ciclo de vida de um EJB statefull

http://www.candidatoreal.com

219

http://www.candidatoreal.com

Parte V

Desenvolvimento Web

http://www.candidatoreal.com

220

http://www.candidatoreal.com

Cap tulo 20

Usabilidade
20.1 Deni c ao

A norma ISO 9241-11 dene a usabilidade como: a extens ao em que um produto pode ser usado por usu arios espec cos para alcan car objetivos espec cos com ec acia, eci encia e satisfa ca o num contexto espec co de uso. E, dene uma estrutura para a usabilidade, gura 20.1.

http://www.candidatoreal.com

Figura 20.1: Estrutura de usabilidade segundo a ISO 9241-11 Conforme a estrutura e preciso identicar os objetivos, e decompor a usabilidade (ec acia, eci encia e satisfa c ao) em atributos pass veis de serem vericados e mensurados, assim como o contexto de uso (usu ario, tarefa, equipamento e ambiente). Contextualizando o ambiente para as p aginas de Web, a usabilidade e o termo t ecnico usado para referenciar a qualidade de uso de uma determinada interface. Ela refere-se ao grau com que o usu ario consegue realizar uma tarefa.

221

http://www.candidatoreal.com

Em geral, s ao considerados os seguintes atributos para verica c ao da usabilidade numa interface: funcionalidade correta; a eci encia de uso; a facilidade de aprendizagem; a facilidade de relembrar; toler ancia ao erro do usu ario; e satisfa c ao do usu ario.

20.2

Princ pios da usabilidade

Os principais pontos que um Web site deve cumprir s ao: Usar etiquetas ALT para todas as imagens, especialmente as de navega c ao; Usar texto negro em fundo branco sempre que poss vel para uma legibilidade maior; Usar cores de fundo planas ou com texturas, mas que sejam extremamente subtis; Assegurar que o texto se encontra numa cor que se possa imprimir (n ao branco); Colocar o menu de navega c ao numa localiza c ao consistente em cada p agina do site; Usar localiza c oes familiares para as barras de navega c ao; Usar um design adequado para que nunca seja necess ario recorre ao scroll horizontal; Usar um eixo de simetria para centrar o texto numa p agina; Encorajar o uso do scroll atrav es da coloca c ao de uma imagem que que semi-escondida no fundo da p agina. Deve-se tentar evitar: As etiquetas ALT sejam reduzidas (especialmente para uma pequena imagem de tamanho xo); Mostrar texto est atico em azul ou a sublinhado; Usar o negrito ou mai usculo para texto longo; Deixar espa cos em branco muito longo a leitura torna-se mais dif cil;

http://www.candidatoreal.com

Obrigar o utilizador a fazer scroll para encontrar informa c ao importante, especialmente bot oes ou links de navega c ao; Usar travess oes para separar horizontalmente diferentes tipos de conte udos; Alternar frequentemente entre texto centrado e alinhado ` a esquerda. A maior parte do texto deve estar alinhada ` a esquerda; Fixar a resolu c ao das p aginas a mais de 800 X 600. P aginas de grandes resolu c oes podem obrigar o utilizador a fazer scroll horizontal. As principais vantagens do estudo da usabilidade de um produto de software s ao:

222

http://www.candidatoreal.com

Aumentar a produtividade dos utilizadores; Aumentar os n veis de utiliza c ao do produto; Reduzir a necessidade de forma c ao e de custos de produ c ao de documenta c ao; Reduzir os custos de suporte t ecnico; Reduzir custos e tempo de desenvolvimento; Minimizar o re-desenvolvimento e as altera c oes ap os a naliza c ao.

20.3

T ecnicas de avalia c ao de usabilidade

A usabilidade pode ser avaliada por diversas t ecnicas. As mais usuais s ao da heur stica e dos testes com utilizadores. A heur stica e uma das formas de avaliar a usabilidade mais econ omica e pr atica, permitindo detectar problemas na fase de desenvolvimento da interface. Esta t ecnica consiste em levantar quest oes heur sticas relacionadas ` a interface como: navega c ao, controle, funcionalidade, linguagem, ajuda e suporte, consist encia e erros. Nunca deve ser feita individualmente, pois uma pessoa n ao tem capacidade de levantar todas as quest oes heur sticas. A t ecnica dos testes com utilizadores obriga que o produto esteja pelo menos em forma de prot otipo para poder ser testado. O utilizador testa a interface tendo por base um conjunto de tarefas que foram denidas como princ pios heur sticos. Portanto, o objetivo de um bom design de p aginas Web e obter alta qualidade, no que diz respeito n ao somente a uma boa apar encia visual, como tamb em a estrutura ` c ao da informa c ao de forma a permitir aos usu arios encontr a-la r apida e ecaz.

http://www.candidatoreal.com

223

http://www.candidatoreal.com

Cap tulo 21

Acessibilidade
21.1 Deni c ao

A acessibilidade descreve os problemas de usabilidade encontrados por usu arios com necessidades especiais ou com limita c oes tecnol ogicas. Na pr atica, a acessibilidade de uma interface e indicada pela facilidade de acesso de um indiv duo, independente de suas capacidades f sicas, sensoriais e cognitivas, do seu ambiente e das condi c oes de trabalho e das barreiras tecnol ogicas. Ou seja, a acessibilidade signica que pessoas com necessidades especiais podem apreender, compreender, navegar e interagir com a Web. As causas mais freq uentes de falta de acessibilidade em muitas p aginas da Web para todos os usu arios est ao muitas vezes associadas: ` a falta de estrutura que desorienta o usu ario dicultando a navega c ao e ao uso abusivo de informa c oes gr acas (imagens, macros, scripts Java, elementos multim dia) sem proporcionar alternativas adequadas de texto ou outro tipo de coment ario.

21.2

Princ pios da acessibilidade

http://www.candidatoreal.com

Os princ pios de acessibilidade segundo W3C est ao relacionados a dois principais temas: assegurar uma transforma c ao harmoniosa e tornar o conte udo compreens vel e naveg avel. Estes princ pios s ao abordados num documento elaborado pelo W3C (Word Wide Web Consortium)-WAI (Web Accessibility Initiative), considerado refer encia para os princ pios de acessibilidade e id eias de design, chamado Web Content Accessibility GuideLines, WCAG 1.0. A transforma c ao harmoniosa de uma p agina Web pode ser garantida pela observ ancia de alguns pontos-chaves: Separar a estrutura da apresenta c ao, diferenciando o conte udo (a informa c ao a ser transmitida), a estrutura (a forma como a informa c ao e organizada em termos l ogicos) e a apresenta c ao (a forma como a informa c ao e reproduzida, por exemplo, como mat eria impressa, como apresenta c ao gr aca bidimensional, sob forma exclusivamente gr aca, como discurso sintetizado, em braille, etc.); Criar p aginas que cumpram a sua nalidade, mesmo que o usu ario n ao possa ver e/ou ouvir, fornecendo informa c oes que preencham a mesma 224

http://www.candidatoreal.com

nalidade ou fun c ao que o audio ou o v deo, de maneira a se adaptar o melhor poss vel a canais sensoriais alternativos e as tecnologias de apoio (software ou hardware para ajudar pessoas com incapacidade ou deci encia) atualmente dispon veis no mercado; Criar p aginas que n ao dependam exclusivamente de um tipo de equipamento. As p aginas devem ser acess veis 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 produ c oes compreens veis e naveg aveis, empregando uma linguagem clara e disponibilizando meios de navega c ao e apropria c ao da informa c ao apresentada. Disponibilizar mecanismos de orienta c ao de p agina e ferramentas de navega c 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 princ pios ou diretrizes que abordam as quest oes relacionadas ` a acessibilidade ` a Web. Cada diretriz possui pontos de verica c ao os quais s ao classicados por n veis de prioridade. Os 14 princ pios 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 ess encia, as mesmas fun c oes e nalidades 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 percep c ao do texto e dos elementos gr acos do documento, mesmo quando s ao vistos sem cores. Assim, deve-se assegurar que todas as informa c oes veiculadas por meio de cores estejam tamb em dispon veis sem cor, por exemplo, a partir de informa c oes do contexto ou de marca c ao apropriada; 3. Utilizar corretamente anota c oes (proporciona efeitos de formata c ao, com por exemplo, B ou I em HTML) e folhas de estilo (conjunto de declara c oes que especicam a apresenta c ao do documento) esta diretriz indica a necessidade de se utilizar marca c ao nos documentos com os elementos estruturais adequados e controlar a apresenta c ao por meio de folhas de estilo, em vez de elementos de apresenta c ao e atributos;

http://www.candidatoreal.com

4. Indicar claramente qual o idioma utilizado utilizar marca c oes que facilitem a pron uncia e a interpreta c ao de abreviaturas ou de texto em l ngua estrangeira e imprescind vel. Deve-se identicar claramente quaisquer mudan cas de idioma no texto de um documento, bem como nos equivalentes textuais; 5. Criar tabelas pass veis de transforma c ao harmoniosa assegurar que as tabelas t em as marca c oes necess arias para serem transformadas de forma harmoniosa por navegadores acess veis a outros agentes do usu ario. Em tabelas de dados, e preciso identicar os cabe calhos de linha e de coluna; 6. Assegurar que as p aginas dotadas de novas tecnologias sejam transformadas harmoniosamente permitir que as p aginas sejam acess veis mesmo 225

http://www.candidatoreal.com

quando as novas tecnologias mais recentes n ao forem suportadas ou tenham sido desativadas. Deve-se organizar os documentos de tal forma que possam ser lidos sem a necessidade de recorrer a folhas de estilo; 7. Assegurar o controle de usu ario sobre as altera c oes temporais do conte udo assegurar a possibilidade de interrup c ao moment anea ou denitiva do movimento, intermit encia, transcurso ou atualiza c ao autom atica de p aginas e objetos; 8. Assegurar acessibilidade direta em interfaces integradas pelo usu ario a interface com o usu ario deve obedecer a princ pios de design para a acessibilidade: acesso independente de dispositivos, operacionalidade pelo teclado, emiss ao autom atica de voz (verbaliza c ao); 9. Projetar p aginas considerando a independ encia de dispositivos utilizando fun c oes que permitam a ativa c ao de p aginas por meio de dispositivos de entrada e de comandos. Geralmente as p aginas que permitem intera c ao pelo teclado s ao tamb em acess veis atrav es de interfaces de comando de voz ou de linhas de comando; 10. Utilizar solu c oes provis orias ou de transi c ao utilizar solu c oes de acessibilidade transit orias, para que as tecnologias de apoio e os navegadores mais antigos funcionem corretamente; 11. Utilizar tecnologias e recomenda c oes do W3C utilizar tecnologias do W3C (HTML, XML, CSS, SVG, SMIL e etc.) e seguir as recomenda co es de acessibilidade; 12. Fornecer informa c oes de contexto e orienta c oes ajudar os usu arios a compreenderem p aginas ou elementos complexos; 13. Fornecer mecanismos de navega c ao claros fornecer mecanismos de navega c ao coerentes e sistematizados (informa c oes de orienta c ao, barras de navega c ao, mapa do site) de modo a aumentar a probabilidade de uma pessoa encontrar o que procura em um dado site. A exist encia de mecanismos claros e coerente e importante para usu arios com deci encia visual ou cognitiva, beneciando a todos os usu arios; 14. Assegurar clareza e simplicidade dos documentos assegurar a produ c ao de documentos claros e simples, para que sejam mais f aceis de compreender. Deve-se tamb em utilizar a linguagem mais clara e simples poss vel, adequada ao conte udo do site.

http://www.candidatoreal.com

Conforme mencionado anteriormente, cada diretriz possui pontos de verica c ao que por sua vez possui os n veis de prioridade. De acordo com a classica c ao, existem 3 n veis de prioridade: Prioridade 1 pontos que os criadores de conte udo Web t em absolutamente de satisfazer para evitar que usu arios quem impossibilitados de compreender as informa c oes contidas na p agina ou site; Prioridade 2 pontos que os criadores de conte udo para a Web devem satisfazer para evitar que os usu arios tenham diculdade de acessar as informa c oes contidas no documento, evitando barreiras signicativas a documentos publicados na Web; 226

http://www.candidatoreal.com

Prioridade 3 pontos que os criadores de conte udo na Web podem satisfazer para melhorar o acesso as informa c oes disponibilizadas nas p aginas ou sites. Na verica c ao da acessibilidade de um documento s ao estabelecidos os n veis de conformidade para as p aginas ou sites na Web: N vel de conformidade A quando satisfeitos todos os pontos de verica c ao de prioridade 1; N vel de conformidade Duplo A quando satisfeitos todos os pontos de verica c ao de prioridade 1 e 2; N vel de conformidade Triplo A quando satisfeitos todos os pontos de verica c ao de prioridade 1, 2 e 3.

21.3

T ecnicas de avalia c ao de acessibilidade

http://www.candidatoreal.com

As avalia c oes e valida c oes s ao especicadas num documento do W3C chamado Evaluating Web Sites Accessibility, onde s ao apresentados dois m etodos de avalia c ao de acessibilidade: Avalia c ao de Preliminar de Acessibilidade (identica c ao de forma r apida dos problemas gerais de acessibilidade num site) e Avalia c ao de Conformidade (verica c ao do grau de conformidade de um site com os padr oes de acessibilidade, WCAG. Este m etodo identica problemas de acessibilidade mais espec cos num site). A avalia c ao e valida c ao da acessibilidade s ao feitas por meio de ferramentas autom aticas ou da revis ao direta manual. Os m etodos autom aticos s ao geralmente r apidos, mas n ao s ao capazes de identicar todos os aspectos da acessibilidade. Esses m etodos n ao s ao capazes de avaliar conte udo gerado dinamicamente. A avalia c ao humana pode ajudar a garantir a clareza da linguagem e a facilidade de navega c ao. Para a valida c ao autom atica da acessibilidade de uma p agina ou de um site podemos utilizar as ferramentas ou servi cos de an alise da acessibilidade e compatibilidade, como Bobby, o validador par HTML 4 do W3C e o TAW. O ideal e a combina c ao dos m etodos manuais e autom aticos. A avalia c ao e valida c 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 m etodo para testar uma p agina ou site, ap os a implementa c ao dos princ pios de acessibilidade, os seguintes pontos de verica c ao: 1. Utilizar uma ferramenta de acessibilidade autom atica e ferramentas de valida c 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 acos com o som e os gr acos ativos, sem gr acos, 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 aplica c ao, monitores monocrom aticos, etc; 8. Utilizar corretores ortogr acos e gramaticais; 9. Rever o documento, vericando a clareza e a simplicidade; 10. Validar p aginas com usu arios reais. Acessibilidade e usabilidade s ao conceitos que se inter-relacionam, pois ambos buscam a eci encia e ec acia no uso de uma interface. A observa c ao de alguns crit erios ou fatores a serem ressaltados na elabora c ao de uma p agina Web pode auxiliar na concep c ao de bons projetos de interface e conseq uentemente, melhorar a qualidade da intera c ao do usu ario com a aplica c ao.

http://www.candidatoreal.com

228

http://www.candidatoreal.com

Cap tulo 22

Padr oes Web W3C


Padr oes Web (Web Standards ou Tableless) e um conjunto de normas, diretrizes, recomenda c oes, notas, artigos, tutoriais e ans de car ater t ecnico, produzidos pelo W3C e destinados a orientar fabricantes, desenvolvedores e projetistas para o uso de pr aticas que possibilitem a cria c ao de uma Web acess vel a todos, ajudados por diversos recursos que fazem uma Web mais agrad avel de usar. Toda essa padroniza c ao e para atender a id eia 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 informa c oes dos documentos. Ou seja, al em da informa c ao, a m aquina saberia distinguir a que se refere esta informa c ao. Um exemplo pr atico disso e que, se utiliz assemos o elemento address para denir os endere cos em nosso site, uma ferramenta de busca poderia criar uma indexa c ao destes endere cos, e disponibilizar para o usu ario. Quantas vezes voc e visitou o site de uma empresa e cansou de procurar pelo endere co, ou um telefone de atendimento ao cliente? A Web Sem antica n ao e uma substitui c 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 aplica c ao dos padr oes Web. Entre elas, vale destacar: Acessibilidade tanto para decientes quanto para usu arios de dispositivos m oveis como PDAs, celulares, smartphones, etc.; O browser interpreta as informa c 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 utiliza c 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 programa c 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 atualiza c ao e mudan cas no layout. Algumas tecnologias padronizadas pelo W3C:

http://www.candidatoreal.com

229

http://www.candidatoreal.com

uma linguagem de marca HTML (Hyper Text Markup Language) E c ao de tags utilizada para produzir p aginas na Web. A u ltima recomenda c ao lan cada pelo W3C foi a HTML 4.01; uma reformula XHTML (Extensible Hyper Text Markup Language E c ao da linguagem de marca c ao HTML baseada em XML. Combina as tags de marca c ao do HTML com as regras do XML. Esta reformula c ao tem em vista a exibi c ao de p aginas Web em diversos dispositivos (televis ao, palm, celular). A inten c ao desta linguagem e melhorar a acessibilidade. A u ltima recomenda c ao lan cada pelo W3C foi XHTML 1.0; uma linguagem de marca XML (Extensible Markup Language) E c ao apropriada para representa ca o de dados, documentos e demais entidades cuja ess encia fundamenta-se na capacidade de agregar informa c oes. A u ltima recomenda c ao lan cada pelo W3C foi XML 1.0; uma linguagem de estilo utilizada para CSS (Cascading Style Sheets) E denir a apresenta c ao de documentos escritos em uma linguagem de marca c ao, como HTML ou XML. Seu principal benef cio e prover a separa c ao entre o formato e o conte udo de um documento. A u ltima recomenda c ao lan cada pelo W3C foi CSS 3; uma linguagem que dene as folhas XSL (Extensible Markup Language E constitu de estilo padr ao para o XML. E da de tr es partes: XSLT (linguagem de transforma ca o de documentos XML), XPath (linguagem para navega c ao em documentos XML) e XSL-FO (linguagem para formata c ao de documentos XML). A u ltima recomenda c ao lan cada pelo W3C foi XSL 1.0, XSLT 2.0 e XSL-FO; uma linguagem de marca XSLT (XSL Transformations) E c ao XML usada para transformar documentos XML. Esta linguagem possibilita mais transforma c oes mais potentes do que as folhas de estilo CSS; uma linguagem para encontrar informa XPath (XML Path) E c oes em um documento XML. O XPath e utilizado para navegar atrav es de atributos o principal elemento no padr e elementos em um documento XML. E ao XSLT; uma linguagem utilizada para executar consultas XQuery (XML Query) E em dados XML. A u ltima recomenda c ao lan cada pelo W3C foi XQuery 1.0; uma especica DOM (Document Object Model) E c ao do W3C, independente de linguagem e plataforma, onde se pode alterar e editar a estrutura de um documento. Com o DOM e poss vel acessar elementos de um documento, e poder trabalhar com cada um desses elementos separadamente, possibilitando a cria c ao de p aginas altamente din amicas. A u ltima recomenda c ao lan cada pelo W3C foi DOM Level 3; um protocolo de comunica SOAP (Simple Object Acess Protocol) E c ao simples baseado em XML para troca de informa c oes entre aplica c oes. A especica c ao do SOAP prov e maneiras para construir mensagens que possam trafegar por meio de diversos protocolos de forma independente da 230

http://www.candidatoreal.com

http://www.candidatoreal.com

linguagem de programa c ao e do sistema operacional. Normalmente, o protocolo utilizado para troca de informa c oes e o HTTP, pois este n ao possui problema de seguran ca com rewalls e proxy. Ou seja, o http por ser um protocolo da Internet n ao e bloqueado pelos rewalls e proxy. A u ltima recomenda c ao lan cada pelo W3C foi SOAP 1.2; uma linguagem baseada WSDL (Web Services Description Language) E em XML para descri c ao de Web Services e como acess a-los. A u ltima recomenda c ao lan cada pelo W3C foi WSDL 1.1; uma linguagem para repreRDF (Resource Description Framework) E sentar informa c oes na Web. O RDF usa nota c ao XML como sintaxe de codica c ao para descri ca o de metadados. A id eia do RDF e a descri c ao dos dados e dos metadados em tr es componentes: recurso (qualquer objeto que e identic avel unicamente por um URI), propriedade ( e uma caracter stica, um atributo ou relacionamento espec co de um recurso) e valor, e uma forma coerente de acesso aos padr oes de metadados (namespace) publicados na Web. Um dos benef cios do RDF e permitir que aplica c oes possam agir de forma inteligente e automatizada sobre as informa c oes publicadas na Web. A u ltima recomenda c ao lan cada pelo W3C foi RDF 1.0; uma linguagem para denir e instanOWL (Web Ontology Language) E ciar ontologias na Web. Uma ontologia OWL pode incluir descri c oes de classes e suas respectivas propriedades e relacionamentos. A OWL foi projetada para aplica c oes que precisam processar o conte udo da informa c ao ao inv es de apresent a-la aos humanos. Ela fornece um vocabul ario adicional com uma sem antica formal que facilita muito mais a interpreta c ao do conte udo da Web do o XML. A OWL foi baseada nas linguagens OIL e DAML+OIL, e possui tr es sublinguagens: OWL LITE, OWL DL, OWL FULL. A u ltima recomenda c ao lan cada pelo W3C foi OWL 1.0; uma linguagem SMIL (Syncronized Multimedia Integration Language) E baseada em XML, trabalhando com tags semelhantes ao HTML, podendo ser editado por qualquer editor de texto comum, pois os elementos multim dia n ao s ao inseridos, apenas referenciados. O SMIL permite a cria c ao de apresenta c oes audiovisuais interativas, e e utilizado em apresenta c oes multim dias do tipo rich media, que integram audio e v deo streaming, texto ou qualquer outro tipo de arquivo. O SMIL permite gerenciar a transmiss ao de arquivos multim dia por streaming, sincronizar estes arquivos com anima c oes ash, p aginas HTML, etc., e criar uma esp ecie de indexa c ao destes arquivos de audio e v deo. Uma grande vantagem do SMIL que ele e utilizado pelos players mutim dia Real Player QuickTime. Au ltima recomenda c ao lan cada pelo W3C foi SMIL 2.1. O W3C estabelece uma s erie de recomenda c oes para utilizar essas tecnologias. Esses padr oes s ao conhecidos como Padr oes W3C ou Recomenda c oes W3C. Observa c oes: 1. Um namespace (NS) dene um vocabul ario controlado que identica um conjunto de conceitos de forma u nica para que n ao haja ambig uidade na

http://www.candidatoreal.com

231

http://www.candidatoreal.com

sua interpreta c ao. Os namespaces XML s ao conjuntos de tipos de elementos e atributos poss veis 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 aoamb guo, onde usu arios e programas de valida c ao de c odigo XML podem consultar a sintaxe e propriedades sem anticas dos conceitos cobertos; 2. URI (Uniform Resource Identier) e uma cadeia de caracteres que identica um recurso da internet. O URI mais comum e o URL que identica um endere co de dom nio, mas os URIs podem tamb em identicar livros, elementos de uma p agina e pessoas individuais, por exemplo; 3. Uma Ontologia fornece uma conceitua c ao (meta-informa c ao) que descreve a sem antica dos objetos, as propriedades dos objetos e as rela c oes existentes entre eles num dado dom nio do conhecimento. As Ontologias s ao desenvolvidas para fornecer um n vel sem antico ` a informa c ao de um dado dom nio de forma torn a-la process avel por m aquinas e comunic avel entre diferentes agentes (software e pessoas). As ontologias s ao utilizadas na Intelig encia Articial, Web Sem antica, Engenharia de Software e Arquitetura da Informa c ao como uma forma de representa c ao de conhecimento do mundo ou alguma parte dele. S ao elementos da Ontologia: Indiv duos (inst ancias) que incluem objetos concretos ou abstratos, Classes (conceitos) que s ao grupos abstratos (por exemplo, Pessoa, a classe para todas as pessoas), Atributos que armazenam informa c oes do objeto (pelo menos um nome e um valor), e Relacionamento que s ao as formas como os objetos se relacionam com os outros objetos;

http://www.candidatoreal.com

232

http://www.candidatoreal.com

Cap tulo 23

XML
23.1 O que e XML?

Extensible Markup Language (XML) e uma linguagem de marca c ao (utiliza c ao de tags) para descrever os dados de p aginas Web de forma estruturada. O XML e um dos padr oes adotado pelo W3C e foi projetado para descrever o conte udo de uma p agina Web em vez da sua formata c ao. O XML e derivado da linguagem SGML (Standard Generalized Markup Language), que e um padr ao internacional para deni c ao de formatos de representa c ao de documentos. O SGML e muito mais complexo de se implementar do que o XML. A gura 23.1 mostra um exemplo de uma p agina Web em XML. Como o XML trata apenas do conte udo do documento, existem diversos padr oes para descrever o formato da apresenta c ao dos dados. Uma das formas de apresentar tais documentos e por meio das folhas de estilo. As principais linguagens de estilo s ao o CSS (Cascading Style Sheets) e o XSL (Extensible Style Sheets). Ent ao, a apresenta c ao dos dados car a a cargo dessas linguagens.

http://www.candidatoreal.com

Figura 23.1: Uma p agina Web simples em XML

233

http://www.candidatoreal.com

23.2

Caracter sticas do XML

Algumas caracter sticas do XML: uma linguagem de representa E c ao de documentos e n ao uma linguagem de programa c ao; Facilita a gera c ao de dados, a leitura de dados e assegura que a estrutura de dados n ao e amb gua; extens E vel e independente de plataforma; modular, pois a permite a deni E c ao de um novo formato de documento pela combina c ao e reuso de outros formatos; N ao possui tags pr e-denidas, e permite um n umero innito de tags; Estruturas de dados podem ser agrupadas em profundidade innita; Pode ser descrita por grafos com n os e r otulos, possibilitando que algoritmos conhecidos possam ser utilizados para a recupera c ao ou localiza c ao de dados.

23.3

Compara c ao entre XML e HTML

http://www.candidatoreal.com

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 diferen ca entre o HTML e o XML e que o HTML descreve como os dados devem ser apresentados (formata c 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 especica o que cada tag e atributo signicam e frequentemente como o texto entre elas aparece num browser, o XML usa as tags somente para delimitar as por c oes de dados, e deixa a interpreta c ao dos dados para a aplica c 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 pre co, um par ametro, uma pessoa, etc. Enquanto ao uso das tags nas duas linguagens, O XML as tags n ao s ao pr e-denidas e pode-se usar um n umero innito de tags. O HTML isso n ao e poss vel. Os arquivos XML s ao arquivos textos, e n ao s ao destinados ` a leitura por um ser humano como o HTML e. Isso ca a cargo de outras linguagens. As especica c oes de XML s ao muito mais r gidas que a especica c 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 t em 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 nal. A express ao book e chamada de 234

http://www.candidatoreal.com

tag inicial (come ca com e termina com ) e /book e chamada de tag nal (come ca com / e termina com ). Estas marca c oes s ao denidas pelo usu ario. A estrutura ou o texto entre as tags iniciais e nais e chamado de conte udo. As tags no XML s ao case sensitive. Os elementos podem incluir outros elementos (ditos elementos lhos) e textos. No exemplo da gura 23.1, bookl ist e o elemento raiz e o book e o elemento lho. Usam-se elementos repetidos com a mesma tag (book) para representar cole c oes de dados, gura 23.1. Um elemento pode n ao ter qualquer conte udo. Este tipo de elemento e designado por elemento vazio, por exemplo, o elemento \ <gura path=... > que marca onde deve ser inserido uma gura. 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 utiliza c ao de espa co em branco no nome dos elementos. O nome dos elementos pode come car somente com letras, underscore ou dois pontos. A linguagem XML permite associar atributos aos elementos. Os atributos s ao utilizados para especicar as propriedades ou caracter sticas do elemento. O atributo e denido 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 denir tamb em 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> Neste exemplo, cod=3cop025 e um atributo do elemento <disciplina>. Cada atributo de um elemento pode ser especicado somente uma vez.O XML dene apenas dois atributos como reservado: xml:lang e xml:space. Uma observa c ao importante a ser feita a respeito de elemento e atributo e que n ao existe uma fronteira entre os dois, gura 23.2. A representa c ao (b) est a correta, mas e muito mais dif cil de processar.

http://www.candidatoreal.com

Figura 23.2: Representa c oes diferentes de uma estrutura em XML Algumas regras b asicas devem ser lembradas na constru c ao de um documento XML: 235

http://www.candidatoreal.com

O documento deve ter sempre uma declara c ao XML no in cio (<?xml version=1.0?>); O documento deve incluir um ou mais elementos o primeiro elemento, que delimitar a todo o corpo do documento, e o elemento raiz e todos os outros dever ao estar inclu dos dentro dele; Todos os elementos dever ter uma tag de in cio e outra de m; Todos os elementos dever estar aninhados corretamente; Todos os valores de atributos devem estar entre aspas.

23.5

Conjunto de tags

As principais tags que podem ser utilizadas em um documento XML s ao: Instru c ao de processamento mecanismo que permite a inser c ao de informa c oes expl citas em um documento destinadas a uma aplica c ao. Os interpretadores XML n ao interpretam essas informa c oes, mas simplesmente as repassam para a aplica c ao. A instru c ao de processamento n ao faz parte do conte udo do documento; Sintaxe: <? ?>

Exemplo: <?html action="hr"?> Declara c ao XML e um tipo de instru c ao de processamento. Qualquer documento XML dever come car sempre com uma declara c ao XML. Normalmente, se contiver algo antes da declara c ao ou se estiver ausente, a aplica c ao acusar a erro. Existem tr es tipos de atributos para a declara c 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 refer encias a entidade externa e nocaso contr ario.), encoding (Opcional e indica qual codica c ao usada para os caracteres. O valor para caractere portugu es e isso-8859-1);

http://www.candidatoreal.com

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 marca c 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 marca c oes e um dado e n ao um texto. Isso e utilizado na deni c ao das DTDs ou gram atica do documento; Refer encias e poss vel associar identicadores u nicos aos elementos, por meio de um atributo de identica c ao, id. Com isto permite-se que elementos distintos referenciem-se entre si; Exemplo: <biblio id="bib" ano="2001"> ... </biblio>

Entidade identica um conjunto de informa c ao por um nome. As entidades podem ser associar a textos e cheiros. O XML possui cinco entidades pr e-denidas: &lt (<), &gt (>), &amp (&), &apos () e &quot ();

http://www.candidatoreal.com

Sintaxe: <!ENTITY ...> Exemplo (entidade interna): <!ENTITY assinatura "Jorge Manuel Neves Coelho"> (assinatura= Jorge Manuel Neves Coelho) Exemplo (entidade externa): <!ENTITY ent01 SYSTEM "ents/ent01.xml"> 237

http://www.candidatoreal.com

A verica c 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 verica se um documento e bem formado, e o parser n ao validador, que verica 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 especicada 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

Como os nomes dos elementos em XML n ao est ao pr e-denidos, pode ocorrer um conito de nome quando um documento XML importa outro documento XML, pois esses documentos podem usar o mesmo nome para descrever dois tipos diferentes de elementos, por exemplo, o elemento < table > da gura 23.3.

Figura 23.3: Diferentes documentos XML com mesmo nome de elemento O NameSpace e um padr ao denido pelo W3C e basicamente e utilizado para resolver conitos de nomes usados nos documentos XML. A resolu c ao de conitos pode ser feita por meio do uso de prexos ou de namespaces. No uso de prexos, basta o usu ario denir um nome diferente para seus elementos < table >, por exemplo, < h : table > e < f : table >. Usando o prexo, criam-se dois tipos diferentes de elementos do tipo < table >. Para denir/criar um namespace o usu ario deve denir o atributo xmlns (XML NameSpace) a tag inicial de um elemento no documento XML com a sintaxe xmlns:namespace-prex =namespace. Quando o namespace e denido a tag inicial do elemento, todos os elementos lhos com o mesmo prexo s ao associados com o mesmo namespace. O atributo xmlns pode ser utilizado em qualquer elemento e n ao apenas no n o raiz. A gura 23.4 mostra alguns exemplos de namespace e a Ilustra c ao 6 mostra a utiliza c ao de namespace em vez de prexo para o exemplo da gura 23.3. Pode-se perceber pela gura 23.4.(a) que a string identicadora de um namespace e grande para ser manipulada diretamente. Para que sua utiliza c ao

http://www.candidatoreal.com

238

http://www.candidatoreal.com

Figura 23.4: Declara c ao de namespace

Figura 23.5: Exemplo de utiliza c ao de namespace seja vi avel, utiliza-se um prexo, uma esp ecie de abreviatura para os namespaces. De acordo com a gura 23.4.(b) os prexos seriam catalogo, encomenda e jcr. A especica c ao de namespaces da W3C estabelece que o namespace deve ter um URI para garantir a unicidade dos nomes dos elementos. Note que o endere co usado para identicar o namespace n ao e usado pelo parser para buscar informa ca o. O u nico prop osito e dar ao namespace um nome u nico. Entretanto, e comum usar o namespace como um ponteiro para uma p agina Web real contendo informa c oes sobre o namespace. Por exemplo, a gura 23.5 mostra a declara c ao de namespaces distintos para especicar onde s ao buscados os dados da deni c ao de elementos com o mesmo nome, no caso < table >. Os namespaces s ao tamb em utilizados em deni c oes de XML Schema, XSL e RDF.

http://www.candidatoreal.com

23.7

Gram atica de um documento XML

Algumas vezes existe a necessidade de denir os elementos que podem aparecer em um documento XML, o conte udos destes, e os atributos que podem estar associados aos elementos. Tamb em, existe a necessidade de denir a estrutura do documento especicando, por exemplo, quais s ao os subelementos de um elemento e a seq u encia que eles devem aparecer. A primeira linguagem proposta

239

http://www.candidatoreal.com

para a deni c ao dessas regras nos documentos XML foi a DTD (Document Type Denition). Existem quatro tipos de declara c oes que podem ser utilizadas em um DTD: elementos, atributos, entidades e instru c oes de processamento. As entidades est ao relacionas com a organiza c ao f sica do documento XML, as instru c oes de processamento foram explicadas anteriormente, os elementos s ao denidos pela palavra-chave ELEMENT e a lista de atributos de cada elemento e denida pela palavra-chave ATTLIST. As principais declara c oes que ocorrem em um DTD s ao de elementos e de atributos. As declara c oes de elementos especicam como deve ser o conte udo do elemento. As seguintes declara co es podem ser feitas: Denir a seq u encia 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)> Denir elementos vazios: constante EMPTY Exemplo: <!ELEMENT image EMPTY> Denir a ocorr encia 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*)> Denir que o elemento deve ser um entre uma lista de elementos: (a|b) Exemplo:

http://www.candidatoreal.com

<!ELEMENT tipo_pub (periodico | evento)> Obs.: O elemento tipop ub e composto por um elemento periodico ou evento. Denir que o elemento tem presen ca opcional: (elemento)? Exemplo: <!ELEMENT biblio (titulo, autor, tipo_pub, resumo?)> Denir que o elemento e uma string de caracteres: #P CDAT A Exemplo: <!ELEMENT autor (#PCDATA)> 240

http://www.candidatoreal.com

Denir elementos livres: constante ANY. Exemplo: <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT doc (para)+> nome (#PCDATA)> lugar (#PCDATA)> data (#PCDATA)> para ANY>

Obs: O elemento para est a denido como sendo de conte udo ANY, ou seja, pode ser texto com elementos nome, lugar e data pelo meio (< para >Tudo aconteceu em < lugar > Braga < /lugar > ... < /para >). A gura 23.6 mostra o documento XML que descreve uma agenda e a gura 23.7 mostra as especica c oes do documento DTD.

Figura 23.6: Documento XML contendo a descri c ao de uma agenda

http://www.candidatoreal.com

Figura 23.7: Conjunto de declara c oes para o XML que descreve a agenda

241

http://www.candidatoreal.com

As declara c oes de atributo servem para especicar o nome, o tipo de dado associado ao atributo e opcionalmente especicar se h a algum valor padr ao de atributo: Sintaxe:

<!ATTLIST nome_elemento {nome_atributo tipo_atributo}> onde {nome_atributo tipo_atributo} den Obs.: Alternativamente pode-se utilizar a seguinte sintaxe: <!ATTLIST nome_elemento nome_atributo1 tipo_atributo1> <!ATTLIST nome_elemento nome_atributo2 tipo_atributo2> As seguintes declara c oes de tipo de atributo podem ser feitas: Valor do atributo deve ser uma string de qualquer tamanho: CDATA Exemplo: <!ATTLIST biblio ano CDATA local CDATA > Valor do atributo pode ser um entre uma lista de valores poss veis: Exemplo: <!ATTLIST tipo_pub abrange (regional | nacional | internacional)> Valor do atributo signica um identicador do elemento ao qual est a associado: ID Exemplo: <!ATTLIST biblio ident ID> Obs.: Cada elemento que possui o atributo ID deve ter um u nico atributo ID e para cada elemento o valor ID deve ser diferente. Valor do atributo signica um nome de identicador referenci avel: IDREF Exemplo: <!ATTLIST biblio refer IDREFS> Obs.: Quando da ocorr encia de atributo com m ultiplos valores do tipo IDREF, utiliza-se a declara c ao IDREFS. Usa-se o IDREF para implementar rela c oes entre elementos. Opcionalmente e poss vel estabelecer se a presen ca de um atributo e obrigat oria, opcional ou se assume um valor padr ao. As seguintes declara c oes s ao poss veis: Declarar que a presen ca do atributo e obrigat oria: #REQU IRED ap os a declara c ao do tipo de atributo Exemplo: <!ATTLIST biblio ano CDATA #REQUIRED local CDATA> Declarar que a presen ca do atributo e opcional: #IM P LIED ap os a declara c ao do tipo de atributo Exemplo: 242

http://www.candidatoreal.com

http://www.candidatoreal.com

<!ATTLIST biblio ano CDATA #REQUIRED local CDATA #IMPLIED> Especicar um valor padr ao quando o valor do atributo deve ser escolhido entre uma lista de valores: Exemplo: <!ATTLIST aula tipo (teoria | exemplo | exerc cio) "teoria"> Declarar que a presen ca do atributo e xa: #F IXED ap os a declara c ao do tipo de atributo e seu valor ser a o que estiver a frente da palavra #F IXED. Exemplo: <!ATTLIST data tipo CDATA #FIXED "data"> Obs.: 1. O atributo a ser denido como #F IXED e constante e imut avel. 2. Deni c ao de uma entidade param etrica (somente no DTD): <!ELEMENT a (c|d|e)> <!ELEMENT a %ab;> => <!ENTITY % ab "(c|d|e)"> => <!ELEMENT b (c|d|e)> <!ELEMENT b %ab;> Quando um documento XML atende as especica c oes de um esquema, este documento e chamado de documento v alido. Para que o interpretador XML possa validar um documento XML quanto a sua gram atica e necess ario associar o DTD ao documento XML. Esta associa c ao, que e especicada no in cio do documento DTD, pode ser feita tanto de forma interna quanto de forma externa. Na forma interna, as declara c oes DTD s ao colocadas explicitamente no arquivo XML, atrav es da sintaxe: <!DOCTYPE nome_DTD [declara c~ oes da DTD]> Exemplo:

http://www.candidatoreal.com

Figura 23.8: Associa ca o entre o XML e o DTD na forma interna Na forma externa, a associa c ao e feita no documento XML por meio da sintaxe: <!DOCTYPE nome_DTD SYSTEM "nome do arquico DTD">

243

http://www.candidatoreal.com

Exemplo: <!DOCTYPE agenda SYSTEM "agenda.dtd"> <!DOCTYPE agenda SYSTEM "http://xml.idi.uminho.pt/DTDs/agenda.dtd"> Obs.: Esta declara c ao indica que o elemento raiz do documento e agenda e que o DTD pode ser encontrado no sistema no arquivo agenda.dtd. A declara c ao DOCTYPE n ao pode aparecer livremente num documento XML. Ela deve aparecer sempre ap os a declara c ao XML e antes do elemento raiz, gura 23.9.

Figura 23.9: Posi c ao da declara c ao DOCTYPE Pelas declara c oes b asicas que uma DTD pode utilizar, observa-se que os tipos de dados que podem ser declarados s ao de certa forma limitados. Para ampliar as possibilidades de se denir tipos de dados, outro tipo de esquema foi denido pelo W3C denominado XML Schema ou XSD (XML Schema Denition).

23.8

Tecnologias XML

A seguir s ao apresentadas as tecnologias relacionadas ao XML: XHTML (Extensible HTML) e uma vers ao expl cita do HTML; XML DOM (XML Document Object Model) dene um padr ao de acesso e manipula c ao de documentos XML; XSL (Extensible Style Sheet Language) consiste de tr es partes: XSLT, XPath e XML-FO; XSLT (XSL Transformation) e usado para transformar documentos XML em outros formatos, como XHTML; XPath e uma linguagem para navega c ao em documentos XML;

http://www.candidatoreal.com

XSL-FO (XSL Formatting Object) e uma linguagem para formata c ao de documentos XML; XLink (XML Linking Language) e uma linguagem para criar hyperlinks em documentos XML; XPointer(XML Pointer Language) permite os hyperlinks XLink apontar para partes espec cas de um documento XML; DTD (Document Type Description) e usado para denir a gram atica de um documento XML; XSD (XML Schema Denition) e baseado em XML alternativo ao DTD; 244

http://www.candidatoreal.com

XForms (XML Forms) usa XML para denir 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 aplica c oes trocarem informa c 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 not cias 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 apresenta c oes audiovisuais; SVG (Scalable Vector Graphics) dene formatos gr acos em XM. A gura 23.10 mostra como algumas dessas tecnologias interagem com a linguagem XML.

http://www.candidatoreal.com

Figura 23.10: Intera c ao entre as tecnologias XML

23.9

Benef cios da linguagem XML

Os principais objetivos da linguagem XML: Buscas mais eciente; Desenvolvimento de aplica c oes ex veis para a Web; 245

http://www.candidatoreal.com

Integra c ao de dados de fontes diferentes; Computa c ao e manipula c ao local; M ultiplas formas de visualizar os dados; Atualiza c ao granulares dos documentos; F acil distribui c ao na Web; Escalabilidade; Compreens ao.

23.10
Parsers:

Ferramentas de desenvolvimento

Expat; XML4J; MSXML; Editores: Editores de texto comum; Xeena;

http://www.candidatoreal.com

246

http://www.candidatoreal.com

Cap tulo 24

XSLT
Uma das principais id eias de XML e deixar expl cita a separa c ao entre conte udo, estrutura e apresenta c 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 apresenta c ao dos dados. Uma das formas de permitir apresenta c ao de tais documentos e por meio das folhas de estilo. Linguagens de folhas de estilo (style sheets ) foram projetadas para permitir que a descri c ao de estilo de apresenta c ao de documentos seja separada da representa c ao do conte udo dos documentos. Isto facilita a reutiliza c ao de um mesmo documento para diferentes aplica c oes ou diferentes tipos de usu arios que requerem diferentes vis oes do mesmo. O princ pio b asico destas linguagens e prover uma sintaxe que permita associar partes espec cas do conte udo de documentos a estilos ou a c 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 ).

24.1

O que e uma folha de estilo?

http://www.candidatoreal.com

Quando um site Web e complexo e consiste de muitas p aginas produzidas por v arios autores que trabalham na mesma empresa, frequentemente e interessante ter um meio de impedir que diferentes p aginas tenham uma apar encia distinta. Esse problema pode ser resolvido usando-se folhas de estilo. Quando as folhas de estilo s ao utilizadas, as p aginas individuais deixam de usar estilos f sicos, como negrito e it alico. Em vez disso, os desenvolvedores utilizam estilos pr oprios como < dn > (deni c ao), < em > ( enfase fraca), < strong > ( enfase forte) e < var > (vari aveis). Os estilos l ogicos s ao denidos na folha de estilo, referida no in cio de cada p agina. Uma folha de estilo pode ser comparada a um arquivo #include em um programa C: a mudan ca em uma u nica deni c ao de macro provoca a altera c ao em todos os arquivos de programa que incluem o cabe calho.

24.2

Compara c ao entre o CSS e XSL

A semelhan ca entre as essas duas folhas de estilo, CSS e XSL, est a em ambas podem ser usadas em documentos XML, mas o CSS n ao transforma documentos. 247

http://www.candidatoreal.com

Essa possibilidade est a reservada somente ao XSL. XSL e mais poderoso que o CSS, pois suporta transforma c oes do documento antes de sua exibi c ao. Por outro lado, o XSL n ao pode ser usado em linguagens HTML. Desta forma essas duas linguagens completam-se uma ` a outra e podem ser utilizadas simultaneamente. A utilidade do XSL e mais percept vel, quando, por exemplo, e necess aria a ordena c ao dos dados antes de serem exibidos.

24.3

O que e o XSL?

O XSL e uma linguagem para descrever folhas de estilo para documentos XML. composta por tr E es linguagens descendentes de XML: XSLT (XSL Transformation) linguagem para transformar documentos XML; XPath linguagem para denir 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?

O XSLT e a parte do XSL usada para transformar um documento XML em outro documento XML, ou em outro tipo de documento (tx, pdf, rtf, HTML, XHTML, etc.). O XSLT utiliza o XPath para encontrar informa c oes nos documentos XML. XPath e usado para navegar atrav es dos elementos e atributos nos documentos XML. O XSLT dene um conjunto de regras de transforma c ao que ser ao aplicadas a um documento XML ( arvore fonte) para produzir outro documento XML ( arvore resultado). Nesse processo de transforma c ao, o XSLT utiliza o XPath para denir partes do documento de origem (fonte) que combinem com um ou mais templates pr e-denidos. Quando uma combina c ao e encontrada, o XSLT transforma essas partes do documento de origem no documento de resultado. As partes do documento de origem que n ao s ao combinadas com o template permanecer ao sem modica c oes no documento de resultado. O XSLT permite:

http://www.candidatoreal.com

Adicionar texto ao conte udo de elementos; Remover, criar, alterar e ordenar os conte udos dos elementos; Converter conte udo de elementos para valores de atributos, ou vice-versa; Alterar a ordem dos elementos; Substituir elementos por novos elementos.

248

http://www.candidatoreal.com

24.5

Caracter sticas do XSLT

Algumas caracter sticas do XSLT: uma linguagem declarativa descreve a transforma E c ao desejada, ao inv es de prover uma seq u encia de instru c oes procedurais; essencialmente uma ferramentapara transformar documentos XML; E Manipula arvores; Uso de XSL NameSpaces o W3C prov e um namespace para as tags XSL.

24.6

Declarando um documento XSL

Como o XSL obedece a mesma sintaxe do XML, quando se cria uma especica c ao de folha de estilo XSL, deve-se incluir a instru c ao de processamento (por exemplo, <?xml version=1.0standalone=yesencoding=UCS-2?>) para arquivos XML no in cio do arquivo que descreve a folha de estilo. Os arquivos XSL tem extens ao .xsl. A gura 24.1 mostra um exemplo de um arquivo XSL.

http://www.candidatoreal.com

Figura 24.1: Declara c ao de uma folha de estilo XSL O elemento raiz que declara um documento ser uma folha de estilo XSL e o elemento <xsl:stylesheet> ou <xsl:transform>. Esses dois elementos s ao sin onimos e s ao as tags mais externas de um documento XSL. 249

http://www.candidatoreal.com

O modo correto de declarar uma folha de estilo XSL de acordo com a recomenda c 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 caracter stica do XSLT, devese declarar o namespace XSLT no in cio do documento; 2. O xmlns:xsl=http://www.w3.org/1999/XSL/Transformidentica a Recomenda c ao NameSpace ocial do W3C. Caso utilize este namespace, deve incluir o atributo version=1.0. O restante da declara c ao na folha de estilo XSL e referente a como transformar o documento XML. Essa transforma c 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 deni c ao do arquivo XSL e preciso associar este arquivo no documento XML. A instru c ao que deve ser inclu da no documento XML para que o interpretador XML fa ca uso da folha de estilo XSL denida e: <?xml-stylesheet type="text/xsl" href="localiza c~ ao do arquivo.xsl"?>

http://www.candidatoreal.com

A gura 24.2 mostra o arquivo XML com esta associa c ao. A gura 24.1 ea declara c ao da folha de estilo para esse documento XML. A gura 24.3 mostra a visualiza c ao do documento XML no browser utilizando a folha de estilo denida anteriormente. Ao abrir o documento XML o browser transforma o documento XML em HTML.

24.7

Elemento <xsl:template>

O elemento <xsl:template> e utilizado para construir templates. Cada template cont em regras para aplicar quando um n o (elemento) espec co e combinado. O atributo match desse elemento e usado para associar um template com um elemento XML ou denir um template para toda uma se c ao de um documento 250

http://www.candidatoreal.com

Figura 24.2: Documento XML com linkpara a folha de estilo XSL

Figura 24.3: Visualiza c ao do arquivo XML no browser XML. Para associar todo um documento XML o valor do atributo match=/. Para associar apenas a um elemento do documento XML o valor do atributo match=nome do elemento. O valor do atributo match e uma express ao XPath. A gura 24.1 mostra um exemplo do uso do elemento <xsl:template>.

http://www.candidatoreal.com

24.8

Elemento <xsl:value-of>

O elemento <xsl:value-of> e usado para extrair o valor de um elemento no documento XML e adicion a-lo ao documento resultado. O atributo select desse elemento informa qual o elemento que ser a extra do o valor. O valor do atributo select e uma express ao XPath. A gura 24.1 mostra um exemplo do uso do elemento <xsl:value-of>.

251

http://www.candidatoreal.com

24.9

Elemento <xsl:for-each>

O elemento <xsl:for-each> permite a realiza c ao de loops no XSLT. Esse elemento e usado para selecionar todos os elementos XML de um determinado tipo. O atributo select desse elemento seleciona o elemento no documento XML que ser a processado. O valor desse atributo e uma express ao XPath. A gura 24.1 mostra um exemplo do uso do elemento <xsl:for-each>. O elemento <xsl:for-each> tamb em pode ser usado para ltrar a sa da de um documento XML. Basta acrescentar um crit erio de sele c ao ao atributo select desse elemento. Por exemplo, <xsl:for-each select=catalog/cd[artist=Bob Dylan]>, mostra apenas que o cat alogo com o nome de artista Bob Dylan ser a colocado no documento de sa da. Os operadores de ltro s ao: = (igual); != (diferente); &lt (menor que); &gt (maior que).

24.10

Elemento <xsl:sort>

O elelemento <xsl:sort> e usado para ordenar a sa da de um documento. Para ordenar a sa da, insere-se esse elemento dentro do elemento <xsl:for-each>. O atributo select desse elemento informa por qual elemento XML ocorre a ordena c ao. A gura 24.4 mostra o documento XML da gura 24.2 com a sa da ordenada pelo elemento artist.

Figura 24.4: Arquivo XSL ordenando a sa da de um documento

http://www.candidatoreal.com

24.11

Elemento <xsl:if>

O elemento <xsl:if> e usado para realizar testes condicionais. Para realizar um teste condicional, basta inserir esse elemento dentro do elemento <xsl:foreach>. O atributo test cont em a express ao booleana. A gura 24.5 mostra o documento XSL com o teste condicional, o qual seleciona apenas os cds com pre cos maiores que 10.

252

http://www.candidatoreal.com

Figura 24.5: Arquivo XSL com teste condicional

24.12

Elemento <xsl:choose>

O elemento <xsl:choose> e usado em conjunto com os elementos <xsl:when> e <xsl:otherwise> para expressar m ultiplos testes condicionais. A mostra o uso do elemento <xsl:choose>. Neste exemplo, os elementos cd que possui pre co maior que 10 aparecem pintados de rosa e os outros aparecem normais no documento de sa da.

Figura 24.6: Arquivo XSL com m ultiplos testes condicionais

24.13
http://www.candidatoreal.com

Elemento <xsl:apply-templates>

O elemento <xsl:apply-templates> aplica um template ao elemento corrente ou aos lhos do elemento n o corrente. Se adicionar o atributo select ao elemento <xsl:apply-templates>, o template s o ser a aplicado aos elementos lhos que combinem com o valor do atributo. O valor do atributo select pode ser usado para especicar a ordem na qual os n os lhos s ao processados. A gura 24.7 mostra um exemplo com a utiliza c ao desse elemento. A gura 24.8 mostra como e a visualiza c ao do documento resultado. Apesar do XSL ter elementos de loop, condi c oes de teste, e etc., as p aginas Web em XML e XSL ainda s ao est aticas como o HTML.

253

http://www.candidatoreal.com

Figura 24.7: Arquivo XSL com o uso do elemento <xsl:apply-template>

24.14

XSL no lado Cliente

Foi explicado anteriormente como o XSL pode ser usado para transformar um documento XML em HTML. O truquefoi adicionar uma descri c ao XSL no arquivo XML e deixar a transforma c ao para o browser. Embora isso funcione bem, n ao e sempre desejado incluir a refer encia ao XSL no arquivo XML essa solu c ao n ao funcionaria com um navegador sem nenhuma facilidade XSL. Uma solu c ao mais vers atil e usar o JavaScript para fazer a transforma c ao de XML para HTML. Usando-se JavaScript pode-se:

http://www.candidatoreal.com

Permitir que o JavaScript fa ca um teste de navega c ao espec co; Usar diferentes modelos de estilo de acordo com o navegador e/ou as necessidades de usu ario. Usando JavaScript e poss vel transformar dados de um formato para outro, suportando diferentes navegadores e diferentes necessidades dos usu arios.

24.15

XSL no lado Servidor

A solu c ao apresentada anteriormente utilizando JavaScript esbarra no problema de o browser n ao suportar um parser XML, pois a transforma c ao n ao 254

http://www.candidatoreal.com

Figura 24.8: Visualiza c ao do arquivo XSL com uso do <xsl:apply-template> funcionaria. Para disponibilizar os dados XML para todos os tipos de navegadores, o documento XML e transformado no servidor e enviado como HTML puro para o browser. Isso pode ser feito utilizando a linguagem ASP.

24.16

Processadores XSLT

Os processadores XSLT aplicam uma folha de estilo XSLT a um documento XML e produz um documento resultado. Alguns exemplos de processadores: Saxon, XT, MSXML3, Xalan (Apache) e os browsers (IE 6.0 e NetScape 6.0).

http://www.candidatoreal.com

255

http://www.candidatoreal.com

Cap tulo 25

Gerenciador de Conte udo Web Zone/Plone


25.1 Gest ao de Conte udo

Os produtos e servi cos de informa c ao dados, textos, imagens, sons, softwares, etc. s ao identicados na rede com o nome gen erico de conte udos. A id eia b asica da Gest ao de Conte udos (GC) e agilizar o processo de cria c ao, gest ao e publica c ao de informa c ao. Em geral, os sistemas de gest ao de conte udos automatizam o processo de gest ao e publica c ao e permitem que usu arios n ao t ecnicos possam criar conte udos com maior facilidade. O processo de gest ao de conte udo, gura 25.1, envolve as seguintes etapas: 1. Cria c ao de documentos; 2. Revis ao de documentos; 3. Inclus ao de metadados (Indexa c ao) e controle de qualidade; 4. Publica c ao; 5. Revis ao peri odica 6. Arquivamento ou elimina c ao dos documentos.

http://www.candidatoreal.com

Figura 25.1: O processo de gest ao de conte udo O processo de gest ao pode ser representado em tr es partes b asicas: cria c ao, gest ao e publica c ao. A fase de gest ao envolve as etapas de indexa c ao e controle de qualidade, revis ao, arquivamento e elimina c ao de documentos. 256

http://www.candidatoreal.com

Os componentes do gerenciamento de conte udo s ao a administra c ao de conte udo, gerenciamento de workow, acesso e seguran ca, bem como a customiza c ao e integra c ao com sistemas legados. Os sistemas de gest ao de conte udo s ao u teis em diversas aplica c oes, como por exemplo, comunidades pr aticas, portais corporativos e sites editoriais.

25.2

Sistema de Gest ao de Conte udo

Em geral, um sistema de gest ao de conte udo e composto por m odulos que fornecem servi cos que garantem um processo mais agil na cria c ao, gest ao e publica c ao de conte udos. As funcionalidades essenciais existentes nesses sistemas s ao: Gest ao de usu arios e de seus direitos permite o controle de acesso por usu arios, incluindo ferramentas de cria c ao de pers de usu arios, autentica c ao, autoriza c ao e auditorias; Cria c ao, edi c ao e armazenamentos de conte udos suporte ` a cria c ao, edi c ao e manipula c ao de conte udos, considerando m ultiplos tipos ( audio, v deo, imagem, xml, html, texto, etc.); Metadados (propriedades que descrevem o conte udo) descrevem caracter sticas importantes do conte udo como descri c ao, autor, linguagem, data da cria c ao, data da revis ao, etc. Os metadados possibilitam o controle de acesso, controle de qualidade, classica c ao e elimina c ao autom atica de documentos; Gest ao de qualidade inclui regras associadas aos tipos de conte udo que permitem controle e acompanhamento do ciclo de vida. Um sistema worow consiste na automatiza c ao de procedimentos na qual documentos, informa c oes ou tarefas s ao passadas de um participante a outro, governado por regras; Classica c ao, indexa c ao e busca de conte udo inclui mecanismos automatizados de classica c ao e indexa c ao e de recursos de busca ecientes baseados em metadados; Gest ao de interface com usu arios o conte udo e independente da l ogica da aplica c ao e da apresenta c ao visual. A publica c ao e din amica em fun c ao do usu ario e do dispositivo de sa da. O acesso ao conte udo e controlado e pode ser agrupado em tr es areas de controle: Acesso p ublico, Acesso restrito por licen ca e acesso privilegiado (controlado a partir de regras relacionadas ao conte udo e usu ario); Sindicaliza c ao (syndication) t ecnica que permite compartilhar informa c 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 mudan cas no site (incluindo mudan cas na l ogica, apresenta c ao e conte udo) podem ser desfeitas. 257

http://www.candidatoreal.com

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 atra do um n umero crescente de empresas e usu arios. Obs.: Um framework (literalmente: moldura, esqueleto, arma c ao) e um am algama de servi cos de softwaresat omicos coerentes. Considerando como tijolosde base, estes servi cos s ao montados para formar uma aplica c ao. A equipe pode concentrar-se nas regras de neg ocios e n ao nos aspectos t ecnicos dos projetos.

25.3

Zope

O Zope (Z Object Publishing Environment) e uma plataforma de desenvolvimento de aplica c oes Web baseada em Python e oferece um sistema de gest ao 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 publica c ao de objetos Web e uma linguagem de gera c ao din amica de p aginas. O Zope e um ambiente multiplataforma (funciona em Unix, Linux, Mac Os registrado com a licen e Windows). E ca ZPL (Zope Public License), compat vel com GPL (General Public License). Diferente das outras solu co es do mercado, a nalidade 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 apar encia s ao congur aveis pelo projetista do site. Esta abordagem torna o Zope mais apto ` a publica c ao de conte udo Web que os outros produtos. A arquitetura do Zope, mostrada na gura 25.2, e constitu da pelos seguintes m odulos: Servidor Web (ZServer) O Zope possui seu pr oprio servidor web, o Zope Server, e dispensa a presen ca de qualquer outro servidor web. Entretanto n ao impede a utiliza c ao de outro servidor web como Apache e Microsoft IIS. ; Banco de dados orientado a objetos (ZODB) o Zope possui seu pr oprio servidor de Banco de Dados Orientado a Objetos (ZODB), onde armazena os objetos em uma representa c ao simples e eciente, que e formada pela classe do objeto e uma estrutura de dicion ario contendo nas chaves as propriedades do objeto e nos valores associados ` as chaves que cada propriedade possui; ZClassses Funcionam como molduras para os novos objetos no Zope. S ao estruturas utilizadas para criar novos objetos Zope, que podem ter como base outros objetos. Um objeto Zope pode ser uma pasta, um documento DTML, um m etodo, etc. ZClasses podem ser criadas e ampliadas utilizando apenas a interface web; Zope Products S ao produtos implementados em Python; Integra c ao com banco de dados relacionais O Zope apresenta componentes de acesso a v arios bancos de dados, por exemplo, MYSQL, Oracle, PostGrees, Interbase, etc; 258

http://www.candidatoreal.com

http://www.candidatoreal.com

Figura 25.2: Arquitetura do Zope Suporte a linguagens scripts Suporte a Phyton, ZPT (Zope Page Templates) e DTML (Document Template Markup Language). A ZPT permite a cria c ao de modelos de p aginas para apresenta c ao. A DTML e uma linguagem de cria c ao de scripts que permite ligar dados din amicos e modelos, denindo a apresenta c ao visual desses dados; Interface Web de gerenciamento e desenvolvimento Zope apresenta uma poderosa interface de gerenciamento e desenvolvimento (ZMI Zope Management Interface) que permite adicionar, editar e remover objetos, congurar propriedades, via browser padr ao. Inclui acesso via ftp ou WebDAV e oferece suporte aos protocolos DOM, XML, SOAP e XML-RPC.

http://www.candidatoreal.com

A id eia principal em torno do Zope e a constru c ao de um ambiente de publica c ao de objetos. Nesse contexto, elementos constituintes de uma p agina HTML s ao vistos como objetos que podem ser publicados e gerenciados atrav es do Zope. Sua arquitetura ex vel e baseada em componentes atende a diversas aplica c oes: Gerenciar Websites o Zope inclui recursos como a possibilidade de delega c ao de acesso a diferentes n veis, separa c ao do conte udo, l ogica e apresenta c ao, controle de acesso, controle de vers oes, seguran ca, etc; Construir sistemas de gest ao de conte udo a arquitetura Zope inclui componentes e disponibiliza produtos, que fornecem ferramentas que possi259

http://www.candidatoreal.com

bilitam criar, gerenciar e publicar conte udos, de modo f acil e seguro, por usu arios n ao t ecnicos; Desenvolver aplica c oes Web personalizadas o Zope forenece um framework com aplica c oes sosticadas, como com ercio-eletr onico, portais, f oruns e aplica c oes personalizadas. O Zope fornece componentes funcionais de acesso a dados, seguran ca e personaliza c ao, que integrados facilitam a constru c ao de aplica c oes Web rapidamente; Desenvolver portais corporativos o Zope possibilita o desenvolvimento de um site organizacional ou de uma comunidade de usu arios, tal que o conte udo, como not cias, documentos, eventos, seja fornecido por membros da organiza c ao. O ambiente Zope, atrav es de sua arquitetura ex vel e de produtos desenvolvidos pela comunidade de usu arios, especialmente o Plone (um produto para portais), fornece elementos necess arios para a constru c ao r apida de um portal (apresenta c ao e personaliza c ao, organiza c ao e gerenciamento, integra c ao com diversas fontes de dados, mecanismos de indexa c ao e busca, seguran ca, escalabilidade, etc).

25.4

Plone

O Plone e um sistema gest ao de conte udo livre e de c odigo aberto que roda em servidores Zope. Surgiu de uma evolu c ao do CMF (Content Management Framework) do Zope. O Plone foi escrito em Python e roda sobre o Zope o CMF. O Plone vem com um sistema de workow, seguran ca e fun c oes pr econguradas, um conjunto de tipos de conte udo e suporte a v arias l nguas. O Plone n ao substitui o CMF, ele o complementa em funcionalidade e tamb em em ambig uidade de interface com usu ario, apresentando uma interface mais amig avel para o usu ario nal. A gura 25.3 mostra a arquitetura do Zope, CMF e Plone. Algumas caracter sticas do Plone: Internacionaliza c ao a interface de usu arios e traduzida para diversas l nguas; Usabilidade permite desenvolver sites com alto n vel de usabilidade e acessibilidade; Personaliza c ao de templates o Plone separa o conte udo do template no qual o conte udo est a sendo exibido. Os templates do Plone s ao escritos em c odigos HTML com folhas de estilo CSS; Personaliza c ao de registro de usu arios o Plone possui um completo sistema de registro de usu arios, onde e poss vel personalizar o registro de poss usu arios. E vel usar informa c oes de usu arios de outros bancos de dados relacional (LDAP, AD, e outros); Workow e seguran ca o workow controla a l ogica de processamento de poss conte udo de um site. E vel congurar o workow na web utilizando ferramentas gr acas. Para cada item de conte udo em um site Plone e poss vel construir uma lista de usu arios que podem acess a-lo e se est ao habilitados a interagir com este conte udo (editar, ver, excluir, comentar, etc.); 260

http://www.candidatoreal.com

http://www.candidatoreal.com

Figura 25.3: Arquitetura Zope, CMF e Plone Extens vel como o Plone e de c odigo aberto e poss vel alter a-lo sem problemas. Com ferramentas de desenvolvimento como Archetype, e poss vel gerar e alterar c odigo do Plone por meio da Web; Personaliza c ao de conte udo o administrador de sites pode desenvolver seus pr oprios tipos de conte udos e gerenci a-los conforme as necessidades. Com a ferramenta Archetype, e poss vel gerar novos tipos de conte udo usando ferramentas de UML; Comunidade Plone uma das melhores caracter sticas do Plone e comunidade de desenvolvedores e empresas que prestam suporte ao desenvolvimento. Os tipos b asicos de conte udo do Plone s ao: o mais usado e Documento apresenta informa c 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 pass veis serem baixados; Pasta serve para adicionar outros tipos de conte udo. Pode ser usada para como uma pasta no disco denir vis oes de informa c oes personalizadas. E r gido; Imagem e uma imagem do tipo GIF ou JPEG; Link s ao endere cos Web; 261

http://www.candidatoreal.com

http://www.candidatoreal.com

Not cia cont em pequenos artigos e podem possuir t tulo assim como uma descri c ao opcional. Algumas deni c oes relacionadas ao Plone: Portlet Um site Plone possui uma tr es colunas por padr ao. As colunas da esquerda e da direita possuem uma s erie de caixas que mostram algum tipo de informa c ao. Cada uma dessas caixas e chamada de portlet; ZPT (Zope Page Template) e um sistema de templates usados pelo Plone para exibi c ao de algum conte udo; Plone workow por meio das permiss oes padr ao (pendente, p ublico, privado e esbo co) do workow Plone e poss vel criar n veis de acesso a informa c oes, vis oes de conte udos diferenciadas e regras de administra c ao de conte udo espec cas 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 gera c ao de c odigo que permite desenvolver novos tipos de conte udo por meio de um modelo UML. O Plone e hoje a mais recomendada op c ao para cria c ao, publica c ao e edi c ao de portais web. Ele pode ser usado como um servidor para intranets ou extranets, um sistema publicador de conte udos e uma ferramenta de colabora c ao interativa. O Plone roda em diversos sistemas operacionais (como Linux, Windows, Solaris, FreeBSD e Mac OS X). O uso do Plone est a associado a v arios casos de sucesso no Brasil e no mundo. No Brasil, pode-se citar o projeto Interlegis e o Serpro. O prop osito do Interlegis e integrar as casas do poder legislativo e Serpro e uma empresa especializada em fornecer servi cos de TI para organiza c oes p ublicas federais.

http://www.candidatoreal.com

262

http://www.candidatoreal.com

Cap tulo 26

Web Services
26.1 O que e Web Services?

http://www.candidatoreal.com

Web Service e um componente de software identicado por uma URI que independe de implementa c 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 poss vel realizar a integra c ao entre sistemas desenvolvidos em diferentes uma linguagens e plataforma, e disponibilizar servi cos interativos na Web. E tecnologia de padr ao aberto e padronizada pelo W3C. A arquitetura do Web Service e constitu da por tr es componentes b asicos: o servidor de registro (broker server ou service registry), o provedor de servi cos (service provider) e o solicitante de servi cos (service requestor). As intera c oes entre esses componentes s ao de busca, publica c ao e intera c ao de opera c oes. Na opera c ao de publica ca o o provedor publica a descri c ao do servi co de tal forma que um solicitante possa localiz a-la. Na opera c ao de busca o solicitante obt em a descri c ao do servi co diretamente ou consulta o servidor de registro procurando pelo tipo de servi co desejado. Essa opera c ao pode ser executada em duas fases distintas: desenvolvimento ou execu c ao. Na opera c ao de intera c ao o solicitante chama ou inicia uma intera c ao com o provedor, em tempo de execu c ao, utilizando os detalhes contidos na descri c ao do servi co para localizar, contactar e chamar o servi co. A gura 26.1 mostra os componentes e a intera c ao entre eles. O provedor de servi cos representa a plataforma que hospeda o web service permitindo que os clientes acessem o servi co. O provedor de servi cos fornece o servi co e e respons avel por publicar a descri c ao do servi co que prov e. O solicitante de servi cos e a aplica ca o que est a procurando, invocando uma intera c ao com o web service, ou seja, requisita a execu c ao de um servi co. O solicitante de servi co pode ser uma pessoa acessando por meio do browser ou uma aplica c ao realizando uma invoca c ao aos m etodos descritos na interface do web service. O servidor de registro e um reposit orio central que cont em a descri c ao (informa c ao) de um web service, e e por meio do servidor de registro que essas descri c oes s ao publicadas e disponibilizadas para localiza c ao. Os clientes buscam por servi cos no servidor de registro e recuperam informa c oes referentes ` a interface de comunica c ao para os web service durante

263

http://www.candidatoreal.com

Figura 26.1: Componentes b asicos da arquitetura do Web Service a fase de desenvolvimento ou durante a execu c ao do cliente, denominadas intera c ao est atica (static bind) e intera c ao din amica (dinamic bind), respectivamente. Na intera c ao est atica, o cliente recupera a assinatura do servi co, necess aria ` a codica c ao. Na intera c ao din amica, o cliente recupera os valores de par ametros e a localiza c ao do servi co. O ciclo de vida de um web service compreende quatro estados distintos, gura 26.2: Publica c ao processo, opcional, por meio do qual o fornecedor do web services d a a conhecer a exist encia do seu servi co, efetuando o registro do mesmo no reposit orio do web service; Descoberta processo, opcional, por meio do qual uma aplica c ao cliente toma conhecimento da exist encia do web services pretendido pesquisando num reposit orio UDDI; Descri c ao processo pelo qual o web service exp oe a sua API (documento WSDL). Desta maneira a aplica c ao cliente tem acesso a toda a interface do web service, onde encontram descritas todas as funcionalidades por ele disponibilizadas; Invoca c ao (Mensagens) processo pelo qual o cliente e o servidor interagem, por meio do envio de mensagens; A conjuga c ao desses quatro estados permite constituir o ciclo de vida de um web service: O fornecedor constr oi o servi co utilizando a linguagem de programa c ao que entender; De seguida, especica a interface/assinatura do servi co que deniu em WSDL;

http://www.candidatoreal.com

264

http://www.candidatoreal.com

Figura 26.2: Ciclo de vida do web service Ap os a conclus ao dos dois primeiros passos, o fornecedor registra o servi co no UDDI; O utilizador (aplica c ao cliente) pesquisa num reposit orio UDDI e encontra o servi co; A aplica c ao cliente estabelece a liga c ao com o web service e estabelece um di alogo com este, via mensagens SOAP. A intera c ao entre os web services se d a sob v arios protocolos abertos, em diferentes n veis de abstra c ao. Os protocolos utilizados para realizar a comunica c 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 gura 26.3.

http://www.candidatoreal.com

Figura 26.3: Protocolos de comunica c ao de Web services As mensagens trocadas s ao formatadas no protocolo SOAP, o que permite a interoperabilidade entre diferentes plataformas, em um processo denominado serializa c ao XML. Por em, antes que as mensagens SOAP sejam trocadas, suas caracter sticas s ao explicitadas por meio de documentos WSDL, que descrevem quais dados estar ao sendo trocados, e como estes dados estar ao organizados nas mensagens SOAP. Adicionalmente, os servi cos dos web services podem ser publicados atrav es de UDDI, que e um formato utilizado para seu armazenamento 265

http://www.candidatoreal.com

em reposit orios dispon veis 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 rewalls convencionais e proxies n ao bloqueiam a porta utilizada pelo protocolo HTTP, n ao existem grandes restri c oes para o uso deste tipo de aplica c ao em redes de longa dist ancia. Pode-se denir, resumidamente, o web service como sendo um servi co 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 dissemina c ao no uso de web services nos u ltimos anos incentivou o mercado a oferecer uma grande variedade de ferramentas e aplica c 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

O SOAP (Simple Object Access Protocol) e um protocolo leve para troca de informa c oes em um ambiente descentralizado e distribu do que permite comunica c ao entre aplica c oes de forma simples e completamente independente de o protocolo sistema operacional, linguagem de programa c ao ou plataforma. E de comunica c ao para os Web Services. A comunica c ao e realizada por meio de trocas de mensagens, transmitidas em formato XML, incluindo os par ametros usados nas chamadas, bem como os dados de resultados. Tamb em pode ser utilizado para invocar, publicar e localizar web services no registro UDDI. Parte da sua especica c ao e composta por um conjunto de regras de como utilizar o XML para representar os dados. Outra parte dene o formato de mensagens, conven c oes para representar as chamadas de procedimento remoto (RPC Remote Procedure Calls) utilizando o SOAP, e associa c oes ao protocolo HTTP. O protocolo HTTP e o u nico protocolo padronizado pelo SOAP, mas existem algumas implementa c oes que suportam outros protocolos como SMTP, TCP/IP, FTP e etc. Uma mensagem SOAP nada mais e do que um fragmento XML bem formado, encapsulado por um par de elementos SOAP. A mensagem SOAP consiste dos seguintes elementos, gura 26.4:

http://www.candidatoreal.com

o elemento raiz do docuEnvelope toda mensagem SOAP deve cont e-lo. E mento XML. Dene o in cio e o m das mensagens; Header e um cabe calho opcional. Ele carrega informa c oes adicionais, como exemplo, se a mensagem deve ser processada por um n o intermedi ario. Quando utilizado, o Header deve ser o primeiro elemento do envelope; Body e obrigat orio e cont em o payload, os dados em XML a serem transportados. O elemento Body possui um campo opcional Fault, usado para carregar mensagens de status e erros retornadas pelos n osao processarem a mensagem; RPCs ou chamadas remotas de procedimento s ao chamadas locais a m etodos de objetos (ou servi cos) remotos. Portanto, pode-se acessar os servi cos de um 266

http://www.candidatoreal.com

Figura 26.4: Estrutura da mensagem SOAP objeto localizado em outro ponto da rede, atrav es de uma chamada local a este objeto. Cada chamada ou requisi c ao exige uma resposta. O processo de uma chamada RPC: Antes de serem enviadas pela rede, as chamadas de RPC (emitidas pela aplica c ao cliente) s ao encapsuladas (ou serializadas) segundo o padr ao SOAP. O servi co remoto, ao receber a mensagem faz o processo contr ario, desencapsulando-a e extraindo as chamadas de m etodo. A aplica c ao servidora ent ao processa esta chamada, e envia uma resposta ao cliente. O processo ent ao se repete: a resposta e tamb em serializada e enviada pela rede. Na m aquina cliente, esta resposta e desencapsulada e e repassada para a aplica c ao cliente. A especica c ao SOAP dene as seguintes informa c oes, como necess arias em toda chamada de RPC: A URI do objeto alvo; O nome do m etodo; Os par ametros do m etodo (requisi c ao ou resposta); Uma assinatura do m etodo opcional; Um cabe calho (header) opcional.

26.3
http://www.candidatoreal.com

WSDL

O WSDL (Web Services Description Language) e uma linguagem baseada em XML, utilizada para descrever um web service. Um web service deve denir todas as suas interfaces, opera c oes, esquemas de codica c ao, o conte udo das mensagens, onde o servi co est a dispon vel e quais os protocolos de comunica c ao s ao usados para conversar com o servi co e entre outros neste documento. Um documento WSDL dene um XML Schema para descrever um web service. A descri c ao de um servi co consiste de duas partes, gura 26.5: deni c ao de implementa c ao do servi co e deni c ao da interface do servi co. A separa c ao entre as duas camadas permite que elas sejam utilizadas separadamente. A parte de deni c ao de interface do servi co descreve o web service, incluindo m etodos que s ao invocados e par ametros que s ao enviados. A parte de deni c ao

267

http://www.candidatoreal.com

Figura 26.5: Camada de descri c ao de servi cos da WSDL de implementa c ao de servi cos descreve como uma interface de servi co e implementada por um provedor: onde o servi co est a instalado e como pode ser acessado. As descri c oes dos elementos das duas partes: Binding descreve protocolos, formato de data, seguran ca e outros atributos para uma interface (portType) em particular; Porttype informa elementos de opera c oes do web service; Message dene entrada e sa da de dados referentes a opera c oes; Type dene tipos de dados complexos em uma mensagem; Service cont em uma cole c ao de elementos port com elementos binding; Port e a combina c ao de um binding com endere co de rede, fornecendo o endere co alvo para a comunica c ao dos servi cos. T ao logo o cliente tenha acesso ` a descri c ao do servi co a ser utilizado, a implementa c ao do Web Service pode ser feita em qualquer linguagem de programa c ao. Normalmente s ao utilizadas linguagem constru das para intera c 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 obt em a descri c ao do servi co (atrav es da localiza c 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 deni c ao encontrada no documento. As duas partes envolvidas em uma intera c ao web service precisam ter acesso ` a mesma descri c ao WSDL para conseguirem entender uma ` a outra. Em seguida, a mensagem e enviada para o endere co onde o servi co est a localizado, a m de que possa ser processada. O web service, quando recebe esta mensagem valida-a conforme as informa c oes contidas no documento WSDL. A partir de ent ao, o servi co remoto sabe como tratar a mensagem, sabe como process a-la (possivelmente enviando-a para outro programa) e como montar a resposta ao cliente.

http://www.candidatoreal.com

268

http://www.candidatoreal.com

26.4

UDDI

Para que um servi co seja utilizado e necess ario que o cliente consiga localiz alo, e essa localiza c ao pode ser feita por meio do UDDI (Universal Description, Discovery and Integration), que e uma especica c ao t ecnica para descrever, descobrir e publicar web services. Uma implementa c ao de UDDI corresponde a um registro web service, que prov e um mecanismo para busca e publica c ao de web services. Um registro UDDI cont em informa c oes categorizadas sobre os servi cos e as funcionalidades que eles oferecem, e permite a associa c ao desses servi cos com suas informa c oes t ecnicas, geralmente denidas usando WSDL. O UDDI possui um componente central chamado UDDI Project, que manipula um registro global e p ublico chamado business registry. A informa c ao oferecida pelo bussines registry consiste de tr es componentes: white pages, yellow pages e green pages. A informa c ao fornecida por um registro UDDI pode ser comparada ` a uma lista telef onica. As p aginas brancas (white pages), fornecem informa c oes tais como nome da organiza c ao, contato e identicadores. As p aginas amarelas (yellow pages) s ao compostas por um ndice de servi cos e produtos e as p aginas verdes (green pages) cont em informa c oes a respeito de transa c oes, descri c oes de servi co e invoca c ao de aplica co es. As informa c oes contidas em arquivos de descri c ao de servi co (WSDL) completam aquelas que est ao no registro. No entanto, UDDI n ao fornece suporte a v arios tipos de descri c ao de servi co, mas n ao suporta a cria c ao de descri c oes WSDL de forma direta. Uma descri c ao WSDL completa consiste da combina c ao dos documentos de interface e de implementa c ao de servi co. A primeira e publicada no registro UDDI como businessservice e a segunda como tmodel.

26.5

Seguran ca

http://www.candidatoreal.com

A seguran ca no envio de mensagens SOAP e um t opico importante. Em um n vel mais baixo, mensagens SOAP podem ser trocadas pela rede utilizando HTTPS ao inv es de HTTP. Como HTTPS utiliza SSL no seu transporte, ca garantida a prote c ao contra poss veis interven c oes. Al em disso, o cliente e servidor podem vericar cada um suas respectivas identidades. Embora HTTPS resolva o problema de prote c ao das mensagens contra poss veis invasores, este n ao ajuda muito quando se necessita da seguran ca necess aria para a autentica c ao de usu arios de web services espec cos. Estes servi cos ir ao fornecer algum tipo de combina c ao de usu ario/senha durante a fase inicial de registro no servi co e ent ao esta ser a utilizada para acessos futuros. N ao h a ainda um padr ao de autentica c ao para Web services, mas pode utilizar os rewalls, VPNs, NTFS, produtos de single-in para oferecer a autentica c ao e autoriza c ao de usu arios.

269

http://www.candidatoreal.com

Parte VI

Redes de Comunica c ao

http://www.candidatoreal.com

270

http://www.candidatoreal.com

Cap tulo 27

T ecnicas B asicas de Comunica c ao


27.1 Base Te orica da Comunica c ao de Dados

http://www.candidatoreal.com

As informa c oes podem ser transmitidas por os fazendo-se variar alguma propriedade f sica, como voltagem ou corrente. Representando o valor dessa voltagem ou corrente como uma fun c 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 arma que qualquer fun c ao peri odica razoavelmente est avel, g(t), com o per odo T pode ser constru da como a soma de um n umero (possivelmente innito) de senos e co-senos. A decomposi c ao dos harm onicos que comp oe que comp oe a fun c ao e a chamada s erie de Fourier. Nenhum recurso de transmiss ao e capaz de transmitir sinais sem perder parte da energia no processo. Se todos os coecientes da s eria 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 u encia disso, introduzem distor c oes. Em geral, as amplitudes s ao transmitidas sem redu c ao, de 0 a alguma freq u encia fc, com todas as freq u encias acima dessa freq u encia de corte sendo atenuadas A faixa de freq u encias transmitidas sem serem fortemente atenuadas denomina-se largura de banda. Na pr atica, o corte n ao e n tido; assim, muitas vezes a largura de banda varia desde 0 at e a freq u encia em que a metade da pot encia e transmitida. A largura de banda e uma propriedade f sica do meio de transmiss ao, e em geral depende da constru c ao, da espessura e do comprimento do meio. Em alguns casos um ltro e introduzido no circuito para limitar o volume de largura de banda dispon vel 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 at e mesmo um canal perfeito tem uma capacidade de transmiss ao nita. Ele derivou uma equa c ao expressando a taxa m axima de dados de um canal sem ru do com largura de banda nita. Em 1948, Claude Shannon aprofundou o trabalho e o estendeu ao caso de uma canal com ru do aleat orio (isto e, termodin amico). Nyquist provou que, se um sinal arbitr ario atravessar um ltro com baixa freq u encia de corte H, o sinal ltrado poder a ser completamente reconstru do 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 u encia mais alta que essa amostragem poderia recuperar j a teriam sido ltrados. Se o sinal consistir em V n veis discretos o teorema de Nyquist arma que: S ) (27.1) N Se houver ru do aleat orio, a situa c ao ir a se deteriorar mais rapidamente. Al em disso, sempre existe ru do aleat orio (t ermico) presente, devido ao movimento das mol eculas no sistema. O volume de ru do t ermico presente e medido pela rela c ao entre a pot encia do sinal e a pot encia do ru do, chamada rela c ao sinal/ru do. Dessa forma, o principal resultado de Shannon e que a taxa m axima de dados de um canal com ru dos cuja largura de banda e H Hz, e cuja rela c ao sinal/ru do 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 rela c ao sinal/ru do de 30 db nunca pode transmitir muito mais que 30000 bps, independente da quantidade de n veis de sinal utilizados e da freq u encia com que as amostras s ao obtidas. Maximum Number of Bits/sec = Hlog2 (1 +

27.3

Sinais Digitais Bin arios

http://www.candidatoreal.com

Os sinais digitais bin arios podem ser estudados como se fossem um sinal quadrado. Atrav es da S erie de Fourier, e poss vel reconstruir um sinal quadrado a partir da correspondente sen oide fundamental. Ao incluirmos as freq u encias harm onicas de ordem mpar, o sinal reconstru do aproxima-se cada vez mais do sinal quadrado original. A gura 27.1 ilustra a reconstitui c ao de um sinal quadrado a partir da sen oide fundamental e suas harm onicas mpares at e a quinta ordem. Assim sendo, na transmiss ao digital entre dois pontos, dever amos ter um meio de transmiss ao com largura de faixa (banda passante) innita, para que o sinal digital transmitido fosse recebido sem nenhuma distor c ao. Entretanto, sicamente isso n ao poss vel. Poderia-se pensar, ent ao, em aumentar a largura de faixa do canal ao m aximo para atenuar as distor c oes, no entanto isso n ao e vi avel economicamente. A solu c ao e adaptar o sinal digital aos tipos de degrada c ao inerentes aos meios de transmiss ao. Para isto, foram desenvolvidos dispositivos capazes de transformar o sinal digital do computador em uma forma poss vel de ser transmitida pelo meio sem que ocorram danos graves. Estes dispositivos s ao chamados 272

http://www.candidatoreal.com

Figura 27.1: Reconstitui c ao de um sinal bin ario de Modems(Modulator/Demodulator). Este equipamento executa uma transforma c ao por modula c ao (modem anal ogico) ou por codica c ao (modem digital) dos sinais digitais gerados pelo computador. A rigor, os modems digitais n ao deveriam receber esse nome, pois eles n ao executam a modula c ao/demodula c ao do sinal digital, apenas a codica c ao. Em complemento, os modems digitais tamb em recebem os nomes modem banda-base e modem data set. Mesmo usando o modem digital, devido a `s caracter sticas da onda quadrada, a transmiss ao s o poder a ocorrer a curtas dist ancias e com linhas de boa qualidade.

27.4

Transmiss ao em Banda Base

Banda base e freq uentemente utilizada para a transmiss ao digital de dados, um u nico canal utiliza a largura de banda total dispon vel. Assim, a transmiss ao de um sinal em banda base consiste em enviar o sinal de forma digital atrav es da linha (forma de onda digital), ou seja, enviar os bits conforme a necessidade, de acordo com um padr ao digital. Desde que a dist ancia entre o transmissor e receptor seja de alguns quil ometros, a banda de transmiss ao dispon vel seja em torno de 15 KHz e o meio de transmiss ao tenha certas caracter sticas, e poss vel realizar a Codica c ao Banda Base do sinal digital. Nesse sentido, a dist ancia alcan cada na transmiss ao diminui conforme aumenta a velocidade transmiss ao. O alcance m aximo e denido como sendo a dist ancia m axima em que e poss vel transmitir mantendo a taxa de erro abaixo de um valor predeterminado.

http://www.candidatoreal.com

27.5

Classica c ao dos Sinais

Os sinais em Banda Base podem ser classicados quanto a dura c ao e polaridade de seus pulsos: Dura c ao: o NRZ (non return to zero): cada bit 0 e representado por um pulso OFF e cada bit 1 por um pulso ON ocupando todo o intervalo signicativo do bit;

273

http://www.candidatoreal.com

RZ (return to zero): os bits 1 s ao representados por pulsos ON com dura c ao de meio intervalo signicativo bit. Polaridade: Unipolar: os dois n veis t em a mesma polaridade (exemplo: 0 e +). Esse tipo de sinal resulta em codica c ao com componente DC que n ao leva informa c ao, mas consome energia. Al em disso, a ocorr encia de uma longa seq u encia de bits 0 resulta em um sinal que n ao apresenta transi c oes, dicultando a sincroniza c ao dos equipamentos. Polar: este sinal possui pulsos com polaridades opostas (exemplo: o bit 0 e representado por pulso -e o bit 1 por pulso +), zerando a componente DC se a mensagem contiver uma propor c ao igual de bits 0 e 1.O n umero de transi c oes depender a completamente do sinal transmitido. Bipolar: os sucessivos bits 1 s ao representados com pulsos de polaridade alternada.

27.6

T ecnicas de Codica c ao de Linha

As diversas t ecnicas de codica c ao do sinal digital procuram gerar o sinal codicado com muitas transi c oes, a m de facilitar a recupera c ao do sincronismo no modem receptor (recupera c ao do rel ogio). Al em disso, procura-se concentrar o espectro de transmiss ao do sinal codicado dentro de uma faixa de freq u encia com pouco componente DC. Diversas t ecnicas de codica c ao s ao ilustradas na gura 27.2 e descritas adiante.

http://www.candidatoreal.com

Figura 27.2: Exemplos de ondas codicadas

27.6.1

Codica c ao NRZ

Com o c odigo NRZ, o n vel do sinal e mantido constante em uma de duas tens oes poss veis, pela dura ca o 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 prov e uma componente DC nula. A codica c ao NRZ apresenta car encia de transi c oes de dados, o que resulta em um pobre desempenho na recupera c ao de rel ogio no receptor. A recupera c ao do rel ogio nesse contexto signica recuperar o rel ogio usado no transmissor para temporizar a codica c ao do sinal e assim permitir a recupera c ao da informa c ao no lado receptor. Esta caracter stica limita o seu uso apenas para pequenas dist ancias de transmiss ao e conex oes entre esta c oes.

27.6.2

Codica c ao RZ

O n vel do sinal que representa o bit de valor 1 dura a primeira metade do intervalo do bit, ap os o qual o sinal retorna para o n vel de refer encia (zero) para o restante meio intervalo de bit. Um bit 0 e indicado por uma n ao mudan ca, com o sinal continuando no n vel de refer encia (zero). Sua principal vantagem reside no aumento das transi c oes e compara c ao com o NRZ, com uma resultante melhoria na recupera c ao do rel ogio no receptor. Nota-se que uma seq u encia muito grande de 0 resulta em um sinal sem transi c oes, o que representa um problema para os circuitos de recupera c ao de rel ogio.

27.6.3

Codica c ao AMI (Alternate Mark Invertion)

Na codica c ao AMI (bipolar), o bit 0 e sempre codicado como n vel zero, e os bits 1 s ao codicados como +V ou -V, onde a polaridade e alternada para cada ocorr encia de bit 1. A codica c ao AMI resulta em uma componente DC nula. A representa c ao AMI pode ser NRZ (100 % do tempo de bit) ou RZ (50% do tempo de bit). A garantia de transi c ao dos n veis para cada bit 1, proporciona um otimo desempenho na recupera c ao de rel ogio, melhorando ainda mais quando o sinal for RZ. Esta codica c ao apresenta ainda a capacidade de detec c ao de erro, pois amplitudes positivas consecutivas sem uma amplitude negativa intermedi aria (e vice-versa) constituem uma viola c ao da regra AMI e indicam que ocorreu um erro na transmiss ao. Entretanto, quando ocorrer uma seq u encia longa de zeros, o sinal codicado ca muito tempo sem transi c oes na linha, o que diculta a obten c ao do rel ogio de sincronismo.

http://www.candidatoreal.com

27.6.4

Codica c ao HDB-3 (High Density Bipolar with 3 Zero Maximum Tolerance)

Nesse tipo de codica c ao, o sinal digital a ser transmitido e analisado e, cada vez que e detectada uma seq u encia de quatro zeros consecutivos, esta seq u encia e substitu da por uma outra seq u encia padronizada. Para isso, e utilizado o recurso da viola c ao, que consiste no uso de um pulso que tenha a mesma polaridade que o pulso anterior (o que viola o princ pio b asico do AMI). No HDB-3, os quatro zeros consecutivos s ao substitu dos pela seq u encia 000V ou V00V, onde V e a viola c ao, e a substitui c ao depender a do u ltimo pulso transmitido, observando sempre o princ pio da altern ancia de pulsos. Caso o u ltimo pulso transmitido n ao seja uma viola c ao e tenha polaridade oposta ` a 275

http://www.candidatoreal.com

polaridade da viola c ao anterior, transmitir a 000V. No caso em que o u ltimo pulso transmitido seja uma viola c ao ou tenha polaridade id entica ` a polaridade da viola c ao anterior, transmitir a V00V. Essa escolha entre 000V e V00V faz com que viola c oes sucessivas sejam de polaridades opostas, o que garante a n ao exist encia de sinal DC na linha. Na recep c ao, o decodicador tem de vericar, inicialmente, a viola c ao AMI e, posteriormente, o n umero de zeros que precede esta viola c ao, para determinar se o u ltimo pulso transmitido e tamb em uma viola c ao. Isto e feito da seguinte forma: se na recep c ao houver dois pulsos, com mesma polaridade, separados por tr es zeros, o segundo pulso e viola c ao, logo, e eliminado. Se na recep c ao houver dois pulsos, com mesma polaridade, separados por dois zeros, ambos os pulsos s ao viola c ao, logo, ambos s ao eliminados. Nota-se que na codica c ao HDB-3 s ao contornados os problemas do aparecimento do n vel DC e da falta de transi c oes para recupera c ao do sinal de rel ogio.

27.6.5

Codica c ao Manchester

Na codica c ao Manchester, cada per odo de bits e dividido em dois intervalos iguais. Um bit 1 bin ario e enviado quando a voltagem e denida 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 per odo de bit ter a uma transi c ao na parte intermedi aria, tornando f acil para o receptor sincronizar-se com o transmissor. Uma desvantagem da codica c ao Manchester e que ela exige duas vezes mais largura de banda que a codica c 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 codica c ao Manchester diferencial e uma varia c ao da codica c ao Manchester apresentada. Nela um bit 1 e indicado pela aus encia de uma transi c ao no in cio do intervalo. Um bit 0 e indicado pela presen ca de uma transi c ao no in cio do intervalo. Em ambos os casos tamb em existe uma transi c ao na parte intermedi aria. O esquema diferencial exige equipamento mais complexo, mas oferece maior imunidade a ru dos. Todos os sistemas Ethernet usam a codica c ao Manchester devido a sua simplicidade.

http://www.candidatoreal.com

Figura 27.3: Codica c oes Bin aria, manchester e diferencial

27.7

Modula c ao

Modula c ao e o processo pelo qual alguma caracter stica de uma onda portadora e variada de acordo com a mensagem (sinal modulante), produzindo um sinal

276

http://www.candidatoreal.com

modulado cujas propriedades s ao mais compat veis com as caracter sticas do canal. Essa descri c ao e resumida na gura 27.4.

Figura 27.4: Processo de Modula c ao A gura 27.5 resumo a classica c ao dos tipos de modula c ao.

Figura 27.5: Tipos de Modula c ao

27.7.1

Modula c ao de Onda Cont nua

http://www.candidatoreal.com

As linhas de transmiss ao enfrentam tr es problemas principais: atenua c ao, distor c ao de retardo e ru do. Devido a esses problemas e principalmente ao fato de a atenua c ao e a velocidade de propaga c ao variarem em fun c ao da freq u encia, n ao e interessante ter uma grande variedade de freq u encias no sinal. Infelizmente, as ondas quadradas usadas em sinais digitais t em um amplo espectro de freq u encias e, portanto, est ao sujeitas a uma forte atenua c ao e a uma distor c ao de retardo. Esses efeitos tornam a sinaliza c ao em banda base (DC) inadequada, exceto em baixas velocidades e em dist ancias curtas. Para contornar os problemas associados ` a sinaliza c ao DC e usada a sinal introduzido no sinal um tom cont iza c ao AC. E nuo na faixa de 1000 a 2000 Hz, denominado onda portadora senoidal. Sua amplitude, freq u encia ou fase pode ser modulada para transmitir informa c oes. Basicamente, existem dois tipos de modula c ao de onda cont nua, a anal ogica e a digital. Pode-se citar como exemplo de modula c ao anal ogica a modula c ao AM (Amplitude Modulation) onde a varia c ao da amplitude da portadora ocorre de acordo com a varia c ao do sinal modulante. Este tipo de modula c ao tem algumas deriva c oes, tais como, AM-DSB (Double-Sideband Amplitude Modulation), AM-DSB-SC (Double-Sideband Suprisse Carrier Amplitude Modulation) 277

http://www.candidatoreal.com

e AM-VSB (Vestigial-Sideband Amplitude Modulation). A modula c ao FM (Frequency Modulation) tem melhor qualidade que a AM por ser menos suscept vel a ru dos. Neste tipo de modula c ao ocorre a varia c ao de freq u encia da portadora em fun c ao da varia c ao do sinal modulante. A Modula c ao PM (Phase Modulation) tem como principal caracter stica a varia c ao da fase da portadora em fun c ao da varia c ao do sinal modulante. A gura 27.6 mostra alguns exemplos de modula c ao anal ogica.

Figura 27.6: Modula c ao Anal ogica A modula c ao digital consiste em aplicar um sinal digital (bin ario) como sinal modulante da portadora ao inv es de um sinal anal ogico como ocorre na modula c ao anal ogica descrita anteriormente. As modula c oes digitais mais usadas s ao ASK (Amplitude Shift Keying), FSK (Frequency Shift Keying), PSK (Phase Shift Keying). Essas t ecnicas de modula c ao s ao representadas na gura 27.7.

http://www.candidatoreal.com

Figura 27.7: Modula ca o Digital: Amplitude, Frequ encia e Fase Para atingir velocidades cada vez mais altas n ao basta apenas aumentar a taxa de amostragem. O teorema de Nyquist arma que mesmo com uma linha de 3000Hz perfeita n ao h a raz ao para uma amostragem mais r apida que 6000Hz. Na pr atica, a maioria dos modens realizam amostragens 2400 vezes/s e se concentra em obter mais bits por amostra. 278

http://www.candidatoreal.com

O n umero de amostras por segundo e medido em baud. Durante cada baud, e enviado um s mbolo. Desse modo, uma linha de n bauds transmite n s mbolos/s. Se o s mbolo 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. Por em se as voltagens 0, 1, 2, 3 volts s ao usadas, cada s mbolo consiste em dois bits, e assim uma linha de 2400 bauds pode transmitir 2400 s mbolos/ s a uma taxa de dados de 4800 bps. De modo semelhante, com quatro deslocamentos de fase poss veis, tamb em existem 2bits/s mbolo, e portanto mais uma vez a taxa de bits e o dobro da taxa em bauds. Essa u ltima t ecnica e amplamente usada e se denomina QPSK (Quadrature Phase Shift Keying). Desse modo, a t ecnica de modula c ao determina o n umero de bits/s mbolo. Todos os modens avan cados utilizam uma combina c ao de t ecnicas de modula c ao para transmitir v arios bits por baud. Com freq u encia, v arias amplitudes e v arios deslocamentos de fase s ao combinados para transmitir diversos bits/s mbolo. A gura 27.8 (b) abaixo apresenta uma estrutura de modula c ao na qual s ao usadas quatro amplitudes e quatro fases, dando um total de 16 combina c oes diferentes. Esse esquema de modula c ao pode ser usado para transmitir 4 bits por s mbolo. Ele e chamado QAM-16 (Quadrature Amplitude Modulation). A gura 27.8 (c) permite 64 combina c oes diferentes. Diagramas como os apresentados na gura 27.8 s ao denominados de diagramas de constela c ao.

Figura 27.8: QPSK, QAM 16 e QAM 64 Com muitos pontos no padr ao de constela c ao, at e mesmo uma pequena quantidade de ru do na amplitude ou fase detectada pode resultar em um erro e, potencialmente, em muitos bits incorretos. Para reduzir a chance de um erro, e efetuada a corre c ao de erros adicionando bits extras a cada amostra. Os esquemas s ao conhecidos como TCM (Trellis Coded Modulation).

http://www.candidatoreal.com

27.7.2

Modula c ao de Pulsos

A modula c ao por pulsos iniciou a partir da teoria da amostragem, a qual estabelece que a informa c ao contida em qualquer sinal anal ogico pode ser recuperada a partir de amostras do sinal tomadas a intervalos regulares de tempo. A modula c ao por pulsos pode ser anal ogica ou codicada. No caso anal ogico, os valores das amostras do sinal s ao transferidos para as amplitudes, dura c oes ou posi c oes de pulsos de formato xo conhecido. No caso digital, os valores das amostras s ao convertidos para n umeros bin arios que por sua vez s ao codicados em seq u encias de pulsos que representam cada um dos valores bin arios. Um exemplo desse tipo de modula c ao e o PCM.

279

http://www.candidatoreal.com

Modula c ao de C odigo de Pulso O processo de transforma c ao das redes telef onicas em redes totalmente digitais tanto no que diz respeito ` a comuta c ao como ` a transmiss ao teve in cio quando da introdu c ao, em escala comercial, dos sistemas de transmiss ao PCM. O PCM (Modula c ao por C odigo de Pulso) transforma um sinal anal ogico em uma s erie de pulsos bin arios que podem ser manipulados. Sendo assim, o objetivo da modula c ao PCM e fazer com que um sinal anal ogico possa ser transmitido atrav es de um meio f sico com transmiss ao digital. O processo de modula c ao PCM consiste basicamente em tr es etapas, nessa ordem: amostragem, quantiza c ao e codica c ao. A gura 27.9 ilustra o processo de modula c ao PCM, passo a passo. Uma etapa adicional chamada compress ao pode ser inserida ap os a etapa de quantiza c ao para manipular a sa da desse processo e transform a-lo em uma quantiza c ao n ao-linear, melhorando assim a robustez a problemas de ru do no canal.

Figura 27.9: Pulse Code Modulation O sinal PCM resultante e enviado atrav es do canal por transmiss ao em banda base. Esse sinal ainda pode usar alguma das t ecnicas de codica c ao de linha apresentadas anteriormente, como, por exemplo, a AMI que, inclusive, foi desenvolvida originalmente para esse m. Cabe ressaltar que o processo de codica c ao do PCM tem a fun c ao de transformar os valores quanticados em uma seq u encia de bits. Essa seq u encia de bits constitui o sinal PCM que pode ser transmitido pelo canal. Entretanto, o sinal PCM pode ser codicado novamente, mas agora usando uma t ecnica de codica c ao de linha para ent ao ser transmitido pelo canal.

http://www.candidatoreal.com

27.8

T ecnicas de Multiplexa c ao

Multiplexa c ao e a transmiss ao simult anea de v arios sinais por um u nico canal. Desse modo, v arias fontes com esquemas de modula c ao individuais podem ser multiplexados em um mesmo canal. O objetivo b asico para a utiliza c ao desta

280

http://www.candidatoreal.com

t ecnica e economia, pois utilizando o mesmo meio de transmiss ao para diversos canais economiza-se em linhas, suporte, manuten c ao, instala c ao, etc.

Figura 27.10: Multiplexa c ao de 3 fontes As principais t ecnicas de multiplexa c ao s ao FDM, TDM e WDM. Cada uma delas ser ao discutidas a seguir.

27.8.1

FDM - Frequency Division Multiplexing

Com a t ecnica FDM (Frequency Division Multiplexing) a multiplexa c ao e realizada dividindo todo o espectro de freq u encia em diversos canais mais estreitos que s ao alocadas entre os terminais em uma rela c ao um para um. Bandas de guarda s ao usadas entre subportadoras adjacentes para n ao ocorrer sobreposi c ao, entretanto parte da capacidade de transmiss ao e desperdi cada para esse m. Al em disso, FDM e utilizada apenas em sistemas anal ogicos. A Figura 27.11 ilustra a t ecnica segundo os eixos de tempo e freq u encia.

Figura 27.11: FDM - Frequency Division Multiplexing

27.8.2
http://www.candidatoreal.com

TDM - Time Division Multiplexing

A t ecnica de multiplexa c ao TDM (Time Division Multiplexing) e baseada no dom nio 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 atrav es da aloca c ao desses mais eciente em slots de tempo entre as esta c oes que comp oe o sistema. E compara c 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 m etodo de multiplexa c ao OFDM e uma t ecnica de transmiss ao multiportadora que surgiu no m da d ecada de sessenta como uma evolu ca o de FDM.

281

http://www.candidatoreal.com

Figura 27.12: TDM - Time Division Multiplexing O princ pio b asico em OFDM e eleger freq u encias ortogonais entre si, dito de outra forma, deve-se garantir que nenhuma subportadora seja produto de combina c ao linear das demais presentes no canal. Isso permite prescindir da banda de guarda presente na t ecnica FDM. O benef cio imediato obtido com OFDM e a economia de largura de banda. Essa t ecnica e particularmente u til nos casos de transmiss oes sem o, pois al em da eci encia espectral, a t ecnica OFDM se apresenta mais robusta em rela c ao aos problemas inerentes ao canal sem o.

Figura 27.13: Compara c ao entre uso de banda FDM e OFDM

27.8.4

WDM -Wavelength Division Multiplexing

A t ecnica WDM (Wavelength Division Multiplexing) e uma varia c ao da multiplexa c ao por divis ao de freq u encia empregada em canais de bra optica. As informa c oes s ao transportadas sobre faixas de comprimentos de onda por meio da tecnologia fot onica. Nesse contexto, os sinais transmitidos s ao combinados em um multiplexador optico para ser enviado atrav es de um u nico cabo de bra optica. Dessa forma, a capacidade de transmiss ao e aumentada e a largura de banda da bra e usada efetivamente. A gura 27.14 representa o esquema de multiplexa c ao por divis ao de comprimento de onda.

http://www.candidatoreal.com

Figura 27.14: WDM -Wavelength Division Multiplexing

282

http://www.candidatoreal.com

27.9

Protocolos de Acesso M ultiplo

Basicamente existem dois tipos de enlaces: ponto-a-ponto e broadcast. O primeiro caso consiste em um u nico remetente em uma extremidade do enlace e um u nico receptor na outra extremidade do enlace. O segundo tipo pode ter m ultiplos n os remetentes e receptores, todos conectados ao mesmo, u nico compartilhado canal de transmiss ao. Nesse contexto surge uma quest ao: como coordenar o acesso dos m ultiplos n os remetentes e receptores a um canal broadcast compartilhado. Essa coordena c ao e realizada pelos protocolos de acesso m ultiplo. Formalmente, podem-se classicar esses protocolos em: protocolos protocolo de aloca c ao xa (tamb em chamado protocolo de divis ao do canal), protocolos de acesso aleat orio e protocolo de aloca c ao din amica (tamb em chamado protocolo de revezamento). Os protocolos de aloca c ao xa caracterizam-se por atribuir uma parte do canal para cada esta c ao, de maneira xa. O TDMA (Time-Division Multiple Access, baseado na t ecnica de multiplexa c ao TDM) e o FDMA (Frequency-Division Multiple Access, baseado na t ecnica de multiplexa c ao FDM) s ao exemplos deste tipo de protocolo. S ao extremamente f aceis de implementar. Por em, quando uma esta c ao n ao tem pacotes para enviar durante o per odo de tempo em que o meio est a alocado para ela, o canal car a ocioso enquanto outros terminais poderiam estar utilizando-o. Por outro lado, os protocolos de acesso aleat orio n ao possuem um controle r gido para aloca c ao do canal. O ALOHA e o CSMA (Carrier Sense Multiple Access) s ao exemplos desta categoria. Tamb em s ao relativamente simples de implementar, por em, a possibilidade de ocorrer colis oes quando duas ou mais esta c oes tentam transmitir ao mesmo tempo provoca desperd cio no canal de transmiss ao. Nos protocolos de aloca c ao din amica o canal e alocado de acordo com as necessidades das esta c oes. Este controle pode ser implementado de v arias maneiras, como por exemplo: na forma de polling (onde uma esta c ao espera ser questionadase necessita acessar o canal), ou na forma de reservas expl citas, como no RPAC (Reservation-Priority Access Control). Com a utiliza c ao destes protocolos n ao existe a possibilidade de colis oes e o canal e alocado sob demanda, evitando per odos de tempo ociosos no canal. Por em, h a uma sobrecarga na rede devido aos sinais de controle transmitidos no meio. A tabela 27.1 resume as principais vantagens e desvantagens de cada tipo de protocolo. Canal Ocioso sim n ao n ao Colis oes n ao sim n ao Sobrecarga n ao n ao sim

http://www.candidatoreal.com

Aloca c ao Fixa Acesso Aleat orio Aloca c ao Din amica

Tabela 27.1: Aloca c ao de Canais

283

http://www.candidatoreal.com

Cap tulo 28

Topologias de Redes
A topologia de uma rede de comunica c ao refere-se ` a forma como os enlaces f sicos e os n os est ao organizados, determinando os caminhos f sicos existentes e utiliz aveis entre quaisquer pares de esta c oes conectadas a essa rede. A topologia de uma rede muitas vezes caracteriza o seu tipo, eci encia e velocidade. As topologias mais comuns s ao as seguintes: Malha A interconex ao e total garantindo alta conabilidade, por em a complexidade da implementa c ao f sica e o custo inviabilizam seu uso comercial; Estrela A conex ao e feita atrav es de um n o central que exerce controle sobre a comunica c ao. Sua conabilidade e limitada ` a conabilidade do n o central, cujo mau funcionamento prejudica toda a rede; Barramento As esta c oes s ao conectadas atrav es de um cabo com difus ao da informa c ao necess para todos os n os. E aria a ado c ao de um m etodo de acesso para as esta c oes em rede compartilharem o meio de comunica c ao, evitando de f colis oes. E acil expans ao, mas de baixa conabilidade, pois qualquer problema no barramento impossibilita a comunica c ao em toda a rede; Anel O barramento toma a forma de um anel, com liga c oes unidirecionais ponto a ponto. A mensagem e repetida de esta c ao para esta c ao at e retornar ` a esta c ao de origem, sendo ent ao retirada do anel. Como o sinal e recebido por um circuito e reproduzido por outro h a a regenera c ao do sinal no meio de comunica c ao; entretanto h a tamb em a inser c ao de um atraso a cada esta c ao. O tr afego passa por todas as esta c oes do anel, sendo que somente a esta c ao destino interpreta a mensagem; Arvore a expans E ao da topologia em barra herdando suas capacidades e limita c oes. O barramento ganha ramica c oes que mant em as caracter sticas de difus ao das mensagens e compartilhamento de meio entre as esta c oes;

http://www.candidatoreal.com

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 caracter sticas 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 esta c oes em congura c oes mais complexas e mais con aveis.

Figura 28.1: Topologias de Rede

http://www.candidatoreal.com

285

http://www.candidatoreal.com

Cap tulo 29

Arquitetura de Redes
29.1 Organiza c ao em Camadas

Para reduzir a complexidade do projeto, a maioria das redes e organizada como uma pilha de camadas colocadas umas sobre as outras. O n umero de camadas e suas fun c oes podem ser diferentes de uma rede para outra. No entanto, em todas as redes o objetivo principal da implementa c ao em camadas e fazer com que uma camada ofere ca servi cos ` as camadas superiores, isolando a camada superior dos detalhes de implementa c ao. A camada n de uma m aquina se comunica com a camada n de outra m aquina utilizando um conjunto de regras e conven c oes chamado protocolo. Essas entidades situadas em m aquinas diferentes s ao chamadas de pares. Na verdade, a camada n de uma m aquina n ao se comunica com a camada n da outra m aquina diretamente. As informa c oes s ao passadas para as camadas inferiores at e que se alcance a camada mais baixa. Abaixo desta est a o meio f sico atrav es do qual a comunica c ao propriamente dita ocorre. Entre as camadas adjacentes existe uma interface. A interface dene o conjunto de opera c oes e servi cos que a camada inferior pode oferecer a camada imediatamente superior. Em uma arquitetura em camadas deve-se estarem bem denidos quais s ao as fun c oes de cada uma das camadas. Este tipo de arquitetura proporciona a independ encia das camadas permitindo que a implementa c ao de uma camada possa ser totalmente substitu da tendo como u nico requisito da nova implementa c ao oferecer no m nimo os mesmos servi cos oferecidos pela implementa c ao anterior. Uma arquitetura em camadas deve se preocupar com diversos aspetos como: Endere camento, Modo de Transmiss ao(Simplex,Half-Duplex,Full-Suplex), Canais L ogicos(Dados,Controle), Controle de Erros, Controle de Fluxo, Fragmenta c ao / Montagens, Multiplexa c ao / Demultiplexa c ao e Roteamento.

http://www.candidatoreal.com

286

http://www.candidatoreal.com

Cap tulo 30

Protocolos de Rede
30.1 ARP - Address Resolution Protocol

O protocolo ARP e destinado a realizar a associa c ao entre um endere co de camada 3 e um endere co de camada 2. O endere co de camada 3 e um endere co l ogico e est a relacionado com protocolos como IP, IPX, Appletalk,etc. O endere co mac e um endere co f sico que est a relacionado com a interface de hardware. Um computador pode ter in umeros endere cos de camada 3 por interface, porem s o pode ter um endere co f sico por interface de rede. Quando o computador tem dados para enviar para algum destinat ario representado por um endere co IP, por exemplo, ele encapsula esses dados em um pacote IP e ent ao tem que realizar algumas etapas antes de enviar. Primeiro ele verica se o endere co IP destino pertence ou n ao a mesma rede em que ele est a conectado. Em caso armativo, ele precisa ent ao determinar qual o endere co f sico correspondente ao endere co IP destino, para que ent ao possa encapsular o pacote IP em um frame e coloc a-lo no meio de transmiss ao. Para determinar o endere co f sico destino o computador primeiramente verica se existe uma entrada em sua tabela de Cache de ARP. Caso exista,ele encapsula o pacote IP em um frame e envia, caso contr ario e necess ario que se envie uma mensagem ARP em broadcast com a seguinte pergunta: Quem possui o endere co IP end? Todas as m aquinas da rede local ir ao receber a mensagem e analisar o conte udo. Aquela que possuir endere co end responder a a mensagem arp enviando seu endere co f sico.

http://www.candidatoreal.com

30.2

DHCP - Dynamic Host Conguration Protocol

O DHCP (Dynamic Host Conguration protocol) e um protocolo que objetiva realizar a congura c 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 informa c oes relativas a congura c oes do host e um mecanismo para controlar a aloca c ao de endere cos de rede.

287

http://www.candidatoreal.com

O DHCP e baseado no modelo cliente-servidor, onde o cliente requisita os par ametros de congura c ao e os servidores recebem os pedidos, os analisa e prove as congura c oes para os hosts. Vale ressaltar que e poss vel a coexist encia de mais de um servidor DHCP em uma rede. Tamb em e poss vel o servidor DHCP estar fora da rede em que se encontram os hosts solicitantes (clientes). Neste caso, e necess aria a instala c ao de um agente de retransmiss ao DHCP (DHCP Relay Agent). A u nica informa c ao que este agente precisa ter e o endere co IP do servidor DHCP que est a fora da rede. As tr es formas de assinalar um endere co IP s ao: Aloca c ao Autom atica - um endere co IP e fornecido para de forma permanente pelo servidor de DHCP; Aloca c ao Din amica - as congura c oes do host s ao fornecidas por um determinado per odo de tempo chamado lease. As congura c oes podem ser canceladas antes desse per odo expirar caso seja de interesse do host; Aloca c ao Manual - as congura c oes do host s ao ajustadas manualmente pelo administrador da rede. Em geral em uma rede essas formas de assinalar endere cos s ao utilizadas em conjunto. Entre os requisitos de um servi co de DHCP em uma rede est ao: garantir que um mesmo endere co n ao estar a em uso mais de um host ao mesmo tempo; estar preparado para funcionar em mais de um em uma rede de forma aumentar a performance e redund ancia; estar preparado para lidar com hosts estaticamente congurados. Entre os par ametros de congura c ao fornecidos pelo DHCP, est ao, o endere co de rede, a m ascara de subrede, o tempo de dura c ao da licen ca (lease ), endere co do gateway padr ao, endere co dos servidores de DNS, etc. A aloca c ao din amica de endere co e o mais importante servi co fornecido pelo DHCP. Para um host adquirir congura c oes as seguintes etapas s ao necess arias: Um cliente faz um broadcast de uma mensagem DHCPDISCOVER para na sua rede local f sica. Caso o servidor de DHCP n ao esteja naquela rede f sica, os agentes relay encaminham as mensagens para frente atrav es dos roteadores; Os servidores recebem a mensagem DHCPDISCOVER e respondem com uma mensagem DHCPOFFER com as congura c 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 congura c ao; O servidor recebe a mensagem DHCPREQUEST e checa em sua base de dados se e poss vel fornecer as congura c oes desejadas pelo host. Caso seja poss vel, envia uma mensagem com o DHCPACK, sen ao envia um 288

http://www.candidatoreal.com

http://www.candidatoreal.com

DHCPNAK. O processo e reiniciado ap os um tempo determinado por backo exponencial; O host, caso tenha recebido ACK, checa as congura c oes fornecidas usando ARP, por exemplo, e caso detecte que congura c oes n ao s ao v alidas, envia uma mensagem do tipo DHCPDECLINE, cancelando a negocia c ao.

30.3

DNS - Domain Name System

Originalmente, o mapeamento de nomes em endere cos era todo registrado em um u nico arquivo chamado HOSTS.TXT. Esse arquivo era gerenciado por uma entidade chamada NIC (Network Information Center). A distribui c ao das atualiza c oes desse arquivo era feita via FTP, o que consumia uma banda muito grande. O perl do usu ario de redes e da Internet mudou muito, ocorrendo um grande crescimento das redes locais, com suas pr oprias necessidades de mapear nomes que s o faziam sentido em seus ambientes. O perl das aplica c oes de Internet tamb em evoluiu bastante, surgindo a necessidade de se criar um sistema de mapeamento de nomes mais geral e eciente. Foi neste contexto que surgiu o DNS. O DNS e (1) um banco de dados distribu do implementado em uma hierarquia de servidores de nome, e (2) um protocolo de camada de aplica c ao que permite que hospedeiros consultem o banco de dados distribu do. Para tratar a quest ao da escala, o DNS usa um grande n umero de servidores organizados, de maneira hier arquica e distribu da, por todo o mundo. Os principais componentes do DNS s ao: Domain Name Space (Espa co de Nomes): e uma especica c ao para uma arvore estruturada para armazenar os espa cos de nomes. Esta 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 fun c ao do DNS e mapear nomes de dom nios em registros de recursos (n ao somente endere co IP). Um registro de recurso e uma tupla de cinco campos: Domain name (normalmente existem muitos registros, de tipos diferentes, para cada dom nio); 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 det em informa c ao sobre a estrutura da arvore de dom nio e tamb em tem a capacidade de registrar informa c oes. Resumidamente, h a quatro classes de servidores de nomes: servidores de nomes raiz (cerca de 13 servidores); servidores DNS de dom nio de n vel superior (.int, .com, .mil, .net, .br, .jp, etc. - cerca de 200 servidores); servidores DNS com autoridade (chamados de AUTHORITH - os que det em os registros de recursos de servidores, localizados em sua zona, que podem ser acessados publicamente); e servidores intermedi arios; 289

http://www.candidatoreal.com

http://www.candidatoreal.com

Tipo SOA A MX NS CNAME PTR HINFO TXT

Signicado In cio de autoridade Endere co IP de um host Inteiro de 32 bits Troca de mensagens de correio Servidor de nomes Nome can onico Ponteiro Descri c ao de host Texto

Valor Par ametro para essa zona

Prioridade, dom nio disposto a aceitar correio eletr onico Nome de um servidor para este dom nio Nome de dom nio Nome alternativo de um endere co IP CPU e sistema operacional em ASCII Texto ASCII n aointerpretado

Tabela 30.1: Principais tipos de registros de recursos do DNS para o IPv4 Resolvers (Resolvedores): s ao programas, executados tanto nos clientes quanto nos servidores, que extraem informa c oes dos Name Servers em resposta a requisi c oes feitas por clientes. Esses programas s ao aptos a responder as queries diretamente ou ent ao encaminhar a queries caso a informa c ao n ao esteja dispon vel naquele Name Server. S ao programas que podem ser acessados diretamente por programas de usu arios ou rotinas do sistema operacional sem a necessidade de utiliza c ao de protocolos; Cache DNS: uma caracter stica muito importante usada para aumentar o desempenho quanto a atraso e reduzir o n umero de mensagens DNS na Internet. Em cada elemento da cadeia (cliente, servidores local, secund arios, prim arios, com autoridade, de n vel superior, etc.) informa c oes (registros) de respostas podem ser armazenadas em mem oria local. Para evitar o uso de registros desatualizados, e associado a cada registro um n umero TTL (Time to Live) que determina seu tempo de vida; Existem dois m etodos de consulta: recursiva, onde cada servidor que n ao tiver as informa c oes solicitadas poder a encontr a-las, por meio de novas consultas, em algum lugar e informar ao solicitante o que encontrou. Iterativa, onde quando a consulta n ao pode ser satisfeita no local, haver a uma falha, mas e retornado o nome do pr oximo servidor a ser consultado, pelo solicitante, ao longo da linha. Para cada consulta, os tipos b asicos de resposta s ao: authoritative answer (consulta resolvida pelo servidor com autoridade); positive answer; referral answer (n ao cont em resolu c ao da consulta, e sim uma refer encia para uma nova consulta - usada no m etodo iterativo); e negative answer (ou o nome pesquisado n ao existe ou o tipo de registro n ao confere - sempre indicado pelo servidor com autoridade). importante observar que o DNS n E ao somente prov e o servi co de tradu c ao de nomes em endere cos IPs. Ele tamb em prov e outros servi cos mais sosticados, tais como: 290

http://www.candidatoreal.com

http://www.candidatoreal.com

Distribui c 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 distribui c ao de carga. Ao resolver o nome, o DNS faz um rod zio 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 resolu c ao de nomes e TCP/53 para realizar transfer encia de zonas. O nome completo de um host da rede e conhecido como FQDN - Full Qualided 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 dom nio 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 situa c oes onde os usu arios devem estar limitados a utilizar apenas o servidor DNS da Intranet da empresa. Desta forma, somente os endere cos 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 informa c oes sobre registros de DNS de um determinado dom nio, 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 endere cos do servidor DNS e do host; nslookup -querytype=ANY nome do host/todas as informa c oes dispon veis do servidor DNS e do host.

30.4
http://www.candidatoreal.com

TCP - Transmission Control Protocol

O protocolo TCP (Transmission Control Protocol) e um protocolo da camada de transporte cujo principal objetivo e prover um servi co de conex ao con avel entre um par de processos que desejam se comunicar. prover facilidades como transfer encia b asica de dados, controle de uxo, multiplexa c ao, preced encia, controle de conex oes, e alguma seguran ca. A express ao conex ao con avel est a relacionada com a capacidade do protocolo TCP em lidar com dados danicados, perdidos ou duplicados utilizando para isso n umeros de seq u encia, ACKs, buers de retransmiss ao. O TCP implementa tamb em a multiplexa c ao para permitir que m ultiplos processos utilizem as facilidades do TCP em um mesmo host. Para isso utiliza um identicador de conex ao chamado soquete, que e formado pela porta e endere co de rede.

291

http://www.candidatoreal.com

O cabe calho do TCP e formado pelos seguintes campos: (i) Source Port - porta de origem; (ii) Destination Port - porta de destino; (iii) Sequence Number - numero de seq u encia do segmento; (iv) Acknowledgment Number - o numero de seq u encia que o sender do segmento espera receber; (v) Data Oset - Indica onde os dados come cam. M ultiplo de 32 bits; (vi) Control Bits - (URG/ACK/PSH/RST/SYN/FIN); (vii) Window - tamanho da janela aceit avel. Indica range de n umeros de seq u encia aceitos; (viii) Checksum Checksum calculado sobre headers e dados; (ix) Urgent Pointer - Indica o oset dos dados urgentes em um dado segmento. S o tem sentido com o ag URG setado. (x) Options: op c oes adicionais (Ex: Maximum Segment Size. Esta op c ao s o deve ser utilizada no estabelecimento da conex ao. Caso contr ario qualquer tamanho de segmento e aceito); (xi) Padding - usado para garantir que o header seja m ultiplo de 32 bits e o campo data oset trabalhe corretamente. Para manter uma conex ao TCP e necess ario que se guarde o status de v arias vari aveis referentes a recebimento e envio de segmentos, informa c oes sobre o segmento corrente, informa c ao sobre o estado da conex ao e identicador da conex ao. Todas essas conex oes s ao guardadas em uma estrutura chamada TCB - Transmission Control Block. Entre as informa c oes guardadas nos TCBs est ao, por exemplo, o tamanho da janela, numero de seq u encia inicial da conex ao e o estado dos bits de controle. As conex oes TCP podem se encontrar nos seguintes estados: LISTEN - A espera de um pedido de conex ao; SYN-SENT - A aplica c ao come cou a abrir uma conex ao; SYN-RECEIVED - Uma solicita c ao chegou. Espera por um ack; ESTABILISHED - Estado normal para envio de dados; FIN-WAIT-1 - A aplica c ao informou que acabou de transmitir; FIN-WAIT-2: O outro lado concordou em encerrar; TIMED-WAIT - Aguarda a entrega de todos os pacotes; CLOSE-WAIT - Um lado deu inicio ao encerramento; LAST-ACK - Aguarda entrega de todos os pacotes;

http://www.candidatoreal.com

CLOSING - Ambos tentaram encerrar simultaneamente. A conex ao passa de um estado para o outro em resposta a eventos que s ao as chamadas as fun c oes OPEN, SEND, RECEIVE, CLOSE, ABORT, STATUS ou ent ao segmentos contendo ags SYN, ACK, RST, e FIN, al em dos timeouts. As duas causas de congestionamento s ao a sobrecarga na rede e a sobre necess carga no receptor. E ario lidar com cada uma das causas separadamente. Se o mecanismo de Janela de Transmiss ao for obedecido pelo transmissor, n ao haver a problemas devido a sobrecarga de buers mas somente devido a congestionamentos internos da pr opria rede. Para isso utiliza-se uma segunda janela 292

http://www.candidatoreal.com

chamada Janela de Congestionamento. O valor m nimo entre essas janelas reete o numero m aximo de bytes que um transmissor pode enviar. O mecanismo de janela de congestionamento funciona da seguinte maneira: Ao estabelecer a conex ao o valor da janela de congestionamento e setado para o valor m aximo do segmento (MSS) cordado na conex ao. feita ent E ao a transmiss ao de um segmento de tamanho MSS. Caso n ao tenha ocorrido timeout, o valor da janela de congestionamento e aumentado para duas vezes o anterior. Esse procedimento segue at e que uma transmiss ao resulte em timeout. Caso isso ocorra o procedimento e reiniciado a partir do valor inicial. Esse e um algoritmo exponencial. Existe uma variante que permite a utiliza c ao de um limiar a partir do qual o crescimento passa a ser linear e n ao exponencial. Na internet essa t ecnica e utilizada. O mecanismos de abertura de conex ao e conhecido como Three-Way Hand formado pelas seguintes etapas: (1) A - B (SYN my sequence number shake. E is X); (2) A - B ACK (your sequence number is X) e SYN (my sequence number is Y); (3) A B ACK (your sequence number is Y). Os timers utilizados pelo TCP s ao: Timer de Retransmiss ao - respons avel por indicar se um segmento deve ser retransmitido; Timer de Persist encia utilizado para evitar o impasse quando o anuncio do tamanho de janela se perder, Timer de keepAlive - pode expirar quando uma conex ao ca inativa por feita ent muito tempo.E ao uma checagem para ver se o outro lado ainda est a ativo; TIME WAIT - utilizado no estado da conex ao.

30.5

UDP - User Datagram Protocol

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 tamb em stateless. N ao proporciona nenhuma garantia de entrega nem ordena c ao. No entanto, e muito mais leve e eciente do que o TCP. Esse e um dos motivos pelos quais o UDP e muito utilizado em aplica c oes sens veis ao tempo. Entre as in umeras aplica c oes do protocolo UDP est ao os servi cos de RIP, SNMP, DHCP, DNS, VoIP, jogos online, aplica c oes de multim dia, entre outras. Em um servi co 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 v deo. E colo da camada de transporte e possui um cabe calho simplicado 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 comunica c ao UDP n ao existem mensagens de conrma c ao. Quando essas ocorrem se devem a iniciativa da aplica c ao que est a utilizando o UDP e n ao das regras de comunica c ao do protocolo em si. Exemplo: Uma querie DNS e enviada ao servidor que por sua vez responde utilizando tamb em 293

http://www.candidatoreal.com

http://www.candidatoreal.com

uma mensagem UDP. Como o campos Source Port e opcional, caso n ao seja preenchido, no momento do calculo do Checksum ele e considerado 0. Nos casos em que o Checksum tamb em n ao e calculado, o valor enviado consiste em 16 bits 0. Caso o checksum calculado seja 16 bits 0, o valor do checksum enviado e composto por 16 bits 1.

30.6

HTTP - Hyper Text Transfer Protocol

o protocolo de CAMADA DE APLICAC da Web denido no RFC 1945 E AO (HTTP 1.0) e no RFC 2616 (HTTP 1.1). Ele e implementado em dois programas, um cliente e outro servidor, portanto, ele e classicado como aplica c ao cliente-servidor. Estes dois programas, executados em sistemas nais distintos, conversam entre si por meio de troca de mensagens HTTP. O HTTP dene a estrutura dessas mensagens e o modo como o cliente e o servidor as trocam. Uma p agina Web (ou documento) e constitu da de OBJETOS. Um objeto e simplesmente um arquivo. Exemplos de objetos s ao: arquivo HTML, imagem JPEG, imagem GIF, applet JAVA, etc. Cada objeto e referenciado por uma u nica URL. Cada URL tem dois componentes: o nome do hospedeiro e o nome do caminho do objeto. Por exemplo, na URL http://www.universidade.br/departamento/gura.gif, www.universidade.br e o nome do hospedeiro e /departamento/gura.gif e o nome do caminho do objeto. Um BROWSER e um AGENTE DE USUARIO para a Web. Eles implementam o lado cliente do HTTP a m de apresentar p aginas Web e fornecer numerosas caracter sticas de navega c ao e de conrma c ao. Vale salientar que dois browsers distintos podem apresentar p aginas Web de formas ligeiramente diferentes, pois o protocolo HTTP n ao dene nada sobre apresenta c ao. Os SERVIDORES WEB implementam o lado servidor do HTTP a m de abrigar objetos Web. Os Servidores Web mais utilizados atualmente s ao os Apache e o Microsoft Internet Information Server (IIS). O HTTP usa o TCP como seu protocolo de transporte. Por padr ao, as portas utilizadas s ao as 80 (prim aria) e 8080 (alternativa). Desta forma, as trocas de mensagens s ao realizadas de forma orientada a conex ao. Estas conex oes podem ser persistentes ou n ao-persistentes. As conex oes n ao-persistentes seguem o seguinte uxo: O processo cliente abre uma conex ao TCP executando a APRESENTAC AO VIAS (three way handshake); DE TRES Durante a terceira via do three way handshake, o processo cliente envia uma mensagem de requisi c ao HTTP ao servidor; O processo servidor recebe a mensagem de requisi c ao, encapsula o objeto requisitado em uma mensagem de resposta HTTP, e a envia ao cliente; O processo servidor solicita o encerramento da conex ao TCP; 294

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 exig encia 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 ineciente. O tipo de conex ao persistente permite um aumento consider avel na eci encia das trocas de mensagens. Neste tipo de conex ao, o servidor deixa a conex ao TCP aberta ap os enviar resposta. Ou seja, requisi c 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 (congur 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 requisi c 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 requisi c ao logo que encontra uma refer encia, mesmo antes de receber uma resposta a uma requisi c 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 transa c ao requisi c ao/resposta. importante salientar que o servidor envia as respostas HTTP ao cliente E sem armazenar nenhuma informa c ao de estado sobre este. Se um determinado cliente solicita o mesmo objeto duas vezes em um per odo 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. Como j a se pode notar, as mensagens s ao de dois tipos: mensagem de requisi c ao e mensagem de resposta. Antes de apresentar os principais campos do tipo de mensagem de requisi ca o, vamos a um exemplo t pico.

http://www.candidatoreal.com

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 uisi c ao e composta por tr es campos: o campo do METODO; o da URL; e o da do HTTP. A linha de cabe VERSAO calho Host especica o hospedeiro no qual o

295

http://www.candidatoreal.com

objeto reside (este campo e utilizado para buscar objetos em servidores proxy). Ao incluir a linha de cabe calho Connection: close, o browser est a encerrando a conex ao. A linha de cabe calho User-agent especica o agente de usu ario, ou seja, o tipo de browser (o servidor pode enviar vers oes diferentes de um mesmo objeto). Por m, o cabe calho Accept-language mostra que o usu ario prefere receber uma vers ao em franc es do objeto se este existir. O formato geral de uma mensagem de requisi c ao e mostrado na gura abaixo.

Figura 30.1: Formato geral de uma mensagem de requisi c ao HTTP Agora que j a apresentamos um exemplo de mensagem de requisi c ao, vamos a um exemplo t pico de mensagem de resposta. HTTP/1.1 200 OK Connection: close Date: Thu, 03 Jul 2003 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Sun, 5 May 2003 09:23:24 GMT Content-Length: 6821 Content-Type: text/html (data data data data data data ...) Este exemplo tem tr es se c oes: a LINHA DE ESTADO; seis LINHAS DE CABEC ALHO; e CORPO DA ENTIDADE (cont em os objetos propriamente do HTTP; um ditos). A linha de estado tem tr es campos: o campo da VERSAO CODIGO DE ESTADO; e uma MENSAGEM de texto correspondente. A linha de cabe calho Connection: close indica que o servidor fechar a a conex ao ap os o envio da mensagem. A linha de cabe calho Date indica a hora e a data em que a resposta foi criada e enviada pelo servidor (n ao se refere ` a data de cria c ao do objeto nem de sua u ltima altera c ao). A linha de cabe calho Server mostra por qual tipo de servidor a mensagem foi criada. A linha de cabe calho Last-Modied indica a hora e a data em que o objeto foi criado ou sofreu a u ltima modica c ao (fundamental para a implementa c ao de servidores proxy). A linha de cabe calho Content-Length indica o n umero de bytes do objeto que est a sendo enviado. Por m, a linha de cabe calho Content-Type mostra o tipo de objeto presente 296

http://www.candidatoreal.com

http://www.candidatoreal.com

importante notar a linha em branco antes do corpo no corpo da mensagem. E da entidade. Esta linha e obrigat oria e indica que n ao h a mais nenhuma linha de cabe calho. O formato geral de uma mensagem de resposta e mostrado na gura abaixo.

Figura 30.2: Formato geral de uma mensagem de resposta HTTP Os m etodos implementados pelo HTTP 1.1 s ao: GET - Este m etodo solicita um objeto, identicado por uma URL indicada na mensagem de requisi c ao. Um GET condicional e um tipo espec co de GET. Ele deve possuir pelo menos uma linha de cabe calho do tipo If-Modied-Since ou If-UnModied-Since. De uma forma geral, ele permite melhorar o desempenho transmitindo apenas os dados que atendem determinada condi c ao. Existe tamb em o GET parcial que permite que apenas parte da informa c ao seja transmitida. Isso pode ser utilizado quando o cliente j a possui uma parte dos dados. Para isso o campo Range do cabe calho deve ser preenchido. A grande maioria das mensagens de requisi c ao tem a forma de m etodo GET; HEAD - Este m etodo e semelhante ao GET, contudo e utilizado para trazer apenas os cabe calhos da mensagem que s ao exatamente os retornados pelo GET e n ao os objetos requisitados; POST - Este m etodo e utilizado para acrescentar informa c oes a uma requisi c ao. Por exemplo, quando o cliente preenche algum formul ario de busca. Com esta mensagem, o cliente continua requisitando um objeto (ou objetos), mas seu conte udo depende do conte udo do formul ario. Os conte udos do formul ario s ao transmitidos no corpo da entidade. OBS: n ao necessariamente as requisi c oes geradas com um formul ario utilizam o poss m etodo POST. E vel utilizar o m etodo GET com os conte udos do formul ario como parte da URL (ex. www.somesite.com/animalsearch?monkey&bananas); PUT - Este m etodo solicita o armazenamento de um objeto, enviado no corpo da entidade, em um diret orio em um determinado Servidor Web (indicados por uma URL). Na pr atica este m etodo n ao e muito utilizado hoje em dia;

http://www.candidatoreal.com

297

http://www.candidatoreal.com

DELETE - Este m etodo solicita que um objeto determinado por uma URL seja deletado no Servidor Web; TRACE - Este m etodo requisita o destino nal a reetir (enviar de volta) a mensagem que est a recebendo. O campo de cabe calho Max-Fowards pode ser preenchido de forma limitar o n umero de proxies para detectar poss veis 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 espec co. 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 requisi c ao do cliente; 2xx (Successful) - Indicam que a requisi c ao foi corretamente recebida, entendida, aceita e que o conte udo (se houver) est a sendo retornado. Ex. 200 - requisi c 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 requisi c ao. Ex. 403 - p agina; 5xx (Server Error) - Indica um erro do servidor ao processar a requisi c ao. Cabe ressaltar que o HTTP n ao e somente utilizado no contexto Web. Ele tamb em e frequentemente utilizado em aplica c oes de com ercio eletr onico para transferir arquivos XML de uma m aquina para outra, sem que nenhuma dessas m aquinas envolva um browser ou um usu ario. O HTTP tamb em e utilizado para transferir VoiceXML, WML e outros tipos de XML. Outra utilidade do HTTP e servir como protocolo de transfer encia de arquivos no compartilhamento de arquivos em redes P2P.

http://www.candidatoreal.com

Outra observa c ao importante e o fato do HTTP n ao exigir conex oes espec cas e distintas para transfer encia de mensagens de controle e para transfer encia de mensagens de dados. Desta forma, dizemos que as mensagens de controle s ao enviadas NA BANDA. A vers ao 1.1 do HTTP e totalmente compat vel com a vers ao 1.0, contudo h a algumas diferen cas. As duas principais s ao: A vers ao 1.0 n ao suporta conex oes persistentes. J a a vers ao 1.1 suporta ambos os tipos de conex ao, persistente e n ao-persistente; A vers ao 1.0 permite somente tr es tipos de m etodos: GET, POST e HEAD. 298

http://www.candidatoreal.com

30.7

SMTP - Simple Mail Transfer Protocol

o protocolo de CAMADA DE APLICAC do modelo OSI denido pela E AO RFC 2821. Ele e o principal protocolo do correio eletr onico da Internet. Ele e implementado em dois programas, um cliente e outro servidor, portanto, ele e classicado como aplica c ao cliente-servidor. Estes dois programas, executados em sistemas nais distintos, conversam entre si por meio de troca de mensagens SMTP. Antes de apresentarmos as principais caracter sticas do SMTP, se faz necess ario abordar alguns assuntos relevantes a cerca do sistema de correio eletr onico na Internet. Uma grande caracter stica deste sistema e o fato das comunica c oes serem ass ncronas. Ou seja, as pessoas enviam e recebem mensagens quando for conveniente para elas. Este sistema e composto basicamente por tr es compo nentes: AGENTES DE USUARIOS; SERVIDORES DE CORREIO (tamb em chamado de AGENTE DE TRANSFERENCIA DE MENSAGEM); e o SMTP. Os Agentes de Usu arios s ao executados localmente na m aquina do usu ario, permitindo-o a ler, responder, retransmitir, salvar e escrever mensagens. Exemplos de Agentes de Usu arios com interface gr aca s ao: Eudora, Outlook e o Messenger da Netscape. Outros Agentes sem interface gr aca s ao: mail, pine e elm; Os Servidores de Correio formam o n ucleo da infra-estrutura do sistema. Cada usu ario tem uma CAIXA POSTAL. Diversos Agentes de Usu arios podem se conectar ao Servidor de Correio no intuito de enviar/receber mensagens. Eles implementam tanto o lado cliente quanto o lado servidor do SMTP. Quando um Servidor de Correio envia correspond encia para outros, age como um cliente SMTP. Quando um Servidor de Correio recebe correspond encia de outros, age como um servidor; O SMTP dene a estrutura das mensagens trocadas, principalmente entre os Servidores de Correio. O SMTP usa o TCP como seu protocolo de transporte. Desta forma, as trocas de mensagens s ao realizadas de forma orientada a conex ao. Por padr ao, a porta utilizada e a 25 e as conex oes s ao sempre persistentes. Ou seja, em uma mesma sess ao SMTP, diversas mensagens podem ser enviadas.

http://www.candidatoreal.com

Para ilustrar uma opera ca o t pica do SMTP, vamos recorrer a um cen ario bem comum descrito pela gura 30.3. Suponha que Alice queira enviar a Bob uma simples mensagem ASCII. Os seguintes passos s ao seguidos: Alice comp oe a mensagem e solicita ao seu Agente de Usu ario a entregar esta mensagem a Bob; O Agente de Usu ario de Alice envia a mensagem para seu Servidor de Correio por meio do SMTP. Esta mensagem ser a colocada em uma la de mensagens. Na verdade, este Agente de Usu ario poderia dialogar diretamente com o Servidor de Correio de Bob, por em na pr atica esta n ao e uma abordagem t ao comum;

299

http://www.candidatoreal.com

O lado cliente do SMTP, que funciona no Servidor de Correio de Alice, v e a mensagem na la e abre uma conex ao TCP para um servidor SMTP, que funciona no Servidor de Correio de Bob. Caso esta conex ao n ao possa ser aberta, em geral, novas tentativas ser ao feitas a cada 30 minutos, se n ao obtiver sucesso ap os alguns dias, o Servidor de Correio de Alice remover aa mensagem da la e a noticar a. Os Servidores de Correio se encontram na Internet usualmente consultando o DNS, mais especicamente o registro MX (Mail eXchange); Ap os alguns procedimentos iniciais de apresenta c ao, o cliente SMTP envia a mensagem de Alice para dentro da conex ao TCP; No Servidor de Correio de Bob, o lado servidor do SMTP recebe a mensagem e a coloca na caixa postal dele; Bob chama seu Agente de Usu ario para ler a mensagem quando for mais conveniente para ele. Vale salientar que a comunica c ao entre o Agente de Usu ario de Bob e seu Servidor de Correio n ao pode se dar via SMTP. Este u ltimo passo do processo dever a ser feito via um dos protocolos: HTTP, POP3 ou IMAP.

Figura 30.3: Protocolos de e-mail e suas entidades comunicantes Uma diferen ca marcante entre o HTTP e o SMTP e o fato do HTTP ser um PROTOCOLO DE RECUPERACAO DE INFORMAC OES (pull protocol). Nesse tipo de protocolo, as conex oes s ao abertas pelas m aquinas que desejam receber as informa c oes. J a o SMTP e um PROTOCOLO DE ENVIO DE INFORMAC OES. Neste tipo de protocolo, as conex oes s ao abertas pelas por este motivo m aquinas que desejam enviar as informa c oes (cliente SMTP). E que o u ltimo passo da transfer encia entre dois usu arios, entre Agente de Usu ario destinat ario e seu Servidor de Correio, n ao pode ser feito via SMTP.

http://www.candidatoreal.com

importante observar que o SMTP normalmente n E ao usa servidores de correio intermedi arios para enviar correspond encia, 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 explica c ao. Os principais comandos s ao: DATA: inicializa a transmiss ao do corpo da mensagem; 300

http://www.candidatoreal.com

HELO: identica o emissor da mensagem; HELP: solicita ao servidor SMTP informa c oes de ajuda; MAIL FROM: inicializa uma transa c ao de mail; QUIT: determina que o servidor SMTP envie um ok e ent ao feche a conex ao; RCPT TO: identica o destinat ario da mensagem. M ultiplos destinat arios s ao denidos por m ultiplos usos deste comando; TURN: faz com que os cliente e servidor troquem de papel, o cliente passa a ser servidor e vice-versa; . (ponto): identica o m do corpo da mensagem. Todo correio eletr onico e dividido em duas partes: MENSAGEM e ENVELOPE. O conte udo da parte envelope e determinado pelo protocolo de apresenta c ao SMTP. A mensagem e subdividida em CABEC ALHO e CORPO. As informa c oes contidas no cabe calho s ao determinadas no RFC 822. Cada cabe calho deve ter obrigatoriamente uma linha From: e uma To: e pode incluir importante notar tamb em uma Subject:, bem como outras linhas opcionais. E que essas linhas de cabe calho s ao diferentes dos comandos SMTP, ainda que contenham algumas palavras em comum. Uma caracter stica marcante do SMTP e o fato dele exigir que o formato de representa c ao, tanto dos cabe calhos quanto do corpo da mensagem, seja ASCII. Desta forma, conte udos n ao ASCII, por exemplo, imagens, audio, v deo e caracteres especiais, devem ser codicados em ASCII antes de serem enviados pelo SMTP. Ap os a transfer encia, estes dados s ao decodicados novamente em formato ASCII. Para que isto seja poss vel, h a necessidade de incluir cabe calhos adicionais na mensagem. Esses cabe calhos extras s ao denidos no RFC 2045 e no RFC 2046, que s ao extens oes do RFC 822 referentes ao MIME (Multipurpose Internet Mail Extentions). Os dois cabe calhos MIME fundamentais para suporte de multim dia s ao: Content-Type e Content-Transfer-Encondig. O primeiro permite que o Agente de Usu ario destinat ario realize uma a c ao adequada sobre a mensagem, por exemplo, execu c ao de uma rotina de descompress ao JPEG. O segundo alerta o Agente de Usu ario destinat ario que o corpo da mensagem foi codicado em ASCII.

http://www.candidatoreal.com

30.8

POP3 - Post Oce Protocol Version 3

o protocolo de CAMADA DE APLICAC do modelo OSI denido no RFC E AO 1939. Ele e um protocolo de acesso de correio eletr onico extremamente simples, e como conseq u encia bastante limitado. Por padr ao, ele utiliza o TCP como protocolo de transporte via porta 110. Seu funcionamento t pico e da seguinte forma. O Agente de Usu ario, agindo como cliente, abre uma conex ao TCP com o Servidor de Correio que age como servidor. Com a conex ao ativada, o protocolo passa por tr es fases: AUTORIZAC AO,

301

http://www.candidatoreal.com

e ATUALIZAC TRANSAC AO AO. Durante a fase de autoriza c 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 transa c ao, tamb as mensagens s ao transferidas ao cliente. E em nesta fase que o Agente de Usu ario pode marcar/desmarcar as mensagens que dever ao ser apagadas, e obter estat sticas de correio. A fase de atualiza c 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 transa c 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 poss veis: +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 denidos 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 atualiza c ao; QUIT: determina que o servidor envie um ok e ent ao feche a conex ao. Uma caracter stica importante deste protocolo e o fato dele realizar uma conex ao persistente, ou seja, em uma mesma sess ao TCP entre cliente e servidor e poss vel a transfer encia de diversas mensagens. Um Agente de Usu ario que utiliza POP3 frequentemente pode ser congurado pelo usu ario nal para LER-E-APAGAR ou para LER-E-GUARDAR. A seq u encia de comandos emitida por um Agente de Usu ario depende desta congura c ao. No modo ler-e-apagar, os seguintes comandos s ao emitidos: LIST, RETR e DELE. M ultiplas mensagens s ao transferidas por meio de m ultiplas seq u encias de comandos RETR e DELE, uma seq u encia para cada mensagem. H a um problema com o modo ler-e-apagar. O usu ario destinat ario pode ser n omade e querer acessar sua caixa de postal de muitas m aquinas. Desta forma, as mensagens cam repartidas entre as m aquinas que estabeleceram conex ao com o Servidor de Correio, n ao permitindo a visualiza c ao em uma m aquina de mensagens baixadas por outra m aquina diferente.

http://www.candidatoreal.com

302

http://www.candidatoreal.com

No modo ler-e-guardar, o Agente de Usu ario deixa as mensagens no Servidor de Correio ap os descarreg a-las. Desta forma, o problema anterior de reparti c ao de mensagens e resolvido. Cabe ressaltar que o Agente de Usu ario, ao se conectar ao Servidor de Correio, descarrega todas as mensagens que est ao na caixa postal. Por este fato, diz-se que este protocolo e o-line. Ou seja, o usu ario nal recebe todas as suas mensagens e ent ao pode l e-las e apaga-las do servidor de arquivo local mesmo estando oine. Portanto, este protocolo se mostra interessante para usu arios que pagam pelo acesso a Internet por tempo de conex ao, por exemplo, conex ao discada. Uma caracter stica bastante importante do POP3 e o fato dele guardar informa c oes de estados durante uma sess ao POP3. Em particular, monitora as mensagens do usu ario marcadas para apagar. Contudo, n ao mant em informa c oes de estado entre sess oes POP3. Portanto, de certa forma diz-se que este protocolo e COM ESTADO. Este protocolo e bastante difundido atualmente. Contudo, h a desde 2003 uma proposta de atualiza c ao que recebe o nome de POP4. Por em, praticamente nenhum progresso tem sido observado na utiliza c ao desta atualiza c ao.

30.9

IMAP - Internet Mail Access Protocol

o protocolo de CAMADA DE APLICAC do modelo OSI denido no RFC E AO 2060. Ele e um protocolo de acesso de correio eletr onico complexo e com muitos recursos. Por padr ao, ele utiliza o TCP como protocolo de transporte via porta 143. Seu funcionamento t pico se assemelha bastante com o funcionamento do POP3. Contudo, h a alguns novos recursos bastante interessantes para o usu ario. A principal diferen ca e com rela c ao ` a possibilidade do usu ario poder criar pastas, mover/copiar mensagens de uma pasta para outra e tamb em realizar procurar por palavras chaves. No POP3 todas essas funcionalidades s o podem ser executadas com as mensagens na m aquina local do cliente. Enquanto que o IMAP implementa comandos que permitem fazer essas manipula c oes com as mensagens no Servidor de Correio, o que trouxe um avan co consider avel.

http://www.candidatoreal.com

Uma outra caracter stica contrastante com o POP3 e com rela c ao ` a manuten c ao de informa c oes de estado. O POP3 somente mant em informa c oes de estado durante uma sess ao POP3, enquanto o IMAP mant em informa c oes tanto durante sess oes quanto entre sess oes IMAP. Por exemplo, os nomes das pastas e quais mensagens est ao associadas a elas devem ser mantidos. Portanto, diz-se que o POP3 e um protocolo COM ESTADO. Uma explica c ao sucinta do uxo das mensagens e a seguinte. O servidor IMAP sempre associa as mensagens que chegam ` a pasta INBOX do destinat ario, que, ent ao, pode transferir estas mensagens para uma nova pasta criada por ele, l e-las, apag a-las e assim por diante.

303

http://www.candidatoreal.com

Outra caracter stica 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 Usu ario pode obter apenas o cabe calho ou somente uma das partes de uma mensagem MIME multiparte. Essa caracter stica eu til quando h a uma conex ao de largura de banda estr eia 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 servi co e provido por praticamente todos os sites ISPs, bem como universidades e empresas importantes. Com esse servi co, 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 solu c ao tamb em 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 implementa c 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. A tabela a seguir apresenta os principais aspectos na compara c ao entre IMAP e POP3. Caracter stica Onde o protocolo e denido Porta TCP usada Onde as mensagens s ao armazenadas Como as mensagens s ao lidas Tempo de conex ao exigido Utiliza c ao de recursos do servidor V arias caixas de correio (pastas) Bom para usu ario em tr ansito Controle do usu ario sobre o download Downloads de mensagens parciais Quotas de disco consistem um problema Implementa c ao simples POP3 RFC 1939 110 PC do usu ario Oine Pequeno M nima N ao N ao Pequeno N ao N ao Sim IMAP RFC 2060 143 Servidor Online Grande Intensa Sim Sim Grande Sim Poss vel N ao

http://www.candidatoreal.com

Tabela 30.2: Compara c ao entre IMAP e POP3

304

http://www.candidatoreal.com

30.10

LDAP - LightWeight Directory Access Protocol

O LDAP e mais um protocolo de camada de aplica c ao que roda sobre o protocolo TCP. O servi co LDAP segue o modelo cliente servidor, onde um ou mais servidores contem as informa c oes sobre os diret orios em uma rede. Um cliente LDAP se conecta ao servidor e faz um request, que e respondido pelo servidor ou ent ao redirecionado para outro servidor. Os servidores LDAP armazenam informa c oes como direitos de acesso, espa co dispon vel por usu arios, entre outras. Cada um dos diret orios gerenciados pelo LDAP cont em informa c oes a seu repeito como CreatorsName, CreateTimestamp, ModiersName, ModiersTimestamp. As estruturas no LDAP s ao armazenadas de forma hier arquica e n ao existe limita c ao quanto a organiza c ao hier arquica como nos sistemas de arquivos. Pode-se, por exemplo, adicionar as estruturas partes de nomes de dom nio, ou sistema operacional. As entradas no LDAP s ao chamadas Distinguished Names (DNs). Ao congurar um servidor utiliza-se o conceito de suxo (suxe) para determinar qual o n vel mais alto da hierarquia est a sob seu controle.

30.11

SNMP - Simple Network Management Protocol

O SNMP e um protocolo da camada de aplica c ao que foi desenvolvido para permitir a execu c ao de v arias fun c oes como: (i) Congurar Dispositivos Remotos; (ii) Monitorar Performance da Rede (iii) Detectar Problemas na Rede e Acessos Indevidos; (iv) Auditar a utiliza c ao da Rede. Os componentes do servi co de SNMP s ao o sistema de gerenciamento, que pode ser qualquer m aquina rodando um software de gerenciamento, e os agentes que s ao as m aquinas gerenciadas. Essas m aquinas podem ser computadores pessoais, servidores, switches, roteadores, etc. O sistema de gerenciamento envia um request para um agente ou tamb em pode enviar informa c oes em alguns casos. O servi co de SNMP pode ser congurado para especicar quais informa c oes devem ser informadas ao sistema de gerenciamento e quais sistemas de gerenciamento est ao autorizados a requisitar informa c oes. Em geral, s ao os sistemas de gerenciamento que requisitam informa c oes dos agentes, por em os agentes podem utilizar mensagens chamadas traps para comunicar algo ao sistema em ocasi oes especiais. Exemplos dessas situa c oes s ao temperatura elevada, tentativas de invas ao, altas taxas de utiliza c ao de mem oria ou CPU, etc. Os sistemas de gerenciamento s ao organizados em comunidades por prop ositos administrativos e seguran ca. Quando um sistema de gerenciamento requisita alguma informa c ao dos agentes, os agentes recuperam as informa c oes de uma base chamada MIB - Managment Information Base. As mensagens do protocolo SNMP s ao as seguintes: (i) Get - A mensagem mais simples onde o sistema de gerencia solicita uma informa c ao espec ca; (ii) Get-Next - Pesquisa por uma informa c ao em toda a MIB; (iii) Set - Se for permitida a escrita na MIB; (iv) Getbulk - Solicita que os dados enviados pelo agente sejam o maior poss vel

http://www.candidatoreal.com

305

http://www.candidatoreal.com

respeitando um determinado valor e o MTU da linha; (v) Trap - Mensagem n ao solicitada enviada do agente para o sistema de gerenciamento. O protocolo SNMP utiliza o as portas UDP/161 e UDP/162 (traps).

30.12

FTP - File Transfer Protocol

o protocolo de CAMADA DE APLICAC do modelo OSI no RFC 959. Ele E AO e implementado em dois programas, um cliente e outro servidor, portanto, ele e classicado como aplica c ao cliente-servidor. Como seguran ca m nima o protocolo FTP implementa um processo de autentica c ao e outro de permiss ao. A autentica c ao e vericada atrav es de um c odigo de usu ario e senha, j a a permiss ao, e dada em n vel de diret orios e arquivos. Em uma sess ao FTP t pica, o usu ario, sentado ` a frente de um hospedeiro (o local), quer transferir arquivos de ou para um hospedeiro remoto. Na realidade, um usu ario tamb em pode transferir arquivos de um hospedeiro remoto para outro hospedeiro remoto. Para acessar a conta remota, o usu ario deve fornecer uma identica c ao e uma senha (processo de autentica c ao). O usu ario nal in terage com o FTP por meio de um AGENTE DE USUARIO FTP. Alguns dos agentes mais utilizados atualmente s ao: SmartFTP; Cute FTP; FTP via Web; Filezilla; Core FTP; WS FTP; LeechFTP; e gFTP. Assim como o HTTP, o FTP tamb em usa o TCP como protocolo de camada de transporte. Contudo, h a algumas diferen cas 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 informa c oes de controle, por exemplo, identica c 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 informa c 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 informa c 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 espec ca e tamb em 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 caracter stica 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 transfer encia da cada arquivo. Ou seja, se for necess aria a transfer encia 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.

http://www.candidatoreal.com

306

http://www.candidatoreal.com

O FTP implementa tr es modos de transfer encias. S ao eles: Modo Ativo: o cliente e respons avel pela abertura da conex ao de controle e o servidor e respons avel pela abertura da conex ao de dados. O processo acontece da seguinte forma. O cliente abre uma conex ao de controle em uma porta rand omica, por exemplo 1553, com o servidor que est a escutando em sua porta 21. O cliente envia ao servidor, por meio do comando PORT, uma outra porta rand omica, por exemplo 1500, e seu endere co IP. Ent ao, o servidor abre uma conex ao de dados com o cliente utilizando sua porta 20 e a porta 1500 do cliente; Modo Passivo: o cliente e respons avel pela abertura de ambas as conex oes. O processo acontece da seguinte forma. O cliente abre uma conex ao de controle em uma porta rand omica, por exemplo 1553, com o servidor que est a escutando em sua porta 21. O cliente envia um comando PASV ao servidor informando que o modo de conex ao ser a passivo. Em resposta, o servidor envia, por meio do comando PORT, uma porta rand omica, por exemplo 1728, e seu endere co IP. Ent ao, o cliente abre uma conex ao de dados com o servidor utilizando uma outra porta rand omica, por exemplo 1500, e a porta 1728 do servidor; Modo Passivo Estendido: este modo e muito similar ao modo passivo. Contudo, o servidor, ao enviar o comando PORT, transmite ao cliente somente o n umero da porta rand omica (n ao transmite seu endere co IP) que estar a escutando para o estabelecimento da conex ao de dados. O cliente assume ent ao que ele dever a se conectar ao mesmo endere co IP que foi originalmente conectado. Este modo foi adicionado no protocolo por meio da RFC 2428. Cabe salientar que toda conex ao rand omica acontece em portas maiores que 1023 e s ao conex oes n ao privilegiadas. Os processos de conex ao em moto ativo e passivo s ao exemplicados na gura 30.4. O FTP implementa dois tipos de conex ao: a an onima e a com autentica c ao. A primeira e a mais utilizada, onde n ao e necess ario o usu ario informar login e senha, basta identicar-se como anonymous. Contudo, somente arquivos e diret orios p ublicos do servidor de arquivo remoto ser ao acessados. Dependendo da implementa c ao do servidor FTP, e solicitada ao usu ario a entrada de seu endere co de e-mail como campo de senha. Isto permite aos administradores algum tipo de controle. Em alguns casos o pr oprio servidor FTP suprime a solicita c ao de senha preenchendo este campo com valores padr oes (ex. lftp@ e mozilla@example.com). O protocolo FTP, assim como o HTTP, envia comandos e respostas por meio da conex ao de controle no formato ASCII. Contudo, o FTP permite que o cliente especique o formato dos dados armazenados a serem transferidos na conex ao de dados. Os formatos mais utilizados s ao: ASCII, Binary, EBCDIC e USASCII. A lista de comandos do FTP e de tamanho consider avel. Os principais s ao: CD: permite alterar o diret orio de trabalho remoto;

http://www.candidatoreal.com

307

http://www.candidatoreal.com

Figura 30.4: Modos de transmiss ao do FTP CLOSE: solicita o encerramento da sess ao FTP, ou seja, o encerramento da conex ao de controle; DELE: solicita ao servidor a deletar um arquivo no servidor remoto; EPSV: informa ao servidor a entrada no modo de transfer encia passivo estendido (n ao especicada na RFC 959, especicada em outra RFC); GET: solicita ao servidor a transfer encia de uma c opia de um arquivo do servidor remoto (n ao especicada na RFC 959, especicada em outra RFC); HELP: retorna a documenta c ao sobre como usar o FTP, inclusive a lista de comandos; FTP: inicia uma se c ao FTP (inicializa o programa FTP); LIST: retorna a listagem de arquivos em um diret orio remoto ou conte udo de um arquivo do servidor remoto; OPEN: abre uma conex ao com um servidor FTP, ou seja, abre uma conex ao de controle servidor remoto; PASS: informa ao servidor a senha do usu ario; PASV: informa ao servidor a entrada no modo de transfer encia passivo; PORT: envia um endere co IP e uma porta que ser ao utilizados na abertura de uma conex ao futura, ou pelo servidor ou pelo cliente; PUT: realiza a transfer encia de uma c opia de um arquivo da m aquina local ao servidor remoto (n ao especicada na RFC 959, especicada em outra RFC); PWD: informa o diret orio de trabalho corrente no servidor remoto; 308

http://www.candidatoreal.com

http://www.candidatoreal.com

QUIT: fecha uma se c ao FTP (naliza o programa FTP); RETR: solicita ao servidor a transfer encia de uma c opia de um arquivo do servidor remoto; REST: solicita ao servidor o rein cio da transfer encia de uma c opia de um arquivo do servidor remoto a partir de certo ponto; STOR: realiza a transfer encia de uma c opia de um arquivo da m aquina local ao servidor remoto; TYPE: congura o formato de arquivo a ser transferido; USER: informa ao servidor remoto o nome do usu ario. No FTP, cada comando e seguindo de uma resposta, que e enviada do servidor ao cliente. Assim como no HTTP, as respostas s ao codicadas em n umeros de tr es d gitos com uma mensagem opcional ap os o n umero. As respostas mais t picas, junto com suas poss veis mensagens s ao as seguintes: 1xx: Resposta preliminar positiva. A a c ao requisitada se iniciou, mas haver a uma outra resposta antes de seu come co; 2xx: Resposta denitiva positiva. A a c ao requisitada se completou. Agora o cliente pode fazer outra solicita c ao; 3xx: Resposta intermediaria positiva. O comando teve sucesso, mas um outro comando e necess ario antes do servidor poder executar efetivamente a solicita c ao feita; 4xx: Resposta preliminar negativa. O comando n ao foi bem sucedido, mas o cliente pode tent a-lo novamente; 5xx: Resposta denitiva negativa. O comando n ao foi bem sucedido e o cliente n ao deve solicit a-lo novamente; x0x: A falha se deu por motivos de erro de sintaxe; x1x: Resposta a uma solicita c ao de informa c ao. Por exemplo, 125 Conex ao de dados j a aberta, iniciando transfer encia; x2x: Resposta a uma solicita c ao de informa c ao referente ` a conex ao. Por exemplo, 425 - N ao e poss vel abrir a conex ao de dados; x3x: Resposta a uma solicita c ao de informa c ao referente autentica c ao e conta de usu ario. Por exemplo, 331 - Nome de usu ario OK, senha requisitada; x4x: Ainda n ao especicada; x5x: Indica o estado do servidor de arquivo. Por exemplo, Erro ao escrever o arquivo.

http://www.candidatoreal.com

309

http://www.candidatoreal.com

Vale mencionar que o protocolo TFTP (Trivial File Transfer Protocol) e uma op c 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 caracter sticas deste protocolo s ao: n ao permite visualiza c ao dos diret orios; n ao implementa autentica c ao de usu arios; e n ao implementa mecanismos de criptograa. As opera c oes de escrita/leitura s ao descritas pelas guras 30.5

Figura 30.5: Processo de escrita/leitura do TFTP

30.13

IP - Internet Protocol

http://www.candidatoreal.com

O IP (Internet protocol) e um protocolo de camada de rede que prove mecanismos de fragmenta c ao e remontagem de unidades chamadas datagramas para a transmiss ao por diversas redes com diferentes unidades m aximas de transfer encias. O protocolo IP n ao e orientado a conex ao e n ao possui controle de uxo, conrma c oes ou sequenciamento. O IP utiliza um esquema de endere camento de 32 bits que e dividido em tres partes que s ao rede, subrede e host. Os endere cos IP podem der divididos em classes de acordo com o n umero de bits que reservam para identica c ao da rede. As mascaras de sub-rede servem para identicar qual a rede e quantos host s ao poss veis na rede. As mascaras s ao compostas por diversos bits 1 seguidos de bits 0. As formas de endere car um pacote IP s ao o unicast, multicast e broadcast. O cabe calho do IP e formado pelos seguintes campos: (1) Vers ao: Indica a vers ao utilizada. (2) IP Header Lenght: Indica o tamanho do cabe calho em m ultiplo de 32 bits. (3) Type of Service: Especica a maneira com a qual os protocolos de camadas superiores querem que o pacote IP seja tratado. Os n veis 310

http://www.candidatoreal.com

de QoS s ao assinalados por meio desse campo do cabe calho. (4) Total Lenght: Tamanho total do datagrama (dados e cabe calho). (5) Identication: Identica a qual datagrama pertence um fragmento. (6) Time to Live: Contador de tempo de vida do pacote. Decrementado a cada hop. (7) Protocol: Identica qual protocolo de camada superior est a encapsulado. (8) Header Checksum: Identica se cabe calhos estam corrompidos. (9) Source/Destination Address. (10) Options e Padding: Suporta op c oes (Ex: Seguran ca) e Preenchimento. Com o crescimento das redes os endere cos IP est ao se tornando um problema para os administradores da Internet. Apesar de matematicamente serem poss veis em torno de 4 bilh oes de endere cos, muitos deles n ao podem ser utilizados ou simplesmente s ao desperdi cados devido ao esquema de distribui c ao de endere cos inadequado baseado em classes. Um outro problema decorrente e a sobrecarga das tabelas de roteamento. Para solucionar o problema surgiu o IPv6 porem at e que a migra c ao ocorra por completo ser ao necess arios alguns anos segundo especialistas. Uma outra solu c ao para este problema e chamada IP Classless. O esquema de endere camento padr ao divide os endere cos nas classes A,B e C onde a diferen ca entre a quantidade de endere cos em cada uma das classes e muito grande, fazendo com que ocorra um desperd cio muito grande de endere cos. O esquema IP Classless utiliza uma mascara de 32 bits para identicar 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 estrat egia e poss vel criar redes com tamanhos mais adequados as necessidades. Para identicar como um datagramas deve ser encaminhado por um roteador, por exemplo, e feito um AND l ogico da mascara com o endere co IP de destino do datagramas para pesquisar por qual linha ele deve sair. O endere co de broadcast em uma rede IP e sempre o u ltimo endere co da faixa. Por exemplo: Na rede 10.0.0.0/24, o endere co de broadcast e 10.0.0.255, enquanto em na rede 172.22.4.0/22 o endere co de broadcast seria 172.22.7.255.

30.14
http://www.candidatoreal.com

TELNET - TELetype NETwork

o protocolo de CAMADA DE APLICAC do modelo OSI denido no RFC E AO 854 (na verdade tamb em em diversos outros RFCs). Ele e um protocolo popular utilizado para fazer login remoto entre qualquer par de hospedeiros. Por padr ao, ele utiliza o TCP como protocolo de transporte via porta 23. Na verdade, nada impede que sejam utilizadas outras portas. Este protocolo e implementado em dois programas, um cliente e outro servidor, portanto, ele e classicado como aplica c ao cliente-servidor. Por em, o termo Telnet tamb em e utilizado para se referir ao software que implementa o programa cliente do protocolo. A m aquina que abre a conex ao e a que pretende enviar caracteres, e portanto, e a considerada cliente. A m aquina que recebe os

311

http://www.candidatoreal.com

caracteres enviados e a considerada servidora. As tr es caracter sticas mais marcantes deste protocolo s ao: Todos os dados, inclusive senhas, n ao s ao criptografados (o que o torna bastante vulner avel); N ao h a autentica c ao para se garantir que o servidor e realmente quem ele diz que e; Cada caractere digitado pelo usu ario (no cliente) ser a enviado ao hospedeiro remoto e este devolver a uma c opia (eco) do caractere digitado que ser a apresentado na tela do Telnet do usu ario. Esse eco e utilizado para garantir que os caracteres vistos pelo usu ario do Telnet j a foram recebidos e processados no local remoto. Assim, cada caractere atravessa literalmente a rede duas vezes. A gura 30.6 apresenta o cen ario t pico de envio de caracteres via Telnet. A seguir, s ao examinados os segmentos TCP que s ao enviados entre o cliente e o servidor deste cen ario. Admite-se que os n umeros de seq u encia iniciais sejam 42 e 79 para cliente e servidor, respectivamente. Lembre-se que estes n umeros representam os n umeros dos segmentos aguardados cada m aquina. Vamos aos segmentos: O primeiro e enviado do cliente ao servidor, contendo em seu campo de dados um byte com a representa c ao ASCII para a letra C (digitada pelo usu ario). Este segmento tamb em tem 42 em seu campo de n umero de seq u encia. E mais, como o cliente ainda n ao recebeu nenhum dado do servidor, esse segmento ter a o n umero 79 (n ao foi incrementado) em seu campo de n umero de reconhecimento; O segundo e enviado do servidor ao cliente. Esse segmento tem dupla nalidade. A primeira e fornecer um reconhecimento para os dados que o servidor recebeu. Ao colocar 43 no campo de reconhecimento, o servidor esta dizendo ao cliente que recebeu com sucesso tudo at e o byte 42 e que est a aguardando os bytes de 43 em diante. A segunda nalidade e ecoar a letra C. Ele tem o n umero de seq u encia 79, que e o numero de seq u encia inicial do uxo de dados de servidor para cliente dessa conex ao TCP. Note que o reconhecimento para dados do cliente para servidor e levado em um segmento que carrega dados do servidor para o cliente. Tecnicamente essa carona recebe o nome de PIGGYBACK; O terceiro e enviado do cliente ao servidor. Seu u nico prop osito e reconhecer os dados que recebeu do servidor. Ele tem o campo de dados vazio, tem o numero 80 no campo de n umero de reconhecimento porque o cliente agora est a aguardando os bytes de 80 em diante. Vale a pena comentar que este protocolo vem perdendo bastante espa co para o protocolo SSH. Pois o SSH prov e todas as funcionalidades do Telnet com a adi c ao de uma forte criptrograa de dados, inclusive senhas, e de uso de chaves p ublicas para a realiza c ao de autentica c ao. Com este tipo de autentica c ao, se garante que o servidor e realmente quem ele diz que e. 312

http://www.candidatoreal.com

http://www.candidatoreal.com

Figura 30.6: Cen ario t pico de envio de caracteres via Telnet

http://www.candidatoreal.com

313

http://www.candidatoreal.com

Cap tulo 31

O Modelo de Refer encia OSI


O modelo de refer encia OSI (Open Systems Interconnection) foi o primeiro passo para a padroniza c ao internacional dos processos de comunica c ao de sistemas abertos. Sistemas abertos s ao aqueles que est ao abertos a comunica c ao com outros sistemas. Os princ pios aplicados para se chegar ao modelo de 7 camadas foram os seguintes: Uma camada deve ser criada onde houver necessidade de abstra c ao acional; Cada camada deve executar tarefa bem denida; O limite das camadas deve minimizar o uxo de informa c oes sobre as interfaces. O modelo OSI n ao e uma arquitetura, pois n ao especica servi cos 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 fun c oes s ao: 1. Camada F sica - Respons avel pela transmiss ao de bits brutos por um canal de comunica c ao. As quest oes mais comuns s ao representa c ao dos bits 0 e 1, tempo de vida de um bit, permitir ou n ao transmiss oes simult aneas nos dois sentidos, pinagens, etc; (2)

http://www.candidatoreal.com

2. Camada de Enlace - Transformar o canal de comunica c ao bruto em uma linha que pare ca livre de erros para a camada de rede. Deve implementar mecanismos de fragmenta c ao e montagem, controle de uxo, tratamentos de erros e mecanismos de conrma c ao caso o servi co seja con avel. Para melhorar o desempenho pode-se utilizar a t ecnica de Pipelining. Deve possuir tamb em mecanismos de retransmiss ao; 3. Camada de Rede - Determinar como os pacotes s ao roteados da origem ao destino. Evitar congestionamentos e atrasos excessivos. Deve se preocupar tamb em com endere camento e tamanhos de pacotes,que podem ser papel da camada proporcionar interoperdiferentes nas diversas redes. E abilidade entre as redes. Deve implementar servi cos orientados a conex ao (circuitos virtuais) e n ao orientados a conex ao (datagramas). 314

http://www.candidatoreal.com

4. Camada de Trasnporte - Deve receber dados da camada acima, dividi-los em unidades menores e repassar essas unidades para a camada de rede. A camada de transporte deve assegurar que todos os dados chegar ao cor a camada que realiza o controle m-a-m. Um retamente ao destino. E processo em uma m aquina h a mant em uma conversa c ao diretamente com um processo em alguma outra m aquina. Entre as tarefas mais comuns realizadas pelos protocolos dessa camada est ao transfer encia b asica de dados, multiplexa c ao, abertura de conex oes, controle de uxo e congestionamento; 5. Camada de Sess ao - Permite que usu arios de diferentes m aquinas estabele cam sess oes entre eles. Os servi cos s ao controle de di alogo (quem deve transmitir a cada momento), gerenciamento de token (impedindo que duas m aquinas tentem executar sess ao cr tica ao mesmo tempo) e a sincroniza c ao (que permite que transmiss oes longas parem e reiniciem do ponto onde ocorreu interrup c ao); 6. Camada de Apresenta ca o - Preocupa-se com a sintaxe e a sem antica das informa c oes transmitidas. O objetivo e permitir a transfer encia de dados entre entidades com diferentes representa c oes de dados. Denem as estruturas de dados a serem intercambiadas juntamente com a codica c ao dos dados; 7. Camada de Aplica c ao - Cont em os protocolos que implementam de fato as aplica c oes dos usu arios.

http://www.candidatoreal.com

315

http://www.candidatoreal.com

Cap tulo 32

Roteamento
Tr es importantes protocolos rote aveis s ao o IP, o IPX e o AppleTalk. O IP eo protocolo ocial da Internet e faz parte da pilha de protocolos TCP/IP, por isso e o mais importante. Embora a maior aten c 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. Entretanto, h a protocolos que n ao suportam a camada 3. Eles s ao classicados 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 eciente, cuja execu c 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 voc e atribua um n umero de rede, porque usam um endere co MAC de host para o n umero f sico. Outros protocolos, como o IP, exigem que voc e forne ca um endere co completo, al em de uma m ascara de sub-rede. O endere co de rede e obtido pela opera c ao AND do endere co 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, sele c ao do melhor caminho e comuta c 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 eo 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 informa c oes manualmente no roteador. 316

http://www.candidatoreal.com

http://www.candidatoreal.com

Os roteadores podem conhecer as informa c oes uns dos outros durante o processo. As entradas manuais nas tabelas de roteamento s ao chamadas de rotas est aticas. As rotas descobertas automaticamente s ao chamadas de rotas din amicas. Quando um algoritmo de roteamento atualiza uma tabela de roteamento, seu principal objetivo e determinar as melhores informa c oes para incluir na tabela. Cada algoritmo de roteamento interpreta ` a sua maneira o que e melhor. O algoritmo gera um n umero, chamado valor m etrico, para cada caminho atrav es da rede. Geralmente, quanto menor o n umero da m etrica, melhor e o caminho. Voc e pode calcular a m etrica com base em uma u nica caracter stica do caminho; voc e pode calcular m etricas mais complexas combinando v arias caracter sticas. As m etricas comumente usadas pelos roteadores s ao as seguintes: Largura de banda - a capacidade de dados de um link; Atraso - o tempo necess ario para mover um pacote por cada link, da origem at e o destino; Carga - a quantidade de atividade em um recurso de rede, como um roteador ou um link; Conabilidade - geralmente se refere ` a taxa de erros de cada link da rede; N umero de hops - o n umero de roteadores atrav es dos quais um pacote deve trafegar antes de chegar ao seu destino; Pulsos (ticks) - o atraso em um enlace de dados que usa os pulsos de clock do PC IBM (aproximadamente 55 milissegundos); Custo - um valor arbitr ario, geralmente baseado na largura de banda, despesas monet arias ou outras medidas, atribu do por um administrador de rede.

32.1

Link State e Distance Vector

A maioria dos algoritmos de roteamento pode ser classicada como um dos dois algoritmos b asicos: Vetor de Dist ancias (Distance Vector ); Estado do Link (Link State ).

http://www.candidatoreal.com

A abordagem do roteamento de vetores de dist ancia determina a dire c ao (vetor) e a dist ancia de todos os links na internetwork. A abordagem do link state (tamb em chamado de shortest path rst ) recria a topologia exata da internetwork inteira (ou de pelo menos da parte onde o roteador est a situado). A abordagem h brida balanceada combina aspectos dos algoritmos do link state e do vetor de dist ancia. A seguir s ao apresentados os procedimentos e os problemas de cada um desses algoritmos de roteamento e apresentam t ecnicas para minimizar os problemas. Cada roteador que usa roteamento de vetor de dist ancia come ca identicando ` medida que o processo de explora seus pr oprios vizinhos. A c ao de rede de vetor 317

http://www.candidatoreal.com

de dist ancia prossegue, os roteadores descobrem o melhor caminho para as redes de destino, com base nas informa c oes que recebem de cada vizinho. Quando a topologia em uma rede de protocolo de vetor de dist ancia e alterada, devem ocorrer atualiza c oes na tabela de roteamento. Da mesma forma que acontece com o processo de explora c ao da rede, as atualiza c oes das altera c 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 informa c oes sobre o custo total do caminho (denido pela sua m etrica) e o endere co l ogico do primeiro roteador no caminho para cada rede contida na tabela. Loops de roteamento podem ocorrer se a converg encia lenta de uma rede em uma congura c ao nova provoca entradas de roteamento inconsistentes. Os algoritmos de roteamento de vetores de dist ancia s ao autocorrig veis, mas um problema de loop de roteamento pode exigir primeiro uma contagem at e o innito. Para evitar esse problema prolongado, os protocolos de vetores de dist ancia denem o innito como um n umero m aximo espec co. Esse n umero se refere a uma m etrica 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, tamb em conhecidos como algoritmos SPF (shortest path rst - primeiro caminho mais curto), mant em um banco de dados complexo de informa c oes sobre a topologia. Enquanto o algoritmo de vetor de dist ancia tem informa c oes n ao espec cas sobre redes distantes e nenhum conhecimento sobre roteadores distantes, um algoritmo de roteamento de link state mant em 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; Uma tabela de roteamento de caminhos e portas para cada rede. Os engenheiros implementaram esse conceito de link state no roteamento OSPF (Open Shortest Path First). Sempre que uma topologia de link state e alterada, os roteadores que primeiro tomam conhecimento da altera c ao enviam informa c oes para outros roteadores ou para um roteador designado, as quais todos os outros roteadores podem usar para atualiza c oes. Isso envolve o envio de informa c oes comuns de roteamento a todos os roteadores na internetwork. Existem duas quest oes relacionadas ao link state: Requisitos de processamento e mem oria: Executar protocolos de roteamento de link state, na maior parte das situa c oes, requer que os roteadores usem mais mem oria e executem mais processamento que os protocolos de roteamento de vetor de dist ancia. Para roteamento de link state, a mem oria deve ser capaz de reter informa c oes de diversos bancos de dados, da arvore de topologia e da tabela de roteamento. Usar o algoritmo de Dijkstra para calcular o SPF requer uma tarefa de processamento proporcional ao n umero de links na internetwork, multiplicado pelo n umero de roteadores na internetwork; 318

http://www.candidatoreal.com

http://www.candidatoreal.com

Requisitos de largura de banda: consumida para a sobrecarga inicial do pacote de link state. Durante o processo inicial de explora c ao, todos os roteadores usando protocolos de roteamento de link state enviam pacotes LSA para todos os outros roteadores. Essa a c ao sobrecarrega a internetwork ` a medida que os roteadores fazem uma demanda em massa de largura de banda e reduzem temporariamente a largura de banda dispon vel para o tr afego roteado que transporta dados de usu arios. Depois dessa sobrecarga inicial, os protocolos de roteamento de link state requerem geralmente apenas uma largura de banda m nima para enviar pacotes LSA raros ou desencadeados por eventos que reitam altera c oes na topologia.

32.1.1

Vetor de Dist ancias vs. Estado do Link

Voc e pode comparar o roteamento de vetor de dist ancia com o roteamento de link state em diversas areas-chave: O roteamento de vetor de dist ancia obt em dados topol ogicos das informa c oes da tabela de roteamento dos vizinhos. O roteamento de link state obt em uma ampla vis ao de toda a topologia da internetwork acumulando todos os LSAs necess arios; O roteamento de vetor de dist ancia determina o melhor caminho, adicionando ao valor m etrico recebido ` a medida que informa c oes de roteamento s ao passadas de roteador para roteador. Para o roteamento de link state, cada roteador opera separadamente para calcular o seu caminho mais curto para as redes de destino; Com a maior parte de protocolos de roteamento de vetor de dist ancia, atualiza c oes de altera c oes na topologia chegam em atualiza c oes peri odicas de tabelas. As informa c oes passam de roteador para roteador, geralmente resultando em uma converg encia mais lenta. Com protocolos de roteamento de link state, as atualiza c oes s ao normalmente desencadeadas por altera c oes na topologia. LSAs relativamente pequenos passados para todos os outros roteadores resultam geralmente em um tempo de converg encia mais r apido em qualquer altera c ao na topologia da internetwork. Os protocolos de roteamento h brido balanceado usam vetores de dist ancia com m etricas mais precisas para determinar os melhores caminhos at e as redes de destino. Entretanto, eles diferem da maior parte dos protocolos de vetores de dist ancia porque utilizam altera c oes na topologia para desencadear atualiza c oes de bancos de dados de roteamento. O protocolo de roteamento h brido balanceado converge rapidamente, como os protocolos de link state. Entretanto, ele difere dos protocolos de vetor de dist ancia e de link state porque usa menos recursos, como largura de banda, mem oria e sobrecarga de processador. Exemplos de protocolos h bridos s ao o IS-IS (Intermediate System-to-Intermediate System) da OSI e EIGRP (Enhanced Interior Gateway Routing Protocol) da Cisco.

http://www.candidatoreal.com

319

http://www.candidatoreal.com

32.2
32.2.1

Protocolos de Roteamento
RIP - Routing Information Protocol

O protocolo mais comumente usado para transferir informa c oes de roteamento entre roteadores localizados na mesma rede e o Routing Information Protocol (RIP). Esse Interior Gateway Protocol (IGP) calcula a dist ancia para um host de destino em termos do n umero de hops. O RIP permite aos roteadores atualizar suas tabelas de roteamento em intervalos program aveis, normalmente a cada 30 segundos. Uma desvantagem dos roteadores que usam RIP e o fato deles estarem constantemente se conectando aos roteadores vizinhos para atualizar as suas tabelas de roteamento, criando assim uma grande quantidade de tr afego de rede. O RIP e um protocolo de vetor dist ancia. Como o contador de saltos ea u nica medida de roteamento usada pelo RIP, ele n ao seleciona necessariamente o caminho mais r apido para um destino. Quando se usa o RIP, o n umero m aximo de saltos pelos quais os dados podem ser encaminhados e 15. Alguns avan cos foram introduzidos na nova vers ao do RIP, chamada de RIP2. Esta nova vers ao trata da quest ao de VLSMs (m ascara de tamanho vari avel), autentica c ao, e atualiza c oes de roteamento simult aneas (multicast). RIP2 n ao apresenta avan cos expressivos em rela c ao ao RIP porque ainda apresenta limita c oes na contagem de hops e lenta converg encia, o que essencial nas grandes redes atuais.

32.2.2

OSPF - Open Shortest Path First

Uma descri c ao pode ser determina c ao de um caminho otimo, pois esse Interior Gateway Protocol realmente usa v arios crit erios para determinar a melhor rota para um destino. Esses crit erios incluem as medidas de custo, que s ao subdivididas em itens como a velocidade de rota, o tr afego, a conabilidade e a seguran ca. H a duas caracter sticas principais no OSPF. A primeira, e um protocolo de padr ao aberto,. A segunda, e um protocolo baseado no algoritmo SPF (linkstate), tamb em chamado de algoritmo de Dijkstra. O OSPF utiliza o conceito de roteamento hier arquico. OSPF apresenta algumas caracter sticas importantes que s ao: N ao h a limite na contagem de hops;

http://www.candidatoreal.com

O uso eciente de VLSM e muito u til na aloca c ao de endere cos IP; OSPF usa multicast de IP para enviar atualiza c oes de link-state. Isto garante menor processamento nos roteadores que n ao est ao escutando os pacotes OSPF; Apresenta melhor converg encia 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 atualiza c oes de link state por toda a

320

http://www.candidatoreal.com

rede. Tamb em fornece um mecanismo para agregar roteadores a limita a propaga c ao desnecess aria de informa c oes de subrede; Permite a autentica c ao de rota utilizando diferentes m etodos para a autentica c ao de senha; Permite a transfer encia e marca c ao de rotas externas inseridas em um Sistema Aut onomo-AS. Isto rastreia rotas externas inseridas por protocolos externos como o BGP.

32.2.3

IGRP e EIGRP

O IGRP(Interior Gateway Routing Protocol) e o EIGRP(Enhanced Interior Gateway Routing Protocol) s ao protocolos de roteamento desenvolvidos pela Cisco Systems, Inc. e, portanto, s ao considerados protocolos de roteamento propriet arios. O IGRP foi desenvolvido especicamente para tratar problemas associados ao roteamento em grandes redes de v arios fabricantes, que estivessem al em do escopo de protocolos como o RIP. Como o RIP, o IGRP e um protocolo de vetor de dist ancia. Entretanto, ao determinar o melhor caminho, ele tamb em leva em considera c ao itens como largura de banda, carga, atraso e conabilidade. Os administradores de rede podem determinar a import ancia dada a qualquer uma dessas m etricas ou permitir que o IGRP calcule automaticamente o melhor caminho. O EIGRP e uma vers ao avan cada do IGRP. Especicamente, o EIGRP fornece eci encia operacional superior e une as vantagens dos protocolos de Link State com as dos protocolos de vetor de dist ancia.

http://www.candidatoreal.com

321

http://www.candidatoreal.com

Cap tulo 33

Redes Ethernet
A rede Ethernet e um padr ao de rede local que foi padronizado pelo comit e IEEE 802 como IEEE 802.3. As redes Ethernet v em sendo, desde 1990, as mais utilizadas para implementa c ao de LANs. A Ethernet foi originalmente baseada na id eia 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 congura c ao era problem atica na medida que problemas em qualquer parte do cabo interrompiam a comunica c ao em toda a rede. Para contornar esse problema, foram introduzidos os os hubs. Por em, em termos do dom nio de colis ao, n ao h a diferen cas entre um hub e um cabo u nico compartilhado, o que imp oe restri c oes pr aticas ao tamanho da rede. A solu c ao para esse problema e a utiliza c ao de switches, que limitam o dom nio de colis ao ` a um enlace ponto-a-ponto.

33.1
http://www.candidatoreal.com

Protocolo CSMA/CD

O CSMA/CD e um protocolo que permite acesso m ultiplo ao meio de transmiss ao baseando-se em tr es mecanismos b asicos que s ao: (i) escuta da portadora; (ii) detec c ao de colis oes e (iii) mecanismo de conten c ao. O protocolo funciona da seguinte maneira: 1. Um adaptador pode come car a transmitir a qualquer tempo, ou seja, n ao s ao utilizados compartimentos slots ; 2. Um adaptador nunca transmite um quadro quando percebe que que algum outro adaptador est a transmitindo. Para isso, um adaptador que deseja transmitir precisa escutar a portadora;

322

http://www.candidatoreal.com

3. Um adaptador que est a transmitindo aborta sua transmiss ao quando percebe que algum outro adaptador est a transmitindo, ou seja, detecta colis oes. Al em disso, ao detectar uma colis ao, um adaptador que est a transmitindo tamb em emite um sinal de refor co de 48 bits (jam signal ) para garantir que os demais adaptadores tamb em tomar ao conhecimento da colis ao; 4. Ap os abortar a transmiss ao o adaptador entra em fase de conten c ao, durante a qual ter a que esperar um tempo aleat orio antes de tentar transmitir novamente. Esse tempo e determinado pelo algoritmo de backo exponencial. O algoritmo de backof exponencial diz que, ap os a detec c ao da n- esima colis ao, um adaptador dever a esperar por um tempo igual a 512Kt0 , onde t0 eo tempo de transmis ao de um bit e K e um valor escolhido com igual probabilidade entre o conjunto {0, 1, 2, ..., 2m 1}, sendo m igual ao m nimo entre n e 10. Dessa forma, ap os um adaptador detectar uma colis ao pela primeira vez (n = 1) escolher a um valor de K no conjunto {0, 1}. No caso de uma rede de 10Mbps, o tempo de transmiss ao de um bit e igual a 0.1 microssegundos e supondo que o K escolhido seja 1, ent ao o adaptador ter a que esperar por um tempo igual a 51.2 microssegundos antes de uma nova tentativa de transmiss ao. Ap os a segunda detec c ao de colis ao, o valor de K ser a escolhido entre 0, 1, 2, 3. A partir da d ecima colis ao o valr de K ser a escolhido no conjunto {0, 1, 2, 4, ..., 1023}.

33.2

Fast Ethernet

O Padr ao Fast Ethernet (IEEE 802.3u) foi lan cado em 1995 como a evolu c ao do padr ao Ethernet original. As principais modica c 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 utiliza c 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 tamb em foi introduzido um mecanismo de controle de uxo. 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 termina c ao TIA/EIA-568A e TIA/EIA-568B. Cada enlace pode ter no 323

http://www.candidatoreal.com

http://www.candidatoreal.com

m aximo 100 metros de comprimento. O esquema de codica c ao utilizado no padr ao 100Base-TX e o MLT-3; 100Base-FX: Essa e uma vers ao que utiliza um par de bras opticas multimodo com terminadores do tipo SC, ST ou MIC. O esquema de codica c ao utilizado e o NRZI; 100Base-SX: Assim como o padr ao 100Base-FX, tamb em utiliza um par de bras opticas multimodo. O padr ao SX difere do FX por utilizar optica de ondas de comprimento curto (short wavelength ), o que o torna mais acess vel. No entanto, o padr ao FX permite alcan car dist ancias maiores; 100Base-BX: Transmiss ao e recebimento s ao realizados por um u nico cabo de bra, utiliza para isso, t ecnicas de multiplexa c 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 opera c ao nos modos half e full-duplex e utiliza o mecanismo de controle de uxo baseado em pause frames.No modo half-duplex ainda e utilizado o protocolo CSMA/CD. No entanto, com aumento da velocidade de transmis ao, para garantir que as colis oes sejam corretamente detecadas pelo CSMA/CD, foi necess ario extender o slot-time m nimo de 64 para 512 bytes. Para cumprir este requisito e utilizado o campo carrier extension, que e preenchido at e que o slot-time de um quadro pequeno alcance 512 bytes. No receptor, o conte udo do campo de extens ao e descartado. A diferen ca entre o quadro Ethernet original e o quadro do padr ao Gigabit e mostrada na gura 33.3.

http://www.candidatoreal.com

Figura 33.1: Quadros Ethernet e Gigabit Ethernet Utilizada puramente, esta modica c ao afeta o desempenho na transmiss ao de quadros pequenos devido a grande quantidade de carga in util transmitida. Para contornar esse problema, o padr ao Gigabit tamb em utiliza o recurso de transmiss ao em rajadas (frame bursting ), permitindo que um conjunto de pacotes pequenos sejam transmitidos em conjunto dentro de um u nico quadro. Assim como o padr ao Fast Ethernet, o padr ao Gigabit tamb em tem suas sub-divis oes. As princiapais s ao: 324

http://www.candidatoreal.com

1000Base-SX: Este padr ao opera utilizando optica de ondas de comprimento curto sobre um par de bras multimodo. Com bras opticas de qualidade j a e poss ve alcan car dist ancias maiores que 500 metros com esse padr ao; 1000Base-LX: Opera utilizando optica de ondas de comprimento longo, permitindo alcan car dist ancias de at e 20 kil ometros com bras monomodo. Quando utilizado com bras multi-modo permite dist ancias de at e 500 metros; o padr 1000Base-T: E ao para redes gigabit que utiliza cabos UTP. O requisito m nimo do padr ao e um cabo da categoria 5, por em, cabos da categoria 5e ou 6 s ao recomendados. A dist ancia m axima alcan cada com este padr ao e de 100 metros; 1000Base-CX: Criado como uma alternativa para dist ancias de at e 25 metros. Ao inv es de bra optica, utiliza cabos twiaxiais. Na pr atica s ao pouco utilizados, uma vez que o o padr ao 1000Base-T usa cabos UTP, que s ao mais baratos e podem desempenhar a mesma fun c ao; 1000BASE-ZX e 1000BASE-LH: Esses dois padr oes utilizam transmiss ao em bra monomodo, usando um comprimento de onda de 1550 nan ometros para alcan car dist ancias de at e 70 kil ometros.

http://www.candidatoreal.com

325

http://www.candidatoreal.com

Cap tulo 34

Cabeamento Estruturado
34.1 Par Tran cado

O cabeamento por par tran cado (Twisted pair) e um tipo de a c ao na qual dois condutores s ao enrolados ao redor dos outros para cancelar interfer encias magn eticas de fontes externas e interfer encias m utuas (crosstalk) entre cabos vizinhos. A taxa de giro (normalmente denida em termos de giros por metro) e parte da especica c ao de certo tipo de cabo. Quanto maior o n umero de giros, mais o ru do e cancelado. Foi um sistema originalmente produzido para transmiss ao telef onica anal ogica. Utilizando o sistema de transmiss ao por par de os aproveita-se esta tecnologia que j a e tradicional por causa do seu tempo de uso e do grande n umero de linhas instaladas. Existem dois tipos de cabos par tran cado: Unshielded Twisted Pair - UTP (cabo sem blindagem): S ao quatro pares de os entrela cados e revestidos por uma capa de PVC e o mais usado atualmente e mais barato. igual ao UTP a Shield Twisted Pair - STP (cabo com blindagem): E diferen ca e que possui uma blindagem feita com a malha do cabo, que o protege mais que o UTP. Por em e mais caro, menos usado e necessita de aterramento. Este g enero de cabo, por estar revestido diminui as interfer encias eletromagn eticas externas, protege mais da umidade, etc.

http://www.candidatoreal.com

Considerando que o fator principal para determinar o alcance m aximo poss vel de um sistema e a atenua c ao do sinal ao longo do cabo, foi necess ario estabelecer alguns modos de classica c ao para o cabeamento em par met alico e o respectivo hardware de conex ao. Criou-se ent ao a subdivis ao em uma s erie de categorias e classes por capacidades de desempenho. Nessa classica c ao, uma categoria ou classe de desempenho superior do cabo signica maior eci encia e uma menor atenua c ao. Dentre as categorias destacam-se a 5e e a 6.

34.1.1

Interfer encias nos Cabos de Par Tran cado

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 n veis

326

http://www.candidatoreal.com

em ambas as extremidades do cabo, multiplicando o efeito dessa interfer encia sobre o par transmissor ou receptor. Em raz ao destes n veis de interfer encia poderem debilitar redes de alta velocidade, alguns fabricantes de cabos come caram a apresentar as taxas de NEXT, FEXT, PSNEXT, ELFEXT e PS-ELFEXT para seus cabos CAT5e e Categoria 6. A Figura ?? ilustra essas interfer encias

Figura 34.1: Interfer encias entre os em um cabo de par tran cado O NEXT (Near-End Crosstalk) e a interfer encia no sinal de um par sobre um outro na mesma extremidade do cabo. O PS-NEXT e uma medida de crosstalk mais rigorosa que inclui a soma total de todas as interfer encias que podem ocorrer entre um par e todos os pares adjacentes de um cabo. O FEXT mede a interfer encia de um par em uma extremidade do cabo em outro par na outra extremidade do cabo. Essa medida utiliza opera c ao full duplex para detectar onde os sinais s ao gerados simultaneamente em ambas as extremidades. O ELFEXT (Equal-Level Far-End Crosstalk) mede o FEXT em rela c ao ao n vel do sinal recebido medido no mesmo par. Ele mede basicamente a interfer encia sem os efeitos da atenua c ao. O PS-ELFEXT, uma medida comum em progress ao, mede a soma total de todas as interfer encias dos pares de uma extremidade em um par da outra extremidade sem os efeitos da atenua c ao.

34.2
http://www.candidatoreal.com

Categorias 5e

A letra eno nome da categoria signica Enhanced, ou seja, a categoria 5e representa uma melhoria das caracter sticas dos materiais utilizados na categoria 5, permitindo um melhor desempenho. Pode ser usado para freq u encias de at e 100MHz em redes 1000BASE-T e 1000BASE-TX. Ele e igual a categoria 5, por em com especica c oes adicionais como os par ametros PS NEXT, Balan co, PS ELFEXT, Return Loss. O cabeamento Categoria 5 e normalmente direcionado para o mercado residencial, mas sua utiliza c ao vem caindo devido ao seu custo ser praticamente o mesmo da Categoria 5e. Refor cando essa armativa, nos projetos atuais de infraestrutura e recomendada a utiliza c ao de cabeamento de, no m nimo, Categoria 5e para pequenas redes com poucos servi cos ou que tenham car ater provis orio e Categoria 6 para as redes novas ou de maior porte.

327

http://www.candidatoreal.com

34.3

Categoria 6

A Categoria 6 pode ser vista como um aperfei coamento 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 informa c ao para usu arios nais. Torna-se uma op c ao que oferece alta performance para a distribui c ao horizontal em um sistema estruturado, permitindo suporte para aplica c 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 rela c ao a Categoria 5e. Ela permite ainda suporte para aplica c 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 rela c ao custo x benef cio dos sistemas UTP, bem como facilitar sua instala c ao e opera c ao; garantir a interoperabilidade com os atuais sistemas Categoria 5e; roporcionar uma nova infra-estrutura com capacidade para servi cos futuros (redes de pr oxima gera c ao).

34.4

Categoria 5e vs. Categoria 6

http://www.candidatoreal.com

A principal diferen ca entre a Categoria 5e e a Categoria 6 est a na performance de transmiss ao e na largura de banda estendida de 100MHz da Categoria 5e para 250MHz da Categoria 6. A largura de banda e a medida da faixa de freq u encia que o sinal de informa c ao ocupa. O termo e tamb em usado em refer encia ` as caracter sticas de resposta em freq u encia de um sistema comunica c ao. No sentido mais qualitativo, a largura de banda e proporcional ` a complexidade dos dados transmitidos. J a a performance se traduz em uma menor atenua c ao, melhor NEXT, perda de retorno e ELFEXT, possibilitando uma melhor rela c ao sinal/ru do. Devido a esses fatores (performance e largura de banda), associando uma melhor imunidade ` as interfer encias externas, os sistemas que operam em Categoria 6 s ao mais est aveis em rela c ao aos sistemas baseados na Categoria 5e. Isto signica redu c ao nas retransmiss oes de pacotes, proporcionando uma maior conabilidade e estabilidade para a rede. Outro fato que deve ser considerado e que os requisitos para o link (meio de transmiss ao entre dois pontos, n ao incluindo a conex ao de equipamentos) e canal (meio de transmiss ao m-a-m entre dois pontos no qual existem equipamentos de aplica c oes espec cos conectados) na Categoria 6 s ao compat veis com os da Categoria 5e, fazendo com que os projetistas escolham a Categoria 6, substituindo as redes Categoria 5e. A tabela 34.2 resumo as principais informa c oes sobre as categorias de cabos UTP.

328

http://www.candidatoreal.com

Figura 34.2: Principais Caracteristicas do cabeamento UTP

34.5

Cabea c ao Estruturada Norma EIA/TIA 568

Pode-se denir a cabea c ao estruturado como um sistema baseado na padroniza c ao das interfaces e meios de transmiss ao, de modo a tornar o cabea c ao independente da aplica c ao e do layout. O cabea c ao estruturado descreve ainda os sistemas de rede interna e de campus e sua interconex ao com a planta externa.

34.5.1

Sistemas de Cabeamento Estruturado

Reconhecendo a necessidade de padronizar o Sistema de Cabea c ao Estruturado diversos prossionais, fabricantes, consultores e usu arios reuniram-se sob a orienta c ao de organiza c oes como ISO/IEC, TIA/EIA, CSA, ANSI, BICSI e outras para desenvolver normas que garantissem a implementa c ao do conceito do mesmo. Apesar deste trabalho resultar em diversas normas a mais conhecida no Brasil e a ANSI/TIA/EIA 568-A (vers ao revisada da ANSI/TIA/EIA 568 que inclui as especica c oes para cabea c ao categoria 4 e 5) O conceito de Sistema de Cabea c ao Estruturada baseia-se na disposi c ao de uma rede de cabos, com integra c ao de servi cos de dados e voz, que facilmente pode ser redirecionada por caminhos diferentes, no mesmo complexo de cabea c ao, para prover um caminho de transmiss ao entre pontos da rede distintos. Um Sistema de Cabea c ao Estruturada EIA/TIA 568A e formado por seis subsistemas conforme ilustrado na gura 34.3 e descritos a seguir.

http://www.candidatoreal.com

Entrada do Edif cio; Sala de Equipamentos; Cabea c ao do Backbone; Arm ario de Telecomunica c oes; Cabea c ao Horizontal; Area de Trabalho. As instala c oes de entrada no edif cio fornecem o ponto no qual e feita a interface entre a cabea c ao externa e a cabea c ao intra-edif cio e consistem de cabos, 329

http://www.candidatoreal.com

Figura 34.3: Sistema de Cabea c ao Estruturada equipamentos de conex ao, dispositivos de prote c ao, equipamentos de transi c ao e outros equipamentos necess arios para conectar as instala c oes externas ao sistema de cabos local. As salas de equipamento geralmente alojam equipamentos de maior complexidade que os do arm ario de telecomunica c oes. Qualquer uma ou todas das fun c oes de um arm ario de telecomunica c oes podem ser atendidas por uma sala de equipamentos. Ela tamb em cont em a conex ao cruzada principal ou a conex ao secund aria, usada conforme a hierarquia do sistema de cabea c ao backbone. O subsistema de cabeamento backbone, tamb em chamado de cabeamento vertical, propicia a interliga ca o entre os arm arios de telecomunica c oes, salas de equipamento e instala c oes de entrada. Ele consiste dos cabos de Backbone, cross-connects intermedi ario e principal, termina c oes mec anicas e cabos de conex ao ou de jumper utilizados para a liga c ao de backbone para backbone. Isto inclui: Liga c ao vertical entre os pisos (subidas ou risers) Cabos entre a sala de equipamentos e o local das instala c oes de entrada dos cabos no pr edio Cabos entre os pr edios (inter-pr edios)

http://www.candidatoreal.com

Os cabos homologados na norma EIA/TIA 568A para utiliza c ao como Backbone s ao mostrados na tabela 34.1: Tipos Cabo UTP de 100 ohms (22 ou 24 AWG) Cabo STP (par tran cado blindado) de 150 ohms Fibra Optica Multimodo de 62,5/125 m Fibra Optica Monomodo de 8,5/125 m Dist ancias M aximas 800 metros(2625 p es) Voz 90 metros(295 p es) Dados* 2000 metros (6560 p es) 3000 metros (9840 p es)

Tabela 34.1: Cabos homologados para cabea c ao Backbone e as respectivas dist ancias m aximas 330

http://www.candidatoreal.com

Vale ressaltar que o alcance do Backbone depende da aplica c ao. As dist ancias m aximas especicadas acima s ao baseadas na transmiss ao de voz em UTP e de dados em STP e bras opticas. A dist ancia de 90 metros para STP d a-se para aplica c oes com um espectro de largura de banda de transmiss ao de 20 a 300 MHz. Esta mesma dist ancia tamb em se aplica ao UTP para espectros com largura de banda de 5 a 16 MHz para Cat 3, 10 a 20 MHz para Cat 4 e de 20 a 100 MHz para Cat 5. Outros requisitos de projeto s ao: Topologia em estrela N ao possuir mais do que dois n veis hier arquicos de cross-connects N ao s ao permitidos Bridge Taps Os cabos de conex ao ou de jumper no cross-connect principal ou intermedi ario n ao podem exceder 20 metros (66 p es) Evitar a instala c ao em a reas onde existam fontes de interfer encias eletromagn eticas ou de r adio freq u encia. As guras 34.4 e 34.5 representam o modelo geral de cabeamento backbone em topologia estrela e as respectivas congura c oes limites.

Figura 34.4: Cabeamento Backbone em topologia estrela

http://www.candidatoreal.com

Figura 34.5: Estrutura geral e as congura c oes limites para o subsistema de cabea c ao Backbone

331

http://www.candidatoreal.com

O arm ario de telecomunica c oes e a area dentro de um edif cio que aloja o equipamento do sistema de cabeamento de telecomunica c oes. Inclui as termina c oes mec anicas e/ou cross-connects para o sistema de cabeamento horizontal e backbone. O subsistema de Cabea c ao Horizontal compreende os cabos que v ao desde a Tomada de Telecomunica c oes da Area de Trabalho at e o Arm ario de Telecomunica c oes. O subsistema de Cabea c ao Horizontal possui os seguintes elementos: Cabea c ao Horizontal; Tomada de Telecomunica c oes, tamb em chamado Sa da de Informa c ao; Termina c oes de Cabo; Cross-Connections. Existem tr es tipos de meios de transmiss ao a serem considerados como op c 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 Cabo de Fibra Optica de 2-bras, 62,5/125 m Atualmente o cabo coaxial de 50 ohms e reconhecido como um meio de transmiss ao. Entretanto, n ao recomenda-se a sua utiliza c ao em instala c oes novas. Espera-se a remo c ao deste meio na pr oxima revis ao desta norma. A gura 34.6 apresenta as dist ancias limites para o subsistema de cabe c ao horizontal bem como para o subsistema da area de trabalho que ser a apresentado em seguida.

http://www.candidatoreal.com

Figura 34.6: Dist ancias limite para os subsistemas de cabea c ao horizontal e area de trabalho A norma prev e 100 metros total para a Cabea c ao Horizontal: 90 metros entre o Arm ario de Telecomunica c oes e as Tomadas de Telecomunica c oes (conectores de parede); 10 metros para cabos entre uma esta c ao de trabalho e o conector

332

http://www.candidatoreal.com

de parede, (em geral, 3 metros) mais as conex oes internas do Arm ario de Telecomunica c oes e entre este e os equipamentos ativos (7 metros restantes). Em complemento, cada area de trabalho deve ter no m nimo DUAS posi c oes de sa da de informa c ao: uma para voz e outra para dados.

Figura 34.7: Tomada de Telecomunica c oes Os componentes da area de trabalho estendem-se da tomada de telecomunica c oes at e o equipamento da esta c ao. A a c ao da area de trabalho e projetada para ser de interconex ao relativamente simples, de forma que deslocamentos, expans oes e altera c oes possam ser efetuados com facilidade. Os componentes da area de trabalho s ao: Equipamento da esta c ao: computadores, terminais de dados, telefone, etc.; Cabos de liga c ao - cord oes modulares, cabos de adapta c ao, jumpers de bra; Adaptadores. Nesse contexto, a gura 34.8 ilustra o Sistema de Cabe c ao Estruturada EIA/TIA 568:

http://www.candidatoreal.com

Figura 34.8: Sistema de Cabea c ao Estruturada

34.6

Desempenho do Hardware e Meios de Transmiss ao

A norma EIA/TIA 568 classica o sistema de cabea c ao em categorias levando em considera c ao aspectos de desempenho, largura de banda, comprimento, atenua c ao e outros fatores de inu encia neste tipo de tecnologia. A seguir, 333

http://www.candidatoreal.com

ser ao apresentadas as categorias de cabea c ao com tecnologia de par tran cado UTP e de bra optica.

34.6.1

Cabeamento UTP

Os cabos UTPs s ao compostos de pares de os tran cados 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 classicado em tr es categorias como mostrado abaixo: Categoria 3 - Utiliza cabos com pares de os tran cados s olidos de bitola 24 AWG. Os os AWG24 apresentam uma imped ancia t pica de 100 Ohms, a 16 MHz. Estes cabos s ao utilizados para transmiss ao de sinais at e 16 MHz. Categoria 4 - Utiliza cabos com pares de os tran cados 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 at e uma largura de banda de 20 MHz; Categoria 5 - Utiliza cabos com pares de os tran cados 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 aplica c oes com taxa de transmiss ao elevada, por exemplo, para transmiss ao de imagens e dados a 100 Mbps. A atenua c ao e comumente derivada da medida do sinal de varredura da freq u encia na sa da de um cabo de comprimento maior ou igual a 100 metros (328 ft), ou seja, e a perda de pot encia do sinal no meio, em fun c ao da dist ancia a uma determinada freq u encia. As perdas por diafonia ou NEXT s ao comumente derivadas de medidas de varredura de freq u encia. Por exemplo, na comunica c ao de voz, seus efeitos s ao sentidos por linhas cruzadas, isto e, vozes estranhas que s ao escutadas durante uma liga c ao telef onica. A imped ancia caracter stica do cabo UTP para Cabea c ao Horizontal e Backbone e de 100 Ohms + 15% de 1 MHz at e a maior freq u encia 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 liga c ao s ao: 20 m para cross-connect principal; 20 m para cross-connect intermedi ario;

http://www.candidatoreal.com

6 m no arm ario de telecomunica c oes; 3 m na esta c ao de trabalho. A termina c ao dos cabos horizontais dever a ser feita com material de conex ao da mesma categoria ou superior do cabo UTP utilizado na Cabea c ao Horizontal. Por outro lado, os cabos utilizados para cord oes de liga c ao e jumpers de crossconnect devem pertencer ` a mesma categoria do cabo UTP usado na Cabea c ao Horizontal. Assim, um sistema de cabea c ao UTP s o poder a ser classicado como categoria 3, 4 ou 5 se todos os componentes do sistema de cabea c ao atenderem aos requisitos da categoria.

334

http://www.candidatoreal.com

34.6.2

Fibra Optica

A bra optica pode ser utilizada tanto para a Cabea c ao Horizontal como para a Vertical. A bra para Cabea c ao Horizontal e do tipo multimodo de 62,5/125mm com um m nimo de duas bras. A Cabea c ao Vertical ou Backbone utiliza bras dos tipos multimodo de 62,5/125mm e monomodo formados em grupos de 6 ou 12 bras. As premissas para uma Cabea c ao Backbone com bra opticas, t em sido e continuam a ser baseadas em bras multimodo de 62,5/125mm, devido ` a possibilidade de uso de transmissores opticos com LED nessas bras. Com o r apido crescimento dos requisitos de largura de banda, atualmente, tem-se instalado bras opticas monomodo em adi c ao ` as bras multimodo, para atender os requisitos atuais e futuros. Sistemas de bras monomodo atendem tanto maiores bandas de freq u encias como tamb em t em maior capacidade para longas dist ancias do que as bras opticas multimodo. A Figura 34.9 ilustra os tipos de bras opticas empregados.

Figura 34.9: Tipos de Fibras Opticas Os conectores especicados para bra optica s ao os 568SC. Os conectores pticos seguem um esquema de cores para sua identica o c ao. A cor bege especica o conector/acoplamento multimodo de 62,5/125mm e a cor azul especica o conector/acoplamento monomodo de 8,3/125mm. Para assegurar que os conectores 568SC manter ao uma correta polariza c ao atrav es do sistema de cabea c ao, deve-se ter uma correta orienta c ao do adaptador utilizado. A Cabea c ao Horizontal deve ser instalada de tal forma a casar um n umero mpar da bra com o pr oximo n umero par da bra, por exemplo: bra 1 com bra 2; bra 3 com bra 4 e assim sucessivamente. Cada segmento da cabea c ao deve ser instalado seguindo a orienta c ao invertida (cross-over) do par, de tal modo que bras de n umero mpar s ao posi c ao A numa ponta e posi c ao B na outra ponta, enquanto que bras de n umero par s ao posi c ao B numa ponta e posi c ao A na outra ponta. A orienta c ao invertida (cross-over) deve ser conseguida pelo uso consecutivo da numera c ao das bras (por exemplo 1, 2, 3, 4, ...) em ambos os lados da bra, mas os adaptadores 568SC devem ser instalados de maneira oposta em cada ponta (por exemplo A-B, A-B, ... numa ponta e B-A, B-A, ... na outra ponta). O principal motivo para especica c ao dos conectores de bra 568SC e a padroniza c ao com a norma IEC Europ eia. Hoje s ao muito utilizados conectores ST. Entretanto, e recomendado a substitui c ao gradativa dos conectores ST por 568SC. 335

http://www.candidatoreal.com

http://www.candidatoreal.com

A norma EIA/TIA 568A especica, tamb em, as sa das de telecomunica c oes para bra optica com as seguintes caracter sticas: A caixa de montagem em superf cie deve ser xada diretamente sobre a caixa el etrica, seguindo um padr ao de 4x 4; A capacidade de termina c ao para um m nimo de duas bras, por acoplamento 568SC; Possibilidade de armazenar um m nimo de 1 metro de cabo de duas bras.

34.7

C odigo de Cores para Sistemas de Cabe c ao UTP

A EIA/TIA 568A dene um sistema de codica c ao com quatro cores b asicas, em combina c ao com o branco, para os condutores UTP de 100 Ohms, assim como a ordem dos pares no conector RJ-45, conforme ilustrado na gura 34.10.

Figura 34.10: C odigo de cores EIA/TIA 568A Um outro padr ao de cores da cabea c ao UTP, derivado da EIA/TIA 568A, o padr ao EIA/TIA 568B, n ao muito utilizado nos dias atuais, dene a seq u encia de cores da gura 34.11.

http://www.candidatoreal.com

Figura 34.11: C odigo de cores EIA/TIA 568B

336

http://www.candidatoreal.com

Cap tulo 35

Redes sem o
Os principais elementos de uma rede sem o s ao: Hospedeiros sem o: S ao os sistemas nais que executam as aplica c oes, por exemplo, um celulare, um PDA, um notebook etc; Enlace sem o: Os hospedeiros se conectam ao restante da rede por meio de um enlace de comunica c ao sem o. Tecnologias de enlace sem o t em diferentes taxas de transmiss ao e podem transmitir ` a dist ancias diferentes. Outra caracter stica relevante dos enlaces sem o e a grande taxa de erros de bits, que obriga os protocolos de enlace sem o a empregarem mecanismos mais sosticados de detec c ao de erros e retransmis ao; a respons Esta c ao-base: E avel pelo envio e recebimento dos dados de e para os hospedeiros sem o ` a ela associados. Exemplos de esta c ao-base s ao torres celulares, pontos de acesso de uma rede 802.11 etc. Em geral, as esta c 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 servi cos mais comuns como atribui c ao de endere co e roteamento. Quando isso acontece e dito que a rede est a operando no modo de infra-estrutura. Algumas tecnologias de rede sem o permitem que os dispositivos m oveis se comuniquem diretamente sem a necesidade de uma esta c ao base. Esse modo de opera c ao e chamado ad hoc. Nesse caso os pr orprios hospedeiros sem o devem ser capazes de fornecer servi cos b asicos de atribui c ao de endere co, roteamento, resolu c ao de nomes etc.

http://www.candidatoreal.com

35.1

O padr ao IEEE 802.11

O IEEE 802.11, tamb em conhecido como Wi-Fi, e a tecnologia mais utilizada atualmente para implementa ca o de redes locais sem o. Entre os padr oes 802.11 que mais se destacam est ao o 802.11a, 802.11b e 802.11g. Esses tr es padr oes compartilham caracter sticas como formato do quadro, protocolo de acesso ao meio, capacidade de reduzir taxa de transmiss ao para alcan car dist ancias maiores e a possibilidade de operar tanto em modo de infra-estrutura como em modo ad hoc. As diferen cas entre os padr oes a, b e g se concentra na camada f sica de acordo com a tabela 35.1. 337

http://www.candidatoreal.com

Padr ao 802.11b 802.11a 802.11g

Faixa de Frequ encia 2.4-2.485 GHz 5.1-5.8 GHz 2.4-2.485 GHz

Taxa de Dados at e 11 Mbps at e 54 Mbps at e 54 Mbps

Tabela 35.1: Resumo dos Padr oes 802.11 O padr ao 802.11b e atualmente o mais utilizado devido ` a sua boa rela c ao custo-benef cio. Em seguida est a o padr ao 802.11g, que v em se estabelecendo por permitir opera c ao ` a taxas mais elevadas e dist ancias equivalentes ao padr ao 802.11b. Embora alcance taxas t ao elevadas quanto o o padr ao 802.11g, o padr ao 802.11a alcan ca dist ancias menores. Em contrapartida, o padr ao 802.11a e menos suscet vel ` as interefer encias introduzidas por telefones celulares, microondas e bluetooth, que operam na faixa de 2.4 GHz assim como os padr oes 802.11b e 802.11g.

35.1.1

CSMA/CA

O protocolo de acesso ao meio utilizado pelas redes do padr ao 802.11 e o CSMA/CA (Carrier Sense for Multiple Access with Colision Avoidance ). Esse protocolo se baseia no fato de que e extremamente dif cil detectar colis oes em enlaces sem o, e por isso, tenta evit a-las sempre que poss vel. O CSMA/CA funciona da seguinte maneira: 1. Se a esta c ao perceber que o canal est a ocioso, ela transmitir a o quadro ap os um curto espa co de tempo conhecido como DIFS (Distributed InterFrame Space ); 2. Caso contr ario, a esta c ao escolher a um valor aleat orio de backo e iniciar a a contagem regressiva a partir desse valor assim que detectar o canal ocioso; 3. Quando o contador chegar a zero, a esta c ao transmitir a o quadro inteiro e car a esperando por uma conrma c ao. Caso o receptor receba o quadro corretamente, ele esperar a um tempo curto chamado SIFS (Short InterFrame Space ) e ent ao enviar a a conrma c ao;

http://www.candidatoreal.com

4. Se a esta c ao receber a conrma c ao e tiver outro quadro para transmitir, ent ao ela ela ir a iniciar o protocolo a partir da fase 2. Caso n ao receba nenhuma conrma c ao, voltar a para fase 2 por em ir a escolher por um backo dentro de um intervalo de tempo maior. A caracter stica mais importante do protocolo CSMA/CA e que mesmo que uma esta c ao detecte que o canal est a ocioso, ela adia a transmiss ao por um curto per odo de tempo aleat orio. Se ao detectar o canal ocupado cada uma das esta c oes escolher um valor de backo diferente das demais, ent ao uma delas ir a come car a trasmitir primeiro. As demais, ao escutar o canal ocupado, interromperam seus contadores e aguardarm pelo t ermino da transmiss ao.

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 esta c ao-base. O RTS indica o tempo total necess ario para a transmiss ao de DATA. Ao receber o RTS, a esta c aobase envia um quadro CTS em broadcast para toda a rede. O quadro CTS tem como nalidade 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

Formato do Quadro 802.11

A caracter stica mais marcante de um quadro 802.11 e que ele t em 4 campos de endere co, cada um podendo conter um endere co MAC de 6 bytes. Em redes 802.11 operando no modo infra-estrutura 3 desses campos s ao necess arios (o outro s o e utilizado no modo ad hoc ). O campo endere co 1 cont em o MAC do dispositivo sem o destinat ario, enquanto o endere co 2 cont em o MAC do dispositivo sem o remetente. O campo endere co 3 cont em o endere co MAC do dispositivo Ethernet com o qual a esta c ao base est a conectada, por exemplo, um roteador. A esta c ao-base e, portanto, o dispositivo de camada de enlace respons avel por intermediar a comunica c ao dos dispositivos sem o com a rede cabeada. Al em dos campos de endere co, tamb em merecem destaque os campo CRC (Cyclic Redundancy Check ), que permite detec c ao de erros de bits, e o campo de n umero de sequ encia, que permite que o mecanismo de conrma c ao funcione. O formato completo do quadro 802.11 pode ser visto na gura 35.1.2.

http://www.candidatoreal.com

Figura 35.1: Formato do quadro 802.11

339

http://www.candidatoreal.com

Cap tulo 36

Elementos de Interconex ao de Redes de Computadores


36.1 Repetidores

S ao elementos que interligam dois segmentos de um mesmo dom nio de colis ao. Os sinais el etricos que trafega em ambos sentidos s ao amplicados analogicamente permitindo comunica co es em maiores dist ancias. Portanto, estes elementos operam na CAMADA F ISICA do modelo OSI. Estes equipamentos deixaram de ser largamente utilizados devido ao fato dos hubs ativos, switches, gateways e roteadores terem passado a exercer tamb em a fun c ao de amplica c ao.

36.2

Hubs

Este e um termo gen erico para CONCENTRADORES. Eles s ao elementos de CAMADA F ISICA do modelo OSI. Portanto, todos os n os conectados a um hub, ou a um conjunto de hubs interconectados, fazem parte de um mesmo dom nio de colis ao (topologia barramento). Desta forma, cada n o deve ser capaz de detectar colis oes e decidir o momento de realizar transmiss oes e/ou retransmiss oes. Duas caracter sticas importantes s ao: como um hub dene um u nico dom nio de colis ao comum a todas as portas, a princ pio ele n ao permite a interconex ao de segmentos que utilizam tecnologias distintas (taxas, protocolo de camada 2, etc.); um hub n ao implementa nenhum tipo de controle de acesso, e sim encaminha os bits de uma porta para as demais. Estes concentradores podem ser classicados em quatro grupos: Hubs Passivos: hubs que n ao implementam a fun c ao de repeti c ao, ou seja, n ao funcionam como repetidores. Estes equipamentos n ao necessitam de nenhuma alimenta c ao el etrica. Eles n ao possuem nenhum m odulo microprocessado. Um exemplo s ao os patch painels;

http://www.candidatoreal.com

340

http://www.candidatoreal.com

Hubs Ativos: hubs que implementam a fun c ao de repeti c ao. Assim como os passivos, eles n ao possuem nenhum m odulo microprocessado. A grande maioria dos hubs utilizados ultimamente pertence a este grupo; Hubs Inteligentes: hubs que possuem m odulos microprocessados que realizam monitoramento e diagn ostico. As funcionalidades dependem do projeto do fabricante, por exemplo, eles podem: detectar e se preciso desconectar da rede esta c oes com problemas, evitando que uma esta c ao faladora prejudique o tr afego ou mesmo derrube a rede inteira; detectar e impedir tentativas de invas ao ou acesso n ao autorizado ` a rede; monitorar/informar o n vel de utiliza c ao de cada porta; e possibilitar opera c ao de taxas diferentes entre as portas (ex. 10Mbps e 100Mbps). Geralmente estes hubs tamb em s ao classicados como ativos; Hubs Empilh aveis: hubs que possuem portas denominadas Up-Links. Estas portas permitem o empilhamento de hubs atrav es de CABOS DIRETOS. Na pr atica, qualquer hub pode ser empilhado a outro, a diferen ca e que no caso de hubs n ao-empilh aveis (sem porta do tipo Up-Link) deve ser utilizado um CABO CROSS-OVER.

36.3

Switches

Estes s ao elementos de CAMADA DE ENLACE do modelo OSI tamb em denominados de COMUTADORES. Geralmente eles funcionam tamb em como repetidores. Diferentemente dos hubs, os switches dividem a rede em dom nios de colis ao (um dom nio por porta). Desta forma, o switch ao comutar um quadro de um dom nio para outro deve ser capaz de implementar algum tipo de controle de acesso para ser poss vel detectar colis oes e decidir o momento de realizar transmiss oes e/ou retransmiss oes. Uma outra caracter stica importante presente no switches e a possibilidade deles interconectarem segmentos com tecnologias distintas. Ou seja, este tipo de comutador pode ser multiprotoloco (exige convers ao de um tipo de quadro em outro - ex. Ethernet em FDDI). Alguns switches tamb em s ao capazes de administrar m ultiplas taxas de transmiss ao. Quando ele e capaz de detectar automaticamente a taxa de transmiss ao utilizada em uma determinada porta e se auto congurar para esta taxa, diz-se que este switch e AUTO-SENSING.

http://www.candidatoreal.com

As comuta c oes s ao realizadas por meio de consultas a tabelas din amicas que armazenam endere cos f sicos, e seus respectivos, n umero da interface (porta) e hor ario da u ltima comuta ca o. Os switches s ao equipamentos plug-and-play devido ao fato de sua tabela de comuta c ao ser preenchida de forma autom atica ao longo do funcionamento da rede. Este preenchimento acontece da seguinte forma. Inicialmente a tabela se encontra vazia. Quando um quadro chega para ser comutado, e o switch ao perceber que n ao h a nenhuma entrada na tabela para o endere co f sico de destino, ele replica este quadro em todas as outras interfaces (portas). Todas as vezes que um n o envia um quadro a qualquer outro n o, seu endere co f sico e registrado na tabela juntamente com o n umero da interface onde ele est a conectado ao switch.

341

http://www.candidatoreal.com

Todo switch realiza no m nimo duas opera c oes b asicas utilizando sua tabela de comuta c ao. A FILTRAGEM que e a capacidade de determinar se um quadro deve ser repassado para alguma interface ou se ele deve ser descartado. E o REPASSE que e a capacidade de determinar para qual interface o quadro deve ser dirigido. Estes comutadores podem operar em duas formas distintas. S ao elas: Store-and-forword - a seq u encia de comuta c ao e a seguinte: o quadro e recebido na porta de entrada; este quadro e armazenado em um buer interno; e realizada a ltragem/repasse; o quadro e copiado no buer da porta de sa da. Este tipo de comuta c ao e geralmente implementado por elementos de hardware e software (principalmente) em conjunto; Cut-Through (Acelerada ou De Corte) - a seq u encia de comuta c ao e a seguinte: ` a medida que o quadro vai sendo recebido de forma seq uencial na porta de entrada, assim que os primeiros bits que denem o endere co f sico de sa da acabam de chegar, a ltragem/repasse e realizada e ent ao imporeste quadro j a vai sendo copiado no buer da porta de sa da. E tante notar que o quadro j a come ca a ser copiado no buer de sa da antes mesmo dele ter sido totalmente recebido na porta de entrada. Nos casos onde os bueres de sa da est ao geralmente vazios (sem la de transmiss ao), esta forma de opera c ao traz benef cios consider aveis no desempenho da comuta c ao. Este tipo de comuta c ao e geralmente implementado por somente elementos de hardware.

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 diferen ca e que os switches s ao usados com maior freq u encia para conectarem computadores individuais, enquanto as bridges s ao mais usadas para conectarem redes. Contudo, todas as caracter sticas dos switches apresentadas na se c ao anterior tamb em est ao presentes nas bridges.

36.5
http://www.candidatoreal.com

Roteadores

S ao elementos da CAMADA DE REDE do modelo OSI. Eles tamb em geralmente funcionam como repetidores, ou seja, regeneram os sinais recebidos antes de realizarem a comuta c ao. Assim como os switches e bridges, os roteadores tamb em s ao COMUTADORES, por em com uma complexidade muito maior. O que reete no tempo de comuta c ao e tamb em nos recursos dispon veis. 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 comuta c ao e mais f acil, visto que a rota eu nica, o que nem sempre acontece no caso das roteadores. Uma caracter stica muito importante dos roteadores e a capacidade

342

http://www.candidatoreal.com

de interconectar redes que utilizam tecnologias diferentes (arquiteturas diferentes). Isto s o e poss vel quando o roteador e capaz de entender e converter um datagrama de uma tecnologia em outro datagrama de outra tecnologia (ex. IP e ATM). Outras caracter sticas tamb em importantes s ao: a comuta c ao n ao se limita a uma SPANNING-TREE (grafo sem loopings - caminhos u nicos entre quaisquer dois n os) como os comutadores de camada de enlace; possibilita prote c ao contra broadcast em excesso; possibilita prote c ao de rewall; e n ao e um equipamento plug-and-play tendo em vista que os endere cos de rede s ao l ogicos (n ao-xos) e n ao f sicos (xos) e devem ser programados de alguma forma; e a comuta c ao e necessariamente realizada no modo store-and-forword (nunca no modo cutthrough).

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 s ao exatamente os roteadores multiprotocolo. Ou seja, s ao elementos de CAMADA DE REDE do modelo OSI. 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 aplica c 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 poss vel converter um protocolo em outro.

http://www.candidatoreal.com

343

http://www.candidatoreal.com

Cap tulo 37

Redes Multim dia


37.1 Qualidade de Servi co

Um uxo e uma sequ encia de pacotes de uma origem at e um destino. Em uma rede orientada a conex oes os pacotes de um determinado uxo seguem uma mesma rota, enquanto em uma rede n ao orientada a conex oes, eles podem seguir rotas diferentes. Nesse contexto, Qualidade de Servi co (QoS) pode ser denido em termos do conjunto de requisitos de um determinado uxo de pacotes. Os requisitos mais comuns s ao os seguintes: Conabilidade: Garantia da entrega dos pacotes e da integridade dos dados transmitidos. Retardo: Atraso total na transmiss ao de um pacote da origem at e o destino. a varia Flutua c ao (Jitter ): E c ao do atraso entre os pacotes. Em outras palavras, e a varia ca o do intervalo de tempo entre os recebimento de pacotes subsequentes de um determinado uxo. Largura de Banda: Taxa com a qual os dados s ao transmitidos. A rigidez dos requisitos das aplica c oes mais comuns e mostrada na tabela a 37.1: No que diz respeito ` a conabilidade, por exemplo, pode-se dizer que o servi co de correio eletr onico e mais sens vel do que uma aplica c ao de v deo sob demanda, j a que o corrompimento dos dados pode invalidar por completo uma mensagem. Em uma aplica c ao de v deo sob demanda pode conviver com alguns pacotes por esse motivo com erro sob pena da perda parcial da qualidade do v deo. E que em redes TCP/IP aplica c oes de multim dea, geralmente, utilizam servi cos da camada de transporte baseados em UDP e n ao em TCP, evitando os atrasos gerados pelo estabelecimento de conex ao, conrma c oes e retransmiss oes. No entanto, para alcan car qualidade de servi co de forma eciente e segura e necess ario combinar v arias t ecnicas que podem ir al em da escolha de um protocolo. Exemplos de t ecnicas para alcan car QoS s ao:

http://www.candidatoreal.com

344

http://www.candidatoreal.com

Aplica c ao Correio Eletr onico Transfer encia de Arquivos Acesso ` a Web Login Remoto Audio por demanda V deo por demanda Telefonia Videoconfer encia

Conabilidade Alta Alta Alta Alta Baixa Baixa Baixa Baixa

Retardo Baixa Baixa M edia M edia Baixa Baixa Alta Alta

Jitter Baixa Baixa Baixa M edia Alta Alta Alta Alta

Largura de Banda Baixa M edia M edia Baixa M edia Alta Baixa Alta

Tabela 37.1: Rigidez dos Requisitos das Alica c oes de Rede Superdimensionamento: Consiste em fornecer tanta capacidade de buers e largura de banda de forma que dicilmente os pacotes ser ao descartados ou sofrer ao atrasos. Logicamente essa e a solu c ao tem um custo altamente elevado; Armazenamento em Buers: Consiste em armazenar os uxos em buers no lado do receptor e entreg a-los apenas no momento oportuno suavizando o jitter. Essa t ecnica n ao inclui altera c oes na largura de banda, por em aumenta o atraso e exige buers maiores do lado do receptor. Muitos reprodutores de audio e v deo se utilizam dessa t ecnica; Moldagem de Tr afego: Muitas vezes uma m aquina pode transmitir pacotes com espa camento n ao uniforme, o que pode gerar congestionamento na rede. A moldagem de tr afego est a relacionada ` a regulagem da taxa m edia de transmiss ao dos dados. Para realizar tal tarefa s ao utilizadas t ecnicas como o algoritmo do balde furado (leaky bucket ) ou o algoritmo do balde de s mbolos (token bucket ); Reserva de Recursos: Se for poss vel fazer com que todos os pacotes de um uxo sigam a mesma rota, torna-se poss vel reservar recursos para garantir que a capacidade necess aria estar a dispon vel. Portanto, As aplica c oes s ao respons aveis por denir os seus requisitos quanto a utiliza c ao dos recursos de CPU, espa co em buers e largura de banda. O conjunto desses par ametros e chamado especica c ao de uxo, e e com base nele que os roteadores ao longo da rota decidem se v ao ou n ao aceitar o uxo. Ao longo do caminho da origem ao destino, os requisitos da especica c ao de uxo podem ser alterados para baixo (ex: diminui c ao da largura de banda, diminui c ao do pacote de tamanho m aximo etc.). Ao m 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; Enleiramento Priorit ario: Utiliza c ao de m ultiplas las, cada uma com uma prioridade asociada. Cada pacote que chega e direcionado ` a uma das las de acordo com sua classe. Os pacotes a serem transmitidos s ao sempre aqueles da la de maior prioridade que ainda n ao est a vazia. Algumas 345

http://www.candidatoreal.com

http://www.candidatoreal.com

implementa c oes permitem a interrup c ao de uma transmiss ao de um pacote de prioridade mais baixa para transmiss ao de um pacote de prioridade masi alta (preemp c ao). Varredura C clica e WQF: Na varredura c clica os pacotes s ao classicados e colocados em las de sa da da mesma forma que no enleiramento priorit ario. No entanto, nessa disciplina o escalonador alterna o direito de transmitir de forma c clica a cada per odo (Ex: la 1, la 2, la 3, la 1, la 2, la 3 etc.). No WQF (Weighted Fair Queuing ou Enleiramento Justo Ponderado) o direito de transmitir e ponderado entre as las. (Ex: la 1, la 1, la 1, la 2, la 3, la 3, la 1, la 1, la 1, la 2, la 3, la 3 etc.).

37.2

Servi cos Integrados - IntServ

A arquitetura de servi cos integrados tem duas caracter sticas fundamentais que s ao a reserva de recursos e o estabelecimento de chamada. O Intserv e fornecer qualidade de sevi co a uxos individuais garantindo que, antes do estabelecimento de uma sess ao, todos os roteadores entre a origem e o destino possuem recursos sucientes para garantir o atendimento das exig encias de Qos. As etapas envolvidas no processo de aceita c ao da chamada s ao as seguintes: Caracteriza c ao do Tr afego e Especica c ao de Qos desejada: Para que um roteador dena se pode ou n ao atender as exig encias de uma sess ao ele precisa conhecer a exig encias de QoS (Rspec) e as caracter sticas de tr afego (Tspec). Tspec e Rspec s ao chamados especica c oes de uxo owspecs ; Sinaliza c ao para o estabelecimento da chamada: A Tspec e o Rspec devem ser transportados para todos os roteadores nos quais ser ao reservados recusos; Aceita c 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 sinaliza c ao preferido Ele foi especialmente desenvolvido para servi cos integrados de Internet e permite que as pr oprias aplica c oes requeiram da rede reservas de recursos necess arios para seus diversos servi cos. O RSVP e executado nos hosts, para denir as especica c oes de uxo, e nos roteadores, para propaga c ao das especica c oes pela rota e para manuten c ao do estado da conex ao. Outra caracter stica importante na arquitetura IntServ s ao as classes de servi co oferecidos. As classes s ao os modelos de qualidade de servi co oferecidos. As duas grandes classes de servi co do intServ s ao: (i)Servi co de Qualidade Garantida e (ii) Servi co 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 uxos 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 servi co. 346

http://www.candidatoreal.com

http://www.candidatoreal.com

37.3

Servi cos Diferenciados - DiServ

A arquitetura de servi cos diferenciados (Diserv) tem por objetivo prover diferencia c ao de servi cos mais escal avel e ex vel. Para isso o DiServ prop oe que as opera c oes de controle mais complexas devem ser feitas pela borda da rede, aliviando a sobrecarga no n ucleo da rede. Dessa forma, a arquitetura Intserv consiste de dois elementos funcionais que s ao: Fun c oes de Borda: Entende-se por borda como o primeiro dispositivo habilitado a DiServ (host ou roteador) no caminho entre a origem e o destino. A fun c ao dos dispositivos de borda s ao a classi c ao dos pacotes e o condicionamento do tr afego. A classica c ao do tr afego consiste na marca c ao do campo DS (Dierentiated Service), que na verdade e o campo ToS (Type of Service) do pacote IP. O condicionamento do tr afego est a relacionado com a limita c ao de par ametros pr e-acordados como taxa m edia de envio, taxa de pico etc. Fun c ao Central: Quando um pacote marcado com DS chega a um roteador habilitado a DiServ ele e repassado de acordo com o seu comportamento de salto (per-hop behavior - PHB) associado a sua classe. O PHB inuencia na maneira como os buers e a largura de banda s ao compartilhados entre as classes de tr afego no roteador. Os dois tipos de PHB denidos at e 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 congurada, e o PHB de envio assegurado (assured forwarding AF), que permite cria c ao de regras de descarte preferencial entre as classes. Um aspecto de fundamental import ancia na arquitetura DiServ e que o comportamento de salto dos pacotes depende u nica e exclusivamente de sua classe de tr afego.

http://www.candidatoreal.com

347

http://www.candidatoreal.com

Cap tulo 38

Redes X.25 e Frame Relay


38.1 X.25

http://www.candidatoreal.com

O conjunto de protocolos X.25 foi projetado no nal da d ecada de 70. Nessa epoca, os PCs e as esta c oes de trabalho n ao estavam amplamente disseminados e n ao dispunham de muito suporte para rede. Basicamente, eram usados os chamados terminais burrospara acessarem os mainframes atrav es das redes de computadores. Dessa forma, para dar o suporte necess ario aos terminais burrosos projetistas da X.25 decidiram injetar intelig encia na rede. Como sabemos hoje, essa losoa e oposta ` a losoa da Internet, que coloca muito da complexidade nos sistemas nais e espera o m nimo dos servi cos de camada de rede. Outra parte importante do contexto tecnol ogico do nal dos anos 70 e do come co dos anos 80 se refere aos enlaces f sicos. Naquela epoca, quase todos os enlaces terrestres eram de cobre, apresentavam ru dos e estavam propensos a erros. Os enlaces de bra optica ainda n ao tinham sa do dos laborat orios de pesquisa. As taxas de erros de bits sobre enlaces de longa dist ancia eram muitas ordens de grandeza maiores do que s ao agora sobre o enlaces opticos. Devido ` as altas taxas de erros, tinha sentido projetar o protocolo X.25 com recupera c ao de erros em cada enlace. Em particular, sempre que um protocolo X.25 envia um pacote, ele conserva uma c opia do pacote at e que o comutador seguinte (na rota do pacote) devolva um reconhecimento, indicando que o pacote foi recebido livre de erros. A recupera c ao de erros por enlace reduz signicativamente a taxa de transmiss ao, o que era consistente com o contexto tecnol ogico da epoca altas taxas de erros de enlace e terminais n ao inteligentes. Al em disso, o projeto da X.25 tamb em pede controle de uxo por enlace.

38.2

Frame Relay

Projetada no nal da d ecada de 80 e amplamente disseminada na d ecada de 90, a Frame Relay e, em v arios aspectos, uma X.25 de segunda gera c ao. Como a X.25, ela usa circuitos virtuais, opera na camada 2 do modelo OSI e usa multiplexa c ao estat stica e compartilhamento de porta. Contudo, como se baseia em enlaces de bras opticas, ela naturalmente foi projetada para taxas de erros muito mais baixas. A ess encia da Frame Relay e um servi co de comuta c ao de pacotes de 348

http://www.candidatoreal.com

circuitos virtuais sem recupera c ao de erros e sem controle de uxo. Quando um comutador Frame Relay detecta um erro em um pacote, seu u nico curso de a c ao poss vel e descartar os dados. Isso resulta em uma rede com carga de processamento mais baixas e taxas de transmiss ao mais altas que a X.25, mas exige sistemas nais inteligentes para garantir a integridade dos dados. Embora o protocolo Frame Relay tenha sido desenvolvido para ser o mais simples poss vel, e a sua premissa b asica determinar que os eventuais problemas de erros da rede deveriam ser resolvidos pelos protocolos dos equipamentos de usu ario, surgiram ao longo do tempo necessidades que levaram os org ao de padroniza c ao a denir mecanismos de sinaliza c ao para tr es tipos de situa c oes: Aviso de congestionamento Aviso Expl cito de Congestionamento Aviso Impl cito de Congestionamento Elegibilidade para Descarte Estado das conex oes Sinaliza c ao SVC Entretanto, a implementa c ao desses mecanismos e opcional e, embora a rede seja mais eciente com a sua ado c ao, os equipamentos que n ao os implementam devem atender pelo menos as recomenda c oes b asicas do Frame Relay. Atualmente, na maioria dos casos, as redes Frame Relay s ao de propriedade de um provedor de servi cos de rede p ublica (por exemplo AT&T, Sprint e etc) e seu uso e contratado em base multianual por clientes empresariais. Hoje, a Frame Relay e usada de maneira extensiva para permitir que LANs localizadas em diferentes ambientes enviem dados ao mesmo tempo a velocidades razoavelmente altas. As redes Frame Relay podem usar circuitos virtuais comutados (switched virtual circuits SVCs) ou circuitos virtuais permanentes (permanent virtual circuits PVCs).

38.2.1

Estrutura do Frame

O protocolo da Frame Relay utiliza um frame com estrutura comum e bastante simplicada, conforme demonstram a gura e a descri c ao a seguir:

http://www.candidatoreal.com

Figura 38.1: Estrutura do Frame

Figura 38.2: Estrutura do Cabe calho

349

http://www.candidatoreal.com

Flags - indicam o in cio e o m de cada frame. composto Cabe calho - carrega as informa c oes de controle do protocolo. E por 2 bytes com as seguintes informa c oes: DLCI (Data Link Connection Identier), com 10 bits, representa o n umero (endere co) designado para o destinat ario de um PVC dentro de um canal de usu ario, e tem signicado local apenas para a porta de origem (vide gura 38.2); C/R (Command / Response), com 1 bit, e usado pela aplica c ao usu aria; FECN (Foward Explicit Congestion Notication), com 1 bit, e usado pela rede para informar um equipamento receptor de informa c oes que procedimentos de preven c ao de congestionamento devem ser iniciados; BECN (Backward Explicit Congestion Notication), com 1 bit, e usado pela rede para informar um equipamento transmissor de informa c oes que procedimentos de preven c ao de congestionamento devem ser iniciados; DE (Discard Eligibility Indicator), com 1 bit, indica se o frame pode ser preferencialmente descartado em caso de congestionamento na rede; EA (Extension Bit), com 2 bits, e usado para indicar que o cabe calho tem mais de 2 bytes, em caso especiais; Informa c ao de usu ario - cont em as informa c oes da aplica c ao usu aria a serem transportadas atrav es da rede Frame Relay. FCS - o FCS (Frame Check Sequence) representa o CRC padr ao de 16 bits usado pelo protocolo Frame Relay para detectar erros existentes entre o Flag de in cio do frame e o pr oprio FCS, e pode ser usado apenas para frames com at e 4096 bytes.

38.2.2

Envio de um datagrama IP de Ethernet para Frame Relay e Ethernet

http://www.candidatoreal.com

Considere a transmiss ao de um datagrama IP entre dois sistemas nais 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 tamb em calcula o CRC (2 bytes) e insere o valor resultante no campo CRC. O campo de camada de enlace (2 bytes) cont em um campo de n umero de circuito virtual de 10 bits. A placa de interface obt em 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 servi cos 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

CV do quadro para rote a-lo at e o pr oximo comutador (ou at e o roteador de destino). O roteador de destino remove os campos frame relay e, ent ao, passa o datagrama pela Ethernet para o hospedeiro de destino. Se os segmentos TCP forem perdidos ou chegarem fora de ordem, o TCP dos hospedeiros comunicantes corrigir a o problema.

38.3

Interliga c ao de Redes LAN

A interliga c ao das redes LAN de v arios escrit orios compondo uma rede WAN, e uma aplica c ao t pica 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, solicita c ao de usu arios e aplica c oes clientes e respostas de aplica c oes servidoras, e por rajadas (bursty), quando grandes quantidades de dados s ao transferidas de forma n ao cont nua. O Frame Relay, atrav es 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 comunica c ao de um escrit orio com todos os outros e poss vel sem a complexidade do uso de m ultiplas portas e m ultiplos circuitos dedicados.

Figura 38.3: Interliga c ao de lans com Frame Relay Al em disso, o uso dos circuitos virtuais do Frame Relay para compor a rede permite tempos de provisionamento muito menores e recongura c ao de rede ou aumento de banda com maior facilidade.

38.3.1
http://www.candidatoreal.com

Voz sobre Frame Relay (VoFR)

A tecnologia Frame Relay tamb em possui facilidades para o transporte de Voz, fax e sinais de modens anal ogicos atendendo os requisitos de atraso (delay) espec cos para esse tipo de aplica c ao. Para a maioria dos administradores de rede de Voz e dados, a possibilidade de transportar a Voz proveniente de PABXs, sinais de fax e de modens, e dados atrav es da mesma porta Frame Relay e usando procedimentos comuns de gerenciamento e manuten c ao atende os requisitos de redu c ao de custos e de complexidade das grandes redes corporativas. Deve-se entretanto levar em considera c ao a qualidade do servi co prestado pela rede multisservi cos de terceiros para que o resultado nas aplica c oes de Voz, fax e modem possam ainda atender os requisitos aplic aveis aos servi cos convencionais.

351

http://www.candidatoreal.com

Figura 38.4: Voz sobre Frame Relay

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 Implementa c ao (IAs), desenvolveram padr oes para interligar equipamentos dessas tecnologias atrav es 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 t pico ocorre quando a rede Frame Relay tem com n ucleo uma rede ATM, para otimizar ainda mais o uso de banda e a seguran ca. A gura a seguir apresenta esta solu c 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 t pico ocorre quando o usu ario possui redes Frame Relay em alguns escrit orios que devem se interligar com a rede ATM da matriz. A gura a seguir apresenta esta solu c ao.

38.3.3

CIR (Taxa de Informa c ao Comprometida)

http://www.candidatoreal.com

A Frame Relay faz uso de um mecanismo inovador chamado de taxa de informa c ao comprometida (committed information rate - CIR), de forma que cada CV possui um CIR. Em termos gerais, a CIR representa um compromisso que a rede Frame Relay assume de dedicar ao CV uma taxa de transmiss ao determinada pela CIR. Pode-se dizer que, em muitos aspectos, o servi co CIR e um predecessor do servi co diferenciado da Internet. Nas redes Frame Relay, os pacotes podem pertencer a um de dois n veis de prioridade: alta ou baixa. Atribui-se prioridade aos pacotes marcado um bit especial no cabe calho do pacote o denominado bit de descarte preferencial (discard eligibility- DE) -, com 0 para alta prioridade e 1 para baixa prioridade. Se um quadro for de alta prioridade, a rede dever a entregar o pacote no destino sob todas e quaisquer condi c oes de rede, incluindo per odos de congestionamento e falha de enlaces de backbone. Contudo, para pacotes de baixa prioridade, permite-se que a rede descarte o quadro quando ela estiver congestionada. Na verdade, sob condi c oes extremas, a rede pode at e descartar pacotes de alta prioridade.

352

http://www.candidatoreal.com

A CIR, nesse contexto, est a envolvida no processo de marca c ao dos pacotes com valores 1 ou 0. Entretanto alguns conceitos devem ser discutidos para se entender exatamente como a CIR funciona. A taxa de acesso e a taxa de acesso ao enlace, isto e, a taxa do enlace do roteador fonte at e o comutador de borda Frame Relay. Essa taxa e freq uentemente 64Kbps, mas m ultiplos inteiros de 64 Kbps at e 1544 Mbps tamb em s ao comuns. Chamemos essa taxa de R. O comutador de borda e respons avel pela marca c ao dos pacotes que chegam do roteador fonte. Para fazer a marca c ao, o roteador de borda examina os hor arios de chegada dos pacotes vindos do roteador fonte em intervalos xos de tempo, chamados de intervalos de medi c ao e designados por Tc. Dessa forma, a cada CV que prov em do roteador fonte e atribu da uma CIR, que e expressa em unidades de bits/seg. A CIR nunca e maior que R, a taxa de acesso. Os clientes pagam por uma CIR espec ca; quanto maior a CIR, maior e o valor pago ao provedor. Se o CV gerar pacotes a uma taxa menor do que a CIR, ent ao todos os pacotes s ao marcados como de alta prioridade. Contudo, se a taxa na qual a CV gerar pacotes exceder a CIR, ent ao a fra c ao de pacotes do CV que excederem a taxa ser a marcada como pacotes de baixa prioridade. Mais especicamente, a cada intervalo d medi c ao Tc, para os primeiros CIR.Tc bits que o CV enviar, o comutador de borda marca os pacotes correspondentes como sendo de baixa prioridade. Por exemplo, suponha que o provedor de servi co Frame Relay use um intervalo de medi c ao Tc=500 ms. Suponha que a taxa de enlace de acesso seja R=64 Kbps e que a CIR atribu da ` aquele CV em particular seja 32 Kbps. Suponha tamb em, para facilitar, que cada pacote Frame Relay consista em exatamente L=4000 bits. Isso signica que a cada 500 ms o CV pode enviar CIRxTc/L=4 pacotes como pacotes de alta prioridade. Todos os pacotes adicionais dentro do intervalo de 500 ms s ao marcados como pacotes de baixa prioridade. Devemos ter em mente que muitos CVs podem provir do roteador fonte e interessante notar que se permite que a soma transitar pelo enlace de acesso. E das CIRs para todos esses CVs exceda a taxa de acesso R. Isso e chamado de excesso de reserva. Como o excesso de reserva e permitido, um enlace de acesso pode transmitir pacotes de alta prioridade a uma taxa de bits correspondente que esceda a CIR (mesmo que cada CV individual envie pacotes priorit arios a uma taxa que n ao exceda a CIR).

http://www.candidatoreal.com

353

http://www.candidatoreal.com

Cap tulo 39

Redes Virtuais Locais


39.1
39.1.1

VLANs
Deni c ao

Uma Virtual Lan, ou simplesmente vlan, e um m etodo para se criar redes l ogicas independentes dentro de uma rede f sica. As vlans facilitam a administra c ao da rede separando logicamente segmentos l ogicos de uma lan, por exemplo, departamentos distintos. As vlans reduzem o dom nio de broadcast, diminuindo o tr afego na rede. Ou seja, os pacotes ARP broadcast enviados por um host A que deseja descobrir o endere co MAC de um host B, ambos de uma mesma vlan V, n ao ser ao escutados por um host C que n ao perten ca a vlan V. Uma vlan e uma subrede na qual os computadores n ao necessariamente precisam estar conectados no mesmo segmento f sico. O que torna as vlans extremamente exiveis e o fato de os administradores da rede podem congurar as vlans atrav es de software.

39.1.2

Protocolo 802.1q

http://www.candidatoreal.com

As vlans operam na camada de enlace do modelo de refer encia OSI, no entanto, os administradores de rede geralmente conguram uma vlan para mapear diretamente uma rede ou subrede IP, o que d a a impress ao de que esta e uma tecnolgia que envolve a camada de rede. Atualmente, o protocolo IEEE 802.1q e o mais popular para implementa c ao de vlans. Para desenvolver a tecnologia de vlans, a tarefa mais d cil enfrentada pelo comit e 802 do IEEE foi denir como armazenar o identicador da vlan dentro de um quadro Ethernet. Depois de muita discurs ao o comit e fez o impens avel e mudou o cabe calho do quadro Ethernet, adicionando uma tag VLAN. Uma mudan ca do cabe calho Ethernet s o foi poss vel pois o comit e 802 mostrou que o campo VLAN s o e realmente utilizado pelos switches e pontes e n ao pelas m aquinas dos usu arios. Assim, a sa da para o problema foi a seguinte: se a origem n ao gerar a tag VLAN, o primeiro switch ou bridge que for capaz de identicar a VLAN para o quadro acrescentar a o quadro, enquanto o u ltimo dispositivo do percurso remover a a tag para entregar o quadro ` a maquina de 354

http://www.candidatoreal.com

destino. Embora muitas das novas placas Ethernet j a sejam compat veis com o padr ao 802.1q, geralmente o quadro e marcado com a tag vlan por um switch. Dessa forma, apenas os switches precisam ser congurados. Na verdade, o padr ao 802.1q adicionou ao cabe calho Ethernet um campo chamado Tag Protocol ID (TPID) e um campo Tag Control Information (TCI), que por sua vez e subdividido em tr es partes que s ao CFI, Pri, e VID. Um quadro 802.1q e reconhecido quando o campo TPID possui o valor 0x8100. O campo CFI e utilizado para compatibiliza c ao com redes Token Ring, enquanto o campo VID e o identicador de vlan de fato. O campo Pri possui 3 bits e e utilizado para implementar mecanismos de prioridade no n vel de enlace. O modo como deve ser utilizado o campo Pri e denido no padr ao IEEE 802.1p. O novo cabe calho do Ethernet pode ser visto na gura 39.1.2.

Figura 39.1: Frame 802.1q

http://www.candidatoreal.com

355

http://www.candidatoreal.com

Cap tulo 40

Redes de Circuito Virtuais


40.1 Redes ATM

Uma rede ATM (Asyncronous Transfer Mode) tem como principal caracter stica o fato de ser orientada a conex ao, Portanto, antes do in cio da transmiss ao de dados e necess ario que todos os roteadores entre a origem e o destino registrem a exist encia 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 sinaliza c ao utilizado para estabelecimento das conex oes e o Q.2931. A id eia b asica do ATM e transmitir as informa c oes em pequenos pacotes chamdos c elulas. As c elulas ATM possuem o tamanho xo de 53 bytes, sendo 5 para o cabe calho e 48 para a carga u til. O fato das c elulas terem tamanho xo permite que todo o roteamento das c elulas seja feito via hardware. A estrutura de uma c elula ATM pode ser vista na gura (est a faltando) ??. VPI (Virtual Path Identier ): representa o n umero da rota virtual at eo destinat ario da informa c ao u til; VCI (Virtual Channel Identier ):representa o n umero do canal virtual dentro de uma rota virtual espec ca; PT (Payload Type ): identica o tipo de informa c ao que a c elula cont em: de usu ario, de sinaliza c ao ou de manuten c ao;

http://www.candidatoreal.com

CLP (Cell Loss Priority ): indica prioridade da c elula caso sejam necess arios descartes por motivos de congestionmento; HEC (Header Error Correction ): Permite corre c ao de erros de um bit e detec c ao de erros de mais de um bit. Os campos VPI e VCI s ao utilizados no processo de comuta c ao das c elulas. importante destacar que os valores de VPI e VCI s E ao alterados a medida que a c elula trafega pela rede. Por ser baseada em circuitos virtuais, a rede ATM garante a ordena c ao na entrega das c elulas. No entanto, n ao e capaz de garantir a entrega. Quando um detecta um erro de mais de um bit a partir do campo

356

http://www.candidatoreal.com

HEC, a c elula e descartada. As redes ATM t em seu pr oprio modelo de refer encia, diferente do modelo OSI e do modelo TCP/IP. O ATM e um modelo tridimensional, sendo composto n ao s o por camadas, mas tamb em por planos, como mostrado na gura 40.1.

Figura 40.1: Modelo de Refer encia ATM O plano de usu ario e respons avel pelo transporte de dados, pelo uxo de controle e pela corre c ao de erros, enquanto o plano de controle trata do gerenciamento de conex oes. No modelo ATM todas as camadas possuem funcionalidades de usu ario e de controle. A descri c ao de cada uma das camadas e mostrada a seguir: Camada F sica: prov e os meios para transmitir as c elulas ATM. A subcamada TC (Transmission Convergence ) mapeia as c elulas ATM no formato dos frames da rede de transmiss ao (SDH, SONET, PDH, etc.). A sub-camada PM (Physical Medium ) temporiza os bits do frame de acordo com o rel ogio de transmiss ao; Camada ATM: e respons avel pela constru c ao, processamento e transmiss ao das c elulas, e pelo processamento das conex oes virtuais. Esta camada tamb em processa os diferentes tipos e classes de servi cos e controla o tr afego da rede;

http://www.candidatoreal.com

Camada de Adapta c ao ATM ou AAL (ATM Adaptation Layer ): e respons avel pelo fornecimento de servi cos para a camada de aplica c ao superior. A sub-camada CS (Convergence Sublayer ) converte e prepara a informa c ao de usu ario para o ATM, de acordo com o tipo de servi co, al em de controlar as conex oes virtuais. A sub-camada SAR (Segmentation and Reassembly ) fragmenta a informa c ao para ser encapsulada na c elula ATM. A camada AAL implementa ainda os mecanismos de qualidade de servi co e sinaliza c ao. Os tipos de servi co oferecidos pelas redes ATM s ao os seguintes: CBR (Constant Bit Rate ): Garantida uma taxa de transmiss ao constante. Aplica c oes t picas que necessitam desse tipo de servi co s ao telefonia e distribui c ao de audio e v deo (televis ao, pay-per-view etc.); 357

http://www.candidatoreal.com

VBR (Variable Bit Rate ): Garantida uma taxa m edia de transmiss ao e um valor m aximo de pico. Aplica c oes t picas deste servi co s ao voz com taxa vari avel de bits e v deo comprimido (MPEG, por exemplo); ABR (Available Bit Rate ): Garantida uma taxa m nima de transmiss ao. Aplicado a conex oes que transportam tr afego em rajadas que podem prescindir da garantia de banda, variando a taxa de bits de acordo com a disponibilidade da rede ATM. Aplica c oes t picas deste servi co tamb em s ao as interliga c oes entre redes e a emula c ao de LANs; UBR (Unspecied Bit Rate ): A capacidade de transmiss ao restante e alocada ao tr afego. Utilizada para tr afego que n ao possui requisitos de atraso ou jitter, como transfer encia de arquivos e email.

40.2

MPLS - Multiprotocol Label Switching

A medida em que a Internet foi crescendo e os servi cos nela oferecidos foram se tornando mais sosticados foi se tornando necess ario desenvolver novas t ecnicas para garantir n veis de qualidade de servi co altos. Enquanto o IETF se concentrou na concep c ao das arquiteturas de servi cos integrados e servi cos diferenciados, v arios fabricates se concentravam desenvolvimento de m etodos de encaminhamento melhores. Esse trabalho se concentrou na inclus ao de um r otulo no in cio de cada pacote, de forma que o roteamento pudesse ser feito com base nos r otulos e n ao mais a partir do endere co de destino. Dessa forma, os engenheiros pretendiam tornar o processo de encaminhamento muito mais eciente. Uma das motiva c oes da epoca era o fato de que pacotes IP n ao podiam ser encaminhados completamente via hardware (hoje j a e poss vel), e com o MPLS, isso poderia ser feito. O MPLS e um protocolo que permite emular algumas propriedades de redes de comuta c ao de circuitos utilizando para isso a tecnica de circuitos virtuais. O MPLS opera entre as camadas de enlace e de rede de forma independente, e por isso muitas vezes e dito ser um protocolo de camada 2.5. Poe esse motivo e poss vel contruir switches MPLS capazes de encaminhar tanto pacotes IP, c elulas ATM ou outros. Da o nome Multiprotocol Label Switching. O MPLS funciona adicionado aos pacotes um cabe calho adicional contendo um ou mais r otulos (labels ), formando uma pilha de r otulos. Cada um dos r otulos e composto por quatro campos que s ao: Label: 20 bits utilizados para indicar o valor do r otulo propriamente dito. com base no valor desse campo que os pacotes s E ao encaminhados; CoS: 3 bits utilizados para indicar a classe de servi co; S: 1 bit que quando setado para 1 indica que o r otulo eou ltimo da pilha; TTL: 8 bits para indicar o m aximo n umero de hops que um pacote pode dar antes de ser descartado.

http://www.candidatoreal.com

358

http://www.candidatoreal.com

Figura 40.2: Formato do r otulo MPLS

Figura 40.3: Empilhamento de r otulos MPLS entre as camadas 2 e 3 O processo de encaminhamento ocorre da seguinte maneira. Quando um pacote rotulado com MPLS chega a um rotedor, o r otulo o campo label e analisado a m de determinar por qual linha de sa da o pacote deve sair. O roteador tamb em e respons avel por determinar com qual r otulo o pacote dever a sair. A essa opera c ao de troca de r otulos d a-se o nome de swap. Quando um pacote ainda n ao rotulado chega a um rotedor e precisa passar por um t unel MPLS, o rotedor deve primeiro determinar a classe de equival encia do pacote (forwarding Equivalence Class - FEC) para ent ao adicionar um ou mais r otulos ao pacote. O FEC e um mecanismo de agrega c ao que permite usar um u nico r otulo para pacotes de conex oes diferentes mas t em o mesmo destino ou pertencem a mesma classe de servi co. Isso pemite diminuir o n umero da tabela de encaminhamento e aumentar a velocidade de encaminhamento. Al em da opera c ao de troca de r otulos (swap ), o MPLS possui ainda mais duas opera c oes que s ao a adi c ao de um novo r otulo (push ) e a remo c ao de um r otulo (pop ). A adi c ao de um novo r otulo serve para encapsular o pacote em outra camada de MPLS, permitindo por exemplo, a cria c ao de VPNs. A opera c ao de remo c ao do r otulo e dita desencapsulamento. Quando o u ltimo r otulo e removido diz-que que o pacote deixou o t unel MPLS. 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 - Trac Engineering ). Ambos realizam a distribui c ao de r otulos com base em restri c oes de qualidade de servi co, rotas obrigat orias etc.

http://www.candidatoreal.com

Outra considera c 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 tamb em chamada LSP (Label Switched Path ). Para estabelecimento de uma comunica c 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

Cap tulo 41

Arquitetura TCP/IP
41.1 Vis ao geral

A arquitetura TCP/IP surgiu com a cria c ao de uma rede chamada ARPANET, que foi uma rede criada para manter comunica c ao entre os org aos do governo dos EUA e as universidades. A ARPANET cresceu e tornou-se a rede mundial de computadores, a Internet. A arquitetura TCP/IP trata de um conjunto de protocolos divididos em quatro camadas: F sica (host/Rede), Rede (Inter-Rede ou Internet), Transporte e Aplica c ao; onde cada uma executa um conjunto bem denido de fun c oes de comunica c ao. Nesta arquitetura n ao existe uma estrutura c ao formal para cada camada conforme ocorre no modelo OSI. Ela procura denir um protocolo pr oprio para cada camada, assim como a interface de comunica c ao entre duas camadas adjacentes. A gura ?? 1 mostra a arquitetura TCP/IP.

41.2

Compara c ao entre a arquitetura OSI e TCP/IP

http://www.candidatoreal.com

Os modelos de refer encia OSI e TCP/IP t em muito em comum. Os dois se baseiam no conceito de pilha de protocolos independentes. Al em disso, as camadas t em praticamente as mesmas fun c oes. Apesar dessas semelhan cas, os modelos t em muitas diferen cas. O modelo OSI torna expl cita a diferen ca do conceito de servi co, 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 substitu dos 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 diferen ca expl cita est a no n umero de camadas. O modelo OSI possui sete e o TCP/IP possui quatro. Outra diferen ca est a na area de comunica c ao sem conex ao e orientada a conex oes. Na camada de rede, o modelo OSI e compat vel com a comunica c ao sem conex ao e orientada a conex oes. No entanto, na camada de transporte, o modelo aceita apenas comunica c ao orientada a conex oes. O modelo TCP/IP s o tem um modo de opera c ao na camada de rede (sem conex ao), mas aceita ambos os modos na camada de transporte.

360

http://www.candidatoreal.com

No modelo TCP/IP, a camada f sica n ao e realmente uma camada no sentido em que o termo e usado no contexto dos protocolos hierarquizados. Trata-se, na verdade, de uma interface entre a camada de redes e de enlace de dados. E ainda, o modelo n ao faz distin c ao entre as camadas f sicas e de enlace de dados.

41.3

Camada F sica (host/rede)

A arquitetura TCP/IP n ao deni muito bem o que acontece nesta camada, apenas especica que o host tem que se conectar ` a rede utilizando algum protocolo para que seja poss vel enviar pacotes IP. Esse protocolo n ao e denido e varia de host para host e de rede para rede. Esta camada tamb em e chamada de camada de abstra c ao de hardware, pois sua fun c 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 prov e uma das grandes vantagens do modelo: a possibilidade de interconex ao e interopera c ao de redes heterog eneas. Os protocolos desta camada s ao: PPP (Point-to-Point Protocol): e um protocolo ponto a ponto utilizado para transportar datagramas atrav es 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 detec c ao de erros, negocia c ao de op c oes, compacta c ao de cabe calhos e, opcionalmente, a transmiss ao con avel com o uso de um formato de quadro do tipo HDLC. ARP (Address Resolution Protocol): e um protocolo utilizado para descobrir o endere co f sico (MAC) de uma m aquina a partir de seu endere co IP; RARP (Reverse ARP): e um protocolo utilizado descobrir o endere co IP de uma m aquina a partir de um endere co f sico. Pode-se dizer que os protocolos ARP e RARP pertencem tamb em ` a camada Inter-Rede.

http://www.candidatoreal.com

41.4

Camada de Inter-Rede

A camada de Inter-Rede e a primeira normatizada pelo modelo TCP/IP. Conhecida tamb em como camada Internet (Rede), esta camada dene o protocolo IP (Internet Protocol) respons avel pelo endere camento 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. Al em do protocolo IP, a camada de Inter-Rede dene alguns outros protocolos: ICMP (Internet Control Message Protocol): e um protocolo utilizado para transmiss ao de mensagens de controle ou ocorr encia de problemas; 361

http://www.candidatoreal.com

OSPF (Interior Gateway Routing Protocol): e um protocolo de roteamento em um Sistema Aut onomo; IP (Routing Information Protocol): e um protocolo que permite a troca de informa c oes de roteamento entre gateways utilizando o algoritmo VectorDistance; BGP (Boder Gateway Protocol): e um protocolo de roteamento entre Sistemas Aut onomos.

41.5

Camada de Transporte

uma A camada de transporte e o n ucleo de toda a hierarquia de protocolos. E camada m a m, 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 fun c ao e prover uma transfer encia de dados con avel e econ omica entre a m aquina de origem e a m aquina de destino, independente das redes f sicas em uso no momento. Dois protocolos m a m s ao denidos nesta camada. O primeiro deles, o TCP (Transmission Control Protocol) e um protocolo orientado a conex ao con avel que permite a entrega sem erros de um uxo de bytes, vericando se a ordem e a seq u encia 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-con avel, ou seja, n ao oferece nenhuma garantia em rela c ao ` a entrega dos dados ao destino. Para distinguir entre v arias aplica c oes, a camada de Transporte associa um identicador a cada processo de aplica c ao. Esse identicador e chamado de porta. Para uma aplica c ao falarcom outra numa m aquina remota, e preciso conhecer n ao apenas o endere co IP da m aquina destino, mas tamb em a porta associada a cada aplica c 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 servi cos 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 endere co IP da m aquina e a porta.

41.6
http://www.candidatoreal.com

Camada de Aplica c ao

formada pelos protocolos utilizados pelas diversas aplica E c oes do modelo TCP/IP. Esta camada n ao possui um padr ao comum, cada aplica c ao dene o seu pr oprio esta camada que trata a compatibilidade entre os diversos formatos protocolo. E representados pelos variados tipos de esta c oes da rede. Os principais protocolos desta camada s ao: TELNET (TeleType Network): e um protocolo utilizado para acessar sistemas remotos por meio de um terminal. Utiliza a porta 23 do protocolo TCP; FTP (File Transfer Protocol): e um protocolo utilizado para servi cos de transfer encia, renomea ca o e elimina c ao de arquivos, al em da cria c ao, modica c ao e exclus ao de diret orios. Utiliza duas conex oes TCP: uma para

362

http://www.candidatoreal.com

controle, porta 21, e outra para dado, porta 20. As transfer encias de arquivos podem ser no modo texto ou bin ario; SNMP (Simple Network Management Protocol): e um protocolo utilizado trafegar informa c oes sobre dispositivos da rede, ou seja, gerenciamento da rede. Utiliza duas conex oes UDP: uma para requisi c oes, porta 161, e uma para as mensagens de trap, porta 162; DNS (Domain Name Server): e um protocolo utilizado para realizar o mapeamento entre nomes e endere co IP. Utiliza a porta 43 do protocolo UDP para resolu c ao de nomes e a porta 53 do protocolo TCP para transfer encia de zonas; DHCP (Dynamic Host Conguration Protocol): e um protocolo que permite realizar a congura c ao autom atica de endere cos de hosts em uma rede ou na Internet; SMTP (Simple Mail Transfer Protocol): e um protocolo utilizado para enviar mensagens de correio eletr onico. Usualmente, utiliza a porta 25 do protocolo TCP; HTTP (HyperText Transfer Protocol): e um protocolo de transfer encia de mensagens utilizado na WWW. Usualmente, utiliza a porta 80 ou 8080 do protocolo TCP; NFS (Network File System): e um protocolo que permite montardiscos ou parte deles de dispositivos remotamente e oper a-los como se fossem locais. Inicialmente este protocolo utiliza a porta 2049 do protocolo UDP, mas a vers ao NFS4 utiliza a porta 2049 do protocolo TCP;

http://www.candidatoreal.com

363

http://www.candidatoreal.com

Cap tulo 42

Camada de Aplica c ao
42.1 Proxy Cache

Um proxy cache, ou simplesmente proxy, e uma entidade de rede que atende requisi c oes HTTP em nome de um servidor Web de origem. Um proxy tem seu pr oprio disco de armazenagem onde mant em c opias dos objetos recentemente requisitados. Alguns dos objetivos da utiliza c ao de um proxy e a redu c ao na utiliza c ao dos links de a acesso a internet e a diminui c ao do atraso percebido pelo usu ario no atendimento de uma requisi c ao. Os dois principais tipos de proxy s ao: Intercepta c ao: Trabalha interceptando o tr afego da rede de forma transparentemente, n ao sendo necess aria nenhuma congura c ao adicional nos browsers. S ao utilizados especialmente pelos ISPs. Intermedi ario: Geralmente utilizados em ambientes que constituem um dom nio administrativo (empresas, universidades etc.), uma vez que e necess aria a congura ca o dos browsers. Esse tipo de proxy pode ainda implementar outras fun c oes como autentica c ao e ltros de conte udo. Para que um proxy possa atender as requisi c 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 cabe calho 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 informa c ao max-age, o proxy pode utilizar o m etodo GET em conjunto com o campo If-Modied-Since (GET condicional) para solicitar ao servidor uma nova c opia do mesmo caso ele tenha sido modicado desde a data denida. 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 comunica c ao s ao utilizados protocolos como o ICP (Internet Cache Protocol ) e HTCP (Hyper Text Caching Protocol ). Outro mecanismo de implementar a comunica c 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

http://www.candidatoreal.com

364

http://www.candidatoreal.com

com outros servidores pertencentes ` a hierarquia.

http://www.candidatoreal.com

365

http://www.candidatoreal.com

Parte VII

Ger encia de Redes

http://www.candidatoreal.com

366

http://www.candidatoreal.com

Cap tulo 43

O protocolo SNMP
O SNMP (Simple Network Management Protocol ) e um protocolo da camada de aplica c ao que facilita a troca de informa c 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 tr es 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 informa c oes e as tornam dispon veis para os NMSs atrav es do protocolo SNMP. Essa informa c 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 informa c oes de gerenciamento e e repons avel pela tradu c ao dessas para um formato compat vel com o SNMP. Um NMS executa uma aplica c ao que monitora e controla os dispositivos gerenciados. Existem duas formas b asicas de comunica c ao entre os agentes e os NMSs. Na primeira, o NMS envia uma mensagem GET para o agente solicitando o envio de alguma informa c ao. Geralmente os NMSs s ao congurados para coletar informa c oes dos agentes periodicamente para armazen a-las em bases de dados para serem an alisados posteriormente. Um NMS pode ainda solicitar a altera c ao de alguma informa c ao enviando uma mensagem SET ao agente. As mensagens enviadas do NMS para o agente utilizam a porta UDP 161. Para recuperar todos os objetos de uma determinada sub arvore da MIB pode ser utilizada a opera c ao GETNEXT. Na segunda forma, o agente envia uma mensagem para o NMS quando detecta alguma situa c ao pr e denida. As mensagens enviadas do agente para o NMS s ao cahamadas traps. O protocolo SNMP conta com algumas traps nativas, por em os agentes podem ser contru dos para enviar traps em outras 367

http://www.candidatoreal.com

http://www.candidatoreal.com

situa c 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 aut entica. Atualmente existem duas vers oes do protocolo SNMP que s ao SNMPv1 e SNMPv2. O SNMPv2 introduziu duas novas opera c oes que s ao GETBULK e INFORM. A GETBULK permite o NMS recuperar grandes blocos de dados aumentando a eci encia do protocolo, enquanto a opera c ao INFORM permite a comunica c ao entre dois NMSs na mesma rede.

Figura 43.1: Arquitetura SNMP

43.1

Management Information Base

A Management Information Base (MIB) e uma cole c ao de informa c oes organizada de forma hier arquica como uma arvore de raiz n ao nomeada. A MIB e composta por objetos gerenciados, cada um deles identicado por um OID (object identiers ) u nico.

http://www.candidatoreal.com

Os IDs de n vel mais alto pertencem a diferentes organiza c oes de padroniza c ao (ISO, ITU etc.), enquanto os IDs de n vel imediatamente inferior s ao alocados para organiza c oes associadas. Fabricantes podem denir ramos na arvore para incluir objetos gerenciados para seus produtos. A estrutura de uma MIB e mostrada na gura 43.2. Os ramos mais comuns na estrutura de uma MIB s ao os seguintes: .1.3.6.1.2.0 ou (iso.org.dod.internet.mgmt.mib): Caminho para MIB vers ao I;

368

http://www.candidatoreal.com

Figura 43.2: Estrutura da MIB .1.3.6.1.2.1 ou (iso.org.dod.internet.mgmt.mib-2): Caminho para MIB II, denida pela RFC 1213 para ser utilizada no gerenciamento de redes baseadas na pilha TCP/IP. A MIB-II e subdividida nos 11 grupos de informa c ao mostrados na gura 43.2; .1.3.6.1.4.1 ou (iso.org.dod.internet.private.enterprises): Caminho para MIBs propriet arias. A MIB dos equipamentos da Cisco, por exemplo, cam abaixo de .1.3.6.1.4.1.9 ou (iso.org.dod.internet.private.enterprises.cisco).

http://www.candidatoreal.com

369

http://www.candidatoreal.com

Parte VIII

Seguran ca da Informa c ao

http://www.candidatoreal.com

370

http://www.candidatoreal.com

Cap tulo 44

Pol ticas de Seguran ca de Informa c ao


44.1 Pol ticas de Seguran ca

http://www.candidatoreal.com

A pol tica de seguran ca tem por objetivo prover ` a administra c ao uma dire c ao e apoio para a seguran ca da informa c ao. A administra c ao deve estabelecer uma pol tica clara e demonstrar apoio e comprometimento com a seguran ca da informa c ao atrav es da emiss ao e manuten c ao de uma pol tica de seguran ca da informa c ao para toda a organiza c ao (ISO/IEC 17799:2000). Uma pol tica de seguran ca e a express ao formal das regras pelas quais e fornecido acesso aos recursos tecnol ogicos da empresa. O principal prop osito de uma pol tica de seguran ca e informar aos usu arios, equipe e gerentes, as suas obriga c oes para a prote c ao da tecnologia e do acesso ` a informa c ao. A pol tica deve especicar os mecanismos atrav es dos quais estes requisitos podem ser alcan cados. Outro prop osito e oferecer um ponto de refer encia a partir do qual se possa adquirir, congurar e auditar sistemas computacionais e redes, para que sejam adequados aos requisitos propostos. Portanto, uma tentativa de utilizar um conjunto de ferramentas de seguran ca na aus encia de pelo menos uma pol tica de seguran ca impl cita n ao faz sentido (RFC 2196). A pol tica deve especicar as metas de seguran ca da organiza c ao, onde as responsabilidades recaem, e qual o comprometimento da organiza c ao com a seguran ca. Uma vez que a pol tica e um estatuto, e necess ario que a sua elabora c ao, aprova c ao e aplica c ao sigam os ritos internos da institui c ao na qual ser a aplicada. O car ater estrat egico de uma pol tica de seguran ca deve garantir que a mesma aborde quest oes que s ao essenciais para a corpora c ao como um todo. Cada regra da pol tica serve como refer encia b asica para a elabora c ao do conjunto de regras particulares e detalhadas que comp oem as normas e os procedimentos de seguran ca. Com o intuito de tornar a pol tica de seguran ca um instrumento que viabilize a aplica c ao pr atica e a manuten c ao de uma infra-estrutura de seguran ca para a institui c ao, e necess ario que a pol tica seja desdobrada em estatutos mais detalhados. Estes estatutos podem ser referidos como pol ticas espec cas, normas,

371

http://www.candidatoreal.com

regras complementares, ou controles. Outros n veis podem existir, tal qual numa hierarquia, sendo que o limite ser a ditado pelas necessidades e conveni encias da institui c ao para a qual s ao elaborados as regras de seguran ca. Cabe ressaltar que, quanto mais baixo o n vel hier arquico de um documento de seguran ca em rela c ao ` a pol tica, mais detalhado e de car ater operacional ser a. importante lembrar que toda regra aplicada a uma institui E c ao deve estar em conson ancia com os objetivos ns da mesma. A seguran ca n ao e um m em si mesma, mas um meio para se chegar a um objetivo maior. A pol tica de seguran ca como um elemento institucional da organiza c ao possui um ciclo de vida indenido e deve prever todos os mecanismos de defesa contra qualquer amea ca conforme estabelecido no estudo de custos x benef cios. Considerando a mutabilidade de tais elementos e dos pr oprios objetivos e metas da organiza c ao, uma pol tica s o apresentar a efetividade ao longo do tempo se sofrer constantes reavalia c oes e atualiza c oes. ISMS - Information Security Management System, ou Sistema de Gerenciamento da Seguran ca da Informa c ao (SGSI) - e o resultado da aplica c ao planejada de objetivos, diretrizes, pol ticas, procedimentos, modelos e outras medidas administrativas que, de forma conjunta, denem como s ao reduzidos os riscos para seguran ca da informa c ao.

44.2

Projeto de Seguran ca

A estrat egia de seguran ca da informa c ao de uma empresa exige a elabora c ao de um projeto de seguran ca (n vel mais alto de abstra c ao) que descreva todos os aspectos da seguran ca da informa c ao na empresa. Um desses aspectos consiste na elabora c ao de um plano de seguran ca. O projeto de seguran ca, segundo Oppenheimer (1999), envolve v arias etapas de trabalho: Identica c ao dos ativos da empresa em termos de informa c oes; An alise dos riscos de seguran ca; An alise dos requisitos de seguran ca e compromissos; Desenvolvimento de um plano de seguran ca; Deni c ao de uma norma de seguran ca; Desenvolvimento de procedimentos para implantar a norma e uma estrat egia de implementa c ao; Implementa c ao, gerenciamento e auditoria dos procedimentos de seguran ca.

http://www.candidatoreal.com

44.3

Plano de Seguran ca

Plano de Seguran ca e um documento de alto n vel que prop oe o que uma organiza c ao deve fazer para satisfazer os requisitos de seguran ca, contendo a rela c ao dos servi cos de TI disponibilizados, quais areas da empresa disponibilizam os servi cos, quem ter a acesso aos servi cos, a descri c ao detalhada de sua implementa c ao, dos procedimentos de controle dos ambientes, incidentes e 372

http://www.candidatoreal.com

conting encias. O plano especica o tempo, as pessoas e outros recursos que ser ao necess arios para desenvolver uma norma de seguran ca e alcan car a implementa c ao t ecnica da norma. O plano deve estar baseado na an alise de ativos de redes e riscos. Deve fazer refer encia ` a topologia de rede e incluir uma lista de servi cos de rede que ser ao fornecidos, como por exemplo, FTP, Web, correio eletr onico e outros. Esta lista deve especicar quem fornecer a os servi cos, quem ter a acesso aos servi cos, o modo como o acesso ser a fornecido e quem ir a administrar os servi cos. Um dos aspectos mais importantes do plano de seguran ca e uma especica c ao das pessoas que devem estar envolvidas na implementa c ao da seguran ca de rede: Ser ao contratados administradores de seguran ca especializados? Como os usu arios nais e seus gerentes estar ao envolvidos? Como os usu arios nais, gerentes e pessoal t ecnico ser ao treinados sobre normas e procedimentos de seguran ca? Para ser u til, um plano de seguran ca precisa ter o apoio de todos os n veis de muito importante que a administra funcion arios dentro da organiza c ao. E c ao corporativa apoie plenamente o plano de seguran ca. O pessoal t ecnico da rede e de locais remotos deve se envolver no plano, da mesma forma que os usu arios nais (Oppenheimer, 1999).

44.4

Normas de Seguran ca

http://www.candidatoreal.com

Norma de seguran ca e uma declara c ao formal das regras ` as quais as pessoas que t em um determinado acesso a ` tecnologia e aos ativos de informa c oes de uma organiza c ao devem obedecer. (RFC 2196, The Site Security Handbook). Pode-se denir ainda, norma de seguran ca como sendo um estatuto no qual est ao transcritas regras de n vel intermedi ario, ou seja, entre o n vel estrat egico e o de descri c ao de procedimentos, cujo cumprimento visa garantir a seguran ca das informa c oes e recursos de uma institui c ao, dentro de um segmento particular do ambiente desta corpora c ao. A norma de seguran ca informa aos usu arios, gerentes e ao pessoal t ecnico de suas obriga c oes para proteger os ativos de tecnologia e informa c oes. A norma deve especicar os mecanismos pelos quais estas obriga c oes podem ser cumpridas. Da mesma forma que o plano, a norma de seguran ca deve ter o comprometimento de funcion arios, gerentes, executivos e pessoal t ecnico. Uma vez desenvolvida, a norma de seguran ca deve ser explicada a todos pela ger encia superior. Muitas empresas exigem que o pessoal assine uma declara c ao indicando que leu, compreendeu e concorda em cumprir as normas. A norma de seguran ca e um documento vivo. Pelo fato de as organiza c oes mudarem continuamente, as normas de seguran ca devem ser atualizadas com regularidade a m de reetirem novas orienta c oes comerciais e mudan cas tecnol ogicas (Oppenheimer, 1999).

44.4.1

ISO/IEC 17799

A ISO/IEC 17799 e a vers ao internacional da BS7799, homologada pela International Standartization Organization em dezembro de 2000. A NBR ISO/IEC 373

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 id entica a norma BS7799. A norma brasileira e a tradu c ao literal da norma ISO. BS7799 - Brithish Standart 7799 - e uma norma de seguran ca da informa c 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 cont em uma introdu c ao, deni c ao de extens ao e condi c oes principais de uso da norma. Disponibiliza 148 controles divididos planejada como um documento de refer em dez partes distintas. E encia para implementar boas pr aticasde seguran ca na empresa. A BS7799-2 e a segunda parte da norma e tem por objetivo proporcionar uma base para gerenciar a seguran ca da informa c 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 Organiza c ao Internacional de Normaliza c ao, a ISO, t em uma grande aceita c 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 Seguran ca da Informa c ao, a sua aplica c ao e um pouco mais restrita que a ISO 9001:2000, pois ela n ao e uma norma voltada para ns de certica c ao. Entretanto, a NBR ISO IEC 17799 pode ser usada pela maioria dos setores da economia, pois todas as Organiza c oes, independentemente do seu porte ou do ramo de atua c ao, do setor p ublico ou privado, precisam proteger suas informa c oes sens veis e cr ticas. As principais recomenda c oes da NBR ISO IEC 17799 s ao organizadas em 11 se c oes: Pol tica de Seguran ca de Informa c ao; Organizando a Seguran ca da Informa c ao; Gest ao de Ativos; Seguran ca em Recursos Humanos; Seguran ca F sica e do Ambiente; Gerenciamento das Opera c oes e Comunica c oes;

http://www.candidatoreal.com

Controle de Acesso; Aquisi c ao, Desenvolvimento e Manuten c ao de Sistemas de Informa c ao; Gest ao de Incidentes de Seguran ca da Informa c ao; Gest ao da Continuidade de Neg ocios; Conformidade. Ela permite que uma empresa construa de forma muito r apida uma pol tica de seguran ca baseada em controles de seguran ca ecientes. Os outros caminhos para se fazer o mesmo, sem a norma, s ao constituir uma equipe para pesquisar

374

http://www.candidatoreal.com

o assunto ou contratar uma consultoria para realizar essas tarefas. Ambas as op c oes s ao caras e demoradas. A ISO/IEC 17799:2000 tem como objetivo permitir que companhias que cumprem a norma demonstrem publicamente que podem resguardar a condencialidade, integridade a disponibilidade das informa c oes de seus clientes. A ISO/IEC 17799:2000 fornece mais de 127 orienta c oes de seguran ca estruturadas em 10 t tulos principais para possibilitar aos leitores identicarem os controles de seguran ca apropriados para sua organiza c ao ou areas de responsabilidade. Al em de fornecer controles detalhados de seguran ca para computadores e redes, a ISO/IEC 17799:2000 d a orienta c oes sobre pol ticas de seguran ca, conscientiza c ao sobre seguran ca para os funcion arios, plano de continuidade dos neg ocios e requisitos legais.

44.4.2

Fam lia ISO 27000

A s erie de normas ISO 27000, encabe cadas pela ISO 27001 est ao sendo elaboradas para substituir e completar os padr oes denidos pela BS7799. Como forma de dar suporte ` a implanta c ao da ISO IEC 27001:2005, o Comit e da ISO que trata da seguran ca de informa decidiu pela cria c ao de uma fam lia de normas sobre Gest ao da Seguran ca da Informa c ao. Esta fam lia foi batizada pela s erie ISO IEC 27000, a exemplo da s erie ISO 9000 das normas de qualidade e da s erie ISO 14000 das normas sobre meio ambiente. Esta nova fam lia est a relacionada com os requisitos mandat orios da ISO IEC 27001:2005, como, por exemplo, a deni c ao do escopo do Sistema de Gest ao de Seguran ca da Informa c ao, a avalia c ao de riscos, a identica c ao de ativos e a ec acia dos controles implementados. As normas da fam lia ISO IEC 27000 s ao: 27000 O seu objetivo e apresentar os principais conceitos e modelos de SI. Ainda est a em processo de desenvolvimento (previs ao 2008-2009). 27001 Dene requisitos para estabelecer, implementar, operar, monitorar, revisar, manter e melhorar um Sistema de Gest ao de Seguran ca de In a norma usada para ns de certica forma c ao. E c ao e substitui a norma a base para as Organiza brit ancia BS7799-2:2002. E c oes que desejam implementar um SGSI. 27002 Guia pr atico de diretrizes e princ pios gerais para iniciar, implementar, manter e melhorar a gest ao de SI em uma Organiza c ao. Os objetivos de controle e os controles atendem aos requisitos identicados na an alise de riscos. 27003 Guia pr atico para a implementa c ao de um SGSI, baseado na ISO IEC 27001. Ainda est a em processo de desenvolvimento (previs ao 2008-2009). 27004 Fornece diretrizes com rela c ao a t ecnicas e procedimentos de medi c ao para avaliar a ec 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 constitu da por indica c oes para implementa c ao, monitoramento e melhoria 375

http://www.candidatoreal.com

http://www.candidatoreal.com

cont nua do sistema de controles. O seu conte udo dever a ser id entico ao da norma BS 7799-3:2005 - Information Security Management Systems - Guidelines for Information Security Risk Management, a publicar em nais de 2005. A publica c ao da norma como ISO est a prevista para meados de 2007. 27006 Esta norma ser a referente ` a recupera c ao e continuidade de neg ocio. Este documento tem o t tulo provis orio de Guidelines for information and communications technology disaster recovery services, n ao estando calendarizado a sua edi c ao.

44.4.3

Diferen cas entre a ISO/IEC 17799 e a ISO 27001

A norma ISO/IEC 27001 (Information Technology - Information Security Management Systems - Requirements) trata da implanta c ao de um processo de gest ao de seguran ca da informa c 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 Seguran ca da Informa c ao) s ao as principais refer encias, atualmente, para a quem procura tratar a quest ao da seguran ca da informa c ao de maneira eciente e com ec acia. A ISO 27001 e uma norma que gere seguran ca na corpora c ao, ou seja, cria um sistema de seguran ca (SGSI) dentro de uma Organiza c ao. Isso em nenhum momento garante seguran ca, s o torna o ambiente mais control avel. Nesta norma ela cont em controles de seguran ca, apenas cita, por exemplo, o controle A.9.1.1 e Per metro de Seguran ca F sica, uma deni c ao muito abragente,e pode ter v arias interpreta c oes. J a a ISO/IEC 17799 possui todos os controles que tem na ISO 27001, s o que com explica c oes e exemplos de implementa c ao. Isso ajuda muito na implementa c ao numa corpora c ao. Um fato importante e que s o h a certica c ao ISO 27001, e n ao a NBR 17799. Al em disso, a certica c ao ISO 27001, cont em um descritivo do escopo, ou seja, quando uma empresa declara que e certicada ISO 27001, ela pode ser certicada apenas no CPD, por exemplo. Como e uma norma de sistema de seguran ca, a ISO 27001 tamb em cont em controles de outras ISO, por exemplo a ISO 15408 (seguran ca no desenvolvimento), mas n ao quer dizer que ao atender completamente a ISO 27001, ser a atendida a ISO 15408 ou o ITIL, que tamb em possui alguns de seus controles nessa norma.

http://www.candidatoreal.com

44.5

Procedimentos de Seguran ca

Os procedimentos de seguran ca implementam normas de seguran ca, denem processos de congura c ao, login, auditoria e congura c ao. Podem-se denir procedimentos de seguran ca como sendo um estatuto no qual est ao transcritas regras de n vel operacional, ou seja, em n vel de descri c ao de execu c ao de a c oes, cujo cumprimento visa garantir a seguran ca das informa c oes de uma institui c ao, dentro de um segmento particular do ambiente da corpora c ao. Devem ser escritos procedimentos de seguran ca para usu arios nais, administradores de redes e administradores de seguran ca. A divulga c ao deve ser restrita aos funcion arios diretamente envolvidos. Os procedimentos de seguran ca 376

http://www.candidatoreal.com

devem especicar como controlar incidentes (quer dizer, o que fazer e quem contatar se uma intromiss ao for detectada), fazer auditoria e desenvolver o plano de conting encia com objetivo de manter o neg ocio sempre ativo. Os procedimentos de seguran ca podem ser comunicados aos usu arios e administradores em turmas de treinamento lideradas por instrutores qualicados.

44.6

Arquitetura de Seguran ca

Com base na norma de seguran ca, e criado um documento denominado pol tica de seguran ca para ser divulgado em toda empresa. Para implementar a pol tica de seguran ca deve ser criada uma arquitetura de seguran ca que consiste na aplica c ao de todos os mecanismos de controles f sicos, l ogicos, t ecnicos e administrativos necess arios para a garantia da seguran ca da informa c ao (ROBERTI, 2001). Com base nessa arquitetura, s ao criados o plano de conting encia e o processo de auditoria. Uma arquitetura de seguran ca representa um elenco de recomenda c oes que dene os princ pios e fundamentos que devem ser observados na implementa c ao de um ambiente considerado seguro em rela c ao aos riscos, impactos e custos ao qual ele est a submetido. A arquitetura de seguran ca recomendada deve fornecer as bases para os aspectos de seguran ca dos seguintes elementos: aplica c oes, dados, comunica c ao de dados e ger encia de sistemas e rede. Uma arquitetura de seguran ca deve levar em considera c ao tr es elementos b asicos: pessoas, o modelo de seguran ca e a jun c ao de padr oes e tecnologias. importante salientar que a arquitetura de seguran E ca proposta deve conduzir a implementa c oes que sejam nanceiramente poss veis para a organiza c ao. Para tanto, a arquitetura deve possuir as seguintes qualidades: Ser independente de plataforma operacional, aplica c ao de rede; Ser alavancada por tecnologias de seguran ca amadurecidas, por exemplo: criptograas e cart ao inteligente; Estar em conformidade com padr oes infacto, como por exemplo a norma ISO/IEC 17799:2000 e CobiT; Denir relacionamentos entre os componentes de seguran ca: autentica c ao e permiss ao de acesso, por exemplo;

http://www.candidatoreal.com

Ter performance e disponibilidade dos mecanismos de seguran ca; Possuir um modo consistente de gerenciamento; Obter a conscientiza c ao de usu arios nais.

44.7

Classica c ao de Informa c oes

Segundo Claudia Dias (Dias, 2000), diferentes tipos de informa c ao devem ser protegidos de diferentes maneiras. Por isso a classica c ao das informa c oes e um dos primeiros passos para o estabelecimento de uma pol tica de seguran ca de informa c oes. Um vez classicada a informa c ao, a pol tica pode denir como 377

http://www.candidatoreal.com

trat a-la de acordo com sua classe, escolhendo mecanismos de seguran ca mais adequados. A classica c ao mais comum de informa c oes e aquela que as divide em 04 n veis: P ublicas ou de uso irrestrito As informa c oes e os sistemas assim classicados podem ser divulgados a qualquer pessoa sem que haja implica c oes para a institui c ao. Exemplo: servi cos de informa c ao ao p ublico em geral, informa c oes divulgadas a ` imprensa ou pela internet. Internas ou de uso interno Podem ser chamadas tamb em de corporativas. As informa c oes e os sistemas assim classicados n ao devem sair do ambito da institui c ao. Por em, se isto ocorrer, as conseq u encias n ao ser ao cr ticas. Exemplo: Servi cos de informa c ao interna ou documentos de trabalho corriqueiros que s o interessam aos funcion arios. Condenciais Informa c oes e sistemas tratados como condenciais dentro da institui c ao e protegidos contra o acesso externo. O acesso a estes sistemas e informa c 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 fun c oes na institui c ao. O acesso n ao autorizado a esses dados e sistemas pode comprometer o funcionamento da institui c ao, causar danos nanceiros ou perdas de fatias do mercado para o concorrente. Exemplo: Dados pessoais de clientes e funcion arios, senhas, informa c oes sobre vulnerabilidades de seguran ca dos sistemas institucionais, contratos, balan cos entre outros. Secretas O acesso interno ou externo de pessoas n ao autorizadas a este tipo imprescind de informa c ao e extremamente cr tico para a institui c ao. E vel que o n umero de pessoas autorizadas seja muito restrito e o controle sobre o uso dessas informa c oes seja total. Exemplo: Informa c oes dos contribuintes, declara c oes de imposto de renda.

http://www.candidatoreal.com

378

http://www.candidatoreal.com

Cap tulo 45

Seguran ca F sica e L ogica


45.1 Seguran ca F sica

A seguran ca f sica consiste em proteger informa c oes atrav es do uso de controles de acesso n ao permitindo que elas sejam prejudicadas atrav es da presen ca indevida de pessoas e de cat astrofes naturais. Os controles de acesso podem ser divididos em controles f sicos, t ecnicos e administrativos. Controle f sico Envolve os controles de acessos convencionais como guardas, ilumina c ao, detectores de movimento etc. Controle t ecnico Envolve crach as de acesso e dispositivos biom etricos. Controle administrativo Envolve procedimentos de emerg encia, controle de pessoal (tanto na contrata c ao quanto na demiss ao), planejamento e implementa c ao de pol ticas. Em rela c ao ao ambiente, devem ser considerados os aspectos relacionados ao fornecimento de energia el etrica, umidade e supress ao de inc endio. Nesse caso, todos os tipos de controles de acesso acima s ao poss veis.

45.2

Seguran ca L ogica

http://www.candidatoreal.com

Envolve os mecanismos de controle de acesso. Os controles de acessos s ao projetos para mitigar vulnerabilidades associadas ao acesso. Dene-se sujeito (subject ) como sendo a representa c ao do usu ario dentro do sistema. O objeto (object ) representa o recurso computacional cujo acesso e controlado. Opera c oes s ao realizadas pelos sujeitos do sistema sob seus objetos. Uma permiss ao e a manifesta c ao de que uma determinada opera c ao e permitida para um determinado objeto; por exemplo: permiss ao de leitura do arquivo da la de impress ao.

45.2.1

Matrizes de acesso, listas de controle de acesso e capabilities

A matriz de acesso e organizada com colunas representando os objetos, e os usu arios em linhas. Em cada c elula da tabela representam-se as permiss oes 379

http://www.candidatoreal.com

que o respectivo usu ario possui sobre o objeto. Um exemplo e a conven c ao do UNIX, em que a letra R representa permiss ao de leitura, a letra W representa permiss ao de escrita e a letra X representa permiss ao de execu c ao. Matrizes de acesso podem ser utilizadas para modelar mecanismos de autoriza c ao simples. Mas n ao s ao recomendados para implementa c ao, j a que n ao escalam bem: um sistema com 50.000 usu arios e 300 arquivos precisaria de uma matriz com 15 milh oes de c elulas, gerando problemas de espa co e maior possibilidade de erros na administra c ao. Lista de controle de acesso e uma maneira de simplicar o gerenciamento das permiss oes de acesso, pois indexam a matriz de controle de acesso pela coluna, indicando que usu arios possuem que permiss ao para cada objeto. Esta lista de controle de acesso e armazenada junto com cada objeto e relaciona quais permiss oes cada usu ario possui naquele objeto. Listas de controle de acesso (ACLs) s ao extensamente utilizadas em praticamente todos os sistemas operacionais modernos (UNIX, Windows), al em de estarem presentes em dispositivos de rede como roteadores e rewalls. A outra maneira de gerenciar a matriz de acesso e indexando-a pelos usu arios, apontando para cada um suas permiss oes no sistema, sendo conhecida como capabilities. ACLs s ao simples de implementar, mas dif ceis de manter em ambientes de alta rotatividade de usu arios ou arquivos, j a que e necess ario congur a-los para cada objeto. O agrupamento de usu arios ajuda, mas n ao resolve a quest ao. Como as ACLs s ao indexadas pelo objeto a ser protegido, e mais custoso saber exatamente que usu arios tem acesso a que arquivos do sistema. As vantagens e desvantagens do uso de capabilities s ao basicamente o contr ario das mesmas de listas de controle de acesso. A implementa c ao de capabilities tende a ser um pouco mais eciente em sistemas operacionais, enquanto e mais dif cil saber que usu arios tem acesso a um arquivo, j a que a informa c ao est a espalhada. Listas de controle de acesso tem gozado de uma popularidade muito maior no mundo comercial de sistemas operacionais que capabilities. Isso se deve ao fato de que o modelo DAC (Discretionary Access Control) e o mais popular nos sistemas operacionais modernos, e ACLs adequam-se bem a este modelo, por facilitar que cada usu ario gerencie as permiss oes de seus objetos no sistema.

45.2.2

Modelos de Controle de Acesso

http://www.candidatoreal.com

Modelos de controle de acesso (ou, rigorosamente, modelos de autoriza c ao de acesso) denem caracter sticas primitivas de um determinado conjunto de regras de autoriza c ao a serem utilizadas. Essas caracter sticas inuenciam os limites da sem antica de autoriza c ao que pode ser expressa no modelo e conseq uentemente a sua implementa c ao. Os principais modelos de controle de acesso hoje s ao DAC (Discretionary Access Control), MAC (Mandatory Access Control) e RBAC (Role-Based Access Control). DAC: Discretionary Access Control Controle de acesso discrecion ario tem sua origem no contexto de pesquisa acad emica em sistemas de tempo compartilhado que surgiram no come co dos anos setenta. DAC e baseado na no c ao de que usu arios individuais s ao donos de objetos e

380

http://www.candidatoreal.com

portanto tem controle (discre c ao) total em quem deve ter permiss oes para acessar o objeto. Um usu ario transforma-se em dono do objeto ao cri a-lo. No modelo discrecion ario, se Jo ao e dono de um objeto (um arquivo, por exemplo), ela pode conceder a Jos e a permiss ao de acess a-lo em um modo qualquer de opera c ao. Posteriormente, ele pode revogar essa permiss ao a qualquer momento. O princ pio b asico de DAC e possess ao do objeto pelo usu ario que o criou. Atualmente, o DAC e o modelo mais popular de controle de acesso, pela sua utiliza c ao em grande escala em sistemas operacionais comerciais. Todas as variantes do UNIX, o Netware e a s erie Windows NT, 2000 e XP utilizam o modelo DAC como seu modelo b asico de controle de acesso. Estes sistemas operacionais utilizam extensamente a t ecnica de listas de controle de acesso para conceber a implementar as suas checagens de autoriza c ao, dispondo tamb em do conceito de grupos de usu arios para facilitar na administra c ao e concess ao de permiss oes. MAC: Mandatory Access Control Enquanto o ponto-chave do DAC e o fato de que os usu arios s ao considerados donos do objeto e portanto respons aveis pelas suas permiss oes de acesso, o modelo mandat orio prev e que usu arios individuais n ao tem escolha em rela c ao a que permiss oes de acesso eles possuem ou a que objetos podem acessar. Neste modelo, os usu arios individuais n ao s ao considerados donos dos objetos, e n ao podem denir suas permiss oes, isso e realizado pelos administradores do sistema. O modelo MAC e conhecido, a tal ponto de ser as vezes confundido, pela sua utiliza c ao em pol ticas de acesso multin vel, em que se deseja controlar o uxo de informa c oes em um sistema. Em geral, se quer garantir que a informa c ao s o ua em um determinado sentido: por exemplo, de n veis mais baixos de condencialidade para n veis maiores de condencialidade, nunca de n veis mais altos para n veis mais baixos. DAC e MAC na atualidade Tanto os modelos DAC e MAC s ao utilizados atualmente, o DAC em maior escala, estando presente em diversos sistemas operacionais comerciais como o UNIX, Windows e Netware. Implementa c oes de sistemas MAC s ao comuns em ambientes militares e de mainframe. Apesar da sua popularidade, eles apresentam problemas pr oprios que est ao possibilitando o crescimento de outro modelo de acesso, o RBAC a crescer, visando resolver estas quest oes. O MAC, apesar de ser reconhecido genericamente como mais control avel e potencialmente mais seguro que DAC n ao tem obtido grande uso fora dos circuitos militares. Isso se deve principalmente pela diculdade em adaptar uxos impr de neg ocio e hierarquia comerciais ao modelo formal. E atico implant a-lo em sistemas que n ao sejam militares, pelo custo de administra c ao e de overhead que seria gerado. O DAC, por sua vez, goza de grande popularidade no mundo comercial, mas tem em seu maior problema a quest ao da diculdade no gerenciamento das permiss oes. Sistemas operacionais modernos de rede possuem milhares de

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 informa c ao de acesso individual. Por exemplo, quando um usu ario e removido do sistema, costuma ser necess ario remover suas informa c oes de acesso a todos os objetos em que possu a o acesso. Da mesma forma, quando um objeto novo e criado, e necess ario denir 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 prote c ao e exce c 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 dif cil: Na maior parte do tempo, cada m edico s o tem acesso aos dados dos seus pacientes. Quando estiver no seu turno na UTI, ele ter a tamb em 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 congurando os sistemas com prote c oes mais relaxadas do que o estritamente necess ario. RBAC: Role-Based Access Control RBAC foi projetado para gerenciar centralmente privil egios ao prover uma camada de abstra c ao, conhecida como role (papel), mais alinhado ` a estrutura da organiza c ao. A no c ao central de RBAC e que permiss oes s ao associadas ` a pap eis, e usu arios s ao associados aos seus pap eis corretos na organiza c ao. Isso simplica bastante a administra c ao e gerenciamento de permiss oes de acesso em grandes organiza c oes. Pap eis s ao criados para as v arias fun c oes de neg ocio da organiza c ao, e os usu arios s ao associados a esses pap eis de acordo com suas responsabilidades e qualica c oes. Usu arios podem ser facilmente reassociados de um papel para outro. Pap eis podem receber novas permiss oes de acesso ` a medida que novas aplica c oes ou funcionalidades s ao adicionadas ao sistema, e permiss oes podem ser revogadas sempre que necess ario. Um papel e apropriadamente entendido como uma constru c ao sem antica ` a volta do qual a pol tica de controle de acesso e formulada. A cole c ao particular de usu arios e permiss oes associadas a um papel e transit oria. O papel e mais est avel porque as atividades e fun c oes da organiza c ao em geral mudam menos do que o conjunto de usu arios ou de permiss oes. Isso torna a administra c ao de um sistema RBAC muito mais f acil e escal avel do que a de um sistema DAC, por exemplo, que precisa associar usu arios a objetos diretamente, sem a constru c ao do papel entre os dois, atuando como componente estabilizador. Al em do forte motivo de facilitar o gerenciamento das permiss oes de acesso, um outro ponto motivador de RBAC e a sua exibilidade de adapta c ao a regras de acesso particulares de cada sistema, atrav es do recurso de constraints. Constraints s ao predicados que, aplicados a rela c oes e fun c oes do modelo, retornam um valor aceito ou n ao aceito. Isso permite expressar, na pol tica de acesso do sistema, restri c oes como a separa c ao de deveres, em que um mesmo usu ario n ao pode subverter a seguran ca do sistema ao exercer dois pap eis conitantes ao mesmo tempo. Por exemplo, um mesmo usu ario n ao poderia ser ao mesmo 382

http://www.candidatoreal.com

http://www.candidatoreal.com

tempo o gerente de compras (que toma a decis ao de realizar uma compra), e o gerente nanceiro (que passa o cheque da compra), j a que isso poderia abrir espa co para fraudes em que ele indicaria uma compra fraudulenta e autorizaria a sua fatura por conta pr opria. A separa c ao de deveres e um princ pio cl assico de seguran ca, utilizado extensamente no mundo dos neg ocios, e e poss vel de ser expressado como regra de acesso em sistemas RBAC.

http://www.candidatoreal.com

383

http://www.candidatoreal.com

Cap tulo 46

Backup de Dados
Existem v arias formas de se garantir a disponibilidade da informa c ao, a mais importante e a c opia destes dados em local seguro, ou seja, o backup de dados. Os backups podem ser classicados em tr es tipos: Backup total Realiza uma c opia de todos os dados para a m dia, n ao importando o conte udo do u ltimo backup. seja, o atributo de arquivamento e desmarcado ou redenido. Uma ta 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 m dia e o arquivo original n ao e removido da m dia. No processo de restaura c ao devemos ter o u ltimo backup completo e dos os backups incrementais desde ent ao. Backup diferencial Copia todos os arquivos que foram alterados desde o u ltimo backup completo, por este motivo ocupa mais espa co nas m dias de backup e e mais lento de ser gerado, contudo e mais f acil de recuper a-lo. Para restaurar os dados a partir deste tipo de backup deve-se ter em m aos apenas o u ltimo backup completo e o u ltimo backup diferencial. Backup delta S o faz a c opia dos dados reais que foram modicados nos arquivos, e um processo de backup mais r apido e que ocupa menos espa co nas m dias de backup, contudo o processo de restaura c ao e mais lento e complexo.

http://www.candidatoreal.com

46.1

Meios de Armazenamento

Denida as necessidades b asicas a serem atendidas devemos selecionar um do tipos de armazenamento, que podem ser: on-line, Pr oximos e o-line. As m dias de armazenamento on-line consistem em discos r gidos ou arrays de discos. Estas m dias fornecem uma disponibilidade em tempo real e s ao normalmente utilizados para fornecer uma forma altrnativa de armazenamento. Estas m dias n ao substituem os backups oine. O armazenamento pr oximo e formado por Jukeboxes oticos e c opias locais, que est ao rapidamente acess veis, normalmente fazem uso de rob os para 384

http://www.candidatoreal.com

gerenciarem as m dias fornecendo um acesso r apido aos dados quando o servi co on-line n ao est a dispon vel. J a o armazenamento o-line consiste no arquivamento de m dias fora da rede de dados em um local seguro e protegido contra roubo, cat astrofes naturais e outros ame cas. Sempre que poss vel as m dias devem ser armazenadas em local geogr acamente diferente e fora das instala c oes comerciais da empresa. Para a realiza c ao deste tipos de backup podem ser utilizadas tr es tipos de m dias diferentes: tas/discos magn eticos, armazenamento otico e arrays de disco. As tas magn eticas s ao as m dias mais comuns, mais baratas utilizadas nos backups o-line, mas por outro lado s ao as mais lentas e que ocupam um grande espa co. Seus principais tipos s ao: 8mm, Travan, DLT, DAT e Magstar. O armazenamento otico e muito popular em ambientes onde a velocidade e a conabilidade s ao as maiores preocupa c oes, estes ambientes fazem uso de servidores com jukeboxes oticos de alta disponibilidade que s ao solu c oes caras porem muito ecientes. Os arrays de discos ou simplesmente RAIDs (Redundant Array of Independet Disks ) s ao um subsistema de discos r gidos que melhoram o desempenho e a toler ancia a falhas, uma vez que os dados s ao gravados em mais de um disco ao mesmo tempo. Estas solu c oes podem ser tanto implementadas em software quanto em hardware. Neste caso quando uma unidade de disco falha o administrador do sistema pode substitu -la, em alguns casos, sem parar o funcionamento do servidor. A solu c ao de RAID fornece um melhor desempenho e toler ancia a falhas, mas de forma alguma substitui o processo de backup o-line. Vale lembrar que dois ou mais discos podem falhar ao mesmo tempo, perdendo o acesso total aos dados armazenados no array. Outra solu c ao de prote c ao aos dados e o HSM (Hierarchical Storage Management ), que e um sistema automatizado para o gerenciamento de dados e espa co em disco, muito utilizado em mainframes. Esta solu c ao monitora a capacidade das unidades e move os dados para as m dias de armazenamento pr oximo ou oine, mais lentas. O HSM pode mover os dados segundo sua idade, freq u encia de uso ou baseado em outros crit erios, permitindo deste modo uma migra c ao de dados autom atica. Esta solu c ao e relativamente cara e dif cil de ser implementada.

http://www.candidatoreal.com

385

http://www.candidatoreal.com

Cap tulo 47

V rus e Ataques
Conceito b asicos: Cracker Termo usado para designar quem quebra um sistema de seguran ca, de forma ilegal ou sem etica. Este termo foi criado em 1985 pelos hackers em defesa contra o uso jornal stico do termo hacker. Hacker Habitualmente (e erradamente) confundido com cracker, um hacker e um expert ou Problem Solver, aquele que apresenta solu c oes para problemas t ecnicos relativos ` a Internet. White Hat (aka hacker etico) Hacker em seguran ca, utiliza os seus conhecimentos na explora c ao e detec c ao de erros de concep c ao, dentro da lei. Black Hat (aka cracker ou dark-side hacker) criminoso ou malicioso hacker, um cracker. Gray hat Tem as habilidades e inten c oes de um hacker de chap eu branco na maioria dos casos, mas por vezes utiliza seu conhecimento para prop ositos menos nobres. Script Kiddie Antigamente chamado de Lammer, e um indiv duo que n ao pouco experiente, tem dom nio dos conhecimentos de programa c ao. E com poucas no c oes de inform atica, por em tenta fazer-se passar por um cracker a m de obter fama, o que acaba gerando antipatia por parte dos hackers verdadeiros.

http://www.candidatoreal.com

Newbie Newbie, Noob ou a sigla NB, e aquele jovem aprendiz de hacker que possui uma sede de conhecimento incrivel, pergunta muito e e ignorado e ridicularizado na maioria das vezes, ao contrario dos lammers n ao tenta se p or acima dos outros. Phreaker Hacker especialista em telefonia m ovel ou xa. um programa capaz de infectar outros programas e arquivos de um V rus E computador. Para realizar a infec c ao, o v rus embute uma c opia de si mesmo em um programa ou arquivo, que quando executado tamb em executa o v rus, dando continuidade ao processo de infec c ao. Para que um computador seja infectado por um v rus, e preciso que de alguma maneira um programa previamente infectado seja executado. 386

http://www.candidatoreal.com

um programa completo capaz de se propagar automaticamente atrav Worms E es de redes, enviando c opias de si mesmo de computador para computador. Sua propaga c ao se d a atrav es da explora c ao de vulnerabilidades existentes ou falhas na congura c ao de softwares instalados em computadores. O worm pode trazer embutido programas que geram algum tipo de problema ou que tornam o computador infectado vulner avel a outros ataques. Um worm pode provocar danos apenas com o tr afego de rede gerado pela sua reprodu c ao. um programa que al Cavalos de Tr oia (Trojan) E em de executar fun c oes para as quais foi aparentemente projetado, executa tamb em outras fun c oes normalmente maliciosas e sem o conhecimento do usu ario como: altera c ao ou destrui c ao de arquivos; furto de senhas e n umeros de cart oes de cr edito; inclus ao de backdoors. N ao se r eplica, n ao infecta outros arquivos, ou propaga c opias de si mesmo automaticamente. Necessita ser explicitamente executado. Exemplos comuns de cavalos de tr oia s ao programas que voc e recebe ou obt em de um site e que dizem ser jogos ou protetores de tela. Traps S ao como backdoors. Garantir uma forma de retornar a um computador comprometido, sem precisar recorrer aos m etodos utilizados na realiza c ao da invas ao. A forma usual de inclus ao de um backdoor consiste na adi c ao de um novo servi co ou substitui c ao de um determinado servi co por uma vers ao alterada, normalmente incluindo recursos que permitam acesso remoto (atrav es da Internet). Spyware/Adware Spyware (Software Espi ao) e Adware (Publicidade n ao desejada). Spyware s ao arquivos ou aplicativos que s ao instalados em seu computador, algumas vezes sem seu consentimento ou autoriza c ao, ou mesmo depois que voc e aceita as Condi c oes de Uso. Os Spyware monitoram e capturam informa c oes das atividades dos usu arios, as enviando para servidores onde s ao armazenadas para ns em geral comerciais. Tais informa c oes ser ao posteriormente vendidas a provedores de produtos e servi cos como maillings. Estes provedores utilizam-se destas informa c oes para difundir informa co es na forma de spam. Podem ser maliciosos, incluindo programas que capturam as informa c oes de tudo o que e digitado no teclado. Adware, semelhante aos spyware, s ao aplicativos instalados da mesma forma que no caso anterior, fazendo com que banners publicit arios de servi cos e produtos aparecem na sua telinha.

http://www.candidatoreal.com

DoS/DDoS O objetivo de tais ataques e indisponibilizar o uso de um ou mais computadores, e n ao invadi-los. Nos ataques de nega c ao de servi co (DoS Denial of Service) o atacante utiliza um computador para tirar de opera c ao um servi co ou computador conectado ` a Internet. No DDoS (Distributed Denial of Service) constitui um ataque de nega c ao de servi co distribu do, ou seja, um conjunto de computadores e utilizado para tirar de opera c ao um ou mais servi cos ou computadores conectados ` a Internet. Normalmente estes ataques procuram ocupar toda a banda dispon vel para o acesso a um computador ou rede, causando grande lentid ao ou at e mesmo indisponibilizando qualquer comunica c ao com este computador ou rede.

387

http://www.candidatoreal.com

IP Spoong O IP spoong consiste na troca do IP original por um outro, podendo assim se passar por um outro host. A pessoa que ir a realizar o spoong tem ent ao dois problemas na verdade: o de alterar o ip origem, mais simples de resolver, e o de manter a seq u encia de n umeros, que por serem geradas arbitrariamente, complica em muito esta tarefa. As seq u encias de n umeros s ao geradas no TCP para a comunica c ao entre os hosts. Flooding O TCP Flood SYN attack tira vantagem do comportamento do 3 way handshake efetuado pelo protocolo TCP no processo de uma conex ao. O attacker faz um pedido de conex ao para o servidor da vitima com pacotes que carregam o endere co falsicado de IP da fonte (m etodo IP spoong). Como resultado o servidor da vitima perde tempo e recursos de m equina que poderiam estar sendo usados para outros processos. O UDP Flood attack simplesmente envia pacotes de UDP randomicamente para todas as portas do servidor da vitima. Ping Flood attack e uma t ecnica de attack que tenta saturar uma conex ao de Internet atrav es do envio continuo de uma serie de pings originados tipicamente em redes de alta velocidade para redes de baixa velocidade. Al em dos mecanismo mais tradicionais de infec c ao tais como setor de boot, macros e mem oria, tr es vetores tamb em se destacam: correio eletr onico, compartilhamento de arquivos e falhas no sistema operacional. Curiosamente enquanto os v rus antigos faziam uso de mecanismos extremamente complexos para se infectar, hoje em dia v arios dos vermes e v rus fazem uso dos pr oprios recursos do sistema operacional.

47.1

Estrat egias de combate ` a pragas eletr onicas

http://www.candidatoreal.com

A estrat egia de mais longo prazo e a preven c ao. Usu arios, suporte e administradores devem ser alertados para os riscos de v rus de computador e mecanismos ecazes, em acordo com a pol tica de seguran ca, que deve ser colocada em pr atica. As tarefas mais comuns que devem ser realizadas s ao a an alise e remo c ao de compartilhamento de redes Microsoft, an alise e atualiza c ao do sistema operacional e an alise e atualiza c ao do sistema de antiv rus do usu ario. Campanhas de conscientiza c ao tamb em s ao importantes, os usu arios devem ser alertados sobre os perigos existentes em determinadas a c oes, como baixar arquivos execut aveis por e-mail. No caso em que uma rea c ao e necess aria, n ao basta somente remover a praga importante registrar o incidente e analisar qual fato levou ` eletr onica. E a infec c ao e tomar as medidas cab veis para a remo c ao da vulnerabilidade. Tamb em e importante que esquipes de resposta ` a emerg encia sejam criadas dentro da estrutura do org ao.

47.1.1

Antiv rus

Todos os antiv rus agem de forma semelhante. Existem dois m etodos b asicos usados para combater v rus. O primeiro consiste em manter nos antiv rus um grande banco de dados onde cam registradas todas as assinaturas (parte do 388

http://www.candidatoreal.com

v rus que o caracteriza) de v rus conhecidos. Da a import ancia de manter seu antiv rus atualizado, pois a cada dia surgem centenas de novos v rus. Assim, quando procuramos v rus no sistema, na verdade, o que estamos fazendo e comparar cada arquivo nosso com a assinatura dos v rus registrados. A segunda forma de prote c ao e conhecida como inocula c ao, que nada mais e que a cria c ao de um banco de dados contendo as principais informa c oes (tamanho, data de cria c ao e data da ultima altera c ao) sobre os arquivos inoculados. Assim, cada vez que procuramos por v rus no sistema, o programa antiv rus compara as informa c oes do banco de dados criado com as que est ao no disco. Se houver alguma diferen ca e emitido um alerta. Mas note que n ao e qualquer arquivo que deve ser inoculado, uma vez que arquivos de dados sempre s ao alterados. Os arquivos execut aveis, DLLs e arquivos de sistema s ao exemplos de arquivos que devem ser inoculados, pois s ao as principais v timas de v rus e n ao mudam seu conte udo com freq u encia.

http://www.candidatoreal.com

389

http://www.candidatoreal.com

Cap tulo 48

Princ pios de Criptograa


Em um processo de comunica c ao, uma mensagem pode ser denida como um conjunto de informa c oes que um remetente deseja enviar para um ou mais destinat arios. O processo de modicar uma mensagem de forma esconder seu conte udo e chamado encripta c ao. A ci encia que estuda a encripta c ao e decripta c ao de mensagens e chamada Criptograa. No in cio, a criptograa era utilizada com o u nico intuito de garantir condencialidade. Somente as pessoas que conhecessem o processo de criptograa utilizada poderiam ler a mensagem. Atualmente, a criptograa e utilizada para prover tamb em as seguintes garantias: Autentica c ao: Provar a identidade dos participantes em um processo de comunica c ao; Integridade: Permitir que o receptor verique se a mensagem n ao foi alterada ou corrompida ao longo do caminho; Incontestabilidade: Impedir que um remetente negue o envio de uma mensagem. A incontestabilidade tamb em e chamada n ao-rep udio. Em outras palavras, e poss vel provar para um terceiro que uma mensagem s o pode ter sido gerada por um remetente espec co. Um algoritmo de criptograa e uma fun c ao matem atica utilizada para encriptar e decriptar uma mensagem. Inicialmente, o segredo da comunica c ao era baseado no segredo do algoritmo de criptograa, de forma que para que duas se comunicassem de forma segura, ambas precisavam conhecer o algoritmo. Nos sistemas criptogr acos atuais o segredo de comunica c ao e baseado no segredo de uma chave de criptograa. A chave de criptograa e passada como par ametro para o algoritmo pra que esse possa criptografar ou descriptografar uma mensagem. Neste modelo, o algoritmo de criptograa e p ublico, e somente aqueles que conhecem a chave de criptograa utilizada para encriptar uma mensagem s ao capazes de decript a-la. O conjunto de valores que uma chave pode assumir e chamado espa co de chaves (keyspace ). Na Internet, por exemplo, atualmente s ao utilizadas chaves com comprimento de at e 4096 bits, o que permite escolher uma chave em um conjunto de 24096 elementos. Portanto, utilizando uma chave com esse comprimento seria poss vel criptografar uma mensagem de 24096 formas diferentes 390

http://www.candidatoreal.com

http://www.candidatoreal.com

utilizando o mesmo algoritmo.

48.1

Tipos de Criptograa

As t ecnicas de criptograa s ao divididas em tr es tipos principais que s ao: (i) Fun c oes Hash; (ii) Criptograa Sim etrica e (iii) Criptograa Assim etrica. O tipo de garantia (autentica c ao, integridade, n ao-rep udio e conabilidade) que se deseja no processo de comunica c ao e o que determina qual o tipo de criptograa que se deve utilizar. Os tipos de criptograa s ao descritos a seguir: Fun c oes Hash: Fun c oes matem aticas que transformam um texto em uma sequ encia de caracteres de tamanho xo (128, 160, 512 bits, por exemplo) independente do tamanho do texto. A sequ encia de caracteres geradas e conhecida como resumo da mensagem (message digest ). A seguran ca das fun c oes hash se baseiam no fato delas serem fun c oes s o de ida. A sa da do processo de uma fun c ao hash n ao e dependente da entrada de uma forma clara, o que na pr atica torna imposs vel alterar uma mensagem de modo que o mesmo hash seja gerado e mensagem continue fazendo sentido. Boas fun c oes hash tamb em devem garantir que seja computacionalmente imposs vel gerar a mensagem original a partir de seu hash; composto por uma chave e um algoritmo que Criptograa Sim etrica: E pode ser executado no modo de encripta c ao, para cifrar uma mensagem, ou decripta c ao, para decifr a-la. A chave utilizada nos processos de encripta c ao e decripta c ao e a mesma e deve ser mantida em segredo entre as partes comunicantes. Os algoritmos de criptograa sim etrica geralmente s ao baseados em opera c oes de shift e XOR, o que permite que sejam extremamente ecientes e de f acil implementa c ao em hardware; composto por um algoritmo e um par de Criptograa Assim etrica: E chaves p ublica e privada geralmente denotadas por K + e K respectivamente. Uma mensagem cifrada com a chave K + s o pode ser decifrada com a chave K e vice-versa. Dessa forma, se Bob deseja garantir que sua mensagem s o poder a ser lida por Alice, ent ao ele deve cifrar a mensagem com a chave p ublica de dela. Como Alice e, em tese, a u nica detentora de sua chave privada, ela ser aau nica capaz de decifrar a mensagem enviada por Bob. Dessa maneira pode-se garantir a condencialidade da mensagem. Repare que nem mesmo Bob ser a capaz de decifrar a mensagem. Bob pode ainda cifrar uma mensagem com sua pr opria chave privada e enviar para Alice. Nesse caso, para decifrar a mensagem Alice dever a utilizar a chave p ublica de Bob. Dessa forma, Alice poderia garantir que foi realmente Bob quem enviou a mensagem e n ao um impostor. Algoritmos de criptograa assim etrica geralmente s ao baseados em opera c oes de fatora c ao, exponencia c ao e logaritmos de grandes n umeros, o que os torna muito mais lentos do que os algoritmos sim etricos. A criptograa de chave assim etrica e a base do sistema de criptograa de chave p ublica, que ser a discutido mais adiante;

http://www.candidatoreal.com

391

http://www.candidatoreal.com

48.2

Algoritmos de Criptograa Sim etricos

Tr es exemplos de cifras (m etodo de criptograa) do tipo chave sim etrica s ao: Cifra de C esar cada letra do texto cifrado recebe a letra do texto aberto mais uma constante, com rota c ao no alfabeto. Cifra Monoalfab etica Cada letra do texto aberto e substitu da por uma outra u nica letra. Cifra Polialfab etica Usa-se v arias cifras de C esar para se levar em considera c ao a posi c ao da letra no texto. Ou seja, a constante de C esar se modica em fun c ao da posi c ao da letra no texto aberto. Os algoritmos sim etricos utilizados na pr atica s ao: DES (Data Encryption Standard) O DES utiliza uma chave de 56 bits e opera em blocos de 64 bits de mensagem. Foi projetado inicialmente para ser utilizado em componentes de hardware, nos dias atuais, ele e usado na Internet em conex oes Web segura, pois o SSL se utiliza do DES. Ele e um algoritmo seguro para a maioria das aplica c oes, entretanto, em aplica c oes altamente secretas, ele n ao deve ser usado, pois existe o perigo de viola c ao. 3DES S ao usados 3 est agios e duas chaves. No primeiro est agio, o texto simples e criptografado com chave K1 da maneira usual do DES. No segundo est agio, o DES e executado no modo de descriptograa, com o uso de uma chave K2. Por m, outra criptograa e feita com a chave K1. S ao utilizadas 2 chaves porque os cript ografos concordam que 112 bits ser ao sucientes para aplica c oes comerciais durante um tempo. O uso de 168 bits s o criaria overhead desnecess ario de gerenciar e transportar outra chave, com pouco ganho real. Ao utilizar dessa maneira (criptograa, descriptograa, criptograa), um computador que utiliza a criptograa tripla pode se comunicar com outro que utiliza a criptograa simples apenas denindo k1=k2. RC2 e RC4 Mais r apidos do que o DES, esses c odigos podem se tornar mais seguros com o simples aumento do tamanho das chaves, O RC2 pode substituir perfeitamente o DES com a vantagem de ser 2 vezes mais r apido, j a o RC4 ca 10 vezes mais r apido. Algumas chaves s ao fracas. Suas chaves s ao de 1 a 2048 bits.

http://www.candidatoreal.com

IDEA (International Data Encryption Algorithm) Criado em 1991. Ele foi projetado para ser facilmente programado, e forte e resistente a muitas formas de criptoan alise. Possui chave de 128 bits, por em e patenteado. AES (Advanced Encryption Standard) Foi promovido em um concurso um novo padr ao cujas propostas eram: 1 - O algoritmo teria de ser uma cifra de bloco sim etrica; 2 - Todo o projeto teria de ser p ublico; 3 - Deveriam ser admitidos tamanhos de chaves iguais a 128, 192 e 256 bits; 4 Teriam de ser poss veis implementa c oes de software e de hardware; 5 - O algoritmo teria de ser p ublico ou licenciado em termos n ao-discriminat orios. Os nalistas: 1 - Rijndael; 2 - Serpent; 3 - Twosh; 4 - RC6; 5 - MARS.

392

http://www.candidatoreal.com

Cifra Blowsh DES IDEA RC4 RC5 Rijndael Serpent 3DES Twosh

Autor Bruce Schneier IBM Massey e Xuejia Ronald Rivest Ronald Rivest Daemen e Rijmen Anderson, Biham, Knudsen IBM Bruce Schneier

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

Tabela 48.1: Alguns algoritmos criptogr acos de chave sim etrica

48.3

Algoritmos de Criptograa Assim etricos

A criptograa de chave p ublica ou criptograa assim etrica, foi criada em 1970. Esse m etodo 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 ca publicamente dispon vel, e outra, que deve ser mantida em segredo. O algoritmo que se mant em at e 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) atrav es da Internet; A pessoa (B), recebe as mensagens de (A) e (C), na qual ela usa a chave privada para descriptografar; A pessoa (B), l e as mensagens, e se, tiver que responde-las, dever a usar as chaves p ublicas de criptograa de (A) e ou (C). Nesse momento, e importante enfatizar que o sigilo da chave privada e muito importante, pois, a criptograa assim etrica, se baseia no fato de que a chave privada, e realmente privada, por isso, somente seu detentor deve ter acesso. A descri c ao do algoritmo mais utilizado segue abaixo: RSA (Rivest, Shamir, Adleman) O m etodo se baseia em alguns princ pios da teoria dos n umeros. De forma resumida: Escolha dois n umeros primos extensos, p e q (geralmente, de 1024 bits) Calcule n = p x q e z = (p-1) x (q-1) Escolha um n umero d tal que z e d sejam primos entre si Encontre e de forma que e x d = 1 mod z

http://www.candidatoreal.com

393

http://www.candidatoreal.com

Com esses par ametros calculados com anteced encia, estamos prontos para come car a criptograa. Divida o texto simples (considerado um string de bits) em blocos, de modo que cada mensagem de texto simples P que no intervalo 0 <= P < n. Isso pode ser feito agrupando-se o texto simples em blocos de k bits, onde k e o maior inteiro para o qual a desigualdade 2k < n e verdadeira. Para criptografar a mensagem P, calcule C = P e(modn). Para descrip poss tografar C, calcule P = Cd(modn). E vel provar que, para todo P na faixa especicada, as fun c oes de criptograa e descriptograa s ao inversas entre si. Portanto, a chave p ublica consiste no par (e,n) e a chave privada consiste em (d,n). Lento demais para codicar grande volume de dados, mas amplamente utilizado para a distribui c ao de chaves. A seguran ca do sistema est a baseado na diculdade de fatorar n umeros grandes.

48.4

T ecnicas de Quebra de Criptograa

Basicamente, os tr es tipos de ataque destinado ` a quebra de criptograa s ao: Ataque Exclusivo a Texto Cifrado N ao se conhece o texto aberto. An alise estat stica geralmente e utilizada para se extrair algo do texto cifrado. Ataque com Texto Aberto Conhecido Se conhece o texto cifrado e pelo menos parte do texto aberto. A descoberta da chave ca menos complexa em rela c ao ao caso anterior. poss Ataque com Texto Aberto Escolhido E vel escolher o texto aberto a ser encriptografado. Desta forma, a descoberta da chave ca mais facilitada.

http://www.candidatoreal.com

394

http://www.candidatoreal.com

Cap tulo 49

Autentica c ao
49.1 Autentica c ao de Mensagens

Autentica c ao de mensagens e um mecanismo ou servi co utilizado para vericar a integridade de uma mensagem. Os m etodos mais comuns s ao MAC (message autentication code ) e fun c oes hashes seguras. O MAC requer o uso de chave secreta e e produzido atrav es do uso dessa chave em uma mensagem de tamanho vari avel. Uma fun c ao hash mapeia uma mensagem de tamanho vari avel em um hash de tamanho xo e para garantir o n ao-rep udio e utilizado em conjunto com uma chave privada. Quando o m etodo de autentica c ao garante o n ao rep udio, ent ao trata-se de uma assinatura digital. O MAC n ao prov e assinatura digital, uma vez que o remetente e o receptor compartilham a mesma chave. As fun c oes hash s ao utilizadas para a gera c ao de sum arios de mensagens message digests. Com os sum arios de mensagens e poss vel fornecer autentica c 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 imposs vel encontrar a mensagem original. 3. Dada uma mensagem, ningu em pode encontrar uma mensagem diferente com o mesmo sum ario que ela. 4. Uma mudan ca de um bit na mensagem produz dr asticas mudan cas no sum ario. As fun c oes de hash mais utilizadas s ao o MD5 e o SHA-1. O sum ario gerado pelo MD5 possui 128 bits e e um melhoramento do MD4. J a o SHA-1 trabalha com hash de 160 bits. O SHA-1 foi considerado o sucessor do MD5. Ambos t em vulnerabilidades comprovadas. Em algumas correntes, e sugerido que o SHA-256 ou superior seja usado para tecnologia cr tica. O MAC mais utilizado e o HMAC, que e utilizado no IPSec. O HMAC se baseia em algoritmos de hash como o SHA-1 e o MD5.

http://www.candidatoreal.com

395

http://www.candidatoreal.com

49.2

Protocolos de Autentica c ao

A autentica c ao e a t ecnica atrav es de qual um processo conrma que seu parceiro na comunica c ao e quem deve ser e n ao um impostor.

49.2.1

M etodos de Autentica c ao

A autentica c ao pode ser feita com a combina c ao de um ou mais dos itens abaixo: Algo que voc e saiba, um n umero de identica c ao pessoal ou uma senha (autentica c ao tipo 1). Algo que voc e tenha, um cart ao de banco ou um cart ao com chip (autentica c ao tipo 2). Em alguns casos, esses dispositivos geram senhas automaticamente e s ao conhecidos como tokens. Algo que voc e e, impress ao digital ou escaneamento de retina (autentica c 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

Para efetuar uma autentica c ao baseada em uma chave secreta compartilhada, e necess ario que Alice e Bob estabele cam essa chave (Kab ). Os protocolos de autentica c ao baseada em uma chave secreta e baseada no princ pio do desao-resposta (challenge-response), onde o emissor envia um n umero aleat orio para o receptor (nonce ); quando este recebe a mensagem, transforma o n umero recebido em uma forma especial e o retorna ao emissor. Uma brecha que n ao deve existir no protocolo e a possibilidade de ataque por reex ao, em que uma pessoa no meio da comunica c ao recebe um desao. A pessoa indesejada cria outra conex ao para obter a resposta para aquele desao, assim, utiliza a resposta para o sucesso da autentica c ao anterior. Outras propriedades importantes para os protocolos dessa classe s ao: O transmissor deve provar sua identidade antes que o receptor responda;

http://www.candidatoreal.com

As pessoas envolvidas no processo devem utilizar chaves espec cas provando suas identidades, mesmo que haja necessidade de existir duas chaves com partilhadas Kab e Kab ; Condicionar para que tanto transmissor quanto receptor extraiam seus desaos de conjuntos distintos. Na atualidade h a protocolos baseados no uso de HMACs e na codica c ao de itens atrav es do encadeamento de blocos de cifras.

396

http://www.candidatoreal.com

49.3

Certicado Digital

Um certicado digital, ou identidade digital, pode ser visto como uma carteira de identidade para uso na internet. Tecnicamente, um certicado digital e um conjunto de dados (um arquivo), assinado digitalmente pela autoridade certicadora e contento tipicamente informa c oes como: Chave p ublica do certicado; Nome e endere co de e-mail do dono do certicado; Nome e assinatura digital da autoridade certicadora; Privil egios de acesso a sites seguros; Outras. Uma Autoridade Certicadora e uma entidade de conan ca que administra a gest ao de certicados digitais atrav es da emiss ao, revoga c ao e renova c ao dos mesmos por aprova c ao individual. Uma Autoridade Certicadora pode emitir diferentes tipos de certicados, atribuindo diferentes n veis de conan ca a cada tipo. Para cada tipo de certicado e utilizado um processo diferente para realizar a verica c ao da identidade do solicitante. O padr ao para descrever certicados e o X.509 (pela ITU). Um modo diferente de certicar chaves p ublicas e o PKI (Public Key Infrastructure). Uma PKI tem v arios componentes, incluindo usu arios, CAs, entidades de registro, certicados e diret orios. A fun c ao e fornecer um modo de estruturar esses componentes e denir padr oes para os v arios documentos e protocolos. Uma forma particularmente simples de PKI e uma hierarquia de CAs. Um certicado digital e um arquivo de computador que cont em um conjunto de informa c oes referentes a entidade para o qual o certicado foi emitido (seja uma empresa, pessoa f sica ou computador) mais a chave p ublica referente a chave privada que acredita-se ser de posse unicamente da entidade especicada no certicado. Um certicado padr ao X.509 cont em os seguintes campos: Vers ao Cont em a vers ao do certicado X.509, atualmente vers ao 3 N umero serial Todo certicado possui um, n ao e globalmente u nico, mas u nico no ambito de uma AC, ac LCRs usam o serial para apontar quais certicados se encontram revogados Tipo de algoritmo Contem um identicador do algoritmo criptogr aco usado pela AC para assinar o certicado juntamente com o tipo de fun c ao de hash criptogr aca usada no certicado Nome do titular Nome da entidade para o qual o certicado foi emitido Nome do emitente Autoridade Certicadora que emitiu/assinou o certicado

http://www.candidatoreal.com

Per odo de validade Mostra o per odo de validade do certicado no formato N ao antes e N ao depois (Ex. N ao antes de 05/03/2006 - 14:35:02, N ao depois de 05/03/2007 - 14:03:2006 ) Informa c os de chave p ublica da entidade Algoritmo de chave p ublica e Chave p ublica. Assinatura da AC A garantia que a AC prov e sobre a veracidade das informa c oes contidas neste certicado de acordo com as pol ticas da AC uma extens Identicador da chave do titular E ao do X.509 que possui um identicador num erico para a chave p ublica contida neste certicado, especialmente u til para que programas de computador possam se referir a ela 397

http://www.candidatoreal.com

Identicador da chave do emitente A mesma id eia mencionada anteriormente, s o que se referindo a chave p ublica da AC que emitiu o certicado Atributos ou extens oes A vasta maioria dos certicados X.509 possui campos chamados extens oes (OID) que prov eem algumas informa c oes extras, como cadastros adicionais do titular e do emitente, especica c oes de prop osito do certicado e etc.

http://www.candidatoreal.com

398

http://www.candidatoreal.com

Cap tulo 50

Seguran ca em diversas camadas


50.1 Secure Sockets Layer

Em 1995, a ent ao dominante do mercado de browsers, Netscape, resolveu introduzir um pacote de seguran ca chamado Secure Sockets Layer (SSL), para atender demandas por conex oes mais seguras na internet. O SSL se tornou um padr ao e at e hoje e utilizado para prover conex oes seguras. O SSL est a posicionado entre a camada de transporte e a camada de aplica c ao da pilha TCP/IP e funciona provendo servi cos de autentica c ao do servidor, comunica c ao secreta e integridade dos dados. O SSL pode ser utilizado para prover seguran ca na comunica c ao de qualquer aplica c 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 inv es da porta 80. Antes que o cliente e o servidor iniciem a troca de mensagens de forma segura e necess ario que se estabele ca uma conex ao SSL seguindo as seguintes epatas: 1. O cliente e o servidor negociam par ametros de conex ao como vers ao do protocolo, n umero da sess ao, algoritmos de cifragem, algoritmo de compacta c ao. Eles trocam ainda valores rand omicos (nonce ) que ser ao utilizados no processo de gera c ao da chave de sess ao; 2. O cliente solicita o certicado do servidor. Caso o certicado do servidor esteja assinado por uma CA con avel, o cliente extrai a chave p ublica do servidor e a utiliza para criptografar uma chave pr e-mestra antes de envi a-la ao servidor. A chave pr e-mestra e utilizada em combina c ao com os valores rand omicos trocados na etapa 1 pra gerar a chave sim etrica de sess ao que ser a utilizada na comunica c ao; 3. O cliente e o servidor trocam mensagens de controle para sinalizar que todas as pr oximas mensagens ser ao cifradas utilizando a chave de sess ao gerada. 399

http://www.candidatoreal.com

http://www.candidatoreal.com

A partir da etapa 3, todos os dados gerados pela camada de aplica c ao ser ao cifrados pelo SSL antes de serem repassados para a camada de transporte. E importante ressaltar que o SSL n ao cifra as informa c oes do cabe calho TCP, mas somente os dados gerados pela camada de aplica c ao.

50.2

IPSec

A IETF sabia h a muitos anos da car encia de seguran ca na Internet. Para aument a-la, havia uma disputa para denir onde coloc a-la. Para especialistas, a seguran ca deveria ser colocada no n vel de aplica c ao. A diculdade com essa abordagem e que ela exigiria que todas as aplica c oes fossem modicadas am de torn a-las seguras. Outra abordagem seria colocar a seguran ca em um n vel intermedi ario entre aplica c ao e transporte, como e feito no SSL. Dessa forma, as aplica c oes n ao precisariam ser alteradas completamente. Uma outra vis ao e que os usu arios n ao conhecem seguran ca, e portanto n ao seriam capazes de implement a-la corretamente nos n veis de transporte ou aplica c ao. A partir desse princ pio, IETF introduziu o IPSec. O IPSec e uma su te de protocolos que foi desenvolvida para proporcionar autentica c ao, condencialidade e integridade dos dados no n vel de rede. Todos os servi cos oferecidos pelo IPSec s ao baseados em criptograa de chave sim etrica importante ressaltar que o projeto porque o alto desempenho e importante. E do IPSec e independente do algoritmo de criptograa utilizado, de modo que a quebra de um algoritmo n ao represente o m 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 criptograa que ser a a utilizada por um determinado per odo. 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 ). O IPSec e baseado na adi c ao de cabe calhos adicionais que podem ser de dois tipos. O primeiro delese e o AH (Authentication Header ), enquanto o segundo e o ESP (Encapsulation Security Payload ).

http://www.candidatoreal.com

O cabe calho AH e capaz de prover autentica c ao e checagem de integridade dos dados por meio do campo HMAC (Hashed Message Authentication Code ). Esse campo cont em um hash da mensagem criptografado com a chave estabelecida na cria c ao da conex ao. Nesse modo de opera c ao, o IPSec n ao e capaz de oferecer condencialidade, j a que os dados em si n ao s ao criptografados. No modo ESP os dados s ao cifrados garantindo-se tamb em a condencialidade na comunica c ao. A integridade e a autentica c ao dos dados s ao obtidos com o campo HMAC, que tamb em est a presente no cabe calho ESP. Com o ESP e poss vel operar de duas formas que s ao conhecidas como modo transporte e modo tunel. No modo transporte, o cabe calho original do pacote IP n ao e

400

http://www.candidatoreal.com

criptografado, e e utilizado para rote a-lo ao longo do caminho. J a no modo tunel, o pacote IP inteiro e criptografado e inserido dentro de um novo pacote IP juntamente com o cabe calho ESP. O modo t unel e utilizado, por exemplo, para implementar VPNs seguras usando IPSec. Os modos de opera c ao do IPSec de acordo com o protocolo de extens ao utilizado podem ser vistos na gura 50.1.

Figura 50.1: Modos de opera c ao do IPSec

50.3

Virtual Private Network (VPN)

http://www.candidatoreal.com

A id eia de utilizar uma rede p ublica como a Internet em vez de linhas privativas para implementar redes corporativas e denominada de Virtual Private Network (VPN) ou Rede Privada Virtual. As VPNs s ao t uneis de criptograa entre pontos autorizados, criados atrav es da Internet ou outras redes p ublicas e/ou privadas para transfer encia de informa c oes, de modo seguro, entre redes corporativas ou usu arios remotos. A seguran ca e a primeira e mais importante fun c ao da VPN. Uma vez que dados privados ser ao transmitidos pela Internet, que e um meio de transmiss ao inseguro, eles devem ser protegidos de forma a n ao permitir que sejam modicados ou interceptados. Outro servi co oferecido pelas VPNs e a conex ao entre corpora c oes (Extranets) atrav es da Internet, al em de possibilitar conex oes dial-up criptografadas que podem ser muito u teis para usu arios m oveis ou remotos, bem como liais distantes de uma empresa. Uma das grandes vantagens decorrentes do uso das VPNs e a redu c ao de custos com comunica c oes corporativas, pois elimina a necessidade de links dedicados de longa dist ancia que podem ser substitu dos pela Internet. As LANs podem, atrav es de links dedicados ou discados, conectar-se a algum provedor de acesso local e interligar-se a outras LANs, possibilitando o uxo de dados atrav es da Internet. Esta solu c ao pode ser bastante interessante sob o ponto de vista econ omico, sobretudo nos casos em que enlaces internacionais ou nacionais de longa dist ancia est ao envolvidos. Outro fator que simplica a operacionaliza c ao da WAN e que a conex ao LAN-Internet-LAN ca parcialmente a cargo dos provedores de acesso.

401

http://www.candidatoreal.com

Abaixo, s ao apresentadas as tr es aplica c oes ditas mais importantes para as VPNs. ACESSO REMOTO VIA INTERNET DE LANS VIA INTERNET CONEXAO DE COMPUTADORES NUMA INTRANET CONEXAO No desenvolvimento de solu c oes de rede, e bastante desej avel que sejam implementadas facilidades de controle de acesso a informa c oes e a recursos corporativos. A VPN deve dispor de recursos para permitir o acesso de clientes remotos autorizados aos recursos da LAN corporativa, viabilizar a interconex ao de LANs de forma a possibilitar o acesso de liais, compartilhando recursos e informa c oes e, nalmente, assegurar privacidade e integridade de dados ao atravessar a Internet bem como a pr opria rede corporativa. A seguir s ao enumeradas caracter sticas m nimas desej aveis numa VPN: Autentica c ao de Usu arios: Verica c ao da identidade do usu ario, restringindo o acesso ` as pessoas autorizadas. Deve dispor de mecanismos de auditoria, provendo informa c oes referentes aos acessos efetuados - quem acessou, o qu e e quando foi acessado. Gerenciamento de Endere co: O endere co do cliente na sua rede privada n ao deve ser divulgado, devendo-se adotar endere cos ct cios para o tr afego externo. Criptograa de Dados: Os dados devem trafegar na rede p ublica ou privada num formato cifrado e, caso sejam interceptados por usu arios n ao autorizados, n ao dever ao ser decodicados, garantindo a privacidade da informa c ao. O reconhecimento do conte udo das mensagens deve ser exclusivo dos usu arios autorizados. Gerenciamento de Chaves: O uso de chaves que garantem a seguran ca das mensagens criptografadas deve funcionar como um segredo compartilhado exclusivamente entre as partes envolvidas. O gerenciamento de chaves deve garantir a troca peri odica das mesmas, visando manter a comunica c ao de forma segura. Suporte a M ultiplos Protocolos: Com a diversidade de protocolos existentes, torna-se bastante desej avel que uma VPN suporte protocolos padr ao de fato usadas nas redes p ublicas, tais como IP (Internet Protocol), IPX (Internetwork Packet Exchange), etc. As redes virtuais privadas baseiam-se na tecnologia de tunelamento cuja exist encia e anterior ` as VPNs. Ele pode ser denido como processo de encapsular um protocolo dentro de outro. O uso do tunelamento nas VPNs incorpora um novo componente a esta t ecnica: antes de encapsular o pacote que ser a transportado, este e criptografado de forma a car ileg vel caso seja interceptado durante o seu transporte. O pacote criptografado e encapsulado viaja atrav es da Internet at e alcan car seu destino onde e desencapsulado e decriptografado, retornando ao seu formato original. Uma caracter stica importante e que pacotes de um determinado protocolo podem ser encapsulados em pacotes de protocolos diferentes. Por exemplo, pacotes de protocolo IPX podem ser encapsulados e transportados dentro de pacotes TCP/IP. O protocolo de tunelamento encapsula o pacote com um cabe calho adicional que cont em informa c oes de roteamento que permitem a travessia dos pacotes ao longo da rede intermedi aria. Os pacotes encapsulados s ao roteados entre as extremidades do t unel na rede intermedi aria. T unel e a denomina c ao do caminho l ogico percorrido pelo pacote ao longo da rede intermedi aria Ap os alcan car 402

http://www.candidatoreal.com

http://www.candidatoreal.com

o seu destino na rede intermedi aria, o pacote e desencapsulado e encaminhado ao seu destino nal. A rede intermedi aria por onde o pacote trafegar a pode ser qualquer rede p ublica ou privada. Note que o processo de tunelamento envolve encapsulamento, transmiss ao ao longo da rede intermedi aria e desencapsulamento do pacote. Para se estabelecer um t unel e necess ario que as suas extremidades utilizem o mesmo protocolo de tunelamento. O tunelamento pode ocorrer na camada 2 ou 3 (respectivamente enlace e rede) do modelo de refer encia OSI (Open Systems Interconnection). Tunelamento em N vel 2 - Enlace - (PPP sobre IP): O objetivo e transportar protocolos de n vel 3, tais como o IP e IPX na Internet. Os protocolos utilizam quadros como unidade de troca, encapsulando os pacotes da camada 3 (como IP/IPX) em quadros PPP (Point-to-Point Protocol). Como exemplos, podemos citar: PPTP (Point-to-Point Tunneling Protocol) da Microsoft permite que o tr afego IP, IPX e NetBEUI sejam criptografados e encapsulados para serem enviados atrav es de redes IP privadas ou p ublicas como a Internet. L2TP (Layer 2 Tunneling Protocol) da IETF (Internet Engineering Task Force) permite que o tr afego IP, IPX e NetBEUI sejam criptografados e enviados atrav es de canais de comunica c ao de datagrama ponto a ponto tais como IP, X25, Frame Relay ou ATM. L2F (Layer 2 Forwarding) da Cisco e utilizada para VPNs discadas. Tunelamento em N vel 3 - Rede - (IP sobre IP): Encapsulam pacotes IP com um cabe calho adicional deste mesmo protocolo antes de envi a-los atrav es da rede. O IP Security Tunnel Mode (IPSec) da IETF permite que pacotes IP sejam criptografados e encapsulados com cabe calho adicional deste mesmo protocolo para serem transportados numa rede IP p ublica ou privada. O IPSec e um protocolo desenvolvido para IPv6, devendo, no futuro, se constituir como padr ao para todas as formas de VPN caso o IPv6 venha de fato substituir o IPv4. O IPSec sofreu adapta c oes possibilitando, tamb em, a sua utiliza c ao com o IPv4.

50.4
http://www.candidatoreal.com

Filtragem de Pacotes e Firewalls

Filtragem de pacotes e o bloqueio ou libera c ao da passagem de pacotes de dados de maneira seletiva, conforme eles atravessam a interface de rede. Em sistemas Linux, por exemplo, a ltragem de pacotes e implementada diretamente no kernel. Esses ltros inspecionam os pacotes com base nos cabe calhos de transporte, rede ou at e mesmo enlace. Os crit erios mais utilizados s ao os endere cos IP e portas TCP/UDP de origem e destino. Alguns ltros de pacotes tamb em s ao capazes de transformar o conte udo dos pacotes, como e o caso do netlter do Linux. Normalmente ` as pessoas se referem ao ltro de pacotes do Linux pelo nome de iptables. Na verdade, o iptables e uma utilit ario de linha de comando a partir do qual podem ser conguradas as

403

http://www.candidatoreal.com

regras de ltragem do netlter. O netlter e formado por um conjunto de cadeias. Cada cadeia e um ponto no caminho que um pacote IP percorre ao entrar ou sair de uma m aquina. A gura 50.2 mostra as cadeias do netlter.

Figura 50.2: Estrutura do netlter A cadeia PREROUTING est a ligada ` a entrada de pacotes na m aquina. Ap os a decis ao de roteamento, os pacotes que n ao s ao destinados ` a m aquina local atravessam a cadeia FORWARD e nalmente saem da m aquina passando pela cadeia POSTROUTING. A cadeia INPUT e atravessada pelos pacotes que chegam com destino ` a m aquina local, enquanto que a cadeia OUTPUT e utilizada pelos pacotes originados localmente. Para ltrar ou transformar pacotes IP, o netlter possui estruturas chamadas tabelas. Cada tabela possui regras, que por sua vez se fazem refer encia a uma cadeia. As tabelas padr ao do netlter mais utilizadas s ao a lter, para implementa c ao de um rewall, e a tabela nat, utilizada para fazer NAT. As regras podem ser criadas pelo administrador de acordo com o que deseja implementar, por exemplo, um rewall ou NAT. Cada regra especica um padr ao ou crit erio a ser comparado com os pacotes e um alvo. Um alvo e uma a c ao pr e-denida a ser tomada quando um pacote casa com a regra. Os alvos mais comuns s ao: ACCEPT: deixa o pacote passar;

http://www.candidatoreal.com

DROP: impede que o pacote siga adiante; REJECT: impede que o pacote siga adiante e envia uma mensagem ICMP ao sistema de origem; MASQUERADE: mascara os pacotes como se eles tivessem sido originados pela m aquina local. Utilizado para implementa c ao de NAT. Um rewall pode ser congurado seguindo uma postura permissiva ou restritiva. Uma congura c ao permissiva permite tudo o que n ao for exeplicitamente negado, enquanto uma congura c ao restritiva nega tudo o que n ao for exmplicitamente permitido. A postura padr ao de um rewall e conhecida como policy. A seguir s ao mostrados alguns exemplos de regras de rewall utilizando a sintaxe 404

http://www.candidatoreal.com

do iptables.

50.4.1

Regras iptables - Exemplo 1

1. Pela interface ppp0, e permitido o tr afego de entrada com origem 172.16.100.200 e destino 192.168.130.0/24. iptables -i ppp0 -A FORWARD -s 172.16.100.200 -d 192.168.130.0/24 -j ACCEPT

2. Pela interface ppp0, e permitido o tr afego de sa da com origem 192.168.130.0/24 e destino 172.16.100.200. iptables -o ppp0 -A FORWARD -s 192.168.130.0/24 -d 172.16.100.200 -j ACCEPT

3. Pela interface ppp0, tr afego de entrada, e negada toda e qualquer outra origem e outro destino. Loga este bloqueio. iptables -i ppp0 -A FORWARD -j DROP --log

4. Pela interface ppp0, tr afego de sa da, e negada toda e qualquer outra origem e outro destino. Loga este bloqueio. iptables -o ppp0 -A FORWARD -j DROP --log

50.4.2

Regras iptables - Exemplo 2

1. Pela interface ppp0, permite a sa da de pacotes com destino a porta TCP 23 de qualquer sistema remoto desde que a porta TCP de origem seja maior ou igual a 1024. iptables -o ppp0 -A FORWARD -p tcp -s 192.168.10.0/24 -d 0/0 --sport 1024:65535 --dport 23 -j ACCEPT 2. Pela interface ppp0, permite respostas aos pacotes aceitos na regra anterior, desde que os pacotes n ao tenham o ag SYN setado. Isso signica dizer que n ao e poss vel iniciar que um host externo inicie o processos de abertura de conex ao TCP com hosts da rede 192.168.10.0/24 nas portas acima de 1023. iptables -i ppp0 -A FORWARD -p tcp -s 0/0 -d 192.168.10.0/24 --sport 23 --dport 1024:65535 ! -syn -j ACCEPT

http://www.candidatoreal.com

405

http://www.candidatoreal.com

3. Pela interface ppp0, tr afego de entrada, e negada toda e qualquer outra origem e outro destino. Loga este bloqueio. iptables -i ppp0 -A FORWARD -j DROP --log 4. Pela interface ppp0, tr afego de sa da, e negada toda e qualquer outra origem e outro destino. Loga este bloqueio. iptables -o ppp0 -A FORWARD -j DROP --log

50.4.3

Firewall Stateful

Um rewall de ltro de pacotes e dito um rewall sem estado. Isso porque ele trata cada um dos pacotes que atravessam a interface de forma independente. Na segunda sequ encia 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 uxo de dados em ambos os sentidos entre origem e destino. As conex oes TCP s ao caracterizadas por uma s erie de atributos como IPs de origem e destino, portas de origem de destino, n umeros de sequ encia etc. Em conjunto, esses atributos determinam o estado de uma conex ao TCP. Ao contr ario dos rewalls de ltro de pacotes, um rewal stateful n ao ltra pacotes de forma isolada, mas sim com base em informa c oes sobre o estado de conex oes pr e-estabelecidas. Para um rewall stateful, a comunica c ao bidirecional e impl cita, de forma que n ao h a necessidade de se escrever regras de ltragem para cada um dos sentidos. A seguir s ao mostrados alguns exemplos de ragras para um rewall stateful utilizando a sintaxe do iptables. 1. Permite abertura de conex oes TCP com origem na rede 10.0.0.0/24 e porta acima de 1023 para qualquer outro host na porta TCP 80. O detalhe e que, al em de controlar quem tem o direito de abertura da conex ao, a regra tamb em cuida de todos os pacotes trocados em ambos os sentidos at eo m conex ao.

http://www.candidatoreal.com

iptables -A FORWARD -s 10.0.0.0/24 -d 0/0 -p tcp --sport 1024:65535 --dport 80:80 -m state --state NEW -j ACCEPT Na verdade, seria necess ario uma outra regra para permitir o controle do uxo de pacotes em ambos os sentidos. A regra e a seguinte: iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT Essa regra aceita os pacotes que atravessam a cadeia FORWARD desde que eles perten cam a alguma conex ao TCP que esteja no estado ESTABLISHED ou RELATED. No entanto, essa regra e v alida para todos os 406

http://www.candidatoreal.com

pacotes que atravessam a cadeia FORWARD, e n ao somente para os pacotes denidos na regra 1. Alguns rewalls s ao capazes de implementar o conceito de estados para comunica c oes baseadas em UDP. Geralmente, isso e alcan cado utilizando-se um temporizador. Dessa forma, os pacotes UDP trasmitidos em ambos os sentidos entre uma origem e um destino s ao tratados como uma conex ao pelo per odo de tempo denido pelo timeout.

50.4.4

Application Gateway

Embora os rewalls de ltro de pacotes e statefull apresentem uma diferen cas em como pacotes de uma determinada conex ao s ao tratados, ambos se baseiam fundamentalmente nas informa c oes do cabe calho dos protocolos da camada de transporte. Um application gateway e um rewall stateful capaz de inspecionar os dados da camada de aplica c ao para tomar decis oes mais inteligentes sobre a conex ao. Exemplos de controles realizados por um application gateway s ao autentica c ao, ltros de URL e ltros de conte udo. Um application gateway pode ser utilizado para bloquear, por exemplo, aplica c oes peer to peer (eMule, Kaaza etc.), ou mensageiros instant aneos (IRC, MSN etc.) que tentam se esconder debaixo do protocolo HTTP. No entanto, os application gateway n ao s ao capazes de inspecionar dados criptografados via SSL, por exemplo.

50.4.5

Arquitetura de rewall e DMZ

http://www.candidatoreal.com

A arquitetura de implementa c ao do rewall tamb em e um fator de an alise importante. Por arquitetura de implementa c ao entende-se a posi c ao relativa que o rewall possui em rela c ao a `s redes protegidas, aos recursos de conex ao e ` as redes externas. A an alise da arquitetura de implementa c ao de rewalls traz os conceito de Bastion Host e DMZ, que precisam ser explicados: Bastion Hosts s ao servidores cuidadosamente implementados e de alta seguran ca que mant em 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 corpora c ao. a) Dual Homed Host - s ao Bastion hosts nos quais o rewall e implementado, expondo sua interface externa e desativando o roteamento entre as interfaces externas e as interfaces internas. Assim, conex oes externas chegariam at e o Bastion host apenas, e conex oes internas teriam que obrigatoriamente passar pelo Bastion Host. Como mostra a gura abaixo, entre a internet e um Dual Homed host, poderia ser implementado um conjunto de ltros de pacotes, no roteador mais pr oximo, por exemplo, para diminuir as possibilidades de ataques,

407

http://www.candidatoreal.com

diminuindo a necessidade de ltros de pacotes no pr oprio bastion host. Esta arquitetura gera um ponto focal na rede, com vantagens e desvantagens: O tr afego centralizado permite uma administra c ao focalizada em um u nico host, por em o excesso de tr afego em um u nico host pode causar condi c oes de concorr encia e caso o bastion host seja tomado por um invasor, toda a rede estar a vulner avel a ataques. `

Figura 50.3: Arquitetura Dual Homed Host b) Screened Host - conforme a gura abaixo, essa arquitetura apresenta uma conex ao externa com liga c ao apenas a um host interno, que e um bastion host. Este host estaria conectado ` a rede interna, e n ao entre as redes, e o rewall teria que ser implementado no roteador, por emhaveria pacotes externos entrando na rede local. Apesar de ser aparentemente menos segurodo que os dual homed hosts, este tipo de arquitetura permite o acesso aos servi cos do bastion host sem causar condi c oes de concorr encia na rede, uma vez que todo o trabalho de ltragem e an alise de tr afego ocorre no roteador.

http://www.candidatoreal.com

Figura 50.4: Arquitetura Screened Host c) Screened Subnet - adicionam mais uma camada ` a seguran ca de redes atrav es da utiliza c ao de DMZ para hospedagem dos bastion hosts e de um rewall adicional que separa a rede interna da DMZ. Em uma screened subnet 408

http://www.candidatoreal.com

um rewall separa a rede externa da DMZ que hospeda os servi cos que podem ser acessados pela rede externa, como por exemplo, um servidor de correio corporativo. Dentro da DMZ est a tamb em o bastion host que cont em o rewall que d a acesso da rede interna ` a DMZ e roteia as requisi c oes da rede interna para o roteador da DMZ. Esta arquitetura de screened subnets permite maior seguran ca 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 sa da da rede e protegido por ltros de entrada no roteador externo.

50.5

Sistemas de Detec c ao de Intrus ao (IDS)

http://www.candidatoreal.com

Detec c ao de intrus ao e uma tentativa de monitorar esta c oes ou uxos de rede com o intuito de descobrir a c oes de intrusos. Mais especicamente, 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 detec c ao de ladr oes, usado em casas para se proteger de eventuais incidentes. O sistema domiciliar inicialmente precisa ser congurado e ter especicado o que monitorar (janelas, portas, movimento) e para quem alertar ou chamar em caso de uma invas ao (pol cia, donos da casa). No sistema computacional, tamb em precisamos determinar se queremos monitorar uxos de rede, processos internos de uma esta c 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 esta c ao de trabalho e alertando os respons aveis. Por em, alguns sistemas possuem a habilidade de reagir ` as invas oes, deixando de ser um sistema exclusivamente de detec c ao e pode ser denido como um Sistema de Preven c ao de Intrus ao (IPS). Exemplos de rea c oes podem ser um fechamento de conex ao, um bloqueio no rewall, execu c ao de algum arquivo, ou ainda a desabilita c ao de uma conta. Os sistemas de detec c 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 detec c ao que podem ser empregados, os baseados na rede e os baseados na esta c 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 esta c 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 esta c oes.

50.6
50.6.1

Seguran ca em Redes Wireless 802.11


WEP

Desde sua primeira vers ao, o padr ao IEEE 802.11 tentou oferecer um mecanismo de seguran ca Esse mecanismo e chamado WEP (Wired Equivalent Privacy ) e se baseia em criptograa de chave sim etrica. O proceso de autentica c ao entre um host sem o e um ponto de acesso (AP) funciona da seguinte maneira. O host solicita autentica c ao ao AP, que por sua vez envia um nonce de 128 bits ao 409

http://www.candidatoreal.com

host. O host cifra o nonce com uma chave sim etrica pr e-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 prev e nenhum mecanismo de distribui c ao de chaves e n ao possui autentica c ao individual. Isso signica dizer que todos os hosts sem o utilizam a mesma chave sim etrica para se autenticar no AP. Al em disso, o processo de cifragem WEP 802.11 ainda apresenta outras falhas graves. No WEP, cada um dos frames tansmitidos e criptografado com o algor timo RC4, que utiliza uma chave de 64 bits para gerar um uxo de chaves de tamanho IV 1 byte (Ki ). Cada chave do uxo gerado e utilizada para cifrar um byte de um frame enviado fazendo um XOR. A gera c ao do uxo de chaves e determin stica, ou seja, uma chave de 64 bits sempre gera a mesma sequ encia de chaves de um byte. Como foi dito, os hosts sem o e o AP possuem uma chave pr e-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 inicializa c ao (IV). O IV e transmitido em texto aberto no mesmo frame que carrega os dados cifrados. Al em disse, os IVs eventualmente precisam ser reutilizados, j a que seu range e de apenas 224 . Dessa forma, ao detectar a reutiliza c ao um IV, o atacante pode fazer com que um transmissor cifre os dados conhecidos. Ao receber os dados IV cifrados, o atacante poder a calcular a sequ encia Ki . Da pr oxima vez que IV for reutilizado, o atacante poder a decifrar os dados utilizando a sequ encia.

50.7

802.11i

O padr ao 802.11i, tamb em conhecido como WAP, prop oe mecanismos de seguran ca para redes 802.11 mais avan cados que o WEP. O WAP prev e formas de cifragem mais fortes, autentica c ao individual, e a utiliza c ao de um servidor de autentica c ao (AS) separado do AP. O processo de asocia c ao entre uma esta c ao cliente (STA) e um AP no padr ao 802.11i segue as seguintes etapas: 1. Descoberta das capacita c oes de seguran ca entre o STA e AP;

http://www.candidatoreal.com

2. STA e AS se autenticam mutuamente. Juntos geram chave mestra (MK). O AP serve como passagem, permitindo a passagem de pacotes espec cos; 3. STA e AS derivam uma chave PMK (Pairwise Master Key ). O AS envia a chave PMK para o AP. A partit da , o STA e o AS j a conhecem a mesma chave PMK; 4. STA e AP derivam uma nova chave tempor aria TK (Temporal Key ) a partir de PMK. A chave TK ser a utilizada para cifragem e integridade das mensagens. Por ser formado por 4 etapas principais, o processo de autentica c ao denido no padr ao 802.11i e conhecido como four-way handshake.

410

http://www.candidatoreal.com

Parte IX

Alta Disponibilidade

http://www.candidatoreal.com

411

http://www.candidatoreal.com

Cap tulo 51

Solu c oes de Armazenamento RAID, SAN e NAS


51.1 RAID

Tal como em diversas outras areas, quando n ao e poss vel aumentar o desempenho de um componente, uma solu c ao poss vel passa pelo uso de m ultiplos componentes em paralelo. No caso do armazenamento, isto leva ao desenvolvimento de conjuntos de discos que operam independentemente e em paralelo. Com v arios discos, pedidos de I/O podem ser tratados em paralelo, desde que os dados residam em discos separados. Do mesmo modo, um u nico pedido de I/O pode ser tratado de igual modo em paralelo caso os dados se encontrem distribu dos ao longo de diversos discos. Com o uso de v arios discos, torna-se claro que existem muitos modos de organizar os dados e nos quais a redund ancia pode ser adicionada para aumentar a conabilidade. O esquema RAID (Redundant Array of Independent Disks) puro consiste em 7 n veis (de zero a seis). N ao h a qualquer rela c ao hier arquica entre eles, mas cada um deles designa arquiteturas distintas que partilham 3 caracter sticas diferentes. O conjunto dos discos f sicos em RAID e visto pelo sistema operacional como sendo um u nico drive l ogica Os dados s ao distribu dos pelos drives f sicos de um array. Redund ancia de capacidade e usada para armazenar informa c ao de paridade, que garante a recupera c ao dos dados no caso de uma falha num disco.

http://www.candidatoreal.com

51.1.1

RAID 0

Este n vel RAID refere-se a um array de discos onde os dados est ao divididos em faixas, mas n ao existe nenhuma redund ancia para toler ancia a falhas. Sempre que a performance e a capacidade forem a preocupa c ao principal e o baixo 412

http://www.candidatoreal.com

custo for mais importante que a conabilidade adicional, esta e uma op c ao a considerar. A gura 51.1 exemplica o tipo de estrutura existente num sistema deste tipo.

Figura 51.1: RAID 0 Os dados s ao subdivididos em segmentos consecutivos (stripes) que s ao escritos seq uencialmente atrav es de cada um dos discos de um array. Cada segmento tem um tamanho denido em blocos. O striping oferece um melhor desempenho, quando comparado a um disco individual, se o tamanho de cada segmento for ajustado de acordo com a aplica c ao que utilizar a o array. Em um ambiente com uso intensivo de E/S ou em um ambiente de banco de dados onde m ultiplas requisi c oes concorrentes s ao feitas para pequenos registros de dados, um segmento de tamanho grande e preferencial. Se o tamanho de segmento para um disco e grande o suciente para conter um registro inteiro, os discos do arranjo podem responder independentemente para as requisi c oes simult aneas de dados. Em um ambiente onde grandes registros de dados s ao armazenados, segmentos de pequeno tamanho s ao mais apropriados. Se um determinado registro de dados extende-se atrav es de v arios discos do arranjo, o conte udo do registro pode ser lido em paralelo, aumentando o desempenho total do sistema. Na verdade, a distribui c ao dos dados nos drives n ao e completamente uniforme. Os arquivos s ao divididos em fragmentos de tamanho congur avel (chunk size, ou stripe size). Assim, se est a sendo usado 3 HDs em RAID 0, utilizando fragmentos de 32 KB, por exemplo, ao gravar um arquivo de 80 KB ter amos fragmentos de 32 KB gravados nos dois primeiros HDs e os 16 KB nais seriam gravados no terceiro, sendo que os 16 KB que sobraramno terceiro HD cariam como espa co desperdi cado. Arranjos RAID-0 podem oferecer alta performance de escrita se comparados a verdadeiros n veis de RAID por n ao apresentarem sobrecarga associada com c alculos de paridade ou com t ecnicas de recupera c ao de dados. Esta mesma falta de previs ao para reconstru c ao de dados perdidos indica que esse tipo de arranjo deve ser restrito ao armazenamento de dados n ao cr ticos e combinado com ecientes programas de backup. Entretanto, cabe ressaltar alguns pontos negativos desta implementa c ao no que tange conabilidade e desempenho. RAID 0 n ao ter a o desempenho desejado com sistemas operacionais que n ao oferecem suporte de busca combinada de setores. Os resultados ser ao corretos, por em n ao haver a paralelismo e nenhum ganho de desempenho. Outra desvantagem desta organiza c ao e que a conan ca se torna potencialmente pior. Um disco SLED com um tempo m edio de vida de 20.000 horas ser a 4 vezes mais seguro do que 4 discos funcionando em paralelo 413

http://www.candidatoreal.com

http://www.candidatoreal.com

com RAID 0 (Admitindo-se que a capacidade de armazenamento somada dos quatro discos for igual ao do disco SLED). Como n ao existe redund ancia, n ao h a muita conabilidade neste tipo de organiza c ao. Por m, RAID 0 e um nome at e certo ponto equivocado, pois n ao h a redund ancia, ele n ao se encontra na taxonomia original de n veis de RAID, e a aplica c ao de faixas e anterior ao RAID.

51.1.2

RAID 1

Esse esquema tradicional para toler ancia a falhas de disco, chamado espelhamento (mirroring) ou sombreamento, utiliza o dobro da quantidade de discos do RAID 0. Formalmente, para esta implementa c ao s ao necess arios no m nimo dois discos. O funcionamento deste n vel e simples: todos os dados s ao gravados em dois discos diferentes; se um disco falhar ou for removido, os dados preservados no outro disco permitem a n ao descontinuidade da opera c ao do sistema. A gura 51.2 apresenta este esquema.

Figura 51.2: RAID 1 Apesar de muitas implementa c oes de RAID 1 envolverem dois grupos de dados (da o termo espelho ou mirror), tr es ou mais grupos podem ser criados se a alta conabilidade for desejada. O RAID 1 e o que oferece maior seguran ca, pois toda informa c ao e guardada simultaneamente em dois ou mais discos. Se ocorrer uma falha num dos discos do array, o sistema pode continuar a trabalhar sem interrup c oes, utilizando o disco que cou operacional. Os dados ent ao s ao reconstru dos num disco de reposi c ao (spare disk) usando dados do(s) disco(s) sobrevivente(s). O processo de reconstru c ao do espelho tem algum impacto sobre o desempenho de I/O do array, pois todos os dados ter ao de ser lidos e copiados do(s) disco(s) intacto(s) para o disco de reposi c ao. Alguns pontos em rela c ao ao desempenho deste tipo de esquema s ao descritos abaixo: Um pedido de leitura pode ser satisfeito por qualquer um dos dois discos que contenha os dados em quest ao, podendo ser escolhido o que implicar um tempo menor de procura e lat encia de rota c ao. Um pedido de escrita requer uma atualiza c ao em ambos os discos, mas isto pode ser feito em paralelo. Deste modo, a performance de escrita e ditada pela mais lenta das duas faixas f sicas. Em outros n veis RAID em que s ao utilizados outros esquemas de redund ancia, quando uma u nica faixa e atualizada e necess ario calcular e atualizar bits de paridade provocando um aumento no tempo necess ario para fazer uma escrita no disco. Em RAID 1, este write penalty e inexistente. A recupera c ao de uma falha e simples. Quando ocorre uma falha num dos discos, e sempre poss vel aceder aos dados utilizando o outro disco.

http://www.candidatoreal.com

414

http://www.candidatoreal.com

Conectando os discos prim arios e os discos espelhados em controladoras separadas, pode-se aumentar a toler ancia a falhas pela elimina c ao da controladora como ponto u nico de falha. Num ambiente de transa c oes, RAID 1 consegue satisfazer altas taxas de pedidos I/O se a maioria dos pedidos forem leituras, onde se consegue aproximar do dobro do desempenho conseguido por RAID 0. No entanto, sempre que uma fra c ao substancial dos pedidos forem escritas, pode n ao haver superioridade de desempenho relativamente a RAID 0. Entre os n ao-h bridos, este n vel tem o maior custo de armazenamento, pois ser ao utilizados dois discos para a mesma informa c ao. Este n vel adapta-se melhor em pequenas bases de dados ou sistemas de pequena escala que necessitem conabilidade.

51.1.3

RAID 2

Raramente s ao usados, e em algum momento caram obsoletos pelas novas tecnologias de disco. RAID-2 e similar ao RAID-4, mas armazena informa c ao ECC (error correcting code), que e a informa c ao de controle de erros, no lugar da paridade. Isto ofereceu pequena prote c ao adicional, visto que todas as unidades de disco mais novas incorporaram ECC internamente. RAID 2 pode oferecer maior consist encia dos dados se houver queda de energia durante a escrita. Baterias de seguran ca e um desligamento correto, por em, podem oferecer os mesmos benef cios. As guras 51.3 e 51.4 ilustram o esquema RAID 2 bem como a forma em que as opera c oes de leitura e escrita s ao realizadas.

Figura 51.3: RAID 2

http://www.candidatoreal.com

Figura 51.4: Opera c oes de leitura e escrita em RAID 2 Em RAID 2 o ECC e calculado sobre os bits em posi c oes an alogas em cada disco. Os bits do c odigo s ao armazenados nas posi c oes correspondentes em m ultiplos discos de paridade. Normalmente e utilizado o c odigo de Hamming 415

http://www.candidatoreal.com

que torna poss vel a corre c ao de erros de um bit e a detec c ao de erros de dois bits. Apesar de requerer menos discos que RAID 1 e ainda bastante caro. O n umero de discos redundantes e proporcional ao logaritmo do n umero de discos de dados. Numa leitura u nica, todos os discos s ao acessados simultaneamente. Os dados e o c odigo corretor associado s ao entregues ao controlador do array. Se existir um erro de um s o bit, o controlador consegue reconhecer e corrigi-lo instantaneamente. Do mesmo modo, numa escrita, todos os discos de dados e paridade devem ser acessados. Esta pode ser uma op c ao em ambientes em que existe uma alta probabilidade de ocorr encia de erros. No entanto, dada a alta conabilidade dos discos atuais, normalmente n ao se implementa este esquema RAID.

51.1.4

RAID 3

Assim como RAID 2, raramente s ao usados, e e semelhante ao RAID 4, exceto por usar o menor tamanho poss vel para a stripe. Como resultado, qualquer pedido de leitura invocar a todos os discos, tornando a execu c ao de requisi c oes diferentes em paralelo dif ceis ou imposs veis. A m de evitar o atraso devido a lat encia rotacional, o RAID-3 exige que todos os eixos das unidades de disco estejam sincronizados. A maioria das unidades de disco mais recentes n ao possuem a habilidade de sincroniza c ao do eixo, ou se s ao capazes disto, faltam os conectores necess arios, cabos e documenta c ao do fabricante.

Figura 51.5: RAID 3

http://www.candidatoreal.com

Figura 51.6: Opera c oes de leitura e escrita em RAID 3 Outra diferen ca em rela c ao ao RAID 2 e que RAID 3 requer apenas um disco redundante, qualquer que seja o tamanho do array de discos. RAID 3 aplica acesso paralelo, com os dados distribu dos em pequenas faixas. Em vez de um c odigo corretor de erros, um simples bit de paridade e calculado 416

http://www.candidatoreal.com

para o conjunto de bits na mesma posi c ao em todos os discos e armazenado no disco redundante referido. De uma forma simplicada, pode-se pensar no disco redundante como contendo a soma de todos os dados nos outros discos. Quando ocorre uma falha, subtraem-se todos os dados nos discos bons pelos dados contidos no disco de paridade. A informa c ao restante ter a inevitavelmente de ser a informa c ao que falta. Por exemplo, o c alculo desta para o n- esimo bit para um array de quatro discos ser a: X3(n) = X2(n) xor X1(n) xor X0(n) (51.1)

Supondo que ocorre uma avaria no disco X0, adicionando X3 xor X0 a ambos os lados da equa c ao obtemos: X0 = X3(n) xor X2(n) xor X1(n) (51.2)

Este princ pio e verdadeiro para cada os sistemas RAID de n vel 3 a 6. Dado que os dados se encontram em faixas de tamanho bastante reduzido, em RAID 3 e poss vel atingir altas taxas de transfer encia de dados. Qualquer pedido I/O implicar a a transfer encia paralela de dados de todos os discos. Este aumento de desempenho e mais vis vel em grandes transfer encias. Por outro lado, apenas um pedido de I/O pode ser executado de cada vez, portanto n ao constituir aa melhor op c ao para um ambiente de transa c oes.

51.1.5

RAID 4

Tal como nos outros sistemas RAID, s ao usadas faixas, mas no caso das implementa c oes RAID de 4 a 6, estas faixas s ao relativamente grandes. Em RAID 4, uma faixa de paridade e calculada bit a bit para faixas correspondentes em cada disco de dados. Os bits de paridade s ao armazenados no disco redundante. Ao contr ario do sistema de RAID 3 que armazena a paridade bit-a-bit, em RAID 4 a paridade e armazenada sob a forma de blocos e associada a um conjunto de blocos de dados.

Figura 51.7: RAID 4

http://www.candidatoreal.com

No RAID 3, todo o acesso era realizado em todos os discos. Entretanto, e poss vel que algumas aplica c oes prefeririam acessos menores, permitindo que ocorressem acessos independentes em paralelo. Essa e a nalidade dos n veis de RAID 4-6. Tendo em vista que as informa c oes de detec c ao de erros em cada setor s ao examinadas nas leituras para vericar se os dados est ao corretos, essas pequenas leiturasem cada disco podem ocorrer independentemente, desde que o acesso m nimo seja a um u nico setor. As grava c oes s ao outra quest ao. Aparentemente, cada pequena grava c ao exigiria que todos os outros discos fossem acessados para ler o restante das informa c oes necess arias para recalcular a nova paridade. Uma pequena grava c aoexigiria

417

http://www.candidatoreal.com

a leitura dos dados antigos e da paridade antiga, adicionando as novas informa c oes, e depois a grava ca o da nova paridade no disco de paridade e dos novos dados no disco de dados. A id eia-chave para reduzir essa sobrecarga e que a paridade e simplesmente um somat orio de informa c oes; observando quais bits se alteram quando gravamos as novas informa c oes, s o precisamos mudar os bits correspondentes no disco de paridade. Dessa forma, temos de ler os dados antigos do disco que est a sendo gravado, comparar os dados antigos com os novos para vericar quais bits mudaram, ler a paridade antiga, modicar os bits correspondentes, depois gravar os novos dados e a nova paridade. Desse modo, uma pequena grava c ao envolve quatro acessos a dois discos, em vez do acesso a todos os discos. Uma desvantagem do sistema e que o disco de paridade deve ser atualizado em cada grava c ao; assim ele e o gargalo de grava c oes (write bottleneck). Os sistemas RAID dos n veis 4 a 6 fazem uso de uma t ecnica de acesso independente. Neste tipo de acesso, cada disco opera independentemente sendo assim poss vel satisfazer pedidos I/O em paralelo. Por esta raz ao, arrays deste tipo e um arranjo perfeitamente ajustado para ambientes transacionais que requerem muitas leituras pequenas e simult aneas e menos para aplica c oes que necessitem de altas taxas de transfer encia.

51.1.6

RAID 5

Este tipo de RAID largamente usado funciona de forma similar ao RAID 4, mas supera alguns dos problemas mais comuns sofridos por esse tipo. As informa c oes sobre paridade para os dados do array s ao distribu das ao longo de todos os discos do array , ao inv es de serem armazenadas num disco dedicado, oferecendo assim mais desempenho que o RAID 4, e, simultaneamente, toler ancia a falhas. A id eia de paridade distribu da reduz o gargalo de escrita, pois agora as escritas concorrentes nem sempre exigem acesso ` as informa c 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 atualiza c ao da informa c ao sobre paridade.

http://www.candidatoreal.com

Figura 51.8: RAID 5 Para aumentar o desempenho de leitura de um array RAID 5, o tamanho de cada segmento em que os dados s ao divididos pode ser otimizado para o array que estiver a ser utilizado. O desempenho geral de um array RAID 5 e equivalente ao de um RAID 4, exceto no caso de leituras seq uenciais, que reduzem a eci encia dos algoritmos de leitura por causa da distribui c ao das informa c oes sobre paridade. A informa c ao sobre paridade ao ser distribu da ao longo de todos os discos, havendo a perda de um, reduz a disponibilidade de

418

http://www.candidatoreal.com

ambos os dados e da informa c ao sobre paridade, at e` a recupera c ao do disco que falhou. Isto pode causar degrada c ao do desempenho de leitura e de escrita. Como em outros arranjos baseados em paridade, a recupera c ao de dados em um arranjo RAID-5 e feita calculando a fun c ao XOR das informa c oes dos discos restantes do arranjo. Pelo fato de que a informa c ao sobre paridade e distribu da ao longo de todos os discos, a perda de qualquer disco reduz a disponibilidade de ambos os dados e informa c ao sobre paridade, at e a recupera c ao do disco que falhou. Isto pode causar degrada c ao da performance de leitura e de escrita. Al em disso, esta estrutura e vista como contendo uma limita c ao cr tica, o throughput das aplica c oes sofre normalmente uma penaliza c ao at e cerca de 4x, comparativamente a arrays n ao redundantes para pequenas escritas.

51.1.7

RAID 6 (Redund ancia de P+Q)

Os esquemas baseados em paridade protegem contra uma u nica falha autoidenticada. Quando uma u nica corre c ao de falha n ao e suciente, a paridade pode ser generalizada para ter um segundo c alculo sobre os dados e outro disco de verica c ao de informa c oes. Esse segundo bloco de verica c ao permite a recupera c ao de uma segunda falha. Desse modo, a sobrecarga de armazenamento e o dobro do overhead do RAID 5. o atalho de pequena grava c ao apresentado anteriormente funciona bem exceto pelo fato de haver agora seis acessos ao disco, em vez de quatro, para atualizar as informa c oes P e Q. A gura ?? ilustra essa congura c ao.

Figura 51.9: RAID 6 - Redund ancia P+Q Em RAID 6 s ao efetuados dois c alculos diferentes para a paridade e armazenados em blocos separados em discos diferentes. Na realidade, um array de n discos organizados em RAID 6 requer n+2 discos. P e Q s ao dois algoritmos diferentes de verica c ao de dados. Um dos dois eo c alculo por xor j a referido e usado em RAID 4 e 5, sendo o outro um algoritmo independente. Isto torna poss vel a regenera c ao de dados mesmo que ocorra uma falha em dois dos discos. A grande vantagem desta organiza c ao e o fato de providenciar alta disponibilidade de dados. Teria de ocorrer um erro em tr es dos discos durante o tempo m edio para repara c ao para que isso tornasse os dados indispon veis. Por outro lado, subjacente a este sistema est a um write penalty substancial, pois cada escrita afeta obrigatoriamente dois blocos de paridade.

http://www.candidatoreal.com

51.1.8

Tipos H bridos

Dadas as limita c oes de cada n vel RAID, diversos criadores de dispositivos de armazenamento tentaram criar novas formas RAID combinando caracter sticas de cada um dos n veis originais.

419

http://www.candidatoreal.com

RAID 10: Nesta variedade combina-se o espelhamento existente em RAID 1 com a divis ao em faixas do RAID 0. Numa implementa c ao 0+1 os dados s ao divididos por conjuntos de drives duplicadas. Numa implementa c ao 1+0, os dados s ao divididos por diversas drives e este array completo de discos e duplicado por um ou mais array de drives. O desempenho na reposi c ao de dados e melhor neste tipo de arrays que em sistemas baseados em paridade, pois os dados n ao precisam ser regenerados com base nesta, mas sim simplesmente copiados para a nova drive. RAID 30 e 50: Esta forma consiste em manter a informa c ao dividida em faixas ao longo de uma matriz RAID 3 ou 5. Estes h bridos providenciam os mesmos benef cios de arrays acesso paralelo (altas taxas de transfer encia) ou as vantagens de arrays de acesso independente baseados em paridade (alto throughput).

51.1.9

Comparativo de Desempenho entre as diversas congura c oes RAID

51.2

SAN - Storage Area Network

http://www.candidatoreal.com

A SAN poderia ser denida 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 bras 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 deni c ao diz que SAN s ao dois ou mais dispositivos se comunicando via protocolo serial SCSI, tal como Fibre Channel ou iSCSI. Segundo essa deni c 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 atrav es do protocolo iSCSI, ent ao essa LAN pode ser considerada uma SAN. Entretanto, simplesmente enviar dados de backup atrav es de uma LAN dedicada isso n ao a torna uma SAN. Enm, uma SAN e uma rede que usa um protocolo serial SCSI para transferir dados. A gura 51.10 abaixo mostra uma vis ao geral de uma SAN conectando v arios servidores a v arios sistemas de armazenamento: SANs criam novos m etodos de conex ao de armazenamento aos servidores. Estes novos m etodos 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 tas de mainframe a servidores ou clientes de rede e podem criar caminhos paralelos de dados para ambientes de computa c 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. Al em disso, a SAN pode ser usada para contornar os conhecidos gargalos de rede, pois suporta diretamente altas velocidades de transfer encia de dados entre 420

http://www.candidatoreal.com

Figura 51.10: Exemplo de SAN os servidores e dispositivos de armazenamento nas seguintes formas: Servidor para storage: e o modelo tradicional de intera c ao com os dispositivos de armazenamento e cuja vantagem e que um mesmo dispositivo de armazenamento pode ser acessado serial ou concorrentemente por m ultiplos servidores; Servidor para servidor: no qual a SAN pode ser usada para alta velocidade e comunica c oes de alto volume entre servidores; Storage para storage: permite a movimenta c ao dos dados sem interven c ao do servidor, liberando o processador para outras atividades. Por exemplo: um disco pode realizar o backup de dados para uma ta sem a interven c ao do servidor ou um espelhamento de dispositivo remoto atrav es da SAN. O uso de SANs gera uma melhora de performance das aplica c oes, por exemplo, permitindo que o dado enviado diretamente do dispositivo de origem ao dispositivo de destino n ao requeira interven c ao do servidor. As SANs tamb em habilitam novas arquiteturas de rede nas quais v arios computadores (hosts) acessam v arios dispositivos de armazenamento conectados na mesma rede. Conhe ca outros benef cios que o uso da SAN pode oferecer ` as empresas: Mais disponibilidade: armazenamento independente de aplica c oes acess veis atrav es de caminhos alternativos de dados; Alta performance: os dados s ao descarregados do servidor e movidos para uma rede independente;

http://www.candidatoreal.com

Armazenamento centralizado e consolidado: gerenciamento mais simples, escalabilidade, exibilidade e disponibilidade; Transfer encia e armazenamento: c opia remota de dados habilitada para prote c ao contra falhas e desastres; Gerenciamento centralizado mais simplicado: a imagem simples do meio de armazenamento simplica o gerenciamento.

51.2.1

Hardware para SAN

Talvez a parte mais importante para a implanta c ao de uma SAN seja referente ao hardware. Os principais componentes s ao: 421

http://www.candidatoreal.com

Servidor de Disco: Servidores de discos, tamb em chamados de storages s ao dispositivos que armazenam discos compartilhados pelos hosts da rede. Eles possuem, em geral, diversas areas diferentes, com esquemas de RAID diferentes ou discos espec cos para a realiza c ao de espelhamentos para backup, os chamados BCV (business continuance volumes). Os BCVs facilitam muito tanto o backup quanto a restaura c ao dos dados. O seu conte udo e sincronizado com o conte udo do disco principal, at e que se fa ca uma quebra do sincronismo, o chamado split. Neste momento, o BCV guarda uma imagem do disco antes do split, e pode ser usado para backup, enquanto o servidor continua trabalhando, sem impactos na produ c ao. Este procedimento pode ser feito com a freq u encia mais conveniente para o usu ario e, em muitos casos, o BCV e utilizado tamb em para restaura c ao de dados perdidos, que e muito mais r apido do que acessar tas de backup. Switches bre channel: Switches bre channel s ao bem mais complexos que os hubs, tanto em seu projeto quanto em funcionalidade. Enquanto os hubs s ao apenas um concentrador de cabos para um segmento compartilhado, um switch e um dispositivo de r apido roteamento dos dados e possui uma taxa de transfer encia de dados exclusiva para cada porta. As taxas de transfer encia variam bastante dependendo do switch, que v em evoluindo rapidamente. Atualmente, a velocidade m axima est a em 400 MB/s para cada porta. Enquanto os hubs n ao participam de atividades no n vel do protocolo Fibre Channel, os switches participam ativamente, tanto para fornecer servi cos quanto para supervisionar o uxo de frames entre a origem e o destino. HBA (Host Bus Adapter): Uma HBA e um dispositivo capaz de conectar dispositivos externos a um servidor. Por exemplo: para conectarmos um disco SCSI a um micro (barramento interno PCI), ser a necess ario utilizar uma HBA SCSI-PCI. No caso da SAN, e necess ario instalar em todos os servidores participantes dela uma HBA Fibre Channel, que se encarregar a de fazer as convers oes dos diferentes meios internos e externos ao servidor. As HBAs FC possuem, ainda, uma esp ecie de processador (um chip) capaz de fazer a convers ao de protocolos para poupar a CPU do servidor deste trabalho.

51.2.2
http://www.candidatoreal.com

Topologias de SAN

As SANs atuais s ao todas constru das em uma topologia f sica de estrela. Um switch e conectado ao storage e neles conectamos todos os outros servidores da rede. A exce c ao ca com a liga c 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 liga c 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 liga c 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

Figura 51.11: SAN ponto a ponto Loops ou an eis: Fibre Channel Arbitrated Loop (FC-AL) Nesta topologia utiliza-se hub, cuja largura de banda de no m aximo de 100 MB/s e compartilhada por todos os seus membros. Teoricamente suporta loops com at e 126 dispositivos, mas na pr atica este n umero e bem menor. Esta topologia est a sendo muito pouco utilizada nas SANs modernas. Algumas pessoas comparam esta topologia como uma rede Token Ring, em que a largura de banda e dividida por todos os dispositivos do loop. Entretanto h a equipamentos antigos que n ao suportam o modo fabric e, assim, e utilizado o modo em loop.

Figura 51.12: SAN FC-AL - Fibre Channel Arbitrated Loop

Malha (Switched Fabric ou Fabric) Nesta topologia, utiliza-se switches Fibre Channel, o que permite um grande n umero e dispositivos interconectados. Dedica largura de banda integral a cada uma das portas e ermite transfer encias de dados simultaneamente para um u nico a topologia que permite ais escalabilidade e crescimento. Teoricamente, n o. E pode conter mais de 7,7 milh oes de n os.

http://www.candidatoreal.com

51.3

NAS - Network Attached Stotage

O compartilhamento de arquivos na rede j a era poss vel mesmo antes da chegada do sistema NAS. Isso era poss vel gra cas aos protocolos NFS (Network File System) do Unix e CIFS (Common Internet File System) do Windows. Entretanto, ambos possu am limita c oes de desempenho e gerenciamento. Al em disso, servidores deviam ser dedicados a usar ou NFS ou CIFS. O sucesso do NAS, portanto, foi corrigir algumas limita c oes de cada protocolo e permitir que ambos pudessem operar em um mesmo servidor. Assim, pode-se dizer que NAS 423

http://www.candidatoreal.com

Figura 51.13: SAN Switched Fabric (Network attached storage) e um computador dedicado a compartilhamento de arquivos atrav es de NFS, CIFS ou DAFS(Direct Access Files). Cabe ressaltar que e um dispositivo dedicado exclusivamente ao compartilhamento de arquivos, centralizando a responsabilidade de servir os arquivos em uma rede e desse modo libera recursos de outros servidores. Um dispositivo NAS combina a tecnologia dos arrays de discos com a intelig encia de uma pequena unidade de processamento. Nesse sentido, e poss vel coadicionar armazenamento na rede sem ser necess ario desligar o servidor. E mum a familiaridade com o conceito de impressora de rede, ou seja, aquela onde o usu ario pode imprimir. Do mesmo modo o NAS e uma unidade partilhada atrav es da LAN e todos os usu arios com os direitos e permiss oes de acessos adequados podem montar sistemas de arquivos diretamente sem ter que veicular os dados atrav es do servidor. Tipicamente, cada intera c ao entre aplica c oes e o NAS envolve a transfer encia de um volume de dados relativamente pequeno e de curta dura c ao. Al em disso o NAS pode estar ligado em qualquer parte da LAN.

51.4

Comparativo entre SAN e NAS

http://www.candidatoreal.com

Vistas como concorrentes, as SANs e as s ao tecnologias complementares. Enquanto as primeiras s ao otimizadas para transfer encias de altos volumes de dados orientadas em bloco, as NAS oferecem acesso a dados em n vel de arquivo. Baseadas em protocolos abertos, como Fibre Channel e TCP/IP, oferecem varias vantagens em rela c ao ao sistema de armazenamento ligado ao servidor. A seguir um resumo das principais diferen cas entre cada tecnologia. Protocolo: SAN: Serial SCSI-3 NAS: TCP/IP, NFS/CIFS Compartilhamento: SAN: Drives de discos e tas NAS: Sistemas de arquivos 424

http://www.candidatoreal.com

Permite: SAN: Diferentes servidores acessarem o mesmo drive de disco ou ta de forma transparente para o usu ario nal. NAS: Diferentes usu arios acessarem o mesmo sistema de arquivos ou at e um mesmo arquivo. Substitui: SAN: Os drivers de discos e tas locais, ou seja, drivers conectados diretamente ao servidor. Com SAN, centenas de sistemas podem compartilhar o mesmo drive de disco ou ta. NAS: Servidores Unix NFS e servidores NT CIFS que possibilitavam sistemas de arquivos compartilhados em rede. Aplica c oes: SAN:Processamento de aplica c oes de banco de dados de miss ao critica; Backup de dados centralizado; Opera c oes de recupera c ao de desastres; Consolida ca o de armazenamento. NAS: Compartilhamento de arquivo em NFS e CIFS; Transfer encia de pequenos blocos de dados a longas dist ancias; Acesso ao banco de dados limitado somente a leitura. Vantagens: SAN: Alta disponibilidade; Conabilidade na transfer encia de dados; Trafego reduzido na rede primaria; Flexibilidade de congura c ao; Alto desempenho; Alta escalabilidade; Gerenciamento centralizado; Oferta de m ultiplos fornecedores. NAS: Poucas limita c oes de distancia; Adi c ao simplicada da capacidade de compartilhamento de arquivo; F acil instala c ao e manuten c ao. Muitos poderiam argumentar que SAN e mais poderoso que NAS ou que NFS e CIFS sendo executado sobre TCP/IP gera muita mais sobrecarga para o cliente que o iSCSI sendo executado sobre um Fibre Channel. Estas quest oes poderiam dar a entender que sistemas SAN resultam em maior throughput para o cliente que os sistemas NAS. Essa observa c ao e verdadeira se consideramos como clientes os grandes servidores, entretanto grande parte das aplica c oes s ao menos exigentes sob esse ponto de vista sendo o desempenho oferecido pelo NAS bastante suciente. Enquanto SAN oferece acessos concorrentes em n vel de dispositivos, NAS oferece em n vel de arquivos e essa e uma exig encia de muitas aplica c oes. Outra vantagem do NAS e que ele e mais simples de se entender e aprender. Em geral, os protocolos e tecnologias que envolvem os sistemas SAN s ao relativamente complexos. Al em disso, SAN e composto de diversas partes de hardware, que s ao especializados para tal sistema, de diferentes fabricantes. Se o ambiente onde ser a implantado a SAN nunca recebeu um sistema assim, todos os equipamentos devem ser adquiridos. No caso do NAS isso n ao acontece, pois o NAS permite usar a infra-estrutura de rede j a presente no ambiente. Enm, o sistema NAS e mais f acil de se manter que o sistema SAN. Outra conseq u encia imediata e que 425

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 proteg e-los contra falhas. Entretanto, NAS tem limita c oes tamb em. Embora os esquemas de replica c ao oferecidos por alguns NAS propiciem excelentes formas de recupera c ao, caracter stica mais dif cil de ser suportada em SANs, backups ter ao de serem feitos em tas em algum momento e fazer backup de um arquivo para uma ta pode ser um desao. Uma das raz oes e que fazer um backup completo para ta ir a exigir muito mais tarefas de I/O que qualquer outra aplica c ao. Isso signica que fazer backup de um arquivo relativamente grande ir a sobrecarregar bastante o sistema. Nesse sentido, sistemas SANs ainda s ao mais ecientes. Em complemento, realizar backup de um determinado arquivo signica 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 m, embora seja plaus vel que a maioria das aplica c 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 aplica c ao necessitar de grandes transfer encias de dados e preciso fazer uma avalia c ao de qual op c ao melhor se adapta ao perl da aplica c ao. Assim como o NAS possuem vantagens e desvantagens o mesmo ocorre com SAN. A primeira vantagem do SAN em rela c ao ao NAS e que o u ltimo s o e capaz de atender a requisi c oes em n vel de arquivos via NFS e CIFS enquanto o SAN e capaz de atender requisi c oes de acesso a dispositivos. Al em disso, enquanto alguns v eem complexidade no SAN outros v eem como exibilidade, ou seja, os recursos de sistema de arquivos e gerenciamento de volumes dispon veis 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 recupera c ao mais f acil. V arias desvantagens da SAN j a foram citadas, mas a principais s ao seu custo e complexidade.

http://www.candidatoreal.com

426

http://www.candidatoreal.com

Cap tulo 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 m de coordenar e organizar todas as a c oes a serem tomadas. Deste modo, para um usu ario externo, o cluster e visto como sendo um u nico sistema.

Figura 52.1: Cluster de 4 n os O objetivo desejado em um cluster resume-se em: Alta Disponibilidade, quando se deseja que o cluster forne ca determinados servi cos, sendo que estes devem estar sempre (ou quase sempre) dispon veis para receber solicita c oes. Esta probabilidade do servi co estar apto a receber solicita c oes e um fator dependente do cluster.

http://www.candidatoreal.com

Alto Processamento, quando se deseja que o cluster execute determinadas tarefas, sendo que elas s ao divididas (na sua ntegra ou em fra c oes de uma mesma tarefa) e processadas separadamente em v arios n os, a m de a velocidade de processamento seja incrementada. poss E vel ainda ter uma situa c ao onde o cluster deve atingir os dois objetivos juntos; ` as vezes, por raz oes de simplicidade, tal objetivo e atingido eliminando-se alguns rigores das deni c oes acima.

52.0.1

Princ pios de um Cluster

Para ser u til, um cluster precisa seguir alguns princ pios b asicos: 427

http://www.candidatoreal.com

Comodidade: Os n os em um cluster devem ser m aquinas normais interconectadas por uma rede gen erica. O sistema operacional tamb em deve ser padr ao, sendo que o software de gerenciamento deve ir acima dele como uma aplica c ao qualquer. Escalabilidade: Adicionar aplica c oes, n os, perif ericos e interconex oes de rede deve ser poss vel sem interromper a disponibilidade dos servi cos do cluster. Transpar encia: O cluster, que e constru do com um grupo de n os independentes fracamente agrupados, deve apresentar-se como um u nico sistema a clientes externos ao cluster. Aplica c oes clientes interagem com o cluster como se fosse um u nico servidor com alta performance e/ou alta disponibilidade. Conabilidade: o cluster deve ter capacidade de detectar falhas internas ao grupo, assim como de tomar atitudes para que estas n ao comprometam os servi cos oferecidos. Gerenciamento e Manuten c ao: Um dos problemas dos clusters e sua manuten c ao e congura c ao, que muitas vezes s ao tarefas complexas e propensas a gerar erros. Um mecanismo f acil de congura c ao e manuten c ao do ambiente deve existir a m de que o cluster n ao seja um grande sistema complexo com um arduo trabalho de administra c 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 abstra c 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 atrav es de mensagens sobre conex oes de rede, e falhas em n os podem ser detectadas atrav es de timeouts de comunica c ao. Um n o e um sistema computacional unicamente identicado conectado a um ou mais computadores em uma rede. Assim, um n o tem quatro componentes principais: CPU;

http://www.candidatoreal.com

Mem oria; Reposit orio de Armazenamento; Interconex ao. Recurso: Um recurso representa certa funcionalidade oferecida em um n o. Ele pode ser f sico, como por exemplo uma impressora, ou l ogico, como por exemplo um endere co 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 interven ca o humana, o processo de migra c 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

o status dos recursos, a m de tomar atitudes desejadas em caso de falha (por exemplo, iniciar o servi co em outro n o). Um recurso tem associado a si um tipo, que descreve seus atributos gen ericos e seu comportamento. Cada tipo deve ter associado a si mecanismos de inicia c ao/parada, a m de que possam ser manipulados corretamente pelo gerenciador do cluster. Dizemos que um n o p hospeda um recurso r se em determinado momento o servi co associado a r est a sendo fornecido a partir de p. Depend encias de Recursos: Freq uentemente, recursos dependem da disponibilidade de outros recursos. Por exemplo, um servidor HTTP depende da presen ca de uma interface de rede online e de um sistema de arquivos operacional para fornecer os arquivos. Por outro lado, um sistema de arquivos pode depender de um volume manager. Estas depend encias s ao descritas em um grafo de depend encias de recursos. Este grafo de depend encias descreve a seq u encia na qual os recursos devem ser iniciados. Ainda, durante uma migra c ao de recursos ele descreve quais recursos devem ser migrados juntos. Grupos de Recursos: Um grupo de recursos e a unidade de migra c ao. Apesar de um grafo de depend encias descrever os recursos que devem ser migrados juntos, pode haver considera c oes adicionais para agrupar recursos. O administrador de sistemas pode associar uma cole c ao de recursos independentes em um u nico grupo de recursos, a m de garantir que todo o grupo seja migrado junto. Pol ticas de migra c ao s ao denidas baseadas em grupos. As depend encias de recursos vistas acima n ao podem ultrapassar as barreiras de um grupo, ou seja, recursos de um grupo devem depender somente de recursos contidos em seu pr oprio grupo.

52.0.3

Arquitetura de um Cluster

Isoladamente, os elementos descritos acima n ao prov eem a funcionalidade de necess sejada do cluster. E ario que haja uma arquitetura que una todos os elementos e forne ca o funcionamento que cada um espera do outro. Devido ` a natureza fracamente agrupada do cluster, uma abstra c ao ideal de arquitetura deve ser baseada em componentes. Tal estrutura seria formada pelas seguintes camadas b asicas: Camada de Comunica c ao: trata das comunica c oes ponto-a-ponto entre os n os.

http://www.candidatoreal.com

Camada de Liga c ao: agrupa canais de comunica c ao em uma u nica liga c ao entre dois n os. Camada de Integra c ao: forma a topologia do cluster. Camada de Recupera c ao: executa a recupera c ao (failover) e a inicializa c ao/parada controlada de servi cos depois de uma transi c ao do cluster. Existem ainda quatro servi cos chaves para um cluster: JDB: armazena estados persistentes internos ao cluster (e usados para o banco de dados do quorum). Nada mais e do que um reposit orio de informa c oes local a cada n o do cluster. 429

http://www.candidatoreal.com

Camada de Qu orum: determina qual parti c ao do cluster possui autoriza c ao para prosseguir com sua execu c ao. Servi co de Barreiras: prov e um servi co de sincroniza c ao global ao cluster. Servi co de Nomes: prov e um servi co de nomes global ao cluster.

52.0.4

Cluster X Sistemas Distribu dos

Um sistema distribu do consiste em um conjunto de processos concorrentes que cooperam uns com os outros para executar determinada tarefa. Ele e formado por v arios n os, que se utilizam da rede de comunica c ao para trocarem mensagens. As m aquinas s ao aut onomas, formando um sistema fracamente agrupado, onde n ao existe mem oria compartilhada entre diferentes n os. Entre as aplica c oes t picas de um sistema distribu do est ao servi cos de arquivos de/para m aquinas distribu das e distribui c ao de carga de processamento entre diversas m aquinas. A gura 52.2 ilustra essa organiza c ao.

Figura 52.2: Sistema Distribu do Clusters s ao uma subclasse de sistemas distribu dos. Geralmente eles s ao grupos de computadores homog eneos em menos escala, dedicado a um n umero pequeno e bem denido de tarefas, nas quais o cluster atua como uma u nica m aquina. Entre os usos t picos de um cluster est ao adicionar alta disponibilidade a servi cos e aumentar a capacidade de processamento do grupo (fazenda de servidores). A tabela abaixo enumera as principais diferen cas entre cluster e sistemas distribu dos. Analisando a tabela pode-se concluir que um cluster nada mais e do que um sistema distribu do especializado para uma determinada tarefa. Estrutura: Cluster:homog enea - adquirido para realizar determinada tarefa

http://www.candidatoreal.com

Sist. Distribu do: heterog enea - montado a partir do hardware dispon vel. Tarefa: Cluster: especializada - feita para executar um pequeno conjunto de tarefas bem denido. Sist. Distribu do: generalizada - usalmente precisam ser um ambientes de computa c ao gen ericos Pre co: Cluster: relativamente baixo. 430

http://www.candidatoreal.com

Sist. Distribu do: barato / caro. Conabilidade: Cluster: t ao con avel quanto precisa ser. Sist. Distribu do: pouco / muito con avel. Seguran ca: Cluster: os n os conam uns nos outros. Sist. Distribu do: os n os n ao conam uns nos outros.

52.0.5

Cluster de Alta Disponibilidade

Pelo fato do termo cluster abranger uma grande quantidade de implementa c oes, convencionou-se o uso de termos espec cos para cada tipo de implementa c ao. Clusters Beowulf s ao usados para oferecer escalabilidade e processamento paralelo para execu c ao de fun c oes computacionais. Solu c oes de clusters de alta disponibilidade, por sua vez, s ao usados para fornecer alta disponibilidade para servi cos ou aplica c oes. Clusters de alta disponibilidade s ao comumente conhecidos como Failover Cluster. Failover e o processo no qual uma m aquina assume os servi cos de outra, quando esta apresenta alguma falha. O failover pode ser autom atico ou manual, sendo o autom atico normalmente esperado em uma solu c ao de alta disponibilidade. Para se executar o failover de um servi co, e necess ario que as duas m aquinas envolvidas possuam recursos equivalentes. Um recurso pode ser uma placa de rede, um disco r gido, os dados neste disco ou qualquer elemento necess ario importante que a solu a presta ` c ao de um determinado servi co. E c ao de alta disponibilidade mantenha recursos redundantes com o mesmo estado, de forma que o servi co possa ser retomado sem perdas. Para isto, pode-se usar t ecnicas de espelhamento de disco, replica c ao de dados ou sistemas de armazenamento compartilhados. Ao ser resolvida a falha, o servidor ser a recolocado em servi co, e ent ao tem-se a op c ao de realizar o processo inverso do failover, chamado failback. O failback e o processo de retorno de um determinado servi co de uma outra m aquina para sua m aquina de origem. Este processo tamb em pode ser autom atico, manual ou at e mesmo indesejado. Em alguns casos, em fun c ao da poss vel nova interrup c ao na presta c ao de servi cos, o failback pode n ao ser atraente.

http://www.candidatoreal.com

Tipos de Clusters de Alta Disponibilidade Existem dois tipos b asicos de clusters de alta disponibilidade, os sim etricos e os assim etricos. Clusters de alta disponibilidade assim etricos s ao os mais simples de se implementar. Eles se baseiam no conceito de servidores prim ario e secund ario. Servidores que est ao provendo algum tipo de servi co s ao considerados como prim arios. Servidores que aguardam a ocorr encia de alguma falha no servidor prim ario s ao denominados servidores secund arios. A detec c ao da falha ocorre atrav es do monitoramento dos servidores prim arios por parte dos secund arios. A principal diferen ca entre clusters assim etricos e sim etricos e que em um cluster sim etrico n ao h a a gura de um servidor inativo aguardando uma falha de 431

http://www.candidatoreal.com

Figura 52.3: Cluster de Alta Disponibilidade Assim etrico outro, prim ario, para ent ao servir a aplica c ao. Neste modelo, ambos servidores servem alguma aplica c ao. Assim, os termos prim ario e secund ario deixam de ser usados para designar o servidor, passando a ser usado para a aplica c ao. De forma semelhante ao que ocorre em clusters assim etricos, na ocorr encia de uma falha em um dos servidores, d a-se in cio ao processo de failover. Neste caso, o servidor ainda ativo assume o controle da aplica c ao do servidor problem atico. Ao contr ario do modelo anterior, neste o monitoramento dever a ocorrer entre todos os n os.

Figura 52.4: Cluster de Alta Disponibilidade Sim etrico

Tipos de Armazenamento Dependendo da escala, performance, funcionalidade e exibilidade do cluster, s ao necess arias diferentes implementa c oes de armazenamento. Os principais m etodos de armazenamento s ao 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 corrup c ao de dados quando mais de um servidor est a ativo. Para solu c ao deste problema, caracter sticas de locking s ao desejadas. Esta implementa c ao e bastante comum em clusters assim etricos.

http://www.candidatoreal.com

Figura 52.5: Cluster com compartilhamento total de armazenamento 432

http://www.candidatoreal.com

No armazenamento sem compartilhamento, dois ou mais servidores possuem seu pr oprio meio de armazenamento. No evento de uma falha em um dos servidores, o servidor respons avel pela substitui c ao passa a ter acesso total ao meio de armazenamento original do n o defeituoso. Esta implementa c ao e comum em clusters sim etricos.

Figura 52.6: Cluster sem compartilhamento de armazenamento Em um ambiente de espelhamento de discos, n ao h a nenhum tipo de compartilhamento entre os n os servidores. Atrav es do uso de software, os dados s ao espelhados ou replicados de um servidor para o outro atrav es da rede. O princ pio deste modelo e que todos servidores potenciais substitutos devem possuir seu pr oprio meio de armazenamento e, ao mesmo tempo, uma r eplica do armazenamento do servidor a ser substitu do.

Figura 52.7: Cluster sem compartilhamento de armazenamento Em um ambiente de espelhamento de discos, n ao h a nenhum tipo de compartilhamento entre os n os servidores. Atrav es do uso de software, os dados s ao espelhados ou replicados de um servidor para o outro atrav es da rede. O princ pio deste modelo e que todos servidores potenciais substitutos devem possuir seu pr oprio meio de armazenamento e, ao mesmo tempo, uma r eplica do armazenamento do servidor a ser substitu do.

http://www.candidatoreal.com

52.0.6

Cluster de Alto Desempenho

Sistemas de processamento paralelo v em se tornando cada vez mais populares em fun c ao da demanda por processamento de alto desempenho, exigido pelas diversas areas da ci encia (ex.: qu mica, biologia, meteorologia). Infelizmente, os sistemas que oferecem a capacidade de processamento para satisfazer a essa demanda, representados pelas m aquinas de arquiteturas maci camente paralelas ou tem um custo elevado, ou s ao dif ceis de programar, ou ambos. Em fun c ao 433

http://www.candidatoreal.com

Figura 52.8: Cluster com espelhamento de dados disso, nos u ltimos anos, t em-se investido na pesquisa de m aquinas paralelas baseadas em clusters de multiprocessadores sim etricos por possu rem um custo relativamente mais baixo que as m aquinas de arquitetura maci camente paralelas al em de serem mais ex veis que essas. Atualmente, existem diferentes tipos de arquiteturas dedicadas ` a execu c ao de aplica c oes paralelas, sendo que essas podem ser classicadas em tr es tipos: Arquiteturas maci camente paralelas (MPP): s ao arquiteturas que possuem processadores altamente poderosos e links de comunica c ao dedicados. Este tipo de arquitetura, chamada de supercomputadores ou arquiteturas dedicadas, apresentam um alto custo, devido aos recursos que oferecem. Como exemplo, pode-se citar o Intel Paragon e o IBM SP2. Multiprocessadores sim etricos (SMP): s ao arquiteturas compostas por um conjunto de processadores iguais, que se comunicam, geralmente, atrav es de uma mesma mem oria. termo sim etrico signica que todos os processadores s ao id enticos em termos de arquitetura interna e poder de processamento. Exemplos dessa arquitetura s ao os processadores Dual Pentium. Redes de esta c oes (NOW): s ao arquiteturas que correspondem a um conjunto de esta c oes de trabalho interligadas atrav es de uma rede local (LAN) e que servem como plataforma de execu c ao de aplica c oes distribu das. Nesse tipo de arquitetura, a comunica c ao e feita por troca de mensagens entre as diversas aplica c oes que executam na rede. Esse tipo de arquitetura e largamente utilizado, tanto comercialmente como academicamente. Como exemplo, podemos citar Esta c oes Sun interligadas por rede Ethernet.

http://www.candidatoreal.com

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 esta c oes. Quando comparados com arquiteturas dedicadas, os clusters de multiprocessadores sim etricos 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 rela c ao custo/desempenho (porque todo o hardware e o software necess arios est ao ` a disposi c ao), e, da mesma forma, suas volumosas vendas atraem investimentos diretos para o seu r apido melhoramento. Eles tamb em permitem um desenvolvimento progressivo de aplica c oes, 434

http://www.candidatoreal.com

come cando com apenas um processador, passando para multiprocessadores e, nalmente, usando um conjunto de esta c oes de trabalho multiprocessadoras interconectadas por alguma rede de comunica c ao de dados local. Em complemento, podem-se caracterizar basicamente, duas classes de arquiteturas baseadas em clusters: Arquiteturas homog eneas: onde os nodos que comp oem o cluster possuem a mesma arquitetura e sistema operacional, logo entendem as mesmas instru c oes sem a necessidade de convers ao de dados a m de possibilitar o processamento dos mesmos, em diferentes processadores. As arquiteturas homog eneas est ao se tornando um padr ao na area de clusters de alto desempenho, por serem mais simples de operar e por n ao apresentarem problemas ligados ` a convers ao de dados entre diferentes sistemas operacionais e ou arquiteturas; Arquiteturas heterog eneas: onde os nodos que formam o cluster possuem processadores diferentes e, possivelmente, diferentes sistemas operacionais. Exigem a convers ao de dados para que uma instru c ao possa processar em diferentes processadores. Apresentam problemas ligados ` a convers ao de dados entre diferentes sistemas operacionais e ou arquiteturas. Al em dessas classes de arquiteturas cluster, pode-se distinguir dois tipos de classica c ao quanto aos nodos que fazem parte do cluster: Arquitetura sim etrica: possuem todos os nodos homog eneos, sendo que todos os nodos possuem a mesma velocidade e capacidade de processamento, al em de possu rem a mesma quantidade de recursos computacionais (ex.: mem oria). Somente clusters com esse tipo de arquitetura possibilitam uma verdadeira an alise de desempenho. Arquiteturas assim etricas: possuem nodos diferentes. Podem possuir nodos homog eneos, mas com diferentes velocidades e capacidades de processamento ou nodos homog eneos com diferentes recursos de computa c ao (ex.: mem oria). Arquiteturas dessa classe dicultam poss veis an alises de desempenho.

http://www.candidatoreal.com

435

http://www.candidatoreal.com

Cap tulo 53

Balanceamento de Carga
Todo hardware tem o seu limite, e muitas vezes o mesmo servi co tem que ser repartido por v arias m aquinas, sob pena de se tornar congestionado. Estas solu c oes podem-se especializar em pequenos grupos sobre os quais se faz um balanceamento de carga: utiliza c 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

Balanceamento de armazenamento (storage)

O balanceamento do suporte de armazenamento permite distribuir o acesso a sistemas de arquivos por v arios discos, pelo que derivam ganhos obvios em tempos acesso. Estas solu c oes podem ser dedicadas ou existir em cada um dos servidores do cluster. As solu c oes existentes hoje s ao implementadas em hardware, dentre elas podemos citar as t ecnicas RAID (Redundant Arrays of Independent Disks) , SAN (Storage Area Network) e NAS (Network-Attached Storage).

53.2
http://www.candidatoreal.com

Balanceamento de rede

O balanceamento da utiliza ca o da rede passa sobretudo por reencaminhar o tr afego por caminhos alternativos a m de descongestionar os acessos aos servidores.O mecanismo/dispositivo respons avel pelo balanceamento e chamado de director. Na verdade, ele pode existir sob v arias formas, dependendo do(s) servi co(s) que se pretende balancear. Este director serve tamb em de interface entre o cluster de servidores e os clientes do(s) servi co(s) - tudo o que os clientes conhecem e o endere co semi-p ublico deste servidor. Esta abordagem (cl assica) e algo limitada, em termos de escalabilidade e n umero de tramas que o director consegue redireccionar, principalmente devido ` a velocidade dos barramentos das placas de rede. Existem, no entanto, outras solu c oes mais complexas que tiram melhor partido das caracter sticas do protocolo TCP/IP em conjunto com um roteamento de pacotes especializado, tais como NAT, IP Tunneling e Direct

436

http://www.candidatoreal.com

Routing. Outras solu c oes operam exclusivamente em apenas algumas camadas (n veis) do modelo OSI no n vel 4, 5, 6 e 7.

53.2.1

NAT

Em redes de computadores, NAT, Network Address Translation, tamb em conhecido como masquerading e uma t ecnica que consiste em reescrever os endere cos IP de origem de um pacote que passam sobre um router ou rewall de maneira que um computador de uma rede interna tenha acesso ao exterior (rede p ublica). Utilizamoe s seguinte situa c ao como exemplo. A esta c ao com IP 192.168.1.13 faz uma requisi c ao, por exemplo, para um endere co externo. O pacote sai com o IP da esta c ao e corre em dire c ao ao intermediador entre o ambiente interno e externo, o gateway. O gateway, atrav es do protocolo NAT mascara o IP da esta c 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 esta c ao. No retorno do pacote, ele parte do endere co externo, chega a nossa rede no servidor NAT (200.158.112.126) e l a volta at e o IP da esta c ao assim chegando ` a esta c ao (192.168.1.13).

Figura 53.1: Balanceamento de carga NAT

53.2.2
http://www.candidatoreal.com

IP Tunneling

Um IP Tunnel e um termo t ecnico para designar o encapsulamento de um pacote IP dentro de outro, com o prop osito de simular uma conex ao f sica entre duas redes remotas atrav es 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

A gura 53.2 mostra como o Direct Routing funciona.

Figura 53.2: Balanceamento de carga com Direct Routing.

53.3

Algoritmos de balanceamento

Round-Robin: Distribui cada requisi c ao seq u encialmente entre servidores reais. Usando este algoritmo, todos os servidores s ao tratados igualmente sem considerar sua capacidade ou carga; Weighted Round-Robin Scheduling: Distribui cada requisi c ao seq u encialmente entre servidores reais, mas d a mais requisi c oes para servidores com mais capacidade; Least-Connection: Distribui mais requisi c oes para servidores com menos conex oes ativas. Por ele manter um hist orico de conex oes ativas atrav es da tabela IPVS, least-connection e um tipo de algoritmo de escalonamento din amico, sendo a melhor escolha se h a um alto grau de varia c ao na carga do pedido. Se h a um grupo de servidores com diferentes capacidades, weighed least-connection e a melhor escolha;

http://www.candidatoreal.com

Weighted Least-Connections (default): Distribui mais requisi c oes para servidores com poucas conex oes ativas em rela c ao ` a sua capacidade. Este algoritmo e ideal quando os servidores cont em hardware de capacidade variedade; Destination Hash Scheduling: Distribui requisi c oes para os servidores procurando o endere co IP de destino numa tabela hash est atica. Este algoritmo e projetado para us a-lo em um servidor de proxy-cache; Source Hash Scheduling: Distribui requisi c oes para os servidores procurando o endere co IP de origem numa tabela hash est atica. Este algoritmo e projetado para roteadores LVS (Linux Virtual Server) com m ultiplos

438

http://www.candidatoreal.com

rewalls. O LVS e uma solu c ao de balanceamento de carga para sistemas Linux. Basicamente, conta com um software para balancemaneto IP (IPVS) e um para balanceamento na camada de aplica c ao (KTCPVS).

53.4

Balanceamento de CPU

Este tipo de balanceamento e efectuado pelos sistemas de processamento distribu do e consiste, basicamente, em dividir a carga total de processamento pelos v arios processadores no sistema (sejam eles locais ou remotos).

53.4.1

Sistema de processamento distribu do

Um sistema de processamento distribu do ou paralelo e um sistema que interliga v arios n os de processamento (computadores individuais, n ao necessariamente homog eneos) de maneira que um processo de grande consumo seja executado no n o mais dispon vel, ou mesmo subdividido por v arios n os. Adivinham-se, portanto, ganhos obvios nestas solu c oes: uma tarefa qualquer, se divis vel em v arias subtarefas pode ser realizada em paralelo. A nomenclatura geralmente utilizada neste contexto e HPC (High Performance Computing) e/ou DPC (Distributed/Parallel Computing).// Com os desenvolvimentos nesta area, surgiram solu c oes por software que fazem, geralmente (mas n ao necessariamente), altera c oes no n ucleo do sistema operacional e que, na maioria dos casos, n ao s ao compat veis entre elas, e dicilmente entre vers oes diferentes da mesma solu c ao. Assentam, no entanto, em arquitecturas de comunica c ao standard, como e o caso da Parallel Virtual Machine e Message Passing Interface. Resumidamente, estas arquiteturas conseguem transportar um processo (tarefa) e o seu contexto (arquivos abertos, etc.) pela rede at e outro n o. O n o que originou o processo passa, assim, a ser apenas um receptor dos resultados desse processo. Atualmente, a principal barreira destes sistemas e implementar mecanismos de Inter-Process Communication (IPC), os Distributed IPC, dada a sua extrema complexidade. A gura 53.3 ilustra as v arias camadas de interoperabilidade de um sistema distribu do. Atrav es do gateway a rede p ublica tem acesso a um supercomputador, sem ter conhecimento disso, dado que s o conhece o gateway. Qualquer aplica c ao executada no gateway (preparada para ser paralelizada) pode ser distribu da por v arios n os, entregando os resultados mais r apido do que se fosse processada por apenas um n o.

http://www.candidatoreal.com

Parallel Virtual Machine PVM e a abrevia c ao de Parallel Virtual Machine. Este e um pacote de software que permite que uma rede heterog enea de computadores de todos os tipos seja programada como se fosse apenas uma u nica M aquina Paralela Virtual. A programa c ao e baseada no paradigma de troca de mensagens. O PVM e

439

http://www.candidatoreal.com

Figura 53.3: Sistema de processamento distribu do. composto, basicamente, de tr es partes: uma biblioteca de fun c oes (em C e em FORTRAN77) que implementam para o usu ario as diretivas de programa c ao da M aquina Virtual (MV); um processo daemon que rodar a em cada host participante da MV e um console de onde podem ser executadas algumas fun c oes b asicas de controle (congura c ao da MV, gerenciamento de tarefas, etc.). A implementa c ao do PVM e baseada em processos do Unix. Na verdade, cada tarefa PVM e um processo Unix. Isto explica parcialmente a alta portabilidade do sistema para computadores de arquiteturas t ao diferentes. Tarefas verdade que, em algumas ims ao as unidades b asicas de execu c ao do PVM. E plementa c oes, as tarefas podem n ao ser processos. Nestes casos, caber a ao implementador garantir a compatibilidade (tais exce c oes s ao mais comuns em sistemas de natureza mais complexa como computadores paralelos). Os programas em PVM podem rodar espalhados por uma rede de natureza heterog enea. Mais particularmente, e poss vel disparar tarefas em computadores em qualquer parte da Internet (desde que o usu ario tenha acesso a esta m aquina, obviamente). Esta independ encia em rela c ao ` a rede de comunica c oes que liga os hosts que participam da MV e garantida pelo uso do protocolo TCP/IP para comunica c ao entre as tarefas atrav es da rede. O pacote PVM e relativamente pequeno (cerca de 4.5 MB de c odigo fonte em C), e necessita ser instalado apenas uma vez em cada m aquina para ser acess vel a todos os usu ` arios. Al em disso, a instala c ao n ao requer privil egios especiais e pode ser efetuada por qualquer usu ario. Message Passing Interface Message Passing Interface (MPI) e um padr ao para comunica c ao de dados em computa c ao paralela. Existem v arias modalidades de computa c ao paralela, e dependendo do problema que se est a tentando resolver, pode ser necess ario passar informa c oes entre os v arios processadores ou nodos de um cluster, e o MPI oferece uma infraestrutura para essa tarefa.

http://www.candidatoreal.com

440

http://www.candidatoreal.com

No padr ao MPI, uma aplica c ao e constitu da por um ou mais processos que se comunicam, acionando-se fun c oes para o envio e recebimento de mensagens entre os processos. Inicialmente, na maioria das implementa c oes, um conjunto xo de processos e criado. Por em, 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 implementa c oes paralelas s ao a comunica c ao de dados entre processos paralelos e o balanceamento da carga. Dado o fato do n umero de processos no MPI ser normalmente xo, neste texto e enfocado o mecanismo usado para comunica c ao de dados entre processos. Os processos podem usar mecanismos de comunica c ao ponto a ponto (opera c oes para enviar mensagens de um determinado processo a outro). Um grupo de processos pode invocar opera c oes coletivas (collective) de comunica c ao para executar opera c oes globais. O MPI e capaz de suportar comunica c ao ass ncrona e programa c ao modular, atrav es de mecanismos de comunicadores (communicator) que permitem ao usu ario MPI denir m odulos que encapsulem estruturas de comunica c ao interna.

http://www.candidatoreal.com

441

http://www.candidatoreal.com

Parte X

Sistemas Operacionais

http://www.candidatoreal.com

442

http://www.candidatoreal.com

Cap tulo 54

Ambiente Microsoft Windows 2000/2003


54.1 DHCP - Dynamic Host Conguration Protocol

A implementa c ao do DHCP no Windows 2000/2003 Server e baseada em padr oes denidos pelo IETF - Internet Engineering Task Force. Por padr ao, este servi co NAO e instalado durante a instala c ao t pica do Windows 2000/2003 Server. E importante ressaltar que este servi co 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 administra c ao do DHCP pode ser executada no console DHCP, que e acessado atrav es de: Iniciar >> Programas >> Ferramentas Administrativas >> DHCP. Inclusive, e poss vel utilizar um u nico console DHCP para se conectar, remotamente atrav es da rede, com diferentes servidores DHCP. Por padr ao, a maior parte das informa c 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.

54.1.1
http://www.candidatoreal.com

Processo de Instala c ao/Congura c ao

O processo de instala c ao se d a seguindo os passos: Iniciar >> Congura c oes >> Painel de Controle; Adicionar ou Remover Programas; Adicionar ou Remover Componentes do Windows. O DHCP e classicado como um SERVIC O DE REDE (Networking Services). Ap os a instala c ao, n ao e preciso reinicializar o servidor para que o servi co possa ser disponibilizado, basta seguir alguns procedimentos obrigat orios que ser ao mencionados abaixo. Lembrando que este servi co e congurado 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) t em permiss ao para autorizar um servidor DHCP no Active Directory. A autoriza c ao obrigat oria no Active Directory 443

http://www.candidatoreal.com

e uma medida de seguran ca para evitar que servidores DHCP secund arios sejam introduzidos na rede sem o conhecimento do administrador. O caminho a ser seguido e o: Iniciar >> Programas >> Ferramentas Administrativas >> DHCP; clique no nome do servidor DHCP; Selecione o comando A c ao >> Autorizar. Agora que o servidor DHCP est a devidamente instalado e autorizado no Active Directory ser a necess ario a cria c ao de um ou mais ESCOPOS. Para criar e congurar um escopo e utilizado o console de administra c ao do DHCP: Iniciar >> Programas >> Ferramentas Administrativas >> DHCP. Algumas propriedades importantes que devem ser conguradas neste passo s ao: Escopo DHCP: uma faixa espec ca de endere cos IP que deve estar dentro da faixa de endere cos da rede onde o servidor DHCP ser a utilizado. Mais de um escopo pode ser denido para uma rede (10.10.20.0/255.255.255.0), por exemplo: 10.10.10.20.30 a 10.10.20.100; 10.10.10.20.120 a 10.10.20.150; e 10.10.10.20.200 a 10.10.20.250. Cada escopo denir a uma sub-rede. Para cada escopo, e necess ario congurar uma s erie de par ametros: m ascara de sub-rede, default gateway, endere co IP de um ou mais servidores DNS, endere co IP do servidor WINS e assim por diante; Intervalos de Exclus ao: uma faixa espec ca de endere cos IP para retirar de um escopo, ou seja, endere cos que voc e n ao quer que sejam concedidos aos clientes da rede. Lembrando que endere cos IPs exclu dos podem estar ativos na sua rede, como por exemplo, em computadores ou outros dispositivos de rede congurados manualmente (IP xo); Pool de Endere cos: conjunto de endere cos especicados no escopo DHCP descontando os eventuais intervalos de exclus ao. Enm, os endere cos que ser ao cedidos automaticamente aos clientes do servi co; Intervalo de Dura c ao da Concess ao: especica por quanto tempo um cliente DHCP pode usar um endere co IP atribu do antes que seja necess ario renovar a congura c ao com o servidor DHCP; Endere cos Reservados: concess ao permanente a hosts especicados na sua rede. Cada reserva de IP e associada ao MAC Address da interface de rede do host em quest ao. Vale ressaltar que os endere cos reservados devem estar fora do intervalo de exclus ao.

http://www.candidatoreal.com

Ap os denir e congurar um escopo, ele deve SER ATIVADO antes que o servidor DHCP comece a fazer concess oes aos clientes. No entanto, voc e n ao deve ativar um novo escopo at e ter especicado as op c oes DHCP para ele (default gateway, n umero IP do servidor DNS e assim por diante). Ent ao, o processo de instala c ao como um todo pode ser resumido em: instalar servidor DHCP; ativ a-lo no Active Directory; criar e congurar o Escopo; e por m ativar o Escopo. importante notar que as op E c oes do DHCP (default gateway, endere co IP de um ou mais servidor DNS e assim por diante), podem ser conguradas em tr es n veis: servidor (s ao v alidas para todos os escopos congurados no servidor 444

http://www.candidatoreal.com

DHCP); escopo (se aplicam a um escopo especicamente) e op c oes de uma reserva (se aplicam a reserva e, por padr ao, s ao herdadas do escopo onde a reserva foi criada).

54.1.2

Integra c ao do DHCP com o DNS

O servidor DHCP pode ser utilizado para fazer atualiza c oes din amicas no DNS, em nome dos clientes DHCP. Ou seja, quando um cliente DHCP e inicializado e obt em uma concess ao de endere co, o DHCP pode atualizar os registros de recurso de endere co (A) e ponteiro (PTR) do cliente, na base de dados do DNS. Esse processo exige o uso de uma op c ao de DHCP adicional, a op c ao FQDN do Windows. Essa op c ao permite ao cliente fornecer seu nome de dom nio totalmente qualicado (FQDN) e instru c oes para o servidor DHCP sobre como deseja que o servidor processe atualiza c oes din amicas de DNS (se houver) em seu nome. Clientes baseados em Windows XP ou Windows Server 2000/2003 atualizam automaticamente os registros do tipo A na zona direta do DNS. Ou seja, n ao e necess aria nenhuma integra c ao entre DNS e DHCP para isso acontecer. J a para os registros da zona reversa (registros PTR), a hist oria e diferente. Esses clientes n ao conseguem atualizar seus registros PTR diretamente, esta atualiza c ao tem que ser feita pelo servidor DHCP. Clientes mais antigos, baseados em Windows 95, 98, Me ou NT 4.0, n ao s ao capazes de atualizar dinamicamente nem seus registros A, nem seus registros PTR no DNS. Para estes clientes, o servidor DHCP atualiza ambos os registros no servidor DNS.

54.1.3

APIPA - Automatic Private IP Addressing

Esta e uma funcionalidade que foi introduzida no Windows 98. Ela tamb em est a presente no Windows XP, Vista, Longhorn Server e no Windows Server 2000/2003. Se os clientes estiverem congurados para usar um servidor DHCP (em vez de serem congurados manualmente com um endere co IP e outros par ametros), o servi co do cliente DHCP entrar a em funcionamento a cada vez que o computador for inicializado. O servi co do cliente DHCP usa um processo de tr es etapas para congurar o cliente com um endere co IP e outras informa c oes de congura c ao:

http://www.candidatoreal.com

O cliente DHCP tenta localizar um servidor DHCP e obter as congura c oes do protocolo TCP/IP, a partir desse servidor; Se um servidor DHCP n ao puder ser encontrado, o cliente DHCP congura automaticamente seu endere co IP e m ascara de sub-rede usando um endere co 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 verica c ao na rede, para ver se o endere co que ele est a se auto-atribuindo j a n ao est a em uso na rede. Se o endere co j a estiver em uso ser a caracterizado um conito de endere cos. Se um conito for encontrado, o cliente selecionar a outro endere co IP. A cada conito de endere co, o cliente ir a tentar novamente a congura c ao autom atica escolhendo um

445

http://www.candidatoreal.com

novo endere co IP. Ap os 10 tentativas o cliente tenta novamente localizar um servidor DHCP; Depois de selecionar um endere co no intervalo de rede 169.254.0.0 que n ao est a em uso, o cliente DHCP ir a congurar a interface com esse endere co. O cliente continua a vericar se um servidor DHCP n ao est a dispon vel. Esta verica c ao e feita a cada cinco minutos. Se um servidor DHCP for encontrado, o cliente abandonar a as informa c oes conguradas automaticamente e usar a um endere co oferecido pelo servidor DHCP (e quaisquer outras informa c oes de op c oes de DHCP fornecidas).

54.1.4

Comandos ipcong Relacionados ao DHCP

Os principais comandos relacionados ao DHCP e suas funcionalidades s ao: (1) ipcong /release: para liberar a concess ao (release) do cliente; (2) ipcong /renew: para renovar a concess ao do cliente; (3) ipcong: para obter informa c oes b asicas sobre as congura c oes do protocolo TCP/IP; (4) ipcong /all: exibe informa c oes detalhadas sobre as congura c oes do protocolo TCP/IP em todas as interfaces do computador. Clientes mais antigos como o Windows 95, 98 ou Me, n ao disponibilizam o comando ipcong. Nestes clientes, voc e pode utilizar o comando WINIPCFG para vericar as congura c oes do protocolo TCP/IP e para liberar ou renovar uma concess ao do servidor DHCP.

54.1.5

Regra 80/20

Para equilibrar o uso do servidor DHCP, uma boa pr atica e usar a REGRA 80/20 para dividir os endere cos do escopo entre dois servidores DHCP. Se o Servidor 1 estiver congurado para disponibilizar a maioria (aproximadamente 80%) dos endere cos, o Servidor 2 pode ser congurado para disponibilizar os outros endere cos (aproximadamente 20%) para os clientes.

54.2

DNS - Domain Name System

http://www.candidatoreal.com

A implementa c ao do DNS no Windows 2000/2003 Server e baseada em padr oes denidos pelo IETF - Internet Engineering Task Force. Por padr ao, este servi co NAO e instalado durante a instala c ao t pica do Windows 2000/2003 Server. E importante ressaltar que este servi co 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 administra c ao do DNS pode ser executada no console DNS, que e acessado atrav es de: Iniciar >> Programas >> Ferramentas Administrativas >> DNS. Inclusive, e poss vel utilizar um u nico console DNS para se conectar, remotamente atrav es da rede, com diferentes servidores DNS. Por padr ao, a maior parte das informa c oes (lista de servidores ROOT HINTS e informa c 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 Instala c ao/Congura c ao

O processo de instala c ao se d a seguindo os passos: Iniciar >> Congura c oes >> Painel de Controle; Adicionar ou remover programas; Adicionar ou Remover Componentes do Windows. O DNS e classicado como um SERVIC O DE REDE (Networking Services). Ap os a instala c ao, n ao e preciso reinicializar o servidor para que o servi co possa ser disponibilizado. Lembrando que este servi co e congurado para executar no contexto da conta LOCAL SYSTEM. Ap os a instala c ao do servidor DNS, o PROXIMO PASSO e criar uma ZONA PRIMARIA DIRETA. Por exemplo, vamos supor que voc e est a implementando a estrutura de DNS da rede da sua empresa, cujo dom nio root e abc.com.br. A zona e chamada prim aria porque ela ainda n ao existe e est a sendo criada para conter as informa c oes do dom nio. Ela e chamada direta, porque conter a informa c oes para resolu c ao de nomes para endere co IP, ou seja, fornecido um nome no dom nio abc.com.br, esta zona conter a informa c oes para retornar o endere co IP associado a este nome. A maioria das consultas realizadas s ao as chamadas consultas diretas (Forward Lookup). Neste tipo de consulta, o cliente fornece um nome e o servidor DNS retorna um endere co IP associado a esse nome. O DNS tamb em d a suporte as chamadas consultas inversas (Reverse Lookup), na qual o cliente fornece um ` endere co IP v alido e o servidor DNS retorna o nome associado a esse endere co IP. Originalmente o DNS n ao foi projetado para dar suporte ` as consultas reversas. Pela maneira hier arquica como o DNS e organizado, a u nica maneira para responder este tipo de consulta seria pesquisar todos os servidores DNS existentes no mundo. O que faria com que o tempo de consulta fosse muito elevado, inviabilizando o uso de pesquisas reversas. Para resolver esta quest ao foi criado um dom nio especial chamado de INADDR.ARPA. Este dom nio faz parte das deni c oes atuais do DNS e foi a maneira encontrada para fornecer a resolu c ao reversa de nomes sem que houvesse a necessidade de pesquisar em todos os servidores DNS. Para criar o espa co de nomes reverso, s ao criados subdom nios do dom nio especial in-addr.arpa. Os nomes destes subdom nios s ao formados pela ordem inversa do n umero IP da rede. Por exemplo, considere a rede 100.20.50.0/255.255.255.0. A zona para res importante ressaltar olu c ao reversa desta rede seria 50.20.100.in-addr.arpa. E que o uso de dom nios in-addr.arpa e aplicado a todas as redes baseadas no protocolo IPv4. Ou seja, este uso n ao e uma particularidade dos sistemas Windows. Outro aspecto relevante e o fato dos mecanismos de recurs ao e intera c ao tamb em serem utilizados para a resolu c ao reversa. Quando voc e cria uma zona pela primeira vez, ela e uma zona prim aria. Somente na zona prim aria e permitido fazer altera c oes nos registros da zona. Al em da zona prim aria, o DNS permite que sejam feitas c opias da zona em out ros servidores DNS. Estas c opias s ao as ZONAS SECUNDARIAS. Por exemplo, voc e pode ter uma zona prim aria no servidor DNS da matriz da empresa e criar uma zona secund aria (c opia da zona prim aria), nos servidores DNS de cada lial, para reduzir o tr afego, devido ` a resolu c ao de nomes DNS, nos links de WAN. As zonas secund arias tamb em s ao reconhecidas como AUTORIDADES para o

http://www.candidatoreal.com

447

http://www.candidatoreal.com

dom nio em quest ao e podem responder ` as consultas enviadas pelos clientes. A u nica diferen ca, em rela c ao ` a zona prim aria, e que nas zonas secund arias n ao podem ser feitas altera c oes, adi c oes e exclus oes de registros de recursos. Sempre que houver altera c oes, o servidor DNS onde est a a zona prim aria, notica os servidores DNS onde existem zonas secund arias e, ent ao, os servidores DNS da zona secund ario solicitam que as altera c oes sejam envidas a partir da zona prim aria. Com isso o DNS mant em as zonas sincronizadas, ou seja, altera c 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 altera c 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 informa c oes dos servidores para o dom nio root (representado pelo ponto .) e para os dom nios de n vel superior (.com, .net, .gov, etc.). Este recurso garante a intera c ao entre servidores DNS ao redor do mundo de forma a ser poss vel a resolu c ao de qualquer FQDN (Nome de Dom nio Totalmente Qualicado). Ap os a instala c ao e congura c ao do servidor DNS e necess aria a cria c 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-specic data. Al em dos tipos de registros padr ao IPv4, tamb em s ao suportados outros tipos, como por exemplo, o tipo AAAA que dene um mapeamento de um nome DNS em um endere co 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 congura c ao do DNS envolve as seguintes tarefas (ao congurar as propriedades do TCP/IP do cliente): Congurar um nome (de host) DNS para cada computador; Congurar um suxo DNS prim ario para o computador, que e posicionado ap os o nome de host para formar o FQDN. Por exemplo, abc.com.br; Congurar uma lista de servidores DNS que ser ao usados pelos clientes para resolver nomes DNS. Vale ressaltar que a lista sempre e utilizada de forma seq uencial, ou seja, primeiramente o primeiro servidor da lista e consultado. Caso este esteja oine ou haja problemas na comunica c ao, o cliente consultar a o pr oximo servidor da lista e assim por diante;

http://www.candidatoreal.com

Congurar a lista ou m etodo de pesquisa de suxo DNS a ser usado pelo cliente quando ele executar pesquisas de consultas DNS para nomes de dom nio curtos n ao qualicados. Al em do suxo DNS prim ario, podem ser adicionados suxos espec cos, por exemplo, vendas.abc.com. Desta forma, ao se fazer uma consulta do tipo xyz (nome n ao totalmente qualicado), na verdade, ser a consultado xyz.vendas.abc.com (suxo espec co) e se n ao houver exito tamb em ser a consultado xyz.abc.com (suxo prim ario);

448

http://www.candidatoreal.com

54.2.2

Seguran ca de Acesso

Voc e pode denir congura co es de seguran ca para limitar o acesso ` as congura c oes dos servidores DNS. Por padr ao, os grupos Domain Admins (Administradores do dom nio), Enterprise Admins (Administradores de empresa), DNS Admins (Administradores do DNS) e o grupo Administrators t em permiss ao de controle total nos servidores DNS. Voc e pode retirar as permiss oes de todos os grupos deixando apenas as permiss oes do grupo DNS Admins (e talvez tamb em a do grupo Administrators). Com isso, voc e pode controlar quais usu arios podem fazer altera c oes nos servidores DNS por meio da inclus ao muito IMPORTANTE notar que destes usu arios no grupo DNS Admins. E e necess ario manter as permiss oes padr ao de acesso a servidor DNS atribu das ao grupo Authenticated Users (Usu arios Autenticados). Se voc e retirar este grupo, os usu arios da rede n ao conseguir ao ler informa c oes no servidor DNS, ou seja, as consultas dos clientes n ao ser ao respondidas. Na pr atica e como se o servidor DNS estivesse desligado.

54.2.3

Integra c ao do DNS com o Active Directory

Outro controle que e muito importante e em rela c ao ` as quais clientes ter ao permiss ao para incluir registros dinamicamente no DNS. Sem um controle de quem pode fazer atualiza c oes din amicas, um usu ario mal intencionado poder a registrar uma s erie de registros falsos ou at e mesmo registrar milhares de registros em um ataque do tipo Denial of Service, apenas com o objetivo de paralisar o servidor DNS e com isso os servi cos que dependem do DNS. No Windows 2000/2003 Server voc e pode fazer com que o DNS somente aceite atualiza c oes din amicas enviadas por hosts autenticados no dom nio, proporcionando assim uma maior seguran ca no acesso ` as informa c oes das zonas do DNS. Este tipo de atualiza c ao e conhecido como Atualiza c ao Din amica Segura (Security Dynamic Update). Por em, este tipo de atualiza c ao somente est a dispon vel em zonas DNS integradas com o Active Directory, onde voc e pode denir uma lista de permiss ao de acesso (semelhante a uma lista de permiss oes NTFS em uma pasta). Existem dois pontos fundamentais a serem considerados na integra c ao do DNS com o Active Directory: O DNS e necess ario, obrigat orio, para localiza c ao dos DCs (Controladores de Dom nio) do dom nio;

http://www.candidatoreal.com

O servi co Netlogon usa o novo suporte ao servidor DNS para fornecer registro de controladores de dom nio no seu espa co de nomes de dom nio DNS. Enm, sua fun c ao b asica e executar registros a cerca do AD no DNS. A integra c ao inicia no momento da instala c ao do Active Directory em um member server para torn a-lo um DC. O assistente de instala c ao do Active Directory solicita que voc e informe o nome DNS do dom nio para o qual est a sendo criado um novo DC. Durante a instala c ao o assistente deve ser capaz de se conectar a um servidor DNS que seja AUTORIDADE para o dom nio informado. Se isso n ao for poss vel, o assistente ir a se oferecer para instalar e congurar o DNS no pr oprio servidor que est a sendo promovido a DC. Se isso tamb em n ao for 449

http://www.candidatoreal.com

poss vel, o Active Directory n ao poder a ser instalado. Depois que o Active Directory estiver instalado, existem duas op c oes para o tipo de armazenamento e duplica c ao de zonas do DNS: Armazenamento de zona padr ao usando um arquivo baseado em texto: as zonas armazenadas dessa maneira est ao localizadas em arquivos de texto, com a extens ao .dns, os quais s ao armazenados na pasta \%windir%\System32\Dns em cada computador que opera um servidor DNS. Os nomes de arquivo de zona correspondem ao nome que voc e escolhe para a zona durante a sua cria c ao, como Exemplo. abc.com.br.dns e o arquivo que armazena informa c oes para a zona abc.com.br; Armazenamento de zona integrada ao diret orio usando o banco de dados do Active Directory: as zonas armazenadas dessa maneira est ao localizadas na arvore do Active Directory. Cada zona integrada ao diret orio e armazenada em um objeto do tipo dnsZone identicado pelo nome que voc e escolhe para a zona durante a sua cria c ao. Em redes que distribuem o DNS para oferecer suporte ao Active Directory, as zonas prim arias integradas ao diret orio s ao especialmente recomendadas e proporcionam os seguintes benef cios: Atualiza c oes multi-master e recursos de seguran ca avan cada baseados nos INTEGRADAS, o modrecursos do Active Directory. Para ZONAS NAO elo de atualiza c ao e do tipo single-master. Neste u ltimo, somente a zona prim aria sofre altera c oes e repassa estas altera c oes para as zonas secund arias. Se o servidor onde est a a zona prim aria apresentar problemas, novas atualiza c oes din amicas n ao poder ao ser processadas enquanto este servidor n ao for recuperado. J a com ZONAS INTEGRADAS, podem ser feitas altera c oes em qualquer c opia da zona e existe uma c opia em todos os DCs do dom nio onde o DNS estiver instalado. O mecanismo de replica c ao do Active Directory se encarrega de manter as v arias c opias sincronizadas; Com esse modelo, n ao haver a um ponto u nico de falha (como no caso do modelo baseado em zonas padr ao), pois qualquer servidor DNS poder a receber atualiza c oes din amicas enviadas pelos clientes; Outra vantagem das zonas integradas e que todo objeto do Active Directory possui uma ACL - Access Control List (id entica ` a lista de permiss oes NTFS para uma pasta ou arquivo). Esta lista pode ser editada para ter um controle mais renado sobre quem tem acesso e qual o n vel de acesso; A replica c ao do Active Directory e mais r apida, mais eciente e mais segura do que o mecanismo de transfer encia de zonas padr ao do DNS. Nota: Apenas as zonas prim arias podem ser armazenadas no Active Directory. Um servidor DNS n ao pode armazenar zonas secund arias no diret orio. Ele dever a armazen a-las em arquivos de texto padr ao.

http://www.candidatoreal.com

450

http://www.candidatoreal.com

54.2.4

Servidor DNS somente Cache

Um servidor DNS somente cache e um servidor que n ao tem nenhuma zona congurada. A fun c ao deste servidor e resolver consultas utilizando os m etodos de recurs ao e/ou intera c ao e armazenar os resultados obtidos no cache do servidor DNS. O cliente envia a consulta para o servidor DNS somente cache, este servidor se utiliza de outros servidores DNS para resolver o nome. O nome e armazenado no cache do servidor DNS somente cache e a resposta e retornada para o cliente que fez a consulta. Futuras consultas a este mesmo nome, dentro do per odo de expira ca o, ser ao respondidas com base nas informa c oes do cache do servidor DNS. Este tipo de servidor deve ter quantidade suciente de mem oria RAM para exercer esta fun c ao, pois toda a informa c ao do cache do DNS e criada e mantida na mem oria RAM do servidor. Portanto, o servi ARMAZENA NENHUMA ZONA E NAO EH dor DNS somente cache NAO AUTORIDADE para nenhum dom nio.

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 ca 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

Por padr ao, o servi co DNS usa a atribui c ao de prioridades a sub-redes locais como o m etodo para dar prefer encia a endere cos IP da mesma rede quando uma consulta de cliente e resolvida para um nome de host que est a mapeado a mais de um endere co IP. Ou seja, se o cliente enviou uma consulta para um nome e existem, por exemplo, dois endere cos IP associados a este nome, o servidor DNS dar a prefer encia ao endere co 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 endere co IP mais pr oximo (e normalmente o mais r apido). Round Robin e o algoritmo de rota c ao utilizado pelo Windows 2000/2003 Server para a realiza c ao da distribui c ao de carga entre dois ou mais servidores DNS da rede. Vale ressaltar que a atribui c ao de prioridade a sub-rede locais substitui o uso da rota c ao Round Robin para nomes com v arios endere cos IP associados. Entretanto, quando o recurso Round Robin est a ativado, ele continua sendo utilizado como m etodo de classica c ao secund aria. Ou seja, caso haja um nome associado a v arios endere cos IP n ao pertencentes ` a rede local, o algoritmo de Round Robin e utilizado para determinar qual endere co ser a retornado.

http://www.candidatoreal.com

54.2.7

Comando ipcong/dnscmd Relacionadas ao DNS

Os principais comandos relacionados ao DNS e suas funcionalidades s ao:

451

http://www.candidatoreal.com

ipcong /ushdns: limpar o cache local; ipcong /displaydns: exibir o cache local; ipcong /registerdns: for ca o registro das informa c oes do host no servidor; dnscmd /clearcache: limpar o cache do servidor DNS (executado no servidor).

54.3

Active Directory

Antes de falar em Active Directory, e necess ario discursar sobre o LDAP (Lightweight Directory Access Protocol). Este e um protocolo padr ao inicialmente projetado para o acesso a servi cos de diret orio X.500 da International Standards Organization (ISO). O LDAP e a vers ao reduzida de um protocolo chamado DAP (Directory Access Protocol). A principal fun c ao do DAP era a de estabelecer, de forma padr ao, regras de comunica c ao de acesso com um diret orio baseado no padr ao X.500, mas por ser complexo permitiu o surgimento do LDAP que implementa apenas as opera c oes b asicas do DAP. A saber: Bind, Read, List, Search, Compare, Modify, Add, Delete e ModifyRDN. Em outras palavras, o LDAP e simplesmente um protocolo encarregado por denir a maneira atrav es da qual se realizam as pesquisas em uma base de dados. Inicialmente, o LDAP foi criado somente para servir de interface entre os clientes que queriam fazer consultas ao servidor X.500. Isto foi decorrente das deci encias que este protocolo tinha e de sua extrema lentid ao. Mais adiante se concluiu que, como a maioria das consultas chegava normalmente atrav es da interface LDAP, seria muito mais vantajoso utilizar o LDAP como um servi co independente de diret orio sem a necessidade de utilizar o X.500. Um diret orio e uma base de dados estruturada hier arquica contendo diferentes tipos de informa c oes e oferece uma versatilidade muito grande na hora de buscar a informa c ao desejada. Um servi co de diret orio cont em informa c oes em forma de entradas. Cada entrada cont em uma s erie de dados (atributos). Uma boa analogia seria uma lista telef onica, que cont em entradas: nomes de pessoas, nomes de empresas, etc. Cada entrada cont em uma s erie de atributos: telefone, endere co, etc.

http://www.candidatoreal.com

Active Directory e uma implementa c ao do protocolo LDAP feita pela Microsoft. Isto somente e poss vel porque o protocolo LDAP e um padr ao aberto. Existem muitas outras implementa c oes, por exemplo, OpenLDAP (uma vers ao open source). O Active Directory implementa, al em do protocolo LDAP, outras funcionalidades como o DNS e o Kerberos. Ele e utilizado como base de dados centralizada de informa c oes necess arias para a opera c ao de uma rede distribu da de computadores. Isto porque ele armazena informa c oes de usu arios e suas permiss oes, grupos, m aquinas existentes na rede, recursos comuns, seja de disco ou f sicos, como impressoras e outros perif ericos. Al em de armazenar v arios objetos em seu banco de dados, o AD disponibiliza v arios servi cos, como: autentica c ao dos usu arios, replica c ao do seu banco de dados, pesquisa dos objetos dispon veis na rede, administra c ao centralizada da seguran ca utilizando

452

http://www.candidatoreal.com

GPO (Group Policy). Com a utiliza c ao do AD, os usu arios poder ao ter apenas uma senha para acessar todos os recursos dispon veis na rede. O que representa um grande avan co se comparado a um cen ario onde e necess ario ter diferentes senhas para diferentes recursos (acessar o sistema principal da empresa, ler seus e-mails, se logar no computador, etc.). O AD surgiu juntamente com o Windows 2000 Server e pode ser instalado em servidores que executem o Windows Server 2003 (Standard Edition, Enterprise Edition e Datacenter Edition). Vale ressaltar que n ao se pode instalar o AD em um servidor que execute o Windows Server 2003 - Web Edition, mas se pode ingressa-lo em um dom nio do Active Directory como servidor membro.

54.3.1

Tipos de Servidores

Existem dois tipos de servidores: Controlador de Dom nio (DC - Domain Controller): e o computador que possui o AD instalado, ou seja, e um servidor que possui uma c opia da base de dados do AD. Em um mesmo dom nio podemos ter mais de um Controlador de Dom nio. As altera c oes efetuadas em um DC s ao replicadas para todos os outros DCs. S ao os DCs quem fazem a autentica c ao dos usu arios de um dom nio; Servidor Membro (Member Server): e um servidor que n ao possui uma c opia do AD, por em tem acesso aos objetos do AD. N ao fazem a autentica c ao dos usu arios.

54.3.2

Deni c oes de Floresta, Dom nio, Site e Unidade Organizacional

http://www.candidatoreal.com

Um dom nio pode ser denido como um limite administrativo e de seguran ca. Ele e um limite administrativo, pois as contas de Administrador t em permiss oes de acesso em todos os recursos do dom nio, mas n ao em recursos de outros dom nios. Ele e um limite de seguran ca porque cada dom nio tem deni c oes de pol ticas de seguran ca que se aplicam ` as contas de usu arios e demais recursos dentro do dom nio e n ao a outros dom nios. Eles tamb em podem ser denidos como unidades de replica c ao. Todos os controladores de dom nio podem receber altera c oes e replic a-las em todos os outros controladores deste dom nio. Cada dom nio do Active Directory e identicado por um sistema de nomes de dom nios (DNS) e requer um ou mais controladores. Se a rede precisar de mais de um dom nio, voc e poder a criar facilmente v arios dom nios. Um ou mais dom nios que compartilham um esquema e um CATALOGO GLOBAL (controlador de dom nio que armazena uma c opia de todos os objetos do AD) s ao chamados de FLORESTA. O primeiro dom nio em uma oresta e chamado de DOM INIO RAIZ da oresta. Se v arios dom nios na oresta tiverem nomes de dom nio DNS cont guos, essa estrutura ser a chamada de ARVORE DE DOM INIO. No AD, os SITES mapeiam a estrutura f sica da rede, enquanto os dom nios mapeiam a estrutura l ogica ou administrativa da organiza c ao. A estrutura do site e a estrutura do dom nio s ao separadas e ex veis. Portanto, e poss vel ter dois cen arios distintos: um u nico site com mais de um dom nio; e um u nico dom nio

453

http://www.candidatoreal.com

com mais de um site. Com a utiliza c ao de dom nios, podemos fazer com que nossa rede reita a estrutura de uma empresa. Desta forma, permite se que usu arios de um dom nio acessem recursos localizados em outros dom nios. Algumas caracter sticas pr oprias de cada dom nio: Um dom nio armazena informa c oes somente dos objetos do pr oprio dom nio. Um dom nio possui suas pr oprias diretivas de seguran ca. Os dom nios do Windows 2000/2003 podem estar nos seguintes modos: Native (Nativo): utilizado em dom nios que possuem somente Controladores de Dom nio (DC) Windows 2000/2003; Mixed (Misto) (padr ao de instala c ao): utilizado em dom nios que possuem Controladores de Dom nio (DC) Windows 2000/2003 e Windows NT. Este modo existe para manter compatibilidade com o Windows NT geralmente durante processos de upgrade. Agora que foram denidos os conceitos de arvore e dom nio, podemos ent ao denir UNIDADE ORGANIZACIONAL (Organization Unit - OU). Uma OU e uma subdivis ao de um dom nio que pode ser utilizada para organizar os objetos deste dom nio em um agrupamento l ogico para efeitos de administra c ao. Com a utiliza c ao de unidades organizacionais, e poss vel restringir os direitos administrativos apenas em n vel da Unidade Organizacional sem que, com isso, o administrador tenha poderes sobre todos os demais objetos do Dom nio. Vale ressaltar que a infra-estrutura das OUs n ao deve ser baseada na estrutura organizacional da companhia, mas sim na infra-estrutura da pol tica da rede.

54.3.3

Recursos do Active Directory

Ao utilizar os dom nios baseados no AD, temos os seguintes recursos: 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;

http://www.candidatoreal.com

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 cam armazenadas no banco de dados do AD; Gerenciamento centralizado: com os dom nios baseados no AD, temos uma administra c ao centralizada. Todas as informa c oes sobre contas de usu arios, grupos e recursos da rede, podem ser administradas a partir de um u nico local no dom nio; Escalabilidade: os dom nios podem crescer a qualquer momento, sem limite de tamanho. A forma de administra c ao e a mesma para uma rede pequena ou grande.

454

http://www.candidatoreal.com

54.3.4

Seguran ca com o Active Directory

O Active Directory garante um ambiente de diret orio seguro para a organiza c ao, pois usa os recursos internos de autentica c ao de logon e autoriza c ao de usu arios, que s ao os principais recursos da LSA (Autoridade de Seguran ca Local). O AD oferece suporte a v arios protocolos padr ao da Internet e mecanismos de autentica c ao usados para comprovar a identidade no logon, incluindo Kerberos V5, certicados X.509 v3, cart oes inteligentes, infra-estrutura de KPI (chave p ublica) e protocolo LDAP usando a SSL (Secure Sockets Layer). A autentica c ao entre dom nios ocorre por meio de rela c oes de conan ca. Conan ca e uma rela c ao estabelecida entre dois ou mais dom nios que permite aos usu arios em um dom nio serem autenticados por um controlador de outro dom nio. As rela c oes de conan ca podem ser transitivas ou intransitivas, mas devem sempre estar presentes para que os usu arios de um dom nio tenham acesso aos recursos compartilhados de outro dom nio. As rela c oes de conan ca no Windows NT s ao diferentes das rela c oes de conan ca em sistemas operacionais Windows 2000/2003. No Windows NT 4.0 e vers oes anteriores, as rela c oes de conan ca s ao limitadas a dois dom nios e a rela c ao de conan ca e unidirecional e intransitiva. Todas as rela c oes de conan ca em orestas do Windows 2000/2003 s ao rela c oes de conan ca transitivas bidirecionais. Desta forma, se o dom nio X cona no dom nio Y, e Y cona no dom nio W, ent ao X tamb em cona em W (propriedade transitiva) e W cona em Y que cona em X (propriedade bidirecional). De uma forma geral, um PROTOCOLO DE CONFIANC A funciona da seguinte maneira. Um controlador de dom nio 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 transa c ao n ao fornecer suporte a Kerberos V5, o protocolo NTLM ser a usado. Com o protocolo Kerberos V5, ap os a autentica c ao, o cliente solicita a um controlador no dom nio de sua conta uma permiss ao para o servidor no dom nio conante. Essa permiss ao e emitida por um intermedi ario de conan ca do cliente e do servidor. O cliente apresenta essa permiss ao con avel ao servidor do dom nio conante para que seja autenticada. Quando um cliente tenta acessar recursos de um servidor em outro dom nio usando a autentica c ao NTLM, o servidor que cont em o recurso deve entrar em contato com um controlador de dom nio no dom nio da conta do cliente para vericar as credenciais dessa conta. Al em de proteger o acesso ` a rede por meio de autentica c ao, o AD ajuda a proteger os recursos compartilhados, pois facilita a autoriza c ao de usu ario. Depois que um logon de usu ario e autenticado, os direitos atribu dos ao usu ario atrav es de grupos de seguran ca e das permiss oes concedidas em rela c ao ao recurso compartilhado determinar ao se o usu ario ter a autoriza c ao de acesso ao recurso. Ou seja, o AD tamb em implementa CONTROLE DE ACESSO (similar ao do NTFS). Lembrando que o controle de acesso e administrado no n vel do objeto, por meio da congura c ao de diversos n veis de acesso, ou permiss oes, aos objetos, como: Controle Total, Grava c ao, Leitura ou Sem Acesso.

http://www.candidatoreal.com

455

http://www.candidatoreal.com

54.3.5

Ferramentas de Controle

V arias ferramentas adicionais que podem ser usadas para congurar, gerenciar e depurar o Active Directory est ao dispon veis 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

IIS - Internet Information Services

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 servi cos de rede que permite a publica c ao de conte udo, disponibiliza c ao de arquivos, e execu c ao de aplica c oes em ambientes Intranet, Extranet e Internet. E instalado durante a instala Por padr ao, o IIS NAO c ao t pica do Windows 2000/2003 Server. Para instalar o IIS, clique no bot ao Iniciar >> Painel de Controle >> Ferramentas Administrativas >> clique em Assistente para congurar o Servidor >> clique em Avan car e Avan car. Para voc e come car a congurar o IIS, clique no bot ao Iniciar >> Painel de Controle >> Ferramentas Administrativas >> clique em Gerenciador dos Servi cos de informa c oes da Internet.

54.4.1

IIS versus Apache HTTP Server

Eles s ao servidores concorrentes diretos entre si, ent ao, de certa forma, possuem algumas caracter sticas convergentes e outras divergentes. Cada um possui suas fraquezas e for cas. Ao longo desta se c ao, ser ao feitas as principais compara c oes entre os dois servidores. Origens O Apache HTTP Server, em sua primeira vers ao, foi baseado no UNIX httpd Server. Este desenvolvimento ocorreu durante a primeira gera c 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 espec cos 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 distribui c ao do IIS a partir do Windows NT 3.51. Desde ent ao, este servidor sempre esteve dispon vel (n ao como padr ao de in456

http://www.candidatoreal.com

http://www.candidatoreal.com

stala c ao). Seu desenvolvimento sempre foi e continua sendo focado, u nico E MULTIe exclusivamente, na plataforma Windows. Portanto, ele NAO PLATAFORMA. Um benef cio direto desta abordagem e a vantagem de se poder implementar uma forte coopera c ao entre o IIS e o pr oprio kernel do Windows, o que inuencia e muito em sua performance. IIS e na verdade uma cole c ao de servi cos, 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 licen ca permite seu desenvolvimento e seu uso de forma irrestrita. Embora o IIS n ao tenha seu c odigo aberto, ele possui uma licen ca liberal que garante seu desenvolvimento e uso. Aplica c oes Web O Apache usa por padr ao a Common Gateway Interface (CGI) para suportar aplica c oes web. Foram criados tamb em diversos m odulos para suportar outras linguagens de programa c 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. O IIS suporta por padr ao o Active Server Pages (ASP). Pouco se comenta, mas e poss vel habilitar no IIS a utiliza c ao de outras linguagens como Perl ou PHP. Isto se deve ao fato do ASP ser a linguagem preferida pela Microsoft. Depois do lan camento da plataforma .NET em 2002 o IIS ganhou tamb em a fun c ao de gerenciar o ASP.NET. Al em disso, o IIS passou a suportar novos servi cos, como Universal Description, Discovery, and Integration (UDDI) Services, Simple Object Access Protocol (SOAP) e Web Services Description Language (WSDL). De qualquer forma, as op c oes de linguagens suportadas pelo IIS s ao menores que as suportadas pelo Apache. UDDI e uma especica ca o que dene um servi co de registro para Web Services. Um servi co de registro UDDI e um Web Service que gerencia informa c ao sobre provedores, implementa c oes e metadados de servi cos. Provedores de servi cos podem utilizar UDDI para publicar os servi cos que eles oferecem. Usu arios de servi cos podem usar UDDI para descobrir servi cos que lhes interessem e obter os metadados necess arios para utilizar esses servi cos. A especica c ao UDDI dene: APIs SOAP utilizadas para publicar e obter informa c oes de um registro UDDI; Esquemas XML do modelo de dados do registro e do formato das mensagens SOAP; Deni c oes WSDL das APIs SOAP; Deni c oes de registro UDDI (modelos t ecnicos - tModels) de diversos sistemas de identica c ao e categoriza c ao, que podem ser utilizados para identicar e categorizar registros UDDI. WSDL e uma linguagem baseada em XML utilizada para descrever Web Services. Na verdade, trata-se de um documento escrito em XML que al em

http://www.candidatoreal.com

457

http://www.candidatoreal.com

de descrever o servi co, especica como acess a-lo e quais s ao as opera c oes ou m etodos dispon veis. SOAP e um protocolo para troca de informa c oes estruturadas em uma plataforma descentralizada e distribu da, utilizando tecnologias baseadas em XML. Sua especica c ao dene uma framework que prov e maneiras para se construir mensagens que podem trafegar atrav es de diversos protocolos e que foi especicado de forma a ser independente de qualquer modelo de programa c ao ou outra implementa c ao espec ca. Performance Muitos estudos sobre performance t em sido feitos, contudo, seus resultados n ao apontam com clareza qual servidor tem maior performance. Na verdade, tem-se mostrado que o que mais inuencia na performance e a qualidade da implementa c ao da aplica c ao Web, indiferentemente se esta sendo executada no IIS ou Apache. Ambos os servidores oferecem alguns recursos importantes para o quesito performance, a saber: Uso extensivo de cache (o Apache exige um m odulo ` a parte para isso); Suporte ao GNU zip (gzip), o que reduz signicativamente a largura de banda necess aria entre o servidor e o usu ario nal; Suporte a ltros, o que anula em partes a redu c ao da performance devido ao fato do uso de linguagens interpretadas como ASP, PHP ou Perl; Uso de kernel-level listener para aumentar a performance e escalabilidade. Por padr ao, o IIS utiliza-se do HTTP.sys que e executado em modo super usu ario. De forma an aloga, contudo n ao por padr ao e sim de forma opcional, o Apache utiliza-se do phhttpd no intuito de obter uma maior performance. Seguran ca Com rela c ao ao canal de comunica c ao, ambos os servidores utilizam o HTTPS (HTTP over SSL) para a realiza c ao da encripta c ao dos dados. Portanto, n ao existem grandes diferen cas entre os dois servidores com rela c ao ` a seguran ca no canal de comunica c ao.

http://www.candidatoreal.com

Um outro aspecto da seguran ca 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 seguran ca n ao e t ao trivial. Esta responsabilidade ca 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 seguran ca no servidor Web acabam n ao sendo t ao signicativas 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 seguran ca. Mesmo em suas vers oes mais atuais, devido ` a forte colabora c 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 seguran ca a ser analisado e o controle de acesso a conte udo. Com rela c ao a este aspecto, ambos os servidores s ao ecientes. O Apache tipicamente utiliza o HTTP Basic Authentication (geralmente sobre o poss SSL) para a realiza c ao das autentica c oes. E vel tamb em este controle ser 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 integra c ao com o LDAP ou Active Directory (AD). J a o IIS, que e altamente integrado ao Windows, oferece autentica c ao e autoriza c ao tipicamente via AD. Autoriza c oes para URLs especicas tipicamente ocorrem sobre o sistema ACLs. Cabe ressaltar que em sites din amicos, a realiza c ao de autoriza c ao e autentica c ao pode se tornar extremante oneroso. Sendo assim, geralmente esta responsabilidade e passada para a aplica c ao. Administra c ao Sem d uvida a maior diferen ca entre os dois servidores e com rela c ao aos seus recursos de congura c ao e administra c ao. A congura c 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 congura c ao em v arios servidores em uma Web Farm. Por outro lado, a congura c ao manual pode se tornar dif cil se estiverem sendo congurados m ultiplos Web sites. Uma alternativa e a utiliza c ao de ferramentas (Web-based ou GUI-based). Webmin e um exemplo quando se estiver utilizando sistemas UNIX-LIKE. Com rela c ao ao IIS, a administra c ao e sempre feita via console (GUI-based Microsoft Management Console snap-in). Este console prove um ambiente comum para a administra c ao tanto do IIS quando dos diversos servidores (Web, FTP, SMTP e NNTP) que o comp oem.

54.4.2

Principais Componentes do IIS

O IIS tem muitos subcomponentes que podem ser adicionados ou removidos a qualquer momento. A saber:

http://www.candidatoreal.com

Common Files: instala arquivos comuns requeridos pelo programas IIS; Documentation: instala a documenta c ao que contempla administra c ao do servidor e publica c ao de conte udos; File Transfer Protocol (FTP) Server: instala o FTP; FrontPage 2000 Server Extensions: instala extens oes que possibilitam administra c ao de Web sites usando o FrontPage e o Microsoft Visual InterDev; Internet Information Services Snap-In: instala a ferramenta de administra c ao principal; 459

http://www.candidatoreal.com

Internet Services Manager: instala uma vers ao baseada em browser da ferramenta de administra c ao. Por padr ao, o acesso a este site e somente local; NNTP Service: instala o Network News Transfer Protocol (NNTP). Este servi co e utilizado na cria c ao e manuten c ao de newsgroups; SMTP Service: instala o SMTP; Visual InterDev RAD Remote Deployment Support: permite que aplica c oes sema distribu das remotamente; World Wide Web Server: instala o servidor Web.

54.4.3

Principais Recursos do IIS

Um servi co que n ao faz parte do IIS, mas que est ao altamente relacionados e o INDEXING SERVICE. Este servidor e utilizado na cria c ao de cat alogos de documentos que podem ser buscados dentro de um sistema. Quando este servi co 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 rela c 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 cabe calho 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 cria c ao de aplica c oes din amicas e interativas baseadas em Web; Application Protection: permite que aplica c oes ASP sejam executadas em espa cos separados de mem oria. Existem tr es n veis de prote c ao: BAIXA (in-process), MEDIA (pooled out-of-process) e ALTA (out-of-process);

http://www.candidatoreal.com

Process Accounting and Throttling: Process Accounting prove informa c 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 m etodos seguros de troca de informa c oes entre cliente e servidor; Digest Authentication: um dos muitos mecanismos de autentica c ao suportados pelo IIS. Ele e o mecanismo que trabalha melhor entre servidores proxy e rewalls. 460

http://www.candidatoreal.com

54.4.4

Principais Diferen cas entre IIS4, IIS5 e IIS6


IIS4 Windows NT 4.0 32-bit Binary Windows authentication; SSL IIS5 Windows 2000 32-bit Binary Windows authentication; SSL; Kerberos HTMLA; Terminal Services 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

Plataforma Arquitetura Metabase conguration Seguran ca

Administra c ao remota

HTMLA

Suporte a Mail Suporte a IP

SMTP IPv4

SMTP IPv4

Tabela 54.1: Principais Diferen cas entre IIS4, IIS5 e IIS6

54.5

Terminal Services

Um SERVIDOR congurado para funcionar como terminal services pode suprir diversas necessidades em uma rede de uma organiza c ao. Os benef cios de se ter um terminal services ser ao descritos na pr oxima subse c ao. Fundamentalmente, o princ pio de funcionamento e o seguinte. Diversos CLIENTES estabelecem conex oes simult aneas com o TERMINAL SERVICES e a partir da enviam somente sinais de teclado e mouse. O terminal services e respons avel por todo o processamento de aplica c oes Windows e por enviar ao cliente, via rede, o sinal de v deo que permitir a a visualiza c ao dos resultados do processamento. Como conseq u encia dessa congura c ao, n ao h a necessidade dos clientes executarem o mesmo sistema operacional utilizado no terminal services (Windows). Ou seja, CLIENTES podem estar executando qualquer SO, inclusive os n ao baseados em Windows. J a o terminal services pode ser instalado basicamente em Windows NT e Windows 2000/2003 Server (Standard Server, Enterprise Server, e Datacenter Server). Somente o Windows 2000/2003 Web Server n ao pode ser congurado como SERVIDOR DE APLICAC AO, mas pode ser con REMOTA. gurado para ADMINISTRAC AO Durante a instala c ao do sistema operacional no servidor que funcionar a como SERVIDOR DE APLICAC AO, e fortemente recomendado a utiliza c ao do sistema de arquivo NTFS. Este sistema prov e basicamente os seguintes benef cios: estabelecimento de cotas para usu arios; compress ao de parti c oes e arquivos; controle de acesso em n vel de diret orio e/ou arquivo.

http://www.candidatoreal.com

461

http://www.candidatoreal.com

As congura c oes do terminal services com rela c ao aos par ametros de comunica c ao podem ser realizadas em quatro n veis hier arquicos (descendente): Group Policies (GPO); Terminal Services conguration; User conguration; Client conguration. Cabe tamb em 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 Benef cios

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 benef cios ao se utilizar esta tecnologia. Alguns t opicos dizem respeito ` a utiliza c ao em servidores e outros em clientes. Administra c ao Remota versus Servidor de Aplica c ao. O terminal server (SERVIDOR) pode funcionar nestes dois modos (simultaneamente ou n ao). No primeiro modo, ser a poss vel acesso remoto ao servidor (simular ao Remote Desktop usado em clientes). O segundo modo permite que aplica c oes sejam executadas no servidor e que diversos clientes acessem essa aplica c ao de forma simult anea atrav es da rede (este modo e instalado como um m odulo a parte do SO). Este recurso e especialmente interessante para compartilhamento de aplica c oes em uma intranet. Uma observa c ao importante: algumas aplica c oes instaladas antes da congura c ao e ativa c ao do servidor como servidor de aplica c ao podem n ao funcionar corretamente. Isto ocorre devido ao fato de aplica c oes multiusu arios terem requisitos diferentes de congura c oes; Constru c ao de redes com clientes sem SO pr oprio. Geralmente estes clientes s ao equipamentos pobres, em rela c ao ao hardware. S ao geralmente computadores reaproveitados. Eles tamb em s ao chamados de thin clients, pois suas congura c oes s ao basicamente: HD AUSENTE, um m nimo de RAM, uma placa gr aca simples, uma placa de rede simples e interfaces de entrada/sa da (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 liga c oes necess arias para cria c oes de sess oes de trabalho no servidor que s ao vis veis e control aveis pelos thin clients;

http://www.candidatoreal.com

Esta tecnologia tamb em pode ser utilizada para redirecionamento de diversos recursos de clientes, tais como: drives de CD, disquete, etc.; clipboard; portas COM; portas LPT; impressoras; sa da de audio; etc.; Terminal Server Client. Dispon vel 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 dispon vel tamb em 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 Comunica c ao

A tecnologia terminal services suporta diversos protocolos de COMUNICAC AO e protocolos de TRANSPOTE. Protocolos podem ser instalados ou desinstalados a qualquer momento. Os protocolos de transporte s ao aqueles que implementam funcionalidades das quatro camadas inferiores do modelo OSI (f sica, enlace, rede e transporte). Os principais protocolos suportados s ao: TCP/IP; NWLink; IPX/SPX; NetBEUI. Os protocolos de comunica c ao s ao aqueles que implementam funcionalidades da camada de aplica c ao do modelo OSI. Algumas dessas funcionalidades s ao providas pelos processos de comunica c ao. Os processos de comunica c ao suportados pelo terminal services s ao: named pipes; mail slots; Windows sockets; remote procedure calls; NetBIOS; NetDDE, server message blocks, DCOM (COM+); SOAP. Um protocolo de comunica c ao muito importante para a tecnologia terminal services e o Remote Desktop Protocol (RDP). Ele regulamenta as conex oes entre terminal services e clientes utilizando como protocolo de transporte somente o TCP/IP. Como o terminal services trabalha de forma ex vel, ou seja, se comunicando atrav es de diversas vers oes de protocolos com clientes que utilizam mais variados SOs, se faz necess ario uma troca pr evia de par ametros que caracteriza o cliente. Esta troca ocorre no in cio da conex ao e os par ametros descrevem as capacidades do cliente. Estas capacidades s ao divididas em grupos: General Abilities (plataforma e SO do cliente; vers ao do protocolo; compress ao de dados suportada); Bitmaps (tamanho da tela; qualidade da cor; compress ao bitmap); Character Commands; Bitmap Cache; Color Table; Panel Activation; Remote Control (habilita a possibilidade do cliente ser controlado remotamente); Cursor (dene propriedades de cor do cursor do mouse). A tabela a seguir resume a evolu c ao deste protocolo. Surgiu com: RDP 5.0 Windows 2000 RDP 5.1 Windows XP 640 x 480 at e 1600 x 1200 pixels (24 bits); Transmiss ao de audio; Redirecionamento de portas COM; Suporte a Smart Cards; Administra c ao Remota do servidor RDP 5.2 Windows Server 2003 Todas as propriedades anteriores com poucas adi c oes, como reconex ao autom atica; transmiss ao de Windows key (ALT+TAB, etc.)

http://www.candidatoreal.com

Caracter sticas 256 cores (8 bits); Monitoramento Remoto de clientes; Criptograa; com 56 ou 128 bits; Suporte a compress ao e caching (reduz o tr aco); Conex ao com impressoras e clipboard no cliente

Tabela 54.2: Evolu c ao do RDP Atualmente, existem dois aplicativos que utilizam o protocolo RDP, o Re463

http://www.candidatoreal.com

mote Desktop Connection (RDC) e o Remote Desktop MMC Snap-in. O RDC, aplicativo padr ao para usu arios, substituiu o Windows 2000 Terminal Services client e tamb em o Client Connection Manager. O Remote Desktop MMC Snapin n ao e um aplicativo para usu ario convencionais e sim uma ferramenta para administradores (login de administrador necess ario). Esta ferramenta geralmente e utilizada para manter e administrar diversas conex oes com m ultiplos servidores.

54.5.3

Licen cas

Para que um servidor funcione corretamente no modo servidor de aplica c ao, algumas licen cas devem ser adquiridas. S ao elas: Server License: necess aria para a instala c ao do sistema operacional do servidor; Client Access License (CAL): necess aria para que clientes possam se conectar ao servidor e utilizarem servi cos como: compartilhamento de arquivos e impressoras; e outros servi cos de redes. Essa licen ca pode ser obtida por usu ario ou por dispositivo, o que for mais vantajoso para quem estiver comprando as licen cas; Terminal Server Client Access License (TS-CAL): necess aria para que clientes possam se conectar ao servidor e utilizarem aplicativos Windows. Essa licen ca tamb em pode ser obtida por usu ario ou por dispositivo. Lembrando que a cada conex ao, e vericado se o usu ario ou dispositivo em quest ao tem sua licen ca ou n ao. Esta verica c ao e feita por um servidor de licen cas, que pode ser instalado no pr oprio equipamento que funcionar a o servidor de aplica c ao ou outros equipamentos da organiza c ao, por exemplo, controladores de dom nio (DCs).

http://www.candidatoreal.com

464

http://www.candidatoreal.com

Parte XI

Banco de Dados

http://www.candidatoreal.com

465

http://www.candidatoreal.com

Cap tulo 55

Conceitos B asicos
Um sistema de ger encia de banco de dados (SGBD) e uma cole c ao de arquivos e programas inter-relacionados que permitem ao usu ario o acesso para consultas e altera c oes desses dados. O maior benef cio do banco de dados e proporcionar ao usu ario uma vis ao abstrata dos dados. A abstra c ao de dados se d a em tr es n veis: n vel canceitual, n vel l ogico e n vel f sico e ser ao explicados abaixo. A capacidade de modicar a deni c ao dos esquemas em determinado n vel sem afetar o esquema do n vel superior, e chamado independ encia dos dados. A independ encia de dados l ogica (altera c ao no n vel l ogico) e mais dif cil de ser alcan cada que a independ encia f sica, uma vez que os programas de aplica c 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, m etodos, etc. Ao contr ario do modelo E-R, cada objeto, possui uma u nica identidade, independente dos valores neles contidos. Existem tr es modelos l ogicos com base em registros: Modelo Relacional: Usa um conjunto de tabelas para representar tanto os dados como a rela c ao entre eles;

http://www.candidatoreal.com

Modelo de Rede: Os dados do modelo de rede s ao representados por um conjunto de registros e as rela c oes entre estes registros s ao representadas por links (liga c oes), as quais podem ser vistas pelos ponteiros. Os registros s ao organizados no banco de dados por um conjunto arbitr ario de grafos; similar ao modelo de rede, pois os dados e suas Modelo Hier arquico: E rela c oes s ao representados, respectivamente, por registros e links. A diferen ca e que no modelo hier arquico, os registros est ao organizados em arvores. Uma transa c ao e uma cole c ao de opera c oes que desempenha uma fun c ao l ogica u nica dentro de uma aplica c ao do sistema de banco de dados. Exigimos que as transa c oes n ao violem nenhumas das regras de consist encia do sistema 466

http://www.candidatoreal.com

necess de banco de dados. E ario aceitar inconsist encias tempor arias para que as transa c oes possam ocorrer sem problemas, mas dever a ser poss vel retornar caso ocorra uma falha, por isso todo SGDB deve conter um sistema de recupera c 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 implementa c ao eciente 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: Descri c ao de alto n vel 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; Renamento do esquema: Identicar potenciais problemas, usando teorias como a normaliza c ao; Projeto F sico: Garantir crit erios de desempenho, envolve, por exemplo, a constru c ao de ndices para tabelas; Projeto de Seguran ca: Identicar grupos de usu arios e regras entre esses grupos e seus acessos ` as tabelas.

http://www.candidatoreal.com

467

http://www.candidatoreal.com

Cap tulo 56

Abordagem Relacional
56.1 Conceitos

O abordage relacional apresenta basicamente cinco conceitos que s ao: Dom nio: Conjunto de valores permitidos para um dado; Atributo: Um item de dado do BD (possui um nome e um dom nio); Tupla: Um conjunto de pares (atributo, valor). Exemplo: (idade, 34); um conjunto de tuplas. Composto por um cabe Rela c ao: E calho e um corpo. O cabe calho possui um n umero xo de atributos n ao-amb guos (grau da rela c ao). Corpo e um n umero vari avel de tuplas (cardinalidade da rela c ao) em que a ordem n ao relevante. Chave: Conjunto de um ou mais atributos de uma rela c ao;

56.2

Esquemas e Restri c oes de Integridade

O esquema de um BD relacional e um conjunto de esquemas de rela c ao, S = R1 , ..., Rm . Uma inst ancia de S e um conjunto de rela c oes BD = r1 , ..., rm , onde cada ri e uma inst ancia do esquema de rela c ao Ri . A restri c ao de dom nio e a condi c ao em que os atributos devem ser aceitos somente dentro de um conjunto especicado, por exemplo: um valor maior que quatro ou um valor diferente de nulo. A restri c ao de integridade referencial e a condi c ao em que desejamos garantir que um valor que aparece em uma rela c ao para um dado conjunto de atributos tamb em apare ca para um certo conjunto de atributos de outra rela c ao. Um conjunto de atributos FK no esquema da rela c ao R1 e uma chave estrangeira de R1 que referencia R2 se: 1. os atributos em FK possuem os mesmos dom nios que os atributos da chave prim aria PK de R2 ; diz-se que os atributos FK fazem refer encia ` a rela c ao R2 . 468

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. Viola c oes de restri c oes que podem ocorrer: 1. inserir(v1,...,vn) pode causar: viola c ao de integridade de identidade (chave prim. nula); viola c ao de restri c ao de chave; viola c ao de integridade referencial. 2. excluir(PK) pode causa viola c ao de integridade refencial. Podemos lidar com isso das seguintes maneiras: rejeitar; propagar a exclus ao; . modicar os valores dos atributos referenciados para nulo. c oes 3. atualiza c ao(PK, atributo, novo valor): podem causar as mesmas viola vistas anteriormente quando ou a chave prim aria ou chave estrangeira s ao atualizadas. Uma asser c ao e um predicado que expressa uma condi c ao que desejamos que seja sempre satisfeita no banco de dados. Restri c oes de dom nio e de integridade s ao casos particulares de asser c oes. Asser c oes complexas podem prejudicar o desempenho do banco de dados. Um gatilho(trigger) e um comando que e executado pelo sistema automaticamente, em conseq u encia de uma modica c ao no banco de dados. O padr ao SQL-92 n ao disp oe da gatilhos. A no c ao de depend encia funcional generaliza o conceito de superchave. Quando dizemos que uma determinada rela c ao possui a depend encia 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 tamb em deve assumir os mesmos valores para o conjunto de atributos . A clausura do conjunto depend encias funcionais F e denotada por F + e inclui as depend encias funcionais logicamente impl citas.

http://www.candidatoreal.com

469

http://www.candidatoreal.com

Cap tulo 57

Modelagem Entidade Relacionamento


57.1 Conceitos

Nesta etapa, nos movemos de uma descri c ao informal do que os usu arios desejam para uma descri c ao formal. Os conceitos mais importantes s ao: Entidade: Objeto do mundo real disting u vel de outros objetos, e descrita utilizando um conjunto de atributos; Conjunto de Entidades: Uma cole c ao de entidades similares. Exemplo: todos os funcion arios; Chave Superchave: e o conjunto de um ou mais atributos que, tomados coletivamente, nos permite identicar de maneira un voca uma entidade em um conjunto de entidades; Candidata: superchave em que nenhum subconjunto e superchave; Prim aria: chave candidata denida pelo projetista do BD para identicar as entidades; Estrangeira: atributo de um conjunto de entidades que e chave prim aria de outro conjunto de entidades; Relacionamento: Associa c ao entre duas ou mais entidades; Conjunto de Relacionamentos: Cole c ao de relacionamentos similares; Atributo Descritivo: registram informa c 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.

http://www.candidatoreal.com

470

http://www.candidatoreal.com

57.2

Cardinalidade

Um para um: uma entidade em A est a associada a no m aximo uma entidade em B. Um para muitos: uma entidade em A est a associada a qualquer n umero de entidades em B. Muitos para muitos: uma entidade em A est a associada a qualquer n umero de entidades em B e uma entidade em B est a associada a qualquer n umero de entidades em A.

57.3

Representa c ao Gr aca

Conjunto de entidades: ret angulos; Atributos: elipses; Conjunto de relacionamentes: losangos; Atributos multivalorados: elipses duplas;

Figura 57.1: Um Diagrama Entidade Relacionamento

57.4

Recursos do Modelo Entidade Relacionamento

http://www.candidatoreal.com

Conjunto de Entidades Fracas: n ao possui chave prim aria, mas o identicador e composto juntamente com a chave prim aria de um conjunto de entidades dominante (forte). Esse identicador e chamado de chave parcial (pname). Essa rela c ao e feita atrav es de um relacionamento identicador. Por exemplo, um pedido de compra pode possuir v arios itens, mas cada um desses itens est a associado a somente um pedido de compra. Poderia-se associar um identicador parcial para cada item em rela c ao ao seu pedido. A chave parcial poder a ser formada entre esse identicador parcial e a chave prim aria do conjunto de entidades que representa o pedido. O relacionamento e um para muitos e conjunto de entidades fracam tem paticipa c ao total (todo item est a associado a um pedido).

471

http://www.candidatoreal.com

Especializa c ao: no caso de um conjunto de entidades que possuem subgrupos de entidades, pode-se realizar a especializa c ao fazendo que esses subconjuntos tenham os mesmos atributos do conjunto de entidades principal mais atributos espec cos para o subconjunto que n ao e compartilhado como se fosse uma heran com outros subconjuntos. E ca. Generaliza c ao: Difere da especializa c ao no sentido de como e feito o projeto. Na generaliza c ao, o projetista procura atributos em comum para formar um conjunto de entidades pai. A representa c ao no diagrama ea mesma (uso do losango ISA). Agrega c ao: Permite-nos tratar um conjunto de relacionamento como um conjunto de entidades com o prop osito de permitir a participa c ao em outros relacionamentos.

http://www.candidatoreal.com

472

http://www.candidatoreal.com

Cap tulo 58

Normaliza c ao
58.1 Aspectos desej aveis em um bom projeto

Considere o seguinte caso: queremos fazer um relat orio que representa um pedido de compra, gostar amos de obter os nomes dos produtos, seu volume, seu peso e os seus pre cos e suponha que algu em tenha pensado num esquema de item de um pedido da seguinte maneira: item(quantidade, nome do produto, volume, peso, pre co). Sabemos que um determinado produto ter a sempre o mesmo volume e o mesmo peso. Dizemos que h a redund ancia nesse caso, j a que poder amos criar outro esquema produto (id produto, volume, peso) e associarmos id produto como chaves estrangeira em item. Acabamos de realizar o que e chamado de decomposi c ao. Decomposi c oes descuidadas, entretanto, podem gerar outro tipo de projeto de m a qualidade. Podemos recuperar a rela c ao desejada por meio da opera c ao de jun c ao natural (natural join ), mas pode ocorrer que a resposta alcan cada tenha mais tuplas do que realmente deveria ter, devido a uma m a decomposi c ao (decomposi c ao com perda de jun c ao ). Um conjunto de esquemas de rela c oes R1 , R2 , ..., Rn e uma decomposi c ao de R se R = R1 R2 ... Rn . Assim, e sempre v alido que r r1 r2 ... rn . Seja R um esquema de rela c ao e F um conjunto de depend encias funcionais sobre R. Sejam R1 e R2 formas de decomposi c ao de R. Essa decomposi c ao e uma decomposi c ao sem perda de jun c ao de R se ao menos uma das seguintes depend encias funcionais est a em F + :

http://www.candidatoreal.com

R1 R 2 R 1 R1 R 2 R 2 . Outro aspecto que desejamos para o banco de dados e a preserva c ao de depend encia. O sistema deve checar se uma atualiza c ao no banco de dados criar a uma rela c ao ilegal (que n ao satisfa ca todas depend encias funcionais).

58.2

Forma normal de Boyce-Codd

Uma rela c ao do esquema R est a na FNBC (forma normal de Boyce-Codd) com respeito a conjunto F de depend encias funcionais se todas as depend encias fun473

http://www.candidatoreal.com

cionais em F + da forma , em que R e R atendem ao menos uma das exig encias abaixo: e uma depend encia funcional trivial (isto e, ). e uma superchave para o esquema R.

58.3

Terceira forma normal

Podemos aceitar uma forma normal mais fraca chamada teceira forma normal (3FN). Essa forma normal permite depend encias funcionais n ao-triviais. Uma rela c ao do esquema R est a na 3F N com respeito a conjunto F de depend encias funcionais se todas as depend encias funcionais em F + da forma , em que R e R atendem ao menos uma das exig encias abaixo: e uma depend encia funcional trivial. e uma superchave para o esquema R. Cada atributo de A em est a contido em uma chave candidata de R. Todo esquema F N BC e tamb em 3F N . Nem todo FNBC preserva as depend encias funcionais, j a em um projeto 3F N e sempre poss vel garatir as depend encias funcionais e que as decomposi c oes s ao sem perda de jun c ao. Entretanto, na 3F N pode haver repeti c ao de informa c ao e uso de valores nulos para representarmos um relacionamento entre itens de dados, mas mesmo assim e menos pior do que n ao garantir a preserva c ao de depend encia.

http://www.candidatoreal.com

474

http://www.candidatoreal.com

Cap tulo 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; Um conjunto de Relacionamento que possui a cardinalidade muitos para um ou um para um e n ao possui atributos descritivos n ao precisa ser representado em tabela. Por exemplo, no caso de um relacionamento entre um conjunto de entidades fraca e um conjunto de entidades forte, a chave prim aria do conjunto de entidades forte funciona como um atributo no conjunto de entidades fraca (chave estrangeira).

http://www.candidatoreal.com

475

http://www.candidatoreal.com

Cap tulo 60

Linguagem SQL
60.1 Cria c ao de tabela

Uma nova tabela pode ser criada especicando 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

O comando INSERT e utilizado para carregar as linhas da tabela: INSERT INTO clima VALUES (S~ ao Francisco, 46, 50, 0.25, 1994-11-27); A sintaxe usada anteriormente requer que seja lembrada a ordem das colunas. Uma sintaxe alternativa permite declarar as colunas explicitamente: INSERT INTO clima (cidade, temp_min, temp_max, prcp, data) VALUES (S~ ao Francisco, 43, 57, 0.0, 1994-11-29);

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 fun c ao. Por exemplo, para ver todas as linhas da tabela clima digite: SELECT * FROM clima Pode ser especicada qualquer express ao arbitr aria na lista de sele c ao. Por exemplo, pode ser escrito SELECT cidade, (temp_max+temp_min)/2 AS temp_media, data FROM clima

476

http://www.candidatoreal.com

Operadores booleanos arbitr arios (AND, OR e NOT) s ao permitidos na qualica c ao da consulta. Por exemplo, o comando abaixo obt em o clima de S ao Francisco nos dias de chuva: SELECT * FROM clima WHERE cidade = S~ ao Francisco AND prcp > 0.0; Pode ser desejado que os resultados da sele c ao retornem em uma determinada ordem, ou com as linhas duplicadas removidas: SELECT DISTINCT cidade FROM clima ORDER BY cidade; A consulta da forma: SELECT clima.cidade, clima.temp_min, clima.temp_max, clima.prcp, clima.data, cidades.localizacao FROM clima, cidades WHERE cidades.nome = clima.cidade; Pode ser escrita na forma alternativa: SELECT * FROM clima INNER JOIN cidades ON (clima.cidade = cidades.nome); Desejamos fazer a varredura da tabela clima e, para cada uma de suas linhas, encontrar a linha correspondente em cidades. Se nenhuma linha for encontrada, desejamos que algum valor vazioseja colocado nas colunas da tabela cidades. Este tipo de consulta e chamado de jun c ao externa (outer join). As consultas vistas anteriormente s ao jun c oes internas (inner join). O comando ent ao ca assim: SELECT * FROM clima LEFT OUTER JOIN cidades ON (clima.cidade = cidades.nome); Tamb em e poss vel fazer a jun c ao da tabela consigo mesmo. Isto e chamado de autojun c ao (self join ).

http://www.candidatoreal.com

60.3

Fun c oes de agrega c ao

Existem fun c oes de agrega c ao para contar (count), somar (sum), calcular a m edia (avg), o valor m aximo (max) e o valor m nimo (min) para um conjunto de linhas. Como exemplo, podemos obter a maior temperatura m nima 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 fun c ao de agrega c ao max n ao pode ser usada na cl ausula WHERE (esta restri c ao existe porque a cl ausula WHERE determina as linhas que v ao passar para o est agio de agrega c ao e, portanto, precisa ser avaliada antes das fun c oes de agrega c 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 agrega c oes tamb em s ao muito u teis quando combinadas com a cl ausula GROUP BY. Por exemplo, pode ser obtida a maior temperatura m nima observada em cada cidade com SELECT cidade, max(temp_min) FROM clima GROUP BY cidade; Cada resultado da agrega ca o e calculado sobre as linhas da tabela correspondendo a uma cidade. Estas linhas agrupadas podem ser ltradas utilizando a cl ausula HAVING SELECT cidade, max(temp_min) FROM clima GROUP BY cidade HAVING max(temp_min) < 40; importante compreender a intera E c ao entre as agrega c oes e as cl ausulas WHERE e HAVING do SQL. A diferen ca fundamental entre WHERE e HAVING e esta: o WHERE seleciona as linhas de entrada antes dos grupos e agrega c oes serem computados (portanto, controla quais linhas ir ao para o computo da agrega c ao), enquanto o HAVING seleciona grupos de linhas ap os os grupos e agrega c oes serem computados. Portanto, a cl ausula WHERE n ao pode conter fun c oes de agrega c ao; n ao faz sentido tentar utilizar uma agrega c ao para determinar quais linhas ser ao a entrada da agrega c ao.

http://www.candidatoreal.com

60.4

Atualiza c oes e exclus oes

As linhas existentes podem ser atualizadas utilizando o comando UPDATE. Suponha que foi descoberto que as leituras de temperatura est ao todas mais altas 2 graus ap os 28 de novembro de 1994. Estes dados podem ser corrigidos da seguinte maneira: UPDATE clima SET temp_max = temp_max - 2, WHERE data > 1994-11-28; 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

Suponha que a consulta combinando os registros de clima e de localiza c ao das cidades seja de particular interesse para sua aplica c ao, mas que voc e n ao deseja digitar esta consulta toda vez que necessitar dela. Voc e pode, ent ao, criar uma vis ao baseada na consulta, atribuindo um nome a esta consulta pelo qual e poss vel referenci a-la como se fosse uma tabela comum. CREATE VIEW minha_visao AS SELECT cidade, temp_min, temp_max, prcp, data, localizacao FROM clima, cidades WHERE cidade = nome;

60.6

Chaves estrangeiras

Desejamos ter certeza que n ao ser ao inseridas linhas na tabela clima sem que haja uma entrada correspondente na tabela cidades. Isto e chamado de manter a integridade referencial dos dados. As declara c oes para as tabelas cariam assim: CREATE TABLE cidades ( cidade varchar(80) primary key, localizacao point ); CREATE TABLE clima ( cidade varchar(80) references cidades, temp_min int, temp_max int, prcp real, data date );

http://www.candidatoreal.com

479

http://www.candidatoreal.com

Cap tulo 61

Conceitos de Datawarehousing e Bussiness Inteligence


61.1 Banco de Dados Multidimensionais

Os BDs Multidimensionais s ao altamente otimizados para minimizar o tempo de consulta e apresenta c ao. Os dados extra dos dos sistemas fontes s ao gravados diversas vezes em vetores ou arraysordenadamente de forma que a realiza c ao da consulta seja implementada como uma simples varredura de uma parte de um vetor. O BD Multidimensional tamb em possui um conjunto de fun c oes matem aticas que podem ser estendidas e que s ao executadas dinamicamente ` a varredura dos registros. Com isso, o sistema trabalha com arquivos tempor arios menores, reduzindo drasticamente o tempo de I/O. Claro que a manuten c ao destas estruturas ordenadas s ao muito mais demoradas que num BD convencional. Mas como as atualiza c oes s ao realizadas periodicamente (de m es em m es, geralmente) e o seu tempo n ao e cr tico ao n vel de aplica c ao (n ao importa para o usu ario se a carga levou 24h, mas sim que a consulta levou menos de 10 min), n ao existe grande preocupa c ao com o tempo de atualiza c ao dos dados.

http://www.candidatoreal.com

Al em de j a guardarem os dados de forma ordenada, os BDs Multidimensionais, tamb em se utilizam de estruturas auxiliares de consulta que guardam o resultado de consultas anteriores armazenados em disco e apenas consultam os registros novos que n ao foram consultados na pesquisa anterior, gerando um incremental. Exemplo: em 01/02/2001 foi realizada uma consulta que demonstrava o n umero de produtos vendidos por cidade e m es da venda. Para fazer esta consulta o banco de dados teve que varrer todos os meses e todas as cidades que tiveram vendas. Quando esta consulta e realizada novamente em 01/04/2001. O BD em vez de varrer tudo de novo, apenas procura pelos registros de vendas de Fevereiro e Mar co e utiliza os valores gerados na consulta de 01/02/2001 que foram armazenadas em um arquivo de consulta.

480

http://www.candidatoreal.com

Outra estrutura de consulta muito utilizada e a gera c ao de diversos n veis de granularidade das informa c oes. Isto e, quando o usu ario faz uma consulta como a citada no exemplo acima, o BD em vez de fazer os agrupamentos somente ao n vel de Cidade e M es ele dispara simultaneamente agrupamentos por Bairro, Estado, Semana e Trimestre, supondo que a pr oxima consulta a ser disparada pelo usu ario seja uma opera c ao de Drill Down ou Roll UP. Varias outras estrat egias de minimizar o tempo de consulta existem, mas os dois tipos de estrat egias apresentadas: consulta incremental e em v arios n veis de granularidade s ao as mais comumente utilizadas hoje em dia. Bancos de dados multidimensionais s ao sistemas propriet arios que n ao seguem padr oes (linguagem, API) estabelecidos pela ind ustria de banco de dados. Isto se torna uma desvantagem para tais sistemas, uma vez que a arquitetura n ao e aberta.

61.1.1

Modelagem Multidimensional

O modelo multidimensional visa facilitar a compreens ao do estruturamento dos dados armazenados tanto para desenvolvedores quanto para os usu arios do sistema. Neste tipo de modelo existem tr es elementos b asicos: os fatos, as dimens oes e as medidas ou vari aveis. Fato e uma cole c ao de itens de dados compostos de dados de medidas e de contexto. O fato reete a evolu c ao dos neg ocios do dia-a-dia e e representado implementado em tabelas denominadas tabelas de fato por valores num ericos. E (fact tables). 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 num ericos, pois s ao somente descritivas e classicat orias dos elementos que participam de um fato. Um Datawarehouse que analisa vendas de um produto (fato) poderia ter as seguintes dimens oes: tempo, localiza c ao, clientes, vendedores. As dimens oes podem ser compostas por membros que podem conter hierarquias. Membros (atributos) s ao as poss veis divis oes ou classica c oes de uma dimens ao. A dimens ao tempo poderia ser dividida nos seguintes membros: ano, trimestre e m es e a dimens ao localiza c ao em: cidade, estado e pa s. As Medidas (vari aveis) s ao os atributos num ericos 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 combina c 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

que tr es, o que sugere um hipercubo. Como um hipercubo e algo dif cil de se representar ` a literatura utiliza geralmente como refer encia somente o cubo. A gura 61.1 mostra um cubo para a medida vendas.

Figura 61.1: Abordagem Dimensional representada por cubos Utilizando a abstra c ao da organiza c ao da informa c ao em um cubo, podemos denir mais facilmente as quatro opera c oes b asicas OLAP: Drill Down: consiste em detalhar o n vel dos dados, navegar do mais alto n vel at e o dado detalhado. Exemplo: Em vez de ver as vendas anuais, passar a ver as vendas trimestrais. Ou em vez de ver as vendas por estado, ver por cidade; Roll UP: opera c ao inversa da Drill Down. Navega c ao do n vel de detalhe para o mais alto n vel de sumariza c ao de dados; Slice: opera c ao de corte do cubo, mantendo a mesma perspectiva de vis ao. A id eia e selecionar apenas algumas dimens oes ou membros de dimens oes. Exemplo: analisar somente as vendas do Estado de S ao Paulo, no intervalo de 1998 at e 2001; Dice: mudan ca da perspectiva de vis ao. Pode simplesmente ser a altera c ao da posi c ao das linhas pelas colunas numa tabela, ou a apresenta c ao dos dados de tr as para frente (2001, 2000,1999 em vez de 1999, 2000, 2001). Ou opera c oes mais complexas que mostram a variabilidade de uma medida ao longo das diferentes instancia c oes de uma ou mais dimens oes. Dois modelos multidimensionais comuns s ao: o esquema estrela e o ocos de neve (snowake). No esquema estrela existe uma tabela dominante no centro do esquema. Esta eau nica tabela com m ultiplos relacionamentos para as outras tabelas. As outras tabelas possuem um u nico relacionamento para a tabela central. A tabela central e chamada fato (fact table) e as outras tabelas s ao chamados de dimens ao (dimension table). A gura 61.2 ilustra o esquema estrela. Como j a dissemos uma dimens ao pode conter uma ou mais hierarquias que podem ser decompostas em tabelas separadas, gerando uma estrutura conhecida por snowake. A gura 61.3 ilustra uma estrutura snowake.

http://www.candidatoreal.com

482

http://www.candidatoreal.com

Figura 61.2: Modelo Estrela

Figura 61.3: Modelo Snowake Na verdade, snowake signica a normaliza c ao da tabela. Isto elimina redund ancia e diminui o espa co em disco. Mas, em um datawarehouse, redund ancia n ao e importante porque n ao e um ambiente transacional, opera c oes de update n ao ocorrem com freq u encia. Espa co f sico tamb em e irrelevante porque a tabela de fato e que ocupar a a maior parte deste espa co. Para uma boa performance do esquema estrela, e importante determinar o n vel de consolida c ao, ou a granularidade, dos fatos. O fato pode estar no n vel de transa c ao, por exemplo, a venda individual de determinado produto, ou o fato pode ser armazenado com uma consolida c ao maior, como por exemplo, a venda de determinada linha de produtos em um dia. Armazenando o fato ao n vel de transa c ao faz com que o tamanho da tabela fato se torne excessivo e, al em disso, este n vel de detalhamento pode ser de pouca utilidade.

http://www.candidatoreal.com

61.2

Datawarehousing

Um datawarehouse (ou armaz em de dados, ou dep osito de dados) e um sistema de computa c ao utilizado para armazenar informa c oes relativas ` as atividades de uma organiza c ao em bancos de dados, de forma consolidada. O desenho da base de dados favorece os relat orios, a an alise de grandes volumes de dados e a obten c ao de informa c oes estrat egicas que podem facilitar a tomada de decis ao. O datawarehouse possibilita a an alise de grandes volumes de dados, coletados dos sistemas transacionais (OLTP). S ao as chamadas s eries hist oricas que possibilitam uma melhor an alise de eventos passados, oferecendo suporte ` as

483

http://www.candidatoreal.com

tomadas de decis oes presentes e a previs ao de eventos futuros. Por deni c ao, os dados em um datawarehouse n ao s ao vol ateis, ou seja, eles n ao mudam, salvo quando e necess ario fazer corre c oes de dados previamente carregados. Os dados est ao dispon veis somente para leitura e n ao podem ser alterados. A ferramenta mais popular para explora c ao de um datawarehouse e a Online Analytical Processing OLAP ou Processo Anal tico em Tempo Real, mas muitas outras podem ser usadas. Os datawarehouse surgiram como conceito acad emico na d ecada de 80. Com o amadurecimento dos sistemas de informa c 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 gera c ao de relat orios. Nesse contexto, a implementa c ao do datawarehouse passou a se tornar realidade nas grandes corpora c oes. O mercado de ferramentas de datawarehouse, que faz parte do mercado de Business Intelligence, cresceu ent ao, e ferramentas melhores e mais sosticadas foram desenvolvidas para apoiar a estrutura do data warehouse e sua utiliza c ao. Atualmente, por sua capacidade de sumarizar a analisar grandes volumes de dados,o datawarehouse e o n ucleo dos sistemas de informa c oes gerenciais e apoio ` a decis ao das principais solu c oes de business intelligence do mercado. Um Datawarehouse e caracterizado como uma cole c 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 caracter sticas 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 informa c oes j a presentes no banco s ao raramente modicadas (sobrescrita). Os novos dados s ao absorvidos pelo banco, integrando-se com as informa c oes previamente armazenadas; Variante no tempo: pois deve-se manter um hist orico dos dados, permitindo compara c oes ao longo do tempo.

http://www.candidatoreal.com

Tipicamente o datawarehouse e mantido separadamente dos bancos de dados operacionais de uma organiza c ao. Existem muitas raz oes para fazer isto. Um datawarehouse suporta requerimentos funcionais e de performance para consultas OLAP (abordagem dimensional para o suporte ` a decis ao), os quais s ao bastante diferentes de aplica c oes online transaction processing (OLTP) tradicionalmente suportadas por banco de dados operacionais. Aplica c oes OLTP tipicamente automatizam tarefas de processamento de dados do dia a dia tais como ordem de entrada de produtos e transa c oes banc arias que s ao processadas durante todo o dia, dia ap os dia. Estas tarefas s ao estruturadas e repetitivas, e consistem de transa c oes curtas, at omicas e isoladas.

484

http://www.candidatoreal.com

Estas transa c oes requerem detalhes, dados atualizados, leitura e atualiza c 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. Consist encia e capacidade de recupera c ao do banco de dados s ao cr ticas e a maximiza c ao da vaz ao de transa c oes s ao m etricas chaves de performance. Conseq uentemente, o banco de dados e projetado para reetir a Sem antica operacional de aplica c oes conhecidas e, em particular, minimizar conitos de concorr encia. 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 cont em dados consolidados geralmente a partir de muitos banco de dados operacionais, sobre muitos per odos 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 agrega c oes. Vaz ao de consulta e tempo de resposta s ao mais importantes que vaz ao de transa c oes. Para facilitar an alises e visualiza c 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-m estrimestre-ano, produto como produto-categoria-ind ustria (marca) para facilitar e ampliar o dom nio de consultas que podem ser feitas no Datawarehouse. O modelo estrela, oco de neves s ao dois exemplos de esquemas multidimensionais com os quais um datawarehouse pode ser modelado.

61.3

OLTP, OLAP, MOLAP, ROLAP e HOLAP

http://www.candidatoreal.com

um acr OLTP ` aE onimo de Online Transaction Processing ou Processamento de transa c oes em tempo-real. S ao sistemas que se encarregam de registrar todas as transa c oes contidas em uma determinada opera c ao organizacional, ou seja, e uma aplica c ao que tem como caracter stica principal muitas atualiza c oes em dados operacionais. Por exemplo: sistema de transa c oes banc arias registra todas as opera c 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 anal tico em tempo-real. E os analistas, gerentes e executivos a conseguir obter discernimento nos dados atrav es de um acesso r apido, consistente e interativo, para uma larga variedade de possibilidades de vis oes da informa c ao que v em a ser transformada a partir de dados cruspara reetir o real dimensionamento da corpora c ao como entendido pelo usu ario. A funcionalidade OLAP e caracterizada pela an alise din amica multidimensional dos dados consolidados da corpora c ao, dando suporte ` as atividades de an alise e navega c ao do usu ario nal. A funcionalidade 485

http://www.candidatoreal.com

OLAP e implementada em um modo cliente/servidor multi-usu ario, e oferece consistentemente r apidas respostas para consultas, apesar do tamanho e complexidade do banco de dados. Ela ajuda o usu ario a sintetizar as informa c oes da corpora c ao atrav es de vis oes comparativas e personalizadas, assim como atrav es de an alises de hist oricos e proje c oes de dados em v arios modelos de cen arios do tipo what-if. Alguns exemplos de consultas t picas de OLAP s ao: Quais os produtos mais bem vendidos no m es passado? Quais os 10 piores vendedores do departamento X? Qual a m edia salarial dos funcion arios de inform atica na regi ao sul nos u ltimos 5 anos? dentre outras. Caracter sticas Opera c ao T pica Granularidade Idade dos Dados Recupera c ao Orienta c ao Modelagem Usu arios OLTP Transa c ao At omico Presente Poucos Registros Registro Processo Muitos OLAP An alise Agregado Hist orico, Atual e Projetado Muitos Registros Arrays Assunto Poucos

Tabela 61.1: OLTP vs. OLAP Quanto ` a localiza c ao dos dados a serem utilizados na an alise, atualmente existem duas abordagens: Um banco de dados multidimensional especializado; Um datawarehouse implementado com a tecnologia de banco de dados relacional, mas otimizado para a tarefa de an alise. Sistemas OLAP que implementam a primeira abordagem s ao chamados de MOLAP (Multidimensional OLAP) e aqueles que implementam a segunda s ao chamados ROLAP (Relational OLAP). 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:

http://www.candidatoreal.com

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 agrega c oes) no servidor OLAP. Al em das caracter sticas b asicas de sistemas OLAP, servidores ROLAP devem tamb em: Utilizar metadados para descrever o modelo dos dados e para auxiliar na constru c ao das consultas. Desta maneira um analista pode executar suas an alises utilizando seus pr oprios termos; 486

http://www.candidatoreal.com

Criar comandos SQL otimizados para os bancos de dados com o qual trabalha. A principal vantagem de se adotar uma solu c ao ROLAP reside na utiliza c ao de uma tecnologia estabelecida, de arquitetura aberta e padronizada como ea relacional, beneciando-se da diversidade de plataformas, escalabilidade e paralelismo de hardware (SMP e MPP). Quanto ` as limita c oes, pode-se citar o pobre conjunto de fun c oes para an alise, a inadequa c ao do esquema estrela para atualiza c ao dos dados e as solu co es propriet arias para metadados que acaba por anular muitas das vantagens do uso da tecnologia relacional. MOLAP ` a OLAP multidimensional. MOLAP e uma classe de sistemas que permite a execu c ao de an alises bastante sosticadas usando como gerenciador de dados um banco de dados multidimensional. Em um banco de dados MOLAP, os dados s ao mantidos em arranjos e indexados de maneira a prover um otimo desempenho no acesso a qualquer elemento. A indexa c ao, a antecipa c ao da maneira como os dados ser ao acessados e o alto grau de agrega c ao dos dados fazem com que sistemas MOLAP tenham um excelente desempenho. Al em de serem r apidos, outra grande vantagem desses sistemas e o rico e complexo conjunto de fun c oes de an alise que oferecem. HOLAP ` a O armazenamento HOLAP (OLAP H brido) e uma combina c ao dos tipos de armazenamento MOLAP e ROLAP. Os dados de agrega c ao s ao armazenados em MOLAP, enquanto os dados de base s ao deixados no banco de dados relacional.

61.4

Outros conceitos importantes

http://www.candidatoreal.com

um reposit Data Mart: e um subconjunto de um data warehouse. E orio de dados extra dos das fontes operacionais ou de um data warehouse que e projetado para servir as necessidades particulares de um grupo espec co. Na pr atica, o data ware house e data mart pode trabalhar juntos. O data warehouse atende as necessidades estrat egicas da organiza c ao, enquanto o data mart atende as necessidades gerenciais mais a n vel operacional. Quando os data mart atualiza seus dados atrav es do data warehouse, ele e considerado de dependente. Quando ele atualiza os dados atrav es das fontes operacionais, ele e considerado independente; Agrega c 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 opera c oes de soma ou m edia por exemplo. Para evitar que as mesmas opera c oes sejam realizadas a cada vez que um usu ario execute uma consulta, e importante realizar um levantamento das agrega c oes e sum arios nos quais os usu arios est ao interessados; Funcionamento (Fluxo de dados). Os dados para serem usados para ns anal ticos devem ser transformados e carregados dos sistemas OLTP para

487

http://www.candidatoreal.com

o Data Warehouse. Durante essas transforma c oes (realizadas pelas ferramentas ETL Extrair, Transformar e Carregar) s ao criados resumos e agrega c oes entre esses dados, transformando-os em informa c oes de mais alto n vel e mais signitivas para os analistas, gerentes e executivos; um mapeamento Metadados: s ao os chamados dados sobre os dados. E dos dados do modo como foram extra dos das fontes operacionais e como est ao inseridos no data warehouse. Os metadados denem e descrevem os dados de neg ocio (valor aos dados) e os tipos de dados (deni c oes de tabelas, atributos, dom nio e rela c oes). Os metadados s ao geralmente armazenados em reposit orios separados ao alcance dos usu arios; Granularidade: e o n vel 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.

http://www.candidatoreal.com

488

http://www.candidatoreal.com

Parte XII

Administra c ao de Bancos de Dados Relacionais

http://www.candidatoreal.com

489

http://www.candidatoreal.com

Cap tulo 62

Ger encia de Transa c oes


Uma transa c ao e a unidade l ogica de processamento, e pode incluir uma ou mais opera c oes sobre o Banco de Dados. Para garantir a corre c ao, uma transa c ao deve ser executada at e o nal. As duas opera c oes b asicas fornecidas por um banco de dados s ao READ e WRITE. As fronteiras de uma transa c ao podem ser denidas explicitamente na aplica c ao atrav es das chamadas BEGIN TRANSACTION e END TRANSACTION. Entende-se por transa c oes concorrentes aquelas que s ao executadas ao mesmo tempo e pelo menos uma opera c ao de WRITE e executada por alguma das transa c oes. A possibilidade de existir transa c oes sendo executadas de forma concorrente faz com que o SGBD utilize t ecnicas para realizar o controle de concorr encia. Uma vez iniciado o processamento da transa c ao, o SGBD deve garantir que ela ser a executada at e o nal e os resultados ser ao armazenados de forma permanete. No entanto, durante a execu c ao de uma transa c ao podem ocorrer falhas como crash do sistema, falhas no disco, cat astrofes. Isso faz com que o SGBD tenha que utilizar t ecnicas de Recupera c ao em caso de falhas. Para efeitos e recupera c ao s ao utilizadas as seguintes opera c oes sobre as transa c oes: BEGIN TRANSACTION - Marca o in cio da transa c ao; READ/WRITE - Executa opera c oes como parte da transa c ao;

http://www.candidatoreal.com

END TRANSACTION - Especica o m das opera c oes de leitura e escrita; COMMIT TRANSACTION - Conrma o succeso da transa c ao; ROLLBACK - Indica que ocorreram problemas com a transa c ao. Altera c oes devem ser desfeitas. As transa c ao podem ainda se encontrar em cinco estados que s ao: (1)Ativa ; (2)Parcialmente Conrmada ; (3)Conrmada ; (4)Falha ; (5)Terminada. As propriedades desej aveis de uma transa c ao devem ser:

490

http://www.candidatoreal.com

Atomicidade : Garantir que ser ao executadas at e o m; Consist encia - Devem levar o Banco de Dados de um estado consistente para outro tamb em consistente; Isolamento - A execu c ao de uma transa c ao n ao deve ser prejudicada por transa c oes concorrentes; Durabilidade - As altera c oes realizadas por uma transa c ao conrmada devem ser persistitas no Banco de Dados. Estas quatro propriedades s ao usualmente referenciadas como ACID. Quando v arias transa c oes s ao executas simultaneamente, as instru c oes de cada transa c ao podem ser intercaladas. A atribui c ao da ordem dessas instru c oes responsabilidade do SGDB escolher uma e conhecido como escala de execu c ao. E escala que deixe o banco de dados em estado inconsistente. As u nicas opera c oes signicativas de uma transa c ao, do ponto de vista da escala de execu c ao, s ao suas instru c oes de leitura e escrita. Considere uma escala de execu c ao com duas instru c oes sucessivas Ii e Ij , das transa c oes Ti e Tj , respectivamente. Se Ii e Ij referem-se a itens de dados diferentes, ent ao podemos alternar Ii e Ij sem afetar os resultados de qualquer instru c ao da escala. J a quando se referem aos mesmos dados temos os seguintes casos: 1. Ii = read(Q), Ij = read(Q): a seq u encia n ao importa; 2. Ii = read(Q), Ij = write(Q): a ordem importa, pois se Ii vier depois de Ij , Ii ir a ler o valor escrito por Ij ; 3. Ii = write(Q), Ij = read(Q): a ordem importa, por raz oes semelhantes a anterior; 4. Ii = write(Q), Ij = write(Q): a ordem importa, n ao afeta as transa c oes Ti e Tj , entretanto, o valor obtido pela pr oxima instru c ao de leitura sobre Q ser a afetado. Dizemos que Ii e Ij entram em conito caso a ordem importe. Se uma escala de execu c ao puder ser transformada em outra por uma s erie de trocas de instru c oes n ao-conitantes, dizemos que essas escalas de execu c ao s ao equivalentes em conito. Dizemos que uma escala e conito serializ avel se ela e equivalente em conito ` a uma escala seq uencial (uma escala que cont em as instru c oes de poss cada transa c ao agrupadas). E vel ter duas escalas de execu c ao que produzam o mesmo resultado, mas que n ao sejam equivalentes em conito.

http://www.candidatoreal.com

491

http://www.candidatoreal.com

Cap tulo 63

Controle de Concorr encia


Entende-se por transa c oes concorrentes aquelas que desejam executar ao mesmo tempo e pelo menos uma opera c 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 transa c ao acessa um item de dado, nenhuma outra poder a modic a-lo. A forma mais simples de se implementar o controle de concorr encia e a utiliza c ao de mecanismos de bloqueio baseados em locks bin arios, atrav es das opera c oes b asicas lock e unlock, que devem ser aplicadas antes e depois da realiza c ao de uma opera c ao qualquer (READ ou WRITE) sobre qualquer item de dados. Os locks bin arios tem o incoveniente de n ao permitir que duas ou mais transa c oes que desejem realizar opera c oes apenas de leitura acessem o item simultaneamente. Isso diminui o desempenho do sistema, uma vez que muitas transa c oes tem que aguardar na la de espera por acesso a um item de dados. Para contornar esse problema, um outro mecanismo de lock baseado em 3 opera c oes foi criado. Quando um transa c ao deseja aenas ler um item, ela realiza uma opera c ao read lock, permitindo que outras transa c oes que desejem apenas ler o mesmo item tamb em possam executar simultaneamente. Se uma opera c ao deseja escrever, deve primeiro executar uma opera c ao do tipo write lock. Nenhuma opera c ao de leitura ou escrita pode ser realizada por outra transa c ao sobre um item que esteja bloqueado para escrita. A opera c ao unlock deve ser aplicada ap os o termino das opera c oes de leitura ou escrita por parte das transa c oes que detem o lock de um item.

http://www.candidatoreal.com

comum que uma transa E c ao deseje mudar o tipo de lock que possui sobre um determinado item. Esta opera c ao e chamada de convers ao de lock. Se apenas uma transa c ao possuir o read lock, ela pode atualiz a-lo para write lock. Uma transa c ao que possua um write lock pode convert e-lo para read lock ap os terminar suas opera c oes de escria. Essa opera c oes s ao tamb em chamadas upgrade e downgrade. Os locks bin arios e os locks read/write embora garantam a exclusividade m utua, n ao podem garantir a serializa c ao na execu c ao de transa c 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

colhimento (Shrinking). Todos os read lock, write lock e upgrdrades ocorrem na primeira fase, enquanto unlock e downgrade ocorrem na segunda. Um problema dos protocolos de bloqueio e a possibilidade de ocorr encia de deadlocks. Um protocolo de preven c ao de deadlocks e baseado em timestamps, que s ao identicadores u nicos associados a cada transa c ao. Outras duas t ecnicas para identica c ao e preven c ao de deadlocks s ao timeouts e grafos (WaitFor Graphs ). Protocolos baseados em timestamps tamb em podem ser utilizados para controle de concorr encia. Os valores do timestamp para um dado item X s ao: readTS(X ) e writeTS(X). Eles indicam a u ltima leitura e escrita realizadas sobre o item X respectivamente. Uma outra t ecnica para controle de Concorrencia basea-se em guardar valores antigos de um determinado item. Procolos que se utilizam dessa t ecnica s ao chamados Multivers ao. Opera c oes de leitura que antes em outros protocolos n ao seriam permitidas, podem ser realizadas fornecendo-se a vers ao antiga de um item de dado. O principal encoveniente desta t ecnica e a necessidade de mais espa co em disco. A granularidade de um item de dado tamb em exerce grande inu encia no desempenho de opera c oes de controle de concorr encia. Por exemplo, uma transa c ao que deseja realizar opera c oes sobre um resgistro, pode tornar ineciente o controle de transa c oes se bloquear inadequadamente um bloco f sico inteiro. Protocolos que determinam tipo de bloqueio de acordo com a granularidade s ao chamados Multiple Granularity Lockig (MGL).

http://www.candidatoreal.com

493

http://www.candidatoreal.com

Cap tulo 64

Ger encia de Desempenho


O Design f sico do Banco de Dados e o processo de escolha das estruturas de armazenamento e m etodos de acesso de forma que um bom desempenho possa ser atingido pelas diversas aplica c oes. Cada SGBD oferece uma diversidade de op c oes de organiza c ao de arquivos e m etodos de acessos especiais como ndices, clustering de registros relacionados, encadeamento de registros relacionados usando ponteiros, e fun c oes hash. Os crit erios utilizados que guiam a escolha das op c oes de design f sico s ao o Tempo de Rsposta, a Utiliza c ao do Espa co e o Throughput de Transa c oes. O desempenho das estruturas e m etodos 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. A maioria dos SGBDs possuem ferramentas de monitora c ao que coletam estat sticas de desempenho, que s ao mantidas no Cat alogo do Sistema (System Catalog ). As informa c oes dizem respeito, por exemplo, ` a n umero de chamadas de transa c oes ou queries, atividade de I/O por arquivo, n umero de p aginas por arquivo, n umero de regsitros por ndice e frequ encia de utiliza c ao dos ndices. Assim que os requisitos do sistema mudam, pode se tornar necess ario adicionar ou remover tabelas, reorganizar aquivos (mudar m etodo de acesso prim ario), dropar ndices antigos e criar novos. Exemplos de atividades importantes no design f sico de um Banco de Dados: (i)An alise de Transa c oes de de Queries - Envolve determinar arquivos envolvidos, atributos mais acessados, atributos utilizados em opera c oes de JOIN, e determina c ao de opera c oes predominantes (SELECT, UPDATE, INSERT, DELETE); (ii)Estimativa da Frequ encia das Chamadas de Transa c oes e Queries - Geralmente para um grande volume de processamento, e v alida a regra informal que diz que 80% do processamento e gasto com 20% das transa c oes e queries ; (iii)Restri c oes de Tempo - Identicar das restri c oes de tempo de transa c oes e queries ; (iv)Restri c oes de Unicidade de Atributos - Devem ser estabelecidos m etodos de acesso para todas as chaves candidatas ou conjunto de chaves candidatas (ex: PK ou UNIQUE), tendo por objetivo otimizar os testes de unicidade. Os ind ces primarios e de clustering est ao diretamente relacionados com a 494

http://www.candidatoreal.com

http://www.candidatoreal.com

ordena c ao f sica dos registros no disco. Portanto, pode ser denido no m aximo um ndice deste tipo. Embora o desempenho das opera c oes de consulta seja otimizado com a utiliza c ao de ndices, e importante ressaltar que a exist encia de ndices representa um overhead signicativo nas opera c oes de inser c ao, atualiza c ao e exclus ao. Para consultas baseadas em multiplos campos, podem ser denidos 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 fun c oes hash s ao extremamente ecientes para testes de igualdade, podendo otimizar bastante opera c oes de JOIN. Uma outra estrat egia utilizada para otimiza c ao em Bancos de Dados e a Desnormaliza c ao. Essa t ecnica consiste em armazenar o banco de dados em uma forma normal mais fraca como a 1NF ou 2NF, introduzindo algumas deped encias funcionais que n ao existiriam nas formas BCNF ou 4NF. Essa t ecnica se baseia em eliminar a necessidade de opera c oes de JOIN, de forma que consultas possam ser respondidas acessando o menor n umero de arquivos poss veis. Outras duas t ecnicas que podem ser utilizadas s ao o Particionamento Vertical, que consiste na divis ao de um tabela e m ultiplas tabelas de colunas iguais, por em com um n umero menor de linhas por tabela, e o Particionamento Horizontal, que consiste em transformar uma rela c ao R(K, A, B, C, D, ...) em m ultiplas rela c oes R1 (K, A, B ), R2 (K, C, D), R3 (K, ...). As t ecnicas de particionamento s ao interressantes pois n ao sacricam a forma normal da rela c ao original. Alguns cuidados adicionais podem ser tomados para garantir o bom desempenho do sistema. A utiliza c ao da opera c ao DISTINCT causa uma opera c ao de ordena c ao, e portanto e muito custosa. Cl ausulas DISTINC redundantes devem ser eliminadas. Deve-se ter cuidado com a utiliza c ao de tabelas tempor arias, por em 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 No caso acima, a utiliza ca o de uma tabela tempor aria pode impedir que o c alculo do sal ario m aximo por departamento seja realizado para todos os empregados da tabela E.

http://www.candidatoreal.com

SELECT MAX (SALARY) AS HIGHSALARY, DNO INTO TEMP FROM EMPLOYEE GROUP BY DNO SELECT SSN FROM EMPLOYEE E, TEMP T WHERE E.SALARY = T.HIGHSALARY AND E.DNO = T.DNO Alguns otimizadores de consulta n ao s ao capazes de determinar em qual ordem as tabelas que aparecem na cl ausula FROM devem ser varridas, e utilizam na execu c ao a ordem em que elas aparecem na cl ausula. Portanto e importante que se organize as tabelas de forma que as tabelas menores sejam varridas enquanto as tabelas maiores sejam indexadas de forma adequada. Condi c oes OR na cl ausula where podem inibir a utiliza c ao de ndices, portanto a estrat egia 495

http://www.candidatoreal.com

ser tomada e separar a querie em duas, for cando a utiliza c ao do ndice, e realizar uma opera c ao UNION na sequ encia. As opera c oes IN, =ALL, =ANY, =SOME devem ser substitu das por opera c oes do tipo JOIN sempre que poss vel. Processamento de consultas s ao atividades envolvidas em extrair dados de um banco de dados. O custo do processamento de uma consulta e principalmente determinado pelo acesso ao disco. Os passos envolvidos no processamento de consultas s ao: 1. An alise sint atica e tradu c ao; 2. Otimiza c ao; 3. Avalia c ao. O processo de tradu c ao e semelhante ` a tarefa de um analisador sint atico em um compilador. A otimiza c ao, geralmente, ca a cargo do SGDB, no caso do modelo relacional. J a para os modelos de rede e hier arquico, a otimiza c ao ca a cargo do programador. Um plano de execu c ao de consulta e um conjunto de opera c oes primitivas que s ao usadas para avaliar uma consulta. Os diferentes planos de execu c ao podem possuir diferentes custos. A otimiza c ao de consultas e o processo de selecionar o plano de execu c ao mais eciente para uma consulta. Um aspectos de otimiza c ao envolve a procura de express ao mais eciente no n vel de algebra relacional, mas diversas outras estrat egias s ao importantes como a escolha de um algoritmo para ser usado na execu c ao de uma opera c ao e a escolha de ndices a usar. Para escolher diferentes planos de execu c ao, o otimizador deve estimar o custo de cada plano de avalia c ao. Os otimizadores de consulta usam informa c oes estat sticas armazenadas em um cat alogo e incluem: N umero de tuplas de cada rela c ao; N umero de blocos que cont em as tuplas de cada rela c ao; N umero de bytes de uma tupla para uma certa rela c ao; N umero de valores distintos que aparecem numa rela c ao para um determinado atributo; N umero m edio de registros que satisfazem uma condi c ao de igualdade para um determinado atributo. Podemos processar consultas que envolvem sele c oes simples por meio da execu c ao de uma varredura linear, de uma procura bin aria ou do uso de ndices. Podemos tratar as sele c oes complexas computando uni oes e intersec c oes dos resultados de sele c oes simples. Podemos ordenar rela c oes maiores que a mem oria usando o algoritmo do merge-sort externo. Uma jun c ao pode ser calculada por diversos algoritmos e o sistema deve ser sagaz para escolher a melhor alternativa para cada caso.

http://www.candidatoreal.com

496

http://www.candidatoreal.com

Parte XIII

Oracle e Microsoft SQL Server

http://www.candidatoreal.com

497

http://www.candidatoreal.com

Cap tulo 65

Administra c ao de Bancos de Dados Oracle


65.1
65.1.1

Arquitetura de um Servidor Oracle


Estruturas em mem oria

Para operar, uma inst ancia Oracle aloca uma s erie de areas de cache em mem oria para armazenar tr es estruturas que s ao o SGA (System Global Area ), o PGA (Program Global Area ) e as Sort Areas. O SGA e uma area u nica de mem oria compartilhada composta por tr es componentes principais que s ao: Database Buer Cache (DBBC): o DBBC e uma area de mem oria que armazena os blocos de dados lidos do disco. Quando um processo necessita de acessar dados do banco ele primeiro consulta essa area de mem oria. Todas as opera c oes sobre os dados do banco s ao realizadas nessa area antes de serem persistidas em disco. No Oracle, a pol tica de substitui c ao de blocos utilizada e a LRU (Last Recently Used ); Shared Pool: o shared pool e uma area compartilhada que armazena informa c oes sobre as instru c oes SQL enviadas pelos processos usu ario (texto do comando, planos de execu c ao etc.) e informa c oes sobre o dicion ario de dados (nome das tabelas, colunas, tipos, privil egios etc.);

http://www.candidatoreal.com

Redo Log Buer: buer circular que cont em informa c oes sobre as modica c oes efetuadas no banco de dados. O redo log buer e uma das estrturas importante utilizadas para realizar a recupera c ao do banco de dados. E ressaltar que o redo log buer e utilizado apenas para recupera c ao e n ao para opera c oes de rollback; J a o PGA, em um sistema single-threaded, e uma area de mem oria n ao compartilhada utlizada par guardar informa c oes de controle para um u nico processo. O PGA armazena informa c oes como arrays, estado de cursores e informa c oes sobre ses oes de usu arios. Quando trata-se de um sistema multi-threaded (MTS), as informa c oes sobre sess oes de usu arios s ao guardadas em uma outra area chamada UGA (User Global Area), que e alocada no shared pool.

498

http://www.candidatoreal.com

A Sort Area e uma area de mem oria compartilhada alocada especialmente para realiza c ao de opera c oes que exigem ordena c ao, como SORT BY, GROUP BY e DISTINCT. Quando o tamanho da Sort Area n ao e suciente, a opera c ao de ordena c ao e realizada em disco, em uma tablespace chamada TEMP. Duas outras estruturas de mem oria tamb em t em muita import ancia na arquitetura Oracle. A primeira delas e o Java Pool, que dene a quantidade de mem oria que pode ser alocada pela JVM (Java Virtual Machine ). A segunda dela e o Large Pool, que e utilizada para opera c oes de backup, recupera c ao, entre outras. Em alguns casos, pode ser utilizada para opera c oes de ordena c ao.

65.1.2

Processos server

Os processos server s ao recebem as requisi c oes dos processos user, realizam o parse das instru c oes SQL, vericam 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 poss veis em sistemas multi-threaded.

65.1.3

Processos user

As fun c oes desempenhadas pelos processos user s ao se conectar com os processos server, enviar instru c 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

Ao contr ario dos processos server, os processo em background n ao realizam nenhuma comunica c 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, por em apenas 4 deles s ao obrigat orios que s ao: Process Monitor (PMON): Realiza a recupera c ao quando algum processo falha, al em de liberar o cache, locks e demais recursos que o processo estava utilizando; System Monitor (SMON): Realiza o processo de recupera c ao da inst ancia durante o processo de inicializa c ao, limpa segmentos tempor arios que n ao est ao mais em uso, recupera transa c oes terminadas de forma anormal e realiza desfragmenta c ao nos arquivos de dados para facilitar a aloca c ao; Database Writer (DBWR): A fun c ao principal do DBWR e escreve os blocos de dados modicados (dirty ) do DBBC para o disco. Isso e feito nas seguintes situa c oes: (i) quando a lista de blocos modicados atinge um tamanho congurado; (ii) quando o processo percorre um quantidade congurada de blocos e n ao encontra nenhum bloco livre; (iii) quando ocorre

http://www.candidatoreal.com

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 al em de garantir que as alera c oes feitas em buer ser ao persistidas, tamb em gerencia o espa co em buer para melhorar o desempenho do banco; o respons Log Writer (LGWR): E avel por copiar as informa c oes do redo log buer para o o redo log le (arquivo de log com a mesma estrutura do redo log buer). O LGWR tamb em e respos avel por atualizar os headers dos arquivos de dados quando ocorre um checkpoint. O LGWR e disparado nas seguintes situa c oes: (i) quando ocorre um commit; (ii) quando ocorre um checkpoint; (iii) quando ocorre um timeout ou (iv) quando o redo log buer atinge um ter co de sua capacidade. Al em desses quatro, o Oracle possui uma s erie de outros processos em background que s ao de instala c ao e uso opcionais. Os mais importantes s ao os seguintes: CKPT: Atualiza os headers dos arquivos de dados quando ocorre um checkpoint. A utiliza c 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 buer para o disco; RECO: Respons avel pela recupera c ao de falhas envolvendo transa c oes distribu das. Esse processo e necess ario quando o Oracle est a rodando de forma distribu da; o respons ARCH: E avel por copiar o redo log le (que e um buer circular) para um dispositivos de armazenamento oine para que os logs n ao sejam perdidos; o processo respons Pnnn: E avel pela execu c ao de consultas paralelas; SNPn: Controla a replica c 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; Dnnn: Esse processo funciona como um dispatcher quando o sistema est a necess utilizando processos server compartilhados. E ario um dispatcher para cada protocolo de comunica c ao utilizado.

http://www.candidatoreal.com

65.1.5

Arquivos

Em conjunto, O SGA e os processos em background formam uma int ancia Oracle. O banco de dados propriamente dito e formado por tr es tipos de arquivos que s ao: Datales: Armazenam as tabelas e ndices do banco; Redo Log Files: Armazenam os logs do sistema. Esse arquivo consiste de um buer circular assim como o redo log buer. O processo LGWR eo respons avel por copiar os logs em mem oria para este arquivo; 500

http://www.candidatoreal.com

Control Files: Este e um arquivo bin ario que descreve a estrutura e o status do banco de dados. Cont em a identica c ao dos arquivos de log e de dados, o nome do banco e informa c oes de sincronismo entre os arquivos que o comp oe. Embora na arquitetura do Oracle o banco de dados seja composto somente por esses tr es arquivos, uma s erie de outros arquivos s ao importantes para colocar uma int ancia no ar. Exemplos desses arquivos s ao: Parameter File: Arquivo texto que cont em todos os par ametros necess arios para colocar uma inst ancia do Oracle no ar, por exemplo, quantidade de mem oria alocada para o SGA, nome e localiza c ao de arquivos de controle, tamanho de buers e de blocos etc; Alert File: Arquivo de log onde s ao registrados os erros ocorridos (processo, blocos corrompidos, deadlock etc.), tarefas administrativas al em dos valores de par ametros de incializa c ao no momento que a inst ancia e posta no ar; Trace File: Arquivo de log onde s ao armazenadas informa c oes delatalhadas sobre os problemas ocorridos. A utiliza c ao desse arquivo e opcional;

65.2

Arquitetura Oracle de Armazenamento de Dados

http://www.candidatoreal.com

Um banco de dados e composto por uma ou mais tablespaces. Uma tablespace cont em um ou mais arquivos no n vel de sistema operacional. Cada tablespace pode ter um ou mais segmentos. Um segmento e adicionado na tablespace quando uma tabela ou um ndice e criado, ou seja, um segmento e associado a poss cada objeto de banco de dados. E vel que um objeto seja atribu do a mais de um segmento, mas, para isso, o usu ario dever a particionar explicitamente o objeto. V arias tabelas ou ndices podem ser inclu dos em um mesmo segmento atrav es da cria c ao de um objeto conhecido como cluster. A medida que um objeto de banco de dados necessita de mais espa co, e necess ario que o segmento aloque mais dados. O banco de dados procura, nos arquivos do tablespace, areas cont guas de tamanho pr e-determinado para o armazenamento de novos dados. Essa area cont gua e conhecida como extens ao (extent), que por sua vez e formada por diversos blocos de banco de dados. Cada bloco de banco de dados possui um tamanho xo determinado nos par ametros de congura c ao, esse tamanho xo deve ser m ultiplo do tamanho de um bloco do n vel do sistema operacional. O tamanho extent tamb em pode ser congurado pelo usu ario ou determinado automaticamente pelo Oracle.

65.3
65.3.1

Tratamento de Transa c oes no Oracle


Gerenciamento do Redo Log

O Redo Log e a estrutura mais crucial para as opera c oes de recupera c ao. Cada inst ancia possui um Redo Log para proteg e-la em caso de falha. Como explicado anteriormente, o processo LGWR e respons avel por copiar para o disco o 501

http://www.candidatoreal.com

conte udo do redo log buer em determinadas situa c oes, como em um COMMIT por exemplo. Essa escrita e feita de maneira circular. Quando n ao houver mais espa co para escreve no arquivo de Redo Log atual, o LGWR come ca a escrever no pr oximo arquivo. Caso esteja no u ltimo arquivo do buer, o LGWR voltar a poss a escrever no primeiro arquivo. E vel congurar o banco de dados para arquivar as informa c oes escritas nos arquivos de redo. Com essa congura c 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 come ca a escrever em outro. Um log switch tamb em pode ser for cado pelo DBA e pode ser congurado 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 atribu da pelos log sequence numbers e utilizada na recupera c ao do banco de dados em caso de falha.

65.3.2

Checkpoints

A um tempo espec co, todos os dados do database buer cache modicados s ao escritos em disco pelo processo DBWR; este evento e chamado de checkpoint. O processo CKPT e respons avel para informar ao processo DBWR o momento de gravar os dados em disco. O DBWR tamb em atualiza os arquivos de controle do banco de dados para indicar o mais recente checkpoint. O processo CKPT e opcional; se ele n ao estiver presente, o LGWR assume sua responsabilidade. No momento do checkpoint a falta de sincronismo entre o DBBC e os arquivos de redo e eliminada. Os eventos em que um checkpoint ocorre s ao: A cada log switch. Ap os ocorrido um certo tempo desde o u ltimo checkpoint (LOG CHECKPOINT TIMEOUT). Quando a inst ancia sofre um shutdown, a menos que ela seja abortada. Quando for cada pelo DBA. (ALTER SYSTEM CHECKPOINT) Quando uma tablespace e colocada oine com pelo menos um arquivo (datale ) online.

65.3.3
http://www.candidatoreal.com

Segmentos de rollback

Um segmento de rollback e uma por c ao de um banco de dados que registra as a c oes das transa c oes dos usu arios nos dados para que possam ser desfeitas sob certas circunst ancias. Um segmento de rollback e usado para permitir a consist encia da leitura, recuperar um comando quando ocorre o dead-lock, recuperar uma transa c ao at e uma certa marca identicada por um SAVEPOINT (marcador para instru c oes n ao conrmadas), recuperar uma transa c ao terminada por uma falha de processo de um usu ario e desfazer todas as transa c oes pendentes durante a recupera c ao de uma inst ancia. Todas as opera c oes de atualiza c ao de dados em um banco de dados envolvem os segmentos de rollback para permitir a consist encia da leitura, a recupera c ao das informa c oes e permitir que uma transa c ao ou um comando sejam desconsiderados ou desfeitos. 502

http://www.candidatoreal.com

65.3.4

Consist encia de leitura

O Database Buer Cache e organizado em duas listas: a dirty list e a least recently used list (LRU). A dirty list e uma lista que cont em os blocos alterados que ainda n ao foram escritos em disco. A LRU e uma lista que cont em blocos do ORACLE que foram alterados pelos comandos dos usu arios mas ainda n ao foram gravados em disco. Cont em ainda blocos livres e blocos em uso. Assim, quando um processo servidor precisa ler um bloco de dados do disco para a mem oria, ele: 1. Pesquisa nas listas LRU e dirty list pelo bloco de dados desejado. 2. Caso esse bloco de dados n ao seja localizado, o processo servidor pesquisa a lista LRU em busca de um bloco livre. 3. Em seguida, o processo servidor move os blocos alterados encontrados na lista LRU para a dirty list, ou seja, movimenta-os para a lista de blocos alterados ainda n ao gravados nos arquivos de dados, de acordo com a localiza c ao de cada um deles, durante o processo de pesquisa de um bloco livre. 4. Finalmente, o processo servidor efetua uma c opia do bloco de dados do disco para um bloco livre. 5. Esse procedimento termina quando o processo servidor localiza um bloco livre ou se um n umero espec co de blocos forem pesquisados sem encontrar um u nico bloco livre. Se nenhum bloco foi encontrado, o ORACLE deve gravar os blocos alterados da dirty list para os arquivos em disco, para liberar espa co em mem oria para os novos blocos de dados que precisam ser manipulados pelos comandos dos usu arios.

65.4

Congura c ao do Servidor

A cria c ao de um banco de dados pode ser realizada atrav es de uma ferramenta gr aca conhecida como Database Conguration Assistant. Com essa ferramenta tamb em e poss vel congurar op c oes de um banco de dados existente, deletar um banco de dados e gerenciar gabaritos de banco de dados. As etapas s ao as seguintes:

http://www.candidatoreal.com

Etapa 1 Em uma tela, ser a poss vel escolher se e desejado criar um banco de dados, congurar ou deletar um j a existente ou gerenciar gabaritos. Nesse caso, ser a criado um banco de dados. Etapa 2 Ser a poss vel 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 transa c oes ou para uso geral. Etapa 3 Ser a atribu do o Nome do Banco de Dados Global, pelo qual o banco de dados e identicado exclusivamente. Al em disso, ser a necess ario identicar 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 poss vel para um processo servidor atender mais de uma conex ao cliente. Etapa 5 Nessa etapa, os par ametros de inicializa c ao relacionados ` a mem oria, ` a localiza c ao dos arquivos de congura c ao e ao conjunto de caracteres ser ao congurados. Etapa 6 Ser a congurado o armazenamento do banco de dados, atrav es de uma tela ser a poss vel congurar arquivos de controle, tablespaces, arquivos de dados, segmentos de rollback e grupos de redo logs. Etapa 7 Na u ltima etapa, haver a a op c 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 (pap eis) variam de acordo com o lugar, mas podem ser divididos em administadores de banco de dados, respons aveis pela seguran ca, administradores de rede, desenvolvedores de aplica c ao, administradores de aplica c ao e usu arios do banco de dados.

65.5.1

Administradores de banco de dados

Cada banco de dados requer no m nimo um DBA (database administrator ). As suas responsabilidades incluem: Instala c ao e atualiza c ao dos servidores de banco de dados Oracle e das ferramentas de aplica c ao. Aloca c ao de espa co para o sistema e planejamento de futuras necessidades. Cria c ao de estruturas de armazenamento prim arias do banco de dados (tablespaces ). Cria c ao e altera c ao de objetos prim arios: tabelas, vis oes etc. ap os os desenvolvedores terem projetado a aplica c ao.

http://www.candidatoreal.com

Administra c ao de usu arios, controle de acesso e seguran ca do sistema. Garantia do atendimento aos termos da licen ca Oracle e contato direto com o suporte t ecnico da Oracle. Monitora c ao e otimiza c ao do desempenho do banco de dados. Planejamento e execu c ao de backup e de restaura c ao das informa c oes do banco de dados.

504

http://www.candidatoreal.com

65.5.2

Outros p apeis

um papel que existe somente em alguns caRespons avel pela seguran ca E sos. Pode assumir as responsabilidades de administra c ao de usu arios, controle de acesso e seguran ca do sistema. Administradores de redes Respons aveis em administar os produtos de rede da Oracle como os servi cos de rede da Oracle. Desenvolvedores de aplica c ao Entre as atividades desse papel, pode-se destacar: o projeto e desenvolvimento da aplica c ao e o projeto da estrutura do banco de dados bem como os requisitos necess arios em rela c ao ao espa co de armazenamento necess ario. Administradores de aplica c ao Cada aplica c ao deve ter um administrador de aplica c ao, que ser a respons avel por ela. Usu arios do banco de dados Respons aveis pela cria c ao, modica c ao e dele c ao de dados quando permitidos, al em da obten c ao de realat orios atrav es do dados.

http://www.candidatoreal.com

505

http://www.candidatoreal.com

Cap tulo 66

Administra c ao de Bancos de Dados SQL Server


66.1 Arquitetura de um Servidor SQL Server

Um banco de dados no SQL Server 2005 se refere a um grupamento f sico de um conjunto de objetos de esquema de um banco de dados em um ou mais arquivos f sicos. Os bancos de dados podem ser classicados como bancos de dados de sistemas e bancos de dados dos usu arios. Os banco de dados de sistema armazenam dados do sistema e tamb em controlam o armazenamento tempor ario requerido para os dados de aplica c ao. Cada inst ancia do SQL Server pode suportar v arios bancos de dados. Al em disso, pode haver v arias inst ancias em um mesmo computador. Cada banco de dados pode suportar grupos de arquivos (legroups ), que prove em a funcionalidade de distribuir os dados sicamente. Um banco de dados pode possuir v arios legroups, mas o contr ario n ao e poss vel. Ap os a cria c ao do banco de dados, os legroups do banco de dados podem ser adicionados. Por padr ao, o SQL Server instala os seguintes bancos de dados: Modelo um template para os outros banco de dados. Tempdb para armazenamento tempor ario, como as opera c oes de ordena c ao.

http://www.candidatoreal.com

Msdb suporta o agente do SQL Server, com tarefas agendadas, alertas e informa c oes sobre replica c ao. Adventure Works e AdventureWorksDW opcionais, s ao banco de dados de exemplos.

66.1.1

Cat alogos de sistema

Cada banco de dados Oracle executa em cat alogo de sistema centralizado, ou dicion ario de dados, que reside na tablespace SYSTEM. No caso do SQL Server 2005, cada banco de dados mant em seu cat alogo de sistema, que possui informa c oes relacionadas, por exemplo, ` a: objetos do banco de dados (tabelas,

506

http://www.candidatoreal.com

ndices, procedimentos, vis oes, triggers etc.), restri c oes, usu arios, permiss oes e Tipos de dados denidos pelo usu ario. As informa c oes relativas ao n vel do sistema s ao armazenadas no Master Database (Msdb). Essas informa c oes incluem, por exemplo: contas de login, valores de congura c ao, mensagens do sistema, nomes dos bancos de dados e a localiza c ao dos arquivos prim arios de cada banco de dados. Aten c ao, no SQL Server 2005, os objetos do sistema n ao s ao armazenados no Msdb, mas em um banco de dados oculto conhecido como resource database.

66.1.2

Processos em background

O SQL Server possui diversos processos em background. Um exemplo s ao os checkpoints. O SQL Server periodicamente gera checkpoints automaticamente em cada banco de dados. Outro processo em background importante e o Lazywriter que eu nico para cada inst ancia. O lazywriter adormece um intervalo de tempo e ent ao acorda para checar o espa co livre na lista do buer. Caso esse espa co livre esteja abaixo de um certo ponto (dependente do tamanho do cache), o processo lazywriter procura p aginas n ao utilizadas no buer cache e escreve as p aginas com write dirty que n ao foram recentemente referenciadas em disco. Um processo conhecido como ResourceMonitor e utilizado para controlar o restante do caches, pois o lazywriter s o controla as p aginas de dados.

66.2

Arquitetura SQL Server de Armazenamento de Dados

http://www.candidatoreal.com

O SQL Server utiliza a unidade b asica de IO xo (p agina) em 8KB. Para organizar melhor os dados, essas p aginas s ao agrupadas em uma quantidade de oito cont guas entre si formando as chamadas extens oes (extents ). O espa co e gerenciado em termos de extens oes. Cada p agina pertence a um objeto de um tipo (dado, ndice etc), mas uma extens ao pode pertencer a v arios objetos. Uma extens ao em que as oito p aginas pertencem ao mesmo objeto e considerada uma extens ao uniforme, caso contr ario, trata-se de uma extens ao mista. O SQL Server utiliza os legroups para controlar a aloca c ao das tabelas e dos ndices. Os dados contidos em legroup s ao proporcionalmente distribu dos entre os arquivos do legroup. Se os legroups n ao estiverem denidos, os objetos do banco de dados ser ao armazenados em um legroup padr ao que e implicitamente denido durante a cria c ao do banco de dados. Os segmentos utilizados no Oracle n ao s ao necess arios no SQL Server. Em vez disso, o SQL Server distribui os dados atrav es de RAID suportado em hardware ou software (solu c ao presente no Windows ou em outro software).

66.3

Tratamento de Transa c oes no SQL Server

O Oracle executa recupera c ao autom atica toda vez que e iniciado. Ele checa se os arquivos do tablespace est ao sincronizados com o conte udo dos arquivo de redo log. Caso n ao estejam, o Oracle aplica o conte udo do arquivo de redo log no caso das transa c oes comitadas e remove as transa c oes n ao comitadas

507

http://www.candidatoreal.com

Figura 66.1: Compara c ao gr aca entre os esquemas de armazenamento do Oracle e do SQL Server com o aux lio dos segmentos de rollback. Se o Oracle n ao possui a informa c ao requerida, ele consulta os arquivos redo log arquivados pelo processo ARCH. O SQL Server tamb em executa recupera c ao autom atica atrav es da checagem de cada banco de dados. Primeiramentem o SQL Server checa o Msdb e ent ao inicia threads para recupera ca o autpm atica em todos os bancos de dados. Para cada banco de dados, o mecanismo de recupera c ao autom atica checa o transaction log. O tratamento e o mesmo do Oracle para transa c oes comitadas e n ao comitadas. Cada transaction log combina as funcionalidades de um segmento de rollback e de um redo log do Oracle. Cada banco de dados possui seu transaction log que armazena todas as altera c oes do banco de dados e e compartilhado com todos os usu arios do banco de dados. Internamente, os transaction logs s ao quebrados em peda c oes menores conhecidos como virtual log les (VLFs). Quando um VLF n ao possui mais registros de logs para transa c oes ativas, ent ao o VLF pode ser dividido. O crescimento dos VLFs pode ser congurado para se ocorrer de forma autom atica e assim como no Oracle s ao preenchidos em forma circular.

http://www.candidatoreal.com

508

http://www.candidatoreal.com

Parte XIV

ITIL

http://www.candidatoreal.com

509

http://www.candidatoreal.com

Cap tulo 67

Suporte a Servi cos


67.1
67.1.1

Service Desk
Objetivos

Atuar como ponto u nico de contato entre o usu ario e o Gerenciamento de Servi cos de TI; Tratar incidentes e requisi c ao de servi cos; Ser a principal interface operacional entre a TI e seus usu arios; Promover a reten c ao e a satisfa c ao do usu ario; Aumentar o percentual de resolu c ao de chamados no primeiro ponto de contato.

67.1.2

Responsabilidades

Receber, registrar, priorizar e rastrear chamadas de servi co; Prover uma avalia c ao inicial de todos os incidentes reportados pelos usu arios; Resolver incidentes com base em solu c oes j a conhecidas ou identicar solu c oes de contorno para o reestabelecimento dos servi cos; Escalar chamado para suporte em n vel adequado;

http://www.candidatoreal.com

Monitorar e acompanhar as chamadas com base nos acordos de n vel de servi cos; Manter usu arios informados; Produzir informa c oes gerenciais; Fechar incidentes e conrmar com o cliente / usu ario.

510

http://www.candidatoreal.com

67.1.3

V arios Tipos de Central

Central de Atendimento Call Center. Apenas registra e encaminha para outras areas da organiza c ao. Central de Suporte Call Center. Gerencia, coordena e resolve incidentes o mais r apido poss vel. Utiliza o gerenciamento de comunica c ao e ferramentas de suporte ao conhecimento como tecnologia de apoio. Normalmente, trata apenas incidentes. Central de Servi cos Service Desk. N ao trata somente incidentes, problemas e d uvidas, mas tamb em fornece uma interface para outras atividades como requisi c oes de mudan ca do usu ario, contratos de manuten c ao, licen cas de software, gerenciamento de n vel de servi co etc.

67.2
67.2.1

Gerenciamento de Incidentes
Objetivos

Um incidente e qualquer evento que n ao faz parte do servi co combinado. A indisponibilidade de um servi co ou a diminui c ao de sua qualidade tamb em pode ser considerado um incidente. Exemplos de incidente em um ambiente de TI s ao, por exemplo, uma aplica c ao com erro, um usu ario que esqueceu a senha ou a indisponibilidade de um servidor, mesmo que os usu arios n ao tenham sido impactados. O objetivo do processo de gerenciamento de incidentes e restaurar a opera c ao importante enfatinormal de um servi co minimizando o impacto no neg ocio. E zar que o gerenciamento de incidentes trata o efeito e n ao a causa. A porta de entrada para o tratamento de incidentes e o Service Desk. Os incidentes podem ser detectados pelos usu arios ou por algum processo de monitora c ao, al em de poderem surgir de d uvidas, manifesta c oes ou requisi c oes de servi co. As sa das do processo de gerenciamento de incidentes podem ser o reestabelecimento do servi co, o esclarecimento da d uvida, a atendimento da requisi c ao de servi co, a identica c ao de uma necessidade de mudan ca, ou ainda, o registro de um problema.

http://www.candidatoreal.com

67.2.2

Atividades do Processo

Identica c ao e Registro do Incidente: Registro dos incidentes seja qual for a fonte de abertura, reportando sintomas, diagn ostico b asico, itens de congura c ao envolvidos, perl do usu ario etc; An alise e Classica c ao: Especica melhor os sintomas do incidente para determinar a solu c ao; Prioriza c ao: Combina os fatores impacto e urg encia para denir a prioridade do incidente em rela c ao ao demais (Matriz Impacto x Urg encia). Tamb em e levado em considera c ao o acordo de n vel de servi co (ANS ou SLA);

511

http://www.candidatoreal.com

Suporte Inicial: Caso exista uma solu c ao previamente identicada na base de solu c oes (BDS), o analista dever a aplic a-la. Caso contr ario, uma solu c ao dever a ser implementada. Dependendo da complexidade, o registro pode ser escalado para n veis mais especializados; Investiga c ao e Diagn ostico: Caso n ao seja encontrada uma solu c ao denitiva, uma solu c ao de contorno pode ser especicada. Nesse caso, deve ser aberto um registro de problema; Estrat egia de Recupera c ao: Ap os denida a solu c ao, esta deve ser implementada. Em algumas situa c oes pode ser necess ario abrir uma requisi c ao de mudan ca (RDM); Fechamento: Garantir que o incidente foi devidamente tratado. Em alguns casos, isso signica checar se a RDM foi implementada. A valida c ao do cliente tamb em e importante para o fechamento; Informa c ao e Comunica c ao: O Service Desk deve manter o hist orico completo do registro e garantir que o usu ario tenha acesso ` as informa c oes seja qual for o status de atendimento do incidente ou requisi c ao.

67.2.3

Pap eis e Responsabilidades

Gestor de Incidentes: Avaliar e garantir a eci encia e qualidade do servi co, auditar base de incidentes, garantir a avalia c ao da satisfa c ao dos usu arios, produzir relat orios gerenciais e realizar an alise cr tica do processo; 1o N vel de atendimento: Receber, categorizar e priorizar as requisi c oes dos usu arios. Realizar investiga c ao inicial e aplicar solu c oes de contorno conhecidas. Caso necess ario, encaminhar os incidentes para o n vel adequado de atendimento; 2o N vel de atendimento: Desenvolver, quando poss vel, uma solu c ao de contorno ou denitiva. Caso necess ario, encaminhar incidente para o terceiro n vel; 3o N vel de atendimento: N vel mais alto de atendimento de incidentes. Deve obrigatoriamente desenvolver uma solu c ao de contorno; Equipes Especializadas: Atende ` as solicita c oes de servi co, esclarecimento de d uvidas e manifesta co es dos usu arios encaminhadas pelo primeiro n vel. Deve executar os servi cos segundo procedimentos pr e-denidos.

http://www.candidatoreal.com

Os tr es n veis de atendimento e as equipes especializadas devem, quando necess ario, emitir uma RDM, vericar as diverg encias encontradas na banco de dados de solu c oes e na banco de dados de gerenciamento de congura c ao (BDGC).

67.3
67.3.1

Gerenciamento de Problemas
Objetivos

Eliminar erros na infra-estrutura de TI, identicando e removendo a causa raiz, evitando assim, a recorr encia de incidentes e problemas no ambiente operacional. 512

http://www.candidatoreal.com

67.3.2

Deni c oes Importantes

SC Solu c 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 identicada uma solu c ao de contorno ou uma alternativa denitiva. BDP Base de Dados de Problemas. Base de Dados que cont em todos os registros de problemas. BDS Base de Dados de Problemas. Base de Dados que cont em informa c oes referente aos Erros Conhecidos, suas respectivas Solu c oes de Contorno e demais solu c oes denitivas.

67.3.3

Atividades do Processo
Identica c ao e registro do Problema Classica ca o do Problema Investiga c ao e diagn ostico do Problema

Controle de Problemas

Controle de Erros Identica c ao e registro do Erro Avalia c ao do Erro Registro da resolu c ao do Erro Fechamento do Erro Monitoramento da resolu c ao do Erro

Apoio no tratamento de Incidentes Graves Preven c ao pro ativa de Problemas An alise de tend encias Direcionamento das a c oes de suporte Fornecimento de informa c oes para a organiza c ao

http://www.candidatoreal.com

Obten c ao de Informa c oes gerenciais a partir dos dados de Problemas Completar as revis oes dos principais Problemas

67.3.4

Pap eis e Responsabilidades

Gestor de Problemas Analisar e garantir a eci encia do processo atrav es da auditoria e da revis ao. Respons avel tamb em pela produ c ao de relat orios gerenciais, aloca c ao dos Respons aveis T ecnicos e pela identica c ao de tend encias. Respons avel T ecnico pelo Problema Identicar, registrar, categorizar e priorizar. Investigar e diagnosticar a causa do Problema. 513

http://www.candidatoreal.com

67.4
67.4.1

Gerenciamento de Congura c ao
Objetivos

O objetivo do processo de gerenciamento de congura c ao e prover informa c oes con aveis sobre as congura c oes e documenta c oes relativas a infra-estrutura de TI de forma suportar os demais processos de gerenciamento de servi cos. O processo de gerenciamento de congura c ao e o principal respons avel pela constru c ao e manuten c ao do banco de dados de gerenciamento de congura c ao (BDGC), considerado o cora c ao do modelo de gerenciamento de servi cos do ITIL. Essa base de dados deve conter informa c oes sobre todos os itens de congura c ao (ICs) do ambiente e os seus respectivos relacionamentos. Um item de congura c ao e um componente que faz parte ou est a associado a infra-estrutura, fazendo-se necess ario para a presta c ao de um servi co. (Exemplo: servidor, software, procedimento etc.) Cada IC e composto por atributos como identicador u nico, nome, tipo etc. O BDGC e fundamental para o gerenciamento de n vel de servi co, uma vez que a partir dele e poss vel identicar todos os itens de congura c ao que fazem parte de um servi co espec co. Al em disso, o BDGC permite identicar se incidentes, problemas e mudan cas em um determinado IC ir ao impactar nos demais. O BDGC s o pode ser alterado mediante uma requisi c ao de mudan ca (RDM). Uma baseline e o estado do BDGC em determinado instante do tempo. Ela serve como refer encia para auditorias e tamb em para estipular uma base de retorno ap os mudan cas mal sucedidas, por exemplo.

67.4.2

Atividades

Planejamento: Identica c ao do escopo, granularidade, objetivos, pol ticas e procedimentos para o processo de gerenciamento de congura c ao; Identica c ao e Denomina c ao: Sele c ao e identica c ao dos ICs, denindo seus atributos, inter-relacionamento e identica c ao; Controle: Garante a autoriza c ao e identica c ao dos ICs nos processos de inclus ao, altera c ao e descarte, al em de n ao permitir altera c oes sem documenta c ao de controle sejam feitas no BDGC;

http://www.candidatoreal.com

Registro e Hist orico da Situa c ao: Realiza a atualiza c ao no BDGC seguindo procedimentos pr e-denidos, de forma n ao perder o controle do ciclo de vida dos ICs e vincula ca o ` as RDMs; Descri c ao da Situa c ao: Gera c ao de relat orios sobre status e ciclo de vida dos ICs, permitindo a localiza c ao de mudan cas; Verica c ao e Auditoria: Vericar a consist encia entre a situa c ao real e o BDGC e demais bibliotecas controladas.

514

http://www.candidatoreal.com

67.4.3

Pap eis e Responsabilidades

Gestor de Congura c ao: Implementar pol ticas de gerenciamento de congura c ao e assegurar sua dissemina c ao e utiliza c ao por toda organiza c ao. Elaborar relat orios com indicadores do processo e an alises de impacto. Deve ser membro do Grupo de Aconselhamento de Mudan cas (GAMA); Administrador de Congura c ao: Administrar o BDGC, assegurando sua atualiza c ao a cada mudan ca. Deve ainda auditar o BDGC, garantindo sua consist encia com o invent ario f sico.

67.5
67.5.1

Gerenciamento de Mudan cas


Objetivos

Garantir a aplica c ao de m etodos e procedimentos padronizados a m de lidar ecientemente com todas as mudan cas no ambiente operacional, minimizando os impactos na qualidade dos servi cos e prevenindo a ocorr encia de incidente provenientes das mudan cas realizadas.

67.5.2

Responsabilidades

Controle das altera c oes em todos os Ices; Levantamento e registro das mudan cas; Avalia c ao de impacto, custo, benef cio e risco associado ` as mudan cas; Justicativa da mudan ca perante o neg ocio e obten c ao de aprova c ao para as mudan cas; Ger encia e coordena c ao da implementa c ao de mudan cas; Monitoramento e informes sobre a implementa c ao; Revis ao e fechamento das RDM (requisi c oes de mudan cas).

67.5.3

Deni c oes Importantes

a mudan Mudan ca Padr ao E ca bem conhecida, rotineira e que comprovadamente n ao causa alto impacto.

http://www.candidatoreal.com

a mudan Mudan ca Normal Planejada E ca planejada e programada respeitando o cronograma de atividades e o acordo com os clientes. a mudan Mudan ca Emergencial E ca executada para recuperar servi cos a m de evitar danos ` a imagem do neg ocio, perdas nanceiras e conseq u encias legais. RDM Requisi c ao de mudan ca. RFC - Requests for Change. Documento que formaliza a necessidade da mudan ca e dene detalhes de como ela acontecer a. Inclui identica c ao num erica, descri c ao e identica c ao dos ICs, motivo da mudan ca, efeito da n ao implementa c ao da mudan ca, nome do solicitante da mudan ca, data proposta para a mudan ca, grau de prioridade, assinatura, plano de implementa c ao, plano de retorno etc. 515

http://www.candidatoreal.com

respons Gestor de Mudan ca Change Manager E avel pelas mudan cas que ocorrer ao no ambiente de TI. Ele n ao det em o poder de autorizar qualquer mudan ca, isso cabe ao GAM. GAM Grupo de Aconselhamento de Mudan cas. CAB - Change Advisory Board. Tem a responsabilidade de planejar, avaliar e aprovar mudan cas de m edio 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 Mudan cas/Comit e Emergencial. CAB/EC - Change Advisory Board/Emergency Committee. Tem a mesma fun c ao do GAM, por em para mudan ca emergenciais de alto e m edio impacto. Envolve n veis hier arquicos mais altos da TI. Agenda de Mudan cas (AM) Cont em detalhes de todas as mudan cas aprovadas usada para que todos os grupos afetados e suas datas de implementa c ao. E por uma mudan ca possam se planejar. Proje c ao de Indisponibilidade PSA - Projected Services Availability. Cont em detalhes das mudan cas e sua interfer encia nos Acordos de N vel de Servi cos e na disponibilidade de servi cos. Revis ao P os-Implementa c ao Revis ao da Mudan ca realizada ap os a implementa c ao. Tem por objetivo avaliar se a mudan ca atingiu e se houve imprevistos ou efeitos colaterais. Prioriza c ao de Mudan cas A prioriza c ao das mudan cas e realizada de acordo com o seu impacto e a sua urg encia.

67.6
67.6.1

Gerenciamento de Libera c ao
Objetivo

Gerenciar a libera c ao de componentes de software, hardware e documentos nas implementa c oes e modica c oes dos servi cos, garantindo libera c oes compat veis, licenciadas e apropriadas para o ambiente de produ c ao. Opera como interface entre o Gerenciamento de Mudan cas e o Gerenciamento de Congura c oes.

67.6.2
http://www.candidatoreal.com

Atividades do Processo

Planejar e administrar um implementa c ao bem sucedida de hardware e software. Projetar e implementar procedimentos ecientes para a distribui c ao e instala c ao de mudan cas. Garantir a localiza c ao do HW e do SW e assegurar que apenas as vers oes corretas sejam instaladas. Gerenciar as expectativas dos clientes durante o planejamento e implementa c ao (rollout) de novas libera c oes. Acordar o plano de implementa c ao com o Gerenciamento de Mudan cas. 516

http://www.candidatoreal.com

Testar o Plano de Retorno (fallback). Implementar as libera c oes no ambiente operacional, atualizando os ICs necess arios. Garantir que as c opias originais de todos os softwares est ao seguras em uma Biblioteca de Software Denitiva (BSD) e que o BDCG reita as informa c oes do BSD e das libera c oes realizadas no ambiente. Garantir a acur acia do DHD (Dep osito de Hardware Denitivo) e que todo IC retirado para ser utilizado no ambiente operacional seja reposto. Garantir que todo o hardware a ser implantado ou alterado esteja protegido e seja localiz avel, utilizando os servi cos de Gerenciamento de Congura c ao.

67.6.3

Deni c oes Importantes

BSD Biblioteca de Software Denitiva. DSL - Denitive Software Library. Cole c ao de itens de congura c ao de software e documenta c ao guardados em local seguro. Todas vers oes liberadas devem estar salvas na BSD. DHD Dep osito de Hardware Denitivo. DHS - Denitive Hardware Store. Dep osito de componentes de reposi c ao no mesmo n vel dos sistemas correspondentes no ambiente de produ c ao. Uma vez encerrada a utiliza c ao dos componentes, devem retornar ao DHD, ou adquirir substitutos. Assim como a BSD, o DHD e um reposit orio e quem cont em as informa c oes sobre os atributos dos itens e o BDGC. Libera c ao completa Todos os componentes s ao constru dos, testados, distribu dos em conjunto. Libera c ao Delta S ao inclu dos os ICs alterados desde a u ltima altera c ao. Libera c ao Pacote Libera c oes completas, deltas ou as duas s ao agrupadas em pacote para libera c ao.

67.6.4

Pap eis e Responsabilidades

Gestor de Libera c oes Garantir que o processo seja seguido. Efetua auditoria no BSD e no DHD. Autoriza a libera c ao para o ambiente de produ c ao.

http://www.candidatoreal.com

Respons avel T ecnico pela Libera c ao Desenvolver o projeto, constru c ao e congura c ao da libera c ao. Realizar testes. Realizar a instala c ao e distribui c ao de SW e HD. Armazenar o software na BSD.

517

http://www.candidatoreal.com

Cap tulo 68

Entrega de Servi cos


68.1
68.1.1

Gerenciamento do N vel de Servi co


Objetivos

O gerenciamento do n vel de servi co visa a melhoria da qualidade dos servi cos de TI atrav es de um ciclo cont nuo de negocia c ao e monitora c ao, promovendo a c oes para eliminar n veis de servi co inaceit aveis. A ess encia do processo em quest ao e o Acordo de N vel de Servi co (ANS) (Service Level Agreement - SLA), que funciona como um contrato entre a TI e os clientes. O ANS deve descrever em detalhes os servi cos fornecidos, al em especic a-los quanto a qualidade, quantidade, desempenho e disponibilidade. Os principais objetivos do processo de gerenciamento de n vel de servi co s ao: Melhorar a especica c ao dos servi cos; Reduzir demandas imprevistas; Avaliar o custo dos servi cos; Controlar o n vel de servi co; Promover a melhoria da qualidade do servi co; Manter alinhamento com o neg ocio.

http://www.candidatoreal.com

Para alcan car tais objetivos, o processo de gerenciamento de n vel de servi co tem as seguintes responsabilidades: Cat alogo de Servi cos: Dene, do ponto de vista do cliente, os servi cos fornecidos; Acordo de N vel de Servi co (ANS): Acordos formais entre a TI e seus clientes, onde s ao denidas as metas e as responsabilidades de ambas as partes. Um ANS deve conter informa c oes como descri c ao do servi co, agenda (24x7,5x8), suporte (sobreaviso, prorroga c ao, tempo de reparo), procedimentos para mudan cas, metas para disponibilidade, conabilidade, seguran ca, capacidade etc;

518

http://www.candidatoreal.com

Requisi c oes de N vel de Servi co: Documentos para fornecer vis ao detalhada das necessidades do cliente, usados para ajustar ou criar novos servi cos (Service Level Request - SLR); Acordo de N vel Operacional (ANO): Formaliza c ao de acordos com fornecedores internos da organiza c ao, sobre manuten c ao de servi cos ou componentes de servi cos (Operational Level Agreement - OLA); Contratos de Apoio: Contratos de apoio com fornecedores externos (Underpinning Contract - UC); Programa de Aperfei coamento de Servi cos (PAS): Identicar e implementar a c oes necess arias para superar diculdades e restabelecer a qualidade do servi co; Gerenciamento do Relacionamento com o Cliente: Administrar o relacionamento com os clientes visando a sustenta c ao dos acordos de n vel de servi co e nivelamento das expectativas; Monitora c ao, Revis ao e Informa c ao: Garantir o andamento do processo e o cumprimento das metas estabelecidas nos acordos.

68.2
68.2.1

Gerenciamento Financeiro
Objetivos

Administrar os recursos monet arios, garantindo o planejamento e execu c ao dos objetivos de neg ocio. Identicar, calcular e gerenciar os custos de entrega de servi co. Fornecer dados de previs ao or cament aria para a administra c ao.

68.2.2

Responsabilidades

Otimizar os recursos nanceiros. Apoiar decis oes de investimentos. Atribuir valores dos servi cos e rateio dos custos por cliente. Inuenciar o comportamento do cliente. Melhorar o controle dos contratos Externos/Fornecedores.

http://www.candidatoreal.com

68.2.3

Atividades do Processo

Dentro de uma organiza c ao de TI existem tr es disciplinas principais para o Gerenciamento Financeiro: Or camento Processo de previs ao e controle dos gastos em dinheiro. As suas responsabilidades compreendem: Previs ao do or camento necess ario para a realiza c ao de servi cos de TI no per odo acordado. 519

http://www.candidatoreal.com

Garantia que a despesa real possa ser comparada com a despesa prevista a qualquer momento do per odo. Redu c ao do risco de gastar al em do or cado. Garantir a disponibiliza c ao de verba para cobrir despesas extras. Garantia que as receitas estar ao dispon veis para cobrir despesas previstas. Contabilidade Conjunto de processos que permite a organiza c ao de TI prestar contas de como o dinheiro foi gasto em um determinado per odo de tempo, sendo capaz de identicar custo por clientes, servi cos ou atividades. Deve ter focos nos custos para justicar investimentos e lucro zero para que a organiza c ao possa contabilizar as despesas de TI. As responsabilidades da disciplina compreendem: Contabiliza c ao do dinheiro gasto para provis ao dos servi cos de TI. C alculo do custo de provimento dos servi cos de TI para clientes externos e internos. An alise Custo x Benef cio ou o retorno do investimento (ROI). Identica c ao do custo de mudan cas. Cobran ca Conjunto de processos necess arios para faturar um Cliente (Oops...) pelos servi cos prestados, otimizando a rela c ao custo/benef cio do ponto de vista do neg ocio. As responsabilidades da disciplina compreendem: Recupera c ao dos custos dos servi cos de TI dos clientes dos servi cos. Rateio dos custo entre os clientes da TI. Inu encia do comportamento do Cliente. Precicar os servi cos.

68.2.4
http://www.candidatoreal.com

Elementos de Custo

Os elementos de custo t picos s ao: hardware, software, pessoal, acomoda c oes, servi co externo e transfer encia de custo (cobrados por outros centros de custo da empresa). Os elementos de custo podem ser classicados em xos, vari aveis, diretos, indiretos (que devem ser divididos entre v arios clientes), de capital e operacional (do dia-a-dia).

520

http://www.candidatoreal.com

68.3
68.3.1

Gerenciamento da Capacidade
Objetivos

O gerenciamento de capacidade visa garantir o atendimento das necessidades futuras do neg ocio estabelecendo sempre um equil brio entre demanda e custos. O principal produto do processo A principal sa da desse processo e um documento chamado Plano de Capacidade. Nele s ao reportadas as previs oes de carga, hardware e software necess arios, custos e outras recomenda c oes. Os principais modelos para elabora c ao de um plano de capacidade s ao os seguintes: Modelagem por Refer encia: Modelagem a partir de um modelo v alido pr e-existente; An alise de Tend encias: Proje c oes futuras com base em dados hist oricos; Modelagem Anal tica: Valida c ao de um modelo matem atico com a situa c ao real; Modelagem por Simula c ao: Utiliza c ao de dados ct cios para dimensionamento de novas aplica c oes; Testes de Laborat orio: Testes como dados reais em um ambiente real. O gerenciamento da demanda tem por objetivo inuenciar a demanda, direcionando o seu comportamento. Para isso pode ser necess ario realizar cobran ca diferencial de acordo com o hor ario, limitar tempo de uso em hor arios de pico etc. A tarefa de monitora c ao de desempenho dos recursos e servi cos para garantir o estabelecido no plano de capacidade e chamada gerenciamento de performance. No contexto de gerenciamento de capacidade outra atividade muito importante e a modelagem e dimensionamento de aplica c oes (Sizing de Aplica c oes). Um elemento importante no processo de gerenciamento de capacidade e o BDC (Banco de Dados de Capacidade), que armazena dados do neg ocio, dos servi cos, nanceiros e de utiliza c ao, sendo, portanto, base para elabora c ao de relat orios relacionados a quest ao de capacidade atuais e futuras.

68.3.2
http://www.candidatoreal.com

Atividades

Gerenciamento de Capacidade do Neg ocio: Garante que as capacidades futuras do neg ocio sejam consideradas e planejadas em tempo certo. Requer conhecimento do Plano de Neg ocio da organiza c ao e t ecnicas de modelagem; Gerenciamento da Capacidade do Servi co: Monitora c ao do desempenho dos servi cos de TI; Gerenciamento da Capacidade dos Recursos: Gerencia os componentes de infra-estrutura de TI para garantir que desempenho e demanda est ao de acordo com o planejado.

521

http://www.candidatoreal.com

68.4
68.4.1

Gerenciamento de Disponibilidade
Objetivos

O processo de gerenciamento de disponibilidade visa garantir que os servi cos de TI estar ao dispon veis sempre que os clientes necessitarem deles, de acordo com os n veis de disponibilidade acordados. Os principais elementos de disponibilidade de um servi co s ao: Disponibilidade: Tempo durante o qual o servi co estar a dispon vel; Conabilidade: Capacidade de se manter operacional dentro de um determinado per odo de tempo; Sustentabilidade: Capacidade de retorno ao estado normal ap os algum incidente; Resili encia: Capacidade de se manter operacional mesmo na falta de um ou mais componentes; Ociosidade: Obriga c oes contratuais com terceiros (Contratos de Apoio); Seguran ca: Condencialidade, Integridade e Seguran ca. Dizemos que um servi co esta dispon vel quando o cliente o recebe dentro das condi c oes do acordo de n vel de servi co. Portanto, a taxa de disponibilidade e dada pela seguinte f ormula: Disponibilidade = 100((T SA T F )/T SA)) onde T SA e o tempo de servi co acordado e T F e o tempo durante o qual o servi co cou indispon vel. Exemplo: Se um servi co tem T SA 24x7 (precisa estar dispon vel 24 horas 7 dias por semana) e cou indispon vel por um total de 10 horas durante um m es, ent ao a taxa de disponibilidade do servi co no per odo foi de 100x(((30x24x7)-10)/(30x24x7)), ou seja, 99,8015873%.

68.4.2

Ciclo de vida do incidente

http://www.candidatoreal.com

Suponhamos que um incidente ocorrido no instante t1 tenha ocasionado a interrup c ao de um servi co. No instante t2 o servi co foi restabelecido, e em um instante posterior t3, um outro incidente voltou a interromper o servi co. A partir dos valores de t1, t2 e t3 podemos denir as seguintes m etricas: TMPR (Tempo M edio para Reparo) = t2 t1; TMEF (Tempo M edio Entre as Falhas) = t3 t2; TMEIS (Tempo M edio entre Incidentes de Sistema) = t3 t1.

522

http://www.candidatoreal.com

68.5
68.5.1

Gerenciamento de Continuidade
Objetivos

O processo de gerenciamento de continuidade tem como principal objetivo a continuidade operacional dos servi cos de TI em ocasi oes de desastre, a m de suportar os requisitos m nimos do neg ocio. O principal produto desse processo e um documento chamado Plano de Continuidade dos Neg ocios (Business Continuity Plan - BCP). Os principais componentes de um plano de continuidade s ao: Administra c ao: Quando e como invocar o plano; Infra-Estrutura de TI: Quais os itens envolvidos; Procedimentos Operacionais: Instru c oes de trabalho; Pessoal: Respons aveis, contatos e substitutos; Site de Conting encia: Localiza c ao, contato e transporte; Retorno ao normal: Como, onde e quanto tempo para o retorno. Algumas m etricas importantes de retorno a normalidade s ao o RTO (Recovery Time Objective ) e o RPO (Recovery point Objective ). O RTO indica o u ltimo instante no tempo a partir do qual a opera c ao deve ser restabelecida ap os um desastre. O RPO, por sua vez, determina o ponto a partir do qual os dados devem ser recuperados ap os um desastre. No processo de gerenciamento de continuidade s ao realizadas an alises detalhadas de risco e impacto, utilizando metodologias de an alise de risco como CRAMM (CTTA Risk Analysis and Management Methodology ), OCTAVE (Operationally Critical Threat, Asset, and Vulnerability Evaluation ), CORAS etc. Todas essas metodologias s ao baseadas na norma ISO 27001. Uma elabora c ao de uma an alise de risco e impacto, geralmente, se baseia na identica c ao de tr es elementos que s ao: Ativos, Amea cas e Vulnerabilidades. E a sopa de letrinhas n ao tem m. Algumas outras siglas que podem ser u teis na hora da prova s ao: BIA (Business Impact Analysis), OCP (Operational Continuity Plan), DRP (Disaster Recovery Plan). Todas essas an alises e planos, na verdade, fazem parte do Plano de Continuidade de Neg ocios.

http://www.candidatoreal.com

68.5.2

Est agios

In cio: Obten c ao do aval gerencial e levantamento dos servi cos de TI cr ticos para o neg ocio; Requisitos Estrat egicos: An alise de Risco e de Impacto e elabora c ao da estrat egia de continuidade; Implementa c ao: Planejamento e implementa c ao das instala c oes para recupera c ao, elabora c ao do plano de continuidade, medidas para redu c ao de riscos e realiza c ao de testes iniciais; 523

http://www.candidatoreal.com

Gerenciamento Operacional: Educa c ao, revis ao, auditoria, testes, treinamento e gerenciamento de mudan cas.

68.5.3

Tipos de Continuidade

Solu c oes de contorno manuais: Medidas tempor arias at e que os servi cos sejam restabelecidos; Acordos de reciprocidade: Organiza c oes concordam auxiliar uma a outra em caso de desastres; Recupera c ao Gradual (Cold Standby ): Ambiente computacional vazio, exceto por energia e telecomunica c oes. M nimo de 72 horas para reestabelecimento dos servi cos; Recupera c ao Intermedi aria (Warm Standby ): Ambiente com equipamentos para recupera c ao dos servi cos mais cr ticos entre 24 e 72 horas; Recupera c ao Imediata (Hot Standby ): Instala c ao alternativa com espelhamento cont nuo de equipamentos e dados.

http://www.candidatoreal.com

524

http://www.candidatoreal.com

Parte XV

Ger encia de Projetos segundo PMBOK

http://www.candidatoreal.com

525

http://www.candidatoreal.com

Cap tulo 69

Gerenciamento de Escopo
A primeira area de conhecimento denida pelo PMBOK e a de Gerenciamento de Escopo. Os principais processos respectivas atividades desta area s ao: 1. Inicia c ao : declara c ao formal do in cio do projeto, com a elabora c ao do Project Charter ; 2. Planejamento : declara c ao do escopo, indicando justicativas para o projeto, al em dos principais produtos, subprodutos e objetivos do projeto; 3. Detalhamento : elabora ca o da Estrutura Anal tica do Projeto (EAP ), tamb em conhecida como Work Breakdown Structure (WBS ), que tem por objetivo identicar fases, atividades e pacotes de trabalho. A WBS e de grande import ancia para realiza c ao de estimativas de tempo e custo; 4. Verica c ao : trata da aceita c ao do escopo; 5. Controle de Mudan cas : identica as mudan cas de escopo assim como seus motivos e impactos, al em de tratar dos ajustes necess arios.

69.1

WBS e Deni c ao do Escopo

http://www.candidatoreal.com

No processo de Deni c 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 t ecnicas desse processo s ao a decomposi c ao e os modelos da estrutura anal tica 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 dene o escopo total do projeto; o trabalho n ao inclu do na EAP est a fora do escopo do projeto. Assim, com a declara c ao de escopo, a EAP equivale a um acordo b asico entre os stakeholders e os integrantes da equipe com rela c ao ao escopo do projeto. Enm, a EAP deve especicar o escopo completo do trabalho necess ario para concluir o projeto. A decomposi c ao e uma das ferramentas usadas na prepara c ao da EAP, e envolve a subdivis ao das entregas em componentes distintos o suciente para 526

http://www.candidatoreal.com

facilitar a realiza c ao das estimativas, a deni c ao de baseline para controle de desempenho e a atribui c ao clara de responsabilidades. A estrutura mais comum usada para representar essa decomposi c ao e arvore. O n vel 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 n vel da EAP deve receber um identicador exclusivo.

Figura 69.1: WBS - Work Breakdown Structure O gerente de projeto pode determinar ` a vontade o n umero de n veis na EAP, com base na complexidade do projeto. Independentemente do n umero de n veis da EAP, o n vel mais baixo de cada estrutura e denominado pacote de trabalho. Pacotes de trabalho s ao as atividades ou componentes que podem ser facilmente atribu dos a uma pessoa ou grupo, que assumir ao a clara responsabilidade pelo no n seu cumprimento. E vel de pacotes de trabalho que se fazem as estimativas de tempo, custos e recursos. Cabe ressaltar que n ao existe nenhuma regra no PMBOK determinando a presen ca de atividades na EAP. Entretanto, quando poss vel, considera-se uma boa pr atica. Finalmente, o Dicion ario da EAP cont em uma descri c ao do n vel dos pacotes de trabalho e os detalhes relativos ` as atividades dentro de cada pacote. Nele se encontram informa c oes como custos, or camentos, prazos, distribui c ao de recursos e descri c ao das atividades. Outro conceito importante s ao os marcos de projeto (milestones ). Os marcos s ao realiza c oes signicativas do projeto que ajudam a vericar o andamento dos trabalhos.

http://www.candidatoreal.com

527

http://www.candidatoreal.com

Cap tulo 70

Gerenciamento de Recursos Humanos


A fase de Gerenciamento de Recursos Humanos engloba os seguintes processos: 1. Planejamento Organizacional : deni c ao de equipes, pers e responsabilidades, al em do formato da equipe (ex: democr atica descentralizada, controlada centralizada, controlada descentralizada). Deve levar em considera c ao as caracter sticas da organiza c ao (matricial forte ou fraca, orientada a projetos,etc); 2. Montagem de Equipe : aloca c ao de pessoas ou equipes aos papeis denidos; 3. Desenvolvimento da Equipe : estrat egias para aumentar capacidade das pessoas e equipes, gerenciar conitos (ex: negocia c ao,panos quentes,retirada,for ca,etc). Principais te oricos: McGregor (Teoria XY ), Maslow (Pir amide de Necessidades ), Hezberg (Fatores Motivacionais ).

70.1
70.1.1

Estruturas Organizacionais
Organiza c ao Funcional

http://www.candidatoreal.com

As organiza c oes funcionais giram em torno de especialidades e s ao agrupadas por fun c ao - da o nome organiza c 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 espec cas e experi encia nas fun c oes para cumprir as responsabilidades. Esse tipo de organiza c ao e congurado 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 organiza c ao. As principais vantagens e desvantagens dessa organiza c ao s ao: Vantagens:

528

http://www.candidatoreal.com

Figura 70.1: Organiza c ao Funcional Estrutura organizacional duradoura; Carreira prossional transparente; Cadeia de comando expl cita. Desvantagens: O gerente de projeto tem pouca ou nenhuma autoridade ocial; V arios projetos disputam recursos limitados e prioridades; Os integrantes do projeto s ao leais ao gerente funcional.

70.1.2

Organiza c ao por Projeto

As organiza c oes por projeto s ao praticamente o oposto das organiza c 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 t em total autoridade sobre o projeto e respondem diretamente ao CEO. As equipes s ao formadas e seus membros com freq u encia s ao co-alocados, ou seja, trabalham no mesmo local f sico.

http://www.candidatoreal.com

Figura 70.2: Organiza c ao por Projeto As principais vantagens e desvantagens dessa organiza c ao s ao: Vantagens: O gerente de projeto e a autoridade m axima;

529

http://www.candidatoreal.com

O enfoque da organiza c ao e o projeto; Os recursos da organiza c ao s ao destinados ao projeto; Lealdade ao gerente do projeto; Comunica c ao efetiva. Desvantagens: Quando o projeto e nalizado a equipe e desalocada; Uso dos recursos pode n ao ser eciente; Duplica c ao de fun c oes.

70.1.3

Organiza c ao Matricial

As organiza c oes matriciais surgiram para minimizar as diferen cas entre os pontos fortes e fracos das organiza c oes funcionais e das estruturadas por projeto.e melhor explor a-los. Assim, os objetivos s ao atendidos, t ecnicas ecientes de gerenciamento de projetos s ao aplicadas, ao mesmo tempo que tamb em se mant em a estrutura hier arquica da organiza c ao.

Figura 70.3: Organiza c ao Matricial Os funcion arios de uma organiza c ao matricial se reportam ao gerente funcional e a, no m nimo, um gerente de projeto - podendo ser subordinados a v arios gerentes de projeto, caso trabalhem em v arios projetos simult aneos. O gerente funcional responde por incumb encias administrativas e aloca funcion arios para os projetos, al em de monitorar o trabalho de seus funcion arios nos diversos projetos. O gerente de projeto, por sua vez, e respons avel pela execu c ao do projeto e distribui c ao das tarefas de acordo com as atividades previstas. Ambos dividem as responsabilidades pela avalia c ao de desempenho dos funcion arios. Como se pode perceber, h a muita comunica c ao e negocia c ao entre os gerentes de projeto e funcional. Isso requer um equil brio de poder entre os dois. Desse modo, s ao tr es os tipos de organiza c ao matricial: Matricial forte: gerente de projeto tem prioridade sobre gerente funcional; Matricial fraca: gerente funcional tem prioridade sobre gerente de projeto; Matricial Equilibrada: h a negocia c ao entre gerente funcional e gerente de projeto. 530

http://www.candidatoreal.com

http://www.candidatoreal.com

Em todo o caso, as vantagens e desvantagens s ao: Vantagens: Quando o projeto e nalizado, a equipe e alocada em outras atividades na empresa; A dissemina c ao de informa c oes ocorre na vertical e horizontal; Os recursos escassos s ao bem utilizados. Desvantagens: Mais de um gerente para a equipe do projeto se reportar; Grande probabilidade de conitos; Precisa de pessoal administrativo extra para cumprir as necessidades dos projetos.

70.2

Planejamento Organizacional

O objetivo desse processo e documentar as fun c oes e responsabildiades de indiv duos e grupos para cada elemento do projeto e, em seguida, registrar as rela c oes de subordina c ao de cada um. Neste momento devem ser denidas todas as equipes que estar ao envolvidas no projeto. Dessa forma, Marilyn Mantei prop oe tr es tipos de estruturas para equipes: Democr atica Descentralizada: nessa estrutura n ao h a um l der ou gerente permanente. As decis oes s ao tomadas por consenso. Na pr atica, n ao funciona muito bem para projetos; Controlada Descentralizada: nessa estrutura h a um gerente geral para o projeto e gerentes secund arios ou l deres locais. As decis oes de problemas do projeto s ao tomadas por consenso entre o gerente do projeto e os gerentes secund arios. A execu c ao das a c oes s ao controladas pelos gerentes secund arios. H a comunica c ao horizontal e vertical. Essa estrutura e comum em projetos que possuem v arios m odulos, principalmente, se estes s ao desenvolvidos em paralelo; Controlada Centralizada: nessa estrutura h a um gerente geral para o projeto e os demais membros est ao diretamente ligados a ele. N ao h a l deres secund arios. S o h a comunica c ao vertical.

http://www.candidatoreal.com

70.3

Desenvolvimento da Equipe

O desenvolvimento da equipe implica criar um ambiente franco e estimulante para que os stakeholders contribuam, e transformar a equipe num grupo coordenado, funcional e eciente. Nesse aspecto e desej avel manter a equipe sempre motivada. S ao v arias as teorias sobre a motiva c ao. As principais s ao: Hierarquia de necessidades de Maslow; 531

http://www.candidatoreal.com

Teoria da Higiene ou teoria Motiva c ao-Higiene; Teoria das Expectativas; Teoria da Realiza c ao. Maslow defendia a hip otese de que os seres humanos possuem cinco necessidades b asicas, distribu das em ordem hier arquica. Eis um resumo de cada uma delas, do n vel mais alto at e o mais baixo: Realiza c ao pessoal - Trabalhar no seu potencial m aximo; Necessidade de auto-estima - Realiza c ao, respeito por si mesmo, cpacita c ao; Necessidades sociais - Senso de pertencimento, amor, aceita c ao, amizade; Necessidade de prote c ao e seguran ca - Seu bem-estar f sico e seus pertences. Quando todas as necessidades f sicas, de prote c ao. Sociais e de auto-estima forem atendidas, a pessoa alcan car a um estado de independ encia em que conseguir a se expressar e realizar ao m aximo, e far a um bom trabalho apenas pelo fato de fazer um bom trabalho. Herzberg desenvolveu a teoria da Higiene que postula a exist encia de duas categorias de fatores que contribuem para a motiva c ao: fatores de higiene e motivadores. Os primeiros tratam de quest oes relacionadas ao ambiente de trabalho: evitam a insatisfa c ao: sal ario, benef cios, as condi c oes de ambiente de trabalho. Os motivadores dizem respeito ` a subst ancia do trabalho em si e com a satisfa c ao do sujeito ao exercer as fun c oes do cargo: conduzem a satisfa c ao. Segundo a Teoria das expectativas, e a perspectiva de um resultado positivo que aciona a motiva c ao: as pessoas v ao apresentar um determinado comportamento de acharem que receber ao uma boa recompensa para isso. Al em disso, a for ca da expectativa inui no comportamento. A teoria alega ainda que as pessoas se tornam o que se esperam delas. Segundo a Teoria da Realiza c ao somos motivados por tr es necessidades: realiza c ao, poder e alia c ao. A motiva c ao da realiza c ao e a necessidade de triunfar ou atingir um dado objetivo. A motiva c ao do poder refere-se ao desejo de inuenciar os comportamentos alheios. E a necessidade de alia c ao diz respeito a relacionamentos. Ao lado das teorias motivacionais est ao as teorias de sobre a lideran ca. Destacam-se as teorias X e Y e a teoria da conting encia. McGregor estabeleceu dois modelos de comportamento dos trabalhadores, a Teoria X e a Teoria Y, que procuram explicar como cada gerente lida com os integrantes de suas equipes. Os gerentes adeptos da Teoria X acreditam que a maioria das pessoas n ao gosta de trabalhar, t em pouca ou nenhuma ambi c ao, precisam de supervis ao constante n ao cumprir ao suas obriga c oes, a menos que 532

http://www.candidatoreal.com

http://www.candidatoreal.com

amea cadas. Em raz ao disso, agem como ditadores e imp oem ao seu pessoal controles muito r gidos. 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 motiva c ao certa e as expectativas adequadas. Assim, proporcionam apoio ` as suas respectivas equipes, preocupam-se com seus membros e s ao bons ouvintes. A teoria da conting encia resulta de uma combina c ao entre as Teorias Y e da Higiene; em suma, argumenta que somos motivados a atingir n veis de compet encia e continuaremos motivados por essa necessidade mesmo depois de atingir a compet encia.

http://www.candidatoreal.com

533

http://www.candidatoreal.com

Cap tulo 71

Gerenciamento do Tempo
Os processos da area de Gerenciamento do Tempo segundo o PMBOK s ao: 1. Deni c ao das Atividades : denir as atividades e respectivos respons aveis. 2. Sequenciamento das atividades : estabelecer rela c oes de preced encia entre as atividades (Diagramas de Precedencia); 3. Estimativas de Dura c ao : estimar a dura c ao do projeto utilizando alguma abordagem (TopDown, BottomUp ). As principais t ecnicas utilizadas para realiza c ao de estimativas s ao Modelos Matem aticos, Analogias e Consultoria de Especialistas; 4. Desenvolvimento do Cronograma : utiliza c ao de alguma t ecnica matem atica como PERT, CPM (Critical Path Method ) para formalizar o cronograma. T ecnicas de Nivelamento de Recursos leva a aloca c ao dos recursos em conta no estabelecimento de preced encias das atividades. Para comprimir o cronograma as t ecnicas mais comuns s ao Crashing (adi c ao de recursos) e Fast-Tracking (antecipa c ao de inicio de atividade); 5. Controle do Cronograma : comparar, analisar e revisar o cronograma para permitir administrar desvios ao longo do projeto.

71.1
http://www.candidatoreal.com

T ecnicas de Desenvolvimento do Cronograma

Consiste em formalizar o cronograma, identicando suas datas, caminhos cr ticos e registrando os marcos e pontos de controle identicados. H a seis ferramentas e t ecnicas usadas no Desenvolvimento de Cronograma: An alise Matem atica; Compress ao de cronograma; Simula c ao; Heur stica de nivelamento de recursos; Software de gerenciamento de projeto; Estrutura de Codica c ao. 534

http://www.candidatoreal.com

71.1.1

An alise Matem atica

A an alise matem atica consiste no c alculo das datas de in cio mais cedo e de t ermino mais tarde das atividades do projeto - sem levar em conta as limita c oes dos recursos, o que acaba gerando prazos te oricos. A an alise matem atica abrange tr es t ecnicas: M etodo do caminho cr tico (CPM - Critical Path Method); T ecnica de An alise e Avalia c ao Gr aca (GERT - Graphical Evaluation and Review Technique); T ecnica de An alise e Avalia c ao de Programa (PERT - Program Evaluation and Review Technique). O m etodo CPM calcula as datas de in cio mais cedo, de m mais cedo, de in cio mais tarde e de m 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 dura c ao para cada atividade. O caminho cr tico de todo o projeto e o caminho mais longo. Toda atividade com folga igual a zero e considerada uma tarefa do caminho cr tico. Assim, para calcular a dura c ao do caminho cr tico basta somar a dura c 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 poss vel atrasar o in cio da tarefa sem prorrogar o t ermino do projeto. J a a folga livre e o tempo durante o qual e poss vel atrasar o in cio da tarefa sem prorrogar o in cio de uma tarefa subseq uente. O que e preciso saber sobre a t ecnica GERT e que ela aceita desvio condicional, looping e tratamento probabil stico. Por exemplo, um o projeto de um software pode exigir o teste de m odulos individuais antes da verica c ao do programa como um todo, a cada m odulo precisa ser aprovado em seu teste ` a parte. Cada teste constitui uma execu c ao no la co. A t ecnica PERT usa o valor esperado para denir a dura c ao do projeto, portanto se baseia em ferramentas estat sticas para isso. As t ecnicas com e PERT s ao muito parecidas, entretanto CPM usa a dura c ao mais prov avel e PERT o valor esperado (ou m edia ponderada).

http://www.candidatoreal.com

71.1.2

Compress ao do Cronograma

Trata-se de uma condensa c ao do cronograma de modo a nalizar todas as atividades antes do estimado. Duas t ecnicas s ao usadas; compress ao propriamente dita (crashing) e paralelismo (fast tracking). A compress ao e uma t ecnica que leva em conta a rela c ao entre custo e cronograma. Uma das possibilidades e adicionar recursos ` as tarefas do caminho cr tico, j a que estas atividades possuem folga zero. Podem-se tamb em limitar ou reduzir os requisitos do projeto. Nem sempre produz os resultados esperados e geralmente acaba aumentando os custos. O paralelismo consiste em iniciar ao mesmo tempo duas atividades que a princ pio estavam programadas para serem seq uenciais. A t ecnica pode aumentar os riscos do projeto e acarretar retrabalho.

535

http://www.candidatoreal.com

71.1.3

Simula c ao

Na simula c ao parte-se de diferentes conjuntos de premissas para chegar a diversas dura c oes par ao projeto. O principal representante e a Simula c ao de Monte Carlo que mostra a probabilidade de todas as poss veis datas de t ermino do projeto. Outra t ecnica chamada what-if (an alise de hip oteses) permite examinar o cronograma sob diversas circunst ancias.

71.1.4

Heur stica do nivelamento de recursos

A an alise matem atica n ao leva em considera c ao a disponibilidade de recursos. Entretanto, com freq u encia o cronograma inicial tem per odos de tempo com mais atividades do que recursos dispon veis para elas e que nem sempre e poss vel alocar ` as tarefas 100 % do tempo dos membros da equipe. Nesse contexto, o nivelamento de recursos - tamb em chamado m etodo baseado em recursos - visa a aplainar a distribui c ao de recursos para que as tarefas sejam conclu das sem sobrecarregar ningu em, ao mesmo tempo procurando manter o projeto dentro do cronograma.

71.1.5

Estrutura de Codica c ao

A estrurura de codica c ao e uma ferramenta e t ecnica relacionada ` a possibilidade de ordenar atividades com base em caracter sticas que lhes podem ser atribu das - como por exemplo classica c oes da EAP, fases do projeto, tipo de atividades e etc.

http://www.candidatoreal.com

536

http://www.candidatoreal.com

Cap tulo 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. Or camenta c ao dos Custos : aloca c ao das estimativas globais de custo s ao utilizadas para formalizar o or camento; 4. Controle dos Custos : revisar o or camento, identicar e administrar desvios.

72.1

T ecnicas de Estimativas de Custos

As estimativas de custos emprega cinco ferramentas e t ecnicas para gerar estimativas: Estimativa An aloga Modelagem Param etrica Estimativas bottom-up Ferramentas computadorizadas

http://www.candidatoreal.com

72.1.1

Estimativas An alogas

As estimativas an alogas, tamb em chamadas de estimativas top-down, s ao uma forma de opini ao especializada. Nessa t ecnica usa-se a dura c ao real de uma atividade similar realizada num projeto anterior para projetar a dura c ao da atividade atual. Essa t ecnica e muito u til quando as atividades anteriores de refer encia s ao realmente pr oximas com a atividade que est ao sendo avaliada. E particularmente u til quando n ao h a informa c 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 caracter sticas do projeto para prever custos. A id eia e descobrir um ou v arios par ametros que se modiquem paralelamente aos custos do projeto, incorporando-os ao modelo para chegar a um custo total. Para utilizar essa t ecnica 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 param etrica e semelhante ` a estimativa an aloga, na medida em que prev e o custo do projeto inteiro de cima para baixo.

72.1.3

Estimativa bottom-up

Esta t ecnica e oposta ` a top-down, pois estima-se cada atividade ou item de trabalho separadamente para depois reuni-las ou agreg a-las numa estimativa total do projeto. Trata-se de um m etodo de estima c ao muito preciso, entretanto e muito demorada, j a que o pacote de trabalho deve ser avaliado e estimado com exatid ao para ser inclu do no c alculo. Essa n ao e uma alternativa adequada para fazer uma estimativa de custo na fase inicial do projeto, dada a inexist encia de dados sucientes nessa etapa.

http://www.candidatoreal.com

538

http://www.candidatoreal.com

Cap tulo 73

Gerenciamento de Riscos
A area de gerenciamento de riscos e respons avel por minimizar a probabilidade de ocorr encia de desvios ao longo do ciclo de vida do projeto. Os processos do Gerenciamento de Riscos s ao: 1. Planejamento : denir qual ser a a abordagem aos riscos; 2. Identica c ao : identicar, descrever e classicar os riscos; 3. An alise Qualitativa : associar probabilidades e graus de impacto aos riscos atrav es de t ecnicas como Matriz de Gradua c ao, Matriz Probabilidade x Impacto ; 4. An alise Quantitativa : associar probabilidades e graus de impacto de forma num erica utilizando t ecnicas como An alise de Sensibilidade, Arvore de Decis ao e Simula c oes ; 5. Planejamento de Respostas : denir qual a c ao ser a tomada mediante os riscos identicados (ex: evitar, transferir, mitigar, aceitar); 6. Controle e Monitora ca o : garantir a execu c ao do plano,identicar novos riscos, monitorar riscos residuais e realizar ajustes necess arios.

73.1
http://www.candidatoreal.com

An alise Qualitativa

A An alise Qualitativa de Riscos visa ` a detec c ao do impacto dos riscos identicados sobre os objetivos do projeto e sua probabilidade de ocorr encia. Tamb em classica os riscos por prioridade, de acordo com os efeitos sobre os objetivos do projeto. Nesse processo, basta atribuir ao risco um valor alto, m edio ou baixo (ou alguma combina c 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 t ecnica Probabilidade e Impacto do Risco atribui probabilidades aos eventos de risco identicados e calcula seu efeito sobre os objetivos do projeto. Esses m etodos permitem determinar que riscos demandam o gerenciamento mais agressivo.

539

http://www.candidatoreal.com

Outra ferramenta e t ecnica e a Matriz de classica c ao de riscos por probabilidade e impacto (PI) cujo objetivo e atribuir uma classica c ao gen erica a cada um dos risos identicados do projeto, geralmente expressa como alta, m edia ou baixa. Segundo o guide to PMBOK, os riscos elevados correspondem a uma situa c ao vermelha, os m edios a uma situa c ao amarela e os baixos, verde. Esse tipo de classica c ao e denominado de escala ordinal, porque os valores s ao ordenados de forma descendente. Ao m desse processo, portanto, os riscos podem ser enumerados por ordem de prioridade. A prioridade e estabelecida por meio da matriz PI. A matriz de PI e determinada a partir da multiplica c ao de dois valores: o valor da probabilidade do risco vezes o valor do seu impacto (cada qual gerado na escala correspondente). A avalia c ao da probabilidade e impacto dos riscos costuma se dar por meio de t ecnicas de opini ao especializada e entrevistas. Antes de se chagar a matriz PI, por em, s ao elaboradas a escala de probabilidades e a escala de impacto dos riscos. O objetivo dessas escalas e desenvolver medidas predenidas que determinem que valor atribuir a determinado evento de risco.

73.2

An alise Quantitativa de Riscos

A An alise Quantitativa de Riscos avalia os impactos e quantica a exposi c ao do projeto aos riscos por meio da atribui c ao de probabilidades num ericas a cada um e aos seus impactos sobre os objetivos do projeto. Para tanto, s ao usadas t ecnicas como a simula c 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 t ecnicas desse processo s ao: Entrevistas; An alise de Sensibilidade; An alise da arvore de decis oes; Simula c ao. An alise de Sensibilidade e um m etodo de an alise do poss vel impacto dos eventos de risco sobre o projeto e determina c ao de que evento (ou eventos) de risco tem maior impacto potencial. Tamb em pode ser empregada para averiguar os n veis 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 u encia de decis oes inter-relacionadas e os resultados esperados de acordo com a alternativa escolhida. Em geral existe mais de uma escolha ou op c ao dispon vel quando nos deparamos com uma decis ao - ou, nesse caso, poss veis conseq u encias de um evento de risco. As escolhas dispon veis s ao expostas em forma de arvore, come cando ` a esquerda com a decis ao relacionada ao risco, e ramicando para a 540

http://www.candidatoreal.com

http://www.candidatoreal.com

direita, com as poss veis conseq u encias. Essas arvores costumam ser usada para os eventos de riscos associados a tempo e custo. A simula c ao tem como principal representante a t ecnica de Monte Carlo. Ela ajuda a quanticar os riscos associados ao projeto com um todo. Os riscos identicados e seus poss veis impactos sobre os objetivos do projeto s ao examinados sob o prisma do projeto global. A t ecnica e usada para determinar os poss veis resultados pr meio da simula c ao do projeto diversas vezes seguidas.

http://www.candidatoreal.com

541

http://www.candidatoreal.com

Cap tulo 74

Gerenciamento de Qualidade
Os processos para realiza c ao do Gerenciamento de Qualidade como denidos no PMBOK s ao: 1. Planejamento : deni c ao dos padr oes de qualidade relevantes ( Benchmarking, Diagrama Espinha de Peixe (causa/efeito) e Fluxograma Processo ); 2. Garantia : vericar relev ancia dos processos denidos; 3. Controle : analisar de padr oes est ao sendo seguidos, identicar causas de desvios. Ferramentas muito utilizadas s ao a Carta Controle, Diagrama de Pareto (direcionar a c oes corretivas).

74.1

T ecnicas de Planejamento da Qualidade

http://www.candidatoreal.com

O processo de Planejamento da Qualidade visa ao cumprimento de padr oes de qualidade para o projeto em quest ao, elaborando, para tanto, um plano. Segundo o guide to PMBOK a qualidade e planejada, n ao inspecionada. Portanto, uma sa da desse processo e o plano de gerenciamento da qualidade que especica como a pol tica de qualidade ser a implementada pela equipe de ger encia de projeto no decorrer das atividades. Para isso, v arias ferramentas s ao empregadas. Os principais exemplos s ao: an alise de custo/benef cio, benchmarking, uxograma, elabora c ao de experimentos e custo da qualidade.

74.1.1

An alise Custo/Benef cio

An alise de custo/benef cio aborda as compensa c oes no custo da qualidade. E mais barato e eciente 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 execu c ao das atividades de gerenciamento da qualidade.

542

http://www.candidatoreal.com

74.1.2

Benchmarking

um processo de compara E c ao de atividades anteriores similares ` as do projeto atual para obter um par ametro de refer encia para a avalia c ao do desempenho. A compara c ao acaba sugeringo id eias 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 refer encia e a impressora usada no projetos at e ent ao.

74.1.3

Fluxograma

S ao diagramas que mostram as etapas l ogicas a serem executadas para atingir um objetivo. Tamb em podem discriminar como se d ao as rela c oes entre os diversos elementos de um sistema. Os uxogramas podem ajudar a identicar possibilidades de ocorr encia de problemas no projeto. H a dois tipos mais comuns de uxogramas: os diagramas de processo ou sistema e os diagramas de causa e efeito. Os diagramas de causa e feito mostram a rela c ao entre os efeitos dos problemas e suas causas, apresentando todas as poss veis causas prim arias e secund arias dos problemas, bem como os efeitos de cada solu c ao sugerida. Esse diagrama tamb em e chamado de espinha de peixe ou de Ishikawa.

Figura 74.1: Diagrama Causa/Efeito O uxograma de sistema ou processos exibe as etapas l ogicas necess arias para atingir determinado objetivo, bem como a rela c ao entre diferentes elementos de um sistema. Esse e o mais conhecido; geralmente e constru do com ret angulos e paralelogramos que, ordenados numa seq u encia l ogica, permitem ramica c oes baseadas em sim e n ao

http://www.candidatoreal.com

74.1.4

Elabora c ao de Experimentos

uma t E ecnica estat stica que identica os elementos ou vari aveis que surtir ao os efeitos mais profundos sobre os resultados globais do projeto. Ela e aplicada com mais freq u encia ao produto do projeto, mas tamb em pode ser utilizada nos processos de gerenciamento que examinam rela c oes de compensa c ao. O processo cria e realiza experimentos para chegar ` a solu c ao ideal de um problema, a partir de um n umero limitado de exemplos.

543

http://www.candidatoreal.com

74.1.5

Custo da Qualidade

O custo da qualidade diz respeito ao custo total da gera c ao do produto ou servi co do projeto de acordo com os padr oes de qualidade, e engloba todo o trabalho necess ario para atender os requisitos do produto - quer tenha sido planejado ou n ao. Existem tr es custos associados ao custo da qualidade: Custo de Preven c ao; Custo de Avalia c ao; Custo de falhas, divididos em custos internos e custos externos. Os custos de preven c ao s ao aqueles associados ao cumprimento dos requisitos dos clientes por meio da gera c ao de produtos livres de defeitos; v em a tona logo no come co do processo e compreendem fatores como planejamento da qualidade, treinamento, an alise de projeto. Os custos de avalia c ao s ao aqueles em que se incorre para examinar o produto ou processo e averiguar se determinados requisitos est ao sendo atendidos. Podem incluir custos associados a elementos como inspe c oes e testes. Custos de falhas s ao aqueles que ocorrem quando as coisas n ao se passam conforme o planejado. S ao dois tipos: internos (tamb em chamado de custo de erro) e externos (tamb em 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 organiza c ao. Os custos de falhas externas se d ao quando o produto j a chegou ao cliente e este entende que suas determina c oes ainda n ao foram atendidas. Tr es 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 signica, basicamente, acertar de primeira. A preven c ao e a pe ca central da teoria de Crosby. Juran e conhecido pelo seu princ pio da adequa c ao ao uso - que signica, em termos simples, a satisfa c ao ou supera c ao das expectativas dos stakeholders clientes. A conformidade e pe ca central na teoria de Juran. Deming arma que at e 85% do custo da qualidade s ao problemas gerenciais. Quando a quest ao da qualidade chega ` a base, ao patamar dos oper arios, estes t em pouco controle a exercer. Ao lado dos tr es te oricos, pode-se citar como de importante relev ancia a Abordagem Kaizen que signica melhoria cont nua.

http://www.candidatoreal.com

74.2

T ecnicas de Controle da Qualidade

O controle de qualidade preocupa-se particularmente com o monitoramento dos resultados do trabalho, a m de vericar se est ao cumprindo os padr oes estabelecidos no plano de gerenciamento da qualidade. Existem v arias ferramentas e t ecnicas nesse processo:

544

http://www.candidatoreal.com

Inspe c ao; Gr acos de Controle (Carta de Controle); Diagramas de Pareto; Diagramas de Dispers ao; Amostragem Estat stica; Elabora c ao de Fluxogramas (Diagramas de Causa e Efeito, Fluxograma de Sistemas); An alise das Tend encias.

74.2.1

Gr acos de Controle

Medem os resultados dos processos ao longo do tempo e exibem-nos em formato gr aco; constituem uma maneira de mensurar varia c oes a m de averiguar se as varia c oes dos processos est ao ou n ao sob controle. Os gr acos de controle se baseiam na media c ao de varia c oes de amostras escolhidas e mensuradas das quais se determinam a m edia e o desvio-padr ao. O controle da qualidade costuma ser mantido - ou considerado sob controle - dentro de mais ou menos tr es desvios-padr ao. Em outras palavras, o Controle da Qualidade considera que o processo encontra-se sob controle quando se sabe que 99,73% das pe cas a ele submetidas v ao recair num intervalo aceit avel da m edia. Caso de descubra uma pe ca fora desse intervalo, deve-se averiguar a necessidade de eventuais medidas corretivas.

Figura 74.2: Gr aco de Controle Existen dois tipos de gr acos de controle que s ao (i) Controle por vari aveis e (ii) Controle por atributos.

http://www.candidatoreal.com

74.2.2

Diagramas de Pareto

Baseia-se na regra 80/20 onde e armado que 80% dos problemas s ao causados por um pequeno n umero de causas, 20%. Os diagramas de Pareto assumem a forma de histogramas que classicam os fatores mais importantes (como atrasos, custos, defeitos ou outros) conforme a freq u encia ao longo do tempo. A teoria prega que se obt em o m aximo benef cio se for dedicado a maior parte do tempo a corre ` c ao dos problemas mais relevantes. Os problemas s ao classicados de acordo com a freq u encia e a porcentagem de defeitos.

545

http://www.candidatoreal.com

74.2.3

Diagramas de Dispers ao

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 sa da, e mostram a rela c ao entre ambas, sob a forma de pontos no gr aco.

http://www.candidatoreal.com

546

http://www.candidatoreal.com

Cap tulo 75

Gerenciamento da Comunica c ao
Segundo o PMBOK,o Gerenciamento da Comunica c ao e dividido nos seguintes processos: 1. Planejamento : deni c ao das informa c oes necess arias, objetos de comunica c ao e layouts de documentos; 2. Distribui c ao das Informa c oes : disponibilizar as informa c oes necess arias as partes envolvidas; ` 3. Relato de Desempenho : relat orios de situa c ao, de progresso e previs oes; 4. Encerramento Administrativo : encerramento formal do projeto. Divulga c ao dos resultados do projeto para patrocinadores e cliente, consider c oes nais, an alise dos pontos fracos e fortes.

75.1

Um mais sobre Planejamento da Comunica c ao

http://www.candidatoreal.com

Compreende a determina c ao das necessidades de comunica c ao do stakeholders por meio da deni c ao dos tipos de dados necess arios e do formato em que ser ao transmitidos. Dois fatores inuenciam esse processo: os requisitos de comunica c ao e a tecnologia envolvida. A sa da desse processo e o plano de gerenciamento das comunica c oes. Ele estabelece como coletar, armazenar, arquivar e corrigir ou atualizar materiais j a divulgados. Cont em tamb em uma lista das informa c oes a serem distribu das, o momento de sua comunica c ao e a estrutura de distribui c ao, al em de descrever como os stakeholders podem ter acesso a informa c oes do projeto antes das datas de divulga c ao. As informa c oes a serem compartilhadas e os m etodos de distribui c ao dependem das necessidades dos stakeholders, da complexidade do projeto e das pol ticas organizacionais.

547

http://www.candidatoreal.com

Cap tulo 76

Gerenciamento das Aquisi c oes


A area de gerenciamento de comunica c oes e composta pelos seguintes processos: 1. Planejamento : identica c ao das necessidades que ser ao melhor atendidas por terceiros. Elabora c ao da SOW (Specication of Work ); 2. Prepara c ao : elabora c ao da documentacao para licita c oes ou concorr encia; 3. Obten c ao de Propostas : sele c ao de fornecedores utilizando crit erios denidos; 4. Administra c ao de Contratos : acompanhar desempenho de fornecedores; 5. Encerramento Contrato : formalizar m de contrato e arquivamento de informa c oes.

76.1

Um pouco mais sobre Planejamento de Aquisi c oes

http://www.candidatoreal.com

O Planejamento de Aquisi c oes e um processo que identica os bens ou servi cos a serem comprados fora da organiza c ao - o que inclui conrmar se devem adquirir os produtos ou servi cos e, em caso armativo, quanto e quando. Duas ferramentas s ao usadas com freq u encia nesse processo: an alise ?make or buy? e sele c ao do tipo de contrato. A principal decis ao a ser tomada por m edio dessa an alise e se vai ser melhor, em termos de custos para a organiza c ao, comprar ou fabricar os bens ou servi cos necess arios par ao projeto. J a a outra t ecnica trata da sele c ao do tipo de contrato usado para aquisi c ao de produto ou servi co. Os tipos de contrato s ao: Contratos de pre co xo ou pre co 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 remunera c ao xa

548

http://www.candidatoreal.com

+ Custo mais remunera c ao de incentivo Contrato por tempo e material: Tipo h brido. As duas partes dividem os riscos. A principal sa da desse processo e a Declara c ao de Trabalho(DT) ou Especica c ao de Trabalho (SOW - Especication of Work). A DT descreve o item a ser contratado com suciente detalhamento para permitir que os potenciais fornecedores possam avaliar se s ao capazes de atender o edital Deve conter no m nimo: Os objetivos do projeto; Uma descri c ao do trabalho do projeto; Especica c oes concisas do bem ou servi co necess arios; Um cronograma do projeto.

http://www.candidatoreal.com

549

http://www.candidatoreal.com

Cap tulo 77

Gerenciamento da Integra c ao
Para assegurar que areas est ao bem coordenadas o PMBOK dene a area de Gerenciamento da Integra c 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. Execu c ao do Plano : onde e gasto maior parte Or camento; 3. Controle Integrado de Mudan cas : analisar as poss veis mudan cas, 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

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 integra c 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.

http://www.candidatoreal.com

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 mensura c 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 varia c oes de custo.

550

http://www.candidatoreal.com

Cap tulo 78

Sobre os Ciclos do Projeto e Processos de Gerenciamento


Todos os projetos s ao divididos em fases e, sejam grandes ou pequenos, t em um ciclo de vida parecido. O conjunto de fases coletivas atravessadas pelo projeto e denominado ciclo de vida do projeto. O t ermino de cada fase pode ser reconhecido pela apresenta c ao de uma entrega espec ca (ou v arias), marcando o nal daquela etapa. Entrega e tudo o que deve ser produzido para que a fase ou o projeto sejam encerrados; s ao elementos tang veis, que podem ser avaliados e comprovados com facilidade. As avalia c oes empreendidas ao nal de cada est agio recebem v arios nomes tais como: sa das de fase, passagem de est agio ou pontos de encerramento. Como mencionado anteriormente, os projetos possuem um ciclo de vida parecido. Esse ciclo de vida pode ser organizado nos seguintes grupos processos: inicia c ao, planejamento, execu c ao, controle e encerramento. Os cinco grupos s ao iterativos. A gura 78.1 apresenta os grupos de processos em um ciclo de vida de projeto t pico.

http://www.candidatoreal.com

Figura 78.1: Ciclo de Vida do Projeto 551

Você também pode gostar