Web Service là gì?
Thuật ngữ Web Service (WS) có thể được hiểu theo hai nghĩa:
- WS là một dịch vụ mà một thiết bị điện tử cung cấp cho một thiết bị khác. Hai máy chủ này sẽ giao tiếp với nhau thông qua World Wide Web. Hoặc:
- WS là một server chạy trên một thiết bị máy tính, nghe các request tại một port nhất định qua mạng, phục vụ các web document (HTML, JSON, XML, image…).
Trong một Web Service, một công nghệ Web như HTTP được dùng để chuyển các định dạng file mà máy có thể đọc được như XML hay JSON.
Trong thực tế, một Web Service thường cung cấp một interface web-based hướng đối tượng cho một server cơ sở dữ liệu, được sử dụng bởi một web server khác, hoặc một ứng dụng di động khác. Những thiết bị này sẽ cung cấp một user interface đến người dùng.
Các tổ chức cung cấp dữ liệu dưới dạng HTML được định dạng cũng sẽ cung cấp dữ liệu đó trên server của họ dưới dạng XML hay JSON. Và thường là thông qua một Web Service để cho phép thực hiện việc syndicate (ví dụ như Wikipedia Exports). Một ứng dụng khác được cung cấp cho người dùng có thể là một mashup. Trong đó. web server sử dụng một số Web Service ở nhiều máy khác nhau, rồi compile các content thành một user interface.
Các loại Web Service
Vậy cách phân loại Web Service là gì? Hiện nay, có hai loại Web Service chính:
- SOAP Web Service
- RESTful Web Service
Để một Web Service có thể hoạt động trơn tru, hoàn thiện nhất, nó cần có một số thành phần nhất định, cho dù Web Service đó có được lập trình bằng ngôn ngữ nào chăng nữa. Hãy theo dõi phần dưới đây để biết được những thành phần bắt buộc của Web Service:
SOAP (Simple Object Access Control)
SOAP là một giao thức truyền tải dữ liệu, không phụ thuộc vào ngôn ngữ lập trình hay bất kỳ nền tảng nào khác. Sở dĩ vì SOAP dựa trên việc truyền dữ liệu XML dưới dạng một XML document. Chỉ có cấu trúc của XML document mới tuân theo một hình mẫu cụ thể, còn content của nó thì không. Đặc điểm nổi trội nhất của SOAP Web Service chính là nó được gửi qua HTTP – giao thức web tiêu chuẩn.
Dưới đây là những thành phần của một SOAP message:
- Mỗi SOAP document cần có một root element (thành phần gốc), còn gọi là <Envelope> element. Root element chính là element đầu tiên ở trong một XML document.
- Tiếp đến, “Envelope” lại được chia thành 2 phần khác nữa, gồm Header và Body.
- Trong đó, Header sẽ chứa routing data, về cơ bản thì đây là thông tin để XML document có thể xác định client cần gửi dữ liệu đến.
- Cuối cùng, phần Body sẽ chứa tin nhắn thực.
Dưới đây là biểu đồ mô tả một giao tiếp đơn giản thông qua SOAP Web Service:
WSDL (Web Service Description Language)
Để có thể sử dụng Web Service, client cần phải biết được vị trí và vai trò của nó để có thể gọi Web Service phù hợp. Và đó là lý do ta cần đến WSDL – Web Services Description Language. File WSDL là một file dựa trên XML, cho client biết về những gì Web Service làm. Bằng cách sử dụng WSDL document, ứng dụng client có thể biết được vị trí cũng như cách sử dụng Web Service là gì.
Web Service hoạt động như thế nào?
Sơ đồ ở trên đã cho ta một cái nhìn đơn giản về cách hoạt động của Web Service là gì. Nói tóm lại, client sẽ gọi các lệnh gọi Web Service thông qua request đến server đang host Web Service đó.
Các request này được thực hiện thông qua remote procedure call (RPC). Đây là những call được thực hiện tới các method được host bởi Web Service liên quan.
Lấy ví dụ, Amazon cung cấp một Web Service cung cấp giá của các sản phẩm được bán trực tuyến qua amazon.com. Frontend hay presentation layer có thể được viết bằng .Net hoặc Java. Tuy nhiên, chỉ một ngôn ngữ có thể giao tiếp với Web Service.
Thành phần chính của một thiết kế Web Service là dữ liệu được truyền giữa client và server – chính là XML. XML (Extensible markup language) là một bản sao của HTML, và đơn giản là một ngôn ngữ trung gian mà nhiều ngôn ngữ khác có thể hiểu được.
Do đó, khi các ứng dụng giao tiếp với nhau chính là đang giao tiếp bằng ngôn ngữ XML. Việc này sẽ tạo nên một nền tảng giao tiếp chung cho các ứng dụng được phát triển bằng nhiều ngôn ngữ khác nhau.
Web Service còn sử dụng giao thức SOAP để truyền dữ liệu XML giữa các ứng dụng. Dữ liệu được gửi từ Web Service đến ứng dụng được gọi là một SOAP message – về cơ bản chính là một XML document. Vì document này được viết bằng XML, nên ứng dụng client gọi Web Service có thể được viết bằng bất kỳ ngôn ngữ nào.
Lợi ích của việc sử dụng Web Service
Vậy lợi ích của việc sử dụng Web Service là gì? Hãy cũng tìm hiểu cụ thể ở trong phần này:
Hiển thị chức năng hiện có trên framework
Web administration là một code được quản lý, có thể được gọi từ xa bằng HTTP. Do đó, nó thường được bắt đầu bằng cách sử dụng các truy vấn HTTP. Web administation giúp người dùng biết về các code hiện có trên framework (đồng thời, những ứng dụng khác cũng có thể được sử dụng).
Giao thức có thứ tự
Web administration sử dụng giao thức chuẩn hóa để giao tiếp. Cả 4 layer (Service Transport, XML Messsaging, Service Description và Servicer Discovery) đều sử dụng các giao thức tạch biệt trong stack giao thức của Web Service. Việc hệ thống hóa stack này có thể đem lại nhiều lợi ích khác nhau cho doanh nghiệp. Chẳng hạn như mở rộng thêm nhiều sự lựa chọn, giảm chi phí do tranh chấp, nâng cao chất lượng…
Dễ sử dụng
Web Service được thiết kế để có thể sử dụng trên web. Do đó, nó giống với việc người dùng được cung cấp một trang, rồi có được quyền quản trị ở trên web đó.
Tái sử dụng dễ dàng
Web Service có thể được tái sử dụng dễ dàng trong nhiều web administration khác nhau. Bên cạnh đó, các ứng dụng kế thừa cũng có thể được “gói” vào trong web administration để người khác có thể sử dụng.
Gửi dung lượng
Việc truyền dung lượng sẽ dễ dàng hơn rất nhiều với Web Service, vì nó được truyền qua những cải tiến internet tiêu chuẩn hiện nay. Chẳng hạn như Apache, Axis 2.
Xử lý nhanh chóng
Mặc việc việc xử lý một framework có thể cần thêm một vài administrations, nhưng nó vẫn đơn giản hơn rất nhiều.
Chất lượng
Như đã nói về khả năng tái sử dụng của Web Service, ta có thể nhóm các administration lại để hoạt động. Do đó, những administration này được thử với những execution attribute đã biết.
Chi phí
Chi phí phát triển các framework mới sẽ được giảm đi đáng kể vì chúng được tích lũy từ những web administration.
Lời kết
Qua bài viết này, bạn đã biết được Web Service là gì, cũng như là khả năng của nó. Trong quá trình tạo ra Web Service, bạn cũng sẽ gặp phải nhiều ý tưởng hay khi tạo ra bất kỳ những ứng dụng nào. Chúc bạn thành công!