Skip to main content

스냅숏 플랫 파일 자동화

학생 정보 시스템 통합에서 문제가 없도록 하는 필수적인 측면은 통합을 통해 제시된 대로 Blackboard로의 데이터 흐름을 자동화하고 모니터링하는 기능이다. 이 프로세스를 쉽게 만드는 두 가지 새로운 기능은 다음과 같습니다.

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

    성공: 피드 파일 업로드 완료되었습니다. 로그에서 해당 레코드를 추적하려면 참조 코드 afc3d6e84df84f51944a06cccee8f59a를 사용하십시오.

  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>

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

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

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

참고

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

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

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

: 요약

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

의 과정은 많은 연습과 헌신을 필요로 합니다.

학생 정보 시스템, 운영체제 스케줄러, 블랙보드

전제 조건

지정된 디렉터리에서 학생 정보 시스템은 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를 사용하여 데이터를 Blackboard로 전송하고 완료 상태를 결정합니다.

  7. 오류가 있으며 쿼리하도록 구성된 경우 sis_snpshtFF_manual이 오류 메시지에 대해 통합 로그를 쿼리합니다.

  8. sis_snpshtFF_manual 스크립트가 상태 정보를 포함하는 이메일을 구성하고, 구성된 이메일 주소로 이메일을 전송합니다.

  9. 각 데이터 파일에 대해 5~8단계를 반복합니다.

  10. 모든 데이터 파일의 처리가 완료된 후 sis_snpshtFF_auto 스크립트가 구성된 이메일 주소로 상태 이메일을 전송합니다.

사후 조건

SIS에서 생성된 플랫 파일이 제공하는 데이터는 Blackboard에 추가된 데이터 객체가 순차적으로 처리하며, 원본 파일은 파일 이름에 처리 타임스탬프를 추가하여 보관됩니다. 스크립트 구성 관리자는 처리된 파일별 상태 이메일과 전체 처리 작업을 다루는 전반적인 상태 이메일을 수신합니다.

해결책

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

  • "시기": 제공된 데이터 처리를 실행할 시점을 결정하고,

  • "무엇": 데이터를 제공한 데이터 개체 및 데이터 소스를 포함하며,

  • "방법": 해당 데이터 처리 및 모니터링

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

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

참고

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

"방법": 학생 정보 시스템_snpshtFF_auto.sh 및 학생 정보 시스템_snpshtFF_manual 스크립트 사용

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

  • 지정된 디렉터리에 파일이 있는지 확인합니다.

  • 파일에 있는 헤더 정보를 기반으로 객체 유형 및 작업을 확인합니다.

  • 파일이 올바른 순서로 처리되도록 처리 순서를 지정합니다. 예: 사용자, 과정, 회원권.

  • 처리, 모니터링을 수행하고 관리자에게 이메일로 처리 상태를 통지하기 위해 하위 스크립트(sis_snpshtFF_manual.sh)를 호출합니다.

  • 처리 완료 시 데이터 파일을 아카이브합니다.

  • 다음 데이터 파일이 있는 경우 처리합니다.

  • 마지막으로 자동화 스크립트에 대한 호출의 누적 결과를 나타내는 보고서 메일을 전송합니다.

다음과 같이 설명된 일반적인 흐름을 제공합니다. 왼쪽에는 제공된 참조 해결책에 설명된 대로 스냅숏 플랫 파일 처리를 자동화하는 일반적인 과정이 있습니다. 프로세스 스크립트 부분에 대한 추가 분석이 오른쪽에 있습니다. 왼쪽에 sis_snpshtFF_auto.sh, 오른쪽에 sis_snpshtFF_manual.sh 등 두 개의 스크립트가 있습니다. 그림 2에 나와 있는 작업은 각 스크립트의 자동화 참조 구현에도 코멘트로 포함되어 있습니다.

스냅샷 자동화를 위한 일반 워크플로 다이어그램으로, 프로세스의 스크립팅된 부분이 포함되어 있습니다. 왼쪽에 sis_snpshtFF_auto.sh, 오른쪽에 sis_snpshtFF_manual.sh 등 두 개의 스크립트가 있습니다.
"‘무엇’": 학생 정보 시스템_snpshtFF_auto.sh

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

모든 파일이 분석되고 객체 유형의 목록으로 그룹화된 후 해당 목록은 사용자, 코스, 멤버십 순으로 처리됩니다. 각 파일은 처리를 위해 s_snpshtFF_manual 스크립트에 전달되며, 명령줄에서 각 객체 유형에 대한 적절한 인수와 함께 실행될 수도 있습니다. sis_snpshtFF_manual 스크립트는 전달받은 인수를 활용하여 적절한 URL을 통해 데이터 파일을 Blackboard에 POST한다. 작업이 완료되면 스크립트는 모니터링 루프를 시작한 다음, 보고서를 작성하고 구성된 수신자 목록에 이메일로 전송합니다. 이 파일은 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 - 월요일~금요일

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

crontab 추가

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

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

    $ crontab -e

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

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

    root@dev$ crontab -e

  3. ‘i’를 입력하여 편집 모드로 전환한 후 다음 명령을 입력하세요.

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

  4. Escape 키를 눌러 수정 모드를 종료합니다.

  5. Type :wq를 입력하면 편집한 내용을 저장하고 편집기를 종료합니다.

참조

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

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

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

파일

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

학생 정보 시스템 스냅샷 플랫 파일 Bash 스크립트 아카이브

자세히 알아보기

학생 정보 시스템 프레임워크 개요

데이터 소스 키 개요