BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
---------------------------------------
NGUYỄN MẠNH CƯỜNG
KIẾN TRÚC MICROSERVICES VÀ HỆ THỐNG
SÁCH NÓI TRỰC TUYẾN
Chuyên ngành: Kỹ thuật phần mềm
LUẬN VĂN THẠC SĨ KỸ THUẬT
HÀ NỘI - 2018
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
---------------------------------------
NGUYỄN MẠNH CƯỜNG
KIẾN TRÚC MICROSERVICES VÀ HỆ THỐNG
SÁCH NÓI TRỰC TUYẾN
Chuyên ngành: Kỹ thuật phần mềm
LUẬN VĂN THẠC SĨ KỸ THUẬT
NGƯỜI HƯỚNG DẪN KHOA HỌC:
TS. Nguyễn Thị Thu Trang
HÀ NỘI - 2018
LỜI CẢM ƠN
Để có thể hồn thành luận văn tốt nghiệp này, em xin chân thành cảm ơn cô
hướng dẫn luận văn tốt nghiệp, Tiến sĩ Nguyễn Thị Thu Trang, Bộ môn Công nghệ
phần mềm, Trường Đại học Bách Khoa Hà Nội. Cơ đã nhiệt tình hướng dẫn, truyền
đạt những kiến thức cần thiết và định hướng cho em trong quá trình thực hiện đề tài.
Em cũng chân thành cảm ơn thầy, cô Viện Công nghệ Thông tin và Truyền thông
- Trường Đại học Bách Khoa Hà Nội đã truyền đạt kiến thức, định hướng trong quá
trình học tại trường.
Em xin chân thành cảm ơn thầy Nguyễn Thanh Hùng - Trưởng Bộ môn Công
nghệ phần mềm đã cho phép, tạo điều kiện thuận lợi để em được làm luận văn tại
phịng Labs của cơng ty Vbee. Đồng thời em cũng xin gởi lời cảm ơn chân thành
đến các bạn làm việc tại phịng Labs của cơng ty Vbee đã giúp đỡ rất nhiều về mặt
kỹ thuật trong suốt thời gian làm luận văn.
Dù đã cố gắng nhưng luận văn chắc chắn khơng tránh khỏi nhiều thiếu sót, em
rất mong nhận được ý kiến đóng góp của các thầy cơ.
Em xin chân thành cảm ơn!
i
LỜI CAM ĐOAN
Tôi - Nguyễn Mạnh Cường - cam kết luận văn là cơng trình nghiên cứu của bản
thân tơi dưới sự hướng dẫn của TS Nguyễn Thị Thu Trang.
Các kết quả nêu trong luận văn là trung thực, không phải là sao chép tồn văn của
bất kỳ cơng trình nào khác.
Hà Nội, ngày 20 tháng 10 năm 2018
Học viên
Nguyễn Mạnh Cường
ii
LỜI CAM ĐOAN .......................................................................................................ii
DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ ............................................. v
DANH MỤC HÌNH ..................................................................................................vii
DANH MỤC BẢNG .................................................................................................. ix
MỞ ĐẦU ..................................................................................................................... 1
Nội dung của luận văn .............................................................................................. 3
CHƯƠNG 1: Khảo sát và phân tích yêu cầu hệ thống sách nói ................................. 4
1.1 Khảo sát hiện trạng.............................................................................................. 4
1.2 Tổng quan các dịch vụ của hệ thống ................................................................... 6
1.2.1 Dịch vụ quản lý xác thực người dùng SSO ................................................... 9
1.2.2 Dịch vụ quản lý sách.................................................................................... 10
1.2.3 Dịch vụ quản lý phân quyền người dùng ..................................................... 11
1.3 Đặc tả các chức năng ........................................................................................ 12
1.3.1 Đặc tả use case “Đăng nhập” ....................................................................... 13
1.3.2 Đặc tả use case “Quản lý sách” ................................................................... 14
1.3.3 Đặc tả use case “Quản lý phân quyền” ........................................................ 19
1.4 Kết chương ........................................................................................................ 23
CHƯƠNG 2: Thiết kế kiến trúc MSA và các công nghệ sử dụng ............................ 24
2.1 Kiến trúc Microservices ....................................................................................24
2.2 Xác thực SSO ....................................................................................................32
2.3 Công nghệ NodeJS ............................................................................................32
2.4 Công nghệ Java .................................................................................................33
2.5 Công nghệ ReactJS ...........................................................................................36
2.6 Cơ sở dữ liệu MongoDB ...................................................................................37
2.7 Kết chương ........................................................................................................40
CHƯƠNG 3: Các giải pháp msa nổi bật và phát triển ứng dụng sách nói ............... 41
3.1 Giải pháp MSA của hệ thống sách nói ..............................................................41
3.1.1 Thiết kế kiến trúc tổng quan ........................................................................42
3.1.2 Thiết kế dịch vụ quản lý sách nói ................................................................44
iii
3.1.3 Thiết kế dịch vụ quản lý phân quyền ...........................................................45
3.1.4 Dịch vụ xác thực người dùng SSO ..............................................................47
3.1.5 Cổng trung gian............................................................................................48
3.1.6 TTS Engine ..................................................................................................50
3.2 Giải pháp phân quyền động...............................................................................50
3.3 Phát triển ứng dụng ...........................................................................................52
3.3.1 Thiết kế cơ sở dữ liệu ..................................................................................52
3.3.2 Xây dựng phần mềm ....................................................................................55
3.3.2.1 Cấu trúc chương trình dịch vụ quản lý sách .............................................55
3.3.2.2 Cấu trúc chương trình dịch vụ phân quyền...............................................56
3.3.2.3 Cấu trúc chương trình xác thực người dùng SSO .....................................58
3.3.2.4 Các API sử dụng cho các dịch vụ .............................................................58
3.3.3 Giao diện web ..............................................................................................60
3.3.4 Triển khai .....................................................................................................64
3.4 Kết chương ........................................................................................................64
KẾT LUẬN ............................................................................................................... 66
DANH MỤC CÁC TÀI LIỆU THAM KHẢO ......................................................... 68
iv
DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ
Từ viết tắt, thuật ngữ
Từ viết đầy đủ
MSA
MicroServices Architecture
SSO
Single Sign On
API
Application Programming Interface
REST
Representational State Transfer
SOA
Services Orient Achitecture
TTS
Text To Speech
CRM
Customer Relationship Management
ERP
Enterprise Resource Planning
UC
Use Case
CAP
Consistency, Availability, Partition tolerance
WSM
Web Service Messaging
ESB
Enterprise Service Bus
DS
Distributed Systems
CDN
Content delivery network
SOAP
Simple Object Access Protocol
CORBA
Common Object Request Broker Architecture
RPC
Remote Procedure Calls
JMS
Java Message Service
JSON
JavaScript Object Notation
JVM
Java Virtual Machine
JMI
Java remote method invocation
IoC
Inverstion Of Control
DOM
Document Object Model
DI
Dependency Injection
MVC
Model View Controller
DAO
Data Access Object
v
CRUD
JSP
JDBC
Create, Read, Update, Delete
JavaServer Page
Java Database Connectivity
JSX
Javascript XML
XML
eXtensible Markup Language
JSE
HTML
UI
Java EE
URI
ReactJS
ECMAScript
Java Standard Edition
Hypertext Markup Language
User Interface
Java Enterprise Edition
Uniform Resource Identifier
JavaScript library build User interfaces.
European Computer Manufacturers Association
Script
vi
DANH MỤC HÌNH
Hình 1.1. Tổng quan chức năng ..............................................................................6
Hình 1.2. Biểu đồ Use case tổng quan ....................................................................7
Hình 1.3. Biểu đồ cho use case đăng nhập hệ thống ..............................................9
Hình 1.4. Biểu đồ cho use case dịch vụ quản lý sách ...........................................10
Hình 1.5. Biểu đồ cho use case dịch vụ quản lý phân quyền ...............................12
Hình 2.1. Ứng dụng gồm nhiều dịch vụ ...............................................................24
Hình 2.2. Kiến trúc Microservices ........................................................................26
Hình 2.3. Sử dụng REST API cho microservices .................................................27
Hình 2.4. Tất cả microservices được xuất qua API Gateway ...............................28
Hình 2.5. Bộ chứa đảo ngược quyền điều khiển và ứng dụng .............................35
Hình 2.6. Các thành phần trong ứng dụng ReactJS ..............................................36
Hình 2.7. Cơ chế hoạt động Sharding ...................................................................39
Hình 3.1. Kiến trúc tổng quan của hệ thống sách .................................................43
Hình 3.2. Thiết kế dịch vụ quản lý sách ...............................................................45
Hình 3.3. Thiết kế dịch vụ quản lý phân quyền ....................................................46
Hình 3.4. Thiết kế dịch vụ xác thực người dùng SSO ..........................................47
Hình 3.5. Tương tác xác thực người dùng ............................................................48
Hình 3.6. Thiết kế cổng trung gian .......................................................................49
Hình 3.7. Thuật tốn phân quyền động.................................................................52
Hình 3.8. Cơ sở dữ liệu dịch vụ quản lý sách và dịch vụ quản lý phân quyền.....54
Hình 3.9. Cơ sở dữ liệu SSO ................................................................................54
Hình 3.10. Cấu trúc dịch vụ sách ..........................................................................56
Hình 3.11. Cấu trúc giao diện quản lý sách ..........................................................56
Hình 3.12. Cấu trúc dịch vụ quản lý phân quyền .................................................57
Hình 3.13. Cấu trúc giao diện quản lý phân quyền ..............................................57
Hình 3.14. Cấu trúc xác thực SSO ........................................................................58
Hình 3.15. Giao diện đăng nhập hệ thống ............................................................61
Hình 3.16. Trang dịch vụ sách ..............................................................................61
vii
Hình 3.17. Trang quản lý thể loại sách .................................................................61
Hình 3.18. Trang quản lý sách ..............................................................................62
Hình 3.19. Trang quản lý tác giả ..........................................................................62
Hình 3.20. Trang quản lý người dùng ..................................................................63
Hình 3.21. Trang quản lý trang .............................................................................63
Hình 3.22. Trang quản lý vai trị...........................................................................63
Hình 3.23. Trang quản lý tính năng ......................................................................64
viii
DANH MỤC BẢNG
Bảng 1.1. Danh sách các use case của hệ thống .......................................................12
Bảng 1.2. Đặc tả use case “Đăng nhập” ....................................................................13
Bảng 1.3. Đặc tả use case “Quản lý sách” ................................................................14
Bảng 3.1. API dịch vụ quản lý phân quyền ..............................................................58
Bảng 3.2. API dịch vụ quản lý sách ..........................................................................59
Bảng 3.3. API dịch vụ đăng nhập xác thực tài khoản ...............................................60
Bảng 3.4. Các tên miền của ứng dụng ......................................................................64
ix
MỞ ĐẦU
- Lý do chọn đề tài:
Trong những năm gần đây, cuộc sống xã hội (cơng nghiệp, nơng nghiệp, văn
hóa, tri thức...) tăng nhanh về mọi mặt dẫn đến nhu cầu sử dụng phần mềm như là
nền tảng vận hành hệ thống của các công ty, doanh nghiệp tăng cao. Các kiến trúc
phần mềm được các nhà sản xuất phần mềm cải tiến liên tục để đáp ứng để việc bảo
trì, phù hợp với mục đích dễ mở rộng kinh doanh cho của các doanh nghiệp.
Vấn đề của một số các doanh nghiệp còn đang tồn tại rất rõ ràng, các hệ thống cũ
của họ xây dựng theo theo kiến trúc một khối truyền thống, tất cả các tính năng đều
được đóng gói trong mơ hình Monolithic Architecture ngun khối, để mã nguồn
của ứng dụng hoạt động thì tất cả các thành phần của ứng dụng phải có tại thời điểm
hoạt động, với ứng dụng 3 tầng giao diện người dùng, cơ sở dữ liệu và ứng dụng
phía máy chủ, lúc này ứng dụng chia thành 3 lớp, lớp trình bày, lớp dịch vụ và lớp
dữ liệu. Bất cứ một thay đổi nhỏ về mã nguồn cũng yêu cầu toàn bộ ứng dụng được
xây dựng và triển khai lại.
Một mô hình kiến trúc khác hướng dịch vụ SOA có các dịch vụ độc lập, các dịch
vụ không phụ thuộc vào hệ thống và mạng cụ thể và có các dịch vụ có khả năng
tương tác với nhau để đáp ứng với sự thay đổi về yêu cầu giao dịch, nhưng nhược
điểm khi xây dựng ứng dụng tổng hợp từ nhiều dịch vụ với tính tái sử dụng cao về
bảo mật, phân quyền, xác thực thì phần mềm trở nên rất phức tạp, việc sửa lỗi, mở
rộng rất khó khăn, địi hỏi giải quyết bằng phương pháp tiếp cận mới. Chính vì vậy
việc nghiên cứu một hướng tiếp cận xây dựng phần mềm mới theo kiến trúc
Microservices giúp giải quyết khó khăn tồn tại trong kiến trúc Monolithic.
Sách điện tử rõ ràng đã đem đến rất nhiều ưu điểm so với hình thức đọc sách
truyền thống, tuy nhiên để đọc sách điện tử, người đọc cần tiếp xúc nhiều với các
màn hình của các thiết bị điện tử máy tính, máy tính bảng, điện thoại gây mỏi mắt
dẫn đến các triệu chứng và các bệnh về mắt, việc đọc sách bị cản trở khi cách tiếp
cận với nó bị giới hạn.
1
Với tình hình thực tế như trên, chúng ta hồn tồn có thể chuyển các bộ sách, bộ
truyện từ dạng giấy hay sách điện tử sang dạng âm thanh. Việc đọc sách vì thế có
một cách tiếp cận mới với nhiều ưu điểm hơn, giúp chúng ta vừa có thể nắm bắt
được nội dung của sách mà lại không lo ngại đến các vấn đề về mắt. Hệ thống sách
nói xây dựng có nội dung dưới dạng âm thanh được tạo ra từ cơng nghệ tổng hợp
tiếng nói trợ giúp cho người đọc và người khiếm thị có thể nghe và nắm bắt được
nội dung sách thông qua việc nghe các văn bản do hệ thống phần mềm xử lý mà
không phải đọc trực tiếp bằng mắt. Do vậy, em chọn đề tài “Kiến trúc
Microservices và hệ thống sách nói trực tuyến” để giải quyết vấn đề nêu trên.
- Mục đích nghiên cứu của luận văn
Để việc tiếp cận sách hệ thống sách nói thơng qua hình thức nghe và phục vụ
việc quản lý và xác thực người dùng, mục đích của luận văn nghiên cứu thay đổi sử
dụng từ mơ hình hướng dịch vụ SOA sang mơ hình MSA. Về định hướng phát triển,
để tiếp cận được với hầu hết người dùng bằng các thiết bị di động phần mềm xây
dựng ứng dụng trên nền tảng Web mà các thiết bị di động và máy tính có sẵn hoặc
việc cài đặt đơn giản và không phụ thuộc vào nền tảng thiết bị của người dùng, ứng
dụng kiến trúc MSA để xây dựng hệ thống sách nói bao gồm các Dịch vụ quản lý
xác thực người dùng, Dịch vụ Quản lý sách nói, Dịch vụ phân quyền người dùng.
- Tóm tắt luận điểm cơ bản và đóng góp mới của tác giả
Các luận điểm cơ bản: Hướng đến một hệ thống thơng tin ứng dụng mang tính
tổng qt và gọn nhẹ, tinh gọn trong quá trình triển khai, ứng dụng MSA tạo ra các
ứng dụng trực tuyến mạnh mẽ và có khả năng linh hoạt để mở rộng, dễ xây dựng
mã và bảo trì mã, việc triển khai dễ dàng.
Đóng góp mới của luận văn như sau:
Thứ nhất: luận văn xây dựng các dịch vụ ứng dụng hệ thống quản lý sách nói
theo mơ hình MSA.
Thứ hai: luận văn xây dựng dịch vụ phân quyền người dùng động, dịch vụ này có
thể ứng dụng vào các hệ thống quản lý khác bên ngồi hệ thống quản lý sách nói.
- Phương pháp nghiên cứu:
2
Nghiên cứu lý thuyết: thu thập thông tin thông qua đọc các bài báo, tài liệu ebook
điện tử, việc tham khảo các tài liệu để có cái nhìn tổng thể, từ đó tổng hợp lại những
mối quan hệ giữa các thông tin từ lý thuyết đã thu thập được nhằm mục đích tìm
chọn những khái niệm cơ bản làm cơ sở cho đề tài sau đó đưa ra các đối tượng và
những thuộc tính của đối tượng nghiên cứu và thiết kế cấu trúc phù hợp với mơ hình
bài tốn ban đầu.
Phương pháp mơ hình hóa giúp phản ảnh những mặt xung quanh đối tượng, mơ
hình hóa đối tượng nghiên cứu dưới dạng trực quan, xây dựng mơ hình các đối
tượng nghiên cứu các thông tin về gồm cấu trúc, thuộc tính, chức năng, luồng dữ
liệu.
Nghiên cứu theo định hướng theo mục đích ứng dụng quản lý sách nói và quản lý
phân quyền người dùng.
Nội dung của luận văn
Nội dung luận văn bao gồm 4 chương:
CHƯƠNG 1: KHẢO SÁT VÀ PHÂN TÍCH U CẦU HỆ THỐNG SÁCH
NĨI
Khảo sát hiện trạng, mô tả các chức năng tổng quan hệ thống, đặc tả chi tiết các
chức năng
CHƯƠNG 2: KIẾN TRÚC THIẾT KẾ MSA VÀ CÁC CƠNG NGHỆ SỬ
DỤNG
Kiến trúc Microservices, Cơng nghệ NodeJS, Công nghệ Java, Spring
Framework, SSO Công nghệ ReactJS, Cơ sở dữ liệu MongoDB.
CHƯƠNG 3: CÁC GIẢI PHÁP MSA NỔI BẬT VÀ PHÁT TRIỂN HỆ
THỐNG SÁCH NÓI
Kiến trúc Microservices của hệ thống sách nói, thuật tốn dịch vụ phân quyền
động. Thiết kế kiến trúc hệ thống, xây dựng ứng dụng, triển khai, giao diện của
chương trình.
Kết luận
Đóng góp và định hướng
3
CHƯƠNG 1: KHẢO SÁT VÀ PHÂN TÍCH YÊU CẦU HỆ THỐNG SÁCH
NĨI
Chương mở đầu của luận văn, phần 1.1 trình bày khảo hiện trạng đọc sách, phần
1.2 trình bày tổng quan về các dịch vụ hệ thống xây dựng, phần 1.3 đặc tả chi tiết
các chức năng trong hệ thống.
1.1 Khảo sát hiện trạng
Việc đọc sách luôn được coi trọng trong cuộc sống hàng ngày và sách là kho tàng
tri thức của con người, sách cung cấp cho chúng ta vô số kiến thức cũng như kinh
nghiệm quý báu sau nhiều năm nghiên cứu của người viết, từ dân tộc này tới dân
tộc khác, từ nền văn hóa này tới nền văn hóa khác. Bên cạnh đó sách, truyện cũng là
một trong những phương tiện mang tính giải trí rất hiệu quả và luôn luôn được các
nhà trường, các cơ sở giáo dục hay những danh nhân khuyến khích đọc. Hiện nay,
công nghệ thông tin đã phát triển tới mức đi sâu vào hầu hết các lĩnh vực của đời
sống - xã hội, văn hóa, kinh tế, giáo dục,… Cơng nghệ thông tin phát triển mang
đến thay đổi, về việc đọc sách, truyện trên các thiết bị điện tử. Ngày nay, thay vì
việc mua sách giấy với chi phí khơng hề rẻ và đơi khi khó khăn trong việc tìm kiếm,
xu hướng đọc thường tìm đến sách điện tử - là một nguồn tài liệu đồ sộ, dễ tìm kiếm
và chi phí sử dụng thơng thường khơng đắt như sách giấy, bên cạnh đó sách điện tử
dễ dàng lưu trữ và dễ mang theo khi chỉ cần có một thiết bị điện tử như điện thoại,
máy tính bảng hay máy vi tính là ta đã có thể chứa được hàng ngàn quyển sách khác
nhau. Tuy nhiên, với điện tử người đọc phải tiếp xúc với các màn hình của thiết bị
điện tử. Đó có thể là một màn hình máy tính, một màn hình máy tính bảng hay phổ
biến nhất là màn hình điện thoại. Ở bất kỳ đâu hay bất kỳ lúc nào, thực sự khơng
khó để bắt gặp những hình ảnh ai đó đang “cắm mặt” vào các loại màn hình điện tử.
Việc đọc sách điện tử thơng qua việc tiếp xúc bằng mắt với các thiết bị ở cự ly gần,
thời gian dài có thể gây ra các bệnh về mắt như lão hóa mắt, các triệu chứng mỏi
mắt đau mắt và dẫn đến cận thị.
Những ảnh hưởng đến việc đọc sách bằng mắt có thể được giảm thiểu và giải
quyết với sự phát triển ngày càng hồn thiện của cơng nghệ tổng hợp tiếng nói,
4
chúng ta có thể chuyển từ các đoạn văn bản có nội dung trên sách và thiết bị điện tử
sang dạng âm thanh để có thể nghe bằng tai, vì thế tiếp cận việc đọc sách được có
nhiều ưu điểm hơn, khơng phải ngồi cố định một chỗ mà có thể nghe sách trong lúc
di chuyển trên tầu hoặc xe.
Trên nền tảng hệ thống tổng hợp sách nói gồm hệ thống ứng dụng cơng nghệ
tổng hợp tiếng nói đầu vào là một file dạng text của cuốn sách, đầu ra của hệ thống
xử lý là file audio của sách, hiện tại hệ thống sách nói các đối tượng là các đại lý
quản lý sách và sách bao gồm tên sách, thể loại sách và các tác giả viết sách, với
thực trạng này sau khi sách giấy được chuyển thành dạng text để đưa vào hệ thống
xử lý tiếng nói, các nhân viên phải chỉnh sửa và chuẩn hóa các file sách, những
cuốn sách được xử lý sau đó sẽ được lưu thông tin về tên, tác giả, năm xuất bản, thể
loại sách… trong các file excel nặng nề khó xem và quản lý khi số lượng sách tăng
cao, đồng thời các nhân viên khác nhau của đại lý có các chức năng nhiệm vụ như
quản lý và nhân viên khi sử dụng các file sửa đổi sẽ phải được tổng hợp lại sẽ mất
nhiều thời gian để thống nhất dữ liệu từ nhiều nguồn nhân viên. Với thực trạng đó
đề tài đề xuất xây dựng Dịch vụ quản lý sách nói lưu giữ và khai thác các thơng tin
về sách nói dựa vào đó các đại lý và nhân viên của họ dễ dàng thống nhất hơn trong
việc quản lý, giảm thiểu thời gian thực hiện lưu trữ, truy xuất tìm kiếm thơng tin.
Để bảo mật thơng tin của các đại lý sách không để lộ ấn phẩm hoặc bản quyền
quan trọng, phần mềm yêu cầu mỗi người dùng cần phải đăng nhập vào hệ thống,
việc đăng nhập để xác thực danh tính, bảo mật thơng tin của phần mềm, cũng như
tránh những xâm phạm khơng nhìn thấy từ bên ngoài, luận văn xây dựng Dịch vụ
đăng nhập, xác thực SSO bằng thư điện tử và mật khẩu cho từng người dùng trong
hệ thống.
Thêm vào đó một cơng ty hay đại lý sách ln có các quản lý là người sở hữu
cửa hàng và các nhân viên của họ làm việc cho đại lý đó, người quản lý cửa hàng có
trách nhiệm phân cơng cơng việc của cửa hàng cho nhân viên cấp dưới, hệ thống tài
khoản của đại lý sách có các người dùng là quản lý và nhân viên cũng sẽ được phân
quyền phù hợp với chức năng của họ, theo hướng này. Nói cách khác với nhu cầu cấp
5
thiết thực tế, ứng dụng cần thiết kế và xây dựng một dịch vụ quản lý người dùng linh
hoạt, với các tài khoản được tạo ra mỗi tài khoản sẽ được gán vai trị, các quyền cho
tài khoản đó. Luận văn xây dựng Dịch vụ phân quyền cho các người dùng có các
quyền tùy chỉnh sửa, xóa, thêm mới, xem hoặc không được xem một trang trong hệ
thống quản lý sách nói hoặc khơng được sử dụng một vài chức năng trong trang. Với
người dùng là quản lý hệ thống quản lý các tài khoản họ tạo ra đồng thời được phân
có quyền tạo và gán cho một người dùng thấp hơn các quyền phù hợp với các công
việc họ được giao.
1.2 Tổng quan các dịch vụ của hệ thống
Luồng hoạt động của hệ thống đầu tiên từ người sử dụng dịch vụ tạo một tài
khoản từ giao diện đăng ký, sau khi quản trị viên của hệ thống xác nhận, người
dùng mới sẽ được gán vai trò, phân các quyền truy cập và sử dụng dịch vụ quản lý
sách nói. Hình 1.1 mơ tả các chức năng được xây dựng trong ứng dụng.
Phân cấp chức năng hệ thống:
Hình 1.1. Tổng quan chức năng
Biểu đồ use case tổng quan:
6
Hình 1.2. Biểu đồ Use case tổng quan
Hình 1.2 mơ tả hệ thống gồm 5 tác nhân là Editor, Quản lý đại lý, Quản trị viên
hệ thống, SSO, TTS Engine và tương tác của tác nhân với hệ thống;
a. Editor:
- Editor là nhân viên đại lý sách
- Nhân viên đại lý có thể đăng ký để thành thành viên của hệ thống, Editor có thể
sử dụng hầu hết tính năng cơ bản của dịch vụ quản lý sách nói bao gồm thêm các
thông tin chi tiết sách, cập nhật các chi tiết mới của sách, tìm kiếm sách, chỉnh sửa,
chuẩn hóa nội dung của một quyển sách.
7
b. Quản lý đại lý
- Quản lý đại lý là người trong vai trị quản lý tồn bộ các cơng việc của đại lý
sách.
- Quản lý đại lý được phép đăng nhập sử dụng hai dịch vụ của hệ thống: Dịch vụ
thứ nhất là quản lý sách bao gồm tất cả các quyền của Editor, ngoài ra hệ thống
cung cấp thêm chức năng mở rộng tổng hợp sách. Dịch vụ thứ hai là quản lý phân
quyền, quản lý đại lý có thể quản lý thơng tin cơ bản của các nhân viên đại lý, gán
vai trò và thiết lập cho họ quyền sử dụng các chức năng cụ thể đã được cài đặt trong
Dịch vụ quản lý sách.
- Và cuối cùng, kết thúc mỗi phiên làm việc, quản lý đại lý có thể đăng xuất khỏi
hệ thống nếu muốn.
c.
Quản trị viên hệ thống:
- Quản trị viên hệ thống là người quản trị hệ thống sách nói, giữ vai trị điều
khiển các hoạt động duy trì trang web, quản trị viên hệ thống cũng thực hiện việc
chuẩn hóa sách từ file word sau đó tổng hợp sách.
- Để có thể thực hiện các thao tác quản trị của trang web, dĩ nhiên quản trị viên
cần có các chức năng như đăng nhập và đăng xuất. Quản trị có thể quản lý các tài
khoản của đại lý sách bao gồm tài khoản của nhân viên - Editor và quản lý đại lý;
quản lý phân quyền cho các tài khoản sử dụng hệ thống.
d. SSO:
SSO được dùng trong hệ thống có nhiều website và ứng dụng, là một cơ chế
xác thực yêu cầu người dùng đăng nhập vào chỉ một lần với một tài khoản và
mật khẩu để truy cập vào một hệ thống hay nhiều hệ thống kết nối với nhau
mà không cần sử dụng nhiều tên đăng nhập và mật khẩu khác nhau của từng
hệ thống trong 1 phiên làm việc.
e. TTS Engine:
- TTS Engine là một hệ thống tổng hợp tiếng nói, có vai trị tiền xử lý nội dung
đầu vào là file word đã được chuẩn hóa sau đó chuyển từ dạng văn bản sang dạng
tiếng nói dưới định dạng tệp âm thanh theo các giọng đọc tùy chọn.
8
- Trong hệ thống đọc sách, TTS Engine đóng vai trò là nơi cung cấp đầu vào, các
sách, đã tổng hợp cho hệ thống. Các sách có trong hệ thống khơng thể thêm vào một
cách tùy tiện mà chỉ có thể lấy được thông qua TTS Engine.
1.2.1 Dịch vụ quản lý xác thực người dùng SSO
Mơ tả:
Các ứng dụng có các hệ thống nhận diện khác nhau sẽ gây khó khăn cho người
dùng khi sử dụng các ứng dụng mà cịn khiến đại lý khó kiểm sốt và liên kết các
tài khoản. Dịch vụ SSO cho phép một đại lý đăng ký tài khoản thông qua tài khoản
thư điện tử và mật khẩu, việc đăng nhập và xác thực tập trung và lưu thông tin về
người dùng. Sau khi đăng ký, đại lý sách cần phải gọi điện xác nhận với quản trị
viên hệ thống, nếu tài khoản được quản trị viên chấp nhận, đại lý dùng tài khoản
này để đăng nhập sử dụng các dịch vụ trong hệ thống sách nói. Chức năng chính
của dịch vụ xác thực người dùng SSO là đăng nhập một lần sau đó sử dụng tài
khoản này để đăng nhập các dịch vụ quản lý sách và dịch vụ quản lý phân quyền.
Hình 1.3 mô tả tương tác người dùng, quản trị viên đến dịch vụ xác thực người
dùng SSO.
Hình 1.3. Biểu đồ cho use case đăng nhập hệ thống
Xác thực người dùng: Khi người dùng đăng nhập bằng thông tin tài khoản thành
công, client sẽ lấy được access_token được tạo ra từ máy chủ xác thực, token này sẽ
được lưu vào trong cookie và tạo thời gian hết hạn cho nó, mỗi khi người dùng có
9
yêu cầu bất kỳ đến máy chủ nào thì access_token sẽ được gửi kèm trong yêu cầu
đến máy chủ đó thực hiện xác thực tài khoản.
Hai tác nhân chính của dịch vụ quản lý đăng ký, xác thực người dùng là Người
dùng có thể là Nhân viên đại lý hoặc là Quản lý đại lý và Quản trị hệ thống.
Tác nhân Người dùng: được phép đăng ký, đăng nhập, đổi mật khẩu, hệ thống
xác nhận mật khẩu.
Tác nhân Quản trị hệ thống tác động vào dịch vụ thay đổi thông tin người dùng
và cấp lại mật khẩu.
1.2.2 Dịch vụ quản lý sách
Mô tả
Dịch vụ quản lý sách cho phép lưu trữ và quản lý chính các thơng tin chi tiết cho
mỗi quyến sách, lưu thông tin của tác giả cho mỗi quyển sách, thơng tin thể loại của
cuốn sách đó, Dịch vụ quản lý có chức năng xử lý thêm sách bằng cách chọn file
excel chứa thông tin sách và file word chứa nội dung sách. Hình 1.4 mơ tả tương tác
nhân viên, quản lý đại lý đến dịch vụ quản lý sách
Hình 1.4. Biểu đồ cho use case dịch vụ quản lý sách
Hai chức năng quan trọng trong dịch vụ này là kết nối tới TTS Engine là chuẩn
hóa sách và tổng hợp sách. Chức năng chuẩn hóa sách tìm các từ và đoạn văn có
khả năng lỗi, chức năng tổng hợp sách gọi đến hệ thống TTS Engine chuyển từ file
text nội dung sách sang file tiếng nói định dạng mp3.
10
Hai tác nhân chính trong chức năng quản lý sách là Quản lý đại lý và Nhân viên.
Tác nhân Nhân viên: có thể thêm thơng tin sách, sửa, xóa Sách, tạo Thể loại sách,
sửa xóa Thể loại sách, thêm tác giả, sửa, xóa Tác giả, tìm kiếm theo tên sách, thể
loại sách, tác giả, ngày xuất bản sách và chuẩn hóa sách.
Tác nhân Quản lý đại lý: có chức năng tạo mới thông tin, nội dung một quyển
sách thêm sửa xóa Sách, thêm sửa xóa Thể loại sách, thêm sửa xóa Tác giả, tìm
kiếm sách theo tên sách, thể loại, tác giả, thực hiện hai chức năng chính trong hệ
thống sách nói là tổng hợp và chuẩn hóa sách.
1.2.3 Dịch vụ quản lý phân quyền người dùng:
Mô tả
Dịch vụ quản lý và phân quyền giới hạn quyền truy cập và thao tác của một đối
tượng người dùng trên ứng dụng, kết hợp đối tượng người dùng và các hành động
được phép của họ trên ứng dụng sẽ tạo ra những quyền cụ thể. Sau khi đại lý đăng
ký một tài khoản tại dịch vụ đăng nhập và xác thực, người quản lý đại lý sẽ được
quyền đăng nhập vào dịch vụ quản lý phân quyền, tài khoản này sẽ có chức năng
phân cho nhân viên sử dụng hệ thống được sử dụng những tài nguyên nào, tài khoản
được tạo mới các vai trò, các trang, phân quyền cho người dùng là nhân viên đại lý
sử dụng tất cả quyền hay một phần quyền trong đó. Dịch vụ Quản lý phân quyền
cho phép thêm sửa xóa các vai trị, thêm sửa xóa các quyền cho người dùng, thêm
sửa xóa các quyền trên một Trang trong dịch vụ quản lý sách nói. Hinh 1.5 mô tả
tương tác giữa quản lý đại lý và dịch vụ phân quyền người dùng
11
Hình 1.5. Biểu đồ cho use case dịch vụ quản lý phân quyền
Tác nhân Quản lý đại lý: có đầy đủ các quyền trong dịch vụ quản lý sách, có các
chức năng thêm sửa xóa thơng tin Editor, thêm sửa xóa một vai trị, thêm sửa xóa
các quyền cho Editor, thêm sửa xóa các quyền trên một trang thuộc dịch vụ quản lý
sách, phân quyền cho Editor trên một trang, tìm kiếm.
1.3
Đặc tả các chức năng
Dưới đây là bảng danh sách đầy đủ các chức năng use case của hệ thống
Bảng 1.1. Danh sách các use case của hệ thống:
Use case cha
Đăng nhập
Mã use case
Tên use case
UC001
Đăng ký
UC002
Đăng nhập bằng email, mật khẩu
UC003
Thay đổi mật khẩu
UC004
Đặt lại mật khẩu
UC005
Xác thực
12
UC006
CRUD sách
UC007
CRUD thể loại
UC008
CRUD tác giả
UC009
Chuẩn hóa chương
UC010
Tổng hợp
UC011
Tìm kiếm
UC012
RUD Editor
UC013
CRUD vai trị
UC014
CRUD phân quyền
UC015
CRUD trang
UC016
Tìm kiếm
Quản lý sách
Quản lý phân quyền
1.3.1 Đặc tả use case “Đăng nhập”
Bảng 1.2. Đặc tả use case “Đăng nhập”:
Mã Use case
UC001 - UC005 Tên use case
Tác nhân
Editor, Quản lý đại lý
Tiền điều kiện
Khơng có
Đăng nhập
Ở use case này em trình bày 2 chức năng Thay đổi mật khẩu và Xác thực người
dùng, 2 chức năng đơn giản Đăng nhập và Đăng ký em không trình bày
Thay đổi mật khẩu:
13
Luồng sự
kiện chính
STT Thực hiện bởi Hành động
truy cập vào trang thay đổi mật khẩu
1. Editor, Quản
lý đại lý
/partner/settings/security
2. Hệ thống
hiển thị giao diện thay đổi
3. Editor, Quản
lý đại lý
nhập mật khẩu cũ và nhập mật khẩu
mới hai lần.
Xác thực người dùng:
Luồng sự
kiện chính
STT
Thực hiện bởi Hành động
Editor, Quản lý
1.
đại lý
gửi yêu cầu lên hệ thống
2. Hệ thống
kiểm tra Token tồn tại hay không
3.
nếu yêu cầu không tồn tại, sẽ khơng
Hệ thống
làm gì. Nếu tồn tại hệ thống sẽ kiểm
tra quyền tương ứng của u cầu.
kiểm tra chính xác thơng tin đã nhập,
4.
thông báo đổi mật khẩu thành công
Hệ thống
hoặc phải nhập lại thông tin do không
trùng lặp.
1.3.2 Đặc tả use case “Quản lý sách”
Bảng 1.3. Đặc tả use case “Quản lý sách”:
Mã Use case
UC006 - UC011
Tác nhân
Editor, Quản lý đại lý
Tiền điều kiện
Tài khoản đăng nhập hệ thống
Tên use case
14
Quản lý sách