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

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ì

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

ĐẠ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.


Với trình độ và kiến văn còn hạn chế của người viết, khoá luận chắc chắn không tránh
khỏi khiếm khuyết. Chúng tôi hy vọng sẽ nhận được những ý kiến nhận xét, góp ý của
các nhà khoa học, các thầy cô giáo và bạn bè về những vấn đề được triển khai trong
khoá luận. Xin trân trọng cảm ơn!
Hà Nội, tháng 5 năm 2009
Sinh viên
Trương Lê Thành
TÓM TẮT NỘI DUNG
Khóa luận của chúng tôi trình bày tổng quan về một chương trình mà chúng tôi gọi là
TCat. Đây là một chương trình có thể gửi tin nhắn cho điện thoại di động cũng như cho
một số mạng nhắn tin tức thì (Yahoo, Google). Ngoài khả năng gửi tin nhắn, TCat còn
cho phép viết thêm một số dịch vụ khác cắm vào mà không cần thay đổi toàn bộ code.
Vì thế TCat có tính mở rộng cao. Các dịch vụ viết thêm vào có khả năng tương tác trực
tiếp với người sử dụng. Ngoài ra chúng tôi còn cung cấp thêm giao diện Web giúp
người sử dụng giao tiếp với hệ thống dễ dàng.
Do hạn chế về thời gian cho nên trong phạm vi khóa luận này chúng tôi chỉ xây dựng
các tính năng cơ bản và một số dịch vụ.
MỤC LỤC
LỜI MỞ ĐẦU ............................................................................................... 1
CHƯƠNG 1. ĐẶT VẤN ĐỀ ......................................................................... 2
1.1. Cuộc sống hiện đại ............................................................................. 2
1.1.1. Internet toàn cầu hóa .................................................................... 2
1.1.2. Sống gấp ...................................................................................... 2
1.2. Giải pháp ............................................................................................ 3
1.3. Nội dung của khóa luận ...................................................................... 3
CHƯƠNG 2. TỔNG QUAN VỀ TCAT ........................................................ 6
2.1. Nhắn tin tức thì (IM) ........................................................................... 7
2.2. WEB ................................................................................................... 8
2.3. SMS ................................................................................................. 10
2.4. Phân tích thiết kế .............................................................................. 13

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

5.1. Tổng quan về SMS .......................................................................... 52
5.1.1. Định nghĩa SMS ....................................................................... 52
5.1.2. Ưu điểm của SMS ...................................................................... 53
5.2. Gửi tin SMS từ máy tính đến điện thoại di động ............................... 54
5.2.1. SMS Gateway kết nối trực tiếp tới SMSC .................................. 56
5.2.2. SMS Gateway kết nối SMSC thông qua GSM modem ............... 58
5.3. Ngôn ngữ .......................................................................................... 59
5.4. Module SMS .................................................................................... 60
5.4.1. Mô hình cấu trúc module ........................................................... 60
5.4.2. Tiến trình thực hiện .................................................................... 61
CHƯƠNG 6. CÁC DỊCH VỤ CUNG CẤP ................................................. 63
6.1. Dịch vụ Chấp nhận/ Từ chối ............................................................. 63
6.1.1. Thiết kế CSDL ........................................................................... 63
6.1.2. Hoạt động .................................................................................. 64
6.2. Dịch vụ Người dùng tự định nghĩa .................................................... 65
6.2.1. Thiết kế CSDL ........................................................................... 65
6.2.2. Hoạt động .................................................................................. 66
6.3. Dịch vụ Phiên dịch ........................................................................... 68
6.4 Dịch vụ Thời tiết ............................................................................... 69
6.5. Dịch vụ Nhắc việc ............................................................................ 70
6.5.1. Tổng quan .................................................................................. 70
6.5.2. Thiết kế CSDL ........................................................................... 71
.................................................................................................................... 71
6.5.3 Hoạt động ................................................................................... 74
7.1. Cấu hình NowSMS kết nối trực tiếp tới SMSC của Viettel ............... 76
7.2. Tạo kết nối Giữa NowSMS với GSM Modem .................................. 79
TÀI LIỆU THAM KHẢO ........................................................................... 80
THUẬT NGỮ VIẾT TẮT........................................................
CSDL Cơ Sở Dữ Liệu Cơ sở dữ liệu
GSM

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

Internet.
Ngày nay, Internet được sử dụng rộng rãi trên toàn thế giới. Những ứng dụng trên
Internet đã có bước phát triển bùng nổ, với nhiều loại hình dịch vụ mới như thương mại
điện tử, giải trí trực tuyến, đào tạo trực tuyến,…Sự ra đời của các dịch vụ trên Internet
đã giúp ích rất nhiều cho cuộc sống của mọi người thuận tiện, thoải mái, tốt đẹp hơn.
Vì những lý do trên chúng tôi đã nảy ra ý định xây dựng lên chương trình có thể nhắn
tin tự động, trả lời tự động đến nick Yahoo, GoogleTalk hay số điện thoại của người sử
dụng với những nội dung đã được đăng ký với chúng tôi như giá chứng khoán, giá
ngoại tệ, thời tiết,…
Chương trình của chúng tôi xây dựng được gọi là TCat.
TCat có tính ứng dụng thực tiễn cao. Chúng tôi đã đưa vào thực tiễn một số dịch vụ của
TCat như dịch vụ Phiên dịch, Nhắc việc. Dịch vụ Phiên dịch là dịch vụ giúp người sử
dụng dịch một đoạn văn bản, một từ hoặc thậm chí cả một tài liệu. Dịch vụ này của
chúng tôi sử dụng lại dịch vụ miễn phí của Google là Google Translate. Dịch vụ Nhắc
việc là dịch vụ dịch vụ cho phép người sử dụng có thể đăng ký nhận tin nhắn tự động
(nhắc việc) tới chính nick Yahoo, GoogleTalk hoặc số điện thoại của mình vào một thời
điểm nào đó, hoặc khi một trang Web có sự thay đổi,…
~ 1 ~
CHƯƠNG 1. ĐẶT VẤN ĐỀ
1.1. Cuộc sống hiện đại
1.1.1. Internet toàn cầu hóa
Toàn cầu hóa (Globalization) là “một xu hướng làm các mối quan hệ trở nên ít bị ràng
buộc bởi địa lý lãnh thổ”, là khái niệm dùng để miêu tả các thay đổi trong xã hội và
trong nền kinh tế thế giới, tạo ra bởi mối liên kết và trao đổi ngày càng tăng giữa các
quốc gia, các tổ chức hay các cá nhân ở góc độ văn hoá, kinh tế, v.v. trên quy mô toàn
cầu. Về bản chất thì toàn cầu hóa là sự mở rộng thị trường ra ngoài biên giới quốc gia.
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
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

ảnh hưởng không tốt đến công việc cuộc sống của mọi người.
Từ những lý do trên chúng tôi đã nảy ra ý định xây dựng lên chương trình có thể nhắn
tin tự động, trả lời tự động đến nick Yahoo, GoogleTalk hay số điện thoại của người sử
dụng với những nội dung đã được đăng ký với chúng tôi như giá chứng khoán, giá
ngoại tệ, thời tiết,…sẽ giúp ích một phần cho cuộc sống.
Chương trình của chúng tôi xây dựng được gọi là TCat.
TCat là một chương trình mở, không chỉ có các dịch vụ đã cung cấp mà còn cho phép
người sử dụng thêm các dịch vụ vào.
1.3. Nội dung của khóa luận
Khóa luận của chúng tôi gồm có bảy chương cụ thể sau:
Chương 1. Đặt vấn đề và cách giải quyết
Chương này nhằm nói tới nguyên nhân khách quan, mục đích khi xây dựng TCat, tính
ứng dụng thực tiễn, những lợi ích của TCat và những nội dung chính của khóa luận.
Chương 2. Tổng quan về TCat, các giao diện của TCat và thiết kế cơ sở dữ liệu của
TCat
~ 3 ~
Nội dung chủ yếu của chương này là nói về tổng quan TCat. TCat gồm có ba module
chính đó là IM, Web và SMS với một số dịch vụ như Phiên dịch, Nhắc việc,…Module
IM là module giúp người sử dụng giao tiếp với hệ thống thông qua các dịch vụ tin nhắn
tức thì 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, sau đó dùng nick chat của mình (có thể là nick Yahoo, GoogleTalk,
Skype ..) yêu cầu một dịch vụ từ TCat. Module Web đảm nhận công việc là giao diện
giao tiếp với người sử dụng, đọc cơ sở dữ liệu nếu như các module hay dịch vụ khác
yêu cầu và trả về kết quả. Module SMS là module gửi tin nhắn từ máy tính tới số điện
thoại của người sử dụng mà đã đăng ký với TCat.
Chương 3. Giao thức Yahoo Messenger với module Yahoo Bot và Giao thức Google
Talk với module Gtalk Bot
Trong chương này gồm có hai phần:
Phân tích, mô tả giao thức của Yahoo Messenger, phân tích thiết kế và xây dựng module
Yahoo Bot.

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

các dịch vụ vào TCat.
Chương 7. Phụ lục kèm theo
Chương này với nội dung về cách cấu hình SMS Gateway theo hai cách kết nối được
trình bày ở chương 5.
Trong khóa luận này tôi đã phân tích và xây dựng module IM, phân tích thiết kế module
Web, xây dựng các dịch vụ: Phiên dịch, Người dùng tự định nghĩa, Chấp nhận từ chối,
Nhắc việc khi có trang web thay đổi.
Còn bạn Thảo đã phân tích xây dựng module SMS, xây dựng module Web, xây dựng
các dịch vụ: Nhắc việc theo thời gian, thời tiết.
~ 5 ~
CHƯƠNG 2. TỔNG QUAN VỀ TCAT
TCat là sự kết hợp của các module IM, SMS, WEB. Mỗi module đảm nhiệm một chức
vụ khác nhau trong toàn bộ hệ thống. TCat cung cấp cho người dùng các dịch vụ dựa
trên việc nhắn tin qua nick Yahoo, GoogleTalk hoặc Mobile.
Các module ghép lại đảm nhiệm vị trí khung chương trình (framework). Bộ khung
chương trình này chịu trách nhiệm gửi và nhận tin nhắn qua Yahoo, GoogleTalk hoặc
Mobile. TCat được thiết kế là chương trình mở. Điều này có nghĩa là TCat được thiết
kế sao cho việc thêm các dịch vụ là hoàn toàn đơn giản. Vì có khung chương trình rồi
lập trình viên hoặc bất kì một người sử dụng nào cũng có thể thêm vào các dịch vụ
khác. Đối với những dịch vụ phức tạp thì ngưởi sử dụng cần nghiên cứu các hàm, giao
diện do khung chương trình cung cấp.
Chúng tôi đưa vào hai loại dịch vụ.
Loại dịch vụ thứ nhất: dịch vụ gửi tin nhắn thụ động. Điều này có nghĩa là dịch vụ chỉ
được kích hoạt khi nào có yêu cầu. Ví dụ như các dịch vụ Phiên dịch, Nhắc việc. Dịch
vụ Phiên dịch là dịch vụ giúp người sử dụng dịch một đoạn văn bản, một từ hoặc thậm
chí cả một tài liệu. Dịch vụ này của chúng tôi sử dụng lại dịch vụ miễn phí của Google
là Google Translate. Dịch vụ Nhắc việc là dịch vụ dịch vụ cho phép người sử dụng có
thể đăng ký nhận tin nhắn tự động (nhắc việc) tới chính nick Yahoo, GoogleTalk hoặc
số điện thoại của mình vào một thời điểm nào đó, hoặc khi một trang Web có sự thay
đổi,…Mỗi khi yêu cầu dịch vụ, người sử dụng chỉ cần viết lệnh và gửi cho một nick

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,

sau đó dùng nick chat của mình (có thể là nick Yahoo, GoogleTalk, Skype ..) yêu cầu
một dịch vụ từ TCat. Quá trình này có thể tưởng tượng như sau:
Người sử dụng dùng nick chat của mình chat với nick Yahoo hoặc nick Google Talk trả
lời tự động của chúng tôi (các nick trả lời tự động thực ra là một chương trình chúng tôi
tạm gọi là con bot) yêu cầu nhắc việc, tra từ điển, xem tỷ giá chứng khoán, xem tin tức,
xem dự báo thời tiết, gửi tin cho điện thoại di động, thu thập ý kiến … Con bot sẽ đưa ra
các hồi đáp ứng với yêu cầu của người sử dụng.
Nhìn chung về phía IM thì người sử dụng giao tiếp khá hạn chế với con bot. Người sử
dụng chỉ có thể yêu cầu dịch vụ bằng cách gửi tin đến con bot theo một cú pháp nhất
~ 7 ~
định nào đó (Chẳng hạn muốn xem dự báo thời tiết thì gõ /weather HANOI ). Vì thế
một số tính năng nâng cao sẽ rất khó sử dụng hoặc không được cài đặt vì khá phức tạp.
Ví dụ với dịch vụ nhắc việc cho một danh sách dài. Nhắc việc vào lúc 8h của thứ sáu
hàng tuần. Nội dung của nhắc việc là tin dự báo thời tiết. Với một yêu cầu khá phức tạp
như vậy thì cấu trúc lệnh sẽ rất phức tạp, người sử dụng sẽ rất lúng túng khi sử dụng
dịch vụ vì không thể nhớ hết cấu trúc lệnh.
Ngoài ra, chúng tôi còn cung cấp các dịch vụ do người dùng tự định nghĩa. Tất nhiên, để
sử dụng dịch vụ này, người sử dụng phải tuân thủ một số chuẩn do chúng tôi đề ra. Và
sẽ khá phức tạp cho người sử dụng nếu chỉ có duy nhất một cổng giao tiếp qua IM.
Người sử dụng cấu hình dịch vụ của họ rất khó khăn qua dòng lệnh (không có giao diện
đồ họa), tính bảo mật của phương thức này cũng không cao.
Để đảm bảo công việc không bị tắc nghẽn, và tiện cho quá trình mở rộng sau này.
Chúng tôi thiết kế sao cho module IM có thể có nhiều thể hiện (instance). Nói một cách
khác, nếu coi module IM như một chương trình thì có thể chạy nhiều chương trình như
thế. Trong tương lai, để phục vụ nhiều người thì một nick (Yahoo, Gtalk) là không đủ
cần phải mở rộng ra nhiều nick. Có thể thuê những máy khách hàng nếu máy chủ không
đủ tài nguyên để chạy các ứng dụng IM (có băng thông mạng cao, máy cấu hình mạnh).
Khách hàng khi chạy ứng dụng IM cần có Username và Password, mỗi lần chạy sẽ được
tính thời gian online sau đó qui đổi ra tiền (hoặc cái gì đó có giá trị) để tặng lại khách
hàng.

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

tin. Con bot có thể hiểu là các thể hiện (instance) của module IM. Tuy nhiên cùng với ý
tưởng trên, một bài toán khó đặt ra là vấn đề đồng bộ giữa các con bot. Làm sao cho các
con bot không lấy dữ liệu trùng nhau, phân chia công việc, giảm tải một cách có hiệu
quả nhất. Đây là một bài toán khó, liên quan đến CSDL phân tán. Tuy nhiên nếu tư duy
theo một cách khác thì sẽ tránh được bài toán khó này mà vẫn đạt được mục tiêu như
ban đầu.
Ý tưởng của chúng tôi rất đơn giản. Chúng tôi sẽ giảm tải cho module IM. Đưa vào
module WEB ở giữa module IM và CSDL. Nói cách khác, Module IM bây giờ không
thao tác trực tiếp với CSDL nữa. Mọi thao tác đều thông qua WEB. Như vậy module IM
không mất tài nguyên kết nối CSDL, cũng không cần giải quyết bài toán khó về việc
đồng bộ hóa giữa các con bot. Con bot chỉ cần yêu cầu kết nối đến WEB, WEB sẽ xử lý
hết tất cả các công việc phức tạp, sau đó đưa lại cho con bot một danh sách các nick
Yahoo cần nhắc việc. Việc xử lý đồng bộ bây giờ đưa về việc xử lý tuần tự ở WEB. Ở
phía WEB việc xử lý rất đơn giản. WEB chỉ cần thống kê số lượng các con bot online
trên mạng, sau đó chia đều công việc cho chúng. Nếu số lượng nick cần nhắc việc quá
~ 9 ~
nhiều so với số lượng đáp ứng được của mỗi con bot thì WEB chỉ trả lại số lượng nick
nhắc việc mà mỗi con bot có thể làm được.
Để bảo mật thì mỗi con bot có một chuỗi khóa bí mật. Khi lấy thông tin từ WEB thì con
bot phải cung cấp chuỗi khóa đó cho WEB kiểm tra. Mọi kết nối đến WEB đều dựa trên
giao thức HTTPS.
2.3. SMS
Không phải lúc nào mọi người cũng có thể online. Tuy nhiên nhu cầu kết nối là điều
không thể thiếu. Module SMS được đưa vào để hoàn thiện thêm cho TCat. Sử dụng
dịch vụ SMS có thể gửi tin nhắn cho số điện thoại nào đó, nạp tiền vào tài khoản (nếu
thương mại hóa).
Ví dụ sử dụng dịch vụ Nhắc việc trong việc coi thi: văn phòng khoa của nhà trường
muốn nhắc nhở các các thầy cô giáo là đúng 8h hôm nay bắt đầu coi thi học kỳ .Tất
nhiên văn phòng khoa có thể gọi điện hoặc nhắn tin đến từng thầy cô một. Tuy nhiên sẽ
là lãng phí cả về tài chính, thời gian và công sức nếu có quá nhiều. Văn phòng khoa có

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.

Moudle IM gồm hai module con là Yahoo Bot và Gtalk Bot. Cả hai đều có thể có nhiều
thể hiện (instance). Module SMS cũng như vậy. Cả hai module đều kết nối với các dịch
vụ PyService thông qua giao diện I. Giao diện I giúp các module IM và SMS kết nối
với các dịch vụ dễ dàng hơn.
PyService là các dịch vụ được viết bằng Python. Các dịch vụ này được viết theo tiêu chí
càng đơn giản càng tốt, sẽ không tự xử lý dữ liệu mà chuyển sang một nơi nào đó xử lý
dữ liệu rồi nhận kết quả trả về. Trong các moudle IM, SMS có thể thấy còn có thêm
CSDL. Đây là những CSDL của riêng các module đó, các module này sử dụng CSDL
với mục đích tăng tốc, giảm chi phí về tài nguyên mạng.
Các module IM, SMS kết nối dịch vụ PyService thông qua giao diện I. Điều này có
nghĩa là các dịch vụ PyService chỉ cần viết một lần, sẽ chạy được trên cả hai moudle IM
và SMS. Muốn có được điều này thì khi viết code các dịch vụ PyService phải tuân thủ
một số chuẩn.
Các dịch vụ PyService sẽ không tự xử lý dữ liệu mà kết nối đến nơi khác để lấy kết quả
trả về. Nơi khác ở đây có thể là một nguồn từ Internet hoặc là nhưng dịch vụ do WEB
cung cấp (WService). Những dịch vụ mang tính đặc trưng (ví dụ như nhắc việc), có liên
quan đến CSDL của TCat thì PyService sẽ kết nối đến WService, còn những dịch vụ
chung chung (chẳng hạn như Thời tiết, Phiên dịch …) thì PyService sẽ kết nối đến
nguồn dữ liệu từ Internet.
Ở đây có một dịch vụ đặc biệt được cung cấp ở bên phía WEB, đó là dịch vụ cho phép
người sử dụng tự định nghĩa (WAService). Dịch vụ này cho phép người sử dụng có thể
tự mình thiết kế, tạo nên một dịch vụ. Để làm được điều này, người sử dụng cần tuân
thủ theo một số chuẩn đã đề ra trước. Thực chất của dịch vụ này rất đơn giản, người sử
dụng chỉ cần khai báo một liên kết (link) đến trang cung cấp thông tin và xử lý dữ liệu
của họ. Tiếp theo người sử dụng cần khai báo các tham số đầu vào cần thiết. Khi một
người dùng khác muốn sử dụng dịch vụ này, chỉ cần đánh đúng cú pháp thì TCat sẽ tự
động kết nối đến dịch vụ đó, lấy thông tin trả về, xuất thông tin đó ra theo mẫu do người
sử dụng thiết kế.
~ 12 ~
2.4. Phân tích thiết kế

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ử

dụng dưới dạng một hồi đáp.
2.4.2. Cơ sở dữ liệu
Cơ sở dữ liệu của TCat tập trung hầu hết ở phần WEB. Nói cách khác, chỉ có phần
WEB mới được quyền tương tác trực tiếp với CSDL, các module khác không được phép
tương tác trực tiếp với CSDL vì lý do bảo mật. CSDL sẽ được nói rõ ở phần WEB. Ở
chương hai này, chúng tôi chỉ giới thiệu tóm tắt.
CSDL được chia làm hai phần chính, phần khung chương trình và phần dịch vụ.
~ 14 ~
Hình 2. 3 CSDL của TCat
Phần khung chương trình sẽ bao gồm các bảng Friend, User, GroupACL, Service, Bot,
Group là phần lõi của chương trình. Các bảng này sẽ được xây dựng sẵn từ đầu. Mối
liên hệ giữa các bảng cũng như mô tả chi tiết sẽ được nói rõ ở phần chương bốn.
Các bảng còn lại thuộc phần dịch vụ. Các bảng thuộc phần dịch vụ được xây dựng thêm
sau này, tùy theo mỗi dịch vụ ta lại xây dựng các bảng cho phù hợp. Vì các bảng thuộc
phần dịch vụ được xây dựng sau nên chúng phải tương thích với các bảng thuộc phần
khung chương trình.
~ 15 ~

×