Connected Applications and Indigo

37
Connected Applications Connected Applications and Indigo and Indigo Felipe Cabrera Felipe Cabrera Architect Architect Microsoft Microsoft 1

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

Transcript of Connected Applications and Indigo

Page 1: Connected Applications and Indigo

Connected Applications Connected Applications and Indigoand Indigo

Felipe CabreraFelipe CabreraArchitectArchitectMicrosoftMicrosoft

11

Page 2: Connected Applications and Indigo

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

Page 3: Connected Applications and Indigo

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

Page 4: Connected Applications and Indigo

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

Page 5: Connected Applications and Indigo

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

Page 6: Connected Applications and Indigo

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

Page 7: Connected Applications and Indigo

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

Page 8: Connected Applications and Indigo

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

Page 9: Connected Applications and Indigo

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

Page 10: Connected Applications and Indigo

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

Page 11: Connected Applications and Indigo

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

Page 12: Connected Applications and Indigo

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

Page 13: Connected Applications and Indigo

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……

Page 14: Connected Applications and Indigo

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

Page 15: Connected Applications and Indigo

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

Page 16: Connected Applications and Indigo

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

Page 17: Connected Applications and Indigo

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

Page 18: Connected Applications and Indigo

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

Page 19: Connected Applications and Indigo

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

Page 20: Connected Applications and Indigo

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

Page 21: Connected Applications and Indigo

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

Page 22: Connected Applications and Indigo

Longhorn ArchitectureLonghorn Architecture

2222

Page 23: Connected Applications and Indigo

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

Page 24: Connected Applications and Indigo

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

Page 25: Connected Applications and Indigo

+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

Page 26: Connected Applications and Indigo

[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

Page 27: Connected Applications and Indigo

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

Page 28: Connected Applications and Indigo

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

Page 29: Connected Applications and Indigo

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

Page 30: Connected Applications and Indigo

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

Page 31: Connected Applications and Indigo

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

Page 32: Connected Applications and Indigo

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

Page 33: Connected Applications and Indigo

Q & AQ & A

andand

FeedbackFeedback

3333

When in doubt look inWhen in doubt look in

http://msdn.microsoft.com/webserviceshttp://msdn.microsoft.com/webservices

Page 34: Connected Applications and Indigo

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

Page 35: Connected Applications and Indigo

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

Page 36: Connected Applications and Indigo

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

Page 37: Connected Applications and Indigo

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