Bài giảng Công nghệ Web (ASP.NET): Bài 14 - Dịch vụ Web. Bài này gồm có 4 nội dung chính, đó là: Giới thiệu WCF, kiến trúc WCF, phát triển WCF, sử dụng WCF. Mời các bạn cùng tham khảo để biết thêm các nội dung chi tiết.
Trang 1Bài 14: Dịch vụ Web
Lê Quang Lợi Email: loilequang@gmail.com loilq@utehy.edu.vn
Trang 2Bài 14: Dịch vụ Web
» Giới thiệu WCF
» Kiến trúc WCF
» Phát triển WCF
» Sử dụng WCF
Trang 314.1: Dịch vụ Web
» Windows Communication Foundation (WCF)
» Thể hiện ứng dụng dịch vụ trên nền tảng Windows
» Hỗ trợ các ứng dụng dịch vụ phân tán Service
Webservice:Remoting, COM+, Websercice, MobileService…
WinService: SystemCall, Remoting …
» WCF được xây dựng cho các ứng dụng phân tán
» WCF ra đời thay thế cho các ứng dụng thế hệ cũ
» Tạo một nền tảng thống nhất cho tất cả thành phần
DOTNet giao tiếp với nhau
Trang 414.2: Kiến trúc WCF
» Contracts
» Service Runtime
» Messaging
» Activation
» and hosting
Trang 514.2: Kiến trúc WCF
» Contracts: chứa các thành phần được xây dựng
» ServiceContract , DataContract , Messaging …
» Messaging: cơ chế truyền thông điệp giữa các ứng dụng
» Activation and hosting : cơ chế đăng ký dịch vụ và triển khai dịch vụ trên nền tảng vật lý và hệ thống
Chú ý: WCF có thể đồng thời chạy trên các giao thức khác nhau
(TCP, HTTP, FTP, …)
Trang 614.2.1 Các thành phần WCF
» EndPoint : Điểm truy nhập thông tin cho phép
» Client và server giao tiếp với nhau
» ServiceHost : Thể hiện một ứng dụng dịch vụ Mỗi một kết nối tạo ra một endpoint
» DataContact : Đối tượng gói dữ liệu truyền trên mạng
» Message và Channel : Các thông tin được truyền qua SOAP
» WCFClient : Ứng dụng kết nối với WCF (winform, web, …)
Trang 7EndPoint
» Điểm giao tiếp: tồn tại cả Server và Client
Address : thể hiện địa chỉ của Endpoint ( ip : port )
Contact : Các đối tượng thao tác (trao đổi dữ liệu)
Binding : Thể hiện các giao thức/các cổng khác nhau
Trang 8Service Host
» ServiceHost : Dịch vụ phía server
» Thành phần Service
Address
Binding Protocols
Các EndPoints
» Chạy trên: IIS
winXP, vista, win7, server 2003, server 2008
Service3
Service
Service1 Service2
Service2
Services
Trang 9Kiến trúc WCF
Service Contract
hàm, hoạt động cần trao
đổi
Các Quy trình
WCF cần thực
thi
Data Contract
Định nghĩa cấu trúc cần trao đổi
dữ liệu
Cấu trú dữ liệu cần sử dụng
Message Contract
Cấu trúc cơ chế
gói
Dựa trên SOAP
Trang 1014.3 Xây dựng ứng dụng WCF
» Tạo service với ServiceContract
» Mô tả các hàm từ Interface Service
» Cài đặt các hàm trên đối tượng servicecontract
» Cài đặt đối tượng DataContract
Trang 11
14.3.1 Service Interface
using System.ServiceModel;
[ ServiceContract ]
public interface ICalculate {
[ OperationContract ]
double Add( double a, double b);
[ OperationContract ]
double Sub( double a, double b);
}
Trang 12
14.3.2 Cài đặt Service
public class SimpleCalculator : ISimpleCalculator {
public int Add (int num1, int num2) {
return num1 + num2;
}
Public double Sub ( double a, double b){
return a-b;
}
}
Trang 1314.3.3 Xây dựng DataContract
[ DataContract ]
public class ComplexNumber {
[ DataMember ]
public double Real = 0.0D;
[ DataMember ]
public double Imaginary = 0.0D;
public ComplexNumber ( double r, double i) {
this.Real = r;
this.Imaginary = i;
}
}
Trang 1414.4 Gọi dịch vụ WCF
<configuration>
<bindings>
<basicHttpBinding name=“ Hello " timeout="00:00:00:01" /> </ bindings>
< services >
IndigoConfig, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null"
</ services >
< behaviors > <ServiceMetadata httpGetEnabled="true" /> </ behaviors >
</ system.serviceModel >
</configuration>
Cấu hình cho phép chạy ứng dụng WCF triên IIS
Trang 1514.4 Gọi dịch vụ WCF
» Đăng ký sử dụng dịch vụ
Tạo ứng dụng sử dụng
Thêm web Reference trong ứng dụng
Đặt tên cho Reference
» Sử dụng dịch vụ phía Client
CalculatorClient wcfClient = new CalculatorClient ();
Console.WriteLine( wcfClient Add (4, 6));
wcfClient Close() ;