RAMON CEMIN IMPLEMENTAÇÃO E AVALIAÇÃO DE UM MÉTODO DE EXECUÇÃO SEGURA DE CÓDIGO

Tamanho: px
Começar a partir da página:

Download "RAMON CEMIN IMPLEMENTAÇÃO E AVALIAÇÃO DE UM MÉTODO DE EXECUÇÃO SEGURA DE CÓDIGO"

Transcrição

1 RAMON CEMIN IMPLEMENTAÇÃO E AVALIAÇÃO DE UM MÉTODO DE EXECUÇÃO SEGURA DE CÓDIGO Joinville, Dezembro/2006

2 2 ii UNIVERSIDADE DO ESTADO DE SANTA CATARINA BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO RAMON CEMIN IMPLEMENTAÇÃO E AVALIAÇÃO DE UM MÉTODO DE EXECUÇÃO SEGURA DE CÓDIGO Trabalho de conclusão de curso submetido à Universidade Estadual de Santa Catarina como parte dos requisitos para a obtenção do grau de Bacharel em Ciência da Computação Orientador: Julio da Silva Dias Joinville, Dezembro/2006

3 iii IMPLEMENTAÇÃO E AVALIAÇÃO DE UM MÉTODO DE EXECUÇÃO SEGURA DE CÓDIGO RAMON CEMIN Este Trabalho de Conclusão de Curso foi julgado adequado para a obtenção do título de Bacharel em Ciência da Computação Área de Concentração em Sistemas de Conhecimento e aprovada em sua forma final pelo Curso de Ciência da Computação Integral do CCT/UDESC. Banca Examinadora: Roberto Silvio Ubertino Rosso Jr., Phd. Coordenador da disciplina de TCC-II Julio da Silva Dias, Doutor Professor Orientador Charles Christian Miers, MSc. Ricardo Ferreira Martins, Doutor. Omir Alves Jr., MSc.

4 iv 4 À minha mãe Maria Anna Santana Cemin e meus irmãos pelo incentivo e apoio. E à minha noiva Aline, por acreditar em mim e estar sempre ao meu lado.

5 5 v Obrigada a todos que de alguma forma colaboraram na realização deste trabalho. Em especial, ao Professor Julio pela orientação fornecida.

6 vi 6 RESUMO Para que seja possível executar qualquer código seguramente, devem ser fornecidas provas sobre o seu comportamento, por isso mecanismos que auxiliem o usuário a controlar o software ajudarão a resolver vários problemas gerados por códigos maliciosos, principalmente com relação a segurança do host que executa algum tipo de código móvel. O model carrying code, que será estudado neste trabalho é uma técnica para a execução segura de código através de software que utiliza modelos para validar o comportamento dos programas. Esta técnica permite que as aplicações sejam executadas seguramente, ainda que se utilize uma plataforma insegura. Para o entendimento da técnica, neste trabalho serão apresentados os principais conceitos de sistemas distribuídos, segurança e de execução segura de código sendo realizada a implementação do Model carrying code para averiguar a sua eficácia mesmo utilizando outra abordagem para produção dos modelos e políticas. Palavras-chave: execução segura de código, Model carrying code, redes de Petri

7 vii 7 ABSTRACT For safe execution of any certain code, proofs should be supplied about its behavior. Mechanisms that aid the user to control the software will help to solve several problems generated by malicious codes, and will improve the safety of the host mainly regarding the mobile codes. Model carrying code, which will be studied in this work, is a technique for safe code execution through software, using models to validate the programs behavior. This technique allows software to be executed safely even in insecure platforms. For the understanding of this technique, the main concepts of Distributed Systems, Security and Secure Code Execution will be presented. After, Model carrying code was implemented to check its effectiveness using other approach to build the program s models. Keywords: secure code execution, model carrying code, Petri nets.

8 8 viii LISTA DE FIGURAS Figura 1 - Subdivisão por barramento e comutação (TANENBAUM, 2002)...20 Figura 2 - Modelo das Camadas de Hardware e Software em um Sistema Distribuído...25 Figura 3 - Tipos de ameaças à segurança de computadores (STALLINGS, 2002) Figura 4 - Os três aspectos da segurança computacional Figura 5 - Esquema básico da estrutura do PCC (RAMDOSS, 2000)...48 Figura 6 - Esquema básico do Sandbox (GONG, 1997) Figura 7 - Estrutura do MCC (SEKAR, 2003)...54 Figura 8 - Exemplo de EFSA para uma política de controle de acesso a arquivos (SEKAR, 2003). 60 Figura 9 - Exemplo de rede de Petri com 5 lugares e 3 transições...61 Figura 10 - Framework MCC simplificada...62 Figura 11 - Configuração do ambiente...66 Figura 12 - Validação aplicação alvo...67 Figura 13 - Diagrama de pacotes do protótipo...68 Figura 14 - Diagrama de classes do pacote System Vocabulary...70 Figura 15 - Diagrama de classes para os componentes de uma rede de Petri...71 Figura 16 - Diagrama de classes do pacote Exception...72 Figura 17 - Diagrama de classes do pacote Builder...73 Figura 18 - Diagrama de classes para o pacote Parser...74 Figura 19 - Diagrama de objetos representando o protótipo num determinado período do tempo 75 Figura 20 - Diagrama de seqüência para execução da rede...76 Figura 21 - Diagrama de seqüência representando o método check(mark mark) da classe Mcc(visão de uso)...77 Figura 22 - Diagrama de seqüência para o método check(mark mark) da classe Mcc(visão de implementação)...78 Figura 23 - Diagrama colaboração para a simulação do MCC...79 Figura 24 - Diagrama de estados representando o comportamento padrão das principais classes do protótipo...80 Figura 25 - Diagrama de componentes descrevendo a arquitetura de fontes da aplicação alvo 81 Figura 26 - Rede que descreve uma ordem de produção...83

9 ix 9 LISTA DE TABELAS Tabela 1 - Vantagens de sistemas distribuídos sobre sistemas centralizados (TANENBAUM, 2002)...21 Tabela 2 - Descrição dos nós da rede...83

10 x 10 LISTA DE ABREVIATURAS SIGLA AES CBC CRC DAC DRM GPL HLL HTML IPC ISO MAC MCC MIMD OS OSI PCC PC PDA RMI ROM RSA SCC SCP TAL TCPA Descrição Advanced Encryption Standard Cipher Block Chainin Cyclic Redundance Check Discretionary Access Control Digital Rights Management GNU Public License High Level Language Hyper Text Markup Language Inter-Process Comunication International Standard Organization Mandatory Access Control Model carrying code Multiple Instruction Multiple Data Operational System Open System Interconnect Proof Carrying Code Program Counter Personal Digital Assistant Remote Method Invocation Read-Only Memory Rivest Shamir Adleman Secure Cryptographic Co-processor Secure Cryptographic co-processor Type Assembly Language Trusted Computing Platform Alliance

11 11 SUMÁRIO RESUMO...6 ABSTRACT...7 LISTA DE FIGURAS...8 LISTA DE TABELAS...9 LISTA DE ABREVIATURAS...10 SUMÁRIO INTRODUÇÃO Objetivos Objetivo Geral Objetivos Específicos Estrutura do Trabalho SISTEMAS DISTRIBUÍDOS E SEGURANÇA Caracterização de Sistemas Distribuídos Desafios e Benefícios Modelos de Sistema Modelo Arquitetural Modelo Fundamental Questões de Segurança em Sistemas Distribuídos Código Móvel EXECUÇÃO SEGURA DE CÓDIGO EM SISTEMAS DISTRIBUÍDOS Definição de Execução Segura de Código Plataformas Computacionais Confiáveis TCPA Tipos e Técnicas de Execução Segura de Código Proof Carrying Code Typed Assembly Language (TAL) Model-Carrying Code (MCC) SandBox ESTUDO DO MODEL CARRYING CODE Descrição do método Políticas de segurança Extração de modelos Análise Estática Monitoramento da Execução Verificação Execução PROTÓTIPO Metodologias utilizadas Objetivos Projeto Definição do escopo e requisitos do protótipo Modelagem Estrutural Diagrama de pacotes Diagrama de classes Diagrama de objetos...73

12 5.6. Modelagem comportamental Diagrama de seqüência Diagrama de colaboração Diagrama de estados Modelagem da arquitetura Diagrama de componentes Caso de teste Análise dos resultados CONCLUSÕES REFERÊNCIAS...89 ANEXOS...96 ANEXO A Rede do Caso de Teste...97 ANEXO B Código Fonte do Caso de Teste...98 ANEXO C Plano de TCC

13 13 1. INTRODUÇÃO O desenvolvimento de sistemas distribuídos ainda não se tornou algo trivial, pois ainda existem vários desafios de implementação que não foram totalmente resolvidos. Mesmo existindo diversas dificuldades no desenvolvimento de sistemas distribuídos existem diversas vantagens que o tornam extremamente útil, como: fator econômico, velocidade, distribuição, crescimento incremental, confiança e compartilhamento de recursos (TANENBAUM, 2002). Para a concepção de um sistema distribuído existem diversos modelos arquiteturais (formas de se dispor e coordenar os relacionamentos das partes que compõem um sistema distribuído) que podem ajudar a minimizar as dificuldades citadas anteriormente. Dentre estes, existem os modelos cliente-servidor e o código móvel, que é uma variação do modelo cliente-servidor (COULOURIS, 2001). Qualquer código móvel é definido como um tipo de conteúdo executável que possa ser transmitido através de uma rede (PIESSENS, 1998) e pelas suas qualidades, esta tecnologia tornou-se parte da Internet, através de páginas equipadas com JavaScript, Applets Java ou ActiveX. Apesar das suas diversas aplicações vários autores ((SEKAR, (2003); (COULOURIS, 2001)) acreditam que o risco de danos ao computador que irá executar este tipo de código é muito alto por não existir nenhuma prova do comportamento do programa (código não-confiável), como: se o programa irá realmente respeitar as políticas de segurança do computador que irá executá-lo (SEKAR, 2003). Apesar deste não ser um problema exclusivo das tecnologias móveis, uma atenção maior deve ser dada, pois a maioria dos códigos móveis que são executados não existe a menor garantia de qualquer tipo de segurança, sendo que na maioria dos casos não é possível saber nem quem desenvolveu determinado código. O usuário deveria ter o direito de saber como se comportarão seus programas, isto é, deve haver a execução segura de programas. Existem diversas tecnologias disponíveis para lidar com o problema da execução segura de código não-confiável (SEKAR, 2003), como: Assinatura de Código, Inspeção de Conteúdo, SandBox, Proof-Carrying Code (PCC), Model carrying code (MCC). Na Assinatura de Código onde é possível provar a origem do código, o produtor do código o assina e o consumidor pode verificar a identidade do produtor. Nenhuma prova sobre o comportamento do programa e suas funcionalidades são fornecidas, sendo que o código

14 14 pode ser malicioso e causar efeitos indesejados no computador do usuário. A assinatura de código necessita da cooperação do produtor e do consumidor e não resolve o problema da execução segura, uma vez que a confiança no autor não implica diretamente na confiança na execução do código. Uma forma de garantir seria validar a execução do código que pode ser realizada através de modelos (MCC), validação do compilador (NECULA, 1998) ou então através de mecanismos que garantem a confiabilidade da plataforma computacional, como o TCPA (SAFFORD, 2002) e o NCipher (NSS GROUP, 2001). A Inspeção de Conteúdo lida com a análise estática do código no sistema hospedeiro. Normalmente o código é analisado no formato binário, o que faz com seja extremamente dificultoso analisar o comportamento dos programas antes de executá-los. O SandBox tenta assegurar a execução segura de um código através da restrição de recursos por meio de um ambiente de execução fabricado especialmente para um determinado código (SEKAR, 2003). Proof-Carrying Code é uma estrutura para verificação automatizada das propriedades de um programa através da sua representação em linguagem de máquina ou código fonte, onde o produtor do código deve provar certos aspectos do programa. Esta prova é enviada juntamente com o programa para que o usuário consiga verificar certos aspectos concernentes à segurança, mas não é possível provar o comportamento da aplicação (SEKAR, 2003). Model carrying code se fundamenta na idéia de que o aplicativo deva vir equipado com um modelo correspondendo ao seu comportamento. Este modelo ajuda a preencher o espaço entre políticas de segurança de alto nível e código em baixo nível (SEKAR, 2003). Este trabalho visa o estudo da técnica de execução segura de código Model carrying code (SEKAR, 2003) juntamente com os conceitos de execução segura de código em sistemas distribuídos e maneiras de se implementar o seu modelo conceitual, visto que esta é uma área nova e de pesquisas incipientes, por isso deve ser feito um estudo das possibilidades de implementação dos modelos (NECULA, 1997). O paradigma de execução segura de código, que será estudado, tem como principal objetivo fornecer a execução segura de código em plataformas computacionais não-seguras ambas distribuídas ou standalone (sem tornar a execução uma caixa preta para o usuário) através de modelos. Depois de ser estudada, esta técnica terá seu modelo conceitual implementado com uma abordagem distinta da original sobre uma implementação de um processo de fabricação

15 15 em um cadeia de suprimentos (FISCHER, 2005). Esta abordagem será escolhida com base no problema a ser resolvido Objetivos Objetivo Geral Implementar a técnica de execução segura de código MCC, utilizando uma abordagem diferenciada do autor na construção do modelo conceitual que irá descrever o modelo da aplicação e as políticas de segurança de um host (este trabalho não assume nenhuma premissa de controle de acesso mandatório) Objetivos Específicos 1) Pesquisar os conceitos de Sistemas Distribuídos com enfoque para a segurança. 2) Pesquisar os conceitos para a Execução Segura de Código; 3) Pesquisar os conceitos de Model carrying code (MCC); 4) Estudar as possíveis formas de construção dos modelos conceituais da metodologia que será estudada; 5) Analisar qual forma de construção do modelo conceitual se encaixa melhor no contexto da aplicação alvo; 6) Desenvolvimento de uma implementação para o modelo conceitual escolhido depois da análise; 7) Implementar uma aplicação utilizando o paradigma escolhido depois de ser feita a análise; 8) Avaliar a solução implementada Estrutura do Trabalho Este trabalho está estruturado em cinco capítulos. O primeiro apresentará uma introdução do que será realizado no trabalho e do tema abordado, juntamente com os objetivos deste trabalho.

16 16 O segundo irá caracterizar e descrever os conceitos de sistemas distribuídos e segurança. Este capítulo é necessário para o entendimento da complexidade do desenvolvimento de códigos seguros e que forneçam garantias da sua execução. O terceiro capítulo irá descrever algumas definições e técnicas sobre execução segura de código. Neste capitulo serão apresentadas algumas técnicas para facilitar o entendimento do MCC no próximo capítulo. O quarto será um estudo sobre o método de execução segura Model carrying code (MCC). Neste capítulo será explicado o funcionamento do MCC para facilitar o entendimento do protótipo (próximo capítulo). O quinto descreverá o problema a ser resolvido, as metodologias utilizadas e a descrição da solução. Este capítulo é uma explicação solução apresentada para o desenvolvimento para a nova abordagem do MCC.

17 17 2. SISTEMAS DISTRIBUÍDOS E SEGURANÇA Durante as três últimas décadas, a tecnologia computacional evoluiu de dispositivos centralizados monolíticos executando aplicações estáticas para dispositivos interligados realizando complexos tipos de computação paralela e distribuída (RAMBOSS, 1998). Pode-se dizer que a computação distribuída sofreu um maior avanço tecnológico na década de 80, quando ocorreram grandes avanços em duas tecnologias. O primeiro avanço foi o desenvolvimento de poderosos microprocessadores, a um custo mais baixo e com poder de processamento muito maior que vários mainframes; o segundo foi o desenvolvimento de redes de alta velocidade que permitiu que milhares de máquinas trocassem informações rapidamente, facilitando aglutinar várias máquinas em uma rede para estas trocarem informações para realizar algum tipo de processamento (TANENBAUM, 2002). Com advento de sistemas distribuídos foi possível conseguir feitos que seriam impraticáveis com sistemas centralizados ou mainframes, como o compartilhamento de recursos (COULOURIS, 2001). Apesar do progresso, a abordagem no desenvolvimento do software distribuído tornou-se totalmente diferente em relação aos sistemas centralizados (TANENBAUM, 2002) trazendo vários novos desafios, como: heterogeneidade dos componentes, abertura, escalabilidade, tratamento de falhas, concorrência, transparência e segurança (que será o objeto de estudo deste trabalho) (COULOURIS, 2001). Sobre segurança ainda existem várias questões que ainda não foram resolvidas, como a segurança em códigos móveis (COULOURIS, 2001). Código móvel é definido como qualquer conteúdo executável que possa ser transmitido por uma rede (PIESSENS, 2003), mas como garantir que este software não estará burlando as políticas de segurança da máquina que o executa, ou até mesmo garantir que estes tipos de softwares gerem os resultados esperados? Este capítulo irá apresentar a fundamentação teórica sobre sistemas distribuídos e as suas questões de segurança, onde seus principais conceitos serão estudados, incluindo: caracterização de sistemas distribuídos e as dificuldades em se desenvolver sistemas distribuídos devido a questões da falta de segurança.

18 Caracterização de Sistemas Distribuídos Segundo (COULOURIS, 2001), um sistema distribuído pode ser definido como um conjunto de computadores que coordenam suas ações e se comunicam apenas por troca de mensagens. Através desta definição podem-se enumerar três características inerentes a qualquer sistema distribuído: concorrência dos componentes, inexistência de relógio global e independência de falhas dos componentes (COULOURIS, 2001): Concorrência: Define-se concorrência como a capacidade de usuários e/ou máquinas em uma rede conseguirem realizar seu trabalho utilizando recursos compartilhados com justiça. Por exemplo, em uma empresa grande poderia existir apenas uma impressora controlada por um único servidor de impressão e mesmo assim este deveria conseguir atender a todos os funcionários com um máximo de justiça, isto é, todos deveriam ser atendidos mesmo com um grande número de usuários; Inexistência de Relógio Global: É conseqüência direta da definição de que só existe comunicação através da troca de mensagens. Mais precisamente se refere a impossibilidade de sincronizar com precisão o clock do processador das máquinas em uma rede; Independência em caso de falhas: É uma questão de responsabilidade dos projetistas. Define-se como a capacidade de um sistema distribuído continuar realizando o seu trabalho mesmo que ocorra qualquer tipo de falha em suas máquinas. Estas falhas podem ser de qualquer tipo: hardware, software ou até mesmo rede. De acordo com a taxonomia de Flynn, que é uma classificação para sistemas concorrentes (FLYNN, 1972), todos os sistemas distribuídos são do tipo MIMD (Multiple Instruction Multiple Data Stream Várias Instruções (processadores) e Vários Fluxos de Dados). A classificação MIMD é descrita como: um grupo de computadores independentes, cada um com o seu registrador para contagem de instruções (PC Program Counter), processo e dados. Tanebaum (2002) ainda subdividiu a classe MIMD em: multicomputadores e multiprocessadores. A principal diferença entre multicomputadores e multiprocessadores é o

19 19 compartilhamento de memória. Sendo que com relação aos multiprocessadores, caso qualquer processador modifique, por exemplo, o endereço x com y, qualquer outro quando acessar em seguida o endereço x, obterá y. No caso dos multicomputadores, o acesso à memória é totalmente diferente. Caso um processador modifique um endereço x da sua memória com y, esta mudança só terá efeito em seu próprio espaço de endereçamento. Tanebaum (2002) dividiu estas duas classificações em mais duas cada uma. A Figura 1 as classifica como sendo por: barramento e comutação. Por barramento significa que existe apenas um único meio pelo qual são feita às trocas de mensagens. Ex: rede par-trançado, cabo. Por comutação todas as máquinas estão interligadas, isto é, todas as máquinas têm uma ligação entre si, e não apenas um único meio compartilhado. Ex: Hypercube (hipercubo), Mesh (malha). O autor ainda cita que esta subclassificação poderia ser enumerada de um jeito um pouco menos usual, que seria: sistemas fracamente acoplados e sistemas fortemente acoplados. Usualmente a denominação de sistemas fortemente acoplados tende para ser usada para sistemas paralelos, isto é, apenas um problema sendo resolvido pelas máquinas; sistemas fracamente acoplados são normalmente utilizados para denominar sistemas distribuídos, onde vários problemas com ou sem relação, são resolvidos ao mesmo tempo, mas neste caso podem existir exceções, como em um projeto onde vários computadores espalhados pelo mundo com o objetivo de fatorar um número de 100 dígitos sendo que cada um tem a sua quantidade de divisores (TANENBAUM, 2002). Sistemas distribuídos possuem várias classificações, gerando uma grande gama de tipos e aplicações com diferentes requisitos e dificuldades, por isso é necessário explicar os seus benefícios para que fique clara a sua importância Desafios e Benefícios Historicamente pode ser dito que a computação distribuída sofreu um maior avanço tecnológico na década de 80, quando ocorreram grandes avanços em duas tecnologias. O primeiro foi o desenvolvimento de poderosos microprocessadores, a um custo mais baixo e com poder de processamento muito maior que vários mainframes e o segundo progresso foi o desenvolvimento de redes de alta velocidade que permitiu que milhares de máquinas pudessem trocar informações rapidamente, facilitando aglutinar várias máquinas em uma rede e estas trocarem informações para realizar algum tipo de processamento (TANENBAUM, 2002).

20 20 Existem diversas vantagens de sistemas distribuídos sobre sistemas centralizados ou mainframes, como: o fator econômico, a velocidade, a distribuição inerente, o crescimento incremental e a confiança, conforme a tabela 1. O fator econômico pode ser explicado pelo fato de que microprocessadores oferecem preços muito mais baixos que mainframes. Já a velocidade está relacionada com o fato de que sistemas distribuídos podem ter um poderio computacional muito maior que um mainframe. Um exemplo que pode ser utilizado para comprovar esta afirmação é a possibilidade de se construir um sistema com tantas CPU s e cada um com um poder computacional tal, que no final seria impraticável fazer uma única CPU que conseguisse o mesmo poder de processamento. Outra vantagem é o poder de distribuição que pode ser obtido com um sistema distribuído, já que é possível distribuir a aplicação geograficamente em várias máquinas. Além disso, existe ainda o crescimento incremental, que é a capacidade de se adicionar poder computacional aos poucos ao sistema, e que conseqüentemente irá aumentar o nível de confiabilidade de um sistema distribuído, já que se caso uma máquina falhe outra pode substituí-la sem maiores problemas. Agora, com relação a computadores pessoais a principal vantagem é a possibilidade de compartilhar recursos com extrema facilidade, pois seria impraticável replicar uma mesma base de dados em todos os computadores, até mesmo em uma rede pequena (TANENBAUM, 2002) (COULOURIS, 2001). MIMD Fracamente Acoplados Computadores Paralelos e Distribuídos Fortemente Acoplados Multiprocessadores Multicomputadores Barramento Comutado Barramento Comutado Figura 1 - Subdivisão por barramento e comutação (TANENBAUM, 2002).

21 21 Apesar das vantagens apresentadas, o desenvolvimento de sistemas distribuídos ainda não se tornou algo trivial. Coulouris (2001) enumera e descreve vários desafios a serem tratados no projeto e implementação de sistemas distribuídos sendo que estes desafios serão descritos com maiores detalhes a seguir: Heterogeneidade: significa que o sistema tem que ser capaz de ser executado em uma grande variedade de plataformas de hardware e software. Resumidamente significa que este terá de ser capaz de rodar em uma grande variedade de: redes, hardware de computador, sistemas operacionais e linguagens de programação. A alternativa mais utilizada para tratar a heterogeneidade é o uso de middleware, que é uma camada de software que fornece abstrações de programação e também outros itens, como: rede, hardware, sistemas operacionais e linguagens de programação. Tabela 1 - Vantagens de sistemas distribuídos sobre sistemas centralizados (TANENBAUM, 2002). Economia Microprocessadores são mais baratos que mainframes Velocidade Um sistema distribuído pode ter um desempenho muito maior que um mainframe Distribuição Algumas aplicações exigem que máquinas estejam geograficamente separadas Confiança Caso alguma máquina falhe o sistema (como um todo) continua as suas tarefa Crescimento Incremental Poder computacional pode ser adicionado aos poucos Abertura está voltada para o grau de facilidade de se adicionar novos itens ao sistema, tanto hardware como software. O uso de padrões, como CORBA fazem o sistema bastante flexível e adaptável. Escalabilidade trata da capacidade do sistema ficar estável quando o número de máquinas (nós) variar. Um sistema é escalável quando: o O número de nós varia sem afetar a estabilidade do sistema;

22 22 o O número de nós pode variar sem prejudicar o desempenho do sistema. Este item está condicionado a determinação de limiares; o Nós podem ser adicionados ou removidos sem muita necessidade de intervenção humana. Manipulação ou Tratamento de Falhas se refere à capacidade do sistema conseguir enfrentar possíveis erros gerados pelos nós e ainda permanecer estável. A manipulação de falhas ainda tem que tratar de itens como: o congestionamento da rede, o controle de latência da rede ou da conectividade entre os nós. Concorrência de recursos lida com o compartilhamento dos recursos em um sistema, sendo que este deve ser feito com justiça entre os nós. É desejado o máximo de throughput, sendo que quando for possível deve-se optar por acessos concorrentes ao recurso. Transparência de um sistema distribuído é a capacidade deste ser percebido como um todo, e não como uma coleção de nós independentes. O manual de referência da ANSA (ANSA, 1989) define oito tipos de transparência: o Transparência de Acesso: significa que a informação pode ser acessada localmente ou remotamente usando as mesmas operações; o Transparência de Localização: significa que a informação pode estar em qualquer lugar. Um usuário deve acessar as informações locais ou remotas com a mesma facilidade sem ter noção de onde realmente estas vêm; o Transparência de Migração: significa que recursos podem ser movidos dentro de um sistema distribuído sem ocorrerem perdas, isto é, caso um arquivo necessite ser movido devem ser mudadas todas as referências a este arquivo; o Transparência de Replicação: significa que deve ser possível replicar informações sem mudar os parâmetros do sistema, isto é, se existem informações replicadas que serão modificadas, então todas devem ser atualizadas com o mesmo conteúdo;

23 23 o Transparência de Concorrência: significa que vários processos devem usar os mesmos recursos sem afetar os parâmetros de funcionamento do sistema; o Transparência de Escalabilidade: significa que um sistema distribuído deve ser escalável, isto é, os nós ou recursos podem mudar sem afetar o funcionamento do sistema; o Transparência de Performance: significa que o sistema deve funcionar da mesma forma, mesmo estando sobre alta carga ou baixa carga de processamento ou acessos aos recursos; o Transparência de Falha: significa que componentes do sistema podem falhar sem afetar o sistema. Normalmente são adotadas medidas de redundância de recursos. Segurança é um dos itens mais discutidos pelos pesquisadores da área da computação. Segundo vários autores ((SCHNEIER, 2000), (STALLINGS, 2002)) ainda não é possível ter um sistema 100% seguro. Na seção 2.4 serão discutidos itens referentes à segurança em sistemas distribuídos. Sistemas distribuídos possuem inúmeros desafios, decorrentes das suas inúmeras aplicações e também vários métodos para desenvolvê-los. Uma descrição dos métodos para o desenvolvimento será fornecida a seguir Modelos de Sistema Esta seção introduz a base de como elementos de sistemas distribuídos tanto de hardware como de software são distribuídos em uma rede (modelo arquitetural) e as principais características inerentes a qualquer modelo arquitetural (modelo fundamental). Primeiramente serão descritos os modelos arquiteturais de sistemas distribuídos e posteriormente serão descritos os modelos fundamentais, que são definidos com base nos modelos arquiteturais existentes Modelo Arquitetural O modelo arquitetural de um sistema distribuído se preocupa com a disposição das partes que o compõem e como estas se relacionarão, tanto de hardware quanto de software. O objetivo é assegurar que esta estrutura consiga satisfazer tanto os requisitos atuais e futuros do sistema. Um modelo arquitetural de um sistema distribuído primeiramente simplifica e abstrai

24 24 funções de componentes individuais para depois se preocupar como estas serão interconectadas, e então definir como ocorrerão as relações entre os componentes do sistema (COULOURIS, 2001). Inicialmente para facilitar o desenvolvimento de um sistema distribuído devem ser classificados os processos que farão parte do sistema em processo cliente, processo servidor e processo peer (neste tipo de processo não é definido quem é o servidor ou o cliente, todos tem o mesmo papel). Esta classificação facilita o desenvolvimento por permitir que sejam identificadas as responsabilidades de cada processo e assim definir qual será a quantidade de trabalho de cada item do sistema (ex: processador e armazenamento), determinando o impacto em caso falha de cada um dos processos. Normalmente, a forma como os processos estarão dispostos é influenciada por fatores como: performance, confiança, segurança e custos gerando vários tipos de modelos arquiteturais (COULOURIS, 2001). Os principais tipos de modelos arquiteturais quanto à disposição dos elementos na rede serão descritos a seguir (COULOURIS, 2001): Modelo Cliente-Servidor: É o modelo mais utilizado. Tem uma arquitetura simples onde algum processo (servidor) fornece algum tipo de serviço a outro (cliente). É comum ocorrer o caso de processos servidores se tornarem processos clientes de seus clientes e de outros processos; e vice-versa; Código Móvel: É uma variação do modelo cliente-servidor. É caracterizado pela capacidade de mobilidade dos processos. Existem várias questões de segurança que ainda estão sem uma solução trivial (FONG, 2004). A seção irá descrever as suas características e as dificuldades de tornar a sua execução segura; Serviços disponibilizados por vários servidores: Esta arquitetura é baseada no modelo cliente-servidor, a diferença é que um determinado serviço requisitado pode ser particionado entre vários nós (deve ser transparente ao processo cliente) ou então replicado entre os nós (replicação da informação); Servidores proxy e de cache: A idéia deste modelo é armazenar itens que tiveram um acesso recente (cache), para aumentar a disponibilidade e performance do serviço, reduzindo também a carga na rede e servidores web. Este serviço pode ser

Arquitetura dos Sistemas de Informação Distribuídos

Arquitetura dos Sistemas de Informação Distribuídos Arquitetura dos Sistemas de Informação Distribuídos Quando se projeta um sistema cuja utilização é destinada a ser feita em ambientes do mundo real, projeções devem ser feitas para que o sistema possa

Leia mais

SISTEMAS DISTRIBUIDOS

SISTEMAS DISTRIBUIDOS 1 2 Caracterização de Sistemas Distribuídos: Os sistemas distribuídos estão em toda parte. A Internet permite que usuários de todo o mundo acessem seus serviços onde quer que possam estar. Cada organização

Leia mais

Introdução. Definição de um Sistema Distribuído (1) Definição de um Sistema Distribuído(2) Metas de Sistemas Distribuídos (2)

Introdução. Definição de um Sistema Distribuído (1) Definição de um Sistema Distribuído(2) Metas de Sistemas Distribuídos (2) Definição de um Sistema Distribuído (1) Introdução Um sistema distribuído é: Uma coleção de computadores independentes que aparecem para o usuário como um único sistema coerente. Definição de um Sistema

Leia mais

Projeto de Sistemas Distribuídos. Prof. Andrêza Leite andreza.lba@gmail.com

Projeto de Sistemas Distribuídos. Prof. Andrêza Leite andreza.lba@gmail.com Projeto de Sistemas Distribuídos Prof. Andrêza Leite andreza.lba@gmail.com Agenda Introdução Exemplos de Sistemas Distribuídos Compartilhamento de Recursos e a Web Principais Desafios para a Implementação

Leia mais

Aula 03-04: Modelos de Sistemas Distribuídos

Aula 03-04: Modelos de Sistemas Distribuídos UNIVERSIDADE Computação Aula 03-04: Modelos de Sistemas Distribuídos 2o. Semestre / 2014 Prof. Jesus Principais questões no projeto de um sistema distribuído (SD) Questão de acesso (como sist. será acessado)

Leia mais

Segurança Internet. Fernando Albuquerque. fernando@cic.unb.br www.cic.unb.br/docentes/fernando (061) 273-3589

Segurança Internet. Fernando Albuquerque. fernando@cic.unb.br www.cic.unb.br/docentes/fernando (061) 273-3589 Segurança Internet Fernando Albuquerque fernando@cic.unb.br www.cic.unb.br/docentes/fernando (061) 273-3589 Tópicos Introdução Autenticação Controle da configuração Registro dos acessos Firewalls Backups

Leia mais

Camadas de Serviço de Hardware e Software em Sistemas Distribuídos. Introdução. Um Serviço Provido por Múltiplos Servidores

Camadas de Serviço de Hardware e Software em Sistemas Distribuídos. Introdução. Um Serviço Provido por Múltiplos Servidores Camadas de Serviço de Hardware e Software em Sistemas Distribuídos Arquiteutra de Sistemas Distribuídos Introdução Applications, services Adaptação do conjunto de slides do livro Distributed Systems, Tanembaum,

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 6 Estrutura de Sistemas Operacionais Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso

Leia mais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Processos- Clientes, Servidores, Migração Capítulo 3 Agenda Clientes Interfaces de usuário em rede Sistema X Window Software do lado cliente para

Leia mais

Introdução ao Modelos de Duas Camadas Cliente Servidor

Introdução ao Modelos de Duas Camadas Cliente Servidor Introdução ao Modelos de Duas Camadas Cliente Servidor Desenvolvimento de Sistemas Cliente Servidor Prof. Esp. MBA Heuber G. F. Lima Aula 1 Ciclo de Vida Clássico Aonde estamos? Page 2 Análise O que fizemos

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelo Cliente-Servidor: Introdução aos tipos de servidores e clientes Prof. MSc. Hugo Souza Iniciando o módulo 03 da primeira unidade, iremos abordar sobre o Modelo Cliente-Servidor

Leia mais

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com. http://www.tiagodemelo.info

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com. http://www.tiagodemelo.info Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com Última atualização: 20.03.2013 Conceitos Banco de dados distribuídos pode ser entendido como uma coleção de múltiplos bds

Leia mais

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos MÓDULO 7 Modelo OSI A maioria das redes são organizadas como pilhas ou níveis de camadas, umas sobre as outras, sendo feito com o intuito de reduzir a complexidade do projeto da rede. O objetivo de cada

Leia mais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

Comparação SDs X Scs

Comparação SDs X Scs Prof. Alexandre Lima Sistemas Distribuídos Cap 9 1/7 Comparação SDs X Scs Distribuição inerente Economia Velocidade Confiabilidade Crescimento incremental Descrição Algumas aplicações envolvem máquinas

Leia mais

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo Introdução O que é Protocolo? - Para que os pacotes de dados trafeguem de uma origem até um destino, através de uma rede, é importante

Leia mais

Profs. Deja e Andrei

Profs. Deja e Andrei Disciplina Sistemas Distribuídos e de Tempo Real Profs. Deja e Andrei Sistemas Distribuídos 1 Conceitos e Projetos de Sistemas Distribuídos Objetivos: Apresentar uma visão geral de processamento distribuído,

Leia mais

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Introdução Um sistema operacional é um programa que atua como intermediário entre o usuário e o hardware de um computador. O propósito

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 02 Análise e Projeto OO Edirlei Soares de Lima Análise A análise modela o problema e consiste das atividades necessárias para entender

Leia mais

Sistemas Distribuídos: Conceitos e Projeto Introdução a Criptografia e Criptografia Simétrica

Sistemas Distribuídos: Conceitos e Projeto Introdução a Criptografia e Criptografia Simétrica Sistemas Distribuídos: Conceitos e Projeto Introdução a Criptografia e Criptografia Simétrica Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA

Leia mais

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING http://www.uniriotec.br/~tanaka/tin0036 tanaka@uniriotec.br Bancos de Dados Distribuídos Conceitos e Arquitetura Vantagens das Arquiteturas C/S (em relação

Leia mais

MÓDULO 11 ELEMENTOS QUE FAZEM PARTE DO PROJETO DO SISTEMA

MÓDULO 11 ELEMENTOS QUE FAZEM PARTE DO PROJETO DO SISTEMA MÓDULO 11 ELEMENTOS QUE FAZEM PARTE DO PROJETO DO SISTEMA Através dos elementos que fazem parte do projeto do sistema é que podemos determinar quais as partes do sistema que serão atribuídas às quais tipos

Leia mais

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd. Apresentação Este curso tem como objetivo, oferecer uma noção geral sobre a construção de sistemas de banco de dados. Para isto, é necessário estudar modelos para a construção de projetos lógicos de bancos

Leia mais

1 http://www.google.com

1 http://www.google.com 1 Introdução A computação em grade se caracteriza pelo uso de recursos computacionais distribuídos em várias redes. Os diversos nós contribuem com capacidade de processamento, armazenamento de dados ou

Leia mais

Entendendo como funciona o NAT

Entendendo como funciona o NAT Entendendo como funciona o NAT Vamos inicialmente entender exatamente qual a função do NAT e em que situações ele é indicado. O NAT surgiu como uma alternativa real para o problema de falta de endereços

Leia mais

ESTUDO DE CASO WINDOWS VISTA

ESTUDO DE CASO WINDOWS VISTA ESTUDO DE CASO WINDOWS VISTA História Os sistemas operacionais da Microsoft para PCs desktop e portáteis e para servidores podem ser divididos em 3 famílias: MS-DOS Windows baseado em MS-DOS Windows baseado

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS Comunicação coletiva Modelo Peer-to-Peer Slide 6 Nielsen C. Damasceno Introdução Os modelos anteriores eram realizado entre duas partes: Cliente e Servidor. Com RPC e RMI não é possível

Leia mais

http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho vi http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Administração de Redes de Computadores Resumo de Serviços em Rede Linux Controlador de Domínio Servidor DNS

Leia mais

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4 Sistemas Distribuídos Capítulos 3 e 4 - Aula 4 Aula passada Threads Threads em SDs Processos Clientes Processos Servidores Aula de hoje Clusters de Servidores Migração de Código Comunicação (Cap. 4) Fundamentos

Leia mais

Sistemas Distribuídos. Introdução

Sistemas Distribuídos. Introdução Sistemas Distribuídos Introdução Definição Processos Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software distribuído. Executados

Leia mais

ITIL v3 - Operação de Serviço - Parte 1

ITIL v3 - Operação de Serviço - Parte 1 ITIL v3 - Operação de Serviço - Parte 1 É na Operação de Serviço que se coordena e realiza as atividades e processos necessários para fornecer e gerenciar serviços em níveis acordados com o usuário e clientes

Leia mais

Aula 01 Introdução ao Gerenciamento de Redes

Aula 01 Introdução ao Gerenciamento de Redes Aula 01 Introdução ao Gerenciamento de Redes Leonardo Lemes Fagundes leonardo@exatas.unisinos.br São Leopoldo, 15 de outubro de 2004 Roteiro Apresentação da disciplina Objetivos Conteúdo programático Metodologia

Leia mais

3 SERVIÇOS IP. 3.1 Serviços IP e alguns aspectos de segurança

3 SERVIÇOS IP. 3.1 Serviços IP e alguns aspectos de segurança 3 SERVIÇOS IP 3.1 Serviços IP e alguns aspectos de segurança Os serviços IP's são suscetíveis a uma variedade de possíveis ataques, desde ataques passivos (como espionagem) até ataques ativos (como a impossibilidade

Leia mais

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO Santa Maria, 01 de Novembro de 2013. Revisão aula passada Projeto de Arquitetura Decisões de projeto de Arquitetura

Leia mais

SEGURANÇA E CONTROLE EM SISTEMAS DE INFORMAÇÃO

SEGURANÇA E CONTROLE EM SISTEMAS DE INFORMAÇÃO SEGURANÇA E CONTROLE EM SISTEMAS DE INFORMAÇÃO 1 OBJETIVOS 1. Por que sistemas de informação são tão vulneráveis a destruição, erro, uso indevido e problemas de qualidade de sistemas? 2. Que tipos de controles

Leia mais

3 Arquitetura do Sistema

3 Arquitetura do Sistema 3 Arquitetura do Sistema Este capítulo irá descrever a arquitetura geral do sistema, justificando as decisões de implementação tomadas. Na primeira seção iremos considerar um conjunto de nós interagindo

Leia mais

Sistemas de Informação I

Sistemas de Informação I + Sistemas de Informação I Dimensões de análise dos SI Ricardo de Sousa Britto rbritto@ufpi.edu.br + Introdução n Os sistemas de informação são combinações das formas de trabalho, informações, pessoas

Leia mais

Metadados. 1. Introdução. 2. O que são Metadados? 3. O Valor dos Metadados

Metadados. 1. Introdução. 2. O que são Metadados? 3. O Valor dos Metadados 1. Introdução O governo é um dos maiores detentores de recursos da informação. Consequentemente, tem sido o responsável por assegurar que tais recursos estejam agregando valor para os cidadãos, as empresas,

Leia mais

MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS

MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS Quando falamos em arquitetura, normalmente utilizamos esse termo para referenciar a forma como os aplicativos computacionais são estruturados e os hardwares

Leia mais

Conceitos de Banco de Dados

Conceitos de Banco de Dados Conceitos de Banco de Dados Autor: Luiz Antonio Junior 1 INTRODUÇÃO Objetivos Introduzir conceitos básicos de Modelo de dados Introduzir conceitos básicos de Banco de dados Capacitar o aluno a construir

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelos e arquitecturas 14/15 Sistemas Distribuídos 1 Modelos arquitecturais 14/15 Sistemas Distribuídos 2 Camadas de Software: o Middleware Aplicações Middleware Sistema Operativo

Leia mais

Sistemas Distribuídos. Ricardo Ribeiro dos Santos ricrs@ec.ucdb.br

Sistemas Distribuídos. Ricardo Ribeiro dos Santos ricrs@ec.ucdb.br Sistemas Distribuídos Ricardo Ribeiro dos Santos ricrs@ec.ucdb.br Curso de Engenharia de Computação UCDB Agosto/2003 Tópicos Conceitos de HW em SD Multiprocessadores e Multicomputadores Conceitos de SW

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS 1. Histórico Primeiros computadores Computadores dos anos 50 e 60 Primeiros computadores com sistemas operacionais Surgimento das redes de computadores Nos anos 70 início das pesquisas

Leia mais

3 SCS: Sistema de Componentes de Software

3 SCS: Sistema de Componentes de Software 3 SCS: Sistema de Componentes de Software O mecanismo para acompanhamento das chamadas remotas se baseia em informações coletadas durante a execução da aplicação. Para a coleta dessas informações é necessário

Leia mais

Definição de Padrões. Padrões Arquiteturais. Padrões Arquiteturais. Arquiteturas de Referência. Da arquitetura a implementação. Elementos de um Padrão

Definição de Padrões. Padrões Arquiteturais. Padrões Arquiteturais. Arquiteturas de Referência. Da arquitetura a implementação. Elementos de um Padrão DCC / ICEx / UFMG Definição de Padrões Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Um padrão é uma descrição do problema e a essência da sua solução Documenta boas soluções para problemas recorrentes

Leia mais

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES Prof. Ms. Carlos José Giudice dos Santos cpgcarlos@yahoo.com.br www.oficinadapesquisa.com.br Conceito de Computador Um computador digital é

Leia mais

Faculdades Santa Cruz - Inove. Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira.

Faculdades Santa Cruz - Inove. Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira. Período letivo: 4 Semestre. Quinzena: 5ª. Faculdades Santa Cruz - Inove Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira. Unidade Curricular Sistemas Distribuídos Processos

Leia mais

Engenharia de Sistemas Computacionais

Engenharia de Sistemas Computacionais Engenharia de Sistemas Detalhes no planejamento UNIVERSIDADE FEDERAL DE ALAGOAS Curso de Ciência da Computação Engenharia de Software I Prof. Rômulo Nunes de Oliveira Introdução Na aplicação de um sistema

Leia mais

SEGURANÇA A E CONTROLE EM SISTEMAS DE INFORMAÇÃO

SEGURANÇA A E CONTROLE EM SISTEMAS DE INFORMAÇÃO Capítulo 14 SEGURANÇA A E CONTROLE EM SISTEMAS DE INFORMAÇÃO 14.1 2003 by Prentice Hall OBJETIVOS Por que sistemas de informação são tão vulneráveis veis a destruição, erro, uso indevido e problemas de

Leia mais

Engenharia de Requisitos

Engenharia de Requisitos Engenharia de Requisitos Introdução a Engenharia de Requisitos Professor: Ricardo Argenton Ramos Aula 08 Slide 1 Objetivos Introduzir a noção de requisitos do sistema e o processo da engenharia de requisitos.

Leia mais

ICORLI. INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET

ICORLI. INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET 2010/2011 1 Protocolo TCP/IP É um padrão de comunicação entre diferentes computadores e diferentes sistemas operativos. Cada computador deve

Leia mais

Organização e Arquitetura de Computadores I. de Computadores

Organização e Arquitetura de Computadores I. de Computadores Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de I Organização Básica B de (Parte V, Complementar)

Leia mais

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Conceitos básicos e serviços do Sistema Operacional Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Tipos de serviço do S.O. O S.O.

Leia mais

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial 1 of 14 27/01/2014 17:33 Sistema de Paginação de Esportes Universitários Documento de Arquitetura de Software Versão 1.0 Histórico da Revisão Data 30 de novembro de 1999 Versão Descrição Autor 1.0 Versão

Leia mais

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais Sistemas Operacionais Prof.: Roberto Franciscatto Capítulo 1.2 Aspectos Gerais Estrutura do Sistema Operacional Principais Funções do Sistema Operacional Tratamento de interrupções e exceções Criação e

Leia mais

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio 32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio

Leia mais

Conceitos Básicos de Rede. Um manual para empresas com até 75 computadores

Conceitos Básicos de Rede. Um manual para empresas com até 75 computadores Conceitos Básicos de Rede Um manual para empresas com até 75 computadores 1 Conceitos Básicos de Rede Conceitos Básicos de Rede... 1 A Função de Uma Rede... 1 Introdução às Redes... 2 Mais Conceitos Básicos

Leia mais

Um Driver NDIS Para Interceptação de Datagramas IP

Um Driver NDIS Para Interceptação de Datagramas IP Um Driver NDIS Para Interceptação de Datagramas IP Paulo Fernando da Silva psilva@senior.com.br Sérgio Stringari stringari@furb.br Resumo. Este artigo apresenta o desenvolvimento de um driver NDIS 1 para

Leia mais

CHECK - LIST - ISO 9001:2000

CHECK - LIST - ISO 9001:2000 REQUISITOS ISO 9001: 2000 SIM NÃO 1.2 APLICAÇÃO A organização identificou as exclusões de itens da norma no seu manual da qualidade? As exclusões são relacionadas somente aos requisitos da sessão 7 da

Leia mais

Gerenciamento e Interoperabilidade de Redes

Gerenciamento e Interoperabilidade de Redes EN-3610 Gerenciamento e Interoperabilidade de Redes Aula 01 Introdução Prof. João Henrique Kleinschmidt Santo André, julho de 2013 Roteiro PARTE I Apresentação da Disciplina Apresentação do Professor Metodologia

Leia mais

SISTEMAS OPERACIONAIS. Apostila 01 Assunto: Tipos de Sistemas Operacionais UNIBAN

SISTEMAS OPERACIONAIS. Apostila 01 Assunto: Tipos de Sistemas Operacionais UNIBAN SISTEMAS OPERACIONAIS Apostila 01 Assunto: Tipos de Sistemas Operacionais UNIBAN 2.0 - INTRODUÇÃO Os tipos de sistemas operacionais e sua evolução estão intimamente relacionados com a evolução do hardware

Leia mais

Software de rede e Modelo OSI André Proto UNESP - São José do Rio Preto andre.proto@sjrp.unesp.br O que será abordado Hierarquias de protocolos (camadas) Questões de projeto relacionadas às camadas Serviços

Leia mais

UNIVERSIDADE FEDERAL DE PELOTAS

UNIVERSIDADE FEDERAL DE PELOTAS Usando um firewall para ajudar a proteger o computador A conexão à Internet pode representar um perigo para o usuário de computador desatento. Um firewall ajuda a proteger o computador impedindo que usuários

Leia mais

Arquiteturas RISC. (Reduced Instructions Set Computers)

Arquiteturas RISC. (Reduced Instructions Set Computers) Arquiteturas RISC (Reduced Instructions Set Computers) 1 INOVAÇÕES DESDE O SURGIMENTO DO COMPU- TADOR DE PROGRAMA ARMAZENADO (1950)! O conceito de família: desacoplamento da arquitetura de uma máquina

Leia mais

Projeto de Arquitetura

Projeto de Arquitetura Projeto de Arquitetura Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 1 Objetivos Apresentar projeto de arquitetura e discutir sua importância Explicar as decisões de projeto

Leia mais

On Scalability of Software-Defined Networking

On Scalability of Software-Defined Networking On Scalability of Software-Defined Networking Bruno dos Santos Silva bruno.silva@ic.uff.br Instituto de Computação IC Universidade Federal Fluminense UFF 24 de Setembro de 2015 B. S. Silva (IC-UFF) On

Leia mais

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

Leia mais

Sistemas Operacionais Introdução. Professora: Michelle Nery

Sistemas Operacionais Introdução. Professora: Michelle Nery Sistemas Operacionais Introdução Professora: Michelle Nery Área de Atuação do Sistema Operacional Composto de dois ou mais níveis: Tipo de Sistemas Operacionais Sistemas Operacionais Monotarefas Sistemas

Leia mais

Sistemas Distribuídos: Conceitos e Projeto Caracterização de Sistemas Distribuídos

Sistemas Distribuídos: Conceitos e Projeto Caracterização de Sistemas Distribuídos Sistemas Distribuídos: Conceitos e Projeto Caracterização de Sistemas Distribuídos Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.deinf.ufma.br

Leia mais

ADMINISTRAÇÃO DE ATIVOS DE TI GERENCIAMENTO DE LIBERAÇÃO

ADMINISTRAÇÃO DE ATIVOS DE TI GERENCIAMENTO DE LIBERAÇÃO 1 ADMINISTRAÇÃO DE ATIVOS DE TI GERENCIAMENTO DE LIBERAÇÃO 2 INTRODUÇÃO A cada dia que passa, cresce a pressão pela liberação para uso de novas tecnologias disponibilizadas pela área de TI, sob o argumento

Leia mais