Presentation is loading. Please wait.

Presentation is loading. Please wait.

WSDL 1.1. 2 네트웍 상의 서비스를 기술하는 XML 문서 구성  types: 데이터 타입에 대한 정의  message : 교환되는 데이터의 추상적인 (abstract) 기술  operation: 서비스가 제공하는 action 에 대한 추상적인 기술  port.

Similar presentations


Presentation on theme: "WSDL 1.1. 2 네트웍 상의 서비스를 기술하는 XML 문서 구성  types: 데이터 타입에 대한 정의  message : 교환되는 데이터의 추상적인 (abstract) 기술  operation: 서비스가 제공하는 action 에 대한 추상적인 기술  port."— Presentation transcript:

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 변경 -> ->


Download ppt "WSDL 1.1. 2 네트웍 상의 서비스를 기술하는 XML 문서 구성  types: 데이터 타입에 대한 정의  message : 교환되는 데이터의 추상적인 (abstract) 기술  operation: 서비스가 제공하는 action 에 대한 추상적인 기술  port."

Similar presentations


Ads by Google