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