Introduction WCF Service

Post on 21-Jan-2017

602 views 1 download

Transcript of Introduction WCF Service

1

GIỚI THIỆU VỀ WCF SERVICE

NHÓM 3: BÙI XUÂN QUANG

NGUYỄN HỮU TRÍ

Nội dung báo cáo

1. WCF là gi?2. Tại sao sử dụng WCF?

3. Declarative programming.4. Service Contract

1. Thuộc tính ServiceContract.2. Thuộc tính OperationContract.

5. Data Contract

2

WCF là gì?

WCF là từ viết tắt của Windows Communication Foundation. Nó cho phép triển khai ứng dụng trong môi trường phân tán gồm nhiều

client giao tiếp với Server Service và kết hợp nhiều phương pháp giao tiếp trên các nền tảng khác nhau.

WCF là mô hình lập trình hợp nhất của Microsoft để xây dựng các ứng dụng hướng dịch vụ. Nó tích hợp nhiều nền tảng và các ứng dụng đã được xây dựng trước đó.

Được xây dựng trên .Net 2.0 và làm đơn giản hóa sự phát triển của các hệ thống kết nối.

Tạo ra một công nghệ thống nhất cho các công nghệ giao tiếp trước như: Web Services, .NET Remoting, COM+ …

3

Tại sao sử dụng WCF ?

.NET 2.0 hỗ trợ rất nhiều phương pháp liên lạc giữa các ứng dụng khác nhau.

Với việc ra đời của WCF, mọi phương pháp liên lạc trước kia đều có thể thực hiện trên WCF.

WCF là một mô hình lập trình cho phép nhà phát triển xây dựng các giải pháp dịch vụ đảm bảo tính ổn định, bảo mật và thậm chí đảm bảo giao dịch.

Do WCF được xây dựng trên cơ sở .NET Framework 2.0 CLR, nó tập hợp các lớp cho phép nhà phát triển xây dựng các ứng dụng hướng dịch vụ bằng môi trường VB.NET hay C#.

4

Kiến trúc WCF5

Các Contracts

Data Contract môt tả các tham số cho các bản tin mà một dịch vụ có thể tạo hay sử dụng.

Message Contract định nghĩa các phần có trong bản tin sử dụng các giao thức SOAP.

Service Contract đặc tả chi tiết các phương thức của dịch vụ. Policy and Binding mô tả các điều kiện cần có để giao tiếp cới một dịch

vụ.

6

Runtime Service

Throttling behavior điều kiển luồn. Error behavior quy định những hành động xảy ra khi lỗi. Metadata behavior hành xử với các siêu dữ liệu. Instance behavior hành xử thực thể, quy định bao nhiêu thực thể được chạy. Transaction behavior hành xử giao tiếp cho việc rollback. Message inspection kiểm tra bản tin. Dispatch behavior xác định bản tin được xử lý như thế nào. Concurrency behavior điều kiển số lượng luồng truy cập tới thực thể dịch vụ. Parameter filtering.

7

Message

Tập hợp các kê. Mỗi kê là một thành phẩn xử lý bản tin theo cách nào đó. Có 2 kênh khác nhau:

Transport Channel: đọc và ghi bản tin. Control Channel: thực hiện xử lý bản tin.

8

Declarative programming:

Lập trình khai báo thông qua các thuộc tính, những thuộc tính này được sử dụng để định nghĩa các contract và xác định hành xử của dịch vụ.

Thuộc tính ServiceContract dùng để quy định là interface này định nghĩa chứa năng của một dịch vụ. Thuộc tính OperationContract được sử dụng ở các hàm để quy định rằng hàm này được khai báo là một phần của dịch vụ.

9

Declarative programming:

Chúng ta sử dụng phương pháp nạp chồng tên trong C# và sử dụng thêm tham số Name để quy định thêm tên hàm ở dịch vụ.

Ngoài ra còn cho ta thêm linh hoạt trong việc đổi tên các hàm trong giao diện mà không làm thay đổi định nghĩa dịch vụ.

10

Service Contracts Định nghĩa các phương thức của một dịch vụ, thực chất là các hành động

mà client có thể sử dụng. Để định nghĩa cho Contract ta sử dụng: ServiceContract định nghĩa contract dịch vụ OperationContract định nghĩa các phương thức cho dịch vụ.

Sau khi định nghĩa cho Contract ta tiến hành cài đặt một lớp cho giao diện trên.

11

Service Contracts Bạn cũng có thể định nghĩa dịch vụ ở trong lớp cài đặt dịch vụ.

12

Thuộc tính Service Contracts CallbackContract: Khi liên lạc giữa client và server được thiết lập,

tham số này chỉ ra rằng client cần đợi lời gọi hàm từ phía dịch vụ thông qua kiểu của callbackcontract đã định nghĩa.

13

Thuộc tính Service Contracts ConfigurationName: Thiết lập/ trả về tên được sử dụng để xác định

thành phần dịch vụ trong tệp tin cấu hình.

Name: Thiết lập/ trả về tên thành phần <portType>. Giá trị mặc định chính là tên của giao diện hay lớp có gắn thuộc tính ServiceContract.

Namespace: Thiết lập/ trả về namespace cho thành phần <portType>. Giá trị mặc đinh là http://tempuri.org.

ProtectionLevel: Quy định về mức bảo vệ trong binding. Bao gồm quy định về mã hóa.

14

Thuộc tính Service Contracts SessionMode: Quy định kiểu hỗ trợ cho các phiên làm việc mà một dịch

vụ đòi hỏi hoặc hỗ trợ.

15

Thuộc tính OperationContracts Action: Quy định hành động chỉ ra một cách duy nhất phương thức này. AsyncPattern: IsInitiating: Quy định phương thức này có phải là phương thức để khởi

tạo một phiên hay không. IsOneWay: Chỉ ra rằng phương thức này chỉ chứa bản tin đầu vào duy

nhất. IsTerminating: Quy định WCF có kết thúc phiên làm việc hiện tại sau

khi phương thức này thực hiện xong. Name: Quy định tên cuối cùng của phương thức sẽ có trong dịch vụ. ProtectionLevel: Quy định sự bảo vệ. ReplyAction: Quy định hành động của bản tin trả lời cho phương thức

này.

16

DataContractĐịnh nghĩa các kiểu dữ liệu được sử dụng ở các phương thức của dịch vụ.Để định nghĩa DataContract ta sử dụng thuộc tính DataContract và DataMember.

17

Kiến trúc của client Giao diện IClientChannel: Giao diện này định nghĩa các thao

tác cho phép nhà phát triển điều khiển các chức năng của kênh, như đóng phiên làm việc của client và huỷ một kênh (để thu hồi tài nguyên).

Các đối tượng phía client: Có hai giao diện cơ sở là:+ ICommunicationObject+ IExtensibleObject

18

Kiến trúc của client

Các đối tượng của client

ICommunicationObjectĐịnh nghĩa contract cho trạng thái cơ bản của tất cả các đối

tượng trong hệ thống.

IExtensibleOjectThuộc tính này được sử dụng để trả về một tập hợp các đối

tượng mở rộng có thể được sử dụng để mở rộng các lớp thực thi đã có.

19

Các kênh client Hai giao diện cơ bản cho kênh giao diện: IClientChannel

Định nghĩa các thao tác được hỗ trợ bởi tất cả các kênh. Giao diện này chứa các phương thức và thuộc tính có thể sử dụng để định nghĩa các hành xử kênh cho các yêu cầu bên ngoài và hành xử kênh cho yêu cầu/trả lời của chương trình client. IContextChannel

Định nghĩa trạng thái của phiên làm việc của một kênh. Những thông tin này bao gồm SessionId, phiên Input và phiên Output, cùng với các điểm cuối cục bộ và từ xa đang được sử dụng để liên lạc với client trong phiên làm việc.

20

Các cách liên lạc của client

Một chiều (One-Way)+ Là liên lạc chỉ theo một hướng duy nhất. Là hướng từ

phía client tới dịch vụ. Không có trả lời từ phía dịch vụ.

Yêu cầu-Trả lời (Request-Reply)+ Được thực hiện như sau: client gửi đi một bản tin cho

dịch vụ, nó sẽ chờ để nhận một phản hồi từ dịch vụ. Kiểu liên lạc này đồng thời còn có nghĩa là khi client gửi đi bản tin, nó sẽ không thực hiện thao tác khác cho tới khi nó nhận được một phản hồi từ phía dịch vụ.

21

Các cách liên lạc của client Song công (Duplex) + Là khả năng mà cả client và dịch vụ đều có thể khởi tạo liên lạc, cũng như phản hồi các bản tin đến, nói cách khác đây là liên lạc hai chiều.

Dị bộ (Asynchronous) + Việc liên lạc dị bộ cho phép chương trình tiếp tục thực

hiện những việc khác trong khi hàm được gọi vẫn đang thực hiện. Cũng giống như trong liên lạc song công, các thao tác dị bộ yêu cầu một số thay đổi về phía client và dịch vụ.

22