Cree servicios back-end de nube en IBM Bluemix para construir aplicaciones móviles y de web rápidamente

28-06-2014
PDF (1667 KB)
 

Andrew Das

Solution Architect - CAMS

Solution Architect - CAMS

Regístrese para IBM Bluemix
Esta plataforma de nube contiene servicios gratuitos, tiempos de ejecución e infraestructura para ayudarle a construir y desplegar su siguiente aplicación móvil o de web.

El proceso de desarrollo de la aplicación móvil es altamente iterativo y de rápido ritmo, con un énfasis en la creatividad front-end. Los desarrolladores móviles tienen poco tiempo, o incluso habilidades para dedicarse a construir servicios de infraestructura y back-end. Afortunadamente, estas restricciones en los desarrolladores móviles se están resolviendo con la reciente popularidad de PaaS. PaaS ofrece un rico conjunto de servicios con la flexibilidad para cablear servicios de soporte rápidamente tales como bases de datos, analítica, seguridad y DevOps, minimizando el tiempo que los desarrolladores móviles tienen que ocupar construyendo el back-end. Lo que es más importante, estos servicios pueden migrarse fácilmente de un arenero de desarrollo a un ambiente de producción en la nube sin tener que dejar las comodidades de un navegador o una ventana de línea de comando.

Siendo un conocedor de vinos, decidí crear una simple aplicación móvil que guardó una lista de mis vinos favoritos. También quise que fuera capaz de hacer búsquedas en la lista y desde luego ser capaz de editar, agregar y remover las capturas para mantenerlo actualizado y listo para impresionar a mis amigos.

Después de escuchar el anuncio de IBM PaaS denominado Bluemix, yo quería determinar si podía mejorar mi productividad con esta nueva plataforma. Dado que soy un conocedor de vinos, decidí crear una simple aplicación móvil que guardara una lista de mis vinos favoritos. También quería ser capaz de hacer búsquedas en la lista y desde luego ser capaz de editar, agregar y remover registros para mantenerla actualizada y lista para impresionar a mis amigos.

Dado que soy propietario de un teléfono Android y de un Apple iPad, opté por crear una aplicación que pudiera correr en dispositivos múltiples. Al empezar mi camino creativo, pensé qué herramienta me ayudaría más a lograr mi objetivo. IBM ofrece una plataforma de desarrollo móvil denominada IBM Worklight® que permite que los desarrolladores construyan tanto sus aplicaciones móviles híbridas como nativas. En mi caso, sentí que una aplicación de web híbrida era más apropiada porque su enfoque es “escriba una vez y córrala en cualquier dispositivo” ¡IBM Worklight era la herramienta perfecta para el trabajo!

Después, necesitaré una base de datos para guardar mi colección de vino para realizar las operaciones típicas de Crear (Create), Leer (Read), Actualizar (Update), Borrar (Delete) (CRUD), incluyendo la búsqueda de texto. Vi el catálogos de servicios de Bluemix y descubrí un host de servicios de administración de datos En relación con otras bases de datos NoSQL, Cloudant pareció ser una buena elección para las aplicaciones móviles dado que su integración de almacenamiento fuera de línea con PouchDB y una analítica superior.

Con la base de datos seleccionada ahora yo tenía que considerar una capa de interfaz de datos para mediar entre mi aplicación móvil y la base de datos Cloudant. Dada mi familiaridad con JavaScript y un deseo de mantener homogéneo su lenguaje de programación sentí que Node.js sería la elección más apropiada para una plataforma de ejecución. Al sentirme cómodo con mis elecciones pude construir mi aplicación móvil con Cloudant, Node.js y Worklight.

Este artículo le muestra la forma paso por paso de crear y desplegar servicios de nube back-end en Bluemix y construir aplicaciones móviles y de web rápidamente ¡Empecemos!

Lo que necesita para construir su aplicación

 
  • Una cuenta Bluemix para crear y acceder a los servicios Cloudant y Node.js
  • Cualquier IDE de su elección para desarrollar código Javascript, específicamente Node.js
  • Herramientas de prueba REST como cURL, o Advanced REST Client (una aplicación Google Chrome)
  • Worklight Studio for Developers v6.1

Paso 1. Cree un tiempo de ejecución de una aplicación Node.js en Bluemix

 
  1. Inicie una sesión en Bluemix.
  2. Haga clic en Agregue una aplicación para ver el catálogo de servicios.
  3. Haga clic en Node.js bajo Runtimes.
  4. Haga clic en CREATE APP.
  5. Llene los detalles en Finish agregando el panel Node.js. Seleccione un espacio (el predeterminado es "dev") y capture el nombre de una aplicación y host. Después haga clic enCREATE.

Ahora ya se creó la aplicación y deberá estar disponible en su Tablero. Si hace clic en la miniatura, se le llevará a la sección de generalidades. Aquí puede monitorear el tiempo de ejecución Node.js, haga cambios a la configuración de memoria, ver la documentación o vincular otros servicios y adiciones.

Paso 2. Cree y vincule un servicio Cloudant

 
  1. En la sección de generalidades (Overiew) de la aplicación Node.js recién creada, haga clic en Agregue un servicio .
  2. Esto lo lleva al catálogo. Haga clic en Cloudant JSONDB bajo la sección Data Management.

    Haga clic para ampliar la imagen

  3. En el desplegable subsecuente, haga clic en CREATE AND ADD TO APP.
  4. Llene los detalles en Finish agregando el panel Cloudant JSONDB. Seleccione el espacio y el nombre de la aplicación que creó en el Paso 1.5. Puede cambiar el nombre del servicio predeterminado si lo prefiere. También introduzca la información de su cuenta Cloudant. Si aún no tiene una cuenta Cloudant, haga clic en el vínculo de registro. Después del registro, escriba el URL y credenciales que se crearon durante el registro.
  5. Una vez que se agregue el servicio, se le ha redirigido a la sección de Generalidades y su servicio Cloudant recién creado aparece bajo la sección de Servicios. Si hace clic en la sección Quick Doc , puede ver Instantiation Credentials en una estructura JSON. Ahora cualquier aplicación en Bluemix ligada a esta instancia puede usar este servicio para conectarse a su base de datos Cloudant.

Paso 3. Poblar la base de datos Cloudant

 

Se necesitan dos archivos del repositorio del código del proyecto Node.js en DevOps Services. El archivo wines.json contiene una lista de vinos muestra y el archivo winesearch.design contiene el código MapReduce para indexar los documentos para la búsqueda.

Ahora puede poblar la base de datos Cloudant usando los contenidos de estos archivos. A pesar de que puede usar cURL, es más fácil ilustrar las llamadas REST API usando una herramienta visual como la aplicación Advanced REST Client de Google Chrome que está disponible en la tienda Chrome app store.

  1. Primero agregue por volumen los documentos de vino con una solicitud de POST a https://<cloudant_url>/<db>/_bulk_docs. El cuerpo de las cargas útiles deberán incluir contenidos del archivo wines.json y "Content-Type" del encabezado de la solicitud deberá establecerse en application/json.

    Aquí tiene un ejemplo de uso del cliente Advanced REST (en Chrome):

    Haga clic para ampliar la imagen

  2. Después, agregue el diseño de MapReduce con una solicitud PUT para https://<cloudant_url>/<db>/_design/<design name>. Le puede dar cualquier nombre significativo para el nombre del diseño, por ejemplo winesearch. Copie y pegue los contenidos del documento winesearch.design al área de carga útil

    Aquí tiene un ejemplo del uso de Advanced REST del cliente (en Chrome):

    Haga clic para ampliar la imagen

  3. Ahora inicie la sesión en su tablero Cloudant para confirmar si creó su diseño y todos sus documentos bajo la base de datos correcta.

    Haga clic para ampliar la imagen

Paso 4. Vea y modifique el código Node.js

 
  1. Extraiga la carpeta de vinos del proyecto del repositorio node.js. Vea los contenidos de los archivos.
  2. Edite el archivo manifest.yml. Reemplace el nombre del servicio Cloudant JSON-b3 con el nombre generado por Bluemix de su servicio Cloudant. Cambie el valor del host para reflejar el host correcto. También modifique el nombre de la aplicación para igualar la aplicación Node.js en Bluemix.
  3. Edite el archivo package.json. Cambie el valor del nombre para igualar la aplicación Node.js en Bluemix.
  4. Edite el archivo cloudantDB.js bajo la carpeta de rutas. Cambie todos los valores marcados dentro de los corchetes (< >) para reflejar su ambiente.

Paso 5. Despliegue el código Node.js a Bluemix

 
  1. Inicie una sesión en Bluemix vía la línea de comando. Si no ha usado Bluemix para desplegar las aplicaciones Node.js con anterioridad empiecen por lo siguiente: tutorial. Los comandos aquí lo asisten en algunos de los requisitos previos de una sola vez, incluyendo las configuraciones de inicio de sesión.
  2. En la línea de comando, navegue en el directorio de vinos para emitir los comandos Bluemix (cf) para desplegar su código.
  3. Para desplegar la aplicación, emita el siguiente comando:
     cf push <appname>
  4. Una vez que se ha iniciado la aplicación, puede verificar que se ha desplegado emitiendo el siguiente comando:
    cf app <appname>

Paso 6. Pruebe su despliegue Bluemix

 

Emita una consulta GET de cURL o cliente Advanced REST de Chrome. Una transacción exitosa deberá devolver un documento JSON con un código HTTP de 200.

Pruebe la conectividad de REST a la base de datos Cloudant

  1. Inicie la sesión en Cloudant a través del navegador Chrome.
  2. En una diferente pestaña (mismo navegador), emita una solicitud GET HTTP a la base de datos Cloudant. Este enfoque guarda las credenciales de inicio de sesión de Cloudant al caché de cookie del navegador, ahorrándole el trabajo adicional de poblar los encabezados de Basic Authentication en el cliente REST. La sintaxis URL para la consulta GET es https://<url_to_cloudant>/<db_name>. La respuesta es un documento de estatus JSON. Asegure que dentro de la respuesta de carga útil dentro del valor doc_count está 8. Aquí se muestra un ejemplo:

Haga clic para ampliar la imagen

Pruebe la conectividad REST a la aplicación Node.js en Bluemix

  1. Abra el cliente Advanced REST en Chrome
  2. Emita una solicitud GET HTTP a la aplicación hospedada de Bluemix. La sintaxis de la solicitud es http://<application_url>/wines. La respuesta correcta es un documento JSON conteniendo una lista de vinos y un Código HTTP de 200. Aquí se muestra un ejemplo:

    Haga clic para ampliar la imagen

    Nota: Podría preguntarse por qué la respuesta contiene una cuenta de fila total de 9. Esto es porque hay una fila adicional que contiene el documento del diseño de búsqueda. Para propósitos de nuestra aplicación puede ignorar esto por ahora.

Paso 7. Importe y modifique la aplicación Worklight

 
  1. Con el código back-end desplegado y verificado, ahora puede importar la aplicación muestra de Worklight en Worklight Studio. Este tutorial lo lleva la mano a través de los pasos para descargar e instalar Worklight Studio for Developers v6.1.
  2. Importe el archivo del proyecto Worklight BlueMixProject.zip, del repositorio del código Worklight a su espacio de trabajo de Worklight Studio.
  3. Edite el archivo CloudantAdapter.xml.
  4. Cambie el valor de domain para equiparar el URL de la aplicación Bluemix.

    Haga clic para ampliar la imagen

  5. Haga un clic derecho en BlueMixProject->adapters->CloudantAdapter y haga clic en Run As->Deploy Worklight Adapter.
  6. Haga un clic derecho en BlueMixProject->apps->WinesApp y haga clic en Run As->1. Corra Worklight Development Server. Esto inicia el servidor de desarrollo local Worklight antes de que despliegue el adaptador. Si le interesa aprender más sobre las funciones del adaptador de Worklight, visite Generalidades de los adaptadores IBM Worklight .

Paso 8. Pruebe su aplicación Worklight Sample

 
  1. Ahora está listo para probar la aplicación móvil en el emulador del navegador móvil de Worklight. Haga clic en BlueMixProject->adapters->WinesApp y haga clic en Run As->3. Vista previa
  2. El seleccionar Preview invoca la ventana del navegador de internet y despliega la página de lanzamiento de la aplicación (en este caso, WinesApp).

Conclusión

 

¡Allí lo tiene! Con 150 líneas de código (sin incluir la aplicación de Worklight), hemos construido un servicio back-end corriendo en Node.js con una base de datos Cloudant. La facilidad y la simplicidad con la que desplegamos esta aplicación aumentaron nuestra productividad por una orden de magnitud, ahorrándonos incontables horas. Este enfoque de desarrollo basado en la nube con IBM Bluemix ofrece la ruta más corta para construir la siguiente gran aplicación móvil.

Agregar un comentario

Nota: los elementos en HTML no son soportados dentro de los comentarios.


quedan 1000 caracteres

developerWorks: Ingrese

Los campos obligatorios están marcados con un asterisco (*).


¿Necesita un IBM ID?
¿Olvidó su IBM ID?


¿Olvidó su Password?
Cambie su Password

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


La primera vez que inicie sesión en developerWorks, se creará un perfil para usted. La información en su propio perfil (nombre, país/región y nombre de la empresa) se muestra al público y acompañará a cualquier contenido que publique, a menos que opte por la opción de ocultar el nombre de su empresa. Puede actualizar su cuenta de IBM en cualquier momento.

Toda la información enviada es segura.

Elija su nombre para mostrar



La primera vez que inicia sesión en developerWorks se crea un perfil para usted, teniendo que elegir un nombre para mostrar en el mismo. Este nombre acompañará el contenido que usted publique en developerWorks.

Por favor elija un nombre de 3 - 31 caracteres. Su nombre de usuario debe ser único en la comunidad developerWorks y debe ser distinto a su dirección de email por motivos de privacidad.

Los campos obligatorios están marcados con un asterisco (*).

(Por favor elija un nombre de 3 - 31 caracteres.)

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


Toda la información enviada es segura.

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=90
Zone=Cloud computing, Desarrollo móvil
ArticleID=980265
ArticleTitle=Cree servicios back-end de nube en IBM Bluemix para construir aplicaciones móviles y de web rápidamente
publish-date=06282014