Web Services Discovery for Devices
-
Upload
jorgen-thelin -
Category
Technology
-
view
10.808 -
download
3
Transcript of Web Services Discovery for Devices
Microsoft Confidential
Scaling WS to limited resource devicesScaling WS to limited resource devices
Web Services Web Services DiscoveryDiscovery
Jorgen ThelinJorgen ThelinProgram ManagerProgram ManagerConnected Systems DivisionConnected Systems DivisionMicrosoft CorporationMicrosoft [email protected]@microsoft.com
Microsoft Confidential
WS-Discovery - The Big PictureWS-Discovery - The Big Picture
ServiceService ClientClient
DPDP
ProbeMatchProbeMatch
Hello/ByeHello/Bye
Hello/ByeHello/Bye
Probe / ProbeMatchProbe / ProbeMatch
ProbeProbe
ServicesServices to be to be discovereddiscovered
ClientsClients discover servicesdiscover servicesDiscovery Proxy Discovery Proxy caches found caches found
servicesservices
Microsoft Confidential
WS-Discovery message WS-Discovery message exchangesexchanges
1.1. Target service sends a multicast Target service sends a multicast Hello when it joins a network. Hello when it joins a network. Client listens to the multicast Client listens to the multicast Hello.Hello.
2.2. Likewise, a Target Service may Likewise, a Target Service may receive multicast a Probe from a receive multicast a Probe from a Client at any time.Client at any time.
3.3. The Target Service sends a unicast The Target Service sends a unicast Probe Match (PM) to the Client if Probe Match (PM) to the Client if the Target Service matches a the Target Service matches a Probe.Probe.
4.4. Similarly, a Target Service may Similarly, a Target Service may receive multicast Resolve from a receive multicast Resolve from a Client at any time.Client at any time.
5.5. The Target Service sends a unicast The Target Service sends a unicast Resolve Match (RM) to the Client if Resolve Match (RM) to the Client if it is the target of a Resolve.it is the target of a Resolve.
6.6. When a Target Service leaves a When a Target Service leaves a network, it makes an effort to (6) network, it makes an effort to (6) send a multicast Bye. Clients send a multicast Bye. Clients listen to the multicast Bye.listen to the multicast Bye.
Microsoft Confidential
Conceptual Context of Message Conceptual Context of Message ExchangesExchanges
Microsoft Confidential
WS-Discovery MetadataWS-Discovery Metadata
/s:Envelope/s:Body/*/d:Types/s:Envelope/s:Body/*/d:TypesSet of Types implemented by the Target Service (or Discovery Proxy)Set of Types implemented by the Target Service (or Discovery Proxy)
/s:Envelope/s:Body/*/d:Scopes/s:Envelope/s:Body/*/d:ScopesSet of Scopes the Target Service (or Discovery Proxy) is inSet of Scopes the Target Service (or Discovery Proxy) is inMAY be of more than one URI schemeMAY be of more than one URI scheme
/s:Envelope/s:Body/*/d:XAddrs/s:Envelope/s:Body/*/d:XAddrsSet of Transport addresses that MAY be used to communicate with the Set of Transport addresses that MAY be used to communicate with the Target Service (or Discovery Proxy)Target Service (or Discovery Proxy)
/s:Envelope/s:Body/*/d:MetadataVersion/s:Envelope/s:Body/*/d:MetadataVersionIncremented by >= 1 whenever there is a change in the metadata of the Incremented by >= 1 whenever there is a change in the metadata of the Target ServiceTarget ServiceMetadata includes, but is not limited to, Metadata includes, but is not limited to, ../d:Types../d:Types and and ../d:Scopes../d:Scopes. . MAY be used by the Client and/or Discovery Proxy for cache control of MAY be used by the Client and/or Discovery Proxy for cache control of Target Service metadata.Target Service metadata.
Microsoft Confidential
Metadata Matching RulesMetadata Matching Rules
Type matchingType matchingIf Namespace + Local name are the sameIf Namespace + Local name are the same
Scope matching based on specified rules:Scope matching based on specified rules:rfc2396 – General URI comparisonrfc2396 – General URI comparisonuuid – UUID URI comparisonuuid – UUID URI comparisonldap – LDAP URI comparisonldap – LDAP URI comparisonstrcmp0 – Case-sensitive string comparisonstrcmp0 – Case-sensitive string comparison
Additional matching rules may be specifiedAdditional matching rules may be specifiedBut must be equally supported by Client and But must be equally supported by Client and ServiceService
Microsoft Confidential
Device Discovery Device Discovery Bootstrap – Based on Bootstrap – Based on DPWSDPWS
Transfer - Get message to device – over HTTP
Transfer – Get Response containing DP meta data
Devices Profile Discovery Bootstrap – Discovery Hello
DeviceClient
WS-D - Resolve (to EPR)
WS-D – Resolve Match containing EPR
WS-Discovery Hello (containing EPR)
UDP Multicast
UDP Unicast
HTTP
Microsoft Confidential
Typical Device/Service Typical Device/Service Message Exchanges – Based Message Exchanges – Based on DPWSon DPWS
Microsoft Confidential
Profile Recipe: Staple, Redline, GlueProfile Recipe: Staple, Redline, Glue- Devices Profile example- Devices Profile example
““Staple”Staple”Pull relevant specs Pull relevant specs into scopeinto scope
““Redline”Redline”Add constraints on Add constraints on use of those specsuse of those specs
““Glue”Glue”Define missing bits Define missing bits between specsbetween specsSome will migrate Some will migrate back into specsback into specs
SOAP 1.2WS-
AddressingWS-Metadata Exchange
WSDL 1.1WS-
DiscoveryWS-Eventing
ThisModelMetadataThisDevice
Metadata
ActionFilter
ConformanceClaim
PolicyAssertionsPolicy
Assertions
Microsoft Confidential
ProtocolDMRCapabilities
DMRCommands
DMREvents
ProtocolIGDCapabilities
IGDCommands
IGDEvents
Devices ProfileDevices Profile
Assurances
Messaging
SOAP
WS-Security
MTOMWS-Addressing
Metadata
WSDL
WS-MetadataExchange
XML Schema
TLS
Foundation
SOAP / HTTPMIME
XML Infoset
XML 1.0XML
Namespaces
BP 1.1 Sec. 4
WS-DiscoveryDeviceExtensions
SOAP / UDP
ProtocolPrintCapabilities
PrintCommands
PrintEvents
WS-Eventing
WS-Policy
Vista WS device supportVista WS device support
• Printers• “Plug and Play” experience for network printers• Security
• Control over who can connect to the printer• Privacy of data sent to the printer
• Rich printer status
• Scanners• “Plug and Play” experience for network scanners
• enable one-button scanning
• Secure scan delivery
Vista WS device supportVista WS device support
• PC Discovery
• Messenger - People Near Me
• BITS - Background Intelligent Transfer Service
• Projectors• Integration with current IT systems
• Remote diagnostics and configuration• Asset and usage tracking
• Speeds flow of meeting• Automatic display and audio settings• Easy to transition between presenters
Microsoft Confidential
Web Services On Devices Web Services On Devices ResourcesResourcesWS and WSD SitesWS and WSD Sites
Web ServicesWeb Serviceshttp://msdn.microsoft.com/webservices/default.aspxhttp://msdn.microsoft.com/webservices/default.aspx
http://msdn.microsoft.com/windowsvista/http://msdn.microsoft.com/windowsvista/connected/connected/
Web Services Feedback WorkshopsWeb Services Feedback Workshopshttp://msdn.microsoft.com/webservices/community/http://msdn.microsoft.com/webservices/community/workshops/workshops/
Web Services BasicsWeb Services Basicshttp://msdn.microsoft.com/webservices/understanding/http://msdn.microsoft.com/webservices/understanding/webservicebasics/webservicebasics/
Devices Profile for Web ServicesDevices Profile for Web Serviceshttp://msdn.microsoft.com/ws/2006/02/devprof http://msdn.microsoft.com/ws/2006/02/devprof
WS-DiscoveryWS-Discoveryhttp://msdn.microsoft.com/ws/2005/04/ws-discovery/http://msdn.microsoft.com/ws/2005/04/ws-discovery/
Microsoft Confidential
WS-Discovery Hello Message WS-Discovery Hello Message OutlineOutline<s:Envelope ... ><s:Envelope ... > <s:Header ... ><s:Header ... > <a:Action ... ><a:Action ... > http://schemas.xmlsoap.org/ws/2005/04/discovery/Hellohttp://schemas.xmlsoap.org/ws/2005/04/discovery/Hello </a:Action></a:Action> <a:MessageID ... ><a:MessageID ... >xs:anyURIxs:anyURI</a:MessageID></a:MessageID> [<a:RelatesTo RelationshipType="d:Suppression" >[<a:RelatesTo RelationshipType="d:Suppression" > xs:anyURIxs:anyURI </a:RelatesTo>]?</a:RelatesTo>]? <a:To ... >urn:schemas-xmlsoap-org:ws:2005:04:discovery</a:To><a:To ... >urn:schemas-xmlsoap-org:ws:2005:04:discovery</a:To> <d:AppSequence ... /><d:AppSequence ... /> ...... </s:Header></s:Header> <s:Body ... ><s:Body ... > <d:Hello ... ><d:Hello ... > <a:EndpointReference> ... </a:EndpointReference><a:EndpointReference> ... </a:EndpointReference> [<d:Types>[<d:Types>list of xs:QNamelist of xs:QName</d:Types>]?</d:Types>]? [<d:Scopes>[<d:Scopes>list of xs:anyURIlist of xs:anyURI</d:Scopes>]?</d:Scopes>]? [<d:XAddrs>[<d:XAddrs>list of xs:anyURIlist of xs:anyURI</d:XAddrs>]?</d:XAddrs>]? <d:MetadataVersion><d:MetadataVersion>xs:unsignedIntxs:unsignedInt</d:MetadataVersion></d:MetadataVersion> ...... </d:Hello></d:Hello> </s:Body></s:Body>
</s:Envelope></s:Envelope>
Microsoft Confidential
WS-Discovery Bye Message OutlineWS-Discovery Bye Message Outline<s:Envelope ... ><s:Envelope ... > <s:Header ... ><s:Header ... > <a:Action ... ><a:Action ... > http://schemas.xmlsoap.org/ws/2005/04/discovery/Byehttp://schemas.xmlsoap.org/ws/2005/04/discovery/Bye </a:Action></a:Action> <a:MessageID ... ><a:MessageID ... >xs:anyURIxs:anyURI</a:MessageID></a:MessageID> <a:To ...>urn:schemas-xmlsoap-org:ws:2005:04:discovery</a:To><a:To ...>urn:schemas-xmlsoap-org:ws:2005:04:discovery</a:To> <d:AppSequence ... /><d:AppSequence ... /> ...... </s:Header></s:Header> <s:Body ... ><s:Body ... > <d:Bye ... ><d:Bye ... > <a:EndpointReference> ... </a:EndpointReference><a:EndpointReference> ... </a:EndpointReference> ...... </d:Bye></d:Bye> </s:Body></s:Body></s:Envelope></s:Envelope>
Microsoft Confidential
WS-Discovery Probe Message WS-Discovery Probe Message OutlineOutline<s:Envelope ... ><s:Envelope ... > <s:Header ... ><s:Header ... > <a:Action ... ><a:Action ... > http://schemas.xmlsoap.org/ws/2005/04/discovery/Probehttp://schemas.xmlsoap.org/ws/2005/04/discovery/Probe </a:Action></a:Action> <a:MessageID ... ><a:MessageID ... >xs:anyURIxs:anyURI</a:MessageID></a:MessageID> [<a:ReplyTo ... >[<a:ReplyTo ... >endpoint-reference<endpoint-reference</a:ReplyTo>]?/a:ReplyTo>]? <a:To ... ><a:To ... >xs:anyURIxs:anyURI</a:To></a:To> ...... </s:Header></s:Header> <s:Body ... ><s:Body ... > <d:Probe ... ><d:Probe ... > [<d:Types>[<d:Types>list of xs:QNamelist of xs:QName</d:Types>]?</d:Types>]? [<d:Scopes [MatchBy="[<d:Scopes [MatchBy="xs:anyURIxs:anyURI"]? ... >"]? ... > list of xs:anyURIlist of xs:anyURI </d:Scopes>]?</d:Scopes>]? ...... </d:Probe></d:Probe> </s:Body></s:Body></s:Envelope></s:Envelope>
Microsoft Confidential
WS-Discovery Probe Match Message WS-Discovery Probe Match Message OutlineOutline<s:Envelope ... ><s:Envelope ... > <s:Header ... ><s:Header ... > <a:Action ... ><a:Action ... > http://schemas.xmlsoap.org/ws/2005/04/discovery/ProbeMatcheshttp://schemas.xmlsoap.org/ws/2005/04/discovery/ProbeMatches </a:Action></a:Action> <a:MessageID ... ><a:MessageID ... >xs:anyURIxs:anyURI</a:MessageID></a:MessageID> <a:RelatesTo ... ><a:RelatesTo ... >xs:anyURIxs:anyURI</a:RelatesTo></a:RelatesTo> <a:To ... ><a:To ... >xs:anyURIxs:anyURI</a:To></a:To> <d:AppSequence ... /><d:AppSequence ... /> ...... </s:Header></s:Header> <s:Body ... ><s:Body ... > <d:ProbeMatches ... ><d:ProbeMatches ... > [<d:ProbeMatch ... >[<d:ProbeMatch ... > <a:EndpointReference> ... </a:EndpointReference><a:EndpointReference> ... </a:EndpointReference> [<d:Types>[<d:Types>list of xs:QNamelist of xs:QName</d:Types>]?</d:Types>]? [<d:Scopes>[<d:Scopes>list of xs:anyURIlist of xs:anyURI</d:Scopes>]?</d:Scopes>]? [<d:XAddrs>[<d:XAddrs>list of xs:anyURIlist of xs:anyURI</d:XAddrs>]?</d:XAddrs>]? <d:MetadataVersion><d:MetadataVersion>xs:unsignedIntxs:unsignedInt</d:MetadataVersion></d:MetadataVersion> ...... </d:ProbeMatch>]*</d:ProbeMatch>]* ...... </d:ProbeMatches></d:ProbeMatches> </s:Body></s:Body>
</s:Envelope></s:Envelope>
Microsoft Confidential
WS-Discovery Resolve Message OutlineWS-Discovery Resolve Message Outline<s:Envelope ... ><s:Envelope ... > <s:Header ... ><s:Header ... > <a:Action ... ><a:Action ... > http://schemas.xmlsoap.org/ws/2005/04/discovery/Resolvehttp://schemas.xmlsoap.org/ws/2005/04/discovery/Resolve </a:Action></a:Action> <a:MessageID ... ><a:MessageID ... >xs:anyURIxs:anyURI</a:MessageID></a:MessageID> [<a:ReplyTo ... >[<a:ReplyTo ... >endpoint-referenceendpoint-reference</a:ReplyTo>]?</a:ReplyTo>]? <a:To ... ><a:To ... >xs:anyURIxs:anyURI</a:To></a:To> ...... </s:Header></s:Header> <s:Body><s:Body> <d:Resolve ... ><d:Resolve ... > <a:EndpointReference> ... </a:EndpointReference><a:EndpointReference> ... </a:EndpointReference> ...... </d:Resolve></d:Resolve> </s:Body></s:Body></s:Envelope></s:Envelope>
Microsoft Confidential
WS-Discovery Resolve Match Message WS-Discovery Resolve Match Message OutlineOutline<s:Envelope ... ><s:Envelope ... > <s:Header ... ><s:Header ... > <a:Action ... ><a:Action ... > http://schemas.xmlsoap.org/ws/2005/04/discovery/ResolveMatcheshttp://schemas.xmlsoap.org/ws/2005/04/discovery/ResolveMatches </a:Action></a:Action> <a:MessageID ... ><a:MessageID ... >xs:anyURIxs:anyURI</a:MessageID></a:MessageID> <a:RelatesTo ... ><a:RelatesTo ... >xs:anyURIxs:anyURI</a:RelatesTo></a:RelatesTo> <a:To ... ><a:To ... >xs:anyURIxs:anyURI</a:To></a:To> <d:AppSequence ... /><d:AppSequence ... /> ...... </s:Header></s:Header> <s:Body ... ><s:Body ... > <d:ResolveMatches ... ><d:ResolveMatches ... > [<d:ResolveMatch ... >[<d:ResolveMatch ... > <a:EndpointReference> ... </a:EndpointReference><a:EndpointReference> ... </a:EndpointReference> [<d:Types>[<d:Types>list of xs:QNamelist of xs:QName</d:Types>]?</d:Types>]? [<d:Scopes>[<d:Scopes>list of xs:anyURIlist of xs:anyURI</d:Scopes>]?</d:Scopes>]? <d:XAddrs<d:XAddrslist of xs:anyURIlist of xs:anyURI</d:XAddrs></d:XAddrs> <d:MetadataVersion><d:MetadataVersion>xs:unsignedIntxs:unsignedInt</d:MetadataVersion></d:MetadataVersion> ...... </d:ResolveMatch>]?</d:ResolveMatch>]? ...... </d:ResolveMatches></d:ResolveMatches> </s:Body></s:Body></s:Envelope></s:Envelope>
Microsoft Confidential
WS-* Specifications ProcessStep 2
Broader Community Participation
Step 1Initial
Development
Process reconciles conflicting goals• Quality of engineering• Time to market• Breadth of industry support
Step 3Standardization
Step 4Profiling
Increasing Industry ParticipationIncreasing Industry Participation
Specification Specification PublishedPublished
Feedback and Feedback and Interop Interop
WorkshopsWorkshopsRevise specRevise spec Standards OrgStandards Org WS-IWS-I
Idea
Microsoft Confidential
WS-* Spec Status
Assurances
Messaging
SOAP
WS-Security
MTOMWS-Addressing
Metadata
WS-Policy
WSDL
WS-Discovery
UDDI
WS-MetadataExchange
WS-Transfer WS-Enumeration WS-Eventing
XML Schema
WS-ReliableMessaging
WS-Coordination
WS-AtomicTransaction
WS-BusinessActivity
WS-Trust
WS-SecureConversation
Infrastructureand ProfilesWS-ManagementWS-Federation
DevicesProfile
Foundation
SOAP / HTTP
SOAP / UDP
MIME
XML Infoset
XML 1.0XML
Namespaces
Step 4 – Approved Standard
Step 3 – Standardization
Step 2 – Workshops & Community Dev
MicrosoMicrosoftft
IntelIntel
SunSun
DellDell
AMDAMD AA
CACA AA
SonicSonic AA
gSOAPgSOAP
SystineSystinett
AA
WEBMWEBM
NetIQNetIQ
WS-P
WS-* - Industry AdoptionWS-* - Industry Adoption
Messaging
Security
Assurances
Devices
Mgmt
Metadata
DPWS
WS-
Secure
Conv
WS-S
ecurit
y
WS-T
rust W
S-RM
WS-A
T
MEX
WS-D
Released productReleased product
Public interopPublic interop
AA Co-Author OnlyCo-Author Only
SOAP / W
SDL
MicrosoftMicrosoft
IBMIBM
BEABEA AA
Cape ClearCape Clear
SystinetSystinet
Blue TitanBlue Titan
Rogue Rogue WaveWave
SonicSonic
IONAIONA
JBossJBoss
ChoreologyChoreology
ApacheApache
TibcoTibco
MicrosoftMicrosoft
IBMIBM
BEABEA AA
RSARSA AA
SystinetSystinet
ApacheApache
Layer7Layer7 AA
DataPowerDataPower
CACA AA AA
SUNSUN
SAPSAP
TibcoTibco
IONAIONA
WebMethoWebMethodsds
NokiaNokia
Cape ClearCape Clear
SonicSonic
gSOAPgSOAP
Ping IDPing ID AA
NetegrityNetegrity AA AA
VerisignVerisign AA AA AA
OpenNetwOpenNetworkork
AA AA AA
Oracle/Oracle/OblixOblix
MicrosoftMicrosoft
IBMIBM
BEABEA
SUNSUN
GoogleGoogle
AmazonAmazon
eBayeBay
ApacheApache
WhitemesWhitemesaa
gSOAPgSOAP
RicohRicoh
EpsonEpson
HPHP
XeroxXerox
Fuji-XeroxFuji-Xerox
IntelIntel
CanonCanon
MicrosoftMicrosoft
IntelIntel
CanonCanon
BEABEA AA
WebMethoWebMethodsds
AA
RicohRicoh
EpsonEpson
HPHP
XeroxXerox
Fuji-XeroxFuji-Xerox
BrotherBrother
ToshibaToshiba
ExceptionaExceptional l InnovationInnovation
PeerlessPeerless
SchneiderSchneider
SystinetSystinet
gSOAPgSOAP
LexmarkLexmark AA
MicrosoftMicrosoft
IBMIBM AA
BEABEA AA
SAPSAP AA
SunSun AA
VerisignVerisign AA
SonicSonic
Layer 7Layer 7
ApacheApache
CACA AA
WebMethoWebMethodsds
AA
SystinetSystinet
gSOAPgSOAP
MTOM
© 2003-2006 Microsoft Corporation. All rights reserved. The information contained in this document represents the current view at the time of publication and is subject to change.
WS-M
WS-X
Fer /
Enum
WS-F
ed