Web Services Intro.

1. Khái niệm về Web Service:

Có một định nghĩa mà mình đọc trong 1 cuốn ebook rất hay và tóm gọn khái niệm về Web Services. Khái niệm đó như thế này: “A Web Services is application logic accessible to programs via standard web protocols in a platform independent way.”

Bây giờ chúng ta hãy cũng cắt nghĩa những từ trong đó ha:

– Application logic: một Web Service

– Accessible to programs: hầu hết các website ngày nay được truy cập bởi người dùng thông qua trình duyệt, các Web Services sẽ được truy cập bởi các chương trình máy tính.

– Standard web protocols: toàn bộ khái niệm về Web Service được dựa trên một tập các giao thức web như là HTTP, XML, SOAP, WSDL và UDDI.

– Platform independent: Các Web Service có thể được thực thi trên bất kì nền tảng nào.

Một Web Service được truy cập bởi một chương trình. Chương trình đó có thể là một ứng dụng web, một ứng dụng windows hay bất kì kiểu ứng dụng nào như được trình bày trong minh họa dưới đây:

web-ser-1

Một điểm lưu ý nhỏ ở đây là một Web Service có thể được một Web Service khác sử dụng.

2. Một số kiến trúc hạ tầng và công nghệ có thể tái sử dụng trong quá trình triển khai Web Service:

– Web Servers: các web server không nhất thiết phải có khi triển khai một Web Service nhưng một Web Service hoàn toàn có thể được thực thi bằng cách sử dụng các web server đã có trước đó. Chẳng hạn, không có .NET Framework, bạn có thể thực thi một Web Service bằng cách sử dụng XML Parser và một đoạn mã ASP chạy trên IIS.

– Authentication (chứng thực): một Web Service có thể cần chức thực người dùng trước khi sử dụng Web Service đó.

– Encrytion (mã hóa): Các Web Service sẽ thường gửi và nhận dữ liệu nhạy cảm. Dữ liệu nhạy cảm được chuyển đổi với một Web Service cần được mã hóa. Việc mã hóa có thể được thực hiện bằng cách tương tự như ta thường làm với các web traffic thông thường. Giao thức SSL (Secure Sockets Layer) có thể được sử dụng với các Web Service.

– Các kỹ thuật cân bằng tải (loading balancing): vì các Web Service không có trạng thái, các kỹ thuật cân bằng tải để cân bằng tải các trang web và kỹ thuật cân bằng tải Web Service tương tự nhau.

– Application servers: Các Web Service cần nhiều dịch vụ tương tự như các component truyền thống bên cạnh các transactional service, object pooling, connection pooling,…

3. Gọi các Web Service:

ASP.NET hỗ trợ 3 giao thức để gọi các Web Service:

– HTTP-GET

– HTTP-POST

– SOAP

Trong tất cả trường hợp, HTTP được sử dụng và dữ liệu được gửi đi trong HTTP request, và được trả về trong HTTP response như minh họa dưới đây:

web-ser-2

Các tham số HTTP-GET và HTTP-POST được truyền vào như là cặp tên/giá trị. HTTP-GET truyền các tham số trong URL. HTTP-POST truyền các tham số trong thông điệp HTTP request. Trong cả hai trường hợp, response được encode thành XML. SOAP sử dụng XML trong cả khi gửi request và nhận response.

Vì các tham số cho Web Service chỉ có thể là các cặp tên/giá trị, HTTP-GET và HTTP-POST bị giới hạn hơn là SOAP. Chúng không được hỗ trợ rộng rãi như là SOAP. Tuy nhiên HTTP-GET và HTTP-POST rất hữu ích trong việc tích hợp với các hệ thống đang có đã được xây dựng. HTTP-GET cũng được sử dụng cho việc kiểm thử các Web Service ASP.NET.

Khi sử dụng ASP.NET, bạn không phải chọn bất kì giao thức nào. Một Web Service ASP.NET có thể hỗ trợ tất cả giao thức tại cùng một thời điểm.

Để gọi các Web Service, bạn thực thi các phương thức trên dịch vụ này. Để làm việc này, bạn cần biết những phương thức nào nó hỗ trợ, những tham số nào Web Service lấy, và những gì nó trả về.

4. SOAP (Simple Object Access Protocol):

Đây là phần quan trọng trong chồng nghi thức Web Service. Khái niệm về SOAP được W3C khái quát như sau: “SOAP is a lightweight protocol for exchange of information in a decentralized, distributed environment.”

SOAP rất đơn giản, nó không thử xây dựng một kiến trúc hạ tầng mới hoàn toàn. Chẳng hạn, xem xét vấn đề bảo mật của Web Service. Hiển nhiên bảo mật là một vấn đề quan trọng, nhưng SOAP không đánh địa chỉ nó. Thay vào đó, nó nó định nghĩa một ràng buộc đến HTTP và gọi các cơ chế bảo mật có sẵn với HTTP.

(còn tiếp)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s