Dịch vụ Web XML và Remoting Microsoft .NET Framework phần 1 - Pdf 76

Chương 12 : Dịch vụ Web XML và Remoting Microsoft .NET Framework hỗ trợ hai mô hình lập trình phân tán cấp cao là Remoting và
dịch vụ Web XML. Mặc dù cả hai công nghệ này có nhiều điểm tương đồng (ví dụ, cả hai
cùng trừu tượng hóa lời gọi giữa các tiến trình hay giữa các máy tính khác nhau thành lời
gọi phương thức của các đối tượng ở xa), nhưng chúng cũng có vài điểm khác nhau cơ
bản.
Dịch vụ Web XML được xây dự
ng bằng các chuẩn xuyên-nền và dựa vào khái niệm XML
messaging. Dịch vụ Web XML được thực thi bởi bộ thực thi ASP.NET; nghĩa là chúng có
được các tính năng của ASP.NET như output-caching. Điều này cũng có nghĩa là dịch vụ
Web XML thuộc dạng phi trạng thái (stateless). Nói chung, dịch vụ Web XML thích hợp
nhất khi bạn cần xuyên biên nền (ví dụ, một Java-client gọi một dịch vụ Web ASP.NET)
hay biên tin c
ậy (ví dụ, trong các phiên giao dịch thương mại). Trong chương này, chúng
ta sẽ bàn một số mục liên quan đến dịch vụ Web XML sau:

Nâng cao tính linh hoạt của các lớp proxy bằng cách không viết mã cứng cho địa chỉ
của dịch vụ Web XML (mục 12.1).

Sử dụng kỹ thuật caching để nâng cao hiệu năng và khả năng phục vụ (tính quy mô)
của dịch vụ Web XML (mục 12.2 và 12.3).

Tạo phương thức giao dịch cho dịch vụ Web XML (mục 12.4).

Truyền thông tin xác thực cho một dịch vụ Web XML bằng proxy (mục 12.5).

Gọi bất đồng bộ một phương thức của dịch vụ Web XML (mục 12.6).
Remoting là một công nghệ đặc trưng của .NET dành cho các đối tượng phân tán và được
xem như là một hậu duệ của công nghệ DCOM. Công nghệ này lý tưởng cho các hệ

VBạn cần sử dụng một dịch vụ Web XML được đặt tại một địa chỉ URL mà địa
chỉ này có thể thay đổi sau khi bạn triển khai ứng dụng client.
#
#Sử dụng địa chỉ URL động cho dịch vụ Web XML. Khi đó, địa chỉ động này
được lấy một cách tự động từ file cấu hình của ứng dụng client. Trong
Microsoft Visual Studio .NET, bạn có thể cấu hình địa chỉ URL động bằng cách
thay đổi tùy chọn URL Behavior của Web Reference. Bạn cũng có thể sử dụng
công cụ Web Services Description Language (Wsdl.exe) với đối số
/appsettingurlkey.
Theo mặ
c định, khi bạn tạo một lớp proxy thì địa chỉ URL của dịch vụ Web XML là mã
cứng trong phương thức khởi dựng của lớp proxy này. Bạn có thể chép đè thiết lập này
trong mã lệnh bằng cách điều chỉnh thuộc tính Url của lớp proxy sau khi tạo một thể hiện
của nó. Tuy nhiên, có một tùy chọn khác: cấu hình cho lớp proxy sử dụng một địa chỉ
URL động.
Trong
Visual Studio .NET, bạn có thể thực hiện điều này bằng cách chọn Web Reference
trong cửa sổ Solution Explorer và thay đổi tùy chọn URL Behavior trong cửa sổ
Properties (xem hình 12.1). The image part with relationship ID rId7 was not fo und in the file.
Hình 12.1 Cấu hình địa chỉ URL cho dịch vụ Web XML


VBạn muốn nâng cao hiệu năng của dịch vụ Web XML bằng cách lưu trữ giá trị
trả về của một phương thức web.
#
#Sử dụng response-caching bằng cách thiết lập thuộc tính CacheDuration của
đặc tính System.Web.Services.WebMethod.
Trong ASP.NET, dịch vụ Web XML hỗ trợ response-caching giống hệt như các trang web
ASP.NET. Khi response-caching được kích hoạt, mã lệnh của bạn chỉ thực hiện một lần,
và giá trị trả về của phương thức web sẽ được lưu lại và được trả về trong các lần gọi tiếp
theo. Đối với Web Form, caching được thực hiện cho từng form. Đối với dịch vụ Web
XML, caching được kích hoạt và cấu hình riêng cho mỗi phương thức web.
Ví dụ, phương thức web dưới đây trả về giá trị ngày giờ hiện hành trên máy server.
Thông tin này được lưu lại trong một phút, nghĩa là các lời yêu cầu tiếp theo trong
khoảng thời gian này sẽ nhận lại thông tin đã được lưu trước đó.
Using System;
using System.Web.Services;

public class ResponseCaching {

[WebMethod(CacheDuration=60)]
public string GetDate() {

return DateTime.Now.ToString();
}
}
Bạn có thể lưu bất cứ đối tượng nào vào cache bằng phương thức Insert của
đối tượng System.Web.Caching.Cache. Bạn có thể truy xuất cache thông qua
thuộc tính tĩnh HttpContext.Current.
Cách thức làm việc của data-caching với một dịch vụ Web XML cũng giống như với một
trang web. Bạn có thể lưu trữ dữ liệu vào cache bằng mã trang web và lấy nó về trong
một dịch vụ Web XML, hay ngược lại. Để có thêm thông tin về data-caching
và các kiểu
chính sách hết hiệu lực (expiration policy) mà nó hỗ trợ, bạn hãy tham khảo mục 7.15.
Điểm khác biệt duy nhất giữa caching trong một dịch vụ Web XML và caching trong một
trang web là: Trong dịch vụ Web XML, bạn không thể thu lấy đối tượng Cache như một
thuộc tính nội tại; thay vào đó, bạn cần truy xuất cache thông qua thuộc tính tĩnh
HttpContext.Current.
Ví dụ dưới đây trình bày một dịch vụ Web XML với hai ph
ương thức web:
• GetProductCatalog: Trả về một DataSet với các thông tin về sản phẩm. DataSet này
có thể được lấy từ cache hoặc được sinh tự động (nếu cần) bằng hàm
GetCustomerDataSet.
• GetProductList: Cũng sử dụng DataSet và hàm GetCustomerDataSet nhưng chỉ lấy
một phần thông tin (tên sản phẩm).
Cả hai phương thức web trên đều có thể sử dụng chung dữ liệu đã được lưu, điều này làm
giảm nh
ẹ gánh nặng đặt lên cơ sở dữ liệu.
using System;
using System.Data;
using System.Data.SqlClient;
using System.Web.Services;
using System.Web;


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status