Java. no Google App Engine. Escreva aplicações Java para o serviço de Cloud Computing da Google
|
|
- Silvana Lima Stachinski
- 8 Há anos
- Visualizações:
Transcrição
1 Pedro Mariano é técnologo em Análise e Desenvolvimento de Software pela FIAP, possui a certificação SCJP 6. Trabalha como consultor e desenvolvedor pela Caelum com linguagens como Ruby e Java. Pedro Matiello (pedro.matiello@caelum.com.br): trabalha como consultor e desenvolvedor pela Caelum e é aluno do curso de Bacharelado em Ciência da Computação no IME-USP. Java Escreva aplicações Java para o serviço de Cloud Computing da Google no Google App Engine Atualmente, o Cloud Computing é um dos assuntos mais comentados na área de TI. Assunto este que já é realidade no mercado: diversas empresas, como Amazon, RackSpace e Microsoft, já possuem soluções de infraestrutura em cloud. A Google também entrou neste mercado e já oferece um ambiente de Cloud Computing no qual os desenvolvedores podem colocar suas aplicações: o Google App Engine. Este artigo aborda exemplos práticos de uma aplicação Java com VRaptor 3 construída para o AppEngine. Cloud Computing normalmente traduzido para o português como Computação nas Nuvens está em grande ascendência. Esse crescimento é impulsionado pela necessidade de se ter sistemas escaláveis, com alta disponibilidade e altamente performáticos. Mas um fator que tem sido frequentemente destacado como motivação para adoção de soluções de cloud é a forte redução no custo de manutenção da parte de infraestrutura das aplicações. Como as tarefas de infraestrutura são realizadas pelo provedor do serviço, a equipe de desenvolvimento pode se focar apenas em criar a aplicação que, idealmente, irá escalar automaticamente, seguindo a demanda. Na maioria das vezes, a tarifação destes serviços é feita de forma a cobrar pela quantidade de recursos consumidos, tais como espaço de armazenamento e tempo de processamento. o Google AppEngine, com exemplos de uso dos recursos providos pelo serviço. 30
2 Google App Engine A Google também decidiu oferecer um serviço de Cloud Computing, denominado Google App Engine (GAE). Mesmo estando em fase beta, diversas empresas, como a BestBuy com o seu produto GiftTag, estão utilizando o GAE. Diferentemente de muitos de seus concorrentes, a Google oferece um plano inicial gratuito, que é suficiente para aplicações e sites de pequeno e talvez até de médio porte (permite-se, por exemplo, até requisições gratuitas ao banco, por dia). Aplicações consumindo recursos além dos estipulados neste plano são tarifadas de forma proporcional ao que foi consumido além dos limites da cota gratuita. Atualmente, o GAE suporta duas linguagens de programação: Java e Python, e ambas com algumas restrições quanto ao que se pode fazer no ambiente. Em grande parte dos casos, o próprio GAE oferece uma alternativa através de uma API proprietária, que é bastante concisa e fácil de trabalhar, mas que prende a aplicação ao serviço (o chamado vendor lock-in). App Engine além do Python e Java Apesar de o GAE oficialmente oferecer suporte apenas para Java e Python, é possível também criar aplicações Ruby, Scala e JavaScript. Com Ruby, é necessário que você utilize o JRuby e com JavaScript o Rhyno. De uma forma geral, o GAE oferece Devido à grande popularidade do framework Rails, correm rumores de que a Google estaria interessada em oferecer suporte nativo para a linguagem Ruby. Outro recurso muito útil do GAE é o sistema de versionamento das aplicações: é possível ter versões diferentes de sua aplicação instaladas e rodando concorrentemente. Desta forma, podemos testar novas versões do site no ambiente de produção sem comprometê-lo, e só fazer a troca quando estiver tudo como esperamos. Trata-se de uma estratégia de deploy contínuo [2] como a apresentada por Martin Fowler [3]. GAE e o VRaptor 3 Por causa da grande quantidade de componentes restritos, muitos fra- Ele oferece um download específico pronto para todos os desenvolvedores interessados em utilizar o framework no cloud da Google. Este é feito para ser usado como ponto de partida de novos projetos. Para começar, instale o plugin do App Engine [4] no Eclipse, baixe e importe o projeto vraptor-blank-project-gae, ajuste o classpath de acordo com a versão do SDK do GAE (que acompanha o plugin) e o nome da aplicação no appengine-web.xml. Feito isso, podemos começar a fazer deploy a qualquer momento clicando com o botão direito sobre o projeto no Eclipse e escolhendo Deploy to App Engine dentro do submenu Google. possui um método que disponibiliza a mensagem "olá mundo" para a view. Para Saber Mais Na edição 38 da Revista MundoJ você pode conferir um tuto- Esta API exclusiva do App Engine oferece acesso aos serviços do GAE disponíveis para realizar tarefas comuns e nem tão comuns, tais como envio de s, persistência de dados, execução assíncrona (tasks) e agendada (cron). Neste artigo são abordados alguns desses serviços, dando detalhes de seu uso e algumas dicas. Nossa experiência com o GAE Em 2009, completamos a migração do nosso site [1] para o App que oferece uma configuração específica para rodar no GAE, feita para contornar as restrições do ambiente de execução do serviço. Após todos estes meses, podemos dizer que a experiência é bastante satisfatória. Dentre as vantagens do serviço, destacamos sua escalabilidade, que nos permitiu aguentar picos de acesso ao site da Caelum sem comprometer o desempenho e a disponibilidade do site. A interface administrativa do App Engine também se mostrou muito conveniente, permitindo analisar os logs e relatórios de desempenho do site de forma bastante public class IndexController / ) public String index() { return ola mundo ;... <body> ${string </body>... Persistência O App Engine oferece como mecanismo de persistência um banco de dados (Datastore) orientado a documentos que tem como base o Big- Table. Trata-se de um banco proprietário e desenvolvido pela própria 31
3 32 Google, com foco em alto desempenho e escalabilidade. O Google App Engine oferece três formas diferentes de acessar o Datastore: uma API de baixo nível (não muito utilizada por ser complexa), o JDO (Java Data Objects) e a JPA (Java Persistence API). Estas duas últimas são APIs mais simples e familiares aos desenvolvedores Java, mas também não foram projetadas para o Datastore e suas características incomuns, mas sim para modelos mais tradicionais de persistência. Além disso, as entidades, sempre que criadas ou modificadas, precisam passar por um processo de pós-compilação um tanto inconveniente. Para contornar as dificuldades de usar o JDO ou a JPA no GAE, novos projetos open source surgiram com APIs alternativas de persistência levando em conta peculiaridades do Datastore. Dentre elas, destacamse o Twig, o SimpleDS e o Objectify. Nós optamos pelo Objectify por sua simplicidade e boa documentação. Esta API se define como uma camada fina sobre o Datastore, respeitando suas características estruturais, mas de uma forma mais usável pelos programadores.para começar, definimos uma entidade. No Objectify, as entidades são POJOs acrescidos de um identificador que deve ser um Long ou uma String anotado com. A Listagem 3 apresenta um exemplo simples de entidade. A Listagem 4 apresenta um DAO para esta classe, que a registra no Objectify e realiza operações de escrita e leitura. Listagem 3. Entidade Carro. private boolean licenciado; Listagem 4. DAO para entidade Carro como class CarroDAO { ObjectifyService datastore; static { ObjectifyService.register(Carro.class); public CarroDAO() { datastore = ObjectifyService.begin(); public void salva(carro carro) { datastore.put(carro); public Carro busca(long id) { return datastore.get(carro.class, id); public void deleta(carro carro) { datastore.delete(carro); Além destas três operações (get, put, delete), uma quarta é suportada pelo Objectify: query. Através de uma interface fluente, pode-se realizar consultas ao datastore em busca de entidades que satisfaçam determinados critérios. A Listagem 5 apresenta um método que devolve todas as entidades do tipo Carro armazenadas no banco da aplicação. Listagem 5. Método para buscar todos os public List<Carro> buscatodos() { return datastore.query(carro.class).list(); A Listagem 6 apresenta um método que devolve todos os carros de uma determinada cor, e a Listagem 7 apresenta um método que busca um Carro através de sua placa. Listagem 6. Método para buscar todos os carros de uma cor. public List<Carro> buscadacor(string cor){ return datastore.query(carro.class).filter( cor, cor).list(); Listagem 7. Método para buscar todos os carros de uma cor. public Carro buscacomplaca(string placa){ return datastore.query(carro.class).filter( placa, placa).get(); O Objectify ainda disponibiliza outros métodos para refinar as mais complexa na Listagem 8, que utiliza métodos combinados para gerar uma consulta mais refinada. Listagem 8. Método que busca os dois últimos carros cadastrados de determinada cor.. public List<Carro> ultimosdoiscarroscadastradosdacor(string cor){ //o método order por padrão é crescente caso você queira que seja // decrescente utilize //o carácter - na frente do atributo datastore.query(carro.class).filter( cor, cor).order( -id ).limit(2).list(); O Objectify também possibilita que você crie relacionamentos dos tipos One-to-Many e Many-to-One. Na Listagem 9 pode-se ver um exemplo no qual mapeamos a classe Carro com a classe Motorista, dizendo que um Carro possui um motorista.
4 Listagem 9. Entidade Carro com o atributo Motorista com o relacionamento Many-to-One. private String licenciado; Key<Motorista> motorista; Perceba que o atributo motorista é do tipo Key. Isso é necessário, pois o objectify não faz relacionamentos managed como a JPA ou o JDO, portanto, ele armazena os dados do relacionamento nessa classe genérica chamada Key. one-to-many em que um carro possui um ou mais motoristas. Perceba que a única diferença é que o atributo motoristas é um array de Keys. Listagem 10. Entidade Carro com o atributo Motoristas definindo um relacionamento One-To-Many. private String licenciado; Key<Motorista>[] motoristas; Quando estiver utilizando o Datastore tenha em mente que, por ele não ser um banco de dados relacional, possui algumas limitações. Relacionamentos many-to-many, consultas polimórficas e com agregações (sum, avg, max etc.) não são suportadas. Estas características são comuns em bancos não-relacionais, como o BigTable, que trocam parte das funcionalidades para obter maior desempenho e escalabilidade. Frameworks como o Twig oferecem uma forma mais natural de fazer relacionamentos sem a necessidade de se utilizar uma classe específica, que no caso do objectify é a Key. Porém, o Twig ainda possui alguns bugs e por isso não o escolhemos. Além disso, é bastante comum, e até indicado, que se tenham resultados do BigTable. Para isso, podemos usar o serviço de memcache do GAE. Além de aumentar a performance, é também uma questão de disponibilidade, já que o BigTable pode apresentar downtimes. Tasks Outro recurso importante do GAE é a possibilidade de criar tarefas (Tasks) e inseri-las em uma fila (criada por você ou então o padrão que o Google oferece). Esta fila é gerenciada pelo próprio App Engine, que irá detectar novas inserções e executá-las sempre que houver recursos disponíveis para tal. Trata-se de um mecanismo de execução assíncrona: embora uma carga de trabalho seja iniciada por uma requisição, sua execução ocorre fora desta requisição. A motivação natural para o uso deste mecanismo é a execução de tarefas que não exigem uma resposta imediata para o cliente ou que podem consumir excessivamente os recursos do sistema se realizadas de forma desordenada. Uma tarefa, aqui, é entendida como um método que realiza algum trabalho acrescido dos dados relevantes para sua execução. O método é endereçado por uma URL e os dados são passados como parâmetros de requisição. Quando uma tarefa é selecionada para a execução, o GAE realiza uma requisição HTTP para a URL especificada com os parâmetros dados. tor 3 com um método para verificar o licenciamento de uma placa. Esse método será chamado de forma assíncrona pela tasks API, como demonstrado no exemplo da Listagem 12. No nosso cenário vamos as- do governo que, ocasionalmente, pode não estar acessível. Caso o sistema esteja inacessível, a Tasks API irá tentar de novo até que o processo seja feito com sucesso. Esse exemplo ilustra uma das vantagens de se utilizar a API de Tasks, garantindo que seu processo será executado. ção é verificar se a placa passada está public class CarroController /verificaplaca/ ) public void verificaplaca(string placa) { boolean estalicenciado = new VerificadorDePlaca().verificaPlaca(placa); //atualiza localmente o status do carro. Carro carro = carrodao.buscacomplaca(placa); carro.setlicenciado(estalicenciado); carrodao.salva(carro) Listagem 12. Colocando na fila de tarefas a execução da verificação de determinada placa. Queue queue = QueueFactory.getDefaultQueue(); queue.add(url( /verificaplaca ).param( placa, ABC7887 )); A criação de tarefas corresponde, na prática, à inserção de URIs numa fila. A execução de uma tarefa, portanto, corresponde a realizar uma requisição para a URI associada. Esta requisição, por sua vez, deve ter como resposta um código de retorno HTTP 200 (OK) em caso de sucesso, e qualquer outro valor em caso de falha. Caso a resposta indique a ocorrência de um erro no processamento, a tarefa será reinserida na fila para ser processada novamente. É possível também limitar o número de tentativas através da criação de outra fila e da adição do header HTTP X-AppEngine- TaskRetryCount com o número máximo de tentativas. 33
5 Além da execução assíncrona e da persistência, o App Engine oferece outros serviços que podem ser úteis ou mesmo essenciais para algumas aplicações web. mente, usado para acelerar o acesso a objetos do Datastore. outros hosts na web. namento etc.). Ao utilizar qualquer serviço do GAE, informe-se a respeito do limite para uso gratuito do mesmo e das taxas aplicáveis para uso além deste limite. Além disso, alguns serviços estão em fase beta e o Google não garante total disponibilidade e/ou estabilidade do mesmo. Limitações e cuidados Para garantir a segurança e a escalabilidade do serviço, o App Engine impõe algumas restrições sobre as aplicações nele hospedadas. Para começar, dentre as classes do JRE, apenas um subconjunto é suportado [6]. Também não é permitida a criação de threads, arquivos ou sockets, mas estas restrições podem ser, em muitos casos, contornadas pela API de Tasks, pelo Datastore, e pelas APIs de e HTTP específicas do GAE. As views e JSP exigem um cuidado a mais: o suporte a Expression Language vem desativado por padrão e não pode ser habilitado globalmente. Neste caso, é preciso adicionar a linha abaixo em todo arquivo JSP que faz uso de EL: ferramentas e serviços que facilitam a vida do desenvolvedor e aumentam a produtividade da equipe. As limitações, contudo, são uma realidade, e adaptações tanto no modo de programar quanto na forma de estruturar sua aplicação deverão ser consideradas ao se desenvolver aplicações para o GAE. A situação em vista é, claramente, uma troca: disponibilidade, confiabilidade e segurança são obtidas a custo de alguma flexibilidade. Outras plataformas, como serviço (PaaS), estão aparecendo para a plataforma Java, e algumas com menos restrições: Force [7], que estará disponível em alguns meses. A Caelum, como anteriormente mencionado, utiliza o GAE em seu site. A experiência tem se mostrado cada vez mais compensadora e satisfatória. A curva inicial de aprendizado e de adaptação pode ser transposta sem maiores problemas e o investimento inicial é pago rapidamente com menores custos de administração do servidor e pela proteção contra picos de acesso. A Google melhora o App Engine constantemente e, mensalmente, novas versões do kit de desenvolvimento são lançadas. Se você é um programador interessado em criar aplicações escaláveis gastando pouco ou nada com infraestrutura, realmente vale a pena App Engine for Business Recentemente, a Google anunciou uma nova versão do GAE com o foco em aplicações enterprise. De acordo com a Google, a intenção é continuar oferecendo serviços do nível do Google App Engine, acrescido de suporte e de alguns serviços como o suporte a incluindo um banco de dados relacional e SSL. O App Engine for Business [8] é oferecido a um preço de 8 dólares por usuário além das taxas de consumo. <%@ page iselignored="false" %> Por fim, outro detalhe que merece bastante atenção é o tempo de inicialização das instâncias (conhecido como cold start). Quando sua aplicação é chamada pela primeira vez, uma instância é criada e executada por um dos servidores da nuvem. Este processo é lento, podendo consumir vários segundos, dependendo tanto da disponibilidade de recursos no GAE naquele momento como do tamanho da aplicação e das bibliotecas e frameworks usados. Os acessos seguintes são respondidos com baixa latência, mas, após um período de inatividade, as instâncias são destruídas, exigindo que todo o lento processo de inicialização seja refeito pelo serviço em um próximo acesso. Para evitar isso, a prática mais comum tem sido usar o agendador de tarefas do próprio App Engine para visitar alguma página do site a cada minuto, mantendo assim uma instância da aplicação sempre ativa. A Google diz estar estudando outra forma de contornar o problema. Referências Considerações finais A solução de Cloud Computing da Google certamente tem atraído grande atenção. Por um baixo custo, é possível obter, com este serviço, um alto nível de segurança e escalabilidade, além de 34
Google App Engine. André Gustavo Duarte de Almeida. Computação Ubíqua e Nuvens. Natal, 24 de maio de 2012 andregustavoo@gmail.com
Google App Engine Natal, 24 de maio de 2012 andregustavoo@gmail.com Sumário Introdução Instalação Aplicação Exemplo Implantação Conclusão Introdução Google App Engine developers.google.com/appaengine Permite
Leia maisAlexandre Malveira, Wolflan Camilo
Alexandre Malveira, Wolflan Camilo Introdução Cloud Computing Computação Móvel SaaS, PaaS e IaaS CloudBees Diariamente arquivos são acessados, informações dos mais variados tipos são armazenadas e ferramentas
Leia maisEm direção à portabilidade entre plataformas de Computação em Nuvem usando MDE. Elias Adriano - UFSCar Daniel Lucrédio - UFSCar
Em direção à portabilidade entre plataformas de Computação em Nuvem usando MDE Elias Adriano - UFSCar Daniel Lucrédio - UFSCar III Workshop Brasileiro de Desenvolvimento de Software Dirigido por Modelos
Leia maisSatélite. Manual de instalação e configuração. CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br
Satélite Manual de instalação e configuração CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br Índice Índice 1.Informações gerais 1.1.Sobre este manual 1.2.Visão geral do sistema 1.3.História
Leia maishttp://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 maisCONSTRUÇÃO DE BLOG COM O BLOGGER
CONSTRUÇÃO DE BLOG COM O BLOGGER Blog é uma abreviação de weblog, qualquer registro frequênte de informações pode ser considerado um blog (últimas notícias de um jornal online por exemplo). A maioria das
Leia maisArtur Petean Bove Júnior Tecnologia SJC
Artur Petean Bove Júnior Tecnologia SJC Objetivo O objetivo do projeto é especificar o desenvolvimento de um software livre com a finalidade de automatizar a criação de WEBSITES através do armazenamento
Leia maisParte I. Demoiselle Mail
Parte I. Demoiselle Mail Para o envio e recebimento de e-s em aplicativos Java, a solução mais natural é usar a API JavaMail [http:// www.oracle.com/technetwork/java/java/index.html]. Ela provê um framework
Leia maisUFG - 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 maisGUIA INTEGRA SERVICES E STATUS MONITOR
GUIA INTEGRA SERVICES E STATUS MONITOR 1 - Integra Services Atenção: o Integra Services está disponível a partir da versão 2.0 do software Urano Integra. O Integra Services é um aplicativo que faz parte
Leia maisMicrosoft Access XP Módulo Um
Microsoft Access XP Módulo Um Neste primeiro módulo de aula do curso completo de Access XP vamos nos dedicar ao estudo de alguns termos relacionados com banco de dados e as principais novidades do novo
Leia maisPROCEDIMENTOS PARA A INSTALAÇÃO E UTILIZAÇÃO DO APLICATIVO DE LEILÃO ELETRÔNICO DA CONAB
PROCEDIMENTOS PARA A INSTALAÇÃO E UTILIZAÇÃO DO APLICATIVO DE LEILÃO ELETRÔNICO DA CONAB Sumep Julho/2006 PROCEDIMENTOS PARA A INSTALAÇÃO E UTILIZAÇÃO DO APLICATIVO DE LEILÃO ELETRÔNICO DA CONAB Objetivo
Leia mais3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio
32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio
Leia maisConstrutor 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 maisProcedimentos 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 maisProgramando 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 maisManual do Usuário - ProJuris Web - Fila de E-mails Página 1 de 8
As informações contidas neste documento estão sujeitas a alterações sem o prévio aviso, o que não representa um compromisso da Virtuem Informática. As pessoas, organizações ou empresas e eventos de exemplos
Leia maisJSF e PrimeFaces. Professor: Ricardo Luis dos Santos IFSUL Campus Sapucaia do Sul
JSF e PrimeFaces Professor: Ricardo Luis dos Santos IFSUL 2015 Agenda Introdução Desenvolvimento Web Java Server Faces Exercício 2 Introdução Ao longo dos anos diversas linguagens de programação foram
Leia maisManual de configuração do sistema
Manual de configuração do sistema (v.1.5.x Beta) Rua México, 119 Sala 2004 Centro Rio de Janeiro, RJ www.doctors-solution.com.br www.simdoctor.com.br contato@simdoctor.com.br Sumário 1. Fazendo seu primeiro
Leia maisConceitos Básicos de Rede. Um manual para empresas com até 75 computadores
Conceitos Básicos de Rede Um manual para empresas com até 75 computadores 1 Conceitos Básicos de Rede Conceitos Básicos de Rede... 1 A Função de Uma Rede... 1 Introdução às Redes... 2 Mais Conceitos Básicos
Leia mais5 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 maisEtc & Tal. Volume 2 - Número 1 - Abril 2009 SBC HORIZONTES 44
Armazenando Dados em Aplicações Java Parte 2 de 3: Apresentando as opções Hua Lin Chang Costa, hualin@cos.ufrj.br, COPPE/UFRJ. Leonardo Gresta Paulino Murta, leomurta@ic.uff.br, IC/UFF. Vanessa Braganholo,
Leia maisTALKDOW 5.1 v Web. Manual Operacional Sistema TALKDOW V 5.1 Web
TALKDOW 5.1 v Web Manual Operacional Sistema TALKDOW V 5.1 Web Bem vindo ao manual operacional de controle e gerenciamento de arquivos para Afiliadas do Grupo Talk Radio. A partir de agora você irá aprender
Leia maiswww.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 maisCriando uma plataforma mundial para engajamento de usuários para a Copa do Mundo 2014 na nuvem da Google
Criando uma plataforma mundial para engajamento de usuários para a Copa do Mundo 2014 na nuvem da Google Daniel Viveiros - Head of Technology Twitter: @dviveiros Site: http://www.ciandt.com/u/viveiros
Leia mais1. Quem somos nós? A AGI Soluções nasceu em Belo Horizonte (BH), com a simples missão de entregar serviços de TI de forma rápida e com alta qualidade.
1. Quem somos nós? A AGI Soluções nasceu em Belo Horizonte (BH), com a simples missão de entregar serviços de TI de forma rápida e com alta qualidade. Todos nós da AGI Soluções trabalhamos durante anos
Leia mais1 Sumário... 2. 2 O Easy Chat... 3. 3 Conceitos... 3. 3.1 Perfil... 3. 3.2 Categoria... 3. 4 Instalação... 5. 5 O Aplicativo... 7 5.1 HTML...
1 Sumário 1 Sumário... 2 2 O Easy Chat... 3 3 Conceitos... 3 3.1 Perfil... 3 3.2 Categoria... 3 3.3 Ícone Específico... 4 3.4 Janela Específica... 4 3.5 Ícone Geral... 4 3.6 Janela Geral... 4 4 Instalação...
Leia maisJPA: Persistência padronizada em Java
JPA: Persistência padronizada em Java FLÁVIO HENRIQUE CURTE Bacharel em Engenharia de Computação flaviocurte.java@gmail.com Programação Orientada a Objetos X Banco de Dados Relacionais = Paradigmas diferentes
Leia maisCRIANDO BANCOS DE DADOS NO SQL SERVER 2008 R2 COM O SQL SERVER MANAGEMENT STUDIO
CRIANDO BANCOS DE DADOS NO SQL SERVER 2008 R2 COM O SQL SERVER MANAGEMENT STUDIO Antes de criarmos um novo Banco de Dados quero fazer um pequeno parênteses sobre segurança. Você deve ter notado que sempre
Leia maisAtalhos da Web. Krishna Tateneni Yves Arrouye Tradução: Lisiane Sztoltz
Krishna Tateneni Yves Arrouye Tradução: Lisiane Sztoltz 2 Conteúdo 1 Atalhos da Web 4 1.1 Introdução.......................................... 4 1.2 Atalhos da Web.......................................
Leia maisComo ganhar dinheiro recomendando cursos.
Afiliados Cursos Como ganhar dinheiro recomendando cursos. Conteúdo Apresentação do Autor... 3 Introdução... 4 Panorama do mercado de cursos on-line no Brasil... 4 Objetivo... 5 Requisitos... 5 Métodos
Leia maisNa tela dele, clique no sinal de + ao lado do nome do seu computador, para expandi-lo. A seguir, expanda também o item "Sites da web".
Servidor WEB Desenvolvedores de sites que querem aprender ou testar ASP, ou mesmo profissionais que precisam desenvolver páginas ASP ou ASP.Net, não precisam necessariamente ter um servidor na web com
Leia maisSISTEMA 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 maisArmazenamento em nuvem é feito em serviços que poderão ser acessados de diferentes lugares, a qualquer momento e utilizando diferentes dispositivos,
Nuvem cloud Armazenamento em nuvem é feito em serviços que poderão ser acessados de diferentes lugares, a qualquer momento e utilizando diferentes dispositivos, não havendo necessidade de armazenamento
Leia maisGovernança de TI. ITIL v.2&3. parte 1
Governança de TI ITIL v.2&3 parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR ITIL 1 1 ITIL Gerenciamento de Serviços 2 2 Gerenciamento de Serviços Gerenciamento de Serviços 3 3 Gerenciamento de Serviços
Leia maisMANUAL DE INSTALAÇÃO E CONFIGURAÇÃO. Motor Periférico Versão 8.0
MANUAL DE INSTALAÇÃO E CONFIGURAÇÃO Motor Periférico Versão 8.0 1. Apresentação... 3 2. Instalação do Java... 3 2.1 Download e Instalação... 3 2.2 Verificar Instalação... 3 3. Download do Motor Periférico...
Leia maisManual 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 maisConceitos 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 maisQuarta-feira, 09 de janeiro de 2008
Quarta-feira, 09 de janeiro de 2008 ÍNDICE 3 4 RECOMENDAÇÕES DE HARDWARE PARA O TRACEGP TRACEMONITOR - ATUALIZAÇÃO E VALIDAÇÃO DE LICENÇAS 2 1. Recomendações de Hardware para Instalação do TraceGP Este
Leia mais02 - Usando o SiteMaster - Informações importantes
01 - Apresentação do SiteMaster - News Edition O SiteMaster foi desenvolvido para ser um sistema simples de gerenciamento de notícias, instalado em seu próprio computador e com configuração simplificada,
Leia maisAula 03 - Projeto Java Web
Aula 03 - Projeto Java Web Para criação de um projeto java web, vá em File/New. Escolha o projeto: Em seguida, na caixa Categorias selecione Java Web. Feito isso, na caixa à direita selecione Aplicação
Leia maisSISTEMA DE INSCRIÇÕES ONLINE
PROPOSTA COMERCIAL SISTEMA DE INSCRIÇÕES ONLINE PARA EVENTOS Para: ADVB Aos cuidados de: Mastrângela APRESENTAÇÃO Viemos apresentar a nossa proposta comercial para utilização de eventize! para seus eventos
Leia maisPerguntas Frequentes. Distribuidores
Perguntas Frequentes Distribuidores O que é o site Compre Lista Escolar? É um site que possui um sistema desenvolvido, exclusivamente, para que distribuidores possam realizar vendas de livros escolares
Leia maisOrientaçã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 maisProgramaçã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 maisFaculdade Integrada do Ceará FIC Graduação em Redes de Computadores
Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores Disciplina - Sistemas Distribuídos Prof. Andrey Halysson Lima Barbosa Aula 12 Computação em Nuvem Sumário Introdução Arquitetura Provedores
Leia maisREGISTRANDO DOMÍNIOS, COMO PUBLICAR UM SITE? DIRECIONANDO O DNS. Professor Carlos Muniz
REGISTRANDO DOMÍNIOS, DIRECIONANDO O Registrando Domínios Muito se tem falado sobre o crescimento em mídia on-line, sobre a ampliação do uso dessa ferramenta para comunicar...seja para negócios, para estudar,
Leia maisComo se tornar um desenvolvedor de plug-ins para AutoCAD e Revit
Como se tornar um desenvolvedor de plug-ins para AutoCAD e Revit Vitor Paulo Silva Se você é um projetista e sua principal ferramenta de trabalho é o AutoCAD ou o Revit, certamente você já se deparou com
Leia maisPor que Office 365? Office 365 Por que usar?
Por que Office 365? Office 365 Por que usar? POR QUE OFFICE 365? Olá. Nesse guia, vamos tratar de um serviço que está sendo extremamente procurado por executivos e especialistas em TI das empresas: o Office
Leia maisGUIA DE ORIENTAÇÕES ROTEIRO DE CONFIGURAÇÃO DO SOFTWARE CRM PROFESSIONAL ANEXO III ROTEIRO DE CONFIGURAÇÃO - CRM PROFESSIONAL
ANEXO III ROTEIRO DE CONFIGURAÇÃO - CRM PROFESSIONAL GUIA DE ORIENTAÇÕES ROTEIRO DE CONFIGURAÇÃO DO SOFTWARE CRM PROFESSIONAL ANEXO III ROTEIRO DE CONFIGURAÇÃO E INSTALAÇÃO DO CRM PROFESSIONAL SUMÁRIO
Leia maisAJAX no GASweb. Mas e afinal, para que usamos o AJAX?
Nível - Avançado AJAX no GASweb Por: Pablo Hadler AJAX (Asynchronous Javascript and XML) foi criado com o princípio de ser uma maneira rápida e otimizada de podermos fazer requisições Web, sendo esta totalmente
Leia maisLICENCIAMENTO V14 USANDO REPRISE LICENSE MANAGER
LICENCIAMENTO V14 USANDO REPRISE LICENSE MANAGER V14 de BricsCAD vem com um novo sistema de licenciamento, com base na tecnologia de licenciamento de Reprise Software. Este novo sistema oferece um ambiente
Leia maisDespachante 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 maisEstá apto a utilizar o sistema, o usuário que tenha conhecimentos básicos de informática e navegação na internet.
Conteúdo 1. Descrição geral 2 2. Resumo das funcionalidades 3 3. Efetuar cadastro no sistema 4 4. Acessar o sistema 6 5. Funcionalidades do menu 7 5.1 Dados cadastrais 7 5.2 Grupos de usuários 7 5.3 Funcionários
Leia maisUniversidade Federal de Campina Grande Departamento de Sistemas e Computação Ciência da Computação. alyssonfm@lcc.ufcg.edu.br
Universidade Federal de Campina Grande Departamento de Sistemas e Computação Ciência da Computação alyssonfm@lcc.ufcg.edu.br Maio - 2010 Agenda GWT Vantagens Desvantagens Exemplificação de códigos GWT
Leia maisOrientação a Objetos
Orientação a Objetos 1. Sobrecarga (Overloading) Os clientes dos bancos costumam consultar periodicamente informações relativas às suas contas. Geralmente, essas informações são obtidas através de extratos.
Leia maisAumente sua velocidade e flexibilidade com a implantação da nuvem gerenciada de software da SAP
Parceiros de serviços em nuvem gerenciada Aumente sua velocidade e flexibilidade com a implantação da nuvem gerenciada de software da SAP Implemente a versão mais recente do software da SAP de classe mundial,
Leia maisUma Abordagem sobre Mapeamento Objeto Relacional com Hibernate
Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate Luis Gustavo Zandarim Soares 1, Késsia Rita da Costa Marchi 1 1 Universidade Paranaense (Unipar) Paraná PR Brasil luisgustavo@live.co.uk,
Leia maisSistemas 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 maisSistemas 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 maisManual 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 maisPag: 1/20. SGI Manual. Controle de Padrões
Pag: 1/20 SGI Manual Controle de Padrões Pag: 2/20 Sumário 1 Introdução...3 2 Cadastros Básicos...5 2.1 Grandezas...5 2.2 Instrumentos (Classificação de Padrões)...6 3 Padrões...9 3.1 Padrão Interno...9
Leia maisEDITORES DE TEXTO Capítulo 1: Avaliação técnica e econômica dos principais editores de texto do mercado.
Nome: Nº Série: EDITORES DE TEXTO Capítulo 1: Avaliação técnica e econômica dos principais editores de texto do mercado. Habilidades: Pesquisar novas ferramentas e aplicativos de informática para a área
Leia maisJava e JavaScript. Krishna Tateneni Tradução: Lisiane Sztoltz
Krishna Tateneni Tradução: Lisiane Sztoltz 2 Conteúdo 1 Java e JavaScript 4 1.1 Java............................................. 4 1.2 JavaScript.......................................... 4 3 1 Java e
Leia maisLógica de Programação
Lógica de Programação Softblue Logic IDE Guia de Instalação www.softblue.com.br Sumário 1 O Ensino da Lógica de Programação... 1 2 A Ferramenta... 1 3 Funcionalidades... 2 4 Instalação... 3 4.1 Windows...
Leia maisAVG Admin 2012 SQL Server 2005 Express
AVG Admin 2012 SQL Server 2005 Express Conteúdo: 1. INSTALAÇÃO DO SQL SERVER 2005 EXPRESS... 3 1.1. Microsoft.Net Framework 2.0... 3 1.2. Microsoft SQL Server 2005 Express... 3 2. INSTALAÇÃO E CONFIGURAÇÃO
Leia maisDemoiselle Report Guide. Demoiselle Report. Marlon Carvalho. <marlon.carvalho@gmail.com> Rodrigo Hjort. <rodrigo.hjort@gmail.com> Robson Ximenes
Demoiselle Report Guide Demoiselle Report Marlon Carvalho Rodrigo Hjort Robson Ximenes Demoiselle Report... v 1. Configuração
Leia maisÍndice. Manual Backup Online. 03 Capítulo 1: Visão Geral
Índice 03 Capítulo 1: Visão Geral 04 Capítulo 2: Conta de Usuário 04 Criação 08 Edição 09 Grupo de Usuários 10 Informações da Conta 12 Capítulo 3: Download do Backup Online Embratel 16 Capítulo 4: Cópia
Leia maisPortal Sindical. Manual Operacional Empresas/Escritórios
Portal Sindical Manual Operacional Empresas/Escritórios Acesso ao Portal Inicialmente, para conseguir acesso ao Portal Sindical, nos controles administrativos, é necessário acessar a página principal da
Leia maisProgramaçã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 maisJava Server Pages: Apresentação e Instalação
1 Java Server Pages: Apresentação e Instalação Prof. Autor: Daniel Morais dos Reis e-tec Brasil Programação Avançada Para Web Página1 Meta Apresentar a tecnologia Java Server Pages; Instalar e configurar
Leia maisComeç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 maisTutorial de Instalação
Tutorial de Instalação Reserva Legal Todos os produtos, logotipos e marcas aqui referidos são marcas registradas de seus proprietários legais. A W PC Software ao elaborar este tutorial de instalação dos
Leia mais1. Tela de Acesso pg. 2. 2. Cadastro pg. 3. 3. Abas de navegação pg. 5. 4. Abas dados cadastrais pg. 5. 5. Aba grupo de usuários pg.
Sumário 1. Tela de Acesso pg. 2 2. Cadastro pg. 3 3. Abas de navegação pg. 5 4. Abas dados cadastrais pg. 5 5. Aba grupo de usuários pg. 6 6. Aba cadastro de funcionários pg. 7 7. Pedidos pg. 12 8. Cartões
Leia maisEntendendo como funciona o NAT
Entendendo como funciona o NAT Vamos inicialmente entender exatamente qual a função do NAT e em que situações ele é indicado. O NAT surgiu como uma alternativa real para o problema de falta de endereços
Leia maisManual de Publicaça o no Blog da Aça o TRIBOS nas Trilhas da Cidadania
Manual de Publicaça o no Blog da Aça o TRIBOS nas Trilhas da Cidadania Sumário Objetivos do Blog... 2 Log-in... 3 Esqueci minha senha... 4 Utilizando o Blog... 5 Encontrando seu Blog... 5 Conhecendo o
Leia maisGoogle Drive: Acesse e organize seus arquivos
Google Drive: Acesse e organize seus arquivos Use o Google Drive para armazenar e acessar arquivos, pastas e documentos do Google Docs onde quer que você esteja. Quando você altera um arquivo na web, no
Leia maisUM NOVO CONCEITO EM HOSPEDAGEM DE DOMÍNIO
www.origy.com.br UM NOVO CONCEITO EM HOSPEDAGEM DE DOMÍNIO CARACTERÍSTICAS: E-MAIL IMAP * Acesso simultâneo e centralizado, via aplicativo, webmail e celular/smartphone * Alta capacidade de armazenamento
Leia maisAP_ Conta Aplicativo para digitação e envio de contas médicas no padrão TISS
AP_ Conta Aplicativo para digitação e envio de contas médicas no padrão TISS Manual de Instalação Tempro Software StavTISS Sumário 1. INTRODUÇÃO... 2 2. REQUISITOS DO SISTEMA... 3 3. INSTALAÇÃO... 4 4.
Leia maisGERAÇÃO DE RELATÓRIOS
UNIOESTE Universidade Estadual do Oeste do Paraná CCET - CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS Colegiado de Ciência da Computação Curso de Bacharelado em Ciência da Computação GERAÇÃO DE RELATÓRIOS
Leia maisFeature-Driven Development
FDD Feature-Driven Development Descrição dos Processos Requisitos Concepção e Planejamento Mais forma que conteúdo Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por
Leia maisCURSO DE PROGRAMAÇÃO EM JAVA
CURSO DE PROGRAMAÇÃO EM JAVA Introdução para Iniciantes Prof. M.Sc. Daniel Calife Índice 1 - A programação e a Linguagem Java. 1.1 1.2 1.3 1.4 Linguagens de Programação Java JDK IDE 2 - Criando o primeiro
Leia maisRational Requirements Composer Treinamento aos Analistas de Qualidade e Gestor das Áreas de Projeto
Rational Requirements Composer Treinamento aos Analistas de Qualidade e Gestor das Áreas de Projeto Objetivos do Treinamento Apresentar as principais funcionalidades do Rational Requirements Composer relacionadas
Leia maisInicialização Rápida do Novell Vibe Mobile
Inicialização Rápida do Novell Vibe Mobile Março de 2015 Introdução O acesso móvel ao site do Novell Vibe pode ser desativado por seu administrador do Vibe. Se não conseguir acessar a interface móvel do
Leia maisEm 2012, a Prosoft planejou o lançamento da Versão 5 dos seus produtos.
VERSÃO 5 Outubro/2012 Release Notes Não deixe de atualizar o seu sistema Planejamos a entrega ao longo do exercício de 2012 com mais de 140 melhorias. Mais segurança, agilidade e facilidade de uso, atendendo
Leia maisLILDBI-Web. Objetivo: Aplicar as funcionalidades do LILDBI-Web para alimentação de bases de dados bibliográficas. Conteúdos desta aula
LILDBI-Web Objetivo: Aplicar as funcionalidades do LILDBI-Web para alimentação de bases de dados bibliográficas. Conteúdos desta aula LILDBI-Web: conceitos Criação de novos usuários no sistema Perfis de
Leia maisQUESTINAMENTOS AO EDITAL DE CONCORRÊNCIA 01/2013
QUESTINAMENTOS AO EDITAL DE CONCORRÊNCIA 01/2013 Prezados Senhores da comissão de licitação da UENF, seguem alguns questionamentos acerca do edital de concorrência 01/2013 para esclarecimentos: 1. ANEXO
Leia maisManual de Usuário INDICE
Manual de Usuário INDICE Características do Sistema... 02 Características Operacionais... 03 Realizando o Login... 04 Menu Tarifador... 05 Menu Relatórios... 06 Menu Ferramentas... 27 Menu Monitor... 30
Leia maisCATÁLOGO DE APLICAÇÕES PEFIN SERASA
CATÁLOGO DE APLICAÇÕES PEFIN SERASA Objetivo Disponibilizar a opção de negativação dos clientes pessoas físicas e/ou jurídicas sobre dívidas não pagas. Fluxo Processo Página 2 de 14 Processo 1. PEFIN 1.1
Leia maisComo criar uma conta gratuita e subir uma foto no Windows Azure
Como criar uma conta gratuita e subir uma foto no Windows Azure (enviar URL da foto para igsjunior@gmail.com no máximo até 20/dez/2010) by Idevar Junior 1. Entre no site http://www.windowsazure.com/ 2.
Leia maisE-books. Guia para Facebook Ads. Sebrae
E-books Sebrae Marketing e Vendas Guia para Facebook Ads Por que investir no facebook Ads? Tipos de anúncios Como funciona o sistema de pagamentos Criando anúncios Métricas Autor Felipe Orsoli 1 SUMÁRIO
Leia maisSmart Laudos 1.9. A Forma Inteligente de Criar seus Laudos Médicos. Manual do Usuário
Smart Laudos 1.9 A Forma Inteligente de Criar seus Laudos Médicos Manual do Usuário Conteúdo 1. O que é o Smart Laudos?... 3 2. Características... 3 3. Instalação... 3 4. Menu do Sistema... 4 5. Configurando
Leia maisMoip Assinaturas. Gerencie mensalidades, assinaturas e cobranças recorrentes
Gerencie mensalidades, assinaturas e cobranças recorrentes outubro/2012 Índice O Mercado de Assinaturas... 03 O Moip Assinaturas... 04 Fluxo básico... 04 APIs... 05 Versão 1.0... 06 Participe do Beta...
Leia maisDESENVOLVIMENTO DE UM APLICATIVO DO TIPO SECRETÁRIO VIRTUAL PARA A PLATAFORMA ANDROID
DESENVOLVIMENTO DE UM APLICATIVO DO TIPO SECRETÁRIO VIRTUAL PARA A PLATAFORMA ANDROID Maik Olher CHAVES 1 ; Daniela Costa Terra 2. 1 Graduado no curso de Tecnologia em Análise e Desenvolvimento de Sistemas
Leia maisSMS Corporativo Manual do Usuário
NEXTEL SMS Corporativo Manual do Usuário Conteúdo 2 CAPÍTU LO 1 Introdução 3 CAPÍTU LO 2 Funcionalidades 1 Copyright Curupira S/A TakeNET INTRODUÇÃO A FERRAMENTA O SMS Corporativo é um serviço criado para
Leia maisPasso-a-Passo para Criação de Conta no site Griaule e Download do Programa SDK e da Licença Fingerprint SDK 2009
1 Importante: Passo-a-Passo para Criação de Conta no site Griaule e Download do Programa SDK e da Licença Fingerprint SDK 2009 É importante salientar que a Licença SDK não trabalha sozinha. Para que que
Leia maisCONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS
MINISTÉRIO DO DESENVOLVIMENTO AGRÁRIO SUBSECRETARIA DE PLANEJAMENTO, ORÇAMENTO E ADMINISTRAÇÃO COORDENAÇÃO-GERAL DE MODERNIZAÇÃO E INFORMÁTICA CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS MANUAL
Leia mais