indigo jonathan turnbull nick cartwright ivan konontsev chris bright
TRANSCRIPT
Indigo
Jonathan TurnbullNick CartwrightIvan Konontsev
Chris Bright
Today's Presentation
• Introduction• What is Indigo?• What is SO?• Key Technical Issues Involved• Programming example • Why Indigo?• Conclusion• Questions?
Longhorn overview
Present communication solutions
• DCOM• COM+ • .NET Remoting• ASP.NET Web Services• WSE• Microsoft Message Queue
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
Indigo’s functions
• Reliable messaging• Security• Transactions• Queuing• Routing• Management and discovery
of other services
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
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
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
4 Tenets of Indigo
• Service-orientation Fundamentals
• Boundaries are explicit• Services are autonomous• Services share schema and
contract, not class
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
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
How does Indigo work?
Port
Service
Service
Channel
Channel
Service
ServiceChannel
DispatchDispatch
MessageServicesMessageServices
Receive via HTTP
Receive via HTTP
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);
}}
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
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
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
Migration to Indigo
• Comes with Longhorn• Separate download for
Windows XP, 2003• Exposed via .NET APIs
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
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
Questions?
• Any questions?• E-mail: [email protected]