|
Service Oriented Architecture and Indigo Services ----S. Sundararajan Service Orientation:
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; Take an e.g. Today I have a mobile Nokia 7600. My phone number is ‘xxxxxxxxxx’. You can contact me in this number and the service that you get is, talking with me. Tomorrow, I change my Here the interface for you to contact me is the phone number that does not get changed. However the implementation behind it has changed the mobile. You will not see any interruption in the service. But in act the service has evolved with in itself. That’s the kind of architecture people were looking at. In the current scenario to enable business go better; there is a need for Distributed systems. As of now most distributed system architectures are tightly coupled. But we don’t want in that manner. We want a loosely coupled architecture. A good example for loosely coupled architecture has been given by “Mr. Hao He” in his article ‘What is service oriented architecture’ in www.xml.com. It is quoted below. Suppose take an example of CD. You want to play it. You put your CD into a CD player which plays it. The CD player offers a CD playing service. Now you can take the CD and play it in another CD player and you get the same service. This is an example of loosely coupled architecture. Imagine a situation that the CD and the service of it being played are tightly coupled. i.e., each CD comes out with a CD player then lives become horrible. Here the CD player is the Service provider and you are the Service consumer. 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. The World Wide Web Consortium (W3C) refers to SOA as 'A set of components which can be invoked, and whose interface descriptions can be published and discovered’ Microsoft Technologies in Distributed application development:
There were different technologies for distributed applications The well known ASMX model web services: Whenever it comes to designing and developing applications that are interoperable with other technologies then the answer to the technological decision is nothing but web services and the ASMX model in .Net When it comes to ‘.Net to .Net’ intranet communication system then “.Net Remoting” will give more performance than others. Then comes the For disconnected distributed application the basic choice is MSMQ model… Definitely performance wise COM+ services, doing binary over TCP are better than ASMX doing XML over HTTP. But when it comes to interoperability, which is a major concern today, ASMX model is preferred over the binary over TCP models. When there are needs to implement Load balancing technologies then the ASMX model is easier to implement, but a slightly difficult one, when it comes to COM+ services. Microsoft decided to combine all these 4 stacks into a cleaner and a powerful stack and named it as Indigo services.
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 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. Disclaimer: The article is based on the info that I have made out of sessions and seminars on indigo services. I had tried to share the knowledge that I gained about the new technology listening seminars and various articles. It is not compulsory that it will replicate exactly the technology of Indigo when it is released. CTP of Indigo services is available at MSDN .
| ||||||||||||||||||||||||||||||||||||||||||||||||||||