Giao thức triệu gọi WebServices 1 HTTP-GET

Một phần của tài liệu Xây dựng hệ thống hỗ trợ tra cứu lỗi lập trình (Trang 37)

III.1. HTTP-GET

Khi triệu gọi phương thức của Web service bằng giao thức HTTP-GET, cặp tham số tên/giá trị (name/value pairs) được truyền ngay trên địa chỉ URL.

Nguyễn Duy Hồ -- V õ Đức Hiền Trang 32

Ví dụ: Xem xét một URL sau đây:

http://localhost/StockTicker1/Service1.asmx/GetName?StockSymb ol=msft

Dấu chấm hỏi cho biết đây là dạng triệu gọi HTTP-GET, tên của biến được truyền cho phương thức GetNameStockSymbol và cĩ giá trị là: msft.

Kết quả trả về của phương thức là gĩi dữ liệu được định dạng theo ngơn ngữ XML với cấu trúc:

<?xml version = “1.0”?>

<[data type]>[value]</[data type]> Ví dụ:

<?xml version = “1.0”?> <int>13</int>

Triệu gọi phương thức của Web service bằng HTTP-GET thích hợp khi tất cả các dữ liệu được truyền cĩ dạng cặp tham số tên/giá trị(name/value pairs), cĩ ít thuộc tính cần truyền, và độ dài của thuộc tính ngắn. Triệu gọi bằng giao thức GET cũng được dùng khi khơng quan tâm đến việc bảo mật dữ liệu.

.Net Framework cung cấp một lớp tên HttpGetClientProtocol để sử dụng giao thức HTTP-GET ở phía client.

Nguyễn Duy Hồ -- V õ Đức Hiền Trang 33 III.2. HTTP-POST

Triệu gọi phương thức của Web service bằng giao thức HTTP-POST chủ yếu dựa vào phương thức chuyển dữ liệu POST của thẻ <form> trong HTML mà chúng ta vẫn thường dùng khi Submit. Dữ liệu truyền bằng HTTP- POST cĩ khả năng mã hố và đĩng gĩi đựơc số lượng dữ liệu lớn hơn HTTP- GET.

Triệu gọi bằng giao thức HTTP-POST thích hợp khi cĩ nhiều thuộc tính hay tham số cần truyền cĩ độ dài đáng kể. Xét về bảo mật thì HTTP-POST an tồn hơn HTTP-GET vì giao thức triệu gọi HTTP-POST cĩ thể được mã hố.

Giống như giao thức HTTP-GET, HTTP-POAST chỉ truyền được dữ liệu dạng cặp tham số tên/giá trị(name/value pairs).

.Net Framework cung cấp một lớp tên HttpPostClientProtocol để sử dụng giao thức HTTP-POST ở phía client.

III.3. SOAP

Chuyển dữ liệu GET/POST của HTTP chủ yếu dùng cơ chế đặt dữ liệu trong các biến theo khuơn dạng name= value. Dữ liệu chuyển đi chứa rất ít thơng tin để cĩ thể tự mơ tả như kiểu dữ liệu, chiều dài, sự quan hệ với các dữ liệu khác. Để mở rộng cách chuyển dữ liệu theo giao thức nền HTTP, Microsoft và một số cơng ty khác như IMB, Lotus…đã xây dựng giao thức truy xuất đối tượng đơn giản SOAP(Simple Object Access Protocol). SOAP sử dụng cách mơ tả dữ liệu của ngơn ngữ định dạng XML để đĩng gĩi thơng tin cần chuyển đi. SOAP tập trung vào phục vụ cho việc chuyển tham số, dữ liệu của đối tượng. SOAP là hướng thay thế tốt hơn cho những giao thức triệu gọi đối tượng phân tán trước đây như CORBA, RMI hay DCOM.

Một thơng điệp SOAP được chuyển đi thường gồm cĩ ba phần:

1. Envelop(thơng tin gĩi): Chứa các mơ tả về gĩi dữ liệu cần chuyển đi. Các mơ tả này được xây dựng thơng qua ngơn ngữ XML.

2. Encoding Rules(quy tắc mã hố): Cho biết cách dữ liệu được sắp xếp, tuần tự hố(serialize) và chuyển đi trên mạng.

Nguyễn Duy Hồ -- V õ Đức Hiền Trang 34

3. Remote Procedure Call(Thơng tin gọi thủ tục từ xa): Hỗ trợ mơ tả tham số và lời gọi thủ tục của đối tượng phân tán cũng như nhận kết quả trả về từ đối tượng.

SOAP cĩ thể được sử dụng để gởi các dối tượng phức tạp như lớp(class), cấu trúc(struct), dataset.

Một trở ngại khi sử dụng giao thức SOAP là các thơng điệp dạng SOAP cĩ chứa nhiều từ khơng cần thiết, bởi nĩ sử dụng định dạng XML. Vì vây khi băng thơng(bandwidth) của đường truyền nhỏ và dữ liệu truyền khơng lớn và phức tạp thì cĩ thể sử dụng giao thức HTTP-GET hay HTTP-POST.

.Net Framework cung cấp một lớp tên HttpSoapClientProtocol để sử dụng giao thức SOAP phía client.

IV. Xây dựng, triển khai và sử dụng Web Services IV.1. Xây dựng Web service

Một phần của tài liệu Xây dựng hệ thống hỗ trợ tra cứu lỗi lập trình (Trang 37)