Để phân tích yêu cầu của SMS Platform, trước hết cần mô hình hóa các kịch bản dịch vụ thành các tiến trình trong một luồng hoàn chỉnh.
Dựa vào các kịch bản dịch vụ, có thể vẽ sơ đồ xử lý theo luồng của từng kịch bản như trong các Hình 4.1, Hình 4.2, Hình 4.3.
Bắt đầu
Gửi nội dung Nhận MO MO = “1” hoặc “2"? Đáp án đúng? Số nội dung = 10? Gửi MT:
MT1: {MT thông báo đáp án đúng, giải nghĩa}. Quy Khach dang co [xx] diem. Quy Khach duoc tang them 1
ma du thuong la [xxxx].
MT2: Quy Khach da hoan thanh xuat sac bai hoc cua ngay hom nay. Moi Quy Khach tiep tuc tham gia bai hoc
ngay mai voi nhieu cau hoi thu vi va tham gia chuong trinh KM voi nhieu giai thuong gia tri len den 90 trieu
dong tu VinaPhone Gửi MT:
MT1: {MT thông báo đáp án đúng, giải nghĩa}. Quy Khach dang co [xx] diem. Quy Khach duoc tang them 1 ma du thuong la [xxxx]. Hay tiep tuc
tra loi cau hoi ke tiep de ghi them diem!
MT2: {Nội dung câu hỏi}. De tra loi, Quy Khach soan 1 hoac 2 gui 1572 (Mien phi)
Số nội dung = 10?
Gửi MT:
MT1: {MT thông báo đáp án sai, giải nghĩa}. So diem cua Quy Khach trong dot khuyen mai nay la [xx] diem.
Hay tiep tuc tra loi cau hoi ke tiep de ghi them diem!
MT2: {Nội dung câu hỏi}. De tra loi, Quy Khach soan 1 hoac 2 gui 1572 (Mien phi)
Gửi MT:
MT1: {MT thông báo đáp án sai, giải nghĩa}. So diem cua Quy Khach trong dot khuyen mai nay la
[xx] diem.
MT2: Quy Khach da hoan thanh xuat sac bai hoc cua ngay hom nay. Moi Quy Khach tiep tuc tham gia bai hoc ngay mai voi nhieu cau hoi thu vi va tham gia chuong trinh KM voi nhieu giai thuong gia
tri len den 90 trieu dong tu VinaPhone
Kết thúc N Y N Y N Y Y N
Gửi MT thông báo sai cú pháp N Công 10 điểm Tạo mã dự thưởng Đã hoàn thành phiên chơi? Gửi MT:
Quy Khach da hoan thanh xuat sac bai hoc cua ngay hom nay. Moi Quy Khach tiep tuc tham gia bai hoc ngay mai voi nhieu cau hoi thu vi va tham gia chuong trinh KM voi nhieu giai thuong gia tri
len den 90 trieu dong tu VinaPhone
Y
Phiên mới? Y
N
Hình 4.1 Luồng xử lý dịch vụ vClass
SMS Platform cần cung cấp từng module nhỏ hỗ trợ việc xử lý từng tiến trình, và liên kết các tiến trình với nhau.
Kịch bản của từng dịch vụ SMS có thể phân rã thành nhiều tiến trình, người quản trị lựa chọn các tiến trình để kết nối như các Hình 4.1, Hình 4.2, Hình 4.3. SMS Platform lưu lại kịch bản người quản trị đã tạo, sau đó hệ thống tự động xử lý được như kịch bản đã tạo và đã lưu.
Từ các flow dịch vụ đã phân tích Hình 4.1, Hình 4.2, Hình 4.3, có thể thấy các dịch bản dịch vụ SMS có thể phân rã thành các tiến trình cơ bản như Bảng 4.4.
Bắt đầu Kết thúc chu kỳ Nhận MO MO = “GOI Y”? Đáp án đúng? Gửi gợi ý 2 Số gợi ý = 1 Số gợi ý = 2 Cộng 50 điểm Gửi MT: MT: <Nội dung MT được
tạo trong mục câu hỏi>
Cộng 40 điểm Cộng 30 điểm Cộng 20 điểm Cộng 10 điểm Số gợi ý = 3 Số gợi ý = 4 Số gợi ý = 6
Gửi MT thông báo đã kết thúc bài chơi Số gợi ý = 1 Số gợi ý = 2 Số gợi ý = 3 Số gợi ý = 4 Số gợi ý = 6 Gửi MT: MT1: Cau tra loi cua Quy Khach chua dung.
Moi Quy Khach tham gia goi y tiep theo MT2: Gợi ý 2
Gửi MT: MT1: Cau tra loi cua Quy Khach chua dung.
Moi Quy Khach tham gia goi y tiep theo MT2: Gợi ý 3
Gửi MT: MT1: Cau tra loi cua Quy Khach chua dung.
Moi Quy Khach tham gia goi y tiep theo MT2: Gợi ý 4
Gửi MT:
MT1: Cau tra loi cua Quy Khach chua dung. Moi Quy Khach tham gia goi y tiep theo
MT2: Gợi ý 5
MT3: Gợi ý đặc biệt (Ví dụ: Doi bong nay ten la gi? 1=Real Madrid, 2=Barcelona, 3=Atletica Madrid, 4=Sevilla. Soan 1,2,3 hoạc 4 goi den 1580 mien phi!)
Gửi MT:
MT: Khach hang da tra loi sai. Dap an dung la <Nội dung MT được tạo trong mục câu hỏi> Số gợi ý = 3 Số gợi ý = 2
Số gợi ý = 1
Gửi gợi ý 3 Gửi gợi ý 4
Số gợi ý = 4 Gửi MT: MT1: Gợi ý 5 MT2: Gợi ý đặc biệt
Gửi MT thông báo đã kết thúc bài chơi N Y Y N Y N Y Y N N Y Y Y N N N N N Y Y Y N N N N N Y Y Kết thúc N Y Y Y Gửi nội dung và gợi
ý 1
Phiên mới? Y
N
Bắt đầu Nhận MO MO = “MUA” Phiên chơi hợp lệ? MO = “DD [Nguoi noi tieng]” Gửi MT:
Yeu cau cua Quy Khach chua thuc hien duoc do phien choi da het hieu luc. Phien
du doan bat dau luc 8:00 va ket thuc luc 23:59 hang ngay. Cam on Quy Khach da su
dung dich vu cua VinaPhone.
Đã dự đoán? Gửi MT:
Lenh MUA cua Quy Khach khong thanh cong do Quy Khach da du doan dung ten Nguoi noi tieng ngay DD/MM/YYYY. Ket qua nguoi chien thang se duoc thong bao
vao 8:00 DD/MM/YYYY. Cam on Quy Khach da su dung dich vu cua VinaPhone.
Đã mua quá 10 lần? Gửi MT:
Quy Khach da thuc hien lenh MUA vuot qua quy dinh cua dich vu trong ngay (Toi da 20 lan/ngay). De biet them chi tiet, Quy
Khach vui long lien he tong dai 9191 hoac truy cap website http:// nguoinoitieng.vinaphone.com.vn
Hết tiền? Gửi MT:
Tai khoan cua Quy Khach khong du de MUA thong tin nguoi noi tieng. Quy Khach
vui long nap them tien vao tai khoan va thu lai. Xin tran trong cam on.
Chưa mua thông tin?
Gửi MT:
Yeu cau cua Quy Khach chua duoc thuc hien. Quy Khach vui long soan MUA gui 1566 (1000dong/tin) de mua thong tin va
du doan ten Nguoi noi tieng. De biet them chi tiet, Quy Khach vui long lien he tong dai 9191 hoac truy cap website:
http://nguoinoitieng.vinaphone.vn Phiên chơi hợp
lệ?
Gửi MT:
Yeu cau cua Quy Khach chua thuc hien duoc do phien choi da het hieu luc. Phien du doan bat dau luc 8:00 va ket thuc luc 23:59 hang
ngay. Cam on Quy Khach da su dung dich vu cua VinaPhone.
Đáp án đúng
Gửi MT:
Rat tiec, Quy Khach da du doan sai ten Nguoi noi tieng ngay hom nay. Quy Khach vui long soan MUA gui 1566 (1000dong/ tin) de mua thong tin va du doan ten Nguoi noi tieng. De biet them chi tiet, Quy Khach vui long lien he tong dai 9191 hoac truy cap website: http://nguoinoitieng.vinaphone.com.vn
Gửi MT:
Chuc mung Quy Khach da du doan dung ten nguoi noi tieng ngay hom nay. Quy Khach dang co 99% co hoi gianh Nokia Lumina 525 tu chuong trinh Nhan dien nguoi noi tieng! Neu Quy Khach la
nguoi may man gianh duoc giai thuong Nokia Lumina 525 tu VinaPhone, Quy Khach se nhan duoc thong bao tu chuong trinh.
Cam on Quy Khach da su dung dich vu cua VinaPhone Phiên mới? Gửi thông báo
phiên chơi mới Kết thúc
Y Y N Y N Y Y N Y N Y N N N Y Gửi MT: Nội dung gợi ý
N Kết thúc Kết thúc Y Y Trừ tiền 1000 VNĐ N
Hình 4.3 Luồng xử lý dịch vụ Nhận diện Ngƣời nổi tiếng
Tiến trình Tên gọi Mô tả
Bắt đầu Start Bắt đầu của một dịch vụ, hoặc một phiên dịch vụ Cấu hình:
- Id của dịch vụ Kết thúc End Kết thúc của một dịch vụ Trừ tiền X VNĐ
Debit Trừ tiền từ tài khoản thuê bao Cấu hình:
- X VNĐ Đầu vào:
- Số điện thoại 84xxxxxx, lấy từ tiến trình SMSIn
Đầu ra:
- Kết quả trừ tiền (thành công, hết tiền…) Nhận MO
SMSIn Nhận tin nhắn từ thuê bao Đầu vào:
- Id của dịch vụ, lấy từ tiến trình Start Đầu ra:
- Tin nhắn MO nội dung X
- Số điện thoại thuê bao đã gửi tin 84xxxxx - Phiên hiện tại của dịch vụ, phục vụ cho các
tiến trình sau Gửi MT
Mẫu MT
SMSOut Gửi tin nhắn tới thuê bao Cấu hình:
- Mẫu tin nhắn MT nội dung X (ví dụ: Quy khach dang co <so_diem> diem)
Đầu vào:
- Số điện thoại thuê bao nhận tin 84xxxxxx, lấy từ tiến trình SMSIn
- Các tham số động lấy từ các tiến trình khác như AddPoint, GenerateTicket (ví dụ: điểm, mã dự thưởng) để thay thế trong mẫu tin nhắn MT
Lấy nội dung
SendContent Lấy nội dung trong module Quản trị nội dung của SDP
Cấu hình:
- Id của nội dung (không bắt buộc), nếu không cấu hình thì lấy theo tiêu chí
- Tiêu chí độ ưu tiên: lấy nội dung theo độ ưu tiên từ cao đến thấp
- Tiêu chí ngẫu nhiên: lấy nội dung một cách ngẫu nhiên
- Template của tin nhắn tới khách hàng, trong đó có chứa nội dung
Đầu vào:
- Số điện thoại thuê bao cần gửi nội dung 84xxxxx, lấy từ tiến trình SMSIn
Đầu ra:
- Id của nội dung - Chi tiết nội dung
Cộng X điểm
AddPoint Cộng điểm cho thuê bao Cấu hình:
- Số điểm cần cộng X Đầu vào:
- Số điện thoại thuê bao cần cộng 84xxxxx, lấy từ tiến trình SMSIn
- Phiên đang chơi, lấy từ tiến trình Start Đầu ra:
- Tổng số điểm trong phiên hiện tại của thuê bao
- Tổng số điểm trong toàn dịch vụ của thuê bao
Tạo mã dự thưởng
GenerateTicket Tạo mã dự thưởng cho thuê bao Cấu hình:
- Dạng mã dự thưởng, ví dụ có 5 chữ số - Số ticket tạo ra
Đầu vào:
- Số điện thoại thuê bao 84xxxxx, lấy từ tiến trình SMSIn
- Phiên đang chơi, lấy từ tiến trình Start Đầu ra:
- Mã dự thưởng vừa tạo
- Tổng số mã dự thưởng của thuê bao MO = “X”
MO giống “X Y”
CheckMO Kiểm tra tin nhắn MO do thuê bao gửi tới Cấu hình:
- Cú pháp cần so sánh, ví dụ “GOI Y”, “MUA”, “DD <nguoi_noi_tieng>”
- Cú pháp cần đưa vào xử lý để kiểm tra nội dung đáp án sau khi so sánh đúng, ví dụ <nguoi_noi_tieng>
Đầu vào:
- Tin nhắn MO, lấy từ tiến trình SMSIn Đầu ra:
- Kết quả đúng sai Số MO = X?
CountMO Kiểm tra số tin nhắn thuê bao đã gửi tới theo một dạng cú pháp
Cấu hình:
- Cú pháp cần so sánh, ví dụ “GOI Y”, “MUA”, “DD <nguoi_noi_tieng>”
- Số lần xuất hiện X - Type: =, >, <, >=, <= Đầu vào:
- Số điện thoại thuê bao 84xxxxx, lấy từ tiến trình SMSIn
- Phiên hiện tại Đầu ra:
- Kết quả đúng sai Hiệu lực phiên?
ValidatePeriod Kiểm tra thời điểm hiện tại phiên dịch vụ có hiệu lực không
Đầu vào:
- Cách 1: thông tin bắt đầu và kết thúc lấy từ tiến trình Start + End
- Cách 2: Id của phiên chơi, lấy từ tiến trình Start
Đầu ra:
- Kết quả đúng sai Hết tiền?
CheckBalance Kiểm tra tài khoản thuê bao hết tiền hay không Đầu vào:
- Kết quả của tiến trình Debit Đầu ra:
- Kết quả đúng sai Số nội dung = X?
CountContent Kiểm tra số nội dung đã gửi cho thuê bao trong phiên hiện tại, ví dụ số câu hỏi hay số gợi ý
Cấu hình
- Số lượng cần số sánh X
- Có cho phép kết thúc cuộc chơi trong phiên này nếu điều kiện đúng hay không?
Đầu vào:
- Phiên hiện tại
- Số điện thoại thuê bao 84xxxxx, lấy từ tiến trình SMSIn
Đầu ra:
- Kết quả đúng sai Đáp án đúng?
CheckAnswer Kiểm tra đáp án của thuê bao đúng hay sai Cấu hình
- Có cho phép kết thúc cuộc chơi trong phiên này nếu điều kiện đúng hay không?
- Tin nhắn MO của thuê bao, lấy từ tiến trình SMSIn
- Id của nội dung đã gửi, lấy từ tiến trình SendContent
- Có cho phép kết thúc cuộc chơi trong phiên này nếu điều kiện đúng hay không?
Đầu ra:
- Kết quả đúng sai Đã hoàn thành
phiên chơi?
IsFinished Kiểm tra thuê bao đã hoàn thành phiên chơi hay chưa? (trả lời hết các câu hỏi trong ngày, hoặc đã dự đoán đúng).
Đầu vào:
- Số điện thoại thuê bao 84xxxxx, lấy từ tiến trình SMSIn
Đầu ra:
- Kết quả đúng sai
Bảng 4.4 Mô tả các tiến trình cơ bản
Ngoài ra, để liên kết giữa các tiến trình với nhau, cần có id cho từng tiến trình, và thêm các thuộc tính (cấu hình) liên kết như: tiến trình trước đó, tiến trình tiếp theo, tiến trình tiếp theo nếu kết quả đúng, tiến trình tiếp theo nếu kết quả sai.
Các tiến trình cơ bản trong Bảng 4.4 sẽ được chi tiết hóa trong mục 4.2.3 để có thể lập trình được.