speclogo

IMS 웹서비스 - 첨부 프로파일

발행일 2009년 00월 00일
최신 버전 IMS 웹서비스 – 첨부 프로파일 버전 1.0
이전 버전

1)IMS 지적재산권 웹 페이지 : http://www.imsglobal.org/ipr/imsipr_policyFinal.pdf
원안작성 협력기관 : 한국교육학술정보원(IMS Korea 표준화 포럼)
성 명 근 무 처 직 위
(위 원 장) 황대준
성균관대학교
교수
(실무위원) 김성윤
(주)포씨소프트
이사
김 현
(주)씨티유니온
차장
유욱종
(주)다울소프트
부장
조성현
테크빌닷컴(주)
부사장
조용상
한국교육학술정보원
팀장
차남주
(주)디유넷
부사장
최성기
SK C&C
과장
(자문위원) 권희춘
수원여대
교수
김종현
계원디자인예술대학
교수
김현진
한국교원대학교
교수
손진곤
한국방송통신대학교
교수
정광식
한국방송통신대학교
교수
한태인
(주)메디오피아
부사장
(간 사) 신성욱
한국교육학술정보원
연구원

머 리 말

이 표준은 한국의 이러닝 분야 디지털 콘텐츠의 공유 및 유통 체제 확립을 위해 IMS Global Learning Consortium(이하 GLC)의 General Web Service 표준을 기초로 작성한 IMS Korea 단체표준이다. 이 표준은 한국의 문화적, 교육적, 언어적 특수성 등을 감안하여 현지화 등 확장을 고려하여 작성되었다. 또한 이 표준을 실제 구현할 때 부분적으로 선택하여 적용할 수 있도록 필수와 선택 영역이 구분되어 있으므로 목적에 따라 선별적인 적용이 가능하다. 이 표준은 IMS GLC 표준 개발 과정에서 웹 서비스를 사용하려는 프로젝트 팀들에게 지침을 제시할 수 있는 프레임워크를 제공하기 위한 목적으로 개발되었다. 따라서 이 표준은 5가지 요건 즉, 상호운용성(Interoperability), 효율성(Efficiency), 일관성(Consistency), 유연성(Flexibility), 실용성(Practicality)을 충족하는 방법론과 어플리케이션 프로파일을 제공한다. 이 표준은 멀티파트로 구성되며, 다음과 같은 여섯 가지 표준 문서로 구성된다.
  • Part 1 : 어드레싱 프로파일 (Addressing Profile)
  • Part 2 : 베이스 프로파일 (Base Profilie)
  • Part 3 : 안내서 (Primer)
  • Part 4 : 보안 프로파일 (Security Profile)
  • Part 5 : 첨부 프로파일 (Attachments Profile)
  • Part 6 : WSDL 바인딩 가이드 (WSDL Binding Guidelines)
이 표준은 저작권법에서 보호 대상이 되는 저작물이다. 이 표준 문서의 표지에 있는 지적재산권 공지 사항을 숙지할 것을 다시한번 강조한다.

1 적용범위

IMS 웹서비스 베이스 프로파일은 웹서비스를 정의하기 위한 기본 구조를 제공한다. IMS 웹서비스 베이스 프로파일(Base Profile)은 상호운용성을 증진하는 상세설명, 보완사항들과 함께 비독점 웹서비스 표준들로 구성되어 있다. IMS 웹서비스 베이스 프로파일은 웹서비스 표준을 구현하는 과정에서 흔히 경험하는 문제들을 다룬다. IMS 웹서비스 베이스 프로파일은 널리 알려지고, 폭넓게 구현되거나 유용한 참조 표준들 내에 존재하는 매커니즘들의 선택방법을 정의한다. IMS 웹서비스 첨부 프로파일은 IMS 웹서비스 베이스 프로파일을 확장해 SOAP 메시지 내의 비XML 정보의 교환을 가능하게 한다. 첨부 프로파일은 비XML 콘텐츠를 SOAP 메시지에 첨부하는 MTOM (Message Transmission Optimization Mechanism)을 정의한다. MTOM은 XOP 매커니즘을 이용해 첨부를 가진 SOAP의 인코딩 효율을 높인다.

2 인용표준

다음은 이 표준의 인용 또는 참조표준으로 발행연도가 표기되지 않은 표준은 최신판을 적용한다.

2.1 참조표준

  • AbsGloss, 03 : IMS Abstract Framework: Glossary v1.0, Ed. C.Smythe, IMS/GLC.
  • GWS, 05a : IMS General Web Services Base Profile Final Release, C.Schroeder, J.Simon and C.Smythe, V1.0 IMS/GLC.
  • GWS, 05b : IMS General Web Services WSDL Binding Guidelines Final Release, C.Schroeder, J.Simon and C.Smythe, V1.0 IMS/GLC.
  • GWS, 05c : IMS Binding Auto-generation Toolkit Manual, C.Smythe, V1.0 IMS/GLC.
  • MTOM, 05 : SOAP Message Transmission Optimization Mechanism, M.Gudgin, N.Mendelsohn, M.Nottingham and H.Ruellan, W3C Recommendation, http://www.w3.org/TR/soap12-mtom/.
  • RFC2119, 97 : RFC 2119: Key words for use in RFC to Indicate Requirement Levels, S.Bradner, IETF.
  • RRSHB, 05 : Resource Representation SOAP header Block, A.Karmarkar, M.Gudgin and Y.Lafon, W3C Recommendation, http://www.w3.org/TR/soap12-rep/.
  • XOP, 05 : XML-binary Optimized Packaging, M.Gudgin, N.Mendelsohn, M.Nottingham and H.Ruellan, W3C Recommendation, http://www.w3.org/TR/xop10/.

3 용어정의

3.1 약자와 약어

  • GWSBP : 웹서비스 베이스 프로파일(General Web Services Base Profile)
  • HTTP : 하이퍼텍스트 전송 프로토콜(Hypertext Transport Protocol)
  • IAF : IMS 추상 프레임워크(IMS Abstract Framework)
  • I-BAT: IMS 바인딩 자동 생성 툴킷(IMS Binding Auto-generation Toolkit)
  • MIME : 다목적 인터넷 메일 확장(Multipurpose Internet Mail Extensions)
  • MTOM : 메시지 전송 최적화 매커니즘(Message Transmission Optimization Mechanism)
  • RRSHB : (Resource Representation SOAP Header Block)
  • SOAP : 단순 객체 접근 프로토콜(Simple Object Access Protocol)
  • SWA : 첨부가 있는 SOAP(SOAP with Attachment)
  • TCP : 전송 제어 프로토콜(Transmission Control Protocol)
  • UML : 통합 모델링 언어(Unified Modelling Language)
  • URI : 범용 자원 식별자(Universal Resource Identifier)
  • URL : 범용 자원 로케이터(Universal Resource Locator)
  • W3C : www 컨소시엄(World Wide Web Consortium)
  • WSDL : 웹 서비스 기술 언어(Web Services Description Language)
  • WS-I : 웹서비스 상호운용성 (Web Services Interoperability Organization)
  • XML : 확장 마크업 언어(Extensible Mark-up Language)
  • XSD : XML 스키마 정의(XML Schema Definition)
  • XSLT : 확장 스타일시트 언어 변환(Extensible Stylesheet Language Transformations)

4 첨부 프레임워크

4.1 메시지 전송 최적화 매커니즘(Message Transmission Optimization Mechanism)

IMS 웹서비스 첨부 프레임워크는 W3C 가 개발중인 MTOM 표준을 기반으로 하고 있다. MTOM은 베이스64 인코딩의 구성기능(composition capability)과 첨부가 포함된 SOAP(SWA)의 전송효율을 결합한다. 비XML 데이터는 SWA를 통해 처리되는 것과 동일한 방식으로 처리된다. 즉, 데이터는 MIME 메시지의 이진 데이터로 간편하게 스트리밍된다. MTOM은 다음 세 가지 특징적인 표준으로 구성된다.
  1. SOAP MTOM – 선택적으로 메시지의 부분을 인코딩하여 SOAP 어플리케이션에게 XML 인포셋(InfoSet)을 제공함으로써 SOAP 메시지의 전송 그리고/또는 와이어 포맷을 최적화하기 위한 추상적 기능을 설명한다. Abstract SOAP TOF (Transmission Optimization Feature)의 활용은 SOAP 노드와 SOAP 메시지 경로 상에서 다음 SOAP 노드간의 홉간(hop-by-hop) 협약이며, 중개자(intermediary)를 통해 SOAP 전송을 최적화하는 필수적인 규칙은 제공하지 않는다.
  2. XOP (XML-binary Optimized Packaging) – 이 표준은 비XML 콘텐츠를 가진 XML 인포셋을 MIME 패키지로 직렬화(serialization)하는 방법을 명시한다. XOP는 패키지의 루트(root portion)인 XML문서를 포함한 MIME 패키지와 완전히 호환 가능한 대체 직렬화를 제공한다. XOP는 비XML 첨부를 MIME 메시지의 일부로 스트리밍한다. MIME 첨부는 처리되고, 메시지의 직렬화가 되기 직전에 일시적으로 베이스64로 인코딩된 텍스트(base-64 encoded text)로 처리된다. 예를 들어, 전자서명을 생성하는 WS-보안 계층은 비XML 데이터를 이용해 베이스64 인코딩 계층으로 스트리밍함으로써 서명을 계산한다. 베이스64 인코딩 데이터는 일시적이며, 서명을 생성하는 데만 사용된다(실제로 이 데이터는 전송되거나 저장되거나 직렬화되지 않는다). 역직렬화(deserialization)가 진행되는 동안 첨부에 접근하는 처리 계층들은 베이스64 인코딩 계층을 통해 이 과정을 진행한다(이는 계열화 직전에 일시적으로 일어난다).
  3. RRSHB (Resource Representation SOAP Header Block Specification) – SOAP 메시지 내에서 자원표현을 포함할 수 있는 SOAP 헤더 블록을 정의한다. 이 표현 헤더 블록은 수신자가 자원을 검색하는 능력이 제한되어 있을 때 사용할 수 있다(접근 제한이나 검색될 자원의 크기로 인한 비정상적 오버헤드 처리 때문에 자원 검색 능력이 제한될 때). 또한 동일한 자원에 대해 여러 개의 참조들이 필요하지만 자원의 복제가 권장되지 않는 경우에도 RRSHB를 사용할 수 있다. RRSHB의 어플리케이션 사례는 아래에 제시되어 있다. 참조된 콘텐츠 패키지는 MIME의 일부로 첨부되어 있으며 (의사) 베이스64 인코딩 값은 인포셋 처리가 이루어지는 동안 생성된다(위에서 서술된 바와 같다).
MTOM은 다음과 같은 두 가지 이유로 SWA 대신 채택되었다.
  1. SWA는 ‘multipart/related MIME’ 유형을 사용해 SOAP 엔벨로프에 첨부를 바인딩하는 방법을 정의한다. 이는 이메일에 사용되는 것과 같은 첨부/캡슐화 매커니즘이다. MIME은 문자열을 이용해 부분들간에 경계를 형성하기 때문에 비효율적이다. 소비자들은 전체 메시지를 읽어서 경계를 짓기 위해 사용된 문자열 값을 찾아야만 한다.
  2. MIME은 XML 인포셋으로 표현될 수 없다. 첨부는 WS-보안을 사용해 보안을 보장할 수 없기 때문에 웹서비스 모델을 사실상 깨뜨린다.
MTOM은 효율적인 인코딩 매커니즘(기존 이진 모델에 비해 25% 절감)과 인포셋 표현(전체 패키지는 일반 SOAP 메시지처럼 처리될 수 있다)을 결합함으로써 MIME 모델과 웹서비스 모델 사이에서 절충안을 제공한다. MTOM 메시지는 유효한 SWA 메시지이며, 기존 SWA 구현보다 MTOM의 구현이 더 수월하다. MTOM 첨부들은 MIME 메시지에서 이진 데이터로 스트리밍되며, 다른 SWA 구현들과의 상호운용을 더 쉽게 할 수 있도록 한다.

4.2 첨부 처리 워크플로우

워크플로우에서 자주 사용되는 주요 용어들은 표4.1에 정의되어 있다.

표 4.1 워크플로우 설명에 사용되는 주요 용어

용어 정의
종단 (endpoint) 참조될 수 있는 개체, 프로세서 또는 자원, 그리고 웹서비스 메시지가 기원한 곳이거나 목표로 하는 곳
초기자(initiator) SOAP 메시지와 첨부를 응답자에게 보냄으로써 웹서비스를 소비하는 어플리케이션
응답자(respondent) 웹서비스를 노출하고 초기자로부터 SOAP 메시지와 첨부를 수신하여 처리하는 어플리케이션
메시지(message) SOAP 엔벨로프 내에 캡슐화된 IMS 메시지
소스(source) 메시지를 응답자에게 전송하는 종단
목적지(destination) 초기자로부터 메시지를 수신하는 종단
첨부(attachement) 이 프로파일에서 제공하는 지침을 기반으로 메시지에 첨부되는 비XML 자원
 
IMS KR 1005-5_4.1

그림 4.1 애플리케이션에 대한 웹서비스 지원의 스키마적 표현

다음은 IMS 메시지와 첨부를 교환하는 일반적인 워크플로우를 단계별로 나타낸 것이다. 이 워크플로우는 일반적인 작업의 흐름을 보여준다. 이 워크플로우는 적합한 작업을 보여주며, 세부적인 단계들을 보여주지는 않는다.
  1. 초기자는 관계된 IMS 표준과 WSDL 바인딩 가이드라인에 따라 IMS 메시지를 구성한다.
  2. 초기자는 IMS 메시지와 같이 송부해야 할 첨부(또는 첨부들)를 식별한다.
  3. 초기자 내의 웹서비스 메시징 어댑터는
    • SOAP 메시지의 바디 내의 IMS 메시지를 캡슐화한다.
    • MTOM을 이용해 첨부(또는 첨부들)를 첨부한다.
    • IMS 메시지와 첨부(또는 첨부들)를 소스로 전달한다.
  4. 소스는 IMS 메시지를 전송을 통해 전달한다.
  5. IMS 메시지는 목적지에 전달된다.
  6. 목적지는 전송된 IMS 메시지를 수신한다.
  7. 응답자 내의 웹서비스 메시징 어댑터는
    • 메시지에 첨부된 모든 첨부들을 디코딩하고 분리한다.
    • 초기자에게 수신/응답 메시지를 전달한다.
    • 응답자는 IMS 메시지와 첨부(또는 첨부들)를 압축해제하고, 검증하고, 처리한다.

5 첨부 프로파일 규칙

표 5.1은 첨부 프로파일에서 사용되는 규칙들의 집합을 요약해 보여준다. 표 5.1에서는 다음과 같은 규칙들이 사용된다.
  • 이 문서에 등장하는 ‘반드시~해야 한다’, ‘절대로 ~해서는 안 된다’, ‘ 필수 사항’, ‘~한다’, ‘~하지 않는다’, ‘ ~해야 한다’, ‘ ~해서는 안 된다’, ‘ ~을 권고한다’, ‘ ~할 수 있다’, ‘ 선택사항’ 등의 키워드는 RFC2119의 설명과 해석을 따른다.
  • 이 프로파일의 표준 명세는 다음과 같이 표시된다. ’RADPnnnnStatment’ 텍스트에서, ‘nnnn’은 명세번호로 대체된다. 각 명세는 ‘반드시 ~를 해야 한다’를 비롯해 정확히 하나의 필수 키워드와, ‘메시지’ 등 하나의 적합성 타겟 키워드를 포함한다.
표 5.1 IMS 웹서비스 첨부 프로파일 규칙 요약

식별자

내용

기본 첨부(Basic Attachment)
RATP0001 IMS에 적합한 웹서비스는 비XML 데이터를 SOAP 메시지로 첨부하기 위해 MTOM을 사용해야 한다. 첨부를 가진 SOAP (SWA)는 웹서비스 모델과 상호 호환되지 않으므로 IMS 웹서비스는 첨부를 가진 SOAP를 사용하지 말아야 한다. 예를 들어, SWA는 WS-보안과 호환되지 않으므로 첨부의 보안을 유지하거나 여러 조직을 아우르는 신뢰경계(trust boundaries)를 확립하기가 어렵다. 이러한 근본적인 문제로 인해, W3C는 비XML 자원을 SOAP 메시지로 첨부하기 위한 방법으로 SWA를 버리고 MTOM을 유일하게 채택하도록 권고하기로 결정하였다.
RATP0002 MTOM 첨부를 수신하는 IMS에 적합한 웹서비스는 메시지의 XML 부분을 버퍼링해야 할 필요가 있다. 메시지의 비XML 부분이 XML부분에서 참조된 것과 다른 순서로 되어 있을 경우, 추가적인 버퍼링이 필요할 수 있다.
RATP0003 SOAP 1.1을 지원하는 IMS에 적합한 웹서비스는 자원표현(Resource Representation) SOAP 헤더 블록 매커니즘을 사용하지 않는다. RRSHB는 SOAP 1.2버전에서 사용하기 위해 만들어졌다. IMS 베이스 프로파일 은 SOAP 1.1버전의 사용을 명시한다.

XOP (XML-binary Optimized Packaging)

RATP2001 XOP 네임스페이스 속성(xmlns:xop=http://www.w3.org/2004/08/xop/include)은 SOAP 엔벨로프 요소에서 사용해야 한다. 접두어 ‘xop’의 사용은 필수사항이 아니다. 이는 XOP <Include> 요소를 사용해 첨부를 식별할 수 있도록 보증한다.
RATP2002 첨부를 식별하기 위한 각 데이터 요소는 첨부의 MIME 유형을 식별하기 위해 반드시 ‘contentType’ 속성을 이용해야 한다. 이는 XOP/MIME 처리로 첨부 콘텐츠를 디코딩 할 수 있도록 한다. 이에 대한 예는 다음과 같다.

<ns1:data xmlmime:contentType="image/jpeg">
     ...
  </ns1>
RATP2003 첨부를 식별하기 위한 각 데이터 요소는 반드시 채워진 ‘href’ 속성을 가진 빈 XOP <Include> 요소를 이용해 첨부된 MIME 부분에 포함된 첨부를 식별한다. ‘href’ 값은 반드시 'cid:URI' 스키마 각각에 대하여 유효한 URI이어야 한다. <Include> 요소는 MIME 인코딩에 포함된 첨부 문서에 고유한 식별자를 지정하기 위해 사용되며, 그 예는 다음과 같다.

<ns1:data xmlmime:contentType="image/jpeg">
     <xop:Include href=cid:thismessage:/resource1.jpg/>
  </ns1>
MIME 인코딩(MIME Encoding)
RATP4001 MIME 네임스페이스 속성(xmlns:xmlmime="http://www.w3.org/2004/06/xmlmime)은 반드시 SOAP 엔벨로프 요소에서 사용해야 한다. 접두어 ‘xmlmime’의 사용은 필수사항은 아니다. 이는 첨부의 MIME 유형을 정의할 수 있도록 한다.
RATP4002 첨부가 있을 때 MIME 경계 인코딩의 'Content-type' 필드는 다음과 같이 설정되어야 한다. Content-Type: application/xop+xml;charset=UTF-8;type="application/soap+xml" 이는 SOAP 메시지에 XOP 첨부가 있음을 식별하기 위해서 디코더(decoder)에 의해 사용된다.
RATP4003 각 첨부에 대한 MIME 경계 'Content-ID' 정보는 반드시 관련 XOP <Include> 요소에 지정된 식별자라야 한다(RAPT2003 참조). 이는 첨부가 고유하게 식별될 수 있도록 하며, 예는 다음과 같다. Content-ID: <thismessage:/resource1.jpeg>
RATP4004 각 첨부에 대한 MIME 경계 'Content-Type' 정보는 반드시 데이터 요소에 지정된 MIME-유형이어야 한다. 이는 첨부된 자료의 MIME 유형을 식별하기 위해 사용되며, 예는 다음과 같다. Content-Type: image/jpeg
RATP4005 각 첨부에 대한 MIME 경계 ‘'Content-Transfer-Encoding’ 정보는 반드시 ‘이진’ 집합이어야 한다. 이는 ‘MIME-part’에서 첨부의 인코딩을 식별하기 위함이며, 예는 다음과 같다. Content-Transfer-Encoding: binary
보안 인코딩(Security Encodings)
RATP6004 IMS에 적합한 웹서비스는 보안을 위한 다이제스트(digests)를 연산하기 위해 반드시 비XML 첨부에 대해서는 베이스64 형식을 사용해야 한다. MTOM은 비XML 데이터를 ‘raw octet’으로 직렬화한다. 옥텟은 베이스64와 같지 않으며 다이제스트 연산 전에 반드시 베이스64 표현으로 변환되어야 한다.
RATP0005 IMS에 적합한 웹서비스는 암호화를 위해 반드시 비XML첨부의 베이스64 양식을 사용해야 한다. MTOM은 비XML 데이터를 ‘raw octet’으로 직렬화한다. 옥텟은 베이스64와 같지 않으며 암호화되기 전에 반드시 베이스64 표현으로 변환되어야 한다. 암호화에 의해 생산된 사이퍼 데이터(cipher data)는 그 후에 전송을 위해 옥텟으로 직렬화된다.
RATP0006 IMS에 적합한 웹서비스는 생산품질 MTOM (production-quality MTOM) 구현이 가능해질 때까지 IMS 첨부에 대한 단순 베이스64 인코딩을 사용해야 한다. 베이스64로 인코딩된 데이터는 일반적으로 구조화된 XML보다 더 효율적이다. 베이스64 인코딩은 벤더(vendor)들이 MTOM에 대한 전적인 지원을 하기 전까지는 비XML 데이터를 전달하는 최선의 방법이다. 베이스64 인코딩은 차세대 웹 서비스(Advanced Web Services)에 아주 적합하며, XML 인코딩을 위한 매우 효율적인 매커니즘을 제공한다. 여러 개발 플랫폼(.NET 등)은 바이트 배열을 베이스64로 인코딩된 요소로 비교적 쉽게 직렬화한다. 이는 비XML 데이터를 바이트 배열 파라미터로 웹서비스에 전송할 수 있도록 한다.

6 WSDL 바인딩의 의미

MTOM사용하기위해서는표준프로세스의일부로다음정보를필요로한다.
  • 첨부된 데이터 객체를 참조하기 위해 사용되는 각 파라미터(입력 또는 출력)는 반드시 식별되어야 한다. 메시지가 교환되는 동안 하나 이상의 첨부가 송신 또는 수신될 수 있다.
  • 첨부의 MIME 유형이 반드시 제공되어야 한다.
  • 첨부될 문서가 위치할 수 있는 URL
  • XOP 프로세서를 위해 <Include href="..."> 요소 값은 파라미터 이름과 MIME 유형을 결합한 것으로 계산한다. 이 값은 MIME 파트의 자료에 대한 URI이며 외부 URL이 아니다.
WSDL 1.1의 관점에서, 첨부 정보는 파일의 XSD 정의 부분에 제시되어 있다. IMS 바인딩 자동생성 툴킷(I-BAT)의 변환파일들은 표 6.1에 설명된 UML 설명에서 제공하는 정보를 사용한다. 표 6.1에서 각 속성은 사례 값(example value)을 가지며, 각 값의 집합에는 대응되는 WSDL 파일이 있다. 표 6.1 첨부 프로파일을 포함한 동기식 단순 파일 자동생성

속성

원래

서비스 그룹 모델 속성(ServiceGroupModel Attributes)
Service Group Package Name ExampleGroup
WSDLv1.1:NameSpaceRoot http://www.example/services/
WSDLv1.1:TargetNameSpaceLeaf wsdlfilev1p0
WSDLv1.1:TargetNameSpacePrefix tns
WSDLv1.1:AbstractFileNameSpaceLeaf 미사용
WSDLv1.1:AbstractFileNameSpacePrefix 미사용
WSDLv1.1:XSDLinkNameSpaceLeaf 미사용
WSDLv1.1:XSDLinkNameSpacePrefix 미사용
WSDLv1.1:MessageHdrNameSpaceLeaf 미사용
WSDLv1.1:MessageHdrNameSpacePrefix 미사용
<wsdl11:definitions name = "ExampleGroupSyncServices" targetNamespace = "http://www.example/services/wsdl/sync/wsdlfilev1p0" xmlns:tns = "http://ww.example/services/wsdl/sync/wsdlfilev1p0" xmlns:soap11 ="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl11 ="http://schemas.xmlsoap.org/wsdl/" xmlns:xs = "http://www.w3.org/2001/XMLSchema" xmlns:xsi = "http://www.w3.org/2000/10/XMLSchema-instance">
서비스모델 속성(ServiceModel Attributes)
Service Package Name EgServiceName
SOAPv1.1:AddressLocationRoot http://www.example.soap/serviceuri/
SOAPv1.1:OperationActionRoot http://www.example/soap/service/
<wsdl11:service name = "EgServiceNameSyncService"> <wsdl11:port name = "CoreOperationsNameSyncSoapPort" binding = "..."> <soap11:address location="http://www.example.soap/serviceuri/EgServiceNameSyncServiceSoap/"/> </wsdl11:port> </wsdl11:service>
인터페이스 속성(Interface Attributes)
Interface Name CoreOperationsName createObject (myData:AttachmentJpeg)
<wsdl11:binding name="CoreOperationsNameSyncSoapBinding"
            type="tns: CoreOperationsNameSyncPortType">
     <soap11:binding transport="http://schema.xmlsoap.org/soap/http" style="document"/>
     <wsdl11:operation name="createObject">
        <soap11:operation soapAction="http://www.example/soap/service/createObject"
           style="document"/>
        ...
     </wsdl11:operation>
  </wsdl11:binding>
  <wsdl11:service name = "EgServiceNameSyncService">
     <wsdl11:port name = "CoreOperationsNameSyncSoapPort"
              binding = "tns:CoreOperationsNameSyncSoapBinding">
        <soap11:address
           location="http://www.example.soap/serviceuri/EgServiceNameSyncServiceSoap/"/>
     </wsdl11:port>
  </wsdl11:service>
데이터모델 속성(DataModel Attributes)
NameSpaceRoot NameSpaceRoot
NameSpaceLeaf NameSpaceLeaf
NameSpacePrefix NameSpacePrefix
SchemaVersion SchemaVersion
QualifiedElements QualifiedElements
QualifiedAttributes QualifiedAttributes
<wsdl11:types>
     <xs:schema xmlns="http://www.w3.org/2001/XMLSchema"
        targetNamespace="http://www.example/services/wsdl/sync/wsdlfilev1p0"
        xmlns:xsd=http://www.w3.org/2001/XMLSchema
        xmlns:xsi=http://www.w3.org/2000/10/XMLSchema-instance
        xmlns:xmlmime="http://www.w3.org/2004/06/xmlmime"
        version="IMS 1.0"
        elementFormDefault="qualified"
        attributeFormDefault="unqualified">

        <xs:import namespace='http://www.w3.org/2004/06/xmlmime' />

        <xs:element name='myData' >
           <xs:complexType>
                <xs:simpleContent>
                 <xs:extension base='xs:base64Binary' >
                      <xs:attribute ref="xmlmime:contentType" />
                 </xs:extension>
                </xs:simpleContent>
           </xs:complexType>
          </xs:element>

     </xs:schema>
  </wsdl11:types>

7 기타 IMS 웹서비스 프로파일과의 관계

첨부 프로파일과 기타 IMS 웹서비스 프로파일들과의 관계는 그림 7.1에서 보여주고 있다.

IMS KR 1005-5_7.1

그림 7.1 첨부 프로파일과 기타 IMS 웹서비스 프로파일들과의 관계

첨부 프로파일은 베이스 프로파일이 이미 사용되고 있다고 가정한다. 이 부분만이 유일하게 다른 IMS 웹서비스 프로파일과의 연관성을 보여준다. 보안 프로파일이 사용되고 있을 때 첨부와 관련된 정보가 어떻게 인코딩 되는지에 대한 함의가 주어진다. 이러한 함의는 5장의 프로파일 규칙에서 정의된다.

8 첨부 프로파일의 확장

8.1 전용 확장(Proprietary Extensions)

첨부 프로파일의 확장은 권고사항이 아니다. 이는 WSDL 1.1버전을 가진 MTOM의 사용은 툴 지원과 W3C 표준의 완성 측면에서 안정적이지 않기 때문이다. MTOM은 완전한 표준이 아니며 예비 권고사항이다.

8.2 2.0버전의 추가작업

WSDL 1.1버전을 활용하는 MTOM 지원의 상호호환성을 보장하기 위해 IMS 웹서비스 2.0버전의 추가 작업은 제한될 것이다. 나머지 추가작업은 SOAP 1.2버전과 WSDL 2.0버전을 활용하는 MTOM의 사용에 초점을 맞출 것이다.

9 첨부 프로파일에 대한 적합성

첨부 프로파일의 구현에 대한 적합성의 자격은 구현물이 5장에서 제시된 프로파일 규칙들을 만족시킴을 증명해야 한다. WS-I 적합성 자격 매커니즘(WS-I Conformance Claims mechanism)과는 별도로 W3C는 WS-정책의 사용 현황에 대해 조사하고 있다. 그러므로, WS-I 접근법의 사용에 대한 어떠한 권고사항도 정해진 바가 없다. WS-I 적합성 자격 매커니즘에 대한 정보는 IMS 웹서비스 WSDL 바인딩 가이드라인 문서 [GWS, 05b]에 제시되어 있다. 하지만, 어떠한 형태로든 적합성 명세가 요구되는 경우에는 WS-I 접근법이 사용될 수 있지만 IMS 웹서비스 표준의 향후 버전에서 기법을 지원한다고 보장하지는 않는다.

부속서 A(참고)

용어

IMS 웹서비스 문서에서는 다양한 용어, 개념과 설명을 소개하고 있다. 이들 용어, 개념 그리고 설명들은 다음과 같이 정의되지만, 경우에 따라서는 IAF 용어집의 표준 정의를 참조한다.
첨부(attachment) 이 프로파일에서 제공되는 지침에 따라 메시지에 첨부되는 비XML 자원.
목적지(destination) 초기자로부터 메시지를 수신하는 종단.
종단(endpoint) 참조될 수 있는 개체, 프로세서 또는 자원, 그리고 웹서비스 메시지가 기원하거나 목표로 하는 곳.
초기자(initiator) SOAP 메시지와 첨부를 응답자에게 보냄으로써 웹서비스를 소비하는 애플리케이션
메시지(message) 관계된 IMS 표준과 WSDL 바인딩 규칙에서 정의된 SOAP 엔벨로프 내에 캡슐화된 IMS 메시지
MTOM (Message Transmission Optimization Mechanism) MTOM은 SOAP 메시지가 비XML 객체를 포함할 수 있도록 하는 W3C 메시지 첨부 접근법 중 하나이다. MTOM은 첨부를 가진 SOAP를 발전시킨 것이며, 이 프로파일에서는 MTOM을 원래의 SWA 표준을 대체하기 위한 것으로 권장한다. 핵심 표준 외에도, MTOM은 또한 XOP와 RRSHB 표준을 기반으로 한다.
RRSHB (Resource Representation SOAP Header Block) RRSHB 표준은 SOAP 메시지의 자원표현을 전달하는 SOAP 헤더 블록의 의미론과 직렬화를 설명한다. RRSHB는 애플리케이션으로 하여금 SOAP 메시지에서 웹 자원의 표현을 전달하도록 설계되었다. 이 헤더의 애플리케이션에는 접근 제한이나 오버헤드를 받아들일 수 없는 등의 이유로 수신자가 다른 방법을 통해 표현을 얻기가 힘든 경우를 포함한다. RRSHB는 같은 자원에 여러 참조가 필요하지만 자원의 복제는 바람직하지 않은 경우에도 유용하다.
응답자(respondent) 웹서비스를 노출하고 초기자로부터 SOAP 메시지와 첨부를 수신하여 처리하는 애플리케이션.
첨부를가진 SOAP (SWA) 첨부를 가진 SOAP(SWA)는 여러 메시지 페이로드(message payloads)를 지원하기 위해 MIME 바인딩을 제공하는 동시에 RPC가 XML에서 마샬링되고 언마샬링되는 규칙은 무시하면서 SOAP 1.1버전을 확장한다.
소스(source) 메시지를 응답자에게 전송하는 종단.
XOP (XML-binary Optimized Packaging) XOP 표준은 특정한 유형의 콘텐츠를 가지는 XML 인포셋을 더 효율적으로 직렬화하는 방법을 정의한다. XOP 패키지는 직렬화된 XML 인포셋을 확장 가능한 패키징 포맷(MIME Multipart/Relate 등의 포맷이며, RFC 2387을 참조할 것) 내에 삽입함으로써 생성된다. 그 후, 베이스64 인코딩 이진 데이터인 선택된 부분의 콘텐츠가 추출되어 재인코딩된다. 즉, 데이터가 베이스64로부터 디코딩되어 패키지 내로 삽입된다. 선택된 부분의 위치는 URI를 사용해 패키징된 데이터를 링크하는 특수 요소를 가진 XML에 마크되어 있다.
 

해설

이 해설은 본체 및 부속서에 규정ㆍ기재한 사항 및 이것에 관련된 사항을 설명하는 것으로 표준의 일부는 아니다. 1. 제정의 취지 이러닝 서비스 다양화 및 고도화에 따라 이러닝 표준에 대한 필요성과 수요가 나날이 급증하고 있으며, 나아가 표준화를 지향하고 있는 국내외적 요구와 환경에 대응하기 위한 기반 마련이 시급하다. 또한, 국제 이러닝 표준화 분야에서 선진국간의 치열한 경쟁이 심화되고 있는 시점에서 국내 산업 및 국가 지식경쟁력 강화를 위한 실천적 차원의 표준화 추진 사례가 부족한 실정이다. 따라서 이러닝 표준화 요소 중 글로벌 경쟁력을 갖춘 웹서비스 표준을 우선 단체표준으로 제안함으로써 산업 경쟁력 및 교육경쟁력 강화를 도모하고자 한다. 효율적인 단체표준 개발을 위해 IMS 웹서비스 표준을 인용하였다. 2. 제정의 경위
  • 제1차 개발위원회(2009.1.): 단체표준 개발을 위한 참여 전문가를 위촉하고 규격 제정 취지와 규격의 제정 방향을 설정하였고, 초안 작성 기준을 토의하였다.
  • 제2차 개발위원회(2009.3.): IMS GLC의 이러닝 표준을 기초로 작성한 초안을 통하여 부합화에 적합한 표준 용어를 정의하였다.
  • 제3차 개발위원회(2009.5.): 기초(안)을 작성하여 적용범위, 인용표준, 용어정의 등의 내용을 검토하고, 참여진의 표준의 이해도를 높이기 위해 규격에 대한 검수 작업을 실시 하였다.
  • 제4차 개발위원회(2009.6.): 표준 수정(안)을 토대로 IMS Korea 표준화 포럼의 표준 심사위원회를 통하여 표준을 검토하고 의견을 수렴하였다.
a) 규격서의 서식은 KS A 0001 : 2008의 규격서를 기준으로 하여 작성하였다. b) 양식은 기존의 유사 KS규격을 인용하였으며, IMS와 부합화된 최신규격을 적용하였다 3. 심의 중 주요 논의 및 수정사항
  1. 인용 표준의 형식은 KS A 0001의 구성에 맞게 조정하며, 연도는 삭제한다. (2009년 6월)
  2. 표준 규격서의 목차는 적용 범위 인용표준, 용어 정의 순으로 목차를 정렬 하며, 단, 원문에 서론이 있는 경우 서론은 유지한다. (2009년 6월)
  3. NETg, Boein Coporation와 같은 고유한 회사명은 A, B 형태의 가칭으로 대체 표기한다. (2009년 6월)
  4. 그림, 표, 본문 등에 포함된 영어를 최대한 번역하여 국문으로 표기한다. (2009년 10월)
  5. MS GLC의 표준 인용 정책에 의하여 페이지의 'IPR 공지’ 및 'IMS 로고’ 적용은 현행을 유지하며, 규격의 매 페이지마다 포함된 copyright 표기 문구는 삭제한다. (2009년 10월)
  6. 규격에 해설서(제정의 취지 등) 내용을 추가 작성한다. (2009년 10월)
4. 적용 범위 IMS 웹서비스 베이스 프로파일은 웹서비스를 정의하기 위한 기본 구조를 제공한다. IMS 웹서비스 베이스 프로파일(Base Profile)은 상호운용성을 증진하는 상세설명, 보완사항들과 함께 비독점 웹서비스 표준들로 구성되어 있다. IMS 웹서비스 베이스 프로파일은 웹서비스 표준을 구현하는 과정에서 흔히 경험하는 문제들을 다룬다. IMS 웹서비스 베이스 프로파일은 널리 알려지고, 폭넓게 구현되거나 유용한 참조 표준들 내에 존재하는 매커니즘들의 선택방법을 정의한다. IMS 웹서비스 첨부 프로파일은 IMS 웹서비스 베이스 프로파일을 확장해 SOAP 메시지 내의 비XML 정보의 교환을 가능하게 한다. 첨부 프로파일은 비XML 콘텐츠를 SOAP 메시지에 첨부하는 MTOM (Message Transmission Optimization Mechanism)을 정의한다. MTOM은 XOP 매커니즘을 이용해 첨부를 가진 SOAP의 인코딩 효율을 높인다. 5. 표준개발 참여자 이 규격의 초안은 IMS Korea 표준화 포럼 활동으로 작성되었으며, 규격 개발에 참여한 전문가는 다음과 같다.

표준개발 참여자(경칭생략, 무순)

성 명

근 무 처

직 위

조용상

한국교육학술정보원

팀장

김종현

계원디자인예술대학

교수

김현진

한국교원대학교

교수

정광식

한국방송통신대학교

교수

황대준

성균관대학교

교수

고영승

(주)디유넷

대리

이정우

(주)포씨소프트

차장

장근원

(주)크레듀

과장

정호원

(주)씨티유니온

차장

지승환

테크빌닷컴(주)

차장

최성기

SK C&C

과장

권영진

한국교육학술정보원

연구원

최미애

한국교육학술정보원

연구원