Tổng quan về dịch vụ web (Web Services)

Dịch vụ web là những cấu phần tính toán logic của doanh nghiệp giúp cung cấp các chức năng thông qua internet sử dụng những giao thức chuẩn như HTTP. Nó có thể chuyển đổi ứng dụng của bạn thành một ứng dụng web, và mang các tính năng hoặc gửi tin nhắn tới phần còn lại của thế giới. Nghĩa là dịch vụ web chuẩn hóa phương thức tích hợp các ứng dụng web bằng cách sử dụng các tiêu chuẩn mở như XML, SOAP, WSDL và UDDI trên một trục giao thức internet.Vì vậy, đây là một phương thức giao tiếp giữa hai thiết bị điện tử qua mạng.

Dịch vụ web sử dụng giao thức SOAP (truy cập đối tượng đơn giản) để cung cấp các chức năng của ứng dụng. SOAP thiết lập một định dạng chuẩn trong ngôn ngữ XML có thể được trao đổi giữa hai thực thể thông qua những giao thức chuẩn như HTTP. SOAP là nền tảng độc lập, nên người sử dụng của một dịch vụ web có thể hoàn toàn được bảo vệ đối với các chi tiết thực thi trên nền tảng của dịch vụ web. Đối với người sử dụng, nó chỉ đơn giản là một cái hộp đen để gửi và nhận ngôn ngữ XML thông qua giao thức HTTP. Vì vậy, bất kỳ dịch vụ web máy chủ windows có thể được sử dụng trên nền tảng UNIX và LINUX.

Giao thức SOAP

SOAP là một giao thức dựa trên ngôn ngữ XML cho phép các cấu phần phần mềm và các ứng dụng có thể giao tiếp với nhau. Nó đặt ra các quy tắc để chuyển những dữ liệu chi tiết của ứng dụng và nền tảng thành định dạng ngôn ngữ XML. Giao thức SOAP cho phép bạn giao tiếp với dịch vụ web sử dụng các giao thức như HTTP và SMTP. SOAP có ba phần tử chính: Giao thuc SOAP

Phần tử gốc (envelope): Chứa các thành phần như các phần tử tiêu đề (header) và phần tử khai báo nội dung chính (body) của cấu trúc thông điệp SOAP. Nó cũng chứa một thuộc tính Style mã hóa cho biết hình thức của dữ liệu trong các thông điệp.

Phần tử tiêu đề (header): Đóng gói thông điệp mở rộng mà không thêm hoặc sửa dòng thông điệp chuẩn.

Phần khai báo nội dung chính (body): Chứa dữ liệu chi tiết về ứng dụng web. Nó cho biết mục đích của việc gửi thông điệp. Nếu không có thành phần tiêu đề, thành phần khai báo thông tin chính sẽ là thành phần đầu tiên của phần tử gốc.

Ngôn ngữ WSDL

WSDL là một tập tin dựa trên ngôn ngữ XML mô tả một dịch vụ web. Một tài liệu WSDL cho biết các phương thức được một dịch vụ web cung cấp và các tham số đầu vào, đầu ra và kết nối. Dịch vụ web có thể áp dụng cho mọi ngôn ngữ thực thi, nền tảng, mô hình đối tượng và hệ thông báo. Những phần mở rộng đơn giản trên hạ tầng internet hiện có có thể thực thi dịch vụ web để tương tác qua các trình duyệt hoặc trực tiếp trong ứng dụng. Ứng dụng có thể được thực thi bằng các ngôn ngữ lập trình COM, JMS, CORBA, COBOL, hoặc bất kỳ ứng dụng tích hợp độc quyền.

UDDI

UDDI là một chuẩn trong ngành CNTT được sử dụng để xác định vị trí của dịch vụ web trên internet. Đó là một cơ sở dữ liệu khai báo với windows (registry) bằng ngôn ngữ XML cho phép doanh nghiệp đưa dịch vụ web lên internet. UDDI cho phép các tổ chức thực hiện các giao dịch trực tuyến bảo mật. Registry UDDI của doanh nghiệp gồm một danh sách đầy đủ dịch vụ web và các liên kết đến các tài liệu tìm kiếm của dịch vụ web. Các tài liệu tìm kiếm, được gọi là các tập tin DISCO, chứa các liên kết đến các tài liệu WSDL.UDDI

Các dịch vụ web không cung cấp cho người dùng một giao diện đồ họa. Dịch vụ web cùng có cấu trúc tính toán, dữ liệu và quy trình thông qua một giao diện lập trình trên mạng. Các nhà phát triển có thể thêm dịch vụ web vào một giao diện lập trình ứng dụng (ví dụ một trang web hoặc một chương trình thực thi) để cung cấp các chức năng cụ thể cho người sử dụng. Dịch vụ web không yêu cầu sử dụng trình duyệt hoặc ngôn ngữ HTML.

Dịch vụ web cho phép các ứng dụng khác nhau từ các nguồn khác nhau giao tiếp với nhau mà không cần mất thời gian mã hóa tùy chỉnh, và do mọi giao tiếp là trên ngôn ngữ XML, dịch vụ web không gắn với bất kỳ hệ điều hành hoặc ngôn ngữ lập trình nào. Ví dụ, ngôn ngữ  lập trình Java có thể giao tiếp với với Perl, các ứng dụng Windows có thể giao tiếp với các ứng dụng UNIX.

Ưu điểm của dịch vụ web

Khả năng tương tác – Đây là lợi ích quan trọng nhất của dịch vụ web. Dịch vụ web thường hoạt động ngoài các mạng riêng, do vậy không giới hạn môi trường cho các nhà phát triển ứng dụng. Dịch vụ web cũng cho phép các nhà phát triển sử dụng ngôn ngữ lập trình ưa thích. Dịch vụ web thực tế không bị bó buộc vào một nền tảng nào.

Khả năng sử dụng – Dịch vụ web cho phép cấu trúc tính toán của nhiều hệ thống khác nhau được triển khai trên web.

Khả năng tái sử dụng – Dịch vụ web không chỉ cung cấp một mô hình với nhiều cấu phần để phát triển ứng dụng mà còn hạn chế tối đa việc mã hóa trong quá trình triển khai dịch vụ. Nó giúp dễ dàng tái sử dụng các cấu phần của dịch vụ web nếu phù hợp với các dịch vụ khác.

Khả năng triển khai – Dịch vụ web được triển khai bằng các công nghệ internet chuẩn. Điều đó cho phép triển khai dịch vụ web qua tường lửa tới những máy chủ chạy trên internet ở phía bên kia bán cầu.

Những bất lợi của dịch vụ web

Các vấn đề với HTTP và HTTPS trong dịch vụ web là những giao thức này không lưu lại trạng thái – tương tác giữa máy chủ và máy khách thường ngắn gọn và khi không có dữ liệu được trao đổi, máy chủ và máy khách không biết tới nhau. Cụ thể là, nếu một máy khách gửi yêu cầu tới máy chủ, nhận một vài thông tin, và đột nhiên ngừng hoạt động do mất điện, máy chủ không bao giờ biết là máy khách hiện không còn hoạt động. Máy chủ cần có cách để theo dõi máy khách đang làm gì và cũng để xác định máy khách có còn hoạt động hay không.