`
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Bùi Quang Trung
XÂY DỰNG DỊCH VỤ WEB HỌC TỪ VỰNG
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công Nghệ Thông Tin
HÀ NỘI - 2010
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Bùi Quang Trung
XÂY DỰNG DỊCH VỤ WEB HỌC TỪ VỰNG
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công Nghệ Thông Tin
Cán bộ hướng dẫn: TS. Trương Anh Hoàng
HÀ NỘI - 2010
II
LỜI NÓI ĐẦU
Tôi xin cảm ơn Khoa Công Nghệ Thông Tin – Đại Học Công Nghệ đã tạo điều
kiện cho tôi học tập, trau dồi kiến thức để vững bước trên con đường sau này.
Tôi xin chân thành cảm ơn các thầy cô trong trường đã tận tình giảng dạy, truyền
cho tôi những kiến thức quý báu trong suốt bốn năm học.
Tôi xin chân thành cảm ơn thầy TS. Trương Anh Hoàng đã tận tình giúp đỡ tôi
trong quá trình làm đồ án này. Những chỉ bảo của thầy giúp tôi mở mang thêm rất
nhiều.
Và cuối cùng con xin gửi lời biết ơn sâu sắc tới cha mẹ, người luôn sát cánh bên
con, nuôi dưỡng con lên người, trở thành người có ích cho xã hội.
I
MỤC LỤC
LỜI NÓI ĐẦU............................................................................................................. I
BẢNG CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT ...........................................................IV
BẢNG CÁC HÌNH VẼ............................................................................................... V
BẢNG CÁC BẢNG BIỂU ...................................................................................... VII
TÓM TẮT NỘI DUNG .......................................................................................... VIII
CHƯƠNG 1: GIỚI THIỆU..........................................................................................1
1.1. Đặt vấn đề .........................................................................................................1
1.2. Tổng quan về giải pháp......................................................................................2
1.2.1 Tại sao là dịch vụ Web? ...............................................................................2
1.2.2. Giải pháp Webdict.......................................................................................2
CHƯƠNG 2: TỔNG QUAN VỀ DỊCH VỤ WEB .......................................................5
2.1. Giới thiệu dịch vụ Web......................................................................................5
2.1.1. Dịch vụ web là gì?.......................................................................................5
2.1.2 Đặc điểm của dịch vụ web............................................................................5
2.1.2.1. Sự tương kết có một ưu tiên cao nhất ....................................................5
2.1.2.2. XML .....................................................................................................6
2.1.2.3. WSDL...................................................................................................6
2.1.3. Giao thức dịch vụ web – SOAP .................................................................8
2.2. Python .............................................................................................................11
2.3. Sphinx .............................................................................................................12
2.3.1. Giới thiệu ..................................................................................................12
2.3.2. Tính chất ...................................................................................................13
2.3.3. Cài đặt.......................................................................................................13
2.3.4. Tạo mục lục...............................................................................................14
2.4. CakePHP .........................................................................................................15
2.4.1. Giới thiệu ..................................................................................................15
2.4.2. Mô hình MVC ...........................................................................................16
2.4.3. Sử dụng .....................................................................................................17
2.5. OpenID............................................................................................................18
CHƯƠNG 3: PHÂN TÍCH HỆ THỐNG ...................................................................21
3.1. Phân tích yêu cầu.............................................................................................21
3.1.1. Yêu cầu người sử dụng..............................................................................21
3.1.2. Yêu cầu hệ thống.......................................................................................21
II
3.2. Biểu đồ Ca sử dụng..........................................................................................22
3.3. Luồng sự kiện ..................................................................................................22
3.3.1. Đăng nhập .................................................................................................22
3.3.2. Tra từ.........................................................................................................23
3.3.3. Học từ .......................................................................................................23
3.3.4. Đọc báo .....................................................................................................24
3.3.5. Quản lý từ vựng.........................................................................................25
CHƯƠNG 4: THIẾT KẾ ...........................................................................................26
4.1. Thiết kế hệ thống .............................................................................................26
4.1.1. Biểu đồ tuần tự ..........................................................................................26
4.1.1.1. Đăng nhập ...........................................................................................26
4.1.1.2. Tra từ ..................................................................................................27
4.1.1.3. Học từ .................................................................................................31
4.1.1.4. Đọc báo...............................................................................................32
4.1.1.5. Quản lý từ vựng ..................................................................................33
4.1.2. Biểu đồ hoạt động......................................................................................33
4.1.2.1. Đăng nhập ...........................................................................................34
4.1.2.2. Tra từ ..................................................................................................34
4.1.2.3. Học từ .................................................................................................36
4.1.2.4. Đọc báo...............................................................................................37
4.1.2.5. Quản lý từ vựng ..................................................................................38
4.1.3. Biểu đồ lớp................................................................................................39
4.2. Thiết kế cơ sở dữ liệu ......................................................................................39
4.3. Thiết kế giao diện ............................................................................................43
4.3.1. Đăng nhập .................................................................................................43
4.3.2. Tra/Học từ .................................................................................................44
4.3.3. Đọc báo .....................................................................................................44
CHƯƠNG 5: CÀI ĐẶT VÀ THỬ NGHIỆM.............................................................46
5.1. Đăng nhập .......................................................................................................46
5.2. Tra từ/Học từ vựng ..........................................................................................47
5.3. Đọc báo ...........................................................................................................49
KẾT LUẬN ...............................................................................................................51
TÀI LIỆU THAM KHẢO..........................................................................................52
III
BẢNG CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT
Ký hiệu
MVC
RSS
HTML
HTTP
XML
WSDL
SOAP
RPC
Diễn giải
Model-View-Controller
Really Simple Syndication
HyperText Markup Language
Hypertext Transfer Protocol
Extensible Markup Language
Web Services Description Language
Simple Object Access Protocol
Remote procedure call
IV
BẢNG CÁC HÌNH VẼ
Hình 1. Tính năng tra từ của Stardict ..........................................................................2
Hình 2. So sánh giữa Vdict và Webdict ......................................................................3
Hình 3. Thành phần của SOAP ...................................................................................9
Hình 4. MVC............................................................................................................16
Hình 5. Biểu đồ Ca sử dụng ......................................................................................22
Hình 6. Thiết kế tổng quan hệ thống .........................................................................26
Hình 7. Biểu đồ tuần tự chức năng Đăng nhập ..........................................................26
Hình 8. Biểu đồ tuần tự chức năng Tra từ - Searchdict..............................................28
Hình 9. Biểu đồ tuần tự chức năng Tra từ - autoComplete ........................................29
Hình 10. Biểu đồ tuần tự chức năng Tra từ ...............................................................30
Hình 11. Biểu đồ tuần tự chức năng Học từ ..............................................................31
Hình 12. Biểu đồ tuần tự chức năng Đọc báo ............................................................32
Hình 13. Biểu đồ tuần tự chức năng Quản lý từ vựng................................................33
Hình 14. Biểu đồ hoạt động chức năng Đăng nhập....................................................34
Hình 15. Biểu đồ hoạt động chức năng Tra từ...........................................................35
Hình 16. Biểu đồ hoạt động chức năng Học từ..........................................................36
Hình 17. Biểu đồ hoạt động chức năng Đọc báo .......................................................37
Hình 18. Biểu đồ hoạt động chức năng Quản lý từ vựng ...........................................38
Hình 19. Biểu đồ lớp hệ thống ..................................................................................39
Hình 20. Bảng Users.................................................................................................39
Hình 21. Bảng Dictionaries.......................................................................................40
Hình 22. Bảng New Categories.................................................................................40
Hình 23. Bảng New Domain .....................................................................................40
Hình 24. Bảng New Content .....................................................................................41
Hình 25. Bảng Words ...............................................................................................41
Hình 26. Bảng User Words .......................................................................................42
V
Hình 27. Bảng Known Words ...................................................................................42
Hình 28. Biểu đồ quan hệ của các bảng.....................................................................42
Hình 29. Cửa sổ Đăng nhập ......................................................................................43
Hình 30. Cửa sổ Tra từ .............................................................................................44
Hình 31. Cửa sổ Đọc báo 1 .......................................................................................45
Hình 32. Cửa sổ Đọc báo 2 .......................................................................................45
Hình 33. Cửa sổ Đăng nhập thất bại..........................................................................46
Hình 34. Cửa sổ sau khi Đăng nhập ..........................................................................47
Hình 35. Cửa sổ Tra từ gợi ý.....................................................................................48
Hình 36. Cửa sổ Đọc báo chi tiết ..............................................................................50
VI
BẢNG CÁC BẢNG BIỂU
Bảng 1. Các nhà cung cấp OpenID ........................................................................... 18
Bảng 2. Luồng sự kiện Đăng nhập ............................................................................ 22
Bảng 3. Luồng sự kiện Tra từ ................................................................................... 23
Bảng 4. Luồng sự kiện Học từ .................................................................................. 23
Bảng 5. Luồng sự kiện Đọc báo ................................................................................ 24
Bảng 6. Luồng sự kiện Quản lý từ vựng.................................................................... 25
Bảng 7. Users ........................................................................................................... 39
Bảng 8. Dictionaries ................................................................................................. 39
Bảng 9. News Categories .......................................................................................... 40
Bảng 10. News Domain ............................................................................................ 40
Bảng 11. News Content ............................................................................................ 40
Bảng 12. Words ........................................................................................................ 41
Bảng 13. User Words................................................................................................ 41
Bảng 14. Known Words............................................................................................ 42
VII
TÓM TẮT NỘI DUNG
Học từ vựng là một vấn đề lớn đối với nhiều người. Học theo cách truyền thống
là sử dụng từ điển đơn thuần thường không hiệu quả. Hệ thống học từ vựng là một tiện
ích giúp mọi người tăng khả năng ngoại ngữ. Những tính năng rất đơn giản mà hiệu
quả, tra từ nhanh chóng, học từ theo một từ điển tự chọn, phát âm chuẩn, hình ảnh gần
với từ cần học giúp khả năng ghi nhớ lâu hơn. Chức năng đọc báo đáp với dữ liệu
được tự động cập nhật hàng ngày từ các báo nổi tiếng trên internet, thuộc nhiều lĩnh
vực khác nhau như Asia, Americas, Sport, Entertainment. Chức năng này với tính
năng thông minh, tự động làm nổi bật những từ người dùng chưa biết, đồng thời hiển
thị nghĩa khi di chuột lên những từ đó trong tầm nhìn của trình duyệt giúp người dùng
học từ ngay khi đọc tin tức.
Những tính năng đó hy vọng sẽ giúp người dùng có được những trải nghiệm mới
trong học từ vựng, không theo lối khô khan như trước nữa. Chức năng đọc báo dựa
trên kiến thức từ vựng của từng người, tạo được sự hứng thú. Hệ thống và người dùng
có tương tác cao, tạo hiệu quả lớn trong quá trình học tập.
VIII
CHƯƠNG 1: GIỚI THIỆU
1.1. Đặt vấn đề
Hiện nay nhu cầu học ngoại ngữ đang trở nên rất cần thiết. Mỗi một người đều
hiểu rõ tầm quan trọng của việc học ngoại ngữ, giúp họ tăng khả năng giao tiếp, lương
cao, khả năng thăng tiến. Việc học ngoại ngữ bao gồm học nhiều kỹ năng khác nhau,
như phát âm, ngữ pháp, viết, nói. Trong đó, việc học từ vựng là một công việc khá mất
thời gian, nhiều khi còn khiến người học nản chí.
Trên mạng cũng có rất nhiều phần mềm và trang web hỗ trợ việc học từ vựng.
Nhưng hầu hết những chương trình và phần mềm đó đều khiến cho người dùng nhanh
chóng cảm thấy chán, khả năng ghi nhớ không được lâu, ví dụ như
http://www.tudientiengviet.net,
http://tudien.timnhanh.com,
http://www.vietgle.vn/tratu đều là các trang cho phép người dùng tra từ vựng. Nguyên
nhân là những trang web thường quá đơn điệu, chỉ nêu ra nghĩa của từ mà không có
phương pháp giúp người dùng tăng khả năng ghi nhớ từ đó. Chẳng hạn, khi người
dùng muốn tra từ mother, thì hầu hết đều chỉ đưa ra nghĩa là mẹ, chăm sóc … Tuy rằng
nghĩa thì đúng và đầy đủ, nhưng như thế không thể giúp người dùng ghi nhớ lâu được,
phải đọc đi đọc lại nhiều lần, rất mất thời gian.
Đối với nhiều người thích đọc báo online thì vấn đề về từ vựng cản trở họ rất
nhiều. Nhiều từ khi đọc không biết, lại phải tra từ điển, như thế mất thời gian, cũng
không ghi nhớ được từ hiệu quả.
Google translate là một tiện ích mà nhiều người biết đến. Nó tự động dịch một
đoạn văn bản từ ngôn ngữ này sang ngôn ngữ khác. Tuy nhiên, khi dịch toàn bộ đoạn
văn bản thì nội dung thường không chính xác, vì thế gây bất tiện cho người dùng. Ví
dụ, đoạn văn bản sau: “Law enforcement officials are looking into whether Shahzad
had any foreign connections who may have participated in Saturday's failed bombing
attempt in New York City”, khi được dịch ra thì có nghĩa là “Luật cán bộ thực thi pháp
luật đang xem xét liệu có bất kỳ kết nối Shahzad nước ngoài có thể đã tham gia vụ
đánh bom không thành công trong nỗ lực thứ bảy tại New York City”. Nghĩa được
dịch ra đó không chính xác, gây phiền toái cho người sử dụng.
Hay như tính năng tự động tra từ khi một từ được bôi đen của Stardict.
1
Hình 1. Tính năng tra từ của Stardict
Cửa sổ nghĩa hiện ra che mất không gian đọc, gây khó chịu cho người dùng.
Trên cơ sở những khó khăn đó, ý tưởng xây dựng một trang web trợ giúp mọi
người học từ vựng cần phải được hiện thực hóa. Hệ thống có các chức năng cần thiết
giúp người dùng học từ vựng một cách hiệu quả nhất.
1.2. Tổng quan về giải pháp
1.2.1 Tại sao là dịch vụ Web?
Dịch vụ web đã ra đời từ lâu. Nó có ứng dụng rộng rãi trong nhiều lĩnh vực. Dịch
vụ web chính là tạo ra một nơi lưu trữ liệu và tính toán trên dữ liệu đó, nhiều người có
thể truy cập vào, sử dụng để tạo ra ứng dụng riêng cho mình. Nhận thấy nếu sử dụng
dịch vụ web thì sẽ tiết kiệm được thời gian và công sức, đồng thời ứng dụng cũng sẽ
chạy tốt và ổn định hơn. Dữ liệu chính xác là điều rất cần thiết để ứng dụng có thể tồn
tại lâu dài, đồng thời có nhiều người sử dụng.
1.2.2. Giải pháp Webdict
Webdict là hệ thống chạy trên Internet, cho phép nhiều người truy cập học từ
vựng. Hệ thống được xây dựng sử dụng dịch vụ web, đáp ứng yêu cầu thuận tiện và
hiệu quả cho người dùng.
Trong bộ não con người thì ý thức giác quan chiếm tới 60% (thông tin từ trang
web http://namgioi.timnhanh.com/song_khoe/suc_khoe/20070206/35A4ED14/). Nếu
2
gắn thông tin với các hình ảnh cụ thể thì sẽ dễ nhớ hơn. Ví dụ như khi bạn đến thăm
nhà một người bạn mới, lỡ quên mất số nhà, lần sau đến bạn vẫn có thể tìm được cái
nhà ấy vì ở đầu đường có cái cây cầu hoặc có một cây bàng to lớn. Việc học từ vựng
cũng vậy, nhiều từ rất đơn giản, chỉ cần nhìn một lần là nhớ, nhưng nhiều từ thì rất khó
nhớ. Chẳng hạn từ academy có nghĩa là học viện, nếu ngay lần đầu học từ này thì sẽ
khó nhớ, nhưng nếu có thêm hình ảnh các học viện đi kèm thì từ này sẽ được ghi nhớ
lâu hơn, khi nhìn một học viện thì liên tưởng ngay đến từ này. Hoặc từ acrobatically
có nghĩa là tài tình, khéo léo, từ ngày thì rất khó nhớ, nhưng nếu có thêm hình ảnh cầu
thủ Berbatov của MU đang tung người dứt điểm thì sẽ rất dễ nhớ. Trong hình minh
họa, bên trái là kết quả từ trang vdict.com, còn bên phải là kết quả mà hệ thống tìm
được. Rõ ràng có hình ảnh thì sự ghi nhớ tăng lên rõ rệt.
Hình 2. So sánh giữa Vdict và Webdict
Dựa vào điều này, để giúp ghi nhớ từ lâu cần hiển thị hình ảnh kèm theo mỗi khi
người dùng tra từ. Hình ảnh cần gần nhất với từ được tra. Chúng ta đều biết Google là
một bộ máy tìm kiếm nhanh và hiệu quả. Thông qua kết quả thực tế cho thấy khi gõ
một từ trong từ điển vào tìm kiếm hình ảnh trên Google thì đều hiển thị kết quả rất phù
hợp. Vì thế dữ liệu hình ảnh đều được tổng hợp từ Google.
Bạn đang học từ để thi TOEFL, nhưng thật khó khăn nếu cứ cầm quyển sách và
học, không hiệu quả chút nào. Chức năng học từ vựng được xây dựng để trợ giúp
người dùng học từ hiệu quả hơn. Khi người dùng chọn từ điển và tra một từ, rồi nhấn
vào nút học từ, chương trình sẽ hiển thị các từ liên tiếp nhau sau mỗi mười lăm giây,
các từ hiển thị đều có hình ảnh và phát âm đi kèm. Người dùng cũng có thể học các từ
3
liên tiếp bằng cách chọn từ tiếp theo hoặc trước từ đang học hoặc dừng chức năng tra
từ để tìm kiếm một từ bất kỳ.
Hệ thống cũng cho phép người dùng đăng nhập và thêm từ vựng vào từ điển của
mình. Có một điểm đặc biệt là hệ thống không có chức năng đăng ký tài khoản. Nhiều
người dùng không thể hoàn thành chức năng đăng ký vì những yêu cầu khi nhập dữ
liệu quá phức tạp, dài dòng. Trong khi đó Gmail, Yahoo Mail đều rất thông dụng, ít
nhất ai cũng có một tài khoản email. Vì thế, có thể sử dụng các tài khoản email đó
đăng nhập vào hệ thống thì rất thuận tiện cho người dùng. Hệ thống có chức năng đăng
nhập sử dụng Gmail, người dùng chỉ cần gõ email và mật khẩu, hệ thống sẽ tự đăng
nhập và hiển thị email như tên người dùng. Sau khi đăng nhập thì người dùng có thể
thêm các từ đã học vào từ điển của mình. Phần quản lý từ vựng sẽ liệt kê các từ đã học,
thuận tiện khi tra cứu.
Việc học từ vựng đã hiệu quả hơn rất nhiều. Khi đã có được vốn từ khá khá,
người dùng muốn đọc báo online thì việc trợ giúp đọc báo hiệu quả rất cần thiết. Hiển
thị các từ mới sao cho hiệu quả là điều quan trọng. Các từ mới không có trong từ điển
của người dùng sẽ được đánh dấu, khi di chuột đến từ đó và chờ một thời gian, nghĩa
của từ đó sẽ hiển thị bên cạnh. Như thế sẽ tiết kiệm được thời gian, đồng thời học từ
cũng hiệu quả.
Muốn xây dựng được hệ thống thì cần phải có dữ liệu. Mặt khác, từ điển dữ liệu
rất lớn, do đó phải có phương pháp để tìm kiếm nhanh, hiệu quả. Sphinx là một công
cụ để sắp xếp dữ liệu và tìm kiếm khá hiệu quả. CakePHP là một bộ khung dành cho
PHP, hỗ trợ lập trình theo hướng MVC, được dùng để xây dựng các trang web từ nhỏ
tới lớn rất hiệu quả. Dữ liệu về báo được lấy từ RSS của các trang như BCC, VOA
News. Python là một ngôn ngữ khá mạnh trong việc xử lý dữ liệu web, được dùng để
lấy thông tin từ các báo và lưu trữ trên máy chủ.
4
CHƯƠNG 2: TỔNG QUAN VỀ DỊCH VỤ WEB
2.1. Giới thiệu dịch vụ Web
2.1.1. Dịch vụ web là gì?
Là một giao diện lập trình ứng dụng điển hình có thể được sử dụng thông qua
một mạng, như Internet và được thực thi ở một hệ thống máy chủ yêu cầu các dịch vụ
chủ và khách giao tiếp thông qua giao thức HTTP. Dịch vụ web là một nền ứng dụng
dựa trên XML – ngôn ngữ đánh
http://en.wikipedia.org/wiki/Web_service)
dấu
mở
rộng
và
HTTP
(theo
2.1.2 Đặc điểm của dịch vụ web
2.1.2.1. Sự tương kết có một ưu tiên cao nhất
[2] Thời điểm hiện tại, trên thế giới có rất nhiều ngôn ngữ lập trình, hệ thống với
đặc thù khác nhau. Các hệ thống làm việc với những mục đích khác nhau, tuy nhiên sự
trao đổi, hợp tác để đi đến một lợi ích chung là điều luôn cần đến. Điển hình ở Việt
Nam, lĩnh vực truyền thông đang phát triển rất mạnh mẽ. Các thuê bao di động đang
tăng trưởng với tốc độ chóng mặt. Nhiều dòng điện thoại mới với các tính năng ngày
càng được cải tiến ra đời. Gần đây nhất là iPhone 3G của Apple. Các ứng dụng trên di
động cũng theo đó mà phát triển không ngừng. Từ trò chơi, ứng dụng văn phòng, giải
trí, tiện ích… Các phần mềm ra đời cần có được sự quảng bá rộng rãi thì số lượng
người dùng sẽ tăng đáng kể. Mobifone chỉ cần gửi một tin nhắn thông báo khuyến mãi
phần mềm là rất nhiều người sẽ tải về và dùng thử. Hoặc quảng bá trên website riêng
của họ, cũng thu hút người dùng không kém. Để làm được điều này thì cần có sự hợp
tác giữa các hệ thống. Tuy nhiên sự hợp tác này không phải lúc nào cũng diễn ra một
cách dễ dàng.
Một ví dụ để thấy sự bất cập khi hai hệ thống muốn hợp tác với nhau. Bạn làm
một ứng dụng trên điện thoại di động. Người dùng phải mất tiền đăng ký mới sử dụng
được. Bạn hợp tác với một nhà cung cấp dịch vụ mạng, ví dụ Mobifone. Họ có phương
thức để trừ tiền của khách hàng. Nhưng đó là bí mật, không thể cung cấp phương thức
đó cho bạn được. Vậy thì làm thế nào để hợp tác được với họ?
Dịch vụ web giải quyết được vấn đề này. Mobifone cung cấp phương thức của họ
dưới dạng một dịch vụ, cho phép bạn gọi hàm đó và họ sẽ thực hiện việc trừ tiền, trả
về kết quả thành công hay không. Như vậy không hề lộ bí mật mà cả hai bên đều hợp
5
tác vui vẻ. Đây chính là ích lợi khi bạn viết ứng dụng và cung cấp nó dưới dạng dịch
vụ web.
2.1.2.2. XML
Dịch vụ web sử dụng XML để trao đổi dữ liệu.
[2] XML là ngôn ngữ được sử dụng trên nhiều nền và ngôn ngữ khác nhau. Nó
gần như HTML, tuy nhiên cũng có sự khác biệt. XML được thiết kế theo hướng dữ
liệu cần lưu trữ là gì, còn HTML thì thiết kế theo hướng dữ liệu sẽ được trình bày như
thế nào (theo trang http://www.w3schools.com/xml/xml_whatis.asp ). Ví dụ đoạn mã
sau:
Như trong ví dụ, các thẻ của XML không được định nghĩa trước mà hoàn toàn
phụ thuộc vào người dùng. Tuy nhiên vẫn có một chuẩn chung đó là một thẻ mở phải
có một thẻ đóng. Trong ví dụ trên nếu . Nó được tổ chức theo cấu trúc dạng cây, xuất phát từ gốc và phát triển theo
từng nhánh. Như ví dụ trên, gốc là menu, có hai nhánh con là name và content.
Điểm mạnh của XML là nó được sử dụng giữa nhiều ngôn ngữ khác nhau. Nếu
dùng C# để tạo ra một file XML thì cũng có thể dùng PHP, ASP.Net để đọc file đó.
Chính vì thế, XML khá phổ biến, được dùng ở mọi nơi.
2.1.2.3. WSDL
Là một ngôn ngữ dựa trên XML, để mô tả, cách thức để truy cập tới một dịch vụ
web [2].
WSDL được cung cấp dưới dạng tài liệu XML. Các thẻ cơ bản cần phải có đó là:
: Định nghĩa kiểu dữ liệu được sử dụng bởi dịch vụ web
: Định nghĩa tin nhắn được sử dụng bởi dịch vụ web
: Phương thức được thực thi bởi dịch vụ web
: Giao thức truyền thông được sử dụng bởi dịch vụ web
Cấu trúc của một tài liệu wsdl như sau:
6
definition of types........
definition of a message....
definition of a port.......
definition of a binding....
Một tài liệu wsdl cũng có thể chứa các thành phần khác, như thành phần mở
rộng.
Dưới đây là một ví dụ về tài liệu wsdl (tham khảo từ trang
http://www.w3schools.com/wsdl/wsdl_documents.asp).
Thành phần định nghĩa “glossaryTerms” là tên của cổng, còn
“getTerm” là tên của một phương thức.
7
Phương thức “getTerm” có một tin nhắn vào là “getTermRequest” và một tin
nhắn trả về là “getTermResponse”. Tham khảo chi tiết tại trang
http://www.w3schools.com/wsdl.
2.1.3. Giao thức dịch vụ web – SOAP
Một giao thức thông dụng khi sử dụng dịch vụ web đó là SOAP. Đơn giản hơn,
nó là một giao thức để truy cập dịch vụ web. Mục đích của SOAP là cho phép ứng
dụng trao đổi dữ liệu thông qua giao thức HTTP. Phiên bản hiện tại của SOAP là 1.2,
được công bố vào ngày 27-04-2007 (theo http://www.w3.org/TR/soap12-part1).
Các đặc điểm của SOAP:
- Là một giao thức truyền thông
- Cho phép hai ứng dụng giao tiếp với nhau
- Là một định dạng cho phép gửi thông tin
- Truyền thông tin qua internet
- Là một nền độc lập
- Một ngôn ngữ độc lập
- Dựa trên XML
- Đơn giản và dễ mở rộng
Tại sao lại sử dụng SOAP? Bởi vì nó quan trọng khi phát triển ứng dụng cho
phép các ứng dụng trao đổi thông tin qua internet. RPC là một giao thức cũng cho
phép các ứng dụng trao đổi thông tin qua internet, nhưng nó thường gặp các vấn đề về
bảo mật, nó bị chặn bởi các máy chủ sử dụng proxy, hay tường lửa. Nhưng HTTP
được sử dụng bởi tất các trình duyệt web và máy chủ. SOAP cho phép các ứng dụng
giao tiếp với nhau trên bất cứ hệ điều hành nào, hay công nghệ và ngôn ngữ khác
nhau. Chẳng hạn một chương trình chạy trên máy tính có hệ điều hành Windows 2000
muốn giao tiếp với chương trình chạy trên hệ điều hành Linux, hoặc trên hệ điều hành
Solaris.
8
[2] [7] Một tin nhắn dưới dạng SOAP là một tài liệu XML chứa những thành
phần như sau:
Hình 3. Thành phần của SOAP
- Thành phần Envelope để xác định tài liệu XML đó là một tin nhắn SOAP
- Thành phần Header chứa đựng thông tin tiêu đề
- Thành phần Body chứa đựng yêu cầu và phản hồi.
- Thành phần Fault chứa đựng thông tin về lỗi và trạng thái.
Tin nhắn SOAP phải theo tiêu chuẩn sau:
- Phải được mã hóa dưới dạng XML
- Phải sử dụng tên miền khai báo trong phần Envelope
- Phải sử dụng tên miền đã mã hóa
- Phải không chứa đựng tham chiếu DTD
- Phải không chứa đựng chỉ dẫn xử lý XML
SOAP được sử dụng thế nào. Một tin nhắn SOAP được gửi tới một website có
dịch vụ web với tham số nào đó cần thiết. Website sau đó sẽ phản hồi lại một tài
liệu dưới dạng XML có chứa kết quả tìm kiếm.
Dưới đây là một tin nhắn SOAP:
9
...
...
...
Dưới đây là một ví dụ về tin nhắn SOAP (theo http://www.w3schools.com/soap).
Một yêu cầu SOAP:
POST /InStock HTTP/1.1
Host: www.example.org
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn
IBM
Máy khách gọi tới hàm GetStockPrice với tham số là StockName=IBM. Phản hồi
của máy chủ như sau:
10