indigo jonathan turnbull nick cartwright ivan konontsev chris bright
TRANSCRIPT
![Page 1: Indigo Jonathan Turnbull Nick Cartwright Ivan Konontsev Chris Bright](https://reader035.vdocuments.us/reader035/viewer/2022062619/55160e64550346d46f8b6129/html5/thumbnails/1.jpg)
Indigo
Jonathan TurnbullNick CartwrightIvan Konontsev
Chris Bright
![Page 2: Indigo Jonathan Turnbull Nick Cartwright Ivan Konontsev Chris Bright](https://reader035.vdocuments.us/reader035/viewer/2022062619/55160e64550346d46f8b6129/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062619/55160e64550346d46f8b6129/html5/thumbnails/3.jpg)
Longhorn overview
![Page 4: Indigo Jonathan Turnbull Nick Cartwright Ivan Konontsev Chris Bright](https://reader035.vdocuments.us/reader035/viewer/2022062619/55160e64550346d46f8b6129/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062619/55160e64550346d46f8b6129/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062619/55160e64550346d46f8b6129/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062619/55160e64550346d46f8b6129/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062619/55160e64550346d46f8b6129/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062619/55160e64550346d46f8b6129/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062619/55160e64550346d46f8b6129/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062619/55160e64550346d46f8b6129/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062619/55160e64550346d46f8b6129/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062619/55160e64550346d46f8b6129/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062619/55160e64550346d46f8b6129/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062619/55160e64550346d46f8b6129/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062619/55160e64550346d46f8b6129/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062619/55160e64550346d46f8b6129/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062619/55160e64550346d46f8b6129/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062619/55160e64550346d46f8b6129/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022062619/55160e64550346d46f8b6129/html5/thumbnails/20.jpg)
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