1. Trang chủ
  2. » Luận Văn - Báo Cáo

Kiến trúc microservices và hệ thống sách nói trực tuyến

80 17 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 80
Dung lượng 2,74 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

LUẬN VĂN THẠC SĨ KỸ THUẬT

HÀ NỘI - 2018

Trang 2

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

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

Trang 3

LỜI CẢM ƠN

Để có thể hoà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!

Trang 4

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 toà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

Trang 5

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.1Khả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.1Giả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

Trang 6

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.2Giả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

Trang 7

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

API Application Programming Interface REST Representational State Transfer

SOA Services Orient Achitecture

CRM Customer Relationship Management ERP Enterprise Resource Planning

CAP Consistency, Availability, Partition tolerance

ESB Enterprise Service Bus

CDN Content delivery network SOAP Simple Object Access Protocol

CORBA Common Object Request Broker Architecture

JMS Java Message Service JSON JavaScript Object Notation JVM Java Virtual Machine JMI Java remote method invocation IoC Inverstion Of Control

Trang 8

CRUD Create, Read, Update, Delete

Java EE Java Enterprise Edition

URI Uniform Resource Identifier ReactJS JavaScript library build User interfaces

ECMAScript European Computer Manufacturers Association

Script

Trang 9

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 toá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

Trang 10

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

Trang 11

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

Trang 12

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 nguyên 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

Trang 13

Với tình hình thực tế như trên, chúng ta hoàn toà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 quát 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 ngoài hệ thống quản lý sách nói

- Phương pháp nghiên cứu:

Trang 14

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 toá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 YÊ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 toá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

Trang 15

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 hoàn thiện của công nghệ tổng hợp tiếng nói,

Trang 16

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 luôn 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

Trang 17

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:

Trang 18

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

Trang 19

- 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

Trang 20

- 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 soá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ó

Trang 21

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

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

Trang 22

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

Trang 23

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 Mã use case Tên use case

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

Trang 24

Quản lý sách

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 Quản lý phân quyền UC012 RUD Editor

UC013 CRUD vai trò UC014 CRUD phân quyền UC015 CRUD trang UC016 Tìm kiếm

1.3.1 Đặc tả use case “Đăng nhập”

Bảng 1.2 Đặc tả use case “Đă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:

Mã Use case UC001 - UC005 Tên use case Đăng nhập

Tác nhân Editor, Quản lý đại lý

Tiền điều kiện Không có

Trang 25

2 Hệ thống kiểm tra Token tồn tại hay không

3

Hệ thống

nếu yêu cầu không tồn tại, sẽ không làm gì Nếu tồn tại hệ thống sẽ kiểm tra quyền tương ứng của yêu cầu

4

Hệ thống

kiểm tra chính xác thông tin đã nhập, thông báo đổi mật khẩu thành cô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ên use case Quản lý sách

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

Trang 26

truy cập vào trang quản lý sách nói, nhấn chuột vào Tag Sách

2

Hệ thống hiển thị giao diện trang thông tin tất cả

sách

3 Editor, Quản lý đại lý

nhấn chuột vào thêm sách mới

4 Hệ thống hiển thị trang thông tin thêm sách

5 Editor, Quản lý đại lý, Quản trị viên

bước 1 chọn Choose File thêm thông tin sách, sau đó chọn nhập

bước 2 chọn choose File thêm nội dung sách file, sau đó chọn nhập

6 Hệ thống lưu thông tin và nội dung sách

truy cập vào trang quản lý sách nói, nhấn chuột vào Tag Sách, chọn sách cần sửa

2 Hệ thống hiển thị giao diện trang các quyển sách

3 Editor, Quản lý đại lý

nhấn chuột vào sửa sách

4 Hệ thống hiển thị giao diện sửa sách

5 Editor, Quản lý đại lý

xóa và cập nhật thêm thông tin cần thiết sau đó nhấn nút lưu thay đổi thông tin

Trang 27

Thêm mới thể loại sách:

truy cập vào trang quản lý sách nói, nhấn chuột vào Tag Các Thể loại sách

2

Hệ thống hiển thị giao diện trang thông tin tất cả thể

loại

3 Editor, Quản lý đại lý

nhấn chuột vào dấu cộng thêm thể loại sách

4 Hệ thống mở cửa sổ thể mới thể loại sách

5 Editor, Quản lý thêm thể loại sách và mô tả, nhấp vào tạo

Hệ thống hiển thị ô nhập tên thể loại có thể sửa và

danh sách các sách trong thể loại sách

Trang 28

chọn xem chi tiết thể loại sách

4 Hệ thống hiển thị tên thể loại và danh sách các sách

trong thể loại sách thuộc thể loại đã chọn

5 Người dùng nhập nút xóa thể loại

6 Hệ thống thông báo xác nhận xóa thẻ loại

chọn dấu cộng để thêm mới

4 Hệ thống hiển thị giao diện thêm mới tác giả,

5 Người dùng thêm mới tên tác giả, mô tả, năm sinh tác

giả, nhấp nút Tạo mới

6 Hệ thống thêm mới thành công

Trang 29

Sửa tác giả:

Xóa tác giả: tương tự như luồng sửa tác giả, bước thực hiện 5 của người dùng sẽ nhấp nút xóa tác giả, bước 6 hệ thống báo xóa tác giả thành công và quay về trang tác giả

Chuẩn hóa Chương:

truy cập vào trang https://services.vbee.vn/authors

2 Hệ thống hiển thị giao diện quản lý tác giả

3 Editor, Quản lý đại lý

chọn chi tiết tác giả

4 Hệ thống hiển thị giao diện sửa tác giả,

5 Người dùng sửa thông tin tác giả, nhấp nút Lưu thay

4 Hệ thống hiển thị giao diện sách

5 Người dùng chọn chuẩn hóa Chương

Trang 30

Tổng hợp sách:

Các bước thực hiện giống luồng chuẩn hóa chương bước 5 người dùng sẽ nhấp vào nút tổng hợp sách, bước 6 hệ thống gọi tác nhân ngoài TTS Engine thực hiện chuyển file word thành file âm thanh mp3

2 Hệ thống hiển thị giao diện trang tìm kiếm sách

3 Editor, Quản lý

đại lý

nhập từ khóa cần tìm, tác giả, chọn thể loại, trạng thái, cách sắp xếp kết quả tìm kiếm, nhấn nút Search

4 Hệ thống hiển thị giao diện kết quả tìm kiếm

1.3.3 Đặc tả use case “Quản lý phân quyền”

Bảng 1.4 Đặc tả use case “Phân quyền người dùng”

Mã Use case UC011 - UC015 Tên use case Quản lý phân quyền

Tác nhân Quản lý đại lý, Quản trị viên hệ thống

Tiền điều kiện Tài khoản đăng nhập hệ thống

Trang 31

nhấp nút thêm Add role

4 Hệ thống hiển thị bảng Add role, ô Name,

đăng nhập trang chủ nhấp vào Tag Role

2 Hệ thống hiển thị vai danh sách vai trò

Trang 32

Thêm mới Page:

2 Hệ thống hiển thị vai danh sách các Page

3 Quản lý đại lý, Quản trị viên

chọn dấu ba chấm trong bảng Page để sửa vai trò

4 Hệ thống hiển thị bảng Edit Page

đăng nhập trang chủ nhấp vào Tag Page

2 Hệ thống hiển thị vai danh sách các Page

Trang 33

5 Quản lý đại lý, Quản trị viên chọn ok

6 Hệ thống hiển thị lại trang quản lý Trang

2 Hệ thống hiển thị vai danh sách các feature

3

Quản lý đại lý, Quản trị viên

chọn dấu ba chấm trong bảng Page để sửa Feature

4 Hệ thống hiển thị bảng Edit Feature

2 Hệ thống hiển thị vai danh sách các Feature

3 Quản lý đại lý, Quản trị viên

chọn Add feature chọn dấu ba chấm trong bảng Page để sửa vai trò

4 Hệ thống hiển thị bảng Add Feature

5 Quản lý đại lý, Quản trị viên chọn ok

6 Hệ thống hiển thị trang quản lý Feature

Trang 34

phân quyền cho người dùng Đặc tả các chức năng cụ thể của ứng dụng

Trang 35

CHƯƠNG 2: THIẾT KẾ KIẾN TRÚC MSA VÀ CÁC CÔNG NGHỆ SỬ

DỤNG

Chương 2 trình bày các công nghệ sử dụng phát triển ứng dụng, phần 2.1 Kiến trúc hệ thống MSA, so sánh với kiến trúc một khối truyền thống Ba công nghệ xây

dựng Back end là phần 2.2 Xác thực SSO, phần 2.3 Công nghệ Nodejs, phần 2.4

Công nghệ Java Công nghệ xây dựng giao diện phần 2.5 Công nghệ ReactJS và phần 2.6 Cơ sở dữ liệu MongoDB

2.1 Kiến trúc Microservices

Kiến trúc một khối truyền thống Monolithic Architecture

Ứng dụng phần mềm doanh nghiệp được thiết kế để đáp ứng nhiều yêu cầu kinh doanh của doanh nghiệp Do đó, các phần mềm cung cấp hàng trăm các tính năng

và tất cả những tính năng này đều được gói trong một ứng dụng monolithic Ví dụ: ứng dụng hỗ trợ lên kế hoạch và sắp xếp tài nguyên ERPs, ứng dụng quản lý mối quan hệ với khách hàng CRMs hay nhiều phần mềm khác chứa hàng trăm tính năng Việc triển khai, sửa lỗi, mở rộng và nâng cấp những phần mềm khổng lồ này trở thành một cơn ác mộng

Kiến trúc hướng dịch vụ SOA được thiết kể để giải quyết một phần của vấn đề bằng cách giới thiệu khái niệm "service" Một dịch vụ là một nhóm tổng hợp các tính năng tương tự trong một ứng dụng Do đó trong SOA, ứng dụng phần mềm được thiết kế như một tổ hợp của các dịch vụ Tuy nhiên, với SOA, giới hạn hay phạm vi của một dịch vụ khá là rộng và được định nghĩa khá "thô" (coarse-grained) Việc này khiến các services cũng có thể trở nên quá to và phức tạp

Hình 2.1 Ứng dụng gồm nhiều dịch vụ

Trang 36

Trong phần lớn trường hợp, dịch vụ trong SOA là độc lập nhưng chúng lại được triển khai chung Tương tự như ứng dụng monolithic, những dịch vụ này to và phức tạp lên theo thời gian vì thường xuyên thêm các tính năng Và thế là những ứng dụng này lại trở thành một mớ các dịch vụ monolithic, cũng không còn khác mấy so với kiến trúc một khối thông thường Hình 2.1 thể hiện một ứng dụng gồm nhiều services Những services này được triển khai cùng một lúc vào 1 ứng dụng lớn Dù bên trong có gồm các services thì đây là một ứng dụng monolithic Một số tính chất của kiến trúc một khối:

 Được thiết kế, phát triển và triển khai theo một khối duy nhất

 Ứng dụng monolithic phức tạp và to gây khó khăn cho việc bảo trì, nâng cấp

và thêm tính năng mới

 Khó áp dụng phát triển kiểu agile

 Phải triển khai lại toàn bộ hệ thống dù chỉ cập nhật hay nâng cấp một phần

 Mở rộng: phải mở rộng cả khối ứng dụng, gặp khó khăn nếu có các yêu cầu về tài nguyên khác nhau (ví dụ một service yêu cầu thêm CPU, service khác lại yêu cầu nhiều memory)

 Độ tin cậy: một service không ổn định có thể sập cả hệ thống

 Khó đổi mới: ứng dụng monolithic phải sử dụng chung công nghệ nên khó thay đổi hay áp dụng công nghệ mới

Chính vì những lí do thiết kế giới hạn như trên việc ứng dụng kiến trúc một khối hay SOA cho hệ thống sách nói là không đảm bảo được phát triển, đề tài hướng tới

sự phát triển của kiến trúc dịch vụ nhỏ MSA

Kiến trúc dịch vụ nhỏ - MSA

Nền tảng cả kiến trúc microservices là xây dựng một ứng dụng mà ứng dụng này

là tổng hợp của nhiều services nhỏ và độc lập có thể chạy riêng biệt, phát triển và triển khai độc lập

Một số khái niệm về microservices nói về quá trình chia tách ứng dụng monolithic thành nhóm các services độc lập Tuy nhiên, theo quan điểm nghiên cứu

Trang 37

của đề tài, microservices không chỉ về chia tách các servcies sẵn có trong monolithic

Ý tưởng quan trọng chính là nhìn vào các tính năng trong một ứng dụng monolithic, ta có thể nhận biết, xác định các yêu cầu và khả năng cần thiết để đáp ứng một nghiệp vụ Sau đó từng năng lực nghiệp vụ này sẽ được xây dựng thành những service nhỏ, độc lập Những services này có thể sử dụng các nền tảng công nghệ khác nhau và phục vụ một mục đích cụ thể và có giới hạn, cũng theo đó các nghiệp vụ của luận văn được tách nhỏ thành nghiệp vụ sách, phân quyền, xác thực Theo đó, ví dụ về hệ thống trong hình 2.1 có thể được chia theo microservices như trong hình 2.2 Đây có thể là một ứng dụng phần mềm bán hàng, với kiến trúc microservices, mỗi chức năng kinh doanh hay trong doanh nghiệp được tách thành một microservices Trong kiến trúc microservices, một service mới được tạo ra từ những services gốc trong kiến trúc monolithic

Hình 2.2 Kiến trúc Microservices

Liên lạc giữa Microservices

Trong ứng dụng monolithic, các chức năng khác nhau nằm trong các component khác nhau được kết nối bằng cách gọi hàm hay phương thức Trong SOA, việc này được chuyển sang một chế độ tách rời hơn với kiểu nhắn tin qua các dịch vụ web web service messaging, phần lớn dùng SOAP trên nền phương thức HTTP, JMS Những webservices này khá phức tạp Với microservices, yêu cầu là phải có một cơ chế truyền tin đơn giản và nhẹ

Gửi tin đồng bộ - REST

Với truyền tin đồng bộ người gửi - client sẽ chờ một khoảng thời gian để nhận kết quả từ service, REST là sự lựa chọn hàng đầu vì nó cung cấp hệ thống truyền tin

Trang 38

đơn giản qua giao thức HTTP dạng request - response Do đó, nhiều microservices

sử dụng HTTP với API Mỗi chức năng hệ thống được xuất ra API, hình 2.3

REST thích ứng tốt với các công nghệ web mới, dễ dàng sử dụng và bảo trì, gần gũi với công nghệ web hiện đại, dễ học, ưu việt trong các ứng dụng hướng tài nguyên, thiên về các CRUD actions mô hình client-server, chỉ giao tiếp thông qua các phương thức HTTP và phương thức xác định, định dạng tên hoặc tài nguyên URI

Hình 2.3 Sử dụng REST API cho microservices

Kết nối giao tiếp giữa các Services trong kiến trúc Microservices

Trong kiến trúc microservices, ứng dụng phần mềm được cấu thành từ các dịch

vụ độc lập Để hoàn thành một tác vụ của người dùng trên phần mềm, kết nối và giao tiếp giữa các microservices là cần thiết vì tác vụ gồm nhiều tác động khác nhau lên các services Vì vậy, giao tiếp giữa các microservices là một vấn đề cực kì quan trọng

Khi áp dụng SOA, giao tiếp giữa các services được tiến hành bởi một ESB và phần lớn logic nằm trong tầng trung gian này là định tuyến cho tin nhắn, chuyền đổi

và điều phối tin nhắn Tuy nhiên, kiến trúc microservices thúc đẩy việc loại trừ một tầng giao tiếp trung gian tập trung/ ESB và chuyển phần logic nghiệp vụ (business logic) sang các services (dạng Smart Endpoints)

Bởi vì microservices sử dụng giao thức tiêu chuẩn HTTP, JSON, , yêu cầu để kết nối một giao thức khác biệt được tối giản Một lựa chọn khác cho giao tiếp giữa microservices là sử dụng một message bus nhẹ hay gateway với khả năng định tuyến tối thiểu hoạt động như những đường truyền đơn thuần không xử lý business

Trang 39

logic gì hết (dump pipe) Dựa vào những phong cách này, có một số kiểu mẫu giao tiếp trong microservices như dưới đây

API-Gateway

Ý tưởng chính của API Gateway là sử dụng một cổng truyền tin gọn nhẹ như một

điểm vào chính cho tất cả khác hàng, người dùng và triển khai những chức năng chung mà không liên quan đến nghiệp vụ đặc thù ở cấp Gateway này Nhìn chung, một API Gateway cho phép sử dụng một API được quản lý qua REST/HTTP Vì thế, chúng ta có thể cung cấp tất cả các chức năng nghiệp vụ được phát triển thành microservices qua API Gateway như một APIs tập trung được quản lý, hình 2.4

Hình 2.4 Tất cả microservices được xuất qua API Gateway

Trong ví dụ bán hàng, tất cả microservices đều được xuất qua API Gateway và đây là một chốt đầu vào duy nhất cho người dùng Nếu một microservices muốn giao tiếp với một microservice khác thì cần đi qua API Gateway

API Gateway cung cấp các lợi thế dưới đây:

 Cung cấp một lớp trừu tượng hóa các microservices Ví dụ thay vì cung cấp một API cho tất cả khách hàng, API gateway có thể xuất ra hay hiển thị API khác nhau cho mỗi khách hàng

 Định tuyến và chuyển đổi tin nhắn gọn nhẹ ở cấp gateway

 Một điểm tập trung cho các chức năng chung không mang tính nghiệp vụ kinh doanh như bảo mật, giám sát và điều tiết

 Với API Gateway, microservices trở nên càng gọn nhẹ vì các chức năng chung không mang tính nghiệp vụ đều chuyển sang Gateway

Trang 40

API Gateway có thể là kiểu mẫu được sử dụng rộng rãi nhất trong triển khai microservices

Với các thiết kế như trên có thể đưa ra ưu điểm của Microservices ứng dụng trong luận văn:

1- Giảm thiểu sự gia tăng phức tạp rối rắm hệ thống lớn

2- Chia nhỏ ứng dụng một khối cồng kềnh thành các dịch vụ nhỏ dễ quản lý, bảo trì nâng cấp, tự do chọn, nâng cấp công nghệ mới

3- Mỗi dịch vụ nhỏ sẽ định ra ranh giới rõ ràng dưới dạng RPC hay API hướng thông điệp

4- Microservices thúc đẩy tách rạch ròi các khối chức năng (loose coupling - high cohesion), điều rất khó thực hiện với ứng dụng một khối Nếu muốn loose coupling - high cohesion trong ứng dụng một khối, sẽ phải thiết kế theo Design Pattern và liên tục tái cấu trúc – refactor

Mỗi dịch vụ nhỏ sẽ phát triển dễ hơn, nhanh hơn, dễ viết mã kiểm thử tự động Một số dịch vụ có thuê ngoài phát triển mà vẫn bảo mật hệ thống - mã nguồn phần dịch vụ còn lại Đội phát triển có nhiều lựa chọn công nghệ mới, framework, CSDL mới, đa dạng để nâng cấp từng dịch vụ nhỏ, chọn môi trường tối ưu nhất để chạy Các dịch vụ có thể bật tắt để kiểm nghiệm so sánh A|B, tăng tốc quá trình cải tiến giao diện Triển khai đều đặn khả thi với microservices Dịch vụ nhỏ đóng gói trong Docker container có thể chuyển từ môi trường phát triển sang môi trường chạy thật không phải cấu hình thủ công lại, không phải copy file quá lớn

Nhược điểm của microservices

Nhược điểm đầu tiên của microservices cũng chính từ tên gọi của nó Microservices nhấn mạnh kích thước nhỏ gọn của dịch vụ Một số lập trình viên đề xuất dịch vụ siêu nhỏ cỡ dưới 100 dòng code Chia quá nhiều sẽ dẫn đến manh mún, vụn vặt, khó kiểm soát Việc lưu dữ liệu cục bộ bên trong những dịch vụ quá nhỏ sẽ khiến dữ liệu phân tán quá mức cần thiết

Nhược điểm tiếp của microservice đến từ đặc điểm hệ thống phân tán DS:

Ngày đăng: 27/02/2021, 23:56

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. Microservices for Java Developers. A Hands-On Introduction to Frameworks & Containers. Compliments of Redhad Developers, By Christian Posta, O’Reilly 2016. Chapter: Spring Boot for Microservices, Chapter: Deploy Microservices at Scale with Docker and Kubernetes Khác
[2]. David Gonzalez - Developing Microservices with Node.js - 2016 By David Gonzalez, Packt Publishing Khác
[3]. Service - Oriented Architecture: Analysis and Design for Services and Microservices. Thomas Erl, Prentice Hall, 2017 Chapter 5 Understanding Layers with Services and Microservices. Service API and Contract Design with REST Services and Microservices Khác
[5]. Building Microservices, O’Reilly Media by Sam Newman. The Evolutionary Architect, How to Model Services Khác
[6]. Microservices from Day One. Build robust and scalable sofware from the start by Cloves Carneiro Jr. Tim Schmelmer Khác
[8]. Microservices: Building Scalable Software 2016 Packt Publishing. Authors: Sourabh Sharma Rajesh RV David Gonzalez Khác

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w