Web Services On Devices In Windows Vista Dave Roth Program Manager Windows Device Experience Group Microsoft Corporation.

Slides:



Advertisements
Similar presentations
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Advertisements

© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
Preface Demo A Quick Thank You How Did We Do It?
Windows 8 (1) (2) (3) Windows 8 (1) (2) (3)
Feature: Identity Management - Login © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or.
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
© 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Web Services On Devices The protocol now and for the future Rob Williams Program Manager Windows Device Experience Group Microsoft Corporation.
Feature: Purchase Requisitions - Requester © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
MIX 09 4/15/ :14 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
demo Default WANGPSLookup Default WANGPS.
Feature: Payroll and HR Enhancements © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or.
Co- location Mass Market Managed Hosting ISV Hosting.
Rob Williams Program Manager Microsoft Corporation.
Windows 7 Training Microsoft Confidential. Windows ® 7 Compatibility Version Checking.
Multitenant Model Request/Response General Model.
demo.
Rally Technologies Spring 2008, Redmond, Washington Network Connected devices with Windows SideShow™ Teague Mapes, Lead Developer,
Rob Hwacinski Program Manager Windows Embedded CE Microsoft Corporation ECE205 Web Services on Devices in Windows® Embedded CE 6.0.
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
Announcing Demo Announcing.
Feature: Web Client Keyboard Shortcuts © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are.
Feature: SmartList Usability Enhancements © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
Session 1.
Built by Developers for Developers…. © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
Feature: Assign an Item to Multiple Sites © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
Windows 8 (1) (2) (3) Windows 8 (1) (2) (3)
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
Feature: Print Remaining Documents © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or.
Connect with life Connect with life
demo Receive Inventory Export Parse and Normalize.
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
Feature: Document Attachment –Replace OLE Notes © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product.
Building Social Games for Windows 8 with Windows Azure Name Title Microsoft Corporation.
announcing Dev Manager Do I understand what we’ve built? Developer Can I bet on using this shared component? Testers What’s changed since I last.
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or.
demo Instance AInstance B Read “7” Write “8”

customer.
demo © 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
Browser Identity Provider Access Control Application.
demo Demo.
demo QueryForeign KeyInstance /sm:body()/x:Order/x:Delivery/y:TrackingId1Z
Feature: Suggested Item Enhancements – Analysis and Assignment © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and.
projekt202 © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are.
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks.
© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or.
Jim Barber Sr. Program Manager Windows Rally. Be a leader in advancing 64-bit computing Adopt best practices and new tools Let’s partner on new hardware.

IoCompleteRequest (Irp);... p = NULL; …f(p);
DataModel VisualizationExternal Assets Workbook Excel Services API BrowserRich Apps EWA JSOMBrowser REST BrowserRich Apps.
Web Services On Devices: Rally Implementation
Understanding Wi-Fi Direct in Windows 8
Title of Presentation 12/2/2018 3:48 PM
Building event-driven, long-running apps with Windows workflow
Create rich, data-driven Web apps with ASP.NET 4.5 Web Forms
8/04/2019 9:13 PM © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
SharePoint 2013 Authentication with Azure – Part 1
Windows 8 Security Internals
Виктор Хаджийски Катедра “Металургия на желязото и металолеене”
Distributed Applications on Windows Vista
Шитманов Дархан Қаражанұлы Тарих пәнінің
SharePoint 2013 Authentication with Azure – Part 2
Title of Presentation 5/24/2019 1:26 PM
WCL425 App Compat for Nerds Chris Jackson.
Presentation transcript:

Web Services On Devices In Windows Vista Dave Roth Program Manager Windows Device Experience Group Microsoft Corporation

Agenda Web Services on Devices (WSD) Devices Profile for Web Services (DPWS) DiscoveryDescription Control and eventing Demo Windows Vista’s support for WSD WSD on Windows Vista WSDAPI Architecture Client code Generating WSDAPI Code

Windows ® Rally™ Program Simple Unified License Access to Technologies Technical Guidance

Windows ® Rally™ Devices Reliable and simple to manage Effortless to configure and maintain More secure and provide rich digital experiences

Windows Rally Experiences Applications IP Network (IPv4, IPv6) Wireless Setup Ethernet/Wireless Quality of Service AV Devices Discovery Network Map Windows Rally Experiences Device Specific Drivers Management Interfaces Networked Devices LLTD: Quest ExtensionsLLTD: Topology MapWindows Connect Now UPnP Plug and Play Extensions Windows Rally Technologies Function Discovery Device Profile for Web Services

Web Services On Devices Devices profile for web services (DPWS) Defines how devices can use Web Services Supports resource constrained devices Ensures interoperability between devices and PCs Enables device and service discovery Supports rich eventing Endpoint provides device/host metadata Built on standards and WS specifications WS-AddressingWS-EventingWS-MetadataTransfer HTTP/1.1 WSDL 1.1 SOAP 1.2 WS-Discovery

Web Services On Devices Windows Vista support Windows Vista WSD support PrintingScanningProjectorsComputers WSD API Supports DPWS Function Discovery discovers WSD devices PnP-X detects WSD device presence

Web Services On Devices Discovery Uses the WS-Discovery specification Multicast announcements Multicast query requests (probe/resolve) Unicast responses Device announces presence Send out Hello and Bye messages Device responds to client requests Probe: Identify a device or service Resolve: Locate device or service endpoint Get information via metadata exchange

Web Services on Devices Discovery Hello! ResolveMatch: Sure do! Hello! Bye! Hello! Probe: Printer ProbeMatch: Hey, I’m a printer! Resolve: Got an Endpoint? Client Service Device Probe Resolve Metadata Exchange

Probe Request: Looking for printers Web Services On Devices Discovery urn:schemas-xmlsoap-org:ws:2005:04:discovery urn:uuid:95854ad7-d7ef-4769-bcbb-0648a5fa39d6 wsdp:Device wprt:PrintDeviceType

Web Services On Devices Description Metadata Exchange: Response to get request <soap:Envelope xmlns:soap=" xmlns:wsa= xmlns:wsx=" xmlns:wsdp=" > ACME Manufacturing ColourBeam 9 ColorBeam 9 ACME ColourBeam Printer ACME ColorBeam Printer

Web Services On Devices Control and eventing Contract defined by WSDL and XML schema Ensures common baseline for interop Uses standard WSDL/1.1 Presents rich eventing model WSDL allows for detailed events Client subscribes to events Device pushes events to clients Supports a Secure Channel Based on SSL Provides encryption Supports host and client authentication

WSD Scanning And Printing Shang-Lin Chuang Program Manager Digital Documents Group

WSD On Windows Vista WSDAPI “Web Services on Devices API” Implements DPWS compliant SOAP stack Implements discovery networking stack Low level API Unmanaged code ‘C++’ Interfaces Discovery/PublicationClient/Hosting Works with Function Discovery, PnP-X

WSD On Windows Vista Device discovery and description Function Discovery discovers devices Query network for devices and services Notifies application when devices go on/offline Supports Directed Discovery Provides device description metadata Enables device activation PnP-X manages “associated” devices Detect networked device presence Load drivers for networked devices

WSDAPI Architecture Session Client API Host API Generated Code Client Application HTTP TransportUDP TransportListener Address Resolver Hosted Device Message Queuing Provided by: Microsoft ISV/IHV Code Gen

WSD On Windows Vista WSDAPI code generation tool Code Gen tool abstracts complexity Converts WSDL types into WSDAPI calls Complies WSDL into C++ code Proxy code – Used by clients Stub code – Used by hosts IDL – Describes interfaces Apps call into generated code

WSD On Windows Vista WSDAPI proxies Device proxy Obtained via FD Function Instance (FI) Used to obtain service proxy Service proxy Service proxy is the control channel Used to initialize COM based object “Activation Layer” for class ID

Void ActivationLayer( IFunctionInstance *pIFuncInst, REFIID riid, void **ppObject) { // Declaration/Initialization code left out for brevity... if ( NULL == pIFuncInst || __uuidof(IMyIf) != riid ) return( E_INVALIDARG ); hr = GetDeviceIdentity( pIFuncInst, &identity ); if ( S_OK == hr ) hr = WSDXMLCreateContext( &spWSDXMLContext ); if ( S_OK == hr ) hr = MyDeviceRegisterNamespaces( spWSDXMLContext ); if ( S_OK == hr ) hr = MyDeviceRegisterTypes( spWSDXMLContext ); if ( S_OK == hr ) hr = WSDCreateDeviceProxy( remoteUuid, sLocalAddress, spWSDXMLContext, &spWSDDeviceProxy ); if ( S_OK == hr ) hr = spWSDDeviceProxy->GetServiceProxyById( serviceId, &spWSDServiceProxy ); // Create COM object to host the WSD Proxy... if ( S_OK == hr ) pMyObjectProxy = new CMyObjectProxy(); if ( NULL == pMyObjectProxy ) hr = E_OUTOFMEMORY; if ( S_OK == hr ) hr = pMyObjectProxy->Init( spWSDServiceProxy ); if ( S_OK == hr ) hr = pMyObjectProxy->QueryInterface( __uuidof(IMyIf), ppObject ); if ( S_OK != hr && NULL != pMyObjectProxy ) pMyObjectProxy->Release(); } WSD On Windows Vista WSDAPI client code Query Function Discovery for FI Activate Service from FI Interact with service via proxy void PlayMusic( CMyObjectProxy *pServiceProxy ) { IWSDOutboundAttachment* pAudioStream = NULL; WCHAR* szTitle = L”My Audio Track”; CreateStream( &pAudioStream, L”c://song.mp3” ); pServiceProxy->MyIfDisplayString( L“Hello World”); pServiceProxy->MyIfPlaySong( szTitle, pAudioStream ); pAudioStream->Release(); } void QueryFD() { hr = spDiscovery->CreateInstanceCollectionQuery( FCTN_CATEGORY_WSDISCOVERY, NULL, TRUE, spNotify, &spFunQuery ); if ( SUCCEEDED( hr )) hr = spFunQuery->Execute( &spFunInsts ); } HRESULT OnUpdate( QueryUpdateAction eAction, IUnknown *pIUnknownForQuery, IFunctionInstance *pInstance) { IMyIF* pServiceProxy = NULL; if( NULL == pInstance) return( E_INVALIDARG ); pInstance->QueryService( pInstance, __uuidof(IMyIF), &pServiceProxy ); PlayMusic( pServiceProxy ); }

WSD On Windows Vista WSDAPI code generation process Takes in WSDL and XML Schema Code generation WSDL IDL..cpp Generate IDL and proxy/stub code Compile and link Application Run Code Generation tool Compile with App code Produce executable

Call To Action Implement WSD support on devices Implement PnP-X compliance Write FD activation code Use WSDAPI for WSD drivers and apps Use FD and PnP-X to discover devices and load drivers Check out the Rally web site Read whitepapers Toolkit available end of 2006

Related Sessions CON106 Web Services on Devices: Current and Future Directions CON254 Plug and Play for Network Connected Devices CON275 Web Services on Devices Hands-On Lab PRI113 Windows Image Acquisition Enhancements in Windows Vista Ask the Experts Microsoft Pavilion

Additional Resources Microsoft Rally Devices Profile for Web Services (February 2006) WSD Developer Story Windows’ Web Services Web Services Feedback Workshops Web Services Basics webservicebasics/default.aspx webservicebasics/default.aspx

© 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.