Thứ tư, ngày 7 tháng 12 năm 2016

WCF – Một số khái niệm cơ bản

Ngày đăng: 10/4/2012, 8:32:29PM | Lượt xem: 5,063
Hot!

WCF (Windows Communication Foundation): -          Cấu trúc của WCF service. -          Mô hình kết nối ABC. -          Các loại Contract.

WCF Endpoint architecture - ABCWCF (Windows Communication Foundation):
-          Cấu trúc của WCF service.
-          Mô hình kết nối ABC.
-          Các loại Contract.

Khái niệm

“Windows Communication Foundation (WCF) is Microsoft’s unified programming model for building service-oriented applications. It enables developers to build secure, reliable, transacted solutions that integrate across platforms and interoperate with existing investments.”  (MSDN).

WCF (Windows Communication Foundation) là công nghệ mới nhất được thiết kế theo kiến trúc hướng dịch vụ (Service Oriented Architecture – SOA). Mục đích của WCF là tạo một công nghệ thống nhất cho các công nghệ giao tiếp trước đây như: Web Services, .NET Remoting,  Microsoft Message Queuing và COM+.

Ba thành phần chính của một WCF service là:

- Service class: định nghĩa các contact (sẽ trình bày ở bên dưới).

- Hosting environment:  WCF service có thể được host lên nhiều “môi trường” khác nhau, bao gồm IIS, Windows service, Selt-hosting.

- End point: Các “cổng” kết nối giữa client và service.

Mô hình kết nối ABC

Việc giao tiếp giữa client và WCF service được thực hiện thông qua các Endpoint. Như vậy một service có thể làm chấp nhận và xử lý nhiều yêu cầu khác nhau thông các endpoint riêng biệt. Mỗi endpoint được tạo thành từ ba thành phần với tên gọi tắt rất dễ nhớ là ABC. Trong đó:

-          A – Address (Where): địa chỉ của service.

-          B – Binding (How): Cách thức giao tiếp với service. Thành phần này xác định loại giao thức kết nối giữa client và service (như HTTP, TCP, MSMQ,…), kênh xử lý và kiểu mã hóa thông điệp. Danh sách các kiểu binding:

Name Purpose
BasicHttpBinding Interoperability with Web services and clients supporting the WS-BasicProfile 1.1 and Basic Security Profile 1.0.
WSHttpBinding Interoperability with Web services and clients that support the WS-* protocols over HTTP.
WSDualHttpBinding Duplex HTTP communication, by which the receiver of an initial message does not reply directly to the initial sender, but may transmit any number of responses over a period of time by using HTTP in conformity with WS-* protocols.
WSFederationBinding HTTP communication, in which access to the resources of a service can be controlled based on credentials issued by an explicitly-identified credential provider.
NetTcpBinding Secure, reliable, high-performance communication between WCF software entities across a network.
NetNamedPipeBinding Secure, reliable, high-performance communication between WCF software entities on the same machine.
NetMsmqBinding Communication between WCF software entities by using MSMQ.
MsmqIntegrationBinding Communication between a WCF software entity and another software entity by using MSMQ.
NetPeerTcpBinding Communication between WCF software entities by using Windows Peer-to-Peer Networking.

-          C – Contact (What): Bản mô tả các chức năng của service. Cụ thể, đây là các class (structure, enum,…) được định nghĩa bên service để với các phương thức mà client có thể yêu cầu service thực hiện.

WCF Endpoint architecture - ABC

Contract

Contract được coi là một bản “hợp đồng” quy định cách thức và phương tiện để hai bên có thể hợp tác và làm việc với nhau. Trong WCF, các contact được coi như những bản mô tả nhiệm vụ, kiểu dữ liệu của service. Client sẽ có được các contact sau khi tham chiếu đến service và thông qua đó để gửi và nhận các thông điệp. Như vậy, service và client không sử dụng cùng các kiểu dữ liệu như nhau, mà chỉ sử dụng chung các contact.

Service Contract

Mô tả các công việc của service, bao gồm các kiểu dữ liệu truyền đi và kiểu dữ liệu trả về. Cụ thể, đây là các khai báo phương thức kèm với các tham số và kiểu trả về của service. Loại contract này có thể được chia ra làm hai phần là service contract (tương ứng với các interface) và operation contract (là các method).

Data Contract

“A data contract is a formal agreement between a service and a client that abstractly describes the data to be exchanged. That is, to communicate, the client and the service do not have to share the same types, only the same data contracts. A data contract precisely defines, for each parameter or return type, what data is serialized (turned into XML) to be exchanged.”  (MSDN)

Mô tả các kiểu dữ liệu tự tạo mà client có thể sử dụng. Các contract này dùng để chứa các dữ liệu cần thiết để truyền tải giữa client và service. Nếu service chỉ sử dụng các kiểu dữ liệu đơn giản (như int, string, DateTime,…) thì service đó không cần đến Data Contract.

Message Contract

Tương tự như Data Contract nhưng kiểu contract này nhằm mục đích định nghĩa cấu trúc của các thông điệp được truyền tải dưới dạng SOAP (Simple Object Access Protocol). Một thông điệp SOAP được chia thành 2 phần là header và body.

Relationship of contracts to the common language runtime

MSDN – Mối quan hệ của các loại contract với với common language runtime (CLR)

 

Fault Contract

Loại contact này giúp quản lý các ngoại lệ mà service ném ra khi thực hiện các yêu cầu của client. Khi cần thiết, service sẽ ném ra một FaultException nếu như muốn client bắt được ngoại lệ này.

Tham khảo

Fundamental Windows Communication Foundation Concepts (http://msdn.microsoft.com/en-us/library/ms731079.aspx)

Windows Communication Foundation (http://msdn.microsoft.com/en-us/library/ms735119(v=vs.90).aspx)

Windows Communication Foundation FAQ (http://www.codeproject.com/Articles/29475/Windows-Communication-Foundation-FAQ-quick-starter)

YinYang’s Programming Blog

 Chia sẻ qua: 
Hot!
Ý kiến bạn đọc

These items will be permanently deleted and cannot be recovered. Are you sure?

Gallery

image

Maecenas viverra rutrum pulvinar

Maecenas viverra rutrum pulvinar! Aenean vehicula nulla sit amet metus aliquam et malesuada risus aliquet. Vestibulum rhoncus, dolor sit amet venenatis porta, metus purus sagittis nisl, sodales volutpat elit lorem…

Read more

Text Links

Thiết kế logo chuyên nghiệp Insky
DAFABET
W88 w88b.com/dang-ky-tai-khoan-w88
W88
Copyright © 2011 - 2012 vietshare.vn by phamkhuong102@gmail.com doanhkisi2315@gmail.com. All rights reserved.