Web services (1) - Tổng quan

 

1         Tổng quan về web services

1.1       Web services là gì?

Web services (hay web service) dịch ra tiếng Việt là dịch vụ web. Để tiện trình bày sẽ dùng luôn từ gốc là web services.

Web services:

– Là một dịch vụ, do thiết bị điện tử này cung cấp cho một thiết bị điện tử khác, quá trình trao đổi được thực hiện trên môi trường web (world wide web, WWW, Internet, HTTP)

– Một máy server trên mạng sẽ luôn lắng nghe các yêu cầu từ một cổng cụ thể, để cung cấp các tài nguyên web như HTML, JSON, XML, images và tạo ra các dịch vụ cho các ứng dụng có sử dụng web services.

Xem hình minh họa về web services,


So sánh trang web và web services

Ở một góc nhìn khác, kết quả trả về của một web services khá giống một trang web, tuy nhiên có một số khác biệt sau (quan sát kết quả trả về của RSS để thấy rõ điều này hơn):

 

Trang web

Kết quả trả về của web services

Đối tượng sử dụng

Con người

Chương trình

Kiểu dữ liệu

Thông tin, dữ liệu

Thông tin, dữ liệu

Kiểu hiển thị

Thông tin con người có thể đọc được

Dữ liệu dạng XML, JSON

Một số định nghĩa khác về web service

– Web services là một hệ thống phần mềm, được thiết kế để hỗ trợ khả năng tương tác giữa các ứng dụng trên các máy tính khác nhau, thông qua mạng Internet, giao diện chung và sự gắn kết của nó được mô tả bằng XML.

– Là tài nguyên phần mềm có thể xác định bằng địa chỉ URL

– Thực hiện các chức năng và đưa ra các thông tin người dùng yêu cầu

– Ứng dụng cơ bản của web services là tích hợp các hệ thống

– Các ứng dụng được tích hợp với cơ sở dữ liệu và các ứng dụng khác, người sử dụng sẽ giao tiếp với cơ sở dữ liệu để tiến hành phân tích và lấy dữ liệu.

Xem hình minh họa,



– Web services[1] là một tập hợp các giao thức và tiêu chuẩn mở được sử dụng để trao đổi dữ liệu giữa các ứng dụng hoặc giữa các hệ thống.

– Các ứng dụng phần mềm được viết bằng các ngôn ngữ lập trình khác nhau hoặc chạy trên các nền tảng khác nhau, chúng có thể sử dụng các web services để trao đổi dữ liệu qua lại theo cách tương tự như liên lạc giữa các quá trình trên một máy tính.

Xem hình minh họa,


1.2       Một số ví dụ về web services

Tìm vé máy bay trên trang web

Ví dụ: vào trang https://www.abay.vn/ để tìm chuyến bay của các hãng hàng không khác nhau. Thông tin về các chuyến bay được ebay thu thập từ các hãng hàng không.

RSS

Vào Google, gõ từ khóa rss, mở liên kết “RSS-Vnexpress.net”, sẽ thấy thông tin sau:

[RSS (viết tắt từ Really Simple Syndication) là một tiêu chuẩn định dạng tài liệu dựa trên XML nhằm giúp người sử dụng dễ dàng cập nhật và tra cứu thông tin một cách nhanh chóng và thuận tiện nhất bằng cách tóm lược thông tin vào trong một đoạn dữ liệu ngắn gọn, hợp chuẩn.

Dữ liệu này được các chương trình đọc tin chuyên biệt (gọi là News reader) phân tích và hiển thị trên máy tính của người sử dụng. Trên trình đọc tin này, người sử dụng có thể thấy những tin chính mới nhất, tiêu đề, tóm tắt và cả đường dẫn (link) để xem toàn bộ tin.]

Một số kênh do VnExpress cung cấp: Trang chủ, Thế giới, Thời sự, Kinh doanh.

Bấm vào một kênh để xem thông tin (ví dụ bấm vào mục Trang chủ như hình sau):


Một phần thông tin trả về của RSS Trang chủ:

[This XML file does not appear to have any style information associated with it. The document tree is shown below.

<rss xmlns:slash="http://purl.org/rss/1.0/modules/slash/" version="2.0">

<channel>

<title>Tin mới nhất - VnExpress RSS</title>

<description>VnExpress RSS</description>

<image>

<url>https://s.vnecdn.net/vnexpress/i/v20/logos/vne_logo_rss.png</url>

<title>Tin nhanh VnExpress - Đọc báo, tin tức online 24h</title>

<link>https://vnexpress.net</link>

</image>

<pubDate>Mon, 22 Feb 2021 15:24:12 +0700</pubDate>

<generator>VnExpress</generator>

<link>https://vnexpress.net/rss/tin-moi-nhat.rss</link>

<item>

<title>Lễ chùa, nhà thờ không tập trung quá 20 người</title>

<description>

<![CDATA[ <a href="https://vnexpress.net/le-chua-nha-tho-khong-tap-trung-qua-20-nguoi-4238239.html"><img src="https://i1-suckhoe.vnecdn.net/2021/02/22/quyn8584-1613976185-1441-1613976731.jpg?w=1200&h=0&q=100&dpr=1&fit=crop&s=08ypI7SikY9EBtdjR7NU6g" ></a></br>HCDC yêu cầu các quận huyện ngừng các nghi lễ tôn giáo tập trung từ 20 người trở lên, khuyến khích thuyết giảng trực tuyến để giảm người đi lễ. ]]>

</description>

<pubDate>Mon, 22 Feb 2021 15:19:12 +0700</pubDate>

<link>https://vnexpress.net/le-chua-nha-tho-khong-tap-trung-qua-20-nguoi-4238239.html</link>

<guid>https://vnexpress.net/le-chua-nha-tho-khong-tap-trung-qua-20-nguoi-4238239.html</guid>

<slash:comments>0</slash:comments>

</item>

</channel>

</rss>]

Một lời gọi hàm

Dịch vụ web có thể là một lời gọi hàm, được viết dưới dạng một URL. Ví dụ:

http://www.example.com/view/mssv=0123456

Khi trình duyệt gửi yêu cầu này (URL) về server, server sẽ gọi hàm view, truyền cho tham số mssv của hàm view giá trị là 0123456.

Sau khi hàm view được thực thi, sevver sẽ gửi kết quả trả về cho trình duyệt dưới dạng JSON.

Hàm view bên server có thể sử dụng ngôn ngữ lập trình bất kỳ để viết, như PHP, Java, C#, Python, JavaScript.

1.3       Ưu và nhược điểm của web services

Ưu điểm

– Cung cấp khả năng hoạt động rộng, với các ứng dụng phần mềm khác nhau, chạy trên những nền tảng khác nhau

– Sử dụng các giao thức và chuẩn mở

– Nâng cao khả năng tái sử dụng

– Thúc đẩy đầu tư các hệ thống phần mềm đã tồn tại

– Giúp tương tác linh hoạt giữa các thành phần trong hệ thống, dễ dàng phát triển các ứng dụng phân tán

– Giúp tích hợp các hệ thống, giảm sự phức tạp, hạ giá thành hoạt động, phát triển hệ thống nhanh và tương tác hiệu quả với hệ thống của các doanh nghiệp khác

Nhược điểm

– Nếu hệ thống cung cấp web services không hoạt động sẽ ảnh hưởng đến hoạt động của các máy client

– Lập trình viên phải học các chuẩn để có thể làm việc được với web services

– Phải quan tâm nhiều hơn đến vấn đề an toàn và bảo mật

1.4       Xem và đọc thêm

– Tìm kiếm theo các từ khóa này để học thêm: web services, RSS

– Web services là gì (Đào Quang Huy): https://www.youtube.com/watch?v=qmIMkWcYO5c

– What is a Web Service? And why is it called a Web Service?

https://www.youtube.com/watch?v=e3bz4dxoUII

– Bài giảng về web services của Trung tâm tin học – ĐH KHTN-TP.HCM

– Tìm hiểu về web services: https://gpcoder.com/5572-tim-hieu-ve-web-service/

1.5       Bài tập và thực hành

Bài tập 1. Viết ứng dụng web đọc RSS của VNExpress.net.

Yêu cầu:

-        Sử dụng ngôn ngữ lập trình web tự chọn

-        Giao diện gồm một form, có ô nhập URL của RSS, nút “Lấy tin”

-        Khi người dùng nhập URL của RSS > bấm nút “Lấy tin” thì hiện thị 05 tiêu đề mới nhất của các tin lấy được, (có thể có hình) và 20 chữ đầu tiên của phần nội dung, nếu người dùng bấm vào tiêu đề thì sẽ hiển thị toàn bộ nội dung ở tab mới của trình duyệt.

-        Tham khảo: https://www.youtube.com/watch?v=0rxdKmS34NI

Bài tập 2. Viết ứng dụng web News Reader cho cá nhân. Gợi ý: bạn quan tâm tới các chủ đề nào (ví dụ: văn hóa, khoa học, giáo dục, y tế, thể thao, ca nhạc) thì tìm RSS của những trang báo nổi tiếng, lấy các RSS về và tạo thành trang điểm tin (chỉ hiển thị các tiêu đề của bài báo) cho chính bạn.

[Gợi ý làm bài tập]

Bài tập 1. Viết ứng dụng web đọc RSS của VNExpress.net.

Yêu cầu:

-        Sử dụng ngôn ngữ lập trình web tự chọn

-        Giao diện gồm một form, có ô nhập URL của RSS, nút “Lấy tin”

-        Khi người dùng nhập URL của RSS > bấm nút “Lấy tin” thì hiện thị 05 tiêu đề mới nhất của các tin lấy được, (có thể có hình) và 20 chữ đầu tiên của phần nội dung, nếu người dùng bấm vào tiêu đề thì sẽ hiển thị toàn bộ nội dung ở tab mới của trình duyệt.

-        Tham khảo: https://www.youtube.com/watch?v=0rxdKmS34NI

[index.php]

 <form method='post' action="">

        <input type="text" name="feedurl" placeholder="Nhap feed url cua website">

        <input type="submit" name="submit" value="Lấy tin">

    </form>

    <?php

    // $url = "https://makitweb.com/feed/";

    $url = "https://vnexpress.net/rss/tin-moi-nhat.rss";

    if(isset($_POST['submit'])){

        if($_POST['feedurl'] != ''){

            $url = $_POST['feedurl'];

        }

    }

 

    $invalidurl = false;

    if(@simplexml_load_file($url)){ //@ to ignore error if have

        $feeds = simplexml_load_file($url);

    }else{

        $invalidurl = true;

        echo "<h2>Invalid RSS feed URL.</h2>";

    }

 

    // echo "<pre>";

    // print_r($feeds);

    // echo "</pre>";

    // die;

 

    // Đọc giá trị feeds

    $i = 0;

    if(!empty($feeds)){

        $site = $feeds->channel->title;

        echo "<h1>".$site."</h1>";

 

        foreach($feeds->channel->item as $item){

            $title = $item->title;

            $link = $item->link;

            $description = $item->description;

            $postDate = $item->pubDate;

            $pubDate = date('D, d M Y', strtotime($postDate));

            if($i > 5){

                break;

            }

            ?>

            <div class="post">

                <div class="post-head">

                    <h2><a class="feed_title" href="<?php echo $link; ?>"><?php echo $title; ?></a></h2>

                    <span><?php echo $pubDate; ?></span>

                </div>

                <div class="post-content">

                    <?php echo implode(" ", array_slice(explode(' ', $description), 0, 20)); ?>

                </div>

        </div>

        <?php 

        $i++;

        }

    }else{

        if(!$invalidurl){

            echo "<h2>No item found.</h2>";

        }

    }

    ?>

1.6       Câu hỏi ôn tập

Câu 1. The term Web service (WS) is either a service offered by an electronic device to another electronic device, communicating with each other via the World Wide Web, or a server running on a computer device, listening for _________ at a particular port over a network, serving web documents (HTML, JSON, XML, images).

A. response

B. requests

C. server

D. client

Câu 2. In a Web service a Web technology such as HTTP is used for transferring _________ file formats such as XML and JSON

A. HTML

B. HTTP

C. human-readable

D. machine-readable

Câu 3. What is the RSS?

A. RDF Site Summary

B. Really Simple Syndication

C. Remote Support Software

D. Rich Site Summary

-----

Cập nhật: 25/10/2023

Đọc thêm: Web services (2) - Hoạt động của web services