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

Báo Cáo Môn Project 3 Ngành Công Nghệ Thông Tin Thiết Kế Sàn Giao Dịch Nft Với Công Nghệ Blockchain.pdf

48 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Nội dung

Trang 1

TRƯỜNG CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNGĐẠI HỌC BÁCH KHOA HÀ NỘI

Trang 2

PROJECT 3 Giáo viên hướng dẫn: Đinh Thị Hà Ly

MỤC LỤC

LỜI NÓI ĐẦU 4

CHI TIẾT CÔNG VIỆC THỰC HIỆN 5

CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI 6

2.2.1 Biểu đồ UseCase tổng quan 9

2.2.2 Biểu đồ use case phân rã từng module 12

2.2.3 Biểu đồ hoạt đông (Activity diagram) 16

2.2.4 Đặc tả chức năng 21

2.3 Yêu cầu phi chức năng 26

2.3.1 Yêu cầu về hiệu năng 26

2.3.2 Yêu cầu về độ tin cậy 26

2.3.3 Yêu cầu về độ dễ dùng của website 27

2.3.4 Yêu cầu về tính dễ bảo trì 27

CHƯƠNG 3: CÔNG NGHỆ VÀ THUẬT TOÁN SỬ DỤNG 28

3.1 Ngôn ngữ HTML và CSS 28

3.2 Ngôn ngữ kịch bản JavaScript 28

3.2.1 JavaScript là gì? 28

3.2.2 Ứng dụng nổi bật của JavaScript 29

3.2.3 Client-side rendering (CSR) vs Server-side rendering (SSR) 30

3.2.4 JavaScript Framework NextJs 33

3.3 Ngôn ngữ lập trình Java 33

3.3.1 Giới thiệu 33

3.3.2 Giới thiệu Spring Framework và Spring boot 35

3.4 Hệ quản trị cơ sở dữ liệu 37

3.4.1 Các khái niệm 37

3.4.2 Chức năng của hệ cơ sở dữ liệu 372

Trang 3

PROJECT 3 Giáo viên hướng dẫn: Đinh Thị Hà Ly

4.2 Thiết kế chi tiết 47

4.2.1 Thiết kế giao diện 47

5.3 Hướng phát triển hệ thống giai đoạn tiếp theo 59

TÀI LIỆU THAM KHẢO 60

3

Trang 4

PROJECT 3 Giáo viên hướng dẫn: Đinh Thị Hà LyLỜI NÓI ĐẦU

Ngày nay, ứng dụng công nghệ thông tin và việc tin học hóa được xem là một trong những yếu tố mang tính quyết định trong hoạt động của các chính phủ, tổ chức, cũng như các công ty, nó đóng vai trò hết sức quan trọng, có thể tạo ra những bước đột phá mạnh.

Cùng với sự phát triển không ngừng về kỹ thuật máy tính và mạng điện tử, công nghệ thông tin cũng được những công nghệ có đẳng cấp cao và lần lượt chinh phục đỉnh cao này đến đỉnh cao khác Mạng Internet là một trong những sản phẩm có giá trị hết sức lớn lao và ngày càng trở nên một công cụ không thể thiếu, là nền tảng chính cho sự truyền tải, trao đổi thông tin trên toàn cầu.Giờ đây, mọi việc liên quan đến thông tin trở nên thật dễ dàng cho người sử dụng, chỉ cần có một máy tính kết nối internet và một dòng dữ liệu truy tìm thì gần như lập tức cả thế giới về vấn đề mà bạn đang quan tâm sẽ hiện ra, có đầy đủ thông tin, hình ảnh và âm thanh Trong xã hội đang phát triển như ngày nay, nhu cầu mua sắm của con người là rất lớn Bên cạnh các sản phẩm như áo quần, đồ chơi, thiết bị điện tử mà còn có các sản phẩm số như ảnh nghệ thuật, tranh nghệ thuật, video, nhạc số, trang thiết bị trong game …Do đó nền tảngBlockchain ra đời đáp ứng tất cả nhu cầu của con người với tính an toàn bảo mậtcao và giao dịch nhanh chóng, dễ dàng

Vì vậy, chúng em đã thực hiện đồ án “ XÂY DỰNG SÀN GIAO DỊCH NFT VỚI CÔNG NGHỆ BLOCKCHAIN” Tại đây, người dùng có thể thỏa thích lựachọn những sản phẩm số để mua bán, trao đổi.

Với sự giúp đỡ, hướng dẫn tận tình của thầy giáo Nguyễn Văn Hiên đã giúp chúng em hoàn thành báo cáo đề tài này Tuy đã cố gắng hết sức tìm hiểu, phân tích thiết kế và cài đặt hệ thống nhưng chắc rằng không tránh khỏi những thiếu sót Em rất mong nhận được sự thông cảm và góp ý của quý thầy cô Em xin chân thành cảm ơn !

4

Trang 5

PROJECT 3 Giáo viên hướng dẫn: Đinh Thị Hà LyCHI TIẾT CÔNG VIỆC THỰC HIỆN

Nội dung công việc:

STTNội dung công việc

Công việc 1Nghiên cứu đề tài, thị trường

Công việc 2Phân tích, thiết kế các kịch bản, chức năng của dự án

Công việc 3Đưa ra các kịch bản, vẽ các diagram của từng module

Công việc 4Thiết kế giao diện, chức năng (FrontEnd)

Công việc 5Thiết kế cơ sở dữ liệu, nền tảng (Backend)

Công việc 6Thiết kế API kết nối FrontEnd & BackEnd

Công việc 7Triển khai website

Công việc 8Kiểm tra đánh giá phần mềm

Công cụ phát triển:

Nền tảng công nghệ lập trình FrontEnd: JavaScript, NextJSNền tảng công nghệ lập trình BackEnd: Java, SpringBootNền tảng công nghệ lập trình SmartContract: SolidityQuản trị cơ sở dữ liệu: MySQL

Liên kết BackEnd & FrontEnd: RESTful APIIDE phát triển: Visual Studio Code, Intellij

5

Trang 6

PROJECT 3 Giáo viên hướng dẫn: Đinh Thị Hà LyCHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI

1.1 Giới thiệu

1.1.1 Bối cảnh thực hiện dự án

Với tốc độ phát triển của công nghệ, ngày càng có nhiều ứng dụng dựa trên công nghệ mới xuất hiện mỗi ngày Blockchain là một công nghệ thời đại mới được sử dụng rộng rãi trong việc tạo ra tiền kỹ thuật số Ngoài ra, tiền kỹ thuật số hoặc chuỗi khối tiền điện tử đang được sử dụng trong các lĩnh vực khác nhau Giao dịch và tài sản cũng là một phần của chuỗi khối Ngày càng có nhiềungười tham gia vào giao dịch kỹ thuật số; mọi người tạo, bán và mua tài sản kỹ thuật số Nghệ thuật kỹ thuật số đang trở nên phổ biến từng ngày Mã thông báo không thể thay thế hoặc NFT đã trở thành một xu hướng mới của thời đại này Thị trường NFT là nơi dành cho người mua và người bán các tài sản kỹ thuật số này

Xuất phát từ nhu cầu thực tế, em đã lên ý tưởng và thực hiện đồ án 2 với đề tài NFT Marketplace

1.1.2 Đối tượng hướng đến

Đối tượng mà nhóm em hướng đến là tất cả mọi người Đặc biệt lànhững người có đam mê sưu tầm hay có nhu cầu mua bán những sản phẩm nghệthuật kỹ thuật số Vì vậy yêu cầu đầu tiên mà mà một website cần có là giao diện bắt mắt, thân thiện với người dùng, dễ nhìn, dễ sử dụng Mỗi người dùng khi vào trang web hay ứng dụng sẽ dễ dàng thấy được các thông tin về các sản phẩm mà mình cần tìm kiếm Điều đó sẽ góp phần giúp tiết kiệm thời gian quý báu của khách hàng trên website.

6

Trang 7

PROJECT 3 Giáo viên hướng dẫn: Đinh Thị Hà Ly1.1.3 Một số sàn giao dịch NFT phổ biến

Hình 1.1: Trang chủ sàn giao dịch OpenSea

Hình 1.2: Trang chi tiết sản phẩm của OpenSeaƯu điểm:

Giao diện trực quan , dễ sử dụng, thiết kế bố cục hợp lý, các banner được trang trí bắt mắt Các danh mục sản phẩm đơn giản như Art, Gaming, Mememberships, PFPs, Photography được trình bày rất dễ dàng cho người dùng tìm kiếm

7

Trang 8

PROJECT 3 Giáo viên hướng dẫn: Đinh Thị Hà Ly

Về chức năng trang web OpenSea hội tụ đầy đủ các chức năng của một trang web giao dịch sản phẩm số tốt nhất trên thế giới, Opensea cho phép người dùng sắp xếp lọc sản phẩm theo xu hướng hoặc người mua nhiều nhất Người dùng có thể đấu giá sản phầm theo mức giá mà mình mong muốn và người bán có quyền quyết định sẽ bán cho người nào.

Hỗ trợ các tác phẩm của nhiều người nổi tiếngNhược điểm:

Phí giao dịch cao: OpenSea tính phí cho các giao dịch trên nền tảng của họ Dù NFT có được giao dịch thành công hay không thì OpenSea vẫn sẽthu trước phí giao dịch bằng 2,5% số tiền mà bạn đã thiết lập cho NFT đó.

Hình 1.3: Trang chủ sàn giao dịch Blur

8

Trang 9

PROJECT 3 Giáo viên hướng dẫn: Đinh Thị Hà Ly

Hình 1.4: Trang chi tiết sản phẩm của BlurƯu điểm:

Giao diện đơn giản phù hợp cho các trader chuyên nghiệpTuy đi sau nhưng so với các marketplace như Opensea, Blur lại giảm thiểu được nhiêu vấn đề, cụ thể là chi phí giao dịch Không giống như nhiều NFT marketplace khác tính phí hoa hồng trên các giao dịch, Blur duy trì mức phí 0% cho việc bán NFT

Blur hoạt động nhanh hơn OpenSea với các bản cập nhật được thực hiện cứ sau bốn giây và điều này thuận lợi cho việc hình thức giao dịch sweep mà Fiahub đã chia sẻ ở trên Việc phân tích chi tiết về độ hiếm của NFT, lịch sử giao dịch… cho phép các nhà giao dịch tiết kiệm thời gian trong khi dễ dàng truy cập dữ liệu chính xác

Nhược điểm:

Chưa hỗ trợ nhiều loại NFT như Opensea

1.1.4 Một số sàn giao dịch NFT phổ biến

Xây dựng được trang web giúp quản lý NFT Marketplace gồm những chức năng như:

Giới thiệu tổng quan về website và các danh mục các sản phẩm được đăngbán.

9

Trang 10

PROJECT 3 Giáo viên hướng dẫn: Đinh Thị Hà Ly

Cung cấp các tính năng giúp người dùng có thể dễ dàng lựa chọn các sản phẩm và thêm chúng vào giỏ hàng Người dùng có thể dễ dàng tạo sản phẩm để đăng bán, quản lý và theo dõi quá trình mua bán

Trang web cũng sử dụng phương thức đăng nhập bằng ví Metamask một cách dễ dàng và nhanh chóng Mọi thông tin của khách hàng đã đăng nhập sẽ được bảo mật để đảm bảo an toàn thông tin cho người dùng.

Người dùng có thể xem được thông tin chi tiết về các sản phẩm mà người dùng muốn xem Ngoài ra người dùng cũng có thể xem được số lượng đánh giá của sản phẩm cũng như bình luận của những người dùng đã bìnhluận và đánh giá trước đó.

Ngoài ra, trang web còn cung cấp các chức năng đấu giá sản phẩm giúp người bán và người mua dễ dàng tham gia các phiên đấu giá sản phẩm vớinhau.

Cho phép người bán và người mua có thể trò chuyện với nhau để giải quyết các vấn đề phát sinh.

10

Trang 11

PROJECT 3 Giáo viên hướng dẫn: Đinh Thị Hà LyCHƯƠNG 2: PHÂN TÍCH THIẾT KẾ BÀI TOÁN

2.1 Khảo sát hiện trạng

Ngày càng có nhiều doanh nghiệp lựa chọn website dạng thương mại điệntử thay cho website truyền thống Những doanh nghiệp lớn đã ứng dụng dạngwebsite này và gặt hái được con số ấn tượng về lượng truy cập và doanh thu:Thế Giới Di Động, Điện Máy Xanh, Bách Hóa Xanh Ngay cả các cửa hàngkinh doanh mỹ phẩm, nhà thuốc, thời trang cũng xây dựng website bánhàng có tích hợp tính năng và thanh toán.

Mục đích của việc thiết kế website dạng thương mại điện tử nhằm tránh lệthuộc vào các sàn thương mại điện tử, cũng như tăng độ tiếp cận của doanhnghiệp đến với khách hàng Theo số liệu từ Statista, độ tuổi mua sắm trên sànthương mại điện tử nhiều nhất là từ 25-34 Vì vậy, nếu đối tượng khách hàngtiềm năng của doanh nghiệp nằm trong phân khúc 25-34 thì việc thiết kế websitethương mại điện tử là điều cực kỳ cần thiết.

Vậy hiện trạng nhu cầu của khách hàng hiện nay đã thay đổi như thế nào?Và các hệ thống hiện tại đã và đang đáp ứng như thế nào đối với nhu cầu củangười dùng? Chúng ta hãy cùng đi tìm hiểu.

2.1.1 Về khách hàng

Khi khách hàng truy cập vào website là bạn đã nắm trong tay cơ hội biến“người dùng” thành “khách mua hàng” Do đó sản phẩm và dịch vụ phải đượcsắp xếp theo từng danh mục rõ ràng Ngoài ra, khi khách hàng click vào để tìmhiểu bất kỳ sản phẩm nào thì sản phẩm đó phải có đầy đủ thông tin, thương hiệu,mô tả, xuất xứ, giá cả để khách hàng yên tâm lựa chọn mua hàng.

b Giao diện thu hút khách hàng tiềm năng

Giao diện thu hút là một trong những yếu tố để người dùng dành nhiều thờigian để ở lại website của bạn Việc thiết kế giao diện phải dựa vào việc hiểukhách hàng tiềm năng Khách hàng ở độ tuổi nào, sở thích, thói quen mua sắm từ đó bạn sẽ thiết kế giao diện để thu hút khách hàng tiềm năng của bạn Nếukhách hàng tiềm năng không thấy giao diện của website bạn có sự thu hút, thìcho dù có nhiều người khen đẹp thì cũng không để tạo ra doanh thu tốt.

11

Trang 12

PROJECT 3 Giáo viên hướng dẫn: Đinh Thị Hà Ly

c Giao diện tương thích với thiết bị di động

Thiết bị di động ngày càng chiếm ưu thế hơn so với máy tính và laptop Dođó, khi thiết kế giao diện và hình ảnh cho website, bạn nên lưu ý kiểm tra lạimột lần nữa xem đã hiển thị đúng kích thước trên thiết bị di động hay chưa Nếukhi hiển thị trên điện thoại hình ảnh bị sai tỷ lệ hoặc bố cục chữ bị rối mắt thìbạn nên điều chỉnh để tránh việc khách hàng cảm thấy khó chịu với giao diện vàthoát ra ngoài.

2.1.2 Về các hệ thống đã có

Ngày càng có nhiều doanh nghiệp lựa chọn website dạng thương mại điệntử thay cho website truyền thống Những doanh nghiệp lớn đã ứng dụng dạngwebsite này và gặt hái được con số ấn tượng về lượng truy cập và doanh thu:Thế Giới Di Động, Điện Máy Xanh, Bách Hóa Xanh Ngay cả các cửa hàngkinh doanh mỹ phẩm, nhà thuốc, thời trang cũng xây dựng website bánhàng có tích hợp các tính năng và thanh toán, theo dõi đơn hàng.

2.2 Tổng quan chức năng2.2.1 Biểu đồ UseCase tổng quan

- Authentication: Cho phép khách hàng và quản trị viên đăng nhập bằng tàikhoản đăng ký, đăng nhập bằng Facebook, thay đổi password, đăng xuất ra khỏiwebsite.

- Quản lý user: Cho phép quản trị viên xem danh sách khách hàng,thêm/sửa/xóa tài khoản khách hàng.

12

Trang 13

PROJECT 3 Giáo viên hướng dẫn: Đinh Thị Hà Ly

- Quản lý kho hàng: Cho quản trị viên theo dõi và quản lý kho hàng, có thểthêm/sửa/xóa các mặt hàng trong kho.

- Thêm vào giỏ hàng: Cho phép khách hàng thêm sản phẩm muốn mua vàogiỏ hàng

- Tạo mới một đơn hàng: Cho phép khách hàng đặt một đơn hàng và hiểnthị đơn hàng mới vào trang admin để quản lý.

Xác nhận các tác nhân tham gia hệ thống:

1 Admin Quản lý tài khoản khách hàng, quản lý kho,xem/thay đổi thông tin khách hàng,xem/thay đổi thông tin mặt hàng.2 Customer Đăng ký tài khoản, đăng nhập, xem/thay đổi

thông tin của mình, xem sản phẩm, thêmvào giỏ hàng.

13

Trang 14

PROJECT 2 Giáo viên hướng dẫn: Lê Th

Sơ đồ UseCase tổng quát của hệ thống

Hình 2.2.1: UseCase tổng quan

Trang 15

PROJECT 3 Giáo viên hướng dẫn: Đinh Thị Hà Ly

UseCase hệ thống

STTUseCaseMô tả

1 Authentication Cho phép người dùng đăng ký, đăng nhập vàohệ thống website, thay đổi password.2 Quản lí khách hàng Quản trị viên có thể xem danh sách khách

hàng, Nhân viên thêm/sửa/xóa tài khoản kháchhàng.

3 Quản lý kho hàng Quản trị viên có thể xem danh sách mặt hàng,Có thể thêm/sửa/xóa mặt hàng trong kho hàng.4 Thêm vào giỏ hàng Khách hàng xem danh sách sản phẩm, xem chi

tiết sản phẩm, và chọn thêm vào giỏ hàng.5 Khách hàng đặt hàng Khách hàng vào giỏ hàng, xem giỏ hàng và đặt

đơn hàng đang có trong giỏ.

6 Quản lí đơn hàng Quản trị viên vào trang danh sách các đơnhàng, xem chi tiết/sửa/xóa đơn hàng

2.2.2 Biểu đồ use case phân rã từng module2.2.2.1Phân rã use case “Đăng nhập”

15

Trang 16

PROJECT 3 Giáo viên hướng dẫn: Đinh Thị Hà Ly

-Tính năng kiểm tra người dùng: Khi nhập tên người dùng mong muốn, Javascript cóthể lập tức dò cơ sở dữ liệu xem lịch sử đặt trước của người dùng Tính năng này hoàntoàn tự động, không cần tải lại trang.

-Tính năng cập nhật liên tục: Không tốn thời gian tải lại, trang có thể tự động cậpnhật.

-Tính năng gợi ý từ khóa trên khung tìm kiếm: Tự động nhận diện, tính toán xem bạnđang muốn gì và hiện ra list gợi ý liên quan nhất.

Tự động hóa:

Mọi ứng dụng đều trở nên hữu ích và thú vị hơn khi chúng được kích hoạt tự động.Javascript cho phép thực hiện chuỗi hành động đã được lên kịch bản sẵn ngay khingười dùng mới truy cập vào trang.

3.2.3 Client-side rendering (CSR) vs Server-side rendering (SSR)

Theo truyền thống, khi xây dựng các trang web hay ứng dụng web đều có chiến lượcchung là đó là server sẽ chuẩn bị sẵn các nội dung HTML để gửi xuống trình duyệt.Các nội dung này sẽ được trình duyệt kết hợp với CSS để tạo thành tranh web cho bạnsử dụng.

Sau này, xuất hiện các Javascript framework hiện đại như ReactJS, VueJS… đã làmthay đổi cách tiếp cận khi phát triển ứng dụng web, cách tiếp cận mới mang tới khảnăng giảm gánh nặng cho server, xây dựng mô hình phân tán thay vì tập trung tạiserver.

Đến đây, rất nhiều diễn đàn lại nảy sinh tranh luận gay gắt xem cách tiếp CSR haySSR, cái nào tốt hơn, cái nào tối ưu?

Server Side Rendering (SSR) là gì?

Đây là cơ chế cổ điển, được dùng rất phổ biến từ xưa đến nay rồi Gọi là Server SideRendering vì mọi thứ sẽ được xử lý tập trung ở phía server.

Về cơ bản thì luồng của cơ chế này như hình bên dưới đây:

31

Trang 17

PROJECT 3 Giáo viên hướng dẫn: Đinh Thị Hà Ly

Có thể tóm gọn lại gồm các bước như sau:

Khi trình duyệt gửi một request tới server, server sẽ xử lý logic, lấy dữ liệu trongdatabase, làm bla bla… cuối cùng tạo sẵn nội dung HTMl và trả lại cho trình duyệt.Trình duyệt nhận được nội dung HTML, dựa vào nội dung HTML mà nó có thể tảithêm các file javascript hay CSS để hiển thị nội dung trang HTML

Có lẽ phần lớn các trang web kiểu như vnexpress, dantri, vntalking… đều đang sửdụng cách tiếp cận này.

Client Side rendering (CSR) là gì ?

Cách tiếp cận này thì hoàn toàn khác với cách SSR Hiểu đơn giản với cách tiếp cậnnày thì việc render HTML, CSS sẽ được thực hiện ở client Khi trình duyệt gửi yêucầu tới server, máy chủ sẽ gửi một loạt tài nguyên cần thiết để khởi tạo và chạy ứngdụng web, từ đó việc render nội dung sẽ thực hiện trên trình duyệt.

Kiểu tiếp cận này khá phổ biến với các ứng dụng web kiểu Single Page (SPA – SinglePage Application), ứng dụng sẽ lấy dữ liệu thông qua REST API.

32

Trang 18

PROJECT 3 Giáo viên hướng dẫn: Đinh Thị Hà Ly

Các ứng dụng kiểu SPA sẽ không phải tải lại trang mỗi khi nội dung thay đổi Với cácJS framework hiện đại như React, Vue, Angular… đều hỗ trợ để xây dựng ứng dụngkiểu như vậy.

Vậy khi nào sử dụng SSR hay CSR?

Trang 19

PROJECT 3 Giáo viên hướng dẫn: Đinh Thị Hà Ly

3.2.4 JavaScript Framework NextJs

JavaScript Framework là thư viện được xây dựng dựa vào ngôn ngữ lập trình JavaScript Từ đó, mỗi framework được tạo ra để phục cho từng lĩnh vực khác nhau Hiện nay, có rất nhiều JavaScript Framework thông dụng như: NuxtJs, NextJs, VueJs,ReactJs, Angular…

Trong đó VueJs, ReactJs và Angular là những framework rất mạnh để tạo một trang web nhưng không mang lại khả năng tối ưu SEO cho một trang web bán hàng NextJsnổi lên là một framework có nhiều người và công ty tin tưởng sử dụng vì nhiều tính năng hữu ích, giúp nhanh chóng xây dựng một ứng dụng web bán hàng Next.js là một open-source React front-end framework được bổ sung các tính năng như Server Side Rendering (SSR) và Static Site Generation (SSG) Next.js được xây dựng dựa trên thư viện React có nghĩa là Next.js lấy những lợi thế của React và bổ sung các tính năng.

Server Side Rendering: SSR cho phép máy chủ access tất cả required data và xử lý

javaScript để hiển thị lên trang web Theo cơ chế này thì hầu hết các xử lý logic đều ở phía máy chủ Trong đó, máy chủ thực hiện xử lý và tiến hành các thao tác với cơ sở dữ liệu để thông dịch (render) ra thành HTML, sau đó gửi phản hồi cho khách hàng Trình duyệt của khách hàng cũng sẽ chỉ hiển thị HTML này.

Search Engine Optimization (SEO): Sử dụng SSR cũng mang lại cho bạn lợi thế về

SEO, giúp trang web của bạn hiển thị cao hơn trên các trang kết quả của công cụ tìm kiếm SSR làm cho các trang web xếp hạng tốt hơn cho SEO vì chúng tải nhanh hơn và nhiều nội dung trang web có thể được quét bởi các trình theo dõi SEO.Next.js cũng cho phép bạn chỉnh sửa thẻ <head> của một trang web, điều mà bạn không thể thực hiện trong React Thẻ <head> góp phần vào xếp hạng SEO của trang web.

3.3 Ngôn ngữ lập trình Java

3.3.1 Giới thiệu

Giới thiệu về Java:

Java là ngôn ngữ lập trình đa nền tảng (cross-platform), được phát triển bởi James Gosling tại Sun Microsystems (nay là Oracle Corporation) Ngôn ngữ lập trình này ra đời vào năm 1995 và được thiết kế để có thể chạy trên các nền tảng khác nhau, từ máy tính cá nhân đến thiết bị di động, các máy chủ và thiết bị nhúng.

Java sử dụng cấu trúc lập trình hướng đối tượng (object-oriented programming - OOP) và được xây dựng trên cơ sở của ngôn ngữ lập trình C++ Nó cung cấp một môi trường chạy ảo (virtual machine) gọi là Java Virtual Machine (JVM),

34

Trang 20

PROJECT 3 Giáo viên hướng dẫn: Đinh Thị Hà Ly

giúp các chương trình Java có thể chạy trên nhiều nền tảng khác nhau mà không cần phải biên dịch lại.

Hiện tại, Java là một trong những ngôn ngữ lập trình phổ biến nhất hiện nay, được sử dụng rộng rãi trong các ứng dụng di động, phát triển web, lập trình trêncác thiết bị nhúng, máy tính cá nhân, máy chủ, game và nhiều lĩnh vực khác.Các tính năng của Java:

- Đa nền tảng

Java được thiết kế để có thể chạy trên nhiều nền tảng khác nhau, vì vậy nó rất phù hợp cho việc phát triển các ứng dụng đa nền tảng Java sử dụng một máy ảo (JVM - Java Virtual Machine) để chạy mã nguồn, vì vậy mã nguồn được viết một lần và có thể chạy trên nhiều hệ điều hành khác nhau mà không cần thay đổi.

- Quản lý bộ nhớ tự động

Java có tính năng tự động quản lý bộ nhớ, tức là nó tự động thu dọn các vùng nhớ không sử dụng nữa để giảm thiểu các lỗi bộ nhớ Điều này giúp cho các ứng dụng được viết bằng Java có thể chạy ổn định và tránh các lỗi liên quan đến bộ nhớ.

- Hỗ trợ đa luồng

Java có thể xử lý đa luồng, cho phép chương trình thực hiện nhiều tác vụ cùng một lúc Điều này giúp cho các ứng dụng có thể chạy nhanh và hiệu quả hơn, đặc biệt là khi phải xử lý nhiều tác vụ cùng một lúc.

- Tính bảo mật cao

Java có các tính năng bảo mật như kiểm tra kiểu tĩnh và kiểm tra lỗi trên đườngdẫn Java được thiết kế để giảm thiểu các lỗ hổng bảo mật và các vấn đề liên quan đến an ninh.

- Hỗ trợ các thư viện và công cụ phát triển mạnh mẽ

Java có các thư viện tiêu chuẩn và các công cụ phát triển như IDE (Integrated Development Environment) để giúp các nhà phát triển tạo ra các ứng dụng dễ dàng hơn Các thư viện và công cụ này cung cấp các tính năng như: tạo giao diện người dùng, xử lý dữ liệu, kết nối cơ sở dữ liệu và nhiều hơn nữa, - Tính di động

Java được sử dụng rộng rãi trong lĩnh vực di động bao gồm: các thư viện hỗ trợviệc phát triển ứng dụng di động, đóng gói ứng dụng thành các file jar hoặc apk, cung cấp các tính năng như xử lý đa nhiệm, kết nối mạng và tích hợpvới các thiết bị phần cứng như máy ảnh.

- Tính độc lập với nền tảng

Java có thể chạy trên nhiều nền tảng khác nhau và không phụ thuộc vào bất kỳ nền tảng cụ thể nào Điều này giúp cho các ứng dụng Java có thể được triển khai trên nhiều hệ thống khác nhau mà không cần sửa đổi mã nguồn.- Tính kế thừa và đa hình

35

Trang 21

PROJECT 3 Giáo viên hướng dẫn: Đinh Thị Hà Ly

Java là ngôn ngữ lập trình hướng đối tượng (OOP), vì vậy nó có các tính năng như kế thừa, đa hình và đóng gói Các tính năng này giúp cho mã nguồn được tái sử dụng và giảm thiểu sự trùng lặp trong mã nguồn.

- Tính mở rộng

Java có tính năng mở rộng, cho phép các nhà phát triển thêm các tính năng mới vào ngôn ngữ bằng cách tạo các thư viện và API riêng Điều này giúp cho Java có thể được sử dụng trong nhiều lĩnh vực khác nhau và được phát triển theo cáchướng khác nhau.

Ưu và nhược điểm của JavaƯu điểm của Java

Độ tin cậy caoTính đa nền tảngQuản lý bộ nhớ tự độngCông cụ phát triển phong phúHỗ trợ đa luồng

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

Tốc độ chậm hơn so với các ngôn ngữ lập trình gần sát với phần cứng, chẳng hạn như C hoặc C++.

Java có thể chạy trên nhiều nền tảng khác nhau, nhưng ứng dụng này có thể cần đến một trình biên dịch hoặc máy ảo Java riêng biệt để có thể chạy trên các thiết bị di động.

Sử dụng bộ nhớ lớn hơn so với một số ngôn ngữ lập trình khác.Cú pháp phức tạp hơn so với một số ngôn ngữ lập trình khác

3.3.2 Giới thiệu Spring Framework và Spring boot

Spring Framework

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…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 đượ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 đó

36

Trang 22

PROJECT 3 Giáo viên hướng dẫn: Đinh Thị Hà Ly

Spring boot

Spring Boot là một dự án trong hệ sinh thái Spring Framework, được phát triển bởiPivotal Team (hiện là một phần của VMware) Nó là một nền tảng phát triển ứng dụng Java dựa trên Spring Framework với mục tiêu đơn giản hóa việc xây dựng ứng dụng Java Dưới đây là một số điểm quan trọng về Spring Boot:

Kiến thức Nền tảng Spring Framework: Spring Boot sử dụng và mở rộng Spring Framework, nên nó đòi hỏi một kiến thức cơ bản về Spring.

Tự động cấu hình (Auto-configuration): Spring Boot cung cấp các cấu hình

mặc định dựa trên loại ứng dụng bạn muốn xây dựng Điều này giúp loại bỏ phần lớn công việc cấu hình thủ công và cho phép bạn bắt đầu nhanh chóng.

Tự động triển khai (Embedded Server): Spring Boot đi kèm với các máy chủ

web nhúng như Tomcat, Jetty hoặc Undertow, giúp bạn triển khai ứng dụng một cách độc lập mà không cần cài đặt máy chủ web riêng biệt.

Khả năng tạo dự án nhanh chóng: Spring Boot cung cấp các công cụ CLI và

Spring Initializr để tạo ra dự án nhanh chóng với cấu hình sẵn có.Hỗ trợ viết API RESTful: Spring Boot giúp bạn xây dựng các dịch vụ web RESTful dễ dàng thông qua Spring MVC.

37

Trang 23

PROJECT 3 Giáo viên hướng dẫn: Đinh Thị Hà LyQuản lý phụ thuộc (Dependency Management): Spring Boot sử dụng

Apache Maven hoặc Gradle để quản lý các phụ thuộc của dự án một cách hiệu quả.

Hệ sinh thái Spring Boot Ngoài Spring Boot, Spring cung cấp nhiều dự án con khác :như Spring Data, Spring Security, Spring Cloud, v.v., để hỗ trợ các khía cạnh khác nhau của phát triển ứng dụng.

Hệ sinh thái cộng đồng mạnh mẽ: Có một cộng đồng rộng lớn các lập trình viên và tài liệu hữu ích về Spring Boot.

Spring Boot đã trở thành một lựa chọn phổ biến cho việc phát triển ứng dụng Java, đặc biệt cho việc xây dựng các ứng dụng web, dịch vụ web, và các ứng dụng microservices Nó giúp giảm bớt phức tạp trong việc cấu hình và triển khai ứng dụng, giúp nhà phát triển tập trung vào việc xây dựng logic ứng dụng thay vì cấu hình hạ tầng kỹ thuật.

3.4 Hệ quản trị cơ sở dữ liệu

3.4.1 Các khái niệm

Cơ sở dữ liệu (Database) là một tập hợp các dữ liệu có tổ chức, thường được lưu trữvà truy cập điện tử từ hệ thống máy tính Khi cơ sở dữ liệu phức tạp hơn, chúngthường được phát triển bằng cách sử dụng các kỹ thuật thiết kế và mô hình hóa chínhthức.

Hệ quản trị cơ sở dữ liệu (Database Management System) là một phần mềm để lưu trữvà truy xuất dữ liệu của người dùng trong khi xem xét các biện pháp bảo mật thíchhợp Nó bao gồm một nhóm các chương trình thao tác cơ sở dữ liệu Hệ quản trị cơ sởdữ liệu chấp nhận yêu cầu dữ liệu từ một ứng dụng và hướng dẫn hệ điều hành cungcấp dữ liệu cụ thể Trong các hệ thống lớn, nó giúp người dùng và phần mềm bên thứba lưu trữ và truy xuất dữ liệu.

3.4.2 Chức năng của hệ cơ sở dữ liệu

Cung cấp môi trường tạo lập cơ sở dữ liệu: Hệ quản trị CSDL đóng vai tròcung cấp cho người dùng một ngôn ngữ định nghĩa dữ liệu để mô tả, khai báo kiểu dữliệu, các cấu trúc dữ liệu.

Cung cấp cách cập nhật và khai thác dữ liệu: Hệ quản trị CSDL cung cấp chongười dùng ngôn ngữ thao tác dữ liệu để diễn tả các yêu cầu, các thao tác cập nhật và

38

Trang 24

PROJECT 3 Giáo viên hướng dẫn: Đinh Thị Hà Ly

khai thác cơ sở dữ liệu: Cập nhật (nhập, sửa, xóa dữ liệu), Khai thác (tìm kiếm, kếtxuất dữ liệu).

Cung cấp các công cụ kiểm soát, điều khiển các truy cập vào cơ sở dữ liệu:Nhằm đảm bảo thực hiện một số yêu cầu cơ bản của hệ cơ sở dữ liệu Bao gồm: Đảmbảo an ninh và ngăn chặn các truy cập bất hợp pháp; Duy trì tính nhất quán của dữliệu

3.4.3 MySQL

MySQL là hệ quản trị cơ sở dữ liệu sử dụng mã nguồn mở phổ biến nhất thế giới và

được các chuyên gia lập trình rất ưa chuộng trong quá trình phát triển web, phát triểnứng dụng của mình Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho cácứng dụng có truy cập CSDL trên Internet MySQL có một số đặc điểm:

Hệ quản trị cơ sở dữ liệu MySQL chính là một trong những phần mềm quản trịCSDL dạng server based, hệ gần giống với SQL server.

MySQL là phần mềm quản lý dữ liệu thông qua CSDL Và mỗi một CSDL đềucó bảng quan hệ chứa dữ liệu riêng biệt.

39

Ngày đăng: 18/06/2024, 17:07

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

TÀI LIỆU LIÊN QUAN

w