Xây dựng ứng dụng RSS Reader sử dụng công nghệ Web Service và AJAX 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.
Trang 1LỜ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 đangkhô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ácthô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ữngphầ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ómsinh viên chúng em đã được chỉ dẫn và định hướng theo hướng nghiên cứu và phát triểncá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 mongnhậ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ệtHươ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ênNguyễn Mạnh Hùng – Nguyễn Việt Hưng
Trang 2Tó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ề WebService 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ệnnay 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ênnề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ềnthống
Ứng dụng chúng em xây dựng là RSS Reader – một công cụ dùng để chia sẻ thôngtin 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ậtthông tin từ nhiều trang Web khác nhau, khi sử dụng RSS Reader thay vì hàng ngày phảitruy 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ầntruy 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óitrong một Web Service nằm tại Web Service Server Phần thứ 2 là phía Web ServiceClient 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ừ WebService Server, sau đó dùng AJAX để hiển thị lên giao diện Hướng phát triển của đồ ántrong 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àocá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 newesttechnologies in developing the Web application nowadays The theory foundation haspaved the way for us to investigate and apply the new technology to pratical, fullyexploiting the advantages of the new modern technology compared with the traditionalone
Our application built in this project is RSS Reader – a tool used to shareinformation 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, allyou need is creating a category of information sources, and RSS will automaticallyupdate to the home page of your application Users will find it as now they have to getaccess to only one site to get information from many others
The application architecture includes two parts: 1 The functions processing ofRSS Reader, is wrapped in a Web Service at Web Service Server 2 The Web ServiceClient, receives requests from users, sends and receives response from Web ServiceServer, then uses AJAX to display In future we want to continue developing ourapplication to become a portal that can intergrate to Web Sites, using as a function of thatWeb site All content will be presented in the project
Trang 3MỤ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 9
1.1.3 SOA (kiến trúc phần mềm hướng dịch vụ) 10
1.1.4 Xu hướng công nghệ Web Service và Asynchronous 12
1.1.5 AJAX 12
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ử 14
2.1.4 Cách sử dụng 15
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 21
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: 25
2.2.4 XSLT 26
2.3 SOAP 31
2.3.1 Tổng quan 31
2.3.2 Cấu trúc SOAP 31
2.3.3 SOAP over HTTP 34
2.4 WSDL 36
2.5 UDDI 39
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? 40
Trang 42.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? 42
2.6.4 Bốn định nghĩa chính của AJAX 44
2.6.6 Các ứng dụng AJAX phổ biến 48
2.7 CÀI ĐẶT APACHE TOMCAT, AXIS2 SERVER 48
2.7.1 Apache Tomcat 48
2.7.2 Apache Axis2 49
CHƯƠNG 3: PHÂN TÍCH HỆ THỐNG 51
3.1 TỔNG QUAN 51
3.1.1 Giới thiệu chung 51
3.1.2 Yêu cầu đặt ra cho ứng dụng 52
3.1.3 Mô hình ứng dụng 52
3.1.4 Kiến trúc ứng dụng 54
3.2 PHÂN CẤP CHỨC NĂNG 55
Sơ đồ phân cấp chức năng liệt kê đầy đủ các chức năng của hệ thống 55
3.3 SƠ ĐỒ MỨC NGỮ CẢNH 56
3.4 SƠ ĐỒ MỨC DƯỚI ĐỈNH 57
CHƯƠNG 4: THIẾT KẾ HỆ THỐNG 63
4.1 THIẾT KẾ GÓI CHỨC NĂNG 63
4.1.1 Thư viện RSS lib 63
4.1.2 Thiết kế package phía web sericvce 63
4.1.3 Thiết kế package phía servlet 64
4.1 THIẾT KẾ GIAO DIỆN NGƯỜI SỬ DỤNG 65
4.2 THIẾT KẾ ĐỊNH DẠNG DỮ LIỆU INPUT/OUTPUT 68
4.3 THIẾT KẾ CƠ SỞ DỮ LIỆU 75
4.3 THIẾT KẾ PHẦN MỀM 77
CHƯƠNG 5: ĐÁNH GIÁ KẾT QUẢ VÀ GIỚI THIỆU SẢN PHẨM 82
5.1 GIỚI THIỆU PHẦN MỀM VÀ HƯỚNG DẪN SỬ DỤNG 82
5.2 ĐÁNH GIÁ KẾT QUẢ 85
5.3 HƯỚNG PHÁT TRIỂN 86
KẾT LUẬN 87
Tài liệu tham khảo 88
Trang 5DANH 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 33
Hình 2.10 Mô hình hoạt động của SOAP 36
Hình 2.11 Mô hình hoạt động của WSDL 37
Hình 2.12 Cấu trúc hoạt động của WSDL 39
Hình 2.13 Vai trò của UDDI 39
Hình 2.14 Cách đăng ký với UDDI 40
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 41
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 45
Hình 2.20 Vòng đời của ứng dụng Ajax 45
Hình 2.21 Hoạt động của AJAX 46
Hình 2.22 Minh họa cách tổ chức thư mục của Apache Tomcat 49
Hình 2.23 Minh họa cách tổ chức thư mục của apache web service 50
Hình 3.1 Các ứng dụng Rss Reader thông thường 51
Hình 3.2 Ứng dụng RSS Reader with Web service 52
Hình 3.3 Mô hình luồng thông tin của ứng dụng 53
Hình 3.4 Mô hình kiến trúc của ứng dụng 54
Hình 3.5 Sơ đồ phân cấp chức năng (Function Diagram) 55
Hình 3.6 Sơ đồ luồng dữ liệu mức ngữ cảnh 56
Hình 3.7 Sơ đồ luồng dữ liệu mức 0 57
Hình 3.8 DFD Function 1 58
Hình 3.9 DFD (Function 2) 59
Hình 4.1 Giao diện chính của ứng dụng 65
Hình 4.2 Category của RSS hiển thị dưới dạng TreeView 65
Hình 4.3 Giao diện hiển thị Feed 66
Hình 4.4 Giao diện thực hiện thêm 1 feed mới 67
Hình 4.5 Giao diện thực hiện thêm 1 folder mới 67
Hình 4.6 Bảng tbl_Category 75
Trang 6Hình 4.7 Bảng tbl_Feed 75
Hình 4.8 Sơ đồ thực thể liên kết (ERD) 76
Hình 4.9 Lưu đồ thuật toán phần Web Service Client 77
Hình 4.10 Lưu đồ thuật toán phần Web Service Server 78
Hình 5.1 Giao diện chương trình 82
Hình 5.2 Category của RSS hiển thị dưới dạng TreeView 82
Hình 5.3 Giao diện hiển thị Feed 83
Hình 5.4 Giao diện xác nhật xóa 1 Feed 83
Hình 5.5 Giao diện xác nhật xóa 1 Folder 84
Hình 5.6 Giao diện thêm 1 Feed mới 84
Hình 5.7 Giao diện thêm 1 Folder mới 85
Trang 7DANH SÁCH CÁC TỪ VIẾT TẮT
Architecture
Kiến trúc phần mềmhướng dịch vụ
Language Transform Ngôn ngữ viết theo cúpháp XML cho phép
chuyển dịch tài liệu XMLsang một khuôn dạng
khác
Protocol thông tin giữa WebServer1 giao thức để truyền
và Client trong công nghệ
WebService
Description Language
1 giao thức để truyềnthông tin giữa WebServer
và Client trong công nghệ
WebService
Discovery andIntegration
1 giao thức để truyềnthông tin giữa WebServer
và Client trong công nghệ
WebService
Trang 8TÓ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
Trang 9CHƯƠ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ôngthể 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à 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ờigian, 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, hayphả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ụngcô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ấtnhiề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 đangngà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ạnweb 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ôngtin hiệu quả Khi bổ sung World Wide Web (năm 1990), Tim Berners-Lee cũng nhằm
Trang 10mụ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ácmụ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ếpcậ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ệnchia 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 (hayweblog), 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ơnvớ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ườidù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âydự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ặtchẽ 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ớinhau, 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ôngtin 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ảithí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 tradanh 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ôngbá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ựchiệ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ểnthị 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
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 Webtruyề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ượtkhỏ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ềmmớ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, đâycũ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áttriể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ămqua, 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
Trang 11vẫ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úctruyề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ênmô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ốngphầ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 chiphí, 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ựcnặ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 RequestBroker 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ạngtrong kiến trúc phần mềm
SOA - Service Oriented Architecture (Kiến trúc Định hướng Dịch vụ), theo địnhnghĩ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ậphợ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 quitrì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
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 ứngdụ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úctươ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ếttậ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 đổitươ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ẩnhó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ênnề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ếtvới dịch vụ web NET và ngược lại)
Trang 12SOA dựa trên 2 nguyên tắc thiết kế quan trọng:
đã đề 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ềuhã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ónghơ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ầnmề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ự đadạ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ềntnả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 – ServiceOriented Architecture – kiến trúc hướng dịch vụ Mỗi ứng dụng đều là một 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ẩnchung: 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ềnthố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úptă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ìmthấ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ềntả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
Trang 13Jesse 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 Webtruyền thống chưa thực hiện được Google và một vài đại gia khác đã sử dụng AJAXnhằ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êncứ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ựatrê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ôngnghệ 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ằmmụ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 (ServiceOriented 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ềnthố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ốthơ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ườiphá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ồmNguyễ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ựngWebService 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 tindạ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ácnhân hay tổ chức)
- Xây dựng một ứng dụng Web Service Client – Servlet server, để sử dụng các chứcnă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ànhmộ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ủaWebsite đó
Trang 14CHƯƠ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 trungnghiê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ầnthiết như Apache Tomcat Server, Axis2 để sau đó bắt tay vào viết sản phẩm
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ểnnă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ậpnhậ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ữngngà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ữachúng thì thực sự hiếm khi được chia sẻ Hiển nhiên, quan niệm đã thay đổi theo thờigian 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ợplý
- 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 RSSkhi 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ànhnă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 RSS2.0 Lịch sử phát triển RSS được minh họa trên hình 2.1
Trang 15 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ươngthí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ônglâu sau khi xuất bản RSS 0.92 RSS bây giò được hiểu theo nghĩa ReallySimple Syndication
ATOM
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ứcmớ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àogiữ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ồmReuters, CNN, và BBC Những nhà cung cấp tin này cho phép các website khác tổng hợpnhữ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 tinchí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ậpnhậ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ộtwebsite 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ậtnhấ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ềuWeb sites lớn nhỏ
Trang 16Cá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ộtchươ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ìnhduyệ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àucam , 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, haycò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 đềuhoạt động tuân theo các đặc tả của XML 1.0 Một số người đọc RSS là Really SimpleSyndication (Chia sẻ thông tin thực sự đơn giản) hoặc RDF Site Summary (Tóm lượcwebsite 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 danhsá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ụctin, 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ườiquả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
<lastBuildDate>Sat, 13 Dec 2003 18:30:02 GMT</lastBuildDate>
<managingEditor>johndoe@example.com (John Doe)</managingEditor>
Trang 17Link 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
kỹ thuậtmanagingEditor Author contributor Email cua người chịu trách nhiệm về
nội dungpubDate 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
Generator Generator Chỉ ra chương trình tạo ra bản tin
Trang 18Docs - 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
nhiều item hoặc entry – các mẩu tin
Description Summary/content Nội dung vắn tắt cảu mẩu tin
mẩu tin
kèmGuid Id Là một chuỗi kí tự nhanạ dạng 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ề
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ủ Đếnlú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ầnphả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
Bắt buộcKhông bắt buộc
Trang 19Tuy 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ệnthoạ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ếtsẵ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ếtquả (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 ứngdụ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ộtcách khả chuyển, dễ dàng và độc lập nền tảng hệ thống XML Web Services cho phépcá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ụngthô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
Trang 20tá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ăngriêng do các nhà cung cấp (provider) xuất bản(public) trên mạng để giúp cho lập trìnhviê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ậychú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ênmạ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ẩntrê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 đó:
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 racá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ênSB(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 tinbao 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
Trang 212 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 giaodiệ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 giaodiệ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ộngcủa XML, chúng ta có giao thức truyền tải dữ liệu giữa các hệ thống- SOAP(SimpleObject Access Protocol) và ngôn ngữ miêu tả dịch vụ, dữ liệu- WSDL(Web ServiceDescription Language) Trong đó, SOAP quy định các thức truyền dữ liệu- các lời gọihà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ầntruyề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
Sẽ được đăng ký
Sử dụng
XML
Sử dụng các giao
Trang 22Hì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 clienttruy cập một dịch vụ UDDI để định vị một dịch vụ XML Web, dịch vụ UDDI trả về mộtURL tới tài liệu khám phá (discovery document) của dịch vụ XML Web Một discoverydocument 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ụ XMLWeb 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ủamộ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ộttài liệu discovery ví dụ được trinh bày trong đoạn mã sau đây
</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à chophé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
Trang 23Hì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ệncủa XML Web service trên máy tính cục bộ để gọi các phương thức trên XML Webservice
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 Webservice 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 phanày:
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ínhnơ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ệpSOAP và tạo ra một thể hiện của XML Web service Cơ sở hạ tầng sau đó sẽ gọi phươngthứ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
Trang 24f) 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ệpSOAP 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ếptheo, 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
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 chocá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à 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
Trang 25XML 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ộclẫ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 ratà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
Trang 26Ở đây tài liệu XML chỉ có thẻ “root” Trong thực tế, tài liệu cần thể hiện một thông tin nào đó:
XSLT (viết tắt của Extensible Stylesheet Language Transformations) là một ngôn
ngữ dựa trên XML dùng để biến đổi các tài liệu XML Tài liệu gốc thì không bị thay đổi;
mà thay vào đó, một tài liệu XML mới được tạo ra dựa trên nội dung của tài liệu cũ Tàiliệu mới có thể là có định dạng XML hay là một định dạng nào đó khác, như HTML hayvăn bản thuần XSLT thường dùng nhất trong việc chuyển đổi dữ liệu giữa các lược đồXML hay để chuyển đổi dữ liệu XML thành các trang web hay tài liệu dạng PDF
Trang 27XSLT ra đời là kết quả của các nỗ lực phát triển Extensible Stylesheet Language
(XSL) của W3C trong suốt 1998-1999, cùng với sự ra đời của XSL Formatting Objects
(XSL-FO) và XML Path Language, XPath.
Người biên tập cho phiên bản đầu tiên (nhà thiết kế chính của ngôn ngữ) là JamesClark Phiên bản dùng phổ biến hiện nay là XSLT 1.0, là chuẩn gợi ý dùng đưa ra bởiW3C vào ngày 16 tháng 11 năm 1999 Với nhiều mở rộng từ phiên bản 2.0, dưới sự chủ
trì biên tập của Michael Kay, XSLT đã đạt đến chuẩn Candidate Recommendation từ
W3C vào 3 tháng 11 năm 2005
Để rõ hơn, ta xét 2 ví dụ cụ thể
Ví dụ 1: Chuyển đổi từ dạng XML này sang dạng XML khác:
Chuyển đổi văn bản XML dưới đây:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes"/>
Trang 29h1 { padding: 10px; padding-width: 100%; background-color: silver }
td, th { width: 40%; border: 1px solid silver; padding: 10px }
td:first-child, th:first-child { width: 20% }
<! Create variable for 'url', as it's used twice >
<xsl:variable name="url" select=
"normalize-space(concat('http://', normalize-space(node()), '.', local-name( )))"/>
<tr>
<td><xsl:value-of select="node()"/></td>
<td><a href="{$url}"><xsl:value-of select="$url"/></a></td>
<xsl:apply-templates select="use"/>
Trang 30h1 { padding: 10px; padding-width: 100%; background-color: silver }
td, th { width: 40%; border: 1px solid silver; padding: 10px }
td:first-child, th:first-child { width: 20% }
table { width: 650px }
</style>
</head>
<body>
<h1>Sun Microsystems Inc.</h1>
<p>The following host names are currently in use at <strong>sun.com</strong></p>
Trang 31<h1>The World Wide Web Consortium</h1>
<p>The following host names are currently in use at <strong>w3.org</strong></p>
2.3.2 Cấu trúc SOAP
Bản chất thì cấu trúc của môt SOAP message cũng chính là format của XMLdocument, nhưng với các thẻ (tag) đã được định nghĩa thành các chuẩn do các nhà sánglập ra quy định
Hình 2.8 sau đây là sơ đồ cấu trúc của một SOAP message
Trang 32Hình 2.8 Cấu trúc một SOAP Message
Chúng ta có thể hình dung trong SOAP Message thì SOAP Envelop là lớn nhất,bao bọc SOAP Header và SOAP Body
SOAP Envenlop: Mỗi SOAP Message có duy nhất một thẻ Envelop, là thẻ gốc,
bao bọc các thành phần ở bên trong nó, gồm có header và body Soap không sử dụngphiên bản trực tiếp kiểu như XML và HTTP 1.0 hay 1.1, mà SOAP dùng XMLnamespace của các phiên bản XML khác nhau để phân biệt
SOAP Header: Đây là phần có thể có hoặc không Khi có, nó trở thành một thực
thể phần đầu (header entity), chứa các thông tin về giao thức sử dụng, về target file, host,version, về các thôg số của XML ví dụ:
Trang 33Post /imefamily/CreditCard.asmx HTTP/1.1
Host: www.iefamily.com
SOAP Body: SOAP Body bao gồm payload của message, bao gồm các thẻ mà
định nghĩa tên các method được triệu gọi, các tham số (input parameter) và các kết quả(result) được trả về Trong SOAP body, ta thường phân biệt 2 loại, đó là SOAP Request
và SOAP Response Khi Cilent gửi tới một thông điệp( SOAP Message), trong SOAPbody của thông điệp này, có chứa method cần gọi và dữ liệu đi kèm, đây chính là SOAPRequest Khi Server xử lý xong, trả về cho Client, cũng dưới dạng một thông điệp (SOAPMessage) thì SOAP này gọi là SOAP Response, có chứa method và kết quả trả về
SOAP sử dụng 2 cách để tương tác vói nhau, đó là RPC Style – Remot ProcedureCall Style và Document Style
Hình 2.9 dưới đây mô tả cấu trúc của SOAP khi dùng chúng
Hình 2.9 Cấu trúc SOAP Request và SOAP Response của 2 kiểu web service
Trang 34Document - Style
Ở dạng này, 2 bên đã đạt được thỏa thuận về cấu trúc của các đối tượng phức tạpđược truyền, vì vậy dữ liệu trong SOAP body là một dạng XML document, trong có cácgiá trị mô tả tên hàm, giá trị đầu vào (input parameter), việc lấy ra các giá trị này là tráchnhiệm của các ứng dụng SOAP có trách nhiệm gửi xmlDocument này tới địa chỉ được
mô tả trong header
Tóm lại, chúng ta có thể hình dung một SOAP document đơn giản phải như sau:
//start header- có thể tùy chọn : có/ không
<soap: Envelop …….khai báo namespace >
<soap: Body … khai báo namespace, target…>
<method khai báo ở đây>
<tham số>tham số</tham số>
Sau đây là một ví dụ mô tả SOAP và HTTP ràng buộc với nhau như thế nào thong quaSOAP Request và SOAP Response
SOAP Request
Trang 35<ns1:echoReturn xsi:type="xsd:int">13</ns1:echoReturn>
</ns1:echoResponse>
</soapenv:Body>
Trang 36Một lợi thế của SOAP là nó là một giao thức truyền tải trung tính Chúng ta có thể dùngSOAP thông qua bất cứ giao thức nào đang hiện hữu Bởi vì sự tồn tại của HTTP ở khắp nơi nênSOAP bây giờ chỉ ràng buộc với HTTP, nhưng trong tương lai SOAP có thể cộng tác với cácgiao thức khác
Chúng ta cùng xem xét chi tiết một quy trình hoạt động của SOAP
Hình 2.10 Mô hình hoạt động của SOAP
1 Một tài liệu truy vấn SOAP (SOAP request document) được tạo ra tại SOAP Client
Nó bao gồm các tham số theo yêu cầu để gọi tới một hàm/phương thức trên SOAPServer
2 Tài liệu này được đóng gói vào trong HTTP packet và được truyền qua mạng
3 SOAP Server nhận được SOAP request này, lấy ra SOAP packet và thực thi yêu cầu
4 Kết quả từ quá trình xử lý trên được đóng gói trong SOAP envelop, đây là tài liệu phảnhồi lại
5 Tài liệu SOAP response được đóng vào trong HTTP packet và truyền qua mạng về choClient
6 SOAP Client sau đó đọc tài liệu phản hồi lại này(tách ra từ HTTP packet), và quy trình
đã hoàn thành
2.4 WSDL
WSDL - Web Service Description Language: là một dạng cú pháp XML sử dụng
để miêu tả một dịch vụ web cụ thể, trong đó có các chức năng của dịch vụ (các method)được trưng bày ra, như là các giao diện, với các thành phần, đối số và kiểu dữ liệu để lập
SOAP Client
SOAP Server
Network
HTTP Packet
1
4
5 6
2
Request
Document
HTTP Packet
Trang 37trình viên, dựa vào đó để có thể tương tác với dịch vụ này(tạo các mẫu SOAP messagevới các thành phần hợp lệ) WSDL có thể được tạo ra từ các tools có sẵn
WSDL dược chia thành 2 dạng tài liệu con khác nhau, đó là NASSL (NetworkAccessible Service Specification Language) và WDS (Well Define Service)
Trong file WSDL, chúng ta định nghĩa các kiểu thực thi của web service, liên kết cácđịnh nghĩa này với một giao thức mạng và nhóm chúng vào một mesage, để định nghĩamột end-point- được hiểu như địa chỉ, đường dẫn của dịch vụ web đó
Hình 2.11 Mô hình hoạt động của WSDL
<part name="imageInputURL" type="xsd:string" />
<part name="imageOutputFilename" type="xsd:string" />
<part name="flatten" type="xsd:boolean" />
XML file mô tả Web services hoạt động giống như một bản giao kèo giữa Web service consumer và Web service
Trang 38<binding name="ICBinding" type="tns:ICPortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
Chúng ta sẽ xem xét tới một vài thẻ (tag), elements đặc biệt và chức năng của chúng
Message: Chỉ ra cụ thể các message yêu cầu và các message phản hồi(service’s reqest và
service’s response message) Mỗi message được chia nhỏ thành các phần(part)
types: Cơ chế để định nghĩa kiểu dữ liệu được sử dụng trong web service Chúng có thể
được định nghĩa trong các file xsd cụ thể hoặc do user tự định nghĩa
Operation : Định nghĩa khái quát các hành vi được web service hỗ trợ.
PortType: Là tập hợp của các operation.
Port: Một điểm đầu cuối được mô tả bằng sự kết hợp giữa địa chỉ mạng và các giao thức
cũng như các định dạng dữ liệu
Binding: Là danh sách các giao thức cũng như các định dạng dữ liệu cho các portType.
Nó chỉ ra cách mà các operations sẽ truy cập vào các service với các giao thức xác định
Servcice: phần này chỉ ra phương thức cụ thể được cung cấp bởi webservice Nó là tập
hợp của các port
Trang 39Hình 2.12 Cấu trúc hoạt động của WSDL
2.5 UDDI
Nếu một web service được thiết kế và phát triển tốt, nhưng nếu không quảng bá
nó, để mọi người có thể sử dụng thì đó cũng chưa phải là một web service có ích Đó là
lý do ra đời của UDDI Có thể xem UDDI như là diện mạo bên ngoài của web service
Nó là nơi các nhà cung cấp dịch vụ đăng ký, đưa thông tin về web service của họ lên đó,
và cũng là nơi người sử dụng có thể tìm thấy các thông tin về web service họ cần
Hình 2.13 Vai trò của UDDI
Trang 402.5.1 UDDI là gì
UDDI - Universal Description, Discovery and Integration, tức là Mô tả, Khám phá và Hòa nhập.
-Mô tả các dịch vụ mà các doanh nghiệp cung cấp
-Khám phá các doanh nghiệp khác, và có thể trợ giúp lẫn nhau.
-Hợp tác với các doanh nghiệp khác cho việc mở rộng thị trường,…
2.5.2 Đăng ký một Web service với UDDI như thế nào
Các doanh nghiệp khi đăng kí một web service, thông tin về họ và service được chia nhỏthành 3 chủ đề
Trang trắng: Địa chỉ, liên hệ và nhận dạng của doanh nghiệp
Trang vàng: Thông tin về công nghệ dựa trên tiêu chuẩn đã phân loại
Trang xanh:Thông tin kỹ thuật về web service
Hình 2.14 là mô hình đăng kí một web service của các doanh nghiêp
Hình 2.14 Cách đăng ký với UDDI
Hiện này, chỉ có 2 UBR(UDDI Business Registry), đó là Microsoft và IBM
2.5.3 Tìm kiếm một web service trên UDDI như thế nào?
Chúng ta có thể tìm kiếm các thông tin về các web service trên trang http://uddi.org hoặchttp://xmethods.net (hình 2.15)