Content Based Image Retrieval

Download Report

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 explicitServices are autonomousServices 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]