Kiến trúc SOA trở nên mạnh mẽ và ứng dụng hiệu quả, dễ dàng nhờ công nghệ dịch vụ web. Ban đầu, dịch vụ web được hiểu như một dạng công nghệ gắn với các chuẩn WSDL, SOAP, UDDI. Ngay cả W3C khi định nghĩa dịch vụ web, dường như cũng nhấn mạnh tới khái niệm SOAP. Song song quá trình phát triển của dịch vụ web, có sự xuất hiện của REST. Ban đầu, REST chưa thể đưa được vào ngay như dịch vụ web - SOAP bởi thiếu vắng các công cụ lập trình hỗ trợ REST. Nhưng trong một vài năm gần đây, REST đã được nhiều người chú ý bởi tính đơn giản nhưng hiệu quả. Các hãng phần mềm lớn như Microsoft, SUN cũng đã hỗ trợ công cụ phát triển REST (trong khoảng năm từ 2007). Từ phiên bản DotNetFramework 3.0 của Micrsoft đã hỗ trợ REST. Bộ JAX-RS (Java API for RESTfull Web Service, JSR-311) dành riêng hỗ trợ REST.
Có thể nói, đến nay, dịch vụ web được phân thành hai loại là SOAP và REST. Giữa hai loại này đều có những đặc điểm, thế mạnh riêng mà tuỳ thuộc vào người phát triển tự lựa chọn:
• SOAP là dạng chuẩn công nghiệp, có thể chạy được trên nhiều giao thức khác như FTP, SMTP, Message Queue. Điểm yếu là chỉ sử dụng phương thức POST với các thông tin đóng gói bên trong thông điệp. Người quản trị không thể hiểu băng thông mạng đang dùng gì khi không nhìn vào bên trong thông điệp. Đồng thời, các thông điệp SOAP cũng khó đóng gói hơn là thông điệp REST.
• REST đơn thuần sử dụng HTTP với các phương thức GET, POST, PUT, DELETE. Người quản trị có thể xem thông điệp (như GET thoitiet/Hanoi) và hiểu nó làm gì. Các yêu cầu có thể được đánh dấu và đáp ứng có thể được cất giữ (cache) để cải thiện hiệu năng. Dễ dàng tạo ra các yêu cầu như GET chỉ bằng URI. Từ URI, có thể dễ dàng áp dụng các biện pháp an ninh, lọc, ghi nhật ký, truy vết,... REST thân thiện vì tính đơn giản và hiệu quả. Điểm hạn chế của REST đó là gắn chặt với giao thức web http.
Bảng sau tập hợp và so sánh giữa hai kiểu dịch vụ web SOAP và REST:
Ưu điểm Nhược điểm Dịch vụ web –
SOAP
• Chuẩn công nghiệp, với nhiều đặc tả (SOAP, WSDL, WS-*,...). • Hỗ trợ nhiều giao thức • Chỉ có phương thức POST (tất cả đóng gói trong thông điệp).
Ưu điểm Nhược điểm
(HTTP, FTP, SMTP, Message Queue).
mạng đang làm gì nếu không mở thông điệp.
• Đặc tả khá phức tạp.
Dịch vụ web – REST
• Có phương thức GET,
POST, PUT, DELETE.
• Dễ áp dụng các phương pháp cải thiện hiệu năng bằng các phương pháp cất giữ (cache), lần vết, an ninh,... thông qua URI.
• Dễ theo dõi băng thông mạng qua các URI.
• Thân thiện và đơn giản.
• Chỉ hỗ trợ HTTP.
Bảng 2 - So sánh dịch vụ web SOAP và REST
Hiện nay, tại các website dịch vụ nổi tiếng, nhiều người truy cập như amazon, google, yahoo,... cũng vẫn hỗ trợ cả SOAP và REST Web Service.
Gần đây, sự xuất hiện của REST cũng như tính ứng dụng dễ dàng của nó cũng kéo theo một dạng kiến trúc mới xuất hiện WOA (Web Oriented Architecture). Chưa có định nghĩa thực sự về WOA. Cũng có câu hỏi đặt ra là WOA có phải là tương lai của SOA. Có định nghĩa cho rằng:
WOA= SOA + WWW + REST
Trên blog ZDNet của Dion Hinchcliffe [http://blogs.zdnet.com/Hinchcliffe/?p=27] đưa ra hình ảnh so sánh khá trực quan giữa SOA, WOA, REST, cùng các chuẩn SOAP, WSDL, ...
Lõi SOA cùng với sự trải rộng: Kiến trúc hướng web (WOA)
Hình 15 - So sánh và đánh giá SOA Độ phức tạp Đ ộ đầ y đủ
Thế giới đang có phần nghiêng nhiều về WOA với REST là trung tâm. Lý do bởi WOA được phát triển từ web đi lên, đã rất thân thiện, có tính trong sáng và dễ hiểu. Chỉ cần biết về http, POX (plain old XML) cùng các công cụ hỗ trợ là viết được REST. Vấn đề an ninh trong REST có thể dùng ngay https thay vì phải biết về WS- Security phức tạp.
CHƯƠNG 2 - CHUẨN PHẦN MỀM TRÊN NỀN WEB
Như chúng ta đã biết, web là lĩnh vực rộng lớn và phát triển nhanh và mạnh. Có rất nhiều các sản phẩm về web cùng với nhiều nhà sản xuất khác nhau, chạy trên nhiều nền tảng khác nhau.Ví dụ:
• Các trình duyệt web: trên nền tảng Windows, UNIX, Linux, MAC. Với rất nhiều sản phẩm (IE, Firefox,...)
• Các máy chủ web (web server): Internet Information Service của Microsoft trên nền tảng Windows, Apache trên nhiều nền tảng, ...
• Các công cụ phát triển web: Visual Studio của Micrsoft, Java,...
Sự phát triển đa dạng của web đã đặt ra một số vấn đề về chuẩn hoá để các nhà sản xuất, nhà phát triển,... có thể có chung một cơ sở, một tiếng nói cho những sản phẩm web của mình. Chương này sẽ làm rõ các nội dung về chuẩn web, tại sao cần chuẩn web, cùng với các cách thức kiểm tra và đảm bảo web là chuẩn.