AVALIAÇÃO DE DESEMPENHO DE PLATAFORMAS OPENSOURCE PARA DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET

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

Download "AVALIAÇÃO DE DESEMPENHO DE PLATAFORMAS OPENSOURCE PARA DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET"

Transcrição

1 FACULDADE SETE DE SETEMBRO - FASETE CURSO DE BACHARELADO EM SISTEMAS DE INFORMAÇÃO ANDERSON CARLOS ALVES RIBEIRO AVALIAÇÃO DE DESEMPENHO DE PLATAFORMAS OPENSOURCE PARA DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET Paulo Afonso BA Dezembro 2012

2 ANDERSON CARLOS ALVES RIBEIRO AVALIAÇÃO DE DESEMPENHO DE PLATAFORMAS OPEN SOURCE PARA DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET Monografia apresentada ao curso de Graduação, Bacharelado em Sistemas de Informação da Faculdade Sete de Setembro FASETE, como requisito para avaliação conclusiva. Sob a orientação do professor Esp. Antônio Henrique de Pereira de Souza. Paulo Afonso BA Dezembro 2012

3 ANDERSON CARLOS ALVES RIBEIRO AVALIAÇÃO DE DESEMPENHO DE PLATAFORMAS OPEN SOURCE PARA DESENVOLVIMENTO DE APLICAÇÕES PARA INTERNET Monografia Submetida ao corpo docente da Faculdade Sete de Setembro FASETE, como parte dos requisitos necessários à obtenção do grau de Bacharel em Sistemas de Informação. Aprovada por: Prof. Esp. Orientador Antônio Henrique Pereira de Souza Prof. Msc. Coorientador Igor Medeiros Vanderlei Prof. Esp. Ricardo Azevedo Porto Prof. Esp. Jackson Pires de Oliveira Santos Júnior Paulo Afonso BA Dezembro 2012

4 AGRADECIMENTOS A Deus, pois sem ele nada é possível. A minha família, em especial aos meus pais, que sempre acreditaram em mim. A minha esposa Rôse Fabíola que, com muito carinho, me apoiou durante todo o tempo do curso, às vezes abdicando de minha atenção, para tornar nosso, o meu objetivo. Ao professor e orientador Antônio Henrique pela paciência na orientação e incentivo que tornaram possível a conclusão deste trabalho. Ao professor e coordenador do curso Igor Medeiros pelo prazer de poder compartilhar dos seus conhecimentos, contribuindo muito para a conclusão deste trabalho. A todos os professores do curso de sistemas de informação da FASETE, em especial, Ricardo Porto, pelo qual tenho grande apreço desde o curso técnico do Colégio Sete de Setembro e Jackson Júnior sempre disposto a me ajudar no desenvolvimento deste trabalho. Aos amigos Carlos Alberto, Hélcio e, em especial, Messias, grande amigo que tive o prazer de conhecer e compartilhar muitos momentos durante o curso. Muito obrigado!

5 RESUMO Este trabalho tem como objetivo avaliar o desempenho de aplicações desenvolvidas para Internet utilizando plataformas opensource. Para o desenvolvimento deste trabalho foram utilizadas as plataformas PHP, Java e Ruby on Rails integradas aos Sistemas Gerenciadores de Banco de Dados (SGBD s) MySql, PostgreSQL e Firebird. Para análise do desempenho foram desenvolvidos experimentos para integração das plataformas com os SGBD s e definidos quatro casos de teste aos quais foram aplicadas quatro deferentes cargas de trabalho. A análise do desempenho foi obtida através da comparação do tempo de resposta dos experimentos utilizando a ferramenta Jmeter. Ao final deste trabalho constatou-se a importância da escolha correta da plataforma de desenvolvimento e do SGBD no desenvolvimento de aplicações para Internet e o impacto dessa escolha no desempenho da aplicação. Palavras-chave: Avaliação de desempenho, aplicações para internet, Plataformas de desenvolvimento, Sistema Gerenciador de Banco de Dados.

6 ABSTRACT This study aims to evaluate the performance of applications developed for Internet using opensource platforms. For the development of this work were used platforms PHP, Java and Ruby on Rails integrated with Management Systems Database (DBMS) MySQL, PostgreSQL and Firebird. For performance analysis experiments were developed for integration of platforms with four SGBD's and defined test cases which were applied four deferent workloads. The performance analysis was achieved by comparing the response time of the experiments using the tool Jmeter. At the end of this study verified the importance of choosing the correct development platform and DBMS the development of Internet applications and the impact of that choice on application performance. Palavras-chave: Performance evaluation, internet applications, development platforms, Management Systems Database.

7 LISTA DE FIGURAS E QUADROS Figura 1- Ambiente desenvolvimento Java típico Figura 2- Esquema do funcionamento das páginas PHP Figura 3- Aplicação Rails típica Figura 4- Arquitetura MVC e como lida com o Ruby on Rails Figura 5- Os três níveis da arquitetura de um banco de dados Figura 7 - Tempo de resposta de aplicações Web Figura 8- Diagrama Entidade Relacionamento Quadro 1 - Índice de popularidade das linguagens de programação Quadro 2 - Comparação entre técnicas de análise de desempenho Quadro 3- Aspectos do uso da medição na qualidade

8 LISTA DE GRÁFICOS Gráfico 1 - Evolução de popularidade da linguagem Java Gráfico 2- Resultado dos testes de listar registros Gráfico 3- Resultado dos testes de listar registros Gráfico 4- Resultado dos testes de listar registros Gráfico 5- Resultado dos testes de listar ordenando alfabeticamente registros Gráfico 6- Resultado dos testes de listar ordenando alfabeticamente registros Gráfico 7- Resultado dos testes de listar ordenando alfabeticamente registros Gráfico 8- Resultado dos testes de pesquisar por código com registros.51 Gráfico 9- Resultado dos testes de pesquisar por código com registros.52 Gráfico 10- Resultado dos testes de pesquisar por código com registros Gráfico 11- Resultado dos testes de pesquisar por código com registros Gráfico 12- Resultado dos testes de pesquisar por nome com registros.54 Gráfico 13- Resultado dos testes de pesquisar por nome com registros.55 Gráfico 14- Resultado dos testes de pesquisar por nome com registros Gráfico 15- Resultado dos testes de pesquisar por nome com registros

9 LISTA DE ABREVIATURAS E SIGLAS SGBD - Sistema Gerenciador De Banco De Dados API - Application Programming Interface OSI - Open Source Iniciative JVM Java Virtual Machine J2EE - Java Entreprise Edition J2SE - Java Standart Edition J2ME - Java Micro Edition MVC - Model-view-controller HTML - Hiper Text Mark-up Language CSS - Cascading Style Sheets TP - Transaction Processing DBA - Data Base Administrator SQL - Structured Query Language ANSI-ASPARC - Study Group on Data Base Management Systems DDL - Data Definition Language DML - Data Manipulation Language GNU - General Public License IPL InterBase Public License MIPS - milhões de Instruções por segundo W3C - World Wide Web Consortium AOL - America Online FTP - File Transfer Protocol LAN - Local Area Network RAM - Random Access Memory

10 SUMÁRIO 1. INTRODUÇÃO JUSTIFICATIVA PROBLEMA DE PESQUISA HIPÓTESES OBJETIVOS OBJETIVO GERAL OBJETIVOS ESPECÍFICOS METODOLOGIA DE PESQUISA FERRAMENTAS OPEN SOURCE PLATAFORMAS PARA DESENVOLVIMENTO DE APLICAÇÕES PARA WEB JAVA PHP RUBY ON RAILS BANCO DE DADOS SISTEMA GERENCIADOR DE BANCO DE DADOS (SGBD) AVALIAÇÃO DE DESEMPENHO DE APLICAÇÕES SELEÇÃO DA TÉCNICA DE AVALIAÇÃO SELEÇÃO DE MÉTRICAS DE DESEMPENHO PARÂMETROS E INDICADORES DE DESEMPENHO CLASSIFICAÇÃO DE UTILIDADE DE MÉTRICAS DE DESEMPENHO APLICAÇÕES WEB MEDIDAS DE DESEMPENHO DE APLICAÇÕES WEB JMETER ANÁLISE E DISCUSSÃO DOS RESULTADOS AMBIENTE DE DESENVOLVIMENTO DOS TESTES DEFINIÇÃO DO VOLUME DE CARGA CASO DE TESTE: LISTAR LISTAR REGISTROS LISTAR REGISTROS LISTAR REGISTROS ANÁLISE E DISCUSSÃO DOS RESULTADOS - CASO DE TESTE: LISTAR 47

11 6.4. CASO DE TESTE: LISTAR ORDENANDO ALFABETICAMENTE LISTAR ORDENANDO ALFABETICAMENTE REGISTROS LISTAR ORDENANDO ALFABETICAMENTE REGISTROS LISTAR ORDENANDO ALFABETICAMENTE REGISTROS ANÁLISE E DISCUSSÃO DOS RESULTADOS - CASO DE TESTE: LISTAR ORDENANDO ALFABETICAMENTE CASO DE TESTE: PESQUISAR POR CÓDIGO PESQUISAR POR CÓDIGO REGISTROS PESQUISAR POR CÓDIGO REGISTROS PESQUISAR POR CÓDIGO REGISTROS PESQUISAR POR CÓDIGO REGISTROS ANÁLISE E DISCUSSÃO DOS RESULTADOS - CASO DE TESTE: PESQUISAR POR CÓDIGO CASO DE TESTE: PESQUISAR POR NOME PESQUISAR POR NOME REGISTROS PESQUISAR POR NOME REGISTROS PESQUISAR POR NOME REGISTROS PESQUISAR POR NOME REGISTROS ANÁLISE E DISCUSSÃO DOS RESULTADOS - CASO DE TESTE: PESQUISAR POR NOME CONSIDERAÇÕES FINAIS TRABALHOS FUTUROS REFERÊNCIAS BIBLIOGRÁFICAS... 60

12 12 1. INTRODUÇÃO Nos últimos anos, principalmente devido à popularização da Internet e a evolução das redes de computadores, as aplicações para Web evoluíram rapidamente de simples Web Sites estáticos, cujo propósito era apenas a navegação sobre a informação, para verdadeiros sistemas de informação altamente complexos, repletos de dados e transações. Com isso, surgiram linguagens de programação focadas em Web, tais como: Java EE, PHP, ASP e Ruby, entre outras. Nos sistemas atuais, é praticamente inevitável o uso de um Sistema Gerenciador de banco de dados - SGBD. Esses SGBD s, devem ser selecionados de acordo com a necessidade da corporação, quantidade de informação que será armazenada, escalabilidade e infraestrutura disponível. Os profissionais que trabalham com o desenvolvimento de sistemas devem se adaptar a diversidade de plataformas que surgiram para acompanhar este novo modelo de informação. A escolha da plataforma correta pode significar o sucesso ou o fracasso de um projeto, sendo necessário um suporte para tomada dessa decisão. Este trabalho tem como objetivo realizar um estudo sobre as principais plataformas para desenvolvimento de aplicações para Web, propondo uma avaliação de desempenho dessas plataformas, visando auxiliar o profissional da área de tecnologia da informação na escolha da plataforma para desenvolvimento de aplicações para Web Justificativa A Internet é um sistema em expansão, incorporando a cada dia mais serviços, evoluindo de um meio de propagação de informação para uma estrutura onipresente, que possibilita o suporte a aplicações anteriormente baseadas em desktop, porém, aplicações baseadas na Web apresentam comportamento imprevisível dos pedidos de informação e serviços, por exemplo, um Site com poucos visitantes, de repente e sem aviso, pode ter o número de acessos

13 13 aumentado ou softwares autônomos podem consumir carga significante do sistema, tornando o dimensionamento adequado da estrutura uma tarefa difícil. A escolha inadequada da plataforma pode gerar, por exemplo, sobrecarga no servidor e gargalos na rede, afetando a qualidade do serviço oferecido e, por conseqüência, possibilitando a percepção do mau desempenho do sistema pelo usuário final, causando insatisfação do cliente, prejudicando a imagem da empresa e causando perdas para o negócio. Dimensionar um sistema considerando a carga máxima pode causar superdimensionamento da estrutura, causando com isso, desperdício de recursos, e ao dimensionar para carga média, corre-se o risco de quando os clientes ultrapassarem a média se colocar em risco o desempenho do sistema. Um sistema bem dimensionado deve suportar o aumento de carga preservando a qualidade do serviço. A qualidade de um serviço possui ligação direta com o custo da infraestrutura para oferecer o serviço e esperar que uma aplicação entre em funcionamento para descobrir problemas, pode ocasionar aumento do custo Problema de pesquisa Diante das diversas plataformas disponíveis para desenvolvimento de aplicativos para Web e das possibilidades de integração dessas plataformas com diversos sistemas de gerenciamento de Banco de Dados, levando em consideração o desempenho da aplicação, questiona-se: Qual a melhor alternativa de integração SGBD plataforma de desenvolvimento? 1.3. Hipóteses Diferentes plataformas podem alterar de maneira significativa o desempenho de uma aplicação. A escolha do SGBD pode afetar de maneira significativa o desempenho de uma aplicação.

14 14 A carga de trabalho pode afetar de maneira significativa o desempenho de uma aplicação Objetivos Objetivo Geral Avaliar o desempenho entre aplicações para Web, desenvolvidas em diferentes plataformas e integradas a diversos Sistemas Gerenciadores de Bancos de Dados (SGBD s) Objetivos específicos Realizar estudo sobre as principais plataformas para desenvolvimento de aplicativos para Web; Realizar estudo sobre os principais SGBD s, para aplicações desenvolvidas para Web; Realizar uma avaliação de desempenho de aplicações para Internet desenvolvidas em diferentes plataformas e integradas com diferentes SGBD s METODOLOGIA DE PESQUISA Para o desenvolvimento de forma satisfatória desse trabalho foi necessário dividí-io em três etapas: A primeira etapa referente ao embasamento teórico relacionado aos temas a serem estudados, foi realizada através de estudo teórico / bibliográfico sobre as principais plataformas e os principais Sistemas de Gerenciamento de Banco Dados (SGBD) para desenvolvimento de aplicativos para Web. A pesquisa bibliográfica, ou de fontes secundárias, abrange toda bibliografia já tornada pública em relação ao tema de estudo, desde publicações avulsas, boletins, jornais, revistas, livros, pesquisas,

15 15 monografias, teses, material cartográfico etc., até meios de comunicação orais: rádio, gravações em fita magnética e audiovisuais: filmes e televisão. (Lakatos, 2003). A segunda etapa deste trabalho foi realizada através da montagem de um experimento, utilizando as informações obtidas na primeira etapa, que consistiu na construção de experimentos, integrando as plataformas e os SGBD s para desenvolvimento de aplicativos para Web levantados na primeira etapa, e na utilização da ferramenta Jmeter para análise de desempenho desses protótipos. Durante a terceira etapa deste trabalho foi realizado um estudo quantitativo, realizado através de uma avaliação estatística dos dados obtidos através do experimento utilizado na segunda etapa. A estatística pode ser considerada mais do que apenas um meio de descrição racional; é, também, um método de experimentação e prova, pois é método de análise (Lakatos, 2003). Segundo Richardson (1989), este método caracteriza-se pelo emprego da quantificação, tanto nas modalidades de coleta de informações, quanto no tratamento dessas através de técnicas estatísticas, desde as mais simples até as mais complexas. 2. Ferramentas Open Source Para o desenvolvimento deste trabalho foram utilizadas foram utilizadas apenas ferramentas open source. A definição do Open Source foi criada pela Open Source Iniciative (OSI) e determina que um programa de código aberto deve garantir: Distribuição livre A licença não deve restringir de nenhuma maneira a venda ou distribuição do programa gratuitamente, como componente de outro programa ou não. Código fonte O programa deve incluir seu código fonte e deve permitir a sua distribuição também na forma compilada. Se o programa não for distribuído com seu código fonte, deve

16 16 haver algum meio de se obter o mesmo seja via rede ou com custo apenas de reprodução. O código deve ser legível e inteligível para qualquer programador. Trabalhos Derivados A licença deve permitir modificações e trabalhos derivados, e deve permitir que eles sejam distribuídos sobre os mesmos termos da licença original. Integridade do código fonte A licença pode restringir o código fonte de ser distribuído em uma forma modificada apenas se a licença permitir a distribuição de arquivos patch de atualização com o código fonte para o propósito de modificar o programa no momento de sua construção. A licença deve explicitamente permitir a distribuição do programa construído a partir do código fonte modificado. Contudo, a licença pode ainda requerer que programas derivados tenham um nome ou número de versão diferentes do programa original. Não discriminação contra pessoas ou grupos A licença não pode ser discriminatória contra qualquer pessoa ou grupo de pessoas. Não discriminação contra áreas de atuação A licença não deve restringir qualquer pessoa de usar o programa em um ramo específico de atuação. Por exemplo, ela não deve proibir que o programa seja usado em uma empresa, ou de ser usado para pesquisa genética. Distribuição da Licença Os direitos associados ao programa devem ser aplicáveis para todos aqueles cujo o programa é redistribuído, sem a necessidade da execução de uma licença adicional para estas partes.

17 17 Licença não específica a um produto Os direitos associados ao programa não devem depender que o programa seja parte de uma distribuição específica de programas. Se o programa é extraído desta distribuição e usado ou distribuído dentro dos termos da licença do programa, todas as partes para quem o programa é redistribuído devem ter os mesmos direitos que aqueles que são garantidos em conjunção com a distribuição de programas original. Licença não restrinja outros programas A licença não pode colocar restrições em outros programas que são distribuídos juntos com o programa licenciado. Isto é, a licença não pode especificar que todos os programas distribuídos na mesma mídia de armazenamento sejam programas de código aberto. Licença neutra em relação à tecnologia Nenhuma cláusula da licença pode estabelecer uma tecnologia individual, estilo ou interface a ser aplicada no programa. 3. Plataformas para desenvolvimento de aplicações para Web Para a escolha das plataformas que compõe este trabalho foi utilizado o índice TIOBE Programming Comunity, que mede a popularidade das linguagens de programação, conforme apresentado no Quadro 1. Para o desenvolvimento deste trabalho foram utilizadas as seguintes linguagens de programação Java, PHP e Ruby.

18 18 Quadro 1 - Índice de popularidade das linguagens de programação Java Fonte: De acordo com Deitel e Deitel (2005), visando o crescimento do mercado de dispositivos móveis a Sun Microsystems financiou, em 1991, uma pesquisa interna chamada Green. Como resultado desta pesquisa, surgiu uma linguagem de programação baseada em C e C++ que seu criador, James Gosling chamou de Oak e posteriormente foi renomeada de Java pela Sun. Entretanto, o mercado de dispositivos móveis não se desenvolvia na rapidez com a qual a Sun Microsystems havia previsto, colocando sob risco de cancelamento o projeto Green. Porém, em 1993, com a popularização da World Wide Web, a Sun percebeu o potencial de utilização da linguagem Java para criação de páginas Web com conteúdo dinâmico. Em 1995, a Sun anunciou formalmente a linguagem Java. Gerando grande interesse da comunidade comercial, devido ao interesse pela World Wide Web.

19 19 A linguagem Java é utilizada para desenvolvimento de páginas para Web dinâmicas ou estáticas, grandes aplicativos corporativos e aplicações para dispositivos móveis. Segundo o índice TIOBE Programming Comunity, que mede a popularidade das linguagens de programação, desde 2002 a linguagem Java se mantém entre as linguagens mais utilizadas, como podemos observar no Gráfico 1. Gráfico 1 - Evolução de popularidade da linguagem Java. Fonte: De acordo com Deitel e Deitel(2005), os programas desenvolvidos em Java normalmente passam por cinco fases para serem executados, conforme descrito a seguir e ilustrado na Figura 1: Fase 1 - Edição Nesta fase o programa pode ser escrito ou editado utilizando um editor de texto, o arquivo deve ser salvo com a extensão.java; Fase 2 - Compilação O compilador Java traduz a o programa Java para Bytecodes, linguagem entendida pelo interpretador Java, gerando um arquivo com a extensão.class; Fase 3 - Carga O arquivo.class é carregado na memória antes de ser executado. Esse arquivo pode ser carregado a partir de um disco local ou de um computador remoto através de uma rede.

20 20 Fase 4 - Verificação Verifica se os bytecodes são válidos e se não violam as restrições de segurança do Java. Assegurando que os programas, principalmente os baixados da rede não causem danos ao sistema e aos arquivos locais; Fase 5 - Execução O computador, através da Java Virtual Machine (JVM) ou Máquina Virtual Java, interpreta o programa, executando as ações especificadas no programa. Figura 1- Ambiente desenvolvimento Java típico. Fonte: Deitel e Deitel (2005) Conforme Deitel e Deitel (2005), os programas Java consistem de várias partes conhecidas como classes e estas por sua vez são compostas de vários métodos. Um ponto forte da linguagem Java é sua extensa de biblioteca de classes, também conhecida como (Applications Programing Interfaces Interfaces de programas aplicativos - API), que consiste de coleções de classes prontas para serem

21 21 utilizadas. Portanto, para um programador Java, tão importante quanto conhecer a linguagem é saber utilizar estas API s. Há realmente duas partes para aprender o mundo JAVA. A primeira é aprender a própria linguagem JAVA de modo que se possam programar suas próprias classes e a segunda é aprender como utilizar as classes nas extensas bibliotecas de classes JAVA. Deitel e Deitel (2005, p.7). Segundo Somera (2006), a plataforma Java pode ser dividida em três grandes áreas, definidas de acordo com a finalidade da aplicação. Java Entreprise Edition (J2EE): aplicações empresariais multicamada, provê serviços adicionais, ferramentas e API s para suportar o desenvolvimento simplificado de aplicações empresariais Java Standard Edition (J2SE): tecnologia Java para computadores pessoais, notebooks e arquiteturas com poder de processamento e memória consideráveis; Java Micro Edition (J2ME): tecnologia Java para dispositivos móveis com limitações de memória ou processamento. Por exemplo, celulares, palmtops, smartphones e demais dispositivos móveis PHP Desenvolvida em 1994, por Rasmus Lerdof, PHP é o acrônimo de Hipertext Preprocessor e trata-se de uma linguagem de criação de scripts do lado do servidor. O PHP é um produto com código-fonte aberto, devido a sua licença gratuita, pode ser utilizado, modificado e distribuído por qualquer pessoa e com qualquer finalidade, seja particular, comercial ou acadêmica e livre de encargos. De acordo com Welling(2005), o código PHP pode se embutido dentro de uma página HTML, o mesmo será executado todas as vezes em que a página for acessada, gerando como resultado o HTML que será enviado para o cliente, possibilitando a sua interpretação por qualquer navegador Web, conforme podemos observar na Figura 2.

22 22 Figura 2- Esquema do funcionamento das páginas PHP. Fonte: De acordo com Welling (2005), existem diversas vantagens na utilização do PHP, entre as quais podemos destacar as seguintes: Redução de custos - Devido ao mesmo ser uma ferramenta gratuita. Facilidade de Integração com Banco de Dados Possui conexões nativas para os principais bancos de dados; Bibliotecas integradas Devido ser projetado para Internet, possui bibliotecas integradas para o desenvolvimento de tarefas úteis para aplicações para Web. Por exemplo, geração instantânea de imagens GIF, utilização de cookies e geração de documentos PDF; Facilidade de aprendizagem A sintaxe PHP é baseada em outras linguagens, principalmente C e Perl Ruby on Rails De acordo com Thomas e Hansson (2005), O Ruby on Rails é um framework que utiliza a arquitetura Model-View-Controller (MVC) para o desenvolvimento de

23 23 aplicações Web, a exemplo dos frameworks Java Tapestry e Struts. As aplicações Rails são escritas em Ruby, uma linguagem de programação interpretada e orientada a objetos. O Ruby foi desenvolvido em 1993 por Yukihiro Matsumoto, mas lançado ao público somente em Segundo Williams(2007), Matsumoto projetou o Ruby principalmente para reduzir a carga de trabalho de desenvolvedores, seguindo o princípio da menor surpresa, o que significa que a linguagem normalmente se comporta como o programador espera: métodos são nomeados com termos que definem apropriadamente a ação sendo executada, explicando intuitivamente a ação que realizam. No final de 2003, David Heinemeier Hansson e a 37Signals começaram a trabalhar em um solução baseada na Internet de gerenciamento de projetos para equipes pequenas. Usando Ruby, Hansson desenvolveu um projeto chamado Basecamp, durante o desenvolvimento ele percebeu que uma grande parte do código que estava escrevendo poderia ser extraído para um framework, podendo ser utilizado como parte de futuras aplicações (THOMAS e HANSSON, 2005). Em julho de 2004, Hansson lançou o framework, Ruby on Rails, semelhante à maneira como a linguagem Ruby, o Rails segue o princípio da menor surpresa, o Rails foi concebido com o princípio do não repetir-se. Significa, basicamente, que nenhuma parte de um sistema deve jamais ser repetido, alterações em qualquer parte de um aplicativo deve ser feita em apenas um lugar. Outro princípio seguido pelo Rails é a convenção sobre configuração. O Rails não tem muitas opções configuráveis, como outros frameworks, tornando a configuração rápida e fazendo com o que os desenvolvedores possam voltar-se direto as aplicações em construção (THOMAS e HANSSON, 2005).

24 24 Figura 3- Aplicação Rails típica. Fonte: Williams (2007) Como ilustrado na Figura 3, um aplicativo Ruby on Rails é composto por vários componentes, quando um usuário solicita uma página através do browser, o controlador de Rails (Action Controller) recebe o pedido e redireciona para o método correto baseado no roteamento de URL. Depois que o método correto é chamado, o mesmo é executado e solicita todos os dados que necessita do banco de dados usando o Model Active Record. Depois que ele possui todos os dados que necessita, renderiza a exibição final (HTML, CSS e imagens) no navegador do usuário (WILLIAMS, 2007). Como dito anteriormente e ilustrado na Figura 4, o Rails é construído usando a arquitetura Model-View-Controller (MVC), na qual temos o modelo de dados, interface do usuário e controlador lógico em componentes separados.

25 25 Figura 4- Arquitetura MVC e como lida com o Ruby on Rails. Fonte: Williams (2007) A arquitetura MVC é excelente do ponto de vista de programação, pois separa cada componente de uma aplicação Rails em uma base de código isolado e de fácil manuseio, sem ter que se preocupar em alterar outras partes do seu aplicativo. Por exemplo, você pode normalmente modificar o layout de suas Views sem se preocupar com isso ter qualquer impacto nos Controllers ou Models(THOMAS e HANSSON, 2005).

26 26 4. Banco de dados De acordo com Date (2003), um banco de dados pode ser considerado um recipiente para uma coleção de dados computadorizados que podem ser acessados e manipulados por um usuário, possibilitando que sejam realizadas diversas operações com os mesmos. Um sistema de banco de dados envolve quatro componentes principais: dados, hardware, software e usuários. Os dados em um banco devem estar integrados e compartilhados. A integração dos dados visa garantir que os mesmos não sejam redundantes, ou seja, que sejam armazenados somente uma vez e em um mesmo local. Já o compartilhamento visa garantir que os mesmos estejam disponíveis á diferentes usuários e, possivelmente, ao mesmo tempo. Os componentes de hardware em um banco de dados consistem, basicamente, dos dispositivos que serão utilizados para armazenamento dos dados, dos dispositivos responsáveis pela entrada/saídas dos dados e dos processadores e memórias utilizados como suporte ao software do sistema de banco de dados. De acordo com Elmasri (2005), o Sistema de Gerenciamento de Banco de Dados (SGBD) é o mais importante componente de software, mas não o único, existem ainda os seguintes componentes: utilitários, ferramentas de desenvolvimento de aplicação, geradores de relatórios e o gerenciador de transações ou monitor de TP (Transaction Processing processamento de transações). Segundo Date(2003), os usuários de um banco de dados podem ser divididos em três classes: programadores de aplicação, usuários finais e administradores de banco de dados ou Data Base Administrator (DBA). Os programadores de aplicação são responsáveis por desenvolver aplicações que interagem com o banco de dados fazendo requisições ao mesmo, normalmente utilizando Linguagem de Consulta Estruturada (Structured Query Language - SQL). Os usuários finais acessam o banco de dados interativamente através das aplicações desenvolvidas pelos programadores de aplicação ou através de interfaces fornecidas como parte integrante do sistema de banco de dados.

27 27 De acordo com Elmasri (2005), O DBA é o responsável pela autorização para o acesso ao banco, pela coordenação e monitoração de seu uso e por adquirir recursos de software e hardware conforme necessário. Ou seja, o DBA é o profissional técnico pela criação do banco de dados, implementação dos controles técnicos, definição das restrições de segurança e integridade do mesmo. Segundo a arquitetura proposta pelo Study Group on Data Base Management Systems (ANSI/SPARC), a arquitetura de um banco de dados se divide em três níveis, conforme descrito a seguir e ilustrado na Figura 5: Figura 5- Os três níveis da arquitetura de um banco de dados. Fonte: Date(2003) Nível interno ou de armazenamento é o nível mais próximo do armazenamento físico, descreve o esquema do armazenamento físico do banco de dados. Nível conceitual ou lógico de comunidade descreve a estrutura do conteúdo total do banco de dados para a comunidade de usuários. O esquema conceitual se concentra na descrição de entidades, tipos de dados, conexões, operações de usuários e restrições de segurança e integridade, portanto, há somente um esquema conceitual. Nível externo ou lógico de usuário abrange os esquemas externos ou visões de usuários. Cada esquema externo descreve a parte do banco de dados de acordo com o interesse de determinado usuário, ocultando a parte restante. Portanto, diferentemente do nível lógico podemos ter mais de um esquema externo.

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

FACULDADE DE TECNOLOGIA SENAC PELOTAS CURSO TÉCNICO EM INFORMÁTICA PRONATEC PROFESSOR: NATANIEL VIEIRA ALUNOS: ANA CAROLINA, ROMÁRIO, WAGNER.

FACULDADE DE TECNOLOGIA SENAC PELOTAS CURSO TÉCNICO EM INFORMÁTICA PRONATEC PROFESSOR: NATANIEL VIEIRA ALUNOS: ANA CAROLINA, ROMÁRIO, WAGNER. 1 FACULDADE DE TECNOLOGIA SENAC PELOTAS CURSO TÉCNICO EM INFORMÁTICA PRONATEC PROFESSOR: NATANIEL VIEIRA ALUNOS: ANA CAROLINA, ROMÁRIO, WAGNER. TURMA: 2 TERMOS TÉCNICOS PELOTAS, 2012 ANA CAROLINA, ROMÁRIO,

Leia mais

SISTEMA GERENCIADOR DE BANCO DE DADOS

SISTEMA GERENCIADOR DE BANCO DE DADOS BANCO DE DADOS Universidade do Estado de Santa Catarina Centro de Ciências Tecnológicas Departamento de Ciência da Computação Prof. Alexandre Veloso de Matos alexandre.matos@udesc.br SISTEMA GERENCIADOR

Leia mais

Roteiro 2 Conceitos Gerais

Roteiro 2 Conceitos Gerais Roteiro 2 Conceitos Gerais Objetivos: UC Projeto de Banco de Dados Explorar conceitos gerais de bancos de dados; o Arquitetura de bancos de dados: esquemas, categorias de modelos de dados, linguagens e

Leia mais

Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br

Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br Ementa Introdução a Banco de Dados (Conceito, propriedades), Arquivos de dados x Bancos de dados, Profissionais de Banco de dados,

Leia mais

Banco de Dados I. Apresentação (mini-currículo) Conceitos. Disciplina Banco de Dados. Cont... Cont... Edson Thizon (edson@esucri.com.

Banco de Dados I. Apresentação (mini-currículo) Conceitos. Disciplina Banco de Dados. Cont... Cont... Edson Thizon (edson@esucri.com. Sistemas da Informação Banco de Dados I Edson Thizon (edson@esucri.com.br) 2008 Apresentação (mini-currículo) Formação Acadêmica Mestrando em Ciência da Computação (UFSC/ ) Créditos Concluídos. Bacharel

Leia mais

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados. BANCO DE DADOS Universidade do Estado de Santa Catarina Centro de Ciências Tecnológicas Departamento de Ciência da Computação Prof. Alexandre Veloso de Matos alexandre.matos@udesc.br INTRODUÇÃO Hoje é

Leia mais

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional Juarez Bachmann Orientador: Alexander Roberto Valdameri Roteiro Introdução Objetivos Fundamentação teórica Desenvolvimento

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

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

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc.

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc. MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 1 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Apresenta a diferença entre dado e informação e a importância

Leia mais

As principais características da abordagem de um banco de dados versus a abordagem de processamento de arquivos são as seguintes:

As principais características da abordagem de um banco de dados versus a abordagem de processamento de arquivos são as seguintes: SGBD Características do Emprego de Bancos de Dados As principais características da abordagem de um banco de dados versus a abordagem de processamento de arquivos são as seguintes: Natureza autodescritiva

Leia mais

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert: BRAlarmExpert Software para Gerenciamento de Alarmes A TriSolutions conta com um produto diferenciado para gerenciamento de alarmes que é totalmente flexível e amigável. O software BRAlarmExpert é uma

Leia mais

Banco de Dados. Uma coleção de dados relacionados [ELMASRI/NAVATHE]

Banco de Dados. Uma coleção de dados relacionados [ELMASRI/NAVATHE] 1/6 Banco de Dados O que é um Banco de Dados? Uma coleção de dados relacionados [ELMASRI/NAVATHE] Conjunto de dados integrados que tem por objetivo atender a uma comunidade específica [HEUSER] Um conjunto

Leia mais

Banco de Dados I Introdução

Banco de Dados I Introdução Banco de Dados I Introdução Prof. Moser Fagundes Curso Técnico em Informática (Modalidade Integrada) IFSul Campus Charqueadas Sumário da aula Avaliações Visão geral da disciplina Introdução Histórico Porque

Leia mais

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1. Universidade Federal de Santa Maria Curso de Arquivologia Disciplina de Banco de Dados Aplicados à Arquivística Prof. Andre Zanki Cordenonsi Versao 1.0 Março de 2008 Tópicos Abordados Conceitos sobre Banco

Leia mais

DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS

DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS Emanuel M. Godoy 1, Ricardo Ribeiro Rufino 1 1 Universidade Paranaense (Unipar) Paranavaí PR Brasil godoymanel@gmail.com,

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

Conteúdo Programático de PHP

Conteúdo Programático de PHP Conteúdo Programático de PHP 1 Por que PHP? No mercado atual existem diversas tecnologias especializadas na integração de banco de dados com a WEB, sendo o PHP a linguagem que mais se desenvolve, tendo

Leia mais

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho 20 Capítulo 3 Avaliação de Desempenho Este capítulo aborda como medir, informar e documentar aspectos relativos ao desempenho de um computador. Além disso, descreve os principais fatores que influenciam

Leia mais

Arquitetura de Banco de Dados

Arquitetura de Banco de Dados Arquitetura de Banco de Dados Daniela Barreiro Claro MAT A60 DCC/IM/UFBA Arquitetura de Banco de dados Final de 1972, ANSI/X3/SPARC estabeleceram o relatório final do STUDY GROUP Objetivos do Study Group

Leia mais

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões Prof. MSc. Hugo Souza Se você precisar manter informações sobre seus usuários enquanto eles navegam pelo seu site, ou até quando eles saem

Leia mais

Módulo 4: Gerenciamento de Dados

Módulo 4: Gerenciamento de Dados Módulo 4: Gerenciamento de Dados 1 1. CONCEITOS Os dados são um recurso organizacional decisivo que precisa ser administrado como outros importantes ativos das empresas. A maioria das organizações não

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

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados: MC536 Introdução Sumário Conceitos preliminares Funcionalidades Características principais Usuários Vantagens do uso de BDs Tendências mais recentes em SGBDs Algumas desvantagens Modelos de dados Classificação

Leia mais

SQL APOSTILA INTRODUÇÃO A LINGUAGEM SQL

SQL APOSTILA INTRODUÇÃO A LINGUAGEM SQL SQL APOSTILA INTRODUÇÃO Uma linguagem de consulta é a linguagem por meio da qual os usuários obtêm informações do banco de dados. Essas linguagens são, tipicamente, de nível mais alto que as linguagens

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

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

Bancos de Dados. Conceitos F undamentais em S is temas de B ancos de Dados e s uas Aplicações

Bancos de Dados. Conceitos F undamentais em S is temas de B ancos de Dados e s uas Aplicações Conceitos F undamentais em S is temas de B ancos de Dados e s uas Aplicações Tópicos Conceitos Básicos Bancos de Dados Sistemas de Bancos de Dados Sistemas de Gerenciamento de Bancos de Dados Abstração

Leia mais

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Programação com acesso a BD Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br 1 Introdução BD desempenha papel crítico em todas as áreas em que computadores são utilizados: Banco: Depositar ou retirar

Leia mais

Banco de Dados. CursoTécnico em Informática Modalidade Integrado. Professora Michelle Nery. Instituto Federal do Sul de Minas, câmpus Pouso Alegre

Banco de Dados. CursoTécnico em Informática Modalidade Integrado. Professora Michelle Nery. Instituto Federal do Sul de Minas, câmpus Pouso Alegre Banco de Dados CursoTécnico em Informática Modalidade Integrado Instituto Federal do Sul de Minas, câmpus PousoAlegre Professora Michelle Nery Conteúdo Programático Introdução O que é Banco de Dados O

Leia mais

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas Linguagem de Programação JAVA Professora Michelle Nery Nomeclaturas Conteúdo Programático Nomeclaturas JDK JRE JEE JSE JME JVM Toolkits Swing AWT/SWT JDBC EJB JNI JSP Conteúdo Programático Nomenclatures

Leia mais

Introdução a Computação

Introdução a Computação Introdução a Computação Aula 03 Profissões de TI Prof. MSc. Edilberto Silva edilms@yahoo.com http:// Papéis... Um papel é uma definição abstrata de um conjunto de atividades executadas e dos respectivos

Leia mais

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl Ferramenta de apoio a gerência de configuração de software Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl Roteiro de apresentação Introdução Objetivos Fundamentação Teórica Gerência de Configuração

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

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido Arquitetura Roteiro Arquitetura Tipos de Arquitetura Centralizado Descentralizado Hibrido Questionário 2 Arquitetura Figura 1: Planta baixa de uma casa 3 Arquitetura Engenharia de Software A arquitetura

Leia mais

Introdução Banco de Dados

Introdução Banco de Dados Introdução Banco de Dados Vitor Valerio de Souza Campos Adaptado de Vania Bogorny Por que estudar BD? Os Bancos de Dados fazem parte do nosso dia-a-dia: operação bancária reserva de hotel matrícula em

Leia mais

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO 10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO UMA DAS GRANDES FUNÇÕES DA TECNOLOGIA É A DE FACILITAR A VIDA DO HOMEM, SEJA NA VIDA PESSOAL OU CORPORATIVA. ATRAVÉS DELA, ELE CONSEGUE

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

2 Diagrama de Caso de Uso

2 Diagrama de Caso de Uso Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa

Leia mais

ADMINISTRAÇÃO DOS RECURSOS DE DADOS

ADMINISTRAÇÃO DOS RECURSOS DE DADOS Capítulo 7 ADMINISTRAÇÃO DOS RECURSOS DE DADOS 7.1 2003 by Prentice Hall OBJETIVOS Por que as empresas sentem dificuldades para descobrir que tipo de informação precisam ter em seus sistemas de informação?

Leia mais

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart.

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart. Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart. Versão 1.6 15/08/2013 Visão Resumida Data Criação 15/08/2013 Versão Documento 1.6 Projeto Responsáveis

Leia mais

Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados

Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados 1. Conceitos Básicos No contexto de sistemas de banco de dados as palavras dado e informação possuem o mesmo significado, representando uma

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 5 Servidores de Aplicação

Leia mais

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc. MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 2 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Revisão sobre Banco de Dados e SGBDs Aprender as principais

Leia mais

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador> FACULDADE DE ENGENHARIA DE COMPUTAÇÃO PROJETO FINAL I e II PLANO DE TRABALHO O Trabalho de Conclusão de Curso (TCC) a ser desenvolvido

Leia mais

FERRAMENTA WEB PARA MODELAGEM LÓGICA EM PROJETOS DE BANCOS DE DADOS RELACIONAIS

FERRAMENTA WEB PARA MODELAGEM LÓGICA EM PROJETOS DE BANCOS DE DADOS RELACIONAIS FERRAMENTA WEB PARA MODELAGEM LÓGICA EM PROJETOS DE BANCOS DE DADOS RELACIONAIS PAULO ALBERTO BUGMANN ORIENTADOR: ALEXANDER ROBERTO VALDAMERI Roteiro Introdução Objetivos Fundamentação teórica Desenvolvimento

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

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de

Leia mais

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES Alexandre Egleilton Araújo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil araujo.ale01@gmail.com, jaime@unipar.br Resumo.

Leia mais

Introdução. Banco de dados. Por que usar BD? Por que estudar BD? Exemplo de um BD. Conceitos básicos

Introdução. Banco de dados. Por que usar BD? Por que estudar BD? Exemplo de um BD. Conceitos básicos Introdução Banco de Dados Por que usar BD? Vitor Valerio de Souza Campos Adaptado de Vania Bogorny 4 Por que estudar BD? Exemplo de um BD Os Bancos de Dados fazem parte do nosso dia-a-dia: operação bancária

Leia mais

Automação de Locais Distantes

Automação de Locais Distantes Automação de Locais Distantes Adaptação do texto Improving Automation at Remote Sites da GE Fanuc/ Water por Peter Sowmy e Márcia Campos, Gerentes de Contas da. Nova tecnologia reduz custos no tratamento

Leia mais

4 O Workflow e a Máquina de Regras

4 O Workflow e a Máquina de Regras 4 O Workflow e a Máquina de Regras O objetivo do workflow e da máquina de regras é definir um conjunto de passos e regras configuráveis. Ao longo de sua execução, um usuário consegue simplificar o seu

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

METODOLOGIA PARA ANÁLISE DE DESEMPENHO

METODOLOGIA PARA ANÁLISE DE DESEMPENHO UNIVERSIDADE FEDERAL DE PERNAMBUCO GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA METODOLOGIA PARA ANÁLISE DE DESEMPENHO DE SISTEMAS DE TRANSFERÊNCIA ELETRÔNICA DE FUNDOS PROPOSTA DE TRABALHO

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

Engenharia de Requisitos Estudo de Caso

Engenharia de Requisitos Estudo de Caso Engenharia de Requisitos Estudo de Caso Auxiliadora Freire Fonte: Engenharia de Software 8º Edição / Ian Sommerville 2007 Slide 1 Engenharia de Requisitos Exemplo 1 Reserva de Hotel 1. INTRODUÇÃO Este

Leia mais

)HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR

)HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR 6LPXODomR GH6LVWHPDV )HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR #5,6. Simulador voltado para análise de risco financeiro 3RQWRV IRUWHV Fácil de usar. Funciona integrado a ferramentas já bastante conhecidas,

Leia mais

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Prof. MSc. Hugo Souza Iniciando nossas aulas sobre

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

GBD PROF. ANDREZA S. AREÃO

GBD PROF. ANDREZA S. AREÃO GBD PROF. ANDREZA S. AREÃO Dado, Informação e Conhecimento DADO: Estímulos captados pelos sentidos humanos; Símbolos gráficos ou sonoros; Ocorrências registradas (em memória, papel, etc.); Indica uma situação

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

Banco de Dados. Introdução. João Eduardo Ferreira Osvaldo Kotaro Takai. jef@ime.usp.br DCC-IME-USP

Banco de Dados. Introdução. João Eduardo Ferreira Osvaldo Kotaro Takai. jef@ime.usp.br DCC-IME-USP Banco de Dados Introdução João Eduardo Ferreira Osvaldo Kotaro Takai jef@ime.usp.br DCC-IME-USP Importância dos Bancos de Dados A competitividade das empresas depende de dados precisos e atualizados. Conforme

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

TI Aplicada. Aula 02 Áreas e Profissionais de TI. Prof. MSc. Edilberto Silva prof.edilberto.silva@gmail.com http://www.edilms.eti.

TI Aplicada. Aula 02 Áreas e Profissionais de TI. Prof. MSc. Edilberto Silva prof.edilberto.silva@gmail.com http://www.edilms.eti. TI Aplicada Aula 02 Áreas e Profissionais de TI Prof. MSc. Edilberto Silva prof.edilberto.silva@gmail.com http:// Papéis... Um papel é uma definição abstrata de um conjunto de atividades executadas e dos

Leia mais

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA INTRODUÇÃO O projeto de um banco de dados é realizado sob um processo sistemático denominado metodologia de projeto. O processo do

Leia mais

BANCO DE DADOS AULA 02 INTRODUÇÃO AOS BANCOS DE DADOS PROF. FELIPE TÚLIO DE CASTRO 2015

BANCO DE DADOS AULA 02 INTRODUÇÃO AOS BANCOS DE DADOS PROF. FELIPE TÚLIO DE CASTRO 2015 BANCO DE DADOS AULA 02 INTRODUÇÃO AOS BANCOS DE DADOS PROF. FELIPE TÚLIO DE CASTRO 2015 NA AULA PASSADA... 1. Apresentamos a proposta de ementa para a disciplina; 2. Discutimos quais as ferramentas computacionais

Leia mais

MANUAL DE IMPLANTAÇÃO SISTEMA DE INVENTÁRIO CACIC GOVERNO FEDERAL SOFTWARE PÚBLICO

MANUAL DE IMPLANTAÇÃO SISTEMA DE INVENTÁRIO CACIC GOVERNO FEDERAL SOFTWARE PÚBLICO MANUAL DE IMPLANTAÇÃO SISTEMA DE INVENTÁRIO CACIC Configurador Automático e Coletor de Informações Computacionais GOVERNO FEDERAL SOFTWARE PÚBLICO software livre desenvolvido pela Dataprev Sistema de Administração

Leia mais

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE Amarildo Aparecido Ferreira Junior 1, Ricardo Ribeiro Rufino 1 ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil aapfjr@gmail.com

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árcio Leandro Moraes Rodrigues. Frame Relay

Márcio Leandro Moraes Rodrigues. Frame Relay Márcio Leandro Moraes Rodrigues Frame Relay Introdução O frame relay é uma tecnologia de chaveamento baseada em pacotes que foi desenvolvida visando exclusivamente a velocidade. Embora não confiável, principalmente

Leia mais

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação de Computadores - I. Profª Beatriz Profº Israel Programação de Computadores - I Profª Beatriz Profº Israel A linguagem JAVA A linguagem Java O inicio: A Sun Microsystems, em 1991, deu inicio ao Green Project chefiado por James Gosling. Projeto que apostava

Leia mais

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi Metodologias de Desenvolvimento de Sistemas Analise de Sistemas I UNIPAC Rodrigo Videschi Histórico Uso de Metodologias Histórico Uso de Metodologias Era da Pré-Metodologia 1960-1970 Era da Metodologia

Leia mais

Introdução à Linguagem Java

Introdução à Linguagem Java Introdução à Linguagem Java Histórico: Início da década de 90. Pequeno grupo de projetos da Sun Microsystems, denominado Green. Criar uma nova geração de computadores portáveis, capazes de se comunicar

Leia mais

Considerações no Projeto de Sistemas Cliente/Servidor

Considerações no Projeto de Sistemas Cliente/Servidor Cliente/Servidor Desenvolvimento de Sistemas Graça Bressan Graça Bressan/LARC 2000 1 Desenvolvimento de Sistemas Cliente/Servidor As metodologias clássicas, tradicional ou orientada a objeto, são aplicáveis

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

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web; CONCEITOS INICIAIS Agenda A diferença entre páginas Web, Home Page e apresentação Web; O que é necessário para se criar páginas para a Web; Navegadores; O que é site, Host, Provedor e Servidor Web; Protocolos.

Leia mais

ISO/IEC 12207: Gerência de Configuração

ISO/IEC 12207: Gerência de Configuração ISO/IEC 12207: Gerência de Configuração Durante o processo de desenvolvimento de um software, é produzida uma grande quantidade de itens de informação que podem ser alterados durante o processo Para que

Leia mais

Faculdade de Tecnologia SENAC Goiás. Disciplina: Gerenciamento de Rede de Computadores. Goiânia, 16 de novembro de 2014.

Faculdade de Tecnologia SENAC Goiás. Disciplina: Gerenciamento de Rede de Computadores. Goiânia, 16 de novembro de 2014. Faculdade de Tecnologia SENAC Goiás Disciplina: Gerenciamento de Rede de Computadores : Goiânia, 16 de novembro de 2014. Faculdade de Tecnologia SENAC Goiás Professor: Marissol Martins Alunos: Edy Laus,

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

gerenciamento de portais e websites corporativos interface simples e amigável, ágil e funcional não dependendo mais de um profissional especializado

gerenciamento de portais e websites corporativos interface simples e amigável, ágil e funcional não dependendo mais de um profissional especializado O NetPublisher é um sistema de gerenciamento de portais e websites corporativos (intranets ou extranets), apropriado para pequenas, médias e grandes empresas. O conteúdo do website pode ser atualizado

Leia mais

PROPOSTA COMERCIAL. Caro cliente,

PROPOSTA COMERCIAL. Caro cliente, PROPOSTA COMERCIAL Caro cliente, O MakerPlanet.COM é uma empresa que oferece serviçso de hospedagem especializado em publicação de aplicações Maker na internet. Todos os nossos planos são totalmente compatíveis

Leia mais

5 Mecanismo de seleção de componentes

5 Mecanismo de seleção de componentes Mecanismo de seleção de componentes 50 5 Mecanismo de seleção de componentes O Kaluana Original, apresentado em detalhes no capítulo 3 deste trabalho, é um middleware que facilita a construção de aplicações

Leia mais

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS -ARQUITETURAS DE APLICAÇÃO MÓVEL. Prof. Angelo Augusto Frozza, M.Sc. http://about.

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS -ARQUITETURAS DE APLICAÇÃO MÓVEL. Prof. Angelo Augusto Frozza, M.Sc. http://about. PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS -ARQUITETURAS DE APLICAÇÃO MÓVEL Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza ROTEIRO Introdução Cliente-Servidor Cliente Servidor Tipos de conexão

Leia mais

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3 DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3 Eduardo Laguna Rubai, Tiago Piperno Bonetti Universidade Paranaense (Unipar) Paranavaí PR- Brasil eduardorubay@gmail.com, bonetti@unipar.br Resumo.

Leia mais

Introdução à Computação

Introdução à Computação Aspectos Importantes - Desenvolvimento de Software Motivação A economia de todos países dependem do uso de software. Cada vez mais, o controle dos processos tem sido feito por software. Atualmente, os

Leia mais

Noções de. Microsoft SQL Server. Microsoft SQL Server

Noções de. Microsoft SQL Server. Microsoft SQL Server Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados

Leia mais

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware 1 2 Revisão de Hardware 2.1 Hardware O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware 2.1.1 Processador O Processador

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

O que é o Virto ERP? Onde sua empresa quer chegar? Apresentação. Modelo de funcionamento

O que é o Virto ERP? Onde sua empresa quer chegar? Apresentação. Modelo de funcionamento HOME O QUE É TOUR MÓDULOS POR QUE SOMOS DIFERENTES METODOLOGIA CLIENTES DÚVIDAS PREÇOS FALE CONOSCO Suporte Sou Cliente Onde sua empresa quer chegar? Sistemas de gestão precisam ajudar sua empresa a atingir

Leia mais

DIMENSIONANDO PROJETOS DE WEB-ENABLING. Uma aplicação da Análise de Pontos de Função. Dimensionando projetos de Web- Enabling

DIMENSIONANDO PROJETOS DE WEB-ENABLING. Uma aplicação da Análise de Pontos de Função. Dimensionando projetos de Web- Enabling DIMENSIONANDO PROJETOS DE WEB-ENABLING Uma aplicação da Análise de Pontos de Função Dimensionando projetos de Web- Enabling Índice INTRODUÇÃO...3 FRONTEIRA DA APLICAÇÃO E TIPO DE CONTAGEM...3 ESCOPO DA

Leia mais

Java & OpenJDK. Thiago S. Gonzaga. Sun Campus Ambassador thiago.gonzaga@sun.com

Java & OpenJDK. Thiago S. Gonzaga. Sun Campus Ambassador thiago.gonzaga@sun.com Java & OpenJDK Thiago S. Gonzaga Sun Campus Ambassador thiago.gonzaga@sun.com Tópicos Sobre a Sun Microsystems Algumas tecnologias da Sun Linguagem de Programação Ciclo de Desenvolvimento O que é Java?

Leia mais

Prof. Luiz Fernando. Unidade III ADMINISTRAÇÃO DE

Prof. Luiz Fernando. Unidade III ADMINISTRAÇÃO DE Prof. Luiz Fernando Unidade III ADMINISTRAÇÃO DE BANCOS DE DADOS Administração de SGBDs De todo o tipo de pessoal envolvido com desenvolvimento, manutenção, e utilização de bancos de dados há dois tipo

Leia mais

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Definição Geral: Disciplina de Compiladores Prof. Jorge Bidarra (UNIOESTE) A especificação de requisitos tem como objetivo

Leia mais

Manual do Ambiente Moodle para Professores

Manual do Ambiente Moodle para Professores UNIVERSIDADE FEDERAL DA FRONTEIRA SUL Manual do Ambiente Moodle para Professores Tarefas Versão 1.0b Setembro/2011 Direitos Autorais: Essa apostila está licenciada sob uma Licença Creative Commons 3.0

Leia mais

GARANTIA DA QUALIDADE DE SOFTWARE

GARANTIA DA QUALIDADE DE SOFTWARE GARANTIA DA QUALIDADE DE SOFTWARE Fonte: http://www.testexpert.com.br/?q=node/669 1 GARANTIA DA QUALIDADE DE SOFTWARE Segundo a NBR ISO 9000:2005, qualidade é o grau no qual um conjunto de características

Leia mais