Visual FoxPro como origen de datos

Una forma diferente de integrar Visual FoxPro en una solución empresarial es usarlo como un componente, pero no necesariamente como la aplicación principal. En efecto, puede usarlo como servidor para una aplicación escrita con otro producto. En este caso, el usuario no verá directamente Visual FoxPro. En lugar de ello, la interfaz de usuario de la aplicación estará programada con herramientas de la otra aplicación y se comunicará en un segundo plano con Visual FoxPro para obtener o manipular datos.

Visual FoxPro funciona bien en este papel porque puede ofrecer su motor de base de datos, que proporciona acceso rápido a datos a otras aplicaciones. Además, puede poner sus objetos y comandos a disposición de otros programas, incluidos objetos personalizados que el usuario puede crear.

Poner los datos de Visual FoxPro a disposición de otros programas

Una forma de que una aplicación de ámbito empresarial aproveche Visual FoxPro es usar el motor de base de datos de Visual FoxPro para almacenar y administrar datos. Esto proporciona almacenamiento de alto rendimiento y posibilidad de consulta para otros programas.

Los programas pueden conectar con los datos de Visual FoxPro mediante el proveedor OLE DB de Visual FoxPro. Este proveedor ofrece el motor de bases de datos de Visual FoxPro para comandos VFP SQL estándar.

Por ejemplo, una aplicación puede usar Microsoft Excel como herramienta de cálculo para análisis de datos complejos. Si los datos que hay que manipular son muy flexibles, es posible que resulte más adecuado almacenarlos en una base de datos que en una hoja. Entonces la hoja se podría crear de modo que use el proveedor OLE DB de Visual FoxPro para conectarse a la base de datos, extraer la información relevante y mostrarla en una hoja para su procesamiento posterior.

Otro ejemplo podría ser una aplicación de quiosco, como un expositor de información en un aeropuerto o en un centro de convenciones. Podría crear la presentación de información mediante un programa de creación multimedia. Pero si algunos de los datos de la aplicación cambiaran a menudo, sería incómodo cambiar páginas de la presentación. En lugar de ello, el programa de presentación podría conectarse a una base de datos de Visual FoxPro mediante el proveedor OLE DB y extraer los datos en tiempo de ejecución.

Para obtener más información, consulte los temas de ayuda del proveedor OLE DB de Visual FoxPro.

Poner los objetos y comandos de Visual FoxPro a disposición de otros programas

Además de poner los datos de Visual FoxPro a disposición de otros programas como parte de una solución empresarial, puede ofrecer los objetos y comandos de Visual FoxPro. Otras aplicaciones pueden llamar a los métodos y establecer propiedades de los objetos de Visual FoxPro; incluidos no sólo los objetos de base, sino también los objetos definidos en clases personalizadas.

Por ejemplo, puede crear una aplicación en Microsoft Excel que almacene datos en una base de datos de Visual FoxPro. Además, para simplificar la lectura y escritura de datos, Microsoft Excel puede llamar a los comandos de Visual FoxPro para mostrar un formulario como un cuadro de diálogo. Una posible utilización es reunir datos para una vista parametrizada.

Otra forma de ofrecer objetos Visual FoxPro es crear un servidor de automatización. Esto le permite crear objetos específicos de la aplicación que pueden realizar casi cualquier función que pueda programar en Visual FoxPro, con la ventaja de que puede distribuir el servidor.

Un uso de un servidor personalizado es crear un objeto que incluya un conjunto de reglas de empresa que aseguren la integridad de los datos que le pase otra aplicación. Por ejemplo, puede crear un objeto en Visual FoxPro para almacenar información de empleados que no sólo valide que la aplicación ha pasado información de empleados válida, sino que compruebe el nivel de acceso del usuario para garantizar que el usuario tenga acceso de seguridad para realizar cambios en los empleados.

Un servidor personalizado también puede ofrecer un objeto que incorpore lógica compleja para actualizar o leer información. Por ejemplo, es posible que un objeto de entrada de pedidos pueda no sólo almacenar el pedido, sino también mantener un registro de transacciones de pedidos, un inventario de actualizaciones, calcular una comisión de ventas, etc.

Este tipo de servidor de automatización es ideal para crear la "capa intermedia" de una aplicación empresarial de tres niveles. En este modelo, los datos forman el nivel más bajo y la aplicación forma el más alto. La funcionalidad está en el nivel medio, y proporciona una vista específica independiente de la aplicación de los datos que incorpora reglas de empresa (u otras posibilidades de proceso de datos) que no pertenecen exactamente a los datos ni a la aplicación.

Para obtener información acerca de la creación de servidores de automatización personalizados, vea Crear servidores de Automatización en Agregar OLE.

Crear un almacén de datos con Visual FoxPro

Además de crear la aplicación en Visual FoxPro, puede usar el programa para crear y mantener un almacén de datos o una versión de sus datos optimizada para informes. Para crear un almacén de datos debe realizar una copia de los datos necesarios para realizar informes y, a continuación, ponerlos a disposición de los usuarios que los necesiten. Manteniendo estos datos separados de los datos actuales puede:

  • Estructurarlos para que la elaboración de informes sea más sencilla y más rápida que si los usuarios crearan informes a partir de los datos actuales.
  • Colocar datos para informes en una ubicación distinta que los datos actuales, lo cual reduce la contienda entre datos, mejora el rendimiento y pone los datos a disposición de usuarios que no deben ver los datos actuales por motivos de seguridad.

Un almacén de datos es una "instantánea" de los datos obtenida en el momento de su creación. Los datos del almacén se actualizan periódicamente, programando la actualización de acuerdo con las necesidades de creación de informes de la aplicación.

Por ejemplo, suponga que está creando una aplicación para administrar una biblioteca, incluido un inventario de materiales. Durante el día, el sistema se usa constantemente a medida que los clientes sacan y devuelven material, y consultan el sistema para buscar o reservar libros. Además de administrar estas transacciones individuales, los bibliotecarios desean poder analizar su biblioteca para determinar hechos como los libros más populares, los libros cuyos plazos de préstamo han vencido, etc.

Para ayudarle en el análisis, la aplicación puede crear un almacén de datos a partir de la información de transacciones. La aplicación puede almacenar los datos periódicamente (por ejemplo, todas las noches) y los bibliotecarios pueden crear consultas sin que ello afecte al rendimiento del sistema durante el día. Además, el almacén de datos puede excluir detalles acerca de los clientes que usan la biblioteca, porque esta información no es necesaria para el análisis y se podría considerar información confidencial.

Para obtener el mayor beneficio de un almacén de datos, debe crearse en un servidor distinto de los datos actuales. Si los datos actuales y el almacén de datos están en el mismo servidor, aún puede beneficiarse de tener los datos optimizados en el almacén. Sin embargo, a medida que los usuarios hagan consultas al almacén, pueden generar una gran cantidad de tráfico de red que podría afectar al rendimiento del sistema actual.

Al crear el almacén de datos, simplemente debe copiar los archivos actuales sobre los archivos paralelos en el almacén de datos. O bien, puede reestructurar los datos del almacén para optimizarlos con el fin de crear informes. Por ejemplo, puede crear índices de los datos del almacén que reduzcan la sobrecarga que suponga la creación de informes.

Como otro ejemplo, los datos de una aplicación actual deben normalizarse para evitar la duplicación de datos. Sin embargo, podría ser útil combinar tablas en el almacén de datos que de otro modo serían independientes; esto puede eliminar la necesidad de combinar tablas, facilitando a usuarios menos experimentados la creación de informes.

También puede ajustar el nivel de detalle del almacén de datos a los requisitos de creación de informes de su aplicación. Para mayor flexibilidad, debe almacenar el mismo nivel de detalle en el almacén de datos que el que tiene en los datos actuales. Sin embargo, si los usuarios sólo van a crear informes resumen (como hojas de cálculo o gráficos), podría eliminar los datos detallados de la aplicación y almacenar únicamente datos resumidos en el almacén de datos.

Usar Visual FoxPro como motor de búsqueda en World Wide Web

Si la solución empresarial incluye la creación de un servidor World Wide Web para Internet, puede incorporar Visual FoxPro a la aplicación como motor de búsqueda. Esto le permite poner la eficacia de su base de datos de Visual FoxPro a disposición de aquéllos que puedan tener acceso a su servidor Web a través de Internet o a través de una intranet en la empresa.

Por ejemplo, suponga que como parte de la intranet empresarial desea poner un directorio de empleados a disposición de la empresa. Los empleados podrían apuntar con sus exploradores a una página "Buscar el empleado", que mostraría una página con la apariencia de un formulario de Visual FoxPro, con cuadros de texto para introducir criterios. Para realizar una búsqueda, los usuarios escribirían el nombre del empleado, la extensión de teléfono, el departamento, el cargo u otra información disponible y, a continuación, elegirían un botón Buscar ahora. En unos instantes verían un listado de los empleados que cumplen los criterios de búsqueda. Podrían guardar la lista como archivo de texto que podrían importar en otro programa, como un procesador de textos.

Descripción de Visual FoxPro como motor de búsqueda de Web

En general, para usar Visual FoxPro como servidor de información para Web, necesitará estos componentes:

  • Un servidor Web con servicio HTTP, que ejecute el sistema operativo Microsoft Windows NT o Windows 2000.
  • Una aplicación de Visual FoxPro que se pueda llamar como servidor de automatización. Esta aplicación se puede ejecutar en cualquier servidor al que tenga acceso el servidor Web.
  • Un medio que muestre resultados de búsqueda, que normalmente consiste en una plantilla de página Web en la que puede insertar datos.

La secuencia usual de eventos que implica una búsqueda de Visual FoxPro en Web es:

  1. El usuario muestra la página de búsqueda de su aplicación señalando con un explorador de Web. La página de búsqueda incluye el gráfico o texto que desee, más cuadros de texto en los que el usuario puede escribir texto de búsqueda.
  2. El usuario elige un botón "Buscar ahora". Los datos de un formulario cumplimentado se envían a un servidor Web para ser procesados, junto con el nombre de la aplicación de búsqueda de páginas Web.
  3. El servidor Web llama a su aplicación mediante el protocolo ISAPI (Internet Server API), pasándole un parámetro que contiene la información de búsqueda.
  4. La aplicación busca en la base de datos. Cuando obtiene resultados, los inserta en una plantilla de página Web y, a continuación, devuelve la página Web al servidor como una secuencia de caracteres.
  5. El servidor Web envía la página de resultados al explorador que inició la búsqueda.
  6. El explorador muestra al usuario la página resultados.

Si ha creado páginas Web, la mayor parte de los pasos de este proceso le resultarán familiares. Por ejemplo, es posible que ya sepa cómo crear páginas Web. Aunque no esté familiarizado con el diseño de páginas Web, probablemente le resultará bastante sencillo el proceso de crear estas páginas.

Para ver un ejemplo de cómo usar Visual FoxPro como motor de búsqueda de Web, vea el ejemplo Foxisapi.dll en el directorio ...\Samples\Servers\Foxisapi de Visual FoxPro. Lea el archivo Readme.txt de ese directorio para obtener detalles acerca de cómo ejecutar el ejemplo.

Vea también

Visual FoxPro como aplicación cliente | Desarrollo para la empresa | Soluciones empresariales de Visual FoxPro | Crear servidores de Automatización | Agregar OLE