Transcript Content Based Image Retrieval
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?
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
Connected Applications Applications & Application Structure Security Reliability Transactions Messaging XML HTTP and other wire protocols Foundation Transport
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
Application Messaging Services
Queuing Routing Eventing Discovery
Service Model
Instance Manager Context Manager Service Methods Type Integration Declarative Behaviors Transacted Methods
Channels
Semantic Channels (Session, Reliable, Queue, …) Transport Channels (IPC, HTTP, TCP…)
Hosting Environments
ASP.NET
.container
.exe
Policy Engine NT Service Message Encoder Channel Security DllHost
How does Indigo work?
• Reliable messaging – to ensure that messages are sent and received reliably (unlike TCP/IP) • 3 Key Areas to Indigo: 1) Ports 2) Channels 3) Services
How does Indigo work?
Message Services Service Port Channel Service Channel Service Service Channel Dispatch 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 ASMX Simple Config Interoperable Service-Oriented Indigo .NET Remoting Broad Vision Extensibility Object-Oriented Enterprise Services Attributes Transactions Components System Messaging Queuing Reliable Msg Durable 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/und erstanding/pillars/Indigo/, [accessed 24 th 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]