1 / 34

Overview of SOA and WCF

Overview of SOA and WCF. Agenda. 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.

libby
Download Presentation

Overview of SOA and WCF

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Overview of SOA and WCF Jinaldesai.net – My Thouths And Learnings

  2. Agenda • Overview of Service Oriented Architecture (SOA) • Overview of WCF • Introducing WCF Contracts Jinaldesai.net – My Thouths And Learnings

  3. What is Services? • Service is unit of logic(functionality). • Example of services are placing airline ticket order online or viewing an online bank statement. • Services are loosely coupled. • Service interface is independent of implementation. • Services are reusable. Jinaldesai.net – My Thouths And Learnings

  4. 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 it’s task. • Service is relatively independent of other service or software. Jinaldesai.net – My Thouths And Learnings

  5. 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 it’s implementation. Jinaldesai.net – My Thouths And Learnings

  6. 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). • 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

  7. Structure of SOA Jinaldesai.net – My Thouths And Learnings

  8. 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. • 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

  9. Distributed Applications Jinaldesai.net – My Thouths And Learnings

  10. Distributed Application on Windows • Microsoft shipped many communication frameworks to achieve connected system environment. • Disadvantages: • Each framework comes up with a unique programming model. • Each of these framework can be used only in windows platform. Jinaldesai.net – My Thouths And Learnings

  11. Services Communication • ™Services were used to expose the units of functionality via messages. Jinaldesai.net – My Thouths And Learnings

  12. SOAP and REST • ™To make a service available over http can be done by exposing a SOAP based service or using a REST( non SOAP) based service. • ™SOAP • XML Messaging using SOAP as the format, enhanced with the WS-* protocols(can be used with any transport protocol). Typically used in enterprise. • ™REST • Which operates on resources through a unified interface(HTTP). Typically used in public facing web scenarios. Jinaldesai.net – My Thouths And Learnings

  13. What is WCF? • ™WCF is the Microsoft next generation technology 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

  14. 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

  15. What does WCF solve? Jinaldesai.net – My Thouths And Learnings

  16. Why handle unification? Jinaldesai.net – My Thouths And Learnings

  17. Unification of Distributed Technologies Jinaldesai.net – My Thouths And Learnings

  18. WCF in .NET framework stack Jinaldesai.net – My Thouths And Learnings

  19. WCF Architecture • 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 Jinaldesai.net – My Thouths And Learnings

  20. 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: • Service Contracts • Operation Contracts • Data Contracts • Message Contracts • Fault Contracts Jinaldesai.net – My Thouths And Learnings

  21. 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. • 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. Jinaldesai.net – My Thouths And Learnings

  22. 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: • HTTP Channel • TCP Channel • MSMQ Channel Jinaldesai.net – My Thouths And Learnings

  23. 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

  24. 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

  25. WCF Service from the inside Jinaldesai.net – My Thouths And Learnings

  26. 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

  27. 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

  28. 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. • 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; } } Jinaldesai.net – My Thouths And Learnings

  29. 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

  30. 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 message’s 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

  31. 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

  32. 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

  33. WCF Contracts – Fault Contracts Fault Contract Example: [ServiceContract()] public interface IService { [OperationContract] [FaultContract (typeof(MyFaultException))] 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

  34. Thanks Jinaldesai.net – My Thouths And Learnings

More Related