Introducción. En los procesos cotidianos de interacción entre un usuario y su terminal de computador existen una serie de secuencias de acciones bidireccionales realizadas a través de diferentes dispositivos de entrada-salida (teclado, ratón, pantalla,...), y que son función de decisiones del usuario, resultados o peticiones de información de diversas aplicaciones informáticas,..., que en su conjunto conforman un proceso de interacción usuario-computador.

Esta teoría pretende ser una introducción al nuevo concepto del autoactivador que asienta las primeras bases para venideros desarrollos necesarios y que el progreso del software hará realidad.

Es posible que esta primera teoría sea el inicio de una nueva generación de sistemas operativos totalmente orientados a satisfacer las necesidades del usuario, fomentando con ello un elevado entorno de calidad y progreso en nuestra sociedad.

Motivación.

El conjunto de actividades citadas anteriormente en el apartado de la introducción pueden considerarse como un proceso de interacción usuario-computador que es posible emular informáticamente, y en consecuencia, Automatizar y Activar, con la finalidad de simplificar las actividades cotidianas del usuario.

Un ejemplo de ello podría ser la secuencia de un usuario, que desde el terminal de su computador, consulta una base de datos de un determinado fabricante y captura una serie de datos de ella, que después utiliza en una hoja de cálculo de otro fabricante, y cuyos resultados son la fuente de datos de una aplicación programada particular que ofrece unos nuevos resultados.

Esta información, junto con otros diversos datos obtenidos de otras computadoras en red bajo diferentes sistemas operativos, y junto con otros valores obtenidos de diversas páginas de internet o intranet, son fuente de datos para otra base de datos diferente de otro fabricante, etc.

Toda esta secuencia podría ser automatizada según los criterios del usuario mediante una memorización y una programación visual muy intuitiva en una interface gráfica de usuario, de forma que se obtuviese una cierta compatibilidad de la información ante entornos diversos, aumentando el nivel de integración del sistema.

Debido a esta motivación se genera el concepto informático de AutoActivador (AutoActivator).


Conceptos.

Capacidad para memorizar cualquier secuencia de acciones de entrada-salida entre un usuario y su terminal de computador, de forma bidireccional:

Si a través de un dispositivo de entrada (teclado, ratón,...) el usuario realiza una secuencia de interacción con diversas aplicaciones, que pueden estar implementadas por diferentes fabricantes / programadores en diferentes lenguajes / entornos de programación, el AutoActivador debe poder memorizar esta secuencia.

As well, if the computer makes a interaction sequence with the user, through information of results in an output device (screen...) of one or several applications, that one can be implemented by different manufacturers or programmers, the Autoactivator must be able to save this sequence (capture of images...).

A su vez, si el computador realiza una secuencia de interacción con el usuario, a través de información de resultados en un dispositivo de salida (pantalla,...) de una o varias aplicaciones que pueden estar implementadas por diferentes fabricantes / programadores, el AutoActivador debe poder memorizar esta secuencia (captura de imágenes,...).

A través de la información memorizada de las secuencias realizadas, mediante un adecuado reconocimiento de la información disponible y una interpretación de los resultados obtenidos, se genera un entorno de programación para emular todo el proceso de interacción usuario-computador, tanto en modo local como en modo remoto (internet, intranet,...), generando las secuencias de acciones bidireccionales adecuadas.

Reconocimiento de caracteres y de imágenes objeto.

El uso de técnicas de selección y captura de imagen dentro de una interface gráfica de usuario es una de las bases fundamentales para el funcionamiento del autoactivador, así como la necesidad de reconocimiento de caracteres cuando sea factible, o el establecimiento de reconocimiento de objetos mediante grados de comparación frente a un patrón de referencia establecido por el usuario.

En este sentido, una vez reconocida una serie de caracteres o una imagen objeto, se necesita establecer una asignación de información a una variable que represente el reconocimiento realizado, para que sea de utilidad al proceso a realizar por el autoactivador.

A su vez, es necesario un entorno de programación de alto nivel que disponga adecuadamente las variables con la información del reconocimiento realizado dentro del proceso a efectuar por el autoactivador.

Memorización de secuencia de usuario y programación.

Otra de las actividades que debe soportar el autoactivador de sistemas operativos es la de poder memorizar la secuencia completa que el usuario realiza dentro de la interfaz gráfica de usuario (GUI, Graphical User Interface), a modo de un script visual que pueda ser convenientemente modificado, con objeto de que el autoactivador este en condiciones de reproducir ese script visual programado cuando sea necesario, con la misma eficacia con la que el usuario trazo la secuencia manual en su origen.

Dado que en la secuencia manual que el usuario establece dentro de la interface gráfica esta condicionada a determinadas decisiones del usuario en función de la información que observa, es necesario establecer un lenguaje de programación de alto nivel que permita emular las decisiones del usuario en función de determinados criterios a establecer, utilizando las variables con las informaciones reconocidas de salida provenientes de pantalla,..., e insertando adecuadamente las interacciones de entrada provenientes de ratón, teclado,...

Así, un entorno de programación visual muy intuitivo, a través de metodologías de programación estructuradas y sencillas, sería una solución muy adecuada para adoptar un lenguaje de programación de alto nivel con la finalidad anteriormente citada (un ejemplo podría ser el entorno de programación visual por “cableado de unión” entre los iconos de las diversas estructuras de programación, u otros lenguajes de entorno visual como Basic, C, Java,..., disponibles en función de las preferencias del usuario, dado que la pretensión del autoactivador de sistemas operativos es adaptarse a las necesidades del usuario en un concepto fundamental de calidad).

Lenguajes de programación de alto nivel.

En el apartado anterior ya se ha tratado la necesidad de un entorno de programación de alto nivel dentro del concepto del autoactivador de sistemas operativos; es conveniente destacar que es adecuado disponer de un variado entorno de lenguajes de programación a utilizar dado que se pretende orientar el autoactivador de sistemas operativos a las necesidades del usuario.

Es posible que sea necesario realizar actividades de desarrollo, de mantenimiento, de auditoría, de administración, etc., que necesiten de herramientas y utilidades de nivel diferente a las que necesiten los usuarios habituales del autoactivador de sistemas operativos, pero conviene destacar que el enfoque del autoactivador esta orientado al usuario en un entorno de calidad, intentando facilitar la labor diaria del usuario, minimizando el esfuerzo necesario para la adecuada aplicación del autoactivador.

Por ello, un lenguaje de alto nivel de fuerte entorno visual, fácil de asimilar, y un entorno rico en lenguajes disponibles de alto nivel, son de eficaz ayuda en la orientación al cliente usuario, puesto que es el autoactivador el que trata de adaptarse a los conocimientos y a las necesidades del cliente usuario y a su forma de trabajo, aumentando los niveles de calidad.

Es posible que, en este sentido, puedan ser desarrollados módulos avanzados en entornos de sistemas expertos e inteligencia artificial con la finalidad de satisfacer necesidades más desarrolladas del trabajo y del comportamiento humano.

Procesamiento interactivo y procesamiento por lotes.

Hasta la aparición de este concepto de autoactivador de sistemas operativos las secuencias de trabajo habituales entre el terminal del computador y el usuario han sido en forma interactiva en general.

La idea del autoactivador es suplir al usuario emulando su secuencia de trabajo, y en este sentido, se mantiene el procesamiento interactivo entre el terminal de computador y el autoactivador.

Puesto que dentro de un rango programado el autoactivador emula la secuencia de trabajo habitual del usuario, es posible también el procesamiento por lotes en cola del trabajo del autoactivador, en función de necesidades automatizadas, aumentando el rendimiento del trabajo realizado por el usuario (por ejemplo, la realización de una determinada secuencia de trabajo por la noche, en un día festivo, en vacaciones,..., emulando la secuencia de actuación del usuario).

Compatibilidad de aplicaciones y orientación al usuario.

El desarrollo de aplicaciones diversas por diferentes fabricantes no siempre ha estado caracterizado por una buena compatibilidad de productos, generando con ello esfuerzos considerables de trabajo para el cliente usuario, tanto en su busca de soluciones manuales como en la habitual necesidad de aprendizaje de nuevos conocimientos de aplicaciones para solucionar incompatibilidades.

Esta pluralidad de aplicaciones y tecnologías es pauta habitual en el desarrollo tecnológico, pero la adaptación del cliente usuario a esta progresión y diversidad también genera una desfocalización y descentralización del usuario en la realización, desarrollo, y mejora de su trabajo concreto en particular, puesto que debe dedicar fuertes recursos propios de tiempo, esfuerzo,..., a asimilar conocimientos de nuevos productos no totalmente compatibles con los que habitualmente utiliza.

El autoactivador de sistemas operativos trata de amortiguar este proceso de adaptación del cliente usuario a nuevos y antiguos productos favoreciendo un entorno de compatibilidad mediante los sistemas de emulación de secuencia habitual de trabajo del usuario, la captura de información, el reconocimiento de objetos, la adecuada y sencilla programación visual, y el control de los elementos de interactuación de entrada / salida.

La finalidad última de este entorno de compatibilidad entre aplicaciones diversas es generar un autoactivador de sistemas operativos fuertemente orientado hacia el usuario, que tenga su máxima de calidad en la satisfacción de las necesidades de trabajo del cliente usuario..

Integración.

Continuando con la materia expuesta en el apartado anterior con respecto a la compatibilidad de aplicaciones diversas y orientación al usuario, el autoactivador de sistemas operativos tiene la pretensión de generar un entorno de integración de diversas aplicaciones, sistemas operativos, redes, intranet, internet, extranet, etc., dentro del entorno de una interface gráfica de usuario, con el objetivo de ofrecer un entorno de alta calidad al cliente usuario.

En este sentido puede decirse que el autoactivador genera el marco idóneo para un proceso de integración global del entorno del usuario.

Estructuras de sistemas operativos a desarrollar.


El conjunto expuesto debe permitir los sistemas tradicionales de interprete de mandatos (shell) y de archivos de mandatos (shell scripts).

En la determinación de la estructura de los sistemas operativos podemos estimar la existencia de capas como el núcleo / kernel (que presenta una estrecha relación con el hardware), como los servicios / llamadas al sistema mediante interfaz de programación / API Application Programming Interface (gestión de procesos, memoria, entrada / salida, archivos / directorios, comunicación / sincronización, seguridad / protección), como el intérprete de mandatos / shell mediante interfaz de usuario textual o gráfica,..., así como entornos cliente-servidor.

El entorno citado debe adaptarse a las necesidades impuestas por el autoactivador para que el usuario pueda tener un aumento de su calidad de trabajo en todos los sentidos, permaneciendo oculta toda la complejidad de adaptación expuesta bajo la interfaz gráfica.

Este proceso de adaptación de las actividades del kernel, de los servicios, del shell, del entorno cliente-servidor,..., a las necesidades del autoactivador supondrá el mayor esfuerzo de desarrollo evolutivo del software hacia la consecución de los objetivos de alta calidad para el trabajo del cliente usuario, que en definitiva es el ser humano.

La utilización del autoactivador como sistema de alta calidad para el usuario supone un enfoque adaptativo del planificador del kernel (scheduler) para seleccionar el proceso a ejecutar y del activador (dispatcher) para poner en ejecución el proceso seleccionado por el planificador hacia las necesidades impuestas por el usuario a través del autoactivador.

Los procesos complejos de planificación y activación mediante interrupciones, algoritmos,..., deberán adaptarse a las consideraciones de funcionamiento del autoactivador mediante un avance y progreso del software en sistemas operativos.

Multitarea y Multiusuario son conceptos de sistemas operativos que deben alcanzar una progresión evolutiva dentro de las posibilidades que ofrece el nuevo concepto del autoactivador de sistemas operativos, dado que una automatización de la secuencia de interacción de los usuarios con sus terminales de computador supone una complejidad añadida a las tareas a soportar por el sistema operativo bajo el entorno del autoactivador.

La gestión de actividades propias de los sistemas operativos como los procesos, la memoria, los archivos y los directorios, las entradas y las salidas, los interbloqueos, las prioridades, la sincronización, las comunicaciones,..., bajo las pautas de calidad establecidas por el autoactivador necesitan de las adecuadas adaptaciones al nuevo concepto, que como se ha comentado en los apartados anteriores, estarán supeditadas al progreso del software.

Cuestiones como la seguridad y la protección (accesos / autentificación, registros, cifrado,...) deben extrapolarse al concepto del autoactivador, así como un sistema de documentación, mantenimiento y auditoría (pistas de auditoría), monitorización, modelización, tratamiento de errores, entornos de desarrollo, entornos de explotación, entornos de pruebas,..., que contribuyan a la consolidación de la calidad del trabajo del usuario.

La existencia de un sistema de ayuda interactiva al usuario en el entorno del autoactivador es una parte fundamental que debe ser implementada, al igual que la disponibilidad de utilidades y herramientas de sistema, de navegabilidad y de análisis, tanto para el usuario, como para el desarrollador y el administrador.

Dadas las características del autoactivador de sistemas operativos, también es necesaria una adaptación en entornos de sistemas operativos distribuidos, clusters, y middleware

Próximos sistemas operativos.

En un próximo futuro es posible que los fabricantes de software implementen en sus sistemas operativos comerciales la aplicación de alto nivel “AutoActivador (AutoActivator)” en favor de proporcionar al usuario un mayor soporte.

Conclusión.

De este modo el “AUTOACTIVADOR (AUTOACTIVATOR)” realiza una doble vertiente, por un lado emula la parte requerida de lo que el usuario realiza cotidianamente con su terminal de computador, convirtiéndose en “El Piloto Automático de la Nave Computador”, y por otro lado, supone un “Nexo de unión entre diferentes fabricantes de software y hardware. Compatibilidad. Integración.”.