Upload
garth-porter
View
22
Download
3
Tags:
Embed Size (px)
DESCRIPTION
Connected Applications and Indigo. Felipe Cabrera Architect Microsoft. 1. Agenda. Recap of service-orientation trend Web Services Architecture Indigo Prescriptive guidance Q&A and Feedback. 2. Old IT Functional islands Built to spec Constrains business IT-business “alignment” - PowerPoint PPT Presentation
Citation preview
Connected Applications Connected Applications and Indigoand Indigo
Felipe CabreraFelipe CabreraArchitectArchitectMicrosoftMicrosoft
11
AgendaAgenda
Recap of service-orientation trendRecap of service-orientation trend
Web Services ArchitectureWeb Services Architecture
IndigoIndigo
Prescriptive guidancePrescriptive guidance
Q&A and FeedbackQ&A and Feedback
22
Old ITOld ITFunctional islandsFunctional islands
Built to specBuilt to spec
Constrains businessConstrains business
IT-business IT-business “alignment”“alignment”
IT accountableIT accountable
Cost driverCost driver
Technology adjunctTechnology adjunct
New ITNew ITEverything Everything connectedconnected
Built for changeBuilt for change
Empowers businessEmpowers business
IT and business are IT and business are oneone
Joint accountabilityJoint accountability
Value driverValue driver
Business platformBusiness platform
IT as Business Value DriverIT as Business Value Driver
Representing DataRepresenting DataTodayToday
Non-standard data representationsNon-standard data representations
Mostly human “Trim-and-Shim” to integrateMostly human “Trim-and-Shim” to integrate
Beginnings of standardizationBeginnings of standardizationWeb services foundationWeb services foundation
Need industry standardsNeed industry standards
Demand for business processDemand for business process
Going forwardGoing forwardIndustry de facto standardsIndustry de facto standards
Increased compatibilityIncreased compatibility
More sophisticated business processMore sophisticated business process
The Evolution to ServicesThe Evolution to Services
Business BenefitBusiness Benefit
Pre-1990sCustom, staticCustom, staticB2B IntegrationB2B IntegrationCustom, staticCustom, staticB2B IntegrationB2B Integration
Early 1990sApplication integration
technologies appearApplication integration
technologies appear
Late 1990sWeb technologies appear
e.g. HTTP, HTML, XMLWeb technologies appear
e.g. HTTP, HTML, XML
2000+Web Services
Service-OrientedSolutions
Web ServicesService-Oriented
Solutions
55
Toward Service-Oriented Toward Service-Oriented SolutionsSolutionsService-orientation is not newService-orientation is not new
Academic OS community has written about Academic OS community has written about them at least since the 70sthem at least since the 70s
Messaging has been broadly enabled since BSD 4.2Messaging has been broadly enabled since BSD 4.2
Has been practiced in large enterprises for Has been practiced in large enterprises for many yearsmany years
On a wide range of hardware/software platformsOn a wide range of hardware/software platforms
Important Complement to Object-OrientationImportant Complement to Object-OrientationLearns from Components, Distributed Objects, Learns from Components, Distributed Objects, and Message-Oriented-Middleware and Message-Oriented-Middleware
Service-orientation has had false startsService-orientation has had false startsCORBACORBARMIRMIDCOMDCOM…… 66
Service-Oriented Service-Oriented ArchitectureArchitectureBoundaries are explicitBoundaries are explicit
Services are autonomousServices are autonomous
Services share schema and contractServices share schema and contractNot classNot class
Services establish explicit Services establish explicit relationshipsrelationships
Service compatibility is based on Service compatibility is based on policypolicy
New Success FactorsNew Success FactorsBetter economicsBetter economics
Hardware advances make XML processing Hardware advances make XML processing possiblepossible
Adopting the Internet modelAdopting the Internet modelAutonomy is central to successAutonomy is central to successHeterogeneity is a givenHeterogeneity is a given
Enabling real interoperabilityEnabling real interoperabilityMore principled architectural approachMore principled architectural approach
Secure, reliable, transacted, asynchronous Secure, reliable, transacted, asynchronous messagingmessaging
Use of metadataUse of metadataPolicies to express capabilities and Policies to express capabilities and requirementsrequirements
ToolsToolsDesign, develop, debug, deployDesign, develop, debug, deploy
88
Microsoft ActivitiesMicrosoft Activities
Microsoft is working in different fronts to Microsoft is working in different fronts to make service-orientation ubiquitousmake service-orientation ubiquitous
SOAP, WSDL, UDDI, HTTP, XMLSOAP, WSDL, UDDI, HTTP, XML
.NET (2000).NET (2000)
Web Service Architecture based on a WS-* Web Service Architecture based on a WS-* family of specifications (2001 - 2004)family of specifications (2001 - 2004)
Web Service Enhancements (WSE) (2003) Web Service Enhancements (WSE) (2003)
WSE V2 (2004)WSE V2 (2004)
Indigo Beta (2004)Indigo Beta (2004)
99
AgendaAgenda
Recap of service-orientation trendRecap of service-orientation trend
Web Services ArchitectureWeb Services Architecture
IndigoIndigo
Prescriptive guidancePrescriptive guidance
Q&A and FeedbackQ&A and Feedback
1010
Design PrinciplesDesign Principles
Modular and composableModular and composableFactored to stand alone or work togetherFactored to stand alone or work together
General-purposeGeneral-purposeAgnostic to place it is running or Agnostic to place it is running or originatedoriginated
Standards-basedStandards-basedMulti-vendor interoperation is criticalMulti-vendor interoperation is critical
FederatedFederatedNo central point of administration, No central point of administration, control, failurecontrol, failure
1111
Architecture ApproachArchitecture Approach
1212
Single universal model for all Single universal model for all interactionsinteractions
Scale (process, machine, cluster, Intranet, Scale (process, machine, cluster, Intranet, Internet)Internet)
Node types (clients, servers, devices)Node types (clients, servers, devices)
Trust boundaries (may be mutually Trust boundaries (may be mutually suspicious)suspicious)
Execution instances (asynchronous)Execution instances (asynchronous)
Versioning and deployments (loosely Versioning and deployments (loosely coupled)coupled)
Implementation stacks (OS, language, …)Implementation stacks (OS, language, …)
MustMustProvide interoperabilityProvide interoperability
Achieve wide adoptionAchieve wide adoption
A Universal Architecture A Universal Architecture for Web Servicesfor Web Services
““Scales Down”Scales Down”to devicesto devices
““Scales In” Scales In” on a machineon a machine
““Scales Up” Scales Up” on large on large systemssystems
““Scales Away” Scales Away” spans organizations spans organizations
& geographies& geographies
““Scales Out”Scales Out”by adding by adding machinesmachines
1313
SecuritySecurityReliable MessagingReliable MessagingTransactionsTransactionsRoutingRouting……
Messaging InfrastructureMessaging InfrastructureDistributed applicationsDistributed applicationsVertical processesVertical processesEmbedded systemsEmbedded systemsNetwork equipmentNetwork equipment……
WS Architecture EvolutionWS Architecture EvolutionSecure, Reliable, TransactedSecure, Reliable, Transacted
SOAPUDDI
WSDL
April 2002WS-Security and Security
Roadmap
August 2002WS-TransactionWS-Coordination
WS-I2000
December 2002WS-PolicyWS-Trust
WS-SecureConversation
July 2003WS-Federation
March 2003WS-ReliableMessaging
WS-AddressingRM Roadmap
September 2003WS-
AtomicTransactionWS-Coordination
SRT WS Whitepaper
Jan/Feb 2004WS-Eventing
WS-BusinessActivityWS-Discovery
March 2004WS-
MetadataExchange
Web Services Web Services Specifications Specifications DevelopmentDevelopment ProcessProcess
Specification Specification PublishedPublished
Feedback and Feedback and Interop Interop
WorkshopsWorkshops
Revise Revise SpecificationSpecification
Standards OrgStandards Org WS-IWS-I
ParticipationParticipation
Feedback Workshops:Feedback Workshops:Are open to everyoneAre open to everyone
Need to sign workshop feedback agreementNeed to sign workshop feedback agreement
Goals:Goals:
Get feedback on technologyGet feedback on technology
Our experience is that they:Our experience is that they:
Yield well-engineered technologyYield well-engineered technology
Provide fastest time to marketProvide fastest time to market
Specification is revised based on feedbackSpecification is revised based on feedback
FeedbackFeedbackWorkshopsWorkshops
March 2003
WS-Policy and
WS-Trust
2002
February 2004
WS-EventingJuly 2003WS-
ReliableMessaging
February 2003
WS-Policy and WS-Trust November
2003WS-Federation
March 2004WS-
Transaction
Q2 2004WS-
SecureConversationWS-Trust
WS-FederationWS-Discovery
Interoperability Interoperability Workshops:Workshops:Open to teams with implementationsOpen to teams with implementations
Goal:Goal:
Demonstrate interoperabilityDemonstrate interoperability
Our experience is that they:Our experience is that they:
Help refine the important scenariosHelp refine the important scenarios
Ground the development effortsGround the development efforts
Specification revised based on Specification revised based on interoperability feedbackinteroperability feedback
Interoperability EventsInteroperability Events& Workshops& Workshops
August 2002XML Web
Services One (East)
September 2003 Bill Gates (Microsoft)
Steve Mills (IBM)
October 2003WS-
ReliableMessaging(workshop)
Nov 2003WS-Trust
WS-SecureConversation
(workshop)
September 2003 OASISWS-Security
December 2002
CDBi - EMEA
July 2003Catalyst(Burton
conference)
SOAPBuilders
2002
March 2004WS-Federation Passive Profile
(workshop)
Q2 2004WS-
SecureConversationWS-Trust
WS-ReliableMessaging
WS-PolicyWS-
AtomicTransactionWS-BusinessActivity
Q3 2004WS-Discovery
AgendaAgenda
Recap of service-orientation trendRecap of service-orientation trend
Web Services ArchitectureWeb Services Architecture
IndigoIndigo
Prescriptive guidancePrescriptive guidance
Q&A and FeedbackQ&A and Feedback
2020
What Is Indigo?What Is Indigo?
A set of Windows features for building and A set of Windows features for building and running service-oriented applications in running service-oriented applications in managed codemanaged code
Available in Longhorn timeframeAvailable in Longhorn timeframe
Available for Longhorn, Windows XP, Available for Longhorn, Windows XP, Windows Server 2003Windows Server 2003
A unified programming model and runtimeA unified programming model and runtimeAcross Microsoft’s existing distributed Across Microsoft’s existing distributed technologies technologies
Across hosting modelsAcross hosting models
Across node typesAcross node types
Across different levels of scaleAcross different levels of scale
Longhorn ArchitectureLonghorn Architecture
2222
Indigo Indigo (1/2)(1/2)
2323
Provides the interconnection fabricProvides the interconnection fabric
Supports fine-grain composition of Supports fine-grain composition of featuresfeatures
It is a platform with architected It is a platform with architected extensibilityextensibility
Separates development of core Separates development of core functionality and deployment functionality and deployment considerationsconsiderations
Like durability, or service topologyLike durability, or service topology
Exploits SOAP for transport Exploits SOAP for transport independenceindependence
Includes the ability to transfer Includes the ability to transfer metadatametadata
Indigo Indigo (2/2)(2/2)
2424
Enables pervasive transactional Enables pervasive transactional behavior with a light-weight behavior with a light-weight transaction managertransaction manager
Deploys reliable-messaging in the Deploys reliable-messaging in the low-endlow-end
Has a light-weight publish/subscribe Has a light-weight publish/subscribe infrastructure that is extensibleinfrastructure that is extensible
Topic management is layeredTopic management is layered
Provides a powerful “filter engine” to Provides a powerful “filter engine” to enable content-based message enable content-based message dispatchdispatch
+Send(in msg : Message)+BeginSend()+EndSend()
IOutputChannel
+CreateChannel()+CreateListenerChannel()«signal»+ListenerChannelNotFound()
+ChannelProviders+PortExtensions+Services
Port
+Open()+Close()«signal»-Closed()«signal»-Offline()«signal»-Online()
+IsOnline : bool+IsOpen : bool+Capabilities
IChannel
+Receive() : Message+BeginReceive()+EndReceive()«signal»+MessageAvailable()
IInputChannel
IDuplexChannel
+Request(in msg : Message) : Message+BeginRequest()+EndRequest()
IRequestChannel
+Receive() : Message+Send(in msg : Message)+BeginReceive()+EndReceive()+BeginSend()+EndSend()«signal»+MessageAvailable()
IReplyChannel
+Close()+Clone()+ReadXml(in reader : XmlReader)+WriteXml(in writer : XmlWriter)+SetProperty(in name : string, in value : object)+GetProperty(in name : string) : object
+Body : XmlReader+Headers : MessageHeader
Message
+WriteXml(in writer : XmlWriter)+ReadXml(in reader : XmlReader)
+Namespace : Uri+Name : string+MustUnderstand : bool+Relay : bool+Role : Uri
MessageHeader
2525
[Confidentiality][Reliability(Guarantees.ExactlyOnce | Guarantees.InOrder)][Service]class HelloService { [TransactionCoupling(
TransactionCouplingOptions.Required)] [ServiceMethod] String Hello(String Greeting) { return Greeting; }}
1 line of security code
1 line of reliable messaging code
1 line of transaction
code
Total count: 3
2626
AgendaAgenda
Recap of service-orientation trendRecap of service-orientation trend
Web Services ArchitectureWeb Services Architecture
IndigoIndigo
Prescriptive guidancePrescriptive guidance
Q&A and FeedbackQ&A and Feedback
2727
IndigoIndigo
Indigo And UnificationIndigo And Unification
ASMX and WSEASMX and WSE .NET Remoting.NET Remoting Enterprise ServicesEnterprise Services
Simple ConfigSimple ConfigInteroperableInteroperable
Service-OrientedService-Oriented
AttributesAttributesTransactionsTransactionsComponentsComponents
Broad VisionBroad VisionExtensibilityExtensibility
Object-OrientedObject-Oriented
Indigo is a superset of the capabilities of our existing stacksIndigo is a superset of the capabilities of our existing stacks
System.MessagingSystem.Messaging
QueuingQueuingReliable MsgReliable MsgDurable MsgDurable Msg
Preparing For Migration:Preparing For Migration:Know Your BoundariesKnow Your Boundaries
Application boundariesApplication boundariesPlatformPlatform
DeploymentDeployment
TrustTrust
Across boundaries use services Across boundaries use services
Within a boundary both services and Within a boundary both services and objects are appropriateobjects are appropriate
Today’s Prescriptive Today’s Prescriptive GuidanceGuidanceBuild services using ASMXBuild services using ASMX
Enhance your ASMX service with WSE if you need the Enhance your ASMX service with WSE if you need the WSE feature set and you can accept the support WSE feature set and you can accept the support policypolicy
Use object technology in a service’s Use object technology in a service’s implementationimplementation
Use Enterprise Services ifUse Enterprise Services ifYou need ES rich feature setYou need ES rich feature setYou are communicating between components on You are communicating between components on the local machine and have performance issues the local machine and have performance issues with ASMX or WSEwith ASMX or WSE
Use .NET Remoting ifUse .NET Remoting ifYou need to integrate with an existing proprietary You need to integrate with an existing proprietary protocolprotocolYou are communicating in-process, cross app You are communicating in-process, cross app domaindomain
Use System.Messaging if you need the Use System.Messaging if you need the reliable messaging and queuing features in reliable messaging and queuing features in MSMQMSMQ
3030
Today’s CaveatsToday’s CaveatsASMX ASMX
Avoid or abstract using low-level extensibility such as the Avoid or abstract using low-level extensibility such as the HTTP Context objectHTTP Context object
.NET Remoting.NET RemotingAvoid or abstract using low-level extensibility such as .NET Avoid or abstract using low-level extensibility such as .NET Remoting sinks and channelsRemoting sinks and channels
Enterprise ServicesEnterprise ServicesAvoid passing object references inside of ESAvoid passing object references inside of ES
Do not use COM+ APIs – use Do not use COM+ APIs – use System.EnterpriseServicesSystem.EnterpriseServices
Do not use MSMQ APIs – use Do not use MSMQ APIs – use System.MessagingSystem.Messaging
3131
The WSE SpeedboatThe WSE Speedboat
If you can get value out of a jump-If you can get value out of a jump-start use Web Services start use Web Services EnhancementsEnhancements
PSS calls are supportedPSS calls are supported
Has shorter life-span as productHas shorter life-span as product
Targeted to ‘Elvis’ and ‘Einstein’ Targeted to ‘Elvis’ and ‘Einstein’
3232
Q & AQ & A
andand
FeedbackFeedback
3333
When in doubt look inWhen in doubt look in
http://msdn.microsoft.com/webserviceshttp://msdn.microsoft.com/webservices
WSE v2.0: Enhanced WSE v2.0: Enhanced SecuritySecurity
Trust Issuing Framework (WS-Trust)Trust Issuing Framework (WS-Trust)
Secure Conversation (WS-Secure Conversation (WS-SecureConversation) SecureConversation)
Roles based authorization Roles based authorization
Security Policy (WS-SecurityPolicy)Security Policy (WS-SecurityPolicy)
3434
WSE v2.0: Policy Driven WSE v2.0: Policy Driven ArchitectureArchitectureBeyond WSDL, what else is needed to Beyond WSDL, what else is needed to
describe a Web service?describe a Web service?Security requirementsSecurity requirements
Reliable messaging assurancesReliable messaging assurances
Protocol versioningProtocol versioning
Etc…Etc…
These other attributes of a service can be These other attributes of a service can be described with WS-Policydescribed with WS-Policy
XML-base languageXML-base language
Complex: <Or>, <ExactlyOne>, etc…Complex: <Or>, <ExactlyOne>, etc…
WSE provides a Policy Framework with WSE provides a Policy Framework with send-side and receive-side policy supportsend-side and receive-side policy support
3535
WSE v2.0: SOAP MessagingWSE v2.0: SOAP MessagingWSE offers four classes for WSE offers four classes for messagingmessaging
SoapSender and SoapReceiverSoapSender and SoapReceiver
One way messagesOne way messages
Low-levelLow-level
SoapClient and SoapServiceSoapClient and SoapService
One-way and two-wayOne-way and two-way
Uses SoapSender/SoapReceiverUses SoapSender/SoapReceiver
Offers XML serialization support Offers XML serialization support
Operation dispatchingOperation dispatching
3636
WSE v2.0: Multiple Hosting WSE v2.0: Multiple Hosting EnvironmentsEnvironments
Applications can be hosted in Applications can be hosted in multiple environments: multiple environments: ASP.NET, .exe, NT Service, WinForms, ASP.NET, .exe, NT Service, WinForms, etc.etc.
Support for multiple transportsSupport for multiple transportsIn-process communicationIn-process communication
Raw TCPRaw TCP
HTTPHTTP
Asynchronous supportAsynchronous support3737