Kiến trúc và thiết kế phần mềm: Tổng quan về WebService và RESTful API

MỤC LỤC

Điểm nổi bật của web API

Hoạt động của web API Hoạt động của web API

Đầu tiên là xây dựng URL API để bên thứ ba có thể gửi request dữ liệu đến. Tại web server cung cấp nội dung, các ứng dụng nguồn sẽ thực hiện kiểm tra xác thực nếu có và tìm đến tài nguyên. Server trả về kết quả theo định dạng JSON hoặc XML thông qua giao thức.

Tại nơi yêu cầu ban đầu là ứng dụng web hoặc ứng dụng di động , dữ liệu JSON/XML sẽ được parse để lấy data. Sau khi có được data thì thực hiện tiếp các hoạt động như lưu dữ liệu xuống.

2.Webservice

Định nghĩa

 Hoàn toàn không bị trói buộc bởi một hệ điều hành hay ngôn ngữ lập trình nào,.

WSDL – Web Service Description Language

 Một WSDL hợp lệ gồm hai phần: phần giao diện (mô tả giao diện và phương thức kết nối) và phần thi hành mô tả thông tin truy xuất CSDL. Cả hai phần này sẽ được lưu trong 2 tập tin XML tương ứng là tập tin giao diện dịch vụ và tập tin thi hành dịch vụ.

Protocol

Kiến trúc của webservice

RESTful Web Service

Ưu nhược điểm của webservice

Web service cung cấp nền tảng rộng lớn chạy được trên các hệ điều hành khác nhau. Nâng khả năng tái sử dụng.Thúc đẩy đầu tư toàn bộ các hệ thống phần mềm đã tồn. Tạo ra được các mối quan hệ tương tác với nhau và phần mềm giữa các 2 hệ thống.

Thúc đẩy mạnh mẽ vào hệ thống tích hợp và giảm được sự phức tạp của hệ thống, giảm giá thành tương. Có thể xảy ra thiệt hại lớn vào khoảng thời gian không hoạt động của web service như: giao diện không đổi mới, có thể lỗi nếu như máy tính không nâng cấp, thiếu các giao tiếp trong việc vận hành.

Đặc trưng của SOAP

     Phần tử gốc - envelop: Phần tử bao trùm nội dung message, khai báo văn bản XML như là một thông điệp SOAP.  Phần tử đầu trang – header: Chứa các thông tin tiêu đề cho trang, phần tử này không bắt buộc khai báo trong văn bản. Những đầu mục còn có thể mang những dữ liệu chứng thực, những chữ kí số hóa, và thông tin mã hóa, hoặc những cài đặt cho giao tác.

     Phần tử khai báo nội dung chính trong thông điệp - body, chứa các thông tin yêu cầu và phản hồi.  Phần tử phát sinh lỗi (Fault) cung cấp thông tin lỗi xảy ra trong quá trình xử lý thông điệp.  Document (Được biết như kiểu hướng message): Kiểu này cung cấp một lớp thấp của sự trừu tượng hóa và yêu cầu người lập trình nhiều hơn khi làm việc.

     SOAP kết hợp các ngôn ngữ lập trình XML, HTTP hoặc SMTP để gửi và nhận tin nhắn qua internet. Nó không bị hạn chế bởi ngôn ngữ ứng dụng (Java, C#, Perl, C++) hoặc nền tảng (Windows, UNIX, Mac) và điều này làm cho nó linh hoạt hơn nhiều so với các giải pháp khác.  SOAP kết hợp tất cả các ngôn ngữ khác nhau vào một giao diện đơn giản mà bạn nhìn thấy và sử dụng liền mạch.

     Bạn chỉ cần thực hiện các hành động bạn muốn và SOAP làm cho mọi thứ hoạt động đúng. Kết quả cuối cùng là một trải nghiệm trực tuyến đơn giản và nhanh chóng để sử dụng.  SOAP là một giao thức hầu như luôn được sử dụng trong bối cảnh của khung dịch vụ Web / SOA.

    Do đó, giao diện lập trình ứng dụng ( API ) của nó thường bị ẩn bởi giao diện cấp cao hơn cho SOAP. Có các công cụ phần mềm trung gian API có sẵn cho gần như tất cả các ngôn ngữ lập trình hiện đại và Microsoft cung cấp nhiều công cụ .NET SOAP / SOA.

    Lợi ích

    Khi phát triển dịch vụ Web, chúng ta cần có một số ngôn ngữ có thể được sử dụng cho các dịch vụ web để liên kết. SOAP là phương tiện hoàn hảo được phát triển để đạt được mục đích này. SOAP là một giao thức đơn giản và nhẹ được sử dụng để trao đổi dữ liệu giữa các ứng dụng.

    SOAP được thiết kế độc lập với nền tảng và cũng được thiết kế để độc lập với hệ điều hành. Nó hoạt động trên giao thức HTTP, đây là giao thức mặc định được sử dụng bởi tất cả các ứng dụng.

    Hạn chế

    Restful

       RESTful API (còn được gọi là REST API) là một tập hợp các tiêu chuẩn dùng trong việc xây dựng và thiết kế API cho web services để việc quản lý các Resource trở nên dễ dàng hơn. Có thể dễ dàng nhận thấy rằng RESTful API chú trọng vào tài nguyên của hệ thống, những Resource này thường được định dạng sẵn và sử dụng HTTP để truyền tải đi.  Restful API chính là một tiêu chuẩn dùng trong việc thiết kế API dành cho các trang web.

      Mọi tiêu chuẩn này được dùng để thiết kế web, đồng thời quản lý các resource. Nền tảng này chú trọng vào tài nguyên hệ thống ví dụ như là tệp văn bản, ảnh, âm thanh, video, hoặc dữ liệu di động,… Nó cũng bao gồm các trạng thái tài nguyên được định dạng và truyền tải qua HTTP.

      Các thành phần của Restful API

      Nói một cách dễ hiểu, API chính là một tập các quy tắc, cơ chế mà một phần ứng dụng tương tác với một phần ứng dụng khác. API có thể trả về dữ liệu mà chúng ta cần cho ứng dụng của mình.

      REST

      Cách thức hoạt động của Restful

       Những hoạt động cơ bản này đều sẽ sử dụng phương thức HTTP riêng biệt.  Những phương thức hay hoạt động này thường được gọi chung là Crud tương ứng với các hoạt động phía trên. Người dùng có thể sử dụng nền tảng này để thực hiện các hành động tương ứng như tạo, đọc, sửa, xóa,….

       Ngoài ra các bạn còn có thể sử dụng nhiều tính năng hơn trên nền tảng này.

      Restful

      Status code

      Ưu điểm và thách thức của Restful

      Chắc chắn việc phỏt triển ứng dụng khiến cho nhiều lập trình viên cảm thấy mệt mỏi. Nhờ có nền tảng này, ứng dụng được lập trỡnh sẽ rừ ràng, dễ hiểu hơn. Dữ liệu được trả về với nhiều định dạng khác nhau như: xml, html, json….

      Code đơn giản và ngắn gọn: Đây chính là điều mà nhiều nhà lập trình mong muốn.

      Thách thức của Restful

      REST & SOAP

      SOAP là từ viết tắt của Simple Object Access Protocol(Giao thức truy cập đối. tượng đơn giản). REST có thể dùng các web services sử dụng SOAP vì nó có thể dùng bất kỳ giao. 6 SOAP định nghĩa các chuẩn và quy tắc chặt chẽ REST không định nghĩa nhiều chuẩn như SOAP.

      8 SOAP định nghĩa chuẩn bảo mật của riêng nó RESTful kế thừa chuẩn bảo mật tầng vận tải của giao thức mạng. 9 SOAP chỉ hỗ trợ định dạng dữ liệu XML REST hỗ trợ các định dạng dữ liệu khác nhau như text, HTML, XML, JSON. 11 Được thiết kế để dùng trong tính toán phân tán Thương không được dùng trong môi trường tính toán phân tán.

      Ít tin cậy hơn – chẳng hạn, HTTP DELETE có thể trả về trạng thái OK ngay cả khi tài nguyên. Các phương thức DELETE và PUT thường bị vô hiệu hóa bởi tường lửa hoặc vấn đề bảo mật 14 SOAP hỗ trợ cả hai giao thức SMTP và HTTP REST gắn với giao thức HTTP.

      5.Kết luận