Artigo

    

Use o aplicativo Codename: BlueMix DataCache service in a Node.js

Este artigo explica como usar o aplicativo Codename: BlueMix DataCache service in a Node.js. Também oferece uma biblioteca do cliente que pode ser ampliada e utilizada em outros aplicativos Node.js hospedados no BlueMix.


Por Michele Crudele


Um cache de dados distribuído pode melhorar o tempo de resposta de apresentação de um aplicativo baseado na nuvem ao colocar em cache as respostas a solicitações frequentes do usuário. Um cache distribuído também oferece o benefício de baixar a camada do serviço de dados: os componentes do aplicativo que proporcionam persistência de dados. Um serviço de cache distribuído ajuda a construir aplicativos que respondem.


Este artigo explica como usar o serviço DataCache em um aplicativo Node.js hospedado por Codename: BlueMix. O DataCache é um cache distribuído (operado pela tecnologia WebSphere eXtreme Scale) que pode ser usado como um armazém de dados eficiente e confiável de valor chave. Oferecemos um módulo de cliente Node.js que pode ser ampliado e utilizado nos aplicativos escolhidos para serem hospedados no BlueMix. O serviço DataCache é usado sobre a rede através da sua REST API. O módulo de cliente abstrai os bits REST, proporcionando métodos de nível mais alto para gerenciar objetos de valor chave.


O que é necessário para construir um aplicativo similar



  • Estar familiarizado com a escritura de aplicativos da Web em um ambiente de desenvolvimento de um Node.js utilizando o framework do aplicativo Web Express e o motor de matrizes Jade

  • Conhecimentos básicos sobre a plataforma Cloud Foundry (a base do BlueMix) e o modelo de programação de composição do serviço

  • JazzHub e contas BlueMix

  • A interface da linha de comando cf que pode baixar diretamente do BlueMix Web UI




Um serviço de cache distribuído ajuda a construir aplicativos que respondem.




Executar o aplicativo


Obter o código no JazzHub


Nota: Se você quiser usar um fork no código para este exercício no JazzHub, clique no botão EDIT CODE no canto superior direito (capture suas credenciais JazzHub se ainda não iniciou a sessão e clique no botão FORK do menu para criar um projeto novo.


Node.js para desenvolvedores Java


Gerencie os requisitos não funcionais para os aplicativos da nuvem



Passo 1: Abra o aplicativo no BlueMix


Obtenha o código. Para usar a linha de comando Git para baixar o código do meu projeto JazzHub para um diretório local chamado datacache-sample, execute:



 git clone https://hub.jazz.net/git/mcrudele/datacache-sample


Agora abra o aplicativo no BlueMix:



  1. Inicie sessão na sua conta BlueMix usando a linha de comando cf.

  2. Selecione um nome único para seu aplicativo (estou usando datacache-sample. Coloque o que você quiser)

  3. Execute estes comandos, onde THIS_APP representa o nome escolhido para o aplicativo:

     cd datacache-sample cf push THIS_APP




O comando push dá saída à informação verbosa ao console. As últimas linhas de um processo bem-sucedido aparecem assim:


Clique aqui para ver lista de códigos


Agora você pode conectar ao aplicativo apontando com seu navegador a http://THIS_APP.ng.bluemix.net (consulte a Figura 1).


Figura 1. Página principal de aplicativos imediatamente após a ativação



Passo 2: Vincule um serviço DataCache ao aplicativo


Opa — Esqueci de mencionar que, primeiro, é preciso vincular um serviço DataCache ao aplicativo, de acordo com as instruções do comando da Figura 1. Não é preciso entrar em pânico. Você pode fazer isso simplesmente reiniciando o aplicativo. Execute o comando apresentado na página:



 cf create-service DataCache free SERVICE_NAME cf bind-service THIS_APP SERVICE_NAME cf restart THIS_APP


Após recarregar a página, você verá que o aplicativo oferece algumas opções utilizáveis (consulte a Figura 2).


Figura 2. Página principal de aplicativos após vincular um serviço DataCache ao aplicativo


O que aconteceu? Como você sabe que não havia sido associado um serviço DataCache ao aplicativo no princípio?


Abre-se datacache-sample/app.js (que é o módulo principal do aplicativo, que inicia o servidor Web), e você verá o código que verifica a presença do serviço DataCache na parte superior — na definição da variável de ambiente VCAP_SERVICE:


Clique aqui para ver lista de códigos


DCClient é o módulo que oculta os bits de REST API do serviço de DataCache, oferecendo métodos de um nível mais alto também se encarrega de distribuir o objeto de credenciais que contêm parâmetros de conectividade para o serviço de DataCache. DCClient se implementa no arquivo datacache-sample/wxs.js.


Se armazena uma referência a DCClient na variável app.locals.dcClt para que as rotas Express possam acessá-las. A rota responsável por entregar a página de índice (datacache-sample/routes/index.js) executa a verificação:


Clique aqui para ver lista de códigos


o código anterior entrega a matriz Jade datacache-sample/views/index.jade passando o parâmetro. dataCacheBound O motor de matrizes Jade verifica o valor da variável dataCacheBound e constrói a página principal dessa maneira entregando seja a página na Figura 1 ou a página na Figura 2.



Passo 3: Inserir chaves


Para armazenar um objeto de valor chave na instância DataCache que está vinculada ao aplicativo, clique em Insert a key into a map na página principal.


Quando você cria um serviço DataCache, é criado um mapa predeterminado no qual são armazenados seus objetos de valor chave, para que possa deixar o campo de entrada Map vazio. Mas, em alguns casos, você pode querer especificar diferentes opções de cache para objetos diferentes. Nesses casos, você pode especificar um mapa e o tempo de vida (TTL) dos objetos de valor chave que contêm. Você especifica o valor TTL adicionando um sufixo no nome do mapa:



  • Um mapa cujo nome termina com: .NONE não expira. Para eliminar o mapa, deve ser usado um comando explícito.

  • Um mapa cujo nome termina com: .LUT define um tempo de expiração para seus objetos com base na última hora da sua atualização (LUT): Serão apagados automaticamente se não forem atualizados em um intervalo de tempo superior ao TTL. O valor predeterminado para TTL é uma hora.

  • Um mapa cujo nome termina com: .LAT define um tempo de expiração para seus objetos com base no tempo do último acesso (LAT): Serão eliminados automaticamente se não forem acessados em um intervalo de tempo superior ao TTL. O valor predeterminado para TTL é uma hora.

  • Um mapa cujo nome termina com .CT define um tempo de expiração para seus objetos com base no momento da sua criação (CT): São eliminados automaticamente depois de CT mais TTL. O valor predeterminado de TTL é uma hora.


Tente usar o aplicativo para colocar em cache objetos de valor chave em diferentes tipos de mapas. Se o valor for um objeto JSON, define o campo de tipo de conteúdo a application/json. Se for um objeto XML, defina-o a application/xml. Para qualquer outro tipo de valor, deixe o campo tipo de conteúdo como application/octet-stream.


Defina um nome de mapa sem nenhum dos sufixos e veja o que acontece.


Um único arquivo — datacache-sample/routes/map.js — contém todas as rotas expressas para gerenciar as operações do DataCache. Esta é a porção do arquivo que gerencia a inserção de um objeto de valor chave:


Clique aqui para ver lista de códigos


dcClt.put() é o método para inserir um objeto em um mapa. Você passa o mapa, senha, valor e os tipos de conteúdo do valor mais a função retorno de chamada que gerencia os resultados. O arquivo datacache-sample/wxs.js inclui ajuda sobre como interpretar o parâmetro passado ao retorno de chamada:


Clique aqui para ver lista de códigos



Passo 4: Obtenha o valor de uma chave


Para obter o valor de uma chave que está armazenada na instância de DataCache unida ao aplicativo, clique no link Get a key from a map na página principal.


Tente recuperando as chaves que inseriu no Passo 3. Tente também obter algumas chaves não existentes. Depois veja o código.


Esta porção do arquivo datacache-sample/routes/map.js gerencia a operação:


Clique aqui para ver lista de códigos


Como com inserir, a parte interessante dcClt.get() da chamada do método e o gerenciamento dos resultados na função de retorno de chamada. O método dcClt.get() toma como entrada o nome do mapa, a chave e a função de retorno de chamada. O arquivo datacache-sample/wxs.js inclui ajuda sobre como interpretar o parâmetro passado ao retorno de chamada:


Clique aqui para ver lista de códigos



Passo 5: Eliminar chaves


Use o link Eliminar uma chave de um mapa ou Eliminar todas as chaves de um mapa na página principal para eliminar os objetos com valor chave dos mapas. Como fez para inserir e obter, você pode examinar o código nos arquivos datacache-sample/routes/map.js e datacache-sample/wxs.js files. O objeto WXS define o método remove() para eliminar um objeto de valor chave de um mapa e o método clearMap() para eliminar todos os objetos de valor chave de um mapa.



Conclusão


Com a compreensão que você tem agora sobre as capacidades básicas do serviço DataCache, você pode iniciá-lo rapidamente na plataforma BlueMix. Logo você descobrirá mais características deste serviço, que incluem um painel DataCache (ver a Figura 3) ao qual se acessa a partir da BlueMix Web UI. O painel mostra o uso do serviço e como está se comportando.


Figura 3. Painel DataCache


Clique para ver a imagem maior


Eu os convido a obter o módulo WXS Node.js ampliá-lo para seus propósitos e compartilhá-lo com a comunidade. Você pode baixar uma biblioteca similar para a linguagem Java ™ diretamente do BlueMix WebUI nas páginas de documentação do serviço DataCache.

Notícias

Certificações LPI: o caminho para turbinar a sua carreira

Publicado em: 13/10/2017 às 15:50 | leituras |

O Linux Professional Institute (LPI) oferecerá provas de certificação na Latinoware, em Foz do Iguaçu, em outubro, na Poticon, em Natal e no FGSL em novembro. Fique antenado! Este artigo elenca as últimas novidades sobre o LPI.

Blog do maddog: Ambientes de nuvem privada virtual

Publicado em: 06/10/2017 às 14:09 | leituras |

O Subutai é uma solução de nuvem de código aberto, ponto a ponto (P2P), segura e estável, que cria ambientes de nuvem privada virtual (VPC) para usuários finais usando um modelo de nuvem de contêineres como serviço (CaaS). O usuário final pode instalar qualquer tipo de serviço, aplicativo ou software de infraestrutura que desejar nas máquinas em execução nessa nuvem.

Ambientes de nuvem privada virtual

Publicado em: 06/10/2017 às 13:23 | leituras |

O Subutai é uma solução de nuvem de código aberto, ponto a ponto (P2P), segura e estável, que cria ambientes de nuvem privada virtual (VPC) para usuários finais usando um modelo de nuvem de contêineres como serviço (CaaS). O usuário final pode instalar qualquer tipo de serviço, aplicativo ou software de infraestrutura que desejar nas máquinas em execução nessa nuvem.

4Linux abre vagas para Líder Técnico em São Paulo e Brasília

Publicado em: 25/07/2017 às 14:12 | leituras |

A 4Linux — uma empresa líder em soluções Open Source e em práticas DevOps — está procurando profissionais para trabalhar como gerente técnico, que tenha bons conhecimentos em Linux e Softwares Livres. São duas vagas: uma para trabalhar em Brasília e outra para São Paulo.

Seminário sobre gestão de privilégios do Linux dá direito a certificado CPE

Publicado em: 23/05/2017 às 10:35 | leituras |

O evento irá abordar a forte disseminação de sistemas Linux em toda a estrutura de informação e mostrará a importância de técnicos da área serem capazes de identificar rotas, especificar controles de acesso para usuários Linux e monitorar a atividade privilegiada do usuário ao longo da rede de informação e, especialmente, na complexidade da nuvem. Participantes poderão requerer gratuitamente os créditos de CPE (Continuing Professional Education).


Mais notícias

lançamento!

LM 119 | Backup e Restauração




Impressa esgotada
Comprar Digital  R$ 10,90 Digital

  1. Soluti Certificação Digital em busca de especialista Linux

    Publicado em 19/04/2017 às 17:18 | 466228 leituras

  1. Baixe o curso de shell script do Julio Cezar Neves

    Publicado em 07/04/2008 às 19:41 | 440596 leituras

  1. Seminário sobre gestão de privilégios do Linux dá direito a certificado CPE

    Publicado em 23/05/2017 às 10:35 | 382820 leituras

  1. Novo evento "Universidade Livre" será realizado em Belém/PA em 06/05/2017

    Publicado em 28/04/2017 às 11:19 | 228853 leituras

  1. 4Linux abre vagas para Líder Técnico em São Paulo e Brasília

    Publicado em 25/07/2017 às 14:12 | 222155 leituras

  1. Resultado da promoção do FISL 10 sai hoje

    Publicado em 10/06/2009 às 8:01 | 8506 leituras

  1. Cloud2b vai investir R$ 1,5 mi em treinamento de talentos para nuvem

    Publicado em 28/06/2013 às 12:09 | 10370 leituras

  1. Funcionários da Cobra Tecnologia aderem á greve em vários estados

    Publicado em 27/11/2014 às 15:19 | 9953 leituras

  1. Alog adere ao projeto OpenStack

    Publicado em 18/01/2012 às 12:48 | 9408 leituras

  1. FISL 9.0: Intel e Canonical atuando juntas

    Publicado em 17/04/2008 às 18:17 | 9480 leituras

whitepapers

mais whitepapers