Đặt vấn đề về bài toán tính cước đang dùng tại Viettel 1.1 Mô hình, hiện trạng và nghiệp vụ của hệ thống Viettel Billing.1 Giới thiệu mô hình hệ thống Viettel Billing.1: Mô hình hệ thống Viettel Billing. Mô hình hệ thống Viettel Billing được xây dựng từ những năm 2006 và được phát triển cho tới ngày nay. Nhưng cơ bản không có sự khác biệt lớn về mặt công nghệ, chủ yếu là được bổ sung thêm tài nguyên để hệ thống có thể xử lý được khối lượng dữ liệu lớn hơn. Tuy vậy, việc bổ sung thêm tài nguyên không thể bù đắp được cho sự phát triển nhanh chóng về mặt dữ liệu.
Ngoài ra, việc bổ sung thêm nhiều tài nguyên sẽ làm cồng kềnh bộ máy vận hành khai thác do số lượng node mạng tăng lên nhanh, kết nối giữa các hệ thống cũng phức tạp hơn. Hệ thống được chia làm ba nhóm chính: - Nhóm hệ thống tổng đài thuộc nhóm các thiết bị viễn thông, các hệ thống tổng đài sau khi kết nối để thực hiện cuộc gọi cho khách hàng sẽ 4 đẩy ra CDR để tính cước cho khách hàng. Năm 2006 có khoảng 5 tổng đài, nhưng đến năm 2019 thì số lượng tổng đài đã lên tới con số 30; - Nhóm hệ thống Billing Gateway, dùng để chung chuyển dữ liệu CDR về hệ thống Billing. Toàn bộ dữ liệu tổng đài sẽ được đẩy về hệ thống Billing Gateway.
Hiện tại có khoảng 15 máy chủ để phục vụ cho hệ thống Billing gateway, tổng dữ liệu chung chuyển lên tới 100G/ngày; - Nhóm hệ thống Billing dùng để import dữ liệu vào trong Database, tính cước cuộc gọi và hiển thị dữ liệu cho khách hàng tra cứu. Cụ thể mô tả chức năng của từng nhóm như sau: a. Hệ thống tổng đài. + Hệ thống có khoảng 30 tổng đài thuộc nhiều đối tác khác nhau.
+ Toàn bộ các thông tin về cuộc goi, tin nhắn và lịch sử truy nhập dữ liệu đều được các tổng đài ghi nhận lại. + Dữ liệu này định kỳ sẽ được đẩy về hệ thống Billing Gateway. Hệ thống Billing Gateway. + Đây là nơi lưu trữ trung gian toàn bộ dữ liệu chuyển từ tổng đài về hệ thống Billing.
+ Dữ liệu được lưu dưới dạng text hoặc dạng binary. + Dữ liệu trên hệ thống này sẽ được lưu ngắn hạn và sẽ được backup trước khi xóa. + Mục đính của hệ thống này để: lưu dữ liệu tập trung cho hệ thống Billing, có đủ dung lượng để lưu khi hệ thống Billing cần tính lại cước (Tổng đài không đủ dung lượng để lưu), backup dữ liệu tập chung. Hệ thống Billing.
+ Đây là hệ thống lưu trữ toàn bộ dữ liệu tổng đài dưới dạng bảng. + Hệ thống chạy trên nền tảng máy chủ Linux và cơ sở dữ liệu Oracle. + Dữ liệu import 1 tháng khoảng gần 2 TB. + Sau khi dữ liệu được import vào thì các nghiệp vụ tính cước đều chạy trên dữ liệu này.2 Các nghiệp vụ tính cước Các nghiệm vụ tính cước đều rất phức tạp, mỗi lần chạy đều chiếm một lượng lớn tài nguyên máy chủ, xử lý với một khối lượng lớn dữ liệu.
Kết quả cuối cùng là tính ra được tiền sử dụng của từng thuê bao đã phát sinh cước. Để có thể hiểu được độ phức tạp của quá trình xử lý, dưới đây là các mô tả của quá trình xử lý hệ thống tính cước[11]: 5 a. Nghiệp vụ Lấy dữ liệu từ hệ thống Billing Gateway. + Bước 1: Quét thư mục chứa dữ liệu tổng đài.
+ Bước 2: Kiểm tra mẫu định dạng của file CDR. - Nếu không đúng mẫu định dạng thì không xử lý file đó. - Nếu đúng mẫu định dạng file: • Nếu tiến trình được chia thành nhiều tiến trình nhỏ: thực hiện lọc file theo MOD(sequence, 10), chuyển sang Bước 3. • Nếu chỉ 1 tiến trình không thực hiện lọc file theo MOD(sequence, 10), chuyển sang Bước 3.
+ Bước 3: Kiểm tra dung lượng ổ cứng trên máy Local. - Nếu dung lượng ổ cứng đủ thì chuyển sang Bước 4. - Nếu dung lượng ổ cứng không đủ thì nhắn tin cảnh báo và quay lại Bước 1. + Bước 4: Download về thư mục trên máy Local và chuyển sang Bước 5.
+ Bước 5: Xử lý với những file đã được download với 1 trong 4 tùy chọn: - Xóa file. - Thay đổi tên file. - Chuyển file sang một thư mục khác trên FTP Server. Nghiệp vụ Import dữ liệu vào Database.
+ Bước 1: Quét thư mục chứa file đã download về. Format: Tên dịch vụ + ngày + tháng +năm + Bước 2: Kiểm tra mẫu định dạng file. - Nếu không đúng mẫu định dạng thì không xử lý. - Nếu đúng mẫu định dạng file thì chuyển sang Bước 3.
+ Bước 3: Đọc nội dung trong file. + Bước 4: Kiểm tra cấu trúc nội dung file. - Nếu không đúng cấu trúc thì lưu file đến thư mục Unrate và ghi log. - Nếu đúng cấu trúc thì chuyển sang Bước 5.
+ Bước 5: Insert theo batch vào Database. - Nếu insert không thành công thì ghi thông tin ra log và lưu file đến thư mục Unrate và chuyển sang Bước 6. - Nếu insert thành công thì lưu file đến thư mục Rate và chuyển sang Bước 6. + Bước 6: Backup file.
- Tất cả các file chứa trong thư mục tạm trên máy Local được lưu lại vào thư mục Backup. Nghiệp vụ Tổng hợp cước định kỳ. + Bước 1: Khi được kích hoạt hệ thống sẽ tự load các bill item. + Bước 2: Hệ thống Billing đọc dữ liệu chi tiết cước trong chu kỳ chốt sổ.
+ Bước 3: Hệ thống tổng hợp theo các tiêu chí. + Bước 4: Cập nhật dữ liệu tổng hợp vào bảng tổng hợp. Nghiệp vụ Tổng hợp cước nóng. + Bước 1: Tìm kiếm thông tin về thuê bao, hợp đồng cần chốt cước nóng.
- Khi có yêu cầu từ khách hàng muốn thực hiện chốt cước nóng cho các thuê bao, hợp đồng, người dùng sẽ thực hiện tìm kiếm thông tin cần chốt vào hệ thống. + Bước 2: Thực hiện chốt cước nóng. - Sau khi tìm kiếm thông tin cần chốt, người dùng kích hoạt sự kiện chốt cước nóng cho thuê bao, hợp đồng. + Bước 3: Tính toán số liệu phát sinh trong kỳ cho thuê bao, hợp đồng.
- Hệ thống sẽ tính toán số liệu phát sinh từ đầu chu kỳ cho đến thời điểm chốt cước nóng của thuê bao, hợp đồng cần chốt. + Bước 4: Tính toán số liệu điều chỉnh trong kỳ cho thuê bao, hợp đồng. - Đối với các điều chỉnh cho thuê bao, hợp đồng cần chốt cước nóng từ đầu kỳ, hệ thống cũng tổng hợp số liệu các điều chỉnh này. + Bước 5: Tính toán công nợ cho các thuê bao, hợp đồng của khách hàng.
- Công nợ của các thuê bao, hợp đồng cần chốt cước nóng được tính theo công thức như sau: Cước nóng = Tổng số đầu kỳ - tổng số tiền đã thanh toán + tổng số phát sinh trong kỳ + tổng số điều chỉnh trong kỳ. + Bước 6: Nhân viên tính cước chuẩn bị câu lệnh SQL để kiểm tra việc thực hiện khóa sổ. Nghiệp vụ Phân tích giao dịch treo. Giao dịch treo là các giao dịch phát sinh trong thời điểm đang khóa sổ, hoặc sau thời điểm khóa sổ, nhưng giao dịch trước đấy của hợp đồng đang là giao dịch treo.
+ Bước 1: Lấy danh sách tất cả các giao dịch treo, thông tin cần lấy bao gồm(bao gồm cả 2 trường hợp khách hàng chỉ ra thuê bao và không chỉ ra thuê bao cần thanh toán). + Bước 2: Phân tích giao dịch treo theo nguyên tắc gạch nợ, phần 7 này tham khảo nguyên tắc gạch nợ bên payment (cập nhật thông tin thanh toán chi tiết từng tháng theo thuê bao và theo hợp đồng), sau đó đánh dấu là giao dịch đã được phân tích. - Đối với số tiền đã fill vào thuê bao thì sẽ phân tích xuống theo thuê bao theo nguyên tắc từ tháng xa đến tháng gần. - Đối với số tiền chưa fill vào thuê bao nào thì phân tích theo nguyên tắc như một thanh toán mới từ đầu, tức là sẽ phải chọn thuê bao theo nguyên tắc trên hệ thống, sau mới fill số tiền theo nguyên tắc phân tích nợ.
+ Bước 3: Kiểm tra lại xem còn giao dịch nào được đẩy vào thêm không. + Bước 4: Nếu không còn giao dịch thì kết thúc. Nếu còn giao dịch thì quay lại Bước 1. Nghiệp vụ Khóa sổ.
+ Bước 1: Tìm kiếm danh sách cần điều chỉnh. - Đối với quy trình điều chỉnh thì phải xác định được danh sách các thuê bao (hoặc hợp đồng) để điều chỉnh. Các thông tin cơ bản để tìm kiếm bao gồm: • Số CMT/Hộ chiếu, mã số thuế. • Số hợp đồng có thuê bao cần điều chỉnh.
• Số thuê bao cần điều chỉnh. + Bước 2: Nhập số liệu điều chỉnh. - Sau khi xác định được danh sách thuê bao (hoặc hợp đồng) cần điều chỉnh, phải thực hiện nhập số tiền cần điều chỉnh cho các thuê bao (hợp đồng) đó. + Bước 3: Kiểm tra xem có phải điều chỉnh cho hợp đồng hay không? Nếu là điều chỉnh cho hợp đồng thì thực hiện Bước 3, nếu là điều chỉnh cho thuê bao thì thực hiện Bước 4.
+ Bước 4: Tính toán số liệu điều chỉnh cho thuê bao trong hợp đồng theo quy tắc cấu hình. - Hệ thống có các tham số cấu hình để áp dụng các quy tắc phân bổ điều chỉnh cho các thuê bao trong hợp đồng, các quy tắc phân bổ này có thể là: • Phân bổ đều cho các thuê bao trong hợp đồng. • Phân bổ theo tỷ lệ phần trăm của cước phát sinh. • Phân bổ theo tỷ lệ phần trăm của số tiền phải thanh toán.
- Sau khi áp dụng quy tắc phân bổ cho từng hợp đồng sẽ tính toán được số liệu điều chỉnh cho từng thuê bao trong hợp đồng đó. + Bước 5: Thực hiện điều chỉnh cho thuê bao. - Đối với điều chỉnh thuê bao thì bắt đầu thực hiện điều chỉnh, đối 8 với điều chỉnh hợp đồng thì sau khi tính toán ra số liệu điều chỉnh cho từng thuê bao trong hợp đồng, sẽ bắt đầu thực hiện điều chỉnh. + Bước 6: Xác định xem loại điều chỉnh công nợ có phải là điều chỉnh âm không? Nếu là giao dịch điều chỉnh âm thì thực hiện Bước 8, nếu là giao dịch điều chỉnh dương thì thực hiện Bước 7.
+ Bước 7: Nếu giao dịch điều chỉnh là giao dịch điều chỉnh dương thì lưu lại giá trị điều chỉnh để thực hiện chốt sổ cuối kỳ. + Bước 8: Phân tích lại công nợ của thuê bao.