CENTRO UNIVERSITÁRIO METODISTA BENNETT. Rafael Gomes de Oliveira Polo Sabrina Arêas DESENVOLVIMENTO ÁGIL DE SISTEMAS PARA A WEB 2.

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

Download "CENTRO UNIVERSITÁRIO METODISTA BENNETT. Rafael Gomes de Oliveira Polo Sabrina Arêas DESENVOLVIMENTO ÁGIL DE SISTEMAS PARA A WEB 2."

Transcrição

1 CENTRO UNIVERSITÁRIO METODISTA BENNETT Rafael Gomes de Oliveira Polo Sabrina Arêas DESENVOLVIMENTO ÁGIL DE SISTEMAS PARA A WEB 2.0 COM RAILS 2009

2 CENTRO UNIVERSITÁRIO METODISTA BENNETT Rafael Gomes de Oliveira Polo Sabrina Arêas DESENVOLVIMENTO ÁGIL DE SISTEMAS PARA A WEB 2.0 COM RAILS Monografia apresentada ao Centro Universitário Metodista Bennett, como parte dos requisitos para obtenção do título de Bacharel em Ciência da Computação. Orientador: Prof. Sávio Figueiredo Rio de Janeiro Novembro, 2009

3 CENTRO UNIVERSITÁRIO METODISTA BENNETT Rafael Gomes de Oliveira Polo Sabrina Arêas Orientador: Prof. Sávio Figueiredo DESENVOLVIMENTO ÁGIL DE SISTEMAS PARA A WEB 2.0 COM RAILS Trabalho de Conclusão do Curso de Ciência da Computação do Centro Universitário Metodista Bennett como parte dos requisitos necessários à obtenção do título de Bacharel em Ciência da Computação. Aprovado por: Prof. Sávio Figueiredo, MSc Presidente Prof. Carolina Xavier, MSc Prof. Vinicius da Fonseca Vieira, MSc Rio de Janeiro Novembro, 2009

4 RESUMO DESENVOLVIMENTO ÁGIL DE SISTEMAS PARA A WEB 2.0 COM RAILS Rafael Gomes de Oliveira Polo Sabrina Arêas Orientador: Prof. Sávio Figueiredo Este trabalho tem por objetivo apresentar alguns aspectos dos novos princípios de arquitetura de software voltadas para a World Wide Web, mostrando que o refinamento dos novos frameworks para sistemas de informação na Web permitem o desenvolvimento ágil e com qualidade, eliminando tarefas recorrentes nos projetos. Demonstramos essa viabilidade na implementação de dois sistemas Web com um moderno framework. Palavras-chave: HTTP, WEB 2.0, REST, URI, RUBY ON RAILS Rio de Janeiro Novembro, 2009

5 ABSTRACT AGILE SYSTEMS DEVELOPMENT FOR WEB 2.0 WITH RAILS Rafael Gomes de Oliveira Polo Sabrina Arêas Advisor: Prof. Sávio Figueiredo This paper aims to present some aspects of the new principles of software architecture focused on the World Wide Web, showing that the refinement of new information system s frameworks allows agile development with quality, eliminating recurring tasks in projects. We demonstrates its viability implementing two Web systems with a modern framework. Key-words: HTTP, WEB 2.0, REST, URI, RUBY ON RAILS Rio de Janeiro Novembro, 2009

6 AGRADECIMENTOS Agradeço ao meu esposo por sempre me mostrar que posso ir além. Aos meus pais que são responsáveis por eu estar aqui hoje. Ao meu irmão por sempre me levar a busca pela sabedoria e aos Mestres da casa por todo conhecimento transmitido. (Sabrina) Agradeço à meus pais e familiares pelo exemplo de determinação e bondade que me faz seguir em frente, a minha irmã pelo incentivo e colaboração, aos amigos pelos momentos de diversão e por manterem minha curiosidade no mundo acesa. (Rafael)

7 A mente que se abre a uma nova idéia jamais voltará ao seu tamanho original. Albert Einstein

8 Sumário 1 - Introdução Objetivos Justificativa Revisão Mapeamento Objeto Relacional Active Record ActiveRecord do Framework Ruby On Rails Desvantagens do Active Record Sistema de caching Caching on Rails Paging Cache Action Cache Fragment Caching Sweepers SQL caching Conditional GET Support View e Templates Partials Rer RHTML Helpers Roteamento de URLs Conectando URLs com o código Gerando URLs do código Routes.rb Processando o arquivo Rotas RESTful Rotas Nomeadas...19

9 Rotas Aninhadas Rotas Regulares Rotas Padrão Roteamento RESTful: o Padrão Rails Estudo de caso Estudo de caso - baixogavea.com Criação do Projeto Definição do SGBD Definição do Schema Modelos Migrando e Testando Roteando as requisições HTTP aos controladores Visualizando as respostas através dos templates AJAX Resultados e Conclusões Trabalhos Futuros...40 REFERÊNCIAS BIBLIOGRÁFICAS...42

10 1 - Introdução Desde a crise do software nos anos 70 - ano de desenvolvimento e comercialização do microprocessador - quando a demanda por sistemas de informação era progressiva, boa parte dos projetos estourava o orçamento e o prazo e softwares tinham baixa qualidade ou se tornavam muito complexos para serem gerenciados, o uso de melhores técnicas, métodos e ferramentas se fez necessário. Muito se evoluiu em pouco mais de 40 anos, desde quando o termo Engenharia de Software foi utilizado oficialmente em 1968 na Conferência sobre Engenharia de Software da OTAN. A década de 80 viveu a popularização dos Sistemas Operacionais e o uso de PCs (computadores pessoais) para uso não necessariamente empresarial ou científico. No ápice de um contexto histórico, da guerra fria aos movimentos de contra-cultura, essa época é considerada o fim da Sociedade Industrial e o início da Sociedade da Informação, a computação foge do seu único destino de processamento de dados corporativos para tornar-se um instrumento de criação de textos, imagens e música. A informática perde seu status de técnica industrial para fundir-se com as telecomunicações, editoração, digitalização e multimídia. No começo da década de 90 o cientista da computação Tim Berners Lee publicou seu projeto sobre a World Wide Web (teia de alcance global) e um sistema de identificação global e único de recursos, o Uniform Resource Identifier (URI), além de um servidor de hipertexto e o primeiro browser, desenvolvido na CERN (Organização Europeia para a Investigação Nuclear), o WorldWideWeb, que funda toda a arquitetura de nossa Web contemporânea. 1

11 De forma geral, visualizar uma página web ou outro recurso disponibilizado na rede normalmente inicia ao digitar uma URL (Uniform Resource Locator) no navegador ou seguindo um hiperlink. Primeiramente, a parte da URL referente ao servidor web é separada e transformada em um ereço IP, por um banco de dados da Internet chamado Domain Name System (DNS). O navegador estabelece então uma conexão TCP-IP com o servidor web localizado no ereço IP retornado. Em seguida o navegador envia uma requisição HTTP (Protocolo de Transferência de Hipertexto) ao servidor para obter o recurso indicado pela parte restante da URL. No caso de uma página web típica, o texto HTML é recebido e interpretado pelo navegador, que realiza então requisições adicionais para figuras, arquivos de formatação, arquivos de script e outros recursos que fazem parte da página. O navegador então gera a página na tela do usuário, assim como descrita pelos arquivos que a compõe. Diversas são as camadas de tecnologias que nos permitem a Internet tal como é hoje. No ano 2000, Roy Fielding, um dos principais autores das especificação do protocolo HTTP, em sua tese de doutoramento (PHD) apresenta a Transferência de Estado Representacional (Representational State Transfer) ou somente REST, uma técnica de engenharia de software para sistemas hipermídia distribuídos, como é a própria World Wide Web. Sistemas RESTful maximizam o uso de interfaces bem definidas préexistentes e minimizam a necessidade de novas camadas de abstração ao sistema Objetivos So notório que cada pedaço de conhecimento deve ter uma representação inequívoca num sistema de informação e que na Web um sistema te a ser aberto, evolutivo e 2

12 reusado por outros nós da rede, é cada vez mais comum o uso de APIs públicas (Interface de Programação de Aplicativos) por conhecidas organizações como o Flickr, Youtube, Open Social, Facebook, Blogspot, ebay e Twitter que fazem de seu sistema de informação um eco-sistema aberto além de seu domínio. Um nó na rede pode ter seu próprio repositório de vídeos, imagens, microblogging integrado à mapas apenas com mashups dessas interfaces. Hoje, a Web vai muito além da simples exibição de páginas, quase duas décadas desde sua invenção, aproximadamente 20% da população mundial usa a Internet para atividades cada vez mais essenciais, países como a Estônia já elegeram seus governantes pela Internet. Como o computador é uma máquina universal, em rede, reinventamos a comunicação, a mídia e as próprias relações humanas. Diversos são os estudos que demonstram a simbiose da tecnologia e a cultura na última década, mas nos limitaremos a analisar e demonstrar o atual estado da arte da ágil construção de sistemas de informação com base no protocolo de transferência de hipertexto, o HTTP, a aquitetura REST e apresentar estudos de caso que desenvolvemos e publicamos na Web, o e o utilizando um moderno framework publicado inicialmente em 2004, o Ruby on Rails, cujos principais conceitos (mapeamento objetorelacional, sistema de cache, template e roteamento) faremos uma revisão e apresentaremos como pesquisa dos sistemas desenvolvidos Justificativa Nos quatro anos de experiência em desenvolvimento Web vimos diversos frameworks com as mais distintas funções. 3

13 "Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação." - FAYAD e SCHMIDT Em Java, uma das linguagem mais bem aceitas pelo mercado, conhecemos o Hibernate, o Velocity e o Spring, em Python o Django, adotado como base em muitos serviços do Google, em PHP o CakePHP e em Ruby o Rails, to sido esse último escolhido por ser um meta-framework open-source em constante evolução por uma engajada comunidade internacional de desenvolvedores e ter uma ótima documentação - é a junção de quatro frameworks, Active Record, Action Pack, Action Mailer e Active Support. Além disso, o Rails oferece um inovador roteamento de requisições, um conjunto de utilitários de testes e geração de documentação inspirados em sistemas UNIX em uma bem definida arquitetura MVC (Model-View-Controller), como a figura 1 representa. figura 1 4

14 2 - Revisão O conteúdo e os conceitos necessários para o desenvolvimento de uma aplicação Web completa extrapolam nosso intuito de apresentar as novas abordagens para realizá-las com ganhos significativos em produtividade, portanto resumiremos nossa revisão aos principais conceitos modernos de Mapeamento Objeto Relacional, Sistema de Caching, View e Templates e Roteamento de URLs Mapeamento Objeto Relacional Mapeamento objeto-relacional (ou ORM) é uma técnica de desenvolvimento utilizada para reduzir a redundância da programação orientada a objetos utilizando banco de dados relacionais. As tabelas do banco de dados são representadas através dos modelos do sistema, as classes, e os registros de cada tabela são representados como instâncias das classes correspondentes. Com esta técnica, o programador não precisa se preocupar com os comandos em linguagem SQL e sua tradução a objetos em sistemas orientados à objetos, ele irá usar uma interface de programação simples que faz todo o trabalho de persistência. Não é necessária uma correspondência direta entre as tabelas de dados e as classes do programa. A relação entre as tabelas onde originam os dados e o objeto que os disponibiliza é configurada pelo programador, isolando o código do programa das alterações à organização dos dados nas tabelas do banco de dados. 5

15 Existem dois padrões comuns para a comunicação com o BD/Framework: o Data Access Object (DAO) e o Active Record (AR). Os dois, DAO e AR, são padrões bem distintos e refletem abordagens extremamente diferentes na modelagem da aplicação Active Record Active Record é uma abordagem para acessar dados em um banco de dados. Uma tabela do banco de dados ou view é envolta em uma classe, desta maneira, uma instância é vinculada a uma única linha (registro) na tabela. Após a criação de um objeto, um novo registro é adicionado na tabela. Qualquer objeto carregado obtém informações do seu banco de dados; quando um objeto é atualizado, o registro correspondente na tabela também é atualizado. A classe wrapper implementa os métodos de acesso ou propriedades para cada coluna na tabela ou view. O Active Record Pattern é comumente usado por ferramentas de persistência de objetos e em mapeamento objeto relacional. Normalmente relacionamentos de chave estrangeira serão expostos como um objeto de tipo apropriado por meio de uma propriedade ActiveRecord do Framework Ruby On Rails O Active Record se tornou extremamente popular com o framework Rails, para a linguagem Ruby, como a produtividade e simplicidade do framework revoluciona o desenvolvimento, muitos abraçaram o padrão também em outros frameworks. Esse padrão é muito comum em frameworks para linguagens dinâmica, como Python. 6

16 O Active Record fornece acesso conveniente e programático à camada de domínio de nossas aplicações. Ele é um mecanismo de armazenagem persistente que geralmente interage diretamente com o banco de dados relacional, baseia-se e recebe o nome de um padrão de design definido por Martin Fowler em seu livro, Patterns of Enterprise Application Architecture (Addison-Wesley). Neste livro Fowler resume este padrão como: "Um objeto que encapsula um registro em uma tabela ou view do banco de dados. Além disso, este objeto cuida das rotinas de acesso ao banco e adiciona lógica de domínio às informações encapsuladas." O Active Record trabalha criando um mapeamento objeto-relacional (ORM) entre os objetos Ruby da aplicação e as linhas e colunas das tabelas no banco de dados. Este mapeamento nos permite interagir com o banco de dados da mesma forma que interagimos com os objetos Ruby, eliminando a necessidade de usar SQL para manipular os dados das tabelas. Em vez de trabalhar com registros nas tabelas, trabalhamos com objetos Ruby, e as colunas das tabelas do banco de dados passam a ser vistas como atributos destes objetos, os quais podemos ler ou escrever usando métodos de acesso. Um modelo de domínio consiste dos dados e um conjunto de regras que definem como estes dados interagem com o restante da aplicação. O Active Record permite a definição da lógica de nossos modelos de domínio usando Ruby. Com isso há flexibilidade ao definir regras de negócios específicas aos dados, e, uma vez que esta lógica está centralizada no modelo, a alteração se torna muito mais fácil. O Active Record, assim como boa parte do framework Rails, trabalha com o conceito de "convenção em vez de configuração - convention over configuration" para simplificar os estágios iniciais, assumindo que geralmente os projetos tem padrões em comum. Por exemplo, o Active Record determina os campos da tabela, eliminando a necessidade de 7

17 definir métodos básicos de acesso para cada campo. A forma que o Active Record faz isso é analisando as convenções de nomes de tabelas e campos para mapear o esquema do banco de dados para os objetos Ruby com o mínimo possível de configuração. Os nomes das tabelas são entidos como so o plural do objeto armazenado na tabela. Assim, cada registro de uma tabela "clientes" guarda um "cliente". Além disso, todas as tabelas (exceto tabelas de ligação) devem possuir uma chave primária única chamada id. Chaves estrangeiras (foreign keys) recebem seus nomes baseado no nome da tabela seguido por _id. Por exemplo, uma tabela alunos referenciando uma tabela chamada cursos possuiría uma coluna chamada cursos_id. Tabelas de ligação, usadas em relacionamentos muitos-para-muitos recebem os nomes das duas tabelas envolvidas, com seus nomes em ordem alfabética. Ex: alunos_cursos, artigos_categorias, etc. Os benefícios da abstração do acesso direto ao banco de dados usando Active Record inclui a habilidade de mudar o banco de dados sempre que necessário, a aplicação não fica depente de apenas um banco de dados. Uma vez que os detalhes dos dados e suas formas de acesso estão incluídos no Active Record, para mudar de MySQL para PostgreSQL ou SQLite é só editar o arquivo databases.yml no diretório conf do projeto. Para finalizar, como o Ruby possui a capacidade de instrospecção e metaprogramação de objetos, o Active Record no Rails fornece finders (métodos de pesquisa) dinâmicos baseados em atributos e um bom número de métodos auxiliares que facilitam e tornam a interação com o banco de dados extremamente ágeis Desvantagens do Active Record As classes sempre são persistidas no banco. Quando você cria uma nova instância de 8

18 aluno, por exemplo, o Active Record criará um registro na tabela aluno automaticamente. Isso às vezes é ruim, pois não é possível utilizar objetos não persistidos, como na API JPA do Java. A principal queixa com o Active Record é a sua lentidão para sistemas complexos com uma base de dados muito grande. O programa pode demorar para exibir listas de objetos persistidos e seus atributos, pois além de gerar o SQL necessário de acordo com o banco de dados definido, o resultado é convertido em objetos. Mas apesar dessa desvantagem, contornada utilizando SQL direto para consultas complexas, o Active Record ainda traz muitos ganhos ao mapear objetos, relacionamentos e automatizar todas as conexões com o banco de dados. Uma forma de melhorar o desempenho é o uso do cache, que pode manter o resultado das consultas em memória para evitar outras consultas ao banco e páginas préviamente construídas Sistema de Caching Cache é uma área de acesso rápido que pode ser utilizada para otimização de sistemas que se utilizam de recursos do sistema. Os dados existentes em cache estão lá duplicados, os dados existem em uma área de armazenamento permanente e no cache. A área de armazenamento permanente, normalmente, é de acesso mais caro, e normalmente o acesso mais caro é compensado pela capacidade superior de armazenamento. Já em áreas de cache o acesso aos dados é mais rápido. Só que a capacidade de armazenamento é menor. Assim, é necessário que existam heurísticas que se encarreguem de eleger quem será 9

19 removido do cache para liberar espaço para o armazenamento de outro recurso. Apesar de alguns dispositivos de computação terem o nome "cache" contido em seus nomes, cache não é um dispositivo - é um conceito - onde é utilizado recursos de acesso mais rápido para armazenar dados mais, ou recentemente, acessados. Cache é um bloco de memória temporário para acesso futuro. Para acesso aos dados, um cliente primeiramente consulta sua existência em um cache. Indo ao recurso mais lento apenas se o dado não puder ser encontrado no cache. A este processo se dá o nome de cache hit, utilizado nos navegadores Web recentes. Ao requisitar um ereço na Web, o navegador, primeiramente, verifica se a página solicitada existe no disco local. Se a solicitação (tag) for encontrada no disco local, a página (dado) é exibida sem ir a rede buscá-la. Em contrapartida, se a solicitação não for encontrada no cache local do browser, o mesmo se encarrega em ir no local destino para buscar a página solicitada. A partir daí a página é inserida no cache para acesso futuro. A esse evento dá-se o nome de cache miss. Durante o processo de cache miss o processador de cache se encarrega de prover espaço para entrada do dado mais recentemente acessado que ainda não existia no cache. O algoritmo para o processamento disso chama-se replacement policy. Existem dois métodos de escrita no cache. Write-through e write-back. No write-through o dado armazenado no cache é gravado sincronamente no local de armazenamento. No write-back, quando um dado é escrito no cache ele ainda não foi armazenado na área definitiva de armazenamento. O sistema de cache deve se encarregar de escrever o dado na área de armazenamento a fim de precaver-se de perda de dados. 10

20 Caching on Rails Em servidores Web é possível implementar funcionalidades se aproveitando do conceito de cache. O objetivo é manter as páginas, já processadas, em uma área temporária para acessos futuros. Com isso é economizado acesso a recursos mais onerosos do sistema armazenando informações recuperáveis por meios mais eficientes. No Ruby on Rails pode-se utilizar de técnicas de cache já implementadas no framework, como cache de páginas ou de SQL a fim de aproveitar recursos do sistema Paging Cache Por este método, o primeiro cliente que acessar uma determinada página irá processar a página e armazena-la no cache. Com isso o próximo cliente que precisar desta página, não irá esperar o processamento da mesma. Receberá uma cópia já processada. Esse recurso não pode ser utilizado para páginas em que os dados enviados precisam ser checados para estabelecer uma conexão ao recurso solicitado. É muito utilizado para páginas que são idênticas para todos os usuários que acessam ou para páginas que não precisam de autenticação para serem acessadas Action Cache Isso resolve o problema existente em paging cache. Antes de servir ao cliente a página em cache, é possível efetuar filtros. Isso utiliza processamento para efetuar as verificações de permissão, por exemplo, e depois serve a página em cache. Assim, uma 11

21 página que depe de autenticação não seria exibida simplesmente por estar em cache Fragment Caching Como atualmente as páginas Web são mais componentizadas e cada componente da página tem um comportamento diferente, também será necessário aplicação de regras de cache diferente para cada componente da página - para isso o Rails provê este mecanismo Sweepers Com esta técnica, é possível internalizar o momento de expirar um determinado cache a partir de ações. Quando há um objeto em cache, é necessário que o mesmo seja inválido a partir do momento que algum dado é alterado. Sweeper são pequenos pedaços de código que removem do cache informações que já são antigas, ou devem ser expiradas programáticamente SQL caching Query cache é uma característica do Rails que permite colocar em cache todo resultset de querys solicitadas pelos clientes. Uma vez solicitada uma consulta que já possui seu resultado em cache o Rails utilizará esse resultado ao invés de consultar novamente no banco de dados. Este recurso está disponível apenas na execução de uma Action. 12

22 Conditional GET Support É uma característica da especificação do protocolo HTTP. Ele provê ao Web browser um mecanismo para informar ao Web browser que o recurso solicitado não foi alterado desde sua última solicitação. Então ele pode usar o já existente em seu cache local. 2.3 View e Templates O ActionView é a parte do framework responsável pelo tratamento do View, o que é visualizado, na abordagem do Rails para o MVC. O ActionView utiliza os objetos criados pelo controlador e gera a saída, geralmente como HTML ou XML. O ActionView está inserido com o ActionController em uma gem (pacote) Ruby chamada ActionPack. Juntamente com o ActiveRecord, o ActionView e o ActionController formam o núcleo do Rails. Embora seja possível gerar o conteúdo diretamente a partir do controlador, quase 100% dos aplicativos Rails utilizam o ActionView. O ActionView suporta muitas abordagens diferentes para a gerar a página por meio de um mecanismo de um modelo pré-definido. O ActionView é fornecido com três estilos de modelos. Os modelos Embedded Ruby (Erb) são armazenados em arquivos.rhtml e utilizam um misto de marcação e Erb para a construção do conteúdo dinâmico. Os modelos construtores são armazenados como arquivos.rxml e utilizam o Ruby puro para a construção da saída XML. Os modelos JavaScript são armazenados como arquivos.rjs e utilizam uma API Ruby para a construção da saída JavaScript. Do controlador é gerado a saída de uma action para o view, a camada de representação 13

23 na arquitetura MVC. O modelo.ehtml ou.rhtml geralmente tem o mesmo nome da ação do controlador. Ou seja, o app/view/bandas/list.ehtml representa o template da ação list do bandas_controller.rb Partials O partials é um arquivo especial que começa com _, como _itens.ehtml, que é utilizado como um componente reutilizável de modelo de template. Objetos representados igualmente em diferentes partes do sistema são fortes candidato a possuir um único modelo de template parcial Rer As possíveis chamadas à visão pelo controlador. Action: rer :action => 'some_action' rer :action => 'some_action', :layout => 'another_layout' Partial: rer :partial => 'subform' rer :partial => 'error', :status => 500 rer :partial => 'subform', :locals => { :variable } rer :partial => 'listitem', :collection Template: rer :template => 'weblog/show' 14

24 Arquivo: rer :file => '/path/to/some/file.rhtml' rer :file => '/path/to/some/filenotfound.rhtml', status => 404, :layout => true Texto: rer :text => "Hello World" rer :text => "This is an error", :status => 500 rer :text => "Let's use a layout", :layout => true rer :text => 'Specific layout', :layout => 'special' Template Inline: rer :inline => "<%= 'olá novamente' %>" Redefinindo o content-type: rer :action => "status", :content_type => "application/json rer :json => texto.to_json Além da eficiente integração dos controladores com a view, a elaboração dos.rhtml não diferem muito das aplicações como ASP e PHP, so utilizado Ruby puro. Porém há o foco na arquitetura RESTful, onde cada recurso tem uma representatividade bem definida, um Identificador Uniforme de Recurso, facilitando a manipulação das entidades do sistema de informação, como melhor apresentado no roteamento das URLs RHTML Modelo de template que gera links para todos os últimos álbuns. do album %> <li> 15

25 </li> <% %> <%= link_to album_name(album), album_path(album) %> Modelo de template que gera links para todas as bandas e seu número de álbuns. do banda %> <li> <%= link_to "#{banda.nome} (#{banda.albuns.count})", banda_path(banda) %> </li> <% %> Helpers Helpers são classes auxiliadoras para fornecer métodos para as views. Supondo a necessidade de um método de formatação para que apenas os dez primeiros caracteres de uma determinada string sejam exibidos, o método so10() poderia ser definido no helper. # esse texto é muito grande => esse texto... def so10(str) str[0..10]+"..." E utilizado num template: <h2>so10(@artigo.comentario)</h2> Em nossa pesquisa, desenvolvemos um helper capaz de buscar o primeiro resultado de 16

26 imagem do Google Imagens, dado um termo, como o nome de um álbum de banda, usando a API do Google. def getalbumimage(album) google_image = nil banda_nome = CGI.escape('"'+album.banda.nome+'"') album_nome = CGI.escape('"'+album.nome+'"') query = "#{banda_nome}+#{album_nome}" url = " BR&rsz=large&start=#{position=0}&v=1.0&q=#{query}" results = JSON.parse(open(url).read) image_array = results['responsedata']['results'] if image_array && image_array[0] image = image_array[0] google_image = {:thumbnail => image['tburl'], :original => image['unescapedurl'], :name => query.titleize} Assim, representamos álbuns não só pelo seu nome, mas exibindo suas capas como se fossem de nosso próprio domínio Roteamento de URLs Roteamento Rails é um dos conceitos mais inovadoras e importantes do Framework, que conecta as solicitações HTTP com os controllers da aplicação e ajuda a gerar URLs automáticas sem ter que ser codificadas como strings Conectando URLs com o código A engine de roteamento dentro do Rails é a parte do código que envia a solicitação para o 17

27 local apropriado na sua aplicação. Quando a aplicação Rails recebe uma solicitação HTTP de entrada, como GET /livros/17 Neste caso, a aplicação provavelmente executaria a action show dentro do controller livros, mostrando os detalhes do livro cujo ID é Gerando URLs do código O roteamento também funciona no caminho reverso. Em uma aplicação que contém o = Livro.find(17) <%= link_to "Livro Grande", livro_path(@livro) %> Então a engine de roteamento é a parte que traduz o link para a URL, assim como Usando o roteamento desta maneira, pode-se reduzir a fragilidade da aplicação se comparada com uma aplicação com URLs codificada, além de tornar o código fácil de ler e enter. Livro necessita ser declarado como um recurso mapeado para que este estilo de tradução por rotas nomeadas esteja disponível Routes.rb Há dois componentes para roteamento no Rails: a própria engine de roteamento, que é 18

28 fornecida como parte do Rails, e o arquivo config/routes.rb, que contém as rotas atuais que serão usadas pela aplicação. É nesse importante arquivo que todas as requisições ao sistema devem ser repassadas aos devidos controladores para serem devidamente respondidas. Rotas podem ser definidas a partir de expressões regulares. O arquivo routes.rb define todas as requisições que o sistema é capaz de responder Processando o arquivo O routes.rb não é nada mais que um grande bloco enviado para ActionController::Routing::Routes.draw. Dentro do bloco, pode-se ter comentários, mas é provável que a maior parte do conteúdo seja de linhas individuais de código cada linha so uma rota na aplicação. Existem cinco tipos principais de conteúdo que estarão neste arquivo: Rotas RESTful (RESTful Routes) Rotas Nomeadas (Named Routes) Rotas Aninhadas (Nested Routes) Rotas Regulares (Regular Routes) Rotas Padrão (Default Routes) O arquivo é processado de cima para baixo quando chega uma requisição. A requisição será despachada para a primeira rota que combine. Se nenhuma rota combina, então o Rails retorna o status HTTP 404 ao chamador. 19

29 Rotas RESTful Rotas RESTful tiram vantagem da orientação do REST embutido no Rails para empacotar muitas das informações de roteamento em uma simples declaração. Uma rota RESTful se parece como esta: map.resources :livros Rotas Nomeadas Rotas nomeadas nos dão links muito legíveis no seu código, bem como manipulação de solicitações recebidas. Exemplo típico de rota nomeada: map.login '/login', :controller => 'sessions', :action => 'new' Rotas Aninhadas Rotas aninhadas permitem-nos declarar que um recurso está contido dentro de outro recurso Rotas Regulares Em muitas aplicações, há roteamento não RESTful, que conecta explicitamente cada parte da URL a uma ação em particular. Por exemplo, map.connect 'pagina/:numero', :controller => 'paginas', :action => 'show' 20

Centro Universitário Metodista Benne1 Rio de Janeiro, Dezembro de 2009. Rafael Polo e Sabrina Arêas

Centro Universitário Metodista Benne1 Rio de Janeiro, Dezembro de 2009. Rafael Polo e Sabrina Arêas Centro Universitário Metodista Benne1 Rio de Janeiro, Dezembro de 2009 Rafael Polo e Sabrina Arêas Contexto 60 s - Primeiros sistemas de informação corporativos. 70 s Desenvolvimento e comercialização

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 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

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

FRWTC800 - Desenvolvimento Web com Ruby on Rails

FRWTC800 - Desenvolvimento Web com Ruby on Rails FRWTC800 - Desenvolvimento Web com Ruby on Rails SOBRE A FRAMEWORK A Framework (www.frwtc.com) atua diretamente com profissionais do segmento de tecnologia em busca de capacitação, atualização e certificação,

Leia mais

ANEXO 11. Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação.

ANEXO 11. Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação. ANEXO 11 O MATRIZ Para o desenvolvimento de sites, objeto deste edital, a empresa contratada obrigatoriamente utilizará o framework MATRIZ desenvolvido pela PROCERGS e disponibilizado no início do trabalho.

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

Desenvolvendo para WEB

Desenvolvendo para WEB Nível - Básico Desenvolvendo para WEB Por: Evandro Silva Neste nosso primeiro artigo vamos revisar alguns conceitos que envolvem a programação de aplicativos WEB. A ideia aqui é explicarmos a arquitetura

Leia mais

Sistema Gerador de Anúncios para Compra e Venda On-line. Leandro de Oliveira ol.leandro@gmail.com

Sistema Gerador de Anúncios para Compra e Venda On-line. Leandro de Oliveira ol.leandro@gmail.com Sistema Gerador de Anúncios para Compra e Venda On-line Leandro de Oliveira ol.leandro@gmail.com Roteiro da Apresentação Motivação Conceitos e Tecnologias Objetivos do trabalho Sistema SideCart Conclusões

Leia mais

Wireshark. Captura de Protocolos da camada de aplicação. Maicon de Vargas Pereira

Wireshark. Captura de Protocolos da camada de aplicação. Maicon de Vargas Pereira Wireshark Captura de Protocolos da camada de aplicação Maicon de Vargas Pereira Camada de Aplicação Introdução HTTP (Hypertext Transfer Protocol) 2 Introdução Camada de Aplicação Suporta os protocolos

Leia mais

BANCO DE DADOS CONTEÚDO INFORMÁTICA. Prof.: MARCIO HOLLWEG mhollweg@terra.com.br BANCO DE DADOS SGBD TABELA CONCEITOS BÁSICOS

BANCO DE DADOS CONTEÚDO INFORMÁTICA. Prof.: MARCIO HOLLWEG mhollweg@terra.com.br BANCO DE DADOS SGBD TABELA CONCEITOS BÁSICOS CONTEÚDO HARDWARE - 2 AULAS SISTEMA OPERACIONAL - 2 AULAS INFORMÁTICA Prof.: MARCIO HOLLWEG mhollweg@terra.com.br APLICATIVOS OFFICE - 3 AULAS INTERNET - 1 AULA REDE - 2 AULA SEGURANÇA - 1 AULA BANCO DE

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

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

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate Tiago Peres Souza 1, Jaime Willian Dias 1,2 ¹Universidade paranaense (Unipar) Paranavaí PR Brasil tiagop_ti@hotmail.com 2 Universidade

Leia mais

Tecnologias Web. Padrões de Projeto - Camada de Apresentação

Tecnologias Web. Padrões de Projeto - Camada de Apresentação Tecnologias Web Padrões de Projeto - Camada de Apresentação Cristiano Lehrer, M.Sc. Padrões da Camada de Apresentação (1/2) Intercepting Filter Viabiliza pré e pós processamento de requisições. Front Controller

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 10 Persistência de Dados

Leia mais

10/07/2013. Camadas. Principais Aplicações da Internet. Camada de Aplicação. World Wide Web. World Wide Web NOÇÕES DE REDE: CAMADA DE APLICAÇÃO

10/07/2013. Camadas. Principais Aplicações da Internet. Camada de Aplicação. World Wide Web. World Wide Web NOÇÕES DE REDE: CAMADA DE APLICAÇÃO 2 Camadas NOÇÕES DE REDE: CAMADA DE APLICAÇÃO Introdução à Microinformática Prof. João Paulo Lima Universidade Federal Rural de Pernambuco Departamento de Estatística e Informática Aplicação Transporte

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

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

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

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 Índice 1 - Objetivo 2 - Descrição do ambiente 2.1. Tecnologias utilizadas 2.2. Estrutura de pastas 2.3. Bibliotecas já incluídas 3 - Características gerais 4 - Criando

Leia mais

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB) RELATÓRIO DE ENTREGA DO PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB) PARA A ELABORAÇÃO DOS PLANOS MUNICIPAIS DE GESTÃO INTEGRADA DE RESÍDUOS SÓLIDOS PMGIRS PARA OS MUNICÍPIOS DE NOVO HORIZONTE, JUPIÁ, GALVÃO,

Leia mais

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural Resumo: Perguntas a fazer ao elaborar um projeto arquitetural Sobre entidades externas ao sistema Quais sistemas externos devem ser acessados? Como serão acessados? Há integração com o legado a ser feita?

Leia mais

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

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Basedos na Web Capítulo 12 Agenda Arquitetura Processos Comunicação Nomeação Sincronização Consistência e Replicação Introdução

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

Desenvolvendo Websites com PHP

Desenvolvendo Websites com PHP Desenvolvendo Websites com PHP 2ª Edição Juliano Niederauer Novatec Copyright 2009, 2011 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução

Leia mais

Prevayler. Perola. André Luís Sales de Moraes Juliana Keiko Yamaguchi Tatiana Yuka Takaki

Prevayler. Perola. André Luís Sales de Moraes Juliana Keiko Yamaguchi Tatiana Yuka Takaki Prevayler Perola André Luís Sales de Moraes Juliana Keiko Yamaguchi Tatiana Yuka Takaki Prevayler Prevayler é a implementação em Java do conceito de Prevalência. É um framework que prega uma JVM invulnerável

Leia mais

Aplicação Prática de Lua para Web

Aplicação Prática de Lua para Web Aplicação Prática de Lua para Web Aluno: Diego Malone Orientador: Sérgio Lifschitz Introdução A linguagem Lua vem sendo desenvolvida desde 1993 por pesquisadores do Departamento de Informática da PUC-Rio

Leia mais

www.neteye.com.br NetEye Guia de Instalação

www.neteye.com.br NetEye Guia de Instalação www.neteye.com.br NetEye Guia de Instalação Índice 1. Introdução... 3 2. Funcionamento básico dos componentes do NetEye...... 3 3. Requisitos mínimos para a instalação dos componentes do NetEye... 4 4.

Leia mais

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração Desenvolvimento em PHP usando Frameworks Elton Luís Minetto Agenda Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração Ambiente Web É o ambiente formado

Leia mais

Introdução à Tecnologia Web. Tipos de Sites. Profª MSc. Elizabete Munzlinger www.elizabete.com.br

Introdução à Tecnologia Web. Tipos de Sites. Profª MSc. Elizabete Munzlinger www.elizabete.com.br IntroduçãoàTecnologiaWeb TiposdeSites ProfªMSc.ElizabeteMunzlinger www.elizabete.com.br ProfªMSc.ElizabeteMunzlinger www.elizabete.com.br TiposdeSites Índice 1 Sites... 2 2 Tipos de Sites... 2 a) Site

Leia mais

Manual do Painel Administrativo

Manual do Painel Administrativo Manual do Painel Administrativo versão 1.0 Autores César A Miggiolaro Marcos J Lazarin Índice Índice... 2 Figuras... 3 Inicio... 5 Funcionalidades... 7 Analytics... 9 Cidades... 9 Conteúdo... 10 Referência...

Leia mais

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro Desenvolvimento em PHP usando Frameworks Elton Luís Minetto Agenda Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro Ambiente Web É o ambiente

Leia mais

Sumário. Parte I Introdução 21. 1 Introdução 15 1.1 O Rails é ágil... 17 1.2 Explorando o conteúdo... 18 1.3 Agradecimentos... 19

Sumário. Parte I Introdução 21. 1 Introdução 15 1.1 O Rails é ágil... 17 1.2 Explorando o conteúdo... 18 1.3 Agradecimentos... 19 Sumário 1 Introdução 15 1.1 O Rails é ágil.......................................................... 17 1.2 Explorando o conteúdo................................................... 18 1.3 Agradecimentos........................................................

Leia mais

Introdução a Banco de Dados

Introdução a Banco de Dados Introdução a Banco de Dados Ricardo Henrique Tassi - Departamento de Replicação Índice 1- Introdução... 03 2- Quais são os bancos de dados mais conhecidos hoje em dia...04 3- Quais são os tipos de banco...05

Leia mais

Luiz Arão Araújo Carvalho Bacharel em Ciência da Computação Desenvolvedor RedeSat-TO maximusmano@gmail.com http://www.maxonrails.wordpress.

Luiz Arão Araújo Carvalho Bacharel em Ciência da Computação Desenvolvedor RedeSat-TO maximusmano@gmail.com http://www.maxonrails.wordpress. Parte II Luiz Arão Araújo Carvalho Bacharel em Ciência da Computação Desenvolvedor RedeSat-TO maximusmano@gmail.com http://www.maxonrails.wordpress.com Rails - Instalação Windows gem install rails Plataformas

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

www.f2b.com.br 18/04/2006 Micropagamento F2b Web Services Web rev 00

www.f2b.com.br 18/04/2006 Micropagamento F2b Web Services Web rev 00 www.f2b.com.br 18/04/2006 Micropagamento F2b Web Services Web rev 00 Controle de Revisões Micropagamento F2b Web Services/Web 18/04/2006 Revisão Data Descrição 00 17/04/2006 Emissão inicial. www.f2b.com.br

Leia mais

Programando em PHP. Conceitos Básicos

Programando em PHP. Conceitos Básicos Programando em PHP www.guilhermepontes.eti.br lgapontes@gmail.com Conceitos Básicos Todo o escopo deste estudo estará voltado para a criação de sites com o uso dos diversos recursos de programação web

Leia mais

II Semana de Tecnologia da Informação. Rails Framework

II Semana de Tecnologia da Informação. Rails Framework II Semana de Tecnologia da Informação Rails Framework Rails Instalação Ruby versão 1.8.7 Linux: ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p174.tar.gz ou apt-get install ruby (Debian/Ubuntu) Windows:

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

Construtor de sites SoftPixel GUIA RÁPIDO - 1 -

Construtor de sites SoftPixel GUIA RÁPIDO - 1 - GUIA RÁPIDO - 1 - Sumário Introdução...3 Por que utilizar o Construtor de Sites?...3 Vantagens do Construtor de Sites...3 Conceitos básicos...3 Configuração básica do site...5 Definindo o layout/template

Leia mais

O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE

O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE Renan Leme Nazário, Ricardo Rufino Universidade Paranaense (Unipar) Paranavaí PR - Brasil renazariorln@gmail.com, ricardo@unipar.br Resumo. Este artigo

Leia mais

Sumário. Apresentação O que é o Centro de Gerenciamento de Serviços (CGS) NTI? Terminologia Status do seu chamado Utilização do Portal Web

Sumário. Apresentação O que é o Centro de Gerenciamento de Serviços (CGS) NTI? Terminologia Status do seu chamado Utilização do Portal Web Sumário Apresentação O que é o Centro de Gerenciamento de Serviços (CGS) NTI? Terminologia Status do seu chamado Utilização do Portal Web Fazendo Login no Sistema Tela inicial do Portal WEB Criando um

Leia mais

Curso de Aprendizado Industrial Desenvolvedor WEB

Curso de Aprendizado Industrial Desenvolvedor WEB Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos II Professor: Cheli dos S. Mendes da Costa Modelo Cliente- Servidor Modelo de Aplicação Cliente-servidor Os

Leia mais

INFORMÁTICA FUNDAMENTOS DE INTERNET. Prof. Marcondes Ribeiro Lima

INFORMÁTICA FUNDAMENTOS DE INTERNET. Prof. Marcondes Ribeiro Lima INFORMÁTICA FUNDAMENTOS DE INTERNET Prof. Marcondes Ribeiro Lima Fundamentos de Internet O que é internet? Nome dado a rede mundial de computadores, na verdade a reunião de milhares de redes conectadas

Leia mais

Camada de Aplicação. DNS Domain Name System. Redes de Computadores Prof. Leandro C. Pykosz

Camada de Aplicação. DNS Domain Name System. Redes de Computadores Prof. Leandro C. Pykosz Camada de Aplicação Redes de Computadores Prof. Leandro C. Pykosz Camada de Aplicação A camada de aplicação fornece os serviços "reais" de rede para os usuários. Os níveis abaixo da aplicação fornecem

Leia mais

Manual do usuário - Service Desk SDM - COPASA. Service Desk

Manual do usuário - Service Desk SDM - COPASA. Service Desk Manual do usuário - Service Desk SDM - COPASA Service Desk Sumário Apresentação O que é o Service Desk? Terminologia Status do seu chamado Utilização do Portal Web Fazendo Login no Sistema Tela inicial

Leia mais

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena Tópicos Motivação e Objetivos LP e SOA Processo ADESE

Leia mais

O Framework Rails. Diego Rubin http://diegorubin.com @diegorubin

O Framework Rails. Diego Rubin http://diegorubin.com @diegorubin O Framework Rails Diego Rubin http://diegorubin.com @diegorubin Introdução David Heinemeier Hansson (DHH) 2004 MVC Restful Meta-Framework Convention over configuration Rails 3.1 Ferramentas Rake Bundler

Leia mais

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional Introdução à Linguagem JAVA Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação Laboratório de Visão Computacional Vantagens do Java Independência de plataforma; Sintaxe semelhante às linguagens

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

MANUAL DO ADMINISTRADOR LOCAL. Entidade Municipal

MANUAL DO ADMINISTRADOR LOCAL. Entidade Municipal MANUAL DO ADMINISTRADOR LOCAL Entidade Municipal Abril / 2011 ÍNDICE Objetivos do Sistema de Registro de Integrado - REGIN... 3 Principais Módulos do Sistema... 4 Módulo Controle de Acesso... 5 Módulo

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

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE Aluno: Roberto Reinert Orientador: Everaldo A. Grahl Roteiro de apresentação Introdução Objetivos Fundamentação Teórica Workflow Processo

Leia mais

DWEB. Design para Web. Fundamentos Web I. Curso Superior de Tecnologia em Design Gráfico

DWEB. Design para Web. Fundamentos Web I. Curso Superior de Tecnologia em Design Gráfico DWEB Design para Web Curso Superior de Tecnologia em Design Gráfico Fundamentos Web I E não vos conformeis com este século, mas transformai-vos pela renovação da vossa mente, para que experimenteis qual

Leia mais

Produto: Webscan Relatório II Programas desenvolvidos, testados e documentados

Produto: Webscan Relatório II Programas desenvolvidos, testados e documentados Produto: Webscan Relatório II Programas desenvolvidos, testados e documentados Sérgio Oliveira Campos Contrato N : 2008/000514 Sumário 1 Introdução 1 2 Bibliotecas Utilizadas 2 2.1 Reconhecimento de Texto

Leia mais

Criando Frameworks Inteligentes com PHP. Uma abordagem prática: vantagens, aplicações e procedimentos.

Criando Frameworks Inteligentes com PHP. Uma abordagem prática: vantagens, aplicações e procedimentos. Criando Frameworks Inteligentes com PHP Uma abordagem prática: vantagens, aplicações e procedimentos. Apresentação Equipes ao redor do mundo utilizam diferentes padrões de projeto, de acordo com suas necessidades

Leia mais

Documento de Análise e Projeto VideoSystem

Documento de Análise e Projeto VideoSystem Documento de Análise e Projeto VideoSystem Versão Data Versão Descrição Autor 20/10/2009 1.0 21/10/2009 1.0 05/11/2009 1.1 Definição inicial do documento de análise e projeto Revisão do documento

Leia mais

Integração de sistemas utilizando Web Services do tipo REST

Integração de sistemas utilizando Web Services do tipo REST Integração de sistemas utilizando Web Services do tipo REST Jhonatan Wilson Aparecido Garbo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil jhowgarbo@gmail.com jaime@unipar.br

Leia mais

2 a Lista de Exercícios

2 a Lista de Exercícios Projeto de Sistemas 2011/2 2 a Lista de Exercícios (1) Um importante aspecto do projeto da camada de Lógica de Negócio (LN) diz respeito à organização das classes e distribuição de responsabilidades entre

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

Configurando o IIS no Server 2003

Configurando o IIS no Server 2003 2003 Ser ver Enterprise Objetivo Ao término, você será capaz de: 1. Instalar e configurar um site usando o IIS 6.0 Configurando o IIS no Server 2003 Instalando e configurando o IIS 6.0 O IIS 6 é o aplicativo

Leia mais

Projeto Arquitetural do IEmbedded

Projeto Arquitetural do IEmbedded Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática Departamento de Sistemas e Computação Disciplina: Projeto I Professora: Francilene Garcia Equipe: Carolina Nogueira de

Leia mais

Conceitos de Ajax Exemplos de uso do Ajax no braço, muitos exemplos, muito código (HTML, CSS, JavaScript, PHP, XML, JSON)

Conceitos de Ajax Exemplos de uso do Ajax no braço, muitos exemplos, muito código (HTML, CSS, JavaScript, PHP, XML, JSON) Márcio Koch 1 Currículo Formado na FURB em Ciência da Computação Pós graduado em Tecnologias para o desenvolvimento de aplicações web Mestrando em Computação Gráfica na UDESC Arquiteto de software na Senior

Leia mais

Universidade da Beira Interior

Universidade da Beira Interior Universidade da Beira Interior Relatório Apresentação Java Server Pages Adolfo Peixinho nº4067 Nuno Reis nº 3955 Índice O que é uma aplicação Web?... 3 Tecnologia Java EE... 4 Ciclo de Vida de uma Aplicação

Leia mais

SISTEMA DE BANCO DE IMAGENS MANUAL DE USO

SISTEMA DE BANCO DE IMAGENS MANUAL DE USO SISTEMA DE BANCO DE IMAGENS MANUAL DE USO Versão: BETA Última atualização: 24/06/2012 Índice O sistema de banco de imagens 03 Pesquisa de fotos 04 Pautas e eventos 08 Cadastro de fotos 09 Edição e indexação

Leia mais

Introdução ao PHP. Prof. Késsia Marchi

Introdução ao PHP. Prof. Késsia Marchi Introdução ao PHP Prof. Késsia Marchi PHP Originalmente PHP era um assíncrono para Personal Home Page. De acordo com convenções para atribuições de nomes recursivas do GNU foi alterado para PHP Hypertext

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

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br SCE-557 Técnicas de Programação para WEB Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br 1 Cronograma Fundamentos sobre servidores e clientes Linguagens Server e Client side

Leia mais

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO Intranets FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO As intranets são redes internas às organizações que usam as tecnologias utilizadas na rede mundial

Leia mais

WebMail --------------------------------------------------------------------------------------------------------------- Manual do cliente

WebMail --------------------------------------------------------------------------------------------------------------- Manual do cliente WebMail --------------------------------------------------------------------------------------------------------------- Manual do cliente www.plugin.com.br 1 ÍNDICE Prefácio...3 Sobre Este Manual... 3

Leia mais

WebApps em Java com uso de Frameworks

WebApps em Java com uso de Frameworks WebApps em Java com uso de Frameworks Fred Lopes Índice O que são frameworks? Arquitetura em camadas Arquitetura de sistemas WEB (WebApps) Listagem resumida de frameworks Java Hibernate O que são frameworks?

Leia mais

5 Detalhes da Implementação

5 Detalhes da Implementação Detalhes da Implementação 101 5 Detalhes da Implementação Neste capítulo descreveremos detalhes da implementação do Explorator que foi desenvolvido usando o paradigma MVC 45 e o paradigma de CoC 46 (Convention

Leia mais

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

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

Leia mais

INTRODUÇÃO: 1 - Conectando na sua conta

INTRODUÇÃO: 1 - Conectando na sua conta INTRODUÇÃO: Com certeza a reação da maioria dos que lerem esse mini manual e utilizarem o servidor vão pensar: "mas porque eu tenho que usar um console se em casa eu tenho uma interface gráfica bonito

Leia mais

Começando com Ruby on Rails @gibsongabriel

Começando com Ruby on Rails @gibsongabriel Começando com Ruby on Rails @gibsongabriel Yukiriho 'Matz' Matsumoto http://ruby-lang.org/pt/ Ruby é uma linguagem de programação interpretada, com tipagem forte e dinâmica, que tem como foco a simplicidade

Leia mais

Manual de utilização do sistema OTRS (Atendimento) Cliente Externo

Manual de utilização do sistema OTRS (Atendimento) Cliente Externo Manual de utilização do sistema OTRS (Atendimento) Cliente Externo 1 LISTA DE ILUSTRAÇÕES FIGURA 1 - TELA DE LOGIN... 5 FIGURA 2 - TELA INICIAL... 6 FIGURA 3 PREFERÊNCIAS DO USUÁRIO... 6 FIGURA 4 NOVO

Leia mais

Capítulo 04: Persistência com SQLite

Capítulo 04: Persistência com SQLite Capítulo 04: Persistência com SQLite Instrutor Programador desde 2000 Aluno de doutorado Mestre em informática pelo ICOMP/UFAM Especialista em aplicações WEB FUCAPI marcio.palheta@gmail.com sites.google.com/site/marcio

Leia mais

Web Design Aula 11: Site na Web

Web Design Aula 11: Site na Web Web Design Aula 11: Site na Web Professora: Priscilla Suene priscilla.silverio@ifrn.edu.br Motivação Criar o site em HTML é interessante Do que adianta se até agora só eu posso vê-lo? Hora de publicar

Leia mais

Programação para a Web - I. José Humberto da Silva Soares

Programação para a Web - I. José Humberto da Silva Soares Programação para a Web - I José Humberto da Silva Soares Fundamentos de Internet Rede Mundial de Computadores; Fornece serviços, arquivos e informações; Os computadores que têm os recursos são chamados

Leia mais

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1 DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1 1 Sumário 1 - Instalação Normal do Despachante Express... 3 2 - Instalação do Despachante Express em Rede... 5 3 - Registrando o Despachante Express...

Leia mais

Manual Administrador - Mídia System

Manual Administrador - Mídia System Manual Administrador - Mídia System Logo após cadastrarmos sua Empresa em nosso sistema, será enviado um e-mail confirmando as informações de acesso do Administrador do sistema. Obs: Caso não tenha recebido

Leia mais

Rotina de Discovery e Inventário

Rotina de Discovery e Inventário 16/08/2013 Rotina de Discovery e Inventário Fornece orientações necessárias para testar a rotina de Discovery e Inventário. Versão 1.0 01/12/2014 Visão Resumida Data Criação 01/12/2014 Versão Documento

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

www.victorpinheiro.jimdo.com www.victorpinheiro.jimdo.com

www.victorpinheiro.jimdo.com www.victorpinheiro.jimdo.com SERVIÇOS DE REDES DE COMPUTADORES Prof. Victor Guimarães Pinheiro/victor.tecnologo@gmail.com www.victorpinheiro.jimdo.com www.victorpinheiro.jimdo.com Modelo TCP/IP É o protocolo mais usado da atualidade

Leia mais

CAPÍTULO 2. Este capítulo tratará :

CAPÍTULO 2. Este capítulo tratará : 1ª PARTE CAPÍTULO 2 Este capítulo tratará : 1. O que é necessário para se criar páginas para a Web. 2. A diferença entre páginas Web, Home Page e apresentação Web 3. Navegadores 4. O que é site, Host,

Leia mais

Anexo I Formulário para Proposta

Anexo I Formulário para Proposta PLATAFORMA CGI.br Solicitação de Propostas SP Anexo I Formulário para Proposta Data: 05/07/2013 Versão: 1.1 Plataforma CGI.br Solicitação de Propostas - SP Anexo I Formulário para Proposta 1. Estrutura

Leia mais

Sistema Gerenciador de Conteúdo OpenCms: um caso de sucesso no CEFET-MG

Sistema Gerenciador de Conteúdo OpenCms: um caso de sucesso no CEFET-MG Sistema Gerenciador de Conteúdo OpenCms: um caso de sucesso no CEFET-MG Marco T. A. Rodrigues*, Paulo E. M. de Almeida* *Departamento de Recursos em Informática Centro Federal de Educação Tecnológica de

Leia mais

Projeto de Arquitetura

Projeto de Arquitetura Introdução Projeto de Arquitetura (Cap 11 - Sommerville) UNIVERSIDADE FEDERAL DE ALAGOAS Curso de Ciência da Computação Engenharia de Software I Prof. Rômulo Nunes de Oliveira Até agora, estudamos: Os

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

Aspectos técnicos do desenvolvimento baseado em componentes

Aspectos técnicos do desenvolvimento baseado em componentes Aspectos técnicos do desenvolvimento baseado em componentes Um novo processo de desenvolvimento O uso de componentes traz mudanças no processo de desenvolvimento Além de desenvolver um produto, queremos

Leia mais

Rede de Computadores

Rede de Computadores Escola de Ciências e Tecnologia UFRN Rede de Computadores Prof. Aquiles Burlamaqui Nélio Cacho Luiz Eduardo Eduardo Aranha ECT1103 INFORMÁTICA FUNDAMENTAL Manter o telefone celular sempre desligado/silencioso

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

Alterações Easycaptive 2.0.10

Alterações Easycaptive 2.0.10 Alterações Easycaptive 2.0.10 data: 10/04/2010 Este documento tem por objetivo demonstrar as alterações feitas nos scripts que compõem o addon easycaptive do sistema BrazilFW Firewall and Router. Todo

Leia mais

1. Introdução. 2. Funcionamento básico dos componentes do Neteye

1. Introdução. 2. Funcionamento básico dos componentes do Neteye 1. Introdução Esse guia foi criado com o propósito de ajudar na instalação do Neteye. Para ajuda na utilização do Software, solicitamos que consulte os manuais da Console [http://www.neteye.com.br/help/doku.php?id=ajuda]

Leia mais

Procedimentos para Reinstalação do Sisloc

Procedimentos para Reinstalação do Sisloc Procedimentos para Reinstalação do Sisloc Sumário: 1. Informações Gerais... 3 2. Criação de backups importantes... 3 3. Reinstalação do Sisloc... 4 Passo a passo... 4 4. Instalação da base de dados Sisloc...

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

USO GERAL DOS PROTOCOLOS SMTP, FTP, TCP, UDP E IP

USO GERAL DOS PROTOCOLOS SMTP, FTP, TCP, UDP E IP USO GERAL DOS PROTOCOLOS SMTP, FTP, TCP, UDP E IP SMTP "Protocolo de transferência de correio simples (ou em inglês Simple Mail Transfer Protocol ) é o protocolo padrão para envio de e- mails através da

Leia mais