Transcript Slide 1
CLI357: Web Services For Windows Mobile Devices And The .NET Compact Framework casey chesnut brains-N-brawn LLC http://www.brains-N-brawn.com Windows Mobile Development Platform: Today Visual Studio .NET Embedded VC++ Managed Native MFC ATL Server side ASP .NET Mobile Controls .NET Compact Framework Win32 Software Platform (APIs) Device Management Communication Presentation Data Access Remote API Configuration Bluetooth Security Connection Manager TAPI SMS MAPI POOM ActiveSync Multimedia Home Screen User Interface/Shell HTML Control ADO CE XML CE DB OLE DB GAPI Windows Mobile Windows CE CE DB ActiveSync Pocket Outlook Pocket Internet Explorer Windows Media Player Drivers Device Hardware Processor Memory Display USB or Serial Radio GSM/GPRS CDMA/1xRTT WiFi Bluetooth Audience Web Services Cryptography Web Service Enhancements Context Calling advanced Web Services from the .NET Compact Framework Soap Extensions Web Service Enhancements Cryptography ASP.NET Web Services Compact Framework XML, XSD, SOAP WSDL, UDDI Agenda WS-Attachments WS-Addressing WS-Security Security Tokens Xml-Encryption Xml-Signature WS-SecureConversation WS-ReliableMessaging WS-Eventing Format Intro to WS-* Demo Conclusion [repeat] WS-Attachments Messages with external attachments Binary files XML fragments Builds upon DIME Proposed by Microsoft and IBM to IETF Alternate to base64 / hex encoding Alternate to SwA (and PASwA) DIME Message DIME Record Soap Envelope DIME Record Binary Attachment DIME Direct Internet Message Encapsulation WS-Attachments WS-Attachments Reduces message size Reduces CPU usage Available toolkits from MS and IBM WSE 1.0 and WSE 2.0 2 processing models is bad To be superseded by MTOM (Message Transmission Optimization Mechanism) WS-Addressing Routing of SOAP messages Transport independent Supports intermediary processing nodes Proposed by Microsoft, IBM, BEA Supersedes WS-Routing Requester Router Web Service Web Service Web Service Farm WS-Addressing WS-Addressing <SoapEnvelope xmlns:wsa=“…/addressing”> <SoapHeader> <wsa:Action>http://NS/webMethod</wsa:Action> <wsa:From> <wsa:Address>http://wsa/anonymous</was:Address> </wsa:From> <wsa:MessageID>uuid:123</was:MessageID> <wsa:To>http://HOST/service.asmx</wsa:To> </SoapHeader> <SoapBody> <WebMethod/> </SoapMody> </SoapEnvelope> Simple and powerful WS-Security End-to-end message level security Authentication SecurityTokens Confidentiality Xml-Encryption Integrity Xml-Signature Proposed by Microsoft, IBM, Verisign Requester SSL Intermediary Web Service WS-Security Requester Web Service Intermediary Given server public key Attaches its public key, Signs with its private Generates random session key, Encrypts body Encrypts session key with server public key, Attaches Decrypts session key with its private key Decrypts body with session key Verifies signature with requester public key (2 step) Processes request WS-Security WS-Security THE most important spec for Web Services Lowest level of planned security stack WSE 1.0 and WSE 2.0 Xml-Enc and Xml-Sig by W3C and IETF Moved to OASIS, added Sun WS-SecureConversation For establishing security over multiple request scenarios SSL-like Server-side relies on WS-Trust Allows for key derivation Proposed by Microsoft, IBM, Verisign Security Token Service Requester Web Service WS-SecureConversation WS-SecureConversation Reduces key exchange Reduces private key usage WSE 2.0 Cryptography Crypto API 1.0 needs AES (required symmetric) RSA-OAEP (required key transport) SHA256 (recommended hash) Crytpo API 2.0 (Certificates) Needs a wrapper WS-ReliableMessaging Makes sure messages are delivered Can ensure proper ordering Proposed by Microsoft and IBM Not supported by WSE Alternate to WS-Reliability WS-ReliableMessaging Web Service Requester Sequence (MsgNum = 1) Sequence (MsgNum = 2) Sequence (MsgNum = 3), LastMessage SequenceAcknowledgement(1 , 3) Sequence (MsgNum = 2), AckRequested SequenceAcknowledgement(1 … 3) WS-ReliableMessaging WS-ReliableMessaging Necessary for unreliable networks Supported by Indigo today Rumored for WSE 3.0 release? WS-Eventing Subscription model to receive notifications Lease-based Depends on WS-Addressing Proposed by Microsoft, BEA, TIBCO Alternate to WS-Events, WS-Notifications Subscribe Renew Event Sink Unsubscribe SubscriptionEnd Event Source Mobile Web Server ASMX-like web service server for devices Developed with .NET Compact Framework Developed by Monash University, Caulfield, Australia Device Event Subscribe Application Web Service Mobile Web Server Notification WS-Eventing WS-Eventing Does not specify notifications Not supported by WSE SMS as alternate event hook Use a web server as a Remote Facade to make more complex calls WS-* WS-Utility (Timestamp) WS-Policy*, WS-Discovery WS-Trust, WS-Federation, * WS-AtomicTransaction, WS-Coordination, WS-BusinessActivity WS-… Future LBS MapPoint Web Service MapPoint Location Server Whidbey System.Security.Cryptography IPv6, Kerberos, NTLM, SOAP 1.2 XPath, Schemas, Serialization Messaging, Location Services Indigo Resources DIME, WS-Addressing, WS-Security http://www.brains-N-brawn.com/spCrypt http://www.brains-N-brawn.com/spWSE http://www.brains-N-brawn.com/cfWSE (old) WS-Eventing http://www.brains-N-brawn.com/wsEvent http://www.brains-N-brawn.com/cfEvent WS-ReliableMessaging http://www.brains-N-brawn.com/cfReliable WS-SecureConversation http://www.brains-N-brawn.com/cfSecConv Check Out These Sessions… Don Box Keynote CLI363 - Understanding Networking and Connectivity for Windows Mobile Devices SRV32 – Using Mobile Web Services After This Session… Visit the Windows Mobile booth to: Get the Windows Mobile Developer Resource Kit and start supporting landscape and high DPI Talk to the Technical Support team Join the Windows Mobile Solutions Partner Program Enter the Microsoft Mobile2Market Application Contest Fill in your evaluation form sponsored by AT&T Wireless 1 MPX200 given away per session. See www.mscorpevents.com/mdc Questions http://www.brains-N-brawn.com casey(at)brains-N-brawn.com © 2004 Microsoft Corporation. All rights reserved. MICROSOFT CONFIDENTIAL. INTERNAL USE ONLY.