Docstoc

Microsoft Messaging Technologies Today

Document Sample
Microsoft Messaging Technologies Today Powered By Docstoc
					Microsoft Web Services
Technologies Today



Benjamin Mitchell
Independent Consultant
Microsoft Regional Director/MVP
benjaminm@benjaminm.net
http://benjaminm.net
Overview

 Sending interoperable messages with
 ASP.NET Web Services
 General Issues Around Services
 Understanding advanced WS-* protocols
 Supporting advanced WS-* protocols with
 the Web Services Enhancements
 Managing Business Processes with
 BizTalk 2004
Sending interoperable
messages
with ASP.NET Web Services
ASMX Messaging
 Easiest way to send messages via
 SOAP
 Create an *.asmx file
 Write a class
 Decorate methods with [WebMethod]
 OneWay or RequestResponse
Secret Look at the Future

[WebMethod(IsInteroperableFastSca
  lableAndReliable=true)]
public bool DoSomething()
  {
 …
 }
ASMX 2.0 Improvements

 Interoperability
   WS-I Base Profile 1.1 Conformance
   SOAP 1.2 support
 Extensibility
   Custom serialization and streaming
   Custom proxy code generation
ASMX 2.0 Improvements

 Client Programming Model
  Easy to use async programming model
  Easy databinding
  Type sharing across Web services
 Performance
  Lowered startup latency
  Lowered bandwidth utilization through
  compression
 Hosting in any AppDomain with
 HttpListener on top of HTTP.SYS
Typical Success Story: Danske Bank
Institutional
                                                                     Real Time
Partners                Danske Bank Web Services
                         Stock quotes
                         Bond quotes
 ERP
                         Currency trading
 Excel




                                                             Win2K
                                                     WSE
 Other                      Web Service                               XML



                Politiken                                                    Mainframe
                 Portal                      Cache

                                                           15min Refresh
                             Routing Based
 Politiken                   on User
 Readers
Problems with ASMX

Simple programming model is not explicit
about boundaries
  Can be too RPC like
Limited to HTTP
Difficult extension mechanism
Does not support the more advanced
WS-* specifications
General Issues Around
Services
Message Design: Contract First



   Schema First          Code First
[right on the wire]   [easy to program]
Does Schema lead to better
versioning?
<schema targetNamespace="http://people" xmlns="...">
    <element name="person">
      <complexType>
       <sequence>
          <element name="name" type="string"/>
             <any processContents="lax" minOccurs="0"
              maxOccurs="unbounded" />
       </sequence>
       <anyAttribute processContents="lax"/>
       <attribute name="version" type="string" use="required"/>
       </complexType>
   </element>
</schema>
Is Base Profile Conformance
Enough?
 Do we need a Base Profile for Schema?

                          UDDI 2.0

                          WSDL 1.1

                          SOAP 1.1

                          XSD 1.0

                          XML 1.0

                          HTTP(S)
What’s the Profile Recipe:
Staple, Redline, Glue
  SOAP 1.2
        WS-                        “Staple”
     Addressing
             WS-
           Metadata 1.1
               WSDL                  Pull relevant specs
           Exchange WS-              into scope
                   Discovery
                          WS-
                        Eventing
                                   “Redline”
                                     Add constraints on
                                     use of those specs
 ThisModel
  ThisDevice
 Metadata                          “Glue”
   Metadata
                       Action        Define missing bits
Conformance            Filter        between specs
   Claim
                                     Some will migrate
   Policy                            back into specs
    Policy
 Assertions
  Assertions
Interoperability Recommendations
General Recommendations
    Use XSD first to define messages
    Keep to the 9 primitive types outlined by XSD
        xsd:byte, xsd:boolean, xsd:dateTime, xsd:double, xsd:float,
        xsd:int, xsd:long, xsd:string, xsd:short
    Watch those arrays!
    Watch those NULL values!
    Watch those xsd:dateTimes!
Are web services fast enough?
                                                          Calls Per Second




                                                   2000
                                                          4000
                                                                 6000
                                                                        8000
                                                                               10000
                                                                                               12000
                                                                                                               14000




                                        0
                 Enterprise Services
                                                                                                       12778


           Enterprise Services (auth)
                                                                                       10318


               Remoting TCP/Binary




                                             516
              Remoting HTTP/Binary




                                            327
              Remoting HTTP/SOAP


             ASP.NET Web services           326
                                            270



  ASP.NET Web services - Integrated
                                            226




         Remoting HTTP/Binary (IIS)
                                                                                                                                                      Empty Method Call




                                            224




         Remoting HTTP/SOAP (IIS)
                                            224
                                                                                                                       Empty Method (Cross Process)




  ASP.NET Web services - Password
                                            216




Remoting HTTP/Binary (IIS) Integrated
                                            195




Remoting HTTP/SOAP (IIS) Integrated
                                            195




Remoting HTTP/Binary (IIS) Password
                                            187




Remoting HTTP/SOAP (IIS) Password
                                            187
                                                           Calls Per Second




                                        0
                                            20
                                                      40
                                                              60
                                                                        80
                                                                                  100
                                                                                        120
                                                                                              140
                                                                                                          160

                 Enterprise Services
                                                                                                    147




           Enterprise Services (auth)
                                                                                                    147




                                                                              91
             ASP.NET Web services                                            85



  ASP.NET Web services - Password
                                                                        75




Remoting HTTP/Binary (IIS) Integrated
                                                                   66




  ASP.NET Web services - Integrated
                                                      33




               Remoting TCP/Binary
                                                  30




              Remoting HTTP/Binary
                                                  30




              Remoting HTTP/SOAP
                                                                                                                Load Product Catalog as Objects




                                                  29




         Remoting HTTP/SOAP (IIS)
                                                  29




         Remoting HTTP/Binary (IIS)
                                                  28




Remoting HTTP/SOAP (IIS) Password
                                                                                                                                                  Larger payload, simple op



                                                  28




Remoting HTTP/Binary (IIS) Password
                                                 25




Remoting HTTP/SOAP (IIS) Integrated
                                                      Calls Per Second




                                        0
                                            10
                                                 20
                                                         30
                                                              40
                                                                        50
                                                                                   60
                                                                                              70
                                                                                                        80
                                                                                                   74
           Enterprise Services (auth)
                                                                                                   74

                 Enterprise Services                                                     63


             ASP.NET Web services
                                                                                        60




  ASP.NET Web services - Password
                                                                                   57




               Remoting TCP/Binary
                                                                                  54




              Remoting HTTP/Binary
                                                                                  54




              Remoting HTTP/SOAP
                                                                             51




Remoting HTTP/Binary (IIS) Integrated
                                                                             50




         Remoting HTTP/Binary (IIS)
                                                                                                             Store Purchase Order (as Objects)




                                                                             50




         Remoting HTTP/SOAP (IIS)
                                                                         49




Remoting HTTP/SOAP (IIS) Password
                                                                                                                                                 Small payload, busy op


                                                                         49




Remoting HTTP/Binary (IIS) Password
                                                                         49




  ASP.NET Web services - Integrated
                                                                   40




Remoting HTTP/SOAP (IIS) Integrated
Proving that the protocols can
work: Web Services
Enhancements
WS-* Architecture
  Devices                                       Profiles and     Metadata
               WS-Management    WS-Federation Infrastructure
  Profile

 WS-Secure                      WS-Business      Assurances
Conversation                      Activity                      WS-Metadata
                                                                 Exchange
                                 WS-Atomic
 WS-Trust
                                 Transaction                       UDDI
                WS-Reliable
WS-Security                    WS-Coordination
                Messaging                                        WS-Policy

                                                  Messaging
                                                                  WSDL


   SOAP        WS-Addressing        MTOM                        XML Schema


                                                                   Foundation
XML Infoset

                   XML
  XML 1.0                           MIME          SOAP / HTTP
                Namespaces
WS-* Specification Process

 Specification   Feedback & Interop Workshops   Standards Org     Profiles
  Published         Revise / republish spec




   Step 1                 Step 2                     Step 3        Step 4
  Develop           Broader Participation       Standardization   Profiling


                                    Industry Participation



     Process reconciles conflicting goals
     • Quality of engineering
     • Time to market
     • Breadth of industry support
Status                                                   Step 1-2   Step 2   Step 3-4



                                    Devices       Infrastructure      Metadata
WS-Federation   WS-Management                       and Profiles
                                    Profile

 WS-Secure                       WS-Business       Assurances
Conversation                       Activity                         WS-Metadata
                                                                     Exchange
                                  WS-Atomic
  WS-Trust
                                  Transaction                           UDDI
                 WS-Reliable
 WS-Security                    WS-Coordination
                 Messaging                                            WS-Policy

                                                    Messaging
                                                                        WSDL


   SOAP         WS-Addressing       MTOM                            XML Schema


                                                                         Foundation
 XML Infoset

                    XML
   XML 1.0                           MIME           SOAP / HTTP
                 Namespaces
    Delivering WS-* - Microsoft
    Windows
                                                                          Longhorn
     Server                           “R2” Wave
                                                                            Wave
      2003

VS2003 + Web Services             VS 2005 + WSE 3.0                   Indigo
Enhancements (WSE) 2.0               SOAP 1.1, 1.2 / WSDL 1.1           Wire-level interop with WSE3.0
                                     MTOM                                plus
   SOAP 1.1 / WSDL 1.1
                                     WS-Addressing 2004/08 (or          MTOM
   WS-Addressing 2004/03             REC)                               SAML Token Profile 1.0
   WS-Security 1.0 (U/P, X509,      WS-Security 1.0 (U/P, X509,
    Kerberos)                                                            Security Policy
                                      Kerberos)
   WS-Secure Conversation           WS-Secure Conversation             WS-Federation Active Client
    2004/04                          WS-Trust                              Enables easy to build STS
   WS-Trust 2004/04                 WS-Policy                          WS-RM 2005/02, Policy
   WS-Policy                        Limited wire interop with          WS-AT/WS-C 2005/02, Policy
                                      WSE2.0
                                                                         WS-Policy/PolicyAttachment
                                  AD Federation Services in R2           WS-MEX
                                     Cross-organizational Identity
                                      Federation                      Easy to use Digital Identity
                                     Web SSO

                                                                      Active Directory: Federation
                                  SQL Server 2005
                                     SOAP 1.1, 1.2 / WSDL 1.1
                                     WS-Security 1.0                 WSD API: Device Profile

                                  Management
                                     WS-Management
   Delivering WS-* - Other vendors
    Messaging
      WSDL                   Security                       RM, TX              Mgmt

    Microsoft             Microsoft                 Microsoft          Microsoft           

    IBM                   IBM                       IBM                Intel               

    BEA                   BEA                    A   BEA             A   Sun                 

    SUN                   SUN                          SAP                 Dell                

    Oracle                 Oracle                       Tibco        A       AMD          A
                            SAP                                             CA                   A
    Google                                               Cape Clear   
                            Tibco                                             Sonic                A
    eBay                                                 Systinet     
                            IONA                                              Systinet             A
    SAP                                                 Blue Titan   
                            Verisign                                       WEBM                
    Tibco                                                Rogue Wave   
                            RSA                    A                        NetIQ               
    IONA                                                IONA             
                            WebMethods    
    Verisign                                             Arjuna              Devices
                            Systinet            
    RSA                                                  Choreology          Microsoft               
                            Oblix                  
    WebMethods                                           Apache              Intel                   
                            Apache              
    Systinet                                                                 Canon                   
                            CA               A   A
    Oblix                                               Metadata             BEA              A
    Arjuna                HP            A
                                                          Microsoft          WebMethods       A
    Apache                Hitachi       A                                    Ricoh                   
                                                          IBM             
    Cape Clear            Netegrity     A   A   A                           Epson                   
                                                          BEA          A   
    Intel                 OpenNetwork   A   A   A                           HP                      
                                                          SAP          A   
    Canon                                                                    Xerox                   
                            Ping ID       A   A         Sun          A
                                                          Verisign         A   Fuji-Xerox              
             Released      Nokia         
                                                          Sonic            A   Brother          
Under Development                                                             Systinet         
                                                          CA           A
   Co-Author Only       A                                 WebMethods   A       Lexmark                  A
WSE supports emerging standards

Implementation of additional WS-* protocols
  Security, Policy and Addressing
Support for multiple protocols
Improved support for explicit messaging
Separate pipeline that can be hooked into
ASP.NET or hosted
Ability to create SOAP Intermediaries
How does WSE work?

     SoapContext




                                    Referral

                                               Policy

                                                          Custom
              Trace

                         Security




                                                                   User Code
                      Security                          Custom
                       Token                             Filters
                      Manager
Secure Communication
Protocol-level security
        SSL Security      SSL Security




  Encrypts the entire message
  Sender must trust all intermediaries
  Restricts protocols that can be used
Secure Communication
Message-level security



  End to end message security independent of transport
  Supports multiple protocols and multiple encryption
  technologies
  Encrypt only parts of the message
  Sender need only trust endpoint
WSE Security

Secure the message rather than the wire
Secure various parts of the message
Mechanism for carrying security tokens
  Independent kind of security token
  Support for Kerberos, X509 Certificate and
  Username/Password
  Future support for SAML and other identity tokens
WSE Policy Driven Architecture

 Beyond WSDL, what else is needed to
 describe a Web service?
 These other attributes of a service can be
 described with WS-Policy
   XML-based language
   Complex: <Or>, <ExactlyOne>, etc…
 WSE provides a Policy Framework with
 send-side and receive-side policy support
WSE Messaging

Support for one-way messaging or
client/server model
Full support over dispatch and handling of the
messages
Low-level queue for receiver processing.
WSE 2.0 Messaging
 WSE 2.0 includes a SOAP-based
 messaging API
 Transport independence
  Intra-AppDomain
    For testing
  Raw TCP
  HTTP
 Host Independence
  Windows application
  ASP.NET
  Windows Service
WSE 3.0 Feature Highlights
 .NET Framework Integration
   Extend ASMX programming model on all transports
   64 bit support
   Visual Studio 2005 IDE integration
   Performance Improvements
 Interoperability and Conformance
   Policy assertions for standard security scenarios
   Wire level interoperability with Indigo and 3rd party stacks
   MTOM – Message Transmission Optimization Mechanism
   WS-* updates
   SOAP 1.2
 Tools
   Security settings tool for standard security scenarios
   Configuration file migration from WSE 2.0 to WSE 3.0
WS-Security: Interop with
Released Products
WSE2.0 SP2                           WebSphere   Weblogic               Sun
Client/Server    Scenario            6.0         8.1.4       Systinet   JWSDP 1.4
Client           UsernameToken       Green       Green       Green      Green
Service          UsernameToken       Green(1)    Green(1)    Green(1)   Green(1)
Client           X509 Sign           Green(2)    Green       Green      Green
Service          X509 Sign           Green(2)    Green       Green      Green
Client           X509 Sign-Encrypt   Red(3)      Green       Green      Green
Service          X509 Sign-Encrypt   Red(3)      Yellow(4)   Green      Green

(1)      Requires a configuration change at WSE service
(2)      Requires a configuration change at WebSphere service or client
(3)      WebSphere 6.0 followed OASIS Oct X509 token profile errata for the value
         of wsse:KeyIdentifier\@ValueType, which differs from OASIS standard.
(4)      WebLogic 8.1.4 uses wrong encryption type on the Body element. Fix is
         available from BEA support services.
Can I use WSE today?

 Support policy is the same as .NET 1.1
 New versions likely to break previous
   Side-by-side support so far
Issues with WSE

Complex to setup and use
Requires developers to muck with the
plumbing
  Small but breaking changes even with point
  releases
HTTP is still the only protocol for
interoperability
  Unsupported demos over TCP with Apache Axis
WSE 3.0 - The Road to Indigo
 WSE supports service orientated Architectures
   Explicit boundaries
   Autonomy
   Define contracts with schema
   Describe requirements with policy
 WSE 3.0 is the road to Indigo
   Support for standard interoperable security scenarios
   Wire level interoperable with Indigo Beta 1
   WSE 3.0 runs side-by-side with Indigo
   Upgrade guidance will be provided from WSE 3.0 to
   Indigo
Exploiting SOA: Composite
Applications
 Composite applications can be created using process
 logic to invoke business services

                     Process Logic




   Business             Business             Business
    Service              Service              Service

Application A        Application B        Application C

                Composite Application
Implementing Process Logic:
Orchestrations
 The most commonly used term for process
 logic today is orchestration
 Orchestrations can benefit from a platform
 expressly designed to support them
   An application server isn’t enough
 The goal: Business Process Management
 (BPM)
   Supported by a BPM server
Supporting Orchestrations: BPM Servers

Development                                     Management
   Tools                                           Tools

          Workflow                        Process Monitoring
          Services                             Services

Business Rules                                  Other
   Services           Orchestrations           Services

              Orchestration Runtime Services

                 Communication Services

                     Application Server
                     Operating System
Microsoft’s BPM Server: BizTalk Server 2004

Visual Studio .NET                          Health and Activity
  Orchestration Designer                     Tracking (HAT)


    Human Workflow                          Business Activity
       Services                             Monitoring (BAM)

    Business                                      More
   Rules Engine            Orchestrations



                     BizTalk Server 2004 Engine



                           .NET Framework
                               Windows
.NET Web Services Platforms
 ASMX is the current Web service platform
   Supports basic profile for simple services
   Doesn’t implement WS-* specifications
 WSE is a platform extension
   Can be used to extend ASMX behavior
   Can be used standalone without ASMX
   Provides support for several WS-* specs
 Indigo is the next-generation Web service
 platform
   Provide a unified programming model along
   with comprehensive support for WS-* specs
 BizTalk is a Business Processes
 Management server

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:6
posted:5/21/2012
language:English
pages:43