WCF – Công cụ phát triển ứng dụng hướng dịch vụ

ngày 15-03-2016

 
WCF là mô hình phát triển ứng dụng hướng dịch vụ (SOA) trên nền tảng của Microsoft, có khả năng thích ứng cao với những thay đổi thực tế của doanh nghiệp. WCF (Windows Communication Foundations) kết hợp các đặc điểm từ công nghệ phân tán của ASP.NET Web Services, .NET Remoting, Message Queuing và Enterprise Services cho phép xây dựng ứng dụng linh động, tin cậy, an toàn, bảo mật cao.

 
WCF cung cấp các tính năng sau:
  • Hosting linh động: Dịch vụ WCF có thể được hosting lên nhiều “môi trường” khác nhau, bao gồm IIS, Windows service, Self-hosting,..
  • Giao tiếp dữ liệu dễ dàng: Tương tự như .NET Remoting,dịch vụ WCF cung cấp rất nhiều kênh để giao tiếp như HTTP, TCP , IPC.
  • An toàn
  • Linh động, dễ dàng mở rộng, nâng cấp

 

Ứng dụng WCF trong ngữ cảnh thực tế

Giả sử một khách sạn ABC liên lạc với bạn với yêu cầu cần xây dựng phần mềm điều hành đặt phòng để Ban giám đốc có thể quản lý hoạt động của khách sạn và tối ưu hóa tỷ lệ sử dụng phòng tốt hơn. Ngoài các đặc điểm, chức năng riêng cần có của phần mềm điều hành quản trị, phần mềm còn phải có khả năng:
  • Giao tiếp được với phần mềm quản lý phòng đang được các nhân viên lễ tân sử dụng trong hệ thống của khách sạn (ứng dụng Windows Forms trên .NET)
  • Kết nối được với phần mềm đặt phòng đang chạy tại các văn phòng du lịch (ứng dụng web được xây dựng bằng J2EE)
Giả sử khách sạn yêu cầu ứng dụng mới được xây dựng trên công nghệ Microsoft .NET. Trong trường hợp này, nếu chỉ có yêu cầu giao tiếp giữa các ứng dụng .NET trong mạng cục bộ thì .NET Remoting sẽ là lựa chọn tối ưu. Tuy nhiên, do yêu cầu ứng dụng còn phải có khả năng tương tác với ứng dụng J2EE khác trên nền WWW, nên chúng ta không thể sử dụng .NET Remoting. Dĩ nhiên chúng ta cũng có thể lựa chọn ASP.NET Web service nhưng hướng đến sự phát triển, mở rộng sau này của khách sạn, lựa chọn WCF sẽ là lựa chọn tốt nhất.
 
 
Khác biệt giữa WCF và Web Service ASP.NET

Windows Communication Foundation (WCF) ASP.NET Web Service
Hỗ trợ được tất cả giao thức: HTTP, HTTPs, WSHTTP, TCP, MSMQ Chỉ hỗ trợ giao thức HTTP, HTTPs
Hỗ trợ đảm bảo giao tác an toàn - Atomic Transactions Không hỗ trợ đảm bảo giao tác an toàn - Atomic Transactions
Mặc định WCF sử dụng chuẩn SOAP để gửi và nhận thông điệp, nhưng WCF có thể hỗ trợ nhiều định dạng thông điệp khác nhau như: binary, MTOM (Message Transfer Optimized Mechanism),… Chỉ có thể gửi và nhận thông điệp dạng chuẩn SOAP.
Thông qua DataContractSerializer, có thể xác định thuộc tính nào, thể hiện nào cần chuyển đổi sang XML Sử dụng XmlSerializer để chuyển đổi với nhiều hạn chế như chỉ có thuộc tính kiểu Public hay class dẫn xuất từ IEnumerablemới chuyển được.
 

Mô hình giao tiếp WCF

WCF tuân theo kiến trúc Client – Server. Trong đó giao tiếp giữa Client và Server được thiết lập bằng cách sử dụng các điểm kết nối (Endpoints) do WCF Service cung cấp. Một service có thể 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.
  • C – Contact (What): Thông tin mô tả các chức năng của service. Cụ thể, đây là các classđượ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.

 


Được giới thiệu từ năm 2006 với phiên bản đầu tiên là 3.0, đến nay WCF đã không ngừng được Microsoft cải tiến, nâng cấp và phiên bản chính thức mới nhất là WCF 4.5. Trên phiên bản này, Microsoft đã đưa thêm nhiều tính năng hỗ trợ giúp cho việc lập trình mô hình WCF dễ dàng và chặt chẽ hơn.

Đặc biệt, Trung Tâm Tin Học khai giảng thường xuyên khóa Xây dựng ứng dụng Windows Forms với EF và WCF (phiên bản WCF 4.5) với các kiến thức WCF nền tảng, hệ thống bài tập từ cơ bản đến nâng cao đượcứng dụng trên Windows Forms giúp học viên có kiến thức vững chắc, từng bước nắm rõ và biết cách ứng dụng mô hình phần mềm hướng dịch vụ SOA trong thực tế.
 
(Trung Tâm Tin Học ĐH Khoa Học Tự Nhiên)
 

ai
Trung Tâm Tin Học
ai
Trung Tâm Tin Học
Chào mừng bạn đến với Trung Tâm Tin Học.
Bạn đang cần hỗ trợ thông tin gì ạ? Hãy Chat ngay với chúng tôi nhé.