Programming Web Services with Microsoft Web Services Enhancements v3.0

 

Web Services are very much in their infancy today, but the latest Web Service Enhancements pack from Microsoft is leading them towards industrial strength. See my newsletter about it at this link. Call today and let me tailor it to your needs.

 

Day 1

            Morning – Need for programs (as opposed to humans) to interact over the Web. Need for universal Web-based function calls. Using XML and HTTP as a common denominator. Concept of a Web Service, a .NET object automatically made accessible to client through standard Web protocols. Generating a Web service project, inheriting the system-provided Web Service base class. Connection of incoming protocols to Web Service methods, examination of  SOAP. Advertising of the server-side contract in the WSDL file. Writing client applications in each supported protocol. Design considerations for web services – state management, chunkiness, security

 

            Afternoon – Shortcomings of current web service architecture.  Need for standards definition and prefabricated implementation of common infrastructural problems. Examination of WS-* architecture specs. Introduction to Microsoft Web Service Extensions version 3.0. Examination of SOAP filter and SOAP context architecture. Working with message timestamp from client and server side.

 

Day 2

            Morning – Authentication part 1: Basic concepts, WS-Security overview, types of security tokens (Username, X509, and Kerberos). Drilldown into username token. Placing username token into client-side SOAP context and sending it to the server. Authenticating user in the SOAP filter chain on the server side. Identifying authenticated principal for use in web service's business logic.

 

            Afternoon – Authentication part 2: Special considerations of X509 certificates. Obtaining and managing certificates, creation of trust trees. Creating an X509 token, placing it into the client request, authenticating it on the server side. Special considerations of Kerberos tokens. Creating a Kerberos token, placing into the client request, authenticating it on the server side. Specifying authentication administratively as well as programmatically.

 

Day 3

            Morning – Packet Signing: Using signatures to detect tampering with web service packets in transit. Performing signature with each type of token on the client side. Standard portions of the SOAP packet that are included in the signature, overriding these standards to sign other portions. Processing signed messages on the server side, detecting and responding to tampering. Specifying signing administratively as well as programmatically.

 

            Afternoon – Encryption. Types of encryption, symmetric and asymmetric. Encrypting a client-side message with a symmetric key, processing it on the server side. Encrypting a client-side message with an X509 certificate, processing it on the server side. Dealing with failures of encryption. Discussion of key transfer problem. Specifying encryption administratively as well as programmatically.

 

Day 4

            Morning – Putting it all Together with the Secure Conversation Service: Concept of a trusted authentication and token issuing service.  Setting up the trust relationship between the parties. Working with MS-provided secure conversation service objects. Overriding the provided functionality, replacing it with your own. Examination of the secure conversation security token classes.

 

            Afternoon –  Peer to peer services: Special considerations of peer-to-peer operations. Identifying sender and recipient. Light-weight TCP platform in WSE. Specifying WS-Addressing and attachments.

 

Day 5

            Morning – Custom Filters: Examination of filter architecture, WSE-provided base classes. Selecting a base class, overriding the ProcessMessage method. Examination of the SoapEnvelope parameter class, using it to modify the incoming or outgoing XML packet. Use of the MustUnderstand SOAP attribute. Placing filter into the chain administratively. Modifying the WSE-provided filters, using code to change the default filter chain.

 

            Afternoon – Routing: Need for routing to be specified outside of application code. WS-Routing specification. Configuring a WSE router and specifying network topology. Modifying routing topology based on message content.