View
217
Download
0
Category
Tags:
Preview:
Citation preview
Microsoft's SOA StrategyMicrosoft's SOA Strategy or, How current and future Microsoft or, How current and future Microsoft technologies fit into a heterogeneous, technologies fit into a heterogeneous, evolvable IT architectureevolvable IT architecture
Dino Chiesa Dino Chiesa MicrosoftMicrosoftdinoch@microsoft.comdinoch@microsoft.com+1.412.563.0172+1.412.563.0172
The Challenge of The Challenge of Connecting Systems TodayConnecting Systems Today
KYFKYF
ASBASB
HDLHDL
AFTAFT TGITGI FRYFRY
DRWDRWSWGSWG
QYDQYD DLYDLY
BSTBST
WIUWIU
ASBASB
ZISZISXOIXOI CUICUI
RMORMO
XPSXPS
KFCKFC
WHRWHR
JIAJIA GEXGEX
FQAFQAVUHVUH
HCOHCO
WKDWKD
ECPECP
SKDSKD
MFPMFP
WCPWCP
DKEDKEAJTAJT
How did we get here?How did we get here? The Business Demand for more and The Business Demand for more and
better Connectionsbetter Connections Continuous (Chaotic?) ChangeContinuous (Chaotic?) Change Heterogeneity is the RuleHeterogeneity is the Rule
How is the view?How is the view? Change reverberates: “Brittleness”Change reverberates: “Brittleness” Ergo, Change is discouraged: StasisErgo, Change is discouraged: Stasis Re-use is expensiveRe-use is expensive Costs up, Flexibility down Costs up, Flexibility down
ServiceService ServiceService ServiceService
ServiceService ServiceService ServiceService
BusBus
An Improved Architecture An Improved Architecture is the Solutionis the Solution
KKYYFF
Service-Oriented ArchitectureService-Oriented Architecture
A Model for “City Planning” of A Model for “City Planning” of Interconnected ApplicationsInterconnected Applications Inside the enterpriseInside the enterprise Across organizational boundariesAcross organizational boundaries
Systems are exposed via standards-Systems are exposed via standards-based, published, and discoverable based, published, and discoverable interfacesinterfaces
Enables:Enables: System and Subsystem re-use System and Subsystem re-use Evolution without breakageEvolution without breakage Lower cost of long-term maintenanceLower cost of long-term maintenance
PurchasePurchase
E-commerceE-commerceportalportal
Customer Customer relationshiprelationshipservicesservices
Fulfillment servicesFulfillment services
Authentication Authentication and authorization and authorization servicesservices
Credit authorizationCredit authorization
Billing servicesBilling services
SOA in ActionSOA in Action
Boundaries are ExplicitBoundaries are Explicit There is only one way to connect to a service: the documented There is only one way to connect to a service: the documented
interface. It is always clear to an application that a service is being interface. It is always clear to an application that a service is being invoked. invoked.
Services are autonomousServices are autonomous Not completely independent of other services, but constructed to Not completely independent of other services, but constructed to
tolerate failure, support plug-ability.tolerate failure, support plug-ability.
Share schema & contract, not classShare schema & contract, not class Schema, and not platform-specific data types or classes, Schema, and not platform-specific data types or classes,
define the messages exchanged between service providers define the messages exchanged between service providers and consumers. The Schema, or Contract, is published and and consumers. The Schema, or Contract, is published and exchanged between Service providers and consumers.exchanged between Service providers and consumers.
Compatibility based on policyCompatibility based on policy For example, services can negotiate message integrity or privacy For example, services can negotiate message integrity or privacy
requirements or message transports, based on policy.requirements or message transports, based on policy.
Standardization in Web Services protocols makes this feasibleStandardization in Web Services protocols makes this feasible
FoundationalFoundationalTenetsTenets
The Elements of SOAThe Elements of SOA
ServiceService MessageMessage InterfaceInterface PolicyPolicy StateState
ConversationConversation TransactionsTransactions ContractContract ProcessProcess
ServicesServices
Message ExchangeMessage ExchangePatternPattern
describedescribe
OperationalOperationalRequirementsRequirements
enforceenforce
StateState
managemanage
ApplicationsApplications
composed ofcomposed of
MessagesMessages
exchangeexchange
is a set ofis a set ofContractsContracts
bound bybound by
containcontain SchemasSchemas define structure ofdefine structure of
governed bygoverned byPoliciesPolicies
havehave
Service OrientationService OrientationKey Concepts Key Concepts
Service OrientationService Orientation
Basic Consumer/Provider viewBasic Consumer/Provider view
BusinessBusinessComponentComponent
ServiceServiceFaçadeFaçade
Service ConsumerService Consumer Service ProviderService Provider
logiclogicstatestatemessagemessage
interfaceinterface
The Elements of SO (1)The Elements of SO (1)
policypolicy
Service #1Service #1 Service #2Service #2
logiclogicstatestate
The Elements of SO (1)The Elements of SO (1)
policypolicy
RequestorRequestor ReceiverReceiver
• SerializeSerialize• SignSign• EncryptEncrypt• RouteRoute• TransportTransport• ReliabilityReliability
• Transport Transport • De-serializeDe-serialize• ValidateValidate• AuthenticateAuthenticate• AuthorizeAuthorize• Audit/LogAudit/Log• MonitorMonitor
The Elements of SO (2)The Elements of SO (2)
ConversationConversationDefined by a ContractDefined by a Contract
The Elements of SO (3)The Elements of SO (3)
processprocess
conversationconversation
transactiontransaction
Layering and Composability Layering and Composability of Services of Services
Business Business ProcessesProcessesexposed asexposed as
Coarse-Grained Coarse-Grained ServicesServices
Finer Grained Internal Service Finer Grained Internal Service OperationsOperations
ConsumerConsumerApplicationApplication
ConsumerConsumerApplicationApplication
BusinessBusinessComponentsComponents ObjectsObjects DataData
ServicesServices
Network-capable units of software that implement Network-capable units of software that implement logic, manage state, communicate via messages, logic, manage state, communicate via messages, and are governed by policy. and are governed by policy.
A service is similar to a component or an object.A service is similar to a component or an object. However, it doesn’t have an instancing model.However, it doesn’t have an instancing model. Sends a message to a destination and hopes it will both Sends a message to a destination and hopes it will both
arrive and be responded to by another message.arrive and be responded to by another message.
Service interfaces expose service functionality.Service interfaces expose service functionality. A component or object interface defines what the method A component or object interface defines what the method
calls should look like (IDL, for example).calls should look like (IDL, for example). The service interface defines what the messages should The service interface defines what the messages should
look like (for example, WSDL) and their sequencing.look like (for example, WSDL) and their sequencing.
MessagesMessages Units of information transmitted from one Units of information transmitted from one
service to another service to another Must be highly structuredMust be highly structured
Structure is communicated between services and Structure is communicated between services and solution developers using schemassolution developers using schemas
Must be self-sufficient conceptually, Must be self-sufficient conceptually, containing or referencing all of the containing or referencing all of the information necessary to understand the information necessary to understand the message message
Ideally, Technology-neutralIdeally, Technology-neutral Allow communication between different Allow communication between different
technologiestechnologies Allow replacement using a different technologyAllow replacement using a different technology Hence, loose coupling between servicesHence, loose coupling between services
Web Services: Level IWeb Services: Level IFoundation to Build UponFoundation to Build Upon
““Basic Profile”Basic Profile” Defined by WS-IDefined by WS-I XML, SOAP, WSDL, UDDIXML, SOAP, WSDL, UDDI
Broad vendor Broad vendor supportsupport
WS-I assures WS-I assures widespread widespread compatibility compatibility
Web Services, Level II: Web Services, Level II: Secure, Reliable, TransactedSecure, Reliable, Transacted WS-SecurityWS-Security WS-AtomicTransactionWS-AtomicTransaction WS-ReliableMessagingWS-ReliableMessaging Vendor support is emergingVendor support is emerging
Looking Ahead:Looking Ahead:Broad and Deep SolutionsBroad and Deep Solutions Application schemasApplication schemas Domain-specific profilesDomain-specific profiles Vertical industry servicesVertical industry services These will evolve over timeThese will evolve over time
What’s New?What’s New?Or…Why is SOA better than previous Or…Why is SOA better than previous ideas in distributed computing? ideas in distributed computing? Loose Coupling = ResiliencyLoose Coupling = Resiliency Protocol Standards, Broadly supported Protocol Standards, Broadly supported
(not API standards) = Connectivity(not API standards) = Connectivity Asynchrony and Autonomy = ReuseAsynchrony and Autonomy = Reuse The Right Granularity = PracticalThe Right Granularity = Practical Ubiquitous Vendor Support = RealUbiquitous Vendor Support = Real
Web Services ArchitectureWeb Services Architecture
Connected Applications
XMLBasic Web Services
Secure Reliable
Transacted
HTTP …TCP/IP SMTP MQHTTP
Connected Application
s
Basic Web
Services
Web Services ArchitectureWeb Services ArchitectureProcessProcess
Specification Specification PublishedPublished
Customer and Customer and Industry Industry
FeedbackFeedbackGatheredGathered
Publish Publish Addendum(s),Addendum(s),
Deliver Dev Deliver Dev ProductProduct
StandardizationStandardization WS-IWS-IInteroperability Interoperability
ProfileProfile
Web Services ArchitectureWeb Services Architecture
Example:Example: WS-Security WS-Security
Specification Specification PublishedPublished
Customer and Customer and Industry Industry
FeedbackFeedbackGatheredGathered
Publish Publish Addendum,Addendum,Deliver Dev Deliver Dev
ProductProduct
OASIS OASIS StandardizationStandardization
April April 20022002
April - August April - August
20022002
August August 20022002
September September 20022002
WS-IWS-IInteroperability Interoperability
ProfileProfile
April April 20032003
ThreeThreePartnersPartners
Over 30 Over 30 PartnersPartners
Over 100 Over 100 PartnersPartners
SOA is Just an ArchitectureSOA is Just an ArchitectureTo implement SOA, you also need:To implement SOA, you also need: Great Platform Software;Great Platform Software;
products and technologies to products and technologies to supporting building, running and supporting building, running and accessing servicesaccessing services
Skills & TrainingSkills & Training
• Web services client and server runtimeWeb services client and server runtime• Integration with existing non-XML sourcesIntegration with existing non-XML sources• Presentation layer optionsPresentation layer options• Server platform with reliability, performance, Server platform with reliability, performance,
availabilityavailability• Workflow managementWorkflow management• Excellent development toolsExcellent development tools
Apply power of software to Apply power of software to enhance information flow enhance information flow through people, processes & ITthrough people, processes & IT
Create connected systems Create connected systems with .NET, and incorporate with .NET, and incorporate existing applicationsexisting applications
Align IT assets & business to Align IT assets & business to enable enable deeper customer connectionsdeeper customer connections integrated partnersintegrated partners empowered employeesempowered employees faster time to market faster time to market
Building and exploiting Building and exploiting Service Oriented ArchitecturesService Oriented Architectures
Microsoft Brings It All TogetherMicrosoft Brings It All Together
Analyze, Analyze, Act & Act &
InteractInteract
Deploy &Deploy &OperateOperate
Design Design & Build& Build
ManagementManagementSupport Lifecycle: 10 Support Lifecycle: 10 yearsyearsUpdates & PatchingUpdates & PatchingScripting & WMIScripting & WMITrainingTrainingGuidance, whitepapersGuidance, whitepapers
Microsoft is a LeaderMicrosoft is a LeaderGartner Group: Magic Quadrant for Gartner Group: Magic Quadrant for “Web Services-Enabled Software”, September 2004“Web Services-Enabled Software”, September 2004
According to Gartner, vendors listed According to Gartner, vendors listed in the Leader Quadrant are in the Leader Quadrant are performing well today, have a clear performing well today, have a clear vision of market direction and are vision of market direction and are actively building competencies to actively building competencies to sustain their leadership position in sustain their leadership position in the industry. the industry.
Microsoft is a LeaderMicrosoft is a LeaderForrester Survey of North American companies, May 2004Forrester Survey of North American companies, May 2004
A May 2004 report by Forrester Research, "The State of Technology Adoption," A May 2004 report by Forrester Research, "The State of Technology Adoption," shows that of the 878 firms surveyed, 56 percent use .NET as their primary shows that of the 878 firms surveyed, 56 percent use .NET as their primary development environment. According to the report, more than half of the development environment. According to the report, more than half of the organizations in the manufacturing, retail and wholesale trade, media, business organizations in the manufacturing, retail and wholesale trade, media, business services and public sector fields are choosing .NET. The full report can be services and public sector fields are choosing .NET. The full report can be accessed at: accessed at: http://www.microsoft.com/windowsserversystem/forresterdotnet.mspx
Responses from 322 software decision makers at large North American companies**878 companies surveyed (322 responses); 52% with 5,000 or more employees, 48% with 1,000 to 4,999 employeesSource: Forrester (May 2004), http://msdn.microsoft.com/vcsharp/news/forrester/default.aspx
“Which one platform will be used for the majority of your development work in 2004?”
Overall
Utilities and telecom
Finance and insurance
Manufacturing
Retail and wholesale trade
Media, entertainmentand leisure
Business services
Public sector
00 1001001010 2020 3030 4040 5050 6060 7070 8080 9090
35%35%
44%44%
65%65%
56%56%
45%45%
42%42%
38%38%
65%65%
56%56%
35%35%
44%44%
55%55%
58%58%
62%62%
36%36% 64%64%
J2EEJ2EE .NET
Gartner’s Enterprise Tracker SurveyGartner’s Enterprise Tracker Survey
Survey commissioned by Microsoft; Survey commissioned by Microsoft; performed by Gartnerperformed by Gartner
892 people, working in Enterprises, primarily 892 people, working in Enterprises, primarily in “Central IT”, asked about platforms, tools in “Central IT”, asked about platforms, tools (185 were Gartner Panel)(185 were Gartner Panel)
Enterprises: Median # of employees: 6,906. Enterprises: Median # of employees: 6,906. Mean 25,725Mean 25,725
Gartner delivered a document describing the Gartner delivered a document describing the resultsresults
Microsoft is a LeaderMicrosoft is a Leader
Gartner: Mission-Critical Application SurveyGartner: Mission-Critical Application SurveyQuestion: Question: “What server OS does your company use for mission critical “What server OS does your company use for mission critical applications?”applications?”
Gartner: Mission-Critical Application SurveyGartner: Mission-Critical Application SurveyQuestion: “What software platforms do your companies mission-critical apps Question: “What software platforms do your companies mission-critical apps run on?”run on?”
Gartner: Mission-Critical Application SurveyGartner: Mission-Critical Application SurveyQuestion: “Which Vendor Does Your Company Use for Web Services?”Question: “Which Vendor Does Your Company Use for Web Services?”
Web Services in Microsoft Web Services in Microsoft SoftwareSoftware Visual Studio – to build and consumeVisual Studio – to build and consume BizTalk Server – to manage processes BizTalk Server – to manage processes MS Office – consumer of servicesMS Office – consumer of services Windows Server – reliable, high-Windows Server – reliable, high-
performance host for Web servicesperformance host for Web services .NET Framework – infrastructure .NET Framework – infrastructure
technology used by all of the abovetechnology used by all of the above
Getting from Here toGetting from Here to
Key PatternKey Pattern
Information IntegrationInformation Integration Achieve consistent handling of key Achieve consistent handling of key
organizational dataorganizational data Develop unified models for key real-Develop unified models for key real-
world entitiesworld entities e.g., “customer”e.g., “customer”
Establish procedures for “aggregating” Establish procedures for “aggregating” entities from back-end systems for entities from back-end systems for processing...processing... ...and “disaggregating” them for ...and “disaggregating” them for
persistencepersistence
Information IntegrationInformation Integration
Create Canonical SchemasCreate Canonical Schemas Model the EntitiesModel the Entities
Create a static, canonical schemaCreate a static, canonical schema Agree on XML namespacesAgree on XML namespaces Only expose XSD data typesOnly expose XSD data types Standardize on Doc/LiteralStandardize on Doc/Literal Agree on naming conventionsAgree on naming conventions Keep it simpleKeep it simple
Canonical SchemaCanonical Schema Represents the authoritative, common definitionRepresents the authoritative, common definition Other representations can be derived from thisOther representations can be derived from this
It is not one large XML-Schema – really a It is not one large XML-Schema – really a bucket of schemas that collectively form the bucket of schemas that collectively form the canonical schemacanonical schema
Information IntegrationInformation Integration
Schema RationalizationSchema RationalizationSQL ServerSQL Server(in house)(in house)
SiebelSiebel(commercial)(commercial)
OtherOther(J2EE based)(J2EE based)
ContactTb
PK CntctI
FK2 CompanyIFirsNameMiddleNameLastNameSpouseNameAlteranateNameSalutationHobbiesInterestFunctionsEventsKeyContactFlgDecisionMakerFlgCitivisionIDType
FK3 BusinessAddressIFK4 OtherAddressIFK5 HomeAddressIFK9 CellPhoneI
EmailEmail3Comments
FK7 LastModifiedByLastModifiedTimeDeletedFlgDeleteComment
FK6 OwnerCreationTime
FK8 CreatedByFK1 SystemI
ContactTb
PK CntctI
FK2 CompanyIFirsNameMiddleNameLastNameSpouseNameAlteranateNameSalutationHobbiesInterestFunctionsEventsKeyContactFlgDecisionMakerFlgCitivisionIDType
FK3 BusinessAddressIFK4 OtherAddressIFK5 HomeAddressIFK9 CellPhoneI
EmailEmail3Comments
FK7 LastModifiedByLastModifiedTimeDeletedFlgDeleteComment
FK6 OwnerCreationTime
FK8 CreatedByFK1 SystemI
ContactSchema
PK CntctI
KnownAsMIIndexLastAlteranateNameSalutationKeyContactFlgDecisionMakerFlgTypeBusinessAddressOtherAddressHomeAddressMobileEmailEmailOtherCommentsLastModifiedByLastModifiedTimeDeletedFlgDeleteCommentOwnerCreationTimeCreatedOwnerSiebelIndex
ContactSchema
PK CntctI
KnownAsMIIndexLastAlteranateNameSalutationKeyContactFlgDecisionMakerFlgTypeBusinessAddressOtherAddressHomeAddressMobileEmailEmailOtherCommentsLastModifiedByLastModifiedTimeDeletedFlgDeleteCommentOwnerCreationTimeCreatedOwnerSiebelIndex
MyBusinessContacts
PK ContactID
FirstMiddleLastAlteranateNameSalutationBusinessAddressOtherAddressHomeAddressMobileEmailEmailOtherCommentsLastModifiedByLastModifiedTimeOwnerCreationTimePrimaryContactOpportunityIndexEmail2Email3
MyBusinessContacts
PK ContactID
FirstMiddleLastAlteranateNameSalutationBusinessAddressOtherAddressHomeAddressMobileEmailEmailOtherCommentsLastModifiedByLastModifiedTimeOwnerCreationTimePrimaryContactOpportunityIndexEmail2Email3
+Save(in overwrite : bool)
-ID : int-PrimaryCompanyI : int-FirstName : string-MiddleName : string-LastName : string-SpouseName : string-AlternateName : string-Associations : string-Salutation : string-HobbiesInterests : string-FunctionsEvents : string-KeyContact : bool-DecisionMaker : bool-WhoKnowsMe : UserCollection-Assistants : AssistantCollection-CitiVisionID : string-Attachments : AttachmentCollection-RecentMailings : AttachmentCollection-BusinessAddress : Address-OtherAddress : Address-HomeAddress : Address-CellPhone : Phone-Email : string-Email2 : string-Email3 : string-BLOBData : string
«implementation class»Contact
+Save(in overwrite : bool)
-ID : int-PrimaryCompanyI : int-FirstName : string-MiddleName : string-LastName : string-SpouseName : string-AlternateName : string-Associations : string-Salutation : string-HobbiesInterests : string-FunctionsEvents : string-KeyContact : bool-DecisionMaker : bool-WhoKnowsMe : UserCollection-Assistants : AssistantCollection-CitiVisionID : string-Attachments : AttachmentCollection-RecentMailings : AttachmentCollection-BusinessAddress : Address-OtherAddress : Address-HomeAddress : Address-CellPhone : Phone-Email : string-Email2 : string-Email3 : string-BLOBData : string
«implementation class»Contact
Key PracticeKey Practice
Extensible Message Schema Extensible Message Schema Use an “open” content model to allow Use an “open” content model to allow
extension and evolution (xsd:any )extension and evolution (xsd:any ) This can allow evolution of endpoints This can allow evolution of endpoints
without changing the contract without changing the contract Service A – v1Service A – v1
v1v1
Service A – v1Service A – v1
Service BService B
v2v2
Service A – v2Service A – v2
v2v2
Key PracticeKey Practice
Extensible Message Schema Extensible Message Schema Balance flexibility with maintainabilityBalance flexibility with maintainability
<ProductQuery> <ProductInfo> <QueryID>11063</QueryID> <CustomerID>HUNGO</CustomerID> <DeliveryOption>3</DeliveryOption> <OrderDate>2005-04-30</OrderDate> </ProductInfo></ProductQuery>
<ProductQuery> <ProductInfo> <QueryID>11063</QueryID> <CustomerID>HUNGO</CustomerID> <DeliveryOption>3</DeliveryOption> <OrderDate>2005-04-30</OrderDate> <Attributes>….</Attributes> <Constraints>….</Constraints> </ProductInfo></ProductQuery>
<ProductQuery> <Rating>… </Rating> <Category>…</Category></ProductQuery>
OK
Key PracticeKey Practice
Schema Design PrinciplesSchema Design Principles Keep it SimpleKeep it Simple
Confine yourself to a subset of W3C XML Confine yourself to a subset of W3C XML SchemaSchema
Derivations, Restrictions, Enumerations and Derivations, Restrictions, Enumerations and other W3C XML Schema exotica other W3C XML Schema exotica may not be supported in your chosen XML or may not be supported in your chosen XML or web services toolkitweb services toolkit
Test Early and OftenTest Early and Often Example: xsd:date maps to Java’s Example: xsd:date maps to Java’s
java.util.Calendar and .NET’s System.DateTime. java.util.Calendar and .NET’s System.DateTime. Java’s date is nillable, .NET’s is not (value type)Java’s date is nillable, .NET’s is not (value type) If Java sends .NET a nil Date, exceptions occur.If Java sends .NET a nil Date, exceptions occur.
Key PatternKey Pattern
Integrating “Non-Service” ComponentsIntegrating “Non-Service” Components
The world is full of independently The world is full of independently designed systemsdesigned systems Differences happen all the way from the Differences happen all the way from the
hardware though the OS and middleware, hardware though the OS and middleware, up to the application semanticsup to the application semantics
Rationalizing these disparate systems Rationalizing these disparate systems is a huge challenge is a huge challenge
Model non-service systems according to the business capabilities Model non-service systems according to the business capabilities they deliverthey deliver
Encapsulate them behind service facadesEncapsulate them behind service facades Use Interop capabilities of the .NET Framework to enable thisUse Interop capabilities of the .NET Framework to enable this
Recommendations:Recommendations:
Integrating “Non-Service” ComponentsIntegrating “Non-Service” Components
Service FacadesService Facades
Simulate Request/Response or One way Interaction Simulate Request/Response or One way Interaction over the non-service access modelover the non-service access model
Transform incoming data (canonical schemas) to a Transform incoming data (canonical schemas) to a representation that non-service components can representation that non-service components can understandunderstand
Use adaptors Use adaptors Message-basedMessage-based
SAP RFC/IDOCSAP RFC/IDOC Queues based (MQSeries to access mainframe)Queues based (MQSeries to access mainframe) Pub/Sub based (e.g. SAP)Pub/Sub based (e.g. SAP)
API-basedAPI-based SAP’s DCOM Component ConnectorSAP’s DCOM Component Connector JDE’s OneWorld APIJDE’s OneWorld API
File-based/FTPFile-based/FTP
Key PracticeKey Practice
Follow “Contract First” Design For Web Follow “Contract First” Design For Web ServicesServices Many toolkits, including .NET, encourage Many toolkits, including .NET, encourage
“implementation first” design“implementation first” design Build the implementation, attach [webmethod] Build the implementation, attach [webmethod]
attributes, and you have a web serviceattributes, and you have a web service
““Implementation First” is Nice for DemosImplementation First” is Nice for Demos Very quickVery quick
Also appealing when exposing existing code Also appealing when exposing existing code as webservicesas webservices
However, this introduces interoperability However, this introduces interoperability challengeschallenges
Interoperability ChallengeInteroperability Challenge
The Problem with The Problem with “Implementation First” Design“Implementation First” Design
WSDLService Implementation
Client-sideProxy
generates generates
Example 1: public int GetCustomerId (string CustomerName );
Uses datatypes that map directly to W3C XML Schema. No problem.
Example 2: Public Vector<int> GetCustomerIds (Vector<String> CustomerNames ) ;
Uses platform-specific datatypes (and generics) ; these datatypes do not map cleanly to W3C XML Schema. Interop problems result.
““Contract First” DesignContract First” Design
Derive Implementations from WSDLDerive Implementations from WSDLRecommended: Recommended:
1.1. Design WSDLDesign WSDL
2.2. Use tools to generate Use tools to generate Service Interface or Service Interface or Concrete classConcrete class
3.3. Provide implementationProvide implementation
4.4. Use tools to generate Use tools to generate Client-side proxyClient-side proxy
WSDL
Service Interface
Client-sideProxy
generates generates
All interfaces are defined in terms of XML Schema primitives, or All interfaces are defined in terms of XML Schema primitives, or arrays and structures of same. arrays and structures of same.
Good tool support for XML Schema means agreement between Good tool support for XML Schema means agreement between client proxies and service implementations across platformsclient proxies and service implementations across platforms
Results:Results:
Key PracticeKey Practice
Be Pragmatic rather than PureBe Pragmatic rather than Pure Many environments… Many environments…
……cannot use Web services cannot use Web services ……do not yet support Web services easilydo not yet support Web services easily ……Or, do not need Web servicesOr, do not need Web services
Employ portions of the stackEmploy portions of the stack Eg REST / XML Document interchange Eg REST / XML Document interchange
This can raise accessibility, while keeping This can raise accessibility, while keeping costs lowcosts low
Be Pragmatic rather than PureBe Pragmatic rather than Pure
XML Document ExchangeXML Document Exchange Works with any XML-enabled platformWorks with any XML-enabled platform Relies on Common Schema Relies on Common Schema Simple and easy to implementSimple and easy to implement Use any transportUse any transport
HTTP, MQ, FTP, etc.HTTP, MQ, FTP, etc.
Drawbacks:Drawbacks: No well-defined contract. (No WSDL. )No well-defined contract. (No WSDL. ) Does not compose with higher-level services. Does not compose with higher-level services.
Example: WS-Security. Example: WS-Security.
Be Pragmatic rather than PureBe Pragmatic rather than Pure
Use Existing TransportsUse Existing Transports Exploit what you already haveExploit what you already have
……existing MQ networkexisting MQ network ……existing sockets communicationsexisting sockets communications
If you have systems, practices, and skills If you have systems, practices, and skills built up around non-SOAP communications, built up around non-SOAP communications, use them use them
Look for opportunities to transitionLook for opportunities to transition Some Benefits are available only through SOAP. Some Benefits are available only through SOAP.
Examples: WS-Security, WS-ReliableMessagingExamples: WS-Security, WS-ReliableMessaging Tools will evolve to steadily make WS-* easier.Tools will evolve to steadily make WS-* easier.
By not embracing SOAP, you will miss the By not embracing SOAP, you will miss the productivity gains.productivity gains.
Smart clients are easily deployed and managed client applications that Smart clients are easily deployed and managed client applications that provide an adaptive and interactive experience by leveraging local provide an adaptive and interactive experience by leveraging local resources and intelligently connecting to distributed data sources. resources and intelligently connecting to distributed data sources.
Web Services &Offline/Online
support
DeviceAdaptability
Tough toDeploy
HeavyFootprint
DLL Hell
NetworkDependency
Poor UserExperience
Rich UIComplex
To Develop
Rich UserExperience
DeveloperProductivity
Responsive
BroadReach
Easy ChangeManagement
Ease ofDeployment
Smart Clients…Smart Clients… ……combine the best features of Thin combine the best features of Thin
clients and rich clients clients and rich clients ……fit naturally in service-oriented fit naturally in service-oriented
architecturesarchitectures ……can be centrally provisioned and can be centrally provisioned and
managedmanaged ……employ data than spans the employ data than spans the
continuum from structured to semi-continuum from structured to semi-structured to un-structuredstructured to un-structured
……work online and offlinework online and offline ……empower usersempower users
Connect live business data to Connect live business data to your documents & access them your documents & access them off-lineoff-line Increase velocity and accuracy ofIncrease velocity and accuracy of
decision makingdecision making Increase worker productivityIncrease worker productivity Reduce error caused by data Reduce error caused by data
re-entry & copy/pastere-entry & copy/paste Leverage existing Office experience Leverage existing Office experience
of end usersof end users Eliminate training and ramp up time Eliminate training and ramp up time
on new applicationson new applications Reduce new application burn-in errorsReduce new application burn-in errors
Leverage rich and robust OfficeLeverage rich and robust Officefunctionalityfunctionality High developer productivity = reduced time to develop High developer productivity = reduced time to develop Greatly improved maintainability & deployment optionsGreatly improved maintainability & deployment options Optimize use of PC & central resources Optimize use of PC & central resources
Microsoft Smart Client PlatformsMicrosoft Smart Client PlatformsOffice System 2003
Version 1.0
Office XML Office XML Documents in Documents in
Enterprise Enterprise WorkflowWorkflow
Office XML Office XML Documents in Documents in
Enterprise Enterprise WorkflowWorkflow
Office XML Office XML Documents Documents Facilitating Facilitating
Interoperability Interoperability in E-Governmentin E-Government
Office XML Office XML Documents Documents Facilitating Facilitating
Interoperability Interoperability in E-Governmentin E-Government
Smart Client Smart Client Front-end to Front-end to
Enterprise LOB Enterprise LOB SystemsSystems
Smart Client Smart Client Front-end to Front-end to
Enterprise LOB Enterprise LOB SystemsSystems
Web Web EnrichmentEnrichment
Web Web EnrichmentEnrichment
Version 2003
Microsoft Office SystemMicrosoft Office SystemAn Out-of-the-Box SOA ParticipantAn Out-of-the-Box SOA Participant Save as XML, Load from XMLSave as XML, Load from XML
Open document formats can be processed using any XML Open document formats can be processed using any XML technology, on any platformtechnology, on any platform
It’s just text – not application-dependent; can be It’s just text – not application-dependent; can be processed or generated on any serverprocessed or generated on any server
Use Custom-Defined XML SchemasUse Custom-Defined XML Schemas Use custom schemas to apply structure to documentsUse custom schemas to apply structure to documents Separate data from presentation by accessing custom Separate data from presentation by accessing custom
elements, not presentation elementselements, not presentation elements
InfoPath Forms and Custom-Defined SchemaInfoPath Forms and Custom-Defined Schema End-user designable formsEnd-user designable forms Native Web Service consumerNative Web Service consumer
<ConferenceReport><ConferenceReport><Date>3/24/2004</Date><Date>3/24/2004</Date><Summary><Summary>
<Keyword>XML Conference (Europe)</Keyword><Keyword>XML Conference (Europe)</Keyword><Abstract>Role of XML on the Desktop</Abstract><Abstract>Role of XML on the Desktop</Abstract>
</Summary></Summary><Attendees><Attendees>
<Attendee Name=“John Doe”><Attendee Name=“John Doe”><Department>Health Agency</Department><Department>Health Agency</Department><Potential><Potential>
<Sales>100</Sales><Sales>100</Sales><Growth>25%</Growth><Growth>25%</Growth><Remarks>The team comprises <Remarks>The team comprises
great innovators</Remarks>great innovators</Remarks><ToDo>Contact their IT Manager</ToDo><ToDo>Contact their IT Manager</ToDo>
</Potential></Potential></Attendee></Attendee><Attendee Name=“Judith Jones”><Attendee Name=“Judith Jones”>
<Department>Finance Agency</Department><Department>Finance Agency</Department></Attendee></Attendee>
</Attendees></Attendees><Conclusion>Organize another European tour </Conclusion><Conclusion>Organize another European tour </Conclusion>
</ConferenceReport></ConferenceReport>
MetadataMetadata
FinanceFinance
ERPERP
CRMCRM
Smart Smart ClientsClients
Web Web ServicesServices
Integrate SOA to the Integrate SOA to the Business DesktopBusiness Desktop
Brings enterprise Brings enterprise content and content and information into any information into any Office documentOffice document Word, Outlook, Excel, Word, Outlook, Excel,
PowerpointPowerpoint
No re-training for No re-training for people who already people who already know and use Officeknow and use Office
Web Web ServicesServices
Custom J2EECustom J2EE
Visual Studio Tools for OfficeVisual Studio Tools for Officeenabling Smart Client Applicationsenabling Smart Client Applications
All the rich, UI features of Word and All the rich, UI features of Word and Excel running on the local machineExcel running on the local machine
Integrated design-time experience, Integrated design-time experience, View Controls, Schema-based View Controls, Schema-based programming modelprogramming model
All the productivity of Visual Studio All the productivity of Visual Studio and the .NET Frameworkand the .NET Framework
.NET Framework support for Web .NET Framework support for Web ServicesServices
No-touch deployment (from network No-touch deployment (from network share)share)
Rich UserExperience
Responsive
DeveloperProductivity
Web Services &Offline/Online support
Easy ChangeManagement
Ease ofDeployment
Call CenterCall Center
MS SalesMS Sales
CRMCRM
MarketinMarketingg
Outlook is the clientOutlook is the client• Familiar interfaceFamiliar interface• Offline supportOffline support• Integrated into Integrated into
workflowworkflow
On InteroperabilityOn Interoperability Interoperability with other platforms is Interoperability with other platforms is
required in building SOArequired in building SOA Application platform solidly based on key Application platform solidly based on key
industry standardsindustry standards MS is leader in core standards effortsMS is leader in core standards efforts SOAP and Web Services, HTTP/HTML, XML data SOAP and Web Services, HTTP/HTML, XML data
exchange, security standards, etc. exchange, security standards, etc. .NET and J2EE easily integrated via Web .NET and J2EE easily integrated via Web
ServicesServices There are many other interop mechanisms There are many other interop mechanisms
between the elements of the Microsoft between the elements of the Microsoft application platform and elements from non-application platform and elements from non-Microsoft platformsMicrosoft platforms
Interoperability ExamplesInteroperability Examples ADO.NET – includes providers for ADO.NET – includes providers for
many different databases and non-many different databases and non-relational storesrelational stores
Oracle, Sybase, Informix, DB2, Oracle, Sybase, Informix, DB2, AS/400 VSAM/ISAM, many othersAS/400 VSAM/ISAM, many others
MSMQ is accessible to Java MSMQ is accessible to Java applications running on Windows, in applications running on Windows, in any JVMany JVM
Apache HTTP server can front-end IIS Apache HTTP server can front-end IIS services with mod_proxy services with mod_proxy
Java and .NET both support the AES Java and .NET both support the AES encryption standard and can encryption standard and can exchange encrypted data. exchange encrypted data.
Third parties provide Single sign-on Third parties provide Single sign-on to Java and Windows (.NET) to Java and Windows (.NET) applications via Kerberos applications via Kerberos
There are SSL-enabled Streams for There are SSL-enabled Streams for both Java and .NETboth Java and .NET
SAP produces the .NET Connector SAP produces the .NET Connector and .NET Portal Development Kitand .NET Portal Development Kit
SQL Server’s heterogeneous views SQL Server’s heterogeneous views allows access into remote, allows access into remote, heterogeneous databasesheterogeneous databases
BizTalk ships with 300 adapters for BizTalk ships with 300 adapters for distinct systemsdistinct systems
EDI, CICSEDI, CICS MQ provides an ADSI interface, which MQ provides an ADSI interface, which
allows any .NET app to interrogate or allows any .NET app to interrogate or manage an IBM MQSeries installationmanage an IBM MQSeries installation
The HIS 2004 product includes a The HIS 2004 product includes a bridge between MSMQ and MQSeriesbridge between MSMQ and MQSeries
Third parties provide tools to build Third parties provide tools to build web services facades on top of 3270-web services facades on top of 3270-based transactionsbased transactions
Exchange 2003 supports WebDAV Exchange 2003 supports WebDAV access, including both read and access, including both read and update of the Exchange store.update of the Exchange store.
There are a variety of JDBC drivers There are a variety of JDBC drivers for SQL Serverfor SQL Server
Java can producre MS-Office Java can producre MS-Office documents via WordML, ExcelMLdocuments via WordML, ExcelML
Many, many others.Many, many others.
Interoperability through StandardsInteroperability through Standards
domaindomain de jurede jure Standards supported Standards supported by .NET and Windowsby .NET and Windows
Windows with .NET can also Windows with .NET can also interop with these:interop with these:
SecuritySecurity LDAP, x.509, Kerberos, XMLDSIGLDAP, x.509, Kerberos, XMLDSIG NetegrityNetegrity
CryptoCrypto DSA, RSA, MD5, SHA, DES, AES,…DSA, RSA, MD5, SHA, DES, AES,…
CommunicationsCommunications HTTP/S, SMTP, FTP, HTML, CSS, HTTP/S, SMTP, FTP, HTML, CSS, SSL, IPSecSSL, IPSec
MQSeries, LU6.2 , IIOP, MQSeries, LU6.2 , IIOP, SAP RFCSAP RFC
DataData XML, XSL, XPath, XML-NS,XML, XSL, XPath, XML-NS, DOMDOM, , SOAPSOAP
ODBC, OLEDB, Oracle, DB2, ODBC, OLEDB, Oracle, DB2, VSAMVSAM
ServicesServices WSDL, WS-Security, SAML, BPELWSDL, WS-Security, SAML, BPEL WebSphere, Tibco RV, SAP, WebSphere, Tibco RV, SAP, CICS, OracleCICS, Oracle
ManagementManagement CIM, WBEM, IPMI, SNMPCIM, WBEM, IPMI, SNMP WMI, NET-IQ, OpenView, TivoliWMI, NET-IQ, OpenView, Tivoli
Standards Support enables the Interoperability between the Microsoft Platform and Standards Support enables the Interoperability between the Microsoft Platform and other Systemsother Systems
WindowWindows s
SystemSystemwith .NEwith .NE
TT SAPSAP
MQMQ
CICCICSS
OraclOraclee
SiebeSiebell
SAP .NET Connector v2.0SAP .NET Connector v2.0
Visu
al S
tudio 2
003
mySAP.NET Runtime
WinForms
SAP .NET ConnectorRuntime
SAP Proxy (generated)
RFC Listener
Windows
Application
WebForms
WebSvcs
SOAP Listener
Build IDoc receiver Build IDoc receiver in .NETin .NET
Can obtain IDoc Can obtain IDoc structure from SAPstructure from SAP
Can Parse and then Can Parse and then Log, Forward, Notify, Log, Forward, Notify, Store, etc.Store, etc.
Connecting SAP and .NET: OptionsConnecting SAP and .NET: OptionsOption Integration strength Dependency Complexity Notes
SAP .NET Connector Low level SDK.Provides support for inbound iDoc listener (SAP->.NET)Custom development required for (outbound) iDoc sender.
Microsoft .NET FrameworkVisual Studio 2003Windows Client or Server
Medium - Flexible and scales well.
- need dev work on case by case basis- works for inbound connection
BizTalk 2004 Adaptor for SAP
Full integration. Transactions, security, logging and auditing. Load balancing, failover.
SAP.NET ConnectorBiztalk 2004Microsoft.NET FrameworkVisual Studio 2003WindowsBiztalk Adaptor for SAP 2.0
Medium -Attractive in business process management scenarios- Low code or minimum code required- auto mapping of schema- Inbound and outbound
Flat files with Shared folder
Transactions, security, failover, etc are all “roll-your-own”
Any language or platform Low - Simple features- Potential Scale limits.- FileSystem Watcher is a natural complement.
SAP Portal Development Kit for .NET
Allows development of SAP portal artifacts in .NET
SAP.NET ConnectorMicrosoft.NET Framework+ ASP.NET runtimeVisual Studio 2003Windows Server
Medium - Limited to SAP Portal use.
Using a Shared Queue Using a Shared Queue as an Interop Conduitas an Interop Conduit
.NET CLR
MQ Classes for .NET
.NET ApplicationJava JVM
MQ Classes for Java
Java Application
Windows
MQI
MQ (VB6?) App
IBM MQ Series or MSMQ
REST Example, JSP & REST Example, JSP & ASP.NETASP.NET
ASP.NET
IIS
JSP
Jetty
Display
ASP.NET
IIS
JSP
Jetty
Web Service Data
SQL Server
Exchange 2003
JSP as WebDAV client JSP as WebDAV client to Exchange 2003to Exchange 2003
Logic Data
JSP
Jetty
Apache Slide
Apache httpclient
JSP as WebDAV client JSP as WebDAV client to Exchange 2003to Exchange 2003
SEARCH /exchange/dinoch/Contacts HTTP/1.1depth: 1Translate:fContent-Length: 252Content-Type: text/xml;charset=utf-8User-Agent: Jakarta Commons-HttpClient/3.0-rc2Host: mail.microsoft.comCookie: $Version=0; sessionid=37f9b3c6-4906-455c-a241-f109ee7726ae; $Path=/Cookie: $Version=0; cadata=1kwALaqaPn/4d+cs/JlM….wCmmEM/1hve7n1OjNJrDLn80P252w==; $Path=/
<searchrequest xmlns='DAV:'> <sql> SELECT "DAV:id", "DAV:href" FROM SCOPE('hierarchical traversal of "https://mail.microsoft.com/exchange/dinoch/Contacts"') WHERE "DAV:ishidden"=False AND "DAV:isfolder"=False </sql></searchrequest>
MS Word 2003MS Word 2003as Webservice clientas Webservice client
Client Web Service Data
Merriam-WebsterInternet site
Research Service
JBoss
JSP
Apache AXIS
Both of these Conform to the Microsoft Both of these Conform to the Microsoft Office 2003 Research Service Schema. Office 2003 Research Service Schema. Word acts as the Client, the Java side Word acts as the Client, the Java side acts as the server.acts as the server.
Word 2003
Windows
SQL Server
JSP producing WordMLJSP producing WordML
Logic Data
JSP
Jetty
JAXP
FileSystem
Microsoft Word 2003
Internet Explorer
Client
save
Integrating Across ServicesIntegrating Across Services
Enterprise Message BrokerEnterprise Message Broker
EDIMSMQ
Web Services
RoleManageme
nt
ProtocolBridging
EntityAggregatio
n
Orchestration
ProcessMonitoring
EventEscalation
PolicyEnforceme
ntMQSeries
What You NeedWhat You NeedTo Benefit from SOATo Benefit from SOA Service Oriented ArchitectureService Oriented Architecture Skills Skills Application portfolios/ecosystem Application portfolios/ecosystem Great softwareGreat software
Web services fabricWeb services fabric Secure, reliable & transacted interactions Secure, reliable & transacted interactions
between heterogeneous systems between heterogeneous systems Development ToolsDevelopment Tools OrchestrationOrchestration Operational Infrastructure – for Operational Infrastructure – for
management of Data, Applications, management of Data, Applications, Security & Identity, and so on. Security & Identity, and so on.
Endpoints – client softwareEndpoints – client software
SkillsSkills
ArchitectureArchitecture
PortfolioPortfolio
Summary & Call to ActionSummary & Call to Action SOA represents a better way to SOA represents a better way to
model enterprise ITmodel enterprise IT You need great software and You need great software and
skills to deliver truly skills to deliver truly Connected SystemsConnected Systems
Microsoft is a leader in Web Microsoft is a leader in Web ServicesServices
.NET Connects… with virtually .NET Connects… with virtually everythingeverything
Utilize Microsoft technologies today to Utilize Microsoft technologies today to build build Connected SystemsConnected Systems, and exploit and , and exploit and benefit from SOAbenefit from SOA
Thank YouThank You
Configurations &Configurations &ConnectionsConnections
Message
Queue
FileSystem
CICSOperational DB
Resources
JavaSAP
ASP.NET
IIS
Session Store
HTTP
SOAP / HTTP
Device
Web S
erver
Browser Web Service Client
ASP.NET Front End (1)ASP.NET Front End (1)
Message
Queue
FileSystem
CICSOperationalDB
Resources
JavaSAP
ASP.NET
IIS
ASP.NETADO.NET
IIS
System.MessagingADO.NET
Enterprise Services
System.MessagingSystem.IO
Custom Application Host
Session Store
HTTP
SOAP / HTTP
Device
Web S
erverA
pplication S
ervers
Remoting
DCOM
SOAP / HTTP
Browser Web Service Client
ASP.NET Front End (2)ASP.NET Front End (2)
Recommended