Web??????WSDL - PowerPoint PPT Presentation

1 / 60
About This Presentation
Title:

Web??????WSDL

Description:

Title: 863 Author: Ma Dian Fu Last modified by: MC SYSTEM Created Date – PowerPoint PPT presentation

Number of Views:63
Avg rating:3.0/5.0
Slides: 61
Provided by: MaDi70
Category:
Tags: wsdl | ariba | web

less

Transcript and Presenter's Notes

Title: Web??????WSDL


1
Web??????WSDL
  • ???
  • ???????
  • 2006-05

2
????
  • WSDL????
  • WSDL?????
  • WSDL???
  • WSDL?????
  • --?? ?? ???? ?? ??
  • WSDL??4???????
  • WSDL??4???????

3
????
  • Web??????WSDL(Web Services Description
    Language)?????????????Webb??????????
  • 1999?HP(??)????????Web????,eSpeak??????????
  • 2000?6?Microsoft???Web????,?Web????.NET???????
  • ?Microsoft?SDL(Service Description
    Language?SCL(SOAP Contract Language)?IBM?NASSL(Net
    work Accessible Service Specification
    Language)????????,???WSDL????SCL??XML?????????????
    ,NASSL????????????
  • 2000?9?25?IBM?Microsoft?Ariba??WSDL1.0?2001?3?15?,
    ?????WSDL1.1??W3C?Note?WSDL1.1?????http//www.w3.o
    rg/TR/wsdl?2002?7?9???WSDL1.2,2003?11?10???WSDL2.0
    ?

4
  • WSDL??web?????????
  • ???????
  • ????????(??)
  • ???????
  • ?????????????????
  • ???????
  • ????????????,?URL?

5
  • Web??????(Web Services Description Language
    WSDL)?Web Services?????????
  • WSDL??????Internet????????????????????????,???????
    ????
  • WSDL????????,?????????????,????????????????

6
??????
WSDL2JAVA
JAVA2WSDL
UDDI
???(?)
??
?????
Content
?????
???AJAX
???
??
???(??)
??
  • ???????????
  • ???????????

??
7
SOAP RPC
  • SOAP????
  • ltsoapenvelopegt
  • ltsoapbodygt
  • ltmyMethodgt
  • ltxgt5lt/xgt
  • lt/myMethodgt
  • lt/soapbodygt
  • lt/soapenvelopegt

8
????
WSDL2JAVA
XML2JAVA
????CONTEXT
Class Operation
XML Message
XML Message
SOAP??
SOAP??
???
HTTP
HTTP
9
WSDL??
  • WSDL?XML???????,??????????????????????????
  • ???????????????????????????????,??????????????
  • ??????????????
  • ?????????????
  • ?????????????????????????????????
  • ?????????????????????,???????????

10
?????????????
  • ??????????????????,
  • type???message?portType?
  • types??????????????????
  • message????XML ??????????????message
    ?????????????????
  • portType??????Web?????????????????????????XML???

11
?????????????
  • ?????????????????????????????WSDL???
  • ?binding?services?
  • binding ????????????????????????????
  • service???????????port??????????????????binding
    ???????

12
  • WSDL???XML??,??Web Services?????????????,?????????
    ??????????????????????????????
  • WSDL?????????????????/??????????,?????????????????
    ???,?????????????????
  • ??????,?????????????????
  • ?WSDL???,???????SOAP?????HTTP GET/POST??????MIME??
    ???Web Services??????

13
WSDL??
  • ?? Web ???????????
  • ????????????????????????????????????

14
????
  • wsdl http//schemas.xmlsoap.org/wsdl/
  • soap http//schemas.xmlsoap.org/wsdl/soap/
  • http http//schemas.xmlsoap.org/wsdl/http/
  • mime http//schemas.xmlsoap.org/wsdl/mime/
  • soapenc http//schemas.xmlsoap.org/soap/encoding/
  • soapenv http//schemas.xmlsoap.org/soap/envelope/
  • xsi http//www.w3.org/2000/10/XMLSchema-instance
  • xsd http//www.w3.org/2000/10/XMLSchema

15
WSDL????
  • ltwsdldefinitions name"nmtoken"?
    targetNamespace"uri"?gt
  • ltimport namespace"uri" location"uri"/gt
  • ltwsdltypesgt ? lt/wsdltypesgt
  • ltwsdlmessage namenmtokengt
  • lt/wsdlmessagegt
  • ltwsdlportType name"nmtoken"gt
  • lt/wsdlportTypegt
  • ltwsdlbinding name"nmtoken" type"qname"gt
  • lt/wsdlbindinggt
  • ltwsdlservice name"nmtoken"gtlt/wsdlservice
    gt
  • lt/wsdldefinitionsgt

16
types??
  • ltwsdltypesgt ?
  • ltwsdldocumentation .... /gt?
  • ltxsdschema .... /gt
  • lt-- extensibility element --gt
  • lt/wsdltypesgt

17
message??
  • ltwsdlmessage name"nmtoken"gt
  • ltwsdldocumentation .... /gt?
  • ltpart name"nmtoken"
  • element"qname"? type"qname"?/gt
  • lt/wsdlmessagegt

18
portType??
  • ltwsdlportType name"nmtoken"gt
  • ltwsdldocumentation .... /gt?
  • ltwsdloperation name"nmtoken"gt
  • ltwsdldocumentation .... /gt ?
  • ltwsdlinput name"nmtoken"?
    message"qname"gt?
  • ltwsdldocumentation .... /gt ?
  • lt/wsdlinputgt
  • ltwsdloutput name"nmtoken"?
    message"qname"gt?
  • ltwsdldocumentation .... /gt ?
  • lt/wsdloutputgt
  • ltwsdlfault name"nmtoken" message"qname"gt
  • ltwsdldocumentation .... /gt ?
  • lt/wsdlfaultgt
  • lt/wsdloperationgt
  • lt/wsdlportTypegt

19
binding??
  • ltwsdlbinding name"nmtoken" type"qname"gt
  • ltwsdldocumentation .... /gt?
  • lt-- extensibility element --gt
  • ltwsdloperation name"nmtoken"gt
  • ltwsdldocumentation .... /gt ?
  • lt-- extensibility element --gt
  • ltwsdlinputgt ?
  • ltwsdldocumentation .... /gt ?
  • lt-- extensibility element --gt
  • lt/wsdlinputgt
  • ltwsdloutputgt ?
  • ltwsdldocumentation .... /gt ?
  • lt-- extensibility element --gt
  • lt/wsdloutputgt
  • ltwsdlfault name"nmtoken"gt
  • ltwsdldocumentation .... /gt ?
  • lt-- extensibility element --gt
  • lt/wsdlfaultgt
  • lt/wsdloperationgt

20
service??
  • ltwsdlservice name"nmtoken"gt
  • ltwsdldocumentation .... /gt?
  • ltwsdlport name"nmtoken" binding"qname"gt
  • ltwsdldocumentation .... /gt ?
  • lt-- extensibility element --gt
  • lt/wsdlportgt
  • lt-- extensibility element --gt
  • lt/wsdlservicegt

21
??
  • types????????????????????????????(interoperability
    )??????(neutrality),WSDL??XML Schema
    DataTypes,??XSD????????,????????????
  • ltdefinitions .... gt
  • lttypesgt
  • ltxsdschema .... /gt
  • lt/typesgt
  • lt/definitionsgt

22
??XSD??????????
  • ????(element)??,??????(attribute)??
  • ?????????????????????????
  • ??????SoapArray ??,???ArrayOfXXX????????
  • ??XSD????xsdanyType?

23
  • lttypesgt
  • ltschemagt
  • ltelement name"PO" type"tnsPOType"/gt
  • ltcomplexType name"POType"gt
  • ltelement name"id" type"string/gt
  • ltelement name"name"
    type"string"/gt
  • ltelement name"items"gt
  • ltcomplexTypegt
  • ltelement name"item"
    type"tnsItem" minOccurs"0
  • maxOccurs"unbounde
    d"/gt
  • lt/complexTypegt
  • lt/elementgt
  • lt/complexTypegt
  • ltcomplexType name"Item"gt
  • ltelement name"quantity"
    type"int"/gt
  • ltelement name"product"
    type"string"/gt
  • lt/complexTypegt
  • ltelement name"Customer"
    type"tnsCustomerType"/gt
  • ltcomplexType name"CustomerType"gt

24
??
  • ??????????(part)???????????????????????????????
  • ????????
  • ltdefinitions .... gt
  • ltmessage name"nmtoken"gt
  • ltpart name"nmtoken"
  • element"qname"? type"qname"?/gt
  • lt/messagegt
  • lt/definitionsgt
  • ??(message)name???????????
  • ????????????,???????part???

25
????
  • ltmessage name"PO"gt
  • ltpart name"po" element"tnsPO"/gt
  • ltpart name"customer" element"tnsCustomer"/gt
  • lt/messagegt
  • ltmessage name"P1"gt
  • ltpart nameaddress" typeXSDstring"/gt
  • lt/messagegt
  • ltmessage name"P2"gt
  • ltpart name"composite" type"tnsComposite"/gt
  • lt/messagegt

26
  • s?(s,"definition\")
  • ?WSDL???,???????????,?
  • ?x??(s,"message")
  • (?y??(s,"message","name",s(x,"name"))?xy)
  • ??????,???????????,?
  • ?x??(s,"message")
  • ?y??(x,"message\part")
  • (?z??(x,"message\part","name",s(y,"name"))
  • ?yz)

27
  • ??????????????WSDL??????????
  • element??QName????XSD??,?
  • ?x??(s, "message\part")
  • (s(x,"element")??
  • ??!y??(s,"types\schema\element")
  • ?s(x,"element")s(y,"name")))
  • type??QName???XSD simpleType(????)?XSD
    complexType (????),?
  • ?x??(s,"message\part")
  • (s(x,"type")??
  • ?s(x,"type")?XSDtypes)
  • ??y??(s,"types\schema\complexType")
  • (s(x,"type")s(y,"name"))
  • ??y??(s,"types\schema\simpleType")
  • (s(x,"type")s(y,"name")))

28
??????
  • ???????????????????????????
  • ltwsdldefinitions .... gt
  • ltwsdlportType name"nmtoken"gt
  • ltwsdloperation name"nmtoken"gt
  • ltwsdlinput name"nmtoken"?
    message"qname"/gt
  • ltwsdloutput name"nmtoken"?
    message"qname"/gt
  • ltwsdlfault name"nmtoken"
    message"qname"/gt
  • lt/wsdloperationgt
  • lt/wsdlportType gt
  • lt/wsdldefinitionsgt
  • ???????name??????????,?????name?????????

29
  • s?(s,"definition\")
  • ???????????,?
  • ?x??(s,"portType")
  • (?y??(s,"portType","name",s(x,"name"))
  • ?xy)
  • ????????,?????????,?
  • ?x??(s,"portType")
  • ?y??(x,"portType\operation")
  • (?z??(x,"portType\operation","name",s(y,"name"
    ))
  • ?yz)

30
  • ?????????,????????,????????
  • ?x??(s,"portType\operation")
  • (?y??(s,"portType\operation","name",s(x,"name"))
    ?xy)
  • ???input?output?fault???message????????,?WSDL?mess
    age????,?
  • ?x??(s,"portType\operation\input")
  • ?y??(s,"message")(s(x,"message")s(y,"name"))
  • ?x??(s,"portType\ operation\output")
  • ? y??(s,"message")(s(x,"message")s(y,"name"))
  • ?x??(s,"portType\ operation\fault")
  • ? y??(s,"message")(s(x,"message")s(y, "name"))

31
??
  • WSDL??4???????,????????
  • ??(One-way)??????????
  • ????(Request-response)????????????,????????
  • ????(Solicit-response)????????????,????????
  • ??(Notification)?????????????
  • ???????????message?????

32
????
  • ??????
  • ltwsdldefinitions .... gt
  • ltwsdlportType .... gt
  • ltwsdloperation name"nmtoken"gt
  • ltwsdlinput name"nmtoken"?
    message"qname"/gt
  • lt/wsdloperationgt
  • lt/wsdlportType gt
  • lt/wsdldefinitionsgt
  • input??????????????????

33
??????
  • ????????
  • ltwsdldefinitions .... gt
  • ltwsdlportType .... gt
  • ltwsdloperation name"nmtoken"
  • parameterOrder"nmtokens"gt
  • ltwsdlinput name"nmtoken"?
    message"qname"/gt
  • ltwsdloutput name"nmtoken"?
    message"qname"/gt
  • ltwsdlfault name"nmtoken"
    message"qname"/gt
  • lt/wsdloperationgt
  • lt/wsdlportType gt
  • lt/wsdldefinitionsgt

34
??????
  • ????????
  • ltwsdldefinitions .... gt
  • ltwsdlportType .... gt
  • ltwsdloperation name"nmtoken"
  • parameterOrder"nmtokens"gt
  • ltwsdloutput name"nmtoken"?
    message"qname"/gt
  • ltwsdlinput name"nmtoken"?
    message"qname"/gt
  • ltwsdlfault name"nmtoken"
    message"qname"/gt
  • lt/wsdloperationgt
  • lt/wsdlportType gt
  • lt/wsdldefinitionsgt

35
????
  • ??????
  • ltwsdldefinitions .... gt
  • ltwsdlportType .... gt
  • ltwsdloperation name"nmtoken"gt
  • ltwsdloutput name"nmtoken"?
  • message"qname"/gt
  • lt/wsdloperationgt
  • lt/wsdlportType gt
  • lt/wsdldefinitionsgt

36
????????
  • ??????????????name??,?????????????
  • ?????????????????name??,?????????
  • ???Request/Responese/Solicit?
  • ??????????????????parameterOrder??????????????????
    ????????????? ?

37
??
  • ??????
  • ltwsdldefinitions .... gt
  • ltwsdlbinding name"nmtoken" type"qname"gt
  • lt-- extensibility element (1) --gt
  • ltwsdloperation name"nmtoken"gt
  • lt-- extensibility element (2) --gt
  • ltwsdlinput name"nmtoken"? gt ?
  • lt-- extensibility element (3) --gt
  • lt/wsdlinputgt
  • ltwsdloutput name"nmtoken"? gt ?
  • lt-- extensibility element (4) --gt
  • lt/wsdloutputgt
  • ltwsdlfault name"nmtoken"gt
  • lt-- extensibility element (5) --gt
  • lt/wsdlfaultgt
  • lt/wsdloperationgt
  • lt/wsdlbindinggt
  • lt/wsdldefinitionsgt

38
???????
  • ????(port)?????????????????????????????
  • ltwsdldefinitions .... gt
  • ltwsdlservice .... gt
  • ltwsdlport name"nmtoken"
    binding"qname"gt
  • lt-- extensibility element (1) --gt
  • lt/wsdlportgt
  • lt/wsdlservicegt
  • lt/wsdldefinitionsgt
  • ?WSDL?????,?????name????????

39
??
  • ?????????,??????
  • ltwsdldefinitions .... gt
  • ltwsdlservice name"nmtoken"gt
  • ltwsdlport ..../gt
  • lt/wsdlservicegt
  • lt/wsdldefinitionsgt
  • ?WSDL???,???name????????

40
  • ???????????????
  • ????????????,???????????????????????????
  • ??????????????????????,?????????????,?????????????
    ????WSDL????????????????
  • ???????????????????????WSDL???????????????????????
    ??????????

41
SOAP??
  • ltbindinggt
  • ltsoapbinding style"rpcdocument"
    transport"uri"gt
  • ltoperationgt
  • ltsoapoperation soapAction"uri"?
    style"rpcdocument"?gt?
  • ltinputgt
  • ltsoapbody parts"nmtokens"?
    use"literalencoded"
  • encodingStyle"uri-list"
    ? namespace"uri"?gt
  • ltsoapheader element"qname"
    fault"qname"?gt
  • lt/inputgt
  • ltoutputgt
  • ltsoapbody parts"nmtokens"?
    use"literalencoded"
  • encodingStyle"uri-list"
    ? namespace"uri"?gt
  • ltsoapheader element"qname"
    fault"qname"?gt
  • lt/outputgt
  • ltfaultgt
  • ltsoapfault name"nmtoken"
    use"literalencoded"
  • encodingStyle"uri-list
    "? namespace"uri"?gt
  • lt/faultgt
  • lt/operationgt

42
soapbinding??
  • SOAPbinding????WSDL?????SOAP????,??????SOAP??????
    ??
  • ltdefinitions .... gt
  • ltbinding .... gt
  • ltsoapbinding transport"uri"?
  • style"rpcdocument"?gt
  • lt/bindinggt
  • lt/definitionsgt
  • style???????????????style???????
  • transport??????,?????????????SOAP??????????URI?htt
    p//schemas.xmlsoap.org/soap/http
    ???????SOAP???HTTP??????

43
soapoperation
  • ltdefinitions .... gt
  • ltbinding .... gt
  • ltoperation .... gt
  • ltsoapoperation soapAction"uri"?
  • style"rpcdocument"?gt?
  • lt/operationgt
  • lt/bindinggt
  • lt/definitionsgt

44
soapbody
  • ltdefinitions .... gt
  • ltbinding .... gt
  • ltoperation .... gt
  • ltinputgt
  • ltsoapbody parts"nmtokens"?
    use"literalencoded"?
  • encodingStyle"uri-list"?
  • namespace"uri"?gt
  • lt/inputgt
  • ltoutputgt
  • ltsoapbody parts"nmtokens"?
    use"literalencoded"?
  • encodingStyle"uri-list"?
    namespace"uri"?gt
  • lt/outputgt
  • lt/operationgt
  • lt/bindinggt
  • lt/definitionsgt

45
soapfault
  • ltdefinitions .... gt
  • ltbinding .... gt
  • ltoperation .... gt
  • ltfaultgt
  • ltsoapfault name"nmtoken"
  • use"literalencoded"
  • encodingStyle"uri-list"?
  • namespace"uri"?gt
  • lt/faultgt
  • lt/operationgt
  • lt/bindinggt
  • lt/definitionsgt

46
soapheader?soapheaderfault
  • ltdefinitions .... gt
  • ltbinding .... gt
  • ltoperation .... gt
  • ltinputgt
  • ltsoapheader message"qname"
    part"nmtoken" use"literalencoded"
  • encodingStyle"uri-list"
    ? namespace"uri"?gt
  • ltsoapheaderfault message"qname"
    part"nmtoken" use"literalencoded"
  • encodingStyle"uri-list"
    ? namespace"uri"?/gt
  • ltsoapheadergt
  • lt/inputgt
  • ltoutputgt
  • ltsoapheader message"qname"
    part"nmtoken" use"literalencoded"
  • encodingStyle"uri-lis
    t"? namespace"uri"?gt
  • ltsoapheaderfault
    message"qname" part"nmtoken" use"literalencode
    d"
  • encodingStyle"uri-lis
    t"? namespace"uri"?/gt
  • ltsoapheadergt
  • lt/outputgt
  • lt/operationgt
  • lt/bindinggt

47
soapaddress
  • ltdefinitions .... gt
  • ltport .... gt
  • ltsoapaddress location"uri"/gt
  • lt/portgt
  • lt/definitionsgt

48
portType?binding?port
  • ??portType??????bindng
  • ??binding??????port

portType
49
??????
  • 1.rpc/encoded
  • 2.rpc/literal
  • 3.document/encoded
  • 4.document/literal

50
??
  • public class myServices
  • public void myMethod (int x)
  • return

51
rpc/encoded??
  • WSDL????
  • ltmessage name"myMethodRequest"gt
  • ltpart name"x" type"xsdint"/gt
  • lt/messagegt
  • ltmessage name"empty"/gt
  • ltportType name"PT"gt
  • ltoperation name"myMethod"gt
  • ltinput message"myMethodRequest"/gt
  • ltoutput message"empty"/gt
  • lt/operationgt
  • lt/portTypegt

52
rpc/encoded??
  • SOAP????
  • ltsoapenvelopegt
  • ltsoapbodygt
  • ltmyMethodgt
  • ltx xsitype"xsdint"gt5lt/xgt
  • lt/myMethodgt
  • lt/soapbodygt
  • lt/soapenvelopegt

53
2 rpc/literal??
  • WSDL????
  • ltmessage name"myMethodRequest"gt
  • ltpart name"x" type"xsdint"/gt
  • lt/messagegt
  • ltmessage name"empty"/gt
  • ltportType name"PT"gt
  • ltoperation name"myMethod"gt
  • ltinput message"myMethodRequest"/gt
  • ltoutput message"empty"/gt
  • lt/operationgt
  • lt/portTypegt

54
2 rpc/literal??
  • SOAP????
  • ltsoapenvelopegt
  • ltsoapbodygt
  • ltmyMethodgt
  • ltxgt5lt/xgt
  • lt/myMethodgt
  • lt/soapbodygt
  • lt/soapenvelopegt

55
3 document /encoded
  • WSDL????
  • lttypesgt
  • ltschemagt
  • ltelement name"xElement" type"xsdint"/gt
  • lt/schemagt
  • lt/typesgt
  • ltmessage name"myMethodRequest"gt
  • ltpart name"x" element"xElement"/gt
  • lt/messagegt
  • ltmessage name"empty"/gt
  • ltportType name"PT"gt
  • ltoperation name"myMethod"gt
  • ltinput message"myMethodRequest"/gt
  • ltoutput message"empty"/gt
  • lt/operationgt
  • lt/portTypegt

56
3 document /encoded
  • SOAP????
  • ltsoapenvelopegt
  • ltsoapbodygt
  • ltxElement xsitype"xsdint
    "gt5lt/xElementgt
  • lt/soapbodygt
  • lt/soapenvelopegt

57
4.document /literal
  • WSDL????
  • lttypegt
  • ltschemagt
  • ltelement name"xElement" type"xsdint"/gt
  • lt/schemagt
  • lt/typesgt
  • ltmessage name"myMethodRequest"gt
  • ltpart name"x" element"xElement"/gt
  • lt/messagegt
  • ltmessage name"empty"/gt
  • ltportType name"PT"gt
  • ltoperation name"myMethod"gt
  • ltinput message"myMethodRequest"/gt
  • ltoutput message"empty"/gt
  • lt/operationgt
  • lt/portTypegt

58
4.document /literal
  • SOAP????
  • ltsoapenvelopegt
  • ltsoapbodygt
  • ltxElementgt5lt/xElementgt
  • lt/soapbodygt
  • lt/soapenvelopegt

59
5 document / literal-wrap
  • ltmessage name"myMethodRequest"gt
  • ltpart name"
  • parameters" element" myMethod"/gt
  • lt/messagegt
  • ltmessage name"empty"/gt
  • ltportType name"PT"gt
  • ltoperation name"myMethod"gt
  • ltinput message"myMethodRequest"/gt
  • ltoutput message"empty"/gt
  • lt/operationgt
  • lt/portTypegt
  • WSDL??
  • lttypesgt
  • ltschemagt
  • ltelement name"myMethod"/gt
  • ltcomplexTypegt
  • ltsequencegt
  • ltelement name"x"
    type"xsdint"/gt
  • lt/sequencegt
  • lt/complexTypegt
  • lt/elementgt
  • lt/schemagt
  • lt/typesgt

60
5 document / literal-wrap
  • SOAP??
  • ltsoapenvelopegt
  • ltsoapbodygt
  • ltmyMethodgt
  • ltxgt5lt/xgt
  • lt/myMethodgt
  • lt/soapbodygt
  • lt/soapenvelopegt
Write a Comment
User Comments (0)
About PowerShow.com