ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Trương Lê Thành
XÂY DỰNG HỆ THỐNG DỊCH VỤ GIÁ TRỊ GIA
TĂNG TRÊN NỀN DỊCH VỤ NHẮN TIN TỨC THÌ
QUA HỆ THỐNG TIN NHẮN TỨC THÌ
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 - 2009
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Trương Lê Thành
XÂY DỰNG HỆ THỐNG DỊCH VỤ GIÁ TRỊ GIA
TĂNG TRÊN NỀN DỊCH VỤ NHẮN TIN TỨC THÌ
QUA HỆ THỐNG TIN NHẮN TỨC THÌ
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: ThS Đào Minh Thư
HÀ NỘI - 2009
LỜI CẢM ƠN
Lời đầu tiên, chúng tôi xin chân thành cảm ơn quý thầy cô giáo khoa Công nghệ thông
tin đã dạy dỗ chúng tôi suốt bốn năm học vừa qua và tạo điều kiện cho phép chúng tôi
được thực hiện khoá luận tốt nghiệp này.
Đặc biệt, chúng tôi xin được bày tỏ lòng kính trọng và biết ơn sâu sắc tới cô giáo
hướng dẫn: ThS Đào Minh Thư và thầy giáo ThS Hồ Đắc Phương đã tận tình hướng
dẫn và giúp đỡ chúng tôi trong quá trình hoàn thành công trình này.
Xin chân thành cảm ơn tới công ty ViettelMedia đã giúp đỡ chúng tôi hoàn thành tốt
khóa luận.
Xin cảm ơn gia đình và bạn bè đã giúp đỡ, động viên tôi trong thời gian thực hiện đề
tài.
Cảm ơn bạn Nguyễn Thị Thu Thảo đã cùng tôi hoàn thành khóa luận này.
2.4.1 Biểu đồ ngữ cảnh ........................................................................ 13
2.4.2. Cơ sở dữ liệu ............................................................................. 14
3.1. Tổng quan giao thức Yahoo Messenger (YMSG) ............................. 16
3.1.1. Sự khác nhau giữa các phiên bản ............................................... 17
3.1.2. Cấu trúc một gói tin của YMSG ................................................. 18
3.1.3. Dịch vụ ...................................................................................... 20
3.1.4. Status codes (mã trạng thái) ....................................................... 21
3.1.5. Session ....................................................................................... 22
3.2. Mô tả chi tiết giao thức YMSG ......................................................... 22
3.2.1. Verify ........................................................................................ 23
3.2.2. Xác thực (Authentication ) ......................................................... 25
3.2.3. Gửi /nhận tin nhắn ..................................................................... 30
3.2.4. Gửi chú ý bắt đầu/dừng việc đánh máy ...................................... 31
3.2.5. Logoff ........................................................................................ 32
3.2.7. Thêm bạn ................................................................................... 32
3.2.8. Xóa nick trong danh sách bạn .................................................... 33
3.3. Phân tích thiết kế module Yahoo bot ................................................. 34
3.3.1. Ngôn ngữ ................................................................................... 34
3.3.2. Cấu trúc của module .................................................................. 36
3.3.3. Tiến trình thực hiện .................................................................... 37
3.4. Tổng quan giao thức Google Talk ..................................................... 39
3.4.1. Các bước kết nối ........................................................................ 40
3.4.2. Cấu trúc module ........................................................................ 40
CHƯƠNG 4. GIAO DIỆN WEB ................................................................. 43
4.1. Tổng quan về Web ............................................................................ 43
4.2. Ngôn ngữ .......................................................................................... 44
4.3. Thiết kết CSDL ................................................................................ 44
4.4. Thiết kế module ................................................................................ 46
................................................................................................................... 52
CHƯƠNG 5. GIAO DIỆN SMS .................................................................. 52
Global System for Mobile
communications
Hệ thống toàn cầu cho
truyền thông di động
HTTP Hypertext Transfer Protocol
Giao thức truyền siêu văn
bản
HTTPS Hypertext Transfer Protocol Secure HTTP an toàn
IM Instant Messaging Tin nhắn tức thì
SMPP
Short Message Peer-to-peer
Protocol
Giao thức tin nhắn ngắn
ngang hàng
SMS Short Message Service Dịch vụ tin nhắn ngắn
SMSC Short Message Service Center Trung tâm tin nhắn
TCP/IP
Transmission Control Protocol /
Internet Protocol
Giao thức truyền tin tin cậy
trên nền Internet
DANH SÁCH HÌNH VẼ
LỜI MỞ ĐẦU
Internet đang ngày càng phát triển nhằm đáp ứng nhu cầu của con người. Nhờ sự tiến bộ
của khoa học nói chung và công nghệ thông tin nói riêng, diện mạo của Internet đang
ngày càng rõ rệt và "có hình hài". Internet là kết quả tất yếu của nhu cầu cần được đáp
ứng của con người, đó là tập hợp các nhu cầu cực kỳ phong phú và đa dạng của mọi
người khắp nơi trên thế giới. Điều đó tạo nên sự phức tạp, sức hấp dẫn và cuốn hút của
người khắp nơi trên thế giới. Điều đó tạo nên sự phức tạp, sức hấp dẫn và cuốn hút của
Internet.
Internet được sử dụng ngày càng rộng rãi. Và giờ đây Internet đã trở thành mạng toàn
cầu.
Và tại Việt Nam, việc sử dụng Internet ngày phổ biến. Điều này thể hiện rõ ở số lượng
người dùng gia tăng nhanh chóng, số lượng dịch vụ Internet ngày càng nhiều và thời
gian truy cập Internet trong mỗi ngày cũng dài thêm. Theo kết quả khảo sát gần đây của
công ty nghiên cứu thị trường TNS Public & Social Research Việt Nam tiến hành ở bốn
thành phố lớn của Việt Nam gồm Thành phố Hồ Chí Minh, Hà Nội, Đà Nẵng và Cần
Thơ với 1,200 người tham gia trả lời ý kiến, thì hiện nay người sử dụng Internet ở Việt
Nam đang ngày càng dành nhiều thời gian trên mạng hơn, với thời lượng trung bình mỗi
ngày là 43 phút trong năm 2008, thời lượng này gần gấp đôi so với hồi năm 2006.
[1]
Theo đó, có đến 72% số người trong độ tuổi 18 - 30 sử dụng Internet thường xuyên để
tán gẫu (chat); và 81% số người trong độ tuổi 41-50 thường xuyên đọc tin tức trên
Internet.
1.1.2. Sống gấp
Ngày nay, mọi người ai cũng bận rộn với công việc hàng ngày, với cuộc sống gia đình,
với những quan hệ xã hội. Cuộc sống có quá nhiều điều khiến con người phải lo toan,
~ 2 ~
phiền muộn. Bản thân mỗi con người bị cuốn vào vòng xoay của công việc, học tập và
những toan tính hàng ngày. Cuộc sống thật bộn bề những lo toan, suy nghĩ.
Đôi khi mọi người cảm thấy mệt mỏi khi phải suy nghĩ quá nhiều thứ trong đầu và để
sắp xếp mọi thứ cho tốt đẹp.
Và thời gian rảnh trong cuộc sống giúp cho con người thư thái, giải trí cũng ít đi.
1.2. Giải pháp
Hiện nay, có những người truy cập hàng giờ trên Internet chỉ để xem giá chứng khoán
thay đổi, xem bài viết của mình trên diễn đàn đã được trả lời chưa, xem đã có thông tin
mới thật lãng phí thời gian. Hay việc không để ý đến thời tiết hàng ngày làm ai đó bị
sốt, bị ốm,.. làm hại cho sức khỏe. Hay một việc gì đó quan trọng bị lãng quên,… làm
Tổng quan về giao thức của Google Talk, phân tích thiết kế và xây dựng module Gtalk
Bot.
Chương 4. Tổng quan giao diện Web của TCat
Nội dung của chương viết về tổng quan, phân tích thiết kế giao diện Web. Web là
module cung cấp cho người dùng những tính năng nâng cao, giúp TCat quản lý người
dùng một cách dễ dàng hơn.
Chương 5. Module SMS với các mô hình kết nối để gửi tin nhắn từ máy tính tới điện
thoại di động
Chương này với nội dung trình bày về các cách kết nối để có thể gửi tin nhắn từ máy
tính tới điện thoại di động và phân tích thiết kế, cấu trúc module SMS.
Có hai cách kết nối được đề cập trong chương này:
Cách thứ nhất là kết nối trực tiếp SMS Gateway tới SMSC của nhà cung cấp dịch vụ
Viettel.
Cách thứ hai là kết nối tới SMS Gateway với GSM Modem và sau đó GSM Modem sẽ
giao tiếp với SMSC trên mạng di động.
Chương 6. Phân tích, thiết kế các dịch vụ đã cung cấp của TCat
~ 4 ~
Trong chương này chúng tôi trình bày một số dịch vụ đã cung cấp của TCat.
Các dịch vụ của chúng tôi gồm có: Phiên dịch, Chấp nhận/từ chối, Nhắc việc, Thời tiết
và dịch vụ người dùng tự định nghĩa.
Trong đó dịch vụ Phiên dịch là dịch vụ khi người dùng gõ lệnh theo cú pháp mặc định.
TCat sẽ trả về cho người dùng nghĩa của từ mà người dùng muốn tra.
Dịch vụ Chấp nhận/Từ chối được kích hoạt khi một người sử dụng thêm một ai đó vào
danh sách bạn bè (Friend). Dịch vụ này có ý nghĩa đơn giản là khi một người nhận được
những tin nhắn của một người sử dụng TCat của chúng tôi để gửi tin thì người nhận đó
có thể chấp nhận hoặc là từ chối nhận các tin nhắn sau.
Dịch vụ Thời tiết cũng giống như dịch vụ Phiên dịch. Khi muốn biết thời tiết của một
vùng nào đó trong nước Việt Nam thì người sử dụng sẽ gõ một câu lệnh theo cú pháp
mặc định sau đó dịch vụ sẽ gửi lại thông tin thời tiết về vùng nhận được.
Dịch vụ người dùng tự định nghĩa là dịch vụ cho phép một người sử dụng dễ dàng thêm
Yahoo hoặc Google Talk tự động của chúng tôi . Khi khung chương trình nhận được
thông điệp sau đó sẽ gọi dịch vụ tương ứng, phân tích các tham số truyền vào, sau đó
lấy kết quả trả về cho người sử dụng.
Loại dịch vụ thứ hai: dịch vụ gửi tin nhắn chủ động (hay còn gọi là dịch vụ tự động).
Dịch vụ được kích hoạt khi có một sự kiện nào đó xảy ra. Sự kiện này được người dùng
đăng ký trước, có thể là gửi một nội dung tin nhắn vào một thời điểm nào đó, thông báo
sự thay đổi của một trang web (giá vàng, chứng khoán thay đổi, có bài trả lời trong diễn
đàn). Tất nhiên để chống lại tình trạng spam tin nhắn, người sử dụng phải xác nhận
mình cho phép TCat gửi tin nhắn cho mình. Thực chất của dịch vụ này là một tiến trình
~ 6 ~
tự động chạy. Cứ mỗi có sự kiện xảy ra tiến trình sẽ lấy các nick cần liên lạc thông qua
truy vấn vào cơ sở dữ liệu, sau đó gửi thông điệp cho họ.
Đối với việc thêm dịch vụ của bên thứ ba. Chúng tôi đưa ra hai phương án giải quyết.
Thứ nhất: dịch vụ bên thứ ba cung cấp khá phức tạp và có liên quan một phần đến hệ
thống. Với loại dịch vụ như thế này thì chỉ có cách duy nhất cần những người biết về
chuyên môn (ví dụ như lập trình viên) viết các dịch vụ tương ứng rồi đưa vào hệ thống.
Thứ hai: đối với các dịch vụ đơn giản và không liên quan đến TCat. Bên thứ ba có thể
sử dụng một dịch vụ gọi là “Dịch vụ người dùng tự định nghĩa”. Dịch vụ này mỗi lần có
yêu cầu sẽ kết nối đến một liên kết, lấy các thông tin cần thiết về, sau đó đưa trả lại cho
người sử dụng. Các thông tin trả về phải được đưa theo một chuẩn đã thống nhất trước.
Người sử dụng cũng như bên thứ ba cần phải đăng ký một tài khoản để sử dụng hoặc
tạo ra các dịch vụ.
Ngoài việc cung cấp khung chương trình của TCat, chúng tôi còn cung cấp thêm một số
dịch vụ kèm theo, chi tiết các dịch vụ được mô tả ở chương 6.
Trong luận văn này, chúng tôi đưa vào thuật ngữ bot với ý nghĩa là một chương trình
máy tính, thực hiện một số nhiệm vụ tự động. Thuật ngữ WEB để chỉ một trong những
module của chúng tôi (khác với web).
2.1. Nhắn tin tức thì (IM)
Module này giúp người sử dụng giao tiếp với TCat thông qua các dịch vụ IM miễn phí.
Người sử dụng chỉ cần đăng ký một nick chat miễn phí từ nhà cung cấp dịch vụ chat,
2.2. WEB
Như đã nói ở phần trên, người sử dụng có thể tự mình cài đặt dịch vụ và sử dụng các
chức năng nâng cao của TCat. Nhưng việc sử dụng được chức năng nâng cao thông qua
IM sẽ rất khó khăn. Vì thế, chúng tôi đưa thêm vào module WEB. Thông qua giao diện
WEB thì chúng tôi sẽ quản lý người sử dụng dễ dàng hơn (tiện cho việc thương mại
hóa).
Người sử dụng khi muốn sử dụng các dịch vụ nâng cao trên WEB phải đăng ký cho
mình một tài khoản, việc này giúp quản lý công việc dễ dàng hơn. Ngoài ra việc đăng
ký tài khoản cũng giúp cho việc thương mại hóa TCat sau này thuận tiện hơn.
Giao diện WEB hỗ trợ một số tính năng nâng cao cho người dùng. Người dùng có thể tự
mình thêm vào một dịch vụ thông qua hai bước là: đăng ký từ khóa và cài đặt dịch vụ.
~ 8 ~
Một từ khóa cho phép chỉ đến một dịch vụ. Sau khi có từ khóa, người dùng muốn cài
đặt dịch vụ phải cấu hình các tham số cho phù hợp (thông điệp trả về, các args).
WEB dễ dàng sử dụng các dịch vụ nâng cao ví dụ như dịch vụ Nhắc việc, nếu muốn
nhắc việc theo chu kỳ, hoặc khi một sự kiện nào đó xảy ra. Việc cấu hình cho dịch vụ
trên thông qua IM sẽ phức tạp. Tuy nhiên nếu thông qua giao diện WEB thì mọi việc
rất dễ dàng.
Ngoài việc giúp quản lý người sử dụng dễ dàng và giúp người sử dụng quản lý công
việc dễ dàng hơn, module WEB còn kết nối trực tiếp đến CSDL, thực hiện các công
việc giúp giảm tải cho các module khác.
Lấy ví dụ về dịch vụ nhắc việc.
Với module IM, ý tưởng đơn giản ban đầu là module IM sẽ trực tiếp kết nối đến CSDL,
và cứ mỗi X phút (X là một số nào đó, có thể 1,2,3..) sau đó lấy danh sách các nick cần
nhắc việc. Sẽ rất trôi chảy nếu chỉ có vài chục đến vài trăm nick. Nhưng sẽ là thảm họa
nếu có tới vài trăm đến vài nghìn nick. Thảm họa ở chỗ Yahoo sẽ khóa (block) nick nếu
trong thời gian 1-3 giây nick đó gửi đi quá nhiều tin nhắn (Không cần biết gửi đến nhiều
nick hay không, chỉ cần biết là gửi nhiều tin nhắn. Yahoo làm việc này để ngăn chặn
việc spim tin nhắn).
Ý tưởng cải tiến trong trường hợp này là sẽ đưa vào nhiều con bot làm nhiệm vụ nhắn
thể sử dụng dịch vụ Nhắc việc thông qua giao diện WEB. Chỉ cần upload lên danh sách
các thầy cô và số điện thoại tương ứng. Sau đó là việc chọn thời gian và thông điệp và
các tin nhắn sẽ được gửi đến các số điện thoại ở trên. Vậy là mọi việc đã xong.
Thông qua dịch vụ này người sử dụng không cần phải nhớ quá nhiều lịch làm việc và an
tâm rằng mình sẽ không quên một việc gì đó.
~ 10 ~
Hình 2. 1: Mô hình tổng quan
~ 11 ~
WEB
CSDL
WService
WService
WAService
Giao
Diện
I
PyService
PyService
PyService
PyService
YahooBot
GTalkBot
SMSBot
Internet
WService
CSDL
CSDL
CSDL
Trên Hình 2. 1: Mô hình tổng quan là hình vẽ khái quát về mô hình tổng quan của
TCat. TCat gồm ba Module chính là WEB, IM, SMS.
2.4.1 Biểu đồ ngữ cảnh
Hình bên dưới là biểu đồ ngữ cảnh của TCat
Hình 2. 2 Biểu đồ ngữ cảnh hệ thống
Người sử dụng tương tác với TCat để sử dụng các dịch vụ. Dịch vụ đến người sử dụng
theo hai cách, chủ động và bị động.
Ở dạng chủ động, thông điệp được gửi đến người sử dụng mà người sử dụng không cần
có một tác động nào cả.
Ở dạng bị động, thông điệp đầu tiên từ người sử dụng gửi đến TCat là thông điệp yêu
cầu dịch vụ. TCat sẽ phân tích yêu cầu của người sử dụng, sau đó kiểm tra xem dịch vụ
~ 13 ~
Người
sử
dụng
Người
sử
dụng
TCat
Nhà
cung
cấp
dịch
vụ
Y/C dịch vụ
Hồi đáp
Thông điệp
Truy vấn
Kết quả
này có cần phải liên kết đến nhà cung cấp dịch vụ để lấy kết quả không. Nếu cần thì
TCat mở một kết nối truy vấn đến nhà cung cấp dịch vụ để lấy kết quả trả về. Sau đó
TCat sẽ phân tích kết quả trả về, lấy các thông tin cần thiết sau đó trả lại cho người sử