Modelo Cliente/Servidor
El modelo Cliente/Servidor de Magic es flexible y permite la fácil distribución de: Datos, Presentación y Procesos. El mismo lenguaje de programación corre tanto en el cliente, como en el servidor, proporcionando independencia de: la plataforma, el sistema operativo, el protocolo de comunicación (TCP/IP) y la base de datos. MAGIC soporta diferentes modelos de procesamiento que le permite trabajar simultáneamente con ambientes: centralizados basados en un procesador principal (en caracteres o gráfico), Modo frontal basados en un Servidor de Base de Datos, Cliente/Servidor con distribución de proceso.
Niveles de integración que cubre
Desde el punto de vista de integración se pueden distinguir tres niveles: programación, consultas no planeadas, análisis y presentaciones gráficas. A continuación se describe cada una de ellas y como son cubiertas por MAGIC.
Programación
En este nivel lo que se busca es una herramienta altamente productiva, transportable, y que permita una amplia interoperabilidad entre plataformas. Debe ser una herramienta que un ambiente visual y altamente automatizado permita construir vistas de información que provienen de diferentes fuentes (Dataware housing). Su interfaz que soporta tanto un ambiente gráfico GUI (Graphical User Interface), como de caracteres TUI (Text User Interface), permite el desarrollo de aplicaciones con presentaciones heterogéneas usando un paradigma de programación uniforme.
MAGIC cubre este nivel ampliamente proporcionando una herramienta integral, cuyo paradigma de programación libre de código permite una alta productividad, en las diferentes fases del ciclo de vida de una aplicación. Este paradigma permite la portabilidad inmediata libre de procesos de compilación y ligado; y la instrumentación de estrategias de migración con un bajo costo.
En el ciclo de vida de una aplicación MAGIC ofrece beneficios en tiempo, presupuesto que se mencionan a continuación:
En la fase de desarrollo se garantiza una productividad de al menos 4:1 sobre un 4GL. Con base en una metodología prototipal se pueden tener desarrollos de aplicaciones de misión crítica en un plazo muy breve. En la Secretaría de Marina (México) se desarrolló una nómina con normatividad federal y militar en ocho semanas.
En la fase de implantación se tienen los siguientes beneficios: modificaciones inmediatas aún cuando afecte el modelo de datos, migración a diferentes ambientes con un mínimo esfuerzo (no existe procesos de compilación ni ligado), recursos para la puesta a punto en diferentes ambientes (incluyendo facilidades para la distribución de proceso y manejo de sentencias SQL). Esto abate los tiempos de implantación en por lo menos un 70%; Rolls Royce (Inglaterra) reportó un ahorro inicial de $450,000 USD en su reingeniería de sistemas.
En la fase de mantenimiento MAGIC proporciona procesos automatizados que permite un mantenimiento eficiente y de bajo costo. Considerando que esta fase representa el 80% del ciclo de vida de una aplicación, aquí es donde se tienen los mayores beneficios en tiempo y presupuesto. AGROASEMEX (México) inicio en 1997 una migración de sistemas desde el 4GL de Informix hacia MAGIC estimando un ahorro en: tiempo de mas del 45% (alrededor de 40 meses considerados inicialmente) y presupuesto de mas del 50% (sobre una base inicial de 1.2 Millones de dólares).
Consultas no planeadas
En este nivel lo que se busca es una herramienta que de facilidades al usuario final para las consultas de datos no planeadas, que permita la usuario la explotación de la información y la elaboración de reportes.
MAGIC proporciona un módulo de ejecución integrado que contiene un conjunto de funciones interconstruídas, las cuáles pueden ser habilitadas o no por el programador, tales como: localización y búsqueda de registros, consultas por rangos, ordenamiento, clasificación de registros.
El módulo de
ejecución incorpora también un generador de reportes. Las facilidades que ofrece al usuario final el módulo de ejecución de MAGIC ahorran un tiempo considerable de programación en el ciclo de vida completo de la aplicación, principalmente en el diseño de reportes y requerimientos para consultas.
Análisis y Presentaciones Gráficas
Lo que se busca en este nivel de integración es el manejo de la información en un ambiente gráfico amigable de uso sencillo para vistas gráficas que muestren tendencias, con herramientas poderosas para el análisis de información.
MAGIC en sus versiones para Windows permite el intercambio de datos DDE y soporta OLE (y en la versi´n más reciente, soporta COM, ActiveX, XML, etc.), que permiten la integración con otros productos en ambientes MS-Windows. Por lo cuál es posible construir interfaces para ligar en forma dinámica los datos generados con herramientas que corran en WINDOWS, con fines de análisis, explotación y vistas gráficas. Y el despliegue en un navegador de red (Explorer/Netscape) también es posible con un esfuerzo mínimo utilizando el generador de aplicaciones para el browser client.
![]()
Desarrollo de Aplicaciones para el WEB
Usando el mismo paradigma de desarrollo se pueden crear complejas aplicaciones Internet/Intranet enfocadas por ejemplo, al Comercio Electrónico. Magic permite utilizar HTML, Java, XML, otros lenguajes para la creación de vistas de información, soportando también los estándares del “middleware” incluyendo CORBA y sus integraciones con el MQSeries y DataQ de IBM, entre otros.
Magic y las Bases de Datos Relacionales
Magic es un producto de Sistemas Abiertos y es precisamente en el tema de la interoperabilidad cuando se hace necesaria para aplicaciones Web y Cliente/Servidor donde se destacan los conceptos de su arquitectura.
Esto significa que puede ser usado para desarrollar aplicaciones que podrán ejecutarse en una gran variedad de Plataformas de Hardware y Sistemas Operativos, accesando información de los principales manejadores tanto de archivos como de Bases de Datos Relacionales (RDBMS). Lo anterior se puede dar debido a la creación de productos específicos para cada RDBMS (gateways) que funcionan como ligas con las que los programadores pueden tener acceso simultaneo a múltiples bases de datos de diferentes proveedores y ejecutar procesos que muestren información de diferentes RDBMS en un solo programa.
En adición a la generación automática de sentencias SQL, el programador puede escribir sus propios procedimientos SQL integrándose fácilmente a la programación Magic.


