Service orientation is a means for building distributed systems. Fundamental to the service model, is the separation between the interface, and the implementation. The invoker of a service need only understand the interface;
A service is nothing but a unit of work done by a service provider to achieve desired end results for a service consumer.
In fact Service orientation is a complement of object – orientation. Object orientation, focuses on the applications that are built from interdependent class libraries. However service-oriented development focuses on the systems that are built from autonomous services.
Microsoft decided to combine all these 4 stacks into a cleaner and a powerful stack and named it as Indigo services.
Interoperable Web Services - ASMX model
.NET – .NET Communication - .Net Remoting
Distributed Transactions - COM+ services
Queued Messaging - MSMQ
In the future the answer for all the above technological requirements is Indigo services.
Basically the protocol that indigo uses in the wire is SOAP which is a standard in the web services across all platforms.
Creation of service is easier. Each service will have 1 or more end points that are accessible by service consumers, and a Meta data information.
The "Indigo" service model makes service-oriented development explicit and simple from any CLR-targeted language.. The "Indigo" service model supports two kinds of contracts: service contracts and data contracts.
A service contract describes the pattern of message exchanges that are used to interact with a service. Service contracts are analogous to Web Services Description Language (WSDL) portType definitions.
Data contracts are structural in nature and describe the external format of a CLR type. A data contract is analogous to an XML schema definition.
To Create the Indigo service:
Step 1: Import The system.collections.generic;
Step 2: Create a Interface and provide the declaration of the methods that the service will offer. Methods will be declared with operationcontract attribute
Step 3: Mark the interface with ServiceContract attribute. It has two properties Name, Namespace.
Step 4: Create a class that implements your service interface and provide the Definition for the method declared in the interface here.
Step 5: Client.
Create the binding, Service host and URI objects here.
Step 6: Add end points to the service host.
Call the service methods. That’s it. You have your indigo service.
Hosting Indigo Services:
A class implementing an Indigo service is compiled into a library. Indigo provides two options for hosting libraries that implement services.
1. Use a host app domain and process provided by the Windows Activation Service
2. Host the service in any app domain running in an arbitrary process.
Indigo will use the SOAP Message Transmission Optimization Mechanism (MTOM) for the attachment technology. More over Indigo will support transactions and synchronous and asynchronous messaging and peer-peer interaction.
Begin building services that will be compatible with the Indigo services when released.