Skip to main content

Automação de arquivo simples do Snapshot

Um aspecto integral de uma integração do Sistema de informações do aluno (SIA) sem problemas é a capacidade de automatizar e monitorar o fluxo de dados para o Blackboard, conforme apresentado pela integração. Você conta com dois novos recursos que facilitam esse processo:

  1. Os resultados de URLs de publicação (POST) de integração contêm um processo de conjunto de dados UID. Por exemplo:

    Sucesso: Arquivo de feed carregado. Use o código de referência afc3d6e84df84f51944a06cccee8f59a para rastrear esses registros nos logs.

  2. Foi adicionada uma novo URL de status do conjunto de dados. Ao estabelecer contato com o código do processo do conjunto de dados, o URL retornará um bloco XML contendo especificações sobre o status do conjunto de dados. Observe que a chamada pode ser realizada após a operação de publicação (POST) para que o arquivo de dados Original seja concluído.

    https:// ... /webapps/bb-data-integration-flatfile-[YOUR código]/endpoint/dataSetStatus/afc3d6e84df84f51944a06cccee8f59a

    que retorna:

    <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>

Essas adições facilitam o monitoramento por script das integrações automatizadas de arquivos simples do Snapshot.

Este tópico fornece uma visão geral de como automatizar e monitorar uma integração do arquivo simples do Snapshot. Os exemplos fornecidos são para uma plataforma UNIX ou Linux usando CRON para automação e linguagem BASH de script de shell UNIX, mas os conceitos podem ser aplicados a qualquer linguagem que seja capaz de operações POST/GET, de analisar sequências de caracteres e datas, de executar consultas de base de dados e de enviar e-mails. Portanto, PERL, JAVA, PHP e Ruby são adequados para o desenvolvimento, assim como outras linguagens de shell ou lote.

O objetivo é fornecer uma implementação de referência funcional para o desenvolvimento de uma integração do SIA monitorada e automatizada usando o arquivo simples do Snapshot. Isso terá dois componentes: automação e monitoramento. A implementação de referência está disponível por meio do link na parte inferior desta página.

Nota

Atualmente, a inclusão de mensagens de erro registradas por meio da implementação de referência apresentada só é compatível com sistemas auto-hospedados. Esse recurso é descrito no script e requer a remoção de comentários do código para uso em ambientes auto-hospedados. Mediante futura melhoria neste documento, será possível acessar essas mensagens de registro por um meio "em script".

Caso de uso: Automatizando o processamento de arquivos simples do Sistema de informações do aluno (SIA)

O caso de uso a seguir serve como base para a implementação de referência e como guia para seu próprio desenvolvimento.

Resumo

Automatize o processamento de dados de arquivo simples do Snapshot gerados pelo SIA e relatórios de e-mails para administradores especificados. A solução deve determinar periodicamente a presença de novos arquivos de dados, o objeto e a fonte de dados e apresentar os dados ao Blackboard. Arquivos processados devem ser colocados em um diretório separado para fins de arquivamento. A solução também deve fornecer a capacidade de processar arquivos de dados manualmente. Em todos os casos, os e-mails de status de falhas ou sucessos devem ser enviados aos administradores. O e-mail deve conter dados disponíveis sobre o processo e quaisquer mensagens de erro.

Atores

Sistema de informações do aluno (SIA), agendador do sistema operacional, quadro-negro

Pré-condições

Em um diretório especificado, o SIA gera e armazena arquivos de texto formatados do tipo arquivo simples do Snapshot para objetos do Learn, como usuários, cursos, matrículas e tarefas de pessoal.

Descrição
  1. O SIA fornece arquivos simples do Snapshot para um diretório de dados especificado pelo script

  2. O programador do sistema operacional (CRON) inicia o script the sis_snpshtFF_auto

  3. O script sis_snpshtFF_auto verifica o diretório de dados em busca de qualquer arquivo

  4. O script sis_snpshtFF_auto determina o tipo de objeto do Learn de cada arquivo

  5. O script sis_snpshtFF_auto faz uma chamada para o script sis_snpshtFF_manual adequadamente e na hierarquia de objetos: usuários, cursos, associações

  6. O script sis_snpshtFF_manual usa o método POST para enviar os dados para o Blackboard e determinar o estado de conclusão

  7. Se houver erros e se for configurado para tanto, o sis_snpshtFF_manual consulta os registros de integração em busca de mensagens de erro

  8. O script sis_snpshtFF_manual cria um e-mail com informações de status e os envia por e-mail para os endereços de e-mail configurados

  9. Os passos 5 a 8 repetem-se para cada arquivo de dados

  10. Depois de terminar o processamento de todos os arquivos de dados, o script sis_snpshtFF_auto envia um e-mail de status para os endereços de e-mail configurados

Pós-condições

Os dados fornecidos pelos arquivos simples gerados pelo Sistema de informações do aluno (SIA) são sequencialmente por objeto de dados adicionado ao Blackboard e os arquivos originais são arquivados com o carimbo de data/hora de processamento adicionado ao nome do arquivo original. Os administradores configurados por script recebem e-mails de status por arquivo processado e um e-mail de status geral que abrange a toda a tarefa de processamento.

A solução

Deixando de lado a geração dos arquivos de dados pelo SIA, que está fora do escopo deste documento, existem três componentes para o problema de automação:

  • O "Quando": determinar quando executar o processamento dos dados fornecidos,

  • O "O quê": quais objetos de dados e fontes de dados que forneceram dados abrangem, e

  • O "Como": processamento e monitoramento desses dados

Utilizando o caso de uso acima, podemos criar um conjunto de scripts configuráveis que pode determinar se existe um arquivo de dados (caso essa tarefa faça alguma coisa), com qual objeto o tipo de dados se aplica, fazer uma chamada de um script de processamento com os parâmetros apropriados para atender aos objetivos da integração, processar os dados e, após a conclusão, armazenar o arquivo de dados.

As seções a seguir abordam esses três componentes. A implementação dos três fornecerá um processo automatizado monitorável para mover dados do Sistema de informações do aluno (SIA) para o Blackboard por meio do tipo de integração de arquivo simples do Snapshot.

Nota

O script BASH é bastante comentado, por isso não será mencionado aqui. Em vez disso, nos concentraremos no fluxo geral e nos detalhes de processamento.

O "Como": usando os scripts sis_snpshtFF_auto.sh e sis_snpshtFF_manual

Com base no caso de uso acima, o script BASH abaixo (sis_snpshtFF_auto.sh) executa as seguintes operações:

  • Verifica se há arquivos no diretório especificado

  • Determina o tipo de objeto e a operação com base nas informações de cabeçalho no arquivo

  • Organiza o processamento para que os arquivos sejam processadosna ordem correta. Por exemplo: Usuários, cursos e associações.

  • Faz uma chamada de um subscript (sis_snpshtFF_manual.sh) para processamento, monitoramento e notificação de e-mail do administrador do status de processamento

  • Armazena o arquivo de dados após a conclusão do processamento

  • Processa o próximo arquivo de dados, se houver

  • E finalmente, envia um relatório indicando o resultado cumulativo da chamada para o script de automação.

Isso fornece o seguinte fluxo geral mostrado abaixo. Veja à esquerda o fluxo geral de automação do processamento de arquivo simples do Snapshot, conforme demonstrado na solução de referência fornecida. À direita, há um detalhamento adicional da parte roteirizada do processo. Temos dois scripts, sis_snpshtFF_auto.sh à esquerda e sis_snpshtFF_manual.sh à direita. As operações mostradas na Figura 2 também são incluídas como comentários na implementação de referência de automação de cada script.

Diagrama do fluxo de trabalho geral para automação de capturas de tela, incluindo a parte com script do processo. Temos dois scripts, sis_snpshtFF_auto.sh à esquerda e sis_snpshtFF_manual.sh à direita.
O "O quê": sis_snpshtFF_auto.sh

Em um nível elevado, o script sis_snpsht_auto carrega os arquivos encontrados no diretório de dados configurado, analisa o cabeçalho dos dados do arquivo para determinar o tipo de objeto referenciado e adiciona o arquivo à lista apropriada para processamento posterior. A análise de cabeçalho determina o tipo de objeto ao qual o arquivo se refere e, portanto, sua ordem na fila de processamento de capturas de tela. Essa classificação permite um único ponto de queda para os arquivos simples gerados pelo SIA.

Depois que todos os arquivos forem analisadose agrupados em listas de acordo com o tipo de objeto, as listas são processadas em ordem lógica de usuários, cursos e associações. Cada arquivo é enviado ao script sis_snpshtFF_manual para processamento, que também pode ser executado a partir da linha de comando, juntamente com os argumentos apropriados para cada tipo de objeto. O script sis_snpshtFF_manual leva os argumentos recebidos e usa o URL apropriado para fazer a publicação (POST) do arquivo de dados para o Blackboard. Quando concluído, o script entra em um loop de monitoramento e cria um relatório e envia um e-mail para a lista configurada de destinatários. O arquivo é devolvido a script sis_snpsht_auto, que envia arquivo seguinte para processamento. Esse processo é repetido até que todos os arquivos sejam processados. Depois que todos os arquivos são processados, o script sis_snpshtFF_auto envia um relatório final para a lista de destinatários configurados.

O "Quando": Usando o CRON para programar capturas de tela

O objetivo da automação é desenvolver a capacidade de executar o conjunto de scripts sem intervenção humana. O UNIX fornece essa capacidade com CRON, um aplicativo de programação integrado. Um processo do sistema, CRON, verifica periodicamente o sistema crontab, um arquivo do sistema que contém uma lista de comandos e configurações para quando for necessário executá-los. Os itens são avaliados para saber se devem ser executados imediatamente ou posteriormente, conforme indicado na entrada do crontab.

Importante

A frequência de trabalhos cron e os tempos de processamento para operações devem ser considerados na configuração de itens crontab, uma vez que as operações REFRESH podem demorar mais do que as operações STORE. O processamento de dados REFRESH versus STORE pode ser tratado por meio de itens de crontab separadas e diretórios de fonte de dados separados nos argumentos de script, se estiver usando o script fornecido abaixo.

Expressões CRON para entradas crontab

Formato: O CRON usa um formato muito específico para agendar dados. Baseia-se em uma lista separada por espaço de cinco campos de dados necessários:

Campo

Descrição

Valor permitido

MIN

Campo dos minutos

0 a 59

HORA

Campo das horas

0 a 23

DDM

Dia do mês

1-31

MÊS

Campo do mês

1-12

DDS

Dia da semana

0-6

CMD

Comando

Qualquer comando a ser executado.

Na prática, esse formato pode ser aplicado de forma simples ou complexa, depende do que você escolher.

Exemplos:

Um exemplo de um item de crontab simples seria executar uma tarefa no início de cada hora:

0 * * * * /usr/local/blackboard/apps/snapshot/scripts/sis_snpshtFF_auto.sh

  • 0 – 0º Minuto

  • * – Por hora

  • * – Por dia

  • * – Por mês

  • * – Por dia da semana

ou uma vez à meia-noite todos os dias:

0 0 * * * /usr/local/blackboard/apps/snapshot/scripts/sis_snpshtFF_auto.sh

  • 0 – 0º Minuto

  • 0 – Por hora

  • * – Por dia

  • * – Por mês

  • * – Por dia da semana

Executar uma tarefa duas vezes por dia durante a semana de trabalho:

0 11,16 * * 1-5 /usr/local/blackboard/apps/snapshot/scripts/sis_snpshtFF_auto.sh

  • 0 – 0º Minuto (início da hora)

  • 11,16 – 11h e 16h

  • * – Por dia

  • * – Por mês

  • 1-5 – de segunda a sexta

ou a cada duas horas, de segunda a sexta:

0 */2 * * Mon-Fri /usr/local/blackboard/apps/snapshot/scripts/sis_snpshtFF_auto.sh

  • 0 – 0º Minuto (início da hora)

  • */2 – Por hora par 12, 2, 4, 6, 8, 10, 12, 14, etc. ou outra hora.

  • * – Por dia

  • * – Por mês

  • Seg-Sex – de segunda a sexta

Você também pode visualizar a página de manual do seu sistema por meio da linha de comando usando o comando $ man 5 crontab

Adicionando um crontab

Usando as configurações de cron acima, podemos adicionar um item do crontab para programar quando a tarefa do Snapshot será executada.

  1. Para editar o seu arquivo crontab raiz, como usuário raiz, digite o seguinte comando no prompt do shell UNIX/Linux:

    $ crontab -e

    Observe que "-e" direciona você para um editor vi.

  2. Para executar o script de processamento automatizado de Arquivo simples à meia-noite, todos os dias, adicione à lista de tarefas o seguinte comando:

    root@dev$ crontab -e

  3. Digite i para entrar no modo de edição e digite:

    0 0 * * * /usr/local/blackboard/apps/snapshot/scripts/sis_snpshtFF_auto.sh

  4. Pressione "escape" para sair do modo de edição.

  5. Digite :wq para salvar sua edição e sair do Editor.

Referências

As seguintes pessoas contribuíram com ideias, informações e sugestões para a implementação da referência BASH:

Kelt Dockins contribuiu com sua implementação baseada em BASH para a análise de conteúdo do arquivo simples do Snapshot (não está mais disponível on-line).

Ross Brown e Jerald Todd captaram alguns dos primeiros problemas expostos na primeira versão da implementação de referência.

Arquivos

Este arquivo (zip) para download SIA_SnpshtFF_Bash_Scripts contém um código funcional e comentado que demonstra os conceitos apresentados neste tópico.

Arquivo de Bash de arquivo simples do Snapshot do Sistema de informações do aluno (SIA)

Saiba Mais

Visão geral da estrutura do Sistema de informações do aluno (SIA)

Visão geral da chave da fonte de dados