X-Git-Url: https://git.llucax.com/z.facultad/75.08/llamadas.git/blobdiff_plain/e5e30b07fdffd68dc708d96af58f9ffca0afbe11..f7c3d7b7c9700df05b6174535056b857452eecc8:/doc/Informe7508.lyx?ds=inline diff --git a/doc/Informe7508.lyx b/doc/Informe7508.lyx index 0220308..22a71dd 100644 --- a/doc/Informe7508.lyx +++ b/doc/Informe7508.lyx @@ -73,7 +73,7 @@ El programa en su totalidad va a ser ejecutado por un configuración diferente es posible pero queda en manos del administrador. \layout Itemize -En los archivos de llamada se valida que sean numeros, y para validar la +En los archivos de llamada se valida que sean números, y para validar la fecha no se tiene en cuenta casos particulares como el 29, 30, 31 de febrero. \layout Itemize @@ -84,41 +84,44 @@ Aficonf utiliza n La opción Borrar es ofrecida requiriendo un número de ID a borrar dependiendo de los resultados de la búsqueda, y dando una opción (-1) para cancelar la acción. -\layout Itemize - -El archivo de umbrales no puede ser modificado por el usuario manualmente, - solo a travez de AFICONF \layout Section + +\begin_inset LatexCommand \label{sec:Problemas-relevantes} + +\end_inset + Problemas relevantes \layout Itemize Dado que los distintos componentes del sistema se pueden instalar en diferentes paths dentro del OS, creamos el directorio \family typewriter -$HOME/.antifraude +~$HOME/.antifraude \family default donde se almacenará información acerca de los paths en donde reside cada - uno de ellos y otros archivos de intercambio y de rutinas comunes. + uno de ellos y otros archivos de intercambio. \layout Itemize Así mismo, como los programas pueden ser instalados en directorios distintos, - toda la información compartida (oridesti.txt y umbrales.param) es guardada - en + toda la información compartida es guardada en \family typewriter -$HOME/.antifraude +~$HOME/.antifraude \family default , para ser mas consistentes con la manera de trabajar en Unix. Lo ideal hubiera sido utilizar \family typewriter /etc/antifraude \family default -, pero como no podríamos suponer root access preferimos directamente trabajar - en el home del usuario. +, pero como no podríamos suponer acceso de +\emph on +root +\emph default + preferimos directamente trabajar en el directorio del usuario. \layout Section Instalación -\layout Standard +\layout Comment Copiar del README cuando este terminado y extenderlo un poco si se considera necesario. @@ -128,13 +131,12 @@ Comandos Desarrollados \layout Subsection AFIMONIO -\layout Standard +\layout Subsubsection +Tipo de comando +\layout Standard -\series bold -Tipo de comando: -\series default - Solicitado +Solicitado. \layout Subsubsection Archivos de Input @@ -165,67 +167,87 @@ so Archivos de Output \layout Standard -El afimonio genera una salida al archivo afimonio.log la cual contiene informació -n sobre la ejecución del programa. +El afimonio genera una salida al archivo +\family typewriter +afimonio.log +\family default + la cual contiene información sobre la ejecución del programa. \layout Standard Si un archivo es válido, se añade una línea con el siguiente formato: -\layout Standard +\layout LyX-Code -"$fecha $USER afimonio: "Se detecta archivo de llamadas $file" +$fecha $USER afimonio: "Se detecta archivo de llamadas $file" \layout Standard Si el archivo tuviera un nombre inválido, la línea seria la siguiente: -\layout Standard +\layout LyX-Code -"$fecha $USER afimonio:"Se rechaza el archivo $file". - +$fecha $USER afimonio: "Se rechaza el archivo $file" \layout Standard -donde -\layout Standard +donde: +\layout Description -$fecha: fecha actual con formato Día-Mes-Año-Hora:Minuto. - -\layout Standard -$USER: nombre de usuario que ejecuto el script. - -\layout Standard +\family typewriter +$fecha +\family default + fecha actual con formato Día-Mes-Año-Hora:Minuto. +\layout Description -$file: nombre del archivo que se procesó. - + +\family typewriter +$USER +\family default + nombre de usuario que ejecuto el script. +\layout Description + + +\family typewriter +$file +\family default + nombre del archivo que se procesó. \layout Subsubsection Ejemplos de invocación -\layout LyX-Code +\layout Paragraph -:afimonio/bin$> ./afimonio -\layout LyX-Code -:afimonio/bin$> nohup ./afimonio & -\layout LyX-Code +\family typewriter +./afimonio +\layout Standard -:afimonio/bin$> ./afimonio_daemon.sh -\layout LyX-Code +Corre el programa en primer plano. +\layout Paragraph + + +\family typewriter +nohup ./afimonio & +\layout Standard - afimonio_daemon.sh (start|stop|status) +Corre el programa en segundo plano, evitando que se cierre al morir el padre + desasociándolo de la terminal. + La salida del programa queda en el archivo +\family typewriter +nohup.out +\family default + a menos que se redirija a otro archivo. \layout Subsubsection Código Fuente -\layout Standard +\layout Comment Copy Paste cuando este cerrado. \layout Subsection ANTIFRAUDE -\layout Standard +\layout Subsubsection +Tipo de comando +\layout Standard -\series bold -Tipo de comando: -\series default - Solicitado +Solicitado. \layout Subsubsection Archivos de Input @@ -238,68 +260,102 @@ $PATH_ANTIFRAUDE/$DATADIR/enproceso \family default . El demonio +\family typewriter \series bold -Afimonio +afimonio +\family default \series default será quien alimentará al +\family typewriter \series bold -Antifraude +antifraude +\family default \series default con dichos archivos, no obstante se lo puede alimentar con archivos de llamadas en forma manual, situándolos en el directorio anteriormente descripto. \layout Subsubsection Archivos de Output -\layout Itemize +\layout Description -\series bold -Antifraude.log: -\series default - Se loguea en este archivo el procesamiento de los registros, warnings provocado -s por registros no validos y alarmas emitidas por registros que matchean - contra un umbral. -\layout Itemize +\family typewriter +Antifraude.log +\family default + En este archivo se guarda información del procesamiento de los registros, + advertencias provocados por registros no validos y alarmas emitidas por + registros que cumplen con un umbral. +\layout Description -\series bold -Alarmas.txt: -\series default - Se loguean en este archivo las alarmas provocadas por registros en los - archivos de llamadas, que hayan matcheado un umbral determinado del archivo - umbrales.param. +\family typewriter +Alarmas.txt +\family default + En este archivo se guarda información de las alarmas provocadas por registros + en los archivos de llamadas, que hayan cumplido un umbral determinado del + archivo +\family typewriter +umbrales.param +\family default +. \layout Subsubsection Ejemplos de invocación -\layout LyX-Code +\layout Paragraph -:antifraude/bin$> perl antifraude.pl -\layout LyX-Code -:antifraude/bin$> perl antifraude.pl & +\family typewriter +./antifraude.pl +\layout Standard + +El programa procesa las llamadas +\family typewriter +enproceso +\family default + como indica el enunciado en primer plano. +\layout Paragraph + + +\family typewriter +perl antifraude.pl +\layout Standard + +Ídem anterior. +\layout Paragraph + +./antifraude.pl & +\layout Standard + +Ídem anterior pero procesa en segundo plano. \layout Subsubsection Código Fuente -\layout Standard +\layout Comment Copy Paste cuando este cerrado. \layout Subsection AFICONF -\layout Standard +\layout Subsubsection +Tipo de comando +\layout Standard -\series bold -Tipo de comando: -\series default - Solicitado +Solicitado. \layout Subsubsection Archivos de Input \layout Standard -El comando utiliza los archivos umbrales.param y oridesti.txt situados en - +El comando utiliza los archivos +\family typewriter +umbrales.param +\family default + y +\family typewriter +oridesti.txt +\family default + situados en \family typewriter ~$HOME/.antifraude/ \layout Subsubsection @@ -307,14 +363,22 @@ El comando utiliza los archivos umbrales.param y oridesti.txt situados en Archivos de Output \layout Standard -Solo escribe en umbrales.param de ser solicitado por el usuario, ya sea por - la alta o baja de un umbral. +Solo escribe en +\family typewriter +umbrales.param +\family default + de ser solicitado por el usuario, ya sea por la alta o baja de un umbral. \layout Subsubsection Ejemplos de invocación -\layout LyX-Code +\layout Paragraph + + +\family typewriter +./aficonf +\layout Standard -:aficonf/bin$> ./aficonf +Realiza lo pedido en el enunciado. \layout Subsubsection Código Fuente @@ -324,13 +388,16 @@ Copy Paste cuando este cerrado. \layout Subsection CALLGEN -\layout Standard +\layout Subsubsection +Tipo de comando +\layout Standard -\series bold -Tipo de comando: -\series default - Auxiliar, escrito en PERL +Auxiliar, escrito en +\family typewriter +perl +\family default +. \layout Subsubsection Justificación de su uso @@ -358,8 +425,15 @@ oridesti.txt Archivos de Output \layout Standard -Crea una cantidad N (especificada por el usuario) de archivos con nombre - y formato de Archivo de Llamadas en el directorio actual. +Crea una cantidad +\family typewriter +N +\family default + (especificada por el usuario) de archivos con nombre y formato de +\emph on +Archivo de Llamadas +\emph default + en el directorio actual. Tanto el nombre como la cantidad de líneas y su contenido es generado aleatoria mente (respetando el formato mencionado y con valores racionales). \layout Subsubsection @@ -486,7 +560,7 @@ M \layout Standard -max_lines +max_linaes \end_inset @@ -518,13 +592,8 @@ M \layout Standard - -\series bold -NOTA: -\series default - Pueden cambiarse los valores por defecto editando el código fuente del - comando, en la sección de configuración que se encuentra al comienzo del - mismo. +Pueden cambiarse los valores por defecto editando el código fuente del comando, + en la sección de configuración que se encuentra al comienzo del mismo. También puede cambiarse el mínimo y máximo año (por defecto 1999 y 2004) y el mínimo y máximo código de central (por defecto 0000 y 9999). \layout Subsubsection @@ -532,123 +601,71 @@ NOTA: Ejemplos de invocación \layout Paragraph + +\family typewriter ./callgen \layout Paragraph \series medium Se escriben por entrada estándar los códigos de origen/destino, se presiona - Ctrl-D para cerrar el descriptor de archivo de la entrada estándar y se - generan 10 archivos con entre 1000 y 5000 líneas cada uno. + +\family typewriter +\series default +Ctrl-D +\family default +\series medium + para cerrar el descriptor de archivo de la entrada estándar y se generan + 10 archivos con entre 1000 y 5000 líneas cada uno. \layout Paragraph + +\family typewriter ./callgen 2 < oridesti.txt \layout Paragraph \series medium -Genera 2 archivos con entre 1000 y 5000 líneas cada uno tomando los códigos - de origen/destino del archivo origesti.txt. +Genera 2 archivos con entre 1000 y 5000 líneas cada uno tomando los códigos + de origen/destino del archivo +\family typewriter +origesti.txt +\family default +. \layout Paragraph + +\family typewriter ./callgen 5 10 < oridesti.txt \layout Paragraph \series medium -Genera 5 archivos con entre 10 y 5000 líneas cada uno tomando los códigos - de origen/destino del archivo origesti.txt. +Genera 5 archivos con entre 10 y 5000 líneas cada uno tomando los códigos + de origen/destino del archivo +\family typewriter +origesti.txt +\family default +. \layout Paragraph + +\family typewriter ./callgen 50 10 50 < oridesti.txt \layout Paragraph \series medium -Genera 50 archivos con entre 10 y 50 líneas cada uno tomando los códigos - de origen/destino del archivo origesti.txt. - -\layout Subsubsection - -Código Fuente -\layout Standard - -Copy Paste cuando este cerrado. -\layout Subsection - -util.sh -\layout Standard - - -\series bold -Tipo de comando: -\series default - Auxiliar, escrito en bash scripting -\layout Subsubsection - -Archivos de Input -\layout Standard - -No corresponde -\layout Subsubsection - -Archivos de Output -\layout Standard - -No corresponde -\layout Subsubsection - -Ejemplos de invocación -\layout Standard - -No corresponde. - El archivo es una colección de funciones comunes a los comandos. -\layout Standard - -El archivo contiene las siguientes funciones de uso genérico: -\layout Enumerate - -leer - Permite leer un valor desde el teclado, presentando una opción por - defecto seleccionada si el usuario ingresa una entrada nula. -\layout Enumerate - -preguntar - Realiza una pregunta al usuario dando un set de opciones válidas - y solo aceptando una respuesta del set de preguntas. -\layout Enumerate - -validar_solo_numeros - Verifica que la clave pasada contenga solo dígitos. -\layout Enumerate - -lock - Genera un archivo de lock con el PID del programa -\layout Enumerate - -unlock - Eliminar el archivo de lock de un programa -\layout Enumerate - -is_lock - Consulta si un programa está lockeado -\layout Enumerate - -lock_pid - Retorna el PID de un programa lockeado -\layout Enumerate - -validar_rango - Valida si un valor está en un rango de valores -\layout Enumerate - -die - Emite un mensaje de error y retorna al proceso padre un código de - error -\layout Enumerate - -perr - Imprime un mensaje por la salida de error estandar -\layout Enumerate - -put_log - Agrega una entrada a un archivo de log -\layout Enumerate - -clean_log - Verifica el tamaño del archivo de log y lo trunca de ser necesario +Genera 50 archivos con entre 10 y 50 líneas cada uno tomando los códigos + de origen/destino del archivo +\family typewriter +origesti.txt +\family default +. \layout Subsubsection Código Fuente -\layout Standard +\layout Comment Copy Paste cuando este cerrado. \layout Section @@ -657,26 +674,25 @@ Archivos \layout Subsection Archivos del Enunciado -\layout Standard +\layout Comment -[ Por cada uno se debe poner nombre y detallar su estructura interna ] +Por cada uno se debe poner nombre y detallar su estructura interna. \layout Subsection Archivos Auxiliares \layout Subsubsection -umbrales.id -\layout Standard - -Este archivo contiene el último ID utilizado para los umbrales, a fin de - no tener que recalcularlo cada vez que se necesita crear un nuevo umbral. -\layout Subsubsection +\family typewriter afimonio.conf \layout Standard -El archivo de configuración $~/.antifraude/conf/afimonio.conf almacena las - rutas a los directorios necesarios para la ejecución del script +El archivo de configuración +\family typewriter +~/.antifraude/conf/afimonio.conf +\family default + almacena las rutas a los directorios necesarios para la ejecución del script + \family typewriter afimonio \family default @@ -684,11 +700,17 @@ afimonio \layout Subsubsection + +\family typewriter antifraude.conf \layout Standard -El archivo de configuración $~/.antifraude/conf/antifraude.conf almacena las - rutas a los directorios necesarios para la ejecución del script +El archivo de configuración +\family typewriter +~/.antifraude/conf/antifraude.conf +\family default + almacena las rutas a los directorios necesarios para la ejecución del script + \family typewriter antifraude.pl \family default @@ -696,11 +718,17 @@ antifraude.pl \layout Subsubsection + +\family typewriter aficonf.conf \layout Standard -El archivo de configuración $~/.antifraude/conf/aficonf.conf almacena las - rutas a los directorios necesarios para la ejecución del script +El archivo de configuración +\family typewriter +~/.antifraude/conf/aficonf.conf +\family default + almacena las rutas a los directorios necesarios para la ejecución del script + \family typewriter aficonf \family default @@ -710,7 +738,12 @@ aficonf Estos archivos fueron creados para que los diferentes scripts tengan un lugar común donde buscar esa información para salvar el problema comentado - en el punto 1.2. + en el punto +\begin_inset LatexCommand \vref{sec:Problemas-relevantes} + +\end_inset + +. \layout Subsection Set de Prueba (testcalls.tar.gz) @@ -721,20 +754,31 @@ do en el archivo \family typewriter testcalls.tar.gz \family default -, situado en el directorio /INST, del paquete de instalación. +, situado en el directorio +\family typewriter +/inst +\family default +, del paquete de instalación. El set de prueba se copia automáticamente en el momento en que se instale el componente +\family typewriter \series bold -ANTIFRAUDE +antifraude +\family default \series default , dejando el escenario listo para procesarlos en el momento en que sea arrancado el +\family typewriter \series bold -AFIMONIO +afimonio +\family default + \series default o bien ejecutando el +\family typewriter \series bold -ANTIFRAUDE +antifraude +\family default \series default en forma manual. \layout Standard @@ -747,21 +791,35 @@ Este set de prueba consta de \layout Itemize 14 archivos de llamadas generados con el +\family typewriter \series bold -CALLGEN +callgen +\family default \series default , con entre 1000 y 5000 registros cada uno, y fecha en el rango año 1999 - - 2004. + a 2004. \layout Itemize -1 archivo de llamadas con registros validos y otros no validos. +1 archivo de llamadas con registros válidos y otros no válidos. \layout Itemize 1 archivo con nombre válido según el formato YYYYMMDDhhmm.nnnn, pero con - texto dentro suyo, el cual es rechazado por Antifraude. + contenido inválido, el cual es rechazado por +\family typewriter +\series bold +antifraude +\family default +\series default +. \layout Itemize -1 archivo con nombre no válido rechazado en instancia previa por el Afimonio. +1 archivo con nombre no válido rechazado en instancia previa por +\family typewriter +\series bold +afimonio +\family default +\series default +. \layout Standard Se describen en la siguiente tabla, los archivos y registros que disparan @@ -806,7 +864,8 @@ Archivo \series bold -Linea Nro +Nro. + Línea \end_inset @@ -816,7 +875,7 @@ Linea Nro \series bold -Matched Umbral +Umbral \end_inset @@ -1428,61 +1487,79 @@ Close match umbral 22, difiere tipo de llamada \layout Paragraph -Archivo 199908220733.4515 +Archivo +\family typewriter +199908220733.4515 \layout Paragraph \series medium -Posee registros no validos detallados a continuación. - Los registros se contabilizan de 0 a N (Linea 1 = Reg 0) +Posee registros no válidos detallados a continuación. + Los registros se contabilizan de 0 a N (Línea 1 = Reg 0) \layout Itemize \series bold Registro 3 \series default - -> Posee un 9no campo 'Bogus' + -> Posee un 9no campo +\emph on +bogus \layout Itemize \series bold Registro 27 \series default - -> Posee un 9no campo 'Bogus' + -> Posee un 9no campo +\emph on +bogus \layout Itemize \series bold Registro 31 \series default - -> Posee un tipo de llamada 'W' no valida + -> Posee un tipo de llamada +\family typewriter +W +\family default + no valida \layout Itemize \series bold Registro 41 \series default - -> El numero de linea (campo1) no es numerico, es un string 'ABCD' + -> El número de línea (campo1) no es numérico, es un string +\family typewriter +'ABCD' \layout Itemize \series bold Registro 52 \series default - -> Tiene insuficiente cantidad de campos (siete) + -> Tiene cantidad de campos insuficiente (siete) \layout Standard -Estos registros emitirán errores plasmados en el antifraude.log. - Para verificar esto, realizar un search en el logfile, sobre el nombre - del archivo, y ubicarse en el sector donde se indica el comienzo del procesamie -nto del mismo con ¨ +Estos registros emitirán errores plasmados en el +\family typewriter +antifraude.log +\family default +. + Para verificar esto, realizar una búsqueda en el log, sobre el nombre del + archivo, y ubicarse en el sector donde se indica el comienzo del procesamiento + del mismo con ¨ \family typewriter Inicio proceso de: 199908220733.4515 \family default ¨. \layout Paragraph -Archivo 200412010000.6666 +Archivo +\family typewriter +200412010000.6666 \layout Paragraph @@ -1491,20 +1568,28 @@ Es un archivo de texto el cual pasa el control de Afimonio, pero luego sus lineas son descartadas por antifraude y dicho error emitido en el antifraude.log \layout Paragraph -Archivo 200223.1234 +Archivo +\family typewriter +200223.1234 \layout Paragraph \series medium El nombre del archivo no es conforme al formato de nombre estipulado en - el TP y el mismo es rechazado de antemano por Afimonio. + el TP y el mismo es rechazado de antemano por +\family typewriter +\series default +afimonio +\family default +\series medium +. \layout Section Apéndice A -\layout Standard +\layout Comment -(Esto deberia ser una hoja aparte que solo diga 1.6 Apéndice A) y las hojas +Esto deberia ser una hoja aparte que solo diga 1.6 Apéndice A) y las hojas posteriores son las páginas 3 en adelante del PDF oficial de la catedra, sacando la parte de archivos. - 3-15 más precisamente es lo que iria). + 3-15 más precisamente es lo que iria. \the_end