You are on page 1of 16

Khoa Công nghệ thông tin

Bộ môn Công nghệ phần mềm

Nguyễn Huy Khánh


nhkhanh@fit.hcmus.edu.vn
Biết được ý nghĩa và ứng dụng của
Syndication
Hiểu được cấu trúc của RSS feed và Atom
feed
Có khả năng viết chương trình đọc và xuất
feed

29/10/2010 Các công nghệ lập trình hiện đại 2


Syndication là một ứng dụng nổi bật của
Web 2.0
Cho phép một bài viết trên báo có thể xem
được ở nhiều nơi thông qua trình đọc feed
Cho phép tự động cập nhật và thông báo
khi có bài viết mới
Dữ liệu tổ chức để máy có thể dễ dàng
hiểu được

29/10/2010 Các công nghệ lập trình hiện đại 4


Feed là một tài liệu XML trên web
Bao gồm một dãy các mẩu tin và thông tin
mô tả chính nó
Trình đọc feed thường tổ chức như tương
tự như hiển thị email

29/10/2010 Các công nghệ lập trình hiện đại 5


Định dạng thông dụng của feed là XML
Syndication xây dựng trên giao thức HTTP
Syndication client (feed reader) là HTTP
client
Hoạt động của syndication client
Đăng nhận một feed
Định kì kiểm tra feed
Thông báo nếu feed có thay đổi

29/10/2010 Các công nghệ lập trình hiện đại 6


Ba định dạng phổ biến
RSS 1.0
Xây dựng từ RDF Site Summary 0.9 của Netscape
Dựa trên Resource Discription Framework (RDF)
của W3C
RSS 2.0
Cũng từ RDF Site Summary 0.9 của Netscape
Không sử dụng XML namespace
Cú pháp dễ nhìn
Atom
Thiết kế nhằm thay thế cho RSS

29/10/2010 Các công nghệ lập trình hiện đại 7


Đặc tả ở
http://blogs.law.harvard.edu/tech/rss
Cấu trúc:
Bắt đầu bằng
<?xml version=”1.0” encoding=”UTF-8”?>
<rss version=”2.0”>
Một <channel> duy nhất
Các dòng mô tả bản thân
Danh sách các <item>

29/10/2010 Các công nghệ lập trình hiện đại 8


<item>
<title>Web 2.0 at Prague</title>
<guid isPermalink="true">
http://eric.van-dervlist.com/blog/2504_Web_2.0_at_XML_Prague.item
</guid>
<link>
http://eric.van-der-vlist.com/blog/2504_Web_2.0_at_XML_Prague.item
</link>
<pubDate>Mon, 12 Jun 2006 15:19:57 GMT</pubDate>
<description>
Eric van der Vlist will do a presentation about Web 2.0 at XML
Prague 2006.
</description>
</item>

• Bắt buộc phải có <title> hoặc <description>


• Các thành phần khác không bắt buộc tùy vào feed reader
(các thành phần không hiểu sẽ được bỏ qua)
29/10/2010 Các công nghệ lập trình hiện đại 9
Phần tử <guid> dùng để xác định item
Nếu thuộc tính isPermalink là true thì guid
sẽ là URL của item

29/10/2010 Các công nghệ lập trình hiện đại 10


<html>
<head>
...
<link rel="alternate" type=”application/rss+xml”
title=”RSS” href=”http://example.org/myfeed”>
</head>
...

Giúp trình duyệt phát hiện được trang hiện


tại có hỗ trợ feed hay không

29/10/2010 Các công nghệ lập trình hiện đại 11


Là một dự án mở
Được chuẩn hóa bởi IETF
Đặc tả ở
http://datatracker.ietf.org/wg/atompub/
Cố gắng thực hiện phần lớn khả năng của
RSS 1.0 và RSS 2.0
Không dựa trên RDF
Có XML namespace riêng

29/10/2010 Các công nghệ lập trình hiện đại 12


<?xml version="1.0"?> Prague</title>
<feed <updated>2006-06-
xmlns="http://www.w3.org/2005/Atom"> 12T12:22:59Z</updated>
<title type="html">Planet <content type="html">
web2.0thebook</title> Eric van der Vlist will do a presentation
<link about
href="http://web2.0thebook.org/channel.rss Web 2.0 at XML Prague 2006.
" rel="self"/> </content>
<updated>2006-06- <link href="http://eric.van-
19T07:37:55Z</updated> dervlist.com/blog/2504_Web_2.0_at_XML_
Prague.item"
<id>http://web2.0thebook.org/channel.rss</ rel="alternate"/>
id>
<author>
<entry>
<name>evlist</name>
<id>
</author>
http://eric.van-der-
vlist.com/blog/2504_Web_2.0_at_XML_Pra </entry>
gue.item ...
</id> </feed>
<title type="html">Web 2.0 at
29/10/2010 Các công nghệ lập trình hiện đại 13
Phần tử gốc là <feed
xmlns="http://www.w3.org/2005/Atom">
Các dòng mô tả bản thân
Danh sách các <entry>

29/10/2010 Các công nghệ lập trình hiện đại 14


Mở rộng so với RSS bằng thuộc tính type
text
html
xhtml
MIME type

29/10/2010 Các công nghệ lập trình hiện đại 15


<html>
<head>
...
<link href="atom.xml"
type="application/atom+xml" rel="alternate"
title="Sitewide ATOM Feed" />
</head>
...
Giúp trình duyệt phát hiện được trang hiện
tại có hỗ trợ feed hay không

29/10/2010 Các công nghệ lập trình hiện đại 16


Viết chương trình thực hiện các chức năng
sau:
Đọc feed có cùng chủ đề từ hai hoặc nhiều
trang tin tức khác nhau
Kết hợp các feed này thành một feed tổng hợp
Xuất bản feed tổng hợp này
Sinh viên tự chọn ngôn ngữ lập trình thích
hợp

29/10/2010 Các công nghệ lập trình hiện đại 17

You might also like