SciELO - Scientific Electronic Library Online

 
vol.7 número2Procedimiento de mejora de la calidad para el desarrollo de aplicaciones de eNegocioMétodos clásicos de nicho para optimización multimodal: una breve revisión índice de autoresíndice de materiabúsqueda de artículos
Home Pagelista alfabética de revistas  

Servicios Personalizados

Revista

Articulo

Indicadores

  • No hay articulos citadosCitado por SciELO

Links relacionados

  • No hay articulos similaresSimilares en SciELO

Compartir


Revista Cubana de Ciencias Informáticas

versión On-line ISSN 2227-1899

Rev cuba cienc informat vol.7 no.2 La Habana abr.-jun. 2013

 

ARTÍCULO ORIGINAL

 

Componente genérico para la planificación y ejecución de acciones en aplicaciones de software

 

Generic component for planning and execution of actions in software applications

 

 

Guillermo Luzua Farias *, Yoandrys S. Pacheco Jeréz, Karel Ricardo Armán, Darinca Sueiro Rosales

GEYSED. Centro de Geoinformática y Señales Digitales. Departamento de Señales Digitales. Universidad de las Ciencias Informáticas, Carretera a San Antonio de los Baños, km 2½, Torrens, Boyeros, La Habana, Cuba. CP.: 19370. *E-mail: gluzua@uci.cu.

 

 


RESUMEN

De todas las actividades y procesos que se implementan dentro de cualquier entidad, se puede afirmar que el proceso de planificación es un eslabón clave dentro de los resultados que se obtienen y el nivel de efectividad que se alcanza en los mismos. En este proceso es donde se acota y define la visión del objetivo que se quiere obtener. También es donde se hace un análisis del entorno donde se debe incidir y cómo proyectarse hacia el mismo. Además, se crean las metas u objetivos que se quieren alcanzar y se establecen cuáles son las acciones que se deben realizar para satisfacer los mismos. La planificación también incluye la definición del tiempo de inicio y fin de una determinada tarea. En el presente trabajo se expone el Componente de Gestión de Planificaciones Genéricas que se creó en el Centro de Desarrollo Geoinformática y Señales Digitales de la Universidad de las Ciencias Informáticas. El mismo gestiona todo el proceso de planificación de las tareas a ejecutar por una aplicación de software. Este componente es capaz de planificar tareas asociadas a los recursos y acciones que posea la aplicación de software. Al mismo tiempo, cuando una tarea debe de iniciarse, el componente se encarga de ordenar al software la ejecución de la misma. El componente automatiza la ejecución de los procesos planificados de un software, reduciendo el gasto de recursos humanos en la ejecución manual de estas tareas.

Palabras clave: componente, ejecutar, planificación, tarea.


ABSTRACT

Of all the activities and processes that are implemented within an organization, we can say that the planning process is a key link in the results obtained and the level of effectiveness that is achieved in them. In this process is where narrows the vision and defines the objective to be obtained. It is also where is performed an analysis of the environment where they must influence and as projected into the same. Planning also includes the defining the start and end time of a given task. In this paper we presented the Component a Generic Planning Manager created in the center of development Geoinformatics and digital signs, of the University of Informatics Sciences. It manages the entire process of planning the tasks to be performed by a software application. This component is able to schedule tasks associated a resources and actions you have the software application. At the same time, when a task must start, the component is in charge the order of software the execution herself. The component automates the execution of planned processes of a software, reducing the cost of human resources in of manual execution of these tasks.

Key words: component, executing, planning, task.


 

 

INTRODUCCIÓN

En un Comunicado de prensa que emitió la (ITU, 2009) se pueden constatar los avances de las Tecnologías de la Informática y las Comunicaciones en el mundo. La informática se ha convertido en una rama económica que ha crecido a nivel mundial. En la actualidad, la producción de software está marcando pautas en las relaciones económicas a nivel internacional. En este desarrollo se encuentran enmarcados los sistemas de gestión de software. Estas tecnologías son cada vez más crecientes y sofisticadas, lo que le permite a entidades la reducción de tiempo de desarrollo, el ahorro de recursos humanos, económicos y la obtención de resultados satisfactorios. De todas las actividades y procesos que se implementan dentro de cualquier entidad, se puede afirmar que el proceso de planificación es un eslabón clave dentro de los resultados que se obtienen y el nivel de efectividad que se alcanza en los mismos. Según Corrillo (2008) planificar es proveer cómo evaluar procesos y resultados, identificando los recursos necesarios para realizar acciones.

En el proceso de planificación es donde se acota y define la visión de los objetivos que se quieren obtener. También es donde se hace un análisis del entorno donde se debe incidir y cómo proyectarse hacia el mismo. Además, se crean las metas u objetivos que se quieren alcanzar y se establecen cuáles son las acciones que se deben realizan para satisfacer los mismos. La planificación también incluye la definición del tiempo de inicio y fin de una determinada tarea. En Cuba, se fomenta el desarrollo e informatización de la mayoría de los sectores de la sociedad. La Universidad de las Ciencias Informáticas (UCI) juega un papel fundamental en esta tarea, ella se encuentra comprometida con el proceso de informatización del país. La UCI cuenta con una infraestructura única, donde las facultades incorporan centros de desarrollo que se dedican al estudio e implementación de soluciones informáticas con la utilización de tecnologías libres, apostando por una independencia y soberanía tecnológica. En este marco se encuentra el Centro de Desarrollo de Geoinformática y Señales Digitales (GEYSED) de la Facultad 6, que cuenta con un departamento que tiene una línea de Investigación-Desarrollo (I+D) enfocada en el procesamiento de materiales audiovisuales, el departamento de Señales Digitales. En el mismo se han desarrollado un conjunto de soluciones informáticas entre las que se pueden mencionar La Plataforma de Televisión Informativa Primicia, El Sistema de Video Vigilancia Suria, La Plataforma de Gestión y Publicación de Contenidos Audiovisuales Web TV, entre otras. Estas soluciones cuentan con un alto grado de aceptación y recepción por parte de los clientes, ganando así en prestigio y mercado comercial. Esto ha traído consigo que los negocios y los clientes potenciales aumenten.

Según los argumentos planteados anteriormente, se hace necesario el uso y distribución racional de los recursos con que se cuenta. Para ello el departamento ha implementado una colaboración entre cada una de las soluciones y servicios que se desarrollan. Se identificó un grupo de procesos comunes en la planificación de las tareas a ejecutar por los sistemas en desarrollo y una redundancia de personal enfocadas a implementar tareas comunes en distintos proyectos. Con el fin de dar una solución a la problemática planteada anteriormente, se realizó un estudio de herramientas existentes a nivel nacional e internacional destinadas a la planificación, entre ellas: el Sistema de Administración de Recursos Humanos (HRM, por sus siglas en inglés; del inglés, Human Resource Management) y el Sistema de Gestión de Proyectos (GESPRO), pudiendo constatar que ninguna satisface las necesidades de ejecución automática de tareas planificadas para un sistema determinado. Es por ello que, enfocado en eliminar el gasto de recursos humanos en el desarrollo de sistemas personalizados para la planificación de manera independiente en cada uno de los proyectos, y persiguiendo el objetivo de automatizar de manera central todo el proceso de planificación de las acciones de los productos del departamento, se crea el Componente de Gestión de Planificación Genérica. El mismo es concebido bajo la premisa de contar con un único sistema capaz de gestionar la planificación de una tarea para cualquier producto y ejecutar de manera automática dicha tarea en el espacio de tiempo que se le indique.

El trabajo que se presenta persigue como objetivo principal la descripción del Componente de Gestión de Planificación Genérica desarrollado en el Centro GEYSED de la Facultad 6 de la UCI. En la sección materiales y métodos se relacionan las principales herramientas y tecnologías utilizadas en la implementación del componente. Además, en la sección resultados y discusión, se detalla la estructura de dicho componente desde el punto de vista arquitectónico y se describe de forma general su funcionamiento básico.

 

MATERIALES Y MÉTODOS

El sistema se basa en los conceptos comunes que se conocen de planificación pero se aplican a los sistemas de software. Las funciones del Componente de Gestión de Planificación Genérica van más allá de planificar una tarea, sino que cuando llegue el momento de realizar la misma se encarga de iniciarla, todo esto gestionado de manera genérica por cada uno de los proyectos. El componente se realizó en dos módulos, uno web y otro de escritorio. El web se implementó con tecnologías tales como: lenguajes de programación PHP5 (Achour et al., 2012), JavaScript (Navarrete, 2007) y HTML5 (Htmlcinco, 2012), el servidor web Apache 2.2.22 (Apache, 2012), los Frameworks1 Symfony 2.1.2 (Potencier, 2012) y DOJO 1.8 (Dojo, 2012). El de escritorio emplea: lenguaje de programación C++, el Framework Qt 4.8.1 con el IDE (del inglés, Integrated Development Environment) Qt-Creator 2.4.1 (Nokia, 2008). Ambos módulos utilizan PostgresSQL como gestor de base de datos por ser libre y multiplataforma. Este es un gestor de base de datos que permite la creación de manera sencilla de funciones y notificaciones. Estas son características muy utilizadas en la actualización dinámica de la información de una planificación. Las que son de vital importancia en el sistema, ya que garantiza que las planificaciones sean ejecutadas en tiempo, con los parámetros reales y actualizados.

Servicios web

Se utiliza como tecnología de comunicación entre aplicaciones XML-RPC (del inglés, Remote Procedure Call). La misma se emplea en el módulo de escritorio, con la implementación de la biblioteca Libqxmlrpc para publicar me-diante servicios las funcionalidades del planificador. Esto da la posibilidad de consumir las funcionalidades bases del componente para que sean utilizadas por un sistema externo que posee un cliente de planificación y que no pueda desplegar el web en su entorno. Con este sistema de publicar las funcionalidades se hace extensible el componente por su cualidad de ser perfectamente adaptable a cualquier entorno donde se desee utilizar. Sin necesidad de cambiar la lógica del módulo de escritorio y acoplándose con el negocio que lo utilice mediante la capa de servicios. Otra de las características de este módulo es que el envío de la información para ser ejecutada por un software determinado se hace mediante plugin2. Esta característica hace que el componente sea más escalable y brinda la facilidad para que cada sistema escoja la manera de enviar los datos a procesar y a qué software están destinados los mismos.

 

RESULTADOS Y DISCUSIÓN

Representación arquitectónica del componente

A continuación, la Figura 1 muestra una representación de la vista arquitectónica del componente. En la misma se detallan un conjunto de elementos fundamentales del componente de planificación y las relaciones existentes entre ellos.

A: XML (del inglés, Extensible Markup Language) con la configuración de la Base de datos (BD) del negocio3N que va a planificar sus acciones de acuerdo a los recursos que posee el mismo. En el XML también se pueden poner directamente los recursos en caso de no contar con una BD.

B: Calendario web de planificaciones. Es donde se gestionan todas las planificaciones de acuerdo con los recursos del negocio. En el mismo se crean acciones que se ejecutarán sobre los recursos.

C: BD interna del componente. Es la encargada de almacenar los datos de las planificaciones de los negocios.

D: Capa de servicios en donde el módulo publica las funcionalidades del planificador.

E: Ejecutor de planificaciones. Es el encargado de mandar a ejecutar las planificaciones. El mismo envía la información mediante plugin.

F: Plugin a través del cual se envía la información al negocio 1.

G: Plugin a través del cual se envía la información al negocio 2.

Descripción de un flujo básico dentro del planificador

Paso 1. Registro del proyecto
El flujo se inicia con el registro en el planificador del sistema que hará uso del mismo.

Paso 2. Configuración
En el fichero XML se configura la información de la BD del sistema. Aquí es donde se especifican cuáles son las tablas que contienen los recursos a planificar.

Paso 3. Añadir planificación
En el calendario se crean las acciones que se pueden realizar sobre los recursos. También se definen cuáles son los parámetros asociados que se enviarán al negocio y cuáles son los tipos de estos campos. Con esta información se selecciona el día y hasta el rango de tiempo que se desea planificar una tarea. Luego se almacena la planificación dentro de la BD.

Paso 4. Consultar planificaciones
El ejecutor de planificaciones se encarga de confeccionar de manera automática una caché4 de 24 horas con información de las planificaciones. Este realiza una cola de prioridad en cuanto a la fecha y la hora con que cuenta la planificación para ser ejecutada. Chequea en el tiempo estos parámetros hasta encontrar el momento de iniciar una planificación.

Paso 5. Envío de ejecución para una planificación
Cuando la tarea debe de iniciarse según la fecha y la hora, se envía mediante un plugin la información para ser ejecutada por el sistema. De manera paralela se registran los cambios en los estados de la planificación.
La Figura 2 muestra el módulo web donde se pueden visualizar las tareas planificadas para el sistema STCV5.Estas se componen por un rango y un día previamente seleccionado. Al mismo tiempo se pueden observar distintas opciones de configuración, filtros para las planificaciones, recursos con que cuenta el negocio entre otras funcionalidades que posee el componente. A su vez, la Figura 3 muestra el módulo de escritorio. En este se observa un listado de las planificaciones cargadas en la caché, el estado de cada una de ellas y distintas funcionalidades que tiene el mismo.

 

CONCLUSIONES

El componente de planificación cubre toda un área fundamental en la gestión y automatización de todos los negocios que se desarrollan en el departamento de Señales Digitales. También se logra reducir el tiempo de desarrollo de los productos, al contar con un sistema flexible que puede ser utilizado o instanciado mediante servicios web para planificar las tareas que puede realizar dicho producto. El componente es un sistema autónomo que se puede comercializar de manera independiente o adjunto a productos que quieran automatizar el proceso de ejecución de acciones previa planificación de las mismas. Para las tareas en tiempo real, se brinda la posibilidad de registrarlas, lo que facilita un control histórico de la ejecución de las mismas. La solución provee al país de una herramienta propia, bajo estándares y tecnologías libres, lo que fomenta la soberanía e independencia tecnológica por la cual apuesta el país.

Se recomienda seguir con el desarrollo de otros plugin de comunicación en diferentes tecnologías, lo que facilitará la asimilación del componente como parte de soluciones de software ya existentes.

 

REFERENCIAS BIBLIOGRÁFICAS

ACHOUR, M et al. Manual de PHP. [en línea] Manual de PHP, 2012. [Consultado el: 29 de septiembre de 2012]. Disponible en: [http://php.net/manual/es/index.php].

ACHOUR, M et al. Servicios Web. [en línea] Manual de PHP, 2012. [Consultado el: 5 de noviembre de 2012]. Disponible en: [http://php.net/manual/es/book.soap.php].

APACHE. Versión 2.2 del servidor HTTP Apache. [en línea] Apache HTTP Server Project, 2012. [Consultado el 5 de septiembre de 2012]. Disponible en: [http://httpd.apache.org/docs/2.2/].

CARRILLO, R. Acerca de la planificación. [en línea] 2008 [Consultado el: 11 de septiembre de 2012]. Disponible en: [http://www.slideshare.net/jcfdezmxestra/que-es-planificar].

DOJO. The Dojo Toolkit API. [en línea] Dojo Toolkit 1.8, 2012. [Consultado el 5 de septiembre de 2012]. Disponible en: [http://dojotoolkit.org/api/1.8/].

GONZÁLEZ, Y. Arquitectura del servidor de Streaming distribuido ALLFRYS. Tesis de ingeniería, Universidad de las Ciencias Informáticas, La Habana, 2011.

HTMLCINCO. Las 15 APIs más populares de HTML5. [en línea] Manual de HTML5 en español, 2012. [Consultado el: 5 de octubre de 2012]. Disponible en: [http://www.htmlcinco.com/15-apis-de-html5/].

ITU. Evaluar el potencial de las TIC en el mundo. [en línea]Aplicando su índice de desarrollo de las TIC la UIT compara a 154 países, 2009. [Consultado el: 11 de marzo de 2012]. Disponible en: [http://www.itu.int/ITU-D/ict/dai/material/DAI_ITUNews_s.pdf].

NAVARRETE, T. El lenguaje JavaScript. [en línea] 2007 [Consultado el: 15 de septiembre de 2012]. Disponible en: [http://www.dtic.upf.edu/~tnavarrete/fcsig/javascript.pdf].

NOKIA. Modular Class Library. [en línea] 2008 [Consultado el: 15 de febrero de 2011]. Disponible en: [http://qt.nokia.com/products/library].

POTENCIER, F. Symfony 2.1.2 Released. [en línea] Symfony, 2012. [Consultado el: 15 de octubre de 2012]. Disponible en: [http://symfony.com/blog/symfony-2-1-2-released].

 

1Plataforma que predefine patrones a seguir por los desarrolladores lo que le facilita y ordena la manera de escribir el código.

2 Software compilado que posee funcionalidades específicas para complementar una aplicación

3Se refiere al sistema que va a utilizar el planificador.

4Es utilizada para almacenar temporalmente los datos.

5Sistema de Transmisión de Canales Virtuales

 

 

Recibido: 31/01/2013
Aceptado: 25/04/2013

Creative Commons License Todo el contenido de esta revista, excepto dónde está identificado, está bajo una Licencia Creative Commons