CHƯƠNG V. PHÂN TÍCH THIẾT KẾ CHƯƠNG TRÌNH ỨNG DỤNG

Một phần của tài liệu xây dựng ứng dụng cho mobile phone (Trang 72 - 81)

5.1.Giới thiệu:

Sau khi nghiên cứu hoạt động của giao thức SMPP(chương 3) và dựa trên mô tả của bài toán ứng dụng (chương 4), chúng ta sẽ đi xây dựng ứng dụng. Ứng dụng của chúng ta sẽ bao gồm hai phần:

Phần 1: Xây dựng phần mềm SMPPsim (Nguyễn Hữu Hoàng đảm nhận), phần mềm này làm các công việc sau:

- Tiếp nhận và gửi gói tin tại cổng giao tiếp SMPP(SMPP Gateway) từ/tới trung tâm dịch vụ tin ngắn (SMSC-Short Message Service Center)

- Chuyển đổi các gói tin giữa hai giao thức SMPP và TCP/IP.

Phần 2: Xây dựng phần mềm TSMSApp (Nguyễn Trung Dũng đảm nhận), phần mềm này thực hiện các ứng dụng trên máy chủ ứng dụng (Application Server) bao gồm các công việc:

- Nhận gói tin yêu cầu từ cổng giao tiếp SMPP.

- Truy cập vào cơ sở dữ liệu lấy ra dữ liệu theo yêu cầu của gói tin sau đó đóng gói và gửi đến cổng giao tiếp SMPP

5.2. SMPPsim:

Một số quá trình hoạt động cơ bản từ phía SMPPsim:

5.2.1. Quá trình nhận gói tin từ SMSC :

Để nhận các message từ phía SMSC thì đầu tiên cổng giao tiếp SMPP cần phải khởi tạo kết nối tới SMSC (do class BindReceiver đảm nhận) và cổng giao tiếp SMPP sẽ nhận được phản hồi (chấp nhận hoặc không chấp nhận kết nối) thông qua lớp BindReceiverResp

Lúc này cổng giao tiếp SMPP đóng vai trò như là một máy khách, nó sẽ liên tục nhận các gói tin kết quả của các yêu cầu, các gói tin này có cấu tạo theo đinh dạng của giao thức SMPP. (do class DeliveryReceipt đảm nhận).

Để kết thúc quá trình này thì lớp Unbind sẽ thực hiện đóng kết nối với SMSC.

5.2.2. Quá trình gửi gói tin đến SMSC :

Cũng như quá trình nhận gói tin từ SMSC, để thực hiện được quá trình gửi các gói tin đến SMSC thì cổng giao tiếp SMPP phải khởi tạo kết nối tới SMSC.(do class BindTransmitter đảm nhận) và cổng giao tiếp SMPP cũng nhận được phản hồi thông qua lớp BindTransmitterResp.

Quá trình này sẽ gửi các gói tin chứa dữ liệu thỏa mãn yêu cầu của người dùng từ phía máy chủ ứng dụng qua cổng giao tiếp SMPP để làm nhiệm vụ chuyển định dạng gói dữ liệu từ “TCP/IP” sang định dạng “SMPP” rồi gửi đến SMSC để hiển thị

Để kết thúc quá trình này thì lớp Unbind sẽ thực hiện đóng kết nối với SMSC.

5.2.3. Quá trình nhận gói tin từ SMPP gateway :

Cổng giao tiếp SMPP sẽ được thiết lập để thực hiện các quá trình gửi các gói tin đến hai phía: SMSC và AppServer.

5.2.4. Quá trình gửi gói tin đến SMPP gateway:

Quá trình này sẽ được thiết lập để nhận các gói tin từ hai phía SMSC và AppServer.

Tại cổng giao tiếp SMPP các gói tin trước khi được gửi tới các phía thì đều được chuyển đổi định dạng gói tin để phù hợp với các phía nhận gói tin.

5.2.1. Quá trình nhận gói tin từ AppServer:

Là quá trình cổng giao tiếp SMPP sẽ nhận các gói tin từ máy chủ ứng dụng AppServer. Các gói tin này chính là kết quả của gói tin yêu cầu từ phía người dùng (mobile phone) đã được AppServer xử lý.

5.2.1. Quá trình gửi gói tin đến AppServer:

Là quá trình gửi các yêu cầu từ phía người dùng (mobile phone) đến AppServer thông qua cổng giao tiếp SMPP

Trên đây là một số quá trình cơ bản được xử lý trong phần mềm SMPPsim, ngoài ra còn có các quá trình khác: quá trình đóng kết nối tới SMSC, quá trình kiểm tra các gói tin (PDU) được gửi và nhận tại SMSC, điều khiển lỗi SMPP,quá trình kiểm tra sự hoạt động của phần cứng (card mạng, dây cáp,…).

5.3. TSMS Application:

5.3.1. Mô tả bài toán tra cứu danh bạ điện thoại, kết quả tuyển sinh và kết quả xổ số. Mô hình tổng quát SMS Khách hàng CÁC HỆ THỐNG XỬ LÝ DỊCH VỤ SMSC CÁC BỘ PHẬN TÍNH

CƯỚC, THU CƯỚC

MẠNG THÔNG TIN DI ĐỘNG

CÁC DATA BASE

Hình 5.1. Mô hình tổng quát mô tả dịch vụ tra cứu danh bạ điện thoại, điểm tuyển sinh và kết quả xổ số.

Ứng dụng trong bài toán mô tả phương thức và trình tự mà các điện thoại di động soạn tin nhắn và gửi đên tổng đài tin nhắn, tổng đài tin nhắn phân tích xâu vào để so sánh với định dạng của từng loại dịch vụ đã quy định, nếu sai thì gửi help đến cho người gửi để bết định dạng đoạn tin ngắn cần gửi nếu muốn sử dụng dịch vụ này, nếu đúng thì gửi trả lại cho máy điện thoại di động kết quả tra cứu tương ứng, kết quả này được lấy ra từ trong cơ sở dữ liệu. Cụ thể trong ứng dụng có thể soạn tin nhắn để tra cứu danh bạ điện thoại, điểm tuyển sinh và kết quả xổ số. Thực ra 3 dịch vụ này hiện đã có và đang được sử dụng rộng rãi, ứng dụng chỉ chạy Demo trên một máy để mô tả ứng dụng trên và làm thực hiện các bước tương tự như trên thực tế, từ ứng dụng này có thể mở rộng ra vô số các dịch vụ tra cứu thông tin trên net, bất cứ thứ gì trên net.

Khách hàng có thể khai thác dịch vụ bằng cách sau:

- Gửi lệnh bằng SMS theo cấu trúc đã được quy định đến số dịch vụ 991 hoặc 996 hoặc 997 của hệ thống.

- Sau khi truy cập hệ thống bằng cách gửi tin nhắn, khách hàng sẽ nhận được kết quả phản hồi từ hệ thống. Kết quả trả về sẽ là tìm thấy hay không tìm thấy các yêu cầu tra cứu của khách hàng.

- Việc xử lý các yêu cầu của khách hàng sẽ được thực hiện tự động tuỳ theo từng câu lệnh yêu cầu cần được xử lý. Các yêu cầu đã được lập trình đầy đủ sẽ được xử lý hoàn toàn tự động và đáp ứng ngay. Ví dụ khách hàng thực hiện việc tra cứu các thông tin về danh bạ điện thoại cố định tên toàn quốc, yêu cầu này của khách hàng sẽ được xử lý tự động hoàn toàn, sau đó hệ thống thông báo kết quả xử lý cho khách hàng. Một yêu cầu của khách hàng được xử lý tự động và có thể liên quan đến một hoặc nhiều gia đoạn, bộ phận tham gia trong chương trình.

5.3.2. Thiết kế cơ sở dữ liệu.

Với hệ thống thực thì cơ sở dữ liệu mà hệ thống truy cập vào để lấy dữ liệu ra nằm trên máy chủ cơ sở dữ liệu, việc tra cứu thông tin từ Internet được hệ thống lấy thông tin từ cơ sở dữ liệu của trang web mà chứa các thông tin cần tra cứu. Việc cập nhật cơ sở dữ liệu và các thông tin là do admin của website cập nhật. Chính vì thế cơ sở dữ liệu trên mạng đã có, hệ thống cung cấp dịch vụ nào thì sẽ select từ cơ sở dữ liệu trong trang web của dịch vụ đó và gửi kết quả đến cho người dùng.

Trong ứng dụng ví dụ của khóa luận, tất cả các mô hình thử nghiệm mô phỏng SMSC, SMPP gateway, Application Server và Database Server đều nằm trên cùng một máy chủ thử nghiệm, chính vì thế mà cơ sở dữ liệu chúng em sẽ tự thiết kế lấy nhưng kết quả trả về cũng tương tự như trong mô hình thật.

* Cơ sở dữ liệu mô phỏng cho dịch vụ 991: tra cứu danh bạ điện thoại

STT Tên Trường Kiểu Mô tả

1 LocationCode text Mã vùng

2 LocationName text Tên vùng

2. Bảng Directory lưu chi tiết về số điện thoại và các thông tin về tên, địa chỉ ... của số thuê bao đó

STT Tên Trường Kiểu Mô tả

1 DirectoryID AutoNumber Số id của bản ghi

2 LocationCode text Mã vùng

3 TelNumber text Số điện thoại

4 Name text Tên thuê bao

5 Address text Địa chỉ

Vì hệ thống dịch vụ tin nhắn SMS khi gửi đến tổng đài tin nhắn và gửi trả lại máy điện thoại đều là dưới dạng text nên các trường trong sơ sở dữ liệu sẽ đặt kiểu là text để không phải chuyển kiểu khi thực hiện chương trình.

* Cơ sở dữ liệu mô phỏng cho dịch vụ 997: tra cứu kết quả xổ số

1. Bảng XS_Type: Các loại xổ số khác nhau hiện có

STT Tên Trường Kiểu Mô tả

1 Code_Type text Mã loại xổ số

2 Name_Type text Tên loại xổ số

2. Bảng XSDT: lưu kết các kết quả xổ số

STT Tên Trường Kiểu Mô tả

1 Id AutoNumber Số id của bản ghi

2 Code_Type text Mã kiểu xố số

3 Date text Kết quả xổ số ngày

4 Dacbiet text Giải đặc biệt

5 Nhat text Giải nhất

7 Ba text Giả ba

8 Tu text Giải tư

9 Nam text Giải năm

10 Sau text Giải sáu

11 Bay text Giải bảy

3. Bảng XS123 Lưu kết quả xổ số điện toán 123 vì xổ số 123 có các giải khác với kết quả xổ số truyền thống.

STT Tên Trường Kiểu Mô tả

1 Id AutoNumber Số id của bản ghi

2 Date text Kết quả xổ số ngày

3 1 text Bộ số thứ nhất

4 2 text Bộ số thứ hai

5 3 text Bộ số thứ ba

* Cơ sở dữ liệu mô phỏng cho dịch vụ 996: tra cứu điểm thi tuyển sinh

1. Bảng TruongDH: Danh sách các trường đại học

STT Tên Trường Kiểu Mô tả

1 MaTruong text Mã trường ĐH (thêm cả khối thi vào cuối)

2 TenTruong text Tên trường đại học

3 Diemchuan text Điểm chuẩn khu vực 3

1. Bảng DanhSach: Danh sách các điểm của các thí sinh

STT Tên Trường Kiểu Mô tả

1 Id AutoNumber Số id của bản ghi

3 Hovaten text Bộ số thứ nhất

4 Ngaysinh text Bộ số thứ hai

5 Hokhau text Bộ số thứ ba

6 Mon1 text Điểm thi môn thứ nhất

7 Mon2 text Điểm thi môn thứ hai

8 Mon3 text Điểm thi môn thứ ba

9 Mon4 text Điểm cộng điểm thưởng

10 MaTruong text Mã trường thi vào

* Sơ đồ quan hệ giữa các bảng

5.3.3. Mô tả các module chương trình nguồn

Hình 5.2. Mô hình hoạt động của hệ thống tin nhắn SMS

Trên hình bên mổ tả khái quát hệ thống dịch vụ tin nhắn SMS, hệ thống gồm 3 phần chính:

- Cổng giao tiếp SMPP gateway, để nhận các giói tin từ điện thoại di động từ mạng di động GSM qua giao thức SMPP, nhận các gói tin từ điện thoại di động, lưu trữ và chuyển đi đến máy chủ ứng dụng xử lý và nhận về kết quả để chuyển đến cho máy điện thoại di động.

- Máy chủ ứng dụng: nhận các gói tin đóng gói dưới dạng text qua giao thức TCP/IP, phân tích xử lý gói tin đó, nếu đúng định dạng thì truy xuất vào cơ sở dữ liệu

để lấy kết quả và trả gửi kết quả lại cho điện thoại di động cho điện thoại di động qua cổng giao tiếp SMPP gateway.

- Máy chủ cơ sở dữ liệu: tổ chức và lưu trữ cơ sở dữ liệu.

Vì ứng dụng chạy trên một máy lên xử lý phía cổng giao tiếp SMPP gateway thực hiện việc tiếp nhận và gửi gói tin tại SMPP gateway từ/tới trung tâm dịch vụ tin ngắn và thực hiện chuyển đổi các gói tin giữa hai giao thức SMPP và TCP/IP do chương trình SMPPsim thực hiện. Phần mềm thực hiện các ứng dụng trên máy chủ ứng dụng xử lý phía Application, là chương trình TSMSApp, chương trình xử lý việc nhận các gói tin từ phía điện thoại di động qua cổng giao tiếp SMPP gateway (SMPPsim), xử lý dịnh dạng gói tin và truy xuất vào cơ sở dữ liệu lấy kết quả và gửi về phía SMPPsim để chương trình SMPPsim gửi kết quả đến cho điện thoại di động (trong ứng dụng này là một form hiển thị kết quả tương ứng với kết quả trên màn hình máy điện thoại di động).

Chương trình SMSApp được viết bằng ngôn ngữ lập trình Java cấu trúc như sau:

Chương trình gồm một số lớp cơ bản sau:

1. TDirectory: Lớp này chứa các hàm kết nối đến cơ sở dữ liệu, và các hàm truy suất vào cơ sở dữ liệu để lấy thông tin ra, các hàm này trả về kết quả dạng text thể hiện các kết quả trong cơ sở dữ liệu.

2. TSMSTransceiver: Đây là lớp có chức năng xử lý chính của chương trình, chứa các hàm kết nối với cổng giao tiếp SMPP gateway (SMPPsim). Lớp là lớp quan trọng nhất làm nhiệm vụ kết nối với SMPP gateway, xử lý gói tin vào, nếu đúng định dạng thì gọi hàm truy xuất vào cơ sở dữ liệu trong lớp TDirectory

và gọi hàm tìm kiếm thông tin trong cơ sở dữ liệu và cuối cùng gửi gói tin chứa các thông tin cần thiết được yêu cầu về phía SMPP gateway (SMPPsim) xử lý để gửi về kết quả cho máy di động. Nếu định dạng gói tin nhắn từ phía gửi sai thì cũng gửi trả về help để hướng dẫn người dùng gửi đúng định dạng đã quy định.

3. TSMSDemoFrame: Lớp này làm nhiệm vụ hiển thị một giao diện Form để Connect đến Cổng giao tiếp SMS Gate và nhận về bản tin ngắn kết quả cần tra cứu thông tin trên Internet. Nhìn chung Form này giả lập một máy điện thoại di động nhận về kết quả tra cứu. Khi ở trạng thái kết nối với mạng di động GSM (Connect tới SMPPsim).

4. THook: Lớp này chứa các hàm kết nối và hủy kết nối đến cổng giao tiếp SMPP gateway (SMPPsim).

5. TSMSLogger: Lớp này chứa các hàm thực hiện việc in ra kết quả tra cứu lên giao diện máy điện thoại di động (giả lập), in ra kết quả nhận được từ phía SMPP gateway (SMPPsim) qua giao thức SMPP lên giao diện Form.

6. TSMSDemo: Đây là lớp chính của chương trình gọi các lớp đã nêu trên để chạy chương trình và in ra các file.log để lưu nội dung các tin nhắn đã được gửi và nhận trong khi chạy chương trinh.

Trên đây là cấu trúc sơ qua của chương trình nguồn, chi tiết các hàm và chương trình chạy trong mã nguồn kèm theo.

5.4. Kết luận

Chương trình Demo đã thực hiện được các việc:

 Nhận các tin nhắn từ phía mobile phone, gửi về phía Application Server: một tin nhắn tra cứu danh bạ điện thoai, tra cứu kết quả xổ số, tra cứu điểm tuyển sinh.

 Phía Application Server đã xử lý các tin nhắn(các yêu cầu) từ phía SMPPsim và trả về kết quả: thông tin về số điện thoại đã tra cứu, thông tin về kết quả xổ số, thông tin về điểm tuyển sinh.

CHƯƠNG VI. GIỚI THIỆU CHƯƠNG TRÌNH.

Một phần của tài liệu xây dựng ứng dụng cho mobile phone (Trang 72 - 81)