Nota: Este artículo utiliza el Lenguaje de Definición de Datos de Couchbase Analytics a partir de la versión 5.5. Para actualizaciones e información sobre cambios de última hora en versiones más recientes, consulta Cambios en el servicio Couchbase Analytics.

La aplicación creada para la conferencia Couchbase Connect Silicon Valley el pasado otoño incorpora consultas dinámicas N1QL, móviles sin conexión, sensores IoT, consultas ad hoc con análisis, replicación entre centros de datos, conmutación por error, coincidencia de texto difuso y un montón de funciones más.

Puede ver la demostración de la keynote aquíConozca la arquitectura de alto nivel aquíy vea un tutorial completo sobre cómo configurar la demostración aquí.

En este post, voy a ir a través de todos los pasos para configurar y ejecutar la demo. Lo haremos a través de la línea de comandos. (Algunos pasos requieren el cURL herramienta).

Incluyo enlaces directos a vídeos que repasan material similar.

Clonar repositorio y establecer directorio de trabajo

Encontrará el código de la demostración en GitHub. Clone el repositorio y cambie los directorios al nivel superior.

Configuración de Couchbase Server

El proyecto de demostración depende de las nuevas capacidades previstas para Couchbase 5.5. En el momento de escribir este artículo, la versión 5.5 está en fase beta. Descarga e instala Couchbase 5.5 para tu plataforma aquí. Poner en marcha un nodo.

Preparación

Lo siguiente supone que está ejecutando en localhost. Puede ajustarse a un host remoto según sea necesario. Los ejecutables del comando están incluidos en tu instalación de Couchbase. Puede que quieras añadir el directorio tools a tu ruta de comandos. Por ejemplo, en un Mac, puedes hacer algo como esto.

Inicializar el nodo

Para inicializar el primer nodo, necesitamos tres pasos.

  • Configuración básica del usuario administrativo, servicios a ejecutar y asignaciones de memoria.
  • Creación del cubo principal de la aplicación
  • Añadir un usuario independiente para el control de acceso basado en roles.

Ejecute los siguientes comandos para realizar estos pasos.

La mayoría de los parámetros de estos comandos deberían ser fáciles de entender.

Los nodos de Couchbase Server pueden dedicarse a ejecutar un subconjunto de todos los servicios disponibles, parte de lo que se conoce como Escala multidimensional. Aquí, estamos configurando el nodo con todos los servicios que necesita la aplicación.

Las asignaciones de RAM están configuradas en sus valores mínimos. Estos valores no son los que se suelen utilizar en producción, pero son suficientes para los datos que se incluyen aquí.

Tenga en cuenta que la especificación del clúster utiliza una URL personalizada, couchbase://127.0.0.1. Hay otras formas de especificarlo, pero esta es la más fácil. Esto le dice a los comandos que se conecten a Couchbase Server en la máquina local.

Tras ejecutar estos comandos, el nodo tardará unos instantes en calentarse. Dale una breve pausa antes de proceder con los siguientes pasos.

Vídeo relacionado:

Datos

Generamos datos sintéticos realistas de pacientes utilizando el Synthea (Copyright © 2018 The MITRE Corporation). Synthea es de código abierto y de uso gratuito. La demo completa en Connect 2017 utilizó cientos de millones de registros. En el repositorio de fuentes de la demo se ha incluido un conjunto de datos más adecuado para ejecutarlo en una sola máquina. Para cargarlo, ejecute lo siguiente.

Las opciones indican cbimport para esperar un registro por línea y autogenerar la clave del documento a partir del campo id de cada registro.

Vídeo relacionado:

Servicio de concursos

En Servicio de eventos Couchbase es una de las nuevas funciones que se añaden en la versión 5.5. Permite supervisar los cambios en la base de datos y ejecutar funciones JavaScript en respuesta.

En esta aplicación lo utilizamos para monitorizar los datos entrantes de los pacientes. Esto nos permite enviar los datos a la aplicación web, en lugar de depender del sondeo. Para ello se utiliza la función Capacidades de cURL integrado en N1QL.

Para ello, necesitamos configurar una función JavaScript que vigile los cambios en la base de datos. Actualmente el Servicio de Eventos necesita también su propio cubo de metadatos. Configure esta parte con los siguientes comandos.

Aquí está el JavaScript real.

Esta función sólo procesa documentos de "Observación". Extrae algunos elementos que queremos mostrar en la consola web. A continuación, utiliza un cURL para enviar esos datos a un punto final REST en el servidor web.

Vídeo relacionado:

Índices de consulta

La aplicación se basa en una serie de N1QL consultas. Éstas se ejecutarían si se define un índice primario, pero serían lentas. En su lugar, añada tres Índices secundarios globales.

Los datos utilizados en la aplicación siguen el FHIR especificación. Los registros incluyen un resourceType campo. Por ejemplo, "Observación", "Condición" y "Profesional" son todos tipos de recursos. El primer índice optimiza las consultas de este campo.

En el cuadro de mandos se muestran gráficos de temperaturas. Se registran como documentos de "Observación". El segundo índice extrae la información principal que nos interesa mostrar. (De este modo, las búsquedas y la recuperación de los datos pertinentes son rápidas, ya que todo lo que necesitamos está almacenado en el índice.

El último índice se construye a partir de los registros de "Localización". Esto nos permite conectar a los pacientes con su hospital más cercano.

Vídeo relacionado:

Analítica

La aplicación puede examinar algunos datos del historial del caso. Este tipo de análisis libre se adapta mejor al nuevo Servicio de análisis Couchbase (actualmente en preestreno).

El servicio de análisis importa automáticamente los datos de los buckets de las bases de datos operativas a sus propios buckets especiales. A continuación, usted define lo que se conoce como conjuntos de datos sombra. Por último, debe emitir una instrucción para conectar la analítica a sus datos operativos. Después, las consultas se realizan mediante SQL++, un superconjunto de SQL similar a N1QL. Puede obtener más información en este tutorial.

Toda la configuración se realiza mediante la emisión de comandos a través del motor de consulta de análisis. Configura las piezas necesarias para la demo con el siguiente comando.

Aquí están los comandos reales que se ejecutan.

Podrías hacer esto igual de bien desde la interfaz de consulta en la consola web de Couchbase Server, usando las líneas exactamente como se muestra arriba.

Vídeo relacionado:

Couchbase Server Full-Text Search permite la búsqueda de texto completo basada tanto en los campos indexados como en los términos de búsqueda introducidos. Proporciona una gran capacidad de búsqueda en texto libre. En esta aplicación, lo utilizamos para extraer registros basados precisamente en eso: entradas en documentos FHIR reservados para notas no estructuradas.

Configure los índices necesarios del siguiente modo.

El índice es demasiado complicado para analizarlo aquí en su totalidad. Me limitaré a mencionar algunos puntos principales.

Y lo que es más importante, estamos haciendo un análisis lingüístico del nota de un documento "Observación", y el campo motivo de un documento "Encuentro". Se trata de los campos en los que un profesional sanitario puede introducir texto de forma libre.

Otras entradas están ahí para extraer datos simplemente para mostrarlos o para utilizarlos en faceting. Las facetas permiten al usuario restringir y refinar las búsquedas. Es una forma muy eficaz de profundizar en los datos de forma estructurada.

Para más detalles, en un próximo artículo analizaremos el índice y el código FTS.

Vídeo relacionado:

Restricciones de acceso a cURL

N1QL las consultas pueden incluir cURL-. Las utilizamos para enviar actualizaciones a la aplicación web y para obtener datos de geomapping a través de Google.

Dado que estas llamadas se originan en un nodo de servicio de consulta, tienen importantes implicaciones de seguridad. Por lo tanto, por defecto, está desactivada.

Necesitamos autorizar llamadas al endpoint de Google y a una api en el servidor web. Hazlo con el siguiente comando.

Vídeo relacionado:

Pasarela de sincronización

Pasarela de sincronización proporciona el pegamento entre Couchbase Server y la aplicación móvil. También proporciona parte de la lógica de negocio. En este caso, simplemente necesitamos conectarnos a Coucbase Server, configurar la autenticación básica y crear un canal para nuestro usuario principal.

Ejecute Sync Gateway directamente como se indica a continuación.

No estamos utilizando una importación de documentos filtrados aquí, por lo que esto puede tomar un poco de tiempo la primera vez para crear todos los metadatos necesarios.

Vídeo relacionado:

Cliente y servidor web

Instale Node.js. El servidor requiere la versión 7 o superior. Se recomienda utilizar nvm para gestionar las versiones de Node si tiene una instalación existente. (La guía de instalación de nvm se encuentra en aquí.)

Configurar el Cliente Web

El código del cliente web está en web/cliente. En src/config en el código del cliente, actualice serverURI en el index.jspara que apunte a su servidor web. Este es el host del servidor web se está ejecutando. Esto puede ser diferente de donde se ejecuta Couchbase. Por defecto utiliza localhostAsí que si planeas ejecutar todo en una sola máquina, puedes dejarlo como está.

Construir el cliente

Cambie los directorios a web/cliente. Instale los paquetes Node.

Se puede ejecutar en uno de los dos modos, desarrollo o producción. Desarrollo permite una depuración más fácil, y soporta la recarga en caliente, pero es más complicado de configurar. Este modo requiere la ejecución de servidores separados, uno que sirve las páginas de cliente y el otro para exponer la API que necesitamos.

Aquí sólo voy a describir la ejecución en modo de producción. Para el cliente, esto sólo significa ejecutar una compilación.

Cuando termine, esto copiará los archivos finales del cliente a un subdirectorio del directorio del servidor. El servidor Node extraerá el contenido de la aplicación desde allí.

Configuración y ejecución del servidor web

Cambie los directorios a web/servidor. Instale los paquetes Node.

El servidor tiene algunos parámetros que necesitan ser configurados. He incluido un paquete que los extraerá de las variables de entorno o de un archivo llamado .env en el directorio del servidor. Los parámetros se dividen en dos grupos, los necesarios para Notificaciones push de Urban Airshipy los necesarios para conectarse a Couchbase.

Los parámetros son

  • Clave de la aplicación Urban Airship
  • Un secreto maestro de Urban Airship
  • La URL del cluster de Couchbase Server
  • El nombre de usuario y la contraseña de un usuario del clúster CB Server con los privilegios adecuados.
  • Una URL para conectarse a un nodo de Couchbase Server Analytics Service.

Este conjunto de comandos del shell Bash creará una plantilla para usted.

Alternativamente, puedes establecer variables de entorno. Por ejemplo, puede omitir los parámetros del dirigible urbano y configurarlos así.

Si no quieres utilizar la función de notificaciones push de Urban Airship, configura las teclas UA a algo arbitrario.

Ya puedes ejecutar el servidor.

Abra un navegador y vaya a localhost:8080. Debería ver la consola web.

Vídeo relacionado:

Aplicación móvil Android

Abrir móvil/android/CBCHealth en Android Studio para crear la aplicación.

La aplicación móvil para Android utiliza Urban Airship para las notificaciones push. Si quieres incluir esta función, debes rellenar la configuración de Urban Airship con tus propias claves. Consulte mobile/android/CBCHealth/app/src/main/assets/airshipconfig.properties.sample.

Si no desea incluir notificaciones push, elimine la siguiente línea de la aplicación AndroidManifest.xml archivo.

Por defecto, esto construye una versión de la aplicación para su uso con el emulador de Android. Hay un diálogo de entrada suave para introducir lecturas de temperatura.

Si quieres utilizar el parche real con un dispositivo real, tienes que hacer dos cambios.

  1. En mobile/android/CBCHealth/app/build.gradle cambiar def parámetros = ".EMULADOR" a def parámetros = ".DEFAULT" (Véase mobile/android/CBCHealth/app/src/main/java/com/couchbase/mobile/app/launch/Parameters.java para las definiciones de estas entradas)
  2. En mobile/android/CBCHealth/app/src/main/resources/META-INF/services/com.couchbase.mobile.collectors.Collector cambiar com.couchbase.mobile.collectors.temperature.ManualEntry a com.couchbase.mobile.colectores.temperatura.RF430_TMPSNS_EVM

Vídeo relacionado:

Conclusión

Hay mucho que hacer aquí. El propósito de este post es principalmente ponerte en marcha con una aplicación completa que puedes usar para probar varios aspectos de Couchbase.

Próximamente profundizaremos en el código y la configuración.

Posdata

Couchbase es de código abierto y probar gratis.
Empezar con código de ejemplo, consultas de ejemplo, tutoriales y mucho más.
Encuentre otros recursos en nuestra portal para desarrolladores.
Síguenos en Twitter @CouchbaseDev.
Puede enviar preguntas a nuestro foros.
Participamos activamente en Stack Overflow.
Envíame tus preguntas, comentarios, temas que te gustaría ver, etc. a Twitter. @HodGreeley

Autor

Publicado por Hod Greeley, Defensor del Desarrollador, Couchbase

Hod Greeley es desarrollador de Couchbase y vive en Silicon Valley. Tiene más de dos décadas de experiencia como ingeniero de software y director de ingeniería. Ha trabajado en una variedad de campos de software, incluyendo física computacional y química, seguridad informática y de redes, finanzas y móviles. Antes de unirse a Couchbase en 2016, Hod dirigió las relaciones con desarrolladores para móviles en Samsung. Hod es doctor en física química por la Universidad de Columbia.

1 Comentarios

Dejar una respuesta