Guía Tecnológica Caché

Capítulo segundo:
Servidor de datos multidimensional de Caché (continuación)

BÚSQUEDA DE TEXTO CON WORD-AWARE

Caché soporta búsqueda de texto libre en la que se pueden hacer consultas de texto que contenga palabras de interés, aun cuando las palabras reales del texto sean variantes de las palabras de la búsqueda.

Para utilizar la búsqueda con word-aware, el campo de texto debe estar indexado para este tipo de búsqueda, lo que se consigue con los pasos siguientes:

  1. Las palabras especificadas en el campo de texto son las que se identifican en primer lugar.
  2. Se eliminan las palabras muy frecuentes que reduzcan el valor de la búsqueda (por ejemplo, se eliminan palabras como “el” o “para”).
  3. Las palabras restantes se reducen a su raíz (por ejemplo, “búsqueda” pasa a ser “buscar” y “flores” a “flor”).
  4. Las palabras resultantes se indexan.

En la búsqueda con Word-Aware, normalmente se procesa en primer lugar el texto de búsqueda de forma similar, y a continuación se utiliza el índice para generar las coincidencias.

Word-Aware Indexing

Los índices para detección de términos de interés se mantienen mediante las actualizaciones de objetos y de SQL. Lo más normal es que la búsqueda se realice a través de consultas SQL, aunque el código del procedimiento puede utilizar directamente los índices. Esas consultas pueden incluir lógica AND/OR para efectuar búsquedas más sofisticadas.

Los algoritmos de Word-Aware son específicos del idioma natural que se utilice. La búsqueda con detección de términos de interés está disponible para una amplia variedad de idiomas, incluidos el alemán, español, francés, inglés, italiano, japonés, portugués.  Se están incorporando más idiomas.

Word-Aware Searching

 

Búsquedas potentes en texto no estructurado
Se pueden buscar fácilmente palabras clave y relacionadas en texto no estructurado, como las notas o los documentos de los facultativos.
 
Búsquedas ultrarrápidas
Con la búsqueda con detección de términos de interés y la tecnología de mapa de bits de Caché, se pueden realizar búsquedas en volúmenes de texto masivos en una fracción de segundo.

 

Indexación con mapa de bits transaccional

Caché proporciona de forma exclusiva Indexación con mapa de bits transaccional, que puede incrementar radicalmente el rendimiento de las consultas complejas, ofreciendo mayor rapidez en las consultas del almacén de datos sobre datos dinámicos.

Traditional and Bit-Map IndexingEl rendimiento de la base de datos depende fundamentalmente de disponer de índices sobre las propiedades que se utilizan con más frecuencia en las búsquedas de la base de datos. La mayoría de las bases de datos utilizan índices que, por cada valor posible de la columna o propiedad, mantienen una lista de los id de fila (o id de objeto) de las filas/objetos que tienen ese valor.

Un índice de bitmap es otro tipo de índice.  Los índices bitmap contienen un mapa de bits asignado por cada posible valor de la columna/propiedad, con un bit fila/objeto que se almacena.  Un bit 1 significa que la fila/objeto tiene ese valor de la columna/propiedad.

La ventaja de los índices bitmap está en que las consultas complejas pueden procesarse realizando operaciones lógicas (AND, OR) sobre los índices, determinando exactamente qué instancias (filas) cumplen las condiciones de la consulta, sin tener que buscar en toda la base de datos. Con frecuencia, los índices bitmap pueden reducir los tiempos de respuesta de las consultas que realizan búsquedas en grandes volúmenes de datos, multiplicando por 100 o más su efectividad.

Los bitmap suelen sufrir dos problemas: a) su actualización en bases de datos relacionales puede ser muy lenta, y b) pueden llegar a ocupar mucho espacio de almacenamiento.  Por lo tanto, raramente se utilizan para aplicaciones de proceso de transacciones con bases de datos relacionales.

Caché ha incorporado una nueva tecnología ("índices bitmap transaccionales") que aprovecha las estructuras de datos multidimensionales para eliminar estos dos problemas.   La actualización de estos bitmap suele ser más rápida que la de los índices tradicionales y utilizan técnicas de compresión sofisticadas para reducir radicalmente el espacio de almacenamiento.  El resultado es un bitmap ultra rápido que puede utilizarse para buscar en millones de registros en tan solo una fracción de segundo sobre una base de datos de proceso de transacciones en línea.  Las aplicaciones de Business Intelligence y Datawarehosing pueden trabajar con datos "dinámicos".

Caché ofrece índices tradicionales y bitmap  transaccionales.  Caché también soporta índices multicolumna.  Por ejemplo, un índice sobre Provincia y ModeloCoche puede identificar rápidamente qué personas tienen un coche de un tipo concreto que está registrado en una provincia determinada.

Las ventajas de Caché

Consultas radicalmente más rápidas
Mediante la utilización de técnicas de bitmapping transaccional, los usuarios pueden conseguir búsquedas extremadamente rápidas sobre grandes bases de datos (buscar en millones de registros en una fracción de segundo) en sistemas usados principalmente para proceso transaccional.

Análisis de datos en tiempo real
La Indexación con bitmap transaccional de Caché permite realizar análisis de los datos en tiempo real sobre datos totalmente actualizados.

Menos coste
No es necesario disponer de un segundo ordenador dedicado a almacén de datos y soporte a la decisión.  Tampoco existe la necesidad de realizar operaciones diarias de transferencias de datos al segundo sistema ni de administradores responsables de su soporte.

Escalabilidad
La velocidad de los índices de mapa de bits transaccionales mejora la capacidad de crear sistemas con enormes cantidades de datos que necesitan mantenimiento y búsquedas periódicas.


Enterprise Cache Protocol para sistemas distribuidos

Rendimiento escalable en sistemas distribuidos
Enterprise Cache Protocol (ECP) de InterSystems es una tecnología de alto rendimiento y escalable que permite a los ordenadores de un sistema distribuido utilizar sus bases de datos entre ellos. Para utilizar ECP no es necesario realizar cambios en la aplicación porque simplemente trata la base de datos como si fuera local.
 
Este es el modo de funcionamiento de ECP. Cada Servidor de Aplicaciones incluye su propio Servidor de Datos, que puede actuar sobre los datos que residen en sus propios sistemas de discos o en bloques que se le han transferido de otro Servidor de Datos mediante ECP.  Cuando un cliente realiza una solicitud de información, el Servidor de Aplicaciones de Caché intenta responder a la solicitud desde su memoria cache local. Si no puede, solicitará los datos necesarios al Servidor de Datos de Caché remoto. La respuesta incluye los bloques de la base de datos donde están almacenados los datos.

Estos bloques se almacenan en la memoria intermedia cache del Servidor de Aplicaciones, donde estarán disponibles para todas las aplicaciones que se ejecuten en ese servidor. ECP se encarga automáticamente de gestionar la coherencia de la memoria cache en la red y de volver a enviar cualquier cambio a los Servidores de Datos. Las ventajas de rendimiento y escalabilidad de ECP son enormes. Los clientes disfrutan de las respuestas rápidas porque utilizan frecuentemente los datos almacenados en memoria cache. Y el almacenamiento en memoria cache reduce enormemente el tráfico de red entre los servidores de bases de datos y de aplicaciones, por lo que cualquier red puede soportar muchos más servidores y clientes.

Enterprise Cache Protocol
DataServer

Facilidad de uso - Sin cambios en la aplicación

El uso de ECP es transparente para las aplicaciones.  Las aplicaciones diseñadas para ejecutarse en un servidor único se ejecutan en un entorno multiservidor sin cambios. Para utilizar ECP, el gestor del sistema simplemente identifica uno o más Servidores de Datos en un Servidor de Aplicaciones y después utiliza el Mapeo dinámico de Namespaces para indicar que las referencias a algunas o todas las estructuras globales (o partes de las estructuras globales) corresponden a ese Servidor de Datos remoto.

Flexibilidad de configuración

Cada sistema Caché puede funcionar como Servidor de Aplicaciones y como Servidor de Datos para otros sistemas.  ECP soporta cualquier combinación de Servidores de Aplicaciones y Servidores de Datos y cualquier topología punto-a-punto de hasta 255 sistemas.

Las ventajas de Caché

Escalabilidad masiva
Enterprise Cache Protocol de Caché permite añadir servidores de aplicaciones, a medida que aumentan las necesidades de uso, utilizando cada uno la base de datos como si se tratase de una base de datos local.  Si el rendimiento del disco se convierte en un cuello de botella, pueden añadirse más Servidores de Datos, creando particiones lógicas de la base de datos.

Mayor disponibilidad
El fallo de un Servidor de Aplicaciones afecta a menos personas porque los usuarios están distribuidos en múltiples ordenadores.  Si se produce la "caída" y rearranque de un Servidor de Datos, o un corte de luz temporal en la red, los Servidores de Aplicaciones pueden seguir procesando sin advertirse nada salvo una pequeña pausa.   En algunas configuraciones, también es posible configurar que el Servidor de Datos se recupere sobre un Servidor Shadow (de respaldo) o sistema en cluster, mejorándose aún más la fiabilidad.

Menos coste
Es posible combinar un gran número de ordenadores de bajo coste para formar un sistema muy potente que soporte proceso masivo ("Grid Computing").

Uso transparente
No es necesario escribir las aplicaciones específicamente para ECP. Las aplicaciones de Caché pueden aprovechar automáticamente las ventajas de ECP sin realizar cambios.


TOLERANCIA A FALLOS

Incluso los entornos más rigurosos pueden ser víctimas de incidencias inesperadas: errores del hardware, fallos de alimentación o sucesos tan graves como inundaciones u otros desastres naturales – pero los hospitales, las telecomunicaciones y otros servicios críticos no se pueden permitir una “caída”. A fin de satisfacer estándares tan exigentes, Caché está diseñado para recuperarse con facilidad de fallos de alimentación, y ofrece gran variedad de opciones de recuperación de fallos para reducir o eliminar el impacto sobre los usuarios.

Caché Write-Image Journaling y otras características garantizan la integridad de la base de datos para la mayoría de los tipos de errores de hardware – incluidos los fallos de alimentación – lo que permite una rápida recuperación y minimiza las consecuencias para los usuarios.

Caché proporciona además opciones de configuración de alta disponibilidad para reducir en mayor medida o eliminar el impacto sobre los usuarios, entre ellas:

  • Clusters de recuperación de fallos
  • Servidores Shadow
  • ECP distribuido

Clusters de recuperación de fallos

Utilizando hardware en clusters de recuperación de fallos, los servidores de datos comparten acceso a los mismos discos, pero sólo uno ejecuta Caché de forma activa en un momento determinado. Si el servidor activo falla, Caché se inicia automáticamente en otro servidor, que asume las responsabilidades de proceso. Los usuarios pueden iniciar la sesión inmediatamente en el nuevo servidor.

Servidores Shadow

Los servidores Shadow de Caché son servidores de respaldo que están “conectados débilmente”mediante TCP. El servidor principal envía constantemente un registro lógico de la base de datos al servidor Shadow, de modo que el servidor Shadow siempre tiene una copia “casi idéntica” de la base de datos. La automatización del cambio al servidor Shadow es menor que la de los clusters de recuperación de fallos, pero se mejora la capacidad de recuperación porque el hardware no está conectado físicamente: el servidor Shadow puede encontrarse incluso en una ubicación diferente.

Se puede combinar un servidor Shadow con un cluster de recuperación de fallos, para aumentar aún más la tolerancia ante fallos.

ECP distribuido

En los sistemas distribuidos que utilizan Enterprise Cache Protocol (ECP), los servidores de aplicaciones intentan volver a conectar después de un corte de luz temporal en la red o de la caída y rearranque de un Servidor de Datos. Si pueden volver a conectar satisfactoriamente después de un periodo de tiempo especificado, los Servidores de Aplicaciones reenvían todas las solicitudes no completadas y las operaciones continúan sin que los usuarios adviertan nada salvo una pequeña pausa.  

Si falla un Servidor de aplicaciones ECP, sólo se verán afectados los usuarios de ese Servidor de aplicaciones. Acto seguido podrán iniciar la sesión en otro Servidor de aplicaciones para seguir trabajando.

Los Servidores de datos ECP se configuran habitualmente como cluster de recuperación de fallos. Si se produce una caída del Servidor de datos principal, el Servidor de datos de respaldo sustituye al Servidor de datos que ha fallado y las operaciones continúan de forma ininterrumpida, sin ninguna alteración para los usuarios salvo una ligera pausa.

An ECP Fail-over Cluster
An ECP Fail-over Cluster

 

Las ventajas de Caché

Bases de datos blindadas
Caché Write-Image Journaling y otras características garantizan la integridad de la base de datos para la mayoría de los tipos de errores de hardware, incluidos los fallos de alimentación.

Configuraciones de alta disponibilidad con tolerancia ante fallos
El uso de servidores Shadow de Caché, ECP y/o clusters de recuperación de fallos permite la rápida recuperación de fallos de alimentación y minimiza o, en algunos casos, elimina, el impacto sobre los usuarios.

 

Modelo de seguridad

Caché está certificado por Common Critedia EAL 3. Caché tiene un modelo de seguridad moderno diseñado para dar soporte al desarrollo de aplicaciones de tres formas:

Caché Security Model

Caché proporciona estas funciones de seguridad a la vez que minimiza la carga sobre el rendimiento de la aplicación.

Usuarios, perfiles, recursos y privilegios

Existen gran variedad de recursos (como bases de datos, aplicaciones y servicios del sistema), y los usuarios deben disponer de permisos (como READ, WRITE o USE) para utilizarlos, asignados por el administrador de seguridad. Además de los recursos definidos en el sistema, el administrador de seguridad puede crear recursos específicos de las aplicaciones y utilizar los mismos mecanismos para conceder y comprobar los permisos.

Para mayor simplicidad, a los usuarios se les asignan generalmente uno o más perfiles (por ejemplo, “Finanzas”, o “Recursos Humanos”), y a continuación el administrador de seguridad asigna privilegios para un recurso concreto a esos perfiles en lugar de a individuos específicos. El usuario hereda todos los privilegios correspondientes a los perfiles a los que pertenece.

Todos los procesos tienen un nombre de usuario asociado, aunque sólo sea “Usuario desconocido”. El nombre de usuario se establece durante la “autenticación”. Un ejemplo sencillo de autenticación es cuando un usuario introduce un nombre de usuario y una contraseña y el sistema comprueba que se ha introducido la contraseña correcta. Después de la autenticación, el nombre del usuario se asigna al proceso y se conceden los permisos asociados a ese nombre de usuario. (Un “usuario” no tiene que ser necesariamente una persona. Podría ser, por ejemplo, un dispositivo de medida que genera datos o una aplicación en ejecución en otro sistema que está conectado a Caché.) Si un usuario no pasa por la autenticación, tendrá el nombre de usuario “Usuario desconocido”, que sólo da derecho a ese proceso a los permisos genéricos.

La conexión a Caché se controla mediante un conjunto de Servicios. Cada Servicio especifica si es Público – es decir, cualquiera puede utilizarlo – o si requiere autenticación y, después de las pruebas de autenticación, el usuario dispone del privilegio de acceso necesario. Los Servicios también se pueden desactivar individualmente, de modo que se rechacen todos los accesos.

La asignación y gestión de privilegios se realiza habitualmente mediante Portal de Gestión del Sistema.

Perfiles asignados por aplicación

A menudo resulta útil para un usuario obtener privilegios adicionales temporalmente en lugar de tenerlos asignados de forma permanente. Por ejemplo, en lugar de que el administrador de seguridad asigne un extenso conjunto de privilegios a un usuario (como la capacidad de acceso y modificación de la base de datos de nóminas), es posible asignar al usuario únicamente el privilegio de acceso a la aplicación de nóminas, y la aplicación puede aumentar a continuación los privilegios del usuario mientras se esté utilizando.

Para llevar a cabo este aumento, hay que asignar los perfiles a las aplicaciones. Al acceder a la aplicación, el usuario adquiere temporalmente puestos adicionales. Los perfiles adicionales pueden ser simplemente una lista que adquiere todo aquél autorizado al utilizar la aplicación, o pueden ser más personalizados, en función de los perfiles que ya tiene el usuario.

Esta característica resulta particularmente útil para aplicaciones basadas en navegador que utilicen CSP (Caché Server Pages). Con CSP, una parte de cada URL especifica un nombre de aplicación. Tras la autenticación y la determinación de que el usuario está autorizado a utilizar esa aplicación CSP, el usuario obtiene temporalmente los perfiles adicionales asignados a esa aplicación durante el intervalo de tiempo que se accede a la página.

El administrador de seguridad también puede asignar a rutinas específicas la capacidad de realizar un aumento de perfiles para obtener los perfiles adicionales de las aplicaciones especificadas, después de pasar las pruebas de seguridad especificadas para el usuario. Este recurso está estrictamente controlado, y es el mecanismo por el que las aplicaciones que no son CSP ejecutan el aumento de perfiles.

Autenticación

Caché soporta varios niveles de autenticación, que pueden variar entre no usar autenticación, utilizar contraseñas o utilizar el protocolo Kerberos para autenticar la identidad de los usuarios. Kerberos proporciona una autenticación muy segura y tiene la ventaja de ser rápido, escalable y fácil de utilizar. Con Kerberos, las contraseñas nunca se transmiten a través de la red, lo que proporciona una medida adicional de seguridad.

Caché soporta la implementación de un sólo inicio de sesión.

Encriptación de la base de datos

Caché soporta dos formas de encriptación de la base de datos:

  • El administrador de seguridad puede especificar que uno o más archivos CACHE.DAT (bases de datos) estén encriptados en el disco. Todo el contenido de esos archivos queda encriptado.
  • Los desarrolladores pueden utilizar funciones de sistema para encriptar/desencriptar los datos, que a continuación se pueden almacenar en la base de datos o transmitir. Esta característica se puede utilizar para cifrar datos confidenciales y protegerlos de otros usuarios que tiene acceso de lectura a la base de datos, pero no la clave.

Por defecto, Caché cifra los datos con una implementación de AES (Advanced Encryption Standard – Estándar avanzado de cifrado), un algoritmo simétrico que da soporte a claves de 128, 192 o 256 bits. Las claves de cifrado se almacenan en una ubicación protegida de la memoria. Caché proporciona funcionalidad completa para la gestión de claves.

El “journal” también se puede encriptar.

Auditoría

Muchas aplicaciones, especialmente aquellas que deben cumplir normativas legales como HIPPA o Sarbanes-Oxley, necesitan proporcionar auditoría segura. En Caché, todos los eventos del sistema y de las aplicaciones se graban en un registro de “sólo incorporación”, que es compatible con cualquier herramienta de consulta o informe que utilice SQL.

Tech Guide

 

Previous Page

Página anterior

Tabla de Contenidos

Página siguiente
Capitulo 3

Next Page