You are on page 1of 34

Jinaldesai.

net My Thouths And Learnings

OVERVIEW OF SOA AND WCF

AGENDA
Jinaldesai.net My Thouths And Learnings

Overview of Service Oriented Architecture (SOA) Overview of WCF

Introducing WCF Contracts

WHAT IS SERVICES?

Service is unit of logic(functionality). Example of services are placing airline ticket order online or viewing an online bank statement.

Jinaldesai.net My Thouths And Learnings

Services are loosely coupled.

Service interface is independent of implementation.

Services are reusable.

SERVICE CHARACTERISTICS

Handles a business process like calculating insurance quote; or handles relatively technical task like accessing a database; or provides business data and technical details like details needed for constructing GUI. Service Can access another service for performing its task.

Jinaldesai.net My Thouths And Learnings

Service is relatively independent of other service or software.

WHAT IS SOA?

Service Oriented Architecture is an evolution of distributed computing. It comprises of one or more services. SOA defines how two computing entities, such as program, interact in such a way as to enable one entity to perform a unit of work on behalf of another entity. Each interaction is independent of any other interaction or its implementation.

Jinaldesai.net My Thouths And Learnings

SOA KEY CHARACTERISTICS

SOA services have self-describing interfaces in platform-independent XML Document(WSDL). SOA Services communicate with messages formally defined via XML schema(XSD).

Jinaldesai.net My Thouths And Learnings

SOA services are maintained in the enterprise by a registry that acts as a directory listing(UDDI)
Each SOA service has a quality of service(QoS). Key Qos elements are security requirements, reliable messaging and other policies regarding who can invoke services.

Jinaldesai.net My Thouths And Learnings

STRUCTURE OF SOA

STRUCTURE OF SOA

The topmost level contains one or more integration services, each of which controls a flow of activities such as processing an applicant's request. Each integration service invokes one or more business services.

Jinaldesai.net My Thouths And Learnings

The second level is composed of services that each fulfill a relatively low-level business task.
The third level data access services handles relatively technical task of reading from and writing to data-storage areas such as databases/message queues.

Jinaldesai.net My Thouths And Learnings

DISTRIBUTED APPLICATIONS

DISTRIBUTED APPLICATION ON WINDOWS

Microsoft shipped many communication frameworks to achieve connected system environment.

Jinaldesai.net My Thouths And Learnings

Disadvantages:
Each framework comes up with a unique programming model. Each of these framework can be used only in windows platform.

SERVICES COMMUNICATION

S ervices were used to expose the units of functionality via messages.

Jinaldesai.net My Thouths And Learnings

SOAP AND REST


T o make a service available over http can be done by exposing a SOAP based service or using a REST( non SOAP) based service. SOAP

Jinaldesai.net My Thouths And Learnings

XML Messaging using SOAP as the format, enhanced with the WS-* protocols(can be used with any transport protocol). Typically used in enterprise. Which operates on resources through a unified interface(HTTP). Typically used in public facing web scenarios.

REST

WHAT IS WCF?
CF is the Microsoft next generation technology W for developing distributed applications. WCF has been built to facilitate the development of service-oriented applications. It is a fusion of current distributed system technologies designed and developed with the goal of achieving SOA based development.

Jinaldesai.net My Thouths And Learnings

WHAT IS WCF?

WCF is a programming model that enables developers to build service solutions that are reliable and secure, and even transacted. It simplifies development of connected applications and offers a unified, simplified, and manageable distributed system development approach.

Jinaldesai.net My Thouths And Learnings

Jinaldesai.net My Thouths And Learnings

WHAT DOES WCF SOLVE?

Jinaldesai.net My Thouths And Learnings

WHY HANDLE UNIFICATION?

Jinaldesai.net My Thouths And Learnings

UNIFICATION OF DISTRIBUTED TECHNOLOGIES

Jinaldesai.net My Thouths And Learnings

WCF IN .NET FRAMEWORK STACK

WCF ARCHITECTURE
Jinaldesai.net My Thouths And Learnings

At the heart of WCF is a layered architecture that supports a lot of the distributed application development styles. The Layers are:

Contracts Service Runtime Messaging Activation and Hosting

WCF LAYERS - CONTRACTS

WCF contracts define the functionality of WCF services. They are created in code by service developers, and are exposed to clients in the service metadata The five types of contracts:

Jinaldesai.net My Thouths And Learnings

Service Contracts Operation Contracts Data Contracts Message Contracts Fault Contracts

WCF LAYERS - SERVICE RUNTIME

The Service Runtime layer is the layer that specifies and manages the behaviors of the service that occur during service operation, or service runtime.

Jinaldesai.net My Thouths And Learnings

Some of them are as follows:


Metadata Behavior: Controls whether or not metadata is exposed to the outside world. Instance Behavior: Drives how many instances of the service will be available to process messages. Transaction Behavior: Enables transacted operations.

WCF LAYERS - MESSAGING

The messaging layer defines what formats and data exchange patterns can be used during service communication. Client applications can be developed to access this layer and control messaging details and work directly with messages and channels. Some of the Channels and components are as follows:

Jinaldesai.net My Thouths And Learnings

HTTP Channel TCP Channel MSMQ Channel

WCF LAYERS ACTIVATION & HOSTING

In its final form, a service is a program. Like other programs, a service must be run in an executable. This is known as a self-hosted service. Services can also be hosted, or run in an executable managed by an external agent, such as IIS or Windows Activation Service (WAS). WAS enables WCF applications to be activated automatically when deployed on a computer running WAS. Services can also be manually run as executable (.exe files). A service can also be run automatically as a Windows service. COM+ components can also be hosted as WCF services.

Jinaldesai.net My Thouths And Learnings

WCF SERVICE FROM THE OUTSIDE


A service is a collection of one or more endpoints. A service must have at least one endpoint. An endpoint is the component of the service that communicates with the client and provides the service operations. Each endpoint has its very own address, which makes it distinguishable from the other endpoints on the service.

Jinaldesai.net My Thouths And Learnings

Jinaldesai.net My Thouths And Learnings

WCF SERVICE FROM THE INSIDE

WCF CONTRACTS SERVICE CONTRACTS

A service contract defines the operations that a service supports, and maps to a portType in Web Service Description Language (WSDL). Service contracts are implemented as .NET Framework interfaces that are annotated with the ServiceContract attribute. [ServiceContract] public interface IBookOrder { }

Jinaldesai.net My Thouths And Learnings

WCF CONTRACTS OPERATION CONTRACTS

Operation contracts define the individual operations that a service supports and map to operations in WSDL. Operations are defined by adding methods to a Service Contract interface that is annotated with the OperationContract attribute. [OperationContract] void SomeOperation();

Jinaldesai.net My Thouths And Learnings

WCF CONTRACTS DATA CONTRACTS


A data contract is a formal agreement between a service and a client that abstractly describes the data to be exchanged. Data contract can be explicit or implicit.

Jinaldesai.net My Thouths And Learnings

Simple type such as int, string etc has an implicit data contract. User defined object are explicit or Complex type, for which you have to define a Data contract using [DataContract] and [DataMember] attribute.

[DataContract] Class Employee { [DataMember] public string FirstName { get; set; } [DataMember] public string LastName { get; set; } }

WCF CONTRACTS MESSAGE CONTRACTS

Message: Message is the packet of data which contains important information. WCF uses these messages to transfer information from Source to destination. Message Pattern: It describes how the programs will exchange message with each other. It can be Simplex one way communication, Request/Reply two way communication but at a time only one can send a message and Duplex two way communication both source and destination can send message simultaneously. In most of the cases WCF will automatically take care of message, but at some point developer will also require control over the SOAP message format. In that case WCF provides Message Contract to customize the message as per requirement.

Jinaldesai.net My Thouths And Learnings

WCF CONTRACTS MESSAGE CONTRACTS

The most common scenario for this is inserting custom SOAP headers. Another common scenario is to define security properties for the messages headers and body, that is, to decide whether these elements are digitally signed and encrypted. WCF supports either RPC(Remote Procedure Call) or Message style operation model. In the RPC model, you can develop operation with Ref and out parameter. WCF will automatically create the message for operation at run time. In Message style operation WCF allows to customize the message header and define the security for header and body of the message.

Jinaldesai.net My Thouths And Learnings

WCF CONTRACTS MESSAGE CONTRACTS

Defining Message Contracts: Message contract can be applied to type using MessageContract attribute. Custom header and body can be included to message using MessageHeader and MessageBodyMember attribute. [MessageContract] public class EmployeeDetails { [MessageHeader] public string EmpID; [MessageBodyMember] public string Name; [MessageBodyMember] public string Designation; }

Jinaldesai.net My Thouths And Learnings

WCF CONTRACTS FAULT CONTRACTS

By default when we throw any exception from service, it will not reach the client side. WCF provides the option to handle and convey the error message to client from service using SOAP Fault contract. SOAP faults are message types that are included in the metadata for a service operation and, therefore, create a fault contract that clients can use to make their operation more interactive. In addition, because SOAP faults are expressed to clients in XML form, they are highly interoperable.

Jinaldesai.net My Thouths And Learnings

WCF CONTRACTS FAULT CONTRACTS


Fault Contract Example:

[ServiceContract()] public interface IService { [OperationContract] [FaultContract


(typeof(MyFaultExcepti on))] string GetMessage(); } [DataContract] public class

MyFaultException { private string _reason; [DataMember] public string Reason { get { return _reason; } set { _reason = value; } } }

Jinaldesai.net My Thouths And Learnings

Jinaldesai.net My Thouths And Learnings

THANKS

You might also like