indigo jonathan turnbull nick cartwright ivan konontsev chris bright

21
Indigo Jonathan Turnbull Nick Cartwright Ivan Konontsev Chris Bright

Upload: rebecca-newton

Post on 28-Mar-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Indigo Jonathan Turnbull Nick Cartwright Ivan Konontsev Chris Bright

Indigo

Jonathan TurnbullNick CartwrightIvan Konontsev

Chris Bright

Page 2: Indigo Jonathan Turnbull Nick Cartwright Ivan Konontsev Chris Bright

Today's Presentation

• Introduction• What is Indigo?• What is SO?• Key Technical Issues Involved• Programming example • Why Indigo?• Conclusion• Questions?

Page 3: Indigo Jonathan Turnbull Nick Cartwright Ivan Konontsev Chris Bright

Longhorn overview

Page 4: Indigo Jonathan Turnbull Nick Cartwright Ivan Konontsev Chris Bright

Present communication solutions

• DCOM• COM+ • .NET Remoting• ASP.NET Web Services• WSE• Microsoft Message Queue

Page 5: Indigo Jonathan Turnbull Nick Cartwright Ivan Konontsev Chris Bright

What is Indigo?

• Devised by Shewchuk and colleagues

• Successor and consolidation of current communication solutions

• A set of .Net technologies• Unified programming model• Cross platform support• Moving from Object to Service

Orientation

Page 6: Indigo Jonathan Turnbull Nick Cartwright Ivan Konontsev Chris Bright

Indigo’s functions

• Reliable messaging• Security• Transactions• Queuing• Routing• Management and discovery

of other services

Page 7: Indigo Jonathan Turnbull Nick Cartwright Ivan Konontsev Chris Bright

Services and Systems

• A Service is a program you interact with via exchanges of messages

• Services expose machine readable descriptions of these messages

• A System is a set of deployed services cooperating in a given task

• Services can be discovered via directory or lookup services

Page 8: Indigo Jonathan Turnbull Nick Cartwright Ivan Konontsev Chris Bright

What is service orientation?

• Service-orientation describes a new method for architecting connected systems

• Service, Client, and Connected System• Complements object oriented

development • No knowledge is needed of the

underlying model of the program• Advantage is that applications running

on different platforms etc can communicate

• Better than J2EE because modifying one part of the system may break others

Page 9: Indigo Jonathan Turnbull Nick Cartwright Ivan Konontsev Chris Bright

Services Architecture

Foundation

Applications & Application Structure

Transport

Connected ApplicationsConnected Applications

Ma

na

ge

me

nt

Ma

na

ge

me

nt

Bu

sin

es

sB

us

ine

ss

Pro

ce

ss

es

Pro

ce

ss

es

……

SecuritySecurity ReliabilityReliability TransactionsTransactions

MessagingMessaging

XMLXML

Me

tad

ata

Me

tad

ata

HTTP and other wire protocolsHTTP and other wire protocols

Page 10: Indigo Jonathan Turnbull Nick Cartwright Ivan Konontsev Chris Bright

4 Tenets of Indigo

• Service-orientation Fundamentals

• Boundaries are explicit• Services are autonomous• Services share schema and

contract, not class

Page 11: Indigo Jonathan Turnbull Nick Cartwright Ivan Konontsev Chris Bright

How does Indigo work? Architecture

Channels

Transport Channels (IPC, HTTP, TCP…)

Transport Channels (IPC, HTTP, TCP…)

Semantic Channels (Session, Reliable, Queue, …)

Semantic Channels (Session, Reliable, Queue, …)

Policy EnginePolicy Engine

Message Encoder

Message Encoder

Channel SecurityChannel Security

Hosting Environments

Instance ManagerInstance Manager

Context ManagerContext Manager

TypeIntegration

TypeIntegration

ServiceMethodsServiceMethods

DeclarativeBehaviors

DeclarativeBehaviors

TransactedMethods

TransactedMethods

ASP.NETASP.NET .container.container .exe.exe NT ServiceNT Service DllHostDllHost

Messaging Services

QueuingQueuing RoutingRouting EventingEventing DiscoveryDiscovery

Service Model

Application

Page 12: Indigo Jonathan Turnbull Nick Cartwright Ivan Konontsev Chris Bright

How does Indigo work?

• Reliable messaging – to ensure that messages are sent and received reliably (unlike TCP/IP)

• 3 Key Areas to Indigo:1) Ports2) Channels3) Services

Page 13: Indigo Jonathan Turnbull Nick Cartwright Ivan Konontsev Chris Bright

How does Indigo work?

Port

Service

Service

Channel

Channel

Service

ServiceChannel

DispatchDispatch

MessageServicesMessageServices

Receive via HTTP

Receive via HTTP

Page 14: Indigo Jonathan Turnbull Nick Cartwright Ivan Konontsev Chris Bright

Example Code

using System.ServiceModel;

[Service]public class MyService{

string Hello(string name){

return “Hello “ + name;}

[ServiceMethod]string ServiceHello(string name){

return “Hello “ + name;}

[ServiceMethod(OneWay=true)]void XMLMessage(Message msg)

{new XPathDocument(msg.Body);

}}

Page 15: Indigo Jonathan Turnbull Nick Cartwright Ivan Konontsev Chris Bright

Why Indigo?

• Heterogeneous interoperability• Secure & Reliable• With Visual Studio.NET you need 56,296 lines to

have a secure, reliable and transacted service.• With indigo you need approx 3.• Build new systems faster – abstracts complexity

for developers• Transport modes etc are controlled by Indigo

and not code. You specify what you want to do, not how to do it.

• Simplified integration with existing systems• Compliant with industry standards e.g. SOAP• Unified Programming Model

Page 16: Indigo Jonathan Turnbull Nick Cartwright Ivan Konontsev Chris Bright

Why Indigo? Unified Programming Model

Indigo

ASMX .NET Remoting Enterprise Services

Simple ConfigInteroperable

Service-Oriented

AttributesTransactionsComponents

Broad VisionExtensibility

Object-Oriented

System Messaging

QueuingReliable MsgDurable Msg

Page 17: Indigo Jonathan Turnbull Nick Cartwright Ivan Konontsev Chris Bright

Competition

• Distributed technologies such as:

• Java’s Remote Method Invocation (RMI)

• Common Object Request Broker Architecture (CORBA)

• J2EE• All have same problems of

tight coupling

Page 18: Indigo Jonathan Turnbull Nick Cartwright Ivan Konontsev Chris Bright

Migration to Indigo

• Comes with Longhorn• Separate download for

Windows XP, 2003• Exposed via .NET APIs

Page 19: Indigo Jonathan Turnbull Nick Cartwright Ivan Konontsev Chris Bright

Conclusion

• Key component of Longhorn• Indigo is the future of

communication• Consolidates and builds on

existing technologies• Built on the principle of

passing messages• Simplification by the Unified

programming model

Page 20: Indigo Jonathan Turnbull Nick Cartwright Ivan Konontsev Chris Bright

Selected References

• Brent E. Rector, Introducing the Next Generation of Microsoft Windows for Developer's: Code Name "Longhorn“, ISBN: 0735620857

• Indigo, http://msdn.microsoft.com/Longhorn/understanding/pillars/Indigo/, [accessed 24th November 2004]

• Box D, Indigo: Services and the future of distributed applications, PDC Presentation 2003

• Shewchuk J, Moving Forward: Web Services and Indigo, Microsoft Research Summit presentation 2001

Page 21: Indigo Jonathan Turnbull Nick Cartwright Ivan Konontsev Chris Bright

Questions?

• Any questions?• E-mail: [email protected]