Download presentation
Presentation is loading. Please wait.
Published byLionel Waters Modified over 9 years ago
1
WSDL 1.1
2
2 네트웍 상의 서비스를 기술하는 XML 문서 구성 types: 데이터 타입에 대한 정의 message : 교환되는 데이터의 추상적인 (abstract) 기술 operation: 서비스가 제공하는 action 에 대한 추상적인 기술 port type : 하나 이상의 endpoint 가 지원하는 operation 의 추상적인 모음 binding: 특정 port type 에 대한 구체적 (concrete) 인 프로토콜 port : binding 과 network 상의 주소를 가지는 endpoint service : 네트웍 enpoint (port) 의 collection
3
3 WSDL Component : Service 정의 (port, binding) : endpoint 정의 : service 를 호출 하는 방법 정 의 ( 프로토콜, style) : interface 정의 (operation, input, output) : method 정의 : message 정의 : datatypes 정의 (XML schema)
4
4 WSDL 을 읽는 방법 <port name="StockQuotePort“ binding="impl:StockQuoteBinding"> <binding name="StockQuoteSoapBinding“ type="impl:StockQuotePortType"> 1 2 3 4 5
5
5 WSDL 의 예 s0:QueryIpSoap extensibility element s0:QueryIPSoap extensibility element
6
6 WSDL 의 예 <definitions xmlns:soap=“http://schemas.xmlsoap.org/wsdl/soap/”http://schemas.xmlsoap.org/wsdl/soap/ xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://ws.cdyne.com/" xmlns:soapenc=“http://schemas.xmlsoap.org/soap/encoding/”http://schemas.xmlsoap.org/soap/encoding/ targetNamespace="http://ws.cdyne.com/" xmlns=“http://schemas.xmlsoap.org/wsdl/”/>http://schemas.xmlsoap.org/wsdl/ … s0:Query 는 에 정의되어 있음 QuerySoapIn QuerySoapOut
7
7 WSDL 의 예 데이터 타입을 정의하는데 사용하는 type system 에는 제한이 없으나 현재로서는 XML Schema 를 일반적으로 사용 함 extensibility elelemt
8
8 WSDL 도식화 created by XMLSpy
9
9 WSDL 을 읽는 방법 <port name="StockQuotePort“ binding="impl:StockQuoteBinding"> <binding name="StockQuoteSoapBinding“ type="impl:StockQuotePortType"> 1 2 3 4 5
10
10 WSDL SOAP Binding SOAP 메시지 구성 방법을 기술 및 아래에 element 아래에 extensibility element 로 기술 soap:binding soap:operation soap:body soap:header soap:headerfault soap:fault soap:address
11
11 soap:binding style : document SOAP Body 구성시 의 part 들을 그대로 SOAP Body 에 사용 rpc SOAP 의 RPC convention 에 따라서 SOAP Body 구성 transport: SOAP 메시지 전송에 사용될 transport HTTP : http://schemas.soap.org/soap/httphttp://schemas.soap.org/soap/http
12
12 soap:operation soapAction : SOAPAction 의 값을 지정 style: rpc/document. 에서 지정한 style 을 override 할 수 있으나 일반적으로 이런 방식으로는 사용하지 않음
13
13 soap:body <soap:body parts=“nmtokens”? use=“literal|encoded”? encodingStyle=“uri-list”? namespace=“uri”?/> parts: SOAP Body 에 사용될 part 들. 생략하면 해당 메시지의 모든 파트 가 사용됨 use : literal : 에 지정된 XML Schema 의 instance 를 SOAP 메시지 구성에 사용함 encoded : 에 지정된 XML Schema 에 encodingStyle 에 지정된 encoding rule 을 적용하여 SOAP 메시지에 담을 concrete 한 메시지를 구성 encodingStyle: encoding 에 사용될 encoding 방식을 기술 namespace: encoding 시 types 에 명시적으로 정의되지 않은 content 에 적용되는 namespace
14
14 Document/RPC, Literal/SOAP Encoding ? 네 가지 조합 RPC/Encoded RPC/Literal DOC/Encoded DOC/Literal XML 문서의 validation Encoded 방식 WSDL 의 에 정의된 XML Schema 를 따르지 않는 XML 문서가 발생될 수 있음 encoded 방식의 XML 문서를 받아서 검증 (validate) 할 수 없음 Literal 방식 WSDL 의 에 정의된 XML Schema 로 검증가능한 XML 문서를 주고 받음 현재까지, 그리고 향후에는 … 현재까지 RPC/Encoded 방식과 DOC/Literal 방식이 가장 많이 사용됨 WS-I Basic Profile 에서는 interoperable 한 SOAP 메시징에서는 SOAP Encoding 방 식을 사용하는 것을 금지하고 있음 향후 웹서비스에서는 RPC/Literal 과, DOC/Literal 방식만이 interaoperable 할것 임 그러나 과거 호환성을 위해서 RPC/encoded 방식도 지원될 것. SOAP 규격은 Document 중심으로 가고 있음
15
15 WSDL binding (I) RPC/Literal Document RPC/Encoding
16
16 WSDL binding (II) 5 5 5 RPC/ Literal Document RPC/Encoding
17
17 WSDL binding (III) </portType 5 > Document/literal wrapped
18
Top-down Web service development
19
19 웹서비스개발 모델 웹서비스 top-down 모델 웹 브라우저로 서비스의 URL 에 접근 가능 한 서비스 interface 를 만든다. Ex) http://localhost:8080/axis/services/WidgetPrice WSDL 파일을 만들다. 주고 받을 Type 에 대한 정의를 한다. -> simple type 정의 complex type 정의하고 simple type 을 포 함한다. 웹서비스 툴을 이용 server skeleton JavaBeans components 를 생성한다. skeleton JavaBeans 에 비즈니스 로직을 작성한다. 웹서비스 툴을 이용 client stub JavaBeans components 를 생성한다. stub JavaBeans components 에 비즈니스 로직을 작성한다. Test
20
20 SOAP/XML typesJava types xsd:base64Binarybyte[] xsd:booleanboolean xsd:bytebyte xsd:dateTimejava.util.Calendar xsd:decimaljava.math.BigDecimal xsd:doubledouble xsd:floatfloat xsd:hexBinarybyte[] xsd:intint xsd:integerjava.math.BigInteger xsd:longlong xsd:QNamejavax.xml.namespace.QName xsd:shortshort xsd:stringjava.lang.String Basic Data Type
21
21 Custom Data Type [Order WSDL Type] [Order Java class] public class Order { private String customerName; private String itemCodes[]; private int quantities[]; private String shippingAddress; }
22
22 Axis 의 WSDL 지원 WSDL 문서 제공 웹서비스 툴인 Axis 에서 서비스를 전개할 때, 웹서비스 사용자들는 웹 브라우저로 서비스의 URL 에 접근 가능 URL 의 끝에 "http://localhost:8080/axis/services/WidgetPrice?WSDL” 를 덧붙이는 것에 의해 WSDL 제공 WSDL 을 이용해 proxies(stub) 와 skeletons 제공 AXIS WSDL -> Java tool : org.apache.axis.wsdl.WSDL2Java WSDL -> Java class 매칭 type -> java class(Adress, Book, Order), in/out parameter portType -> interface class binding -> stub, skeletons class service -> client service interface, client service implementation Client / Server 공통 WidgetPrice.java (java.rmi.Remote usages), deploy.wsdd, undeploy.wsdd Client proxies WidgetPriceService.java (client side service interface) WidgetPriceServiceLocator.java (client side service implementation) WidgetPriceSoapBindingStub.java (Client side stub) Server skeletons WidgetPriceSoapBindingSkeleton.java (Server side skeleton) WidgetPriceSoapBindingImpl.java (fill out the implementation)
23
23 Axis 의 WSDL 지원 Java2WSDL 도구 제공 java2wsdl 은 자바 클래스들에서 WSDL 을 추출 제공 ex) 아래와 같은 service Interface 작성후 java2wsdl 실행 후 WSDL 얻음 public interface WidgetPrice { public void setWidgetPrice(String widgetName, String price); public String getWidgetPrice(String widgetName); public String processOrder(Order order); }
24
WSDL2.0
25
25 definitions 네임스페이스 변경 <definitions name="StockQuote" targetNamespace="http://example.com/stockquote/definitions" xmlns:tns="http://example.com/stockquote/definitions" xmlns:xsd1="http://example.com/stockquote/schemas" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/"> --> <definitions name="StockQuote" targetNamespace="http://example.com/stockquote/definitions" xmlns:tns="http://example.com/stockquote/definitions" xmlns:xsd1="http://example.com/stockquote/schemas" xmlns:soap="http://www.w3.org/2003/11/wsdl/soap12" xmlns="http://www.w3.org/2003/11/wsdl"> WSDL2.0 에서의 변화 W3C 의 Web Services Description Working Group 은 WSDL 2.0 working d rafts on 26 March 2004 definitions 네임스페이스 변경
26
26 message element(construct) 의 삭제 -->
27
27 PortTypes 과 Ports 변경 -> ->
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.