Tải bản đầy đủ (.doc) (89 trang)

Xây dựng ứng dụng RSS Reader sử dụng công nghệ Web Service và AJAX

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.57 MB, 89 trang )

Báo cáo tốt nghiệp RSS Reader với Webservice và AJAX
LỜI NÓI ĐẦU
Sự ra đời của Internet không những là bước ngoặt lớn trong công nghệ thông tin
mà còn ảnh hưởng mạnh mẽ, làm thay đổi cách tư duy và mở ra những cách tiếp cận và
phương pháp giải quyết vấn đề hoàn toàn mới mẻ và có hiệu quả cao trong mọi lĩnh vực
đời sống xã hội. Mạng Internet cho tới nay đã được sử dụng rộng rãi như một công cụ
hữu hiệu để khai thác và trao đổi thông tin cũng như các dịch vụ tiện ích khác đang
không ngừng được phát triển mạnh mẽ và đa dạng. Có thể nói Internet là nguồn khai thác
thông tin tiện lợi, vô cùng phong phú và sẽ ngày càng trở nên hiệu quả hơn với những
phần mềm hỗ trợ liên tục được ra đời và nâng cấp.
Trong thời gian thực tập tại công ty Netnam – Viện công nghệ thông tin, nhóm
sinh viên chúng em đã được chỉ dẫn và định hướng theo hướng nghiên cứu và phát triển
các ứng dụng trên Web sử dụng các công nghệ mới như SOA, WebService và AJAX.
Chúng em đã mạnh dạn nhận đề tài “Xây dựng ứng dụng RSS Reader sử dụng công
nghệ Web Service và AJAX” làm đồ án tốt nghiệp. Do hạn chế về thời gian và kiến thức
cũng như kinh nghiệm nên đồ án không tránh khỏi những thiếu sót. Chúng em mong
nhận được những ý kiến góp ý quý báu từ các thầy cô.
Chúng em xin chân thành cảm ơn cô giáo hướng dẫn, PGS.TS Nguyễn Việt
Hương đã nhiệt tình hướng dẫn, chỉ bảo, giúp đỡ chúng em trong thời gian thực hiện đồ
án và thực tập tốt nghiệp.
Chúng em xin chân thành cảm ơn các anh Lê Anh Tuấn, Nguyễn Kiên Trung,
Nguyễn Mạnh Toàn và các anh trong phòng Nghiên cứu và phát triển Công ty Netnam đã
hướng dẫn cụ thể, tận tình từng bước và trang bị cho chúng em những kiến thức cần thiết
về công nghệ làm cơ sở cho quá trình thực hiện đồ án.
Nhóm sinh viên
Nguyễn Mạnh Hùng – Nguyễn Việt Hưng
Nguyễn Mạnh Hùng, Nguyễn Việt Hưng - ĐT 12, K46 Trang 1
Báo cáo tốt nghiệp RSS Reader với Webservice và AJAX
Tóm tắt đồ án
Mục đích đồ án tốt nghiệp của nhóm sinh viên chúng em là nghiên cứu về Web
Service và AJAX là những công nghệ mới nhất về phát triển các ứng dụng trên Web hiện


nay. Sau khi đã nắm được cơ sở lý thuyết và nghiên cứu cách vận dụng các công nghệ
này vào thực tế, chúng em sẽ thực hiện xây dựng một ứng dụng có ý nghĩa thực tiễn trên
nền tảng những công nghệ mới này với mục đích chứng minh khả năng áp dụng vào thực
tế cũng như các tính năng ưu việt của các công nghệ mới so với các công nghệ truyền
thống.
Ứng dụng chúng em xây dựng là RSS Reader – một công cụ dùng để chia sẻ thông
tin trên internet hiện đang ngày càng được sử dụng rộng rãi. Những người cần cập nhật
thông tin từ nhiều trang Web khác nhau, khi sử dụng RSS Reader thay vì hàng ngày phải
truy cập vào nhiều trang Web để lấy tin, thì chỉ cần tạo một danh mục các nguồn tin, RSS
sẽ tự động cập nhật về trang chủ của ứng dụng. Người sử dụng sẽ tiện lợi hơn khi chỉ cần
truy cập vào một trang duy nhất là trang Web của ứng dụng RSS để xem các tin tức từ
nhiều trang Web khác.
Kiến trúc ứng dụng gồm 2 phần, phần xử lý chức năng của RSS Reader được gói
trong một Web Service nằm tại Web Service Server. Phần thứ 2 là phía Web Service
Client thực hiện nhận yêu cầu từ người sử dụng, gửi lên và nhận thông tin trả về từ Web
Service Server, sau đó dùng AJAX để hiển thị lên giao diện. Hướng phát triển của đồ án
trong tương lai là tiếp tục triển khai ứng dụng trở thành một portal để có thể tích hợp vào
các Website, sử dụng ứng dụng như một chức năng của Website đó. Các nội dung trên
được trình bày cụ thể trong đồ án.
Abstract
The purpose of this project is to research Web Service and AJAX, the 2 newest
technologies in developing the Web application nowadays. The theory foundation has
paved the way for us to investigate and apply the new technology to pratical, fully
exploiting the advantages of the new modern technology compared with the traditional
one
Our application built in this project is RSS Reader – a tool used to share
information over internet, which is becoming more and more popular. With RSS Reader,
it’s now unecessary to get access to many Web sites per day updating information, all
you need is creating a category of information sources, and RSS will automatically
update to the home page of your application. Users will find it as now they have to get

access to only one site to get information from many others.
The application architecture includes two parts: 1. The functions processing of
RSS Reader, is wrapped in a Web Service at Web Service Server. 2. The Web Service
Client, receives requests from users, sends and receives response from Web Service
Server, then uses AJAX to display. In future we want to continue developing our
application to become a portal that can intergrate to Web Sites, using as a function of that
Web site. All content will be presented in the project.
Nguyễn Mạnh Hùng, Nguyễn Việt Hưng - ĐT 12, K46 Trang 2
Báo cáo tốt nghiệp RSS Reader với Webservice và AJAX
MỤC LỤC
Xây dựng ứng dụng RSS Reader sử dụng công nghệ Web Service và AJAX
LỜI NÓI ĐẦU 1
MỤC LỤC 3
DANH MỤC HÌNH VẼ 5
DANH SÁCH CÁC TỪ VIẾT TẮT 7
TÓM TẮT NỘI DUNG CÁC CHƯƠNG 8
CHƯƠNG 1: GIỚI THIỆU CHUNG 9
1.1 GIỚI THIỆU ĐỀ TÀI 9
1.1.1 Bùng nổ web site - enews 9
1.1.2 Chia sẻ thông tin RSS 10
1.1.3 SOA (kiến trúc phần mềm hướng dịch vụ) 11
1.1.4 Xu hướng công nghệ Web Service và Asynchronous 12
1.1.5 AJAX 13
1.2 PHẠM VI ĐỀ TÀI 13
CHƯƠNG 2: CÁC CÔNG NGHỆ NỀN TẢNG 14
2.1 RSS 14
2.1.1 Tổng quan 14
2.1.2 Chức năng và ứng dụng 14
2.1.3 Lịch sử 15
2.1.4 Cách sử dụng 16

2.1.5 Mô tả chi tiết 16
2.2 WEB SERVICE 18
2.2.1 Tổng quan 18
2.2.3 Ứng dụng của Web service 21
2.2.4 Hoạt động của Web Service 22
2.2 XML 24
2.2.1 Tổng quan 24
2.2.2 Cấu trúc của tài liệu XML 25
2.2.3 Một vài ví dụ về XML: 26
2.2.4 XSLT 27
2.3 SOAP 31
2.3.1 Tổng quan 31
2.3.2 Cấu trúc SOAP 32
2.3.3 SOAP over HTTP 35
2.4 WSDL 37
2.5 UDDI 40
2.5.1 UDDI là gì 40
2.5.2 Đăng ký một Web service với UDDI như thế nào 40
2.5.3 Tìm kiếm một web service trên UDDI như thế nào? 41
Nguyễn Mạnh Hùng, Nguyễn Việt Hưng - ĐT 12, K46 Trang 3
Báo cáo tốt nghiệp RSS Reader với Webservice và AJAX
2.6 AJAX 42
2.6.1 Tổng quan 42
2.6.2 AJAX là gì? 42
2.6.3 AJAX hoạt động như thế nào? 43
2.6.4 Bốn định nghĩa chính của AJAX 45
2.6.6 Các ứng dụng AJAX phổ biến 48
2.7 CÀI ĐẶT APACHE TOMCAT, AXIS2 SERVER 49
2.7.1 Apache Tomcat 49
2.7.2 Apache Axis2 50

CHƯƠNG 3: PHÂN TÍCH HỆ THỐNG 52
3.1 TỔNG QUAN 52
3.1.1. Giới thiệu chung 52
3.1.2 Yêu cầu đặt ra cho ứng dụng 53
3.1.3 Mô hình ứng dụng 53
3.1.4 Kiến trúc ứng dụng 55
3.2 SƠ ĐỒ PHÂN CẤP CHỨC NĂNG 56
Sơ đồ phân cấp chức năng liệt kê đầy đủ các chức năng của hệ thống 56
3.3 SƠ ĐỒ MỨC NGỮ CẢNH 57
3.4 SƠ ĐỒ MỨC DƯỚI ĐỈNH 58
CHƯƠNG 4: THIẾT KẾ HỆ THỐNG 64
4.1 THIẾT KẾ GÓI CHỨC NĂNG 64
4.1.1 Thư viện RSS lib 64
4.1.2 Thiết kế package phía web sericvce 64
4.1.3 Thiết kế package phía servlet 65
4.1 THIẾT KẾ GIAO DIỆN NGƯỜI SỬ DỤNG 66
4.2 THIẾT KẾ ĐỊNH DẠNG DỮ LIỆU INPUT/OUTPUT 69
4.3 THIẾT KẾ CƠ SỞ DỮ LIỆU 76
4.3 THIẾT KẾ PHẦN MỀM 78
CHƯƠNG 5: ĐÁNH GIÁ KẾT QUẢ VÀ GIỚI THIỆU SẢN PHẨM 84
5.1 GIỚI THIỆU PHẦN MỀM VÀ HƯỚNG DẪN SỬ DỤNG 84
5.2 ĐÁNH GIÁ KẾT QUẢ 87
5.3 HƯỚNG PHÁT TRIỂN 88
KẾT LUẬN 89
Tài liệu tham khảo 90
Nguyễn Mạnh Hùng, Nguyễn Việt Hưng - ĐT 12, K46 Trang 4
Báo cáo tốt nghiệp RSS Reader với Webservice và AJAX
DANH MỤC HÌNH VẼ
Hình 2.1. Lịch sử phát triển của RSS 15
Hình 2.2. Bảng so sánh giữa RSS2.0 và Atom 1.0 18

Hình 2.3. Mô hình kiến trúc dịch vụ 19
Hình 2.4. Mô hình quan hệ của Web Service 20
Hình 2.5. Các đặc điểm của Web service 21
Hình 2.6. Mô hình hoạt động của Web service 22
Hình 2.7. Sự tương tác giữa Client và Web service 23
Hình 2.8. Cấu trúc một SOAP Message 32
Hình 2.9. Cấu trúc SOAP Request và SOAP Response của 2 kiểu web service 34
Hình 2.10. Mô hình hoạt động của SOAP 37
Hình 2.11. Mô hình hoạt động của WSDL 38
Hình 2.12. Cấu trúc hoạt động của WSDL 39
Hình 2.13. Vai trò của UDDI 40
Hình 2.14. Cách đăng ký với UDDI 41
Hình 2.15. Giao diện tìm web service của UDDI 41
Hình 2.16. Kết quả tìm web service 42
Hình 2.17. Ứng dụng web truyền thống (trái) và ứng dụng AJAX 43
Hình 2.18. Tương tác đồng bộ trong ứng dụng web truyền thống (trên) và dị bộ trong ứng
dụng AJAX 44
Hình 2.19. Vòng đời của một ứng dụng web truyền thống. Tất cả trạng thái của user với
ứng dụng được lưu giữ trên server. User luôn nhìn thấy một trang hoàn chỉnh, nhưng sẽ
không thấy được sự thay đổi nếu như không lấy toàn bộ về từ server 45
Hình 2.20. Vòng đời của ứng dụng Ajax. Khi user vào hệ thống, một giao diện hoàn
chỉnh được tải về phía trình duyệt. Ứng dụng này phản ứng lại sự tương tác của user ngay
lập tức, hoặc “ngấm ngầm” request tới server ở phía sau, không làm gián đoạn tới quá
trình tương tác của user 46
Hình 2.21. Từ trên xuống dưới của việc “đẩy” nội dung từ server: (A) là ứng dụng web
cổ điển, (B) là ứng dụng Ajax. Nếu như ứng dụng cứ tiếp tục, lưu lượng này sẽ bị dồn lên
rất cao(C) 47
Hình 2.22. Minh họa cách tổ chức thư mục của Apache Tomcat 50
Hình 2.23. Minh họa cách tổ chức thư mục của apache web service 51
Hình 3.1 Các ứng dụng Rss Reader thông thường 52

Hình 3.2 Ứng dụng RSS Reader with Web service 53
Hình 3.3 Mô hình luồng thông tin của ứng dụng 54
Hình 3.4 Mô hình kiến trúc của ứng dụng 55
Hình 3.5 Sơ đồ phân cấp chức năng (Function Diagram) 56
Hình 3.6 Sơ đồ luồng dữ liệu mức ngữ cảnh 57
(Context Diagram) 57
Hình 3.7 Sơ đồ luồng dữ liệu mức 0 58
(DFD level 0) 58
Nguyễn Mạnh Hùng, Nguyễn Việt Hưng - ĐT 12, K46 Trang 5
Báo cáo tốt nghiệp RSS Reader với Webservice và AJAX
Hình 3.8 DFD Function 1 59
Hình 3.9 DFD (Function 2) 60
Hình 4.1. Giao diện chính của ứng dụng 66
Bên trái của giao diện chính là Category – Danh mục các trang tin tức như hình 4.2 66
66
Hình 4.2. Category của RSS hiển thị dưới dạng TreeView 66
Hình 4.3. Giao diện hiển thị Feed 67
Khi ta chọn chức năng add feed/add category trên menu, giao diện thêm feed hoặc thêm
folder sẽ được mở ra, người sử dụng nhập nhưng thông tin cần thiết để thực hiện chức
năng(hình 4.4, hình 4.5) 68
Hình 4.4. Giao diện thực hiện thêm 1 feed mới 68
68
Hình 4.5 Giao diện thực hiện thêm 1 folder mới 68
Hình 4.6. Bảng tbl_Category 76
Hình 4.7. Bảng tbl_Feed 76
Hình 4.8. Sơ đồ thực thể liên kết (ERD) 77
Hình 4.9. Lưu đồ thuật toán phần Web Service Client 79
Hình 4.10. Lưu đồ thuật toán phần Web Service Server 80
Hình 5.1. Giao diện chương trình 84
84

Hình 5.2. Category của RSS hiển thị dưới dạng TreeView 84
Hình 5.3. Giao diện hiển thị Feed 85
Hình 5.4. Giao diện xác nhật xóa 1 Feed 85
Hình 5.5. Giao diện xác nhật xóa 1 Folder 86
Hình 5.6. Giao diện thêm 1 Feed mới 86
Hình 5.7. Giao diện thêm 1 Folder mới 87
Nguyễn Mạnh Hùng, Nguyễn Việt Hưng - ĐT 12, K46 Trang 6
Báo cáo tốt nghiệp RSS Reader với Webservice và AJAX
DANH SÁCH CÁC TỪ VIẾT TẮT
STT Từ viết tắt Tên đầy đủ Giải thích
1 SOA Service Oriented
Architecture
Kiến trúc phần mềm
hướng dịch vụ
2 AJAX Asynchronous
JavaScript + XML
Công nghệ mới sử dụng
lập trình phía Client
3 RSS Really Simple
Syndication
Ứng dụng dùng làm công
cụ chia sẻ thông tin trên
internet
4 XML Extensible Markup
Language
Ngôn ngữ định dạng mở
rộng
5 XSLT Extensible Stylesheet
Language Transform
Ngôn ngữ viết theo cú

pháp XML cho phép
chuyển dịch tài liệu XML
sang một khuôn dạng
khác.
6 SOAP Simple Object Access
Protocol
1 giao thức để truyền
thông tin giữa WebServer
và Client trong công nghệ
WebService
7 WSDL Web Services
Description Language
1 giao thức để truyền
thông tin giữa WebServer
và Client trong công nghệ
WebService
8 UDDI Universal Description,
Discovery and
Integration
1 giao thức để truyền
thông tin giữa WebServer
và Client trong công nghệ
WebService
Nguyễn Mạnh Hùng, Nguyễn Việt Hưng - ĐT 12, K46 Trang 7
Báo cáo tốt nghiệp RSS Reader với Webservice và AJAX
TÓM TẮT NỘI DUNG CÁC CHƯƠNG
Chương 1: Giới thiệu chung – Giới thiệu tổng quan về đồ án tốt nghiệp: khái niệm ứng
dụng RSS Reader, các công nghệ mới được sử dụng để xây dựng ứng dụng, phạm vi đề
tài.
Chương 2: Các công nghệ nền tảng - Giới thiệu chi tiết về cơ sở lý thuyết, các công

nghệ, các công cụ để xây dựng đồ án.
Chương 3: Phân tích hệ thống – Phân tích chi tiết các công việc để xây dựng ứng dụng,
đưa ra sơ đồ phân cấp chức năng, sơ đồ luồng dữ liệu và mô tả các chức năng của hệ
thống.
Chương 4: Thiết kế hệ thống - Thực hiện thiết kế giao diện tương tác với người sử
dụng, thiết kế cơ sở dữ liệu, dữ liệu đầu vào và đầu ra, thiết kế phần mềm.
Chương 5: Đánh giá kết quả và giới thiệu sản phẩm – Đánh giá kết quả đạt được của
đồ án, đánh giá hướng phát triển. Giới thiệu và hướng dẫn sử dụng phần mềm.
Nguyễn Mạnh Hùng, Nguyễn Việt Hưng - ĐT 12, K46 Trang 8
Báo cáo tốt nghiệp RSS Reader với Webservice và AJAX
CHƯƠNG 1: GIỚI THIỆU CHUNG
1.1 GIỚI THIỆU ĐỀ TÀI
1.1.1 Bùng nổ web site - enews
Chỉ với một động tác click chuột để biết tất cả các tin tức mỗi buổi sáng thay vì
mở radio, xem truyền hình hoặc mua một tờ báo. Thói quen này đã bắt đầu hình thành ở
Việt Nam, trước hết là giới trẻ tại các thành phố lớn. Và thói quen ấy bắt đầu cho sự phát
triển mạnh mẽ của một loại hình báo chí mới: Báo điện tử.

Chỉ sau vài năm xuất hiện, các báo điện tử đã khẳng định được thế mạnh không
thể phủ nhận của mình. Với ưu thế và sự trợ giúp của công nghệ thông tin, báo điện tử đã
cho phép chuyển tải những thông tin tới người đọc gần như tức thời bằng chữ viết, tin tức
và hình ảnh.
Đây là lợi ích hơn hẳn so với các loại hình báo chí khác, nhất là báo giấy khi phải
chờ đợi việc in ấn theo định kỳ xuất bản.

Ngoài ưu thế có thể chuyển tải thông tin một cách nhanh nhất tới bất kỳ nơi nào
trên thế giới, một trong những lợi thế hơn hẳn của báo điện tử là không phải mất chi phí
và thời gian cho công việc in ấn-vấn đề nan giải thường gặp phải đối với các tờ báo giấy.
Cùng với sự phát triển của Internet và máy tính, báo điện tử nói riêng và thông tin
từ internet nói chung ngày trở nên phổ biến và ngày càng phát huy mạnh mẽ những ưu

điểm của nó so với những cách tìm kiếm thông tin bình thường khác như tiết kiệm thời
gian, công sức, rẻ và thông tin được cập nhật liên tục. Khi ta muốn tìm kiếm thông tin về
một vấn đề bất kỳ, thay vì phải lục tìm trong thư viện nếu là thông tin về tri thức, hay
phải tới rạp chiếu phim hoặc gọi điện để hỏi lịch nếu chỉ đơn giản là thông tin về một bộ
phim sắp chiếu, ta chỉ cần ngồi trước màn hình 1 máy tính nối mạng internet sử dụng
Nguyễn Mạnh Hùng, Nguyễn Việt Hưng - ĐT 12, K46 Trang 9
Báo cáo tốt nghiệp RSS Reader với Webservice và AJAX
công cụ tìm kiếm của google là sẽ dễ dàng nhận được những tin tức đang cần tìm từ rất
nhiều nguồn tin được cập nhật liên tục.
Những thế mạnh trên đã giải thích vì sao việc chia sẻ thông tin qua internet đang
ngày càng phổ biến trên toàn thế giới, đồng thời những ứng dụng, công cụ hỗ trợ cho việc
sử dụng và khai thác nguồn thông tin trên internet cũng liên tục được phát triển.
1.1.2 Chia sẻ thông tin RSS
Các công nghệ phát triển web có thể được chia thành 2 giai đoạn, đó là giai đoạn
web 1.0 và web 2.0 . Mục tiêu đầu tiên của những người tiên phong xây dựng Internet là
nhằm kết nối các nhà nghiên cứu và các máy tính của họ với nhau để có thể chia sẻ thông
tin hiệu quả. Khi bổ sung World Wide Web (năm 1990), Tim Berners-Lee cũng nhằm
mục tiêu tạo phương tiện cho phép người dùng tự do đưa thông tin lên Internet và dễ
dàng chia sẻ với mọi người (trình duyệt web đầu tiên do Berners-Lee viết bao gồm cả
công cụ soạn thảo trang web). Tuy nhiên, sau đó web đã phát triển theo hướng hơi khác
mục tiêu ban đầu.
Tuy có một số ngoại lệ nhưng thế giới Web 1.0 (thế hệ web trước Web 2.0) chủ
yếu gồm các website "đóng" của các hãng thông tấn hay các công ty nhằm mục đích tiếp
cận độc giả hay khách hàng hiệu quả hơn. Nó là phương tiện phát tin hơn là phương tiện
chia sẻ thông tin. Chỉ đến gần đây, với sự xuất hiện của nhiều kỹ thuật mới như blog (hay
weblog), wiki web mới trở nên có tính cộng đồng (và cộng tác) hơn và trở nên gần hơn
với sự kỳ vọng và khả năng thực sự của nó.Web 2.0 ra đời với mục đích cho phép người
dùng không còn “nhận” thông tin theo dạng một chiều nữa, mà còn có thể đóng góp, xây
dựng thêm cho ứng dụng.
Không ngoại lệ, nó còn giúp các tổ chức chia sẻ thông tin, gắn bó với nhau chặt

chẽ hơn trước. Ở đây, chúng ta xem xét khía cạnh này với ví dụ dạng thông tin chia sẻ
RSS. RSS giúp các doanh nghiệp, cá nhân có thể nắm bắt và chia sẻ dễ dàng thông tin
với nhau, và được cập nhật tự động. Bạn hãy tưởng tượng một tờ báo với tất cả những
thông tin mà bạn quan tâm, không có một dòng quảng cáo, không có mục mà bạn không
thích. Với dạng thông tin RSS bạn có quyền lựa chọn chúng.
RSS (Really Simple Syndication) là một cách thức để chia sẻ thông tin qua tiêu đề,
nội dung các trang Web, một dạng phân phối thông tin cập nhật của trang Web. Để giải
thích rõ hơn, ta có thể lấy ví dụ một trang tin tức như của BBC. Để có thể xem tin tức từ
những trang này, người dùng mỗi khi online phải truy cập vào trang chủ của kiểm tra
danh sách tin tức xem có tin mới hay không. Nếu sử dụng RSS, quá trình kiểm tra thông
báo và hiển thị nội dung của tin tức mới được cập nhật lên trang của BBC sẽ được thực
hiện liên tục và tự động. Khi một tin mới được đưa lên, giao diện RSS phía người sử
dụng sẽ hiển thị ngay tiêu đề hoặc nội dung chính của tin tức mới, người sử dụng có thể
click vào tiêu đề để chuyển đến trang của BBC để xem đây đủ tin tức đó. Quá trình hiển
thị tin mới trên giao diện RSS phía khách thực hiện hoàn toàn thời gian thực, tức là người
Nguyễn Mạnh Hùng, Nguyễn Việt Hưng - ĐT 12, K46 Trang 10
Báo cáo tốt nghiệp RSS Reader với Webservice và AJAX
sử dụng không cần phải refresh lại giao diện nhận thông tin như các ứng dụng Web
truyền thống mà thông tin được tự động cập nhật liên tục.
1.1.3 SOA (kiến trúc phần mềm hướng dịch vụ)
Phần mềm đang ngày càng trở nên phức tạp quá mức và dường như đang vượt
khỏi khả năng kiểm soát của các mô hình phát triển hiện có. Có một kiến trúc phần mềm
mới được kỳ vọng là chìa khóa giải quyết vấn đề phức tạp này
Mọi việc nên thực hiện theo cách đơn giản đến mức có thể ' - Albert Einstein, đây
cũng chính là vấn đề đặt ra hiện nay trong lĩnh vực phát triển phần mềm. Một thực trạng
đáng buồn là có rất nhiều hệ thống phần mềm được thực hiện quá phức tạp, chi phí phát
triển và bảo trì cao chót vót, đặc biệt với các hệ thống phần mềm cao cấp. Hàng chục năm
qua, các kiến trúc phần mềm đã cố gắng giải quyết vấn đề này. Thế nhưng độ phức tạp
vẫn tiếp tục tăng và dường như vấn đề này đã vượt quá khả năng xử lý của các kiến trúc
truyền thống. Điều này một phần do ngày càng xuất hiện nhiều công nghệ mới tạo nên

môi trường không đồng nhất, một phần do yêu cầu trao đổi tương tác giữa các hệ thống
phần mềm với nhau. Những yêu cầu truyền thống đặt ra đối với tổ chức CNTT vẫn còn
đó, cùng lúc phải đáp ứng nhanh chóng các yêu cầu mới, đòi hỏi phải liên tục giảm chi
phí, có khả năng sử dụng và tích hợp các thành phần mới Tất cả đã tạo nên một áp lực
nặng nề đối với các nhà phát triển phần mềm.
Chúng ta đã có các kiến trúc như OOP (Object Oriented Programming),
COM/DCOM (Distributed Common Object Model), CORBA (Common Object Request
Broker Architecture) và nhiều phương thức tích hợp ứng dụng nhanh và tốt hơn. Thế
nhưng vẫn chưa có giải pháp nào hoàn chỉnh. Giờ đây, SOA đang được xem là 'ứng cử
viên sáng giá' có thể đảm nhận trọng trách này và được kỳ vọng tạo nên cuộc cách mạng
trong kiến trúc phần mềm.
SOA - Service Oriented Architecture (Kiến trúc Định hướng Dịch vụ), theo định
nghĩa của DotNetGuru, là 'Khái niệm về hệ thống trong đó mỗi ứng dụng được xem như
một nguồn cung cấp dịch vụ'.
Dịch vụ là yếu tố then chốt trong SOA. Có thể hiểu dịch vụ như là hàm chức năng
(mô-đun phần mềm) thực hiện qui trình nghiệp vụ nào đó. Một cách cơ bản, SOA là tập
hợp các dịch vụ kết nối 'mềm dẻo' với nhau (nghĩa là một ứng dụng có thể 'nói chuyện'
với một ứng dụng khác mà không cần biết các chi tiết kỹ thuật bên trong), có giao tiếp
(dùng để gọi hàm dịch vụ) được định nghĩa rõ ràng và độc lập với nền tảng hệ thống, và
có thể tái sử dụng. SOA là cấp độ cao hơn của phát triển ứng dụng, chú trọng đến qui
trình nghiệp vụ và dùng giao tiếp chuẩn để giúp che đi sự phức tạp kỹ thuật bên dưới.
Thiết kế SOA tách riêng phần thực hiện dịch vụ (phần mềm) với giao tiếp gọi dịch
vụ. Điều này tạo nên một giao tiếp nhất quán cho ứng dụng khách (client) sử dụng dịch
vụ bất chấp công nghệ thực hiện dịch vụ. Thay vì xây dựng các ứng dụng đơn lẻ và đồ sộ,
nhà phát triển sẽ xây dựng các dịch vụ tinh gọn có thể triển khai và tái sử dụng trong toàn
Nguyễn Mạnh Hùng, Nguyễn Việt Hưng - ĐT 12, K46 Trang 11
Báo cáo tốt nghiệp RSS Reader với Webservice và AJAX
bộ quy trình nghiệp vụ. Điều này cho phép tái sử dụng phần mềm tốt hơn, cũng như tăng
sự linh hoạt vì nhà phát triển có thể cải tiến dịch vụ mà không làm ảnh hưởng đến ứng
dụng client sử dụng dịch vụ.

Thật ra triết lý SOA không hoàn toàn mới, DCOM và CORBA cũng có kiến trúc
tương tự. Tuy nhiên, các kiến trúc cũ ràng buộc các thành phần với nhau quá chặt, ví dụ
như các ứng dụng phân tán muốn làm việc với nhau phải đạt được 'thỏa thuận' về chi tiết
tập hàm API, một thay đổi mã lệnh trong thành phần COM sẽ yêu cầu những thay đổi
tương ứng đối với mã lệnh truy cập thành phần COM này.
Ưu điểm quan trọng nhất của SOA là khả năng kết nối 'mềm dẻo' (nhờ sự chuẩn
hóa giao tiếp) và tái sử dụng. Các dịch vụ có thể được sử dụng với trình client chạy trên
nền tảng bất kỳ và được viết với ngôn ngữ bất kỳ. (Ví dụ, ứng dụng Java có thể liên kết
với dịch vụ web .NET và ngược lại).
SOA dựa trên 2 nguyên tắc thiết kế quan trọng:
• Mô-đun: Tách vấn đề lớn thành nhiều vấn đề nhỏ.
• Đóng gói: Che đi dữ liệu và lô-gic trong từng mô-dun (hay 'hộp đen') đối với truy cập
từ ngoài.
Tháng 5 vừa qua, BEA đưa ra sáng kiến Liquid Computing hỗ trợ dịch vụ web và
SOA. Cũng trong tháng 5, IBM đã khai trương 4 trung tâm nghiên cứu và triển khai SOA
tại Austin (Mỹ), Beijing (Trung Quốc), Delhi (Ấn độ) và Hursley (Anh). Các trung tâm
này sẽ hỗ trợ cho công việc của IBM Global Services SOA Centers of Excellence. Như
đã đề cập ở phần trên, phiên bản HĐH Windows thế hệ kế tiếp, tên mã Longhorn, sẽ hỗ
trợ đầy đủ SOA với công nghệ tích hợp Indigo. Và SOA còn được sự ủng hộ của nhiều
hãng tên tuổi khác như Sun, Oracle Theo Gartner, trong khoảng 2 năm nữa, SOA sẽ
hiện diện trong hầu hết các dự án phần mềm.
SOA sẽ giúp cho công việc phát triển phần mềm trở nên dễ dàng và nhanh chóng
hơn. 'Đừng tốn công chế tạo lại bánh xe', hãy kết hợp những linh kiện (dịch vụ) có sẵn và
bổ sung những gì cần thiết để 'lắp ráp' nhanh chóng 'chiếc xe' đưa bạn đến đích. Đó là
triết lý của SOA! Ngay từ bây giờ bạn có thể áp dụng triết lý này cho các hệ thống phần
mềm của mình để sẵn sàng cho những nhu cầu của ngày mai.
1.1.4 Xu hướng công nghệ Web Service và Asynchronous
Để đáp ứng nhu cầu phát triển của các ứng dụng phát triển trên nền web. Với sự
đa dạng về môi trường phát triển, ngôn ngữ lập trình, và rất nhiểu, rất nhiều chuẩn mới
đang được ra đời hang ngày, chúng ta cần có một môi trường thống nhất, không phân biệt

nền tnảg, ngôn ngữ, và áp dụng các chuẩn, có khả năng mở rộng. Vì vậy xu hướng công
nghệ cần đạt tới là đưa các ứng dụng thành các dịch vụ, triển khai trên mạng, và giúp xóa
bỏ các ranh giới giữa chúng bằng cách phát triển trên một kiến trúc chung: SOA –
Service Oriented Architecture – kiến trúc hướng dịch vụ. Mỗi ứng dụng đều là một
Nguyễn Mạnh Hùng, Nguyễn Việt Hưng - ĐT 12, K46 Trang 12
Báo cáo tốt nghiệp RSS Reader với Webservice và AJAX
service, và các ứng dụng này có một ngôn ngữ chung để nói chuyện với nhau, đó là nhờ
các chuẩn chung: XML.
Vấn đề đặt ra tiếp theo đó là tăng tốc độ thi hành của ứng dụng, các ứng dụng truyền
thống thường hoạt động trên cơ chế đồng bộ, tức là : Gửi – nhận; gửi - nhận, nhưng với
sự cồng kềnh hiện nay, đôi khi ta sẽ thấy là: gửi – đợi – nhận, gửi – đợi – nhận, ….
Để khắc phục tình trạng này hiện nay áp dụng công nghệ truyền dữ liệu bất đồng bộ, giúp
tăng tốc độ thi hành và đem lại cảm giác nhanh hơn cho người sử dụng. Đáp án được tìm
thấy qua công nghệ mới ra mắt tháng 2/2005: AJAX

1.1.5 AJAX
Cùng với sự phát triển nhanh chóng và không ngừng của Internet, công nghệ nền
tảng của Web Browser vốn dùng để hiển thị nội dung thông tin đã được phát triển để thực
hiện những công việc vượt xa giới hạn của nhiệm vụ ban đầu đặt ra cho nó. AJAX viết tắt
cho Asynchronous JavaScript + XML (JavaScript + XML không đồng bộ) là sở hữu của
Jesse James Garrett thuộc Adaptive Path. một phần của AJAX ta đã được biết đến từ
trước là công nghệ Dynamic HTML và Remote Scripting. Về mặt công nghệ, AJAX có
thể khai thác được nhiều tiềm năng của công nghệ Web Browser mà các ứng dụng Web
truyền thống chưa thực hiện được. Google và một vài đại gia khác đã sử dụng AJAX
nhằm nâng cao chất lượng và khả năng cạnh tranh của các sản phẩm của họ.
1.2 PHẠM VI ĐỀ TÀI
Mục đích xây dựng đồ án tốt nghiệp của nhóm chúng em là tìm hiểu, tiếp cận nghiên
cứu những công nghệ mới nhất hiện nay trong lĩnh vực lập trình phát triển ứng dụng, dựa
trên nền tảng đó xây dựng một ứng dụng có ý nghĩa thực tiễn.
Hiện nay, ứng dụng Web đều xoay quanh 2 công nghệ CMS và Portal, và các công

nghệ vệ tinh để bổ trợ. Trong thời gian thực tập, tìm hiểu và tiếp cận các kiến thức nhằm
mục đích chuẩn bị cho đồ án tốt nghiệp, chúng em đã nghiên cứu về 2 công nghệ vệ tinh
bổ trợ cho ứng dụng Web là WebService triển khai trên lý thuyết về SOA (Service
Oriented Architecture – Kiến trúc hướng dịch vụ) và AJAX sử dụng để hiển thị và xử lý
dữ liệu phía Client. Với nhiều tính năng ưu việt hơn so với các ứng dụng Web truyền
thống, các công nghệ mới nêu trên nếu được áp dụng vào thương mại điện tử sẽ hỗ trợ tốt
hơn cho khách sử dụng các ứng dụng cũng như giải quyết được nhiều vấn đề mà người
phát triển ứng dụng Web thường phải đối mặt, từ đó sẽ nâng cao tính năng và hiệu quả sử
dụng của sản phẩm làm ra. Không ngoài mục đích đó, nhóm sinh viên chúng em gồm
Nguyễn Mạnh Hùng và Nguyễn Việt Hưng lớp Điện tử 12 K46 xây dựng đề tài xây dựng
WebService là 1 ứng dụng RSS.
Đồ án có thể chia ra làm 2 mảng chính:
- Xây dựng một web service cung cấp các dịch vụ để thu thập và quản lý thông tin
dạng RSS từ các nhà cung cấp (RSS Provider – thực ra đây là các web site của các các
nhân hay tổ chức)
Nguyễn Mạnh Hùng, Nguyễn Việt Hưng - ĐT 12, K46 Trang 13
Báo cáo tốt nghiệp RSS Reader với Webservice và AJAX
- Xây dựng một ứng dụng Web Service Client – Servlet server, để sử dụng các chức
năng của web service này, mục đích là cho phép người dùng đọc được các thông tin RSS
từ các web site cung cấp.
Hướng phát triển của đồ án trong tương lai là tiếp tục triển khai ứng dụng trở thành
một portal để có thể tích hợp vào các Website, sử dụng ứng dụng như một chức năng của
Website đó.
CHƯƠNG 2: CÁC CÔNG NGHỆ NỀN TẢNG
Trong thời gian 7 tuần thực tập tốt nghiệp, nhóm sinh viên chúng em đã tập trung
nghiên cứu phần cơ sở lý thuyết phục vụ đồ án, bao gồm công nghệ WebService, AJAX,
XML và chi tiết về RSS Reader, ngoài ra còn tìm hiểu và cài đặt thiết lập các công cụ cần
thiết như Apache Tomcat Server, Axis2 để sau đó bắt tay vào viết sản phẩm.
2.1 RSS
“RSS is a method that uses XML to distribute web content on one web site, to many other web sites. RSS allows fast

browsing for news and updates.” – W3C definition.
Theo định nghĩ của W3C thì RSS là một cách thức sử dụng XML để phân phối, phát tán
thông tin trên một web site tới các web site khác.
RSS cho phép duyệt các thông tin nhanh chóng hơn và sẵn sàng được cập nhật
2.1.1 Tổng quan
RSS - viết tắt của “Really Simple Syndication” hay "Rich Site Summary" hoặc
"RDF Site Summary" - là một định dạng tổng hợp tin tức do hãng NetScape phát triển
năm 1999 và được dùng phổ biến trong việc thông báo cho độc giả về các tin bài mới cập
nhật ở website cá nhân và trang web của các hãng truyền thông.
2.1.2 Chức năng và ứng dụng
Gần đây, sử dụng RSS trên web trở thành một hiện tượng thực sự. Trong những
ngày đầu phát triển của web, các trang web cũng được liên kết với nhau song dữ liệu giữa
chúng thì thực sự hiếm khi được chia sẻ. Hiển nhiên, quan niệm đã thay đổi theo thời
gian. Các trang web sử dụng RSS tăng lên nhanh chóng với những lý do rõ ràng và hợp
lý.
Nguyễn Mạnh Hùng, Nguyễn Việt Hưng - ĐT 12, K46 Trang 14
Báo cáo tốt nghiệp RSS Reader với Webservice và AJAX
- Blogs. Weblog (hay gọi tắt là Blog) bắt đầu xuất hiện và bùng nổ trong đa số
người dùng Internet từ cách đây khoảng một đến hai năm. Blog cho phép người dùng, cá
nhân hoặc nhóm, có thể đưa thông tin lên mạng với mọi chủng loại chủ đề, thông thường
là có liên quan tới kinh nghiệm hoặc ý kiến cá nhân. Người sử dụng có thể sử dụng RSS
khi tạo ra các blog để việc cập nhật các tệp blog trở nên dễ dàng hơn và giúp người đọc
có thể nhận thấy sự thay đổi.
- Chia sẻ thông tin diện rộng.
- Tập hợp thông tin.
2.1.3 Lịch sử
RSS có hai phiên bản: RSS 1.0 tuân thủ chuẩn RDF của Tổ chức chuẩn web quốc
tế W3C, được phát hành năm 2000. RSS 2.0 được trường luật Harvard (Mỹ) phát hành
năm 2003 dựa trên các bản 0.90 và 0.91 của NetScape. Atom là phiên bản sau của RSS
2.0. Lịch sử phát triển RSS được minh họa trên hình 2.1.

Hình 2.1. Lịch sử phát triển của RSS
 Nhánh RDF, or RSS 1.* :
 RSS 0.90 RDF Site Summary.
 RSS 1.0 và 1.1. RSS 1.0 có format giống như RSS 0.90,nhưng chúng không
tương thích với nhau.
 Nhánh RSS 2.* :
 RSS 0.91 là một phiên bản nhằm làm đơn giản cú pháp của RSS, vì vậy gọi
là Rich Site Summary, nó không còn dạng format RDF nữa.
 Từ RSS 0.92 tới 0.94 là sự phát triển của RSS 0.91 nhưng không tương
thích với RSS 0.90.
 RSS 2.0 không có gì đổi mới nhiều lắm, nhưng vẫn được update lên không
lâu sau khi xuất bản RSS 0.92. RSS bây giò được hiểu theo nghĩa Really
Simple Syndication.
 ATOM
Nguyễn Mạnh Hùng, Nguyễn Việt Hưng - ĐT 12, K46 Trang 15
Báo cáo tốt nghiệp RSS Reader với Webservice và AJAX
2.1.4 Cách sử dụng
RSS được dùng phổ biến bởi cộng đồng web blog để chia sẻ những tiêu đề tin tức
mới nhất hay toàn bộ nội dung của nó, và ngay cả các tập tin đa phương tiện đính kèm.
(Xem podcasting, vodcasting, broadcasting, screencasting, Vloging, và MP3 blogs.) Vào
giữa năm 2000, việc sử dụng RSS trở nên phổ dụng đối với hãng tin tức lớn, bao gồm
Reuters, CNN, và BBC. Những nhà cung cấp tin này cho phép các website khác tổng hợp
những tiêu đề tin tức "được chia sẻ" hay cung cấp các tóm tắt ngắn gọn của các bản tin
chính dưới nhiều hình thức thỏa hiệp khác nhau. RSS ngày nay được dùng cho nhiều mục
đích, bao gồm tiếp thị, báo cáo lỗi (bug-reports), hay các hoạt động khác bao gồm cập
nhật hay xuất bản định kì.
Một chương trình gọi là một feed reader hay aggregator có thể kiểm tra xem một
website có hỗ trợ RSS cho người dùng không và, nếu có, hiển thị những bài viết cập nhật
nhất mà nó tìm thấy từ website đó. Ngày nay có thể tìm thấy RSS feeds trên rất nhiều
Web sites lớn nhỏ.

Các công cụ đọc tin phía khách và công cụ aggregators thường được xây dựng thành một
chương trình độc lập hoặc là một phần mở rộng của các chương trình có sẵn như trình
duyệt web. Những chương trình như vậy có mặt trên nhiều hệ điều hành khác nhau.
Trên các trang web, RSS feeds thường được liên kết bằng một hình chữ nhật màu
cam , có thể kèm theo các kí tự XML hay RSS
2.1.5 Mô tả chi tiết
RSS là một định dạng dựa trên ngôn ngữ XML làm cho việc chia sẻ nội dung, hay
còn gọi là nguồn RSS, giữa các website trở nên đơn giản hơn. Tất cả các tệp RSS đều
hoạt động tuân theo các đặc tả của XML 1.0. Một số người đọc RSS là Really Simple
Syndication (Chia sẻ thông tin thực sự đơn giản) hoặc RDF Site Summary (Tóm lược
website theo định dạng RDF).
Thông thường, có thể bạn sẽ khó có thể tìm thêm gì trong nguồn RSS ngoài một danh
sách khoản mục hoặc nội dung. RSS thường được sử dụng trong việc chia sẻ các đầu mục
tin, tuy nhiên nó có thể ứng dụng trên hầu hết các dạng nội dung web. RSS tạo cho người
quản lý web (webmaster) khả năng tự động cập nhật trong những phần nhất định của site.
Hầu hết các trang web lớn và uy tín đều sử dụng RSS, trong đó bao gồm CNN, Forbes và
Motley Fool.
Đặc tả kỹ thuật
Chúng ta sẽ xem xét 2 ví dụ về rss 2.0 và Atom để thấy rõ đặc điểm kỹ thuật và
qua đó thấy được sự khác biệt của rss version và atom version
RSS 2.0
<?xml version="1.0" encoding="utf-8"?>
<rss version="2">
<channel>
Nguyễn Mạnh Hùng, Nguyễn Việt Hưng - ĐT 12, K46 Trang 16
Báo cáo tốt nghiệp RSS Reader với Webservice và AJAX
<title>Example Feed</title>
<description>Insert witty or insightful remark here</description>
<link> /> <lastBuildDate>Sat, 13 Dec 2003 18:30:02 GMT</lastBuildDate>
<managingEditor> (John Doe)</managingEditor>

<item>
<title>Atom-Powered Robots Run Amok</title>
<link> /> <guid isPermaLink="false">urn:uuid:1225c695-cfb8-4ebb-aaaa-
80da344efa6a</guid>
<pubDate>Sat, 13 Dec 2003 18:30:02 GMT</pubDate>
<description>Some text.</description>
</item>
</channel>
</rss>
ATOM 1.0
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns=" /> <title>Example Feed</title>
<subtitle>Insert witty or insightful remark here</subtitle>
<link href=" /> <updated>2003-12-13T18:30:02Z</updated>
<author>
<name>John Doe</name>
<email></email>
</author>
<id>urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6</id>
<entry>
<title>Atom-Powered Robots Run Amok</title>
<link href=" /> <id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id>
<updated>2003-12-13T18:30:02Z</updated>
<summary>Some text.</summary>
</entry>
</feed>
Bảng so sánh chi tiết
RSS ATOM Mô tả
rss -
Nhận dạng

channel feed
Root tag
Title Title
Tên của channel
Nguyễn Mạnh Hùng, Nguyễn Việt Hưng - ĐT 12, K46 Trang 17
Báo cáo tốt nghiệp RSS Reader với Webservice và AJAX
Link Link
URL của HTML website tương ứng
với channel.
Description Subtitle
Mô tả chung về channel
Language xml:lang attribute
Ngôn ngữ xuất bản
Copyright Right
Bản quyền tác giả
webmaster -
Email cua người chịu trách nhiệm về
kỹ thuật
managingEditor Author contributor
Email cua người chịu trách nhiệm về
nội dung
pubDate Published(trong entry)
Ngày xuất bản nội dung cua channel
lastBuilDate(trong
channel)
Update
Ngày gần nhất nội dung được thay đổi
Category category
Phân loại channel
Generator Generator

Chỉ ra chương trình tạo ra bản tin
Docs -
Link tới trang mô tả cú pháp được sử
dụng
Image Logo
Địa chỉ của ảnh hiển thị trong channel
Item Entry
Trong một channel hoặc feed có chứa
nhiều item hoặc entry – các mẩu tin
Author Author
Email của tác giả mẩu tin
- Contributor
Description Summary/content
Nội dung vắn tắt cảu mẩu tin
Comment -
Link tới trang chú giải liên quan của
mẩu tin
Enclosure -
Mô tả các đối tượng media được gắn
kèm
Guid Id
Là một chuỗi kí tự nhanạ dạng item
Source Source
Chỉ ra kênh rss mà chứa item
Hình 2.2. Bảng so sánh giữa RSS2.0 và Atom 1.0
2.2 WEB SERVICE
2.2.1 Tổng quan
Chúng ta hãy tìm hiểu sự phát triển của các hệ thống mạng và dịch vụ máy tính
qua các thời kì khác nhau để hiểu hơn về web service (dịch vụ trên web).Đầu tiên là kiến
trúc thành phần(COM-Component Architure). Các component được xây dựng như là

các khối chức năng độc lập, sau đó các ứng dụng (application) sử dùng các thành phần đó
như là các function bằng cách truyền tham số vào và nhận được kết quả trả về.
Nguyễn Mạnh Hùng, Nguyễn Việt Hưng - ĐT 12, K46 Trang 18
Bắt buộc
Không bắt buộc
Báo cáo tốt nghiệp RSS Reader với Webservice và AJAX
Kiến trúc là đi cùng với mô hình ứng dụng đơn chiếc (stand alone application).
Trong đó, các ứng dụng chạy trên một máy, truy cập và lưu trữ dữ liệu trên chính máy
đó.
Đến khi, nhu cầu kết nối giữa các máy tính yêu cầu phải có sự trao đổi, và tương
tác giữa các máy tính với nhau, mô hình Máy khách- Chủ xuất hiện (Client – Server).
Khi này, dữ liệu được lưu trên máy chủ, và các máy khách tương tác với máy chủ. Đến
lúc này, vấn đề được đặt ra là tốc độ xử lý của máy chủ và số lượng máy khách truy vấn
đến máy chủ. Khi số lượng máy khách lớn, lớn hơn khả năng xử lý của máy chủ, thì cần
phải phân tán ra, có nhiều máy chủ hơn (việc phân chia theo đúng nghĩa cả về mặt logic
và mặt địa lý) và đây chính là mô hình phân tán (distribute computing).
Mô hình phân tán được phát triển bởi các hãng lớn như OMG0 với CORBA,
Microsoft với DCOM và SUN với RMI, và sử dụng CORBA cho các hệ thống lớn.
Tuy nhiên, với sự phát triển như vũ bão của web site, người ta gần như chuyển mọi thứ
có thể được lên web site thì các ứng dụng trên web thật sự cần được phát triển để đáp ứng
được các nhu cầu ngày càng cao của người sử dụng. Đó là bảo mật, ổn định và tốc độ.
Đây là mô hình về một ứng dụng web cơ bản.
Hình 2.3. Mô hình kiến trúc dịch vụ
Trong đó, những đối tượng sử dụng và tương tác với web bây giờ ngoài máy tính,
laptop thông thường, còn có mặt cả các thiết bị cầm tay như PDA, Pocket PC, hay điện
thoại di động. Chính vì sự đa dạng về tiện ích này, nhu cầu sử dụng các dịch vụ được viết
sẵn trên mạng, để các ứng dụng khi cần đến, chỉ việc gọi tới, truyền tham số và thu lại kết
quả (gần giống như mô hình COM) đã sinh ra. điều này vừa giúp xây dựng được các ứng
dụng ngày càng phức tạp hơn, với thời gian ít hơn, nhưng hệ thống vẫn hoạt động ổn định
và mạnh mẽ hơn. Và đây chính là phác thảo đầu tiên về công nghệ WEB SERVICE.

Web Services là các chương trình thành phần cho phép bạn xây dựng các ứng dụng một
cách khả chuyển, dễ dàng và độc lập nền tảng hệ thống. XML Web Services cho phép
Nguyễn Mạnh Hùng, Nguyễn Việt Hưng - ĐT 12, K46 Trang 19
Services Offered
e-mail, browsing, searching the net, chat
applications
Devices Used to Access the Web
Báo cáo tốt nghiệp RSS Reader với Webservice và AJAX
các ứng dụng khác nhau trao đổi thông điệp bằng cách sử dụng các giao thức chuẩn như
là HTTP, XML, XSD, SOAP, và Web Services Description Language (WSDL).
2.2.2 Định nghĩa Web Service
“A software system designed to support interoperable machine-to-machine interaction over a
network. It has an interface described in a machine-processable format (specifically WSDL).
Other systems interact with the Web service in a manner prescribed by its description using
SOAP-messages, typically conveyed using HTTP with an XML serialization in conjunction with
other Web-related standards.”
Theo định nghĩa của W3C – thì chúng ta có cái nhìn toàn diện về web service : Đó là một
hệ thống các dịch vụ nhằm phục vụ cho việc tương tác giữa các máy tính - ứng dụng
thông qua mạng Internet. Nó có một giao diện để mô tả và các hệ thống khác phải tương
tác theo một cách thức đã được định trước( đã được mô tả) đó là dung XML để đồng bộ
dữ liêu, sử dụng SOAP message và thông qua giao thức HTTP. Đây là những công nghệ
chuẩn cho mọi ứng dụng web.
Theo một cách giải thích khác:
Web service là một khái niệm bao gồm các dịch vụ được cung cấp trên mạng
(computer network:LAN, WAN, Intranet, Internet) . Thực chất, chúng là những function
cụ thể để thực thi những chức năng phổ biến trong các ứng dụng hoặc các chức năng
riêng do các nhà cung cấp (provider) xuất bản(public) trên mạng để giúp cho lập trình
viên đơn giản hơn trong việc viết code và xây dựng phần mềm, họ chỉ việc tìm kiếm, hiểu
được nhiệm vụ của service đó, truyền tham số(parameter) vào và nhận kết quả trả về.
Vậy chúng ta có thể hiểu web service nghĩa là các dịch vụ được đặt tại một nơi nào đó

trên mạng, có thể được truy cập và tương tác với các ứng dụng khác, mà không phụ thuộc
vào hệ điều hành, nền tảng hay ngôn ngữ lập trình, công cụ thông qua các giao thức
chuẩn trên Internet như HTTP, SMTP, và dựa trên ngôn ngữ đặc tả dữ liệu XML.
Mô hình web service như hình 2.4:
Hình 2.4. Mô hình quan hệ của Web Service
Trong đó:
Nguyễn Mạnh Hùng, Nguyễn Việt Hưng - ĐT 12, K46 Trang 20
Báo cáo tốt nghiệp RSS Reader với Webservice và AJAX
Service Provider(SP): Là những chủ sở hữu của các dịch vụ trên web này, họ là
những người tạo ra, và có quyền quản lý sự hoạt động của dịch vụ này, cũng như đặt ra
các phương thức truy cập tới dịch vụ, và kiểm tra tính hợp pháp của người sử dụng dịch
cụ này. Sau khi tạo ra dịch vụ, họ phải đăng kí các thông tin về dịch vụ này lên
SB(UDDI)
Service Broker (SB): Được hiểu như trung tâm môi giới các dịch vụ web service.
Trên đó, có lưu trữ thông tin về các dịch vụ cũng như cách để kết nối tới nó, các thông tin
bao gồm tên dịch vụ, nhà cung cấp, địa chỉ của nhà cung cấp đó, và các thông tin chi tiết
để có thể tương tác và sử dụng dịch vụ đó.
Service Requestor(SR): Được hiểu là người truy vấn tới các dịch vụ đó.
Và đây là cách mà hệ thống hoạt động.
1. Các SP đăng ký và xuất bản thông tin về các dịch vụ với UDDI.
2. Các SR dựa vào các SB để tìm các thông tin về các dịch vụ được đăng kí ở trên UDDI.
3. Sau khi có được thông tin về dịch vụ cần tìm, các SR tương tác trực tiếp tới các SB để
yêu cầu được sử dụng dịch vụ và bắt đầu sử dụng.
2.2.3 Ứng dụng của Web service
Vậy hãy xét tới những đặc điểm mà web service đem lại, để thấy khi có nó, chúng ta sẽ
được lợi ích gì.
Hình 2.5. Các đặc điểm của Web service
Như chúng ta đã nêu ra, mục đích của webserrvice là tạo ra các dịch vụ trên mạng,
để các ứng dụng chạy trên các hệ điều hành khác nhau, sử dụng các ngôn ngữ khác nhau,
có thể truy vấn và sử dụng được. Có nghĩa là giữa các hệ thống khác nhau đó, phải sử

dụng một phương thức báo hiệu chung - một luật, một cách thức liên kết, một định dạng
dữ liệu chung – một ngôn ngữ chuẩn cho việc liên kết này, và phải có những nhưng giao
diện giúp chúng có thể nhìn thấy các chức năng cua nhau, được trình bày lên trên giao
Nguyễn Mạnh Hùng, Nguyễn Việt Hưng - ĐT 12, K46 Trang 21
Sẽ đư ợ c đăng ký
Sử dụng
XML
Sử dụng các giao
thức web chuẩn
Truy cập thông qua web
Web servic
es
Chứa những giao diện
dịch vụ
Được hỗ trợ tính liên kết
dễ dàng giữa các đối
tượng
Tích hợp khả năng kết nối tức
thì
Báo cáo tốt nghiệp RSS Reader với Webservice và AJAX
diện đó. Vậy bài toán đã có lời giải, với XML- ngôn ngữ đặc tả dữ liệu, với tính mở rộng
của XML, chúng ta có giao thức truyền tải dữ liệu giữa các hệ thống- SOAP(Simple
Object Access Protocol) và ngôn ngữ miêu tả dịch vụ, dữ liệu- WSDL(Web Service
Description Language). Trong đó, SOAP quy định các thức truyền dữ liệu- các lời gọi
hàm, các tham số đi kèm, … được mã hóa và định dạng theo XML giữa Client và Server.
Còn WSDL có chức năng mô tả chi tiết về các dịch vụ đó, các danh sách tham số cần
truyền và trả về của các phương thức (method) được định dạng theo XML.
2.2.4 Hoạt động của Web Service
1. Client làm việc với UDDI.
Hình 2.6. Mô hình hoạt động của Web service

Nhìn vào mô hình hoạt động của Web Service trên hình 2.6, ta thấy khi một client
truy cập một dịch vụ UDDI để định vị một dịch vụ XML Web, dịch vụ UDDI trả về một
URL tới tài liệu khám phá (discovery document) của dịch vụ XML Web. Một discovery
document là một file .disco, nó chứa liên kết tới các tài nguyên mô tả một dịch vụ XML
Web. Một file discovery là một tài liệu XML cho phép phát hiện phần chương trình của
một dịch vụ XML Web. Sau khi client nhận được URL thông qua tài liệu discovery,
client yêu cầu tới một server, server trả về tài liệu discovery cho client. Nội dung của một
tài liệu discovery ví dụ được trinh bày trong đoạn mã sau đây.
Nguyễn Mạnh Hùng, Nguyễn Việt Hưng - ĐT 12, K46 Trang 22
Báo cáo tốt nghiệp RSS Reader với Webservice và AJAX
XML
<?xml version="1.0" ?>
<disco:discovery xmlns:disco=" /> xmlns:wsdl=" /> <wsdl:contractRef ref=" />WSDL"/>
</disco:discovery>
Client sử dụng thông tin trong tài liệu discovery và yêu cầu một server trả về sự
mô tả dịch vụ của một dịch vụ XML Web. Sự mô tả dịch vụ này là một file .wsdl và cho
phép một client tương tác cùng với một dịch vụ XML Web.
2. Client làm việc với Server.
Quy trình trong một giao tiếp giữa Client và Webservice Server thể hiện trên hình 2.7
Hình 2.7. Sự tương tác giữa Client và Web service
Tiến trình truyền thông giữa một client và một XML Web service thì giống như là
gọi thủ tục từ xa (Remote Procedure Call - RPC). Client sử dụng một đối tượng đại diện
của XML Web service trên máy tính cục bộ để gọi các phương thức trên XML Web
service.
Phần hiển thị trên Hình 2.7, là sự tương tác giữa một client và một XML Web
service bao gồm một vài phase. Sau đây là các thao tác được thi hành trong suốt các pha
này:
Nguyễn Mạnh Hùng, Nguyễn Việt Hưng - ĐT 12, K46 Trang 23
Báo cáo tốt nghiệp RSS Reader với Webservice và AJAX
a) Client tạo ra một đối tượng của lớp đại diện XML Web service trên cùng máy tính

nơi mà client đang cư trú.
b) Client gọi một phương thức trên đối tượng đại diện.
c) Cơ sở hạ tầng XML Web Services trên hệ thống client chuỗi hoá phương thức gọi
và các tham số vào thông điệp SOAP và gửi nó tới XML Web service thông qua mạng.
d) Cơ sở hạ tầng trên server nơi mà XML Web service cư trú deserializes thông điệp
SOAP và tạo ra một thể hiện của XML Web service. Cơ sở hạ tầng sau đó sẽ gọi phương
thức cùng các đối trên XML Web service.
e) XML Web service thi hành phương thức đó và trả về giá trị cùng với mọi thông
số ra tới cơ sở hạ tầng.
f) Cơ sở hạ tầng chuỗi hoá giá trị trả về và mọi tham số xuất vào một thông điệp
SOAP và gửi chúng tới client thông qua mạng.
g) Cơ sở hạ tầng trên máy tính client deserializes thông điệp SOAP chứa giá trị trả
về và mọi thông số xuất và gửi chúng tới đối tượng đại diện.
h) Đối tượng đại diện gửi giá trị trả về và mọi thông số xuất tới client.
Chúng ta đã tìm hiểu qua về cách mà một web service được truy vấn và triệu gọi. Tiếp
theo, chúng ta sẽ tìm hiểu về những công nghệ hay các cơ sở hạ tầng của web service.
2.2 XML
2.2.1 Tổng quan
XML không phải công nghệ dành riêng cho Web mà được sử dụng trong công
nghệ thông tin nói chung.
XML là ngôn ngữ định dạng(markup language) có phần nào đó rất giống với HTML nếu
mới nhìn qua. XML thường dễ dàng chuyển đổi sang HTML. Một trong những phần
mềm hỗ trợ và áp dụng công nghệ XML ra đời sớm và mạnh nhất đó là trình duyệt IE.
Internet thường được dùng rộng rã như là cách để trao đổi thông tin và XML là điều gì đó
rất lý tưởng cho công việc này.
XML định nghĩa dữ liệu dựa trên các thẻ (tag). Trên thực tế XML có rất ít các thẻ trong
bản thân ngôn ngữ. Thay vào đó, XML đưa ra tập các quy tắc để bạn tự định nghĩa các
thẻ cho riêng mình hoặc sử dụng các thẻ do người khác định nghĩa.
XML rất uyển chuyển, nó bao gồm cả khả năng cho phép bạn tự định nghĩa các
quy tắc thể hiện nội dung tài liệu gọi là DTD (Data Type Definition) Một thay thế khác

cho DTD là lược đồ XML (XML schema).
Về cơ bản, lược đồ XML chỉ là tài liệu XML dùng để định nghĩa các quy tắc áp dụng cho
các tài liệu XML khác. Một tài liệu XML có rất ít các quy tắc áp đặt lên nó. Một quy tắc
quan trọng nhất mà bạn cần nhớ đó là tài liệu XML phải hợp khuôn dạng hay còn gọi là
Nguyễn Mạnh Hùng, Nguyễn Việt Hưng - ĐT 12, K46 Trang 24
Báo cáo tốt nghiệp RSS Reader với Webservice và AJAX
well-formed. Một quy tắc khác tuy không bắt buộc nhưng cũng là một phần quan trọng
của tài liệu XML, đó là quy tắc “hợp lệ” (valid). Hợp lệ và hợp khuôn dạng là hai khái
niệm hoàn toàn khác nhau. Tính hợp lệ thể hiện ở chỗ các thẻ XML phải tuân thủ theo
khai báo DTD hay lược đồ Schema trong khi hợp khuôn dạng lại tập trung vào cú pháp
định nghĩa của thẻ, ví dụ như thẻ mở phải có thẻ đóng, các thẻ không được lồng chéo
nhau
Tài liệu XML có thể được chuyển đổi sang khuôn dạng khác. Hình thức chuyển
đổi thường sử dụng nhất là biến dữ liệu và định nghĩa thẻ trong tài liệu XML thành cú
pháp thể hiện của HTML. Theo cách hiểu đơn giản và dễ hình dung nhất XML chứa
thông tin còn HTML dùng hiển thị hay trình bày thông tin thành giao diện trực quan phục
vụ người dùng.
XML có thể lưu thông tin ở dạng thẻ mà cụ thể là dựa vào hai thành tố chính đó là: phần
tử (element) và thuộc tính (attribute). Phần tử thường hình thành bởi một cặp bao gồm thẻ
mở (open tag) và thẻ đóng (close tag), trừ ngoại lệ phần tử rỗng thì không cần thẻ đóng.
Ví dụ <customer> </customer> là một phần tử vì nó bao gồm thẻ mở <customer> và thẻ
đóng </customer>. Thẻ đóng có tên giống như thẻ mở nhưng bắt đầu bằng cặp ký tự </.
2.2.2 Cấu trúc của tài liệu XML
Có một số quy định cho tài liệu XML như tài liệu XML cần phải có phần đầu,
phần thân, phần khai báo Tuy nhiên, hầu hết các phần hình thành nên cấu trúc của tài
liệu XML là tuỳ chọn. Một số phần trong tài liệu XML có thể độc lập và khong phụ
thuộc lẫn nhau.
Một số thuật ngữ quan trọng dành cho XML:
- Tài liệu (document): tài liệu chính là tất cả những ký tự có bên trong file XML.
Khi đề cập đến tài liệu XML chúng ta muốn nói đến cả phần nội dung và cấu trúc

của nó.
- Khai báo (declaration): Khai báo là tuỳ chọn. Nếu tài liệu XML chứa khai báo, nó
phải được đặt ở ngay đầu của tài liệu. Trước phần khai báo không được chứa bất
kỳ nội dung nào khác kể cả khoảng trắng, ký tự tab, enter không được có thứ gì
khác. Khai báo được hình thành bởi thẻ đặc biệt. Thẻ này bắt đầu bằng ký tự “?”
và từ xml. Đây là chỉ thị tiền xử lý để các bộ xử lý và phân tích XML nhận dạng ra
tài liệu. Ví dụ sau là một khai báo:
<?xml version=”1.0”>
- Phần tử (element): Phần tử là mẫu thông tin được đánh dấu bằng một thẻ nào đó.
Mẫu thông tin được đánh dấu bằng các thẻ của phần tử. Thẻ mở của phần tử đánh
dấu nơi bắt đầu của mẫu thông tin và thẻ đóng đánh dấu nơi kết thúc.
Một phần tử thông thường có 2 thẻ (thẻ mở và thẻ đóng) tuy nhiên cũng có thể chỉ
bao gồm một thẻ duy nhất với dấu kết thẻ là />. Những phần tử chỉ có một thẻ gọi
là phần tử tự đóng hay còn gọi là thẻ rỗng.
Nguyễn Mạnh Hùng, Nguyễn Việt Hưng - ĐT 12, K46 Trang 25

×