 |
|
난이도 : 중급 Susan Malaika, Senior Technical Staff Member, IBM Japan Christian Pichler, Data Server Solutions (Co-op), IBM
2008 년 7 월 15 일 유니버설 서비스(Universal Services)는 삽입, 업데이트, 삭제, 질의를 포함하는 데이터베이스의 연산 세트이며 웹 서비스 연산으로 노출됩니다. 이 서비스들을 이용하면 DB2® 데이터베이스에 pureXML™ 행을 가진 사람이 데이터베이스 웹 서비스 연산(예: 프로토타이핑)을 빠르게 설정할 수 있습니다. 그런 다음 사용자는 폼이나 SOA 애플리케이션 같이 다양한 애플리케이션에서 이후 개발의 기본이 될 수 있는 REST나 SOAP을 통해 pureXML 행에 저장된 XML 데이터를 질의, 수정할 수 있습니다. 이 글에서는 유니버설 서비스를 구성, 테스트, 수정하는 방법을 소개합니다. 더 자세한 정보는 유니버설 서비스에 포함된 readme 파일의 단계별 안내를 읽어보기 바랍니다.
소개
유니버설 서비스는 DB2 데이터베이스의 pureXML 행에 저장된 XML 데이터베이스를 질의, 수정할 수 있는 데이터베이스 연산으로 간단하지만 고정된 세트다. 데이터 삽입, 업데이트, 삭제, 질의를 포함하는 이 데이테베이스 연산들은 데이터 웹 서비스 메커니즘을 통해 웹 서비스로 노출된다.
데이터 웹 서비스는 코딩 없이도 삽입이나 업데이트 같은 데이터베이스 연산을 웹 서비스로 노출되게 한다. 저장된 프로시저나 사용자가 정의한 함수 또한 마찬가지다. 데이터 웹 서비스 개발은 이미 developerWorks의 다른 글이나 튜토리얼에서 다룬 바 있다. 관련 튜토리얼과 글은 참고자료 절에서 찾아볼 수 있다.
그림 1은 유니버설 서비스 구조의 개요다.
그림 1. 유니버설 서비스 구조의 개요
유니버설 서비스의 목표는 DB2 데이터베이스의 어떤 pureXML 행이든 간단한 구성과 전개 단계를 통해 가능한 웹 서비스 연산으로 질의, 수정이 되게끔 하는 것이다. 이 단계들은 다음 절에서 설명하겠다. 더 자세한 정보는 다운로드한 유니버설 서비스 패키지의 readme 파일을 참조한다.
이 글은 샘플 데이터베이스에서의 유니버설 서비스 구성과 전개, 수정을 다루는데 다음과 같이 세 부분으로 나뉜다.
-
샘플 데이터베이스 설정: 유니버설 서비스 구성을 설명하는 데 사용할 샘플 데이터베이스의 설정 방법을 설명한다.
-
유니버설 서비스 설치: 유니버설 서비스의 구성과 전개를 설명한다.
-
유니버설 서비스 수정: 필요에 따라 환경에 맞게 유니버설 서비스를 변경하는 방법을 설명한다.
각 단계 별로 필요한 다운로드 정보에 관해서는 관련 절에 설명되어 있다.
필요한 사전지식
유니버설 서비스를 설치, 실행하려면 시스템에 DB2 9.x, JRE(Java Runtime Environment) 1.5.0, 웹 서버(WebSphere Application Server 6.x나 아파치 톰캣 6.x 같은)가 설치되어 있어야 한다. 자바 런타임은 DB2 설치에 들어있음에 주의하자.
또한 Industry Formats and Services 온라인 데모로 IRS e-File 1120 패키지와 유니버설 서비스 패키지 자체를 다운로드해야 한다. 참고자료의 다운로드 절에 관련 링크가 있다. 이 글을 따라 실행해 보려면 다운로드가 꼭 필요하다.
샘플 데이터베이스 설정하기
유니버설 서비스는 DB2 데이터베이스의 어느 pureXML 행에서나 설정할 수 있다. 이 서비스들의 구성과 설치를 보여주기 위해 우선 사용할 샘플 데이터베이스를 설정하는 방법을 설명하겠다. 여기서 만드는 샘플 데이터베이스는 무료로 다운로드가 가능한 DB2 pureXML 온라인 데모의 일부분으로 Industry Formats and Services with pureXML이라 부른다.
각각의 다운로드는 금융업계나 의류업계 등 특정 업계에 맞게 디자인된 데이터베이스를 사용자가 쉽게 설정할 수 있도록 스크립트 세트를 포함하고 있다. 여기서 사용된 스크립트는 샘플 데이터베이스와 pureXML 행을 포함하는 테이블을 만들고, 데이터베이스에 샘플 데이터를 로드한다. 다운로드에는 XML 스키마 등록, 등록된 XML 스키마에 대한 XML 인스턴스 문서의 유효성 검사, XQuery나 SQL/XML을 이용한 XML 데이터 질의(이 글에서는 참조하지 않더라도 흥미로울 수 있는) 등 더 많은 스크립트가 포함되어 있다. 특정 업계와 관련된 다운로드에 대한 더 많은 정보는 참고자료를 참조하기 바란다.
샘플 데이터베이스 만들기
이 글은 다운로드한 IRS Tax Form 1120의 전자 버전인 IRS e-File 1120을 기반으로 한다. IRS e-File 1120 패키지를 로컬의 임시 디렉터리에 다운로드하여 압축을 풀자. 이 데이터베이스 스크립트를 위한 임시 디렉터리는 c:\temp\irs1120이다.
그림 2. 로컬의 임시 디렉터리에 다운로드하여 압축을 푼 IRS e-File 1120의 내용
시스템에 샘플 데이터베이스를 설정하는 스크립트는 "start.bat"(리눅스 사용자의 경우 "start.sh")이다. 이 스크립트를 실행하려면 DB2 명령행 프로세서를 열고 디렉터리를 다운로드 파일이 있는 현재 실행 중인 디렉터리로 바꾼다. 이 디렉터리는 또한 지금 실행할 start.bat 파일도 가지고 있으므로 스크립트를 바로 실행한다.
스크립트가 끝나면 데이터베이스가 설정됐다는 메시지를 볼 수 있어야 한다. 다른 메시지가 뜬다면 다운로드한 IRS e-File 1120에 포함된 readme 파일을 보고 해결하자. 설정이 끝나면 pureXML 행에 로드된 pureXML 행과 샘플 데이터가 있는 DB2 샘플 데이터베이스가 시스템에 설정돼야 한다. 더 정확히 말하면 pureXML 행을 포함하는 데이터베이스 테이블은 다음과 같은 구조다.
표 1. 샘플 테이블 IRS1120 개요
| 행 이름 | 행 유형 | 내용 |
|---|
| ID | INTEGER | 테이블에 삽입된 각 레코드의 특별한 ID를 나타낸다. |
|---|
| COMMENT | VARCHAR(1000) | 테이블의 각 레코드에 코멘트를 저장하는 데 사용한다. |
|---|
| DOCUMENT | XML | 테이블의 세 번째 행은 type XML 행으로 XML 데이터를 저장하는 데 사용한다. 이것들은 특히 모두 IRS e-File 1120 XML 문서다. |
|---|
샘플 데이터베이스를 기반으로 이제 특정 pureXML 행의 유니버설 서비스를 구성, 설치하는 방법을 보여줄 수 있게 됐다.
유니버설 서비스 설치하기
유니버설 서비스 패키지를 로컬의 임시 디렉터리에 다운로드해 압축을 풀었다. 이 글에서 사용하는 유니버설 서비스를 위한 로컬의 임시 디렉터리는 c:\temp\UniversalServices다.
그림 3. 로컬의 임시 디렉터리에 다운로드해 압축을 푼 유니버설 서비스의 내용
시스템에 필요한 파일과 스크립트를 갖추면 기본적으로 세 단계로 이루어진 유니버설 서비스 설치를 진행할 수 있다. 세 단계를 통해 다음 방법을 보여준다.
- 유니버설 서비스를 구성해 로컬 시스템 설정에 맞추기.
- 애플리케이션 서버에 유니버설 서비스 전개하기.
- 빌트인 테스트 페이지를 사용해 유니버설 서비스 테스트하기.
유니버설 서비스 구성하기
유니버설 서비스는 다운로드한 "configure.bat"(리눅스 사용자의 경우 "configure.sh") 스크립트로 구성할 수 있다. 하지만 스크립트를 실행하기 전에 표 2에서 나열한 것처럼 로컬 시스템 설정에 맞춰야 한다.
표 2. 구성 스크립트에서 사용되는 매개변수의 개요
| 매개변수 이름 | 내용 | 값(샘플 데이터베이스 기준) |
|---|
| DB2INSTALLDIR | DB2 설치 디렉터리 경로 | C:\Program Files\IBM\SQLLIB |
|---|
| DBSCHEMA | XML 행을 포함하는 테이블이 속한 데이터베이스 스키마 이름 | IRS1120ADMIN |
|---|
| DBNAME | 유니버설 서비스가 사용되는 데이터베이스 이름 | IRS1120 |
|---|
| DBTABLE | XML 행을 포함하는 테이블 이름 | IRS1120 |
|---|
| DBPRIMARY | DBTABLE에 지정된 테이블의 주 행 이름. 이 행은 INTERGER나 VARCHAR 유형 중 하나다. | ID |
|---|
| DBCOMMENT | DBTABLE에 지정된 테이블의 코멘트 행 이름 | COMMENT |
|---|
| DBXML | DBTABLE에 지정된 테이블의 XML 행 이름. XML 데이터를 가지고 있는 행이다. | DOCUMENT |
|---|
표 2의 세 가지 매개변수인 DBPRIMARY, DBCOMMENT, DBXML은 표 1의 매개변수와 같음에 주의하자.
유니버설 서비스 구성 파일을 표 2의 정보와 같게 편집하자. 예를 들어 set DBNAME=SAMPLEDB는 set DBNAME=IRS1120으로 수정해야 한다. 그림 4는 표 2에서 제공하는 값에 맞도록 편집된 구성 파일을 보여준다.
그림 4. 구성 파일인 configure.bat 편집하기
configure.bat(리눅스 사용자의 경우 configure.sh) 파일을 편집하면 행 이름을 조절하듯이 유니버설 서비스의 실제 구성을 수행하는 스크립트를 실행할 수 있다. 그러고 나면 스크립트는 유니버설 서비스 웹 애플리케이션에 필요한 모든 파일을 가지고 애플리케이션 서버에 전개될 수 있는 Web application archive(WAR) 파일을 만든다. 스크립트는 DB2 명령행 프로세서에서 실행돼야 하며 그렇지 않으면 실행이 실패한다는 사실을 기억하자.
유니버설 서비스 전개하기
앞서 설명했듯이 configure.bat 스크립트를 편집, 실행해 애플리케이션 서버에 전개될 수 있는 WAR 파일을 만들었다. 애플리케이션 서버에 WAR 파일을 전개하기에 앞서 유니버설 서비스가 DB2 데이터베이스에 접근할 수 있도록 애플리케이션 서버에서 데이터 소스를 구성해야 한다.
데이터 소스를 설정하려면 애플리케이션 서버의 표준 구성 프로세스를 따라야 한다. 설정하는 동안 반드시 고려해야 하는 사항은 jdbc/[database name] 패턴을 따라야 하는 데이터 소스의 이름뿐이다. 여기서는 데이터 소스 이름으로 jdbc/irs1120을 사용했다. 데이터 소스를 설정하는 방법에 대해 더 자세히 알고 싶다면 애플리케이션 서버 매뉴얼이나 유니버설 서비스 다운로드 패키지에 포함된 readme 파일을 읽어보기 바란다.
두 번째 단계는 실제 WAR 파일을 애플리케이션 서버에 전개하는 것이다. 하지만 WebSphere Application Server 6.x와 아파치 톰캣 6.x가 요구하는 웹 서비스 산출물이 다르기 때문에 두 가지 다른 WAR 파일을 만드는 구성 스크립트가 각 애플리케이션 서버에 하나씩 있어야 한다.
만들어진 WAR 파일은 유니버설 서비스 실행 디렉터리인 c:\temp\UniversalServices의 하위 디렉터리 war에서 찾을 수 있다. 특히 war 디렉터리에는 tomcat과 was라는 두 가지 하위 디렉터리가 있다. tomcat 디렉터리에는 아파치 톰캣 6.x에 설치될 WAR 파일이 있는 반면 was 디렉터리에는 WebSphere Application Server 6.x에 설치될 WAR 파일이 있다. 애플리케이션 서버에 WAR 파일을 설치하려면 표준 프로시저를 따른다. 더 많은 정보는 애플리케이션 서버 매뉴얼이나 유니버설 서비스 다운로드 패키지에 포함된 readme 파일을 읽어보기 바란다.
이제 WAR 파일 전개를 통해 이미 가능해진, 유니버설 서비스 테스트 페이지로 설정한 것을 확인할 수 있게 됐다. 다음 절에서 이 내용을 다루겠다.
유니버설 서비스 테스트하기
로컬 시스템에서 유니버설 서비스 설정과 구성이 성공했는지 확인하려면 이 서비스들을 테스트해야 한다. 가장 쉬운 방법은 유니버설 서비스 전개 부분으로 이미 애플리케이션에 있는 간단한 HTML 페이지를 사용하는 것이다.
유니버설 서비스 테스트 페이지는 브라우저를 URL http://localhost:8080/UniversalServices/testServices.html로 리다이렉트해 접근할 수 있다. 로컬 시스템 설정, 호스트 이름, 포트에 따라 조정이 필요한 부분도 있을 수 있음에 주의하자.
그림 5. 빌트인 테스트 페이지의 스크린샷
이 간단한 테스트 페이지로 유니버설 서비스를 통해 자신의 데이터베이스에서 XML 데이터를 삽입, 업데이트, 삭제, 질의할 수 있다. 웹 서비스는 테스트 페이지에 제공된 버튼으로 호출한다. 그림 6은 웹 서비스의 응답을 보여준다. 웹 서비스 연산 후 테스트 페이지에 제공된 버튼을 통해 getPrimaryKeys가 호출된다.
그림 6. 웹 서비스 연산 getPrimaryKeys가 호출된 후의 응답
유니버설 서비스 수정하기
예를 들어 새 매개변수를 소개하는 것처럼 유니버설 서비스를 수정하려면 다운로드한 Universal Services Data Project에 포함된 Universal Services Data Development Project를 Data Studio에 임포트하면 된다. Data Development Project를 임포트하려면 Data Studio의 파일 풀 다운 메뉴에서 간단히 Import 옵션을 선택하면 된다.
그리고 나면 Data Studio를 통해 수정된 유니버설 서비스를 전개할 수 있다.
결론과 전망
지금까지 특별한 도구 없이 스크립트 사용만으로 웹 서비스 연산을 통해 DB2 데이터베이스의 pureXML 행을 나타내는 것이 얼마나 간단하고 쉬운지를 보여주었다. 유니버설 서비스 설치는 자신의 프로토타입이나 애플리케이션을 만드는 데 사용할 수 있다.
다음 세 가지 예제는 이미 작업의 기본으로 유니버설 서비스를 사용했다.
- Industry Formats and Services with pureXML용 온라인 인터랙티브 데모
- WebSphere ESB와 DB2 9 pureXML로 업계 표준 데이터 포맷 사용
- WebSphere Integration Developer를 사용해 DB2 pureXML 보여주기
유니버설 서비스와 소개한 정보가 DB2 pureXML 프로젝트를 시작하는 데 도움이 되길 바란다.
다운로드 하십시오 | 설명 | 이름 | 크기 | 다운로드 방식 |
|---|
| Universal Services 패키지 | UniversalServices.zip | 3.87MB | HTTP |
|---|
더 많은 다운로드 Note - Industry Formats and Services with pureXML 온라인 데모의 일부로 사용할 수 있다. Download now를 선택하라.
참고자료 교육
-
Industry Formats and Services with pureXML : 다양한 무료 예제를 제공한다. 각 예제는 XML 기반의 Industry Formats and Services with pureXML로 어떻게 작업할 수 있는지 설명한다. 또한, XML 스키마를 등록하는 방법, XML 인스턴스 문서의 유효성을 검사하는 방법, XQuery나 SQL/XML을 사용해 XML 데이터를 질의하는 방법 등을 보여준다.
- "IBM Data Studio: Get Started with Data Web Services"(developerWorks, 2007년 11월) : 처음 Data Web Service를 전개하는 방법에 관해 자세히 소개한다.
- "Data Web Services: Build Web Services the new way to access IBM database servers"(developerWorks, 2007년 12월) : Data Web Service를 만들고 커스터마이즈한다. Data Web Service의 구조적 개요 등과 같이 Data Web Service와 관련된 유용한 이론적 배경을 제공한다. 보안처럼 Data Web Services의 다양한 면을 언급한다.
- "WebSphere Integration Developer를 사용하여 DB2 9 버전의 pureXML 노출하기"(developerWorks, 2007년 11월) : 클라이언트를 만들어 유니버설 서비스에 접근한다.
-
developerWorks 정보 관리 존 : DB2에 대해 더 알아보자. 기술문서, 실무문서, 교육, 다운로드, 제품 정보 등을 찾아볼 수 있다.
-
developerWorks 기술 행사와 웹 캐스트를 통해 최신 기술을 익힌다.
제품 및 기술 얻기
-
IBM Data Studio: Data Web Services를 개발하는 데 사용된 개발 환경을 무료로 다운로드한다.
-
DB2 Express-C: pureXML 기술 같은 핵심 기능을 포함하는 DB2의 무료 버전을 다운로드한다. DB2 Express-C는 개발, 전개, 배포가 무료다.
- developerWorks에서 직접 다운로드할 수 있는 IBM 시험판 소프트웨어로 차세대 개발 프로젝트를 만든다.
토론
필자소개  | 
|  | Susan Malaika는 IBM 정보 관리 그룹에서 일한다. 특히 그리드 컴퓨팅을 포함한 XML 및 웹 기술 전문가다. 웹에 글과 공동 집필한 책을 출판했다. IBM Academy of Technology 멤버이기도 하다. malaika@us.ibm.com으로 연락을 취할 수 있다. |
 | 
|  | Christian Pichler는 오스트리아 Technical University of Vienna에서 의료에 관해 컴퓨터 공학과 컴퓨터 과학 석사 논문을 준비 중이다. IBM에서는 DB2에 XML을 저장하는 기술과 웹 서비스를 통해 접근하는 방법, 피드, Xforms를 담당하고 있다. 전문 분야는 의료 분야의 XML 표준이다. |
기사에 대한 평가
 |
| 이 문서 북마킹 하기
|
|