Mapa Mental de Arquitetura e Organização de Computadores – Hardware Mapa Mental de Arquitetura e Organização de Computadores – Hardware Mapa Mental de Arquitetura e Organização de Computadores – Hardware Mapa Mental de Arquitetura e Organização de Computadores – Barramentos Mapa Mental de Arquitetura e Organização de Computadores – Barramentos Mapa Mental de Arquitetura e Organização de Computadores – Barramentos Arquitetura: Von Neumann Vs Harvard A Arquitetura de von Neumann (de John von Neumann), é uma arquitetura de computador que se caracteriza pela possibilidade de uma máquina digital armazenar seus programas no mesmo espaço de memória que os dados, podendo assim manipular tais programas. A máquina proposta por Von Neumann reúne os seguintes componentes: (i) uma memória, (ii) uma unidade aritmética e lógica (ALU), (iii) uma unidade central de processamento (CPU), composta por diversos registradores, e (iv) uma Unidade de Controle (CU), cuja função é a mesma da tabela de controle da Máquina de Turing universal: buscar um programa na memória, instrução por instrução, e executá-lo sobre os dados de entrada. Cada um dos elementos apresentados é realizado à custa de componentes físicos independentes, cuja implementação tem variado ao longo do tempo, consoante a evolução das tecnologias de fabricação, desde os relés electromagnéticos, os tubos de vácuo (ou válvulas), até aos semicondutores, abrangendo os transistores e os circuitos electrónicos integrados, com média, alta ou muito alta densidade de integração (MSI – medium scale, LSI – large scale, ou VLSI – very large scale integration), medida em termos de milhões transistores por pastilha de silício. As interacções entre os elementos exibem tempos típicos que também têm variado ao longo do tempo, consoante as tecnologias de fabricação. Actualmente, as CPUs processam instruções sob controlo de relógios cujos períodos típicos são da ordem de 1 nanosegundo, ou seja, 10 ? 9 segundos. As memórias centrais têm tempos típicos de acesso da ordem da dezena de nanosegundos. As unidades de entrada e saída exibem tempos típicos extremamente variáveis, mas que são tipicamente muito superiores à escala do nanosegundo. Por exemplo, os discos duros exibem tempos da ordem do milisegundos (milésimo de segundo, 10 ? 3). Outros dispositivos periféricos são inertes, a não ser que sejam activados por utilizadores humanos. Por exemplo, ao se fazer “copy and paste” nao se-percebe nada do que foi descrito acima, pois um teclado só envia informação para o computador após serem pressionada as devidas teclas. Assim, este dispositivo se comunica com a CPU eventualmente e, portanto, exibe tempos indeterminados. A Arquitetura de Harvard baseia-se em um conceito mais recente que a de Von-Neumann, tendo vindo da necessidade de por o microcontrolador para trabalhar mais rápido. É uma arquitetura de computador que se distingue das outras por possuir duas memórias diferentes e independentes em termos de barramento e ligação ao processador. Baseia-se na separação de barramentos de dados das memórias onde estão as instruções de programa e das memórias de dados, permitindo que um processador possa acessar as duas simultaneamente, obtendo um desempenho melhor do que a da Arquitetura de von Neumann, pois pode buscar uma nova instrução enquanto executa outra. A principal vantagem desta arquitectura é dada pela dupla ligação às memórias de dados e programa (código), permitindo assim que o processador leia uma instrução ao mesmo tempo que faz um acesso à memória de dados. A arquitetura Havard também possui um repertório com menos instruções que a de Von-Neumann, e essas são executadas apenas num único ciclo de relógio. Os microcontroladores com arquitetura Havard são também conhecidos como “microcontroladores RISC” (Computador com Conjunto Reduzido de Instruções), e os microcontroladores com uma arquitetura Von-Neumann, de “microcontroladores CISC” (Computador com um Conjunto Complexo de Instruções). A diferença entre a arquitetura Von Neunmann e a Harvard é que a última separa o armazenamento e o comportamento das instruções do CPU e os dados, enquanto a anterior utiliza o mesmo espaço de memória para ambos. Nos CPUs atuais, é mais comum encontrar a arquitetura Von Neunmann, mas algumas coisas da arquitetura Harvard também são vistas. Nessas distintas arquiteturas, temos vantagens e desvantagens, como pode-se observar a seguir: Arquitetura tipo Harvard: Caminhos de dados e de instrução distintos, dessa forma, seus componentes internos têm a seguinte disposição. Já na arquitetura Von-Neumann, é processada uma única informação por vez, visto que nessa tecnologia, execução e dados percorrem o mesmo barramento, o que torna o processo lento em relação à arquitetura Harvard. Essa é a tecnologia mais utilizada nos PC’s e microcontroladores, pois proporcionam maior velocidade de processamento, pois enquanto a CPU processa uma informação, outra nova informação está sendo buscada, de forma sucessiva. Equipamentos que utilizam a arquitetura Harvard: Os PIC (PICmicro) são uma família de microcontroladores fabricados pela Microchip Technology, que processam dados de 8 bits e de 16 bits, mais recentemente 32, com extensa variedade de modelos e periféricos internos, com arquitetura Harvard e conjunto de instruções RISC (conjuntos de 35 instruções e de 76 instruções), com recursos de programação por Memória flash, EEPROM e OTP. Os microcontroladores PIC têm famílias com núcleos de processamento de 12 bits, 14 bits e 16 bits e trabalham em velocidades de 0kHz (ou DC) a 48MHz, usando ciclo de instrução mínimo de 4 períodos de clock, o que permite uma velocidade de no máximo 10 MIPS. Há o reconhecimento de interrupções tanto externas como de periféricos internos. Funcionam com tensões de alimentação de 2 a 6V e os modelos possuem encapsulamento de 6 a 100 pinos em diversos formatos (SOT23, DIP, SOIC, TQFP, etc) Fonte: http://sistemasuniban.blogspot.com.br/2010/04/arquiteru ra-von-neumann-vs-harvard.html Arquitetura de processadores: RISC e CISC A arquitetura de processador descreve o processador que foi usado em um computador. Grande parte dos computadores vêm com identificação e literatura descrevendo o processador que contém dentro de si, arquitetura CISC e RISC. A CISC (em inglês: Complex Instruction Set Computing, Computador com um Conjunto Complexo de Instruções), usada em processadores Intel e AMD; suporta mais instruções no entanto, com isso, mais lenta fica a execução delas. A RISC (em inglês: Reduced Instruction Set Computing, Computador com um Conjunto Reduzido de Instruções) usada em processadores PowerPC (da Apple, Motorola e IBM) e SPARC (SUN); suporta menos instruções, e com isso executa com mais rapidez o conjunto de instruções que são combinadas. É indiscutível, porém, que em instruções complexas os processadores CISC saem-se melhor. Por isso, ao invés da vitória de uma das duas tecnologias, atualmente vemos processadores híbridos, que são essencialmente processadores CISC, mas incorporam muitos recursos encontrados nos processadores RISC (ou vice-versa). Nos chips atuais, que são na verdade misturas das duas arquiteturas, juntamos as duas coisas. Internamente, o processador processa apenas instruções simples. Estas instruções internas, variam de processador para processador, são como uma luva, que se adapta ao projeto do chip. As instruções internas de um K6 são diferentes das de um Pentium por exemplo. Sobre estas instruções internas, temos um circuito decodificador, que converte as instruções complexas utilizadas pelos programas em várias instruções simples que podem ser entendidas pelo processador. Estas instruções complexas sim, são iguais em todos os processadores usados em micros PC. é isso que permite que um Athlon e um Pentium III sejam compatíveis entre sí.??O conjunto básico de instruções usadas em micros PC é chamado de conjunto x86. Este conjunto é composto por um total de 187 instruções, que são as utilizadas por todos os programas. Além deste conjunto principal, alguns processadores trazem também instruções alternativas, que permitem aos programas executar algumas tarefas mais rapidamente do que seria possível usando as instruções x86 padrão. Alguns exemplos de conjuntos alternativos de instruções são o MMX (usado apartir do Pentium MMX), o 3D-NOW! (usado pelos processadores da AMD, apartir do K6-2), e o SSE (suportado pelo Pentium III). Agora vamos analisar cada uma delas com um pouco mais detalhadamente. CISC Examinando de um ponto de vista um pouco mais prático, a vantagem de uma arquitetura CISC é que já temos muitas das instruções guardadas no próprio processador, o que facilita o trabalho dos programadores, que já dispõe de praticamente todas as instruções que serão usadas em seus programas. Os processadores CISC têm a vantagem de reduzir o tamanho do código executável por já possuirem muito do código comum em vários programas, em forma de uma única instrução. Os processadores baseados na computação de conjunto de instruções complexas contêm uma microprogramação, ou seja, um conjunto de códigos de instruções que são gravados no processador, permitindo-lhe receber as instruções dos programas e executá-las, utilizando as instruções contidas na sua microprogramação. Seria como quebrar estas instruções, já em baixo nível, em diversas instruções mais próximas do hardware (as instruções contidas no microcódigo do processador). Como característica marcante esta arquitetura contém um conjunto grande de instruções, a maioria deles em um elevado grau de complexidade. A CISC é implementada e guardada em micro-código no processador, sendo difícil modificar a lógica de tratamento de instruções. Esta arquitetura suporta operações do tipo “a=a+b” descrita por “add a,b”, ou seja podem simplesmente utilizar dois operandos para uma única instrução, sendo um deles fonte e destino (acumulador) e permite um ou mais operadores em memória para a realização das instruções. Com isto se comprova a necessidade de abranger um elevado leque de modelos de endereçamento, com acesso direto à memória e com apontadores para as variáveis em memória, armazenados eles próprios (ponteiros) em células de memória. Porém, do ponto de vista da performance, os CISC’s têm algumas desvantagens em relação aos RISC’s, entre elas a impossibilidade de se alterar alguma instrução compostapara se melhorar a performance. O código equivalente às instruções compostas do CISC pode ser escrito nos RISC’s da forma desejada, usando um conjunto de instruções simples, da maneira que mais se adequar. Sendo assim, existe uma disputa entre tamanho do código X desempenho. RISC No caso de um chip estritamente RISC, o programador já teria um pouco mais de trabalho, pois como disporia apenas de instruções simples, teria sempre que combinar várias instruções sempre que precisasse executar alguma tarefa mais complexa. Os processadores baseados na computação de conjunto de instruções reduzido não têm micro-programação, as instruções são executadas diretamente pelo hardware. Como característica, esta arquitetura, além de não ter microcódigo, tem o conjunto de instruções reduzido, bem como baixo nível de complexidade. A ideia foi inspirada pela descoberta de que muitas das características incluídas na arquitetura tradicional de processadores para ganho de desempenho foram ignoradas pelos programas que foram executados neles. Mas o desempenho do processador em relação à memória que ele acessava era crescente. Isto resultou num número de técnicas para otimização do processo dentro do processador, enquanto ao mesmo tempo tentando reduzir o número total de acessos à memória. RISC é também a arquitetura adotada para os processadores dos videogames modernos, que proporcionam um hardware extremamente dedicado somente à execução do jogo, tornando-o muito mais rápido em relação a micro computadores com mais recursos, embora com processador x86. Pode-se concluir que os projetistas de arquiteturas CISC consideram três aspectos básicos: – uso de microcódigo; – construção de conjuntos com instruções completas e eficientes (completeza no conjunto); – criação de instruções de máquina de “alto nível”, ou seja, com complexidade semelhante à dos comandos de alto nível. Colocados juntos, esses elementos do projeto nortearam a filosofia de construção de processadores CISC por longo tempo, como a família Intel x86, os processadores AMD K e, anteriormente, os sistemas IBM e VAX. Assim é que existem naqueles conjuntos instruções poderosas, do tipo: CAS – compare and swap operands (comparar valores e trocas operandos) RTR – return and restore codes (retornar e restaurar código) SWAP – swap register words (trocar palavras dos registradores) Menor quantidade de instruções: talvez a característica mais marcante das arquiteturas RISC, seja a de possuir um conjunto de instruções menor(todas também com largura fixa), que as máquinas que possuíam a arquitetura CISC, porém com a mesma capacidade. Vem daí o nome dado a arquitetura RISC (computadores com um conjunto reduzido de instruções). A SPARC, da Sun, possuía um conjunto de cerca de 50 instruções, a VAX-11/780 tinha até 300 instruções, o Intel 80486 foi apresentado com 200 instruções e os Pentium possuem mais de 200 instruções. Com o conjunto de instruções reduzido e cada uma delas tendo suas funções otimizadas, os sistemas possuíam um resultado melhor em questão de desempenho. Em virtude do conjunto reduzido das instruções, acarretavam em programas um pouco mais longos. Execução otimizada de chamadas de função: outra evolução da arquitetura RISC para a arquitetura CISC tem relação com a chamada de retinas e passagem de parâmetros. Estudos indicam que as chamadas de funções consomem um tempo significativo de processador. Elas requerem poucos dados, mas demoram muito tempo nos acessos a memória. Em virtude disso, na arquitetura RISC foram utilizados mais registradores. As chamadas de função que na arquitetura CISC ocorriam com acessos a memória, mas na RISC isso era feito dentro do processador mesmo, utilizando os registradores que foram colocados a mais. Modo de execução com Pipelining: uma das características mais relevantes da arquitetura RISC é o uso de pipelining, mesmo sabendo que ela tem um funcionamento mais efetivo quando as instruções são todas bastante parecidas. Imaginando estágios de uma linha de montagem, não é interessantes que um estágio termine antes do outro, pois nesse caso perde-se a vantagem da linha de montagem. O objetivo de cada instrução, é completar um estágio de pipeline em um ciclo de clock, mas esse objetivo nem sempre é alcançado. O processamento de uma instrução é composto pelo menos por cinco fases: Instruction fetch; Instruction decode; Operand fetch; Execution; Write back. Hoje em dia o pipeline não se limita a apenas 5 estágios, mas pode chegar a 20 ou 30 estágios (Intel Pentium 4). No entanto, para que todo o processo funcione é necessário que determinadas restrições se verifiquem. A prioridade é que todas as instruções permaneçam em cada estágio o mesmo tempo, para que: O sinal de relógio seja usado processamento; Não sejam necessários “buffers”; como cadência de Execução de cada instrução em um ciclo de clock: se o uso do pipelining se considera uma característica importante da arquitetura RISC, a execução de uma instrução por ciclo de clock é mais importante, segundo os que estabeleceram suas bases. Um dos pontos mais negativos das arquiteturas RISC é o longo tempo de execução de cada instrução. Com o surgimento dessa nova arquitetura, cada instrução passou a ser executada a cada ciclo de clock. Resumo Vamos montar uma tabela com as principais diferenças entre as arquiteturas. Isto deveria ser suficiente para responder a maioria das questões de concurso sobre o assunto. RISC CISC Múltiplos conjuntos de registradores, muitas vezes superando 256 Único conjunto de registradores, tipicamente entre 6 e 16 registradores Três operandos de registradores permitidos por instrução (por ex., add R1, R2, R3) Um ou dois operandos de registradores permitidos por instrução (por ex., add R1, R2) Passagem eficiente de parâmetros por registradores no chip (processador) Passagem de parâmetros ineficiente através da memória Instruções de um único ciclo Instruções de (ex. load e store) múltiplos ciclos Controle hardwired (embutido no hardware) Controle microprogramado Altamente paralelizado Fracamente (pipelined) paralelizado Instruções simples e em número reduzido Muitas instruções complexas Instruções de tamanho fixo Instruções de tamanho variável Complexidade no compilador Complexidade no código Apenas instruções load e store podem acessar a memória Muitas instruções podem acessar a memória Poucos modos de endereçamento Muitos modos de endereçamento Referências: – http://pt.wikipedia.org/wiki/RISC?http://pt.wikipedia.org/wiki/CISC ?- http://0fx66.com/blog/hardware/cisc-risc/?http://waltercunha.com/blog/index.php/2009/08/30/risc-x-cisc/? - http://www.hardware.com.br/artigos/risc-cisc/ ABC da SOA O que é arquitetura orientada a serviços (SOA)? Service-Oriented Architecture (SOA) – ou, em português, Arquitetura Orientada a Serviços – é um termo que descreve duas coisas muito diferentes. As duas primeiras palavras expressam uma metodologia para desenvolvimento de software. A terceira palavra é um panorama de todos os ativos de software de uma empresa, assim como uma planta arquitetônica é uma representação de todas as peças que, juntas, formam uma construção. Portanto, “service-oriented architecture” é uma estratégia que proclama a criação de todos os ativos de software de uma empresa via metodologia de programação orientada a serviços. O que é um serviço? Serviços são porções — ou componentes — de software construídas de tal modo que possam ser facilmente vinculadas a outros componentes de software. A idéia por trás destes serviços é simples: a tecnologia expressa de forma que o pessoal de negócio possa entender, e não como um aplicativo enigmático. No centro do conceito de serviços está a idéia de que é possível definir partes dos códigos de software em porções significativas o suficiente para serem compartilhadas e reutilizadas em diversas áreas da empresa. Com isso, algumas tarefas passam a ser automatizadas – por exemplo, enviar uma query para um website de relatório de crédito para descobrir se um cliente se qualifica para um empréstimo. Se os programadores em um banco puderem abstrair todo este código em um nível mais alto (isto é, pegar todo o código que foi escrito para realizar a verificação de classificação de crédito e reuni-lo em uma única unidade chamada “obter classificação de crédito”), eles poderão reutilizar esta porção da próxima vez que o banco decidir lançar um novo produto de empréstimo que requeira a mesma informação, ao invés de ter que escrever o código a partir do zero. Para chegar a isto, os desenvolvedores criam um invólucro complexo em torno do código empacotado. Este invólucro é uma interface que descreve o que a porção faz e como conectar a ele. É um conceito antigo, que data dos anos 80, quando a programação orientada a objetos surgiu. A única diferença é a demanda atual por objetos de software muito maiores e mais sofisticados. Na operadora norte-americana Verizon, por exemplo, o serviço “get CSR” (get customer service record, obter registro de serviço ao cliente) é uma miscelânea complexa de ações de software e extrações de dados que emprega infra-estrutura de integração da empresa para acessar mais de 25 sistemas em quatro data centers ao redor do país. Antes de criar o serviço “get CSR”, desenvolvedores da Verizon que precisavam desta porção crítica de dados tinham que criar links para todos os 25 sistemas — acrescentar seus próprios links sobre a teia complexa de links que já pendiam dos sistemas populares. Porém, com o serviço “get CSR” situado em um repositório central na intranet da Verizon, estes desenvolvedores agora podem usar o simple object access protocol (SOAP) para criar um único link para a interface cuidadosamente elaborada ao redor do serviço. Estes 25 sistemas entram em fila e marcham imediatamente, enviando informação do cliente para o novo aplicativo e poupando meses, ou mesmo anos, de tempo de desenvolvimento dos desenvolvedores cada vez que eles usam o serviço. Existem muitas maneiras diferentes de conectar serviços, como links de programação customizados ou software de integração de fornecedores, mas, desde 2001, um conjunto de mecanismos de comunicação de software conhecido como web services, criados sobre a onipresente World Wide Web, tornou-se um método cada vez mais popular para integrar componentes de software. Qual é a diferença entre SOA e web services? SOA é a arquitetura abrangente para criar aplicações dentro de uma empresa — pense em um projeto arquitetônico — mas, neste caso, a arquitetura demanda que todos os programas sejam criados com uma metodologia de desenvolvimento de software específica, conhecida como programação orientada a serviço. Web services são um conjunto de mecanismos-padrão de comunicação criados sobre a World Wide Web. Ou seja, os web services são uma metodologia para conectar e comunicar. Enquanto SOA é uma estratégia de TI. Como sei se devo adotar uma estratégia SOA? Sendo uma estratégia arquitetural, SOA envolve muito mais do que o mero desenvolvimento de software. A criação de uma arquitetura baseada em um portfólio de serviços demanda que os CIOs elaborem um “case” convincente para uma arquitetura corporativa, uma metodologia de desenvolvimento centralizada e uma equipe centralizada de gerentes de projeto, arquitetos e desenvolvedores. Também requer um CEO e uma equipe executiva dispostos, que preparem o terreno para que o pessoal de TI possa mergulhar em processos core da empresa. Entender estes processos e conquistar adesão para o compartilhamento corporativo são a pedra angular de uma transformação do negócio baseada em SOA. Governança é vital. Para que os serviços sejam reutilizados na empresa, tem de haver uma metodologia de desenvolvimento de software única e centralizada de modo que áreas diferentes não criem o mesmo serviço de maneiras diferentes ou usem conectores incompatíveis. Tem que haver um repositório centralizado para que os desenvolvedores saibam onde procurar serviços — e TI saiba por quem eles estão sendo utilizados. Os serviços têm de ser bem documentados para que os desenvolvedores saibam para que eles servem, como integra-los e as regras para usá-los. Algumas empresas, por exemplo, cobram taxas de utilização dos serviços e criam acordos de performance para garantir que os serviços funcionem bem e não sobrecarreguem a rede corporativa. A maioria das empresas que avançou no caminho para SOA criou um grupo de arquitetura centralizado para escolher processos que serão capacitados para serviço e consultar áreas diferentes da empresa para criar os serviços específicos. O grupo centralizado também cria um mecanismo conveniente para governança. Se todas as solicitações de serviço têm de passar pelo grupo de arquitetura, as metodologias de desenvolvimento de serviço, os projetos e os acordos de performance podem ser gerenciados mais facilmente. As empresas que tiveram mais êxito com SOA até agora são as que sempre tiverem êxito com tecnologia: grandes empresas com grandes budgets para TI cujo negócio é baseado em tecnologia (serviços de telecomunicação e financeiros). Elas também tendem a ter líderes de negócio envolvidos com a área de TI e dispostos a apoiar seus projetos. Para empresas sem estas vantagens, SOA talvez não seja tudo o que promete. Para empresas menores, empresas que apostaram alto em pacotes de aplicativos integrados e empresas que já adotam estratégias sólidas de integração de aplicativos, SOA não tem a ver com “quando”, mas com “se”. Os CIOs têm de ser cuidadosos porque, na arquitetura orientada a serviços, os elementos “desenvolvimento de serviço” e “planejamento de arquitetura” são distintos, porém não independentes — precisam ser considerados e executados paralelamente. Serviços que são criados isoladamente, sem levar em conta as metas de arquitetura e de negócio da empresa, podem apresentar pouco potencial de reutilização (um dos benefícios mais importantes da SOA) ou fracassar por completo. Quais as vantagens da SOA? Antes de mais nada, os benefícios de da arquitetura orientada a serviços devem ser contextualizados. Se sua empresa não for grande ou complexa, isto é, se não tiver mais de dois sistemas primários que exijam algum nível de integração, é improvável que o modelo proporcione grandes benefícios. Em meio a todo o hype atual em torno da SOA, esquece-se facilmente que a metodologia de desenvolvimento em si não traz vantagens – é o efeito que ela tem sobre uma infra-estrutura redundante e complexa que o faz. Os arquitetos dizem que a criação de um bom aplicativo orientado a serviços envolve mais trabalho do que a tradicional integração de aplicativos. (Pesquisas mostram que SOA está sendo usada para integração tradicional de aplicativos na maioria das empresas.) Assim, o desenvolvimento da SOA gera um custo inicial extra. Para que este trabalho produza benefícios, portanto, SOA tem que eliminar trabalho em outro ponto qualquer, já que a própria metodologia não gera benefícios para o negócio. Assim, o primeiro passo é descobrir se existem aplicativos redundantes e mal integrados que poderiam ser consolidados ou eliminados como resultado da adoção. Se este for o caso, então há benefícios potenciais. Para entender o panorama geral dos benefícios apregoados por SOA, você precisa examiná-lo em dois níveis: primeiro, as vantagens táticas do desenvolvimento orientado a serviços e, segundo, as vantagens da SOA como estratégia de arquitetura global. Vantagens do desenvolvimento orientado a serviços: 1. Reutilização de software. Se o pacote de códigos que constitui um serviço tiver o tamanho e o escopo certos (um grande “se”, dizem os veteranos em SOA), então ele poderá ser reutilizado da próxima vez que a equipe de desenvolvimento precisar de uma função específica para um novo aplicativo que queira desenvolver. Digamos que uma empresa de telecomunicações tenha quatro divisões diferentes, cada qual com seu próprio sistema para processar pedidos. Todos estes sistemas executam determinadas funções similares, como verificações de crédito e buscas de registros de clientes. Mas, tendo em vista que cada sistema é altamente integrado, nenhuma destas funções redundantes pode ser compartilhada. O desenvolvimento orientado a serviços coleta o código necessário para criar uma versão de “verificação de crédito” que possa ser compartilhada pelos quatro sistemas. O serviço pode ser uma porção de software totalmente nova ou um aplicativo composto, consistindo de código de alguns dos sistemas ou de todos eles. De qualquer forma, o ‘composite’ é envolto por uma interface que oculta sua complexidade. Da próxima vez que os desenvolvedores quiserem criar um aplicativo que exija verificação de crédito, vão criar um link simples para o novo aplicativo. Eles não precisam se preocupar em conectar aos sistemas individuais — na realidade, nem precisam saber como o código foi incluído ou de onde ele vem. Só precisam criar uma conexão para ele. Em uma empresa que desenvolve constantemente sistemas novos que se apóiam em funcionalidade similar — uma empresa seguradora com muitas divisões diferentes, cada uma com produtos ligeiramente diferentes, por exemplo, ou uma empresa que está sempre adquirindo outras — o tempo economizado nas tarefas de desenvolver, testar e integrar esta mesma funcionalidade de software é uma vantagem. Mas a reutilização não é garantida. Se desenvolvedores em outras partes da empresa não souberem que os serviços existem ou não confiarem que eles são bem construídos, ou se as metodologias de desenvolvimento variarem dentro da empresa, os serviços podem definhar e não se repetir. As empresas adeptas da reutilização desenvolveram mecanismos de governança — equipes de desenvolvimento centralizadas, metodologia única de desenvolvimento e repositórios de serviços — para aumentar suas chances de reutilização. Às vezes, porém, o serviço simplesmente não é bem projetado. Ele não realiza operações suficientes para ser amplamente aplicável na empresa ou tenta realizar operações demais. Ou os desenvolvedores não levaram em conta que outros possam querer usar o serviço de maneiras diferentes. Para profissionais experientes no assunto, o dimensionamento adequado dos serviços — também conhecido como granularidade — é tanto uma arte quanto uma ciência, e a má-granularidade pode reduzir drasticamente as possibilidades de reutilização. Pesquisas do Gartner estimam que apenas algo entre 10% e 40% dos serviços são reutilizados. 2. Aumentos de produtividade. Se os desenvolvedores reutilizam serviços, os projetos de software podem andar mais rápido e a mesma equipe de desenvolvimento pode trabalhar em mais projetos. A integração se torna mais barata (no mínimo 30%, de acordo com estimativas do Gartner) e mais rápida, eliminando alguns meses dos ciclos de desenvolvimento de novos projetos. Shadman Zafar, vicepresidente sênior para arquitetura e e-services da Verizon, diz que seu catálogo de serviços dispensou-o de montar uma equipe de projeto para o desenvolvimento de um processo de pedido de linha telefônica porque os serviços necessários para compor o processo já existiam. “Com integração ponto a ponto, teríamos uma equipe de projeto central criando a integração geral e equipes locais para cada um dos sistemas ao qual precisávamos integrar. Com o processo de pedido de linha telefônica, tínhamos uma única equipe focada quase que inteiramente em teste de uma ponta a outra”, explica. Isso poupa tempo e recursos e melhora a qualidade de novos aplicativos, porque o teste não é mais o último obstáculo de um processo de desenvolvimento de aplicativos exaustivo; ele é o foco. 3. Maior agilidade. Mesmo que os serviços não sejam reutilizados, podem agregar valor se facilitarem a modificação de sistemas de TI. Na ProFlowers.com, por exemplo, não existem aplicativos redundantes ou múltiplas unidades de negócio clamando por serviços. Mas, com a divisão do processo de pedido de flores em serviços discretos, cada componente pode ser isolado e modificado conforme o necessário para lidar com os picos de demanda que acontecem em datas festivas, segundo Kevin Hall, CIO da ProFlowers. Quando a ProFlowers tinha apenas um aplicativo monolítico encarregado do processo, uma única alteração no processo ou um crescimento do volume de transações (no dia dos namorados, por exemplo) exigia que o sistema inteiro fosse recriado. No novo sistema, os servidores reagem aos picos de atividade durante cada fase do processo de pedido, transferindo capacidade para o serviço específico que está precisando mais dela. O sistema está muito mais previsível e não houve interrupções desde que o processo capacitado por serviço foi implantado, no início de 2002, de acordo com Hall. “Visto que podemos escalar horizontalmente [mais servidores] e verticalmente [dividindo os serviços], não tenho que comprar hardware de acordo com as cargas mais altas”, afirma. Vantagens de uma estratégia SOA: 1. Melhor alinhamento com o negócio. A arquitetura orientada a serviços é o panorama geral de todos os processos e fluxos de negócio de uma empresa. Significa que o pessoal de negócio pode visualizar, pela primeira vez, como a empresa é construída em termos de tecnologia. Quando projetos de TI são apresentados em termos de atividades e processos de negócio e não na forma de aplicativos complexos, o pessoal de negócio pode apreciar e suportar melhor os projetos de TI. “Quando eu disse que tínhamos 18 versões de ‘verificação de crédito’ ligeiramente diferentes embutidas em aplicativos diferentes, em agências diferentes, os diretores das agências entenderam por que era problemático e apoiaram a criação de uma única versão que fosse usada por todos”, recorda Matt Miszewski, CIO para o estado de Wisconsin. A visão grandiosa da SOA é que, quando TI capacitar plenamente para serviços os processos importantes de um negócio, o pessoal de negócio poderá assumir controle sobre modificar e mesclar os diferentes serviços em novas combinações de processo próprias. Mas esta visão ainda está a muitos anos de distância. 2. Uma maneira melhor de vender arquitetura para o negócio (e TI). Há tempos a arquitetura corporativa tem sido o conceito que não ousa dizer seu nome. Alguns CIOs chegam ao ponto de não usar o termo com os colegas por medo de assustá-los, perdê-los ou simplesmente entediá-los. Arquitetura corporativa sempre foi uma empreitada grande, complexa e cara. Seu ROI, com freqüência, é nebuloso para o negócio. Padronizar, mapear e controlar ativos de TI não torna o negócio claramente mais flexível, capaz ou lucrativo. Como resultado, os esforços de arquitetura de TI muitas vezes fracassam ou se tornam completamente centrados em TI. A arquitetura orientada a serviços proporciona o valor ao negócio que, na velha arquitetura corporativa, raramente passava de uma vaga promessa. Reutilização, maior produtividade e agilidade em TI e uma infra-estrutura de software ajustada para processos de negócio específicos são as iscas para vender uma iniciativa de arquitetura corporativa para o negócio. Mas lembre-se de que arquitetura não é para todos. Empresas pequenas ou empresas extremamente descentralizadas talvez não consigam justificar uma equipe centralizada de gerentes de projeto, arquitetos e desenvolvedores. Como equilibrar a necessidade de planejamento de arquitetura em SOA com a necessidade de provar o valor para o negócio rapidamente? Planejamento arquitetural consome tempo. O desenvolvimento orientado a serviços, baseado em princípios de programação conhecidos e padrões de tecnologia amplamente disponíveis (SOAP, HTTP e assim por diante), pode ser muito mais veloz. Mas os dois têm que acontecer paralelamente, ensinam os especialistas. “Fazemos projetos de desenvolvimento conforme o necessário e, paralelamente, temos um projeto plurianual, mais longo, de mapear os processos e criar serviços no nível corporativo”, diz Kurt Wissner, diretor de arquitetura corporativa e desenvolvimento da American Electric Power (AEP). “As pessoas precisam ver o benefício da SOA muito rapidamente. É por isso que gosto de projeto; do contrário, você não tem nada tangível para vender a ninguém sobre a razão de fazer o que está fazendo.” Ajudaria ter o plano arquitetural e o mapeamento de processo implantados antes de criar os serviços (para aumentar as chances de reutilização), mas o planejamento de arquitetura não apresenta retorno no curto prazo, o que pode ser devastador. “Tentei um plano ambicioso demais em outra empresa e fracassei”, lembra Wissner. “Criamos um grande plano de arquitetura de milhões de dólares que duplicou o que já tínhamos. O plano não apresentou muito valor em relação à integração ponto a ponto tradicional e nossos esforços não deram em nada. Se você já começa com a empresa inteira, são muitos os riscos de fracassar.” Ao abordar o planejamento empresarial em porções menores na AEP, Wissner pode se recuperar mais facilmente de revezes. “Tivemos tropeços, mas conseguimos tomar atitudes corretivas porque não era nada muito grande”, diz. Como sei quais serviços vão gerar mais valor em troca do meu investimento? Quando estiver em dúvida, comece com processos que envolvem clientes, afetam diretamente a receita e abordem um ponto nevrálgico da empresa. De acordo com pesquisa realizada em 2006 pelo Business Performance Management Institute, mudanças em necessidades e preferências de clientes são o principal motor de mudança em processos de negócio ou de adoção de novos aplicativos, seguidas por ameaças competitivas e novas oportunidades de receita. “Aplicativos de ponta são os que fornecem o maior valor para o negócio e têm um bom conjunto de requisitos de mudança que surgem com muita freqüência”, diz Daniel Sholler, vice-presidente de pesquisa do Gartner. “Se você puder aprimorar estes aplicativos em 10%, é melhor do que aprimorar aplicativos de nível mais baixo em 50%.” Obviamente, acrescenta Sholler, a SOA pode não fornecer mais valor do que um bom aplicativo empacotado, por exemplo. “Mas, se é algo que você mesmo teria que criar de qualquer forma, então tem que ser orientado a serviço.” Como SOA vai afetar meu grupo de TI? Se você tem uma empresa descentralizada, prepare-se para lutar. SOA leva à centralização. Na realidade, pede centralização. “Você precisa ter alguém liderando, você precisa ter um indivíduo ou uma pequena equipe gerenciando a arquitetura”, aconselha Mike Falls, engenheiro sênior de sistemas da Fastenal, empresa de suprimentos industriais e de construção. “Se for cada equipe por si, elas podem acabar adotando maneiras diferentes de criar serviços. Você precisa de um grupo, um conjunto de pesquisas e alguém para garantir que os grupos de desenvolvimento se atenham à metodologia de desenvolvimento de serviço.” À medida que o portfólio de serviços cresce, o processo de desenvolvimento pode começar a assemelhar-se a uma linha de montagem. “Transforma-se em uma fábrica”, diz Wissner, da AEP. “Você tem equipes de projeto diferentes através das quais canaliza o trabalho e elas podem aumentar e diminuir conforme o necessário.” Depois que a “fábrica” SOA está produzindo a todo vapor, prepare-se para acrescentar mais gerentes de projeto, analistas de negócio e arquitetos à medida que a produtividade dos desenvolvedores aumenta, diz Haal, da ProFlowers. “Dois desenvolvedores agora podem fazer o trabalho de seis”, observa. “Isso significa que os arquitetos e gerentes de projeto estão se esforçando para acompanhar o trabalho dos engenheiros. Provavelmente estamos realizando 50% de trabalho a mais do que há três anos.” Estes programadores precisam entender programação orientada a objeto e aplicativos distribuídos — o que implica investimentos em treinamento. Segundo pesquisa de CIO/Computerworld, apenas 25% dos entrevistados têm as equipes de que necessitam para adotar arquitetura orientada a serviços — 49% planejam ter ou já têm programas de treinamento para que a equipe atual trabalhe a todo vapor. Fonte: CIO Arquitetura TCP/IP e Protocolos O conjunto de protocolos TCP/IP foi projetado especialmente para ser o protocolo utilizado na Internet. Sua característica principal é o suporte direto a comunicação entre redes de diversos tipos. Neste caso, a arquitetura TCP/IP é independente da infra-estrutura de rede física ou lógica empregada. De fato, qualquer tecnologia de rede pode ser empregada como meio de transporte dos protocolos TCP/IP, como será visto adiante. Endereçamento IP Existem duas versões dos protocolo IP: IPV4 e IPV6. A primeira é utilizada atualmente e está se esgotando devido a quantidade devido ao número de máquinas conectadas na Internet utilizando-o. Já o IPV6 está vindo para solucionar esse problema de escassez, sendo uma versão melhorada. IPV4 Os endereços IP são compostos por 4 blocos de 8 bits (32 bits), sendo representados de 0 a 255, ou seja, as 256 possibilidades dos 8 bits. Cada bloco é chamado de “octeto”. A sua utilização em “octetos” é apenas para facilitar a visualização, mas quando processados, são apenas números binários. Total de endereços IP é de 4.294.967.296. Existem algumas faixas de IP que são reservadas para redes locais, que são as que iniciam da seguinte forma: 10.x.x.x 192.168.x.x 172.16.x.x até 172.31.x.x O endereço IP é formado por duas informações principais: o endereço de rede e o endereço de host dentro da rede. Veja o exemplo do IP “10.0.0.4”, onde o primeiro octeto, o “10”, é o endereço de rede, já o segundo até o quarto octeto “0.0.4” é o endereço de host. Outro exemplo seria o IP “172.22.45.23”, onde “172.22” é o endereço de rede e “45.23” é o endereço de host. Existe também algumas regras quanto a validade de um IP, sendo os listados abaixo como inválidos: 0.xxx.xxx.xxx – Nenhum IP pode começar com zero. Somente utilizado é para responder às requisições DHCP de uma máquina que entrou na rede; 127.xxx.xxx.xxx – Chamado de “loopback”. Seria o endereço reservado para testes e para interface chamada de “loopback”, ou seja, a própria máquina. 255.xxx.xxx.xxx, xxx.255.255.255, xxx.xxx.255.255 – Nenhum identificador de rede pode ser 255 e nenhum endereço de host pode ser composto apenas de endereços 255, independente de classe do endereço. xxx.0.0.0, xxx.xxx.0.0 – Nenhum identificador de host pode ser composto apenas de zeros, pois são endereços reservados da rede. xxx.xxx.xxx.255, xxx.xxx.xxx.0 – Nenhum endereço de classe C pode terminar com 0 ou 255, pois são utilizados para envio de pacotes broadcast. Classes de Endereçamento IP Inicialmente os endereços IP foram divididos em classes que reservam um número diferente de octetos para o endereçamento da rede, sendo elas chamadas de A, B, C, D e E. Dentre elas, apenas as classes A, B e C são utilizadas realmente, pois a D e E são para utilização futura. Veja abaixo a separação das classes: Classe A: Com tamanho de 8 bits no endereço de rede; Tamanho de 24 bits para endereços de hosts; O primeiro octeto decimal entre 1 e 126; Utiliza máscara de rede 255.0.0.0; Total de redes de 27-2 = 126; Total de hosts de 224-2 = 16.777.214; Classe B: Com tamanho de 16 bits no endereço de rede; Tamanho de 16 bits para endereços de hosts; O primeiro octeto decimal entre 128 e 191; Utiliza máscara de rede 255.255.0.0; Total de redes de 214-2 = 16.380; Total de hosts de 216-2 = 65.532; Classe C: Com tamanho de 24 bits no endereço de rede; Tamanho de 8 bits para endereços de hosts; O primeiro octeto decimal entre 192 e 223; Utiliza máscara de rede 255.255.255.0; Total de redes de 221-2 = 2.097.150; Total de hosts de 28-2 = 254; Classe D: Reservado para multicasting; Sendo o primeiro octeto decimal entre 224 e 239; Classe E: Reservado para pesquisas; Sendo o primeiro octeto decimal entre 240 e 247; IPV6 Como já falei anteriormente, o IPV6 veio para resolver o problema da escassez de endereços IP do IPV4. Os endereços IP são compostos por 8 blocos de 4 caracteres do sistema hexadecimal em cada bloco, ou seja, 16 caracteres, totalizando 128 bits, sendo representados de 0 à F, ou seja, as 16 possibilidades para cada caracter. Cada bloco é chamado de “octeto”. A sua utilização em “octetos” é apenas para facilitar a visualização, mas quando processados, são apenas números binários. Total de endereços IP é de 340.282.366.920.938.463.463.374.607.431.768.211.456. Veja um exemplo endereço: 2001:247f:6c24:17da:cd89:d4e2:bcd7:a36e de Algumas outras características: Autoconfiguração do endereço, não sendo mais necessário o uso do DHCP; Endereçamento hierárquico, o que simplifica as tabelas de encaminhamento das tabelas dos roteadores da rede, o que diminui a carga de processamento deles; O cabeçalho foi totalmente remodelado; Cabeçalhos de extensão para guardar detalhes adicionais; Suporte a qualidade diferenciada para conexões diferenciadas para áudio e vídeo; Capacidade de extensão, podendo adicionar novas especificações de forma simples; Encriptação. Suporte a extensões que permitem opções de segurança. Um detalhe curioso sobre o endereçamento no IPV6 é a sua capacidade de ser encurtado. Veja o seguinte exemplo de endereço: 2001:247f:0000:0000:cd89:d4e2:bcd7:a36e. Onde tem os blocos com 0000, podemos simplesmente substituir por um único zero, ficando 2001:247f:0:0:cd89:d4e2:bcd7:a36e ou até mesmo 2001:247f::cd89:d4e2:bcd7:a36e Pode-se ainda: Utilizar letras minúsculas e maiúsculas; Utilizar as regras de abreviação, como omitir zeros à esquerda e representar zeros contínuos por “::“ Tipos de endereços Unicast – O endereço identifica apenas uma interface de rede. Desse modo, um pacote enviado a um endereço unicast é entregue a uma única interface. Cada endereço IPv4 unicast inclui uma ID de rede e uma ID de host. Unicast Multicast – Multicast é a entrega de informação para múltiplos destinatários simultaneamente usando a estratégia mais eficiente onde as mensagens só passam por um link uma única vez e somente são duplicadas quando o link para os destinatários se divide em duas direções. Multicast Anycast – Um pacote destinado a um endereço multicast é enviado para todas as interfaces do grupo, mas somente um deles é escolhido. Há também uns um-à-muitos associação entre endereços de rede e endpoints de rede: cada endereço de destino identifica um jogo de endpoints do receptor, mas somente um deles é escolhido em todo o tempo dado para receber a informação de qualquer remetente dado. Anycast Broadcast – Permite que a informação seja enviada para todas as maquinas de uma LAN, MAN, WAN e TANS, redes de computadores e sub-redes. Broadcast Camadas TCP/IP TCP/IP é um acrônimo para o termo Transmission Control Protocol/Internet Protocol Suite, ou seja é um conjunto de protocolos, deram seus estrutura de paradigma de onde dois dos mais importantes (o IP e o TCP) nomes à arquitetura. O protocolo IP, base da comunicação da Internet é um protocolo baseado no chaveamento de pacotes (packet-switching). Os protocolos TCP/IP podem ser utilizados sobre qualquer estrutura de rede, seja ela simples como uma ligação ponto-aponto ou uma rede de pacotes complexa. Como exemplo, pode-se empregar estruturas de rede como Ethernet, Token-Ring, FDDI, PPP, ATM, X.25, Frame-Relay, barramentos SCSI, enlaces de satélite, ligações telefônicas discadas e várias outras como meio de comunicação do protocolo TCP/IP. A arquitetura TCP/IP, assim como OSI realiza a divisão de funções do sistema de comunicação em estruturas de camadas. Em TCP/IP as camadas são: Aplicação Transporte Inter-Rede Rede Modelo OSI e TCP/IP Vamos analisar cada uma das camadas da Arquitetura TCP/IP e vamos falar sobre os protocolos que são utilizados em cada uma delas. 1- Camada Física / Enlace / Host / Rede A camada de rede é responsável pelo envio de datagramas construídos pela camada Inter-Rede. Esta camada realiza também o mapeamento entre um endereço de identificação de nível Inter-rede para um endereço físico ou lógico do nível de Rede. A camada Inter-Rede é independente do nível de Rede. Também chamada camada de abstração de hardware, tem como função principal à interface do modelo TCP/IP com os diversos tipos de redes (X.25, ATM, FDDI, Ethernet, Token Ring, Frame Relay, sistema de conexão ponto-a-ponto SLIP, etc.). Como há uma grande variedade de tecnologias de rede, que utilizam diferentes velocidades, protocolos, meios transmissão, etc. esta camada não é normatizada pelo modelo, o que provê uma das grandes virtudes do modelo TCP/IP: a possibilidade de interconexão e interoperação de redes heterogêneas. Os protocolos existentes nesta camada são: Protocolos com estrutura de rede própria (X.25, FrameRelay, ATM) Protocolos de Enlace OSI (PPP, Ethernet, Token-Ring, FDDI, HDLC, SLIP, …) Protocolos de Nível Físico (V.24, X.21) Protocolos de barramento de alta-velocidade (SCSI, HIPPI, …) Protocolos de mapeamento de endereços (ARP – Address Resolution Protocol) – Este protocolo pode considerado também como parte da camada Inter-Rede. ser 2-Camada de Rede / Inter-Rede / Internet Esta camada realiza a comunicação entre máquinas vizinhas através do protocolo IP. Para identificar cada máquina e a própria rede onde estas estão situadas, é definido um identificador, chamado endereço IP, que é independente de outras formas de endereçamento que possam existir nos níveis inferiores. No caso de existir endereçamento nos níveis inferiores é realizado um mapeamento para possibilitar a conversão de um endereço IP em um endereço deste nível. Os protocolos existentes nesta camada são: Protocolo de transporte de dados: IP – Internet Protocol; Protocolo de controle e erro: ICMP – Internet Control Message Protocol; Protocolo de controle de grupo de endereços: IGMP – Internet Group Management Protocol; Protocolos de controle de informações de roteamento como BGP, OSPF e o RIP; Protocolo ARP “Address Resolution Protocol” – Permite certo computador se comunicar com outro computador em rede quando somente o endereço de IP é conhecido pelo destinatário. Protocolo RARP “Reverse Address Resolution Protocol” – Faz o contrario do protocolo ARP, ao invés de obter o endereço MAC da maquina, o protocolo RARP requisita o endereço de IP. O protocolo IP realiza a função mais importante desta camada que é a própria comunicação inter-redes. Para isto ele realiza a função de roteamento que consiste no transporte de mensagens entre redes e na decisão de qual rota uma mensagem deve seguir através da estrutura de rede para chegar ao destino. O protocolo IP utiliza a própria estrutura de rede dos níveis inferiores para entregar uma mensagem destinada a uma máquina que está situada na mesma rede que a máquina origem. Por outro lado, para enviar mensagem para máquinas situadas em redes distintas, ele utiliza a função de roteamento IP. Isto ocorre através do envio da mensagem para uma máquina que executa a função de roteador. Esta, por sua vez, repassa a mensagem para o destino ou a repassa para outros roteadores até chegar no destino. 3-Camada de Transporte Esta camada reúne os protocolos que realizam as funções de transporte de dados fim-a-fim, ou seja, considerando apenas a origem e o destino da comunicação, sem se preocupar com os elementos intermediários. A camada de transporte possui dois protocolos que são o UDP (User Datagram Protocol) e TCP (Transmission Control Protocol). O protocolo UDP realiza apenas a multiplexação para que várias aplicações possam acessar o sistema de comunicação de forma coerente. O protocolo TCP realiza, além da multiplexação, uma série de funções para tornar a comunicação entre origem e destino mais confiável. São responsabilidades do protocolo TCP: o controle de fluxo, o controle de erro (checksum), a sequenciação e a multiplexação de mensagens. A camada de transporte oferece para o nível de aplicação um conjunto de funções e procedimentos para acesso ao sistema de comunicação de modo a permitir a criação e a utilização de aplicações de forma independente da implementação. Desta forma, as interfaces socket ou TLI (ambiente Unix) e Winsock (ambiente Windows) fornecem um conjunto de funções-padrão para permitir que as aplicações possam ser desenvolvidas independentemente do sistema operacional no qual rodarão. 4-Camada de Aplicação Apresentação / Sessão / A camada de aplicação reúne os protocolos que fornecem serviços de comunicação ao sistema ou ao usuário. Pode-se separar os protocolos de aplicação em protocolos de serviços básicos ou protocolos de serviços para o usuário: Protocolos de serviços básicos, que fornecem serviços para atender as próprias necessidades do sistema de comunicação TCP/IP: DNS, BOOTP, DHCP Protocolos de serviços para o usuário: FTP, HTTP, Telnet, SMTP, POP3, IMAP, TFTP, NFS, NIS, LPR, LPD, ICQ, RealAudio, Gopher, Archie, Finger, SNMP e outros Questões de Concursos (FGV – 2010 – CODESP-SP – Analista de Sistemas – Tipo 1) No que diz respeito ao Modelo de Referência OSI/ISO e arquitetura TCP/IP, são protocolos da camada de rede: a) IP, ARP e ICMP. b) TCP, RARP e IP. c) BGP, FTP e UDP. d) ICMP, UDP e FTP. e) ARP, TCP e RARP. (CESPE – 2007 – TRE-AP – Técnico Judiciário – Programação de Sistemas) Na arquitetura TCP/IP, entre os protocolos envolvidos na camada de rede encontram-se o IP e o a) TCP. b) UDP. c) RSTP. d) ICMP. e) HTTP. (CESPE – 2010 – INMETRO – Pesquisador – Ciência da Computação) Para interligar LAN, ou segmentos de LAN, são utilizados dispositivos de conexão, que podem operar em diferentes camadas da arquitetura TCP/IP. Assinale a opção que indica o dispositivo que opera em todas as cinco camadas do modelo TCP/IP. a) Hub b) Gateway c) Bridge d) Roteador e) Switch (CESPE – 2010 – INMETRO – Pesquisador – Ciência da Computação) O único serviço que é realizado tanto pelo protocolo TCP quanto pelo protocolo UDP da camada de transporte da arquitetura TCP/IP é a) controle de fluxo. b) controle de envio. c) controle de congestionamento. d) controle de recebimento. e) checksum. (CESPE – 2011 – Correios – Analista de Correios – Engenheiro – Engenharia de Redes e Comunicação) Julgue os seguintes itens com base no modelo de referência TCP/IP. Os serviços DNS são imprescindíveis para a comunicação em redes TCP/IP, já que, sem eles, a camada de rede se torna totalmente inoperante, fazendo que, em nenhuma situação, ocorra comunicação IP. ( ) Certo ( ) Errado (CESPE – 2011 – Correios – Analista de Correios – Analista de Sistemas – Suporte de Sistemas) A camada física do protocolo TCP/IP mantém suporte a aplicações do usuário e interage com vários programas, para que estes se comuniquem via rede. ( ) Certo ( ) Errado (FCC – 2010 – TCE-SP – Agente da Fiscalização Financeira – Informática – Produção e Banco de Dados) Pela ordem, da mais baixa (1ª) até a mais alta (4ª), as camadas do modelo de referência TCP/IP são a) Inter-redes, Rede, Transporte e Sessão. b) Inter-redes, Host/rede, Transporte, e Aplicação. c) Inter-redes, Transporte, Sessão e Aplicação. d) Host/rede, Inter-redes, Transporte e Sessão. e) Host/rede, Inter-redes, Transporte e Aplicação. (CESPE – 2011 – Correios – Analista de Correios – Analista de Sistemas – Suporte de Sistemas) A camada de aplicação na arquitetura TCP/IP equivale às camadas de aplicação, apresentação e sessão da arquitetura OSI. ( ) Certo ( ) Errado (FCC – 2011 – TRT – 24ª REGIÃO (MS) – Analista Judiciário – Tecnologia da Informação) São protocolos da camada 3 (rede, inter-redes ou internet) do modelo TCP/IP de cinco camadas: a) IPSec e DNS. b) SMTP e TCP. c) 802.11 Wi-Fi e SMTP. d) SNMP e TCP. e) IPSec e ICMP. (IPAD – 2010 – Prefeitura de Goiana – PE – Administrador de Redes – 1) Os protocolos da arquitetura TCP/IP são organizados em camadas. Acerca desse assunto, analise as seguintes afirmativas: 1. A camada física está relacionada a características elétricas e mecânicas do meio de transmissão. 2. Os protocolos TCP e UDP fazem parte da camada de rede. 3. Os protocolos HTTP e FTP fazem parte da camada de transporte. Assinale a alternativa correta: a) Apenas uma das afirmativas é falsa. b) Apenas as afirmativas 1 e 2 são falsas. c) Apenas as afirmativas 1 e 3 são falsas. d) Apenas as afirmativas 2 e 3 são falsas. e) As afirmativas 1, 2 e 3 são falsas. Gabarito e Comentários das Questões (FGV – 2010 – CODESP-SP – Analista de Sistemas – Tipo 1) No que diz respeito ao Modelo de Referência OSI/ISO e arquitetura TCP/IP, são protocolos da camada de rede: Letra “A”. Veja aqui mesmo no artigo, onde informo os protocolos utilizados na camada de rede: IP, ARP, RARP, ICMP, IGMP. Uma outra dica pra resolver essa questão era só lembrar que o protocolo TCP e UDP fazem parte da camada de Transporte, e por eliminação nos restaria a nossa resposta. (CESPE – 2007 – TRE-AP – Técnico Judiciário – Programação de Sistemas) Na arquitetura TCP/IP, entre os protocolos envolvidos na camada de rede encontram-se o IP e o Letra “D”. Praticamente serve a mesma explicação da questão acima. (CESPE – 2010 – INMETRO – Pesquisador – Ciência da Computação) Para interligar LAN, ou segmentos de LAN, são utilizados dispositivos de conexão, que podem operar em diferentes camadas da arquitetura TCP/IP. Assinale a opção que indica o dispositivo que opera em todas as cinco camadas do modelo TCP/IP. Letra “B”. O Hub trabalha na camada Física/Enlace. Switch na camada de Enlace, porque trabalha com o endereço MAC. Os Switch Layer 3 e Roteadores trabalham com o IP na camada de Rede. (CESPE – 2010 – INMETRO – Pesquisador – Ciência da Computação) O único serviço que é realizado tanto pelo protocolo TCP quanto pelo protocolo UDP da camada de transporte da arquitetura TCP/IP é Letra “E”. O protocolo TCP é baseado na conexão encapsulada no IP. Ele garante a entrega dos pacotes, sendo feito o envio de forma sequencial, realizando um checksum que valida tanto o cabeçalho, quanto os dados do pacote. Se houver perda do pacote ou ele estiver corrompido, será feita a retransmissão do que houve falha. (CESPE – 2011 – Correios – Analista de Correios – Engenheiro – Engenharia de Redes e Comunicação) Julgue os seguintes itens com base no modelo de referência TCP/IP. Os serviços DNS são imprescindíveis para a comunicação em redes TCP/IP, já que, sem eles, a camada de rede se torna totalmente inoperante, fazendo que, em nenhuma situação, ocorra comunicação IP. ERRADO. O DNS (Sistema de Nomes de Domínio) é um sistema para atribuição de nomes a computadores e serviços de rede, organizado numa hierarquia de domínios. As redes TCP/IP, tais como a Internet, utilizam o DNS para localizarem computadores e serviços através de nomes amigáveis. Sendo assim, se o usuário souber o endereço IP do que ele está querendo se comunicar, ele poderá utilizar a rede normalmente, só será mais “trabalhoso” ter que saber os IPs de todos em sua rede, o que torna inviável em redes corporativas. (CESPE – 2011 – Correios – Analista de Correios – Analista de Sistemas – Suporte de Sistemas) A camada física do protocolo TCP/IP mantém suporte a aplicações do usuário e interage com vários programas, para que estes se comuniquem via rede. ERRADO. Este é um trabalho da camada de Aplicação. (FCC – 2010 – TCE-SP – Agente da Fiscalização Financeira – Informática – Produção e Banco de Dados) Pela ordem, da mais baixa (1ª) até a mais alta (4ª), as camadas do modelo de referência TCP/IP são Letra “E”. Mostrei os diversos nomes para cada uma das camadas neste artigo. Baseada na questão, temos a resposta Host/rede, Inter-redes, Transporte e Aplicação. (CESPE – 2011 – Correios – Analista de Correios – Analista de Sistemas – Suporte de Sistemas) A camada de aplicação na arquitetura TCP/IP equivale às camadas de aplicação, apresentação e sessão da arquitetura OSI. CERTO. Veja a figura desta postagem. (FCC – 2011 – TRT – 24ª REGIÃO (MS) – Analista Judiciário – Tecnologia da Informação) São protocolos da camada 3 (rede, inter-redes ou internet) do modelo TCP/IP de cinco camadas: Letra “E”. Mas só para esclarecer quanto a quantidade de camadas. Alguns autores identificam um total 5 camadas, como citada na questão, que seriam: Físico, Link, Internet, Transporte e Aplicação. Mas Tannenbaum e a própria RFC adotam apenas 4. (IPAD – 2010 – Prefeitura de Goiana – PE – Administrador de Redes – 1) Os protocolos da arquitetura TCP/IP são organizados em camadas. Acerca desse assunto, analise as seguintes afirmativas: 1. A camada física está relacionada a características elétricas e mecânicas do meio de transmissão. 2. Os protocolos TCP e UDP fazem parte da camada de rede. 3. Os protocolos HTTP e FTP fazem parte da camada de transporte. Assinale a alternativa correta: Letra “D”. Analisando cada uma das afirmativas: 1-Correto; 2Errado, pois o TCP e UDP fazem parte da camada de Transporte; 3-Errado, já que o HTTP e FTP são da camada de Aplicação. Sistema de Gerenciamento de Banco de Dados ClienteServidor Em sua forma mais simples, um banco de dados cliente servidor (C/S) divide o processamento do banco de dados entre dois sistema: o cliente (geralmente um PC) executando a aplicação do banco de dados, e o servidor do banco de dados que executa todo o DBMS ou parte dele. O servidor de arquivos da LAN continua oferecendo recursos compartilhado, com impressora e espaço em disco para aplicações. O servidor de banco de dados pode executar no mesmo PC do servidos de arquivo, ou, como acontece mais habitualmente, em seu próprio computador, que virar em termo de tamanho, desde um PC até um mainframe. A aplicação de banco de dados no cliente, citado como sistema auxiliar, manipula todo o processamento de entrada e saída de tela e usuário. O sistema especializado no servidor manipula o processamento dedados e os acessos de discos. Por exemplo, um usuário no sistema auxiliar cria uma solicitação, conhecida como consulta, de dados do banco de dados, e a aplicação auxiliar envia a solicitação através da rede para o servidor. O servidor debanco de dados faz a verdadeira operação de busca e retorna somente os dados que preencham corretamente a consulta do usuário. A vantagem imediata do sistema cliente servidor é óbvio: dividindo o processamento entre dois sistemas, a intensidade do trafego de dados na rede diminui consideravelmente. O latência também aumenta, executando-se o BDMS num sistema de alta potência, sem incorrer na despesa de atualização de todo sistema cliente, que seria necessário se todo o processamento fosse feito num PC local. A maior desvantagem dos sistemas de banco de dados cliente servidor é que eles exigem que os dados sejam armazenados num único sistema. Isto pode ser um grande problema para as grande empresas, que talvez precisem suportar usuário de banco de dados espalhado por uma ampla região geográfica ou que precisem compartilhar parte dosbancos de dados dos seus departamentos com outros departamentos ou com um hospedeiro central. Estas situações exigem um método de distribuição de dados entre diversos hospedeiros ou pontos. Cliente / Servidor Na arquitetura centralizada, existe um computador com grande capacidade de processamento, o qual é o hospedeiro do SGBD e emuladores para os vários aplicativos. Esta arquitetura tem como principal vantagem a de permitir que muitos usuários manipulem grande volume de dados. Sua principal desvantagem está no seu alto custo, pois exige ambiente especial para mainframes e soluções centralizadas. Na Cliente-Servidor, o cliente (front_end) executa as tarefas do aplicativo, ou seja, fornece a interface do usuário (tela, e processamento de entrada e saída). O servidor (back_end) executa as consultas no DBMS e retorna os resultados ao cliente. Apesar de ser uma arquitetura bastante popular, são necessárias soluções sofisticadas de software que possibilitem: o tratamento de transações, as confirmações de transações (commits), desfazer transações (rollbacks), linguagens de consultas (stored procedures) e gatilhos (triggers). A principal vantagem desta arquitetura é a divisão do processamento entre dois sistemas, o que reduz o tráfego de dados na rede. Vantagens Suas soluções são menos dispendiosas do que as de minicomputadores ou mainframes alternativos de necessidades de infraestrutura de inicialização; Suas soluções permitem que o usuário final utilize a GUI do microcomputador, aprimorando, assim, a funcionalidade e a simplicidade. Em particular, a utilização do navegador da web, universalmente disponível, em conjunto com modelos de Java e .NET, fornece uma interface familiar ao usuário final; Mais pessoas no mercado de trabalho possuem habilidades com PC do que com mainframe. A maior parte dos alunos da nova geração está aprendendo habilidades de programação Java e .NET; O PC é bem mais estabelecido no local de trabalho. Além disso, o crescimento do uso da internet como um canal de negócios, aliado aos avanços de segurança (SSL, Redes Privadas Virtuais, autenticação de multifatores, etc.), fornece plataforma mais confiável e segura para as transações comerciais; Existem várias ferramentas de análise e consulta de dados para facilitar a interação com muitos SGBDs disponíveis no mercado de PCs; Há uma considerável vantagem de custos para o desenvolvimento de aplicações offloading do mainframe para PCs poderosos. Desvantagens A arquitetura cliente/servidor cria um ambiente mais complexo no qual diferentes plataformas (LANs, Sistemas Operacionais, etc.) costumam ser difíceis de gerenciar; Um aumento no número de usuários e de locais de processamento costumam abrir espaço para problemas de segurança; O ambiente cliente/servidor torna possível a disseminação do acesso aos dados a um círculo de usuários muito mais amplos. Esse ambiente amplia a demanda por pessoal com profundo conhecimento de computadores e aplicativos. Os encargos de treinamento elevam o custo de manutenção do ambiente. Mapa Mental de Arquitetura e Organização de Computadores – Hardware Mapa Mental de Arquitetura e Organização de Computadores – Hardware Mapa Mental de Arquitetura e Organização de Computadores Hardware Mapa Mental de BD – Banco de Dados Relacional Mapa Mental de BD – Banco de Dados Relacional Mapa Mental de BD - Banco de Dados Relacional Arquiteturas OLAP Vejam abaixo os conceitos e a demonstração comparativas das arquiteturas OLAP quanto a desempenho, escalabilidade, investimentos e outros detalhes importantes. Conceitos iniciais Cubo de dados é uma estrutura multidimensional que expressa a forma na qual os tipos de informações se relacionam entre si. É formado pela tabela de fatos e pelas tabelas de dimensão que a circundam e representam possíveis formas de visualizar e consultar os dados. O cubo armazena todas as informações relacionadas a um determinado assunto, de maneira a permitir que sejam montadas várias combinações entre elas, resultando na extração de várias visões sobre o mesmo tema (HOKAMA et al. 2004, p. 49). O Slice/Dice é uma das principais características de uma ferramenta OLAP. É uma operação com responsabilidade de recuperar o micro-cubo dentro do OLAP, além de servir para modificar a posição de uma informação, alterar linhas por colunas de maneira a facilitar a compreensão dos usuários e girar o cubo sempre que tiver necessidade. MOLAP Características: Arquitetura OLAP tradicional; Os dados são armazenados em cubos dimensionais, em formatos proprietários, e não em banco de dados relacionais; O usuário trabalha, monta e manipula os dados do cubo diretamente no servidor. Vantagens: Alto desempenho: os cubos são construídos para uma rápida recuperação de dados; Pode executar cálculos complexos: todos os cálculos são pré-gerados quando o cubo é criado e podem ser facilmente aplicados no momento da pesquisa de dados. Desvantagens: Baixa escalabilidade: sua vantagem de conseguir alto desempenho com a pré-geração de todos os cálculos no momento da criação dos cubos, faz com que o MOLAP seja limitado a uma pouca quantidade de dados. Esta deficiência pode ser contornada pela inclusão apenas do resumo dos cálculos quando se construir o cubo; Investimentos altos: este modelo exige enormes investimentos adicionais como cubo de tecnologia proprietária. Termos-chave: Armazenamento dos dados em cubos dimensionais e em formato proprietário; Alto desempenho; Execução de cálculos complexos; Baixa escalabilidade; Investimentos altos. ROLAP Características: Os dados são armazenados em banco de dados relacionais; A manipulação dos dados armazenados no banco de dados relacional é feita para dar a aparência de operação Slice/Dice tradicional; Na essência, cada ação de Slice/Dice é equivalente a adicionar uma cláusula WHERE em uma declaração SQL. Vantagens: Alta escalabilidade: usando a arquitetura ROLAP, não há nenhuma restrição na limitação da quantidade dados a serem analisados, cabendo essa limitação sendo do próprio banco de dados relacional utilizado; Pode alavancar as funcionalidades inerentes do banco de dados relacional: Muitos bancos de dados relacionais já vêm com uma série de funcionalidades e a arquitetura ROLAP pode alavancar estas funcionalidades. Desvantagens: Baixo desempenho: cada relatório ROLAP é basicamente uma consulta SQL (ou várias consultas SQL) na banco de dados relacional e uma consulta pode ser consumir muito tempo se houver uma grande quantidade de dados; Limitado pelas funcionalidades SQL: ROLAP se baseia principalmente na geração instruções SQL para consultar a base de dados relacional, porém essas instruções não suprem todas as necessidades (por exemplo, é difícil de realizar cálculos complexos utilizando SQL). Portanto, usar ROLAP é se limitar ao que instruções SQL podem fazer. Termos-chave: Alta escalabilidade; Pode alavancar as funcionalidades inerentes do banco de dados relacional; Baixo desempenho; Limitado pelas funcionalidades SQL. HOLAP Características: HOLAP tenta combinar as vantagens de MOLAP e ROLAP, extraindo o que há de melhor de cada uma, ou seja, a alta performance do MOLAP com a melhor escalabilidade do ROLAP; Para informações do tipo síntese, HOLAP utiliza cubos dimensionais para um desempenho mais rápido; Quando for necessário mais detalhe de uma informação, HOLAP pode ir além do cubo multidimensional para o banco de dados relacional utilizado no armazenamento dos detalhes. Vantagens: Alto desempenho: os cubos dimensionais apenas armazenam síntese das informações; Alta escalabilidade: os detalhes das informações são armazenados em um banco de dados relacional. Desvantagens: Arquitetura de o maior custo: é modelo que possui o maior custo de aquisição. Termos-chave: Alto desempenho; Alta escalabilidade; Arquitetura de o maior custo. DOLAP Característica: São as ferramentas que, a partir de um cliente qualquer, emitem uma consulta para o servidor e recebem o cubo de informações de volta para ser analisado na estação cliente. Vantagens: Pouco tráfego que na rede: todo o processamento OLAP acontece na máquina cliente; Sem sobrecarregar o servidor de banco de dados: como todo o processamento acontece na máquina cliente, o servidor fica menos sobrecarregado. Desvantagem: Limitação do cubo de dados: o tamanho do cubo de dados não pode ser muito grande, caso contrário, a análise passa a ser demorada e/ou a máquina do cliente pode não suportar em função de sua configuração. Termos-chave: Pouco tráfego que na rede; Sem sobrecarregar o servidor de banco de dados; Limitação do cubo de dados. Síntese das arquiteturas em Desempenho, Escabilidade e Custo Síntese das arquiteturas em Desempenho, Escabilidade e Custo Síntese das arquiteturas em Termos-chave Síntese das arquiteturas em Termos-chave Mapa Mental Mapa Mental de Data Warehouse - Arquiteturas OLAP Autor: Rogério Araújo