Web Services là gì? Tìm hiểu về Web Service cho người mới

Dịch vụ web là một khái niệm quan trọng trong ngành công nghiệp phần mềm, nhưng nhiều người chưa thực sự hiểu về dịch vụ web. Bài viết này sẽ trả lời các câu hỏi Web service là gì, nó bao gồm những gì? Tại sao dịch vụ web lại quan trọng và những điều bạn cần biết về dịch vụ web.

Dịch vụ Web là gì?

Nói tóm lại, dịch vụ web (hay “dịch vụ web”) là một mô-đun phần mềm được thiết kế để thực hiện một tập hợp các tác vụ nhất định. Các dịch vụ web có thể được truy cập và sử dụng qua internet như các dịch vụ. Sau đó, dịch vụ web sẽ cung cấp các chức năng của nó cho máy khách để người dùng đạt được các mục tiêu sử dụng nhất định.

Có nhiều định nghĩa khác nhau về dịch vụ web trên internet và trong các tài liệu về ngành. Tuy nhiên, chúng ta có thể hiểu, để một dịch vụ được coi là dịch vụ web thì cần phải đáp ứng các tiêu chí sau:

– Có sẵn trên internet hoặc mạng nội bộ,

Sử dụng hệ thống XML nhắn tin tiêu chuẩn,

– Không ràng buộc với hệ điều hành hoặc ngôn ngữ lập trình,

Có thể tự diễn đạt thông qua cấu trúc XML đơn giản,

– Có thể được tìm kiếm bằng các cơ chế đơn giản.

Dịch vụ web hoạt động như thế nào?

Một dịch vụ web cho phép giao tiếp giữa các ứng dụng khác nhau bằng các tiêu chuẩn mở như HTML, XML, WSDL và SOAP. Thông thường, một dịch vụ web cơ bản sẽ sử dụng:

XML để gắn thẻ dữ liệu

XÀ BÔNG TẮM để cung cấp thông điệp

WSDL để mô tả tính khả dụng của dịch vụ.

Bạn có thể xây dựng dịch vụ web dựa trên Java trên Solaris, dịch vụ này có thể truy cập được từ Visual Basic chạy trên Windows.

Bạn cũng có thể sử dụng C # để xây dựng các dịch vụ web của Windows có thể được gọi từ ứng dụng web của bạn dựa trên JavaServer Pages (JSP) và chạy trên Linux.

Ví dụ về dịch vụ web đơn giản

Hãy xem xét một hệ thống quản lý tài khoản và xử lý đơn hàng đơn giản. Kế toán sử dụng một khách hàng được xây dựng bằng Visual Basic hoặc JSP để tạo tài khoản mới và nhập đơn đặt hàng mới của khách hàng.

Logic xử lý của hệ thống được viết bằng Java và nằm trên máy Solaris, máy này cũng tương tác với cơ sở dữ liệu để lưu trữ thông tin.

Các bước để thực hiện việc này như sau:

Chương trình khách hàng đóng gói thông tin đăng ký tài khoản vào một thông báo SOAP.

Thông báo SOAP này được gửi đến dịch vụ web dưới dạng một yêu cầu POST HTTP.

Dịch vụ web trích xuất yêu cầu SOAP và chuyển đổi nó thành một lệnh mà ứng dụng có thể hiểu được.

– Ứng dụng xử lý thông tin được yêu cầu và phản hồi bằng một số tài khoản mới duy nhất cho khách hàng đó.

Mình nghĩ bạn cần xem =>  LastPass Android đã có hỗ trợ cho trình duyệt Microsoft Edge

Tiếp theo, dịch vụ web đóng gói phản hồi thành một thông báo SOAP khác, mà nó sẽ gửi lại chương trình khách để phản hồi lại yêu cầu HTTP của nó.

– Chương trình khách hàng trích xuất bản tin SOAP để lấy kết quả của quá trình đăng ký tài khoản.

Tại sao sử dụng dịch vụ web?

Dưới đây là những lợi ích của việc sử dụng dịch vụ web.

Khả năng tương tác

Các dịch vụ web cho phép các ứng dụng khác nhau giao tiếp với nhau và chia sẻ dữ liệu và dịch vụ với nhau. Các ứng dụng khác cũng có thể sử dụng các dịch vụ web. Ví dụ, một ứng dụng VB hoặc .NET có thể giao tiếp với các dịch vụ web Java và ngược lại. Các dịch vụ web được sử dụng để làm cho các nền tảng ứng dụng và công nghệ trở nên độc lập.

Giao thức chuẩn hóa

Các dịch vụ web sử dụng các giao thức chuẩn hóa để giao tiếp. Tất cả bốn lớp (các lớp Truyền tải Dịch vụ, Nhắn tin XML, Mô tả Dịch vụ và Khám phá Dịch vụ) sử dụng các giao thức riêng biệt trong ngăn xếp giao thức dịch vụ web. Việc chuẩn hóa ngăn xếp giao thức này mang lại cho doanh nghiệp nhiều lợi thế như nhiều lựa chọn hơn, giảm chi phí do cạnh tranh và tăng chất lượng.

Truyền thông chi phí thấp

Các dịch vụ web sử dụng SOAP qua giao thức HTTP, do đó có thể triển khai các dịch vụ web với kết nối internet khiêm tốn. Giải pháp này ít tốn kém hơn nhiều so với các giải pháp độc quyền như EDI / B2B. Bên cạnh SOAP qua HTTP, các dịch vụ web cũng có thể được triển khai trên các cơ chế truyền tải đáng tin cậy khác như FTP.

Kiến trúc của Dịch vụ Web

Có hai cách để phân tích kiến ​​trúc của một dịch vụ web:

Dựa trên vai trò của từng thành phần trong dịch vụ web.

Dựa trên các ngăn xếp giao thức dịch vụ web.

Vai trò dịch vụ web

Có ba vai trò chính trong kiến ​​trúc dịch vụ web:

Nhà cung cấp dịch vụ: Đây là một nhà cung cấp dịch vụ web. Nhà cung cấp dịch vụ triển khai dịch vụ và cung cấp dịch vụ đó trên Internet.

Người yêu cầu dịch vụ: Đây là bất kỳ người tiêu dùng dịch vụ web nào. Người yêu cầu sử dụng dịch vụ web bằng cách mở kết nối mạng và gửi yêu cầu XML.

Đăng ký dịch vụ: Đây là một thư mục tập trung hợp lý của các dịch vụ web. Registry cung cấp một không gian tập trung, nơi các nhà phát triển có thể xuất bản các dịch vụ mới hoặc tìm các dịch vụ hiện có. Do đó, nó hoạt động như một trung tâm thanh toán bù trừ cho các công ty và dịch vụ của họ.

Ngăn xếp giao thức trong các dịch vụ web

Cách thứ hai để kiểm tra kiến ​​trúc dịch vụ web là dựa vào ngăn xếp giao thức dịch vụ web. Các ngăn xếp vẫn đang được phát triển, nhưng hiện tại có bốn lớp chính:

Dịch vụ vận chuyển: Lớp này chịu trách nhiệm vận chuyển tin nhắn giữa các ứng dụng. Hiện tại, lớp này bao gồm Giao thức truyền siêu văn bản (HTTP), Giao thức truyền thư đơn giản (SMTP), Giao thức truyền File (FTP) và các giao thức mới hơn như Giao thức trao đổi có thể mở rộng khối (BEEP).

Mình nghĩ bạn cần xem =>  Microsoft vừa cập nhật Office, OneDrive trên iOS với nhiều tính năng mới

Nhắn tin XML: Lớp này chịu trách nhiệm mã hóa các thông báo ở định dạng XML phổ biến để có thể hiểu được các thông báo ở hai đầu. Hiện tại, lớp này bao gồm XML-RPC và SOAP.

Dịch vụ Mô tả: Lớp này chịu trách nhiệm mô tả giao diện công khai cho một dịch vụ web cụ thể. Hiện tại, các mô tả dịch vụ được xử lý thông qua Ngôn ngữ Mô tả Dịch vụ Web (WSDL).

Khám phá dịch vụ: Lớp này chịu trách nhiệm tập trung các dịch vụ vào một sổ đăng ký duy nhất và cung cấp chức năng xuất bản / tìm kiếm dễ dàng. Khám phá dịch vụ hiện được xử lý thông qua Mô tả chung, Khám phá và Tích hợp (UDDI).

Khi các dịch vụ web phát triển, các lớp bổ sung có thể được thêm vào và các công nghệ bổ sung có thể được thêm vào mỗi lớp.

Các thành phần của Dịch vụ Web

Trong vài năm qua, ba công nghệ chính đã trở thành tiêu chuẩn trên toàn thế giới tạo thành cốt lõi của công nghệ dịch vụ web ngày nay. Bao gồm các:

XÀ BÔNG TẮM (Giao thức truy cập đối tượng đơn giản): SOAP là một giao thức dựa trên XML để trao đổi thông tin giữa các máy tính. Nó cũng được sử dụng để gửi tin nhắn giữa các ứng dụng. SOAP được thiết kế để có thể giao tiếp qua internet và nó đơn giản, dễ mở rộng.

WSDL (Ngôn ngữ mô tả dịch vụ web): Được thiết kế bởi Microsoft và IBM, WSDL là một ngôn ngữ tiêu chuẩn chung dựa trên XML để mô tả các dịch vụ web và cách truy cập chúng.

UDDI (Mô tả chung, Khám phá & Tích hợp): UDDI là một tiêu chuẩn dựa trên XML để mô tả, xuất bản và tìm kiếm các dịch vụ web. UDDI là một khuôn khổ mở và độc lập với nền tảng. UDDI có thể giao tiếp qua SOAP, CORBA và Java RMI Protocol. UDDI sử dụng WSDL để mô tả giao diện của các dịch vụ web.

Bảo mật Dịch vụ Web

Bảo mật là rất quan trọng đối với các dịch vụ web. Tuy nhiên, cả hai tham số XML-RPC và SOAP đều không thực hiện bất kỳ yêu cầu xác thực hoặc bảo mật rõ ràng nào.

Có ba vấn đề bảo mật cụ thể với các dịch vụ web:

– Bảo mật

– Xác thực

– An ninh mạng

Bảo mật

Nếu máy khách gửi yêu cầu XML đến máy chủ, chúng tôi có thể đảm bảo rằng thông tin liên lạc được giữ bí mật không?

Câu trả lời nằm ở đây:

XML-RPC và SOAP chủ yếu chạy qua HTTP.

HTTP có hỗ trợ SSL (Lớp cổng bảo mật).

Giao tiếp có thể được mã hóa qua SSL – một công nghệ đã được chứng minh và triển khai rộng rãi.

Một dịch vụ web có thể bao gồm một loạt các ứng dụng. Ví dụ, một dịch vụ lớn có thể liên kết các dịch vụ của ba ứng dụng khác. Trong trường hợp này, SSL là không đủ; các thông điệp phải được mã hóa tại mỗi nút dọc theo đường dẫn dịch vụ và mỗi nút đại diện cho một liên kết yếu tiềm ẩn trong chuỗi. Hiện tại, không có giải pháp thống nhất nào cho vấn đề này, nhưng một giải pháp đầy hứa hẹn là Tiêu chuẩn mã hóa XML W3C. Tiêu chuẩn này cung cấp một khuôn khổ để mã hóa và giải mã toàn bộ tài liệu XML hoặc chỉ một phần của tài liệu XML. Bạn có thể kiểm tra tại www.w3.org/Encoding

Mình nghĩ bạn cần xem =>  6 lý do Call Center chuyên nghiệp giúp doanh nghiệp tăng trưởng nhanh

Xác thực

Nếu khách hàng kết nối với dịch vụ web, làm cách nào để chúng tôi xác định người dùng? Người dùng có được phép sử dụng dịch vụ không?

Dưới đây là một số tùy chọn xác thực, nhưng không có tiêu chuẩn nào được coi là hoàn hảo:

HTTP Bao gồm hỗ trợ tích hợp cho xác thực Cơ bản và Thông báo. Do đó, các dịch vụ có thể được bảo vệ theo cách tương tự như các tài liệu HTML hiện đang được bảo vệ.

Chữ ký số SOAP (SOAP-DSIG) tận dụng Key công khai để ký điện tử các thông điệp SOAP. Nó cho phép máy khách hoặc máy chủ xác nhận danh tính của bên kia. Có sẵn tại www.w3.org/TR/SOAP-dsig.

Tổ chức OASIS (Tổ chức vì sự tiến bộ của tiêu chuẩn thông tin có cấu trúc) đang phát triển với Ngôn ngữ đánh dấu xác nhận bảo mật (SAML).

An ninh mạng

Hiện tại không có câu trả lời tuyệt đối cho điều này, và nó đã là chủ đề của nhiều cuộc tranh luận. Hiện tại, nếu bạn thực sự có ý định lọc ra các thư SOAP hoặc XML-RPC, có một cách là lọc ra tất cả các POST yêu cầu HTTP đặt loại nội dung của chúng thành text / xml.

Một cách khác là lọc thuộc tính tiêu đề SOAPAction HTTP. Các nhà cung cấp tường lửa hiện đang phát triển các công cụ được thiết kế đặc biệt để lọc lưu lượng dịch vụ web.

Theo Rapidsharefiles

>> Có thể bạn quan tâm: Dịch vụ Web: REST & SOAP – đâu sẽ là lựa chọn phù hợp cho bạn?

✤ Top 20 bài viết Tổng Hợp mới nhất :

Xem thêm nhiều Tổng Hợp mới hay

Leave A Reply

Your email address will not be published.