Вы находитесь на странице: 1из 93

Pgina |1

SUMRIO
PARTE I 1. Desenvolvimento de Software 1.1 Programao Orientada a Objetos ................................................................................................................. 03 2. Linguagem de Programao 2.1 Java ................................................................................................................................................................. 05 2.2 PHP ................................................................................................................................................................. 07 2.3 Python............................................................................................................................................................. 09 3. Desenvolvimento Web 3.1 HTML............................................................................................................................................................... xx 3.2 CSS .................................................................................................................................................................. xx 3.3 JavaScript ........................................................................................................................................................ xx 4. Padres Web 4.1 e-PWG ............................................................................................................................................................. 13 5. Joomla .............................................................................................................................................................. 30 6. DJango .............................................................................................................................................................. 30 7. Mapeamento Objeto Relacional ..................................................................................................................... 33 8. Banco de Dados 8.1 DER ................................................................................................................................................................. 34 8.2 Normalizao .................................................................................................................................................. 35 8.3 DML................................................................................................................................................................. 36 8.4 DDL ................................................................................................................................................................. 36 8.5 Segurana ....................................................................................................................................................... 37 8.6 Controle de Concorrncia e Transao .......................................................................................................... 38 9. Principais SGDBs do mercado 9.1 Postgresql ....................................................................................................................................................... 39 9.2 MySQL............................................................................................................................................................. 40 9.3 SQL Server....................................................................................................................................................... 41 10. Gerenciamento de Projetos 10.1 SCRUM .......................................................................................................................................................... 41 10.2 XP .................................................................................................................................................................. 44 11. Modelo de Acessibilidade do Governo Eletrnico 11.1 e-MAG........................................................................................................................................................... 48

Pgina |2 12. Eclipe .............................................................................................................................................................. 57 13. Ferramenta de Gerenciamento de Projetos ................................................................................................. 57 14. Sistema de Controle de Verso Subversion e GIT......................................................................................... 58 PARTE II 15. Suporte em Manuteno de Computadores e Redes 15.1 Arquitetura e Organizao de Computadores.............................................................................................. 64 15.2 Caractersticas dos Principais Processadores do Mercado........................................................................... 66 15.3 Instalao de Sistemas Bsicos e Aplicativos ............................................................................................... xx 15.4 Administrao de Sistemas Operacionais Windows e Linux ........................................................................ xx 16 Servidores WEB e Aplicao 16.1 Apache .......................................................................................................................................................... 72 16.2 Apache Tomcat ............................................................................................................................................. 73 16.3 Ferramentas para Avaliao de Desempenho de Computadores................................................................ xx 17. Segurana da Informao .............................................................................................................................. 75 18. Aplicativos de Escritrio Planilha Eletrnica................................................................................................. xx 19. Cabeamento Estruturado .............................................................................................................................. xx 20. Redes Sem Fio ................................................................................................................................................ 80 21. Redes de Computadores 21.1 Modelo OSI ................................................................................................................................................... 81 21.2 Modelo TCP/IP .............................................................................................................................................. 85 22. Criptografia, Assinatura Digital e Certificados Digitais................................................................................. 86 23. VPN ................................................................................................................................................................. 91 24. Sistemas de Administrao de Diretrio ...................................................................................................... xx 25. Sistemas Help Desk ........................................................................................................................................ xx 26. Ingls Tcnico ................................................................................................................................................. xx

Pgina |3 RESUMO DE INFORMTICA PARA CONCURSOS 1. DESENVOLVIMENTO DE SOFTWARE 1.1 Programao Orientada a Objetos um paradigma para o desenvolvimento de software que baseia-se na utilizao de componentes individuais (objetos) que colaboram para construir sistemas mais complexos. A colaborao entre os objetos feita atravs do envio de mensagens. Um paradigma um conjunto de regras que estabelecem fronteiras e descrevem como resolver problemas dentre desta fronteira. Alm da distino entre linguagens baseadas em objetos e linguagens orientadas a objetos, existe uma outra distino que classifica as linguagens orientadas a objetos em: - Hibridas: so linguagens que originalmente no foram projetadas orientada a objetos, mas que passaram a incorporar os conceitos deste paradigma. Ex: C++. - Puras: so linguagens que foram projetadas originalmente orientadas a objetos. Ex: Java O paradigma de objetos baseia-se nos seguintes conceitos: 1.1.1 Classes a descrio de um grupo de objetos com propriedades similares (atributos), comportamento comum (operaes), relacionamentos com outros objetos e semnticas idnticas. Exemplos: mamferos, transporte, etc. 1.1.2 Objetos Informalmente um objeto representa uma entidade, tanto fsica quanto conceitual ou de software. Exemplos: carro, cachorro, azul, etc. 1.1.3 Herana um mecanismo existente no paradigma orientado a objetos que permite a reutilizao da estrutura e do comportamento de uma classe ao se definir novas classes. A classe que herda o comportamento chamada de subclasse e a que definiu o comportamento superclasse. 1.1.4 Polimorfismo E a habilidade de variveis terem mais de um tipo. Funes so ditas polimrficas quando seus operandos podem ter mais de um tipo. A palavra polimorfismo vem do grego e significa que pode tomar vrias formas. Esta caracterstica um dos conceitos essenciais da programao orientada para o objeto. Enquanto que a herana se refere s classes (e sua hierarquia), o polimorfismo diz respeito aos mtodos dos objetos.

Pgina |4 Distinguem-se geralmente trs tipos de polimorfismo: O polimorfismo ad hoc (igualmente sobrecarga ou em ingls overloading) O polimorfismo paramtrico (em ingls template) O polimorfismo de herana(igualmente redefinio, especializao ou em ingls overriding)

1.1.5 Encapsulamento Esconder detalhes de um objeto. Com isso um objeto pode possuir uma parte privada, acessvel somente atravs dos mtodos definidos na sua interface pblica, dessa forma no deve permitir acesso direito aos atributos de uma classe. 1.1.6 Mtodos uma rotina que executada por um objeto ao receber uma mensagem. Os mtodos determinam o comportamento dos objetos de uma classe e so anlogos s funes ou procedimentos da programao estruturada. 1.1.7 Atributos So os elementos que definem a estrutura de uma classe. Os atributos tambm so conhecidos como variveis de classe. Outros conceitos: - Classes abstratas: uma classe que no tem instncias diretas. Uma classe concreta uma classe que pode ter instncias. - Delegao: um outro mecanismo para reutilizao de cdigo. Normalmente ele utilizado em linguagens que no utilizam os conceitos de classe. - Sobrecarga: um tipo de polimorfismo que permite a existncia de vrios mtodos de mesmo nome, porm com assinaturas levemente diferentes. Um mesmo nome de operao (funo) pode realizar diferentes aes, o que diferencia uma da outra so os parmetros da funo. - Herana Mltipla: ocorre quando uma classe pode estender caractersticas de vrias outras classes ao mesmo tempo, ou seja, quando a subclasse possui mais de uma superclasse. A linguagem Java no suporta a herana mltipla, apenas a herana simples. J a linguagem C++ oferece suporte herana mltipla. - Interfaces: uma coleo de definies de mtodos abstratos (sem implementao). utilizada para os objetos interagirem entre si. Em Java, para definir uma interface utiliza-se a palavra interface. Embora, uma classe no possa conter mais de uma superclasse, a classe pode implementar mais de uma interface. Por esse motivo, muitas das vezes as interfaces so apresentadas como uma alternativa para herana mltipla de classes.

Pgina |5 2. LINGUAGENS DE PROGRAMAO 2.1 Java 2.1.1 Introduo Java uma linguagem de programao orientada a objeto desenvolvida na dcada de 90 por uma equipe de programadores chefiada por James Gosling, na empresa Sun Microsystems. Diferentemente das linguagens convencionais, que so compiladas para cdigo nativo, a linguagem Java compilada para um bytecode que executado por uma mquina virtual. A linguagem de programao Java a linguagem convencional da Plataforma Java, mas no sua nica linguagem (a palavra Java usualmente uma referncia a linguagem de programao Java, que a primeira linguagem criada pela Sun Microsystems para a JVM. A segunda linguagem criada pela Sun Microsystems para a JVM chamada de Groovy, uma linguagem mais dinmica, inspirada em linguagens como Python, Ruby e Smalltalk. Tambm existem implementaes para a linguagem Python, a Jython, e para a linguagem Ruby, a JRuby.). 2.1.2 Caractersticas: A linguagem Java foi projetada tendo em vista os seguintes objetivos: Orientao a objetos - Baseado no modelo de Simula67 Portabilidade - Independncia de plataforma - "escreva uma vez, execute em qualquer lugar" ("write once, run anywhere") Recursos de Rede - Possui extensa biblioteca de rotinas que facilitam a cooperao com protocolos TCP/IP, como HTTP e FTP Segurana - Pode executar programas via rede com restries de execuo Alm disso, podem-se destacar outras vantagens apresentadas pela linguagem: Sintaxe similar a C/C++ Facilidades de Internacionalizao - Suporta nativamente caracteres Unicode Simplicidade na especificao, tanto da linguagem como do "ambiente" de execuo (JVM) distribuda com um vasto conjunto de bibliotecas (ou APIs) Possui facilidades para criao de programas distribudos e multitarefa (mltiplas linhas de execuo num mesmo programa) Desalocao de memria automtica por processo de coletor de lixo Carga Dinmica de Cdigo - Programas em Java so formados por uma coleo de classes armazenadas independentemente e que podem ser carregadas no momento de utilizao Um programa fonte escrito em Java traduzido pelo compilador para os bytecodes, isto , o cdigo de mquina de um processador virtual, chamado Java Virtual Machine (JVM). A JVM um programa capaz de interpretar os bytecodes produzidos pelo compilador, executando o programa cerca de 20 vezes mais lento do que C. Pode parecer ruim, mas perfeitamente adequado para a maioria das aplicaes. Com isto, um programa Java pode ser executado em qualquer plataforma, desde que esteja dotada de uma JVM. o caso dos programas navegadores mais populares, como o Netscape Navigator e o Internet Explorer, que j vm com uma JVM. A vantagem desta tcnica evidente: garantir uma maior portabilidade para os programas Java em cdigo-fonte e compilados. Porm, as JVM tendem a ser programas extensos que consomem muitos recursos, restringindo assim o tamanho das aplicaes escritas em Java.

Pgina |6 Atualmente, j existem compiladores capazes de traduzir bytecodes para instrues de mquina nativas, como o Just In Time compiler (ou JIT), tornando os programas ainda mais rpidos. Este compilador requer uma verso especfica para cada plataforma onde se pretende que o programa Java seja executado. Em contrapartida maior velocidade de execuo est tambm uma maior necessidade de memria, pois os bytecodes compilados, em geral, ficam trs vezes maiores do que o original. Uma alternativa bem mais interessante, e talvez muito mais vivel, a implementao da JVM em hardware na forma de uma placa ou microchip. 2.1.3 Resumo da Linguagem Elementos de uma classe Atributos: dados Mtodos: cdigo para manipular os dados

Atributos Uma instncia para cada objeto Podem ser compartilhados via modificador static Controle de acesso aos atributos e mtodos Public Private Protected Objetos So instncias de classes Referncias so inicialmente criadas Objetos so posteriormente criados

Mtodos Contm o cdigo que manipula o estado do objeto No pode ter um nmero varivel de parmetros Tem um tipo de retorno So chamados como operaes sobre os objetos Usado o operador ponto ( . )

Pgina |7

Construtoras Usadas quando necessrio mais que um valor inicial Podem ter um ou mais argumentos Quanto no tem argumentos so chamados no-arg Tipo de retorno implcito e uma instncia da classe Tem sempre o mesmo nome da classe So chamadas aps os campos serem inicializados Podem ser explicitamente chamadas via this

Hierarquias e Heranas Classes podem ser estendidas Objetos herdam variveis e mtodos Superclasse referida por super Mtodos so superpostos, variveis no 2.2 PHP 2.1.1 Introduo PHP significa Hypertext Preprocessor, e uma linguagem interpretada principalmente utilizada no desenvolvimento WEB. Sua Sintaxe lembra um pouco a sintaxe do C e do Perl e uma linguagem bem fcil de aprender. O PHP se diferencia de outros scripts CGI porque ao invs de se escrever um monte de comandos para imprimir os HTML, escrito um arquivo HTML com os cdigos PHP embutdos entre o HTML delimitado por tags de inicio e fim.

Pgina |8

2.1.2 Principais caractersticas A linguagem PHP uma linguagem de programao de domnio especfico, ou seja, seu escopo se estende a um campo de atuao que o desenvolvimento web, embora tenha variantes como o PHP-GTK. Seu propsito principal de implementar solues web velozes, simples e eficientes. Caractersticas: Velocidade e robustez Estruturado e orientao a objetos Portabilidade - independncia de plataforma - escreva uma vez, rode em qualquer lugar Tipagem dinmica Sintaxe similar a C/C++ e o Perl Open-source 2.1.3 Vantagens do PHP O PHP multiplataforma, podendo ser usado na maioria dos Sistemas Operacionais, OpenSource, e diferente de scripts como o JavaScript, ele roda no servidor, que alias suportado pela maioria dos servidores WEB que existem hoje no mercado como o Apache, IIS, PWS, etc. O cliente recebe apenas os resultado dos scripts, que so interpretados no servidor, no tendo acesso ao cdigo. Muito simples de se aprender e trabalhar, o PHP atende desde os mais experientes desenvolvedores quanto os iniciantes na rea. 2.1.4 O que necessrio Vamos precisar de alguns itens essenciais para podermos trabalhar com o PHP: Webserver No momento o Apache, considerado o melhor e mais utilizado webserver, com verses para todos os sistemas operacionais. PHP necessrio ter o PHP instalado no seu servidor WEB para que possamos executar os scripts PHP voc pode fazer o download da verso mais atual junto com toda a documentao necessria. Banco de Dados Em artigos futuros estarei exemplificando algumas aplicaes que utilizam banco de dados. Estarei usando o MySQL que o mais utilizado com PHP.

2.1.5 Suporte a Banco de Dados Trabalhar com PHP utilizando Banco de Dados extremamente simples, um dos diferenciais dessa linguagem a grande gama de banco de dados que suporta, como:

Adabas D dBase Empress

InterBase FrontBase mSQL

PostgreSQL SQLite Solid

Pgina |9 FilePro (read-only) Hyperwave IBM DB2 Informix Ingres 2.1.6 Variveis No PHP as variveis obrigatoriamente devem se iniciar com $ , aps esse smbolo deve vir o identificador da varivel que no pode ser um nmero. No h a necessidade de se declarar variveis no PHP, diferentemente de outras linguagens de programao como C, Pascal e Delphi.
// Variveis Vlidas $casal20 $variavel $assim_pode // Variveis Invlidas $20teconhecer $100vergonha $649

Direct MS-SQL MySQL ODBC Oracle (OCI7 and OCI8) Ovrimos

Sybase Velocis Unix dbm

2.1.7 Constantes Constantes so valores definidos normalmente no incio do programa e no variam ao longo de sua execuo. Como na linguagem C, em PHP voc pode definir suas prprias constantes com o funo define:
define(nome_da_constante, valor_da_constante); <?php define(nome, Maria); define(sobrenome, Madalena); define(idade, 45); echo Nome.nome.<br />Sobrenome.sobrenome.<br />Idade.idade.<br ?>

/>;

2.3 Python 2.3.1 Introduo Python uma linguagem de programao de alto nvel[5], interpretada, imperativa, orientada a objetos, de tipagem dinmica e forte. Foi lanada por Guido van Rossum em 1991.[1] Atualmente possui um modelo de desenvolvimento comunitrio, aberto e gerenciado pela organizao sem fins lucrativos Python Software Foundation. Apesar de vrias partes da linguagem possurem padres e especificaes formais, a linguagem como um todo no formalmente especificada. O padro de facto a implementao CPython.

P g i n a | 10 A linguagem foi projetada com a filosofia de enfatizar a importncia do esforo do programador sobre o esforo computacional. Prioriza a legibilidade do cdigo sobre a velocidade ou expressividade. Combina uma sintaxe concisa e clara com os recursos poderosos de sua biblioteca padro e por mdulos e frameworks desenvolvidos por terceiros. 2.3.2 Caractersticas de Python Simples: Python uma linguagem simples e minimalista. Ler um bom programa em Python quase como ler em ingls, ainda que seja um ingls bem restrito. Este carter de pseudo-cdigo do Python um de seus maiores pontos fortes. Ele permite que voc se concentre na soluo do problema e no na linguagem em si. Fcil de Aprender: Como voc ver, extremamente fcil iniciar-se em Python. A linguagem possui uma sintaxe extraordinariamente simples, como j mencionado. Livre e de Cdigo Aberto: Python um exemplo de FLOSS (Free/Libre and Open Source Software. Traduzindo, voc pode distribuir livremente cpias deste software, ler seu cdigo-fonte, modificlo, usar trechos em novos programas livres e tudo o que voc quiser fazer. FLOSS baseado no conceito de uma comunidade que compartilha conhecimento. Este um dos motivos pelos quais Python to bom - ele vem sendo criado e constantemente melhorado por uma comunidade que simplesmente quer ver a Python cada vez melhor. Linguagem de Alto Nvel: Quando voc escreve programas em Python, no h necessidade de se preocupar com detalhes de baixo nvel tais como manipular a memria utilizada pelo programa, etc. Portvel: Por ser uma linguagem de cdigo aberto, Python foi portada (ou seja, modificada para funcionar) em muitas plataformas. Todos os seus programas em Python podem rodar em qualquer uma destas plataformas sem precisar de mudanas, desde que voc seja cuidadoso o suficiente para evitar usar caractersticas que dependam do sistema. Voc pode usar Python em Linux, Windows, FreeBSD, Macintosh, Solaris, OS/2, Amiga, AROS, AS/$)), BeOS, OS/390, z/OS, Palm OS, QNX, VMS, Psion, Acorn RISC OS, VxWorks, PlayStation, Sharp Zaurus, Windows CE e at mesmo no PocketPC! Interpretada: Isto requer uma pequena explicao Um programa escrito em uma linguagem compilada como C ou C++ convertido da linguagem de origem (C ou C++) para a linguagem que falada por seu computador (cdigo binrio, ou seja, 0s e 1s) usando um compilador com vrios flags e opes. Quando voc roda o programa, o software linkeditor/carregador copia o programa do disco rgido para a memria e comea a execut-lo. Python, por sua vez, no necessita de compilao para cdigo binrio. Voc simplemente executa o programa diretamente do cdigo-fonte. Internamente, Python converte o cdigo-fonte em um formato intermedirio chamado bytecode, o traduz para a linguagem nativa do seu computador e ento o executa. Tudo isso, na verdade, torna Python muito mais fcil, uma vez que voc no precisa se preocupar com a compilao do programa, certificar-se que as bibliotecas necessrias esto todas linkeditadas e carregadas etc, etc. Isto tambm torna seus programas em Python muito mais portveis, j que voc pode simplesmente copiar seu programa em Python em outro computador e execut-lo! Orientada a Objetos: Python suporta tanto programao procedural (estruturada) quanto orientada a objetos. Em linguagens procedurais, o programa construdo com base em procedimentos e funes, que nada mais so que trechos reutilizveis de programas. Em linguagens orientadas a objeto, com base em objetos que combinam dados e funcionalidade. Python tem uma maneira simples mas poderosa de implementar programao orientada a objetos, especialmente quando comparada a linguagens como C++ ou Java. Extensvel: Se voc precisa que um trecho crtico de cdigo seja executado com muita rapidez ou quer que parte de algum algoritmo no seja aberta, voc pode codific-los em C ou C++ e ento us-los a partir de seu programa Python.

P g i n a | 11 Embarcvel: Voc pode embarcar Pyhton em seus programas C/C++ para fornecer funcionalidades de scripting aos usurios dos programas. Bibliotecas Extensivas: A Biblioteca Padro do Python (Python Standard Library) de fato enorme. Ela pode ajud-lo a fazer vrias coisas envolvendo expresses regulares, gerao de documentao, testes unitrios, threading, acesso a bancos de dados, browsers web, CGi, FTP, e-mail, XML, XMLRPC, HTML, arquivos WAV, criptografia, GUI (Interfaces Grficas com o Usurio), Tk e outras coisas dependentes do sistema. Lembre-se de que tudo isto est disponvel onde quer que Python esteja instalado. Esta a chamada filosofia das "Pilhas Includas" do Python. Alm da biblioteca padro, existem vrias outras bibliotecas de alta qualidade, tais comos wxPython, Twisted, Python Imaging Library e muitas outras.

2.3.3 Construes Construes de Python incluem: estrutura de seleo (if, else, elif); estrutura de repetio (for, while), que itera por um container, capturando cada elemento em uma varivel local dada; construo de classes (class); construo de subrotinas (def); construo de escopo (with), como por exemplo para adquirir um recurso. 2.3.4 Tipos de dado A tipagem de Python forte, pois os valores e objetos tm tipos bem definidos e no sofrem coeres como em C ou Perl. So disponibilizados diversos tipos de dados nativos:

Tipo de dado

Descrio Uma cadeia de caracteres imutvel Lista heterognea mutvel Tupla imutvel Conjunto no ordenado, no contm elementos duplicados conjunto associativo Nmero de preciso fixa, transparentemente convertido para long caso no caiba em um int. Ponto flutuante Nmero complexo Booleano

str, unicode list tuple set, frozenset dict int float complex bool

Python tambm permite a definio dos tipos de dados prprios, atravs de classes. Instncias so construdas invocando a classe (FooClass()), e as classes so instncia da classe type, o que permite metaprogramao e reflexo. Mtodos so definidos como funes anexadas classe, e a sintaxe instncia.mtodo(argumento) um atalho para Classe.mtodo(instncia, argumento). Os mtodos devem referenciar explicitamente a referncia para o objeto incluindo o parmetro self como o primeiro argumento do mtodo.

P g i n a | 12 Antes da verso 3.0, Python possuia dois tipos de classes: "old-style" e "new-style". Classes old-style foram eliminadas no Python 3.0, e todas so new-style. Em verses entre 2.2 e 3.0, ambos tipos de classes podiam ser usadas. A sintaxe de ambos estilos a mesma, a diferena acaba sendo de onde objeto da classe herdado, direta ou indiretamente (todas classes new-style herdam de object e so instancias de type). As classes new-styles nada mais so que tipos definidos pelo usurio. 2.3.5 Operadores Os operadores bsicos de comparao como ==, <, >=, entre outros so usados em todos os tipos de dados, como nmeros, cadeias de texto, listas e mapeamentos. Comparaes em cadeia como a < b < c possuem o mesmo significado bsico que na matemtica: os termos so comparadas na ordem. garantido que o processamento da expresso lgica ir terminar to cedo o veredito claro, o princpio da avaliao mnima. Usando a expresso anterior, se a < b falso, c no avaliado. Quanto aos operadores lgicos, at Python 2.2 no havia o tipo de dado booleano. Em todas as verses da linguagem os operadores lgicos tratam "", 0, None, 0.0, [] e {} como falso, enquanto o restante tratado como verdadeiro de modo geral. Na verso 2.2.1 as constantes True e False foram adicionadas (subclasses de 1 e 0 respectivamente). A comparao binria retorna uma das duas constantes acima. Os operadores booleanos and e or tambm seguem a avaliao mnima. Por exemplo, y == 0 or x/y > 100 nunca lanar a exceo de diviso por zero. 2.3.6 Interpretador interativo O interpretador interativo uma caracterstica diferencial da linguagem, porque h a possibilidade de testar o cdigo de um programa e receber o resultado em tempo real, antes de iniciar a compilao ou inclu-las nos programas. 2.3.7 Compilador de bytecode A linguagem de altssimo nvel, como j dito, mas ela tambm pode compilar seus programas para que a prxima vez que o executar no precise compilar novamente o programa, reduzindo o tempo de carga na execuo. Utilizando o interpretador interativo no necessrio a criao do arquivo de Python compilado, os comandos so executados interativamente. Porm quando um programa ou um mdulo evocado, o interpretador realiza a anlise lxica e sinttica, compila o cdigo de alto nvel se necessrio e o executa na mquina virtual da linguagem. O bytecode armazenado em arquivos com extenso .pyc ou .pyo, este ltimo no caso de bytecode otimizado. Interessante notar que o bytecode da linguagem tambm de alto nvel, ou seja, mais legvel aos seres humanos que o cdigo de byte do C, por exemplo. Para descompilar um cdigo de byte utilizado o mdulo dis da biblioteca padro da linguagem e existem mdulos de terceiros que tornam o bytecode mais confuso, tornando a descompilao ineficaz. Normalmente, o Python trabalha com dois grupos de arquivos: 1. Os mdulos do ncleo da linguagem, sua biblioteca padro e os mdulos independentes, criados pelo usurio. 2. No ncleo do interpretador existe o analisador lxico, o analisador sinttico que utiliza Estruturas de Objetos (tempo de execuo), o Compilador que aloca memria (tempo de execuo) e depois

P g i n a | 13 do Avaliador de cdigo que modifica o estado atual do programa (tempo de execuo), mostrando resultado para o usurio. 2.3.8 Comentrios Python fornece duas alternativas para documentar o cdigo. A primeira o uso de comentrios para indicar o que certo cdigo faz. Comentrios comeam com # e so terminados pela quebra da linha. No h suporte para comentrios que se estendem por mais de uma linha; cada linha consecutiva de comentrio deve indicar #. A segunda alternativa o uso de cadeias de caractere, literais de texto inseridos no cdigo sem atribuio. Cadeias de caracteres em Python so delimitadas por " ou ' para nica linha e por """ ou ''' para mltiplas linhas. Entretanto, conveno usar o mtodos de mltiplas linhas em ambos os casos. 2.3.9 Aplicaes Alguns dos maiores projetos que utilizam Python so o servidor de aplicao Zope, o compartilhador de arquivos Mnet, o stio YouTube e o cliente original do BitTorrent. Grandes organizaes que usam a linguagem incluem Google (parte dos crawlers), Yahoo! (para o stio de grupos de usurios) e NASA. O sistema de gerenciamento de reservas da Air Canada tambm usa Python em alguns de seus componentes.[35] A linguagem tambm tem bastante uso na indstria da segurana da informao. A linguagem tem sido embarcada como linguagem de script em diversos softwares, como em programas de edio tridimensional como Maya, Autodesk Softimage, TrueSpace e Blender. Programas de edio de imagem tambm a usam para scripts, como o GIMP. Para diversos sistema operacionais a linguagem j um componente padro, estando disponvel em diversas distribuies Linux. O Red Hat Linux usa Python para instalao, configurao e gerenciamento de pacotes. Outros exemplos incluem o Plone, sistema de gerenciamento de contedo desenvolvido em Python e Zope e a Industrial Light & Magic, que produz filmes da srie Star Wars usando extensivamente Python para a computao grfica nos processos de produo dos filmes. 3. DESENVOLVIMENTO WEB 3.1 HTML 3.2 CSS 3.3 JavaScript 4. PADRES WEB: e-PWG 4.1 PADRES BRASIL E-GOV - CARTILHA DE CODIFICAO O objetivo desse guia detalhar recomendaes de boas prticas em codificao, que orientem as equipes no desenvolvimento de stios, portais e servios de governo eletrnico com o propsito de torn-los identificveis, portveis, relevantes, acessveis e efetivos populao. Esse guia foi concebido para ser prtico e de fcil consulta. As orientaes desse guia seguem quatro diretrizes: - Pginas leves; - Separao da forma do contedo; - Pginas em conformidade com os padres web; - Pginas independentes de navegador e plataforma.

P g i n a | 14 Desenvolver e evoluir pginas, stios e portais aplicando os padres web requer um esforo inicial para o abandono de velhas prticas, mas tambm oferece uma srie de benefcios tais como: - Simplifica o desenvolvimento e a manuteno; - Independncia de legado; - Estabelece mtricas consistentes; - Compatibilidade com navegadores futuros e outros dispositivos; - Carregamento e apresentao de pgina mais gil; - Melhora na acessibilidade; - Melhor posicionamento nos resultados de busca; - Facilidade de evoluir e adaptar; - Diminuio nos custos de hospedagem, manuteno e banda. Desenvolver seguindo os padres web significa utilizar as linguagens seguindo os objetivos para a quais elas foram desenvolvidas. Dessa forma o cdigo organizado em camadas, a saber: contedo, apresentao e comportamento. Nessa cartilha trataremos da camada de contedo e apresentao. 4.1.1 Camada de Contedo O desenvolvimento sempre deve comear por essa camada. Caso o contedo no esteja bem estruturado provvel que as camadas posteriores apresentem problemas. Para desenvolver essa camada utilizado as linguagens de estruturao, HTML, XHTML, WML ou XML. Uma forma de testar se essa camada foi estruturada corretamente abrir o documento, sem estilos, no navegador e verificar se este compreensvel com uma estrutura seqencial, que permita a leitura de forma natural. 4.1.2 Camada de Apresentao A camada de apresentao a parte visual do contedo. Ela deve ser construda aps a camada de contedo. A camada de apresentao utiliza as linguagens CSS e XSLT. O resultado da apresentao deve ser testado em diversos navegadores, principalmente os mais usados. importante lembrar que a apresentao pode oferecer diferenas em cada navegador ou dispositivo utilizado. Considere que isso algo inerente ao meio. O importante que a pgina ou aplicao funcione. 4.1.3 Camada de Comportamento utilizada para modificar o comportamento dos elementos presentes na camada de contedo, visando melhorar a experincia do usurio. Essa camada opcional, geralmente no suportada por dispositivos mais antigos. Essa camada construda utilizando linguagens de script (Javascript) e modelos de objeto (DOM Document Object Model). 4.1.4 HMTL e XHMTL

P g i n a | 15 O HTML uma linguagem usada para a codificao de documentos hipertexto. O HTML composto por elementos semnticos, que por sua vez so compostos por tags (etiquetas) que so os comandos de codificao da linguagem. O XHTML (Extensible HyperText Markup Language), a reformulao do HTML 4 para o XML 1.0. Alguns pontos devem ser observados relativos a diferenas entre o XHTML e o HTML: Deve-se usar caixa baixa e aspas em todos os valores; Todos elementos devem ser fechados; Nenhum atributo deve ser abreviado; No utilizar elementos e atributos em desuso. 4.1.5 CSS (Cascating Style Sheets) O CSS, folhas de estilo em cascata, deve ser utilizado para controlar todo o leiaute de um documento. possvel, atravs dos media type, criar uma folha de estilos para cada dispositivo que o usurio for acessar, otimizando a apresentao para cada dispositivo. Atualmente, apenas as media types, screen(computadores) e print(impressoras) funcionam perfeitamente. As demais se encontram em estudo e implementao. H trs formas de chamar, ou anexar, uma folha de estilo em um documento HTML. A indicada pelos padres e boas prticas a folha externa. As folhas internas e estilos inline devem ser evitados, pois misturam no documento HTML a apresentao e a estrutura. Segue abaixo as trs formas: Externa: a folha se encontra em um ou mais arquivos separados. o mais recomendado. A folha de estilos carregada apenas uma vez, o tamanho do documento HTML menor, e preciso editar apenas um arquivo para mudar a apresentao de todo o site. Interna: A folha de estilos descrita no elemento <style> dentro do cabealho <head>. Inline: A regra css encontra-se no corpo do documento HTML. 4.1.6 Recomendaes As recomendaes oferecem um grupo de abrangente de boas prticas para o desenvolvimento da codificao, levando em conta as necessidades de acessibilidade e usabilidade. As recomendaes esto separadas em: gerais; para o cabealho; para o corpo do documento e para utilizado de outros formatos. Recomendaes Gerais 1. Utilize arquivos externos para as Folhas de Estilo e Javascript; 2. Limite as requisies HTTP; 3. Todas as pginas devem ter recursos de impresso amigvel; 4. Evite a utilizao do recurso quadros (frame); 5. Evite o uso de pop-ups; 6. Documente o cdigo; 7. URLs devem ser amigveis;

P g i n a | 16 8. 9. 10. 11. As URLs devem funcionar sem o www"; Evite elementos ou atributos proprietrios, em desuso ou obsoletos; Evite a utilizao desnecessria de elementos HTML e classes; Evite a utilizao de tabelas para leiautes.

Elementos do cabealho Entende-se por elementos do cabealho parte inicial do cdigo, no aparente nos navegadores, que inclue o DOCTYPE, a declarao de linguagem e demais elementos. Segue abaixo suas recomendaes. 1. Declare o doctype correto da pgina (d preferncia ao Strict); 2. Declare idioma utilizado; 3. O ttulo deve ser relevante e presente em todas as pginas; 4. Descreva a codificao de caracteres da pgina (Ex: UTF-8). O Corpo do Documento 1. Utilize os elementos corretos para a marcao do cdigo; 2. A pgina deve possuir apenas um elemento H1; 3. Marque listas de itens e objetos de forma adequada (ordenada, no-ordenada, ou de definio); 4. Tabelas devem ser utilizadas para dados tabulares; 5. Formate os formulrios de forma correta e acessvel. Folhas de Estilo 1. A folha de estilos deve ser externa; 2. A pgina deve ser compreendida e usvel com o css desabilitado; 3. Nomeie classes e IDs pela sua funo, no pela apresentao; 4. Ordem e organizao; 5. Declare famlias de fonte alternativas; 6. Utilize preferencialmente unidade de tamanhos relativas; 7. Utilize preferencialmente letras para nomear classes e ids. Uso de scripts e cookies 1. No utilize scripts que no ofeream um beneficio relevante ao contedo; 2. O documento deve ser acessvel mesmo com o script desabilitado; 3. Evite solues proprietrias e teste o script em diversos navegadores; 4. Fornea uma alternativa ao contedo script utilizando o atributo NOSCRIPT; 5. O contedo e o propsito de um cookie deve ser sempre informado ao usurio; 6. O usurio pode recusar o uso do cookie sem afetar a usabilidade central do contedo. Arquivos em outros formatos e uso de plugins 1. 2. 3. 4. 5. 6. 7. Avalie a real necessidade do uso de um arquivo para baixar; O nome do arquivo deve ser relacionado ao seu contedo; Evite o uso de formatos proprietrios ou no acessveis; Fornea alternativa em texto para vdeo e udio; Informe o tamanho e o formato do arquivo a ser baixado; Avalie a real necessidade do uso de um plugin; Avise e fornea um endereo de onde o plugin deve ser baixado;

P g i n a | 17 8. Nenhuma instalao deve ser necessria para acessar a pgina inicial ou executar tarefas banais. Orientaes gerais sobre testes 1. Validao; 2. Resoluo de vdeo; 3. Navegadores e sistema 4. Outros dispositivos; 5. Teste em camadas; 6. Teste de acessibilidade 4.2 PADRES BRASIL E-GOV - CARTILHA DE REDAO WEB Esta Cartilha de Redao Web pretende ser um guia e um norte na tarefa de elaborar informao clara, estruturada e eficaz para o meio digital. redao para a web, recai a tarefa, ao mesmo tempo complexa e fascinante, de aliar texto, design e tecnologia, e trat-los como um componente nico a informao. 4.2.1 Aspectos da redao web: os pontos cardeais H questes que envolvem a produo de contedo para stios que podem parecer subjetivas, mas tornamse prticas e bem concretas desde que se olhe para a informao com a ateno necessria. Antes de iniciar a elaborao de textos para a web, leve em considerao os pontos abaixo, portanto: 1. Persuaso; 2. Objetividade; 3. Relevncia; 4. Credibilidade; 5. Abrangncia. 4.2.1 Preparando-se para elaborar textos web 1 Camada: Apresentao a camada vitrine, onde so oferecidos os contedos mais interessantes e teis de um stio. Alm do menu principal, por destaques que um visitante acessa uma pgina web, seja apenas para conhec-la ou com um objetivo j bem definido. 2 Camada: Genrica O texto principal o corao da Camada Genrica. ela que apresenta ao visitante do stio os aspectos principais do assunto abordado. A Camada Genrica tem este nome porque acessada por todo o tipo de cidado, desde o curioso, quele que deseja informaes bsicas, e ao que pretende us-lo como porta de entrada para um contedo mais aprofundado sobre o assunto em questo, a chamada Camada de Detalhamento. Existem duas funes para o texto principal da Camada Genrica: contextualizar o cidado sobre o tema em questo e estimular que ele conhea mais sobre o assunto.

P g i n a | 18

3 Camada: Detalhamento Pginas de Camadas de Detalhamento incluem aspectos da informao que vo alm das questes jornalsticas bsicas, j respondidas na Camada Genrica. As Camadas de Detalhamento tambm so conhecidas como pginas de leia mais. Existem Camadas de Detalhamento que s podem ser acessadas atravs de senha; elas constituem a Camada Restrita. Os tipos de contedo presentes nestas camadas oferecem informaes especiais, privadas e/ou confidenciais, e por isso s podem ser vistos por determinados usurios. 4.3 PADRES BRASIL E-GOV: CARTILHA DE USABILIDADE O objetivo dessa cartilha apresentar a usabilidade, inserido-a no contexto do desenvolvimento e manuteno de stios de governo eletrnico. A cartilha possui recomendaes que devem ser observadas, assim como subsdios para testes que podem ser utilizados tanto pela equipe interna do rgo quanto para a contratao ou licitao. 4.3.1 Introduo A usabilidade uma disciplina indispensvel para que as informaes e servios prestados pela Administrao Pblica Federal sejam desenvolvidos e mantidos de acordo com as expectativas e necessidades do cidado e para que este se utilize das informaes e servios de forma plena e satisfatria. O que usabilidade? A usabilidade pode ser definida como o estudo ou a aplicao de tcnicas que proporcionem a facilidade de uso de um dado objeto, no caso, um stio. A usabilidade busca assegurar que qualquer pessoa consiga usar o stio e que este funcione da forma esperada pela pessoa. Em resumo, usabilidade tem como objetivos a: Facilidade de uso; Facilidade de aprendizado; Facilidade de memorizao de tarefas; Produtividade na execuo de tarefas; Preveno, visando a reduo de erros; Satisfao do indivduo. O objetivo da aplicao da usabilidade que cada pessoa que visite o stio encontre o que est buscando de maneira simples, e que se sinta a vontade para retornar ao stio sempre que quiser ou precisar. Como as pessoas usam um stio Ao prover um servio pblico, ao fornecer informao por meio eletrnico devemos lembrar que no existe no pblico que ir utilizar o stio, um cidado igual ao outro. No h uma pessoa com vivncia igual a outra. E resumo, estamos lidando com diferentes tipos de pessoas. As pessoas:

P g i n a | 19 Exploram pginas: as pessoas no lem atentamente e seqencialmente uma pgina antes de passar a outra. A visualizao da pgina feita aos saltos, de forma aleatria, encontrando algo que buscam, clicam e seguem adiante. No buscam a melhor alternativa: so raras as pessoas que lem o manual de algum equipamento eletrnico. As pessoas preferem supor como funciona um sitio do que entender de fato seu funcionamento. Querem qualidade e credibilidade: a qualidade e credibilidade do contedo o mais importante para o cidado. Seguem a intuio: a informao lida de forma fragmentada e at o indivduo entenda que j sabe como o stio funciona. Querem ter o controle: estar no controle do que ocorre no stio o importante para o cidado.

4.3.2 Diretrizes de usabilidade em governo eletrnico Diretrizes so orientaes para o desenvolvimento do stio tendo como foco o cidado. As diretrizes propostas por esta cartilha baseiam-se na observao concreta de problemas comuns nas pginas de instituies pblicas no Brasil. So elas: Diretriz 1 Contexto e navegao A internet um ambiente no-linear, ou seja, ela no possui um fluxo nico. Cada pgina possui diversas entradas e sadas e o resultado disso , por muitas vezes, a desorientao de quem usa o stio. Por isso importante que o stio informe a pessoa em que contexto ela se encontra, o que a pgina faz e demarque claramente a navegao. Em resumo o cidado deve conseguir: 1. Rapidamente compreender o que e como funciona o stio; 2. Facilmente localizar o que busca; 3. Realizar os passos do servio sem dificuldade. Recomendaes: 1. Pgina inicial clara; 2. Estrutura do stio lgica e fcil; 3. Estruturar a informao de forma lgica e intuitiva para o cidado; 4. O contedo mais importante deve est antes da dobra; 5. Elementos da identidade visual localizados sempre no mesmo lugar; 6. A ferramenta de busca deve est presente em todas as pginas; 7. As pginas, sees ou servios mais utilizados visveis; 8. No use pginas de transio; 9. Use documentao, tutorial e ajuda; 10. Formatos especiais de arquivo e download; 11. No use janelas pop-up ou abra links em nova janela; 12. Busca simples e depois avanada; 13. Resultados da caixa de busca; 14. Formulrios amigveis;

P g i n a | 20 Diretriz 2 Carga de informao A carga de informao a soma de todos os elementos da interface: textos, links, cones, funcionalidades, cores, fundos, menus. At o menor elemento decorativo adiciona carga de informao. Uma carga de informao alta, diversa confunde o cidado. Nestes casos, mais provvel a ocorrncia de erros. Em resumo deve-se: reduzir a carga de informaes; e focar a ateno do cidado (tarefa) da pgina ou servio. Recomendaes: 1. No abarrote a pgina inicial com excesso de informaes; 2. Elimine elementos desnecessrios das pginas; 3. Elimine passos desnecessrios em servios e preenchimento de formulrios; 4. Em textos extensos, oferecer a opo de baixar o documento; 5. Apenas pea os dados necessrios; 6. No pea para o cidado converter dados, medidas ou valores; 7. O cidado no deve necessitar memorizar dados; 8. Cuidado a rolagem vertical ou horizontal de tela; 9. Utilize o bom senso no nmero de filtros e opes disponveis. Diretriz 3 Autonomia Na internet qualquer tipo de controle (no esperado) vindo por parte do stio indesejado. Controlar o tamanho das janelas, utilizar solues proprietrias, desabilitar funcionalidades presentes em navegadores, so prticas que intervm no controle do cidado. Em resumo: o comportamento e as funcionalidades do navegador no devem ser alterados para satisfazer necessidades das pginas; e o cidado deve ter autonomia na utilizao do stio. Recomendaes: 1. Mantenha a funo do boto de retrocesso (back/voltar) do navegador; 2. No crie pginas que abram e funcionem em tela cheia; 3. Permitir ao cidado marcar (favoritar) qualquer pgina de seu interesse; 4. No usar expresses como compatvel com melhor visto na resoluo...; 5. Possibilitar ao cidado interromper ou cancelar o processamento ou transao; 6. do cidado o controle sobre a navegao; 7. No usar plugins auto-instalveis; 8. Permitir a cpia de trechos de documentos; 9. Quando possvel, oferecer a personalizao da pgina. Diretriz 4 Erros Errar faz parte do ser humano. O cidado pode no entender como proceder em determinado passo do servio, cometer erros. Em qualquer caso, alm da correo do erro, importante dar o retorno devido ao cidado, tanto aos erros cometidos por ele, quanto aos problemas momentneos do stio. Em resumo: toda a falha ou indisponibilidade prevista no stio deve ser divulgada e esclarecida ao cidado; e todo erro cometido pelo cidado deve ser passvel de ser corrigido.

P g i n a | 21 Recomendaes: 1. As aes do portal devem ser reversveis; 2. Permita erros de digitao em busca; 3. Avise toda indisponibilidade (ex: troca de servidores); 4. Em formulrios, mostre o formato desejado; 5. Em formulrios, s deixe no campo o nmero de caracteres desejado; 6. As mensagens de erro devem ser sucintas e explicativas; 7. Pginas de contedo no encontrado (erro 404) devem ser claras. Diretriz 5 Desenho Um bom desenho (design, programao visual) tem um impacto significativo na credibilidade e usabilidade do stio. O desenho deve, sobretudo, respeitar o cidado. Um stio legvel e esteticamente agradvel hierarquiza e facilita a decodificao das informaes apresentadas, influenciando seu nvel de satisfao durante a interao com o portal. Recomendaes: 1. Utilizar um projeto padro de pginas; 2. Agrupar e hierarquizar, de forma clara, as reas de informao; 3. Usar espao em branco para separar contedos ou assuntos diferentes; 4. Usar fundos neutros, que no comprometam o objetivo do stio; 5. Evitar o uso de caixa com opes (scroll) ou de menus de cortina (pull-down) na navegao principal e persistente; 6. O desenho deve estar a servio da informao; 7. Elementos do desenho do stio no devem trabalhar em benefcio de uma esttica particular; 8. Utilizar a animao com bom senso; 9. Contedo agradvel de ser lido; 10. Texto alinhado esquerda; 11. Esquema consistente de cores e fontes; 12. Respeitar a velocidade de conexo do pblico-alvo; 13. Utilizar de forma consciente plug-ins e multimdia. Diretriz 6 Redao A comunicao em stios do governo , sobretudo utilitria, visando prestar servios e informaes aos cidados. A redao deve levar em conta a audincia, o conhecimento das pessoas que acessam o stio. O texto deve ser diagramado para facilitar o entendimento da informao. Em resumo: o sitio deve "falar" a lngua das pessoas, com palavras, frases e conceitos familiares; o texto deve ser objetivo. Recomendaes: 1. Utilizar uma linguagem clara e familiar; 2. O texto objetivo; 3. Dividir o texto em tpicos; 4. Ttulos informativos e com destaque visual; 5. Ttulo da pgina explanatrio e nico; 6. Utilizar termos simples e claros como rtulos de menu;

P g i n a | 22 7. Gramtica correta; 8. Use nfase e negrito; 9. Evitar o uso de caixa alta. Diretriz 7 Consistncia e Familiaridade O cidado deve sentir-se bem-vindo ao entrar em um stio do governo. O desempenho dos cidados de qualquer sistema interativo melhora quando os procedimentos necessrios ao cumprimento da tarefa so compatveis com as suas caractersticas psicolgicas, culturais e tcnicas e quando os procedimentos e as tarefas so organizados de acordo com as expectativas e costumes dos cidados. Em resumo: o cidado deve sentir-se bem-vindo no stio; o stio deve ser familiar, identificado com a experincia de vida. Recomendaes: 1. Usar convenes; 2. Usar formato de data e unidades de medida de acordo com o padro normalmente utilizado na instituio ou pas; 3. Planejar a estrutura do stio de acordo com o contexto das tarefas realizadas pelos cidados; 4. Facilitar a navegao do stio; 5. Planejar a estrutura do portal de acordo com o contexto das tarefas realizadas pelos cidados; 6. Remeter a formulrios os links de contato. 4.3.3 Avaliao de usabilidade As avaliaes de usabilidade permitem a concepo de interfaces que atendam as expectativas e necessidades dos cidados alm de garantir melhores decises de projeto e evitar custos de correes tardias. Existem mais de 30 mtodos de anlise que podem ser implementados nos diversos estgios do projeto e do processo de desenvolvimento, podendo ser divididos em: Mtodos de investigao Mtodos de inspeo Teste com usurios Mtodos de investigao Utilizados nas etapas iniciais do projeto, so mtodos contextuais, para identificar requisitos, obtendo informaes atravs da indagao de pessoas e da observao destes usando o sistema. Os mtodos de investigao podem ser: observao de campo; grupos de discusso dirigida; entrevistas; gravao de uso; e questionrio.

P g i n a | 23 Mtodos de inspeo So avaliaes baseadas em um conjunto de diretrizes, usualmente derivadas de estudos em IHC e, ou psicologia cognitiva. Os especialistas trabalham com uma lista de possveis problemas e os avaliam. Uma vez diagnosticados os problemas, so feitas recomendaes para solucion-los. Alguns mtodos de inspeo: Percurso Cognitivo Avaliao Heurstica: uso de lista de heursticas; Inspeo de padres: consistncia dentro de uma famlia de interfaces (terminologia, cores, layout, formatos entrada/sada); Testes com usurios Testes de usabilidade so tcnicas etnogrficas nas quais pessoas interagem com um produto. Podem ser aplicados ao stio inteiro, em apenas algumas sees, em uma funcionalidade, ou um servio e a qualquer momento do desenvolvimento do stio, mesmo antes at, da sua codificao. Quando estamos testando um stio devemos lembrar que no estamos testando as pessoas. Deve-se deixar o participante vontade para errar, deixando explicito que o que est sendo testado o stio. 4.3.4 Os testes no ciclo de desenvolvimento Testes de usabilidade so eficientes quando implementados como parte do processo de desenvolvimento do produto. Dependendo da etapa um tipo de teste mais indicado que outro. Teste de Explorao: esse teste efetuado nas etapas iniciais do desenvolvimento, na especificao de requisitos e incio do desenho preliminar. Teste de Avaliao: Esse teste pode ser realizado no incio ou no meio do ciclo de desenvolvimento do produto, geralmente depois que o desenho foi estabelecido. Teste de Validao: Podem ser realizados na fase final do desenvolvimento, prximo ao lanamento. utilizado para verificar se o stio est em conformidade em relao a padres de usabilidade, padres de performance e padres histricos. Teste de Comparao: utilizado para comparao de solues, podendo ser utilizado em conjunto com outros testes.

Tipos de Testes 1. Arranjo de Cartes (card-sorting); 2. Avaliao Cooperativa; 3. Co-descoberta; 4. Dirio de Incidentes; 5. Experimento Controlado; 6. Protocolo Pensar Alto; 7. Registro de Conversaes

P g i n a | 24 O processo de Teste O processo de teste de usabilidade passa pelas seguintes etapas: 1. Planejamento do teste; 2. Escolha do ambiente de teste; 3. Escolha de participantes; 4. Preparo do material de teste 5. Conduo da sesso; 6. Questionamento final; 7. Anlise dos dados coletados; 8. Relato e recomendaes; 9. Implementao das alteraes e re-teste. Prottipo O prottipo uma ferramenta na avaliao de usabilidade que permite simular a interao do sistema. Os prottipos podem ser utilizados em qualquer uma das etapas de desenvolvimento do stio, podendo simular desde apenas uma funcionalidade ou uma seo at o stio inteiro. 4.4 O custo da avaliao de usabilidade Apesar de testes de usabilidade serem um custo a mais no projeto, no realizar testes de usabilidade geralmente incorre em mais custos que realiz-los. Diversos fatores entram no custo de uma avaliao de usabilidade. A fase do desenvolvimento em que o primeiro teste uma das variveis mais importantes, pois quanto mais tarde for realizado o primeiro teste, maior o custo envolvido na avaliao, maior o nmero de recomendaes e maior o retrabalho. Outras variveis que para determinam os custos de testes de usabilidade so: Escopo; Equipamento utilizado; Pessoal; Nmero de avaliadores. 4.4 PADRES BRASIL E-GOV: CARTILHA DE ADMINISTRAO DE STIOS O objetivo do Guia de Administrao oferecer subsdios para a concepo, desenvolvimento, manuteno e administrao de stios de governo eletrnico na esfera federal. O Guia tambm fornece subsdios para a contratao de empresas e descrio dos papis e conhecimentos necessrios para as equipes envolvidas com o stio, sendo concebido para ser prtico e de fcil consulta. A deciso de criao de um stio oficial deve estar fundamentada com argumentos que justifiquem a sua existncia. Um stio envolve pessoas e ferramentas e devem ser observados os padres e a legislao vigente. Mesmo no tendo uma existncia fsica, um stio necessita de planejamento e manuteno; portanto precisa ser administrado como qualquer outro departamento do rgo.

P g i n a | 25 4.4.1 Pgina, stio, portal e stio promocional Na web existem diversos tipos de stios, de tamanhos e objetivos diferentes. No governo eletrnico a definio do tipo de stio pode determinar, de forma clara, as estratgias de divulgao, estrutura de informao e a escolha do domnio. Pginas A pgina a unidade mnima de informao. Um stio geralmente possui uma pgina inicial, uma institucional e pginas secundrias: servios, informaes, contato, resultados de busca, mapa, entre outras. Stio Contextualizando de forma simplificada, um stio um conjunto de pginas contendo servios e informaes de um dado rgo, empresa ou departamento. Os stios podem ser divididos em: Stio Institucional: contm informaes relativas a um rgo ou entidade especfico. Stio Temtico: contm informaes ou servios relativos a um tema especfico. Portais Quando um stio possui um grande conjunto de informaes, de rgos e departamentos diferentes, muitos servios e outros stios a ele agregados, estaremos falando de portal. Stio Promocional (Hotsite) Se o portal reconhecido pela sua complexidade, o stio promocional (hot-site) reconhecido pela sua efemeridade. Stios promocionais tm um tempo de vida determinado a partir de um objetivo especifico: a divulgao de um novo produto, de um novo projeto ou de uma campanha. 4.4.2 Caractersticas de um bom stio Um stio utilizado por diversas pessoas, com vivncias e conhecimentos diferentes. Um bom stio proporciona a visita do cidado mais agradvel e ajuda a cumprir seu objetivo de maneira transparente. Um stio bem estruturado possui as seguintes caractersticas: 1. Objetivo; 2. Carregamento rpido; 3. Acessibilidade; 4. Navegao; 5. Contato. 4.4.3 Diretrizes Diretrizes so enunciadas com orientaes a serem observadas nas decises do projeto, da concepo do stio estrutura de cada pgina. 1. O foco o cidado;

P g i n a | 26 2. 3. 4. 5. 6. 7. 8. 9. Manter recursos adequados e objetivos definidos; Avaliar constantemente a sua eficcia; Localizao facilitada do stio e de seu contedo; Permitir diversas formas e dispositivos de acesso; No criar stios e portais semelhantes; Respeito aos direitos e aos dados informaes do cidado; Ouvir o cidado e dar-lhe o retorno devido; Oferecer informaes e servios confiveis.

4.4.4 Anlise de Viabilidade Antes do desenvolvimento de um stio necessrio avaliar sua viabilidade, identificando se o stio atender as necessidades do pblico-alvo e agregar valor ao servio a um custo aceitvel, assim como se o rgo ter capacidade de assumir a responsabilidade de gesto do stio. Alguns fatores a serem avaliados: 1. Efetividade: identifique se o stio atender adequadamente a seus objetivos; 2. Custos envolvidos: estime os custos envolvidos (tanto custos para a criao quanto para a manuteno); 3. Modelo de Gesto: Defina as atribuies e responsabilidades na administrao do novo stio. importante lembrar que um stio no deve ser criado/redesenhado se no agregar valor, no suprir as necessidades e desejos da sociedade ou se o rgo no tiver capacidade de mant-lo. 4.4.5 Domnios Um domnio o endereo do stio na internet. a partir dele que as pessoas acessam o stio. O Comit Gestor de Internet (CGI) definiu para os rgos governamentais duas extenses: .gov, para entidades civis, e .mil para organizaes militares. Os stios oficiais da Administrao Pblica brasileira so registrados em domnios-raiz especficos, o que aumenta sua segurana e confiabilidade. Nos stios da administrao federal, a criao de domnios deve observar a Resoluo n 07, de 29 de Julho de 2002. A criao de novos domnios deve ser encaminhada para o Registro.Br, no entanto a aprovao do nome de domnios .gov.br de responsabilidade do Departamento de Governo Eletrnico (DGE), ligado , ligado Secretaria de Logstica e Tecnologia da Informao (SLTI) do Ministrio do Planejamento, Oramento e Gesto (MPOG). A aprovao de domnios .mil.br de responsabilidade do Ministrio da Defesa. 4.4.6 Segurana A segurana do stio e dos sistemas envolvidos tem um impacto significativo na confiabilidade e na imagem do rgo perante o cidado. Os stios oficiais devem garantir a confidencialidade das informaes de carter pessoal armazenadas em suas bases de dados, sejam elas relativas aos usurios ou pessoas que compem a Administrao Pblica, conforme a Constituio Federal, Ttulo II, Captulo I, Art. 5. 4.5 Desenvolvimento

P g i n a | 27 Existem diversos mtodos para o desenvolvimento de um stio. A seguir mostraremos um mtodo baseado no Definition Architecture Design Implementation (DADI) que uma metodologia de desenho de produtos que se adapta ao desenvolvimento de stios. O mtodo est dividido em quatro macro-etapas: 1. Definio: na definio, so realizadas reunies das equipes responsveis e pesquisas independentes. O material coletado analisado para definio do escopo do projeto, define-se tambm o oramento e estima-se o tempo necessrio. 2. Arquitetura: na arquitetura, a equipe de projeto desenvolve a estrutura da informao, deixando claro qual o objetivo do stio. As informaes relevantes so destacadas e o acesso a estas facilitado. 3. Desenho: na fase de desenho, a forma (visual) e a funo (performance), so desenvolvidas de modo a criar um equilbrio entre seus aspectos. O projeto comea a tomar forma, cores e adquirir seus elementos formais de interao: vdeo, imagens, botes e texto. quando a esttica agrega personalidade e identidade ao projeto. 4. Implementao: Essa a fase final do desenvolvimento, quando a equipe sintetiza e converte a informao das etapas anteriores no stio propriamente dito. Ocasionalmente so redesenhadas partes do stio, baseadas no retorno dos testes com o usurio. 4.5.1 Estrutura de informao mnima Todo stio oficial deve possuir uma estrutura de informao mnima, claramente visualizada a partir da pgina inicial. 1. Pgina institucional; 2. Busca; 3. Fale Conosco; 4. Endereo fsico; 5. Servios. Observao: Uma rea de notcias s deve ser criada se o objetivo do stio incluir a divulgao/promoo do rgo ou projeto. Uma seo de notcias exige uma equipe permanente e sua atualizao deve ser constante, praticamente diria. 4.5.2 Testes Os testes com o stio devem ser realizados ao longo de todo o desenvolvimento e depois, quando o sitio j estiver no ar. Podemos dividir os testes em: 1. Testes de interface e contedos: so testes que verificam a conformidade do contedo e da interface das pginas com os padres web e os objetivos do projeto. 2. Testes de funcionalidades: so testes relativos s funcionalidades e servios prestados pelo stio. 3. Testes de segurana: os testes com mecanismos de segurana permitem verificar falas que permitam possveis invases ou outros problemas de confiabilidade. 4. Testes de carga: a carga refere-se capacidade mxima que um servidor tem para atender a um conjunto de requisies simultneas. 4.5.3 Sistemas de gerenciamento de contedo

P g i n a | 28 De acordo com a Resoluo n 7, os rgos da Administrao Pblica Federal devero implementar ferramentas de controle editorial das informaes publicadas. As diretrizes acima apontam para a adoo de um Sistema de Gerenciamento de Contedo - SGC (Content Management Systems - CMS). Um SGC um sistema que integra uma srie de solues para a administrao, manuteno e evoluo de stios. Por automatizarem o processo de gesto e publicao, permitem que usurios no-tcnicos possam criar contedos com maior facilidade. O uso de gerenciadores de contedo oferece muitas vantagens no desenvolvimento, gerenciamento e manuteno de um stio em comparao com a criao manual de pginas. Algumas vantagens de um gerenciador de contedo: 1. Alinhamento com as diretrizes de governo eletrnico; 2. Facilidade no gerenciamento de permisses; 3. Publicao descentralizada; 4. Facilidade e confiabilidade na insero de contedo; 5. Manuteno da rvore de navegao; 6. Ferramentas e extenses; 7. Consistncia visual; 8. Conformidade com os padres web de acessibilidade; 9. Diminuio dos custos de manuteno. 4.6 Manuteno e Evoluo 4.6.1 Plano de manuteno do stio Entende-se por manuteno a execuo de servios rotineiros executados no stio: a resposta s demandas do Fale Conosco, a publicao e atualizao de informaes, a disponibilidade dos servios do stio e a correo de eventuais problemas ou falhas. Manuteno de contedos; Manuteno de Funcionalidades. 4.7 Comunicao e divulgao O sucesso de um stio depende, entre outros fatores, de polticas de comunicao e divulgao adequadas. Para o cidado visitar o stio, ele precisa saber de sua existncia. Para manter o cidado utilizando o stio continuamente, no basta apenas fornecer o servio ou informao, mas ouvir e interagir com o cidado. 4.7.1 Lanamento e divulgao O plano de comunicao do stio e de seu lanamento desenvolvido em paralelo ao desenvolvimento. No entanto, a data do lanamento s pode ser confirmada aps o cumprimento de todas as etapas anteriormente descritas (concepo e desenvolvimento) e da liberao do domnio. Uma vez que todas as etapas de concepo e desenvolvimento tenham sido cumpridas, o rgo est em condies de lanar o stio. Deve-se realizar uma apresentao interna e incorporar o novo stio nas

P g i n a | 29 atividades de divulgao do rgo. Algumas atividades, tanto online, quanto presenciais, devem ser realizadas com o objetivo de divulgar o stio: 1. Criar links com outros stios; 2. Visita guiada; 3. Material de divulgao, publicaes e papelaria do rgo; 4. Divulgao na mdia; 5. Outros tipos de divulgao. 4.7.2 Contato e Fale Conosco Stios so reas de comunicao do rgo, proporcionando meios para que os cidados possam expressar seus pontos de vista e fazer questionamentos. O principal canal dessa comunicao d-se nas sees Fale conosco ou Ajuda, e estas devem estar em lugar privilegiado e claramente demarcado nas pginas do rgo. Dependendo da complexidade do stio, aconselhada a diviso de formulrios e perguntas de acordo com as reas/responsabilidades do stio. importante que o nome da unidade organizacional ou do servidor designado como responsvel pelo atendimento das mensagens recebidas seja informado nos formulrios. 4.7.3 Sistema de busca e metadados Uma das formas mais comuns de acesso a stios por motores de busca. Deve-se testar o acesso s informaes do stio, via sistemas de busca e avaliar a sua colocao. As pessoas geralmente se atm primeira pgina ou aos 10 primeiros resultados. Se o stio em questo no se encontra em alguma dessas posies, possivelmente o nmero de cidados que tero acesso ao stio ser menor. Nesse caso, aconselha-se realizar um estudo para otimizar as informaes do stio voltado para mecanismos de busca (Search Engine Optimization SEO). Para verificar a colocao do sitio nos mecanismos de busca, alguns testes podem ser realizados: Busca pelo nome: do rgo ou projeto. Busca por temas: busca por palavras-chave associadas ao tema do stio. 4.7.4 Outros Outros assuntos que devero merecer ateno durante o desenvolvimento do stio so: 1. Uso de fruns; 2. Mensagens de erro e indisponibilidade; 3. Polticas de privacidade e uso; 4. Licenas. 4.8 Monitoramento do stio A implementao de instrumentos para o monitoramento permite a comprovao da efetividade do stio, assim como serve de instrumento para sua evoluo. A partir dos dados fornecidos pelos sistemas de monitoramento possvel encontrar hiatos no contedo e organizao ou redefinir as reas da pgina inicial. Estatsticas de acesso;

P g i n a | 30 Pesquisas de satisfao e enquetes; Fale Conosco.

5. JOOMLA O Joomla! um poderoso CMS open source que tem crescido em popularidade desde a reformulao do Mambo, em 2006. Suas duas caractersticas-chave facilidade de administrao e flexibilidade de modelagem o que tem elevado a ser usado para potencializar tudo, desde Intranets empresariais at escolas de bairro. Um website Joomla! Tem diversos elementos que trabalham juntos para produzir uma pgina web. Os trs principais elementos so contedo, mdulos e o template. O contedo o aspecto interno do site, o template controla como o site apresentado, e os mdulos adicionam funcionalidades. Um site Joomla! consiste em dois sites: o frontend (pblico) e o backend (administrativo privado). Existem tambm dois tipos de principais de usurios: frontend e backend. Os tipos de usurios frontend manipulam contedo, enquanto tipos de usurios backend so responsveis pelo gerenciamento do site. Extenses Componentes: o maior e mais complexo dos tipos de extenses. Componentes so como miniaplicaes que desenham o corpo principal da pgina. Mdulos: so extenses mais flexveis e leves usadas para renderizar pginas. Plugin: uma das mais avanadas extenses para Joomla!. uma seo de cdigo que roda quando um evento predefinido acontece dentro do Joomla!. Idiomas: so acondicionais como um pacote de linguagem interno ou uma pacote de extenso de idiomas. Eles permitem que o contedo principal do Joomla! E os mdulos e componentes de terceiros sejam internacionalizados. O Joomla! Tem diferentes tipos de usurios. Segue abaixo a lista deles: 1. Registrado: pode logar-se e ver o que o visitante comum no pode. 2. Autor: ele faz tudo que o registrado faz e pode escrever informaes alm de alterar sua informao. 3. Editor: faz tudo que o autor faz e ainda pode escrever e mudar qualquer informao do front-end. 4. Publicador: faz tudo que o editor faz e ainda decide o tempo de vida de alguma informao do site. 5. Gerente: pode criar contedo e ver vrios informaes sobre o sistema. 6. Administrador: faz de tudo menos modificar um usurio para super administrador ou modificar um trabalho do super administrador. 7. Super Administrador: pode executar todas as funes do Joomla!. 6. DJANGO um framework para desenvolvimento rpido para web, escrito em Python, que utiliza o padro MTV (model template view). Tornou-se um projeto de cdigo aberto e foi publicado sob a licena BSD em 2005. Django utiliza o princpio DRY (Dont Repeat Yourserlf), onde faz com que o desenvolvedor aproveite ao mximo o cdigo j feito, evitando repetio.

P g i n a | 31 Principais caractersticas: Mapeamento Objeto-Relacional (ORM): com o ORM do Django voc define a modelagem de dados atravs de classes em Python. Com isso possvel gerar suas tabelas no banco de dados e manipul-las sem necessidade de utilizar SQL (o que tambm possvel). Interface Administrativa: possvel gerar automaticamente uma interface para administrao para os modelos criados atravs do ORM. Formulrios: possvel gerar os formulrios automaticamente atravs dos modelos de dados. URLs Elegantes: no h limitaes para criao de URLs elegantes e de maneira simples. Sistema de Templates: O Django tem um linguagem de templates poderosa, extensvel e amigvel. Com ela voc pode separar design, contedo e cdigo em Python. Sistema de cach: possui um sistema de cach que se integra ao memcached ou em outros frameworks de cach. Internacionalizao: tem total suporte para aplicaes multi-idioma, deixando voc especificar strings de traduo e fornecendo ganchos para funcionalidade especficas do idioma. Django uma framework Python, onde voc no precisa saber muito de Python para utilizar. Na verdade, a simplicidade da escrita do Python mesclada a velocidade de desenvolvimento proporcionada pelo Django faz voc sentir satisfao em encarar projetos grandes. Com certeza a utilizao de modelos como DRY e as declaraes explcitas do Python contribuem para o sucesso da framework. Mas o Django por si uma ferramenta rica e completa, e que atravs da sua arquitetura (MTV) torna muito simples o desenvolvimento de uma aplicao, seja complexa ou no. MTV Model Template View O MTV uma variao do MVC (Model View Controller). No MVC separa-se as regras de negcio (controlador), os dados e mtodos de acessos aos mesmos (modelo) e as regras de apresentao (visualizao). Desse modo, caso ocorra alguma alterao na sua camada de visualizao (digamos que sua aplicao ganhe uma verso mobile), s ters a necessidade de refinar as views, diminuindo assim a incidncia de erros. No caso do Django, h uma variao deste modelo que o MTV. Em Django, o prprio framework o controlador. Entretanto, o controlador no o responsvel pela lgica do negcio e sim pelo funcionamento do seu projeto. Alm de models, views e templates, em Django ns temos tambm urls dispatchers, middlewares e handlers. E esse alm que o Django encara como Controller. Models Em models, escrevemos classes que designaro nossas tabelas no banco de dados e manipulares estas atravs de orientao a objetos (ORM). No necessrio escrever absolutamente nada em SQL, a no ser que realmente seja necessrio, e no h necessidade de se preocupar com que banco vai usar j que o ORM do Django suporta MySQL, PostgreSQL, SQLite e at Oracle. Em models tambm escrevemos regras de acesso s informaes (Managers), regras para os eventos de cada modelo (mtodos save, delete, __init__, etc), e tambm regras genricas para eventos que podem ser

P g i n a | 32 usados em mais de um modelo. Toda a lgica de manipulao da informao de uma aplicao estar em seu Model. Views Em views escrevemos as regras de apresentao. Estamos falando em criar funes que tm por parmetro um objeto de requisio (request) e por um retorno de resposta (response). O que muita gente entende por regras de negcio do sistema est escrito na View. nela que dizemos qual modelo deve ser instanciado, o que ele deve fazer, qual template deve ser importado, como o valor deve ser exibido nele e qual resposta deve ser enviada para o internauta (um HTML, um XML, um SVG, etc). Templates Podemos escrever templates em HTML, Javascript, CSS, qualquer coisa. Na view voc indica qual ser o tipo de resposta, o template s a forma de apresentar o que a View preparou. Dentro desta estrutura de desenvolvimento, muito fcil separar as funes do webprogrammer e do Webdesigner. O sistema de tamplates do Django possui sintaxe prpria e simples. O programador s se preocupa-se com os dados que ele deve enviar para o template, o designer s preocupa-se com que dados ele ir receber. Projetos, Aplicaes e Plugabilidade Em Django, iniciamos um projeto com a simptica sintaxe em um terminal do seu SO: Django-admin.py startprojetc <nome-do-seu-projeto> Ele criar uma pasta com o nome do seu projeto que conter os arquivos: __init__.py: o arquivo que determina que aquela pasta um pacote Python; settings.py: Arquivos de configuraes em XML? Esquea! Em Django temos a configurao do nosso projeto em um nico arquivo .py; urls.py: Este o temido url dispatcher. Voc passar bons (e maus) momentos com ele; manage.py: O regente da orquestra. atravs dele que voc executar aes como criar uma aplicao, sincronizar o banco de dados, iniciar o servidor web embutido (somente recomendado para ambiente de desenvolvimento), etc. Esse um dos caras que far o seu dia bem melhor com Django. O que deve-se salientar que: Voc no precisa executar o django-admin.py startproject para iniciar um projeto pode-se criar na mo, criando os arquivos e copiando o manage.py da sua instalao do Django. Mas, com uma praticidade dessas passa a ser inevitvel o seu uso. Para iniciarmos uma aplicao, executamos o seguinte comando (dentro da pasta do seu projeto): python manage.py startapp <nome-da-sua-aplicacao> E ser criada uma pasta com o nome da sua aplicao dentro do seu projeto, que conter os seguintes arquivos:

P g i n a | 33 __init__.py: o arquivo que determina que aquela pasta um pacote Python; models.py: Suas entidades do banco de dados devem ser escritas neste arquivo; views.py: Suas views devem ser escritas neste arquivo.

Novamente, voc no precisa executar o manage.py startapp para iniciar uma aplicao, apenas praticidade. Para o Django, um Projeto um conjunto de aplicaes. Na prtica: digamos que voc ir desenvolver um website para o cliente Lanchonete do Z. Ento poderia chamar seu projeto de lanchonete_ze e a partir da desenvolver as aplicaes necessrias para o funcionamento do website. Uma Aplicao uma determinada funcionalidade que compe um projeto. Na prtica: digamos que o website da Lanchonete do Z precise de um sistema de enquetes. Logo, voc criar uma aplicao chamada enquetes e el conter (inicialmente) um model.py e um view.py. Cada aplicao sua ter um Model e um View, voc pode control-la atravs do urls.py do projeto ou atravs do seu prprio urls.py. O conceito de Aplicaes Plugveis em Django bem interessante: uma aplicao pode ser considerada plugvel quando pode ser usada em mais de um projeto com nenhuma ou quase nenhuma alterao de cdigo. Isso quer dizer que a aplicao deve ter seus prprios Models (models.py), suas prprias Views (views.py), seus prprios Templates, seu prprio Controller (urls.py) e encapsular o mximo possvel de cdigo que no se enquadre em um desses elementos. Mas sempre teremos alguma coisa para fazer, como adicionar a aplicao no INSTALLED_APPS do settings.py e adicionar a aplicao no roteamento do urls.py do projeto. 7. MAPEAMENTO OBJETO RELACIONAL Mapeamento objecto-relacional ou objeto-relacional (ou ORM, do ingls: Object-relational mapping) uma tcnica de desenvolvimento utilizada para reduzir a impedncia da programao orientada aos objetos utilizando bancos de dados relacionais. As tabelas do banco de dados so representadas atravs de classes e os registros de cada tabela so representados como instncias das classes correspondentes. Com esta tcnica, o programador no precisa se preocupar com os comandos em linguagem SQL; ele ir usar uma interface de programao simples que faz todo o trabalho de persistncia. No necessria uma correspondncia direta entre as tabelas de dados e as classes do programa. A relao entre as tabelas onde originam os dados e o objeto que os disponibiliza configurada pelo programador, isolando o cdigo do programa das alteraes organizao dos dados nas tabelas do banco de dados. A forma como este mapeamento configurado depende da ferramenta que estamos a usar. Como exemplo, o programador que use Hibernate na linguagem Java pode usar arquivos XML ou o sistema de anotaes que a linguagem providencia. Como existem diferenas conceituais entre o modelo relacional usados pelos bancos de dados e a orientao a objetos, acabou surgindo a tcnica de mapeamento objeto-relacional (ORM). Esta tcnica sugere como devemos persistir o estado de um objeto (atributos, relacionamentos e herana) em tabelas de banco de dados relacional (como Oracle, SQL Server, DB2, MySQL, etc). Diversas plataformas e linguagens promovem esta tcnica atravs de frameworks. Na plataforma Java existe o consagrado

P g i n a | 34 framework Hibernate e agora um padro chamado JPA. J na plataforma .NET tambm podemos encontrar o NHibernate (um porte do Hibernate para .NET), o Microsoft s ObjectSpaces e LINQ, dentre outros. O MOR nada mais que o ato de converso de objetos em memria para dados relacionais, e vice-versa. Em geral, pressupe-se que o modelo de dados j existe, e que temos que adaptar nosso sistema orientado a objetos para trabalhar com este esquema pr-existente.Caso contrrio, a utilizao de bancos O.O. nativos pode ser mais adequada do que a gerao detabelas baseadas no modelo de objetos, em conjunto com mecanismos de MOR, que somente adicionariam uma camada de complexidade desnecessria aplicao. O mapeamento pode ser visto como um processo semelhante ao processo de desenvolvimento de um compilador. A maioria dos compiladores de linguagens de programao convertem um determinado cdigo-fonte em um programa real atravs de trs operaes bsicas. Primeiro efetua-se a anlise lxica do cdigo-fonte, separando as palavras-chave e os tokens da linguagem de forma compreensvel pelo compilador. A seguir, feita a anlise sinttica, que identifica construtores vlidos de linguagem nos grupos de tokens. Finalmente, o gerador de cdigo interpreta estes construtores e gera o cdigo executvel. O processo de mapeamento de um objeto, por exemplo, definido em uma estrutura de documento XML, para uma tabela do banco de dados relacional, segue o mesmo princpio.Inicialmente, analisa-se o cdigo para reconhecer o que caracteriza um atributo e seus respectivos valores. Verifica-se ento se o documento vlido, isto , se o documento est bem formado. Verifica-se tambm se o documento segue a estrutura definida em um esquema ou DTD associado a ele. Aps estas anlises, possvel extrair os dados do documento e determinar a melhor forma de adapt-los em uma estrutura relacional. 8. BANCO DE DADOS 8.1 Diagramas Entidade Relacionamento (DER) O Diagrama Entidade-Relacionamento descreve toda estrutura lgica do banco de dados. possvel constru-lo a partir de um MER, identificando assim a partir de um conceito do mundo real como os dados sero armazenados de fato. O DER tem como nfase os dados e os relacionamentos. Sua representao utiliza os smbolos: Retngulos representam as entidades; Elipses representam os atributos; Losangos representam os relacionamentos entre as entidades; Linhas unem os atributos aos conjuntos de entidades e os conjuntos de entidades aos conjuntos de relacionamentos; Elipses duplas atributos multivalorados.

Na construo de um projeto de banco de dados necessrio saber quais so os objetos e os relacionamentos para elaborar o DER , ou seja, descobrir quais os atributos que compem as tabelas (objetos).

P g i n a | 35 8.2 Normalizao Normalizao de dados o processo formal passo a passo que examina os atributos de uma entidade, com o objetivo de evitar anomalias observadas na incluso, excluso e alterao de registros. Normalmente aps a aplicao das regras de normalizao de dados, algumas tabelas acabam sendo divididas em duas ou mais tabelas, o que no final gera um nmero maior de tabelas do que o originalmente existente. Este processo causa a simplificao dos atributos de uma tabela, colaborando significativamente para a estabilidade do modelo de dados, reduzindo-se consideravelmente as necessidades de manuteno. Objetivos Minimizao de redundncias e inconsistncias; Facilidade de manipulaes do banco de dados; Facilidade de manuteno do sistema de Informao. As formas normais O Processo de normalizao aplica uma srie de regras sobre as tabelas de um banco de dados, para verificar se estas esto corretamente projetadas. Embora existam cinco formas normais (ou regras de normalizao), na prtica usamos um conjunto de trs Formas Normais. Vejamos as trs primeiras formas normais do processo de normalizao de dados: 1. Primeira Forma Normal (1FN) Uma relao estar na Primeira forma normal 1FN, se e somente se todos os domnios bsicos contiverem somente valores atmicos (no contiver grupos repetitivos). Em outras palavras podemos definir que a primeira forma normal no admite repeties ou campos que tenha mais que um valor. Procedimentos: a) Identificar a chave primria da entidade; b) Identificar o grupo repetitivo e remov-lo da entidade; c) Criar uma nova entidade com a chave primria da entidade anterior e o grupo repetitivo. A chave primria da nova entidade ser obtida pela concatenao da chave primria da entidade inicial e a do grupo repetitivo. 2. Segunda Forma Normal (2FN) Uma tabela est na Segunda Forma Normal 2FN se ela estiver na 1FN e todos os atributos no chave forem totalmente dependentes da chave primria (dependente de toda a chave e no apenas de parte dela).

P g i n a | 36 Se o nome do produto j existe na tabela produtos, ento no necessrio que ele exista na tabela de produtos. A segunda forma normal trata destas anomalias e evita que valores fiquem em redundncia no banco de dados. Procedimentos: a) Identificar os atributos que no so funcionalmente dependentes de toda a chave primria; b) Remover da entidade todos esses atributos identificados e criar uma nova entidade com eles. A chave primria da nova entidade ser o atributo do qual os atributos do qual os atributos removidos so funcionalmente dependentes. 3. Terceira Forma Normal (3FN) Uma tabela est na Terceira Forma Normal 3FN se ela estiver na 2FN e se nenhuma coluna no-chave depender de outra coluna no-chave. Na terceira forma normal temos de eliminar aqueles campos que podem ser obtidos pela equao de outros campos da mesma tabela. Procedimentos: a) Identificar todos os atributos que so funcionalmente dependentes de outros atributos no chave; b) Remov-los. A chave primria da nova entidade ser o atributo do qual os atributos removidos so funcionalmente dependentes. 8.3 Linguagem de Definio de Dados - DDL Quando voc cria um banco de dados, ele inicialmente est vazio; antes de comear a consultar e alterar dados preciso definir onde e como as informaes sero gravadas dentro do novo banco; ento voc cria diversas tabelas explicitando o tipo de dados de cada campo, as chaves estrangeiras, os ndices, as regras e etc. Estes comandos de criao e alterao de estrutura so os comandos de DEFINIO dos dados, pois definem como os dados sero armazenados; em ingls so chamados de: Data Definition Language (DDL). Logo, quando falamos em comandos do tipo DDL estamos falando de comandos do tipo: CREATE, ALTER ou DROP; comandos que criam, alteram ou excluem objetos como tabelas, procedures, ndices, relacionamentos e etc. 8.4 Linguagem de Manipulao de Dados - DML Depois que voc criou suas tabelas, definiu relacionamentos, ndices e etc., hora de manipular seus dados; os comandos SQL que MANIPULAM dados so os populares SELECT, INSERT, UPDATE e DELETE. Em ingls esses comandos so chamados de Data Manipulation Language o que explica a abreviao DML.

P g i n a | 37 Obs: Em algumas literaturas o comando SELECT no considerado um comando de manipulao de dados, sendo enquadrado numa outra categoria: DQL, Data Query Language, em portugus: Linguagem de consulta. 8.5 SEGURANA EM BANCO DE DADOS Ameaas ao Banco de Dados As ameaas aos bancos de dados podem resultar na perda ou degradao de alguns ou de todos os objetivos de segurana comumente aceitos: integridade, disponibilidade e confidencialidade. Perda da integridade: refere-se ao requisito de que a informao seja protegida contra modificao imprpria. Perda de disponibilidade: refere-se a tornar os objetos disponveis a um usurio ou a um programa ao qual eles tm direito. Perda de confidencialidade: refere-se a proteo dos dados contra exposio no autorizada. Para proteger os banco de dados contra esses tipos de ameaas, comum implementar quatro tipos de medidas de controle: controle de acesso, controle de inferncia, controle de fluxo e criptografia. Em um sistema de banco de dados multiusurio, o SGDB precisa oferecer tcnicas para permitir que certos usurios ou grupos de usurios acessem partes selecionadas de um banco de dados sem que obtenham acesso ao restante dele. Um SGDB normalmente inclui um subsistema de segurana e autorizao do banco de dados que responsvel por garantir a segurana de partes de um banco de dados contra acesso no autorizado. Agora, comum referir-se a dois tipos de mecanismos de segurana de banco de dados: Mecanismos de segurana discricionrios: estes so usados para conceder privilgios aos usurios. Mecanismos de segurana obrigatrios: estes so usados para impor a segurana multinvel pela classificao de dados e usurios em vrias classes (ou nveis) de segurana e, depois, pela implementao da poltica de segurana da organizao. Medidas de Controle Quatro medidas de controle principais so usadas para fornecer segurana nos banco de dados: Controle de acesso: impede que pessoas no autorizadas acessem o sistema ou partes dele. Esse controle feito criando-se contas do usurio e senhas para controlar o processo de login pelo SGDB. Controle de inferncia: permite que usurios acessem determinado banco de dados, mas com algumas restries. Existem informaes confidenciais e no-confidenciais, e o controle de inferncia disponibiliza apenas as informaes pertinentes de acesso para aquele usurio logado. Controle de fluxo: impede que informaes fluam de modo que alcance usurios no autorizados. Criptografia: usado para proteger dados confidenciais (como nmeros de carto de crditos) que so transmitidos por algum tipo de rede de comunicao. a converso de dados para um formato, chamado texto cifrado, que no pode ser facilmente entendido por pessoas no autorizadas.

P g i n a | 38 Segurana de banco de dados e o DBA O administrador do banco de dados (DBA) a autoridade central para gerenciar um sistema de banco de dados. As responsabilidades do DBA incluem conceder privilgios aos usurios que precisam usar o sistema e classificar os usurios e dados de acordo com a poltica da organizao. O DBA como responsvel pela segurana geral do sistema de banco de dados realiza os seguintes de tipos de aes: 1. Criao de conta; 2. Concesso de privilgio; 3. Revogao de privilgio; 4. Atribuio de nvel de segurana. Injeo de SQL e outros tipos de ataques Injeo de SQL uma das ameaas mais comuns a um sistema de banco de dados. Alguns dos outros ataques a banco de dados, que so muitos freqentes, so: Escalada de privilgios no autorizada; Abuso de privilgio; Negao de servios (DOS Denial Of Service); Autenticao fraca. Mtodos de Injeo de SQL Em um ataque de Injeo de SQL, o atacante injeta uma entrada de cadeia de caracteres pela aplicao, que muda ou manipula a instruo SQL para o proveito do atacante. Um ataque de Injeo de SQL pode prejudicar o banco de dados de vrias maneiras, como na manipulao no autorizada do banco de dados, ou recuperao de dados confidenciais. Segue abaixo alguns tipos de ataque de injeo: Manipulao de SQL: um ataque de manipulao que o tipo mais comum de ataque de injeo, muda um comando SQL na aplicao. Injeo de cdigo: esse tipo de ataque tenta acrescentar instrues SQL ou comandos adicionais a instrues SQL ou comandos adicionais instruo SQL existente, explorando um bug do computador, que causado pelo processamento de dados invlidos. Injeo de chama da funo: nesse tipo de ataque, uma funo do banco de dados ou uma chamada de funo do sistema operacional inserida em uma instruo SQL vulnervel para manipular os dados ou fazer uma chamada do sistema privilegiada. 8.6 CONTROLE DE CONCORRNCIA E TRANSAO O conceito de transao oferece um mecanismo para descrever unidades lgicas de processamento de banco de dados. Os sistemas de processamento de transao so sistemas com grandes bancos de dados e centenas de usurios simultneos que executam transaes de banco de dados. Uma transao um programa em execuo que forma uma unidade lgica de processamento de banco de dados. Ela inclui uma ou mais operaes de acesso ao banco de dados estas podem incluir operaes de insero, excluso, modificao ou recuperao. Uma transao incluiu operaes read_item e write_item para acessar e atualizar o banco de dados.

P g i n a | 39 Vrios problemas podem acontecer quando transaes simultneas so executadas de uma maneira descontrolada. Controle de concorrncia um mtodo usado para garantir que as transaes sejam executadas de uma forma segura e sigam as regras ACID. Os SGBD devem ser capazes de assegurar que nenhuma ao de transaes completadas com sucesso (committed transactions) seja perdida ao desfazer transaes abortadas (rollback). Propriedades ACID de Transaes Vamos revisar aqui rapidamente os conceitos de ACID, que pode ser visto neste artigo. Atomicidade: A execuo de uma transao deve ser atmica, ou todas as aes so executadas, ou nenhuma ; Consistncia: Cada transao executada isoladamente deve preservar a consistncia do banco de dados; Isolamento: Cada transao deve ser isolada dos efeitos da execuo concorrente de outras transaes; Durabilidade: Toda transao que for finalizada de forma bem-sucedida deve persistir seus resultados em banco mesmo na presena de falhas no sistema. 9. PRINCIPAIS SGDBS DO MERCADO 9.1 Postgresql O PostgreSQL o Sistema Gerenciador de Banco de Dados (SGBD) de cdigo aberto (software livre) que possibilitou o desenvolvimento de solues corporativas com uma melhor relao custo x benefcio. Um ponto forte deste SGBD a sua capacidade de tratar grandes volumes de dados com alta performance e escalabilidade, ou seja, a sua arquitetura pode ser continuamente ampliada de acordo com a demanda dos usurios. Exatamente neste contexto, entram as aplicaes na rea de geotecnologias que necessitam de uma infra-estrutura robusta e em contnua expanso. Em estudos realizados em universidades e centros de pesquisa, o PostgreSQL tem apresentado performance, no mnimo, 20% superior aos SGBD's comerciais mais conhecidos. Segue algumas caractersticas: Possui um sofisticado mecanismo de bloqueio (MVCC). Multi-Version Concurrency Control (MVCC) uma tcnica avanada do PostgreSQL que resolve aquele antigo problema de ambientes multiusurios de banco de dados, os LOCKs (bloqueios) que fazem o usurio ficar esperando. O MVCC oferece o isolamento de transaes, alm de garantir que leituras nunca aguardaro escritas e vice-versa. Licenciamento BSD. Esta licena garante total liberdade de uso, alterao, modificao e distribuio do sistema. Ela tambm permite, inclusive, que verses proprietrias e comerciais sejam criadas a partir do sistema licenciado nestes termos. Desta forma, este SGBD's ideal para o desenvolvimento de solues que envolvem segredos comerciais que no podero ser disponibilizados livremente. SGBD Objeto-Relacional (classes e hierarquia). O PostgreSQL est na mesma categoria de outros SGBD's, tais como Oracle, Microsoft SQL Server e IBM DB2, que evoluram da arquitetura de relacional para objeto-relacional, ou seja, implementaram algumas definies de orientao objeto.

P g i n a | 40 Modularidade. Este recurso tem facilitado o trabalho dos desenvolvedores que desejam implementar novas funcionalidades. Um exemplo disso, foi a criao do mdulo PostGIS, contendo inmeras funcionalidades para o desenvolvimento de aplicaes que tratam a geoinformao. Suporte nativo para inmeras plataformas. O PostgreSQL tem uma verso nativa para a plataforma Windows sem precisar de uma camada de emulao, bem como para diversas outras plataformas: Linux, Unix, Mac, etc. Inmeras interfaces nativas. O PostgreSQL pode ser acessado atravs das seguintes interfaces: ODBC, JDBC, C, C++, PHP, Perl, TCL, ECPG, Python e Ruby. Neste quesito, o PostgreSQL supera todos os demais SGBD's, pois nenhum outro possui tanta flexibilidade. Pontos de Salvamento (Savepoints). Esse recurso do padro SQL permite que apenas partes especficas de uma transao sejam canceladas sem abortar a operao inteira. Isto beneficia desenvolvedores de aplicaes que precisam de transaes complexas com tratamento de erro. Recuperao a partir dos logs de transao (Point in Time Recovery). possvel a recuperao total dos dados a partir dos logs gerados automaticamente a cada transao. Isto fornece uma alternativa muito esperada s cpias de segurana de hora em hora ou dirias para servios de dados crticos. Tablespaces. Recurso crucial para os administradores de sistemas com vrios gigabytes de data warehousing, as "tablespaces" permitem a alocao de grandes tabelas e ndices nos seus prprios discos ou conjuntos de discos, aumentando assim a performance das consultas.

9.2 MySQL O MySQL um sistema de gerenciamento de banco de dados (SGBD), que utiliza a linguagem SQL (Linguagem de Consulta Estruturada, do ingls Structured Query Language) como interface. atualmente um dos bancos de dados mais populares, com mais de 10 milhes de instalaes pelo mundo. Caractersticas Portabilidade (suporta praticamente qualquer plataforma atual); Compatibilidade (existem drivers ODBC, JDBC e .NET e mdulos de interface para diversas linguagens de programao, como Delphi, Java, C/C++, C#, Visual Basic, Python, Perl, PHP, ASP e Ruby) Excelente desempenho e estabilidade; Pouco exigente quanto a recursos de hardware; Facilidade de uso; um Software Livre com base na GPL (entretanto, se o programa que acessar o Mysql no for GPL, uma licena comercial dever ser adquirida)[6]; Contempla a utilizao de vrios Storage Engines como MyISAM, InnoDB, Falcon, BDB, Archive, Federated, CSV, Solid Suporta controle transacional; Suporta Triggers; Suporta Cursors (Non-Scrollable e Non-Updatable); Suporta Stored Procedures e Functions; Replicao facilmente configurvel; Interfaces grficas (MySQL Toolkit) de fcil utilizao cedidos pela MySQL Inc.

P g i n a | 41 9.3 SQL Server O SQL Server (o enfoque ser sobre a verso 2000) um SGBD - Sistema Gerenciador de Banco de dados da Microsoft (originalmente o projeto do SQL Server foi desenvolvimento pela Sybase) que pode ser instalado no Windows NT/2000 e Win9x e que possui as seguintes caractersticas : fcil de usar (se comparado com outros SGBD); Oferece escalabilidade , ou seja, voc pode comear desenvolvendo para um desktop e migrar para sistemas de multiprocessamento sem traumas.(bem com poucos traumas...); Implementa o data warehouse , atravs do Analysis Services.(antes somente disponivel no Oracle e demais SGBD); relativamente barato ( se comparado com outros SGBD). Geralmente dizemos que o SQL Server um SGBD cliente/Servidor pois comporta diferentes tipos de plataformas e possui funcionalidades divididas entre clientes e servidores , onde o cliente fornece uma ou mais interfaces que sero usadas para requerer uma solicitao ao servidor(SGBD) ; este por sua vez , processa a solicitao e devolve o resultado ao cliente. O SQL Server possui uma linguagem relacional chamada de Transact-SQL que um dialeto da linguagem SQL - Structured Query Language. A principal caracterstica da linguagem SQL ter sido projetada para trabalhar com conjuntos de registros de dados , enquanto que as linguagens tradicionais (C++, VB , Delphi,..) podem tratar apenas um registro por vez. Alm disto a SQL no procedural , ou seja , a SQL no precisa descrever em detalhes como realizar uma tarefa , ela apenas descreve o que o usurio final deseja. A SQL se divide em dois subconjuntos de linguagem : 1. A linguagem de Definio de Dados DDL: que usa instrues para descrever o esquema dsa tabelas do banco de dados 2. A linguagem de Manipulao de Dados DML: que usa instrues para manipular os dados. 10. GERENCIAMENTO DE PROJETOS 10.1 SCRUM O Scrum um processo de desenvolvimento iterativo e incremental para gerenciamento de projetos e desenvolvimento gil de software. Apesar de a palavra no ser um acrnimo, algumas empresas que implementam o processo a soletram com letras maisculas como SCRUM. Isto pode ser devido aos primeiros artigos de Ken Schwaber, que capitalizava SCRUM no ttulo. Scrum no um processo prescribente, ou seja, ele no descreve o que fazer em cada situao. Ele usado para trabalhos complexos nos quais impossvel predizer tudo o que ir ocorrer. Apesar de Scrum ter sido destinado para gerenciamento de projetos de software, ele pode ser utilizado em equipes de manuteno de software ou como uma abordagem geral de gerenciamento de projetos/programas.

P g i n a | 42 Caractersticas: - um mtodo de desenvolvimento de sistema de software gil; - um processo para construir software incrementalmente em ambientes complexos, onde os requisitos no so to claros ou mudam com muita freqncia. - perplexo e paradoxal processo para gerenciamento de projetos complexos, porm, um mtodo incrivelmente simples. Ele no um processo prescritivo, tambm no descreve o que fazer em cada circunstncia. Ele usado para trabalhos complexos nos quais impossvel predizer tudo que ir ocorrer durante o desenvolvimento do sistema de software. - Permite manter o foco na entrega de maior valor de negcio e no menor tempo possvel. Com isso, permite-se a rpida e contnua inspeo do sistema em produo, em intervalos de duas a quatro semanas conhecidos como sprints. Esse mtodo dividido sucintamente em trs papeis: a) Product Owner: o representante de todos envolvidos e responsvel por listar as prioridades e os requisitos. Juntamente com outros envolvidos, ele o responsvel por revisar e aprovar as entregas ao final de cada sprint. b) Scrum Master: o gerente do projeto, responsvel por garantir a aplicao das prticas e valores do Scrum, assim como repassar os ensinamentos do mtodo aos outros momentos do projeto. As suas principais responsabilidades so remover os obstculos, conduzir o daily scrum, revisar cada sprint, intermediar a comunicao entre o time e o product owner, etc. c) Scrum Team: correspondem aos membros encarregados de realizar as atividades do projeto. Suas principais atividades so organizar e gerenciar suas prprias atividades e geralmente so dedicados integralmente ao projeto. Alguns novos artefatos em relao s metodologias anteriores: a) Product Backlog: Corresponde a lista de requisitos e atividades do projeto que foram priorizados pelo product owner e possuem tempo estimado de entrega. Normalmente as estimativas so em dias, sendo que para casos mais prioritrios os prazos so mais precisos. Os requisitos podem sofrer mudanas de acordo com a necessidade do projeto e qualquer membro do time pode alterar os itens com a autorizao do product owner. Podem ser requisitos funcionais ou no-funcionais, sendo que os itens so selecionados para o prximo sprint de acordo com a prioridade. Tambm podem ser atualizados pelo product owner a qualquer momento, que detm a responsabilidade desse artefato; b) Release Burndown: considerado o principal grfico de controle do Scrum e representa o trabalho restante dentro do sprint de uma verso do sistema que ser entregue. No exemplo mostrado na FIG. 7, o eixo horizontal do grfico exibe as iteraes e o eixo vertical a quantidade de trabalho restante. Esse tipo de grfico funciona bem em muitas situaes e com diversas equipes, porm, em projetos com muitas mudanas de requisitos, talvez tal grfico no seja adequado;

P g i n a | 43

c) Taskboard: um grande painel que possibilita colocar vrias informaes relevantes para o acompanhamento do sprint. Como pode ser visualizado na FIG. 8, o product backlog (Story), as atividades do sprint juntamente com o seu estado (To Do (Para fazer), In Process (Em Desenvolvimento), To Verify (Para verificar), Done (Realizado)) ficam sempre visveis e disponveis para todos os interessados no desenvolvimento do projeto. Geralmente, o painel desenhado e colocado em uma parede, sendo que as atividades so descritas em post-its.

No grfico da FIG. 9 exibida uma introduo do que essencial para o desenvolvimento utilizando o mtodo Scrum. esquerda, representado o product backlog, que priorizado pelo product owner e contm todos os requisitos necessrios para o desenvolvimento do ciclo atual. As semanas do sprint esto representadas no maior crculo.

P g i n a | 44 No incio de cada sprint, a equipe seleciona uma quantidade de trabalho a partir do product backlog e se compromete a concluir o trabalho durante o sprint. No final de cada sprint, a equipe produz uma verso do sistema de software potencialmente utilizvel. Todo dia, os membros da equipe se renem para discutir os progressos e eventuais entraves para concluso do trabalho. Isso conhecido como daily scrum e exibido no menor crculo da FIG. 9. 10.2 XP Programao extrema (do ingls eXtreme Programming), ou simplesmente XP, uma metodologia gil para equipes pequenas e mdias e que iro desenvolver software com requisitos vagos e em constante mudana. Para isso, adota a estratgia de constante acompanhamento e realizao de vrios pequenos ajustes durante o desenvolvimento de software. Os cinco valores fundamentais da metodologia XP so: comunicao, simplicidade, feedback, coragem e respeito. A partir desses valores, possui como princpios bsicos: feedback rpido, presumir simplicidade, mudanas incrementais, abraar mudanas e trabalho de qualidade. Dentre as variveis de controle em projetos (custo, tempo, qualidade e escopo), h um foco explcito em escopo. Para isso, recomenda-se a priorizao de funcionalidades que representem maior valor possvel para o negcio. Desta forma, caso seja necessrio a diminuio de escopo, as funcionalidades menos valiosas sero adiadas ou canceladas. A XP incentiva o controle da qualidade como varivel do projeto, pois o pequeno ganho de curto prazo na produtividade, ao diminuir qualidade, no compensado por perdas (ou at impedimentos) a mdio e longo prazo. um processo de desenvolvimento gil. Uma das principais diferenas dessa metodologia em relao as outras so: feedback constante, incentivo a comunicao entre as pessoas e abordagem incremental. Foca no desenvolvimento rpido do sistema de software e procura garantir a satisfao do contratante, alm de ainda favorecer o cumprimento das estimativas. Os quatro princpios chaves dessa metodologia, os papeis e as responsabilidades e as principais prticas esto listadas a seguir. a) Comunicao: Muitos problemas que ocorrem no decorrer do desenvolvimento do sistema de software podem ser relacionados como falhas de comunicao entre a equipe de desenvolvimento e o contratante ou entre a prpria equipe de desenvolvimento. Um indivduo pode deixar de comunicar um fato importante outra pessoa, um desenvolvedor pode deixar de levantar uma questo importante equipe ou ao prprio cliente. O Extreme Programming mantm o fluxo de comunicao atravs da utilizao de algumas prticas que no podem ser desenvolvidas sem comunicao. Alguns exemplos so: programao em pares (prtica descrita a seguir), testes de unidade e estimativa de esforo de cada ao; b) Simplicidade: Sempre deve-se selecionar a alternativa mais simples que tem uma probabilidade de funcionar. O Extreme Programing baseia-se no fato de que menos custoso fazer algo mais simples e alter-lo conforme as necessidades que surgirem do que tentar prever as possveis alteraes futuras, introduzindo uma complexidade que pode no ser necessria no futuro;

P g i n a | 45 c) Feedback: Todos os problemas devem ser evidenciados o quanto antes para que possa ser corrigido o mais cedo possvel. Para que possa ser incorporada de forma rpida ao sistema de software que est sendo construdo, todas as necessidades so descobertas o quanto antes; d) Coragem: Para apontar um problema no sistema de software preciso coragem, para simplificar um cdigo que j foi testado e aprovado, para solicitar ajuda quando for necessrio, para comunicar ao cliente possveis alteraes nos prazos estimados para entrega de verses e tambm para realizar alteraes no processo de desenvolvimento do sistema. Os papis e responsabilidades do Extreme Programming esto descritos a seguir: a) Gestor: o elemento responsvel pela tomada de decises. Para desempenhar o seu papel, o gestor comunica-se a equipe do projeto para identificar qualquer dificuldade, deficincia no processo ou algum outro tipo de impedimento, alm de determinar tambm qual a situao atual do projeto; b) Consultor: um elemento externo equipe e possui conhecimento tcnico especfico necessrio para o projeto em questo. O consultor tambm ajuda a equipe a resolver problemas especficos; c) Desenvolvedor: Codifica programas, organiza testes e mantm o cdigo fonte o mais simples e coeso possvel. Uma caracterstica essencial que o desenvolvedor deve possuir a habilidade de comunicao e coordenao com os outros elementos da equipe; d) Cliente: responsvel por escrever as estrias e os testes dos requisitos funcionais, alm de selecionar e validar os requisitos do sistema. ele quem define a prioridade de implementao para cada requisito; e) Testador: o elemento responsvel por auxiliar o cliente a escrever os testes dos requisitos funcionais. Ele tambm executa os testes dos requisitos periodicamente e comunica o resultado desses testes para o restante da equipe; f) Monitor: Acompanha a conformidade das estimativas realizadas pela equipe de desenvolvimento do sistema, como estimativas de esforo, e informa o quanto precisas so tais estimativas, com o intuito de melhorar as futuras estimativas. O monitor tambm acompanha o progresso de cada iterao e responsvel por avaliar se o objetivo vivel de acordo com as limitaes de recursos e tempo, alm de verificar se alguma mudana pode ser necessria no processo; g) Treinador: o elemento responsvel por garantir a integridade do processo como um todo. Geralmente, uma pessoa que detm uma longa experincia em Extreme Programming designada para esse papel, devido ao fato que ele o guia para todos os elementos do projeto executarem o processo de forma adequada. As doze prticas do Extreme Programming esto listadas a seguir: a) Padro na codificao: Os desenvolvedores devem escrever todo o cdigo fonte alinhado as regras que enfatizam a comunicao durante a codificao. Esse padro definido antes de iniciar o projeto e deve ser seguido por toda a equipe de desenvolvimento; b) Semanas de quarenta horas: O Extreme Programming possui uma regra, para cada elemento da equipe, que limita em quarenta horas o tempo total que deve-se trabalhar em uma semana; c) Cliente no mesmo local da equipe: Um usurio que responda pelo cliente deve integrar-se a equipe de desenvolvedores do sistema, disponvel preferencialmente em tempo integral para responder as possveis dvidas dos elementos do projeto;

P g i n a | 46 d) Integrao contnua: So geradas verses internas e o sistema integrado quantas vezes ao dia for preciso, aps uma estria ser finalizada; e) Propriedade coletiva: Os desenvolvedores da equipe possuem a permisso de alterar parte do cdigo fonte em qualquer lugar do sistema e a qualquer momento; f) Programao em pares: Dois desenvolvedores codificam o sistema em um mesmo computador. Geralmente, um responsvel por codificar enquanto o outro fica responsvel por procurar erros; g) Jogo de planejamento: Os desenvolvedores do sistema e o cliente entram em comum acordo para definirem o esforo necessrio para implementar as estrias e a durao das iteraes. Sendo que o cliente decide o escopo que ser executado na iterao; h) Incrementos curtos: Um incremento funcional e simples qualquer gerado rapidamente com durao mxima de dois meses. Isso feito para ter um retorno por parte do cliente em tempo hbil e poder incorporar correes e mudanas do sistema que est sendo desenvolvido; i) Metfora: Nessa prtica elabora uma descrio que permite todos os envolvidos no projeto explicarem como o sistema funciona. A prtica da metfora de grande ajuda para os envolvidos compreenderem os elementos bsicos do sistema bem como os seus relacionamentos, gerando um vocabulrio comum para os envolvidos. Ela tambm sugere uma estrutura de como o problema e a soluo podem ser vislumbrados do sistema que est sendo criado; j) Projeto simples: Essa prtica solicita que o sistema deve ser projetado da forma mais simples possvel, respeitando as necessidades atuais do projeto. As complexidades irrelevantes devem ser removidas quando descobertas; k) Testes: Os testes funcionais so escritos pelo cliente, enquanto que os testes de unidade so escritos pela equipe do projeto e executados continuamente; l) Reestruturao: Consiste na melhoria contnua do sistema. So realizadas atividades como remoo de cdigos fontes duplicados, melhorias na comunicao, simplificaes no processo, etc. 10.3 SCRUM versus XP A metodologia SCRUM possui como objetivo fornecer um processo conveniente para o desenvolvimento orientado a objetos. Possui uma abordagem emprica e utiliza idias da teoria de controle de processos da indstria para o desenvolvimento de sistemas de software. A metodologia Extreme Programming XP aplicada com maior relevncia em projetos curtos e com equipes de trabalho co-localizadas. Ela apresenta uma viso parecida sobre as devidas prticas necessrias no desenvolvimento de um sistema e a obteno de qualidade. Scrum e XP so complementares pois SCRUM prov tticas geis de gerenciamento enquanto XP prov prticas integradas de software. Pode-se dizer que as duas metodologias se completam. O Extreme Programming uma metodologia centralizada em equipes pequenas e mdias, que trabalha geralmente em ciclos com durao de uma semana e so mais indicados para projetos de curta durao, enquanto o Scrum trabalha com ciclos variando de duas a quatro semanas, e adequado para projetos de grande porte e que demandam maior tempo para serem construdos. O Scrum prope-se a obter resultados de forma prtica em um perodo mais reduzido do que as empresas desenvolvedoras de software estavam habituadas, retirando o foco dos processos e preocupando-se

P g i n a | 47 primeiro com o produto. Dessa forma, o Scrum modificou as atividades executadas nos antigos processos e o modo como a equipe de desenvolvimento e at o cliente realizavam suas atividades. Isso se aplica tambm ao Extreme Programming. Conforme apresentado por Cockburn (2001), existem algumas caractersticas que fazem parte de muitas metodologias geis, como o Scrum ou o Extreme Programming, e geralmente so usadas durante a fase de implementao do software independente da metodologia gil escolhida. a) Colaborao: Em ambas as metodologias, o cliente est mais prximo da equipe de desenvolvimento do software e acompanha regularmente a evoluo do projeto. Com esse contato constante, ganha-se agilidade na comunicao e na aceitao do cliente em relao ao produto que est desenvolvido. Devido a essa melhora na comunicao, torna-se mais apurada a viso dos envolvidos no acompanhamento do projeto, evitando assim, principalmente problemas durante a entrega do software. As prioridades, a definio do escopo e outras caractersticas de implementao so negociadas com maior clareza e praticidade; b) Estimativas: As duas metodologias geis analisadas calculam as estimativas com transparncia e comunicao, admitindo que existe uma incerteza no valor estimado para cada poro do software e deixa isso evidenciado para o contratante e a equipe terem conhecimento da dificuldade em implementar cada tarefa. Quanto maior for o prazo estimado para entrega, maior ser o valor de incerteza associado, mas com o decorrer do tempo e o aumento do conhecimento sobre o incremento, podem ser refeitas as estimativas e o valor de incerteza diminudo; c) Desenvolvimento Iterativo: Essas metodologias desenvolvem o software em ciclos, ou iteraes, com o objetivo de produzir e tambm de integrar cada parte do software. Enquanto que no Scrum o ciclo pode durar de duas a quatro semanas, no Extreme Programming os ciclos geralmente so semanais, dependendo do projeto que est sendo desenvolvido. Assim, pode-se dizer que o software torna-se flexvel em aceitar mudanas de requisitos ou de prioridades na fase de desenvolvimento. Ao fim de cada iterao, um software encontra-se disponvel para testes e validao do cliente, redirecionando o que falta ser implementado; d) Desenvolvimento Incremental: No decorrer das iteraes nas duas metodologias geis analisadas, o software preparado para receber incrementos de negcio, sejam novas funcionalidades ou alteraes das que j esto sendo desenvolvidas. As funcionalidades podem ser desenvolvidas inteiramente e entregues no fim da interao, ou tambm podem ser criadas algumas partes do requisito e entregues separadamente no fim das prximas iteraes; e) Testes: Diferentemente das metodologias tradicionais que reconhecem as etapas de implementao e testes como etapas totalmente distintas, no Scrum e no Extreme Programming essas etapas so executadas muitas vezes de forma paralela, com o desenvolvedor criando o cdigo fonte e tambm testando, alm de planejar os relatrios de testes. Segundo Boehm (2006), a execuo dos testes desde o incio da implementao, facilita na identificao dos erros e reduz o gasto com o desenvolvimento do software como um todo, quanto mais tarde for encontrado o erro, menor o custo da manuteno, sendo que o valor pode ser cem vezes maior do que se tivesse sido corrigido durante as fases iniciais, devido a esse fato, tanto no Scrum quanto no Extreme Programming, extremamente recomendvel que os testes sejam executados o mais cedo possvel.

P g i n a | 48 Uma das principais caractersticas do Scrum e do Extreme Programming que devido ao processo emprico adotado, ambas so adaptativas ao invs de serem preditivas. Logo, elas absorvem facilmente as mudanas originadas no desenvolvimento do projeto, ao invs de tentar analisar primeiro as consequncias. O Extreme Programming mais adequado para ser usado em sistemas no qual o cliente ainda no se decidiu totalmente sobre o que precisa, alm de mudar de opinio com elevada frequncia no decorrer da implementao do software. Com a prtica de feedback aplicada nessa metodologia gil por exemplo, fica mais fcil alterar com rapidez o que for necessrio para contemplar as necessidades do cliente. Outra caracterstica positiva so as entregas frequentes do software em partes utilizveis, assim o cliente tem a possibilidade de visualizar o sistema funcionando mais cedo. 11. MODELO DE ACESSIBILIDADE DE GOVERNO ELETRNICO - e-MAG 11.1 Introduo O Modelo de Acessibilidade do Governo Eletrnico (e-MAG), consiste em um conjunto de recomendaes a ser considerado para que o processo de acessibilidade dos stios e portais do governo brasileiro conduzido de forma padronizada e de fcil implementao. Foi formulado para orientar profissionais que tenham contato com publicao de informaes ou servios na Internet a desenvolver, alterar e/ou adequar pginas, stios e portais, tornando-os acessveis ao maior nmero de pessoas possvel. 11.1.1 O acesso de pessoas com deficincia O computador e a internet representam um enorme passo para a incluso de pessoas com deficincia, promovendo autonomia e independncia. No que se refere a acesso ao computador, as quatro principais situaes vivenciadas por usurios com deficincia so: Acesso ao computador sem mouse; Acesso ao computador sem teclado; Acesso ao computador sem monitor; Acesso ao computador sem udio. Dentro desse contexto, este documento objetiva garantir que o processo de acessibilidade dos stios do governo brasileiro seja conduzido de forma padronizada, de fcil implementao, coerente com as necessidades brasileiras e em conformidade com os padres internacionais. 11.1.2 O processo para desenvolver um stio acessvel A acessibilidade Web refere-se a garantir acesso a qualquer pessoa, independente das condies fsicas, dos meios tcnicos ou dispositivos utilizados. O processo para desenvolver um stio acessvel realizado em trs passos: 1. Seguir os padres Web; 2. Seguir as diretrizes ou recomendaes de acessibilidade; 3. Realizar a avaliao de acessibilidade.

P g i n a | 49 Primeiro passo: Padres Web Para se criar um ambiente online efetivamente acessvel necessrio, primeiramente, que o cdigo esteja dentro dos padres Web internacionais definidos pela W3C. Os padres Web do W3C, ou Web Standards, so um conjunto de recomendaes que visa padronizar o contedo Web, possibilitando melhoras prticas no desenvolvimento de pginas da Web. A conformidade com os padres Web permite que qualquer sistema de acesso informao interprete a mesma adequadamente e da mesma forma, seja por meio de navegadores, leitores de tela, dispositivos mveis, ou agentes de software. Segundo passo: Diretrizes ou Recomendaes de Acessibilidade As diretrizes ou recomendaes de acessibilidade explicam como tornar o contedo Web acessvel a todas as pessoas, destinando-se aos criadores de contedo Web e aos programadores de ferramentas para criao de contedo. Em nvel nacional, o e-MAG o documento que contm as diretrizes ou recomendaes que norteiam o desenvolvimento de stios e portais acessveis. Terceiro passo: Avaliao de Acessibilidade Aps a construo do ambiente online de acordo com os padres Web e as diretrizes de acessibilidade, necessrio test-lo para garantir sua acessibilidade. A validao manual necessria porque nem todos os problemas de acessibilidade em um stio so detectados mecanicamente pelos validadores. Para a validao manual, so utilizados checklists de validao humana. 11.2 Recomendaes de acessibilidade Os padres de acessibilidade compreendem recomendaes ou diretrizes que visam tornar o contedo Web acessvel a todas as pessoas, inclusive s pessoas com deficincia, destinando-se aos autores de pginas, projetistas de stios e aos desenvolvedores de ferramentas para criao de contedo. As recomendaes de acessibilidade deste documento no esto divididas por nveis de prioridade, j que elas so de grande importncia e devem ser seguidas. Dessa forma optou-se por classificar as recomendaes nas seguintes sees: Marcao Comportamento (DOM) Contedo/Informao Apresentao/Design Multimdia Formulrio

P g i n a | 50 11.2.1 Marcao Recomendao 01: Respeitar os padres de desenvolvimento Web essencial seguir os padres de desenvolvimento Web, do W3C, com o intuito de maximizar a compatibilidade com atuais e futuros agentes de usurio. Dicas: 1. preciso declarar o DOCTYPE correto da pgina de qualquer documento HTML ou XHTML. O DOCTYPE define qual verso do (X)HTML o documento est usando e esta um informao fundamental para que os agentes de usurio processem corretamente o documento. Alm disse por meio do DOCTYPE que as ferramentas de validao analisam o cdigo da pgina e indicam correes. 2. As camadas lgicas devero ser separadas, de acordo com o objetivo para o qual elas foram desenvolvidas. Assim, para a camada de contedo devem ser utilizadas as linguagens de marcao, como HTML e XHTML. Recomendao 02: Organizar o cdigo HTML de forma lgica e semntica O cdigo HTML deve ser organizado de forma lgica e semntica, ou seja, apresentado os elementos em uma ordem compreensvel e correspondendo ao contedo desejado. Recomendao 03: Utilizar corretamente os nveis de cabealho Os nveis de cabealho devem ser utilizados de forma lgica e semntica para facilitar a leitura e compreenso. Alm disse, pessoas acessando uma pgina com leitor de tela podem navegar atravs dos cabealhos, pulando de um para outro, agilizando, assim a navegao. Recomendao 04: Ordenar de forma lgica e intuitiva a leitura e tabulao Deve-se criar o cdigo HTML com uma seqncia lgica de leitura para percorrer links, controles de formulrios e objetos. Essa seqncia determinada pela ordem que se encontra no cdigo HTML. Recomendao 05: Disponibilizar todas as funes da pgina via teclado Todas as funes da pgina desenvolvidas utilizando-se linguagens de script (javascript) devero estar disponveis quando for utilizado apenas o teclado. importante salientar que o foco no dever estar bloqueado ou fixado em um elemento da pgina, para que o usurio possa mover-se pelo teclado por todos os elementos. Recomendao 06: Fornecer ncoras para ir direito a um bloco de contedo Devem ser fornecidas ncoras, disponveis na barra de acessibilidade, que apontem para links relevantes presentes na mesma pgina. Assim, possvel ir ao bloco de contedo desejado. Os links devem ser colocados em lugares estratgicos da pgina, como por exemplo, no inicio e final do menu, do contedo, etc.

P g i n a | 51 Recomendao 07: No utilizar tabelas para diagramao As tabelas devem ser utilizadas apenas para dados tabulares e no para efeitos de disposio dos elementos na pgina. Para este fim, utilize as folhas de estilo. Recomendao 08: Separar links adjacentes Links adjacentes devem ser separados por mais do que simples espaos, para que no fiquem confusos, em especial para usurios que utilizam leitor de tela. Recomendao 09: No abrir novas instncias sem a solicitao o usurio A deciso de se utilizar-se de novas instncias por exemplo abas ou janelas para acesso a pginas e servios ou qualquer informao do cidado. Assim, no devem ser utilizados: Pop-ups; A abertura de novas abas ou janelas; O uso do atributo target = _blank; Mudanas no controle do foco do teclado; Entre outras, que no tenham sido solicitadas pelo usurio. 11.3 Comportamento (DOM) Recomendao 10: Garantir que os objetos programveis sejam acessveis Deve-se garantir que scripts, flash, contedos dinmicos e outros elementos programveis sem acessveis. Se no for possvel que o elemento programvel seja diretamente acessvel, deve ser fornecida uma alternativa em HTML para o contedo. Assim, preciso garantir que o contedo e as funcionalidades de objetos programveis sejam acessveis aos recursos de tecnologia assistiva e que seja possvel a navegao por teclado. Recomendao 11: No criar pginas com atualizao automtica peridica No devem ser criadas pginas com atualizao automtica peridica. Assim, no deve ser utilizada a meta tag refresh, nem outra forma de atualizao automtica. Pginas que se atualizam automaticamente podem confundir e desorientar os usurios, especialmente usurios que utilizam leitores de tela. Obs.: Em pginas onde o limite de tempo absolutamente necessrio, o usurio dever ser informado que a pgina atualizada automaticamente. Recomendao 12: No utilizar redirecionamento automtico de pginas No devem ser utilizadas marcaes para redirecionar para uma nova pgina, como a meta tag refresh. Ao invs disso, deve-se configurar o servidor para que o redirecionamento seja transparente para o usurio. Recomendao 13: Fornecer alternativa para modificar limite de tempo

P g i n a | 52 Em uma pgina onde h limite de tempo para realizar uma tarefa deve haver a opo de desligar, ajustar ou prolongar esse limite. Recomendao 14: No incluir situaes com intermitncia de tela No devem ser utilizados efeitos visuais piscantes, intermitentes ou cintilantes. Recomendao 15: Assegurar o controle do usurio sobre as alteraes temporais do contedo Contedos que se movem, rolagens, movimentaes em geral ou animaes no devem ser disparadas automaticamente sem o controle do usurio, mesmo em propagandas na pgina. 11.4 Contedo e Informao Recomendao 16: Identificar o idioma principal da pgina Deve-se identificar o principal idioma utilizado nos documentos. A identificao feita por meio do atributo Lang HTML e, para documentos XHTML, utilizado o XML:lang. Recomendao 17: Oferecer um ttulo descritivo e informativo pgina O ttulo da pgina deve ser descritivo e informativo, j que essa informao ser a primeira lida pelo leitor de tela, quando o usurio acessar a pgina. O ttulo informado pela tag <title>. Recomendao 18: Disponibilizar informao sobre a localizao do usurio na pgina. Dever ser fornecido um mecanismo que permita ao usurio orientar-se dentro de um conjunto de pginas, permitindo que ele saiba onde est no momento. Assim, poder ser utilizado o recurso de migalha de po (breadcrumbs), que so links navegveis em forma de lista hierrquica e permitem que o usurio saiba qual o caminho percorrido at chegar pgina em que se encontra no momento. Recomendao 19: Descrever links clara e sucintamente Deve-se identificar claramente o destino de cada link, informando, inclusive, se o link remete a outro stio. Alm disso, preciso que o texto do link faa sentido mesmo quando isolado do contexto da pgina. Obs: No recomendada a utilizao de links do tipo clique aqui pois esta expresso no faz sentido fora do contexto. Muitos usurios de leitores de tela navegam por links, tornando descries como Clique aqui, Veja mais insuficientes para o usurio saber o destino do link, ou localiz-lo na pgina. Evitar essas expresses para evitar verborragia, ou seja, evitar que o leitor de tela leia para o usurio palavras ou frases desnecessrias. Recomendao 20: Fornecer alternativa em texto para as imagens do stio Deve ser fornecida uma descrio para as imagens da pgina, utilizando-se o atributo alt. Imagens que no transmitem contedo, ou seja, imagens decorativas, devem ser inseridas por CSS.

P g i n a | 53

Recomendao 21: Fornecer alternativa em texto para as zonas ativas de mapa de imagem Para mapas de imagem do lado do cliente, devem ser fornecidas descries atravs do atributo alt para cada uma das zonas ativas, ou seja, para cada um dos links que receber o foco. Recomendao 22: Disponibilizar documentos em formatos acessveis Os documentos devem ser disponibilizados preferencialmente em HTML. Tambm podem ser utilizados arquivos para download no formato ODF, tomando-se os cuidados para que sejam acessveis. Se um arquivo for disponibilizado em PDF, dever ser fornecida uma alternativa em HTML ou ODF. necessrio, tambm, informar a extenso e o tamanho do arquivo no prprio texto do link. Obs: O ODF (Open Document Format) um formato aberto de documento adotado pela e-PING (Arquitetura de Interoperabilidade em Governo Eletrnico) que pode ser implementado em qualquer sistema. O ODF engloba formatos como: ODT para documentos de texto, ODS para planilhas eletrnicas, ODP para apresentaes de slides, entre outros. Recomendao 23: Em tabelas, utilizar ttulos e resumos de forma apropriada O ttulo da tabela deve ser definido pelo elemento caption e deve ser o primeiro elemento utilizado aps a declarao do elemento table. Em casos de tabelas extensas, deve ser fornecido um resumo de seus dados atravs do atributo summary que deve ser declarado no elemento table. Recomendao 24: Associar clulas de dados s clulas de cabealho em uma tabela Em tabelas de dados simples, a uso apropriado do elemento th para os cabealhos e do elemento td para as clulas de dados essencial para torn-las acessveis. Para incrementar a acessibilidade, deve-se utilizar os elementos thead, tbody e tfoot, para agrupar as linhas de cabealho, do corpo da tabela e do final, respectivamente, com exceo de quando a tabela possuir apenas o corpo, sem ter sees de cabealho e rodap. Recomendao 25: Garantir a leitura e compreenso das informaes O texto de um stio deve ser de fcil leitura e compreenso, no exigindo do usurio um nvel de instruo mais avanado do que o ensino fundamental completo. Quando o texto exigir uma capacidade de leitura mais avanada, deve ser disponibilizado informaes suplementares que expliquem ou ilustrem contedo principal. Outra alternativa verso simplificada do contedo em texto. Recomendao 26: Disponibilizar uma explicao para siglas, abreviaturas e palavras incomuns Deve estar disponvel uma explicao que identifique a forma completa ou o significado das abreviaturas e siglas. Para isso, pode ser utilizada a tag abbr.

P g i n a | 54 Recomendao 27: Informar mudana de idioma no contedo Se algum elemento de uma pgina possuir contedo em um idioma diferente do principal, este dever estar identificado pelo atributo lang. Essa recomendao no se aplica para nomes prprios ou termos tcnicos que sejam compreendidos no contexto. 11.5 Apresentao e Design Recomendao 28: Oferecer contraste mnimo entre plano de fundo e primeiro plano As cores do plano de fundo e do primeiro plano devero ser suficientemente contrastantes para que possam ser visualizadas, tambm, por pessoas com baixa viso, com cromodeficincias ou que utilizam monitores de vdeo monocromtico. Recomendao 29: No utilizar apenas cor ou outras caractersticas sensoriais para diferenciar elementos A cor ou outras caractersticas sensoriais, como forma, tamanho, localizao visual, orientao ou som no devem ser utilizadas como o nico meio para transmitir informaes, indicar uma ao, pedir uma resposta ao usurio ou distinguir um elemento visual. Recomendao 30: Permitir redimensionamento de texto sem perda de funcionalidade A pgina deve continuar legvel e funcional quando redimensionada para at 200%. Assim, preciso garantir que, quando a pgina for redimensionada, no ocorram sobreposies de texto nem o aparecimento de uma barra horizontal. Recomendao 31: Dividir as reas de informao reas de informao devem ser divididas em grupos fceis de gerenciar. As divises mais comuns so topo, contedo, menu e rodap. Nas pginas internas deve-se manter uma mesma diviso para que o usurio se familiarize mais rapidamente com a estrutura do stio. Recomendao 32: Possibilitar que o elemento com foco seja visualmente evidente A rea que recebe o foco pelo teclado deve ser claramente marcada, devendo a rea de seleo ser passvel de ser clicada. 11.6 Multimdia Recomendao 33: Fornecer alternativa para vdeo Deve haver uma alternativa sonora ou textual para vdeos que no incluem faixas de udio. Para vdeos que contm udio falado e no idioma natural da pgina, devem ser fornecidas legendas. Alm de essencial para pessoas com deficincia visual, a alternativa em texto tambm importante para usurios que no possuem equipamento de som, que desejam apenas realizar a leitura do material ou no dispem de tempo para ouvir um arquivo multimdia.

P g i n a | 55

Recomendao 34: Fornecer alternativa para udio udio gravado deve possuir uma transcrio descritiva. Alm de essencial para pessoas com deficincia auditiva, a alternativa em texto tambm importante para usurios que no possuem equipamento de som, que desejam apenas realizar a leitura do material ou no dispem de tempo para ouvir um arquivo multimdia. Neste caso, tambm desejvel a alternativa em Libras. Recomendao 35: Oferecer audiodescrio para vdeo pr-gravado Vdeos que transmitem contedo visual que no est disponvel na faixa de udio devem possuir uma audiodescrio. A audiodescrio consiste na descrio clara e objetiva de todas as informaes apresentadas de forma visual e que no fazem parte dos dilogos. Essas descries so apresentadas nos espaos entre os dilogos e nas pausas entre as informaes sonoras. Recomendao 36: Fornecer controle de udio para som Deve ser fornecido um mecanismo para parar, pausar, silenciar ou ajustar o volume de qualquer som que se reproduza na pgina. Recomendao 37: Fornecer controle de animao Para qualquer animao que inicie automaticamente na pgina devem ser fornecidos mecanismos para que o usurio possa pausar, parar ou ocultar tal animao. 11.7 Formulrios Recomendao 38: Fornecer alternativa em texto para os botes de imagem de formulrios Ao serem utilizados botes do tipo imagem (input type=image), que servem para o mesmo propsito do boto do tipo submit, deve ser fornecida uma descrio textual para o boto atravs do atributo alt. Recomendao 39: Associar etiquetas aos seus campos As etiquetas de texto (label) devem estar associadas aos seus campos (input) correspondentes no formulrio, atravs dos atributos for do label e id do input, os quais devero ter o mesmo valor. Exemplo: <label>Sexo:</label> <input type="radio" id="fem" name="sexo" /> <label for="fem">Feminino</label> <input type="radio" id="mas" name="sexo" /> <label for="mas">Masculino</label> Recomendao 40: Estabelecer uma ordem lgica de navegao

P g i n a | 56

Os elementos do formulrio devem ser distribudos corretamente atravs do cdigo HTML, criando, assim, uma seqncia lgica de navegao. Assim, os formulrios devem primeiro ser codificados considerando a ordem lgica de navegao para depois serem organizados visualmente via CSS. Recomendao 41: No provocar automaticamente alterao no contexto Quando um elemento de formulrio receber o foco, no deve ser iniciada uma mudana automtica na pgina que confunda ou desoriente o usurio. Assim, as mudanas devem ocorrer atravs do acionamento de um boto. Recomendao 42: Fornecer instrues para entrada de dados Para contedo que exigir entrada de dados por parte do usurio, devem ser fornecidas , quando necessrio, instrues de preenchimento juntamente com as etiquetas (label). Exemplo: O seguinte exemplo indica que a data precisa ser inserida no formato dia (dd) ms (mm) ano (aaaa). <label for="data">Data (dd-mm-aaaa)</label> <input type="text" id="data" name="data" /> Recomendao 43: Identificar e descrever erros de entrada de dados Quando um erro de entrada de dados for automaticamente detectado, o item que apresenta erro deve ser identificado e descrito ao usurio por texto. Recomendao 44: Agrupar campos de formulrios Devero ser agrupados os controles de formulrio relacionados de maneira lgica, utilizando-se o elemento fieldset, associando o elemento legend de forma significativa (o elemento fieldset til para agrupar, de forma lgica, elementos do formulrio). Para cada fieldset, possvel fornecer uma legenda que explica claramente o propsito ou natureza dos agrupamentos. Recomendao 45: Fornecer CAPTCHA humano O CAPTCHA (teste interativo humano, completamente automatizado, para distinguir computadores de seres humanos), quando utilizado, dever ser fornecido em forma de pergunta de interpretao. Tais perguntas podero ser respondidas apenas por um ser humano. No entanto, preciso garantir que a pergunta no seja de difcil resoluo, permitindo que a mesma possa ser respondida por pessoas de variadas culturas e nveis de instruo. 11.8 Padres de acessibilidade digital do Governo Federal Esta seo pretende padronizar elementos de acessibilidade que devem ter caractersticas em comum em todas as pginas do governo federal, para fins de facilitar o acesso por pessoas com deficincia. Este conjunto de elementos busca garantir o desenvolvimento de stios acessveis a todas as pessoas.

P g i n a | 57

Os elementos a serem padronizados, que devem estar presentes em todas as pginas do Governo Federal so: 1. Pgina com a descrio dos recursos de acessibilidade: Esta pgina apresenta os recursos de acessibilidade presentes no stio, como as teclas de atalho disponveis, as opes de redimensionamento de texto e alto contraste, detalhes sobre testes de acessibilidade realizados no stio e outras informaes pertinentes a respeito de sua acessibilidade. 2. Teclas de atalho: Devero ser disponibilizados atalhos por teclado para pontos estratgicos da pgina, permitindo que o usurio possa ir diretamente a esses pontos. 3. Barra de acessibilidade: O stio dever conter uma barra de acessibilidade no topo de cada pgina contendo os seguintes itens: aumentar, diminuir e fonte normal; alto contraste, atalhos, etc. 4. Apresentao do mapa do sitio: Dever ser fornecido um mapa do stio para stios que contenham pginas internas que no esto presentes no menu. O mapa do stio deve ser disponibilizado em forma de lista, podendo conter quantos nveis forem necessrios. 5. Apresentao de formulrio: os formulrios devero estar de acordo com alguns itens como: sempre usar a tag <form>; associar as etiquetas <label>; usar foco, etc. 6. Contedo alternativo para imagens: Dever ser fornecida uma alternativa textual, pelo atributo alt, para imagens, fotos, grficos, banners, botes de imagem, reas ativas de mapa de imagem, CAPTCHA, etc. 7. Apresentao de documentos: Os documentos em texto devero ser disponibilizados preferencialmente em HTML. Tambm podem ser disponibilizados arquivos para download no formato ODF, tomando-se os cuidados para que sejam acessveis. Se houver necessidade de disponibilizar arquivos em PDF, dever ser fornecida uma alternativa em HTML ou ODF. necessrio, tambm, informar a extenso e o tamanho do arquivo no prprio texto do link. 12. ECLIPSE 13. FERRAMENTAS DE GERENCIAMENTO DE PROJETOS necessrio analisar e pensar a forma que ser utilizada para integrar a ferramenta de Gesto de Projeto com a ferramenta para Gesto de Incidentes. Algumas ferramentas de Gerenciamento de projetos, possuem formas de integrao com ferramentas de gesto de incidncias e algumas de gesto de incidentes so possveis gerar at grficos de Gantt, por exemplo. Dependendo da necessidade de cada empresa e do prprio Gerente de Projetos por meio das funcionalidades disponveis, possvel at substituir a ferramenta de gesto de projetos apenas pela ferramenta de gesto de incidentes, tudo depender da real necessidade. Veja alguns nomes de algumas ferramentas para Gerenciamento de Projetos livre e/ou gratuitas: :: GanttProject :: Achievo :: Open Workbench :: Faces :: TaskJuggler :: OpenProj :: DotProject

P g i n a | 58 :: Mingle :: ProjectKoach :: Buildix :: ScrumWorks :: VersionOne :: Rally :: jxProject :: DeskAway :: Project Engine Personal :: Project Planner Olhando mais a fundo cada uma destas ferramentas, algumas delas possuem funcionalidades para o ciclo de vida completo de um projeto de desenvolvimento de software e, o melhor, integrando com facilidade de uso esses aspectos. Aliado a gesto de projetos h tambm funcionalidades como: :: Gesto de requisitos :: Gesto de testes :: Gesto de incidncias :: Integrao com controle de verses Nota: Dentre as funcionalidades acima, alguns exemplos dessas categorias mai completas seriam as ferramentas: Mingle, Buildix, VersionOne e Rally. Classificando as ferramentas de gesto de projetos instaladas via desktop e web podemos fazer a seguinte separao: DESKTOP: GanttProject, Open Workbench, Faces, TaskJuggler, OpenProj WEB: Achievo, DotProject Atualmente o sucesso do projeto de desenvolvimento de software, est aliado est diretamente aliado a gesto de incidntes pois, se voc controlar corretamente tiver os fluxos bem definidos, a base de dados da gesto de incidncias se tornar a chave do sucesso. Grandes empresas de software mundialmente conhecidas usufruem da gesto de incidentes para controlar, monitorar e organizar seus projeto de software na qual um diferencial para que se possa disciplinar, organizar e fazer a governana de sistemas de Tecnologia da Informao. 14. SISTEMA DE CONTROLE DE VERSO SUBVERSION E GIT 14.1 Sistema de Controle de Verso Subversion Subversion um sistema de controle de verso livre/open-source. Isto , o Subversion gerencia arquivos e diretrios, e as modificaes feitas neles ao longo do tempo. Isto permite que voc recupere verses antigas de seus dados, ou que examine o histrico de suas alteraes. Devido a isso, muitas pessoas tratam um sistema de controle de verso como uma espcie de mquina do tempo.

P g i n a | 59 O Subversion pode funcionar em rede, o que lhe possibilita ser usado por pessoas em diferentes computadores. Em certo nvel, a capacidade de vrias pessoas modificarem e gerenciarem o mesmo conjunto de dados de seus prprios locais o que fomenta a colaborao. Progressos podem ocorrer muito mais rapidamente quando no h um gargalo nico por onde todas as modificaes devam acontecer. E como o trabalho est versionado, voc no precisa ter medo de que seu trabalho perca qualidade por no ter essa via nica para modificaesse os dados sofrerem alguma modificao indevida, apenas desfaa tal modificao. Alguns sistemas de controle de verso tambm so sistema de gerenciamento de configurao (GC). Estes sistemas so especificamente desenvolvimento para gerenciar rvores de cdigo-fonte, e possuem muitos recursos especficos para o desenvolvimento de softwarecomo identificao nativa de linguagens de programao, ou ferramentas de apoio para compilao de software. O Subversion, no entanto, no um sistema desse tipo. um sistema de carter geral que pode ser usado para gerenciar quaisquer conjuntos de arquivos. Para voc, estes arquivos podem ser cdigo-fontepara outros, podem ser qualquer coisa desde listas de compras de supermercado a arquivos de edio de vdeo, e muito mais. O Subversion proporciona: Versionamento de diretrios: O CVS apenas rastreia o histrico de arquivos individuais, j o Subversion implementa um sistema de arquivos virtual sob controle de verso que rastreia modificaes a toda a rvore de diretrio ao longo do tempo. Os arquivos e os diretrios so versionados. Histrico de verses efetivo: Como o CVS limitado apenas ao versionamento de arquivos, operaes como cpia e renomeaoque podem ocorrer com arquivos tambm, mas que so realmente alteraes no contedo de algum diretrio continenteno so suportadas no CVS. Adicionalmente, no CVS voc no pode substituir um arquivo versionado por alguma outra coisa com o mesmo nome sem que o novo item deixe de herdar o histrico do arquivo antigoque talvez seja at algo com o qual no mantenha nenhuma correlao. Com o Subversion, voc pode adicionar, excluir, copiar, e renomear ambos os arquivos ou diretrios. E cada novo arquivo adicionado comea com um histrico prprio e completamente novo. Commits atmicos: Um conjunto de modificaes ou inteiramente registrado no repositrio, ou no registrado de forma nenhuma. Isto possibilita aos desenvolvedores criarem e registrarem alteraes como blocos lgicos, e tambm evita problemas que possam ocorrer quando apenas uma parte de um conjunto de alteraes seja enviada com sucesso ao repositrio. Versionamento de metadados: Cada arquivo e diretrio tem um conjunto de propriedades chaves e seus valoresassociados consigo. Voc pode criar e armazenar quaisquer pares chave/valor que quiser. As propriedades so versionadas ao longo do tempo, tal como os contedos de arquivo. Escolha das camadas de rede: O Subversion tem uma noo abstrata do acesso ao repositrio, tornando-o mais fcil para as pessoas implementarem novos mecanismos de rede. O Subversion pode se associar ao servidor Apache HTTP como um mdulo de extenso. Isto d ao Subversion uma grande vantagem em estabilidade e interoperabilidade, alm de acesso instantneo aos recursos existentes oferecidos por este servidorautenticao, autorizao, compactao online, dentre outros. Um servidor Subversion mais leve e independente tambm est disponvel. Este servidor utiliza um protocolo especfico o qual pode ser facilmente ser tunelado sobre SSH.

P g i n a | 60 Manipulao consistente de dados: O Subversion exprime as diferenas de arquivo usando um algoritmo diferenciado, o qual funciona de maneira idntica tanto em arquivos texto (compreensvel para humanos) quanto em arquivos binrios (incompreensvel para humanos). Ambos os tipos de arquivos so igualmente armazenados de forma compactada no repositrio, e as diferenas so enviadas em ambas as direes pela rede. Ramificaes e rotulagem eficiente: O custo de se fazer ramificaes (branching) e de rotulagem (tagging) no precisa ser proporcional ao tamanho do projeto. O Subversion cria ramos e rtulos simplesmente copiando o projeto, usando um mecanismo semelhante a um hard-link. Assim essas operaes levam apenas uma pequena e constante quantidade de tempo. Hackability: O Subversion no tem qualquer bagagem histrica; ele implementado como um conjunto de bibliotecas C compartilhadas com APIs bem definidas. Isto torna o Subversion extremamente manutenvel e usvel por outras aplicaes e linguagens.

Componentes do Subversion Uma vez instalado, o Subversion consiste num conjunto de diversas partes. Uma breve viso geral sobre tudo o que voc dispe mostrada a seguir. No se preocupe se as breves descries acabarem fundindo a sua cucah muito mais pginas neste livro para acabar com essa confuso. svn: O programa cliente de linha de comando. Svnversion: Um programa para informar o estado (em termos das revises dos itens presentes) da cpia de trabalho. Svnlook: Uma ferramenta para inspecionar um repositrio Subversion diretamente. Svnadmin: Uma ferramenta para criao, ajuste e manuteno de um repositrio Subversion. Svndumpfilter: Um programa para filtragem de fluxos de um repositrio Subversion. mod_dav_svn: Um mdulo plugin para o servidor Apache HTTP, usado para disponibilizar seu repositrio a outros atravs da rede. Svnserve: Um especfico programa servidor independente, executvel como um processo daemon ou invocvel via SSH; uma outra forma de disponibilizar seu repositrio a outros atravs da rede. Svnsync : Um programa para fazer espelhamento incremental de um repositrio para outro atravs da rede.

Uma vez que voc tenha instalado o Subversion corretamente, voc j deve estar pronto para iniciar. Os prximos dois captulos vo gui-lo pela uso do svn, o programa cliente de linha de comando do Subversion. 14.2 GIT O Git um dos sistemas de controle de verso mais utilizados, principalmente em projetos de Software Livre. O SVN (Subversion) tambm muito utilizado para controle de verso, mais frequentemente em ambiente Windows. Cada diretrio de trabalho Git um repositrio com todos os histricos e habilidade total de controle das revises, no dependente de acesso a uma rede ou a um servidor central. A manuteno de software do Git atualmente supervisionada por Junio Hamano. distribudo sob os termos da verso 2 da GNU General Public License. O Git um software livre.

P g i n a | 61

Caractersticas O projeto do Git uma sntese da experincia de Torvalds com a manuteno do desenvolvimento altamente distribudo do projeto do Linux, junto com seu ntimo conhecimento de performance de sistemas de arquivos (conhecimentos adquiridos no mesmo projeto) e a necessidade urgente de produzir um sistema funcional em um curto espao de tempo. Essas influncias o levaram s seguintes escolhas de implementao: Suporte consistente para desenvolvimentos no-lineares: O Git suporta rpidas criaes de ramos (branches) e mesclas (merges), e inclu ferramentas especficas para visualizao e navegao de histricos de desenvolvimento no-lineares. Uma suposio intrnseca no Git que uma mudana ser mesclada mais do que escrita, enquanto passada por vrios revisores. Desenvolvimento distribudo: Assim como o Darcs, o BitKeeper, o Mercurial, o SVK, o Bazaar e o Monotone, o Git d a cada desenvolvedor uma cpia local completa de todo o histrico de desenvolvimento, e as mudanas so copiadas de um nico repositrio para outro. Estas mudanas so importadas como ramos (branches) adicionais de desenvolvimento, e podem sofrer uma mescla (merge) da mesma forma que um ramo de desenvolvimento local. Compatibilidade com protocolos/sistemas existentes: Repositrios podem ser publicados por HTTP, FTP, rsync, um protocolo Git sobre uma porta conhecida ou por ssh. O Git tambm tem uma emulao de servidor CVS, o que habilita a existncia de clientes CVS e extenses (plugins) em diversos ADIs a utilizar os repositrios Git. O Subversion e o svk podem utilizar os repositrios diretamente com o git-svn. Manipulao eficiente de projetos extensos: Torvalds descreveu o Git como sendo veloz e escalvel, e testes de performance realizados pela Mozilla apontaram que o Git uma ordem de magnitude mais rpido que alguns sistemas de controle de verso. Obter o histrico das revises salvos em repositrios locais resulta ser duas ordens de magnitude mais rpido que obt-los de um servidor remoto. Um detalhe interessante que o Git no fica mais lento com o aumento do histrico do projeto. Autenticao criptogrfica do histrico: O histrico do Git salvo de uma maneira que o nome de uma determinada reviso (um "commit", ou entrega, nos termos do Git) depende de todo o histrico de desenvolvimento que leva at este commit. Uma vez publicado, no possvel mudar as verses antigas sem passar despercebido. A estrutura similar uma rvore hash (hash tree), mas com dados adicionais nos ns e nas folhas.(o Mercurial e o Monotone tambm possuem esta propriedade.) Modelo baseado em ferramentas: O Git foi modelado como um conjunto de programas escrito em C, e numerosos scripts em shell que encapsulam estes programas. Embora muitos destes scripts foram reescritos em C, como parte de um esforo de portar o Git para o Windows, o modelo bsico continua, sendo fcil agrupar seus componentes. Estratgias de mescla (merge) conectveis: Como parte de desenho em ferramentas, o Git tem um conjunto bem definido de modelos de uma mescla incompleta, e possu vrios algoritimos para complet-las, culminando em comunicar o usurio que incapaz de completar o merge automaticamente, sendo necessria uma edio manual. O lixo se acumula se no for limpo: Abortar operaes ou desfazer mudanas ir deixar objetos sem valor pendentes no banco de dados. Existe porm uma pequena frao desejvel de objetos no sempre crescente histrico, mas liberar o espao usando git gc --prune pode ser uma operao lenta. Empacotamento peridico explcito de objetos: O Git armazena cada novo objeto criado como um arquivo separado. Embora cada arquivo seja individualmente comprimido, isso requer um espao considervel no disco e ineficiente. Isto resolvido com o uso de "pacotes" que armazenam um grande nmero de objetos em um nico arquivo (ou pela rede), comprimidos pelo delta entre eles.

P g i n a | 62 Pacotes so comprimidos usando a heurstica de que arquivos com o mesmo nome so provavelmente similares, mas que no dependam exatamente disso. Mesmo assim, novos objetos criados (novo histrico adicionado) so gravados um a um, e reempacotamentos peridicos so necessrios para manter o espao de forma eficiente. O Git faz reempacotamentos peridicos automaticamente, mas tambm possvel fazer reempacotamentos manuais com o comando git gc. Outra propriedade do Git que ele salva o estado (snapshot) dos diretrios de arquivos. Os sistemas mais antigos de controle de verso de cdigo fonte, Sistemas de Controle de Cdigo Fonte (SCCF) e Sistemas de Controle de Reviso (SCR), trabalhavam em cima de arquivos individuais, enfatizando o espao em disco ganho por intercalao de deltas (SCCF) ou por encodificao de deltas (RCS) entre verses (mais similares). Sistemas de controle de verso posteriores mantiveram esta noo de arquivos possurem uma identidade atrves de mltiplas revises de um projeto. Porm, Torvalds rejeitou esse conceito. Consequentemente, o Git no salva relacionamentos entre reviso de arquivos em nenhum nvel abaixo da rvore de diretrio do cdigo fonte. O Git implemente vrias estratgias de merge (mescla de arquivos); uma no padro pode ser selecionada durante um merge: resolve (resolver): o tradicional algoritmo de merge em trs vias. recursive (recursivo): Este o padro quando baixando ou mesclando um branch, uma variante do algortimo de mescla em trs vias. "Quando h mais de um ancestral comum que pode ser usado em um merge de trs vias, cria-se uma rvore de merge dos ancestrais comuns e usa-se isso como a rvoe de referncia para o merge em trs vias. Isto tm resultado em menor nmero de conflitos em merges sem causar merges errados por testes realizados em merges tirados do histrico de desenvolvimento do kernel do Linux 2.6. Adicionalmente pode detectar e lidar com merges involvendo renomeamentos." octopus (polvo): Este o padro quando efetuando merge em mais de duas heads. Implementao Como o BitKeeper, o Git no usa um servidor centralizado. Entretanto, os primrdios do Git no so inerentemente um sistema de gerenciamento de verso. Torvalds explica: Voc pode ver o git apenas como um sistema de arquivos por vrios motivos ele um armazenamento enderevel de contedo (SCM), e tem o conceito de versionamento, mas eu realmente o modelei vindo de um problema no ponto de vista de um sistema de arquivos (ei, eu fao ncleos de sistemas operacionais), e na verdade eu no tenho absolutamente nenhuminteresse em criar um sistema tradicional de SCM.

Apesar de suas intenes, o Git agora possu toda a coleo de funcionalidade de um SCM tradicional. O Git possu duas estruturas de dados: um ndice mutvel que prov informaes sobre o diretrio de trabalho e a prxima reviso a ser cometida; e um banco de dados de objetos de acrscimo imutvel. O banco de dados de objetos contm quatro tipos de objetos: Um objeto blob o contedo de um arquivo. Estes objetos no possuem nomes, dataes ou outros metadados.

P g i n a | 63 Um objeto tree (rvore) o equivalente um diretrio. Ele contm um lista de nomes de arquivos, cada um com bits que informam o tipo e o nome do blob, da rvore, ligao simblica ou contedo de diretrio que pertence este nome. Este objeto descreve o estado da rvore de diretrio. Um objeto commit (entrega) liga rvores de objetos junto com um histrio. Ele contm o nome de uma rvore de objetos (da raiz de diretrios), datao, uma mensagem de log, e os nomes de zero ou mais objetos-pai de commit. Um objeto tag (rtulo) um invlucro que referencia outros objetos e pode conter metadados adicionais relacionados outro objeto. Em geral, usado para armazenar uma assinatura digital de um objeto commit correspondente aquela release de dados que esto sendo rastreados pelo Git. O ndice serve como um ponto de conexo entre o banco de dados de objetos e a rvore de trabalho. Cada objeto identificado por um hash SHA-1 de seu contedo. O Git computa o hash e usa ele valor como nome para o objeto. O objeto colocado em um diretrio que corresponde aos primeiros dois caracteres deste hash. O resto do hash usado como nome de arquivo para cada objeto. O Git armazena cada reviso do arquivo com um nico objeto blob. Os relacionamentos entre os blobs podem ser encontrados por examinar arvore de objetos commit. Objetos recm adicionados so armazenados inteiramento usando compresso do zlib. Isto pode consumir uma grande quantidade de espao de diso rapidamente. Desta forma, os objetos so combinados em pacotes, que so comprimidos em delta para salvar espao, gravando blobs como mudanas relativas outros blobs. Servidores Git tipicamente escutam a porta TCP/IP 9418. Portabilidade O Git est primariamente desenvolvido para Linux, mas pode ser usados em outros sistemas operacionais baseados no Unix, incluindo o BSD, o Solaris e o Darwin. O Git extremamente rpido em arquiteturas POSIX como o Linux. O Git tambm roda no Microsoft Windows. Existem duas variantes: Uma adaptao nativa para Microsoft Windows, chamada msysgit (usando MSYS da MinGW). Ao passo que relativamente mais vagaroso que a verso para o Linux, ele aceitavelmente rpidoe notoriamente usado em produo, com apenas algumas dificuldade menores. Em particular, alguns comandos ainda no esto disponveis nas GUIs, e precisam ser chamadas por linha de comando. O git tambm roda em cima do Cygwin (uma camada de emulao POSIX),[ embora notoriamente mais lento, especialmente para comando escritos em shell script. Isto causado principalmente pelo alto custo realizado pelo comando fork emulado pelo Cygwin. Entretanto, as recentes reescritas de vrios comandos do Git (originalmente escritas em sheel script) para a linguagem C, resultou em um ganho significativo de performance no Windows. Outras alternativas para rodar o Git inclu: git-cvsserver (que emula um servidor CVS, permitindo seu uso em cliente CVS para Windows): Ambientes de desenvolvimento baseados em Eclipse para Git, baseado em implementaes puras em Java no interior do Git: egit Suporte do NetBeans para o Git est em desenvolvimento e est tambm disponvel pelo plugin NbGit O TortoiseGit, Git-Cheetah e o Git Extensions so extenses clientes para o Gerenciado de Arquivos do Windows, assim como verses independentes de GUI e o plugin para Visual Studio. O Git Source Control Provider outro software gratuito em forma de plugin para o Visual Studio que exibe o status do projeto Git no 'solution explorer'.

P g i n a | 64 IntelliJ IDEA Verso 8.1 agora suporta o Git por um plugin embutido: Intellij Version Control Systems Integration Xcode 4 - assim como a verso 4 de demonstrao, o git est disponvel como parte da IDE Git# uma implementao .Net/Mono do git. Refaturar as operaes de mais baixo nvel em bibliotecas poderia, teoricamente, permitir a reimplementao do componente de nveis mais altos para o Windows sem reescrever o resto.

PARTE II
15. SUPORTE EM MANUTENO DE COMPUTADORES E REDES 15.1 Arquitetura e Organizao de Computadores 15.1.1 Conceitos Bsicos Dois conceitos fundamentais no estudo dos sistemas de computao so o de Arquitetura e Organizao de Computadores. O termo arquitetura refere-se aos atributos do ponto de vista do programador, e portanto, tm impacto direto sobre a execuo lgica de um programa. O termo organizao, refere-se s unidades operacionais e suas interconexes. Dessa forma, uma arquitetura pode ser implementada por meio de diferentes organizaes. As funes bsicas de um computador so o processamento de dados, armazenamento de dados, transferncia de dados e controle. Para desempenhar essas funes o computador precisa executar um conjunto de instrues (programa). Os computadores modernos utilizam o conceito de interrupo para diminuir o tempo de ociosidade dos processadores, o ciclo de execuo, o ciclo de execuo das instrues ganham mais alguns estados. As classes de interrupes mais comuns so: interrupes de software, de relgio, de E/S e de falha de hardware. A estrutura bsica de um computador composto pelos seguintes componentes: Unidade Central de Processamento (CPU); Memria Principal; Dispositivos de E/S; Sistemas de Interconexo. 15.1.2 Estrutura e Funcionamento da CPU Esses componentes tambm possuem suas subdivises. A CPU por exemplo se subdivide em: Unidade de Controle, Unidade Lgica e Aritmtica (ALU), Registradores e por m as Interconexes da CPU. Para interconectar dois ou mais dispositivos em um sistema so utilizados os chamados barramentos. Os barramentos so compostos por linhas que podem ser de Dados, Endereo ou Controle. Os barramentos de controle podem ser utilizados por exemplo para controlar direito de leitura ou escrita em memria ou E/S, interrupes, conrmaes, relgio

P g i n a | 65 e reset. O projeto dos barramentos que compe um sistema so de grande importncia no desempenho do sistema. 15.1.3 Pipelines Pipeline uma tcnica de hardware que permite que a CPU realize a busca de uma ou mais instrues alm da prxima a ser executada. Estas instrues so colocadas em uma fila de memria dentro do processador (CPU) onde aguardam o momento de serem executadas, s poder comear quando a outra instruo acabar s assim da seqncia ao procedimento. Em resumo, o processo pelo qual uma instruo de processamento subdivida em etapas, uma vez que cada uma destas etapas executada por uma poro especializada da CPU, podendo colocar mais de uma instruo em execuo simultnea. Isto traz um uso mais racional da capacidade computacional com ganho substancial de velocidade. Entre os problemas enfrentados esto a dependncia de instrues anteriores e desvios que dificultam o processo, bem como a diferena de complexidade de instrues que fazem com que as mesmas possam levar um tempo varivel para execuo. A tcnica de pipeline utilizada para acelerar a velocidade de operao da CPU, uma vez que a prxima instruo a ser executada est normalmente armazenada dentro da CPU e no precisa ser buscada da memria, normalmente muito mais lenta que a CPU. 15.2 Componentes de um Computador O computador est organizado em dois componentes que so: Hardware: corresponde a parte fsica que est dividida em: unidade de entrada e sada, processador, memria principal e memria secundria. Software: o conjunto de programas que d a vida mquina. classificado em software de aplicativo (jogos, planilha, etc.) e software bsico (sistema operacional, compiladores, editores de texto, etc). Para interligar os componentes do hardware existe uma placa de suporte especial, chamada placa-me. A placa-me responsvel por gerenciar toda a transao entre o processador e os perifricos. Os componentes principais da placa-me so: chipset, BIOS, barramentos, e slots. Chipset o chip responsvel pelo controle de diversos dispositivos de entrada e sada como o barramento, o acesso memria, o acesso ao HD, perifricos on-board e off-board, comunicao por processador com a memria RAM e entre outros componentes da placa-me. O BIOS (Basic Input/Output System) o primeiro programa executado pelo computador ao ser ligado. Sua funo primria preparar a mquina para que o sistema operacional, que pode estar armazenado em diversos tipos de dispositivos (discos rgidos, disquetes, CDs, etc) possa ser executado. O BIOS armazenado num chip ROM (Read-Only Memory) localizado na placa-me, chamado ROM BIOS. Os barramentos permitem a interligao entre os dispositivos da placa-me. So divididos em trs conjuntos: via de dados, via de endereos e via de controle. O desempenho do barramento pode ser

P g i n a | 66 medido pela sua largura de banda (32, 64 bits, etc.) e pela sua velocidade de transmisso (100 Mbps, 1G bps, etc.). Os slots so responsveis por ligar os perifricos aos barramentos e suas velocidades e largura de banda so correspondentes as dos seus respectivos barramentos. Na placa-me so encontrados vrios slots para encaixe de placas (vdeo, som, rede, modem, etc.). Alguns exemplos de slots: ISA, PCI, AGP, PCI Express, etc. 15.2 Caractersticas dos Principais Processadores do Mercado Os processadores mais conhecidos vendidos no Brasil hoje so os da AMD e os da INTEL. Segue abaixo os modelos: 15.1.1 Processadores da INTEL 15.1.1.2 Processadores Intel Core 15.1.1.2.1 Dual Core ou Core Duo o primeiro processador do mercado voltado para notebooks a ter tecnologia de dois ncleos, isto , dentro dele h dois processadores completos. Na realidade este processador um Pentium M com dois ncleos de processamento e construdo com tecnologia de 65 nm. A diferena aparente que sua cache de memria L2 de 2MB compartilhada entre os ncleos, que a Intel chama de Smart Cache ou Cache Inteligente e isso faz com que o desempenho seja melhor. 15.1.1.2.1 Core 2 Duo Foi lanada oficialmente em 2006 e significa a substituio da marca Pentium que estava sendo usada pela companhia desde 1993. Este processador possui 2 ncleos e possui uma nova arquitetura core e um processador Intel de 6 gerao. A diferena entre o Core 2 Duo e o Core 2 Extreme que este ltimo trabalha com clocks mais elevados e tem o multiplicador de clock destravado. 15.1.1.2.2 Core i3, Core i5 e Core i7 Core i3 A Intel lanou trs modelos de processadores diferentes. Cada um possui um foco, pois existem usurios com interesses distintos. O Intel Core i3 a linha de CPUs voltada aos menos exigentes. Por pertencer nova linha Core, o i3 traz dois ncleos de processamento, tecnologia Intel Hyper-Threading (que possibilita a realizao de mais tarefas), memria cache de 4 MB compartilhada (nvel L3), suporte para memria RAM DDR3 de at 1333 MHz e muito mais. Os CPUs da linha Core i3 parecem fracos, contudo eles vieram para substituir a antiga linha Core2Duo. Qualquer Core i3 vem equipado com um controlador de memria DDR interno (o que j ocorre h muito tempo nos processadores da AMD), um controlador de vdeo integrado Intel HD Graphics que opera na

P g i n a | 67 frequncia de 733 MHz e o suporte para utilizao de duplo canal para memria RAM (o que significa que as memrias trabalham aos pares). Core i5 Enquanto o i3 fica responsvel por atender aos usurios menos exigentes, o Intel Core i5 encarregado de suprir as necessidades do mercado de porte intermedirio, ou seja, aqueles mais exigentes que realizam tarefas mais pesadas. Disponvel em modelos de dois ou quatro ncleos, os CPUs da linha i5 possuem at 8 MB de memria cache (nvel L3) compartilhada, tambm utilizam o soquete LGA1156, controlador de memria DDR integrado, tecnologia Intel Hyper-Threading, tecnologia Turbo Boost e muito mais. A tecnologia Turbo Boost da Intel promete aumentar a velocidade do processador automaticamente. Segundo o site da Intel, esta tecnologia inteligente e trabalha 100% do tempo verificando frequncia, voltagem e temperatura do processador. Ao notar uma baixa em um dos valores-padro utilizados pelo CPU, este novo recurso aumenta a frequncia e consegue um desempenho muito maior em qualquer aplicao. Core i7 A ltima palavra em tecnologia de processamento o i7. A linha de processadores voltada ao pblico entusiasta e profissional traz muitos benefcios e especificaes de cair o queixo. Todos os CPUs da srie Core i7 possuem quatro ncleos (o i7-980X possui seis ncleos), memria cache L3 de 8 MB, controlador de memria integrado, tecnologia Intel Turbo Boost, tecnologia Intel Hyper-Threading, tecnologia Intel HD Boost e ainda o recurso Intel QPI. A linha de processadores Intel Core i7 trabalha com a tecnologia Intel HD Boost, a qual responsvel pela compatibilidade entre CPU e programas que usam os conjuntos de instrues SSE4. Tal caracterstica possibilita um maior desempenho em aplicativos mais robustos que necessitam de um poder de processamento de alto nvel. O recurso Intel QPI, ou QuickPath Interconnect (Interconexo de caminho rpido), serve para aumentar o desempenho do processador bvio, no mesmo? Afinal, todas as tecnologias so criadas para isso , contudo, esta trabalha de uma maneira bem diferente . Ao invs de aumentar a frequncia ou a tenso, o recurso Intel QPI aumenta a largura de banda (o que permite a transmisso de mais dados) e diminui as latncias. Vale salientar que este recurso s est presente nos CPUs Intel Core i7 da srie 900 e possibilita taxas de transferncia de at 25.6 GB/s. 15.1.1.3 Processadores Intel Pentium 15.1.1.3.1 Pentium 4 Foi lanado em novembro de 2000, usando a microarquitetura x86 de stima gerao da Intel, chamada Netburst, que veio com um pipeline muito longo com a inteno de permitir clocks mais altos. Algumas caractersticas:

P g i n a | 68 - Possuia a tecnologia VT (Virtualization Technology), que permitia que um processador funcionasse como se fosse vrios processadores trabalhando em paralelo de modo a permitir que vrios sistemas operacionais fossem executados ao mesmo tempo. - Possuem freqncias mais altas; - Possuem longo pipeline. 15.1.1.3.2 Pentium D e Pentium Extreme Edition - O processador Pentium D a verso de dois ncleos do Pentium 4, e o Pentium Extreme Edition a verso do Pentium D com tecnologia Hyper Threading habilitada. - Ambos so baseados na microarquitetura x86 de stima gerao Intel Netburst, ou seja, apesar do nome diferente, eles so internamente um Pentium 4 (ou melhor, dois processadores Pentium 4 em um nico encapsulamento). A diferena bsica entre os dois, a ausncia da tecnologia HyperThreading nos processadores Pentium D. 15.1.1.3.3 Pentium M o processador da Intel voltado para o mercado de nortebooks e utilizado pela plataforma Centrino. A plataforma Centrino da Intel um conjunto de tecnologias desenvolvidas para notebooks e formada por trs componentes: Processador Pentium M Intel Chipsets 855 ou 915 Rede Wireless Intel/PRO Um notebook s pode ser considerado Centrino se ele possuir todos esses trs componentes. O processador Pentim M da Intel foi lanado em maro de 2003, usando a microarquitetura x86 de sexta gerao da Intel, ou seja, a mesma arquitetura usada pelos processadores Pentium Pro, Pentium II e Pentium III. 15.1.1.4 - Processadores Intel Celeron utilizado pela Intel para designar sua linha de processadores de baixo custo. Na verdade, o Celeron uma verso econmica dos processadores topo de linha da Intel. Ou seja, o Celeron uma verso capada do Pentium II, Pentium III ou do Pentium 4, com algumas caractersticas reduzidas ou removidas. O Celeron diferencia-se do Pentium II, Pentium III ou Pentium 4 em basicamente trs aspectos: Tamanho do cache L2; Clock interno; Clock do barramento externo Com essas diferenas fazem com que o Celeron seja mais barato e tenha um desempenho menor do que os processadores Pentium II, Pentium III e Pentium 4, portanto, destinado para o mercado de usurios domsticos ou para aqueles que no necessitam de grande poder computacional.

P g i n a | 69 15.1.1.5 Processadores Intel Atom Atom N270 Lanado no segundo semestre de 2008, o modelo Intel Atom Processor N270, de codinome Diamondville, possui 512K cache, 1.60 GHz de clock, instruction set de 32-bit e um Bus Type FSB de 533 MHz. single core e possui um consumo tpico de 2.5W. Atom N450 Lanado no primeiro semestre de 2010, o modelo Intel Atom Processor N450, de codinome Pineview, possui 512K cache, 1.66 GHz de clock, instruction set de 64-bit e o novo Bus Type DMI. Tambm single core e possui um consumo tpico de 5.5W. Porm o que de fato caracteriza este modelo a integrao do processador (CPU), unidade de processamento grfico (GPU) e controlador de memria numa nica placa, o que propicia uma melhor eficincia. Atom N570 O N570 melhora em relao a freqncia de clock. Ele est no topo da melhoria em relao ao N450 e N455, integrando dois ncleos no processador (N450 e N455 A tem apenas 1 ncleos). O Cache tambm ser dobrado a 1 MB. O N570 Atom deve aumentar ainda mais a utilidade dos livros net, proporcionando poder de processamento um pouco maior. Verso dual core com Hyperthreading (2 ncleos/4 threads), o Atom N570 foi equipado com 1 MB de memria cache e ele apresenta um TDP de 8.5W. No seu comunicado de imprensa, a Intel falou de um suporte para memrias DDR3 667 MHz, um padro inexistente. Os modelos anteriores do Atom se limitam a suportar o padro DDR3 800 MHz, a menor frequncia permitida pelo JEDEC. 15.1.1.6 Processadores Intel Xeon e Itanium Xeon Em 1998 a Intel estabeleceu uma distino entre seus processadores voltados para o mercado de servidores e estaes de trabalho dos voltados para o mercado de usurios domsticos. Desde ento, a Intel passou a incluir o termo Xeon (pronuncia-se zon) no nome dos processadores voltados para o mercado de servidores e estaes de trabalho. Esses processadores reconhecem mais memria RAM, permitem trabalhar em ambiente multiprocessado (isto , com placas-me com vrios processadores instalados sobre ela) e possui um desempenho maior que os processadores voltados para o mercado domstico. Itanium Tambm denominado de IA-64 um microprocessador desenvolvido pela Intel e pela HP, para plataformas SMP de 64 bits puro-sangue que no usa nem RISC nem CISC mas sim uma arquitetura nova chamada pela Intel de EPIC. Iniciando a 8 Gerao de Processadores, este era utilizado em Servidores e outro tipo de controle de dados. Incompatvel com OSs desenvolvidos para os processadores da linha X86-64, pois estes

P g i n a | 70 so compatveis com 32 e 64 bits. Com clocks baixos, na casa de 1,6 GHz, os processadores Itanium obtm seu desempenho pela diviso de trabalho entre os processadores e o grande tamanho do cache built-in no processador, que chega a 24MB. Estas caractersticas davam-lhe a capacidade de aceder at 16TB de RAM. Estes foram os primeiros CPUs da Intel que tiveram cache L3 integrada no chip. 15.1.1 Processadores da AMD 15.1.1.2 Sempron o processador da AMD voltado para o mercado low-end, ou seja, ele destinado a usurios que no precisam de grande poder computacional e que esto mais preocupados com o preo do que com o desempenho. O concorrente do Sempron o Celeron D da Intel. Sempron o nome comercial de vrios processadores de baixo custo produzidos pela AMD, usando diversas tecnologias e soquetes diferentes.O Sempron substituiu o AMD Duron e compete com o Intel Celeron. 15.1.1.3 Athlon 64 Os processadores mais novos da AMD encontrados no mercado atualmente so baseados na arquitetura do Athlon 64, tambm conhecida como x86-64 ou hamer. Os modelos de Athlon 64 so: Athlon 64, Athlon 64 FX e o Athlon 64 X2. Esses trs processadores mais o Sempron so voltados para o mercado de desktops. O Athlon 64 voltado para o mercado mid-range (usurios entusiastas ou aqueles que necessitam de um poder computacional maior do que os proporcionado pelo Sempron) e o Athlon 64 FX e o Athlon 64 X2 so voltados para o mercado high-end (alto desempenho). Existem trs outros processadores baseados na arquitetura do Athlon 64: Athlon 64 Mobile e Turion 64, que so voltados para o mercado de notebooks, e o Opteron, que voltado para o mercado de servidores. A principal caracterstica da arquitetura do Athlon 64 a presena do controlador de memria dentro do prprio processador e no no chipset, como acontece com outros processadores. Por causa desta arquitetura a comunicao entre o processador e os mdulos de memria feita atravs de um barramento dedicado, enquanto que a comunicao entre o processador e o chipset feita atravs de um barramento independente, chamado HyperTransport. 15.1.1.4 Turion So processadores de baixo consumo voltados para o mercado de notebooks e esto disponveis em duas verses, com um ncleo (single core) e com dois ncleos (dual core). Os dois usam tecnologia de 65 nanmetros o que diminui o TDP e consequentemente o gasto de energia. Possuem a tecnologia PowerNow!, parecida com Cool'n'Quiet de computadores desktop Athlon 64 a fim de diminuir o clock e a tenso se o processador no estiver sendo usado ou a tarefa exigida pequena. A grande diferena entre o Turion 64 e Athlon 64 Mobile nomenclatura regional, em alguns locais chamado de Athlon X2 e em outros de Turion X2, mas em si os processadores so os mesmos. Um pequeno

P g i n a | 71 detalhe que o Turion 64 pode ter cache L2 com 512KB ou 1MB, j o Athlon 64 Mobile tem sempre 1MB de cache, tendo ento mais performance, embora seja o mesmo processador com as mesmas instrues. O Turion 64 baseado na arquitetura do Athlon 64 e a principal diferena entre o Turion 64 e o Athlon 64 Mobile o consumo de energia. Uma outra diferena entre eles a quantidade de memria cache L2, que de 1 MB nos processadores Athlon 64 Mobile, enquanto que os processadores Turion 64 podem ter memria 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 similar a tecnologia CoolnQuiet usado pelos processadores desktop. Esta tecnologia altera o clock e a tenso de alimentaco do processador de acordo com a carga de trabalho que esteja sendo realizada, de modo a economizar bateria. 15.1.1.4 Opteron O Opteron o processador da AMD voltado para o mercado de servidores de rede. Ele baseado na arquitetura do Athlon 64. Os principais concorrentes so o Intel Xeon e Intel Itanium. Existem duas diferenas principais entre o Opteron e os outros processadores baseados na arquitetura do Athlon 64. Primeiro, vrios modelos de Opteron permitem o multiprocessamento simtrico (SMP), ou seja, permitem trabalhar com mais de um processador na placa-me, enquanto que os outros processadores no. Os processadores Opteron so identicados atravs de um numero de modelo e o primeiro dgito deste nmero indica qual o grau de processamento simtrico que o processador aceita: os modelos de Opteron comeando com 1 no permitem multiprocessamento simtrico, enquanto que os modelos comeando com 2 permitem multiprocessamento simtrico com at 2 processadores e os modelos comeando com 8permitem multiprocessamento simtrico com at 8 processadores. Processadores Opteron com suporte a memrias DDR usam um nmero de modelo de trs dgitos, enquanto que processadores Opteron com suporte a memrias DDR2 usam um nmero de modelo de quatro dgitos. A segunda diferena principal no nmero de barramentos HyperTransport suportados. Todos os processadores baseados na arquitetura do Athlon 64 e os processadores Opteron iniciados com 1 tm apenas um barramento HyperTransport. Processadores Opteron iniciados com 2 tm dois barramentos HyperTransport (ou trs, no caso dos processadores Opteron de quatro dgitos), enquanto que processadores Opteron iniciados com 8 tm trs barramentos HyperTransport. 15.3 Instalao de Sistemas bsicos e aplicativos 15.4 Administrao de Sistemas Operacionais Windows e Linux

P g i n a | 72 16 Servidores WEB e Aplicao 16.1 Apache O servidor Apache (ou Servidor HTTP Apache, em ingls: Apache HTTP Server, ou simplesmente: Apache) o mais bem sucedido servidor web livre. Foi criado em 1995 por Rob McCool, ento funcionrio do NCSA (National Center for Supercomputing Applications). Numa pesquisa realizada em dezembro de 2007[1], foi constatado que a utilizao do Apache representa 47.20% dos servidores ativos no mundo. Em maio de 2010 [2], o Apache serviu mais de 54,68% de todos os sites e mais de 66% dos milhes de sites mais movimentados. a principal tecnologia da Apache Software Foundation, responsvel por mais de uma dezena de projetos envolvendo tecnologias de transmisso via web, processamento de dados e execuo de aplicativos distribudos. O servidor compatvel com o protocolo HTTP verso 1.1[3]. Suas funcionalidades so mantidas atravs de uma estrutura de mdulos, permitindo inclusive que o usurio escreva seus prprios mdulos utilizando a API do software. Sua porta padro a 80. disponibilizado em verses para os sistemas Windows, Novell Netware, OS/2 e diversos outros do padro POSIX (Unix, Linux, FreeBSD, etc.). Para garantir segurana nas transaes HTTP, o servidor dispe de um mdulo chamado mod_ssl, o qual adiciona a capacidade do servidor atender requisies utilizando o protocolo HTTPS. Este protocolo utiliza uma camada SSL para criptografar todos os dados transferidos entre o cliente e o servidor, provendo maior grau de segurana, confidencialidade e confiabilidade dos dados. A camada SSL compatvel com certificados X.509, que so os certificados digitais fornecidos e assinados por grandes entidades certificadoras no mundo. O servidor configurado por um arquivo mestre nomeado httpd.conf e opcionalmente pode haver configuraes para cada diretrio utilizando arquivos com o nome .htaccess, onde possvel utilizar autenticao de usurio pelo prprio protocolo HTTP utilizando uma combinao de arquivo .htaccess com um arquivo .htpasswd, que guardar os usurios e senhas (criptografadas). Caractersticas do servidor Apache O Apache Server um software livre, o que significa que qualquer um pode estudar ou alterar seu cdigofonte, alm de poder utiliz-lo gratuitamente. graas a essa caracterstica que o software foi (e continua sendo) melhorado ao passar dos anos. Graas ao trabalho muitas vezes voluntrio de vrios desenvolvedores, o Apache continua sendo o servidor Web mais usado no mundo. Alm de estar disponvel para o Linux (e para outros sistemas operacionais baseados no Unix), o Apache tambm conta com verses para o Windows, para o Novell Netware e para o OS/2, o que o torna uma tima opo para rodar em computadores obsoletos (desde que este atenda aos requisitos mnimos de hardware).

P g i n a | 73 O servidor Apache capaz de executa cdigo em PHP, Perl, Shell Script e at em ASP e pode atuar como servidor FTP, HTTP, entre outros. Sua utilizao mais conhecida a que combina o Apache com a linguagem PHP e o banco de dados MySQL (combinao usada aqui no InfoWester, por exemplo). A exigncia de hardware do Apache depende de sua aplicao, mas um PC Pentium com 64 MB de memria RAM capaz de execut-lo tranqilamente em um ambiente corporativo pequeno. No entanto, quando se trata de um site na internet, interessante ter mquinas to poderosas quanto o que exige o nvel de acesso. Abaixo, segue um resumo com as principais caractersticas (extrado do Guia Foca Linux): Possui suporte a scripts cgi usando linguagens como Perl, PHP, Shell Script, ASP, etc; Suporte a autorizao de acesso podendo ser especificadas restries de acesso separadamente para cada endereo/arquivo/diretrio acessado no servidor; Autenticao requerendo um nome de usurio e senha vlidos para acesso a alguma pgina/subdiretrio/arquivo (suportando criptografia via Crypto e MD5); Negociao de contedo, permitindo a exibio da pgina Web no idioma requisitado pelo Cliente Navegador; Suporte a tipos mime; Personalizao de logs; Mensagens de erro; Suporte a virtual hosting ( possvel servir 2 ou mais pginas com endereos/ portas diferentes atravs do mesmo processo ou usar mais de um processo para controlar mais de um endereo); Suporte a IP virtual hosting; Suporte a name virtual hosting; Suporte a servidor Proxy ftp e http, com limite de acesso, caching (todas flexivelmente configurveis); Suporte a proxy e redirecionamentos baseados em URLs para endereos Internos; Suporte a criptografia via SSL,Certificados digitais; Mdulos DSO (Dynamic Shared Objects) permitem adicionar/remover funcionalidades e recursos sem necessidade de recompilao do programa. 16.2 Apache Tomcat O Tomcat um servidor web Java, mais especificamente, um container de servlets. O Tomcat um servidor de aplicaes JEE, porm no um servidor de EJBs. Desenvolvido pela Apache Software Foundation, distribudo como software livre dentro do conceituado projeto Apache Jakarta, sendo oficialmente endossado pela Sun como a implementao de referncia para as tecnologias Java Servlet e JavaServer Pages (JSP). Ele cobre parte da especificao J2EE com tecnologias como servlet e JSP, e tecnologias de apoio relacionadas como Realms e segurana, JNDI Resources e JDBC DataSources. Ele tem a capacidade de atuar tambm como servidor web, ou pode funcionar integrado a um servidor web dedicado como o Apache ou o IIS. Como servidor web, ele prov um servidor web HTTP puramente em Java. O servidor inclui ferramentas para configurao e gerenciamento, o que tambm pode ser feito editandose manualmente arquivos de configurao formatados em XML.

P g i n a | 74

O software Tomcat, desenvolvido pela Fundao Apache, permite a execuo de aplicaes para web. Sua principal caracterstica tcnica estar centrada na linguagem de programao Java, mais especificamente nas tecnologias de Servlets e de Java Server Pages (JSP). Esta abordagem rivaliza, por exemplo, com a usada pela Microsoft com o ASP (baseada na linguagem Visual Basic). A Fundao Apache, mais conhecida pelo seu servidor web de mesmo nome, permite, como no caso do servidor Apache, que o Tomcat seja usado livremente, seja para fins comerciais ou no. O Tomcat est escrito em Java e, por isso, necessita que a verso Java 2 Standard Edition (J2SE) esteja instalada no mesmo computador onde ele ser executado. No entanto, no basta ter a verso runtime de Java instalada, pois o Tomcat necessita compilar (e no apenas executar) programas escritos em Java. O projeto Jakarta da Fundao Apache, do qual o subprojeto Tomcat o representante mais ilustre, tem como objetivo o desenvolvimento de solues cdigo aberto baseadas na plataforma Java. Linguagens: Java, HTML e XML O desenvolvimento de uma tpica aplicao web a ser executada pelo Tomcat implica no domnio das seguintes linguagens: Java: Todos os algoritmos da aplicao devem ser escritos em Java. HTML: A interface da aplicao, isto , aquilo que o usurio v em sua tela, construda na forma de pginas escritas em HTML e visualizadas atravs do browser do usurio. Esta tarefa normalmente delegada ao web designer. XML: Qualquer aspecto relacionado configurao da aplicao deve ser expresso por meio da linguagem XML em um arquivo chamado web.xml. Os dados de configurao podem ser usados tanto pelo Tomcat como pela aplicao.

Servlets e Java Server Pages Um servlet uma classe escrita em Java cujos objetos tm a finalidade de gerar documentos codificados em HTML. Esta caracterstica dos servlets implica em que um web designer precisa conhecer Java para poder construir as pginas de uma aplicao. Esta limitao (quantos web designers conhecem Java?) superada pela tecnologia de JSP. Uma pgina escrita em JSP (arquivos com extenso .jsp) uma pgina escrita em HTML e que contm pequenos fragmentos de cdigo Java e/ou tags especiais (definidos na especificao JSP). Com estes tags, o web designer no necessita escrever uma nica linha de cdigo Java. Ao contrrio do que acontece com a tecnologia ASP, o analista/programador pode criar (em Java) os seus prprios tags customizados para a aplicao em desenvolvimento. O servidor Tomcat tem a habilidade de converter automaticamente qualquer pgina JSP em um servlet equivalente. Em outras palavras, o Tomcat capaz de criar cdigo fonte Java a partir de um documento HTML.

P g i n a | 75 Do ponto de vista tcnico, Tomcat a implementao referncia das especificaes das tecnologias de servlets e JSP criadas pela Sun. A verso 4.0.x do Tomcat implementa as especificaes Servlet 2.3 e JSP 1.2 (que so as mais recentes). Vrias empresas, como Borland, IBM, BEA, etc., tambm oferecem suas implementaes das duas especificaes da Sun. Do ponto de vista operacional, a principal finalidade das tecnologias de servlets e JSP permitir a criao dinmica de contedos. A dinmica, em um cenrio tpico, funciona do seguinte modo: Um usurio, no seu browser, solicita algum documento (indicado por um URL) a um servidor Tomcat; O servidor, ao receber uma solicitao (URL) do usurio, executa o servlet ou JSP correspondente quele URL (a associao entre URL e servlet ou JSP especificada no arquivo web.xml). O contedo gerado pelo servlet ou JSP, normalmente um documento no formato HTML, uma combinao de tags HTML (includos explicitamente) e o resultado de algum processamento (por exemplo, algoritmo Java e/ou acesso a um banco de dados). O usurio recebe o contedo gerado pelo servidor Tomcat e o exibe atravs do seu browser. Na Prtica Em termos prticos, o Tomcat pode ser usado isoladamente, assumindo o papel de um servidor web, ou em conjunto com outro servidor (como o Apache). Neste caso, o Apache atende a requisies de pginas estticas enquanto que o Tomcat atende a requisies de pginas dinmicas. Outra forma de usar o Tomcat como parte da verso J2EE (Enterprise Edition) de Java para a criao de servidores de aplicao. Este o caso, por exemplo, do servidor de aplicao JBoss. Caracteristicas: Sua porta padro 8080; Atualmente est na verso 7.0, entretanto sua verso mais estvel a 6.0; Sua principal varivel e ambiente : CATALINA_HOME. 16.3 Ferramentas para Avaliao de Desempenho de Computadores 17 Segurana da Informao Introduo A segurana da informao est relacionada com proteo de um conjunto de dados, no sentido de preservar o valor que possuem para um indivduo ou uma organizao. So caractersticas bsicas da segurana da informao os atributos de confidencialidade, integridade, disponibilidade e autenticidade, no estando esta segurana restrita somente a sistemas computacionais, informaes eletrnicas ou sistemas de armazenamento. O conceito se aplica a todos os aspectos de proteo de informaes e dados. O conceito de Segurana Informtica ou Segurana de Computadores est intimamente relacionado com o de Segurana da Informao, incluindo no apenas a segurana dos dados/informao, mas tambm a dos sistemas em si. Atualmente o conceito de Segurana da Informao est padronizado pela norma ISO/IEC 17799:2005, influenciada pelo padro ingls (British Standard) BS 7799. A srie de normas ISO/IEC 27000 foram reservadas para tratar de padres de Segurana da Informao, incluindo a complementao ao trabalho

P g i n a | 76 original do padro ingls. A ISO/IEC 27002:2005 continua sendo considerada formalmente como 17799:2005 para fins histricos. Conceitos de Segurana A Segurana da Informao se refere proteo existente sobre as informaes de uma determinada empresa ou pessoa, isto , aplica-se tanto as informaes corporativas quanto s pessoais. Entende-se por informao todo e qualquer contedo ou dado que tenha valor para alguma organizao ou pessoa. Ela pode estar guardada para uso restrito ou exposta ao pblico para consulta ou aquisio. Podem ser estabelecidas mtricas (com o uso ou no de ferramentas) para a definio do nvel de segurana existente e, com isto, serem estabelecidas as bases para anlise da melhoria ou piora da situao de segurana existente. A segurana de uma determinada informao pode ser afetada por fatores comportamentais e de uso de quem se utiliza dela, pelo ambiente ou infraestrutura que a cerca ou por pessoas mal intencionadas que tm o objetivo de furtar, destruir ou modificar tal informao. A trade CIA (Confidentiality, Integrity and Availability) -- Confidencialidade, Integridade e Disponibilidade -representa os principais atributos que, atualmente, orientam a anlise, o planejamento e a implementao da segurana para um determinado grupo de informaes que se deseja proteger. Outros atributos importantes so a irretratabilidade e a autenticidade. Com a evoluo do comrcio eletrnico e da sociedade da informao, a privacidade tambm uma grande preocupao. Portanto os atributos bsicos, segundo os padres internacionais (ISO/IEC 17799:2005) so os seguintes: Confidencialidade - propriedade que limita o acesso a informao to somente s entidades legtimas, ou seja, quelas autorizadas pelo proprietrio da informao. Integridade - propriedade que garante que a informao manipulada mantenha todas as caractersticas originais estabelecidas pelo proprietrio da informao, incluindo controle de mudanas e garantia do seu ciclo de vida (nascimento,manuteno e destruio). Disponibilidade - propriedade que garante que a informao esteja sempre disponvel para o uso legtimo, ou seja, por aqueles usurios autorizados pelo proprietrio da informao. Irretratabilidade - propriedade que garante a impossibilidade de negar a autoria em relao a uma transao anteriormente feita Para a montagem desta poltica, deve-se levar em conta: Riscos associados falta de segurana; Benefcios; Custos de implementao dos mecanismos. Mecanismo de Segurana O suporte para as recomendaes de segurana pode ser encontrado em: Controles fsicos: so barreiras que limitam o contato ou acesso direto a informao ou a infraestrutura (que garante a existncia da informao) que a suporta. Existem mecanismos de segurana que apiam os controles fsicos: Portas / trancas / paredes / blindagem / guardas / etc ..

P g i n a | 77 Controles lgicos: so barreiras que impedem ou limitam o acesso a informao, que est em ambiente controlado, geralmente eletrnico, e que, de outro modo, ficaria exposta a alterao no autorizada por elemento mal intencionado. Existem mecanismos de segurana que apiam os controles lgicos: Mecanismos de criptografia. Permitem a transformao reversvel da informao de forma a tornla ininteligvel a terceiros. Utiliza-se para tal, algoritmos determinados e uma chave secreta para, a partir de um conjunto de dados no criptografados, produzir uma sequncia de dados criptografados. A operao inversa a decifrao. Assinatura digital. Um conjunto de dados criptografados, associados a um documento do qual so funo, garantindo a integridade e autenticidade do documento associado, mas no a sua confidencialidade. Mecanismos de garantia da integridade da informao. Usando funes de "Hashing" ou de checagem, consistindo na adio. Mecanismos de controle de acesso. Palavras-chave, sistemas biomtricos, firewalls, cartes inteligentes. Mecanismos de certificao. Atesta a validade de um documento. Integridade. Medida em que um servio/informao genuno, isto , est protegido contra a personificao por intrusos. Honeypot: o nome dado a um software, cuja funo detectar ou de impedir a ao de um cracker, de um spammer, ou de qualquer agente externo estranho ao sistema, enganando-o, fazendo-o pensar que esteja de fato explorando uma vulnerabilidade daquele sistema. Protocolos seguros: uso de protocolos que garantem um grau de segurana e usam alguns dos mecanismos citados aqui Existe hoje em dia um elevado nmero de ferramentas e sistemas que pretendem fornecer segurana. Alguns exemplos so os detectores de intruses, os anti-vrus, firewalls, firewalls locais, filtros anti-spam, fuzzers, analisadores de cdigo, etc. Ameaas a Segurana As ameaas segurana da informao so relacionadas diretamente perda de uma de suas 3 caractersticas principais, quais sejam: Perda de Confidencialidade: seria quando h uma quebra de sigilo de uma determinada informao (ex: a senha de um usurio ou administrador de sistema) permitindo que sejam expostas informaes restritas as quais seriam acessveis apenas por um determinado grupo de usurios. Perda de Integridade: aconteceria quando uma determinada informao fica exposta a manuseio por uma pessoa no autorizada, que efetua alteraes que no foram aprovadas e no esto sob o controle do proprietrio (corporativo ou privado) da informao. Perda de Disponibilidade: acontece quando a informao deixa de estar acessvel por quem necessita dela. Seria o caso da perda de comunicao com um sistema importante para a empresa, que aconteceu com a queda de um servidor ou de uma aplicao crtica de negcio, que apresentou uma falha devido a um erro causado por motivo interno ou externo ao equipamento ou por ao no autorizada de pessoas com ou sem m inteno. No caso de ameaas rede de computadores ou a um sistema, estas podem vir de agentes maliciosos, muitas vezes conhecidos como crackers, (hackers no so agentes maliciosos, pois tentam ajudar a

P g i n a | 78 encontrar possiveis falhas). Estas pessoas so motivadas para fazer esta ilegalidade por vrios motivos. Os principais so: notoriedade, auto-estima, vingana e o dinheiro. De acordo com pesquisa elaborada pelo Computer Security Institute ([1]), mais de 70% dos ataques partem de usurios legtimos de sistemas de informao (Insiders) -- o que motiva corporaes a investir largamente em controles de segurana para seus ambientes corporativos (intranet). Nveis de Segurana Depois de identificado o potencial de ataque, as organizaes tm que decidir o nvel de segurana a estabelecer para uma rede ou sistema os recursos fsicos e lgicos a necessitar de proteo. No nvel de segurana devem ser quantificados os custos associados aos ataques e os associados implementao de mecanismos de proteo para minimizar a probabilidade de ocorrncia de um ataque. Segurana fsica: Considera as ameaas fsicas como incndios, desabamentos, relmpagos, alagamento, acesso indevido de pessoas, forma inadequada de tratamento e manuseio do material. Segurana lgica: Atenta contra ameaas ocasionadas por vrus, acessos remotos rede, backup desatualizados, violao de senhas, etc. Segurana lgica a forma como um sistema protegido no nvel de sistema operacional e de aplicao. Normalmente considerada como proteo contra ataques, mas tambm significa proteo de sistemas contra erros no intencionais, como remoo acidental de importantes arquivos de sistema ou aplicao. Polticas de Segurana De acordo com o RFC 2196 (The Site Security Handbook), uma poltica de segurana consiste num conjunto formal de regras que devem ser seguidas pelos utilizadores dos recursos de uma organizao. As polticas de segurana devem ter implementao realista, e definir claramente as reas de responsabilidade dos utilizadores, do pessoal de gesto de sistemas e redes e da direo. Deve tambm adaptar-se a alteraes na organizao. As polticas de segurana fornecem um enquadramento para a implementao de mecanismos de segurana, definem procedimentos de segurana adequados, processos de auditoria segurana e estabelecem uma base para procedimentos legais na sequncia de ataques. O documento que define a poltica de segurana deve deixar de fora todos os aspectos tcnicos de implementao dos mecanismos de segurana, pois essa implementao pode variar ao longo do tempo. Deve ser tambm um documento de fcil leitura e compreenso, alm de resumido. Algumas normas definem aspectos que devem ser levados em considerao ao elaborar polticas de segurana. Entre essas normas esto a BS 7799 (elaborada pela British Standards Institution) e a NBR ISO/IEC 17799 (a verso brasileira desta primeira). A ISO comeou a publicar a srie de normas 27000, em substituio ISO 17799 (e por conseguinte BS 7799), das quais a primeira, ISO 27001, foi publicada em 2005. Existem duas filosofias por trs de qualquer poltica de segurana: a proibitiva (tudo que no expressamente permitido proibido) e a permissiva (tudo que no proibido permitido).

P g i n a | 79 Os elementos da poltica de segurana devem ser considerados: A Disponibilidade: o sistema deve estar disponvel de forma que quando o usurio necessitar, possa usar. Dados crticos devem estar disponveis ininterruptamente. A Legalidade A Integridade: o sistema deve estar sempre ntegro e em condies de ser usado. A Autenticidade: o sistema deve ter condies de verificar a identidade dos usurios, e este ter condies de analisar a identidade do sistema. A Confidencialidade: dados privados devem ser apresentados somente aos donos dos dados ou ao grupo por ele liberado. Ameaas ao Sistema So todas as condies (possibilidades) de dano aos sistemas de informao, maculando as garantias associadas aos princpios vistos. 1. Falhas de Hardware: so impossveis de prever e normalmente, impossveis de consertar. 2. Vulnerabilidades de Programas: falhas de desenvolvimento dos softwares usados no cotidiano permitem que os conhecedores de tais defeitos possam explor-los para prejudicar o sistema. 3. Ataques: atos deliberados de usurios mal-intencionados para prejudicar um sistema de informaes ou obter dados. 4. Malware: programas criados com objetivos prejudiciais, comprometendo, assim a segurana dos sistemas de informao. 5. Backdoor: brechas intencionais, no documentadas, em programas legtimos, que permitem o acesso ao sistema por parte de seus criadores ou mantenedores. 6. SPAM: envio em massa de mensagens de e-mail no autorizadas pelos destinatrios. 7. Cavalo de Tria: um programa que apresenta-se como algo inofensivo (um jogo, um carto de Natal, etc) e que, na verdade, esconde objetivos maliciosos, como apagar dados, roubar informaes e, mais comumente, abrir portas de comunicao para que se possa invadir o computador que o executou. 8. Sniffer: um programa que instalado na mquina do atacante e serve para capturar os quadros da rede que chegam quela mquina, mesmo os que no so oficialmente direcionados a ela. 9. Spyware: um programa que monitora e registra os hbitos de navegao e acesso Internet do micro infectado. 10. Adware: um programa que fica fazendo anncios de propaganda no micro infectado. 11. Port Scanner: um programa que vasculha um computador alvo procura de portas (servios) abertas para que, atravs delas, se possa perpetrar uma invaso quele micro. 12. Exploit: um programa construdo para tirar vantagem de alguma falha, ou vulnerabilidade, conhecida em um sistema de informaes. 13. Word: um programa que apenas usa a estrutura das redes para se copiar de micro em micro, degradando a velocidade da comunicao nesta estrutura. 18 Aplicativos de Escritrio Planilha Eletrnica 19 Cabeamento Estruturado

P g i n a | 80 20 Redes Sem Fio: protocolos, tipos, segurana, projetos, administrao centralizada. 20.1 Introduo Uma rede sem fio refere-se a uma passagem area sem a necessidade do uso de cabos sejam eles telefnicos, coaxiais ou pticos por meio de equipamentos que usam radiofrequncia (comunicao via ondas de rdio) ou comunicao via infravermelho, como em dispositivos compatveis com IrDA. conhecido tambm pelo anglicismo wireless. O uso da tecnologia vai desde transceptores de rdio como walkie-talkies at satlites artificais no espao. Seu uso mais comum em redes de computadores, servindo como meio de acesso Internet atravs de locais remotos como um escritrio, um bar, um aeroporto, um parque, ou at mesmo em casa, etc. Sua classificao baseada na rea de abrangncia: redes pessoais ou curta distncia (WPAN), redes locais (WLAN), redes metropolitanas (WMAN) e redes geograficamente distribudas ou de longa distncia (WWAN). 20.2 Classificao As redes sem fios podem ser classificadas em: WPAN Wireless Personal Area Network (WPAN, rede de rea pessoal sem fio) um tipo de rede onde vrios dispositivos, como celulares, esto conectados a uma rede sem fio disponibilizada em um alcance pequeno, normalmente alguns metros. Est normalmente associada ao Bluetooth (antigamente ao IR). Pode ser vista com a interaco entre os dispositivos mveis de um utilizador. A WPAN projectada pra pequenas distncia, baixo custo e baixas taxas de transferncia. O padro 802.15, denominado padro de rede de rea pessoal sem fio (Wireless Personal Area Network WPAN), um primo do 802.11 na famlia IEEE 802, cuja finalidade prover conectividade entre dispositivos pessoais separados por at 10 metros, aproximadamente. O 802.15 essencialmente uma tecnologia de substituio de cabo de baixa potncia, curto alcance e baixa velocidade para interconectar notebooks, equipamentos perifricos , telefones celulares, PDAS, e Smartphones, ao passo que o 802.11 uma tecnologia de acesso de potncia mais alta, alcance mdio e velocidade mais alta. WLAN Wireless LAN ou WLAN (Wireless Local Area Network) uma rede local que usa ondas de rdio para fazer uma conexo Internet ou entre uma rede, ao contrrio da rede fixa ADSL ou conexo-TV, que geralmente usa cabos. WLAN j muito importante como opo de conexo em muitas reas de negcio. Inicialmente os WLANs assim distante do pblico em geral foi instalado nas universidades, nos aeroportos, e em outros lugares pblicos principais. A diminuio dos custos do equipamento de WLAN trouxe-o tambm a muitos particulares. Entretanto, no Reino Unido o custo de usar tais conexes limitou assim o uso aos lounges das Businessclass dos aeroportos, etc. Nova Iorque comeou mesmo um programa piloto para cobrir todos os cinco quarteires da cidade com a Internet Wireless. Originalmente a WLAN era muito cara e foi somente usada como uma alternativa ao LAN-Internet com cabo nos lugares onde instalar cabos era difcil ou impossvel. Tais lugares poderiam ser edifcios ou salas de aula velhas, embora a escala restrita o padro IEEE_802.11b limita seu uso aos edifcios menores. Os componentes de WLAN so agora baratos o bastante

P g i n a | 81 para ser usado nas horas de repouso e podem ser usados para compartilhar uma conexo Internet com a famlia inteira. Desenvolvimentos foram feitas nos padres de transmisso com os protocolos proprietrios, mas no fim dos anos 90 estes foram substitudos por padres, de vrias verses IEEE_802.11 (Wi-Fi) (veja artigos separados) ou HomeRF (2 Mb/s, para o uso caseiro. A falta da segurana das conexes wireless um ponto fraco, porm muitas (ADSL) conexes broadband so oferecidas agora junto com um ponto de acesso wireless com possibilidade de usar protocolos mais seguros como o WPA. Muitos Computadores portteis j vm agora de fbrica com WiFi Centrino instalado e assim elimina a necessidade de um carto adicional com encaixe (PCMCIA). O uso de Windows xp ou Ubuntu GNU/Linux torna muito fcil configurar um PC como cliente de WLAN e permite aos PCs o acesso o Internet atravs dos Hotspots (estaes base). Entretanto a falta da percia em ajustar tais sistemas significa frequentemente que seu vizinho compartilha tambm de sua conexo Internet, s vezes sem voc (ou eles) se darem conta. A frequncia em que 802.11b se opera 2.4GHz, a que pode conduzir interferncia com muitos telefones sem fio. WMAN Wireless Metropolitan Area Network uma rede de rea metropolitana sem fio (wireless). Os WMAN baseiam-se na norma IEEE 802.16.A WLAN tem de 4 a 5 quilometros de alcance. WWAN WWAN (Wireless Wide Area Network - Rede de longa distncia sem-fio) uma tecnologia que as operadoras de celulares utilizam para criar a sua rede de transmisso (CDMA, GSM, etc). Com o advento das comunicaes sem fio (wi-fi), surgiram diversos meios de transmitir dados sem estar conectado por um cabo. 21 Redes de Computadores: Modelo OSI e TCP/IP, conceitos e protocolos 21.1 Modelo OSI

P g i n a | 82 A Organizao Internacional para a Normalizao,ISO, foi uma das primeiras organizaes a definir formalmente uma forma comum de conectar computadores. Sua arquitetura chamada OSI (Open Systems Interconnection), Camadas OSI ou Interconexo de Sistemas Abertos. Esta arquitetura um modelo que divide as redes de computadores em sete camadas, de forma a se obter camadas de abstrao. Cada protocolo implementa uma funcionalidade assinalada a uma determinada camada. Este modelo dividido em camadas hierrquicas, ou seja, cada camada usa as funes da prpria camada ou da camada anterior, para esconder a complexidade e transparecer as operaes para o usurio, seja ele um programa ou uma outra camada. Suas Camadas: 1. Fsica Camada fsica refere-se, em informtica, considerao dos componentes de hardware envolvidos em um determinado processo. Em termos de redes, a camada fsica diz respeito aos meios de conexo atravs dos quais iro trafegar os dados, tais como interfaces seriais, LPTs, hubs ou cabos coaxiais. a camada de nvel um (fsico) dos sete nveis de camadas do modelo OSI das redes de computadores. 2. Enlace A camada de ligao de dados tambm conhecida como camada de enlace ou link de dados. Esta camada detecta e, opcionalmente, corrige erros que possam acontecer no nvel fsico. responsvel pela transmisso e recepo (delimitao) de quadros e pelo controle de fluxo. Ela tambm estabelece um protocolo de comunicao entre sistemas diretamente conectados. O controle de fluxo realizado por meio da medio do buffer do receptor no momento da transmisso. Isso impede que uma quantidade excessiva de dados trave um receptor mais lento. Exemplo de protocolos nesta camada: PPP, LAPB (do X.25),NetBios. Na Rede Ethernet cada placa de rede possui um endereo fsico, que deve ser nico na rede. Em redes do padro IEEE 802, e outras no IEEE 802 como a FDDI, esta camada dividida em outras duas camadas: Controle de ligao lgica (LLC), que fornece uma interface para camada superior (rede), e controle de acesso ao meio fsico (MAC), que acessa diretamente o meio fsico e controla a transmisso de dados. 3. Rede A camada de Rede responsvel pelo endereamento dos pacotes de rede, tambm conhecidos por datagrama, associando endereos lgicos (IP) em endereos fsicos (MAC), de forma que os pacotes de rede consigam chegar corretamente ao destino. Essa camada tambm determina a rota que os pacotes iro seguir para atingir o destino, baseada em fatores como condies de trfego da rede e prioridades. As rotas podem ser determinadas por tabelas estticas, no inicio de cada conversao ou altamente dinmicas. Essa camada usada quando a rede possui mais de um segmento e, com isso, h mais de um caminho para um pacote de dados percorrer da origem ao destino.

P g i n a | 83 Funes da Camada: Movimenta pacotes a partir de sua fonte original at seu destino atravs de um ou mais enlaces. Define como dispositivos de rede descobrem uns aos outros e como os pacotes so roteados at seu destino final. 4. Transporte A camada de transporte responsvel por receber os dados enviados pela camada de Sesso e segmentlos para que sejam enviados a camada de Rede, que por sua vez, transforma esses segmentos em pacotes. No receptor, a camada de Transporte realiza o processo inverso, ou seja, recebe os pacotes da camada de Rede e junta os segmentos para enviar camada de Sesso. Isso inclui controle de fluxo, ordenao dos pacotes e a correo de erros, tipicamente enviando para o transmissor uma informao de recebimento, informando que o pacote foi recebido com sucesso. A camada de Transporte separa as camadas de nvel de aplicao (camadas 5 a 7) das camadas de nvel fsico (camadas de 1 a 3). A camada 4, Transporte, faz a ligao entre esses dois grupos e determina a classe de servio necessria como orientada a conexo e com controle de erro e servio de confirmao ou, sem conexes e nem confiabilidade. O objetivo final da camada de transporte proporcionar servio eficiente, confivel e de baixo custo. O hardware e/ou software dentro da camada de transporte e que faz o servio denominado entidade de transporte. A entidade de transporte comunica-se com seus usurios atravs de primitivas de servio trocadas em um ou mais TSAP(Transport Service Access Point), que so definidas de acordo com o tipo de servio prestado: orientado ou no conexo. Estas primitivas so transportadas pelas TPDU (Transport Protocol Data Unit). Na realidade, uma entidade de transporte poderia estar simultaneamente associada a vrios TSA e NSAP(Network Service Access Point). No caso de multiplexao, associada a vrios TSAP e a um NSAP e no caso de splitting, associada a um TSAP e a vrios NSAP. A ISO define o protocolo de transporte para operar em dois modos: Orientado a conexo. No-Orientado a conexo. Como exemplo de protocolo orientado conexo, temos o TCP, e de protocolo no orientado conexo, temos o UDP. obvio que o protocolo de transporte no orientado conexo menos confivel. Ele no garante - entre outras coisas mais -, a entrega das TPDU, nem to pouco a ordenao das mesmas. Entretanto, onde o servio da camada de rede e das outras camadas inferiores bastante confivel - como em redes locais -, o protocolo de transporte no orientado conexo pode ser utilizado, sem o overhead inerente a uma operao orientada conexo. O servio de transporte baseado em conexes semelhante ao servio de rede baseado em conexes. O endereamento e controle de fluxo tambm so semelhantes em ambas as camadas. Para completar, o servio de transporte sem conexes tambm muito semelhante ao servio de rede sem conexes. Constatado os fatos acima, surge a seguinte questo: "Por que termos duas camadas e no uma apenas?". A resposta sutil, mas procede: A camada de rede parte da sub-rede de comunicaes e executada pela

P g i n a | 84 concessionria que fornece o servio (pelo menos para as WAN). Quando a camada de rede no fornece um servio confivel, a camada de transporte assume as responsabilidades, melhorando a qualidade do servio. 5. Sesso A camada de Sesso permite que duas aplicaes em computadores diferentes estabeleam uma sesso de comunicao. Nesta sesso, essas aplicaes definem como ser feita a transmisso de dados e coloca marcaes nos dados que esto a ser transmitidos. Se porventura a rede falhar, os computadores reiniciam a transmisso dos dados a partir da ltima marcao recebida pelo computador receptor. Disponibiliza servios como pontos de controles peridicos a partir dos quais a comunicao pode ser restabelecida em caso de pane na rede. Abre portas para que vrias aplicaes possam escalonar o uso da rede e aproveitar melhor o tempo de uso. Por exemplo, um browser quando for fazer o download de vrias imagens pode requisit-las juntas para que a conexo no fique desocupada. 6. Apresentao A camada de Apresentao, tambm chamada camada de Traduo, converte o formato do dado recebido pela camada de Aplicao em um formato comum a ser usado na transmisso desse dado, ou seja, um formato entendido pelo protocolo usado. Um exemplo comum a converso do padro de caracteres (cdigo de pgina) quando o dispositivo transmissor usa um padro diferente do ASCII. Pode ter outros usos, como compresso de dados e criptografia. Os dados recebidos da camada sete esto descomprimidos, e a camada 6 do dispositivo receptor fica responsvel por comprimir esses dados. A transmisso dos dados torna-se mais rpida, j que haver menos dados a serem transmitidos: os dados recebidos da camada 7 foram "encolhidos" e enviados camada 5. Para aumentar a segurana, pode-se usar algum esquema de criptografia neste nvel, sendo que os dados s sero decodificados na camada 6 do dispositivo receptor. Ela trabalha transformando os dados em um formato no qual a camada de aplicao possa aceitar, minimizando todo tipo de interferncia. Faz a traduo dos dados recebidos da camada de aplicao em um formato a ser utilizado pelo protocolo. 7. Aplicao A camada de aplicao corresponde s aplicaes (programas) no topo da camada OSI que sero utilizados para promover uma interao entre a mquina destinatria e o usurio da aplicao. Esta camada tambm disponibiliza os recursos (protocolo) para que tal comunicao acontea. Por exemplo, ao solicitar a recepo de e-mail atravs do aplicativo de e-mail, este entrar em contato com a camada de Aplicao do protocolo de rede efetuando tal solicitao (POP3, IMAP). Tudo nesta camada relacionado ao software. Alguns protocolos utilizados nesta camada so: HTTP, SMTP, FTP, SSH, Telnet, SIP, RDP, IRC, SNMP, NNTP, POP3, IMAP, BitTorrent, DNS, Ping, etc.

P g i n a | 85 21.2 Modelo TCP/IP

O TCP/IP um conjunto de protocolos de comunicao entre computadores em rede (tambm chamado de pilha de protocolos TCP/IP). Seu nome vem de dois protocolos: o TCP (Transmission Control Protocol Protocolo de Controlo de Transmisso) e o IP (Internet Protocol - Protocolo de Interconexo). O conjunto de protocolos pode ser visto como um modelo de camadas, onde cada camada responsvel por um grupo de tarefas, fornecendo um conjunto de servios bem definidos para o protocolo da camada superior. As camadas mais altas esto logicamente mais perto do usurio (chamada camada de aplicao) e lidam com dados mais abstratos, confiando em protocolos de camadas mais baixas para tarefas de menor nvel de abstrao. Protocolos Os protocolos para internet formam o grupo de protocolos de comunicao que implementam a pilha de protocolos sobre a qual a internet e a maioria das redes comerciais funcionam. Eles so algumas vezes chamados de "protocolos TCP/IP", j que os dois protocolos: o protocolo TCP - Transmission Control Protocol (Protocolo de Controle de Transmisso); e o IP - Internet Protocol (Protocolo de Internet) foram os primeiros a serem definidos. O modelo OSI descreve um grupo fixo de sete camadas que pode ser comparado, a grosso modo, com o modelo TCP/IP. Essa comparao pode causar confuso ou trazer detalhes mais internos para o TCP/IP. O modelo inicial do TCP/IP baseado em 4 nveis: Host/rede; Inter-rede; Transporte; e Aplicao. Surgiu, ento, um modelo hbrido, com 5 camadas, que retira o excesso do modelo OSI e melhora o modelo TCP/IP: Fsica; Enlace; Rede; Transporte; e Aplicao. Resumidamente, o modelo o que podemos chamar de uma "soluo prtica para problemas de transmisso de dados". Textualmente isto pode parecer muito genrico, pois na realidade para melhor compreenso de um protocolo TCP/IP deveremos usar exemplos prticos. Camadas O modelo TCP/IP de encapsulamento busca fornecer abstrao aos protocolos e servios para diferentes camadas de uma pilha de estruturas de dados (ou simplesmente pilha). No caso do TCP/IP, a pilha possui quatro camadas:

P g i n a | 86

Camada 4 - Aplicao (camadas OSI 5 at 7) 3 - Transporte (camadas OSI 4) 2 - Internet ou Inter - Rede (camada OSI 3)

Exemplo HTTP, HTTPS, FTP, DNS, RTP (protocolos de routing como BGP e RIP, que, por uma variedade de razes, so executados sobre TCP e UDP respectivamente, podem tambm ser considerados parte da camada de aplicao) TCP, UDP, SCTP (protocolos como OSPF, que executado sobre IP, podem tambm ser considerados parte da camada de rede) Para TCP/IP o protocolo IP, MPLS (protocolos requeridos como ICMP e IGMP executado sobre IP, mas podem ainda ser considerados parte da camada de rede; ARP no roda sobre IP)

1 - Interface com a Rede Ethernet, Wi-Fi,Modem, etc. (camadas OSI 1 e 2) As camadas mais prximas do topo esto logicamente mais perto do usurio, enquanto aquelas mais abaixo esto logicamente mais perto da transmisso fsica do dado. Cada camada tem um protocolo de camada acima e um protocolo de camada abaixo (exceto as camadas da ponta, obviamente) que podem usar servios de camadas anteriores ou fornecer um servio, respectivamente. Enxergar as camadas como fornecedores ou consumidores de servio um mtodo de abstrao para isolar protocolos de camadas acima dos pequenos detalhes de transmitir bits atravs, digamos, de ethernet, e a deteco de coliso enquanto as camadas abaixo evitam ter de conhecer os detalhes de todas as aplicaes e seus protocolos. Essa abstrao tambm permite que camadas de cima forneam servios que as camadas de baixo no podem fornecer. Por exemplo, o IP projetado para no ser confivel e um protocolo best effort delivery. Isso significa que toda a camada de transporte deve indicar se ir ou no fornecer confiabilidade e em qual nvel. O TCP (Transmission Control Protocol - Protocolo de Controle de Transmisso), um protocolo orientado a conexes confivel que permite a entrega sem erros de um fluxo de bytes. O UDP fornece integridade de dados (via um checksum) mas no fornece entrega garantida; j o TCP fornece tanto integridade dos dados quanto garantia de entrega (retransmitindo at que o destinatrio receba o pacote). 22 Criptografia, Assinatura Digital e Certificados Digitais 22.1 Criptografia Criptografia (Do Grego krypts, "escondido", e grphein, "escrita") o estudo dos princpios e tcnicas pelas quais a informao pode ser transformada da sua forma original para outra ilegvel, de forma que possa ser conhecida apenas por seu destinatrio (detentor da "chave secreta"), o que a torna difcil de ser lida por algum no autorizado. Assim sendo, s o receptor da mensagem pode ler a informao com facilidade. um ramo da Matemtica, parte da Criptologia.[1][2] H dois tipos de chaves criptogrficas:

P g i n a | 87 chaves simtricas e chaves assimtrica.[3] Uma informao no-cifrada que enviada de uma pessoa (ou organizao) para outra chamada de "texto claro" (plaintext). Cifragem o processo de converso de um texto claro para um cdigo cifrado e decifragem o processo contrrio, de recuperar o texto original a partir de um texto cifrado. De facto, o estudo da criptografia cobre bem mais do que apenas cifragem e decifragem. um ramo especializado da teoria da informao com muitas contribuies de outros campos da matemtica e do conhecimento, incluindo autores como Maquiavel, Sun Tzu e Karl von Clausewitz. A criptografia moderna basicamente formada pelo estudo dos algoritmos criptogrficos que podem ser implementados em computadores. Objetivos A criptografia tem quatro objetivos principais: Confidencialidade da mensagem: s o destinatrio autorizado deve ser capaz de extrair o contedo da mensagem da sua forma cifrada. Alm disso, a obteno de informao sobre o contedo da mensagem (como uma distribuio estatstica de certos caracteres) no deve ser possvel, uma vez que, se o for, torna mais fcil a anlise criptogrfica. Integridade da mensagem: o destinatrio dever ser capaz de determinar se a mensagem foi alterada durante a transmisso. Autenticao do remetente: o destinatrio dever ser capaz de identificar o remetente e verificar que foi mesmo ele quem enviou a mensagem. No-repdio ou irretratabilidade do emissor: no dever ser possvel ao emissor negar a autoria da mensagem. Nem todos os sistemas ou algoritmos criptogrficos so utilizados para atingir todos os objetivos listados acima. Normalmente, existem algoritmos especficos para cada uma destas funes. Mesmo em sistemas criptogrficos bem concebidos, bem implementados e usados adequadamente, alguns dos objetivos acima no so prticos (ou mesmo desejveis) em algumas circunstncias. Por exemplo, o remetente de uma mensagem pode querer permanecer annimo, ou o sistema pode destinar-se a um ambiente com recursos computacionais limitados. Criptografia de chave simtrica e de chaves assimtricas De acordo com o tipo de chave usada, os mtodos criptogrficos podem ser subdivididos em duas grandes categorias: criptografia de chave simtrica e criptografia de chaves assimtricas. Criptografia de chave simtrica: tambm chamada de criptografia de chave secreta ou nica, utiliza uma mesma chave tanto para codificar como para decodificar informaes, sendo usada principalmente para garantir a confidencialidade dos dados. Casos nos quais a informao codificada e decodificada por uma mesma pessoa no h necessidade de compartilhamento da chave secreta. Entretanto, quando estas operaes envolvem pessoas ou equipamentos diferentes, necessrio que a chave secreta seja previamente combinada por meio de um canal de comunicao seguro (para no comprometer a confidencialidade da chave). Exemplos de mtodos criptogrficos que usam chave simtrica so: AES, Blowfish, RC4, 3DES e IDEA. Criptografia de chaves assimtricas: tambm conhecida como criptografia de chave pblica, utiliza duas chaves distintas: uma pblica, que pode ser livremente divulgada, e uma privada, que deve ser mantida em segredo por seu dono. Quando uma informao codificada com uma das chaves,

P g i n a | 88 somente a outra chave do par pode decodific-la. Qual chave usar para codificar depende da proteo que se deseja, se confidencialidade ou autenticao, integridade e no-repdio. A chave privada pode ser armazenada de diferentes maneiras, como um arquivo no computador, um smartcard ou um token. Exemplos de mtodos criptogrficos que usam chaves assimtricas so: RSA, DSA, ECC e Diffie-Hellman. A criptografia de chave simtrica, quando comparada com a de chaves assimtricas, a mais indicada para garantir a confidencialidade de grandes volumes de dados, pois seu processamento mais rpido. Todavia, quando usada para o compartilhamento de informaes, se torna complexa e pouco escalvel, em virtude da: Necessidade de um canal de comunicao seguro para promover o compartilhamento da chave secreta entre as partes (o que na Internet pode ser bastante complicado) e; Dificuldade de gerenciamento de grandes quantidades de chaves (imagine quantas chaves secretas seriam necessrias para voc se comunicar com todos os seus amigos). A criptografia de chaves assimtricas, apesar de possuir um processamento mais lento que a de chave simtrica, resolve estes problemas visto que facilita o gerenciamento (pois no requer que se mantenha uma chave secreta com cada um que desejar se comunicar) e dispensa a necessidade de um canal de comunicao seguro para o compartilhamento de chaves. Para aproveitar as vantagens de cada um destes mtodos, o ideal o uso combinado de ambos, onde a criptografia de chave simtrica usada para a codificao da informao e a criptografia de chaves assimtricas utilizada para o compartilhamento da chave secreta (neste caso, tambm chamada de chave de sesso). Este uso combinado o que utilizado pelos navegadoresWeb e programas leitores de e-mails. Exemplos de uso deste mtodo combinado so: SSL, PGP e S/MIME. Funo de resumo (Hash) Uma funo de resumo um mtodo criptogrfico que, quando aplicado sobre uma informao, independente do tamanho que ela tenha, gera um resultado nico e de tamanho fixo, chamadohash1. Voc pode utilizar hash para: Verificar a integridade de um arquivo armazenado em seu computador ou em seus backups; Verificar a integridade de um arquivo obtido da Internet (alguns sites, alm do arquivo em si, tambm disponibilizam o hash correspondente, para que voc possa verificar se o arquivo foi corretamente transmitido e gravado); Gerar assinaturas digitais, como descrito na Seo 9.3.

Para verificar a integridade de um arquivo, por exemplo, voc pode calcular o hash dele e, quando julgar necessrio, gerar novamente este valor. Se os dois hashes forem iguais ento voc pode concluir que o

P g i n a | 89 arquivo no foi alterado. Caso contrrio, este pode ser um forte indcio de que o arquivo esteja corrompido ou que foi modificado. Exemplos de mtodos de hash so: SHA-1, SHA-256 e MD5. 22.2 Assinatura Digital A assinatura digital permite comprovar a autenticidade e a integridade de uma informao, ou seja, que ela foi realmente gerada por quem diz ter feito isto e que ela no foi alterada. A assinatura digital baseia-se no fato de que apenas o dono conhece a chave privada e que, se ela foi usada para codificar uma informao, ento apenas seu dono poderia ter feito isto. A verificao da assinatura feita com o uso da chave pblica, pois se o texto foi codificado com a chave privada, somente a chave pblica correspondente pode decodific-lo. Para contornar a baixa eficincia caracterstica da criptografia de chaves assimtricas, a codificao feita sobre o hash e no sobre o contedo em si, pois mais rpido codificar o hash (que possui tamanho fixo e reduzido) do que a informao toda. 22.3 Certificado Digital Como dito anteriormente, a chave pbica pode ser livremente divulgada. Entretanto, se no houver como comprovar a quem ela pertence, pode ocorrer de voc se comunicar, de forma cifrada, diretamente com um impostor. Um impostor pode criar uma chave pblica falsa para um amigo seu e envi-la para voc ou disponibiliz-la em um repositrio. Ao us-la para codificar uma informao para o seu amigo, voc estar, na verdade, codificando-a para o impostor, que possui a chave privada correspondente e conseguir decodificar. Uma das formas de impedir que isto ocorra pelo uso de certificados digitais. O certificado digital um registro eletrnico composto por um conjunto de dados que distingue uma entidade e associa a ela uma chave pblica. Ele pode ser emitido para pessoas, empresas, equipamentos ou servios na rede (por exemplo, um site Web) e pode ser homologado para diferentes usos, como confidencialidade e assinatura digital. Um certificado digital pode ser comparado a um documento de identidade, por exemplo, o seu passaporte, no qual constam os seus dados pessoais e a identificao de quem o emitiu. No caso do passaporte, a entidade responsvel pela emisso e pela veracidade dos dados a Polcia Federal. No caso do certificado digital esta entidade uma Autoridade Certificadora (AC). Uma AC emissora tambm responsvel por publicar informaes sobre certificados que no so mais confiveis. Sempre que a AC descobre ou informada que um certificado no mais confivel, ela o inclui em uma "lista negra", chamada de "Lista de Certificados Revogados" (LCR) para que os usurios possam tomar conhecimento. A LCR um arquivo eletrnico publicado periodicamente pela AC, contendo o nmero de srie dos certificados que no so mais vlidos e a data de revogao.

P g i n a | 90 Os certificados digitais so apresentados nos navegadores Web. Note que, embora os campos apresentados sejam padronizados, a representao grfica pode variar entre diferentes navegadores e sistemas operacionais. De forma geral, os dados bsicos que compem um certificado digital so: verso e nmero de srie do certificado; dados que identificam a AC que emitiu o certificado; dados que identificam o dono do certificado (para quem ele foi emitido); chave pblica do dono do certificado; validade do certificado (quando foi emitido e at quando vlido); assinatura digital da AC emissora e dados para verificao da assinatura.

O certificado digital de uma AC emitido, geralmente, por outra AC, estabelecendo uma hierarquia conhecida como "cadeia de certificados" ou "caminho de certificao". A AC raiz, primeira autoridade da cadeia, a ncora de confiana para toda a hierarquia e, por no existir outra AC acima dela, possui um certificado autoassinado (mais detalhes a seguir). Os certificados das ACs razes publicamente reconhecidas j vm inclusos, por padro, em grande parte dos sistemas operacionais e navegadores e so atualizados juntamente com os prprios sistemas. Alguns exemplos de atualizaes realizadas na base de certificados dos navegadores so: incluso de novas ACs, renovao de certificados vencidos e excluso de ACs no mais confiveis. Alguns tipos especiais de certificado digital que voc pode encontrar so: Certificado autoassinado: aquele no qual o dono e o emissor so a mesma entidade. Costuma ser usado de duas formas: Legtima: alm das ACs razes, certificados autoassinados tambm costumam ser usados por instituies de ensino e pequenos grupos que querem prover confidencialidade e integridade nas conexes, mas que no desejam (ou no podem) arcar com o nus de adquirir um certificado digital validado por uma AC comercial. Maliciosa: um atacante pode criar um certificado autoassinado e utilizar, por exemplo, mensagens de phishing (mais detalhes na Seo 2.3 do Captulo Golpes na Internet), para induzir os usurios a instal-lo. A partir do momento em que o certificado for instalado no navegador, passa a ser possvel estabelecer conexes cifradas com sites fraudulentos, sem que o navegador emita alertas quanto confiabilidade do certificado. Certificado EV SSL (Extended Validation Secure Socket Layer): certificado emitido sob um processo mais rigoroso de validao do solicitante. Inclui a verificao de que a empresa foi legalmente registrada, encontra-se ativa e que detm o registro do domnio para o qual o certificado ser emitido, alm de dados adicionais, como o endereo fsico. Cuidados a serem tomados Proteja seus dados: utilize criptografia sempre que, ao enviar uma mensagem, quiser assegurar-se que somente o destinatrio possa l-la;

P g i n a | 91 utilize assinaturas digitais sempre que, ao enviar uma mensagem, quiser assegurar ao destinatrio que foi voc quem a enviou e que o contedo no foi alterado; s envie dados sensveis aps certificar-se de que est usando uma conexo segura (mais detalhes na Seo 10.1 do Captulo Uso seguro da Internet); utilize criptografia para conexo entre seu leitor de e-mails e os servidores de e-mail do seu provedor; cifre o disco do seu computador e dispositivos removveis, como disco externo e pen-drive. Desta forma, em caso de perda ou furto do equipamento, seus dados no podero ser indevidamente acessados; verifique o hash, quando possvel, dos arquivos obtidos pela Internet (isto permite que voc detecte arquivos corrompidos ou que foram indevidamente alterados durante a transmisso).

23 VPN Rede Privada Virtual uma rede de comunicaes privada normalmente utilizada por uma empresa ou um conjunto de empresas e/ou instituies, construda em cima de uma rede de comunicaes pblica (como por exemplo, a Internet). O trfego de dados levado pela rede pblica utilizando protocolos padro, no necessariamente seguros. VPNs seguras usam protocolos de criptografia por tunelamento que fornecem a confidencialidade, autenticao e integridade necessrias para garantir a privacidade das comunicaes requeridas. Quando adequadamente implementados, estes protocolos podem assegurar comunicaes seguras atravs de redes inseguras. Deve ser notado que a escolha, implementao e uso destes protocolos no algo trivial, e vrias solues de VPN inseguras so distribudas no mercado. Adverte-se os usurios para que investiguem com cuidado os produtos que fornecem VPNs. Por si s, o rtulo VPN apenas uma ferramenta de marketing. Funcionamento Basicamente, quando uma rede quer enviar dados para a outra rede atravs da VPN, um protocolo, exemplo IPSec, faz o encapsulamento do quadro normal com o cabealho IP da rede local e adiciona o cabealho IP da Internet atribuda ao Roteador, um cabealho AH, que o cabealho de autenticao e o cabealho ESP, que o cabealho que prov integridade, autenticidade e criptografia rea de dados do pacote. Quando esses dados encapsulados chegarem outra extremidade, feito o desencapsulamento do IPSec e os dados so encaminhados ao referido destino da rede local.

Basicamente uma VPN, pode ser feita de duas formas: A primeira forma , um simples host em trnsito, conecta em um provedor Internet e atravs dessa conexo, estabelece um tnel com a rede remota. A figura abaixo demonstra essa forma.

P g i n a | 92

Na segunda forma, duas redes se interligam atravs de hosts com link dedicado ou discado via internet, formando assim um tnel entre as duas redes. A figura 2 ilustra essa forma.

Figura 2: Conexo VPN entre duas redes interligadas. Os protocolos utilizados no tnel virtual, so, (IPSec) Internet Protocol Security, (L2TP) Layer 2 Tunneling Protocol, (L2F) Layer 2 Forwarding e o (PPTP) Point-to-Point Tunneling Protocol. O protocolo escolhido, ser o responsvel pela conexo e a criptografia entre os hosts da rede privada. Eles podem ser normalmente habilitados atravs de um servidor Firewall ou RAS que esteja trabalhando com um deles agregado. A figura 3 ilustra o caminho que os dados percorrem na arquitetura de rede do Windows sobre uma conexo VPN usando um modem analgico.

Figura 3: Passos numa conexo usando PPTP. Um datagram IP, IPX, ou NetBEUI submetido por seu protocolo apropriado interface virtual que representa a conexo VPN, esta, usa o NDIS, que por sua vez, submete o pacote ao NDISWAN que codifica ou comprime e submete ento ao protocolo PPTP, e este, ao formar o pacote resultado, envia pela interface serial que usada pelo modem analgico. Tipos de VPN Existem vrios tipos de implementao de VPN's. Cada uma tem suas especificaes prprias, assim como caractersticas que devem ter uma ateno especial na hora de implementar. Entre os tipos de VPN, destacam-se trs principais:

P g i n a | 93 Intranet VPN Extranet VPN Acesso Remoto VPN

Intranet VPN Em uma Intranet VPN, que pode, por exemplo facilitar a comunicao entre departamentos de uma empresa, um dos quesitos bsicos a considerar a necessidade de uma criptografia rpida, para no sobrecarregar a rede (que tem de ser rpida). Outro requisito essencial a confiabilidade que garanta a prioridade de aplicaes crticas, como por exemplo, sistemas financeiros, banco de dados. E por ltimo, importante a facilidade de gerenciamento, j que numa rede interna, tem-se constantes mudanas de usurios, seus direitos,etc. Acesso Remoto VPN Uma VPN de acesso remoto conecta uma empresa seus empregados que estejam distante fisicamente da rede. Neste caso torna-se necessrio um software cliente de acesso remoto. Quanto aos requisitos bsicos, o mais importante a garantia de QoS(Quality of Service), isto porque, geralmente quando se acessa remotamente de um laptop, voc est limitado velocidade do modem. Outro item no menos importante uma autenticao rpida e eficiente, que garanta a identidade do usurio remoto. E por ltimo, um fator importante, a necessidade de um gerenciamento centralizado desta rede, j que ao mesmo tempo, podese ter muitos usurios remotos logados, o que torna necessrio que todas as informaes sobre os usurios, para efeitos de autenticao por exemplo, estejam centralizadas num nico lugar. Extranet VPN Extranet VPN's so implementadas para conectar uma empresa seus scios, fornecedores, clientes, etc... Para isso necessrio uma soluo aberta,para garantir a interoperabilidade com as vrias solues que as as empresas envolvidas possam ter em suas redes privadas. Outro ponto muito importante a se considerar o controle de trfego, o que minimiza o efeitos dos gargalos existentes em possveis ns entre as redes, e ainda garante uma resposta rpida e suave para aplicaes crticas. 24 Sistemas de Administrao de Diretrio/Dominio: LDAP e Active Directory 25 Sistemas Help Desk 26 Ingls Tcnico

Вам также может понравиться