![]() |
IMS 웹서비스 - 베이스 프로파일 |
발행일 | 2009년 00월 00일 |
최신 버전 | IMS 웹서비스 – 베이스 프로파일 버전 1.0 |
이전 버전 |
Copyright © IMS Global Learning Consortium 2007. All Rights Reserved.
이 표준을 배포하거나 제품 또는 서비스 제공을 위해서 활용하고자 한다면, IMS Korea 표준화 포럼 사무국(한국교육학술정보원)에 승인 요청을 하고 이메일을 통해 승인을 받아야 한다. IMS 정식회원 및 기부회원, 개발자 네트워크는 상기의 저작권 공지사항과 이 문장을 사본에 포함시키는 조건 하에 이 표준을 배포 및 활용할 수 있다. 그러나 저작권 공지사항 또는 IMS 명칭이 표기된 부분을 삭제하는 등, 이 표준을 훼손하는 행위는 금지된다. 단, IMS가 승인한 프로젝트그룹의 감독 하에 IMS 표준을 수정하는 경우는 예외적으로 허용된다. 상기 부여된 제한된 승인 내용은 영속적이며, IMS 또는 후임기관 그 누구라도 라이센스를 취소할 수 없다. 이 표준은 어떠한 보증도 하지 않으며, 특히 불침해에 대한 그 어떤 보증도 하지 않는다. 이 표준의 사용에 대한 책임은 온전히 사용자에 의하며, 그 어떤 컨소시엄이나 제공 주체도 이 표준을 사용함으로써 제3자가 직간접적으로 입을 수 있는 피해에 대해 책임지지 않는다.Copyright © 2007 by IMS Global Learning Consortium, Inc. All Rights Reserved.
원안작성 협력기관 : 한국교육학술정보원(IMS Korea 표준화 포럼) | |||
성 명 | 근 무 처 | 직 위 | |
(위 원 장) | 황대준 |
성균관대학교 |
교수 |
(실무위원) | 김성윤 |
(주)포씨소프트 |
이사 |
김 현 |
(주)씨티유니온 |
차장 | |
유욱종 |
(주)다울소프트 |
부장 | |
조성현 |
테크빌닷컴(주) |
부사장 | |
조용상 |
한국교육학술정보원 |
팀장 | |
차남주 |
(주)디유넷 |
부사장 | |
최성기 |
SK C&C |
과장 | |
(자문위원) | 권희춘 |
수원여대 |
교수 |
김종현 |
계원디자인예술대학 |
교수 | |
김현진 |
한국교원대학교 |
교수 | |
손진곤 |
한국방송통신대학교 |
교수 | |
정광식 |
한국방송통신대학교 |
교수 | |
한태인 |
(주)메디오피아 |
부사장 | |
(간 사) | 신성욱 |
한국교육학술정보원 |
연구원 |
핵심표준 |
기술 |
XML 스키마 1.0버전 | 모든 데이터 모델은 XML 스키마 관점에서 정의되며 관련 관리문서(XSD)의 정의가 필요하다. |
HTTP 1.1버전 (RFC2616) | HTTP는 SOAP 메시지에서 필수적인 프로토콜 바인딩이다. |
SOAP 1.1버전 | SOAP는 필수적인 메시징 프로토콜이다. |
WSDL 1.1버전 | 서비스의 인스턴스는 WSDL 1.1버전을 사용해 정의한다. WSDL은 서비스를 메시지에 작동하는 종단의 집합으로 설명하기 위해 사용된다. |
UDDI 2.0버전 | 서비스의 인스턴스는 UDDI 2.0버전 바인딩을 사용해 정의될 수 있다. |
핵심표준 |
내용 |
XML 스키마 1.0버전 | IMS 표준의 모든 데이터 모델은 XML 스키마로 정의되며, 관련 관리문서(XSD)의 정의를 필요로 한다. |
HTTP 1.1버전 | HTTP는 SOAP 메시지에서 필수적인 프로토콜 바인딩이다. |
SOAP 1.1버전 | SOAP는 필수적인 메시징 프로토콜이다. |
WSDL 1.1버전 | WSDL 1.1버전을 이용해 서비스의 인스턴스를 정의한다.. |
규칙 |
내용 |
IMS 웹서비스와의관련성 |
프로파일 적합성(Profile Conformance) | ||
R0002 | 디스크립션(description)은 적합성 자격 스키마에 설명된 대로 인스턴스와 관련된 적합성 준수사항들을 포함할 수 있다. | 적합성 준수에 대한 매커니즘은 IMS 웹서비스 2.0버전에서 다뤄질 것이다. |
R0003 | 디스크립션의 적합성 준수는 반드시 <wsdl:port>, <wsdl:binding, wsdl:portType>, <wsdl:operation> (<wsdl:binding>이 아닌 <wsdl:portType>의 하위 요소), <wsdl:message> 요소들 각각의 <wsdl:documentation> 요소의 자식이어야 한다. | 적합성 준수에 대한 매커니즘은 IMS 웹서비스 2.0버전에서 다뤄질 것이다.. |
메시징 (Messaging) | ||
R9980 | 엔벨로프(envelope)는 반드시 SOAP 1.1버전 4장 ‘SOAP Envelope’ (프로파일에 의해 개정 가능함)에서 설명된 구조에 적합해야 한다. | 채택 |
R1015 | 수신자는 문서 요소가 엔벨로프의 로컬 이름을 갖고 있고, <soap:Envelope>가 아닌 네임스페이스 이름을 가진 메시지의 경우 반드시 결함(fault)을 생성해야 한다. | 채택 |
R1014 | 메시지에서 <soap:Body> 의 하위요소는 반드시 네임스페이스에 적합해야 한다. | 채택 |
R1008 | 메시지는 절대로 DTD (Document Type Declaration)를 포함해서는 안 된다. | 채택 |
R1009 | 메시지는 절대로 프로세싱 지침(Instructions)을 포함해서는 안된다. | 채택 |
R1033 | 엔벨로프는 네임스페이스 선언 xmlns:xml=”http://www.w3.org/XML/1998/namespace”를 포함해서는 안 된다. | 채택 |
R1034 | 디스크립션은 네임스페이스 선언 xmlns:xml=”http://www.w3.org/XML/1998/namespace”를 포함해서는 안 된다. | 채택 |
R1011 | 메시지는 절대로 <soap:Body> 요소 뒤에 오는 <soap:Envelope>의 하위 요소를 가져서는 안 된다. | 채택 |
R1005 | 메시지는 절대로 “http://schemas.xmlsoap.org/soap/envelope/”를 네임스페이스 이름으로 하는 요소에 <soap:encodingStyle> 속성을 포함해서는 안 된다. | 채택 |
R1006 | 메시지는 절대로 <soap:Body>의 하위 요소에 <soap:encodingStyle> 속성을 포함해서는 안 된다. | 채택 |
R1007 | ‘rpc-literal’ 바인딩에 설명된 메시지는 절대로 <soap:Body>의 손자 노드인 요소에 <soap:encodingStyle> 속성을 포함해서는 안 된다. | 채택되지 않음. ‘rpc – literal’ 바인딩은 지원되지 않는다. |
R1013 | <soap:mustUnderstand> 속성은 반드시 ‘0’과 ‘1’의 어휘만을 사용해야 한다. | 채택 |
R1017 | 수신자는 파생된 유형을 지칭하기 위해(XML 스키마 1부: 2.6.1 구조 참조) 필요한 경우를 제외하고는 메시지에서 ‘xsi:type’ 속성의 사용을 절대로 강제할 수 없다. | 채택 |
R1032 | 엔벨로프에서 ‘soap:Envelope’, ‘soap:Header’, 그리고 ‘soap:Body’ 요소는 절대로 네임스페이스 ”http://schemas.xmlsoap.org/soap/envelope/”에서 속성을 가져서는 안 된다. | 채택 |
R1025 | 수신자는 반드시 실제 프로세싱 전에 필수 헤더 블록이 모두 검사를 명백히 거칠 수 있도록 메시지를 처리해야 한다. | 채택 |
R1027 | (<soap:actor>를 통해) 수신자 대상을 지정하는 필수 헤더 블록(예를 들어 ‘1’ 값을 갖는 <soap:mustUnderstand> 속성이 있는 헤더 블록) 중 수신자가 이해할 수 없는 헤더 블록을 포함한 메시지의 경우 수신자는 반드시 ‘soap:MustUnderstand’ 결함을 생성해야 한다. | 채택 |
R1028 | 수신자에 의해 ‘Fault’가 생성되었을 때, ‘Fault’가 생성되기 전 메시지의 처리 결과에 대한 롤백(rollback)이나 보정이 필요한 경우가 아니면 SOAP 메시지에 대한 추가적인 처리를 진행해서는 안 된다. | 채택 |
R1029 | 일반적으로 SOAP 메시지 처리결과로 인해 SOAP 응답의 전송이 일어나지만, ‘SOAP Fault’가 생성되는 경우 수신자는 반드시 응답 대신 ‘SOAP Fault’ 메시지를 전송해야 한다. | 채택 |
R1030 | 결함을 생성하는 수신자는 필요하다고 생각될 때, 실행 도중에 사용자에게 결함이 생성되었음을 통지해야 한다. | 채택 |
R1107 | 수신자는 반드시 <soap:Fault> 요소만을 포함하는 SOAP 메시지에 대해서만 ‘Fault’로 해석해야 한다. | 채택 |
R1000 | 메시지가 <soap:Fault> 요소를 포함하는 경우, 해당 요소는 절대로 'faultcode', 'faultstring', 'faultactor' 그리고 'detail'을 제외한 다른 하위 요소를 가져서는 안 된다. | 채택 |
R1001 | 메시지가 <soap:Fault> 요소를 포함하는 경우 하위 요소는 반드시 속성이 비한정적(unqualified)이어야 한다. | 채택 |
R1002 | 수신자는 반드시 <detail> 의 하위 요소로 나타나는 0을 포함하여 하나 이상의 요소를 가진 결함 메시지를 수용해야 한다. 이러한 하위 요소는 속성이 한정적(qualified) 혹은 비한정적 일 수 있다. | 채택 |
R1003 | 수신자는 반드시 ‘detail’ 요소에 나타나는 0을 포함하여 하나 이상의 한정적 또는 비한정적 속성을 가진 결함 메시지를 수용해야 한다. 한정적 속성의 네임스페이스는 “http://schemas.xmlsoap.org/soap/envelope/” 외에는 어떤 것이든 가능하다. | 채택 |
R1016 | 수신자는 반드시 <faultstring> 요소의 ‘xml:lang’ 속성을 가지는 결함 메시지를 수용해야 한다. | 채택 |
R1004 | 메시지가 <faultcode> 요소를 포함할 경우, 요소의 콘텐츠는 SOAP 1.1이나 네임스페이스 한정 결함 코드(qualified fault code)에서 정의된 결함코드여야 한다. | 채택 |
R1031 | 메시지가 <faultcode> 요소를 가지는 경우 요소의 콘텐츠에서 ‘Fault’의 의미를 개선하기 위해 SOAP 1.1 ‘점(dot)’ 표기법을 사용해서는 안 된다. | 채택 |
R1140 | 메시지는 HTTP/1.1을 이용해 전송되어야 한다. | 채택 |
R1141 | 메시지는 반드시 HTTP/1.1이나 HTTP/1.0 중 하나를 사용해 전송되어야 한다. | 채택됨. HTTP/1.1 지원을 통해 HTTP/1.0 지원을 내포한다 |
R1132 | HTTP 요청 메시지는 반드시 HTTP POST 방법을 사용해야 한다. | 채택 |
R1108 | 메시지는 절대로 HTTP 확장 프레임워크를 사용해서는 안 된다. | 채택 |
R1109 | HTTP 요청 메시지에서 ‘SOAPAction’ HTTP 헤더 필드의 값은 반드시 따옴 문자열(quoted string)이어야 한다. | 채택 |
R1119 | ‘SOAPAction’ HTTP 헤더 필드의 값이 따옴 문자열이 아닌 경우 수신자는 ‘Fault’로 응답할 수 있다. | 채택 |
R1127 | 수신자는 메시지를 정확히 처리하기 위해서는 절대로 ‘SOAPAction HTTP’ 헤더의 값에 의존해서는 안 된다. | 채택 |
R1124 | 요청의 결과가 성공적임을 나타내는 응답에서 인스턴스는 반드시 ‘2xxHTTP’ 상태 코드를 사용해야 한다. | 채택 |
R1111 | 인스턴스는 SOAP 결함이 아닌 SOAP 메시지를 포함하는 응답에 대해 ‘200 OK’ HTTP 상태 코드를 사용해야 한다. | 채택 |
R1112 | SOAP 메시지를 포함하지는 않지만 요청에 대한 HTTP 결과가 성공적임을 나타내는 응답에 대해서 인스턴스는 ‘200 OK’ 또는 ‘202 Accepted’ R1130 HTTP 상태 코드를 사용해야 한다. | 채택 |
R1130 | 요청을 다른 종단에 보낼 때 인스턴스는 반드시 HTTP 상태코드 ‘307 Temporary Redirect’를 사용해야 한다. | 채택 |
R1131 | 소비자(consumer)는 응답에서 ‘307 Temporary Redirect’ HTTP 상태코드를 보면 요청을 자동적으로 다른 곳으로 전달할 수 있다. | 채택 |
R1125 | 요청의 포맷에 문제가 있음을 나타내는 응답에 대해서 인스턴스는 반드시 ‘4xxHTTP’ 상태 코드를 사용해야 한다. | 채택 |
R1113 | 요청 메시지가 잘못 생성된 HTTP 요청이거나, 적합하지 않은(not well-formed) XML인 경우에 인스턴스는 ‘400 Bad Request’ HTTP 상태코드를 사용해야 한다. | 채택 |
R1114 | 요청 방법이 ‘POST’가 아닌 경우에 인스턴스는 ‘405 Method not Allowed’ HTTP 상태 코드를 사용해야 한다. | 채택 |
R1115 | 콘텐츠 유형 HTTP 요청 헤더가 입력 메시지의 바인딩에 지정된 값과 일치하는 값을 가지지 않는 경우에 인스턴스는 ‘415 Unsupported Media Type’ HTTP 상태코드를 사용해야 한다. | 채택 |
R1126 | 응답 메시지가 ‘SOAP Fault’인 경우에 인스턴스는 반드시 ‘500 Internal Server Error’ HTTP 상태코드를 사용해야 한다. | 채택 |
R1120 | 인스턴스는 HTTP 상태 매커니즘(‘쿠키’)를 사용할 수 있다. | 채택되지 않음. ‘쿠키’는 사용하지 않는다 |
R1122 | 쿠키를 사용하는 인스턴스는 RFC2965에 적합해야 한다. | 채택되지 않음. ‘쿠키’는 사용하지 않는다 |
R1121 | 인스턴스는 올바르게 기능하기 위해서 쿠키에 대한 소비자 지원을 요청해서는 안 된다. | 채택되지 않음. ‘쿠키’는 사용하지 않는다 |
R1123 | 쿠키의 값은 반드시 소비자가 알기 힘든(opaque)것이어야 한다 | 채택되지 않음. ‘쿠키’는 사용하지 않는다 |
서비스 디스크립션(Service Description) | ||
R0001 | 인스턴스는 반드시 WSDL 1.1 서비스 디스크립션, UDDI 바인딩 템플릿, 또는 이 두 가지 모두에 의해 설명되어야 한다. | 인스턴스는 WSDL 1.1 서비스 디스크립션에 의해 설명되어야 한다. |
R2028 | WSDL 네임스페이스를 사용하는 디스크립션은 “http://schemas.xmlsoap.org/wsdl/2003-02-11.xsd”에서 발견되는 XML 스키마에 의해 반드시 유효해야 한다. | 채택됨. WS-I 프로파일에 사용된 접두어는 변경 가능하다. |
R2029 | WSDL SOAP 바인딩 네임스페이스를 사용하는 디스크립션은 ”http://schemas.xmlsoap.org/wsdl/soap/2003-02-11.xsd”에서 발견되는 XML 스키마에 의해 반드시 유효해야 한다. | 채택됨. WS-I 프로파일에 사용된 접두어는 변경 가능하다. |
R2001 | 디스크립션은 다른 WSDL 디스크립션을 임포트하기 위해서 반드시 WSDL ‘import’ 명령문만을 사용해야 한다. | 채택됨. 본 방법은 추상 정의 파일을 특정 서비스 파일에 임포트하기 위해 사용된다. |
R2803 | 디스크립션에서 ‘wsdl:import’의 네임스페이스 속성은 절대로 상대 URI여서는 안 된다. | 채택 |
R2002 | XML 스키마 정의를 임포트하기 위해서, 디스크립션은 반드시 XML 스키마 ‘import’ 명령문을 사용해야 한다. | 채택됨. 이 방법은 XSD 디스크립션을 임포트하기 위해 사용된다. |
R2003 | 디스크립션은 반드시 유형 섹션에서 <xs:schema> 요소 내에서만 XML 스키마 ‘import’ 명령문을 사용해야 한다. | 채택 |
R2004 | 디스크립션은 “http://www.w3.org/2001/XMLSchema” 네임스페이스에서 최상위 요소가 ‘스키마’가 아닌 문서에서 스키마를 임포트하기 위해서 XML 스키마 ‘import’ 명령문을 절대로 사용해서는 안 된다. | 채택 |
R2009 | 디스크립션에 의해 직접, 또는 간접적으로 입력된 XML 스키마는 유니코드의 BOM (Byte Order Mark)을 포함할 수 있다. | 채택 |
R2010 | 디스크립션에 의해 직접 또는 간접적으로 입력된 XML 스키마는 반드시 UTF-8 또는 UTF-16 인코딩을 사용해야 한다. | 채택 |
R2011 | 디스크립션에 의해 직접 또는 간접적으로 입력된 XML 스키마는 반드시 XML W3C 권고안의 1.0버전을 사용해야 한다. | 채택 |
R2007 | 디스크립션은 반드시 <wsdl:import> 요소의 ‘non-empty location’ 속성을 상술해야 한다. | 채택됨. ‘location’은 http://www.imsglobal.org/services/의 URL 루트에 기반한다 |
R2008 | 디스크립션에서 <wsdl: import> 요소의 ‘location’ 속성 값은 힌트로 다루어야 한다. | 채택 |
R2022 | <wsdl:import> 요소가 디스크립션에서 나타나는 경우, <wsdl:documentation>을 제외한 WSDL 네임스페이스의 다른 모든 요소들보다 상위에 있어야 한다. | 채택 |
R2023 | <wsdl:types> 요소가 디스크립션에서 나타나는 경우, <wsdl:documentation>과 <wsdl:import>를 제외한 다른 모든 요소보다 상위에 있어야 한다. | 채택 |
R4004 | 디스크립션은 XML W3C 권고안의 1.0버전을 반드시 사용해야 한다. | 채택 |
R4005 | 디스크립션은 네임스페이스 선언 “xmlns:xml=http://www.w3.org/XML/1998/namespace”를 포함해서는 안 된다. | 채택 |
R4002 | 디스크립션은 유니코드의 BOM (Byte Order Mark)을 포함할 수 있다. | 채택 |
R4003 | 디스크립션은 반드시 UTF-8이나 UTF-16 인코딩을 사용해야 한다. | 채택 |
R2005 | 임포트되는 디스크립션의 <wsdl:definitions> 요소의 ‘targetNamespace’ 속성은 반드시 탑재하는 디스크립션의 <wsdl:import> 요소의 네임스페이스 속성과 같은 값을 가져야 한다. | 채택 |
R2030 | 디스크립션에서 <wsdl:documentation> 요소는 WSDL 1.1 표준에서 지칭된 요소 외에도 <wsdl:import>, <wsdl:part>, <wsdl:definitions>의 첫 번째 자식 요소로 존재해야 한다. | 채택 |
R2025 | WSDL 확장을 포함하는 디스크립션은 WSDL 확장을 프로파일의 다른 요건들을 부인하기 위해 절대로 사용해서는 안 된다. | 채택 |
R2026 | 디스크립션은 프로파일에 대한 적합성을 주장하는 어떤 WSDL 구조체(<wsdl:binding>, <wsdl:portType>, <wsdl:message>, <wsdl:types> 또는 <wsdl:import>)에서든 ‘참(true)’의 ‘wsdl:required’ 속성 값을 가지는 확장 요소를 포함해서는 안 된다. | 채택 |
R2027 | 디스크립션의 WSDL 네임스페이스에서 요소를 처리하는 동안 소비자가 WSDL 확장 요소를 자식 요소 중에서 발견하였는데 해당 요소가 ‘참’의 Boolean 값을 가진 <wsdl: required> 속성을 갖고 소비자가 이해하거나 처리할 수 없는 경우, 소비자는 반드시 WSDL 네임스페이스에서 해당 요소의 처리에 실패해야 한다. | 채택 |
R2101 | 디스크립션은 참조하는 WSDL 문서에서 임포트되거나 정의되지 않은 네임스페이스의 요소에 대한 ‘QName’ 참조를 절대로 사용해서는 안 된다. | 채택 |
R2102 | 디스크립션에서 스키마 구성요소에 대한 ‘QName’ 참조는 반드시 <xs:schema> 요소의 ‘targetNamespace’ 속성에서 정의된 네임스페이스, 또는 <xs:schema> 요소 내의 <xs:import> 요소의 네임스페이스 속성에 정의된 네임스페이스를 사용해야 한다. | 채택 |
R2105 | 디스크립션의 <wsdl:types> 요소에 포함된 모든 <xs:schema> 요소는 <xs:schema> 요소가 <xs:import> 그리고/또는 <xs:annotation>만을 유일한 자식요소로 가지고 있는 경우를 제외하고는 반드시 유효하며 널이 아닌(non-null) 값을 가진 ‘targetNamespace’ 속성을 가져야 한다. | 채택 |
R2110 | 디스크립션에서 배열 선언은 절대로 ‘soapenc:Array’ 유형을 확장하거나 제한해서는 안 된다. | 채택 |
R2111 | 디스크립션에서 배열 선언은 절대로 유형선언의 ‘wsdl:arrayType’ 속성을 사용해서는 안 된다. | 채택 |
R2112 | 디스크립션에서 배열선언 래퍼(wrapper) 요소는 ‘ArrayOfXXX’ 규칙을 사용해서 이름지어서는 안 된다. | 채택 |
R2113 | 직렬화된 배열을 포함하는 메시지는 ‘soapenc:arrayType’ 속성을 절대로 포함해서는 안 된다. | 채택 |
R2114 | 디스크립션에서 WSDL 정의의 목표 네임스페이스와 스키마 정의의 목표 네임스페이스는 동일할 수 있다. | 채택 |
R2201 | 디스크립션에서 ‘document-literal’ 바인딩은 파트 속성이 설명된 경우 각 <soapbind:body> 요소에서 반드시 파트속성에 대해 최대 하나의 파트가 게재되어야 한다. | 채택 |
R2209 | 디스크립션에서 <wsdl:binding>는 <wsdl:portType>에서 <wsdl:message>의 <wsdl:part>를 <soapbind:body>, <soapbind:header>, <soapbind:fault> 또는 <soapbind:headerfault> 중 참조 대상에 바인딩해야 한다. | 채택 |
R2210 | 디스크립션의 ‘document-literal’ 바인딩이 <soapbind:body> 요소에서 파트속성을 설명하지 않는 경우, 해당 추상 <wsdl:message>는 반드시 0 또는 하나 이상의 <wsdl:parts>를 정의해야 한다. | 채택됨. 모든 메시지는 SOAP 메시지 바디에 대해 하나의 <wsdl:part>를 가져야 한다. |
R2202 | 디스크립션의 <wsdl:binding>는 0개의 파트가 <soap:Body>를 구성함을 명시하는 <soapbind:body> 요소를 포함할 수 있다. | 모든 메시지는 <soap:Body>에 대해 하나의 파트를 가진다. |
R2203 | 디스크립션에서 ‘rpc-literal’ 바인딩은 반드시 <soapbind:body> 요소에서 유형속성을 이용해 정의된 <wsdl:part> 요소만을 참조해야 한다. | 채택되지 않음. ‘'rpc-literal' 바인딩은 지원되지 않는다. |
R2211 | ‘rpc-literal’ 바인딩으로 디스크립션된 메시지는 값이 ‘1’ 또는 ‘참’인 ‘xsi:nil’ 속성을 파트 접근자(part accessors)에서는 절대로 가질 수 없다. | 채택되지 않음. ‘'rpc-literal' 바인딩은 지원되지 않는다. |
R2207 | 디스크립션에서 <wsdl:message>는 요소 속성을 사용하는 <wsdl:parts>이 ‘rpc-literal’ 바인딩의 <soapbind:body>에 의해 참조되지 않는다는 조건 하에 <wsdl:parts>을 포함할 수 있다. | 채택되지 않음. ‘'rpc-literal' 바인딩은 지원되지 않는다. |
R2204 | 디스크립션에서 ‘document-literal’ 바인딩은 각 <soapbind:body> 요소에서 반드시 요소 속성을 이용해 정의된 <wsdl:part> 요소만을 참조해야 한다. | 채택 |
R2208 | 디스크립션의 바인딩은 <soapbind:body> 요소에 의해 참조되는 같은 <wsdl:message>의 <wsdl:parts>를 참조하는 <soapbind:header> 요소를 포함할 수 있다. | 채택 |
R2212 | 엔벨로프는 반드시 자신의 해당 <soapbind:body> 요소에 바인딩된 각 <wsdl:parts> 요소에 대해 정확히 하나의 파트 접근자를 반드시 포함해야 한다. | 채택 |
R2213 | ‘Doc-literal’ 디스크립션에서 ‘soapbind:body’의 파트속성의 값이 빈 문자열인 경우 해당 엔벨로프는 <soap:Body> 요소에서 절대로 요소 콘텐츠를 가지고 있어서는 안 된다. | 'soapbind:body'의 파트속성의 값은 빈 문자열이어서는 안 된다. |
R2214 | ‘rpc-literal’ 디스크립션에서 ‘soapbind:body’의 파트속성 값이 빈 문자열인 경우, 해당 엔벨로프는 파트 접근자 요소를 절대로 가지고 있어서는 안 된다. | 채택되지 않음. ‘'rpc-literal' 바인딩은 지원되지 않는다. |
R2205 | 디스크립션에서 <wsdl:binding>는 자신의 <soapbind:header>, <soapbind:headerfault> 그리고 <soapbind:fault> 요소에서 요소 속성을 이용해 정의된 <wsdl:part> 요소만 반드시 참조해야 한다. | 채택 |
R2206 | 디스크립션에서 요소 속성을 사용하는 <wsdl:part>를 포함하는 <wsdl:message>는 해당 속성에서 반드시 전역적 요소 선언을 참조해야 한다. | 채택 |
R2301 | 메시지의 <soap:body> 요소의 순서는 이를 설명하는 <wsdl:message> 내에서의 <wsdl:parts> 요소 순서와 반드시 같아야 한다. | 채택 |
R2302 | 디스크립션은 반환값과 메소드 서명(signature)을 코드 생성자에게 힌트로 제공하기 위해 <wsdl:operation> 요소의 ‘parameterOrder’ 속성을 사용할 수 있다. | 채택 |
R2303 | 디스크립션은 <wsdl:portType> 정의에서 청구-응답(Solicit-Response)과 통지(Notification) 형식 연산을 절대로 사용해서는 안 된다. | 채택 |
R2304 | 디스크립션의 <wsdl:portType>은 이름 속성에 대해 고유의 값을 가지는 연산을 반드시 가져야 한다. | 채택 |
R2305 | 디스크립션의 <wsdl:portType>는 ‘parameterOrder’ 속성이 존재한다면, 출력 메시지에서 최대 하나의 <wsdl:part>를 생략하도록 구성되어야 한다. | 채택 |
R2306 | 디스크립션의 <wsdl:message>는 동일한 <wsdl:part>에서 절대로 유형과 요소 속성을 둘 다 상술해서는 안 된다. | 채택 |
R2401 | 디스크립션의 <wsdl:binding> 요소는 반드시 WSDL 1.1의 3장에 정의된 WSDL SOAP 바인딩을 사용해야 한다. | 채택 |
R2701 | 디스크립션에서 <wsdl:binding> 요소는 반드시 <soapbind:binding> 자식 요소가 전송 속성을 설명하도록 구성되어야 한다. | 채택 |
R2702 | 디스크립션의 <wsdl:binding> 요소는 반드시 SOAP바인딩을 가진 HTTP 전송 프로토콜을 명시해야 한다. 즉 <wsdl:binding> 요소의 <soapbind:binding> 자식은 반드시 ”http://schemas.xmlsoap.org/soap/http”의 값을 가져야 한다. | 채택 |
R2705 | 디스크립션의 <wsdl:binding>는 반드시 ‘rpc-literal’ 바인딩이나 ‘document-literal’ 바인딩을 가져야 한다. | 채택됨. 바인딩은 언제나 'document-literal'을 기반으로 한다. |
R2706 | 디스크립션의 <wsdl:binding>은 <soapbind:body>, <soapbind:fault>, <soapbind:header> 그리고 <soapbind:headerfault> 요소에서의 사용속성에서 ‘literal’의 값을 반드시 사용해야 한다. | 채택 |
R2709 | 디스크립션에서 <wsdl:portType>는 같은 WSDL 문서나 다른 WSDL 문서에서 자신을 참조하는 0 또는 하나 이상의 <wsdl:binding>를 가질 수 있다. | <wsdl:portType> 정의의 결과는 항상 <wsdl:binding>정의가 된다. |
R2710 | 디스크립션에서 <wsdl:binding>의 연산은 반드시 각기 다른 ‘wire signature’를 만들어 내야 한다. | 채택 |
R2711 | 디스크립션은 <soapbind:address> 요소의 위치속성에 대해서 같은 값을 갖는 하나 이상의 <wsdl:port>를 가져서는 안 된다. | 채택 |
R2712 | ‘document-literal’ 바인딩은 반드시 자식 요소가 관련 <wsdl:message> 파트에 의해 참조되는 전역적 요소 선언의 인스턴스인 <soap:Body>를 가진 메시지로 와이어에 표현되어야 한다. | 채택 |
R2714 | 일방향 연산에서 인스턴스는 절대로 SOAP 엔벨로프를 포함하는 HTTP 응답에 회신해서는 안 된다. 특히 HTTP 응답 엔터티-바디(entity-body)는 비어 있어야 한다. | 채택됨. 현재 모든 서비스는 요청/응답을 사용한다. |
R2750 | 소비자는 일방향 연산으로부터의 응답에 포함된 SOAP 응답을 반드시 무시해야 한다. | 채택됨. 현재 모든 서비스는 요청/응답을 사용한다. |
R2727 | 일방향 연산의 경우, 소비자는 성공적인 HTTP 응답 상태코드(2xx 등)를 메시지가 유효하거나 수신자가 이를 처리한다는 의미로 절대로 해석해서는 안 된다. | 채택됨. 현재 모든 서비스는 요청/응답을 사용한다. |
R2716 | 디스크립션의 ‘document-literal’ 바인딩은 <soapbind:body>, <soapbind:header>, <soapbind:headerfault> 그리고 <soapbind:fault> 요소에 명시된 네임스페이스 속성을 절대로 가져서는 안 된다. | 채택 |
R2717 | 디스크립션의 ‘rpc-literal’ 바인딩은 <soapbind:body> 요소에 절대 URI의 값을 가지는 네임스페이스 속성을 반드시 명시해야 한다. | 채택되지 않음 ‘rpc – literal’ 바인딩은 지원되지 않는다. |
R2726 | 디스크립션의 ‘rpc-literal’ 바인딩은 <soapbind:header>, <soapbind:headerfault> 그리고 <soapbind:fault> 요소에 명시된 네임스페이스 속성을 절대로 가져서는 안 된다. | 채택되지 않음 ‘rpc – literal’ 바인딩은 지원되지 않는다. |
R2718 | 디스크립션의 <wsdl:binding>은 자신이 참조하는 <wsdl:portType>과 같은 <wsdl:operations>를 반드시 가져야 한다. | 채택 |
R2719 | 디스크립션의 <wsdl:binding>는 알려진 헤더 결함이 없다면 <soapbind:headerfault> 요소를 하나도 가지지 않아도 된다. | 채택됨. 현재 IMS는 헤더 결함을 정의하지 않는다. |
R2740 | 디스크립션의 <wsdl:binding>는 알려진 각 결함을 설명하는 <soapbind:fault>를 포함해야 한다. | 알려진 비즈니스 거래 결함은 SOAP 헤더에 포함된 IMS 상태정보 객체에 보고된다. |
R2741 | 디스크립션의 <wsdl:binding>는 알려진 각 헤더결함을 설명하는 ‘soapbind:headerfault’를 포함해야 한다. | 채택됨. 현재 IMS는 헤더 결함을 정의하지 않는다. |
R2742 | 메시지는 관련 WSDL 디스크립션의 <wsdl:fault> 요소에 설명되지 않은 SOAP 결함 내의 결함 상세 입력을 포함해야 한다. | 알려진 비즈니스 거래 결함은 SOAP 헤더에 포함된 IMS 상태정보 객체에 보고된다. |
R2743 | 메시지는 관련 WSDL 디스크립션의 <wsdl:headerfault> 요소에 의해서 설명되지 않은 SOAP 헤더 블록의 헤더 처리와 관련한 결함의 세부사항을 포함할 수 있다. | 채택됨. 현재 IMS는 헤더 결함을 정의하지 않는다. |
R2720 | 디스크립션의 <wsdl:binding>는 포함된 모든 <soapbind:header>과 <wsdl:headerfault> 요소에 반드시 ‘NMTOKEN’의 스키마 유형을 가진 속성 이름의 파트를 사용해야 한다. | 채택 |
R2749 | 디스크립션의 <wsdl:binding>는 <soapbind:header>과 <soapbind:headerfault> 요소에 속성 이름의 파트를 절대로 사용해서는 안 된다. | 채택 |
R2721 | 디스크립션의 <wsdl:binding>는 모든 <soapbind:fault> 요소에 이름 속성을 반드시 명시해야 한다. | 알려진 비즈니스 거래 결함은 SOAP 헤더에 포함된 IMS 상태정보 객체에 보고된다. |
R2754 | 디스크립션에서 <soapbind:fault> 요소의 이름속성 값은 반드시 부모 <wsdl:fault> 요소의 이름 속성의 값과 일치해야 한다. | 알려진 비즈니스 거래 결함은 SOAP 헤더에 포함된 IMS 상태정보 객체에 보고된다. |
R2722 | 디스크립션의 <wsdl:binding>는 포함된 <soapbind:fault>의 사용 속성을 명시한다. | 알려진 비즈니스 거래 결함은 SOAP 헤더에 포함된 IMS 상태정보 객체에 보고된다. |
R2723 | 디스크립션의 <wsdl:binding>에 포함된 <soapbind:fault> 요소의 사용 속성이 존재한다면, 그 값은 반드시 ‘literal’이어야 한다. | 알려진 비즈니스 거래 결함은 SOAP 헤더에 포함된 IMS 상태정보 객체에 보고된다. |
R2707 | <soapbind:body>, <soapbind:fault>, <soapbind:header> 또는 <soapbind:headerfault> 요소 중에서 사용 속성을 명시하지 않은 요소를 하나 이상 포함하는 디스크립션의 <wsdl:binding>은 반드시 ‘literal’값이 명시된 것으로 해석해야 한다. | 채택 |
R2724 | 인스턴스가 WSDL 디스크립션과 일치하지 않는 메시지를 수신하면, ‘MustUnderstand’나 ‘VersionMismatch’ 결함이 생성되지 않는 이상 ‘Client’의 결함코드를 가진 <soap:Fault>를 생성해야 한다. | 채택 |
R2725 | 인스턴스가 WSDL 디스크립션과 일치하지 않는 메시지를 수신하는 경우, 반드시 ‘VersionMismatch’, ‘MustUnderstand’ 그리고 ‘Client’ 결함 조건을 순서대로 확인해야 한다. | 채택 |
R2729 | ‘rpc-literal’ 바인딩으로 설명된 메시지 중 응답 메시지인 경우 반드시 문자열 ‘응답’ 접미어를 가진 <wsdl:operation>의 이름과 같은 래퍼 요소를 반드시 가져야 한다. | 채택되지 않음 ‘rpc – literal’ 바인딩은 지원되지 않는다. |
R2735 | ‘rpc-literal’ 바인딩으로 설명된 메시지는 파라미터와 반환값에 대한 파트접근자를 반드시 ‘no namespace’에 위치하도록 해야 한다. | 채택되지 않음 ‘rpc – literal’ 바인딩은 지원되지 않는다. |
R2755 | ‘rpc-literal’ 바인딩으로 설명된 메시지의 파트접근자는 반드시 관련된 ‘wsdl:part’ 요소의 이름속성과 같은 값의 로컬이름을 가져야 한다. | 채택되지 않음 ‘rpc – literal’ 바인딩은 지원되지 않는다. |
R2737 | ‘rpc-literal’ 바인딩으로 설명된 메시지는 파라미터에 대한 파트 접근자의 자식과, 유형이 정의된 'targetNamespace'를 가진 반환값에 대하여 네임스페이스를 한정해야 한다. | 채택되지 않음 ‘rpc – literal’ 바인딩은 지원되지 않는다. |
R2738 | 메시지는 <wsdl:input>에 명시된 모든 <soapbind:headers> 또는 이를 설명하는 <wsdl:binding>의<wsdl:operation>의 <wsdl:output>를 반드시 포함해아 한다. | 채택 |
R2739 | 메시지는 SOAP 헤더 블록을 설명하는 <wsdl:binding>에 기술되지 않은 SOAP 헤더 블록을 포함하는 메시지를 포함할 수 있다. | 채택 |
R2753 | 적절한 <wsdl:binding>에 설명되지 않은 SOAP 헤더 블록을 포함하는 메시지는 ‘1’에 세팅되어 있는 SOAP 헤더 블록에 ‘mustUnderstand’ 속성을 가질 수 있다. | 채택 |
R2751 | 디스크립션의 <soapbind:binding> 섹션의 <soapbind:header>요소의 순서는 메시지 내의 SOAP 헤더 블록의 순서에 독립적이라고 간주해야 한다. | 채택 |
R2752 | 메시지는 관련 디스크립션의 <soapbind:binding>의 적절한 자식의 각 <soapbind:header> 요소에 대한 각 SOAP 헤더 블록의 하나 이상의 인스턴스를 포함할 수 있다. | 채택 |
R2744 | HTTP 요청 메시지는 해당 WSDL 디스크립션에 존재하는 <soapbind:operation>의 'soapAction' 속성의 값과 동등한 인용값을 가진 'SOAPAction' HTTP 헤더 필드를 반드시 포함해야 한다. | 채택 |
R2745 | HTTP 요청 메시지는 관련 WSDL 디스크립션에서 <soapbind:operation>의 'soapAction'이 존재하거나, 빈 문자열을 그 값으로 하면서 존재할 경우에 인용된 빈 문자열 값을 가진 'SOAPAction' HTTP 헤더 필드를 반드시 포함해야 한다. | 채택 |
R2747 | 소비자는 확장 요소에 <wsdl:required> 속성의 존재 또는 부재 여부와 관계 없이, 그리고 <wsdl:required> 속성의 값과 관계 없이 모든 WSDL 1.1 SOAP 바인딩 확장 요소를 이해하고 처리해야 한다. | 채택 |
R2748 | 소비자는 ‘거짓(false)’의 값을 가진 'soapbind' 확장 요소에서 'wsdl:required' 속성이 존재하면, 확장 요소가 WSDL 디스크립션에서 생성된 메시지에서 선택사항이라고 절대로 해석해서는 안 된다. | 채택 |
R2800 | 디스크립션은 XML 스키마 1.0의 어떠한 구조체라도 사용할 수 있다. | 채택됨. 추상 유형에 대한 요소 양식이 반드시 사용되어야 한다. 요소에 대한 전역적 정의가 반드시 사용되어야 한다. |
R2801 | 디스크립션은 반드시 사용자 정의 데이터 유형과 구조에 대한 기준으로 XML 스키마 1.0 권고안을 반드시 사용해야 한다. | 채택 |
서비스 발행 및 발견(Service Publication & Discovery) | ||
R3100 | 적합한 인스턴스를 표현하는 ‘uddi:bindingTemplate’유형의 ‘REGDATA’는 반드시 <uddi:accessPoint> 요소를 포함해야 한다. | UDDI는 IMS 웹서비스 베이스 프로파일의 일부가 아니다. |
R3002 | 적합한 웹서비스 유형을 표현하는 ‘uddi:tModel’ 유형의 ‘REGDATA’는 반드시 WSDL를 디스크립션 언어로 사용해야 한다. | UDDI는 IMS 웹서비스 베이스 프로파일의 일부가 아니다. |
R3003 | 적합한 웹서비스 유형을 표현하는 ‘uddi:tModel’ 유형의 ‘REGDATA’는 반드시 ‘uddi:types’ 분류체계와 ‘wsdlSpec’ 분류체계를 이용하여 분류되어야 한다. | UDDI는 IMS 웹서비스 베이스 프로파일의 일부가 아니다. |
R3010 | 적합한 웹서비스 유형을 표현하는 ‘uddi:tModel’ 유형의 ‘REGDATA’는 반드시 UDDI 저장소에서 WSDL 사용에 대한 UDDI 활용사례의 1.08버전을 충족해야 한다. | UDDI는 IMS 웹서비스 베이스 프로파일의 일부가 아니다. |
R3011 | ‘uddi:tModel’ 유형의 ‘REGDATA’에 의해 참조되는 ‘wsdl:binding’은 반드시 프로파일에 적합해야 한다. | UDDI는 IMS 웹서비스 베이스 프로파일의 일부가 아니다. |
보안(Security. IMS 웹서비스 보안 프로파일은 베이스 프로파일의 보안 부문에서 더 완전한 명세를 위해 사용되어야 한다) | ||
R5000 | 인스턴스는 HTTPS의 사용을 필요로 할 수 있다. | 베이스 프로파일의 보안 형식을 위해 채택 되었다. |
R5001 | 인스턴스가 HTTPS의 사용을 필요로 한다면, <wsdl:port> 설명 내의 <soapbind:address> 요소에 대한 ’location’ 속성은 반드시 스키마가 ‘https’인 URI이어야 한다. 그렇지 않은 경우 스키마가 ‘http’인 URI이어야 한다. | 베이스 프로파일의 보안 형식을 위해 채택 되었다. |
R5001 | 인스턴스는 상호인증된 HTTPS의 사용을 필요로 할 수 있다. | 베이스 프로파일의 보안 형식을 위해 채택 되었다. |
규칙 |
내용 |
IMS 웹서비스와의연관성 |
메시지 직렬화(Message Serialization) | ||
R9700 | 메시지는 반드시 엔벨로프를 HTTP 개체-바디의 단독 페이로드로 직렬화해야 한다. | 채택 |
R9701 | 메시지는 반드시 엔벨로프를 XML 1.0으로 직렬화해야 한다. | 채택 |
R9702 | 메시지는 반드시 ‘Content-Type’ HTTP 헤더 필드를 가져야 한다. | 채택 |
R9703 | 메시지의 ‘Content-Type’ HTTP헤더 필드는 반드시 미디어 유형이 ‘text/xml’인 필드값을 가져야 한다. | 채택 |
R9704 | 엔벨로프는 네임스페이스 선언 xmlns:xml=”http://www.w3.org/XML/1998/namespace” 를 포함해서는 안 된다. | 채택 |
R4001 | 수신자는 반드시 유니코드의 BOM (Byte Order Mark)을 포함하는 엔벨로프를 받아들여야 한다. | 채택 |
R1010 | 수신자는 ‘XML Declaration’을 포함하는 엔벨로프들을 가진 메시지를 반드시 받아들여야 한다. | 채택 |
R1012 | 메시지는 반드시 UTF-8이나 UTF-16 문자 인코딩을 이용해 엔벨로프를 직렬화해야 한다. | 채택 |
R1018 | 메시지의 ‘Content-Type’ HTTP 헤더 필드 값은 반드시 ‘charset’ 파라미터를 이용해 정확한 문자 인코딩을 나타내야 한다. | 채택 |
R1019 | 수신자는 메시지에서 엔벨로프의 XML 선언의 인코딩 의사 속성(pseudo-attribute)을 반드시 무시해야 한다. | 채택 |
바인딩 | ||
R9802 | 디스크립션의 <wsdl:binding> 요소는 반드시 WSDL 1.1.버전 3장에 정의된 WSDL SOAP Binding 만을 사용해야 한다. | 채택 |
R9800 | 디스크립션에서 와이어의 메시지들이 프로파일에 부적합하도록 하는 WSDL 바인딩 확장 요소와 속성들은 절대로 사용해서는 안 된다. | 채택 |
R9801 | 디스크립션에서 WSDL MIME과 HTTP GET/POST 및 DIME 바인딩 확장은 SOAP 바인딩에서 절대로 나타나서는 안 된다. | 채택 |
R2209 | 디스크립션의 <wsdl:binding>는 참조하는 <wsdl:portType>에서 <wsdl:message>의 모든 <wsdl:part>를 <soapbind:body>, <soapbind:header>, <soapbind:fault> 또는 <soapbind:headerfault> 중 하나에 바인딩해야 한다. | 채택 |
그림 6.2 계층을 통한 추상 프레임워크 서비스 상호작용
그림 6.2는 상호운용성을 보장하기 위해 명시되어야 하는 다음의 두 가지 상호작용 행동이 있음을 보여준다.그림 7.1 동기식 요청/응답 메시지 구성
오류 없는 연산을 위한 메시지 구성은 다음과 같다.
중요도 |
CodeMajor |
|||
Success |
Processing |
Failure |
Unsupported |
|
Status | 요청이 성공적으로 이루어짐. | 타겟(target)에 의해 요청이 처리되고 있음. 즉, 요청이 타겟 통신 처리기에 의해 수신되어 확인됨. | 요청이 실패함. 관련 ‘CodeMinor’ 정보는 요청 실패에 대한 더 자세한 원인을 포함함. 관련된 비즈니스 표준은 반드시 이 코드의 집합을 정의해야 함. | 타겟은 요청된 연산을 지원하지 않음. |
Warning | 일부 요청이 성공적으로 완성됨. 즉, 부분적으로 저장된 데이터 구조가 송신됨. | 요청이 처리되고 있음(이는 타겟 통신 처리기에 의한 수신을 의미하지는 않음). 하지만 타겟에 의해 수신된 것으로 확인되지는 않음. | 허용되지 않음. | 허용되지 않음. |
Error | 허용되지 않음. | 직접 전송 통신 처리기에서 오류가 감지됨. 즉, 메시지는 엔드시스템을 떠나지 않음. | 요청이 실패했지만 로컬 통신 처리기에 의해서 보내짐. 자세한 실패 보고서가 포함될 수 있음. SOAP 결함 코드는 이 ‘CodeMajor/Severity’ 값을 이용해 보고됨(‘CodeMinor’ 객체에서 제공됨). | 타겟은 요청된 연산을 확인하지 않음. 즉, 알려지지 않은 서비스 확장임. |
추상프레임워크 | 추상프레임워크용어참조 |
어플리케이션서비스 | 추상프레임워크용어참조 |
비동기식통신메시징모델 | 각 단계가 개별적으로 확인되는 요청/응답 메시지 교환. 서비스 요청자는 요청 메시지를 게시하고 서비스 공급자의 승인을 기다린다. 서비스 요청자는 승인을 받는 즉시 통신 차단이 해제된다. 이후 서비스 공급자는 응답 메시지를 게시한다. 응답 메시지가 서비스 요청자에 의해 수신되면, 서비스 공급자에게 확인 승인이 보내진다. |
인증 | 추상프레임워크용어참조 |
권한부여 | 추상프레임워크용어참조 |
웹서비스를위한비즈니스프로세스실행언어 BPEL4WS | BPEL4WS - BPEL4WS(약어로 BPEL)는 웹서비스에 기반해 비즈니스 프로세스 행동을 상술하기 위한 표기법을 정의한다. 이 표기법은 웹서비스에 대한 비즈니스 프로세스 실행 언어라고 지칭된다. BPEL4WS는 웹서비스 인터페이스를 독점적으로 사용함으로써 기능들을 입력하고 출력한다. 비즈니스 프로세스는 두 가지 방법으로 설명될 수 있다. 실행가능한 비즈니스 프로세스 모델은 비즈니스 거래에서의 참여자의 실제 행동이다. 이에 반해 비즈니스 프로토콜은 프로토콜에 연관된 각 당사자들의 내부 행동을 공개하지 않으면서, 이들의 상호 가시적인 메시지 교환 행동을 설명하는 프로세스 설명을 사용한다. 비즈니스 프로토콜에 대한 이러한 프로세스 설명은 추상 프로세스로 지칭된다. BPEL4WS는 실행가능한 프로세스와 추상 프로세스 양쪽 모두의 행동에 대한 모델을 구성하도록 의도되었다. BPEL4WS는 비즈니스 프로세스와 비즈니스 트랜잭션 프로토콜의 정식 표준에 대해 언어를 제공한다. 이를 통해 BPEL4WS는 웹서비스 트랜잭션 모델을 확장하며 비즈니스 트랜잭션을 지원할 수 있도록 한다. BPEL4WS는 기업내, 그리고 기업간 자동화된 프로세스 통합의 확장을 더 용이하게 하는 상호운용가능한 통합 모델을 정의한다. |
공통서비스 | 추상프레임워크용어참조 |
IMS 바인딩자동생성툴킷 (I-BAT) | I-BAT는 UML (WSDSL과 XSD 바인딩 모두 지원됨)을 사용해 개발된 표준들에 대한 바인딩의 생성을 지원하기 위해서 사용되는 툴들의 집합이다. I-BAT는 IMS UML 프로파일의 사용을 지원하며, XSL을 사용해 UML 설명의 XMI를 관련 WSDL/XSD 바인딩으로 변환한다. |
IMS 웹서비스베이스프로파일 | IMS 웹서비스 베이스 프로파일은 웹서비스를 정의하기 위한 기본 구조를 제공한다. 일반 웹서비스 베이스 프로파일은 비독점 웹서비스 표준들과, 상호운용성을 증진하는 명시사항 및 보완사항으로 구성되었다. IMS 웹서비스 베이스 프로파일은 웹서비스 표준을 구현할 때 가장 흔히 경험하는 문제들을 다룬다. IMS 웹서비스 베이스 프로파일은 정확하게 이해되고, 광범위하게 구현되며 유용한 참조 표준들 내의 매커니즘들을 정의한다. IMS 웹서비스 베이스 프로파일은 다양한 소프트웨어와 협력업체 플랫폼에서 구현되는 웹 표준들에서 상호호환성을 증진한다. IMS 웹서비스 베이스 프로파일은 핵심 웹서비스 표준의 집합과 인지된 웹서비스 표준을 구현하는 데에서 흔히 경험하는 문제들에 초점을 맞춘다. IMS 웹서비스 베이스 프로파일은 WS-I 베이직 프로파일 1.1버전과 WS-I 심플 SOAP 바인딩 프로파일 1.0버전을 기반으로 한다. |
IMS 웹서비스어드레싱프로파일 | IMS 웹서비스 베이스 프로파일에 대한 확장 프로파일로써, 서비스가 어떻게 전송 매커니즘과는 독립적인 어드레싱 시스템으로 정의될 수 있는지를 정의한다. 이 프로파일은 W3C의 WS-어드레싱 작업을 기반으로 한다. |
IMS 웹서비스첨부프로파일 | IMS 웹서비스 베이스 프로파일에 대한 확장 프로파일로, 비XML 기반 데이터가 어떻게 비디오 파일, 이미지 파일 등 SOAP 메시지로 전달될 수 있는지를 정의한다. 이 프로파일은 W3C의 MTOM 작업을 기반으로 한다. |
IMS 웹서비스보안프로파일 | IMS 웹서비스 베이스 프로파일에 대한 확장 프로파일이며, 보안 정보가 SOAP 메시지 내에서 어떻게 전달되어야 하는지를 정의한다. 보안 아키텍처를 정의하지는 않으며, 대신 SOAP 메시지 내의 정보가 구현물에 의해 사용되는 보안 아키텍처를 지원하기 위해 어떻게 확장되는지를 정의한다. 그러므로 보안 프로파일은 여러가지 보안 아키텍처를 지원할 수 있다. 이 프로파일은 W3C의 WS-보안 작업을 기반으로 한다. |
메시지전송최적화매커니즘 | MTOM은 SOAP 메시지가 비XML 객체를 포함할 수 있도록 하는 W3C 메시지 첨부 접근법 중 하나이다. MTOM은 첨부를 가진 SOAP를 발전시킨 것이며 이 프로파일에서는 MTOM을 원래 SOAPwA 표준을 대체하기 위한 것으로 제시된다. |
폴드통신메시징모델(Polled Communications Messaging Model) | 요청/응답 메시지 교환으로, 응답 메시지는 서비스 요청자가 폴드 메시지를 보내는 경우에만 돌려보내진다. 서비스 요청자는 요청 메시지를 보내고 나서 서비스 공급자로부터의 확인을 기다린다. 서비스 요청자는 서비스 공급자의 확인을 받은 후에야 차단이 해제된다. 이후 서비스 요청자는 폴드 메시지를 발행한다. 서비스 공급자는 응답 메시지에 응답할 수도, 하지 않을 수도 있다. 서비스 요청자는 무제한으로 폴드 메시지를 보낼 수 있다. |
실증적상태전이 | 차세대 웹서비스는 현재 웹의 기본 아키텍처 모델인 REST (Representational State Transfer)로 지칭되는 아키텍처 스타일을 준수할 것으로 예상된다. REST는 우수하게 설계된 웹 어플리케이션이 어떻게 행동하는지에 대한 다음과 같은 이미지를 호출하는 것을 목적으로 한다. 사용자가 링크를 선택함으로써 어플리케이션에서 진행을 하는 웹페이지의 네트워크(실질적 상태기계)에서는 다음 페이지(어플리케이션의 다음 상태 표현)가 사용자에게로 전송되고 활용을 위해 변환된다. |
SOAP | SOAP는 XML 문서를 위한 메시징 프로토콜로, 분산 환경에서 동기간 구조화되고 유형화된 정보를 교환하는 데 사용될 수 있다. SOAP는 상태정보를 지니지 않은 일방적 메시지 교환 매커니즘이지만, 플리케이션은 이러한 일방향적인 교환을 기본 전송 프로토콜 그리고/또는 특정 어플리케이션 정보에 의해 제공되는 기능들과 조합함으로써 더 복잡한 거래 패턴(요청/응답, 요청/ 다중응답 등)을 생성할 수 있다. |
첨부를가진 SOAP | 첨부를 가진 SOAP(SWA)는 여러 메시지 페이로드(payloads)를 지원하기 위해 MIME바인딩을 제공하는 동시에 RPC가 XML에서 마샬링되고 언마샬링되는 규칙은 무시하면서 SOAP 1.1버전을 확장한다. SOAPwA는 단일 비즈니스(또는 대학) 내의 동기식 RPC인 경우보다, 두 통신 당사자가 같은 조직 내에 위치하지 않으며, 교환 패러다임이 인터넷에서 하나 이상의 비동기식 문서교환인 경우에 적합하다. |
동기식통신메시징모델 | 서비스 요청자와 서비스 제공자 사이의 단순 요청/응답 메시지 교환이다. 서비스 요청자는 요청 메시지를 게시하고 서비스 제공자로부터 응답 메시지를 기다린다. 서비스 요청자는 응답 메시지를 수신하기 전까지 차단된다. |
웹서비스아키텍처 | 웹서비스 아키텍처(WSA)는 웹서비스를 이해하기 위한 의미와 모델을 제공하고, 더 큰 웹서비스 프레임워크 내에서, 그리고 WSA 외의 다른 기술들에 포함될 수 있도록 하는 것을 목적으로 하는 표준문서이다. WSA의 목적은 웹서비스와 그 핵심 개념 그리고 관계의 정의를 통해 상호운용성을 증진하는 것을 목적으로 한다. WSA의 목적은 웹서비스가 어떻게 구현되는지를 설명하거나 웹서비스의 조합이나 구성에 제한을 두는 것이 아니다. WSA는 WSA의 핵심 개념과 관계를 다양한 관점에서 논의한다. |
WS-CDL (Web Services Choreography Description Language) | WS-CDL은 전역적인 관점에서 웹서비스 참여자들의 공통적이고 보완적인 관찰가능한 행동을 정의함으로써 웹서비스 참여자들간의 공통작업을 기술하는 XML 기반 언어이며, 순차적 메시지 교환은 공통의 비즈니스 목표를 달성하게 된다. 웹서비스 표준은 어플리케이션을 개발하고 호스팅하기 위한 이종의 컴퓨테이션 환경간의 통신을 가능하게 한다. e비즈니스 어플리케이션의 미래는 앞으로 조직의 신뢰 도메인 내, 또는 신뢰 도메인들간에 참여하는 서비스들의 장기간의 공통작업을 수행할 수 있는 능력을 필요로 하게 될 것이다. 웹서비스 구성 표준을 사용하는 목적은 호스팅 환경의 구현에 의해 사용되는 지원 플랫폼이나 프로그램 모델과 관계없이, 모든 웹서비스 참여자들의 유형 사이의 상호운용 가능한 동기간(peer-to-peer) 협력을 구성하는데 있다. |
웹서비스기술언어 | WSDL 문서는 서비스를 네트워크 종단, 또는 포트의 집합으로 정의한다. WSDL에서 종단과 메시지의 추상적인 정의는 구체적인 네트워크 구축 또는 데이터 포맷 바인딩에서 분리된다. 이는 추상 정의, 즉 교환되는 데이터의 추상적인 설명인 메시지와 연산의 추상적인 집합인 포트 유형의 재사용을 가능하게 한다. 특정 포트 유형에 대한 구체적 프로토콜과 데이터 포맷 표준은 재사용가능한 바인딩을 구성한다. 포트는 네트워크 주소를 재사용가능한 바인딩과 연계함으로써 정의되며 포트의 집합은 서비스를 정의한다. |
WS-어드레싱 | WS-어드레싱은 웹서비스와 메시지를 다루기 위한 전송중립적인 매커니즘을 제공한다. 특히, 이 표준은 웹서비스 종단을 식별하고 종단간 종단 식별 메시지를 확보하기 위해 XML 요소를 정의한다. 이 표준은 메시징 시스템이 종단 관리자, 방화벽, 그리고 게이트웨이 등의 처리 노드를 포함하는 네트워크를 통해 메시지 전송을 전송중립적인 방법으로 지원할 수 있도록 한다. |
WS-첨부 | WS-첨부는 SOAP 첨부의 추상적 모델을 정의하며, 이 모델을 기반으로 SOAP 메시지와 0 또는 하나 이상의 첨부를 캡슐화하는 매커니즘을 정의한다. SOAP 첨부들은 1차 SOAP 메시지와 첨부로 알려진 0 또는 하나 이상의 관련 모델들로 구성된 복합 문서구조의 개념을 이용해 설명된다. |
WS-I 베이직프로파일 | 웹서비스 상호운용성 조직에서 생성된 WS-I 베이스 프로파일은 비독점 웹서비스 표준들과, 이 표준들에 대한 상호운용성을 증진하는 명시사항과 보완사항들로 이루어진다. 이 프로파일은 XML 스키마 1.0버전, HTTP 1.1버전, WSDL 1.1버전, 그리고 UDDI 2.0버전의 사용을 권고한다. |
WS-정책 | 웹서비스 정책 프레임워크(WS-정책)는 웹서비스의 능력, 요건, 그리고 일반적인 특징들을 표현하는 데 사용되는 특정 웹서비스 메타데이터(정책이라고 불림)의 설명을 허용한다. WS-정책 표준은 언어를 나타내고 일반 메시지 사전조건을 설명하는 등 단순한 일반적 목적들에 대한 정책들을 정의한다. 또한 WS-정책을 보완하는 WS-보안 정책 표준은 보안요건에 대한 정책을 정의한다. |
WS-신뢰성 | WS-신뢰성의 목적은 비즈니스간 어플리케이션에서 웹서비스를 사용할 때 중요하게 다뤄지는 신뢰가능한 메시징 요건을 다루기 위함이다. SOAP/HTTP는 어플리케이션 수준에서 메시징 프로토콜의 신뢰성과 보안을 다루어야 할 경우 충분하지 않다. 보안은 웹서비스 표준의 개발에서 진척을 보이고 있지만, 신뢰성은 그렇지 않다. 이 표준은 현재의 웹서비스 표준에서 신뢰성을 정의하기 위한 제안을 한다. 이 표준은 SOAP, 그리고 ebXML 메시지 서비스 등의 전송 프로토콜과 메시징에서의 이전 작업들을 차용한다. 또한 이 표준은 이 작업들을 웹서비스에 제공하기 위한 적절한 보완사항들을 제안한다. |
WS-보안 | WS-보안은 신뢰성, 무결성, 부인봉쇄, 인증 및 권한 부여(authorization)에 대한 기존 보안기준을 사용해 보안정보를 SOAP 메시지로 통합하기 위한 표준방법을 정의한다. WS-보안은 SOAP 메시지의 보안정보를 표현하는 방법을 제공한다. WS-보안은 단순 사용자명, SAML, X.509 인증서와 Kerberos ticket 등의 보안토큰을 전달하는 방법, XML 서명을 이용해 SOAP 메시지를 전부 또는 일부 전자적으로 서명하는 매커니즘, XML 암호화를 이용해 SOAP 메시지를 부분적으로 암호화하는 매커니즘, 그리고 서명과 암호 헤더를 SOAP 메시지에 첨부하는 방법을 정의한다. |
WS-보안미니멀리스트프로파일 | WS-보안 미니멀리스트 프로파일은 웹서비스 보안의 하위집합을 설명한다. 자원 제한 플랫폼에 의해 수신된 메시지들이 효과적으로 처리될 수 있도록 핵심 표준에 제약을 가하는 SOAP 메시지 보안(WS-보안) 표준이다. WS-보안 표준은 SOAP 메시지를 확보하고, 메시지 통합성과 기밀성을 제공하고, SOAP 메시지를 통해 보안정보를 교환하는 융통성 있는 방법을 설명한다. WS-보안은 다양한 보안모델을 지원하기 위해 사용될 수 있다. WS-보안은 여러 보안토큰 포맷, 다중 신뢰 도메인, 다중 서명 포맷, 다중 암호화 기술과 종단간 메시지 콘텐츠 보안을 지원한다. WS-보안과 WS-보안 미니멀리스트 프로파일은 어플리케이션이 안전한 방법으로 SOAP 메시지를 교환하기 위한 프레임워크와 구문법을 제공한다. WS-보안 또는 WS-보안 미니멀리스트 프로파일을 사용하는 것은 구성된 시스템이 공격에 대비할 필요가 있음을 보여준다. IMS는 WS-보안 미니멀리스트 프로파일 권고사항들을 IMS 웹서비스 베이스 프로파일의 더 안전한 버전에서 사용할 것이다. |
WS-I 심플 SOAP 바인딩프로파일 1.0버전 | WS-I는 WS-I 베이직 프로파일 문서에서 메시징 특정 기술정보를 분리했다. WS-I 베이직 SOAP 바인딩 프로파일은 베이직 프로파일을 통해 SOAP 메시징의 사용을 설명한다. |
XML 스키마 | XML 스키마 정의(XSD)는 IMS의 초기 XML 바인딩 제어 문서 포맷이다(현재 이들 바인딩은 XML 스키마의 2001년 5월 버전을 작업하고 있다). XSD는 요소, 콘텐츠 모델 그리고 속성들을 정의한다. 또한 표준 IMS어휘를 정의한다. XSD는 요소 유형과 속성그룹을 요소와는 별도로 정의한다. |
메시징 설문지는 표 B1에 제시되어 있다. 이 설문지는 가능한한 각 사례별로 작성되어야 한다. 설문에 대한 응답들은 필요한 기능들을 지원하기 위해서 가용한 바인딩의 집합을 결정하기 위해 분석된다.
표 B1 메시징 설문지 양식인프라 설문 - 모든 트랜잭션에 적용 | ||||
설정된 트랜잭션의 유형(한 줄만 체크할 것; A | B중 하나만 선택할 것; A | B, C | D의 경우 하나씩 선택할 것) | ||||
No. | 데이터 업데이트 요청/ ACK (또는 NAK) | 요청 읽기/ 응답 | 데이터 모니터링 | |
1 | 이벤트 수신자들의 사전구독 대상 | 해당없음 | 해당없음 | 소스의 이벤트| 소스의 토픽/객체 |
2 | 토픽/객체의 경우, 소스는 이벤트를 토픽에 미리 등록해야 하는가? | 해당없음 | 해당없음 | 예 | 아니오 |
3 | 타겟 시스템은 요청을 거부할 수 있는가? | 예 | 아니오 | 해당없음 | 해당없음 |
4 | 동기식 또는 비동기식 | 동기식 | 비동기식 | 동기식 | 비동기식 | 해당없음 |
5 | QOS - 복제 | 타겟은 인지함 | 인프라는 방지함 | 타겟은 인지함 | 인프라는 방지함 | 해당없음 |
6 | QOS – 연결 | 타겟은 반드시 실행중이어야 함 | 인프라 보장 | 타겟은 반드시 실행중이어야 함 | 인프라 보장 | 수신자는 반드시 실행중이어야 함 | 인프라 보장 |
7 | QOS - 메시지 전달 순서는 메시지 게시 순서와 같아야 하는가? | 해당없음 | 해당없음 | 예 | 아니오 |
8 | QOS - 모든 메시지가 전달될 때 수신자에게 통지해야 하는가? | 해당없음 | 해당없음 | 예 | 아니오 |
9 | 타겟 식별 | ‘프리와이어’됨 | 발견됨 | ‘프리와이어’됨 | 발견됨 | 해당없음 |
10 | 타겟이 여러 개일 경우, 어떻게 선택되는가? | ? | ? | 해당없음 |
11 | 기록 ID의 범위 | 타겟과 파트너| 인터넷 | 타겟과 파트너| 인터넷 | 해당없음 |
12 | 소스는 타겟과 일치해야 하는가? | 예 | 아니오 | 예 | 아니오 | 해당없음 |
13 | 서드파티 이벤트 로거 | 예 | 아니오 | 예 | 아니오 | 해당없음 |
14 | 암호화 필요 | 예 | 아니오, 방향 X>Y | X<Y | X<>Y, 유형 | 예 | 아니오, 방향 X>Y | X<Y | X<>Y, 유형 | 해당없음 |
15 | Y에 자원 인증됨 | 예 | 아니오 | 예 | 아니오 | 해당없음 |
16 | Y에 자원 허가됨 | 예 | 아니오 | 예 | 아니오 | 해당없음 |
17 | 인프라에 의해 보안 제공 | 없음 | 암호화, 인증, 권한 부여 | 없음 | 암호화, 인증, 권한 부여 | 해당없음 |
18 | 상태유지 세션 | 예 | 아니오 | 예 | 아니오 | 해당없음 |
19 | 상태유지가 된다면, 어떤 것을 기반으로 하는가? | 쿠키 | 기타?? | 쿠키 | 기타?? | 해당없음 |
20 | 상태유지인 경우, 상태id의 기반은? | 동적으로 발견됨| 설정됨 | 동적으로 발견됨| 설정됨 | 해당없음 |
21 | 스키마의 선택가능한 요소 | 예 | 아니오 | 예 | 아니오 | 예 | 아니오 |
22 | 선택 가능한 요소 해석 전략 | ? | ? | ? |
23 | 전송요건 | HTTP, HTTPS, IIOP (Corba), IIOP DCOM, MOM - MQ/Series, MOM-MSMQ, MOM-JMQ, SMTP, 기타? | HTTP, HTTPS, IIOP (Corba), IIOP DCOM, MOM - MQ/Series, MOM-MSMQ, MOM-JMQ, SMTP, 기타? | 해당없음 |
24 | 다중 객체 회수 가능 | 해당없음 | 예 | 아니오 | 해당없음 |
25 | 쿼리는 얼마나 유연한가? | 해당없음 | List | Full SQL | 해당없음 |
26 | 소스는 여러 객체를 보고할 수 있는가? | 해당없음 | 해당없음 | 예 | 아니오 |
27 | 만약 그렇다면, 메시지 스키마는 집합들을 지원하는가? | 해당없음 | 해당없음 | 엔터프라이즈 스키마는 지원함 |
28 | 소스는 배치를 타겟에 보낼 수 있는가 | 예 | 아니오 | 해당없음 | 해당없음 |
29 | 만약 그렇다면, 스키마는 통합을 지원하는가? | 엔터프라이즈 규격은 지원함 | 해당없음 | 해당없음 |
30 | 트랜잭션/이벤트가 더 큰 트랜잭션의 일부일 수 있는가? | 예 | 아니오 | 예 | 아니오 | 예 | 아니오 |
31 | 만약 그렇다면, 트랜잭션의 경계는 어떻게 식별되는가? | ? | ? | ? |
32 | 더 큰 규모의 트랜잭션의 일부인 경우, 서드시스템 또는 그 이상이 개입하는가? | 예 | 아니오 | 예 | 아니오 | 해당없음 |
33 | 버전번호 콘텍스트 | 어플리케이션 | 객체 | 스키마 | 어플리케이션 | 객체 | 스키마 | 어플리케이션 | 객체 | 스키마 |
34 | 다중 페이로드 | 예 | 아니오 | 예 | 아니오 | 예 | 아니오 |
표준개발 참여자(경칭생략, 무순)
성 명 |
근 무 처 |
직 위 |
조용상 |
한국교육학술정보원 |
팀장 |
김종현 |
계원디자인예술대학 |
교수 |
김현진 |
한국교원대학교 |
교수 |
정광식 |
한국방송통신대학교 |
교수 |
황대준 |
성균관대학교 |
교수 |
고영승 |
(주)디유넷 |
대리 |
이정우 |
(주)포씨소프트 |
차장 |
장근원 |
(주)크레듀 |
과장 |
정호원 |
(주)씨티유니온 |
차장 |
지승환 |
테크빌닷컴(주) |
차장 |
최성기 |
SK C&C |
과장 |
권영진 |
한국교육학술정보원 |
연구원 |
최미애 |
한국교육학술정보원 |
연구원 |