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.