PDF de programación - Use la aplicación Codename: BlueMix DataCache service in a Node.js

Use la aplicación Codename: BlueMix DataCache service in a Node.jsgráfica de visualizaciones

Publicado el 17 de Julio del 2017
539 visualizaciones desde el 17 de Julio del 2017
300,3 KB
8 paginas
Creado hace 9a (07/07/2014)
Use la aplicación Codename: BlueMix DataCache
service in a Node.js
Michele Crudele
Software Architect
IBM

07-03-2014

Este artículo explica cómo usar la aplicación Codename: BlueMix DataCache service in a
Node.js. También proporciona una biblioteca del cliente que usted puede ampliar y usar en
otras aplicaciones Node.js alojadas en BlueMix.

Un caché de datos distribuido puede mejorar el tiempo de respuesta al nivel de una presentación
de una aplicación centrada en la nube al poner en caché las respuestas a solicitudes frecuentes
del usuario. Un caché distribuido también tiene el beneficio de descargar la capa del servicio de
datos: los componentes de la aplicación que proporcionan persistencia de datos. Un servicio de
caché distribuido le ayuda a construir aplicaciones que responden.

Este artículo explica cómo usar el servicio DataCache en una aplicación Node.js alojada por
Codename: BlueMix. DataCache es un caché distribuido (operado por la tecnología WebSphere
eXtreme Scale) que puede usar como un almacén de datos eficiente y confiable de valor clave.
Yo le doy un módulo de cliente Node.js que usted puede ampliar y usar en las aplicaciones que
elija alojar en BlueMix. Usted usa el servicio DataCache sobre la red a través de su REST API.
El módulo de cliente abstrae los bits REST, proporcionando métodos de nivel más alto para
administrar objetos de valores claves.
Lo que necesita para construir una aplicación similar

• Estar familiarizado con la escritura de aplicaciones Web en un ambiente de desarrollo de un

Node.js utilizando el framework de la aplicación Web Express y el motor de matrices Jade

• Conocimientos básicos de la plataforma Cloud Foundry (el cimiento de BlueMix) y el modelo

de programación de composición del servicio

• JazzHub y cuentas BlueMix
• La interfaz de la línea de comando cf que puede descargar directamente de BlueMix Web UI

“ Un servicio de caché distribuido que le ayuda a construir
aplicaciones que responden. ”

© Copyright IBM Corporation 2014
Use la aplicación Codename: BlueMix DataCache service in a
Node.js

Marcas
Pagina 1 de 8

developerWorks®

ibm.com/developerWorks/ssa/

Ejecutar la aplicación

Obtener el código en JazzHub

Nota: Si quiere usar un fork en el código para este ejercicio en JazzHub, haga clic en el botón
EDIT CODE en la esquina superior derecha (capture sus credenciales JazzHub si no ha iniciado
sesión todavía y haga clic en el botón FORK del menú para crear un proyecto nuevo.

Node.js para desarrolladores Java

Administre los requisitos no funcionales para las aplicaciones de la nube
Paso 1: Despliegue la aplicación a BlueMix

Obtenga el código. Para usar la línea de comando Git para descargar el código de mi proyecto
JazzHub a un directorio local llamado datacache-sample, ejecute:

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

Ahora despliegue la aplicación a BlueMix:

1. Inicie sesión en su cuenta BlueMix usando la línea de comando cf.
2. Seleccione un nombre único para su aplicación (estoy usando datacache-sample. Cámbielo

3. Ejecute estos comandos, donde THIS_APP representa el nombre que haya elegido para la

al que usted quiera)

aplicación:
cd datacache-sample cf push THIS_APP

El comando push le da salida a información verbosa a la consola. Las últimas líneas de un
despliegue exitoso se ven como esto:

-----> Uploading droplet (16M) 1 of 1 instances running App started Showing health and status for app
datacache-sample in org [email protected] / space dev as [email protected]... OK requested state: started
instances: 1/1 usage: 1G x 1 instances urls: datacache-sample.ng.bluemix.net state since cpu memory disk #0
running 2014-02-21 06:04:16 PM 0.0% 12.1M of 1G 35.5M of 1G

Ahora se puede conectar a la aplicación apuntando con su navegador a
http://THIS_APP.ng.bluemix.net (consulte la Figura 1).

Use la aplicación Codename: BlueMix DataCache service in a
Node.js

Pagina 2 de 8

ibm.com/developerWorks/ssa/

developerWorks®

Figura 1. Página principal de aplicaciones inmediatamente después del
despliegue

Paso 2: Vincule un servicio DataCache a la aplicación

Oops — Se me olvidó mencionar que primero necesita vincular un servicio DataCache a la
aplicación, lo que da cuenta de las instrucciones del comando en la Figura 1. No hay necesidad
de entrar en pánico. Puede hacer eso simplemente reiniciando la aplicación. Ejecute el comando
que se lista en la página:

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

Después de volver a cargar la página, puede ver que la aplicación le da algunas opciones
utilizables ahora (consulte la Figura 2).

Use la aplicación Codename: BlueMix DataCache service in a
Node.js

Pagina 3 de 8

developerWorks®

ibm.com/developerWorks/ssa/

Figura 2. Página principal de aplicaciones después de que se vincula un
servicio DataCache a la aplicación

¿Qué sucedió? ¿Cómo sabe que no se había asociado un servicio DataCache con la aplicación al
principio?

Si abre datacache-sample/app.js (que es el módulo principal de la aplicación, el que inicia el
servidor Web), usted verá el código que verifica la presencia del servicio DataCache en la parte
superior — en la definición de la variable de ambiente VCAP_SERVICE:

var app = express(); if ( process.env.VCAP_APP_PORT ) { // We are in BlueMix if (process.env.VCAP_SERVICES)
var env = JSON.parse(process.env.VCAP_SERVICES); } if ( env && env['DataCache-1.0']
&& env['DataCache-1.0'][0] && env['DataCache-1.0'][0].credentials ) { //
Create the DataCache client app.locals.dcClt = new DCClient(env['DataCache-1.0'][0].credentials); }

DCClient es el módulo que oculta los bits de REST API del servicio de DataCache, ofreciendo
métodos de un nivel más alto También se encarga de distribuir el objeto de credentials que
contiene parámetros de conectividad para el servicio de DataCache. DCClient se implementa en
el archivo datacache-sample/wxs.js.

Se almacena una referencia a DCClient en la variable app.locals.dcClt para que las rutas
Express puedan acceder a ellas. La ruta responsable de entregar la página de índice (datacache-
sample/routes/index.js) ejecuta la verificación:

exports.index = function(req, res){ res.render('index', { title: 'DataCache Example Application',
dataCacheBound: (req.app.locals.ecClt?true:false) }); };

El código anterior entrega la matriz Jade datacache-sample/views/index.jade pasando
el parámetro. dataCacheBound El motor de matrices Jade verifica el valor de la variable
dataCacheBound y construye la página principal de esa manera entregando ya sea la página en la
Figura 1 o la pagina en la Figura 2.

Use la aplicación Codename: BlueMix DataCache service in a
Node.js

Pagina 4 de 8

ibm.com/developerWorks/ssa/

developerWorks®

Paso 3: Insertar claves
Para almacenar un objeto de valor clave en la instancia DataCache que está vinculada a la
aplicación, haga clic en Insert a key into a map en la página principal.

Cuando usted crea un servicio DataCache, se crea un mapa predeterminado donde se almacenan
sus objetos de valor clave, para que pueda dejar el campo de entrada Map vacío. Pero en
algunos casos, usted puede querer especificar diferentes opciones de caché para objetos
diferentes. En esos casos, usted puede especificar un mapa y el tiempo de vida (TTL) de los
objetos de valor clave que contiene. Usted especifica el valor TTL en un sufijo al nombre del
mapa:

• Un mapa cuyo nombre termina con: .NONE no expira. Para eliminar el mapa, debe usar un

comando explícito.

• Un mapa cuyo nombre termina con: .LUT define un tiempo de expiración para sus objetos

con base en la última hora de su actualización (LUT): Se borrarán automáticamente si no son
actualizados por más que el TTL. El valor predeterminado para TTL es una hora.

• Un mapa cuyo nombre termina con: .LAT define un tiempo de expiración para sus objetos

con base en el tiempo del último acceso (LAT): Se eliminan automáticamente si no se accede
a ellos por más del TTL. El valor predeterminado para TTL es una hora.

• Un mapa cuyo nombre termina con .CT define un tiempo de expiración para sus objetos con
base en el momento de su creación (CT): Son eliminados automáticamente después de CT
más TTL. El valor predeterminado de TTL es una hora.

Intente usar la aplicación para poner en caché objetos de valor clave en diferentes tipos de
mapas. Si el valor es un objeto JSON, establezca el campo de tipo de contenido a application/
json. Si es un objeto XML, establézcalo a application/xml. Para cualquier otro tipo de valor, dejar
el campo tipo de contenido como application/octet-stream.

Establezca un nombre de mapa sin ninguno de los sufijos y vea que sucede.

Un sólo archivo — datacache-sample/routes/map.js — contiene todas las rutas exprés para
manejar las operaciones del DataCache. Esta es la porción del archivo que maneja la inserción de
un objeto de valor clave:

exports.postkey = function(req, res) { var dcClt = req.app.locals.dcClt; if ( dcClt ) { var map =
req.body.map; if ( map && map.trim().length==0 ) map = null; dcClt.put(map, req.body.key,
req.body.value, req.body.contentType, function(err) { if ( err ) { var msg = 'Cannot insert key *' +
req.body.key + '* with value *' + req.body.value + '* and contentType *' + req.body.contentType + '*.';
var dtls = 'Message details. Status: ' + err.status + ', Message: ' + err.message; res.render('response',
{ title: 'Error', message: msg, details: dtls }); } else { msg = 'The key *' + req.body.key + '* has been
inserted into map with value *' + req.body.value + '* and contentType *' + req.body.contentType + '*.';
res.render('response', { title: 'Success', message: msg}); } }); } else { res.render('response', { title:
'Error', message: 'There is no DataCache service associated with the App.' }); } };

dcClt.put() es el método para llamar para insertar un objeto en un mapa. Usted pasa el mapa,
clav
  • Links de descarga
http://lwp-l.com/pdf5410

Comentarios de: Use la aplicación Codename: BlueMix DataCache service in a Node.js (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad