Khóa luận 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ì

ĐẠ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............................................................................................3  
1.2. Giải pp..................................................................................................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....................................................................................13  
CHƯƠNG 3. GIAO DIỆN IM...........................................................................15  
3.1. Tổng quan giao thức Yahoo Messenger (YMSG) ...................................15  
3.1.1. Sự khác nhau giữa các phiên bản .....................................................16  
3.1.2. Cấu trúc một gói tin của YMSG.......................................................17  
3.1.3. Dịch vụ ............................................................................................19  
3.1.4. Status codes (mã trạng thái) .............................................................20  
3.1.5. Session.............................................................................................21  
3.2. Mô tả chi tiết giao thức YMSG...............................................................21  
3.2.1. Verify ..............................................................................................22  
3.2.2. Xác thực (Authentication )...............................................................23  
3.2.3. Gửi /nhận tin nhắn ...........................................................................27  
3.2.4. Gửi chú ý bắt đầu/dừng việc đánh máy ............................................28  
3.2.5. Logoff..............................................................................................29  
3.2.7. Thêm bn.........................................................................................30  
3.2.8. Xóa nick trong danh sách bạn ..........................................................31  
3.3. Phân tích thiết kế module Yahoo bot ......................................................32  
3.3.1. Ngôn ng.........................................................................................32  
3.3.2. Cấu trúc của module ........................................................................33  
3.3.3. Tiến trình thực hiện..........................................................................34  
3.4. Tổng quan giao thức Google Talk...........................................................36  
3.4.1. Các bước kết nối..............................................................................37  
3.4.2. Cấu trúc module...............................................................................37  
CHƯƠNG 4. GIAO DIỆN WEB.......................................................................40  
4.1. Tổng quan về Web..................................................................................40  
4.2. Ngôn ng................................................................................................41  
4.3. Thiết kết CSDL ......................................................................................41  
4.4. Thiết kế module......................................................................................44  
CHƯƠNG 5. GIAO DIỆN SMS........................................................................50  
5.1. Tổng quan về SMS .................................................................................50  
5.1.1. Định nghĩa SMS .............................................................................50  
5.1.2. Ưu điểm của SMS............................................................................51  
5.2. Gửi tin SMS từ máy tính đến điện thoại di động .....................................52  
5.2.1. SMS Gateway kết nối trực tiếp tới SMSC........................................55  
5.2.2. SMS Gateway kết nối SMSC thông qua GSM modem.....................57  
5.3. Ngôn ng................................................................................................58  
5.4. Module SMS ..........................................................................................59  
5.4.1. Mô hình cấu trúc module .................................................................59  
5.4.2. Tiến trình thực hiện..........................................................................60  
CHƯƠNG 6. CÁC DỊCH VỤ CUNG CẤP.......................................................62  
6.1. Dịch vụ Chấp nhận/ Từ chối...................................................................62  
6.1.1. Thiết kế CSDL.................................................................................62  
6.1.2. Hoạt động ........................................................................................63  
6.2. Dịch vụ Người dùng tự định nghĩa..........................................................64  
6.2.1. Thiết kế CSDL.................................................................................65  
6.2.2. Hoạt động ........................................................................................65  
6.3. Dịch vụ Phiên dịch .................................................................................67  
6.4 Dịch vụ Thời tiết......................................................................................68  
6.5. Dịch vụ Nhắc việc ..................................................................................69  
6.5.1. Tổng quan........................................................................................69  
6.5.2. Thiết kế CSDL.................................................................................70  
6.5.3 Hoạt động .........................................................................................73  
CHƯƠNG 7. PHỤ LỤC....................................................................................75  
7.1. Cu hình NowSMS kết ni trc tiếp ti SMSC ca Viettel .....................76  
7.2. To kết ni Gia NowSMS vi GSM Modem ........................................79  
TÀI LIỆU THAM KHẢO .................................................................................80  
THUẬT NGỮ VIẾT TẮT  
CSDL  
GSM  
Cơ Sở Dữ Liệu  
Cơ sở dữ liệu  
Global System for Mobile  
communications  
Hệ thống toàn cầu cho  
truyền thông di động  
Giao thức truyền siêu văn  
bản  
HTTP  
Hypertext Transfer Protocol  
HTTPS  
IM  
Hypertext Transfer Protocol Secure  
Instant Messaging  
HTTP an toàn  
Tin nhắn tức thì  
Short Message Peer-to-peer  
Protocol  
Giao thức tin nhắn ngắn  
SMPP  
ngang hàng  
SMS  
Short Message Service  
Dịch vụ tin nhắn ngắn  
Trung tâm tin nhắn  
SMSC  
Short Message Service Center  
Transmission Control Protocol /  
Internet Protocol  
Giao thức truyền tin tin cậy  
trên nền Internet  
TCP/IP  
DANH SÁCH HÌNH VẼ  
Hình 2. 1: Mô hình tổng quan ....................................................................................11  
Hình 2. 2 Biểu đồ ngữ cảnh hệ thống...........................................................................1  
Hình 2. 3 CSDL của TCat........................................................................................14  
Hình 3. 1: Ảnh chụp màn hình chương trình Wireshark.............................................16  
Hình 3. 2: Cấu trúc gói tin YMSG phiên bản 12 ........................................................16  
Hình 3. 3: Cấu trúc gói tin YMSG phiên bản 9 ..........................................................17  
Hình 3. 4: Cấu trúc gói tin YMSG phiên bản 15 ..........................................................1  
Hình 3. 5: Cấu trúc trường Data...................................................................................1  
Hình 3. 6: Giao thức YMSG ......................................................................................22  
Hình 3. 7: Cấu trúc gói tin Verify ................................................................................1  
Hình 3. 8: Gói tin Verify hồi đáp từ Server ..................................................................1  
Hình 3. 10: Ảnh chụp gói tin Authentication..............................................................24  
Hình 3. 9: Gói tin Authentication.................................................................................1  
Hình 3. 12: Ảnh chụp gói tin Authentication ACK.....................................................25  
Hình 3. 11: Gói tin trả lời Authenticaion ACK.............................................................1  
Hình 3. 14: Ảnh chụp gói tin Authentication Response..............................................26  
Hình 3. 13: Gói tin Authentication Response...............................................................1  
Hình 3. 15: Gói tin Message ........................................................................................1  
Hình 3. 16: Ảnh chụp gói tin Message.......................................................................28  
Hình 3. 17: Cấu trúc gói tin Notify...............................................................................1  
Hình 3. 18: Ảnh chụp gói tin Notify.............................................................................1  
Hình 3. 20: Ảnh chụp gói tin Logoff..........................................................................30  
Hình 3. 19: Gói tin Logoff ...........................................................................................1  
Hình 3. 21: Cấu trúc gói tin Add Buddy.......................................................................1  
Hình 3. 22: Ảnh chụp gói tin Add Buddy...................................................................31  
Hình 3. 23: Cấu túc gói tin Remove Buddy..................................................................1  
Hình 3. 24: Ảnh chụp gói tin Remove Buddy.............................................................32  
Hình 3. 25: Cấu trúc module Yahoo Bot ......................................................................1  
Hình 3. 26 Cấu trúc module Gtalk bot.......................................................................36  
Hình 4. 1 Mối liên hệ giữa các bảng trong CSDL.......................................................43  
Hình 4. 2 Sơ đồ cấu trúc module WEB ........................................................................1  
Hình 5. 1 SMS Gateway kết nối trực tiếp với SMSC....................................................1  
Hình 5. 2 Mô hình gửi tin SMS với SMS Gateway kết nối với SMSC thông qua GSM  
Modem ........................................................................................................................1  
Hình 5. 3 Kết nối của Module SMS với SMS Gateway..............................................59  
Hình 6. 1: Mối quan hệ Friend - User.........................................................................63  
Hình 6. 2: Mối quan hệ User và Udef.........................................................................65  
Hình 6. 3: Mối quan hệ CSDL trong dịch vụ nhắc việc theo thời gian........................71  
Hình 6. 4: Mối quan hệ CSDL trong dịch vụ nhắc việc theo sự thay đổi của trang web  
..................................................................................................................................72  
Hình 7. 1 Giao diện của NowSMS.............................................................................75  
Hình 7. 2 Lựa chọn kết nối tới SMSC........................................................................76  
Hình 7. 3 Cấu hình kết nối.........................................................................................77  
Hình 7. 4 Chạy dịch vụ ..............................................................................................78  
Hình 7. 5 Kết nối tới modem......................................................................................79  
Hình 7. 6 Lựa chọn thiết bị GSM để kết nối...............................................................79  
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ó thnhắ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.  
TCatcó 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.  
~ 2 ~  
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,  
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ó thnhắ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.  
TCatlà 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 TCatvà những nội dung chính của khóa  
luận.  
~ 3 ~  
Chương 2. Tổng quan vTCat, các giao diện của TCatvà thiết kế cơ sở dữ liệu của  
TCat  
Nội dung chủ yếu của chương này là nói về tổng quan TCat. TCatgồ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 TCatquả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.  
~ 4 ~  
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  
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.  
TCatsẽ 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 TCatcủ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. TCatcung 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 TCatgửi tin nhắn cho mình. Thực chất của dịch vụ này  
~ 6 ~  
là một tiến trình 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 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ỉ mt 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 TCatthô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.  
~ 7 ~  
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  
đị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 TCatsau này thuận tiện hơn.  
~ 8 ~  
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. 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 scho 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  
~ 9 ~  
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á 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ó thonline. 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 skhông quên một việc gì đó.  
~ 10 ~  
YahooBot  
WEB  
WAService  
CSDL  
CSDL  
WService  
WServi
WServi
PyService  
PyService  
Giao  
Diện  
GTalkBot  
PyService  
PyService  
I
CSDL  
SMSBot  
Internet  
CSDL  
Hình 2. 1: Mô hình tổng quan  
~ 11 ~  
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. TCatgồ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 Igiú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 TCatthì 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ì  
TCatsẽ 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  
Y/C dịch vụ  
Truy vấn  
Kết quả  
Người  
sử  
dụng  
Nhà  
cung  
cấp  
TCat  
Hồi đáp  
dịch  
vụ  
Người  
sử  
Thông điệp  
dụng  
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 TCatlà thông điệp yêu  
cầu dịch vụ. TCatsẽ phân tích yêu cầu của người sử dụng, sau đó kiểm tra xem dịch  
vụ 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ì  
TCatmở 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 đó  
TCatsẽ 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 TCattậ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.  
~ 13 ~  
CSDL được chia làm hai phần chính, phần khung chương trình và phần dịch vụ.  
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.  
~ 14 ~  
CHƯƠNG 3. GIAO DIỆN IM  
3.1. Tổng quan giao thức Yahoo Messenger (YMSG)  
Yahoo Messenger hiện nay là một chương trình chat khá phổ biến của người Việt Nam  
cũng như trên thế giới. Theo thống kê thì có khoảng 248 triệu người đăng ký sử dụng  
dịch vụ chat của Yahoo[2]. Ở Việt Nam thì Yahoo Messenger đã chiếm ưu thế hơn rất  
nhiều so với các loại khác (Skype, GoogleTalk, AIM, Windows Live Messenger),  
mặc dù trên thế giới thì tỷ lệ khá cân bằng.  
Mô hình của giao thức Yahoo theo kiểu Client Server. Theo đó Client là chương  
trình Yahoo Messenger chat bình thường người sử dụng hay chạy trên máy tính.  
Server là một số máy chủ của Yahoo. Khi đăng nhập Client gửi yêu cầu đến Server.  
Server có quyền từ chối yêu cầu hoặc xác thực yêu cầu. Sau khi đã được Server chấp  
nhận cho phép kết nối. Client sẽ lấy toàn bộ danh sách bạn bè, các tùy chọn cá nhân,  
vv... từ Server. Không có một kết nối trực tiếp nào được mở khi một Client muốn kết  
nối để trò chuyện với một Client khác (hai người trên hai máy tính, chạy hai chương  
trình Yahoo Messenger, chát với nhau) thì, mọi kết nối đề thông qua Server[3]. Server  
sẽ đóng vài trò là người điều khiển cuộc trò chuyện này.  
Giao thức của Yahoo Messenger là giao thức đóng. Chương trình chát Yahoo  
Messenger là chương trình mã đóng (closed source) do vậy chúng tôi sẽ không nhận  
được bất cứ sự hỗ trợ nào của Yahoo. Mọi thông tin chúng tôi có ở dưới đây đều dựa  
theo tài liệu tìm kiếm được trên internet và dựa vào việc bắt các gói tin của chương  
trình Yahoo Messenger. Việc bắt gói tin tôi sử dụng chương trình WireShak[4]. Ban  
đầu tôi sử dụng chương trình WireShark phiên bản cũ (phiên bản 0.99.0) đã có hỗ trợ  
giao thức YMSG nhưng chưa đầy đủ, việc bắt gói tin và lọc gói tin gặp khá nhiều khó  
khăn. Tuy nhiên sang đến phiên bản mới (phiên bản hiện tại tôi đang sử dụng là phiên  
bản 1.0.7) việc lọc gói tin đã đơn giản hơn khá rất nhiều.  
Khi thực hiện việc lọc gói tin thì giao thức hiện tại của Yahoo là giao thức phiên bản  
15 (phù hợp với Client là Yahoo Messenger phiên bản 8.13). Trên mạng có một số  
miêu tả về giao thức Yahoo phiên bản 9, mới nhất là phiên bản 12. Nhìn chung hai  
phiên bản có khá nhiều điểm khác biệt rõ rệt. Tuy nhiên vẫn có một số điểm chung (về  
cấu trúc, một số mã dịch vụ vv..).  
~ 15 ~  
Hình 3. 1: Ảnh chụp màn hình chương trình Wireshark  
3.1.1. Sự khác nhau giữa các phiên bản  
Giao thức YMSG là giao thức đóng, và mỗi phiên bản của giao thức thì cấu trúc của  
gói tin lại bị thay đổi chút ít. Ví dụ với giao thức phiên bản 9 có trường phiên bản giao  
thức (version dài 4 byte) trong khi ở giao thức phiên bản 12 thì trường version này chỉ  
có độ dài là 2 byte.  
Hình 3. 2: Cấu trúc gói tin YMSG phiên bản 12  
~ 16 ~  
Hình 3. 3: Cấu trúc gói tin YMSG phiên bản 9  
Như đã thấy ở hai hình trên, YMSG phiên bản 9[5] và phiên bản 12[6] có sự khác nhau  
về cấu trúc gói tin. Tuy cả 2 đều 20 byte tiêu đề nhưng ý nghĩa và vị trí thì có sự khác  
biệt.  
Đó là chưa kể sự khác nhau về dịch mã dịch vụ cũng như mã trạng thái…  
Sự khác nhau này phải qua khá nhiều lần chúng tôi mới nhận thấy được. Vì ban đầu  
chúng tôi quyết định viết chương trình với giao thức YMSG phiên bản 15 (trên mạng  
vẫn chưa có miêu tả cụ thể về giao thức YMSG phiên bản 15). Tuy nhiên cấu trúc của  
YMSG phiên bản 15 lại khác với phiên bản 9 và phiên bản 12. Sau khá nhiều lần bắt  
gói tin và phân tích , chúng tôi mới đưa ra kết luận về cấu trúc của gói tin YMSG  
phiên bản 15.  
3.1.2. Cấu trúc một gói tin của YMSG  
2 Byte  
2 Byte  
2 Byte  
2 Byte  
2 Byte  
Pkg_len  
Session id  
Version  
Y M
 
S G  
Service  
Status  
DATA  
0 - 65535  
Hình 3. 4: Cấu trúc gói tin YMSG phiên bản 15  
~ 17 ~  
Trong hình trên tất cả các trường số đều chứa theo kiểu network byte order  
Tiêu đề của một gói tin gồm có 20 byte đầu tiên:  
YMSG  
4 byte đầu tiên của tất cả các gói luôn là YMSG – tên của giao thức.  
Version  
2 byte tiếp theo là số phiên bản của giao thức[7]  
VD với version 9: 0x00 0x09  
Với version 15 là 0x00 0x0F  
Pkg_len  
Có giá tr4 byte, cho biết độ dài của dữ liệu trong gói tin.  
Service  
Là một mã 2 byte báo cho Client/Server biết loại dịch vụ là yêu cầu/ hồi đáp.  
Status  
Trong trường hợp là hồi đáp của Server, trường status báo cho Client biết yêu cu là  
thành công hay thất bại,... Trong trường hợp là yêu cầu từ Client tới Server thì status  
thường bằng 0, …  
Session id  
Khi Client gửi gói tin đầu tiên thì `là 0, Server hồi đáp với session id được sử dụng bởi  
client và Server trong tất cả các gói sau này. Server có thể thay đổi session id, trong  
trường hợp này thì Client phải sử dụng session id mới.  
DATA  
Data section có độ dài là pkg_len và chứa một chuỗi khóa/giá trị. Tất cả khóa là chuỗi  
số. Gói chứa giá trị số của các kí tự ASCII. VD: 1 == 0x31, 21 == 0x32 0x31. Số lớn  
nhất của khóa là không biết tuy nhiên độ dài lớn nhất của khóa hiện nay là 3 kí tự. Mọi  
khóa và giá trị bị ngăn bởi 2 byte liên tiếp là 0xc0 0x80. Một vài khóa có thể có giá trị  
rỗng. Nghĩa của một khóa khi gửi được quyết định bởi dịch vụ sử dụng. Hình dưới mô  
tả cấu trúc của trường DATA.  
~ 18 ~  
HEADER  
ID  
C080  
Data  
C080  
ID  
C080  
Data  
C080  
Hình 3. 5: Cấu trúc trường Data  
VD: gói dữ liệu được gửi sẽ như sau:  
0x30 0xc080 Yahoo_id 0xc080 0x31 0xc080 active_id 0xc080 0x35  
0xc080 recipient_id 0xc080 0x3134 0xc080 message_text 0xc080  
0xc080 byte là một chuỗi ngăn cách.  
Các giá tr0x30, 0x31, 0x35 0x3134 là các khóa. Chuyển sang mã ASCII sẽ tương  
ứng với c giá trị sau: 0, 1, 5, 14 (0x3134 == 0x31 0x34).  
3.1.3. Dịch vụ  
Có 45 dịch vụ được biết đến trong version 9[8], mặc dù có thể tồn tại nhiều hơn. Tất cả  
các dịch vụ được biết đến được liệt kê trong danh sách phía dưới với các giá trị hex  
của chúng.  
YAHOO_SERVICE_LOGON  
= 0x01  
= 0x05  
= 0x0a  
= 0x0f  
= 0x10  
= 0x14  
= 0x16  
= 0x18  
= 0x1a  
YAHOO_SERVICE_IDLE  
YAHOO_SERVICE_USERSTAT  
YAHOO_SERVICE_NEWCONTACT  
YAHOO_SERVICE_ADDIDENT  
YAHOO_SERVICE_SYSMESSAGE  
YAHOO_SERVICE_PASSTHROUGH2  
YAHOO_SERVICE_CONFINVITE  
YAHOO_SERVICE_CONFDECLINE  
~ 19 ~  
YAHOO_SERVICE_CHATLOGOFF  
YAHOO_SERVICE_CHATMSG  
YAHOO_SERVICE_GAMELOGON  
YAHOO_SERVICE_GAMEMSG  
YAHOO_SERVICE_FILETRANSFER  
YAHOO_SERVICE_VOICECHAT  
YAHOO_SERVICE_NOTIFY  
= 0x1f  
= 0x20  
= 0x28  
= 0x2a  
= 0x46  
= 0x4a  
= 0x4b  
= 0x4d  
= 0x4f  
= 0x54  
= 0x55  
= 0x57  
= 0x83  
= 0x84  
= 0x85  
= 0x86  
YAHOO_SERVICE_P2PFILEXFER  
YAHOO_SERVICE_PEERTOPEER  
YAHOO_SERVICE_AUTHRESP  
YAHOO_SERVICE_LIST  
YAHOO_SERVICE_AUTH  
YAHOO_SERVICE_ADDBUDDY  
YAHOO_SERVICE_REMBUDDY  
YAHOO_SERVICE_IGNORECONTACT  
YAHOO_SERVICE_REJECTCONTACT  
YAHOO_SERVICE_VERIFY =0x4c  
3.1.4. Status codes (mã trạng thái)  
Mã trạng thái là một giá trị 4 byte. Hầu hết các mã trạng thái có độ dài 2 byte. Các mã  
trạng thái:  
YAHOO_STATUS_AVAILABLE  
= 0  
YAHOO_STATUS_NOTINOFFICE = 5  
YAHOO_STATUS_STEPPEDOUT = 9  
YAHOO_STATUS_INVISIBLE  
YAHOO_STATUS_CUSTOM  
YAHOO_STATUS_IDLE  
= 12  
= 99  
= 999  
YAHOO_STATUS_OFFLINE  
YAHOO_STATUS_TYPING  
= 0x5a55aa56  
= 0x16  
~ 20 ~  

Tải về để xem bản đầy đủ

pdf 91 trang yennguyen 09/05/2025 30
Bạn đang xem 30 trang mẫu của tài liệu "Khóa luận 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ì", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfkhoa_luan_xay_dung_he_thong_dich_vu_gia_tri_gia_tang_tren_ne.pdf