학생 정보 시스템에 아무 문제가 없도록 하려면 통합에서 제공하는 대로 Learn에 대한 데이터 흐름을 자동화 및 모니터링해야 합니다. 이 프로세스를 쉽게 만드는 두 가지 새로운 기능은 다음과 같습니다.

  1. 통합 POST URL의 결과에 데이터 집합 프로세스 UID가 포함되어 있습니다. 예:

    Success: Feed File Uploaded. Use the reference code afc3d6e84df84f51944a06cccee8f59a to track these records in the logs.

  2. 새로운 데이터 집합 상태 URL이 추가되었습니다. 데이터 집합 프로세스 ID로 연결하는 경우 URL은 데이터 집합 상태에 관한 구체적인 항목이 포함된 XML 블록을 반환합니다. 이는 원본 데이터 파일의 POST 작업이 완료된 후에 제대로 호출될 수 있습니다.

    https:// ... /webapps/bb-data-integration-flatfile-[ID]/endpoint/dataSetStatus/afc3d6e84df84f51944a06cccee8f59a

    반환되는 결과:

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

    SaaS 배포에서의 데이터베이스 식별자에 대해 자세히 알아보기

이러한 추가 기능을 통해 자동화된 스냅숏 플랫 파일 통합에 대한 스크립팅된 모니터링이 쉬워졌습니다.

이 주제에서는 스냅숏 플랫 파일 통합을 자동화하고 모니터링하는 방식에 대해 간단히 설명합니다. 제공된 예는 자동화에 CRON을 사용하는 UNIX 또는 Linux 플랫폼과 UNIX 셸 스크립팅 언어인 BASH에 대해 작성되었지만, 이 개념은 문자열 및 날짜를 구문 분석하고 데이터베이스 쿼리를 수행하며 이메일을 전송하면서 POST/GET 작업을 수행할 수 있는 모든 언어에 적용될 수 있습니다. 따라서 PERL, JAVA, PHP 및 Ruby는 다른 셸 또는 배치 언어와 마찬가지로 개발에 적합합니다.

목표는 스냅숏 플랫 파일을 사용하여 모니터링 및 자동화되는 학생 정보 시스템 통합을 개발하기 위해 기능적인 참조 구현을 제공하는 것입니다. 여기에는 두 가지 구성 요소, 즉 자동화와 모니터링이 있습니다. 참조 구현은 이 페이지 하단에 있는 링크를 통해 제공됩니다.

제공된 참조 구현을 통해 로깅된 오류 메시지를 포함하는 작업은 현재 셀프 호스팅 시스템에서만 사용할 수 있습니다. 이 기능은 스크립트에 설명되어 있으며 셀프 호스팅 환경에서 이 기능을 사용하려면 코드에서 코멘트를 제거해야 합니다. Managed Hosting 고객은 계속해서 Learn 학생 정보 시스템의 프레임워크 로깅 인터페이스를 통해 오류 메시지를 확인하게 됩니다. 이 문서에는 향후 이러한 로그 메시지에 대한 '스크립트 내' 접근 수단에 관한 내용이 추가될 예정입니다.


사용 사례: 학생 정보 시스템의 플랫 파일 처리 자동화

다음의 사용 사례는 참조 구현을 위한 기본 요소 및 자체 개발을 위한 가이드 역할을 합니다.

요약

지정된 관리자에게 보내는 이메일 보고서 및 학생 정보 시스템에서 생성된 스냅숏 플랫 파일 데이터의 처리를 자동화하십시오. 솔루션에서는 새 데이터 파일, 객체 및 데이터 소스의 현재 상태를 주기적으로 확인하고 Learn에 데이터를 제공해야 합니다. 처리된 파일은 아카이브를 위해 개별 디렉터리에 배치되어야 합니다. 솔루션에서는 데이터 파일을 수동으로 처리하는 기능도 제공해야 합니다. 항상 실패 또는 성공에 관한 상태 이메일이 관리자에게 전송되어야 하며, 이메일에는 프로세스 및 모든 오류 메시지에 관해 사용할 수 있는 데이터가 포함되어 있어야 합니다.

작업자

학생 정보 시스템, 운영 체제 스케줄러, Learn

전제 조건

지정된 디렉터리에서 학생 정보 시스템은 Learn 객체(사용자, 코스, 등록 및 직원 배정 등)용 스냅숏 플랫 파일의 서식이 지정된 텍스트 파일을 생성하고 저장합니다.

설명

  1. 학생 정보 시스템은 스냅숏 플랫 파일을 스크립트별 데이터 디렉터리에 제공합니다.
  2. 운영 체제 스케줄러(CRON)가 sis_snpshtFF_auto 스크립트를 시작합니다.
  3. sis_snpshtFF_auto 스크립트가 데이터 디렉터리에 파일이 있는지 확인합니다.
  4. sis_snpshtFF_auto 스크립트가 각 파일의 Learn 객체 유형을 확인합니다.
  5. 그에 따라 sis_snpshtFF_auto 스크립트가 sis_snpshtFF_manual 스크립트를 호출합니다(객체 계층: 사용자, 코스, 멤버쉽).
  6. sis_snpshtFF_manual 스크립트에서는 POST를 사용하여 데이터를 Learn에 전송하고 완료 상태를 확인합니다.
  7. 오류가 있으며 쿼리하도록 구성된 경우 sis_snpshtFF_manual이 오류 메시지에 대해 통합 로그를 쿼리합니다.
  8. sis_snpshtFF_manual 스크립트가 상태 정보를 포함하는 이메일을 구성하고, 구성된 이메일 주소로 이메일을 전송합니다.
  9. 각 데이터 파일에 대해 5~8단계를 반복합니다.
  10. 모든 데이터 파일의 처리가 완료된 후 sis_snpshtFF_auto 스크립트가 구성된 이메일 주소로 상태 이메일을 전송합니다.

사후 조건

학생 정보 시스템에서 생성된 플랫 파일에서 제공한 데이터는 데이터 객체별로 Learn에 순차적으로 추가되며 원본 파일은 원본 파일명에 추가된 처리 타임스탬프를 사용하여 아카이브됩니다. 스크립트 구성 관리자는 처리된 파일별 상태 이메일과 전체 처리 작업을 다루는 전반적인 상태 이메일을 수신합니다.


솔루션

이 문서의 범위를 벗어나는 학생 정보 시스템을 통한 데이터 파일의 생성은 논외로 하면, 자동화 문제에는 다음과 같은 세 가지 구성 요소가 있습니다.

  • "언제": 제공된 데이터를 처리할 시기 결정
  • "무엇을": 제공된 데이터가 다루는 데이터 객체 및 데이터 소스
  • "어떻게": 해당 데이터을 처리 및 모니터링할 방법

위의 사용 사례를 활용하면 데이터 파일이 있는지(이 작업은 모든 작업을 수행 가능해야 함) 그리고 데이터가 어떤 객체 유형에 적용될지를 확인하고, 통합 목표를 충족하기 위해 적절한 매개변수로 처리 스크립트를 호출하고, 데이터를 처리하며, 작업 완료 시 데이터 파일을 아카이브할 수 있는 구성 가능한 스크립트 집합을 구축할 수 있습니다.

다음 섹션에서는 이러한 세 가지 구성 요소에 대해 다룹니다. 이 세 구성 요소를 모두 배치하면 스냅숏 플랫 파일 통합 유형을 통해 학생 정보 시스템 데이터를 Learn으로 이동하기 위해 모니터링 가능한 자동화된 프로세스가 제공됩니다.

BASH 스크립트는 코멘트가 많아 여기에서 제공되지 않습니다. 대신, 전반적인 흐름과 처리 세부 사항을 중점적으로 살펴보겠습니다.

"어떻게": sis_snpshtFF_auto.sh 및 sis_snpshtFF_manual 스크립트 사용

위의 사용 사례를 기반으로 하여 아래의 BASH 스크립트(sis_snpshtFF_auto.sh)는 다음 작업을 수행합니다.

  • 지정된 디렉터리에 파일이 있는지 확인합니다.
  • 파일에 있는 헤더 정보를 기반으로 객체 유형 및 작업을 확인합니다.
  • 파일이 올바른 순서로 처리되도록 처리 순서를 지정합니다. 예: 사용자, 코스, 멤버십 순.
  • 처리, 모니터링을 수행하고 관리자에게 이메일로 처리 상태를 통지하기 위해 하위 스크립트(sis_snpshtFF_manual.sh)를 호출합니다.
  • 처리 완료 시 데이터 파일을 아카이브합니다.
  • 다음 데이터 파일이 있는 경우 처리합니다.
  • 마지막으로 자동화 스크립트에 대한 호출의 누적 결과를 나타내는 보고서 메일을 전송합니다.

"무엇을": sis_snpshtFF_auto.sh

상위 수준에서 sis_snpsht_auto 스크립트는 구성된 데이터 디렉터리에서 발견한 파일을 로드하고, 참조된 객체 유형을 확인하기 위해 파일 데이터 헤더를 분석하며, 나중에 처리되도록 적절한 목록에 이 파일을 추가합니다. 헤더 분석에서는 파일이 참조하는 객체 유형과 스냅숏 처리 대기열에 있는 해당 순서도 확인합니다. 이 정렬을 사용하면 학생 정보 시스템에서 생성된 플랫 파일을 놓을 하나의 지점이 허용됩니다.

모든 파일이 분석되고 객체 유형의 목록으로 그룹화된 후 해당 목록은 사용자, 코스, 멤버십 순으로 처리됩니다. 각 파일은 처리를 위해 s_snpshtFF_manual 스크립트에 전달되며, 명령줄에서 각 객체 유형에 대한 적절한 인수와 함께 실행될 수도 있습니다. sis_snpshtFF_manual 스크립트는 수신 인수를 취하고 적절한 URL을 사용하여 Learn에 데이터 파일을 게시합니다. 작업이 완료되면 스크립트는 모니터링 루프를 시작한 다음, 보고서를 작성하고 구성된 수신자 목록에 이메일로 전송합니다. 이 파일은 sis_snpsht_auto 스크립트에 반환되며 이 스크립트는 처리를 위해 다음 파일을 전송합니다. 이 프로세스는 모든 파일이 처리될 때까지 반복됩니다. 모든 파일이 처리된 후 sis_snpshtFF_auto는 구성된 수신자 목록에 최종 보고서를 이메일로 전송합니다.

"언제": CRON을 사용하여 스냅숏 예약

자동화의 목적은 사람의 개입 없이 스크립트 집합을 설정하는 것입니다. UNIX는 내장된 예약 애플리케이션인 CRON을 통해 이 기능을 제공합니다. 시스템 프로세스인 CRON은 시스템 crontab, 명령 목록이 포함된 시스템 파일, 명령이 실행되어야 하는 시기 설정을 주기적으로 확인합니다. 그런 다음 crontab 항목에 나타난 대로 항목이 지금 또는 나중에 실행해야 하는지에 대해 평가됩니다.

REFRESH 작업은 STORE 작업보다 시간이 오래 걸릴 수 있기 때문에 crontab 항목을 설정할 때는 cron 작업의 빈도와 작업 처리 시간을 고려해야 합니다. STORE 데이터에 비해 REFRESH 데이터의 처리는 아래의 제공된 스크립트를 사용하는 경우 스크립트 인수에서 개별 crontab 항목과 개별 데이터 소스 디렉터리를 통해 처리될 수 있습니다.

crontab 항목에 대한 CRON 표현식

형식: CRON은 데이터를 예약할 때 매우 구체적인 형식을 사용합니다. 이는 다음의 다섯 가지 필수 데이터 필드를 공백으로 구분한 목록을 사용합니다.

필드설명허용된 값
MIN분 필드0~59
HOUR시간 필드0~23
DOM날짜1~31
MON달 필드1~12
DOW요일0~6
CMD명령실행할 명령

실제로 이 형식은 선택에 따라 간단하거나 복잡하게 적용될 수 있습니다.

예:

간단한 crontab 항목의 예는 다음과 같습니다. 매 정시에 작업을 실행하는 경우:

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

  • 0 - 0분
  • * - 매시간
  • * - 매일
  • * - 매월
  • * - 모든 요일

또는 매일 자정에 한 번 작업을 실행하는 경우:

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

  • 0 - 0분
  • 0 - 매시간
  • * - 매일
  • * - 매월
  • * - 모든 요일

작업 주간 동안 하루에 두 번 작업을 실행하는 경우:

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

  • 0 - 0분(정시)
  • 11,16 - 오전 11시 및 오후 4시
  • * - 매일
  • * - 매월
  • 1-5 - 월요일~~금요일

또는 월요일부터 금요일에 매일 2시간마다 작업을 실행하는 경우:

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

  • 0 - 0분(정시)
  • */2 - 짝수 시간마다(12시, 2시, 4시, 6시, 8시, 10시, 12시, 14시 등) 또는 2시간마다
  • * - 매일
  • * - 매월
  • Mon-Fri - 월요일~금요일

CRON에 대해 자세히 알아보기

$ man 5 crontab 명령을 사용하여 명령줄을 통해 시스템의 기본 페이지를 확인할 수도 있습니다.

crontab 추가

위의 cron 설정을 사용하는 경우 스냅숏 작업을 언제 실행할지 예약하기 위해 crontab 항목을 추가할 수 있습니다.

  1. 루트 crontab 파일을 수정하려면 루트 사용자로서 UNIX/Linux 셸 메시지에서 다음 명령을 입력합니다.

    $ crontab -e

    -e를 사용하면 텍스트 편집기로 이동됩니다.

  2. 플랫 파일의 자동화된 처리 스크립트를 매일 자정에 실행하려면 작업 목록에 다음을 추가합니다.

    [email protected]$ crontab -e

  3. i를 입력하여 수정 모드를 시작한 다음, 다음을 입력합니다.

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

  4. Escape 키를 눌러 수정 모드를 종료합니다.
  5. :wq를 입력하여 수정 사항을 저장하고 편집기를 종료합니다.

참고

BASH 참조 구현을 위한 아이디어, 제공 및 제안에 기여한 인물은 다음과 같습니다.

Kelt Dockins는 스냅샷 플랫 파일 콘텐츠 분석을 위한 BASH 기반 구현에 기여했습니다(더 이상 온라인에서 제공되지 않음).

Ross Brown과 Jerald Todd는 참조 구현의 첫 번째 버전에서 드러난 몇 가지 초기 문제를 발견했습니다.


파일

다운로드할 수 있는 이 SIS_SnpshtFF_Bash_Scripts 아카이브(zip)에는 이 주제에서 제시된 개념을 설명하는 코멘트가 달린 기능 코드가 포함되어 있습니다.


자세히 알아보기

SIS Framework 개요

데이터 소스 키 개요