Análise do projeto arquitetural do GIT

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

Download "Análise do projeto arquitetural do GIT"

Transcrição

1 Análise do projeto arquitetural do GIT Rafael Abraão Rodrigues Lago, Tiago Carmo Santos 1 1 rafael.abraao.rodrigues@gmail.com; tiagocarmosantos@hotmail.com; Abstract Este trabalho tem como objetivo realizar uma análise das decisões arquiteturais do sistema de controle de versão Git, bem como apresentar os benefícios, justificativas e consequências dessas decisões. A arquitetura é analisada através da identificação das principais demandas funcionais e os requisitos não-funcionais, demonstração das viewpoints estrutural e implantação, além de mapear os componentes e conectores COTS (Commercial Off-The-Shelf ) utilizados. Por último, discutiremos como a arquitetura influência no atendimento dos requisitos funcionais e não-funcionais, destacando os pontos fortes e fracos da solução. Keywords GIT; Sistema de Controle de Versão Distribuído; Projeto arquitetural de software; I. INTRODUÇÃO Utilizar um bom sistema de controle de versão é de fundamental importância para o sucesso de qualquer projeto de desenvolvimento de software. Empresas que não utilizam um sistema de controle de versão robusto e eficiente, muitas vezes enfrentam uma série de problemas, como por exemplo, resgatar versões mais estáveis do sistema e a dificuldade em realizar alterações quando diversos desenvolvedores trabalham simultaneamente no mesmo módulo. Diante deste contexto, o Git foi criado para solucionar alguns problemas das ferramentas de controle de versão da época. Sua missão é ser um sistema open source para controle de versão distribuído e gestão de código-fonte, sendo projetado para lidar com os mais diversos tipos de projetos, desde os menores até os mais complexos, com velocidade e eficiência. O presente artigo tem como foco analisar os aspectos arquiteturais do sistema de controle de versão Git, fazendo uma relação de como as decisões arquiteturais impactaram nos requisitos funcionais e não-funcionais. Para isto, explica o motivo pelo qual o Git foi criado e aponta os seus principais requisitos. A arquitetura é apresentada através da visão estrutural, ou seja, identifica e define os principais componentes e conectores, assim como a visão de implantação, que tem como objetivo demonstrar como é realizada a comunicação entre os repositórios distribuídos em uma rede. Veremos as razões pela qual o criador do Git não adotou uma linguagem orientada a objetos e menciona as bibliotecas COTS usadas na sua implementação. Ao final, discute como a arquitetura adotada induziu no atendimento dos requisitos, destacando os pontos fortes e fracos da solução. Este documento está dividido nas seguintes seções: Na próxima seção, o sistema é apresentado detalhando seu principal objetivo, motivo da sua criação, requisitos funcionais e não-funcionais. Na seção seguinte, é demonstrada a arquitetura através das visões de estrutura (define os principais módulos (componentes) e os conectores utilizados na interação entre eles) e de implantação (define os nós de processamento que o sistema requer para a sua instalação, a exemplo dos requisitos mínimos de memória e processamento), além de descrever o motivo pelo qual as decisões arquiteturais foram tomadas. A quarta seção tem como objetivo realizar o mapeamento do modelo arquitetural nos artefatos de implementação, apresentando possíveis frameworks, middlewares, componentes e conectores COTS utilizados. Na última seção, os pontos fortes e fracos serão analisados e discutiremos como os requisitos não funcionais induziram as decisões arquiteturais. II. GIT O Git é um sistema de controle versão distribuído com código-fonte aberto e tem como principal objetivo registrar as mudanças feitas em um arquivo ou um conjunto de arquivos ao longo do tempo, permitindo dessa forma analisar as atualizações com detalhe, desde a primeira versão até a última. O projeto para construção do Git teve inicio no ano de 2005, após desentendimento entre a comunidade que construía o kernel do Linux e a empresa que desenvolvia comercialmente o BITKEEPER, um sistema proprietário de controle de versão distribuído, utilizado para armazenar o código-fonte do kernel Linux. Isso levou a comunidade open source, em particular Linus Torvalds, o criador do Linux, a desenvolver sua própria ferramenta baseada nas lições que eles aprenderam ao usar o BITKEEPER. Os principais motivos que levaram Torvalds a construir seu próprio projeto foram à suspensão das licenças do BITKEEPER por parte do fabricante e a falta de um sistema de controle de versão que atendesse os requisitos desejados por ele [2]. O projeto do GIT é uma síntese da experiência de Torvalds com a manutenção do desenvolvimento altamente distribuído do projeto do Linux, junto com seu íntimo conhecimento de desempenho de sistemas de arquivos (conhecimentos adquiridos no mesmo projeto) e a necessidade urgente de produzir um sistema funcional em um curto espaço de tempo [1]. Levando em consideração essas influências, alguns requisitos funcionais e não-funcionais foram definidos:

2 2 A. Requisitos funcionais Um das principais vantagens do Git é a possibilidade do desenvolvimento não-linear, permitindo dessa forma que os repositórios sejam criados localmente. Apesar do Git sofrer uma forte influência da arquitetura do BIT- KEEPER, este requisito não existia no sistema proprietário. Provavelmente este requisito tenha sido inspirado no Monotone, um sistema de controle de versão distribuído iniciado em 2003 [2]. Outro fator relevante é o desenvolvimento distribuído, dando a capacidade ao usuário de possuir uma cópia local completa de todo o histórico do projeto, facilitando dessa forma os comandos de branches e merges[1].outra vantagem deste modelo é a possibilidade do programador trabalhar de forma off-line,já que o repositório não tem a necessidade de se comunicar com um servidor central através da rede, melhorando e muito o desempenho e flexibilidade das operações. O histórico do Git é salvo de uma maneira que o nome de uma determinada revisão (commit) depende de todo o histórico de desenvolvimento que leva até este commit. Uma vez publicado, não é possível mudar as versões antigas sem passar despercebido. A estrutura é similar a uma árvore hash, mas com dados adicionais nos nós e nas folhas [1]. O Git foi modelado como um conjunto de programas escrito em C e numerosos scripts em shell, que encapsulam estes programas. Embora muitos destes scripts tenham sido reescritos em C, como parte do esforço para tornar o sistema compatível com o Windows, o modelo básico continua, sendo fácil agrupar seus componentes [1]. O Git armazena cada novo objeto criado como um arquivo separado. Embora cada arquivo seja individualmente comprimido, isso requer um espaço considerável no disco e é ineficiente. Isto é resolvido com o uso do garbage collection, que armazena um grande número de objetos em um único arquivo. Esta operação é realizada periodicamente de forma automática, porém pode ser feita manualmente através do comando git-gc [1]. Um dos motivos apontados por Linus Torvalds para criação do Git foi o fato de não existir na época um sistema que atendesse ao requisito de desempenho, portanto, a arquitetura do sistema foi fortemente impactada por este requisito não-funcional. Existe um grande número de s sobre desempenho na lista de desenvolvedores do GIT, levando a entender que esta é a principal preocupação. Outro requisito não-funcional importante é a escalabilidade. Torvalds descreveu o Git como sendo um sistema veloz e escalável, já que não fica mais lento com o aumento do histórico do projeto [1]. Outro aspecto importante é a portabilidade entre as diversas plataformas. Inicialmente desenvolvido para Linux, mas pode ser usados em outros sistemas operacionais baseados no Unix, incluindo o BSD, o Solaris e o Darwin. O Git também roda no Microsoft Windows [1]. A comunicação entre os repositórios pode ser realizada através dos protocolos HTTP, SSH, FTP e Git protocol. III. PROJETO ARQUITETURAL Esta seção tem como principal objetivo demonstrar os estilos e visões arquiteturais do sistema GIT. As visões arquiteturais são apresentadas através das viewpoints estrutural e de implantação. Do ponto de vista, da viewpoint estrutural, o sistema GIT apresenta o estilo arquitetural Virtual Machine. Dividido em camadas que fornecem serviços diversos, através de programas independentes. O estilo arquitetural identificado pode ser especializado como uma Maquina Virtual Estrita, onde programas de um nível podem acessar somente serviços disponibilizados pela camada imediatamente inferior. A Figura 1 ilustra as três camadas do sistema GIT, identificando posteriormente os principais componentes e conectores de cada camada. Entretanto a camada GIT Gui não será detalhada, pois a mesma pode ser implementada de diversas formas, desde que o desenvolvedor tenha o conhecimento necessário para realizar chamadas aos componentes do GIT Core. Para mais informações veja no índice de referências o item [4]. B. Requisitos não-funcionais Figura 1. Visão Estrutural do GIT A. Visão Estrutural do Core A Figura 2 ilustra os componentes e conectores que constituem a camada central do GIT, o Core MsysGIT Version Esse core representa uma versão para

3 3 Windows e viabiliza a execução dos comandos GIT sobre essa plataforma. Logo abaixo, segue uma breve descrição: Shell Linux - Constituído pelo programa GNU Bash, Version 3.1.0(1)-Release-(i686-pc msys), um Command Language Interpreter. Sobre o qual executa uma coleção de programas independentes, que representam os comandos básicos do Sistema Operacional Linux, a saber, ls, kill, find e etc. Dentre essa coleção de programas esta o executável do GIT executado logo após a autenticação do usuário padrão do GNU Bash. Para suportar algumas funcionalidades do GIT, o Bash disponibiliza uma serie de programas e bibliotecas COTS (Commercial offthe Shelf ), como por exemplo o aplicativo curl.exe e a biblioteca libcurl.dll, responsáveis por fornecer ferramentas para transferência de dados de/para um servidor utilizando um dos seguintes protocolos suportados (HTTP, HTTPS, FTP, FPTS, FILE, POP, SMTP e entre outros). Dessa forma, vários programas podem utilizar a mesma base de código, mesmo que sejam executados em processos (threads) diferentes. Pacote de Scripts - Composto por dois Scripts Shell, responsáveis por carregar variáveis de ambiente no Shell Linux. Essas variáveis direcionam o GNU Bash e os aplicativos em execução sobre ele, para um conjunto de pastas com scripts TK (GUI Toolkit); scripts TCL (rapid prototyting, GUI and testing); scripts PERL (utilizados para customizar comportamentos internos do GIT, através do GIT Wrapper); e a pasta Engine que contem um conjunto de bibliotecas compartilhadas carregadas por programas C e C++, assim que eles são inicializados. Pacote de Configuração GIT (Etc) - Fornece um conjunto de arquivos de coordenar a execução dos seus comandos. Dentre esses arquivos é possível identificar o GIT-completion.bash, o GIT-config e o inputrc. O GIT-completion.bash habilita a capacidade de auto-completar os comandos GIT dentro do ambiente GNU bash. O GIT-config permite customizar as configurações do seu ambiente GIT, determinando aliases para comandos, color text, usernames, servidores smtp utilizados, certificados ssl, tamanhos dos pacotes enviados e recebidos, entre outras configurações. O input-rc mapea as funcionalidades do GIT e os associa com atalhos do teclado. Pacote Libs GIT - Disponibiliza um conjunto de programas independentes, escritos na linguagem C, invocados pelo programa principal GIT, anteriormente descrito no componente Shell Linux. Cada um desses programas representa comandos internos do GIT, utilizados basicamente para inicializar um repositório GIT; inserir novas versões em um repositório existente; enviar ou receber as versões de um repositório local ou remoto. Como evidenciado na Visão Estrutural do Core, temos o comando GIT-INIT, responsável por criar um diretório GIT vazio ou reinicializar um existente. Esse comando cria o diretório com a seguinte estrutura: os subdiretórios objects, refs/heads, refs/tags e templates files; e o arquivo inicial HEAD que referência o branch master. Caso o repositório que se deseja trabalhar, exista em algum servidor central, outro peer ou no próprio peer, deve-se utilizar o comando GIT-CLONE, que faz um clone do repositório através de um pull down de todos os dados do repositório apontado. Por seguinte, temos o comando GIT-ADD, que adiciona conteúdos de arquivo para o INDEX. Esse comando atualiza o objeto índex do repositório, utilizando o conteúdo encontrado no diretório de trabalho (Working Tree) e preparando-o para o conteúdo do próximo commit. Sendo assim, após efetuar modificações no diretório de trabalho, o comando GIT- ADD deve ser invocado para adicionar um novo ou modificar o arquivo índex do repositório [3]. Para auxiliar esse processo, o GIT disponibiliza o comando GIT-STATUS, responsável por mostrar o estado do índex, exibindo quais os arquivos estão aguardando o comando GIT-COMMIT. O comando GIT-COMMIT, registra as modificações no repositório. Armazena o atual conteúdo do índex em um novo commit com uma mensagem de log do usuário, descrevendo as mudanças [3]. Pacote Shared - Um conjunto de scripts prédefinidos pelo GIT, que definem templates de funcionalidades expostas para implementação publica. Como exemplo a visão estrutural do core, evidencia os templates Hooks, adicionados em cada repositório inicializado pelo GIT. E os scripts TCL GUI, utilizados pela camada superior como templates de interface gráfica. B. Visão Estrutural do Repositório A maior diferença entre GIT e qualquer outro sistema de controle de versão está na forma que o GIT trata os dados. Conceitualmente, a maior parte dos outros sistemas armazena informação como uma lista de mudanças por arquivo. Esses sistemas (CVS, Subversion, Perforce, Bazaar, etc.) tratam a informação que mantém como um conjunto de arquivos e as mudanças feitas a cada arquivo ao longo do tempo. GIT não pensa ou armazena sua informação dessa forma. Ao invés disso, considera que os dados são como um conjunto de snapshots (captura de algo em um determinado instante, como em uma foto) de um mini-sistema de arquivos. Cada vez que você salva

4 4 Figura 2. Visão Estrutural do Core ou consolida (commit) o estado do seu projeto no GIT, é como se ele tirasse uma foto de todos os seus arquivos naquele momento e armazenasse uma referência para essa captura. Para ser eficiente, se nenhum arquivo foi alterado, a informação não é armazenada novamente - apenas um link para o arquivo idêntico anterior que já foi armazenado. A Figura 3 demonstra como os componentes da camada do repositório armazenam os arquivos. Tree - O elemento em uma árvore pode ser outra árvore ou um Blob, quando representa um diretório de conteúdo. Blob - Representa um arquivo armazenado no repositório. É considerado o menor objeto do GIT. Commit - Objeto que faz referência a uma árvore e a um ou mais commits pais, assim como armazena metadados (usuário que realizou o commit, data, hora e etc). Tag - O objeto tag é muito parecido com um objeto commit contém um tagger (pessoa que cria a tag), uma data, uma mensagem e um ponteiro. A principal diferença é que um objeto tag aponta para um commit em vez de uma árvore. É como uma referência de branch, mas nunca se move ele sempre aponta para o mesmo commit, mas te dá um nome mais amigável para ele. Todos os objetos são referenciados por um SHA, um tipo de identificador que contém 40 dígitos. Se dois objetos são idênticos, então eles devem ter o mesmo SHA. Logo, se forem diferentes, devem possuir SHA distintas. Head - Objeto responsável por referenciar o último commit. Config - GIT usa uma série de arquivos de configuração para determinar comportamentos que não são padrões. Uma das primeiras atividades é configurar o nome de usuário e , facilitando dessa forma a identificação. Algumas outras configurações incluem: cor da fonte, extensões de arquivos que o usuário não quer controlar e etc. Hooks - Objeto responsável por disparar scripts personalizados quando certas ações importantes ocorrerem. Existem dois grupos desses hooks: lado cliente e lado servidor. Os hooks do lado cliente são para operações do cliente, tais como commit e merge. Os hooks do lado servidor são para operações de servidor, como recebimento de um push.

5 5 Figura 3. Visão Estrutural do Repositório Index - Antes de realizar um commit de forma definitiva, o GIT armazena os arquivos em uma área intermediária, também chamada de Staging Area. C. Visão de Implantação A Figura 4 ilustra a visão de implantação do controlador de versão distribuído GIT em uma pequena equipe de desenvolvimento de software. Essa visão está fortemente impactada pelo fluxo de trabalho adotado pela equipe. Como descrito abaixo: 1. Cada desenvolvedor (Clientes) obtém do repositório central (Servidor) a versão inicial do projeto. 2. De posse dessa versão, o desenvolvedor possui total flexibilidade para gerir o seu próprio repositório local, podendo criar branches, realizar commits e ver histórico das alterações, sem a necessidade de acessar o servidor. 3. A depender da feature que será implementada, os desenvolvedores podem efetuar a mesclagem de seus repositórios, através dos comandos pull e push. 4. Após o processo de colaboração, e com a feature finalizada, um dos dois desenvolvedores deve submeter um commit para o repositório central, finalizando dessa forma a implementação da nova feature. Diante do WorkFlow, explicitado logo acima, o GIT apresenta as características de outros dois estilos arquiteturais. O primeiro é o estilo arquitetural em camadas Client-Server, que se torna evidente logo no primeiro passo do fluxo. Onde um servidor central, contendo em si um repositório GIT, serve como principal fonte do código-base e como backup unificado do código-base modificado. O segundo estilo arquitetural claramente visível é o Peer-to-Peer, pois os clientes possuem a capacidade de colaborarem um com o outro, independente do servidor central. Para que essa troca de informações seja estabelecida, existem conectores diferentes para cada caso apresentado acima. A comunicação realizada entre os clientes e o repositório central, está baseada em conectores de protocolos de rede (HTTP, SSH, FTP e outros), através do conector curl. Diferente da comunicação estabelecida entre os clientes, baseada em um protocolo próprio, denominado GIT. Para que esse protocolo funcione o sistema GIT de cada desenvolvedor deve possuir um programa chamado GIT-Daemon, um pequeno servidor de repositórios, baseado em TCP e ouvindo na porta 9418 [5]. O GIT-Daemon fornece um protocolo de comunicação rápido, entretanto não é recomendável utilizá-lo para comunicações via Internet. Pois, ele define acesso de leitura não autenticado para os seus repositórios GIT. E a Figura 4, deixa isso em evidência, quando foi definida a utilização do protocolo GIT somente entre os PEER s que devem estar na mesma rede e protegidos por um firewall [6]. IV. IMPLEMENTAÇÃO E IMPLANTAÇÃO Como um dos requisitos primários do GIT é a eficiência, Linus Tolvards, decidiu escolher como tecnologia principal a linguagem C, pois acreditava que qualquer outra linguagem com nível de abstração elevado, como por exemplo, C++, poderia trazer consigo problemas de desempenho. Além disso, essa escolha limitou a colaboração do projeto, somente para programadores que compreendem as questões de baixo nível. Outras linguagens foram também adicionadas à imple-

6 6 Figura 4. Visão de Implantação do GIT mentação do GIT como, por exemplo, shell scripts, perl e python scripts, todas para viabilizar a comunicação do GIT com programas externos. E para garantir a portabilidade o GIT faz uso do PO- SIX, uma família de normas definidas pelo IEEE para garantir a portabilidade do código-fonte de programas de determinado sistema operacional para outro sistema POSIX. Para a instalação do GIT, é preciso ter as seguintes bibliotecas de dependências: curl, zlib, openssl e libiconv. Entretanto, como foi analisado o GIT para Windows, essas dependências já estão incorporadas no componente Shell Linux, mesmo assim serão descritas abaixo: curl Conector COTS utilizado para transferir dados com sintaxe URL, suportando diversos protocolos de comunicação (HTTP, FTP, FILE, SMTP). (Conector de comunicação) zlib Componente COTS multi-plataforma que disponibiliza funcionalidades para compressão de dados. OpenSsl Componente COTS que fornece implementações dos protocolos SSL e TLS. Também expõem funções básicas de criptografia e wrappers que permitem o uso dessa biblioteca em várias outras linguagens. Libiconv Conector COTS utilizado para realizar a conversão de uma codificação de caracteres para outra, por exemplo, converter arquivo de codificação UFT8 para ASCII. Utilizado no GIT para suportar múltiplas codificações de caracteres. (Conector de conversão) Expat Biblioteca utilizada para troca de informações entre os repositórios remotos GIT, responsável por efetuar o parse de arquivos XML. GetText Biblioteca do projeto GNU, utilizada para realizar a internacionalização do sistema GIT. Pthreads Biblioteca que implementa o padrão POSIX para threads, o qual define uma API padrão para criar e manipular threads [7]. V. DISCUSSÃO E CONCLUSÕES Conforme características demonstradas ao longo do trabalho, Linus Torvalds sempre colocou o desempenho como principal requisito do Git, impactando fortemente

7 7 nas decisões arquiteturais adotadas. Primeiramente na escolha da linguagem de programação C, que tem como ponto forte o desempenho, já que não precisa realizar invocações de funções virtuais, ao contrário do C++. Outro fator que contribuiu de forma significativa para o excelente desempenho do Git foi o fato do usuário possuir todo o histórico do projeto no repositório local, possibilitando dessa forma o trabalho off-line e diminuindo o tráfego de rede entre as operações, como por exemplo, commit e merge. Um dos caminhos para tornar o software mais rápido é ter que fazer um número menor de verificações. Por exemplo, quando o comando GIT-add é digitado, o algoritmo não varre todos seus arquivos a procura de mudanças. Realizar esta verificação em um diretório que contém muitos arquivos pode levar uma quantidade considerável de tempo. Na maioria das vezes que a comunidade de desenvolvedores do GIT caiu no dilema de usar uma biblioteca já pronta ou implementar sua própria, eles optaram pela segunda opção. Essas decisões de projeto contribuem para criação de softwares mais rápidos. Um grande exemplo de sucesso que podemos mencionar é o Google. Em vez de utilizar um banco de dados COTS, preferiu desenvolver o Google File System. Outro fator relevante que contribuiu para o sucesso do Git em relação às concorrentes foi à adoção dos estilos arquiteturais peer-to-peer e client-server, ficando a cargo do usuário escolher o melhor cenário, ou até mesmo utilizar os dois estilos em conjunto. Uma grande vantagem do estilo peer-to-peer é ser escalável em relação ao acesso a recursos, já que os repositórios estão espalhados em vários nós. Outro ponto positivo é a robustez em relação à tolerância a falha, devido às informações não ficarem centralizadas em um único servidor. Confirmando a expectativa do seu criador, o Git se apresentou como uma excelente e rápida ferramenta de controle de versão distribuído. Testes de desempenho realizados pela Mozilla apontaram que o Git é uma ordem de magnitude mais rápido que alguns sistemas de controle de versão. Obter o histórico das revisões salvas em repositórios locais resulta em duas ordens de magnitude mais rápido que obtê-los de um servidor remoto [1]. Outro aspecto positivo atualmente é o fato de possuir integração com as IDE s mais utilizadas no mercado de desenvolvimento de software, a exemplo do eclipse, netbeans e visual studio. Esse foi um dos grandes avanços das novas versões do sistema, já que inicialmente não se tinha integração com as IDE s comerciais. Atualmente é o sistema de controle de versão mais popular do mercado, possuindo um grande número de projetos que o utilizam a exemplo do eclipse, KDE, JQUERY, Android, Zend framework e etc. Apesar da portabilidade para executar no Windows, o Git apresentou uma performance menor em comparação a execução no Linux, sobretudo para comandos escritos em shell script. Esses problemas já estão sendo resolvidos com a migração de alguns códigos para a linguagem C, resultando em um ganho significativo de desempenho. Outro ponto negativo é o fato de alguns comandos não existirem na GUI do Windows, sendo necessário executálos através da linha de comando. Uma das maiores queixas da comunidade que utiliza o Git é com relação à falta de documentação técnica, especialmente sobre os padrões arquiteturais utilizados no projeto. Se este for um pré-requisito para começar a contribuir com a ferramenta, será preciso realizar uma análise diretamente no código fonte, já que existem pouquíssimos sites abordando este assunto de forma detalhada. Um dos fatores que não contribuem para adoção do Git é a curva de aprendizado muito mais acentuada se comparado com outras ferramentas de mercado. VI. REFERÊNCIAS 1. GIT. Disponível em Acessado em 30 de Maio de GIT. Disponível em Acessado em 28 de Maio de Documentation. Disponível em scm.com/book/en/git-basics-getting-a-git- Repository. Acessado em 28 de Maio de GIT Gui. Disponível em Acessado em 07 de Junho de GIT-Daemon. Disponível em Acessado em 07 de Junho de GIT-Daemon. Disponível em Acessado em 07 de Junho de POSIX Threads Programming. Disponível em Acessado em 07 de Junho de 2013.

TUTORIAL PRÁTICO SOBRE Git. Versão 1.1

TUTORIAL PRÁTICO SOBRE Git. Versão 1.1 TUTORIAL PRÁTICO SOBRE Git por Djalma Oliveira Versão 1.1 "Git é um sistema de controle de revisão distribuida, rápido e escalável" (tradução rápida do manual). Basicamente é

Leia mais

Introdução a Banco de Dados Aula 03. Prof. Silvestri www.eduardosilvestri.com.br

Introdução a Banco de Dados Aula 03. Prof. Silvestri www.eduardosilvestri.com.br Introdução a Banco de Dados Aula 03 Prof. Silvestri www.eduardosilvestri.com.br Arquiteturas de Banco de Dados Arquiteturas de BD - Introdução Atualmente, devem-se considerar alguns aspectos relevantes

Leia mais

Controle de Versão com GIT

Controle de Versão com GIT Controle de Versão com GIT Túlio Toffolo tulio@toffolo.com.br http://www.toffolo.com.br Conteúdo Extra Algoritmos e Estruturas de Dados História do GIT Linus usa BitKeeper para gerenciar o código de suas

Leia mais

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia O Sistema Operacional que você usa é multitasking? Por multitasking, entende-se a capacidade do SO de ter mais de um processos em execução ao mesmo tempo. É claro que, num dado instante, o número de processos

Leia mais

Redes de Computadores II

Redes de Computadores II Redes de Computadores II UDP Prof: Ricardo Luís R. Peres Tem como objetivo prover uma comunicação entre dois processos de uma mesma sessão que estejam rodando em computadores dentro da mesma rede ou não.

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

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 Estruturas de Sistemas Operacionais Um sistema operacional fornece o ambiente no qual os programas são executados. Internamente,

Leia mais

Virtual Box. Guia. Instalação E Utilização. Criado por Wancleber Vieira wancleber.vieira@ibest.com.br

Virtual Box. Guia. Instalação E Utilização. Criado por Wancleber Vieira wancleber.vieira@ibest.com.br Virtual Box Guia De Instalação E Utilização 1 Sumário Instalação do Linux Ubuntu através de um gerenciador de Máquinas Virtuais 1.1 Introdução, 3 1.2 Instalação do Virtual Box, 3 1.3 Configuração do Virtual

Leia mais

Manual de Procedimentos para Desenvolvimento de Softwares

Manual de Procedimentos para Desenvolvimento de Softwares Manual de Procedimentos para Desenvolvimento de Softwares Secretaria Geral de Informática Sin Universidade Federal de São Carlos - UFSCar Versão 2.1 O(s) critério(s) de escolha pelas tecnologias para desenvolvimento

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

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Cronograma das Aulas. Hoje você está na aula Semana

Leia mais

Capítulo 2. Processos de Software. 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1

Capítulo 2. Processos de Software. 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1 Capítulo 2 Processos de Software slide 1 Tópicos apresentados Modelos de processo de software. Atividades de processo. Lidando com mudanças. Rational Unified Process (RUP). Um exemplo de um processo de

Leia mais

Permitir a troca de mensagens de texto entre os dois alunos; Permitir que um aluno enviasse para o outro uma cópia de prova;

Permitir a troca de mensagens de texto entre os dois alunos; Permitir que um aluno enviasse para o outro uma cópia de prova; Software Básico 2008.2 Trabalho Prático 1: programação de E/S, uso de sinais Prática de programação voltada a eventos Trabalho individual ou em dupla Data de entrega: 01/10/2008 1 O Objetivo Utilizando

Leia mais

agility made possible

agility made possible RESUMO DA SOLUÇÃO Utilitário ConfigXpress no CA IdentityMinder a minha solução de gerenciamento de identidades pode se adaptar rapidamente aos requisitos e processos de negócio em constante mudança? agility

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

LINX POSTOS AUTOSYSTEM

LINX POSTOS AUTOSYSTEM LINX POSTOS AUTOSYSTEM Manual Sumário 1 INTRODUÇÃO AO POSTGRES...3 2 INSTALAÇÃO...3 2.1 Download...3 2.2 Instalação...4 3 CONFIGURAÇÃO...7 3.1 CIDR-ADDRESS...8 3.2 Biometria...9 4 LINHA DE COMANDO...10

Leia mais

Sistemas Distribuídos Processos I. Prof. MSc. Hugo Souza

Sistemas Distribuídos Processos I. Prof. MSc. Hugo Souza Sistemas Distribuídos Processos I Prof. MSc. Hugo Souza Até agora vimos a organização como um todo dos SDS, com o mapeamento estrutural e suas devidas características descritas em elementos, regras, conceitos,

Leia mais

Tópicos Avançados em Banco de Dados Gerenciamento de Transações em Banco de Dados. Prof. Hugo Souza

Tópicos Avançados em Banco de Dados Gerenciamento de Transações em Banco de Dados. Prof. Hugo Souza Tópicos Avançados em Banco de Dados Gerenciamento de Transações em Banco de Dados Prof. Hugo Souza Até agora vimos como é formada a infraestrutura física e lógica das bases de dados com os principais componentes

Leia mais

3 Estratégia para o enriquecimento de informações

3 Estratégia para o enriquecimento de informações 34 3 Estratégia para o enriquecimento de informações Podemos resumir o processo de enriquecimento de informações em duas grandes etapas, a saber, busca e incorporação de dados, como ilustrado na Figura

Leia mais

Software Livre. Acesso ao código fonte Alterar o código fonte Redistribuir Utilizar como desejar

Software Livre. Acesso ao código fonte Alterar o código fonte Redistribuir Utilizar como desejar Software Livre Acesso ao código fonte Alterar o código fonte Redistribuir Utilizar como desejar Linux Licença GPL (Licença Pública Geral) Linux Licença GPL (Licença Pública Geral) - A liberdade de executar

Leia mais

3. Fase de Planejamento dos Ciclos de Construção do Software

3. Fase de Planejamento dos Ciclos de Construção do Software 3. Fase de Planejamento dos Ciclos de Construção do Software A tarefa de planejar os ciclos de construção do software pode partir de diretrizes básicas. Estas diretrizes visam orientar que os ciclos de

Leia mais

MINISTÉRIO DA EDUCAÇÃO

MINISTÉRIO DA EDUCAÇÃO MINISTÉRIO DA EDUCAÇÃO SECRETARIA DE EDUCAÇÃO PROFISSIONAL E TECNOLÓGICA INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE SANTA CATARINA CAMPUS SÃO JOSÉ REDES DE COMPUTADORES Laboratório 2 Wireshark

Leia mais

Software Livre e Engenharia Elétrica

Software Livre e Engenharia Elétrica Software Livre e Engenharia Elétrica Diego Cézar Silva de Assunção Henrique Ribeiro Soares José Rubens Guimarães Vilaça Lima Pedro Dias de Oliveira Carvalho Rafael Viegas de Carvalho Carlos Gomes O software

Leia mais

TechProf Documento de Arquitetura

TechProf Documento de Arquitetura TechProf Projeto SuporteProf Versão 1.0 15 de junho de 2016 Responsáveis: Adelson Santos de Melo Filho, Edvaldo Nicolau da Silva, Moisés Luis da Silva Histórico de Revisões Data Versão Descrição Autor

Leia mais

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO DEPARTAMENTO DE ESTATÍSTICA E INFORMÁTICA BACHARELADO EM SISTEMAS DE INFORMAÇÃO RAPID APPLICATION DEVELOPMENT

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO DEPARTAMENTO DE ESTATÍSTICA E INFORMÁTICA BACHARELADO EM SISTEMAS DE INFORMAÇÃO RAPID APPLICATION DEVELOPMENT UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO DEPARTAMENTO DE ESTATÍSTICA E INFORMÁTICA BACHARELADO EM SISTEMAS DE INFORMAÇÃO RAPID APPLICATION DEVELOPMENT Disciplina: Modelagem a Programação Orientada a Objetos

Leia mais

Disciplina de Redes de Computadores Estudo Dirigido para a Prova II Professor Dr Windson Viana de Carvalho

Disciplina de Redes de Computadores Estudo Dirigido para a Prova II Professor Dr Windson Viana de Carvalho Disciplina de Redes de Computadores Estudo Dirigido para a Prova II Professor Dr Windson Viana de Carvalho Obs: Não há necessidade de entregar a lista Questões do livro base (Kurose) Questões Problemas

Leia mais

PROJETO CEMEA. Um trabalho educacional

PROJETO CEMEA. Um trabalho educacional PROJETO CEMEA Um trabalho educacional CEMEA: Objetivo geral A partir de um sistema já existente, temos como missão: Melhorar suas funcionalidades; Documentar tanto o código, quanto suas funções; Acrescentar

Leia mais

Projeto ECA na Escola - Plataforma de Educação à Distância

Projeto ECA na Escola - Plataforma de Educação à Distância Página1 Apresentação Projeto ECA na Escola - Plataforma de Educação à Distância Olá Participante do Projeto ECA na Escola, Este tutorial pretende auxiliá-lo na navegação na Plataforma de Educação à Distância

Leia mais

SquidCacheAux para BrazilFW

SquidCacheAux para BrazilFW SquidCacheAux para BrazilFW ÍNDICE Índice Pág. 1 O que é o SquidCacheAux Pág. 2 SquidCacheAux e a inicialização do sistema Pág. 2 SquidCacheAux e a finalização do sistema Pág. 2 Tela principal do SquidCacheaux

Leia mais

2 Gerenciamento de Log 2.1 Definições básicas

2 Gerenciamento de Log 2.1 Definições básicas 2 Gerenciamento de Log 2.1 Definições básicas Os logs são fontes riquíssimas de informação e são gerados pelos servidores e pelas aplicações conforme eventos significativos acontecem. Em [1], log é definido

Leia mais

Montagem e Manutenção. Luís Guilherme A. Pontes

Montagem e Manutenção. Luís Guilherme A. Pontes Montagem e Manutenção Luís Guilherme A. Pontes Introdução Qual é a importância da Montagem e Manutenção de Computadores? Sistema Binário Sistema Binário Existem duas maneiras de se trabalhar e armazenar

Leia mais

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO UTILIZANDO O HIBERNATE Rafael Laurino GUERRA, Dra. Luciana Aparecida Martinez ZAINA Faculdade de Tecnologia de Indaiatuba FATEC-ID 1 RESUMO Este artigo apresenta

Leia mais

Salvando modificações localmente (commit) Enviando modificações para o servidor (push) Sinalizando versão estável (tag)

Salvando modificações localmente (commit) Enviando modificações para o servidor (push) Sinalizando versão estável (tag) Salvando modificações localmente (commit) Enviando modificações para o servidor (push) Sinalizando versão estável (tag) Desfazendo modificações (reset) Verificar status de repositório 5 Não vamos fazer,

Leia mais

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano Programação Servidor para Sistemas Web 1 Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano Objetivo: Apresentar a teoria por trás dos padrões na construção de aplicações Web. INTRODUÇÃO Nas aulas anteriores

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

4 Desenvolvimento da ferramenta

4 Desenvolvimento da ferramenta direcionados por comportamento 38 4 Desenvolvimento da ferramenta Visando facilitar a tarefa de documentar requisitos funcionais e de gerar testes automáticos em uma única ferramenta para proporcionar

Leia mais

Guia de utilização da notação BPMN

Guia de utilização da notação BPMN 1 Guia de utilização da notação BPMN Agosto 2011 2 Sumário de Informações do Documento Documento: Guia_de_utilização_da_notação_BPMN.odt Número de páginas: 31 Versão Data Mudanças Autor 1.0 15/09/11 Criação

Leia mais

Projuris Enterprise Visão Geral da Arquitetura do Sistema

Projuris Enterprise Visão Geral da Arquitetura do Sistema Projuris Enterprise Visão Geral da Arquitetura do Sistema Março/2015 Página 1 de 17 Projuris Enterprise Projuris Enterprise é um sistema 100% Web, com foco na gestão de contencioso por empresas ou firmas

Leia mais

Resolução da lista de exercícios de casos de uso

Resolução da lista de exercícios de casos de uso Resolução da lista de exercícios de casos de uso 1. Explique quando são criados e utilizados os diagramas de casos de uso no processo de desenvolvimento incremental e iterativo. Na fase de concepção se

Leia mais

Sumário. Administração de Banco de dados Módulo 12. Ilustração Backup-Recovery. Recuperação (Recovery) - Definição

Sumário. Administração de Banco de dados Módulo 12. Ilustração Backup-Recovery. Recuperação (Recovery) - Definição Sumário Administração de Banco de dados Módulo 12 1. Administração de SGBDs - Continuação 1.1. Recuperação (Recovery) 1.1.1. Recuperação de sistema 1.1.2. Recuperação da mídia M. Sc. Luiz Alberto lasf.bel@gmail.com

Leia mais

Portal do Projeto Tempo de Ser

Portal do Projeto Tempo de Ser Sumário Portal do Projeto Tempo de Ser O que é um Wiki?...2 Documentos...2 Localizando documentos...3 Links...3 Criando um Documento...4 Criando um link...4 Editando um Documento...5 Sintaxe Básica...5

Leia mais

Informática - Prof. Frank Mattos

Informática - Prof. Frank Mattos Informática - Prof. Frank Mattos Q298262 1. Por padrão, a lixeira do Windows 7 ocupa uma área correspondente a 10% do espaço em disco rígido do computador. Impressionante como essa informação está muito

Leia mais

Manual de Instalação. Instalação via apt-get. SIGA-ADM versão 12.06

Manual de Instalação. Instalação via apt-get. SIGA-ADM versão 12.06 Manual de Instalação Instalação via apt-get SIGA-ADM versão 12.06 Introdução Projeto SIGA-EPCT Manual de Instalação via apt-get O SIGA-ADM é um subsistema do SIGA-EPT (Sistema Integrado de Gestão Acadêmica

Leia mais

Como produzir e publicar uma apresentação online dinâmica (Prezi)

Como produzir e publicar uma apresentação online dinâmica (Prezi) Como produzir e publicar uma apresentação online dinâmica (Prezi) Este módulo irá ensinar-lhe como produzir e publicar uma apresentação online dinâmica usando o programa Prezi. A produção de uma apresentação

Leia mais

Arquitetura dos Sistemas Operacionais

Arquitetura dos Sistemas Operacionais Arquitetura dos Sistemas Operacionais Arquitetura de um Sistema Operacional Basicamente dividido em shell é a interface entre o usuário e o sistema operacional é um interpretador de comandos possui embutido

Leia mais

Versionamento de Código. Núcleo de Desenvolvimento de Software

Versionamento de Código. Núcleo de Desenvolvimento de Software Versionamento de Código Núcleo de Desenvolvimento de Software Por quê? Facilidades de utilizar um sistema de versionamento de código. Várias versões Quando se salva uma nova versão de um arquivo, a versão

Leia mais

Sistemas de Arquivos NTFS, FAT16, FAT32, EXT2 e EXT3

Sistemas de Arquivos NTFS, FAT16, FAT32, EXT2 e EXT3 Sistemas de Arquivos NTFS, FAT16, FAT32, EXT2 e EXT3 Os sistemas de arquivos é a parte do SO responsável pelo gerenciamento dos arquivos (estrutura, identificação, acesso, utilização, proteção e implementação).

Leia mais

PLATAFORMA DE DESENVOLVIMENTO PINHÃO PARANÁ MANUAL DE UTILIZAÇÃO DO CVS NO ECLIPSE

PLATAFORMA DE DESENVOLVIMENTO PINHÃO PARANÁ MANUAL DE UTILIZAÇÃO DO CVS NO ECLIPSE PLATAFORMA DE DESENVOLVIMENTO PINHÃO PARANÁ MANUAL DE UTILIZAÇÃO DO CVS NO ECLIPSE Agosto 2007 Sumário de Informações do Documento Tipo do Documento: Manual Título do Documento: MANUAL DE UTILIZAÇÃO DO

Leia mais

Este artigo abaixo foi produzido originalmente para a Network Core Wiki. Reproduzo-a aqui na íntegra. Publicado originalmente em 07/12/2007.

Este artigo abaixo foi produzido originalmente para a Network Core Wiki. Reproduzo-a aqui na íntegra. Publicado originalmente em 07/12/2007. Vírus no Linux? Este artigo abaixo foi produzido originalmente para a Network Core Wiki. Reproduzo-a aqui na íntegra. Publicado originalmente em 07/12/2007. Interface de uma distribuição Linux Uma das

Leia mais

Computador Digital Circuitos de um computador (Hardware)

Computador Digital Circuitos de um computador (Hardware) Computador Digital SIS17 - Arquitetura de Computadores (Parte I) Máquina que pode resolver problemas executando uma série de instruções que lhe são fornecidas. Executa Programas conjunto de instruções

Leia mais

Manual do Instar Mail v2.0

Manual do Instar Mail v2.0 Manual do Instar Mail v2.0 Sumário Conteúdo Menu Principal... 2 Menu Cliente... 3 Pagina Categorias do Instar-Mail... 4 Importação... 4 Campanhas... 8 Cadastramento de campanhas do Instar-Mail... 9 Ações

Leia mais

ADMINISTRAÇÃO I. Família Pai, mãe, filhos. Criar condições para a perpetuação da espécie

ADMINISTRAÇÃO I. Família Pai, mãe, filhos. Criar condições para a perpetuação da espécie 1 INTRODUÇÃO 1.1 ORGANIZAÇÃO E PROCESSOS A administração está diretamente ligada às organizações e aos processos existentes nas mesmas. Portanto, para a melhor compreensão da Administração e sua importância

Leia mais

NORMA TÉCNICA PARA IMPLANTAÇÃO DE NOVOS SISTEMAS OU APLICAÇÕES NO BANCO DE DADOS CORPORATIVO

NORMA TÉCNICA PARA IMPLANTAÇÃO DE NOVOS SISTEMAS OU APLICAÇÕES NO BANCO DE DADOS CORPORATIVO NORMA TÉCNICA PARA IMPLANTAÇÃO DE NOVOS SISTEMAS OU APLICAÇÕES NO BANCO DE DADOS CORPORATIVO Referência: NT-AI.04.02.01 http://www.unesp.br/ai/pdf/nt-ai.04.02.01.pdf Data: 27/07/2000 STATUS: EM VIGOR A

Leia mais

Camada de Aplicação. Prof. Eduardo

Camada de Aplicação. Prof. Eduardo Camada de Aplicação RC Prof. Eduardo Introdução Você sabe que existem vários tipos de programas na Internet? - Talvez você já tenha notado que existem vários programas diferentes para cada um desses tipos.

Leia mais

UNICE Ensino Superior Linguagem de Programação Ambiente Cliente Servidor.

UNICE Ensino Superior Linguagem de Programação Ambiente Cliente Servidor. UNICE Ensino Superior Linguagem de Programação Ambiente Cliente Servidor. Modelo Cliente/Servidor Por HIARLY ALVES Fortaleza - CE Apresentação. O mais famoso tipo de arquitetura utilizada em redes de computadores

Leia mais

Manual de Utilização

Manual de Utilização Manual de Utilização Versão 3.10 Sumário 1 Funções do Emissor... 3 1.1 Aba Inicial... 4 1.2 Aba Sistema... 5 1.2.1 Mensagem Sistema... 5 1.2.2 Extras... 6 1.2.3 Contingência... 6 1.2.4 Execução... 7 1.3

Leia mais

UNIVERSIDADE ESTADUAL DA PARAÍBA CENTRO DE CIÊNCIAS E TECNOLOGIA DEPARTAMENTO DE QUÍMICA CURSO DE LICENCIATURA EM QUÍMICA LINDOMÁRIO LIMA ROCHA

UNIVERSIDADE ESTADUAL DA PARAÍBA CENTRO DE CIÊNCIAS E TECNOLOGIA DEPARTAMENTO DE QUÍMICA CURSO DE LICENCIATURA EM QUÍMICA LINDOMÁRIO LIMA ROCHA UNIVERSIDADE ESTADUAL DA PARAÍBA CENTRO DE CIÊNCIAS E TECNOLOGIA DEPARTAMENTO DE QUÍMICA CURSO DE LICENCIATURA EM QUÍMICA LINDOMÁRIO LIMA ROCHA FACILITADOR VIRTUAL DA APRENDIZAGEM EM QUÍMICA Campina Grande-

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

2. O AMBIENTE DE PROGRAMAÇÃO EM C

2. O AMBIENTE DE PROGRAMAÇÃO EM C 2. O AMBIENTE DE PROGRAMAÇÃO EM C Este capítulo trata de colocar a linguagem C para funcionar em um ambiente de programação, concentrando-se no compilador GNU Compiler Collection (gcc). Mas qualquer outro

Leia mais

Introdução... O que é SSL... Quais são os tipos de SSL... Por que ter... Como contratar... Como é feita a manutenção...

Introdução... O que é SSL... Quais são os tipos de SSL... Por que ter... Como contratar... Como é feita a manutenção... Conteúdo do Ebook Introdução... O que é SSL... Quais são os tipos de SSL... Por que ter... Como contratar... Como é feita a manutenção... Quais foram as últimas falhas... Conclusão... 03 04 05 06 06 07

Leia mais

Manual do Teclado de Satisfação Online WebOpinião

Manual do Teclado de Satisfação Online WebOpinião Manual do Teclado de Satisfação Online WebOpinião Versão 1.2.3 27 de novembro de 2015 Departamento de Engenharia de Produto (DENP) SEAT Sistemas Eletrônicos de Atendimento 1. Introdução O Teclado de Satisfação

Leia mais

Primeiros passos das Planilhas de Obra v2.6

Primeiros passos das Planilhas de Obra v2.6 Primeiros passos das Planilhas de Obra v2.6 Instalação, configuração e primeiros passos para uso das planilhas de obra Elaborado pela Equipe Planilhas de Obra.com Conteúdo 1. Preparar inicialização das

Leia mais

8 Threads. 8.1 Introdução

8 Threads. 8.1 Introdução 1 8 Threads 8.1 Introdução Uma thread, também chamada de tarefa, pode ser definida como uma parte ou rotina de um processo em execução que compartilha o mesmo espaço de endereçamento, mas tem seu próprio

Leia mais

Introdução à Camada de Aplicação. Prof. Eduardo

Introdução à Camada de Aplicação. Prof. Eduardo Introdução à Camada de Aplicação RC Prof. Eduardo Introdução Você sabe que existem vários tipos de programas na Internet? - Talvez você já tenha notado que existem vários programas diferentes para cada

Leia mais

Descrição do Produto. Altus S. A. 1

Descrição do Produto. Altus S. A. 1 Descrição do Produto O software MasterTool IEC é um ambiente completo de desenvolvimento de aplicações para os controladores programáveis da Série Duo. Esta ferramenta permite a programação e a configuração

Leia mais

O primeiro passo é habilitar acesso externo através de web service a configuração é bem simples e não exige maiores explicações.

O primeiro passo é habilitar acesso externo através de web service a configuração é bem simples e não exige maiores explicações. Integração de Controle de versão com Redmine. A integração do controle de versão pode permitir uma interatividade bem interessante entre os tickets e projetos do redmine com o controle de versão segue

Leia mais

Personalizações do mysuite

Personalizações do mysuite Personalizações do mysuite 1. mysuite... 2 2. Customização de campos... 3 3. Importação de dados... 3 4. Integração de sistemas... 3 5. Personalização do Atendimento Online... 4 5.1. Imagens de online

Leia mais

Atualização, backup e recuperação de software

Atualização, backup e recuperação de software Atualização, backup e recuperação de software Guia do usuário Copyright 2007 Hewlett-Packard Development Company, L.P. Windows é uma marca registrada nos Estados Unidos da Microsoft Corporation. As informações

Leia mais

Programação Web Prof. Wladimir

Programação Web Prof. Wladimir Programação Web Prof. Wladimir Linguagem de Script e PHP @wre2008 1 Sumário Introdução; PHP: Introdução. Enviando dados para o servidor HTTP; PHP: Instalação; Formato básico de um programa PHP; Manipulação

Leia mais

Pacote de Idiomas do ImageNow Guia de Introdução

Pacote de Idiomas do ImageNow Guia de Introdução Pacote de Idiomas do ImageNow Guia de Introdução Versão: 6.6.x Escrito por: Product Documentation, R&D Data: Outubro de 2011 ImageNow e CaptureNow são marcas comerciais registradas da Perceptive Software.

Leia mais

TECNOLOGIA WEB Aula 1 Evolução da Internet Profa. Rosemary Melo

TECNOLOGIA WEB Aula 1 Evolução da Internet Profa. Rosemary Melo TECNOLOGIA WEB Aula 1 Evolução da Internet Profa. Rosemary Melo Tópicos abordados Surgimento da internet Expansão x Popularização da internet A World Wide Web e a Internet Funcionamento e personagens da

Leia mais

Controle de Versão. Prof. Msc. Bruno Urbano Rodrigues. bruno@urbano.eti.br

Controle de Versão. Prof. Msc. Bruno Urbano Rodrigues. bruno@urbano.eti.br Controle de Versão Prof. Msc. Bruno Urbano Rodrigues bruno@urbano.eti.br Apresentação - Docente Mestre em Ciência da Computação na Universidade Federal de Goiás. Especialista em Gestão de Software pela

Leia mais

TRABALHO PRÁTICO Nro. 02 (Atualizado em 29/10/2008)

TRABALHO PRÁTICO Nro. 02 (Atualizado em 29/10/2008) USP ICMC SSC SCE-283 Linguagens de Programação e Aplicações Professor responsável: Fernando Santos Osório Semestre: 2008/2 Horário: Segunda 14h20 E-mail: fosorio.at. icmc.usp.br fosorio.at. gmail.com Web:

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

Padrão ix. Q-Ware Cloud File Publisher Manual para realização do Donwload de Arquivos. Versão 1.0.1.0

Padrão ix. Q-Ware Cloud File Publisher Manual para realização do Donwload de Arquivos. Versão 1.0.1.0 Padrão ix Q-Ware Cloud File Publisher Manual para realização do Donwload de Arquivos Versão 1.0.1.0 Copyright 2000-2013 Padrão ix Sistemas Abertos Ltda. Todos os direitos reservados. As informações contidas

Leia mais

Gerência do Sistema de Arquivos. Adão de Melo Neto

Gerência do Sistema de Arquivos. Adão de Melo Neto Gerência do Sistema de Arquivos Adão de Melo Neto 1 Gerência do Sistema de Arquivos Organização dos arquivos Estrutura de diretório Gerência de espaço livre Gerência de alocação de espaços em disco Proteção

Leia mais

FTP Protocolo de Transferência de Arquivos

FTP Protocolo de Transferência de Arquivos FTP Protocolo de Transferência de Arquivos IFSC UNIDADE DE SÃO JOSÉ CURSO TÉCNICO SUBSEQUENTE DE TELECOMUNICAÇÕES! Prof. Tomás Grimm FTP - Protocolo O protocolo FTP é o serviço padrão da Internet para

Leia mais

Aula 01 Visão Geral do Linux

Aula 01 Visão Geral do Linux Instituto Federal de Educação, Ciência e Tecnologia de Santa Catarina Administração de Redes de Computadores Aula 01 Visão Geral do Linux Prof. Gustavo Medeiros de Araujo Profa.

Leia mais

Resolução de Problemas de Rede. Disciplina: Suporte Remoto Prof. Etelvira Leite

Resolução de Problemas de Rede. Disciplina: Suporte Remoto Prof. Etelvira Leite Resolução de Problemas de Rede Disciplina: Suporte Remoto Prof. Etelvira Leite Ferramentas para manter o desempenho do sistema Desfragmentador de disco: Consolida arquivos e pastas fragmentados Aumenta

Leia mais

Escrito por Júlio Oliveira Ter, 30 de Junho de 2009 20:06 - Última atualização Seg, 17 de Agosto de 2009 17:25

Escrito por Júlio Oliveira Ter, 30 de Junho de 2009 20:06 - Última atualização Seg, 17 de Agosto de 2009 17:25 SendEmail - O que é No Linux temos algumas opções para enviar e-mails. Uma das mais conhecidas é o SendMail (isso mesmo, sem o E de SendEmail). O problema do SendMail é que ele é um servidor completo de

Leia mais

www.profpimentel.com.br

www.profpimentel.com.br CENTRAL DE CURSOS PROF. PIMENTEL 12/03/2016 SIMULADO - INFORMÁTICA TURMA - INSS - TÉCNICO DO SEGURO SOCIAL Você recebeu sua folha de respostas e este caderno contendo 30 questões objetivas. Leia cuidadosamente

Leia mais

1. TSA 12.1.8... 3 1.1 Inovação - TSA 12.1.8... 3 1.1.1 DT_Arquivo_de_Log_do_Integrador_Separado_por_Thread... 3 1.1.2 DT_Central_de_Ajuda_UX9...

1. TSA 12.1.8... 3 1.1 Inovação - TSA 12.1.8... 3 1.1.1 DT_Arquivo_de_Log_do_Integrador_Separado_por_Thread... 3 1.1.2 DT_Central_de_Ajuda_UX9... TOTVS 1. 12.1.8................................................................................................. 3 1.1 Inovação - 12.1.8...................................................................................

Leia mais

Professor: Macêdo Firmino Disciplina: Sistemas Operacionais de Rede

Professor: Macêdo Firmino Disciplina: Sistemas Operacionais de Rede Professor: Macêdo Firmino Disciplina: Sistemas Operacionais de Rede O servidor de arquivos fornece um ponto centralizado na rede para armazenamento e compartilhamento de arquivos entre os usuários. Quando

Leia mais

Introdução à Computação: Sistemas de Computação

Introdução à Computação: Sistemas de Computação Introdução à Computação: Sistemas de Computação Beatriz F. M. Souza (bfmartins@inf.ufes.br) http://inf.ufes.br/~bfmartins/ Computer Science Department Federal University of Espírito Santo (Ufes), Vitória,

Leia mais

Desenvolvendo Websites com PHP

Desenvolvendo Websites com PHP Desenvolvendo Websites com PHP Aprenda a criar Websites dinâmicos e interativos com PHP e bancos de dados Juliano Niederauer 19 Capítulo 1 O que é o PHP? O PHP é uma das linguagens mais utilizadas na Web.

Leia mais

Cinco restrições de desenvolvimento/teste que afetam a velocidade, o custo e a qualidade dos seus aplicativos

Cinco restrições de desenvolvimento/teste que afetam a velocidade, o custo e a qualidade dos seus aplicativos Série de ebooks sobre desenvolvimento em paralelo ágil: Capítulo 2 Cinco restrições de desenvolvimento/teste que afetam a velocidade, o custo e a qualidade dos seus aplicativos Novas pressões, mais restrições

Leia mais

Manual de Instalação. Instalação via apt-get

Manual de Instalação. Instalação via apt-get Manual de Instalação Instalação via apt-get Índice de capítulos 1 - Pré-requisitos para instalação............................ 01 2 - Instalando o SIGA-ADM................................. 01 2.1 - Preparando

Leia mais

Manual do Usuário Android Neocontrol

Manual do Usuário Android Neocontrol Manual do Usuário Android Neocontrol Sumário 1.Licença e Direitos Autorais...3 2.Sobre o produto...4 3. Instalando, Atualizando e executando o Android Neocontrol em seu aparelho...5 3.1. Instalando o aplicativo...5

Leia mais

Backup e Recuperação Guia do Usuário

Backup e Recuperação Guia do Usuário Backup e Recuperação Guia do Usuário Copyright 2007-2009 Hewlett-Packard Development Company, L.P. Windows é uma marca registrada da Microsoft Corporation nos Estados Unidos. As informações contidas neste

Leia mais

Funcionalidades da ferramenta zabbix

Funcionalidades da ferramenta zabbix Funcionalidades da ferramenta zabbix Jordan S. Romano¹, Eduardo M. Monks¹ ¹Curso Superior de Tecnologia em Redes de Computadores FACULDADE DE TECNOLOGIA SENAC PELOTAS (FATEC PELOTAS) Rua Gonçalves Chaves,

Leia mais

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS Internacionalização e Literais Professor: Danilo Giacobo OBJETIVOS DA AULA Aprender as vantagens do uso de literais e da internacionalização em aplicativos Android.

Leia mais

No projeto das primeiras redes de computadores, o hardware foi a principal preocupação e o software ficou em segundo plano.

No projeto das primeiras redes de computadores, o hardware foi a principal preocupação e o software ficou em segundo plano. No projeto das primeiras redes de computadores, o hardware foi a principal preocupação e o software ficou em segundo plano. Essa estratégia foi deixada para trás. Atualmente, o software de rede é altamente

Leia mais

Curso Online A Escola no Combate ao Trabalho Infantil Plataforma de Educação à Distância

Curso Online A Escola no Combate ao Trabalho Infantil Plataforma de Educação à Distância Página1 Apresentação Curso Online A Escola no Combate ao Trabalho Infantil Plataforma de Educação à Distância Olá Participante do Curso A Escola no Combate ao Trabalho Infantil (ECTI), Este tutorial pretende

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