Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 12 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
12
Dung lượng
736,7 KB
Nội dung
ĐẠI HỌC BÁCH KHOA HÀ NỘI TRƯỜNG CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG HỆ PHÂN TÁN Đề tài: XÂY DỰNG HỆ THỐNG ATM Nhóm sinh viên thực hiện: Hồng Quốc Bảo Phan Đức Hoàng Long Nguyễn Tấn Nam Anh Bùi Đức Kiên Giảng viên hướng dẫn: ThS Đặng Tuấn Linh Hà Nội, tháng 07 năm 2022 20187221 20187259 20187215 20180785 Lời nói đầu Lời , nhóm em xin gửi lời cảm ơn đến thầy Đặng Tuấn Linh , thầy nhiệt tình giảng dạy lớp , hỗ trợ thông tin cần thiết giải đáp thắc mắc cho nhóm bạn thực đề tài Thông qua giảng lớp môn học thầy , thành viên nhóm em tiếp thu nhiều kiến thức hữu ích liên quan Qua giúp chúng em hiểu nắm bắt quy trình làm Đề tài “Xây dựng hệ thống ATM” hoàn thành kết quả của trình nghiên cứu nghiêm túc thành viên cả nhóm q trình học tập tiếp thu kiến thức hướng dẫn tận tình giảng viên hướng dẫn tài liệu giảng viên hướng dẫn chia sẻ qua kênh giao tiếp trong suốt trình thời gian giảng dạy học kỳ Với kiến thức học từ môn Thiết kế xây dựng phần mềm, toán em giải vấn đề thiết kế xây dựng hệ thống ATM Tuy nhiên điều kiện thời gian kiến thức hạn chế nên khơng tránh khỏi thiếu sót, mong góp ý nhiều thầy Em xin chân thành cảm ơn! Chương Khảo sát hệ thống Lí chọn đề tài : Hiện nay, hệ thống ATM giao dịch ngân hàng giải pháp quản lý trao đổi tài phổ biến với số lượng người dùng lớn, đặt tốn hóc búa cho chế bảo mật, độ chịu tải tính tồn vẹn thơng tin Qua thăm dị chức đó, chúng em áp dụng kiến thức học thực tiễn hệ thống ATM Chúng em xây dựng mô hệ phân tán & microservices cho hệ thống giao dịch ATM 1.1 Mô tả hệ thống 1.1.1 Nhiệm vụ Hệ thống rút tiền ATM với tính cho người dùng sau: - Kiểm tra thông tin & số dư - Rút, chuyển tiền - Đổi mã PIN - Khoá thẻ - Gửi thông báo Email 1.1.2 Hệ thống - Hệ thống Log lỗi, message từ Queue - Worker gửi Email từ Queue - Phân giải hệ thống tránh tắc nghẽn 1.2 Phân tích hệ thống Qua phân tích chức năng, nhóm chúng em tiến hành thiết kế hệ thống với Service chính: - Email Service: Dùng để gửi email sau người dùng biến động số dư - Account Service: Dùng để xác thực người dùng quản lý phiên đăng nhập - Bank Service: Dùng để xử lý vấn đề tiền tài khoản người dùng - Log Service: Dùng để thông báo, ghi lại ghi nhằm soát lỗi hệ thống microservices Cơ sở liệu sử dụng: MongoDB (Thực để xây dựng hệ thống bank tối ưu cần phải dùng Oracle, nhiên phạm vi môn học, chúng em sử dụng mongoDB để dễ dàng demo triển khai) Chương Thiết kệ hệ thống 2.1 Account Service Service chủ yếu phục vụ việc xác thực người dùng tạo phiên với api là: - [POST: /auth]: Login hệ thống Request Body: (application/json) { "stk":"4012555541213654", "password":"rsapass" } Mơ tả Body Tên thuộc tính Mơ tả Stk Số tài khoản người dùng password Bản mã mật người dùng với mã công khai RSA Mô tả response { "code": 200, "message": "Dang nhap cong!", "data": { "name": "HOANG QUOC BAO", "balance": 997000000, "accessToken": "1wJ07Q0PgnJf3wKUFOXrIgu65ddsp5ZA9YqbfMqz/i0=" } } - [Get: /checkUser]: - Mô tả params: Tên params Mô tả stk Stk người cần nhận accessToken Token người dùng Mô tả response { "code": 200, "message": "Kiem tra cong!", "data": { "name": "HOANG QUOC BAO" } } - [Get: /checkAccessToken]: Mô tả params: Tên params Mô tả accessToken Access Token người dùng Mô tả response { "code": 200, "message": "Dang nhap cong!", "data": { "name": "HOANG QUOC BAO", "balance": 997000000 } - } [Get: /logOut]: Mô tả params: Tên params Mô tả accessToken Access Token người dùng Mô tả response { "code": 200, "message": "Dang xuat cong!", "data":null } 2.2 Email Service Email service đọc thông báo gửi email từ Email Queue gửi email theo yêu cầu 2.3 Bank Service - [POST: /withdraw]: Rút tiền /withdraw (Bank Service) Email Queue /checkAccessToken (Account Service) Log Queue Mô tả API body: { "stk": "4012555541213654", "accessToken":"y1UqnLTjhQMpth4ctf2FddQCQXCjdbj2ARZ9Z86eg5I=" , "money":1000000 } Mô tả body: Tên params Mô tả accessToken Access Token người dùng stk Stk người dùng money Số tiền cần rút - Response: { "code": 200, "message": "Rut tien cong!", "data": null } [POST: /sendMoney]: Chuyển tiền /sendMoney (Bank Service) /checkAccessToken (Account Service) /checkUser (Account Service) Email Queue Log Queue Mô tả body: { "stk": "4012555541213654", "stkNhan": "40125555412136121", "accessToken":"c1x9tLlzD64R3szPUAD9MAqEXC18iYepMarAc6mgiRw =", "money":1000000 } Tên params Mô tả accessToken Access Token người dùng stk Stk người dùng money Số tiền cần chuyển stkNhan STK người nhận Mô tả response: { "code": 200, "message": "Chuyen tien cong!", "data": null } 2.4 Log Service: Log Service đọc message log từ queue thông báo lên tảng log ELK,… Chương Triển khai hệ thống 3.1.1 Triển khai hệ thống Hệ thống triển khai backend với linux/docker, người dùng dùng WindowApp thông qua Net Framework Màn hình sau Login Màn hình chuyển tiền 3.2 Tính mở rộng & nhân - Các Service mở rộng service Log Email service, cần nhân worker Service tự đọc message Queue làm việc - Các Service giao tiếp Rest cần xây dựng hệ CSDL phân tán với tính đồng cao để đồng CSDL phân tán liệu vào server khác Khi CSDL thay đổi đẩy luồng queue thông báo thay đổi cho hệ server cập nhật liệu, thời gian cập nhật liệu người dùng tiến hành giao dịch số tiền Chết 3.3 Tính chịu lỗi Khả chịu lỗi đặc điểm thiết yếu kiến trúc microservice Lý đằng sau điều rõ ràng đơn giản: Sau điểm tích hợp hệ thống đạt đến số định, lỗi xảy hàng ngày Các lý đơn giản thống kê Như tơi trình bày, bất chấp định luật tốn học Đó lý cần hiểu động thất bại từ góc độ cao Cần phải đưa định chiến lược cách hiệu Nếu định này, khơng thể đạt mức độ chịu lỗi mà hướng tới 3.4 Kiến trúc hệ thống & giao tiếp, trao đổi thông tin Hệ thống sử dụng kiến trúc Microservice giao tiếp với thông qua message Queue RestAPI 3.5 Đồng hoá Khi triển khai hệ thống phân tán, việc phải đồng hoá liệu quan trọng, ví dụ ATM kết nối với máy chủ A với CSDL A, ATM B lại kết nối với CSDL B, Client rút tiền máy chủ A khơng đồng CSDL B giữ ngun số dư Vì cần có tính đồng hệ thống phân tán Ở chúng em đẩy qua message Queue khân bệ thống máy chủ ... dụng kiến thức học thực tiễn hệ thống ATM Chúng em xây dựng mô hệ phân tán & microservices cho hệ thống giao dịch ATM 1.1 Mô tả hệ thống 1.1.1 Nhiệm vụ Hệ thống rút tiền ATM với tính cho người dùng... Gửi thơng báo Email 1.1.2 Hệ thống - Hệ thống Log lỗi, message từ Queue - Worker gửi Email từ Queue - Phân giải hệ thống tránh tắc nghẽn 1.2 Phân tích hệ thống Qua phân tích chức năng, nhóm chúng... bạn thực đề tài Thông qua giảng lớp môn học thầy , thành viên nhóm em tiếp thu nhiều kiến thức hữu ích liên quan Qua giúp chúng em hiểu nắm bắt quy trình làm Đề tài ? ?Xây dựng hệ thống ATM? ?? hoàn