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:
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.

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.
Búsquedas potentes en texto no estructurado |
El 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 Análisis de datos en tiempo real Menos coste Escalabilidad |
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 
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 Mayor disponibilidad Menos coste Uso transparente |
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
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
Las ventajas de CachéBases de datos blindadas Configuraciones de alta disponibilidad con tolerancia ante fallos |
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é 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:
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.
Guía Tecnológica Caché