1. Trang chủ
  2. » Cao đẳng - Đại học

Xây dựng hệ thống quản lý và gợi ý dịch vụ logistic sử dụng data lake

108 38 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 108
Dung lượng 2,39 MB

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

Nội dung

Đặc điểm của ngôn ngữ lập trình Java Tương tự C++, hướng đối tượng hoàn toàn Trong quá trình tạo ra một ngôn ngữ mới phục vụ cho mục đích chạy được trên nhiều nền tảng, các kỹ sư của Su

Trang 1

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA CÔNG NGHỆ PHẦN MỀM

NGÔ THỊ HUYỀN NGUYỄN QUANG NGHĨA

KHÓA LUẬN TỐT NGHIỆP XÂY DỰNG HỆ THỐNG QUẢN LÝ VÀ GỢI Ý DỊCH VỤ LOGISTIC SỬ

DỤNG DATALAKE Building the logistic service management and suggestion system with data

lake

KỸ SƯ NGÀNH CÔNG NGHỆ PHẦN MỀM

Trang 2

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA CÔNG NGHỆ PHẦN MỀM

NGÔ THỊ HUYỀN – 16520543 NGUYỄN QUANG NGHĨA – 16520810

KHÓA LUẬN TỐT NGHIỆP XÂY DỰNG HỆ THỐNG QUẢN LÝ VÀ GỢI Ý DỊCH VỤ LOGISTIC SỬ

DỤNG DATALAKE Building the logistic service management and suggestion system with data

lake

KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM

GIẢNG VIÊN HƯỚNG DẪN Ths.NGUYỄN CÔNG HOAN

Trang 3

THÔNG TIN HỘI ĐỒNG CHẤM KHÓA LUẬN TỐT NGHIỆP

Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số ……… ngày ……… của Hiệu trưởng Trường Đại học Công nghệ Thông tin

Trang 4

LỜI CẢM ƠN

Sau quá trình học tập và rèn luyện tại khoa Công nghệ phần mềm trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM chúng em đã được trang bị các kiến thức

cơ bản, các kỹ năng thực tế để có thể hoàn thành Khóa luận tốt nghiệp của mình

Để hoàn thành khóa luận này, chúng em xin gửi lời cảm ơn chân thành đến:

Ban Giám hiệu trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM vì đã tạo điều kiện về cơ sở vật chất với hệ thống thư viện hiện đại, đa dạng các loại sách, tài liệu thuận lợi cho việc tìm kiếm, nghiên cứu thông tin

Chúng em xin gửi lời cảm ơn chân thành đến thầy Nguyễn Công Hoan đã tận tình giúp đỡ, định hướng cách tư duy và cách làm việc khoa học Đó là những góp ý hết sức quý báu không chỉ trong quá trình thực hiện luận văn này mà còn là hành trang tiếp bước cho chúng em trong quá trình học tập và lập nghiệp sau này

Và cuối cùng, chúng em xin gửi lời cảm ơn đến gia đình, tất cả thầy cô trong khoa, bạn bè, tập thể lớp KTPM2016 là những người luôn sẵn sàng sẻ chia và giúp đỡ trong học tập và cuộc sống Mong rằng, chúng ta sẽ mãi mãi gắn bó với nhau

Trong quá trình làm khóa luận này chúng em không tránh khỏi được những sai sót, chúng em kính mong nhận được sự chỉ dẫn và góp ý của quý thầy cô để khóa luận được hoàn thiện hơn

Chúng em xin chân thành cảm ơn Xin chúc những điều tốt đẹp nhất sẽ luôn đồng hành cùng mọi người

Trang 5

MỤC LỤC

Chương 1 GIỚI THIỆU CHUNG 2

1.1 Lý do chọn đề tài 2

1.2 Đối tượng nghiên cứu 3

1.3 Phạm vi nghiên cứu 4

1.4 Phương pháp nghiên cứu 4

Chương 2 KIẾN THỨC NỀN TẢNG 5

2.1 Tổng quan về mô hình MVC 5

2.1.1 Khái niệm 5

2.1.2 Cấu trúc mô hình MVC 5

2.1.3 Luồng đi trong mô hình MVC 6

2.1.4 Tại sao dùng mô hình MVC 7

2.1.5 So sánh MVC Và MVP 8

2.2 Tổng quan về JAVA 11

2.2.1 Khái niệm 11

2.2.2 Lý do chọn Java để phát triển server 26

2.3 Hệ quản trị cơ sở dữ liệu MySQL 33

2.4 Tổng quan về ReactJS 34

2.4.1 Cơ chế hoạt động của Apache Kafka 36

2.4.2 Tính năng của Apache Kafka 36

2.4.3 Các thuật ngữ và khái niệm của Apache Kafka 37

2.5 Tổng quan về Apache Flink 39

Trang 6

2.5.2 Hệ sinh thái trên Apache Flink 41

2.5.3 Tính năng của Flink 42

2.6 Tổng quan về Apache Zookeeper 43

2.6.1 Giới thiệu về Hệ thống phân tán 43

2.6.2 Ưu điểm của hệ thống phân tán 43

2.6.3 Giới thiệu về ZooKeeper 43

2.6.4 Khả năng mở rộng 44

2.6.5 Chế độ độc lập 45

2.6.6 Mô hình dữ liệu ZooKeeper 45

2.6.7 Znode 46

2.7 Tổng quan về Data Lake 46

2.7.1 Giới thiệu tổng quan 46

2.7.2 Mục đích & Lợi ích sử dụng 50

2.7.3 So sánh DataLake và Data Warehouse 58

2.7.4 Mô hình hệ thống Data Lake của ứng dụng Mylogis 69

Chương 3 PHÂN TÍCH HỆ THỐNG 72

3.1 Xây dựng kiến trúc hệ thống 72

3.1.1 Xác định yêu cầu hệ thống 72

3.1.2 Phân tích yêu cầu hệ thống 73

3.2 Phân tích thiết kế hệ thống 74

3.2.1 Sơ đồ use case 74

3.2.2 Sơ đồ lớp 76

3.2.3 Phân tích và thiết kế CSDL 77

3.2.4 Thiết kế giao diện 85

Trang 7

Chương 4 MÔ TẢ CHỨC NĂNG GỢI Ý GÓI DỊCH VỤ 88

4.1 Cơ sở lý thuyết bài toán định tuyến 88

4.2 Thực nghiệm 91

Chương 5 KẾT QUẢ ĐẠT ĐƯỢC VÀ HƯỚNG PHÁT TRIỂN 93

5.1 Ưu điểm 93

5.2 Nhược điểm 94

Trang 8

DANH MỤC HÌNH

Hình 2.1: Mô hình MVC 5

Hình 2.2: Mô hình MVC pattern 7

Hình 2.3: Mô hình MVP 9

Hình 2.4: Mô hình hệ thống Complier Java 13

Hình 2.5: Mô hình các nền tảng JVM 15

Hình 2.6: Các ứng dụng của Java 16

Hình 2.7: Các phiên bản của Java 16

Hình 2.8: Các JDK của Java 17

Hình 2.9: Sprint Framework Runtime 19

Hình 2.10: Spring MVC 21

Hình 2.11: Spring Boot 23

Hình 2.12: Sự phát triển và độ phổ biến của MYSQL 33

Hình 2.13: Mô hình luồng dữ liệu một chiều của ReactJS 34

Hình 2.14: Mô hình tổng quan của Apache Kafka 35

Hình 2.15: Cơ chế hoạt động của Apache Kafka 36

Hình 2.16: Các tính năng của Apache Kafka 36

Hình 2.17: Mô hình các lớp khác nhau của hệ sinh thái Apache Flink 41

Hình 2.18: Mô hình mở rộng của Zookeeper Service 44

Hình 2.19: Chế độ độc lập của Zookeeper Service 45

Hình 2.20: Mô hình dữ liệu Znode 46

Hình 2.21: Các đặc trưng của Big Data 49

Hình 2.22: Mục đích của Data Lake 51

Hình 2.23: Mục tiêu của Data Lake 53

Hình 2.24: Các tầng của hệ thống Data Lake 55

Hình 2.25: Mô phỏng các lý do khiến cho Data Lake trở thành đầm lầy dữ liệu 57

Hình 2.26: So sánh Data Warehouse với Data Lake 63

Hình 2.27: Các Schema của Data Lake và Data Warehouse 65

Trang 9

Hình 2.28: Mô hình hệ thống Data Lake của ứng dụng Mylogis 69

Hình 2.29: Mô hình chi tiết hệ thống Data Lake của Mylogis 70

Hình 3.1: Mô hình nghiệp vụ cơ bản của Logisitc 72

Hình 3.2: Mô hình UseCase của hệ thống 74

Hình 3.3: Sơ đồ lớp của ứng dụng Mylogis 76

Hình 3.4: Giao diện đăng nhập 86

Hình 3.5: Giao diện xem danh sách đơn hàng 86

Hình 3.6: Giao diện tạo đơn hàng 87

Hình 3.7: Giao diện hiển thị gói dịch vụ gợi ý 87

Hình 3.8: Giao diện cập nhật trạng thái cho nhà vận chuyển 88

Hình 4.1: Đồ thị ví dụ của thuật toán Dijkstra 91

Hình 4.2: Tạo map theo dữ liệu từ hệ thống 92

Trang 10

DANH MỤC BẢNG

Bảng 2-1: Bảng so sánh Data WareHouse và Data Lake 68

Bảng 3-1: Bảng danh sách các Actors 75

Bảng 3-2: Bảng danh sách các UseCase 75

Bảng 3-3: Bảng mô tả các lớp 77

Bảng 3-4: Bảng các tên bảng trong CSDL 78

Bảng 3-5: Bảng cmProvince 79

Bảng 3-6: Bảng cmDistrict 79

Bảng 3-7: Bảng cmWard 80

Bảng 3-8: Bảng cmLocation 80

Bảng 3-9: Bảng cmRouting 81

Bảng 3-10: Bảng cmContainer 81

Bảng 3-11: Bảng cmCurrency 81

Bảng 3-12: Bảng cmStatus 82

Bảng 3-13: Bảng Company 82

Bảng 3-14: Bảng Customer 83

Bảng 3-15: Bảng cmSurcharges 83

Bảng 3-16: Bảng RulRate 83

Bảng 3-17: Bảng RulSurcharge 84

Bảng 3-18: Bảng Orders 85

Bảng 3-19: Bảng Users 85

Bảng 4-1: Bảng mô tả các bước đi 91

Bảng 4-2: Bảng thông tin của Map 93

Bảng 4-3: Bảng mô tả các bước chạy của thuật toán 93

Trang 11

DANH MỤC TỪ VIẾT TẮT

Trang 12

TÓM TẮT KHÓA LUẬN

Khóa luận “XÂY DỰNG HỆ THỐNG QUẢN LÝ VÀ GỢI Ý DỊCH VỤ

Chương 1: Giới thiệu về đề tài, đưa ra các điểm nổi bật so với các ứng dụng trước

Tiếp đến là đề xuất các giải pháp để giải quyết các vấn đề đã đặt ra Ngoài ra, chương

1 cũng đề cập đến đối tượng nghiên cứu, phạm vi đề tài, phương pháp nghiên cứu

Chương 2: Trình bày các kiến thức nền tảng, các công nghệ sử dụng để xây dựng

ứng dụng Mylogis, xây dựng mô hình hệ thống DataLake của ứng dụng Mylogis

Chương 3: Trình bày chi tiết quy trình xây dựng hệ thống, từ xác định và phân tích

yêu cầu bài toán cho đến xây dựng CSDL, cuối cùng là xây dựng giao diện cho ứng dụng

Chương 4: Tập trung trình bày thuật toán định tuyến đường đi Các kiến thức cần

nắm, đưa ra bài toán, cách chạy giải thuật, sau đó áp dụng vào ứng dụng Mylogis

Chương 5: Kết luận, rút ra được các ưu nhược điểm của ứng dụng và hướng phát triển trong tương lai

Trang 13

Chương 1 GIỚI THIỆU CHUNG

1.1 Lý do chọn đề tài

Cùng với sự phát triển của lực lượng sản xuất và sự hỗ trơ đắc lực của cuộc cách mạng khoa học kỹ thuật trên thế giới, khối lượng hàng hóa và sản phẩm vật chất được sản xuất ngày càng nhiều

Do khoảng cách trong các lĩnh vực cạnh tranh truyền thống như chất lượng hàng hóa hay giá cả ngày càng thu hẹp, các nhà sản xuất đã chuyển sang cạnh tranh về quản lý hàng tồn kho, tốc độ giao hàng, hợp lý hóa quá trình lưu chuyển nguyên vật liệu và bán thành phẩm, trong cả hệ thống quản lý phân phối vật chất của doanh nghiệp Trong quá trình đó, Logistic có cơ hội phát triển ngày càng mạnh mẽ hơn trong lĩnh vực kinh doanh

Logistic là sự phát triển cao, hoàn chỉnh của dịch vụ vận tải giao nhận, vận tải giao nhận gắn liền và nằm trong logistics Cùng với quá trình phát triển của mình,

logistic đã làm đa dạng hóa khái niệm vận tải giao nhận truyền thống Từ chỗ chỉ thay mặt khách hàng để thực hiện các khâu rời rạc nhưu thuê tài, lưu cước, chuận bị hàng, đóng gói hàng, tái chế, làm thủ tục thông quan, cho tới cung cấp dịch vụ trọn gói từ kho đến kho(Door to Door) Từ chỗ đóng vai trò đại lý, người được ủy thác trở thành một chủ thể chính trong các hoạt động vận tải giao nhận với khách hàng, chịu trách nhiệm trước các nguồn luật điều chỉnh Ngày nay, để có thể thực hiện nghiệp vụ của mình, người giao nhận quản lý một hệ thống đồng bộ từ giao nhận tới vận tải, cũng ứng nguyên vật liệu phục vụ sản xuất kinh doanh, bảo quản hàng hóa trong kho, phân phối hàng hóa đúng nơi, đúng lúc, sử dụng thông tin điện tử để theo dõi, kiểm tra

Như vậy người giao nhận vận tải trở thành người cung cấp dịch vụ logistics

Nhờ vào quy mô ngày càng lớn của tiến trình số hóa, chúng ta có thể thu được một lượng dữ liệu khổng lồ từ nhiều nguồn khác nhau dọc theo chuỗi cũng ứng Do đó,

Trang 14

tạp- làm nguồn dữ liệu để thực hiện các phân tích, từ đó dự đoán các giao đoạn cao điểm, thiếu hụt nguồn cung trong tương lai và nhwuxng dự báo khác Những dự báo trên giúp tăng tính chính xác khi đưa ra quyết định chiến lược nhằm cải thiện vị thế thị trường và mang lại lợi thế cạnh tranh đáng kể só với các đối thủ khác

Việc ứng dụng Big Data và phân tích dữ liệu kinh doanh trong ngành vận tải cũng đang giúp cho một số doanh nghiệp đưa ra quyết định thu mua kịp thời hơn Hơn nữa, theo Council of Supply Chain Management Professionals, hơn 90% chủ hàng

và các công ty Logistics cho rầng việc ra quyết định dựa trên dữ liệu là cực kỳ quan trọng Chính vì lý do đó, việc phân tích dữ liệu dựa trên Big Data sẽ cải thiện chất lượng và hiệu suất kinh doanh qua những dự báo nhu cầu, quản lý hàng hóa tồn kho, tối ưu hóa tuyến đường và quản lý lao động hiệu quả Trên cơ sở các kiến thưc được học trong nhà trường và quá trình tìm hiểu các website trong thực tết, nhóm chúng em đã quyết định chọn đề tài “Xây dựng hệ thống quản lý và gợi ý dịch vụ logistic sử dụng Data Lake”

1.2 Đối tượng nghiên cứu

Giao diện: Quy tắc thiết kế F-layout, quy tắc phối màu mono

Đối tượng trong phạm vi đề tài hướng đến:

Những doanh nghiệp vận tải, cá nhân có xe chuyên chở hàng

Người tiêu dùng, doanh nghiệp kinh doanh có nhu cầu vận chuyển hàng hóa

Trang 15

Ưu, nhược điểm

Giao diện của webservice sẽ được xây dựng bằng framework

ReactJS kết hợp với Mobx

Chạy test, đánh giá độ chính xác của từng phương pháp dựa trên dữ liệu test sẵn có

Áp dụng thuật toán định tuyến để giải quyết bài toán gợi ý gói dịch vụ logistic tốt nhất cho người dùng

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

Cách tiếp cận: ứng dụng được xây dựng dựa theo mô hình MVC trên nền tảng Webservice

Nhóm đã sử dụng các phương pháp nghiên cứu:

Phương pháp đọc tài liệu

Phương pháp phân tích những website logistic hiện có

Phương pháp thực nghiệm

Nhằm giải quyết bài toán xây dựng chức năng gợi ý các gói dịch vụ Logistic cho khách hàng nhóm sẽ nghiên cứu và đánh giá thuật toán cây quyết định để áp dụng vào hệ thống

Trang 16

dữ liệu,…

2.1.2.2 Tầng View

View (V):

Trang 17

Đây là phần giao diện (theme) dành cho người sử dụng Nơi mà người dùng có thể lấy được thông tin dữ liệu của MVC thông qua các thao tác truy vấn như tìm kiếm hoặc sử dụng thông qua các website

Thông thường, các ứng dụng web sử dụng MVC View như một phần của hệ thống, nơi các thành phần HTML được tạo ra Bên cạnh đó, View cũng có chức năng ghi nhận hoạt động của người dùng để tương tác với Controller Tuy nhiên, View không có mối quan hệ trực tiếp với Controller, cũng không được lấy dữ liệu từ Controller mà chỉ hiển thị yêu cầu chuyển cho Controller mà thôi

2.1.2.3 Tầng Controller

Controller (C):

Bộ phận có nhiệm vụ xử lý các yêu cầu người dùng đưa đến thông qua view Từ đó,

C đưa ra dữ liệu phù hợp với người dùng Bên cạnh đó, Controller còn có chức năng kết nối với model

2.1.3 Luồng đi trong mô hình MVC

Luồng tương tác giữa các thành phần trong MVC

Ví dụ: Chức năng thêm bài viết mới trong trang quản trị website Nơi đây có 2 trường nhập về tiêu đề và nội dung bài viết, thì trong đó:

View sẽ hiển thị ra phần nhập form tiêu đề và nội dung

Controller lấy dữ liệu từ 2 trường và gửi tới Model

Model lúc này sẽ nhận dữ liệu từ Controller để lưu trữ trong cơ sở dữ liệu

Mỗi bộ phận thực hiện chức năng nhất định, nhưng chúng có sự thống nhất, liên kết với nhau tạo nên mô hình MVC Mô hình này tương đối nhẹ Nó có thể tích hợp được nhiều tính năng có trong Java hiện giờ Ví dụ như authentication (quá trình xác thực)

Trang 18

Bạn có thể hình dung, khi một yêu cầu từ máy client gửi tới server, Controller sẽ thực hiện nhiệm vụ của mình đó là tiếp nhận và xử lý yêu cầu Trong trường hợp cần thiết, nó có thể liên hệ Model – bộ phận làm việc với database để hỗ trợ

Khi xử lý xong yêu cầu, kết quả sẽ được trả về View Tại View sẽ tạo mã HTML thành giao diện và trả về hiển thị trên trình duyệt

2.1.4 Tại sao dùng mô hình MVC

Ưu điểm của mô hình MVC

Nhẹ, tiết kiệm băng thông: MVC không sử dụng viewstate nên khá tiết kiệm diện tích băng thông Khi sử dụng, người dùng có thể sử dụng ứng dụng trên web cần tương tác gửi và nhận dữ liệu một cách liên tục Do đó, việc giảm băng thông giúp cho website hoạt động tốt và ổn định hơn

Hình 2.2: Mô hình MVC pattern

Ưu – nhược điểm của mô hình MVC:

Kiểm tra dễ dàng: Với MVC, bạn có thể dễ dàng kiểm tra, rà soát lỗi phần mềm trước khi tới tay người tiêu dùng, đảm bảo chất lượng và độ uy tín cao hơn

Chức năng control: Trên các nền website thì ngôn ngữ lập trình như CSS, HTML, Javascript có một vai trò vô cùng quan trọng Việc sử dụng mô hình MVC sẽ giúp

Trang 19

bạn có một bộ control ưu việt trên nền tảng các ngôn ngữ hiện đại với nhiều hình thức khác nhau

View và size: View sẽ là nơi lưu trữ các dữ liệu Càng nhiều yêu cầu được thực hiện thì kích thước càng tệp càng lớn Khi đó, đường truyền mạng cũng giảm tốc độ load Việc sử dụng mô hình MVC sẽ giúp bạn tiết kiệm được diện tích băng thông một cách tối ưu

Chức năng SoC (Separation of Concern): Chức năng này cho phép bạn phân tách rõ ràng các phần như Model, giao diện, data, nghiệp vụ

Tính kết hợp: Việc tích hợp ở mô hình MVC cho phép bạn thoải mái viết code trên nền tảng website Khi đó, server của bạn sẽ được giảm tải khá nhiều

Đơn giản: Đây là một mô hình với kết cấu tương đối đơn giản Dù bạn không có quá nhiều chuyên môn cũng có thể sử dụng được

Nhược điểm của mô hình MVC:

MVC thường được sử dụng vào những dự án lớn Do đó, với các dự án nhỏ, mô hình MVC có thể gây cồng kềnh, tốn thời gian trong quá trình phát triển cũng như thời gian trung chuyển dữ liệu

Tóm lại, MVC đang là mô hình được ứng dụng rất nhiều trong lập trình

Hệ thống MVC phát triển tốt sẽ cho phép phát triển front – end, back – end cùng trên hệ thống mà không có sự can thiệp, chia sẻ, chỉnh sửa các tập tin trong khi một hoặc hai bên vẫn đang làm việc

Việc sử dụng mô hình tương đối đơn giản Chỉ cần hiểu rõ quy trình vận hành, nắm được các chức năng của từng bộ phận thì việc triển khai mô hình MVC tương đối

dễ dàng

2.1.5 So sánh MVC Và MVP

Trước hết, cần làm rõ khái niệm của MVP

Trang 20

Hình 2.3: Mô hình MVP

MVP là một mô hình kiến trúc lập trình gần giống như MVC MVP có nhiều điểm được kế thừa từ MVC nhưng Controller được thay bằng Presenter Mô hình này gồm có 3 phần chính, bao gồm: Model, View, và Presenter

Cách thức hoạt động của MVP là gì?

Trang 21

Trong mô hình MVP, View là tầng duy nhất tương tác với người dùng (khác với MVC, cả 2 tầng View và Controller đều có thể ghi nhận tương tác) Luồng đi của

mô hình này như sau:

View nhận tương tác của người dùng Sau đó, yêu cầu được truyền đến Presenter và

xử lý thông qua Model Khi Model thực hiện thay đổi, xử lý dữ liệu xong, Presenter lấy dữ liệu từ Model để truyền đến cho View

Ưu điểm:

Các ưu điểm nổi trội của MVP có thể kể đến như:

MVP có cấu trúc code rõ ràng hơn so với MVC nên khá dễ hiểu và dễ dùng

Dễ dàng để viết unit test cho Presenter vì nó hoạt động độc lập với View và không gắn với bất cứ API nào của Android

Nhược điểm:

Nhược điểm lớn nhất của mô hình MVP là theo thời gian, Presenter sẽ dần lớn lên

do bị thêm các business logic rải rác Người dùng sẽ rất khó để kiểm soát và chia nhỏ code khi Presenter đã quá lớn

Mặt hạn chế của Presenter

Khả năng duy trì - Khi view có thể gán cả biến và biểu thức, các logic không liên quan sẽ tăng dần theo thời gian, ảnh hưởng đến việc thêm code vào XML Để phòng tránh điều nay, luôn luôn lấy giá trị trực tiếp từ ViewModel so với việc cố gắng tính toán và viết lại chúng khi gán biểu thức ở view

Kết luận:

MVP tốt hơn MVC trong việc chia nhỏ ứng dụng thành các modular, các

component đơn mục đích, nhưng chúng cũng làm ứng dụng của bạn phức tạp hơn Với một ứng dụng đơn giản với chỉ một hoặc hai screens, MVC sẽ ổn MVP với data binding sẽ ít code hơn

Trang 22

1991 Ban đầu Java được tạo ra nhằm mục đích viết phần mềm cho các sản phẩm gia dụng, và có tên là Oak

Java được phát hành năm 1994, đến năm 2010 được Oracle mua lại từ Sun

MicroSystem

Java được tạo ra với tiêu chí “Viết (code) một lần, thực thi khắp nơi” (Write Once, Run Anywhere – WORA) Chương trình phần mềm viết bằng Java có thể chạy trên mọi nền tảng (platform) khác nhau thông qua một môi trường thực thi với điều kiện

có môi trường thực thi thích hợp hỗ trợ nền tảng đó

Đặc điểm của ngôn ngữ lập trình Java

Tương tự C++, hướng đối tượng hoàn toàn

Trong quá trình tạo ra một ngôn ngữ mới phục vụ cho mục đích chạy được trên nhiều nền tảng, các kỹ sư của Sun MicroSystem muốn tạo ra một ngôn ngữ dễ học

và quen thuộc với đa số người lập trình Vì vậy họ đã sử dụng lại các cú pháp của C

và C++

Tuy nhiên, trong Java thao tác với con trỏ bị lược bỏ nhằm đảo bảo tính an toàn và

dễ sử dụng hơn Các thao tác overload, goto hay các cấu trúc như struct và union cũng được loại bỏ khỏi Java

Độc lập phần cứng và hệ điều hành

Trang 23

Một chương trình viết bằng ngôn ngữ Java có thể chạy tốt ở nhiều môi trường khác nhau Gọi là khả năng “cross-platform” Khả năng độc lập phần cứng và hệ điều hành được thể hiện ở 2 cấp độ là cấp độ mã nguồn và cấp độ nhị phân

Ở cấp độ mã nguồn: Kiểu dữ liệu trong Java nhất quán cho tất cả các hệ điều hành

và phần cứng khác nhau Java có riêng một bộ thư viện để hỗ trợ vấn đề này

Chương trình viết bằng ngôn ngữ Java có thể biên dịch trên nhiều loại máy khác nhau mà không gặp lỗi

Ở cấp độ nhị phân: Một mã biên dịch có thể chạy trên nhiều nền tảng khác nhau mà không cần dịch lại mã nguồn Tuy nhiên cần có Java Virtual Machine để thông dịch đoạn mã này

Biên dịch (Compiler): Code sau khi được biên dịch sẽ tạo ra 1 file thường là exe,

và file exe này có thể đem sử dụng lại không cần biên dịch nữa

Ngôn ngữ lập trình Java thuộc loại ngôn ngữ thông dịch Chính xác hơn, Java là loại ngôn ngữ vừa biên dịch vừa thông dịch Cụ thể như sau

Khi viết mã, hệ thống tạo ra một tệp java Khi biên dịch mã nguồn của chương trình sẽ được biên dịch ra mã byte code Máy ảo Java (Java Virtual Machine) sẽ thông dịch mã byte code này thành machine code (hay native code) khi nhận được yêu cầu chạy chương trình

Trang 24

Hình 2.4: Mô hình hệ thống Complier Java

Ưu điểm : Phương pháp này giúp các đoạn mã viết bằng Java có thể chạy được trên nhiều nền tảng khác nhau Với điều kiện là JVM có hỗ trợ chạy trên nền tảng này Nhược điểm : Cũng như các ngôn ngữ thông dịch khác, quá trình chạy các đoạn mã Java là chậm hơn các ngôn ngữ biên dịch khác (tuy nhiên vẫn ở trong một mức chấp nhận được)

Cơ chế thu gom rác tự động

Khi tạo ra các đối tượng trong Java, JRE sẽ tự động cấp phát không gian bộ nhớ cho các đối tượng ở trên heap

Với ngôn ngữ như C \ C++, bạn sẽ phải yêu cầu hủy vùng nhớ mà bạn đã cấp phát,

để tránh việc thất thoát vùng nhớ Tuy nhiên vì một lý do nào đó, bạn không hủy một vài vùng nhớ, dẫn đến việc thất thoát và làm giảm hiệu năng chương trình Ngôn ngữ lập trình Java hỗ trợ cho bạn điều đó, nghĩa là bạn không phải tự gọi hủy các vùng nhớ Bộ thu dọn rác của Java sẽ theo vết các tài nguyên đã được cấp Khi không có tham chiếu nào đến vùng nhớ, bộ thu dọn rác sẽ tiến hành thu hồi vùng nhớ đã được cấp phát

Đa luồng

Java hỗ trợ lập trình đa tiến trình (multithread) để thực thi các công việc đồng thời Đồng thời cũng cung cấp giải pháp đồng bộ giữa các tiến trình (giải pháp sử dụng priority…)

Trang 25

Tính an toàn và bảo mật

Tính an toàn

Ngôn ngữ lập trình Java yêu cầu chặt chẽ về kiểu dữ liệu

Dữ liệu phải được khai báo tường minh

Không sử dụng con trỏ và các phép toán với con trỏ

Java kiểm soát chặt chẽ việc truy nhập đến mảng, chuỗi Không cho phép sử dụng các kỹ thuật tràn Do đó các truy nhập sẽ không vượt quá kích thước của mảng hoặc chuỗi

Quá trình cấp phát và giải phóng bộ nhớ được thực hiện tự động

Cơ chế xử lý lỗi giúp việc xử lý và phục hồi lỗi dễ dàng hơn

Tính bảo mật

Java cung cấp một môi trường quản lý chương trình với nhiều mức khác nhau

Mức 1 : Chỉ có thể truy xuất dữ liệu cũng như phương phức thông qua giao diện mà lớp cung cấp

Mức 2 : Trình biên dịch kiểm soát các đoạn mã sao cho tuân thủ các quy tắc của ngôn ngữ lập trình Java trước khi thông dịch

Mức 3 : Trình thông dịch sẽ kiểm tra mã byte code xem các đoạn mã này có đảm bảo được các quy định, quy tắc trước khi thực thi

Mức 4: Java kiểm soát việc nạp các lớp vào bộ nhớ để giám sát việc vi phạm giới hạn truy xuất trước khi nạp vào hệ thống

Máy ảo Java (JVM – Java Virtual Machine)

Để đảm bảo tính đa nền, Java sử dụng cơ chế Máy ảo của Java

ByteCode là ngôn ngữ máy của Máy ảo Java tương tự như các lệnh nhị phân của các máy tính thực

Trang 26

Một chương trình sau khi được viết bằng ngôn ngữ Java (có phần mở rộng là java) phải được biên dịch thành tập tin thực thi được trên máy ảo Java (có phần mở rộng

là class) Tập tin thực thi này chứa các chỉ thị dưới dạng mã Bytecode mà máy ảo Java hiểu được phải làm gì

Khi thực hiện một chương trình, máy ảo Java lần lượt thông dịch các chỉ thị dưới dạng Bytecode thành các chỉ thị dạng nhị phân của máy tính thực và thực thi thực

sự chúng trên máy tính thực (còn gọi là khả năng khả chuyển)

Máy ảo thực tế đó là một chương trình thông dịch Vì thế các hệ điều hành khác nhau sẽ có các máy ảo khác nhau Để thực thi một ứng dụng của Java trên một hệ điều hành cụ thể, cần phải cài đặt máy ảo tương ứng cho hệ điều hành đó

JVM cung cấp môi trường thực thi cho chương trình Java (còn gọi là khả năng độc lập với nền)

Có nhiều JVM cho các nền tảng khác nhau chẳng hạn như: Windows, Liux, và Mac

Hình 2.5: Mô hình các nền tảng JVM Các loại ứng dụng được phát triển sử dụng Java

Trang 27

Hình 2.6: Các ứng dụng của Java Các phiên bản của Java

Hình 2.7: Các phiên bản của Java Java Standard Edition (Java SE) – Là một nền tảng cơ bản cho phép phát triển giao diện điều khiển, các ứng dụng mạng và các ứng dụng dạng Win Form

Trang 28

Java Enterprise Edition (Java EE) – Được xây dựng trên nền tảng Java SE, giúp phát triển các ứng dụng web, các ứng dụng ở cấp doanh nghiệp, …

Java Mobile Edition (Java ME) – Là một nền tảng cho phép phát triển các ứng dụng nhúng vào các thiết bị điện tử như mobile,…

Các thành phần của Java SE Platform

Giới thiệu:

Spring là một Framework phát triển các ứng dụng Java được sử dụng bởi hàng triệu lập trình viên Nó giúp tạo các ứng dụng có hiệu năng cao, dễ kiểm thử, sử dụng lại code…

Trang 29

Spring nhẹ và trong suốt (nhẹ: kích thước nhỏ, version cơ bản chỉ khoảng 2MB; trong suốt: hoạt động một cách trong suốt với lập trình viên)

Spring là một mã nguồn mở, được phát triển, chia sẻ và có cộng đồng người dùng rất lơn

Spring Framework được xây dựng dựa trên 2 nguyên tắc design chính là: Dependency Injection và Aspect Oriented Programming

Những tính năng core (cốt lõi) của Spring có thể được sử dụng để phát triển Java Desktop, ứng dụng mobile, Java Web Mục tiêu chính của Spring là giúp phát triển các ứng dụng J2EE một cách dễ dàng hơn dựa trên mô hình sử dụng POJO (Plain Old Java Object)

Kiến trúc, các module của Spring Framework

Spring được chia làm nhiều module khác nhau, tùy theo mục đích phát triển ứng dụng mà ta dùng 1 trong các module đó

Dưới đây là kiến trúc tổng thể của Spring Framework

Trang 30

Hình 2.9: Sprint Framework Runtime Test

Tầng này cung cấp khả năng hỗ trợ kiểm thử với JUnit và TestNG

Spring Core Container

Bao gồm các module spring core, beans, context và expression languate (EL)

Spring core, bean cung cấp tính năng IOC và Dependency Injection

Spring Context hỗ trợ đa ngôn ngữ (internationalization), các tính năng Java EE như EJB, JMX

Expression Language được mở rộng từ Expresion Language trong JSP Nó cung cấp

hỗ trợ việc setting/getting giá trị, các method cải tiến cho phép truy cập collections, index, các toán tử logic…

AOP, Aspects and Instrumentation

Những module này hỗ trợ cài đặt lập trình hướng khía cạnh (Aspect Oriented

Programming), hỗ trợ tích hợp với AspectJ

Trang 31

Data Access / Integration

Nhóm này bao gồm JDBC, ORM, OXM, JMS và module Transaction Những module này cung cấp khả năng giao tiếp với database

Web

Hay còn gọi là Spring MVC Nhóm này gồm Web, Web-Servlet… hỗ trợ việc tạo ứng dụng web

Các lợi ích của Spring Framework

Một trong những phần kiến thức bạn cần bổ sung để hiểu rõ hơn Spring là gì đó chính là lợi ích của nó:

Spring cho phép các lập trình viên sử dụng POJOs và việc sử dụng POJOs này sẽ đảm bảo cho bạn không cần phải làm việc với EJB, các ứng dụng, các cấu hình và các luồng chạy,… chúng sẽ trở nên đơn giản hơn rất nhiều

Spring thường được tổ chức dựa vào kiểu mô đun, nhờ vậy mà số lượng các lớp, các gói sẽ trở nên khá nhiều Tuy nhiên, người dùng chỉ cần quan tâm đến những gì thì bạn cần mà những phần còn lại có thể bỏ qua

Spring thường được sử dụng để hỗ trợ với nhiều loại công nghệ ORM Framework, JEE, các thư viện có khả năng tạo ra lập trình,…

Module Web của Spring đều được thiết kế dựa vào mô hình MVC nên nó có khả năng cung cấp rất đầy đủ những thay thế của các web framework tương tự như Struts

Web framework của Spring của một Web MVC framework có khả năng thiết kế tốt thì nó sẽ giúp bạn thay thế cho các Struts và những công nghệ kém phổ biến hơn

Spring có khả năng cung cấp một API thuận tiện cho việc dịch ra được các ngoại lệ công nghệ cụ thể vào những trường hợp không được kiểm soát và có ngoại lệ nhất quán

Trang 32

IoC Container sở hữu trọng lượng nhẹ nên rất có lợi cho quá trình phát triển cũng như triển khai những ứng dụng mới trên máy tính có bộ nhớ và tài nguyên CPU bị hạn chế

Spring sẽ cung cấp được một giao diện quản lý transaction nhất quán Từ đó, có thể

mở rộng được đến một local transaction cũng như mở rộng lên các global

transaction

Một số loại Spring phổ biến nhất hiện nay

Spring MVC là gì? Cấu trúc của Spring MVC

Spring MVC là một trong những mô hình ứng dụng mà ở đó các thành phần được phân tách thành nhiều lớp riêng biệt và mỗi cái có các nhiệm vụ đặc trưng Do nhu cầu xây dựng các ứng dụng trên nền tảng Web được nhanh chóng và tiện lợi nên Spring MVC đã ra đời giúp việc triển khai các dự án nhanh hơn Spring MVC được xây dựng theo cấu trúc MVC (Model-View-Controller) ở đó có các API cho phép việc xây dựng các ứng dụng trên web được dễ dàng và có quy tắc hơn

Hình 2.10: Spring MVC

Trang 33

Model là lớp chứa thông tin của các đối tượng (Dữ liệu), tương tác với Database Trong Spring MVC nó gồm các file POJO, Service, DAO thực hiện truy cập

Controller là nơi tiếp nhận những request từ phía người dùng sau đó xử lý request

để xây dựng dữ liệu cho view (model) và chọn view để trả lại kết quả của cho người dùng Cụ thể ở đây là Dispatcher Controller, Handler Mapping, Controller

Thành phần chính của controller trong Spring MVC là:

Một annotation @Controller được khai báo cùng với định nghĩa của lớp

HomeController và một annotation @RequestMapping được khai báo cùng với định nghĩa của phương thức home()

Phương thức home() trong lớp HomeController đang trả về một chuỗi “home”, chuỗi này định nghĩa tên view sẽ được dùng để hiển thị kết quả request cho người dùng Biến model lưu trữ những dữ liệu cần thiết cho view “home” sử dụng và biến locale của đối tượng Locale để lấy dữ liệu về ngày giờ của server đang chạy web của chúng ta

Spring Boot là gì? Tác dụng của Spring Boot

Spring Boot là một Spring framework hiện đang được nhiều lập trình viên lựa chọn

vì nó giúp cho các lập trình viên chúng ta đơn giản hóa quá trình lập trình một ứng dụng với Spring, chỉ tập trung vào việc phát triển business cho ứng dụng Spring Boot được coi như là điểm khởi đầu để xây dựng tất cả các ứng dụng dựa trên nền tảng Spring

Trang 34

Hình 2.11: Spring Boot Bất cứ thứ gì sinh ra và ngày càng phát triển đều có lý do của nó, không phải tự nhiên mà Spring Boot lại được dùng để tạo các dự án Spring:

Giúp xây dựng ứng dụng Spring độc lập (stand-alone) bao gồm gần như mọi thứ REST API, WebSocket, Web, Streaming …

Giúp giảm tối ưu công đoạn cấu hình và không yêu cầu cấu hình thông qua XML

Có thể nhúng trực tiếp Tomcat, Jetty, Undertow… do đó không cần phải triển khai tập tin WAR

Tích hợp các loại mô-đun khác nhau trong các loaik Spring như Spring Data, Spring MVC, Spring Security, Spring JDBC, Spring ORM…

Các starter dependency làm cho việc thêm các hỗ trợ phù hợp cho project giúp cấu hình ban đầu nhanh hơn

Bạn có thể dễ dàng phát triển các ứng dụng Spring dựa trên các loại ngôn ngữ khác như Java hoặc Groovy

Spring Boot có thể ự động cấu hình Spring mỗi khi cần thiết

Trang 35

Hỗ trợ nhiều IDE như Spring Tool Suite, IntelliJ IDEA, NetBeans hoặc cũng có thể cấu hình đơn giản và dùng Sublime Text để phát triển luôn

Không sinh code cấu hình và không yêu cầu phải cấu hình bằng XML …

Thành phần cốt lõi của Spring Framework

Spring Core là một trong những thành phần quan trọng cốt lõi của Spring

Framework Đây là một trong những nền tảng được đánh giá bao nhờ có sự vững chắc giúp bạn có thể xây dựng được nhiều thành phần khác từ các hệ sinh thái Spring Framework Những thành phần hỗ trợ cho Spring Core như sau:

Spring Bean

Spring Bean được xem là trung tâm của Spring Core và là một trong những trái tim ứng dụng của Spring Bởi vì Spring Framework được thiết kế bằng cách sử dụng các POJO hoặc các Spring Bean và bạn có thể hiểu Spring Bean là những đối tượng Java tương đối đơn giản

Dependency Injection (DI)

Dependency Injection là một trong những sức mạnh vô cùng nổi bật của Spring Framework Trong một số phiên bản gốc thì EJB người ta thường không nhận thấy

sự xuất hiện của các Dependency Injection

Tuy nhiên, do nhận thấy được sự thành công từ Spring nên các phiên bản EJB 3.x cũng đã cung cấp các annotation để bạn có thể thực hiện inject các dependency Dependency Injection được đánh giá là một trong những mẫu thiết kế phần mềm đối tượng phụ thuộc thì sẽ được inject vào một lớp nào đó

Spring Context

Spring Context giúp bạn mang mọi thứ lại với nhau và Spring Context thường được

kế thừa từ những tính năng từ Spring Bean Từ đó, bổ sung và hỗ trợ cho các

internationalization (ví dụ như các resource bundle), event propagation, resource loading…

Trang 36

Ngoài ra, Spring Context có khả năng hỗ trợ các tính năng mới của Java như EE hoặc EJB, JMX,… Trong đó, Interface Application Context mới chính là một trong những trọng tâm quan trọng của Spring Context

Spring Expression Language (SpEL)

Spring Expression Language là loại ngôn ngữ ngắn gọn có thể giúp cho các cấu hình Spring Framework trở nên linh hoạt và dễ hiểu hơn

Dự án này giúp chúng ta dễ dàng tạo các lịch trình (scheduling) và tiến trình

(processing) cho các công việc xử lý theo mẻ (batch job)

Trang 37

− Spring Mobile

− Spring for Android

− Spring Session

2.2.2 Lý do chọn Java để phát triển server

Thư viện viết sẵn rất lớn và nhiều ông cụ phát triển

Java chứa một lượng khủng lồ các API, method đã triển khai sẵn trong bộ cài đặt SDK, nên sẽ giúp bạn tiết kiệm rất lớn thời gian xây dựng ứng dụng Chưa kể đến Java cũng đã hỗ trợ sẵn các I/O API, và các phương thức, interface để bạn kết nối đến để khai thác thêm các sức mạnh từ nhiều ngôn ngữ khác như C/C++

Có thể nói Java được phổ biến như ngày hôm nay một phần đóng góp vô cùng quan trọng từ các công cụ phát triển, mà đặc biệt nhất phải kể tới là Eclipse và Netbean, đây là những công cụ hỗ trợ đắc lực cho việc bạn xây dựng, debug phần mềm, quản

lý bộ nhớ, giúp lập trình viên nhanh chóng phát triển, tìm lỗi nhanh … Cho đến nay Java đã có thêm rất nhiều công cụ lập trình khác hỗ trợ như IntelliJ IDEA Jetbrains,

VS Code, Sublime Text, Atom …

Bộ sưu tập thư viện mã nguồn mở phong phú

Có thể nói các thư viện mã nguồn mở đóng vai trò vô cùng quan trọng trong việc một đơn vị quyết định lựa chọn ngôn ngữ lập trình nào để xây dựng ứng dụng của mình, đặc biệt là những đơn vị muốn tiết kiệm chi phí sản xuất, Java có một kho các framework nguồn mở rất phong phú được cộng đồng đóng góp, hỗ trợ Một số ví dụ như web chúng ta có Spring framework, Struts, Play, Spark, Javalin…, cộng đồng game có libGDX framework, mobile chúng ta có Android được Google lựa chọn Java là ngôn ngữ lập trình chính, nhiều ứng dụng phía server được xây dựng bằng Java, Java socket… còn rất nhiều các thư viện, sản phẩm hữu ích khác từ Java Lượng nhân lực cực lớn

Java đã có một thời gian dài xây dựng, kiểm nghiệm, ứng dụng và vẫn đang phát

Trang 38

mạnh, một cộng đồng sẵn sàng hỗ trợ cực lớn, nếu bạn gặp khó khăn trong việc triển khai ứng dụng của mình, cần các giải pháp tối ưu thì việc tìm kiếm không quá khó khăn Đặc biệt Java đang được sử dụng để đào tạo chính quy ở nhiều trung tâm tin học uy tín trên thế giới do đó hầu hết các kỹ sư, cử nhân tin học, công nghệ thông tin khi tốt nghiệp đều có kiến thức nền tảng về ngôn ngữ này

Mạnh mẽ và độc lập nền tảng

Ai cũng thích đồ ăn ngon, bổ và an toàn, nhưng nếu nó miễn phí thì thế nào Bạn được phép xây dựng các ứng dụng tuỳ thích theo bản thân, xây dựng các chương trình phần mềm cho công ty, cho tổ chức của mình mà không cần quan tâm đến tiền phí bản quyền, lại còn được hỗ trợ mạnh mẽ từ cộng đồng Không thể không chọn Java

Hiện nay Java được phát triển và quản lý bởi Oracle ( sau khi mua lại SUN

microsystem) thì Java cũng đã có những thay đổi nhất định, các phiên bản mới được tối ưu hoá về tốc độ, hiệu năng và cũng được tính phí hỗ trợ, sử dụng ở một số phiên bản mới, tuy nhiên Java vẫn có các nhánh Opensource để cộng đồng tiếp tục

sử dụng và đóng góp phát triển Đặc biệt số lượng các ngôn ngữ mới trong họ nền JVM ngày càng mở rộng và phát triển mạnh mẽ như: Kotlin, Scala, Groovy… Thông thường nếu bạn chọn Windows bạn sẽ thích học bộ ngôn ngữ net ( C#, VB,…), bạn thích MacOS bạn sẽ học Objective-C, Swift… Nhưng nếu chọn Java bạn sẽ phát triển được các ứng dụng chạy được hết các nền tảng trên và nhiều nền tảng khác Chính ý tưởng này là một phần đưa Java thành một ngôn ngữ phổ biến nhất thế giới, việc này thể hiện sự đón đầu, đi trước của Java Ngày xưa khi số lượng ứng dụng phần mềm không thực sự lớn, việc chuyển đổi từ nền tảng này sang nền tảng khác cực kỳ khó khăn, đôi khi còn phải khiến lập trình viên viết lại, học lại mới một ngôn ngữ Nhưng khi Java ra đời việc này đã được giải quyết gần 100% Bạn chỉ cần viết 1 lần và ứng dụng của bạn có thể chạy trên hầu hết các nền tảng (hệ điều hành khác nhau) khi đã cài JVM (máy ảo Java)

Trang 39

Ngày nay số lượng các nền tảng hệ điều hành đang phát triển rất nhanh đặc biệt là trên di động Thì để thu hút lập trình viên, rất nhiều nền tảng lập trình, framework ra đời phải hỗ trợ cross-platform ( điều mà Java đã làm mấy chục năm trước)

Hỗ trợ tài liệu xuất sắc và xuất hiện ở khắp mọi nơi

Bạn muốn mình được nhiều người quan tâm, biết tới bạn, bạn phải nhiệt tình giới thiệu, quảng bá bản thân mình, Java cũng vậy, Java có một tài liệu cực kỳ tuyệt vời – Javadocs, một tài liệu xúc tích, đầy đủ các API, method, cách thức sử dụng để bạn tha hồ khám phá, thoả sức tung hoành Một ngôn ngữ chính quy điều quan trọng không thể thiếu là tài liệu, việc tài liệu hoá thể hiện sự tôn trọng người học, thể hiện được sự rõ ràng của ngôn ngữ, một điều không thể thiếu trong các ứng dụng lớn, ứng dụng an toàn thông tin

Các ứng dụng chạy Java có mặt ở mọi nơi, từ các ứng dụng xử lý phía server,

socket, các ứng dụng web, webclient, webservice, các ứng dụng mobile (Android, iOS, Tizen, FirefoxOS, …), các ứng dụng desktop ( Windows, MacOS, các HĐH dòng Linux, Unix…) kể cả các điện thoại đời cũ vẫn cài được các ứng dụng Java JAVA độc lập với nền tảng giúp giảm chi phí lập trình và phát triển web tối đa Đây là một trong những lý do tốt nhất để chọn Java trong việc lập trình Web Code Java cho phép các lập trình viên viết một lần và sử dụng hoặc sử dụng lại mã ở bất

cứ đâu

"WRITE ONCE, RUN EVERYWHERE!"

Đây là một trong những tính năng và lợi ích quan trọng nhất của ngôn ngữ lập trình Java, khả năng này giúp nó có tính di động cao và do đó nó có thể được sử dụng trong các ứng dụng đa nền tảng một cách dễ dàng

Quan trọng nhất, tính năng đa nền tảng của Java rất tốt, hầu như không bị hạn chế Hơn nữa, sự hỗ trợ qua lại giữa Oracle và các nhà phát triển nền tảng khác cực kỳ mạnh mẽ

Trang 40

Do đó, các doanh nghiệp không phải lo lắng về việc thay đổi phần cứng hoặc hệ điều hành và họ cũng hạn chế được những rắc rối và tiết kiệm chi phí trong việc giải quyết các sự cố không tương thích

Độc lập với nền tảng một trong những lợi ích quan trọng nhất của các ngôn ngữ lập trình Java so với các ngôn ngữ vẫn phụ thuộc vào nền tảng

Khả năng bảo mật của Java rất cao

Rất nhiều lập trình viên chọn Java để lập trình web vì họ thấy chương trình viết bằng Java có tính an toàn cao

Khả năng bảo mật của Java là một điểm cộng lớn cho sự an toàn của trang web Java có rất nhiều tính năng bảo mật có sẵn cần thiết cho lập trình web như: Xác thực nâng cao, mã hóa và kiểm soát mức độ truy cập

Do tính chất chặt chẽ của ngôn ngữ Java Bạn có thể kiểm soát từng dòng code mình viết ra Chương trình của bạn về cơ bản đã tự có tính bảo mật cao ngay cả khi chưa áp dụng biện pháp bảo mật kèm theo nào

Bằng cách sử dụng những tính năng này, một lập trình viên web hoàn toàn có thể sử dụng API bảo mật của nó, bao gồm cả cơ chế đăng nhập an toàn, chữ ký số và khả năng tùy chỉnh chính sách bảo mật cao hơn nữa

Java có bộ API phong phú cho lập trình web

Các công ty cung cấp dịch vụ lập trình web trên thế giới đều thích Java vì nó có bộ API rất phong phú Đây là một lợi ích quan trọng vì rất nhiều API này có sẵn miễn phí cho phép tiếp tục tối ưu chi phí, chất lượng trong lập trình web

Java cung cấp các API để kết nối mạng, I / O, phân tích cú pháp XML, kết nối cơ sở

dữ liệu, các tiện ích và hầu hết tất cả mọi thứ mà bạn có thể tưởng tượng ra

Nó cũng có nhiều thư viện nguồn mở mạnh mẽ, phổ biến như Apache POI, Apache Commons, Jackson, Google Guava

JAVA được sử dụng rất nhiều trong các ứng dụng thực tế

Ngày đăng: 05/09/2021, 20:52

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