Um aspecto integral de uma integração do SIA livre de problemas é a capacidade de automatizar e monitorar o fluxo dos dados para o Learn, conforme apresentado pela integração. Você conta com dois novos recursos que facilitam esse processo:
- Os resultados de URLs de publicação (POST) de integração contêm um processo de conjunto de dados UID. Por exemplo:
Success: Feed File Uploaded. Use the reference code afc3d6e84df84f51944a06cccee8f59a to track these records in the logs.
- 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 ID]/endpoint/dataSetStatus/afc3d6e84df84f51944a06cccee8f59a
que retorna:
5
_123_1
afc3d6e84df84f51944a06cccee8f59a
0
2013-03-20T10:45:48-05:00
0
2013-03-20T10:45:48-05:00
0
Saiba mais sobre identificadores de banco de dados em implantações do software como serviço
Essas adições facilitam o monitoramento por script das integrações automatizadas de Arquivos simples de instantâneo.
Este tópico fornece uma visão geral de como automatizar e monitorar uma integração do Arquivo simples de instantâneo. 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 de instantâneo. 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.
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. Os clientes Managed Hosting continuarão a contar com a interface de log da Estrutura de SIA para acessar mensagens de erro. Mediante futura melhoria neste documento, será possível acessar essas mensagens de log por um meio "em script".
Caso de uso: Automatização do processamento de Arquivo simples do 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 de instantâneo 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 enviar os dados para o Learn. 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
SIA, Programador do sistema operacional e Learn
Precondições
Em um diretório especificado, o SIA gera e armazena arquivos de texto formatados do tipo Arquivo simples de instantâneo para objetos do Learn, como usuários, cursos, matrículas e tarefas de pessoal.
Descrição
- O SIA fornece Arquivos simples de instantâneo para um diretório de dados especificado pelo script
- O programador do sistema operacional (CRON) inicia o script the sis_snpshtFF_auto
- O script sis_snpshtFF_auto verifica o diretório de dados em busca de qualquer arquivo
- O script sis_snpshtFF_auto determina o tipo de objeto do Learn de cada arquivo
- 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
- O script sis_snpshtFF_manual usa o método POST para enviar os dados para o Learn e determinar o estado de conclusão
- 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
- 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
- Os passos 5 a 8 repetem-se para cada arquivo de dados
- 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 SIA são sequencialmente obtidos por objeto de dados adicionado ao Learn e os arquivos originais são arquivados com o carimbo de data e 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:
- "Quando": que determina quando executar o processamento dos dados fornecidos;
- "Qual": quais objetos de dados e fontes de dados que forneceram as coberturas de dados; e
- "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. Colocar todos os três no lugar proporcionará um processo automatizado que pode ser monitorado para transferir os dados do SIA para o Learn por meio do tipo de integração de Arquivo simples de instantâneo.
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.
"Como": Utilização dos 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.
"Qual": 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 instantâneos. 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 Learn. 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.
"Quando": Utilização de CRON para programar instantâneos
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.
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 itens crontab
Formato: CRON usa um formato muito específico para a programação de 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 consultar a página do manual do seu sistema pela linha de comando usando o comando $ man 5 crontab
Adicionar um crontab
Usando as configurações de cron acima, podemos adicionar um item do crontab para programar quando a tarefa do Instantâneo será executada.
- 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.
- 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
- Digite i para entrar em modo de edição e digite:
0 0 * * * /usr/local/blackboard/apps/snapshot/scripts/sis_snpshtFF_auto.sh
- Pressione "escape" para sair do modo de edição.
- 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 de instantâneo (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.