1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

89 657 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 89
Dung lượng 5,53 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

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 đ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 2

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ề 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 3

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 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 4

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? 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 5

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 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 6

Hì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 7

DANH 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 8

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

Trang 9

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ô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 10

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á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 11

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ú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 12

SOA 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 13

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 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 14

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 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 16

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ộ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 17

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

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 18

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

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 19

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ệ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 20

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ă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 21

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 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 22

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 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 23

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ệ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 24

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ệ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 25

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ộ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 27

XSLT 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 29

h1 { 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 30

h1 { 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 32

Hì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 33

Post /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 34

Document - 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 36

Mộ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 37

trì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 39

Hì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 40

2.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)

Ngày đăng: 03/08/2014, 00:06

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[7] w3schools – xslt Tutorial:http://www.w3schools.com/xsl/xsl_languages.asp[8] w3schools – xml Tutorial:http://www.w3schools.com/xml/default.asp Sách, tạp chí
Tiêu đề: http://www.w3schools.com/xsl/xsl_languages.asp"[8] w3schools – xml Tutorial
[1] O’Reilly – XSLT: Mastering XML Transformations Khác
[3] O’Reilly – Web Services essentials: Distributed Applications with XML-RPC, SOAP, UDDI &amp; WSDL Khác
[4] Eric Newcomer, Greg Lomow - Understanding SOA with Web Services © 2004 Khác
[5] Dave Crane, Eric Pascarello with Darren James - Ajax in Action © 2006 Khác
[6] O’Reilly – Java and SOAP: Building Web Services in Java Khác
[9] Addison_Wesley – Understanding Web Services: XML, WSDL, SOAP, and UDDI Khác
[10] Morgan Kaufmann – Web Services and Service-Oriented Architectures: The Savvy Managers’ Guide @Team Lib Khác
[12] Phạm Hữu Khang, Hoàng Đức Hải - Lập trình ứng dụng chuyên nghiệp SQL Server 2000 toàn tập – Nhà xuất bản Lao động – Xã hội Khác
[13] Nguyễn Phương Lan, Hoàng Đức Hải – Lập trình ứng dụng Web với JSP/ Servlet – Nhà xuất bản Lao động – Xã hội Khác

HÌNH ẢNH LIÊN QUAN

Hình 2.1. Lịch sử phát triển của RSS - Xây dựng ứng dụng RSS Reader sử dụng công nghệ Web Service và AJAX
Hình 2.1. Lịch sử phát triển của RSS (Trang 15)
Hình 2.5. Các đặc điểm của Web service - Xây dựng ứng dụng RSS Reader sử dụng công nghệ Web Service và AJAX
Hình 2.5. Các đặc điểm của Web service (Trang 21)
Hình 2.6. Mô hình hoạt động của Web service - Xây dựng ứng dụng RSS Reader sử dụng công nghệ Web Service và AJAX
Hình 2.6. Mô hình hoạt động của Web service (Trang 22)
Hình 2.7. Sự tương tác giữa Client và Web service - Xây dựng ứng dụng RSS Reader sử dụng công nghệ Web Service và AJAX
Hình 2.7. Sự tương tác giữa Client và Web service (Trang 23)
Hình 2.8 sau đây là sơ đồ cấu trúc của một SOAP message - Xây dựng ứng dụng RSS Reader sử dụng công nghệ Web Service và AJAX
Hình 2.8 sau đây là sơ đồ cấu trúc của một SOAP message (Trang 32)
Hình 2.9. Cấu trúc SOAP Request và SOAP Response của 2 kiểu web service - Xây dựng ứng dụng RSS Reader sử dụng công nghệ Web Service và AJAX
Hình 2.9. Cấu trúc SOAP Request và SOAP Response của 2 kiểu web service (Trang 34)
Hình 2.10. Mô hình hoạt động của SOAP - Xây dựng ứng dụng RSS Reader sử dụng công nghệ Web Service và AJAX
Hình 2.10. Mô hình hoạt động của SOAP (Trang 37)
Hình 2.11. Mô hình hoạt động của WSDL - Xây dựng ứng dụng RSS Reader sử dụng công nghệ Web Service và AJAX
Hình 2.11. Mô hình hoạt động của WSDL (Trang 38)
Hình 2.12. Cấu trúc hoạt động của WSDL - Xây dựng ứng dụng RSS Reader sử dụng công nghệ Web Service và AJAX
Hình 2.12. Cấu trúc hoạt động của WSDL (Trang 39)
Hình 2.14. Cách đăng ký với UDDI - Xây dựng ứng dụng RSS Reader sử dụng công nghệ Web Service và AJAX
Hình 2.14. Cách đăng ký với UDDI (Trang 41)
Hình 2.15. Giao diện tìm web service của UDDI - Xây dựng ứng dụng RSS Reader sử dụng công nghệ Web Service và AJAX
Hình 2.15. Giao diện tìm web service của UDDI (Trang 41)
Hình 2.16. Kết quả tìm web service - Xây dựng ứng dụng RSS Reader sử dụng công nghệ Web Service và AJAX
Hình 2.16. Kết quả tìm web service (Trang 42)
Hình 2.17 thể hiện sự khác biệt giữa ứng dụng web truyền thống và ứng dụng sử  dụng AJAX - Xây dựng ứng dụng RSS Reader sử dụng công nghệ Web Service và AJAX
Hình 2.17 thể hiện sự khác biệt giữa ứng dụng web truyền thống và ứng dụng sử dụng AJAX (Trang 43)
Hình 2.18 thể hiện phương thức trao đổi dữ liệu bất đồng bộ trong AJAX - Xây dựng ứng dụng RSS Reader sử dụng công nghệ Web Service và AJAX
Hình 2.18 thể hiện phương thức trao đổi dữ liệu bất đồng bộ trong AJAX (Trang 44)
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 - Xây dựng ứng dụng RSS Reader sử dụng công nghệ Web Service và AJAX
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 (Trang 46)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w