Trang chủ » WCF là gì? Tại sao phải sử dụng WFC

WCF là gì? Tại sao phải sử dụng WFC

Đinh Thao 4 Th10, 2021

Hôm nay bài viết sẽ giới thiệu cho các bạn 1 thuật ngữ đó là: WCF là gì? Giới thiệu cơ bản về kiến trúc của WCF và những thành phần cấu thành WCF để giải thích cho vấn đề liên lạc giữa máy tính với máy tính và những khó khăn thách thức trong việc triển khai những vấn đề trên.

WCF là gì

WCF là gì

WCF là gì?

 WCF là công nghệ nền tảng nhằm thống nhất nhiều mô hình lập trình giao tiếp được hỗ trợ trong .NET 2.0 thành một mô hình duy nhất. Vào tháng 11 năm 2005, .NET 2.0 được Microsoft phát hành trong đó có cung cấp các hàm API riêng biệt cho các liên lạc dựa trên SOAP để tối đa hoá sự làm việc giữa các nền tảng sử dụng Web Services, đồng thời.

NET 2.0 còn cung cấp các API để tối ưu việc liên lạc dựa trên mã nhị phân giữa các ứng dụng chạy trên hệ thống Windows gọi là .NET Remoting, các API cho các giao dịch phân tán, và API cho liên lạc dị bộ. WCF thống nhất các API này thành một mô hình duy nhất nhằm đáp ứng mô hình lập trình hướng dịch vụ.

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, Self-hosting.

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

Tại sao sử dụng WCF?

Tại sao sử dụng WCF

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 nhằm vào các mục tiêu khác nhau. Các phương pháp liên lạc này khá phức tạp và phải mất nhiều thời gian để làm chủ được công nghệ và kết quả thu được từ phương pháp này ít dùng được khi làm việc với phương pháp khác. 

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. Các Developer chỉ cần làm chủ được công nghệ WCF thì sẽ xây dựng được các ứng dụng một cách nhanh chóng.

WCF là một mô hình lập trình 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í là đảm bảo giao dịch. Với cách tiếp cận phát triển hệ thống phân tán thống nhất, đơn giản, và quản lý được nó làm đơn giản hoá việc phát triển các ứng dụng nối kết và đưa ra cho nhà phát triển những giá trị mà có thể họ chưa nhận ra ngay.

Cho phép các 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 lập trình quen thuộc của như VB.NET hay C# dựa trên cơ sở .NET Framework 2.0 CLR

Kiến trúc của WCF?

Kiến trúc của WCF

Kiến trúc của WCF

Kiến trúc của Windows Communication Foundation (WCF) có các lớp chủ yếu sau:

Contracts (Hợp đồng/Hiệp định)

Runtime service (Dịch vụ thực thi)

Host and activation (Chứa và kích hoạt)

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

Thông thường có các loại contract sau:

Data contract:  Mô tả các tham số cho các bản tin mà một dịch vụ có thể tạo ra hay sử dụng. Các tham số bản tin được định nghĩa bằng các tài liệu sử dụng ngôn ngữ đặc tả XML Schema (XSD), điều này cho phép các hệ thống hiểu XML có thể xử lý tài liệu dễ dàng. Các dịch vụ khi liên lạc với nhau có thể không cần đồng ý với nhau về các kiểu, nhưng cần đồng ý về contract dữ liệu, nghĩa là đồng ý về các tham số và các kiểu trả về.

Message contract: đị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). và nó cho phép điều khiển sâu hơn tới các phần trong bản tin khi có yêu cầu sự chính xác như vậy.

Server contract: Đặc tả chi tiết các phương thức của dịch vụ, và được phân phối như là một giao diện trong các ngôn ngữ lập trình như Visual Basic hay Visual C#. 

Policy and binding: Các chính sách và các kết nối (bindings) mô tả các điều kiện cần có để giao tiếp với một dịch vụ. Các chính sách sẽ bao gồm cả các yêu cầu về bảo mật và các điều kiện khác cần có khi kết nối với một dịch vụ.

2.2 Runtime service (Dịch vụ thực thi):

Runtime service chứa các hành xử sẽ xảy ra trong quá trình thực hiện của dịch vụ bao gồm có một số cách hành xử sau:

Throttling behavior: Điều khiển luồng nhằm quy định xem có bao nhiêu bản tin được xử lý

Error behavior: Hành vi xử lý lỗi quy định những hành động khi lỗi xảy ra trong hệ thống.

Metadata behavior: Quy định xem làm thế nào và khi nào thì các siêu dữ liệu được đưa ra bên ngoài dịch vụ.

Instance behavior: Hành xử thực thể quy định xem có bao nhiêu thực thể của dịch vụ đó được chạy.

Transaction behavior: Hành xử giao dịch cho phép việc rollback các giao dịch nếu xảy ra lỗi

Message inspection: Kiểm tra bản tin đem lại cho dịch vụ khả năng kiểm tra tất cả hay một số phần của bản tin

Dispatch behavior: xác định bản tin được xử lý như thế nào khi được xử lý bởi nền tảng WCF.

Concurrency behavior: Hành xử đồng thời xác định xem việc xử lý thế nào với việc đa luồng của mỗi dịch vụ hay mỗi thực thể của dịch vụ. Hành xử này giúp cho việc điều khiển số lượng luồng có thể truy nhập tới một thực thể của dịch vụ.

Parameter filtering: Khi một bản tin được đưa tới một dịch vụ, sẽ xảy ra một số hành động dựa trên nội dung phần đầu đề của bản tin. Phần lọc tham số sẽ thực hiện lọc các đầu đề bản tin và thực hiện các hành động đặt sẵn dựa trên việc lọc đầu đề bản tin.

2.3 Message (Bản tin):

Lớp bản tin là tập hợp các kênh, mỗi kênh là một thành phần xử lý bản tin theo một cách nào đó. Một tập các kênh thường được gọi là ngăn xếp kênh. Các kênh làm việc trên bản tin và trên đầu đề của bản tin. Lớp này khác với lớp thực thi dịch vụ chủ yếu bởi sự khác nhau trong việc xử lý nội dung bản tin. Có 2 kênh khác nhau như sau:

Kênh vận chuyển (transport channel): phụ trách việc đọc và ghi các bản tin từ mạng (network) hoặc từ một số điểm giao dịch bên ngoài)

Kênh điều khiển (control channel): Thực hiện xử lý bản tin theo giao thức, thông thường làm việc bằng cách đọc và ghi thêm các đầu đề cho bản tin.

2.4 Host and activation (Chứa và kích hoạt):

Nhìn chung một dịch vụ thực chất là một chương trình. Cũng giống như các chương trình khác, một dịch vụ cần phải chạy trong một tệp thực thi. Dịch vụ này thường được gọi là dịch vụ tự chứa.

Các dịch vụ còn có thể được chứa, hoặc chạy trong một tệp thực thi được quản lý bởi một agent bên ngoài như IIS hay Windows Activation Services (WAS). WAS cho phép WCF được kích hoạt một cách tự động khi phân phối tới một máy tính có chạy WAS

Các tính năng của WCF:

4.1 Transaction (Giao dịch):

Mỗi một giao dịch là một đơn vị của công việc, Kết quả của tổng thể là sự thất bại hay thành công của một giao dịch. Ví dụ, nếu một giao dịch chứa nhiều công việc, nếu một trong số công việc thất bại coi như toàn bộ giao dịch là thất bại và nó sẽ thành công nếu tất cả công việc là thành công. Giao dịch thường thấy trong các thao tác với cơ sở dữ liệu.

WCF cho phép đưa vào việc xử lý giao dịch như trên với các liên lạc sau đó có thể nhóm các liên lạc với nhau thành các giao dịch. Ở mức doanh nghiệp, tính năng này cho phép bạn thực hiện các công việc giao dịch qua các nền tảng khác nhau.

4.2 Host (Chứa):

WCF cho phép các dịch vụ được chứa trong một số lớn các môi trường khác nhau, như Windows NT Services, Windows Forms, và ứng dụng console, cũng như ở trên IIS (Internet Information Server) và WAS (Windows Activation Services).

Nếu sử dụng chứa trên IIS thì dịch vụ nhận được rất nhiều ưu điểm có sẵn trên IIS như: điều khiển một cách tự động việc bắt đầu hay kết thúc một dịch vụ….

4.3 Bảo mật:

Bảo mật là tính năng không thể thiếu trong WCF nói riêng và trong liên lạc nói chung. Trong WCF, tất cả mọi thứ từ các bản tin tới các client hay server đều phải xác thực, đảm bảo tính toàn vẹn và bảo mật của bản tin không bị lẫn trong quá trình vận chuyển.

WCF còn cho phép tích hợp ứng dụng của bạn với cơ sở hạ tầng bảo mật sẵn có, bao gồm cả các chuẩn bên ngoài môi trường Windows bằng cách sử dụng các bản tin SOAP bảo mật.

Công cụ phát triển với WCF:

Để phát triển ứng dụng với WCF các bạn cần cài các phần mềm sau:

.NET Framework 3.5

Microsoft Visual Studio 2008. Hoặc Microsoft Visual Studio Express Editions. 

WCF bắt đầu được sử dụng rộng rãi từ năm 2006 và đến thời điểm hiện tại WCF có rất nhiều phiên bản được Microsoft cải tiến và nâng cấp có thêm nhiều tính năng hỗ trợ để việc lập trình mô hình WCF dễ dàng và chặt chẽ hơn. 

Đinh Thao

Đinh Thao

Tôi là Đinh Thị Thao, hiện đang là giáo viên giảng dạy tại trung tâm testerpro và cũng là tác giả chính các bài blog liên quan đến tester, ngành công nghệ thông tin tại trên trang testerpro.vn. Với 5 năm kinh nghiệm làm việc, giảng dậy tại trung tâm thì tôi hy vọng sẽ có thể truyền tải cho các bạn những kiến thức tốt nhất của tester giúp các bạn phục vụ trong công việc của bản thân.

Từ khóa:
Bình luận
Icon Phone Icon Zalo