Download presentation
Presentation is loading. Please wait.
1
WSDL 전산게임학과 김헌철
2
WSDL이란?? WSDL은 문서 지향적 또는 프로시저 지향적인 정보를 포함한 메시지에서 작동하는 종점 집합으로서의 네트워크 서비스를 설명하는 XML 형식입니다. 작동 및 메시지에 대해 대략적으로 설명한 다음, 구체적인 네트워크 프로토콜 및 메시지 형식으로 연결하여 종점에 대해 정의합니다. 관련된 구체적인 종점은 추상 종점(서비스)과 결합되어 있습니다. WSDL은 통신에 사용되는 메시지 형식 또는 네트워크 프로토콜과는 상관 없이 종점 및 종점의 메시지를 설명하도록 확장할 수 있습니다. 통신 프로토콜 및 메시지 형식이 웹 커뮤니티에서 표준화됨에 따라, 통신을 어느 정도 구조적인 방법으로 설명하는 것이 점차 가능해지고 중요해지게 되었습니다.
3
WSDL은 네트워크 서비스를 메시지를 교환할 수 있는 통신 종점의 컬렉션으로 설명하는 XML 문법을 정의하여 이러한 필요성을 해결합니다.
WSDL 문서는 services를 네트워크 종점의 컬렉션 또는 ports로 정의합니다. WSDL에서 종점 및 메시지의 추상 정의는 구체적인 네트워크 구축 또는 데이터 형식 바인딩과는 구분되며 이러한 특성은 추상 정의를 재사용 가능하도록 합니다. WSDL은 메시지 형식을 설명하는 다양한 형식 시스템의 필요성을 인식하여 정식의 형식 시스템으로 XML 스키마 규격(XSD)을 지원합니다.
4
WSDL의 구조
5
WSDL의 특징 네트워크 서비스를 기술하기 위한 XML 포맷. 서비스 제공자가 공개한 인터페이스를 호출하는 방법 설명.
UDDI 저장소에 WSDL에 참조가 저장. CORBA나 COM의 IDL(Interface Definition Lanugage)과 유사함.
6
WSDL의 중요한 요소 Types : XSD와 같은 특정 형식 시스템을 사용하는 데이터 형식 정의에 대한 컨테이너.
Message : 통신할 데이터에 대한 추상적이고 형식화된 정의. Operation : 서비스가 지원하는 동작에 대한 추상적인 설명. Port Type : 하나 이상의 종점에서 지원하는 추상적인 작업 집합. Binding : 특정 포트 유형에 대한 구체적인 프로토콜 및 데이터 형식 지정. Port : 바인딩과 네트워크 주소가 결합되어 정의되는 단일 종점. Service : 관련된 종점의 컬렉션.
7
WSDL의 간단한 이해 WSDL을 간단히 설명하면 웹 서비스 제공자와 웹 서비스를 받는 사람과의 Language 또는 약속이라고 생각하면 된다. “웹 서비스야 나는 이런 서비스를 받고 싶다. 그러면 어떻게 해야하니??” 라고 웹 서비스에게 물어보면은 웹 서비스는 “내가 서비스 요청하는 방법(WSDL)을 알려줄게 이렇게 준비해서 나한테 보내라~”라고 합니다. 그럼 웹 서비스는 사용자가 제대로 준비했는지 확인 후에 관련된 서비스를 제공해주는 것입니다. 서비스라고 하니깐 거창하기는 하지만 간단한 결과 값을 얻는 것도 서비스라고 할 수 있습니다.
8
또 이해를 돕기 위해서 더 간단하게 설명 드리겠습니다.
웹 서비스는 어떤 2개의 값을 더 하는 서비스를 제공하고 있습니다. public int plus(int a, int b) { return a+b; } 그리고 이 서비스를 제공하기 위해서 이와 관련된 WSDL파일을 만들어 놓습니다.
9
WSDL에는 뭐 여러가지 정보가 있겠지만 파라미터(int a, int b)에 대한 정보도 있습니다
WSDL에는 뭐 여러가지 정보가 있겠지만 파라미터(int a, int b)에 대한 정보도 있습니다. 그런 저는 이 WSDL파일을 보고 파라미터로 사용할 2개의 값을 웹 서비스 제공자에게 보내줍니다. 그럼 이 웹 서비스 제공자는 이 2개의 값을 가지고 plus라는 메소드를 이용해서 return 값을 돌려 줍니다. 이것이 웹 서비스이며 이게 바로 WSDL 역할인 것 같다.
10
SOAP,WSDL,UDDI간의 관계 웹 서비스 클라이언트 역할을 하는 애플리케이션은 네트워크 어딘가에 있을 다른 애플리케이션이나 비즈니스 로직의 위치를 알아내야 한다. 클라이언트는 이름별, 카테고리별, 식별 기호별 혹은 지원 규격별 서비스를 위해 UDDI레지스트리를 조회한다. 일단 그 위치를 파악하고 나면 클라이언트는 UDDI 레지스트리로 부터 WSDL 문서의 위치 정보를 얻는다. WSDL 문서에는 웹 서비스 접속 방법과 XML 스키마 내의 요청 메시지 형식에 대한 정보를 포함한다. 클라이언트는 WSDL에 있는 XML 스키마에 따라 SOAP메시지를 생성하고, 호스트(서비스가 있는 곳)로 요청을 보낸다.
11
문서 명명 및 연결 WSDL 문서는 간단한 형태의 설명서로 제공되는 NCNAME 형식의 선택적인 name 특성으로 지정될 수 있습니다. URI 형식의 targetNamespace 특성을 지정할 수도 있습니다. URI는 상대 URI일 수 없습니다. <definitions…> <import namespace="uri" location="uri"/> * </definitions> WSDL 에서 QNames 확인은 XML 스키마 규격으로 설명된 Qnames 확인과 유사합니다.
12
WSDL 문서의 구조
13
WSDL문서의 용어 다음은 WSDL문서의 구조를 이루는 핵심 엘리먼트들이다.
14
WSDL문서의 용어 다음은 WSDL문서에서 부수적으로 사용되는 엘리먼트들이다.
15
제작 스타일 import 요소를 사용하여 서비스 정의의 서로 다른 요소들을 별도의 문서로 분리하여 필요할 때 가져올 수 있습니다. 서비스의 추상화 수준에 따라 정의를 분리하여 서비스 정의를 더 명확하게 작성할 수 있도록 도와 줍니다. 모든 종류의 서비스 정의를 재사용하는 기능을 최대화합니다. 구조화된 WSDL 문서는 사용 및 유지 관리가 쉽습니다. 데이터 형식 정의, 추상 정의 및 특정 서비스 바인딩의 세 개 문서로 분리하였습니다. 메커니즘의 사용은 이 규격에 정의된 언어 요소만 사용하는 예제에 명시적으로 나타난 정의에만 제한되지는 않습니다. 추가 언어 확장을 기반으로 하는 다른 형식의 정의는 유사한 방법으로 인코드되고 다시 사용될 수 있습니다.
16
언어 확장성 및 바인딩 WSDL에서 바인딩이라는 용어는 프로토콜 또는 데이터 형식 정보와 message, operation 또는 portType과 같은 추상 엔티티를 연결하는 과정을 나타냅니다. WSDL는 WSDL로 정의된 다양한 요소 아래 특정 기술(확장성 요소)을 나타내는 요소를 허용합니다. 확장성은 일반적으로 특정 프로토콜 또는 메시지 형식에 대한 바인딩 정보를 지정하는 데 사용되지만 이러한 사용에 제한되지 않습니다. 확장성 요소는 WSDL 이름 공간과는 다른 XML 이름 공간을 사용해야 합니다. 확장성 요소를 사용하면 기본 WSDL 규격을 개정하지 않고 네트워크와 메시지 프로토콜 영역을 새로 바꿀 수 있습니다. WSDL은 이러한 프로토콜을 정의하는 규격이 프로토콜이나 형식을 설명하는 데 사용하는 필수 WSDL 확장도 정의할 것을 권장합니다.
17
형식 types 요소는 교환된 메시지와 관련된 데이터 형식 정의를 묶습니다.
상호 운영성 및 플랫폼 중립성을 최대화 하기 위해 WSDL은 정식의 형식 시스템으로서 XSD를 사용하고 이것을 기본적인 형식 시스템으로 처리합니다. XSD 형식 시스템은 결과 네트워크 형식이 실제 XML인지 또는 결과 XSD 스키마가 특정 네트워크 형식을 확인하는지 여부에 관계 없이 메시지의 형식을 정의하는 데 사용될 수 있습니다. 동일한 메시지에 대해 다중 바인딩이 있거나 하나의 바인딩만 존재하지만 해당 바인딩 형식이 널리 사용되는 형식 시스템을 가지지 않는 경우에 유용합니다.
18
메시지 메시지는 하나 이상의 논리적인 parts로 구성되어 있습니다.
메시지 형식 특성을 사용하는 특정 형식 시스템의 형식과 연관되어 있습니다. 메시지 형식의 특성 집합은 확장할 수 있습니다. WSDL은 XSD에 사용되는 몇몇 메시지 형식의 특성을 정의합니다. WSDL의 이름 공간과는 다른 이름 공간을 사용하면 다른 메시지 형식 특성이 정의될 수도 있습니다. 메시지 name 특성은 해당 WSDL 문서에 정의된 모든 message 간에 고유한 이름을 제공합니다.
19
메시지 부분 part는 message의 논리적인 추상 컨텐트를 설명하는 융통성 있는 메커니즘입니다.
바인딩은 부분에 관한 바인딩별 정보를 지정하기 위해 부분의 이름을 참조할 수 있습니다. RPC를 사용하기 위해 메시지를 정의하는 경우, 부분은 메시지에 매개 변수를 나타낼 수도 있습니다. 부분의 실제 의미를 결정하기 위해서는 반드시 바인딩을 점검해야 합니다. 다중 부분 요소는 메시지에 여러 개의 논리적 단위가 있는 경우에 사용됩니다.
20
서비스 서비스는 관련된 포트의 집합을 그룹화합니다.
name 특성은 이를 포함하는 WSDL 문서에 정의된 모든 서비스에 고유 이름을 제공합니다. 별도의 바인딩 및 주소를 사용하면서도 한개의 서비스에 포트 형식을 공유하는 여러 개의 포트가 있는 경우 포트는 대체 요소가 됩니다. 포트를 확인하여 서비스의 포트의 형식을 결정할 수 있습니다. WSDL 문서의 고객은 이 문서가 여러 개의 포트를 지원하는지의 여부에 따라 특정 서비스와 통신할지를 결정할 수 있습니다. 포트 형식의 작업간에 몇몇 묵시적인 관계가 있는 경우에 유용하며, 특정 작업을 수행하기 위해서는 포트 형식의 전체 집합이 반드시 표시되어야 합니다.
21
감사합니다.
Similar presentations