Upload
jorgen-thelin
View
842
Download
1
Embed Size (px)
Citation preview
Web Services Web Services InteroperabilityInteroperability
Jorgen ThelinJorgen ThelinSenior Program ManagerSenior Program ManagerConnected Systems DivisionConnected Systems DivisionMicrosoft CorporationMicrosoft Corporation
Ensuring interoperability through Web Ensuring interoperability through Web services specificationsservices specifications
AgendaAgenda
What is InteroperabilityWhat is Interoperability
Ways to Achieve InteroperabilityWays to Achieve InteroperabilityWS-* Interop WorkshopsWS-* Interop Workshops
Plug-festsPlug-fests
Profiling / WS-IProfiling / WS-I
Microsoft’s Commitment to Microsoft’s Commitment to InteroperabilityInteroperability
What is Interoperability?What is Interoperability?
IntegrationIntegration
Combining software or hardware components or Combining software or hardware components or both into an overall system.both into an overall system.
InteroperabilityInteroperability
The ability to exchange and use information The ability to exchange and use information (usually in a large heterogeneous network made (usually in a large heterogeneous network made up of several local area networks)up of several local area networks)
The ability of software and hardware on multiple The ability of software and hardware on multiple machines from multiple vendors to communicatemachines from multiple vendors to communicate
Source: Dictionary.comSource: Dictionary.comhttp://dictionary.reference.com/search?q=interoperabilityhttp://dictionary.reference.com/search?q=interoperabilityhttp://dictionary.reference.com/search?q=integrationhttp://dictionary.reference.com/search?q=integration
It gives customers control over the data they create and want to share
Vendors create innovative solutions that bridge technologies to address real customer needs in an innovative manner
The nature of software allows for translatability in lieu of uniformity
Interoperability means Interoperability means connecting people, data, and connecting people, data, and
diverse systemsdiverse systems
Integration via InteropIntegration via Interop
Network
App
OtherStack
App
OtherMSFT
App
WSE
App
WCF
Assurances
Messaging
SOAP
WS-Security
MTOMWS-Addressing
Metadata
WS-Policy
WSDL
WS-Discovery
UDDI
WS-MetadataExchange
WS-TransferWS-EnumerationWS-Eventing
XML Schema
WS-ReliableMessaging
WS-Coordination
WS-AtomicTransaction
WS-BusinessActivity
WS-Trust
WS-SecureConversation
Infrastructureand Profiles
WS-ManagementWS-FederationDevicesProfile
Foundation
SOAP / HTTP
SOAP / UDP
MIME
XML Infoset
XML 1.0XML
Namespaces
WS-* Protocols
Interoperability is the main way to achieve integration in a heterogeneous environment.
Integration via Integration via InteroperabilityInteroperability
Network
App
OtherVendorStack
App
OtherMSFTStack
App
WCF
App
WCF
Assurances
MessagingSOAP
WS-Security
MTOMWS-Addressing
Metadata
WS-Policy
WSDL
WS-Discovery
UDDI
WS-MetadataExchange
WS-Transfer WS-EnumerationWS-Eventing
XML Schema
WS-ReliableMessaging
WS-Coordination
WS-AtomicTransaction
WS-BusinessActivity
WS-Trust
WS-SecureConversation
Infrastructureand Profiles
WS-ManagementWS-FederationDevicesProfile
FoundationSOAP / HTTP
SOAP / UDP
MIME
XML Infoset
XML 1.0XMLNamespaces
WS-* Protocols
Wire level interoperability achieves integration in a heterogeneous environment.
App
WSE
A Standard is not A Standard is not EnoughEnoughA specification does not A specification does not
guarantee integration or guarantee integration or interoperabilityinteroperability
Problems that can arise:Problems that can arise:It’s paper not productIt’s paper not productDiffering spec interpretationsDiffering spec interpretationsOptionality underlap / disconnectOptionality underlap / disconnectFit to business scenarioFit to business scenario
Also need to have:Also need to have:Implementations that are:Implementations that are:
AvailableAvailableProvenProvenCompatibleCompatible
Proven scenariosProven scenarios
Components of Business Components of Business InteroperabilityInteroperability
Agreed Agreed syntaxsyntax representations representationsE.g. XMLE.g. XML
Agreed Agreed protocolsprotocolsE.g. SOAP + WS-* specs (such as WS-E.g. SOAP + WS-* specs (such as WS-ReliableMessaging)ReliableMessaging)
Agreed Agreed payloadpayload formats formatsE.g. HL7 schemas for healthcare dataE.g. HL7 schemas for healthcare data
ProfiledProfiled composition compositionE.g. Pre-defined options to ensure E.g. Pre-defined options to ensure functionalityfunctionality
Agreed Agreed business scenariosbusiness scenariosE.g. Well defined interaction scenarios / E.g. Well defined interaction scenarios / use cases use cases
WS-* Specification WS-* Specification ProcessProcess Step 2
Broader Participation
Step 1Develop
Process reconciles conflicting goals• Quality of engineering• Time to market• Breadth of industry support
Step 3Standardization
Step 4Profiling
Increasing Industry ParticipationIncreasing Industry Participation
Specification Specification PublishedPublished
Feedback and Feedback and Interop Interop
WorkshopsWorkshopsRevise specRevise spec Standards OrgStandards Org
Such as:Such as:WS-I,WS-I,
HL7, ACORD,HL7, ACORD,Devices Devices ProfileProfile
Idea
Techniques for Achieving Techniques for Achieving InteroperabilityInteroperability
Protocol Implementation and TestingProtocol Implementation and Testing
Scenario-based approachesScenario-based approaches
Examples:Examples:
WS-* Interop WorkshopsWS-* Interop Workshops
Product Plug-festsProduct Plug-fests
E2E (end-to-end) Scenario TestingE2E (end-to-end) Scenario Testing
Proof-of-Concept / Pilot projectsProof-of-Concept / Pilot projects
Specification ProfilingSpecification Profiling
… … and repeatand repeat
WS-* Interoperability WS-* Interoperability WorkshopsWorkshops
Focus: Testing the specification(s)Focus: Testing the specification(s)Goal: Produce well-engineered, quality WS-Goal: Produce well-engineered, quality WS-* specifications* specifications
Based in specified interop scenariosBased in specified interop scenariosGround the spec development efforts in Ground the spec development efforts in implementation and usage experienceimplementation and usage experienceDemonstrate / prove spec interoperabilityDemonstrate / prove spec interoperabilityGain implementation experience earlier Gain implementation experience earlier Discover inconsistencies with other WS-* Discover inconsistencies with other WS-* specificationsspecificationsApply software testing disciplines to specsApply software testing disciplines to specsRefine the important spec usage scenariosRefine the important spec usage scenariosDetermine readiness for standardizationDetermine readiness for standardization
Involvement:Involvement:Vendors with implementationsVendors with implementationsInitiated by key vendors or standards orgsInitiated by key vendors or standards orgsOften prototype or early development codeOften prototype or early development code
Product Plug-festsProduct Plug-fests
Focus: Unit Testing the product(s)Focus: Unit Testing the product(s)Goal: Get products working togetherGoal: Get products working together
Based in specified interop scenarios Based in specified interop scenarios May or may not be using business dataMay or may not be using business dataGround the product implementation efforts in Ground the product implementation efforts in usage experienceusage experienceDemonstrate / prove product interoperabilityDemonstrate / prove product interoperabilityGain interoperability experience earlier Gain interoperability experience earlier Discover inconsistencies with other WS-* Discover inconsistencies with other WS-* productsproductsRefine the important product usage scenariosRefine the important product usage scenariosDetermine readiness for product releaseDetermine readiness for product release
Involvement:Involvement:Vendors with implementationsVendors with implementationsInitiated by key vendors or key interest groupsInitiated by key vendors or key interest groupsUsually close-to-release productsUsually close-to-release products
End-to-End Scenario TestingEnd-to-End Scenario Testing
Focus: System Testing the product(s) with a Focus: System Testing the product(s) with a realistic E2E business scenariorealistic E2E business scenarioGoal: Demonstrate products working Goal: Demonstrate products working togethertogether
Based on specified end-to-end business scenarios Based on specified end-to-end business scenarios Uses realistic business dataUses realistic business dataGround the product implementation efforts in Ground the product implementation efforts in usage experienceusage experienceDemonstrate / prove product interoperabilityDemonstrate / prove product interoperabilityDiscover inconsistencies with other WS-* Discover inconsistencies with other WS-* productsproductsRefine the important product usage scenariosRefine the important product usage scenarios
Involvement:Involvement:Vendors with implementationsVendors with implementationsInitiated by key vendors or key interest groupsInitiated by key vendors or key interest groupsUsually released or close-to-release productsUsually released or close-to-release products
Proof-of-Concept / Pilot Proof-of-Concept / Pilot ProjectsProjectsFocus: Testing the application and product Focus: Testing the application and product
deployment(s)deployment(s)Goal: Demonstrate internal systems Goal: Demonstrate internal systems working togetherworking together
Based on specified end-to-end business scenarios Based on specified end-to-end business scenarios Uses realistic business dataUses realistic business dataGround the in-house implementation and product Ground the in-house implementation and product deployment efforts in realistic usage experiencedeployment efforts in realistic usage experienceDemonstrate / prove product applicabilityDemonstrate / prove product applicabilityGain deployment experience earlier Gain deployment experience earlier Discover inconsistencies with other systemsDiscover inconsistencies with other systemsRefine the important product deployment Refine the important product deployment scenariosscenariosDetermine readiness for product and system Determine readiness for product and system deploymentdeployment
Involvement:Involvement:Customers + Vendors productsCustomers + Vendors productsInitiated by customers or vendor partnershipInitiated by customers or vendor partnershipUsually released productsUsually released products
Interop ProfilesInterop ProfilesDefine a subset of specifications and Define a subset of specifications and options that are:options that are:
ComposableComposableScopedScopedWork togetherWork together
Examples:Examples:
Secure RMSecure RM – WS-ReliableMessaging + WS- – WS-ReliableMessaging + WS-
Trust / WS-SecureConversation / WS-SecurityTrust / WS-SecureConversation / WS-Security
ACORD Messaging ProfileACORD Messaging Profile – WS-* + ACORD – WS-* + ACORD payload schemaspayload schemas
Who defines the profile?Who defines the profile?Vertical domain org – eg. ACORDVertical domain org – eg. ACORDHorizontal org – eg. WS-IHorizontal org – eg. WS-ICustomer – singly or in groupsCustomer – singly or in groups
Why Do We Need Interop Why Do We Need Interop Profiles?Profiles?
Need to constrain (soften) runtime Need to constrain (soften) runtime options to achieve out-of-box options to achieve out-of-box interoperabilityinteroperability
WS-* Architecture is designed for general WS-* Architecture is designed for general applicability across a wide range of applicability across a wide range of industries / scenariosindustries / scenarios
Often too much optionality in the base Often too much optionality in the base specificationsspecifications
Tailor to specific domain / environmentTailor to specific domain / environmentE.g. Devices Profile only requires SOAP 1.2 not E.g. Devices Profile only requires SOAP 1.2 not SOAP 1.1 to lower implementation footprintSOAP 1.1 to lower implementation footprint
Guide implementation and Guide implementation and deployment choicesdeployment choicesAchieve a proven composition of Achieve a proven composition of protocols and payloadsprotocols and payloadsAllows simplification of application Allows simplification of application deployment deployment
e.g. WCF allows selection of interop e.g. WCF allows selection of interop profile to useprofile to use
Profiling: WS-IProfiling: WS-I
Focus: Cross-industry profiling for Focus: Cross-industry profiling for baseline Web Service interoperabilitybaseline Web Service interoperabilityDeliverables – Current work:Deliverables – Current work:
Basic Profile v1.2Basic Profile v1.2SOAP 1.1 + WSDL 1.1 + UDDI 2.0 + Attachments SOAP 1.1 + WSDL 1.1 + UDDI 2.0 + Attachments (MTOM)(MTOM)
Basic Security Profile v1.1Basic Security Profile v1.1BP v1.x + WS-Security 1.1 + HTTPSBP v1.x + WS-Security 1.1 + HTTPS
Basic Profile v2.0Basic Profile v2.0SOAP 1.2 + WSDL 1.1 + UDDI 2.0 + WS-SOAP 1.2 + WSDL 1.1 + UDDI 2.0 + WS-Addressing + Attachments (MTOM)Addressing + Attachments (MTOM)
Reliable Secure Profile (RSP)Reliable Secure Profile (RSP)BP 1.x + BSP 1.x + WS-ReliableMessaging 1.1 + BP 1.x + BSP 1.x + WS-ReliableMessaging 1.1 + WS-SecureConversation 1.3WS-SecureConversation 1.3
Sample Applications (Supply Chain Sample Applications (Supply Chain Management)Management)Profile testing tools (vendor / user self-Profile testing tools (vendor / user self-testing)testing)
Proving Interop Proving Interop CompatibilityCompatibility
VendorsVendorsVendor self-testVendor self-test
CommunityCommunityMulti-vendor community testing Multi-vendor community testing (eg. WS-* Interop Workshops and (eg. WS-* Interop Workshops and plug-fests)plug-fests)
Industry wide demo (eg. WS-Industry wide demo (eg. WS-Security Interop Demo @ Gartner Security Interop Demo @ Gartner WS Summit)WS Summit)
Customers Customers In-house testingIn-house testing
Competitor bake-offCompetitor bake-off
SummarySummary
Interoperability is the best way to achieve Interoperability is the best way to achieve integration in a heterogeneous IT environmentintegration in a heterogeneous IT environment
Wire-level interoperability is the real goalWire-level interoperability is the real goal
Web Services WS-* Architecture designed to Web Services WS-* Architecture designed to support multi-vendor environmentssupport multi-vendor environments
There are several ways to help achieve There are several ways to help achieve interoperability:interoperability:
Usage scenarios based techniques (WS-* Interop Usage scenarios based techniques (WS-* Interop Workshops, Plug-fests, Proof-of-Concept / Pilot Workshops, Plug-fests, Proof-of-Concept / Pilot projects)projects)
Specification ProfilingSpecification Profiling
TestingTesting
Microsoft is deeply committed to delivering Microsoft is deeply committed to delivering products with proven interoperability that work products with proven interoperability that work well in heterogeneous environmentswell in heterogeneous environments
LinksLinks
WS-* Workshop Process OverviewWS-* Workshop Process Overviewhttp://msdn.microsoft.com/library/en-us/dnwebsrv/html/http://msdn.microsoft.com/library/en-us/dnwebsrv/html/wkshopprocess.aspwkshopprocess.asp
WS-* Workshops home pageWS-* Workshops home pagehttp://msdn.microsoft.com/webservices/community/workshops/http://msdn.microsoft.com/webservices/community/workshops/
Microsoft Interoperabilty home Microsoft Interoperabilty home pagepage
http://www.microsoft.com/interophttp://www.microsoft.com/interop
WS-* Specifications index pageWS-* Specifications index pagehttp://msdn.microsoft.com/webservices/understanding/specs/http://msdn.microsoft.com/webservices/understanding/specs/
MSDN Web Services Developer MSDN Web Services Developer CenterCenter
http://msdn.microsoft.com/webservices/http://msdn.microsoft.com/webservices/