Automatización de archivos planos de instantáneas
Un aspecto integral de una integración de SIS or Sistema de información del estudiante sin problemas es la capacidad de automatizar y monitorear el flujo de datos a Blackboard tal como se presenta en la integración. Hay dos recursos nuevos que facilitan este proceso:
Los resultados de las URL del método POST de la integración contienen un UID de proceso de conjunto de datos. Por ejemplo:
Correcto: Archivo de fuente cargado. Utilice el código de referencia afc3d6e84df84f51944a06cccee8f59a para realizar un seguimiento de estos registros en los registros.Se agregó una nueva URL de estado del conjunto de datos. Cuando se comunica con el ID de proceso del conjunto de datos, la URL devuelve un bloque XML que incluye detalles específicos relacionados con el estado del conjunto de datos. Tenga en cuenta que es posible que esto suceda después de que la operación del método POST para el archivo de datos original se haya completado.
https:// ... /webapps/bb-data-integration-flatfile-[SU ID]/endpoint/dataSetStatus/afc3d6e84df84f51944a06cccee8f59aque devuelve:
<dataSetStatus> <completedCount>5</completedCount> <dataIntegrationId type="blackboard.platform.dataintegration.DataIntegration">_123_1</dataIntegrationId> <dataSetUid>afc3d6e84df84f51944a06cccee8f59a</dataSetUid> <errorCount>0</errorCount> <lastEntryDate>2013-03-20T10:45:48-05:00</lastEntryDate> <queuedCount>0</queuedCount> <startDate>2013-03-20T10:45:48-05:00</startDate> <warningCount>0</warningCount> </dataSetStatus>
Estas adiciones facilitan la supervisión por secuencias de comandos de las integraciones automatizadas de los archivos de instantánea sin formato.
Este tema ofrece una descripción general sobre cómo automatizar y supervisar una integración de archivo de instantánea sin formato. Los ejemplos incluidos se escribieron para una plataforma de UNIX o Linux con el uso de CRON para la automatización y el lenguaje BASH de secuencias de comandos del shell de UNIX, pero los conceptos se pueden aplicar a cualquier lenguaje capaz de realizar operaciones POST/GET, analizar cadenas y fechas, ejecutar consultas de bases de datos y enviar correos electrónicos. Por lo tanto, PERL, JAVA, PHP y Ruby son tan adecuados para el desarrollo como lo son otros lenguajes shell o bash.
El objetivo es ofrecer una implementación de referencia funcional para desarrollar una integración SIS supervisada y automatizada usando Archivo de instantánea sin formato. Contendrá dos componentes: automatización y supervisión. La implementación de referencia está disponible a través del enlace que hay al final de esta página.
Nota
Actualmente, la inclusión de mensajes de error registrados a través de la implementación de referencia presentada solo es compatible con los sistemas autoalojados. Esta capacidad se describe en la secuencia de comandos y requiere la eliminación de los comentarios del código para que pueda utilizarse en entornos alojados en el servidor del usuario final. Próximamente, incluiremos en este documento un medio para acceder a estos mensajes de registro desde la propia secuencia de comandos.
Caso de uso: Automatización del procesamiento de archivos SIS o Sistema de información del estudiante sin formato
El siguiente caso de uso es una base para la implementación de referencia y una guía para su propio desarrollo.
Resumen
Automatice el procesamiento de los informes de correo electrónico y los datos del archivo de instantánea sin formato que genera SIS para los administradores indicados. La solución debe determinar periódicamente la presencia de nuevos archivos de datos, el objeto y la fuente de datos, y presentar los datos a Blackboard. Los archivos procesados deben archivarse en otro directorio. La solución también tiene que dar la opción de procesar manualmente los archivos de datos. En todos los casos, los administradores deben recibir un correo electrónico de estado donde se les informe de si la operación se ha completado correctamente o no. Este correo debe contener los datos disponibles sobre el proceso y los posibles mensajes de error.
Actores
SIS o Sistema de información del estudiante, Programador del sistema operativo, Blackboard
Condiciones previas
SIS genera y almacena en un directorio especificado los archivos de texto formateados del archivo de instantánea sin formato para los objetos de Learn, como los usuarios, los cursos, las inscripciones y las actividades del personal.
Descripción
El SIS suministra archivos de instantánea sin formato a un directorio de datos especificado en una secuencia de comandos.
El programador del sistema operativo (CRON) inicia la secuencia de comandos sis_snpshtFF_auto.
La secuencia de comandos sis_snpshtFF_auto comprueba el directorio de datos para ver si hay algún archivo.
La secuencia de comandos sis_snpshtFF_auto determina el tipo de objeto de Learn al que corresponde cada archivo.
La secuencia de comandos sis_snpshtFF_auto llama a la secuencia de comandos sis_snpshtFF_manual en función de la jerarquía del objeto: usuarios, cursos, membresías
La secuencia de comandos sis_snpshtFF_manual usa el método POST para enviar los datos a Blackboard y determina el estado de finalización.
Si hay errores y se ha configurado para ello, sis_snpshtFF_manual consulta los registros de integración en busca de mensajes de error.
La secuencia de comandos sis_snpshtFF_manual elabora un correo electrónico que contiene información de estado y lo envía a las direcciones de correo configuradas.
Los pasos del 5 al 8 se repiten por cada archivo de datos.
Al completar el procesamiento de todos los archivos de datos, la secuencia de comandos sis_snpshtFF_auto envía un correo electrónico de estado a las direcciones de correo configuradas.
Condiciones posteriores
Los datos proporcionados por los archivos planos generados por SIS o Sistema de información del estudiante se agregan secuencialmente por objeto de datos a Blackboard y los archivos originales se archivan con la marca de tiempo de procesamiento agregada al nombre de archivo original. Los administradores configurados en la secuencia de comandos reciben correos electrónicos del estado por archivo procesado y un correo de estado global que informa sobre la tarea de procesamiento completa.
La solución
Además de los archivos de datos que genera SIS, que están fuera del alcance de este documento, hay tres componentes del problema de la automatización:
El "Cuándo": determinar cuándo ejecutar el procesamiento de los datos proporcionados,
El "Qué": qué objetos de datos y fuentes de datos que proporcionaron datos, y
El "Cómo": procesamiento y seguimiento de esos datos
Con el caso de uso anterior, podemos crear un conjunto de secuencias de comandos configurables que determinen si existe un archivo de datos (en el caso de que esta tarea haga algo) y a qué tipo de objeto se aplican esos datos, llamar a una secuencia de comandos de procesamiento con los parámetros adecuados para satisfacer las metas de integración y, al finalizar el procesamiento, archivar el archivo de datos.
En las secciones siguientes se abarcan estos tres componentes. La implementación de los tres proporcionará un proceso automatizado monitoreable para mover datos SIS o Sistema de información del estudiante a Blackboard a través del tipo de integración de archivos planos Snapshot.
Nota
La secuencia de comandos BASH se ha comentado ampliamente, por lo que no se incluirá aquí. En cambio, nos centraremos en los detalles generales del flujo y el procesamiento
El "cómo": usar las secuencias de comandos sis_snpshtFF_auto.sh y sis_snpshtFF_manual
Sobre la base del caso de uso anterior, la secuencia de comandos BASH que se ve abajo (sis_snpshtFF_auto.sh) realiza las operaciones siguientes:
Comprueba si hay archivos en el directorio especificado.
Determina el tipo de objeto y la operación según la información de encabezado que hay en el archivo.
Ordena el procesamiento para que los archivos se procesen en el orden correcto. Por ejemplo: Usuarios, luego cursos, luego membresías.
Llama a una subsecuencia de comandos (sis_snpshtFF_manual.sh) para el procesamiento, la supervisión y la notificación administrativa por correo electrónico del estado del procesamiento.
Archiva el archivo de datos al finalizar el procesamiento.
Procesa el siguiente archivo de datos si existe.
Y, por último, envía un informe por correo en el que se indica el resultado acumulativo de la llamada a la secuencia de comandos de automatización.
Esto proporciona el siguiente flujo general que se muestra a continuación. A la izquierda, se muestra el flujo general de automatización del procesamiento de archivos sin formato de instantáneas, como se muestra en la solución de referencia proporcionada. A la derecha, hay un desglose adicional de la parte del proceso ETL con guión. Tenemos dos secuencias de comandos: sis_snpshtFF_auto.sh, a la izquierda, y sis_snpshtFF_manual.sh, a la derecha. Las operaciones que se muestran en la Figura 2 también se incluyen como comentarios en la implementación de referencia de automatización de cada secuencia de comandos.

El "qué": SIS_snpshtFF_auto.sh
En un nivel superior, la secuencia de comandos sis_snpsht_auto carga los archivos encontrados en el directorio de datos configurado, analiza el encabezado de los datos del archivo para determinar el tipo de objeto al que se hace referencia y luego agrega el archivo a la lista correspondiente para su posterior procesamiento. Este análisis de los encabezados determina el tipo de objeto al que hace referencia el archivo y, por consiguiente, el orden que ocupa en la cola de procesamiento de instantáneas. Esta ordenación permite un único punto de descarga para los archivos sin formato generados por SIS.
Después de que todos los archivos se hayan analizado y agrupado en listas de tipos de objetos, se procesan estas listas en el orden lógico de usuarios, cursos y asociaciones. Cada archivo se envía a la secuencia de comandos sis_snpshtFF_manual para su procesamiento, que también se puede ejecutar desde la línea de comandos, junto con los argumentos correspondientes para cada tipo de objeto. La secuencia de comandos sis_snpshtFF_manual toma los argumentos entrantes y usa la URL apropiada para publicar el archivo de datos en Blackboard por el método POST. Una vez completada, la secuencia de comandos introduce una repetición de monitoreo y, luego, crea un informe y lo envía por correo electrónico a la lista de destinatarios configurada. El archivo se devuelve a la secuencia de comandos sis_snpsht_auto, la cual envía el próximo archivo para procesar. Este proceso se repite hasta finalizar con el último archivo. Cuando se han procesado todos los archivos, sis_snpshtFF_auto envía un informe final por correo electrónico a la lista de destinatarios configurada.
El "Cuándo": Uso de CRON para programar instantáneas
El objetivo de la automatización es la capacidad de ejecutar la secuencia de comandos establecida sin intervención humana. Unix proporciona esta capacidad con CRON: una aplicación de programación integrada. El proceso CRON verifica periódicamente el crontab del sistema, un archivo del sistema que incluye una lista de los comandos y las configuraciones del momento en el que se deben ejecutar. Se analiza cuándo se deben ejecutar las entradas (ahora o más adelante) según lo indicado en la entrada crontab.
Importante
Al definir las entradas de crontab, hay que tener en cuenta la frecuencia de los trabajos de cron y los tiempos de procesamiento, ya que las operaciones de actualización pueden tardar más que las de guardado. El procesamiento de los datos de actualización y de guardado se puede controlar a través de entradas de crontab independientes y de directorios de orígenes de datos distintos en los argumentos de secuencias de comandos si se usa la secuencia de comandos indicada abajo.
Expresiones CRON para entradas pestaña
Formato: CRON utiliza un formato muy específico para programar datos. Se basa en una lista de cinco campos de datos obligatorios delimitada por espacios:
Campo | Descripción | Valor permitido |
|---|---|---|
MIN | Campo de minutos | 0 a 59 |
HOUR | Campo de hora | 0 a 23 |
DOM | Día del mes | 1-31 |
LUN | Campo de mes | 1-12 |
DOW | Día de la semana | 0-6 |
CMD | Comando | Cualquier comando que se quiera ejecutar. |
En la práctica, este formato se puede complicar o simplificar todo lo que uno quiera.
Ejemplos:
Un ejemplo de entrada simple de crontab sería ejecutar una tarea al inicio de cada hora:
0 * * * * /usr/local/blackboard/apps/snapshot/scripts/sis_snpshtFF_auto.sh
0 - Minuto 0
* - Cada hora
* - Cada día
* - Cada mes
* - Todos los días de la semana
o todos los días a medianoche:
0 0 * * * /usr/local/blackboard/apps/snapshot/scripts/sis_snpshtFF_auto.sh
0 - Minuto 0
0 - Cada hora
* - Cada día
* - Cada mes
* - Todos los días de la semana
Ejecutar una tarea dos veces al día durante la semana laboral:
0 11,16 * * 1-5 /usr/local/blackboard/apps/snapshot/scripts/sis_snpshtFF_auto.sh
0 - Minuto 0 (inicio de la hora)
11,16 - 11:00 y 16:00
* - Cada día
* - Cada mes
1-5 - De lunes a viernes
o cada dos horas de lunes a viernes:
0 */2 * * Mon-Fri /usr/local/blackboard/apps/snapshot/scripts/sis_snpshtFF_auto.sh
0 - Minuto 0 (inicio de la hora)
*/2 - Cada hora par, 12, 2, 4, 6, 8, 10, 12, 14, etc., o cada dos horas.
* - Cada día
* - Cada mes
Mon-Fri - De lunes a viernes
Sugerencia
También puede ver la página del manual de su sistema a través de la línea de comandos con el comando $ man 5 crontab
Agregar un crontab
Con los ajustes de cron anteriores, podemos añadir una entrada de crontab para programar cuándo queremos ejecutar la tarea de instantánea.
Para editar su archivo raíz de crontab, escriba el siguiente comando como usuario raíz en el símbolo del sistema del shell UNIX/Linux:
$ crontab -e
La -e lo lleva a un editor vi.
Para ejecutar la secuencia de comandos de procesamiento automatizado del archivo sin formato todos los días a medianoche, agregue lo siguiente a la lista de tareas:
root@dev$ crontab -e
Escriba i para ingresar al modo de edición, luego escriba:
0 0 * * * /usr/local/blackboard/apps/snapshot/scripts/sis_snpshtFF_auto.sh
Presione la tecla Escape para salir del modo de edición.
Escriba ":wq" para guardar la edición y salir del editor.
Referencias
Las personas a continuación colaboraron con ideas, aportaciones y sugerencias para la implementación de referencia BASH:
Kelt Dockins colaboró con su implementación basada en BASH para el análisis de contenido del archivo de instantánea sin formato (ya no se encuentra disponible en línea).
Ross Brown y Jerald Todd detectaron algunos problemas iniciales en la primera versión de la implementación de referencia.
Archivos
Este archivo (zip) descargable SIS_SnpshtFF_Bash_Scripts archive contiene código funcional y comentado en el que se observan los conceptos presentados en este tema.
Archivo de scripts de Bash de archivo plano de instantáneas de SIS o Sistema de información del estudiante
Aprende más
Descripción general del marco SIS o Sistema de información del estudiante