 |
|
난이도 : 중급 Susan Malaika, Senior Technical Staff Member, IBM Christian Pichler, Junior Researcher, Research Studios Austria
원문 게재일 : 2009 년 2 월 19 일 번역 게재일 : 2009 년 3 월 17 일 이 기사에서는 엔드 투 엔드 XML 아키텍처를 기반으로 하는 의료 시나리오를
소개합니다. 이 아키텍처에서는 HL7(Health Level 7) CDA(Clinical Document Architecture) XML 문서로
인코딩된 정보를 동일한 형식으로 IBM® DB2® pureXML® 데이터베이스에 저장하고, 웹 서비스를
통해 같은 형식으로 교환하고, IBM Lotus® Sametime® Connect Client를 사용하여 같은 형식으로
시각화할 수 있습니다. 이 기사에서는 인스턴트 메시징 클라이언트용 프로토타입 Sametime 플러그인을
사용하여 데이터베이스에 저장된 XML 환자 데이터에 액세스하고 표시하는 방법을 살펴봅니다. 플러그인을
설치 및 구성하는 방법과 다른 시나리오를 위해 플러그인을 재구성하는 방법에 대해서도 설명합니다.
소개
질병을 치료하기 위한 자원이 늘어나고, 의료 비용이 증가하고, 의료 전문가가
전세계에 널리 퍼져 있기 때문에 의료 분야의 협업을 지원하기 위한 빠르고, 신뢰할 수 있으며
편리한 정보 교환에 대한 요구가 더욱 높아지고 있다. 기관, 기업 및 더 나아가 대륙 간 정보
교환은 의료 분야만의 문제가 아니라 협업이 필요한 모든 분야의 문제이다.
협업을 지원하는 애플리케이션을 빌드하려면 표준화된 공통 형식으로 정보를
교환할 수 있도록 지원하는 기술이 필요하다. 이처럼 협의된 형식은 주로 정부, 산업 컨소시엄
및 의료 분야의 HL7(Health Level 7)과 같은 표준 개발 조직에서 만든다. 특히 HL7의 스펙 중
하나인 CDA(Clinical Document Architecture)는 표준화된 환자 정보 교환을 위해 설계되었다.
오늘날에는 일반적으로 XML(Extensible Markup Language)로 구현되어 있는 HL7
CDA와 같은 의료 형식을 사용하여 환자 정보를 전자적으로 표현, 저장 및 교환하는 경우가 늘어나고
있다. 더불어 환자 정보를 전자적으로 사용할 수 있게 되면서 인스턴스 메시징처럼 잘 만들어진 최신
기술을 활용할 수 있게 되었다. 인스턴트 메시징은 이미 의료 분야에서 활용되고 있지만 이 기사에서
설명하는 프로토타입은 엔드 투 엔드 XML 아키텍처를 기반으로 한다. 엔드 투 엔드 XML 아키텍처에서는
HL7(Health Level 7) CDA(Clinical Document Architecture) XML 문서로 인코딩된 정보를 동일한 형식으로
IBM DB2 pureXML 데이터베이스에 저장하고, 웹 서비스를 통해 같은 형식으로 교환하고, IBM Lotus
Sametime Connect Client를 사용하여 같은 형식으로 시각화할 수 있다.
이 기사에서는 의료 시나리오를 소개하고 엔드 투 엔드 XML 아키텍처의 원리에
대해 설명한 후 인스턴트 메시징 클라이언트용 프로토타입 Sametime 플러그인을 사용하여
데이터베이스에 저장된 XML 환자 데이터에 액세스하고 표시하는 방법을 살펴본다. 둘 이상의
당사자 사이에 교환되는 인스턴트 메시징에 특별한 텍스트를 입력하면 액세스가 시작된다. 플러그인이
설치되어 있으면 인스턴트 메시징 세션의 모든 관계자에게 환자 데이터가 표시된다. 이
기사에서는 플러그인을 설치 및 구성하는 방법과 다른 시나리오를 위해 플러그인을 재구성하는
방법에 대해서도 설명한다. 이 기사에서 설명하는 플러그인 구성 파일 설정 예제는 pureXML 산업
형식 데모에 액세스하는 데 적합하지만 다른 웹 서비스에 액세스하기 위해 쉽게 변경할 수도
있다. 마지막으로 추가로 살펴볼 수 있는 관련 분야에 대한 요약으로 이 기사는 끝을 맺는다.
Sametime 애플리케이션은 통합 통신 및 협업 서비스를 위한 실시간 인터페이스를
제공한다. 이러한 인터페이스는 사람 간의 의사소통(또는 의사소통의 부재)으로 인해 비즈니스
프로세스가 느려지거나 중단될 수 있는 분야에서 활용되는 비즈니스 프로세스 정의의 일부일 수
있다. 다시 말해서 Sametime 애플리케이션의 목적은 비즈니스 프로세스에서 사람에 의한 지연을
줄이거나, 가능하다면 없앨 수 있는 수단을 제공하는 것이다. 통합 통신 및 협업 서비스가 포함된
정의를 가지고 있는 비즈니스 프로세스를 CEBP(Communications-Enabled Business Processes)라고
한다. CEBP 정의를 사용하여 비즈니스 프로세스를 자동화한 솔루션을 CEBP 기반 솔루션이라고
한다. 이 기사에서 설명하는 시나리오는 CEBP를 보여 주는 예이다.
시나리오
그림 1의 예제는 협업을 지원하는 인스턴트 메시징의 기능을
보여 주기 위한 것이다. 환자인 Sully Van이 심한 두통으로 지역 병원에 있는 Durenda Flor 의사를
찾아갔다. 병원에서 진료가 끝난 후 Durenda Flor 의사는 Sully Van을 진료하면서 알게된 새 정보를
Sully Van의 전자 의료 레코드에 추가하고 Sully Van에게 병원에서 진료를 받은 뒤 1주일 후에 최종
확인을 위해 지역 담당의를 다시 만나라고 말했다. 그래서 Sully Van은 1주일 후에 지역 담당의인
Chuck Smart를 방문해서 그 동안의 경위를 설명했다. 이 상황에서 지역 담당의인 Chuck Smart가 동료
의사인 Durenda Flor가 기록한 내용을 1주일 미리 볼 수 있었다면 많은 도움이 될 것이다.
그림 1. 의료 전문가 간의 환자 정보 공유를 위한 의료 협업
예제 상황에서 Chuck Smart는 Durenda Flor에게 여러 가지 방법으로 정보를 요청할
수 있다. 단순히 전화를 걸어서 진료 결과를 설명해 달라고 요청할 수도 있고 환자 레코드를 팩스로
보내달라고 요청할 수도 있다. 또는 Lotus Sametime Connect와 같은 인스턴스 메시징을 통해 환자
정보를 요청할 수도 있을 것이다. 이 기사에서 설명하는 프로토타입은 DB2 pureXML 데이터베이스에
저장되어 있는 HL7 CDA XML 문서를 검색하는 기능을 제공하는 Lotus Sametime Connect용 플러그인에
대해 설명한다. Chuck와 Durenda가 Lotus Sametime Connect를 사용하는 인스턴트 메시징을 통해
연결되어 있는 동안 Chuck는 환자 Sully Van에 대한 정보를 요청하는 인스턴트 메시지를 Durenda에게
보낼 수 있다. 이때 Chuck의 Lotus Sametime Connect Client에 설치된 플러그인은 백그라운드에서
메시지를 분석한 후 Durenda의 시스템에 있는 해당 환자의 정보에 액세스하여 Chuck에게 보낼 데이터를
준비한다.
엔드 투 엔드 XML 아키텍처
HL7 CDA XML 문서의 초기 목적은 환자 정보 교환을 위한 표준화된 형식을 제공하는
것이었다. 하지만 이 예제에서 보듯이 HL7 CDA XML 문서는 환자 정보를 저장하는 데도 사용된다. 여기에서
설명하는 방법에서도 HL7 CDA XML 문서를 기존 XML 처리 기술과 함께 사용하여 애플리케이션 사용자에게
환자 정보를 보여 준다. 정보의 저장, 교환 및 시각화를 위해 HL7 CDA XML 문서를 사용하면 그림
2와 같은 엔드 투 엔드 XML 구조를 구현할 수 있다.
그림 2. 의료 협업을 지원하기 위한 엔드 투 엔드 XML 아키텍처
엔드 투 엔드 XML 아키텍처에는 데이터 계층, 유니버셜 서비스 계층 및 사용자
상호작용 계층이라는 세 가지 계층이 있다.
-
데이터: 데이터 계층은 DB2의 네이티브 XML 저장 기능을 사용하는
DB2 pureXML 데이터베이스를 나타낸다. 네이티브 XML 저장은 XML 문서의 요소와 특성으로 인코딩된
정보를 관계형 테이블로 분할하지 않고도 XML을 데이터베이스에 직접 저장할 수 있음을 뜻한다. 따라서
데이터베이스가 HL7 CDA XML 문서의 데이터 저장소로 사용된다. 데이터베이스는 데이터베이스를 손쉽게 만들고 채울 수 있는 방법인 산업 번들을 사용하여 만들어진다. 이러한 산업 번들은 HL7
CDA를 포함한 여러 가지 산업 형식별로 무료로 제공된다. 산업 번들에 대한 자세한 정보를 보려면 이
기사의 참고자료 섹션을 참조하라.
-
유니버셜 서비스: 유니버셜 서비스는 삽입, 업데이트, 삭제 및 쿼리를
포함한 간단하면서도 고정된 작업의 집합으로 웹 서비스 작업을 통해 DB2 pureXML 데이터베이스의
XML 열을 노출하는 데 사용할 수 있다. 이 서비스를 사용하면 간단한 웹 서비스 요청을 통해
데이터베이스에 저장된 HL7 CDA XML 문서에 액세스할 수 있다. 서비스를 설정 및 구성하는 데
필요한 모든 구성 요소가 들어 있는 유니버셜 서비스가 무료로 제공된다. 유니버셜 서비스에
대한 자세한 정보를 보려면 이 기사의 참고자료 섹션을 참조하라.
-
사용자 상호작용: 사용자 상호작용 계층에서는 사용자가 애플리케이션과
상호작용할 수 있다(예: 데이터베이스에 저장된 정보 시각화). 이 경우 Lotus Sametime Connect Client가
유니버셜 서비스를 통해 데이터베이스에 액세스한 후 해당 환자 정보를 검색해서 보여 준다. Lotus
Sametime Connect Client를 통해 환자 정보를 검색하는 방법과 같은 플러그인 기능에 관한 자세한 내용은
다음 섹션에서 설명한다.
플러그인 기능
HL7 CDA XML 문서를 검색하여 DB2 pureXML 데이터베이스에 저장된 환자 정보를 보여
주는 프로토타입 플러그인의 구현을 통해 Lotus Sametime Connect Client의 기능이 확장되었다. 이
섹션에서는 그림 3에서 보여 주는 플러그인의 구현에 대해 설명한다.
기능에 대한 설명에서는 담당의가 다른 담당의에게 환자 정보를 요청하려는
목적으로 Lotus Sametime Connect Client(이하 클라이언트)를 실행하고 있다고 가정한다.
그림 3. XML 검색 및 보기 기능을 제공하는 플러그인 구현
그림 3에서와 같이 클라이언트는 시작할 때 사용자 정의 가능한 초기화 파일을
로드한다(1). 초기화 파일(Listing 1의 예제 초기화 파일 참조)에는
데이터베이스에 저장된 HL7 CDA XML 문서에 액세스할 유니버셜 서비스의 엔드포인트와 같이
클라이언트를 구성하는 데 필요한 매개변수가 들어 있다. 예를 들어 엔드포인트는 클라이언트에서
데이터베이스에 저장된 HL7 CDA XML 문서에 액세스하기 위한 웹 서비스 요청을 제출할 때 사용된다. 초기화
파일에 들어 있는 모든 매개변수에 대한 설명은 다음 단락에서 기능에 대한 설명과 함께 제공된다. 모든
구성 매개변수가 로드되고 클라이언트가 시작된 후에는 클라이언트에서 사용자 입력 메시지를 받아서
처리할 수 있다.
Listing 1. pureXML 플러그인 초기화 파일
<collaboration>
<regexpr>patient\s([^\s]++)\s([^\s<]++)</regexpr>
<keysQuery>
XQUERY declare default element namespace "urn:hl7-org:v3";
for $patient in db2-fn:xmlcolumn('DB2ADMIN.CDA.DOCUMENT')/ClinicalDocument
where ($patient/recordTarget/patientRole/patient/name/given/text() = "${1}"
and $patient/recordTarget/patientRole/patient/name/family/text() = "${2}")
return <entry id="{$patient/id/@root}" label="{$patient/title/text()}"/>
</keysQuery>
<documentQuery>
XQUERY declare default element namespace "urn:hl7-org:v3";
for $doc in db2-fn:xmlcolumn('DB2ADMIN.CDA.DOCUMENT')/ClinicalDocument
where ($doc/id[@root = "${key}"])
return $doc
</documentQuery>
<serverURL url="http://purexml.dyndns.org:9080/DB2pureXMLDemo/cda/cda.dadx"/>
<xsl url="file:/C:\st_purexml\ibm-cda.xsl"/>
</collaboration> |
데이터베이스의 정보를 요청하기 위한 클라이언트 트리거(그림
3의 2)는 대화 창에서 사용자가 입력하는 텍스트에 포함된 특별한 키워드를 통해 제어된다. 텍스트
메시지가 따라야 하는 패턴은 초기화 파일의 <regexpr> 요소에
정의되어 있는 정규식에 따라 정의된다. 현재 예제에서 사용하는 정규식은 "patient"라는 단어 뒤에
환자의 이름을 나타내는 두 단어가 사용되는 것으로 정의되어 있다. 해당하는 텍스트 패턴 예로는
"patient Sully Van"이 있다.
담당의가 해당 패턴이 포함된 메시지를 입력하면 클라이언트가 트리거되면서 특정
환자에 대한 HL7 CDA XML 문서를 데이터베이스에 쿼리한다(그림 3의 3). 해당
HL7 CDA XML 문서를 데이터베이스에 쿼리하는 XQuery 표현식도 <keysQuery>
요소를 통해 구성 파일에 정의된다. 이 쿼리는 데이터베이스에서 검색된 각 레코드의 고유 ID
세트와 XML 문서 자체에 대한 설명을 리턴하기 위해 설계되었다. 쿼리에서 리턴된 고유 ID는
플러그인에서 다른 XML 문서를 처리하는 데 필요하다. 쿼리 표현식에서 리턴된 설명(예: 환자
이름 Sully Van)도 입력 매개변수와 일치하는 HL7 CDA XML 문서 목록을 담당의에게 제공하는
데 사용된다(그림 3의 2 및 3).
담당의가 HL7 CDA XML 문서 중 하나를 선택하면 클라이언트가 선택된 특정
XML 문서를 데이터베이스에 쿼리한다(4). 특정 XML 문서를 검색하기 위해 클라이언트는
초기화 파일의 <documentQuery> 요소를 통해 정의한
XQuery 표현식과 이전 XQuery 표현식에서 리턴된 키 중 하나를 사용한다. 사용된 키는
사용자가 선택한 키와 일치한다.
클라이언트에 수신된 XML 문서는 표시되기 전에 XML 스타일시트를 사용하여
변환된다(그림 3의 5). 사용할 스타일시트는 초기화 파일의 <xsl>
요소를 통해 정의된다. 데이터베이스에서 검색된 HL7 CDA XML 문서가 플러그인에서 XML 스타일시트를
사용하여 변환된 후에는 변환 결과가 사용자에게 표시된다(6).
플러그인 데모
엔드 투 엔드 XML 아키텍처의 목표와 플러그인의 기능에 대해 읽어본 후 사용
중인 IBM Lotus Sametime Connect Client용 플러그인을 살펴보겠다. 다시 한번 말하지만 플러그인은
클라이언트가 DB2 pureXML 데이터베이스에 저장된 XML에 액세스하는 데 사용된다.
이해를 돕기 위해 이 기사의 "소개" 섹션에서 설명한
예제 상황을 사용한다. 이 예제의 내용을 상기해보면 담당의 Chuck Smart가 동료 의사인 Durenda
Flor가 기록한 특정 환자에 대한 정보를 1주일 미리 볼 수 있으면 큰 도움이 될 수 있을 것이다. 이를
위해 담당의 Chuck Smart가 IBM Lotus Sametime Connect Client를 실행한다. 클라이언트를 통해
Chuck는 동료인 Durenda가 온라인 상태인지 확인할 수 있다. 온라인 상태이면 그림
4와 같이 Durenda의 이름 옆에 녹색 아이콘이 표시된다.
그림 4. IBM Lotus Sametime Connect Client의 연락처 목록
Durenda가 온라인 상태이므로 Chuck가 Durenda와의 인스턴트 메시징 대화를
시작한다. 일반적인 인스턴트 메시징 환경과 마찬가지로 Durenda의 이름을 두 번 클릭하면
대화 창이 열리며, 이 대화 창에서 상대방과 대화를 나눌 수 있다. 그림 5에서는
Chuck와 Durenda가 대화를 나눌 수 있는 대화 창을 보여 준다.
그림 5. IBM Lotus Sametime Connect Client의 대화 창
대화 창이 활성화되면 Chuck가 "Hello Durenda, can you please provide me
with information on our patient Sully Van?"이라는 메시지를 입력한 후 제출하여 대화를
시작한다(그림 6 참조).
그림 6. IBM Lotus Sametime Connect Client의 대화 창에 메시지 입력하기
앞에서 설명했듯이 인스턴트 메시징 클라이언트는 초기화 파일의 정규식을 통해
지정된 대로 메시지를 분석하여 특정 키 구를 검색한다. 앞 단계에서 입력한 텍스트 메시지를
보면 이 시나리오에서 사용하는 키워드인 "patient"라는 단어가 메시지에 들어 있다. 따라서 플러그인은
Chuck의 메시지에서 키워드 뒤의 두 단어, 즉 환자의 이름을 나타내는 "Sully"와 "Van"을 사용하여
Durenda의 데이터베이스에 해당 의료 정보를 쿼리한다.
이제 대화 창이 확장되면서 사용자 Chuck에게 환자 Sully Van에 관한 정보가
제공된다(그림 7 참조).
그림 7. 데이터베이스에서 검색된 환자 정보를 보여 주는 확장된 대화 창
Sully Van에 대한 검색된 정보를 보기 위해 Chuck가 검색 결과로 제공된 항목을
두 번 클릭하면 별도의 창이 열린다(그림 8 참조).
그림 8. 인스턴트 메시징 대화의 일부로 표시된 환자 정보
Durenda의 병원에 있는 Sully Van의 진료 기록을 볼 수 있기 때문에 Chuck는
환자의 건강 상태에 대해 Durenda와 의견을 나눌 수 있다.
플러그인 설치 및 구성
IBM Lotus Sametime Connect의 Manage Updates 사용자 인터페이스를 사용하여
DB2 pureXML 플러그인을 설치할 수 있다. 설치 프로세스를 시작하기 전에 아카이브 파일인
sametime_purexml_plugin.zip을 다운로드한 후(다운로드 참조) 로컬
임시 작업 디렉토리에 추출해야 한다. 이 지침에서는 C:\temp\sametime_plugin을 로컬 임시
작업 디렉토리로 사용한다.
마법사를 실행하기 위해 클라이언트의 기본 창에서 Tools 메뉴 항목을
연다. Tools 메뉴에서 Plug-ins > Install Plug-ins...을 선택한다. 이제
마법사에서 현재 설치된 플러그인을 업데이트하는 옵션과 새 플러그인을 설치하는 옵션 중에서
하나를 선택할 수 있다. 그림 9와 같이 Search for new features to
install 옵션을 선택하고 Next를 클릭한다.
그림 9. 새 기능을 설치하는 옵션 선택하기
그런 다음에는 설치 파일이 있는 위치를 선택해야 한다. 이 위치는 아카이브
파일을 추출한 디렉토리이다. 따라서 그림 10과 같이 Add Folder
Location...을 클릭하고 사용된 디렉토리를 선택한다. (현재 기사에서는 C:\temp\sametime_plugin
디렉토리를 선택한다.)
그림 10. 로컬 임시 작업 디렉토리 지정하기
이제 지정한 로컬 디렉토리에 있는 설치할 수 있는 플러그인이 마법사에 모두
나열된다. 이 기사에서 제공하는 아카이브 파일에는 플러그인이 하나만 있으므로 하나의 플러그인만
나열된다. 그림 11과 같이 플러그인을 선택하고 Finish를 클릭한다.
그림 11. 설치할 플러그인 선택하기
모든 플러그인에는 여러 가지 기능이 들어 있으므로 마법사에서 설치할 기능을
선택할 수 있다. 그림 12와 같이 pureXML Collaboration Demo 0.0.1을
선택한 후 Next를 클릭하여 계속 진행한다.
그림 12. pureXML Collaboration Demo 0.0.1 기능 선택하기
이제 그림 13과 같이 라이센스 계약에 동의해야 한다. I
accept the terms in the license agreements를 선택하고 Next를 클릭하여 계속 진행한다.
그림 13. 라이센스 계약 동의하기
설치를 완료하기 전에 그림 14와 같이 설치할 기능에 대한
개요가 표시된다. Finish를 클릭하여 설치 프로세스를 완료한다.
그림 14. 설치할 기능 요약
설치를 완료하려면 IBM Lotus Sametime Connect Client를 다시 시작해야 한다. 그림
15와 같이 클라이언트를 다시 시작할 수 있는 옵션이 자동으로 제공된다.
그림 15. 플러그인 설치를 완료하기 위해 클라이언트 다시 시작하기
또한 의료 협업을 지원하기 위해 클라이언트에 초기화 파일을 제공해야 한다. 이렇게
하려면 st_purexml 폴더를 로컬 하드 드라이브의 루트(예: C:\)에 복사한다. 복사할 폴더는 C:\temp\sametime_plugin\DB2pureXMLDemo\sampleConfig
디렉토리에 있다. 여기서에서는 아카이브 파일 sametime_purexml_plugin.zip이 C:\temp\sametime_plugin에
추출되어 있는 것으로 가정한다. 초기화 파일을 복사한 후에는 모든 설정을 올바르게 로드하기
위해 클라이언트를 다시 시작해야 한다.
다른 산업에서 플러그인 사용하기
앞에서 설명한 대로 플러그인은 클라이언트가 시작될 때 초기화 파일에서 런타임에
필요한 모든 아티팩트를 로드한다. "플러그인 기능" 섹션에서
초기화 파일 예제를 설명했다. 클라이언트를 다른 시나리오에 사용하려면 또 다른 초기화 파일을
만든 후 이 초기화 파일을 사용하도록 클라이언트를 구성해야 한다.
이 섹션에서는 US IRS Tax 1120 e-file 형식을 사용할 수 있도록 IBM Lotus
Sametime Connect Client를 확장하는 목표를 가지고 초기화 파일을 만드는 방법에 대해
설명한다. 초기화 파일은 XML을 사용하여 인코딩되며 루트 요소의 이름은 <collaboration>이다.
Listing 2. 초기화 파일의 시작
루트 요소 내에서는 애플리케이션 구성에 필요한 모든 매개변수가 설명된다. 첫
번째 매개변수는 정규식으로 기술되며 데이터베이스에서 XML 문서를 검색하도록 클라이언트를
트리거하는 키워드를 나타낸다. 정규식은 <regexpr> 요소를
사용하여 기술된다.
Listing 3. 정규식을 사용한 키워드 정의
<regexpr>taxdocuments</regexpr> |
다음 단계는 클라이언트가 데이터베이스에 액세스할 때 사용하는 웹 서비스의
엔드포인트를 정의하는 것이다. 엔드포인트는 <serverURL> 요소의
url 속성을 사용하여 기술된다.
Listing 4. XML 문서를 검색할 때 사용할 웹 서비스 엔드포인트 정의
<serverURL url="http://purexml.dyndns.org:9080/DB2pureXMLDemo/tax1120/tax1120.dadx"/> |
다음 요소의 이름은 <keysQuery>이며
데이터베이스에서 특정 조건에 부합하는 XML 문서 세트를 검색하는 데 사용할 XQuery 표현식을
나타낸다.
Listing 5. XML 문서 세트를 검색할 XQuery 표현식의 정의
<keysQuery>
XQUERY declare default element namespace "http://www.irs.gov/efile";
for $doc in db2-fn:xmlcolumn('DB2ADMIN.TAX1120.DOCUMENT')
return <entry id="{$doc/Return/ReturnHeader/ReturnId/text()}"
label="{$doc/Return/ReturnHeader/PreparerFirm
/PreparerFirmBusinessName/BusinessNameLine1/text()}"/>
</keysQuery> |
XML 문서 세트를 검색하는 XQuery 표현식 뒤에는 데이터베이스에서 특정 XML 문서
하나를 검색하는 데 사용되는 또 다른 XQuery 표현식이 있다. 두 번째 XQuery 표현식은 <documentQuery>
요소를 사용하여 표현된다.
Listing 6. 특정 XML 문서를 검색할 XQuery 표현식의 정의
<documentQuery>
XQUERY declare default element namespace "http://www.irs.gov/efile";
for $doc in db2-fn:xmlcolumn('DB2ADMIN.TAX1120.DOCUMENT')
where ($doc/Return/ReturnHeader/ReturnId[text() = "${key}"])
return $doc
</documentQuery> |
클라이언트가 데이터베이스에서 특정 XML 문서를 검색한 후에는 원시 XML
문서를 사용자에게 친숙한 정보 형식으로 변환하기 위해 XML 스타일시트가 필요하다. 따라서 변환에
사용할 XML 스타일시트를 <xsl> 요소의 url
속성을 사용하여 지정한다.
Listing 7. XML 문서 변환에 사용할 XML 스타일시트의 정의
<xsl url="file:/C:\st_purexml\ibm-tax1120.xsl"/> |
다른 시나리오에 필요한 클라이언트 매개변수를 구성한 후에는 초기화 파일의
구성을 완료하기 위해 닫는 요소 </collaboration>을
추가해야 한다. 이해를 돕기 위해 Listing 8에서 전체 초기화 파일을
보여 준다.
Listing 8. IRS 1120 e-file 형식을 위한 전체 초기화 파일
<collaboration>
<regexpr>taxdocuments</regexpr>
<serverURL
url="http://purexml.dyndns.org:9080/DB2pureXMLDemo/tax1120/tax1120.dadx"/>
<keysQuery>
XQUERY declare default element namespace "http://www.irs.gov/efile";
for $doc in db2-fn:xmlcolumn('DB2ADMIN.TAX1120.DOCUMENT')
return <entry id="{$doc/Return/ReturnHeader/ReturnId/text()}"
label="{$doc/Return/ReturnHeader/PreparerFirm
/PreparerFirmBusinessName/BusinessNameLine1/text()}"/>
</keysQuery>
<documentQuery>
XQUERY declare default element namespace "http://www.irs.gov/efile";
for $doc in db2-fn:xmlcolumn('DB2ADMIN.TAX1120.DOCUMENT')
where ($doc/Return/ReturnHeader/ReturnId[text() = "${key}"])
return $doc
</documentQuery>
<xsl
url="file:/C:\st_purexml\ibm-tax1120.xsl"/>
</collaboration> |
초기화 파일을 만든 후에는 이 파일을 사용하도록 클라이언트를 구성해야
한다. 이를 위해 클라이언트의 기본 창에서 File 메뉴 항목을 열고 Preferences를
선택하여 추가 창을 연다. 그림 16과 같이 새로 열린 창에서 DB2
pureXML Demo 항목을 선택한다.
그림 16. 사용할 초기화 파일
DB2 pureXML Demo이 환경 설정을 사용하여 추가 초기화 파일에 대한 참조를
지정하거나 기존 초기화 파일에 대한 참조를 제거할 수 있다.
요약과 전망
이 기사에서는 간편하게 IBM Lotus Sametime Connect Client를 확장하여 엔드 투
엔드 XML 아키텍처를 활용하면서 협업을 지원하는 방법에 대해 설명했다. 같은 형식의 정보를
사용하여 정보를 저장, 교환 및 시각화할 때의 장점은 디자인이 단순하고 개발 기간이 짧기 때문에
피드백을 받을 때마다 빠르고 쉽게 개선할 수 있는 강력한 프로토타입을 얻을 수 있다는 것이다.
의료 시스템에서는 환자, 담당 의사 또는 둘 모두의 동의가 없는 한 중요 정보에
액세스할 수 없어야 한다. 따라서 인스턴트 메시징을 통해 협업을 지원한다는 아이디어를 발전시키기
위한 향후 작업에서는 보안을 중요한 주제로 다루어야 한다. 플러그인 구성 파일을 서버 시스템에
배치하는 것도 향후 개발에서 고려해야 할 또 하나의 연구 분야이다. 양식 기반 표시 형식의 통합, 데이터
수정 허용 및 데이터 표시도 많은 관심을 받고 있는 분야이다. 인스턴트 메시징 클라이언트를
데이터베이스 시스템의 인터페이스로 사용하는 방법, 즉 교환의 당사자 중 한쪽이 사람이 아닌
데이터베이스 에이전트가 되는 방법도 생각해 볼 수 있다.
이 기사에서는 IBM Lotus Sametime Connect Client를 사용하여 엔드 투 엔드 XML
아키텍처를 효과적으로 활용할 수 있는 장점을 보여 주었다. 포함된 플러그인은 추가 프로토타입
및 솔루션 작업을 시작하는 데 도움이 될 것이다.
감사의 인사
인스턴트 메시징에서의 엔드 투 엔드 XML 아키텍처의 역할을 보여 주는 플러그인을
구현해 준 Carlos Caballero Grolimund와 Jessica Ramirez에게 감사의 뜻을 전한다. 많은 도움을
준 Craig Reichenbach에게도 감사의 뜻을 전한다.
다운로드 하십시오 | 설명 | 이름 | 크기 | 다운로드 방식 |
|---|
| Sametime pureXML plug-in | sametime_purexml_plugin.zip | 1.7MB | HTTP |
|---|
| Demo of Sametime plug-in scenario | recording_sametime_plugin.wmv | 8.5MB | HTTP |
|---|
| Transcript of demo | sametimetranscriptFeb2009.pdf | 63KB | HTTP |
|---|
참고자료 교육
-
Industry Formats and
Services with pureXML: HL7(Health Level 7) CDA(Clinical Document Architecture)용 예제를
포함한 여러 가지 예제를 무료로 다운로드할 수 있다. 각 예제는 XML 기반 산업 형식과 pureXML을
사용하여 작업하는 방법을 보여 준다. 이들 예제에서는 XML 스키마를 등록하는 방법, XML 인스턴스
문서에 대한 유효성 검증을 수행하는 방법, XQuery 또는 SQL/XML을 사용하여 XML 데이터를 쿼리하는
방법 등을 보여 준다.
-
"Universal
Services for pureXML using Data Web Services"(developerWorks, 2008년 8월): XML
데이터에 대한 쿼리 및 수정 작업에 사용할 수 있는 간단하면서도 고정된 데이터베이스
작업 세트인 유니버셜 서비스를 구성, 테스트 및 수정해 보자.
-
"Build a
DB2 pureXML application in a day"(developerWorks, 2008년 12월): 유니버셜 서비스를
통해 엔드 투 엔드 XML 아키텍처를 사용하여 하루만에 완벽한 DB2 애플리케이션을 만들어 보자.
-
DB2 skill kit: 데이터베이스
관리자와 애플리케이션 개발자에게 필요한 지식과 기술을 제공한다. IBM DB2 Universal Database를
설치, 구성 및 관리하는 방법을 배워 보자. 개요, 설치, 구성, 데이터베이스 생성, 관리 등의 주제에
대해 설명한다.
-
developerWorks의
IBM Information Management and XML technology 영역: DB2 및 기타 IBM 제품에서 XML 기술을
활용하는 기술을 향상시키는 데 필요한 리소스를 제공한다.
- developerWorks
Information Management 영역: Information Management에 대한 정보를 제공한다. 기술 자료, 사용법 기사, 교육, 다운로드, 제품 정보 등을 찾아볼 수 있다.
- developerWorks 기술 행사 및 웹 캐스트를 통해 최신 정보를 얻을 수 있다.
- 기술 서점: 다양한 기술 주제와 관련된 책을 살펴보자.
제품 및 기술 얻기
-
DB2
Express-C: 이제 DB2를 무료로 사용할 수 있게 되었다. 커뮤니티를 위한 DB2 Express Edition의
무료 버전인 DB2 Express-C를 다운로드하자. DB2 Express-C는 DB2 Express Edition과 동일한 코어
데이터 기능을 제공하고 애플리케이션 빌드 및 전개를 위한 견고한 기반을 제공한다.
- developerWorks에서 직접 다운로드할 수 있는 IBM 시험판 소프트웨어를 사용하여 차기 개발 프로젝트를 구현해 보자.
토론
필자소개  | 
|  | Susan Malaika는 IBM Software Group 소속 IBM Information Management의 선임 기술 담당자로, XML, 웹 및
데이터베이스와 관련된 전문성을 갖추고 있다. 그녀는 Global Grid Forum에서 그리드 환경 데이터를 지원하는 표준을
개발했다. IBM 제품 소프트웨어 개발자, 인터넷 전문가, 데이터 분석가 및 애플리케이션 디자이너 및 개발자로
활동해 온 그녀는 웹에 대한 책을 공동 집필했으며 트랜잭션 처리 및 XML에 관한 기사를 출판했다. IBM Academy
of Technology의 멤버이기도 하다. |
 | 
|  | Christian Pichler는 Research Studios Austria에서 연구원으로 eGovernment와 eBusiness에
관한 다양한 프로젝트에 참여하고 있다. 그는 오스트리아 Technical University of Vienna의 전산학
석사 학위를 보유하고 있으며 현재는 동대학에서 조직간 시스템 전공 박사 과정을 밟고 있다. |
기사에 대한 평가
 |
| 이 문서 북마킹 하기
|
|