URL 체크 모듈 기능

Download Report

Transcript URL 체크 모듈 기능

UCI RA기관 URL 체크 적용 가이드
 2011. 10
Agenda
목 차
1. URL 체크 모듈 개요
URL 체크 모듈 기능
시스템 요구 사항
2. URL체크 설치 가이드
2-1 모듈 리스트
2-2 설치 방법
3. URL 체크 모듈 설정
4. URL 체크 개발 가이드
5. 개발 Sample 소스
2
1. URL 체크 모듈 개요
 URL 체크 모듈 기능
RA기관
데몬 서비스
1 URL 체크
변환 서비스
서버
Client
2 URL 추출
3
총괄시스템
관제 서버
URL체크 결과
송신
4
모듈
결과.xml
응용메타
DB
URL 체크
결과 전송
 URL 체크 구성
1. 총괄시스템에서 제공되는 URL체크용 데몬 서비스를 RA기관의 시스템에 구성.
2. 데몬 서비스에서 URL체크를 수행하기 위한 응용메타 URL 정보 수집-RA기관 위탁사업자가 수행.
3. 추출된 URL을 이용하여 URL을 검사한 후 결과 파일 생성.
4. 생성된 결과 파일( 예)result.xml파일 )을 총괄 시스템의 관제 서버에 전송
3
1. URL 체크 모듈 개요
 시스템 요구 사항
- JDK(Java Virtual Machine) ver1.4 이상
- Web Application Server – JDK 1.4이상을 지원하는 버전
(WebLogic, Jeus, Tomcat, 등)
- Oracle DataBase
4
2. URL 체크 설치 가이드
 URL 체크 리스트
URL 체크 배포 모듈(uci_urlchker.zip)을 unzip하면 다음과 같은 구성으로 되어 있음.
URL 체크 적용가이드
URL 체크 메인 모듈
 urlchker.jar를 제외한 나머지 jar파일들은 url 체크 모듈을 구동하기 위한 library 파일임
5
2. URL 체크 설치 가이드
 URL 체크 설치 방법
URL 체크 배포 모듈에서 jar파일을 WAS의 응용 Application 영역의 lib 디렉터리에 복사함.
예시) Tomcat V5.5를 기준으로 배치 위치 설명.
1. UCI RA용 Web Application 설치 위치 : - Tomcat5.5\webapps\UCIRA
2. URL 체크 모듈 복사 위치 : - Tomcat5.5\webapps\UCIRA\WEB-INF\lib
제외
제외
6
3. URL 체크 모듈 설정
URL 체크 모듈에 대한 설정은 RA시스템의 web.xml에 설정 내용을 추가하여 설정한다.
- web.xml을 설정한 후 WAS를 재 시작하거나, 응용프로그램의 redploy를 해야만 적용됨.
- 전체내용은 UCI 배포 모듈의 WEB-예시.xml 참조
7
3. URL 체크 모듈 설정
 web.xml 설정 내용
1. Quartz Servlet 설정
-
URL 체크 모듈은 WAS에 탑재되어 데몬 형태로 정해진 일자에 구동하기 위해서 quartz 라이브러리를 이용함.
-
quartz 모듈을 구동하기 위해서 아래와 같이 web.xml에 추가함.
<servlet>
<display-name>Quartz Initializer Servlet</display-name>
<servlet-name>QuartzInitializer</servlet-name>
<servlet-class>org.quartz.ee.servlet.QuartzInitializerServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<display-name>Quartz Servlet</display-name>
<servlet-name>QuartzServlet</servlet-name>
<servlet-class>org.uci.urlchecker.URLChkServlet</servlet-class>
<
…
 다음 페이지 참조 ( Daemon 설정)
>
<load-on-startup>2</load-on-startup>
</servlet>

위의 내용에서 <load-on-startup> 항목은 servlet class의 기동 순서 이므로 가급적 quartz관련 servlet의 순위를
1로 설정함.
8
3. URL 체크 모듈 설정
 web.xml 설정 – Daemon설정
<init-param>
<param-name>urlcollect.class</param-name> 1
<param-value>org.uci.urlchecker.URLChkSvcImpl</param-value>
</init-param>
<init-param>
2
<param-name>cronExpr</param-name>
<!-- param-value>0/10 * * * * ?</param-value -->
<param-value>0 0 23 * * ?</param-value>
</init-param>
<init-param>
<param-name>orgcd</param-name>
3
<param-value>G001</param-value>
</init-param>
<init-param>
4
<param-name>sendurl</param-name>
<param-value>http://name.uci.or.kr/URLCheckResult</param-value>
</init-param>
<init-param>
<param-name>userid</param-name>
5
<param-value>G001</param-value>
</init-param>
<init-param>
<param-name>userpw</param-name>
6
<param-value>G001</param-value>
</init-param>
<init-param>
<param-name>xmldir</param-name>
7
<param-value>D:/test/xml/</param-value>
</init-param>
1.URL 수집 클래스
- RA기관의 응용메타 정보에서 URL을 추출하기 위한 Class 에
대한 정보
(각 RA기관별로 개발하는 프로그램에 대한 정보 임)
2.URL 체크 수행시간 설정
- URL Check 프로그램의 구동 시간에 대한 정보임.
등록 방법은 Unix crontab 설정과 같음.
3.등록관리기관 Prefix 정보
- 해당 RA기관에 부여된 Prefix정보를 기입함.
4.URL Check결과 전송 URL
- 총괄 운영서버의 URL Check수신 정보
( 예제에 나와 있는 정보와 동일하게 설정하면 됨)
5.사용자 ID
- 등록 관리 기관을 신청할 때 기입했던 사용자 ID
6.사용자 PW
- 등록 관리 기관을 신청할 때 기입했던 사용자 패스워드
7.URL Check결과 저장소
- URL Check한 결과를 RA기관 서버에 저장하기 위한 위치 정보
9
4. URL 체크 개발 가이드
URL 체크 모듈은 다음과 같은 방법으로 구동되어, RA 기관의 URL을 검증한다.
Daemon Servlet
Cron 정보
0 0 19 * * ?
RA 기관 개발 대상
URL 수집 Class 구동
URL 검사 모듈
- 결과는 xml로 저장
URL 결과 전송
RA
응용메타
결과 XML
총괄
등록 서버
10
4. URL 체크 개발 가이드 - 계속
URL 체크 모듈에서 해당 UCI 코드에 관련된 URL정보는 각 RA기관별로 응용메타DB에 가지고 있어서, 기관별로 개발
이 필요함.
총괄 기관에서는 URL Check 모듈을 배포하면서, 각 RA기관의 다양한 응용 메타 사항에 대한 표준적인 적용 방법을
위하여 Interface 방식을 통하여 RA기관에서 개발한 모듈(Class)를 호출하도록 제작하여 배포함.
* 참조 사항.
1. RA 기관에서 개발할 URL 정보 수집용 Class는 org.uci.urlchecker.URLChkSvc를 확장하여 작성한다.
예시) public class URLChkSvcImpl implements URLChkSvc {
2. URLChkSvc Interface 클래스에서는 두 가지 Method가 선언되어 있다.
public String getUrlCollect(); - 총괄모듈에서 테스트 용도의 method – RA구현 소스에서는 선언만 하면 됨.
public List
listUrlCollect();
- 실제 RA기관에서 구현해야 하는 부분임.
3. 해당 클래스를 작성한 이후 compile한 후 class파일은 RA기관용 WEB Application의 WEB-INF/classes 디렉터리
에 복사해야 함. ( WAS서버에 따라 재 시작해야 반영될 수 있음)
4. 해당 RA 기관에 따라 대상 URL이 많은 경우, 다음의 예제와 같이 수행할 필요는 없음.
- xml파일 또는 별도의 view등을 이용하여 분산하여 처리할 수 있음.
11
5. URL 체크 개발 Sample
package org.uci.urlchecker;
import java.util.ArrayList;
import java.util.List;
public class URLChkSvcImpl implements URLChkSvc {
public String getUrlCollect() {
return "";
}
public List listUrlCollect() {
ArrayList urllist = new ArrayList();
String query = "SELECT … FROM ..";
DataSource ds = null;
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
String uci_cd = “”;
String ucl_url = “”;
try {
InitialContext ic = new InitialContext();
ds = (DataSource) ic.lookup("java:comp/env/jdbc/myoracle");
conn = ds.getConnection();
stmt = conn.createStatement();
rs = stmt.executeQuery(query);
while(rs.next()) {
12
5. URL 체크 개발 Sample
while(rs.next()) {
uci_cd = rs.getString("UCI_CD");
uci_url = rs.getString("UCI_URL");
URLChkData urldata = new URLChkData(uci_cd, uci_url, 0);
urllist.add(urldata);
}
rs.close();
stmt.close();
conn.close();
} catch (NamingException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return urllist;
}
}
13