Designing applications in .Net using Service Oriented Architecture

.Net was designed to be a platform to support communication for a wide group of systems, users and devices using open Internet protocols and hence improve the business performance. It brings with itself a rich framework that has class libraries, a host of servers (like Windows Server 2003, Microsoft BizTalk, etc.) and developer tools for achieving its goal. .Net provides the feature of interoperability of applications which can be made use of to build systems that require integration among themselves to provide the customized service from the existing service providers.


Service Oriented Architecture (SOA)

To react to the emerging changes in business environment and hence be competitive, enterprises should adapt their environment including IT infrastructure so as to meet the challenge and provide solutions to dynamic business needs. SOA provides a right approach to suit this requirement by its inherent structure for providing reusable business services in distributed computing platform. It truly aligns the business and technology by providing interoperability and re-use through unification of existing and new resources and applications.

SOA is based on an object-oriented paradigm and is built on the concepts of distributed and component based model. This has become the reason for it to provide the enormous benefit that one can avail from it while using it. SOA is based on the fundamental unit called Service. Service represents a unit of functionality and is designed as a physically independent program with well-defined interfaces exposed. Every service in SOA is exposed through its endpoint which has the following information that needs to be published to the client for accessing it:

• Contract – Behavior described as business interface to define the protocol between the client and server

• Address – specifies the location of the service, usually in URL (Uniform Resource Locator) form. This would be dynamically discoverable

• Bindings – explain how to access the service exposed

Each service that is provided usually maps to a business process. Each request making use of the service may trigger many calls to the business objects (hidden from external world) underlying the component representing the service. Thus, a high level of abstraction is achieved.

The core concepts of SOA are as below:

• Services are always available at specific endpoint and thus the boundary is well-defined.

• Enhancement of a particular service will be provided at new endpoints, without changing the earlier version and thus providing backward compatibility


• In order to provide interoperability, service contracts are expressed in XML schemas which is language independent

• Compatibility of Service is based on Policy in which the Service capability would be published in the contract. An SOA service caters to the client based on the Policy designed for it.

Implementation of SOA in .Net

.Net uses Web services for implementing SOA. The main goal of Web service is to provide interoperability by enabling applications written in different programming languages and running in different platform communicate through standard Internet protocols. Web services has simplified the configuration process required for a client and server when compared to the .Net Remoting solution provided by Microsoft for developing distributed applications.

Each service component acts as an independent component and operate in their own technology and own boundary. Their service behavior and interface contracts are well-defined in XML and WSDL (Web Service Definition Language) for the consumers to avail. It provides all the information necessary for accessing programmatically by a developer who needs to consume that service. Each service has a unique URL where any client can find them and bind to this URL to avail the service.

The client can then access the Web Service provider with the help of UDDI (Universal Description, Discovery and Integration) specification. Web services use SOAP (Simple Object Access Protocol) for transmitting messages through protocols like HTTP (HyperText Transfer Protocol), TCP (Transmission Communication Protocol). SOAP message contains both the communication channel information and the actual business content. This message is sent along the actual protocol (TCP, SMTP, etc.). WSDL, SOAP and UDDI are XML based and hence provides readability and interoperability among all platforms.

.Net offers a great support to the developer community by quickly generating a Web service with least effort and faster time. It provides many tools by which complex tasks like generating SOAP message, WSDL description, etc. can be done with ease. Microsoft BizTalk Server can be used for implementing SOA by connecting heterogeneous systems through its orchestrations that can be exposed as Web services. These orchestrations are built using Visual Studio.Net environment and hence leverage the .Net framework to achieve integration of multiple systems.

.Net 3.0 offers WCF (Windows Communication Foundation) which integrates .Net remoting MSMQ, Web services and COM+. WCF supports specifications defined by WS-I (Web Services Interoperability) which promote interoperability of Web Services across platform, languages, etc.
The main WS specifications include the following:

Messaging (WS – Addressing) – defines some extra additions to extend SOAP headers and hence better communication between Web Service endpoints.

Security (WS-Security, WS-Trust and Ws-Secure Conversation) – define authentication, security, data integrity for a service

Transaction (WS-Co-ordination and WS-Atomic transaction) – Enables end-to-end communication for SOAP messages to be traversed back and forth

Metadata (WS-Policy) - documentation of specification which cannot be expressed by WSDL

.Net 3.0 provides facility for faster implementation by helping to generate the required XML details for implementing a specification. Thus, it provides better support for developing secure and reliable web services than the earlier version.

Design considerations while using SOA and .Net

• Design the Web service such that the round-trips between the client and web service is minimized and hence gain performance

• Leverage the power of XML to package the data so that data is self-explanatory


• Usage of datasets and serialized objects for passing data between client and server should be designed based on the type of client that uses the Web service since they cannot be accepted in applications other than .Net

• Choose the right method for data transfer based on the context. For example, huge set of data can be sent in binary form than plain XML


• Layering of the services should be based on the type of application. For example, high performance applications need to be carefully designed to accommodate the overhead caused due to layering

• Security and type of protocol for communication(TCP, HTTP, etc.) must be considered while designing services consumed extensively by clients outside the firewall

Applications built using SOA in .Net is ideally useful to build enterprise applications out of available services within the least possible time and effort to suit to the current business needs that is agile. By using SOA in .Net, systems can provide business service through a flexible framework consisting of loosely-coupled solutions that integrate existing legacy applications with the newly developed system having required functionality and thus accommodate the changes that occur in business process.

_______________________________________________________________________

Add to My Yahoo!


FREE Subscription

Subscribe to our mailing list and receive new articles
through email. Keep yourself updated with latest
developments in the industry.

Name:
Email:

Note : We never rent, trade, or sell my email lists to
anyone. We assure that your privacy is respected
and protected.

Visit .NET Programming Tutorial Homepage

______________________________________________________

Recommended Resource

|Designing applications in .Net using Service Oriented Architecture | How to Create and Use Anonymous Delegates in C# (C Sharp) |How to Define Custom Attributes in C# (C Sharp)| How To Handle Errors While Developing ASP.NET Applications | How to Use Indexer in Classes and Interfaces of C# (C Sharp)| Illustration of Access Keywords (base, this) with Examples in C# (C Sharp) | Illustration of Null Coalesce Operator (??) in C# (C Sharp) |Indexers Vs Properties in C# (C Sharp) | More about Reserved Attributes of C# (C Sharp)| Overview of Unified Type System of C# (C Sharp) | Purpose of Delegates in C# (C Sharp) |How does Simple Object Access Protocol (SOAP) help in Internet Communication |How to Create and Use Anonymous Delegates in C# (C Sharp)|

 


| Privacy Policy for www.dotnet-guide.com | Disclosure | Contact |

Copyright - © 2004 - 2017 - All Rights Reserved.