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

Khóa luận tốt nghiệp Kỹ thuật máy tính: Xây dựng thư viện API để phát triển ứng dụng hỗ trợ nông nghiệp chính xác

73 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

Thông tin cơ bản

Tiêu đề Xây dựng thư viện API để phát triển ứng dụng hỗ trợ nông nghiệp chính xác
Tác giả Đặng Minh Nhã
Người hướng dẫn TS. Đoàn Duy
Trường học Trường Đại học Công nghệ Thông tin
Chuyên ngành Kỹ thuật Máy tính
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2022
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 73
Dung lượng 34,59 MB

Nội dung

Do đó Khóa luận tốt nghiệp này tậptrung chính vào việc xây dựng thư viện API nhằm tạo ra sự liên kết giữa các ứngdụng công nghệ cao và giúp phát triển các giải pháp ứng dụng trên thiết b

Trang 1

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH

TRUONG DAI HỌC CÔNG NGHỆ THONG TIN

KHOA KY THUAT MAY TÍNH

DANG MINH NHA

KHOA LUAN TOT NGHIEP

XAY DUNG THU VIEN API DE PHAT TRIEN

UNG DỤNG HO TRỢ NÔNG NGHIỆP CHÍNH XÁC

BUILDING AN APILIBRARY FOR DEVELOPING

PRECISE AGRICULTURE APPLICATIONS

KY SU NGANH KY THUAT MAY TINH

TP HO CHi MINH, 2022

Trang 2

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH

TRUONG ĐẠI HỌC CÔNG NGHỆ THONG TIN

KHOA KỸ THUẬT MÁY TÍNH

ĐẶNG MINH NHÃ - 17520835

KHÓA LUẬN TÓT NGHIỆP

XÂY DỰNG THU VIỆN API DE PHAT TRIEN

UNG DỤNG HỖ TRỢ NÔNG NGHIỆP CHÍNH XÁC

BUILDING AN API LIBRARY FOR DEVELOPING

PRECISE AGRICULTURE APPLICATIONS

KY SU NGANH KY THUAT MAY TÍNH

GIANG VIEN HUONG DAN

TS DOAN DUY

TP HO CHÍ MINH, 2022

Trang 3

THONG TIN HOI DONG CHAM KHÓA LUẬN TOT NGHIỆP

Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số 62/QD-DHCNTT ngày

14 tháng 02 năm 2022 của Hiệu trưởng Trường Đại học Công nghệ Thông tin.

Trang 4

LỜI CÁM ƠN

Đầu tiên, nhóm thực hiện đề tài xin gửi lời cảm ơn chân thành đến Quý Thầy

Cô trong Khoa Kỹ thuật Máy tính nói riêng và Quý Thầy Cô ở trường Đại học Công nghệ Thông tin — Dai học Quốc gia TP Hồ Chí Minh nói chung Quý Thay Cô đã tận

tâm giảng dạy, truyền đạt cho chứng em những kiến thức quan trọng và cả lời khuyên

chân thành trong suốt thời gian học vừa qua.

Đặc biệt, nhóm thực hiện đề tài gửi lời cảm ơn sâu sắc đến TS Đoàn Duy, người đã tận tình hướng dẫn, giúp đỡ cũng như định hướng, góp ý và cung cấp nhiều kiến thức cần thiết cho nhóm trong suốt thời gian thực hiện khóa luận tốt nghiệp.

Cảm ơn ThS Phạm Minh Quân, giảng viên phản biện đã giúp đỡ và định hướng cho

nhóm, góp ý cho nhóm dé có thé chỉnh sửa các lỗi sai trong khóa luận và hoàn thiện khóa luận một cách tốt nhất.

Kết quả khóa luận tốt nghiệp là quá trình cố gắng và nỗ lực của nhóm Tuy

nhiên, với điều kiện thời gian và kiến thức còn hạn chế, báo cáo khóa luận tốt nghiệp

không tránh khỏi những thiếu sót Nhóm thực hiện rất mong nhận được những ý kiến đánh giá khách quan, cùng những góp ý chân thành từ người đọc dé nhóm có thé hoàn chỉnh khóa luận tốt nghiệp với kết quả tốt nhất.

Cuối cùng, nhóm thực hiện dé tài gửi lời cảm ơn đến ba mẹ, anh chị và bạn bè

đã luôn quan tâm, động viên, ủng hộ nhóm trong suốt thời gian học tập và nghiên cứu

tại trường.

TP Hồ Chí Minh, tháng 02 năm 2022

Sinh viên thực hiện

Đặng Minh Nhã

Trang 5

.3 _ Tính cấp thiết của dé tài

.1.4 Các nhóm nghiên cứu nông nghiệp chính xác - † 1.5 Giải pháp eecieeerrrrrirrrrrrrrrrrrrrrrrooeef

.1.6 Nội dung khóa luận eccccccerrrrrrrrrerererrrrrrrrrrirrrrrreeD 1.7 Mục tiêu khóa luận ccccc ccceescvcvverertvveeeerrveesrerrrrssrrrrerssrrrrrsae Ð 8 Phạm vi khóa luận -. cc-ee-e+ccrkrrktierttrttrrrirrirrrirriiiirreÐ.

Chương 2 CƠ SỞ LÝ THUYẾT -5sesrererrrrrtrrrrrerrrerrr Ổ

2.1 Hệ thống ứng dụng nông nghiệp chính xác e e.Õ

2.2.6 _ Cách hoạt động REST API.

2.2.7 API Host và Base URLovssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssses LA 2.3 SWAGSED cssssssssssssesssesesssssssnesssessssssssssesesesesssssssseessesssssssuneesssesessnsasieessessssssenessesssssssssees LOD

2.3.1 Cơ bản về SWagger eecssssessssssesecsssssussssseteseeesesssssersseeesesssusssssseeseesestssassseeees 1D

Trang 6

2.3.2 SWwagger là gÌì HH He.

2.3.3 Cấu trúc cơ bản của Swagger.

2.3.4 Công dụng của SWaggr « eeeerrririiiiiiiiirrrriiiiiriiriirrrriiimir

Chương 3 THIET KẾ VÀ HIỆN THỰC ĐỀ TÀI s2ecxeerrere

3.1 Tổng quan về thư viện API - eeesteriereereererrrrrerrerreree 3.2 Vai trò của API trong hệ thống -escsesreereererreererrerreree 3.3 Một số kỹ thuật được sử dụng -.cesterierrerrtrrrrsrrrrrerreree

3.3.1 Token ceciririririririririie 3.3.2 Định nghĩa JSON Web Token

3.3.3 JSON Web Token (JWT) hoạt dng ws: 3.3.4 JWT xác thực với refresh tokens:

3.3.5 vòng đời Refresh token: :::ceethhHHHHrre

E =9 h ¿vẻ

3.4.1 _ Gài đặt SQL database: c.HHHHHH he.

18 19

19

19 20 21 21 22

23

23 23

Trang 7

3.5 Entity FrameWOrK -eeeeeeerreeriiiiirrirriiiiiiiirrriiiiiiiiirrrrirrririsesesrooe 29) 3.5.1 _ Entity Framework là gì

3.5.2 Tính năng Entity FrameWork -:-:-:eeeetsrreerrrersrererree 29) 3.5.3 Entity Framework code ÍirSf :-:-:e:eieesreerrrersrereeree 29) 3.5.4 _ Cài đặt EF trong Visual Studio Code 2019 « SO

3.6 Cấu trúc của thư viện +31

3.6.1 Sơ đồ tổ chức chương trình thiết kế thư viện 3 1

3.7.1 Controllers eeceeeeeererrerrirriririririisseoeoeooe OD 3.7.2 Models fỂĐP00ố2-›uunHHfWRENE TThì,, ăăễăễếễeễeễeeoo.u 22

3.7.3 Services Gites MGtresssosssssssssssesssossnssMprossnssossssssedifessessessesnecresnsessesnsantessnsssnensess LÔ 2

“` _ 3.7.5 Migraiins N.Fmu qơm (TNE c.coeeeeoeeooeooooe 2

3.8 Lưu đồ giải thuật

3.9 Các API có trong thư viện -eeeeeeeeeeerrrrrrrrrreerrrrrrrririrrrrrrrrrio OD

3.9.1 Các lỗi thường gặp khi sử dung APT

3.9.2 Nhóm các API quản lý tài khoản -.-.-. -ceeeeeeeeeeeeeeee OO,

3.9.3 Nhóm các API quản lý thông tin chuyên gia +1

3.9.4 Nhóm các API quản lý thao tác File « - A

Trang 8

3.9.5 Các API quản lý bệnh eeeeeeeeeererrrrrrrrrrrrrseu 4D

3.10 Publish.

BLL Hosting trên IIS -.-eseesrrrrroee 7

3.11.1 Cai đặt.NET Core Window Server Hosting Bundle +7

3.11.2 Cai đặt TIS SeTVer sieu 4O

Chương 4 KẾT QUA CUA NGHIÊN CỨU sststetereeeereee 4 4.1 Gọi một số API trên Server bằng PostMan ceeeeeeeeseerssuo OA

4.1.1 Đăng ký tài khoản eeririiiriooiu DAL 4.1.2 Xác minh email -. -ccceceeeeeeirriiriiririririre DD 4.1.3 Đăng nhập tài khoản wes OO 4.2 Hình ảnh Demo -c-ccccceeeeeiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiioriiooo OO,

Chương 5 KET LUẬN VÀ HƯỚNG PHÁT TRIẺN 58

Trang 9

DANH MỤC HÌNH

Hình 2.8: REST API

Hình 2.13: Giao diện IIS.

Hình 2.14: Mô hình hoạt động của web server.

Hình 3.6: sơ đồ cấu trúc thư viện API

Hình 2.6: Sơ đồ làm việc HTTP client/SerVer 2::ecteeeereeetrreeerreerrreeere

Hình 2.7: Mô hình hoạt động của web APIL -. -c-c-cccccecckekrtrtrrrrkrrrer

¬ oF FF WR PrP C © AN a

Hình 2.9: Sơ đồ hoạt động REST API wuss

Hình 2.10: Cách hoạt động REST API csssssssssssssssssssssssssssssssssssessssessssesssssssssenssssssssssesssssess

Hình 2.11: ví dụ về đường dẫn -se2siettetterrttrtrerrrrrrerrertrrrrrrrre

Hình 3.1: Vai trò API trong hệ thống eeeeerrreerrriririrrririirrrrrrir

Hình 3.2: Cách hoạt động của JWWTT ccscc<trrrtriiihireHiheiiiiiri

Hình 3.3: Cài đặt SQL-prOper ty .ececrrrrririirririiiiiririririrrrriirrrrir

Hình 3.4: SQL configuration-aCCOuIiL -. cccccccccvecereeerrtrrrtrtriririiiiiririiiririe

Hình 3.5: Quy trình tao database bằng EF ceieiiiiriiiiiiiiririee

Hình 3.7: Lưu đồ giải thuật sử api kết nối và nhận dữ

liệu -Hình 3.8: Các API có trong thư viện API e.eeceieeeeeeerirrririiiiiiiiirrrie

Hình 3.10: Email thông báo chứa token e-.-cecccreirreeeeeeeertrrrrrrrrirrrrrrrre

Hình 3.11: API quản lý thông tin chuyên gia -c-ccccccccccccveeeeekerrerkeerer

Hình 3.12: Server phản hồi thông tin của tất cả chuyên gia

Hình 3.13: api truy xuất thông tin chuyên gia -.-.ceeereeeerererreree RP FB WwW 0 0 0Ð DY DYN NN DN KENNP GAN HKH DCA AAWNS OC

Trang 10

Hình 3.14: Server phản hồi thông tin của chuyên gia -ss.eccssee 42

Hình 3.15: API xóa thông tin chuyên Gia -cceecerierrriirrrriiirrriirrrirrrree 43 Hình 3.16: API download file s«cckccsrkrk He 44

Hình 3.17: Server phản hồi khi upload thành công -e .-css.+ccssrz 44

Hình 3.18: Các file code được đóng gÓI +cxeEkiikkieiiiiiiiiriiierriee 47

Hình 3.19: Mô hình triển khai ccccc+ccvvvvverrrrrrrreerrrrrrrrrerrrrrrrrrrerrrrrrrree 48

Hình 3.20: Dashboard -s+ccc+tsrrrtrrrttrrrrrtrrrtrirrrrtrrrtrirrrirrrirrirriirrrrirrrrrrrrrrreee 49 0012000) 1 49 Hình 3.22: F©afUT@S +cs< + HH HH HH HH HH HH HH hi nhêg 50

š00 i10 0k0 50 Hình 3.24: Add Website .k.thHHHHHHHH HH HH 51

Hình 3.25: Cài đặt WebSite c.esssesssecssessssssesssessessecsssessessessessessssesseessesssesssesacesseeseesseessessseees 51

Hình 3.26: Cầu hình website xeeeriereriiririiriiiiiiiiiirrrre 52Hình 3.27: Cấp quyền cho IIS -.cc5:ircec2SEEEEtrdrevvvtEtrrrrerrvrrrrrrrrrrrrrrrrree 53Hình 4.1: Postman yêu cầu được gửi và người dùng mới đã được đăng ký 54

Hình 4.2: Xác minh Email e -s<5++++E+kEEEkkrtEkEEEirtkirrEiiiriiireiirie 55 Hình 4.3: xác minh tài khoản -c-c++ckkthEhHH HH 55 Hình 4.4: Đăng nhập tài khoản cccccrkertrkiiertriiiriiirriiiiiiiiiriiirk 56

Hình 4.5: Chuẩn đoán bệnh -2-2©se+E+xe+E+xEtrtrxrtrxerrrrxerrrxrrrrrrsrrrrrrrrresree 57

Hình 4.6: Chức năng quên Password c5+cScttEExrEEkttkrtkrrtkrirtrrrirrierrkereee 57 Hình 4.7: Hình ảnh lúc đăng nhập ứng dụng -ceererriisrrirrree 57 Hình 4.8: Giao diện Ứng Cura esceeessssesssseessstescsseeccstesssneeessteeesneeesseeesneeecseessnteessneeesneeeensess 57

Trang 11

DANH MỤC BANG

Bảng 2.1: Các phương thức REST API

Trang 12

DANH MỤC TU VIET TAT

API Application Programming Interface

PA Precise Agriculture

ICT Information & Communication Technology GIS Geographic Information System

GPS Global Positioning System

WSN Wireless sensor networks

loT Internet of Things

JSON JavaScript Object Notation

XML Extensible Markup Language

HTTP HyperText Transfer Protocol

SPA Single-Page Application

REST REpresentational State Transfer

CRUD Create, Update, Read, Delete

URL Uniform Resource Locator

UI User interface

HS Internet Information Services

FTP File Transfer Protocol

JWT JSON Web Token

EF Entity Framework

DHCP Dynamic Host Configuration Protocol

WCF Windows Communication Foundation

Trang 13

TOM TAT KHÓA LUẬN

Thế giới đã và đang tiến đến giai đoạn yêu cầu phải sản xuất nông sản nhiềuhơn với nguồn tài nguyên khan hiểm hơn Đối với Việt Nam, trong cơ cấu các ngànhkinh tế thì nông nghiệp là ngành kinh tế vẫn là ngành có tỉ trọng kinh tế lớn nhất(chiếm 40%), sử dụng phần lớn các tài nguyên thiên nhiên và lực lượng lao động cả

nước.Nhưng hiện tại các diện tích đất nông nghiệp và nguồn nhân công có xu hướng

giảm trong những năm gan đây Trong bối cảnh chuyên đổi kinh tế, sinh thái và xãhội hiện nay thì phat triển nông nghiệp công nghệ cao là việc tất yếu phải thực hiện

dé mang tính hiệu quả kinh tế cao hơn và gia tăng sản lượng trong bối cảnh hiện nay

Vì vậy đã có nhiều giải pháp áp dụng công nghệ cao vào nông nghiệp nhằm thay thế

nguồn nhân công và gia tăng chất lượng và sản lượng nông nghiệp Nhưng những

nghiên cứu hay các giải pháp ứng dụng công nghệ cao còn rời rạc thiếu tính liên kết

với nhau dé tạo thành một hệ thong liền mạch Do đó Khóa luận tốt nghiệp này tậptrung chính vào việc xây dựng thư viện API nhằm tạo ra sự liên kết giữa các ứngdụng công nghệ cao và giúp phát triển các giải pháp ứng dụng trên thiết bị di động

hay website nhằm hỗ trợ người nông đân có thê tra cứu các kỹ thuật canh tác, phòng

trừ bệnh hay kết nối chuyên gia là một nhu cầu lớn và tiềm năng phát triển trongtương lai gần

Nhóm thực hiện đề xuất dé tài “Xây dựng thư viện API dé phát triển ứngdụng hỗ trợ nông nghiệp chính xác” Đề tài cung cấp đầy đủ các tính năng cơ bảncủa thư viện các API cần thiết dé phát triển các giải pháp cho nông nghiệp chính xác

Trang 14

Chương 1 GIỚI THIỆU TONG QUAN

1.1 Bối cảnh

1.1.1 Tình hình ngoài nước

Dân số luôn luôn tăng cao và lương cung thực phẩm không bao giờ đáp ứngđược đến tận bây giờ Theo số liệu dự báo, năm 2050 dân số dự kiến cham 9,8 ty,tăng xấp xỉ 25% so với con số hiện tại [1] Gần như toàn bộ sự gia tăng dân số đã đềcập được dự báo xảy ra giữa các nước đang phát triển [2] Mặt khác xu hướng đô thị

hóa được dự báo sẽ tiếp tục tăng nhanh với khoảng 70% dân số trên thế giới dự đoán

sẽ di cư đến thành thi cho đến năm 2050 (hiện tại là 55) [3] Và điều này sẽ thúc đâynhu cầu thực phẩm hơn nữa, đặc biệt là ở các quốc gia đang phát triển Việt Nam cũngkhông ngoại lệ Vì vậy xu thế hiện tại của thế giới đã có một số nghiên cứu áp dụngcông nghệ cao vào dé cải thiện năng suất lao động trong nông nghiệp thì nông nhiệpchính xác (Precise agriculture) là một xu thé phát triển trong nông nghiệp đang đượcquan tâm đặc biệt trên thé giới; đặc biệt là những nước có nền nông nghiệp phát triển

như Mỹ, Hà Lan, Uc, Nhat Ban, An Độ, Bang-la-desh, Israel Cùng với sự bùng nô

công nghệ và hiện đại hóa đang diễn ra trên toàn thế giới Các công nghệ như IoT,máy học, trí tuệ nhân tạo, công nghệ không dây, nông nghiệp chính xác đã phát triểnnhanh chóng trong những thập niên gần đây với nhiều mô hình nghiên cứu và ứng

dụng.

1.1.2 Tinh hình trong nước

Ở Việt Nam, sự gia tăng dân số tuy có giảm ở những năm gần đây nhưng nhìnchung vẫn nằm trong nhóm các quốc gia tăng dân số nhanh trên thế giới (hiện tại là

2,06) [4] Sự tăng trưởng và phát triển nông nghiệp trong suốt thời ky qua ở Việt Namchủ yếu dựa trên sử dụng nguồn nhân lực, tài nguyên thiên nhiên và các vật tư đầu

vào Sản lượng xuất khẩu tăng nhanh, nhưng kèm theo đó là những thiệt hại về môitrường, chất lượng sản lượng thấp, nhân công đông nhưng năng suất lao động thấp,giá trị gia tăng hạn chế Trong bối cảnh hiện tại, để giúp cho người nông dân có thểgiảm thiểu tối đa các thiệt hại về sản lượng cây trồng cũng như gia tăng năng suất lao

Trang 15

động đề có thé đáp ứng được lượng cung thực pham đang ngày một gia tăng nhanhchóng Việc áp dụng công nghệ cao trong lĩnh vưc nông nghiệp đã được nhiều nướctrên thế giới quan tâm phát trién nhằm phát trién nền nông nghiệp Đã có một số nhómnghiên cứu về nông nghiệp chính xác ở Việt Nam (được nêu ở mục 1.1.4).

1.1.3 Tinh cấp thiết của đề tài

Công nghệ thông tin và truyền thông đã lan rộng trên khắp thế giới và ở hầuhết mọi nơi đều có dấu hiệu của công nghệ Lĩnh vực công nghệ và truyền thông(ICT) đã đóng một vai trò quan trọng đối với độ chính xác nông nghiệp và đã tạo điều

kiện cho các nhiệm vụ nông nghiệp đặc biệt là với sự trợ giúp của viễn thông và điệnthoại thông minh [5] Ngày nay do những tiễn bộ trong bộ xử lý điện thoại thông

minh và hệ điều hành, những thiết bị này ngày càng được sử dụng nhiều hơn trongnhiều lĩnh vực (ví dụ: chăm sóc sức khỏe, các ngành công nghiệp, lưới điện thôngminh và nông nghiệp) Hầu hết tất cả các điện thoại thông minh mới có thé thực hiệnhầu hết các nhiệm vụ của một máy tính Hơn nữa, theo sự gia tăng tỷ lệ sử dụng điệnthoại thông minh, một số lượng lớn các ứng dụng đã được phát triển cho một số lượnglớn các hoạt động trong nông nghiệp Đối với nông nghiệp, nhiều ứng dụng nôngnghiệp chính xác được phát triển có thé giúp ích cho nông dân theo các phương phápkhác nhau Mặc dù có nhiều công trình nghiên cứu và các mô hình giải pháp đã đượcgiới thiệu, nhưng đa số các công trình nghiên cứu là những sản phẩm rời rạc, chưa có

sự kết nối, chưa có ứng dụng cụ thể thân thiện với người nông dân Đặc biệt, các giải

pháp vẫn chưa có sự kết nối và tư van của các chuyên gia nông nghiệp dé hỗ trợ người

nông dân một cách trực tiếp và kịp thời Phát triển và nghiên để liên kết các giải phápứng dụng trên thiết bị di động hay website dé giúp người nông dân có thé tra cứu các

kỹ thuật canh tác, phòng trừ dịch bệnh hay kết nối chuyên gia là một việc cấp thiếtcần phải nghiên cứu và áp dụng trong tương lai gần Đề có thể phát triển được hệ sinhthái các ứng dụng cho nhà nông, các cơ sở dữ liệu và thư viện API cần thiết phải đượcxây dung; đây là điều kiện cho phép các ứng dụng được phát triển nhanh chóng và

đồng bộ Do đó, nhóm thực hiện đề xuất đề tài “Xây dựng thư viện API để phát

triển ứng dụng và hỗ trợ nông nghiệp chính xác”

Trang 16

1.1.4 Các nhóm nghiên cứu nông nghiệp chính xác

Những nghiên cứu được công bố trong nông nghiệp chính xác là áp dụng các

kỹ thuật máy học và trí tuệ nhân tạo cải tiến quá trình canh tác, chăm sóc cây trồng

và kiểm soát điều kiện môi trường [6, 7, 8] Các mô hình và hệ thống chuẩn đoánbệnh trên lá và trái cây dé giúp người nông dân có thé xác định chính xác tình trangsức khỏe của cây trồng đã được nghiên cứu và ứng dụng hiệu quả [9, 10] Bên cạnh

đó một xu hướng phát triển khác trong nông nghiệp chính xác là xây dựng các hệ

thống cơ sở dit liệu hoặc hệ thống chuẩn đoán bệnh cho phép người nông dân tươngtác với các hệ thống trí tuệ nhân tạo đang được các nhà nghiên cứu chú ý đến dé pháttriển [11, 12]

Tại Việt Nam, phát triển nông nghiệp chính xác đã được bắt đầu trong thập

niên gân đây với một sô công trình nghiên cứu và mô hình canh tác như sau:

+ Năm 2017, tác giả Nguyễn Đình Thành và các cộng sự giới thiệu nghiên cứu

“Xây dựng giải pháp Ứng dụng công nghệ IoT và Thủy canh hồi lưu trong sản xuấtsạch đạt tiêu chuẩn Vietgap” giúp thay đôi mô hình canh tác truyền thông và áp dụng

công nghệ vào quản lý quy trình chăm sóc [13].

+ Nhóm giải pháp NextFarm xây dựng hệ sinh thái cho nông nghiệp công nghệ

Cao trong

ngành trồng trọt [14] Nhóm giải pháp gồm 4 nhóm sản phẩm ứng dụng chính:

NextCRM - Phần mềm quản lý bán hàng:

NextERP — Phần mềm tự động hóa quy trình nông trại;

NextFarm Fertikit— Hệ thống châm phân dinh dưỡng tự động;

NextFarm QR Check — Phần mềm truy xuất nguồn gốc

1.1.5 Giải pháp

Nhóm sử dụng ngôn ngữ lập trình C# để lâp trình trình môi trường Visual

Studio phiên bản 2019 và lưu trữ các cơ sở dữ liệu trong SQL Server Sau khi sử dụng

Trang 17

các công cụ thử nghiệm như postman hay swagger thành công trên local server thì

nhóm đóng gói thư viện lại và gửi lên Window Server phiên bản 2016 dé lưu trữ và

sử dụng Các ứng dụng người dùng có thé dé dàng gọi được các api đã được đưa lên

trên server.

1.1.6 Nội dung khóa luận

Nội dung 1: Nghiên cứu cơ sở lý thuyết về nông nghiệp chính xác, các hoạtđộng cơ bản và các kỹ thuật xây dựng API cho phát triển ứng dụng trên các nén tảng

Nội dung 2: Xây dựng cơ sở dữ liệu về bệnh trên cây trồng, cách phòng bệnh,địa chỉ kết nối chuyên gia

Nội dung 3: Xây dựng thư viện API cho phát triển ứng dụng Thư viện cungcấp các dịch vụ cơ bản cho các ứng dụng trong lĩnh vực nông nghiệp chính xác

Nội dung 4: Phát triển ứng dụng trên thiết bị android dé minh họa cho sử dụng

thư viện API.

1.1.7 Mục tiêu khóa luận

Mục tiêu tổng quát: xây dựng thư viện API cơ bản phục vụ phát triển các ứng

dụng cho nông nghiệp chính xác.

Mục tiêu chỉ tiết:

1 Xây dựng cơ sở dữ liệu về bệnh trên cây trồng, phương pháp phòng tránh,

các kỹ thuật canh tác;

2 Xây dựng thư viện API để phát triển ứng dụng cho nông nghiệp chính xác;

3 Xây dựng ứng dụng mô phỏng cho phép người nông dân tra cứu bệnh, cách

phòng trị và kết nối với chuyên gia

1.1.8 Phạm vi khóa luận

1 Thư viện API được sử dụng trên nền tảng Android OS

2 Các API có thê được kiêm tra thông qua PostMan.

Trang 18

Chuong 2 CƠ SỞ LÝ THUYET

Trong khóa luận tốt nghiệp này nghiên cứu mô hình hệ thống nông nghiệp

chính xác áp dụng thư viện API Để áp dụng thư viện API người đọc cần biết một

số cơ sở lý thuyết liên quan đến API.

Hình 2.1: Mô hình giải pháp nông nghiệp chính xác

Giải thích hệ thống hình 2.1: Khi người nông dân cung cấp hình ảnh lá cây

bệnh như (lá cà chua, lá cây xoài) thông qua ứng dung di động Dữ liệu sẽ được gửi

đến Hệ thống phân tích sau đó cho ra kết quả bệnh Kết quả này sẽ được gửi lại chongười nông dân Và nông dân cũng có thể trao đổi trực tiếp với chuyên gia về kết quanhận được từ hệ thong phan tich Dé thực hiên các bước trên cần có API đóng vai trònhư một cau nối (vi dụ như khi người nông dân cần liên hệ với chuyên gia cần một

API có chức năng gọi trực tiếp hoặc một API có thể chuyên dữ liệu từ người nôngdân đến hệ thống phân tích)

Trang 19

Phân tích hệ thống:

Hệ thống chia ra làm 2 giai đoạn:

Giai đoạn 1: Xây dựng hệ thống

Chuyên gia nông nghiệp nhận các dt liệu hình ảnh lá cây bệnh và đưa ra đánh

giá sau đó đưa kết quả đánh giá cho chuyên gia công nghệ Chuyên gia công nghệ

xây dựng hệ thống training, cập nhập vào cơ sở dữ liệu dé đưa vào hệ thống Hệ thống

sẽ “học hỏi” và tiếp tục xây dựng lên hệ thống phân tích được mô tả như hình 2.2

Giai đoạn 2: Ứng dụng hệ thống

Sau khi xây dựng được hệ thống phân tích lá cây bệnh Hệ thống được đưavào sử dụng dé hỗ trợ người nông dân nhận biết được bệnh của các loại của cây trồng

dé có những biện pháp xử lý kịp thời

Trang 20

Trong lập trình máy tinh, Application Programming Interface (Giao diện lập

trình ứng dụng) viet tat là APL, là một tập hợp các định nghĩa, giao thức và công cụ chương trình con đê xây dựng phân mém và ứng dung [15].

Hiểu đơn giản thì API là một loại giao diện có một bộ các chức năng cho phép

lập trình viên truy cập các tính năng hoặc các dịch vụ đê phát triên các giải pháp.

Hình 2.4 cho thay giao diện người dùng (Client) gửi yêu cầu dit liệu đưới dạng

JSON đến Web API thông qua các phương thức HTTP Tại API sẽ tìm đến cơ sở đữ liệu thích hợp đề trả dữ liệu về API với kết quả đưới định dang JSON hoặc XML thông qua các giao thức HTTP hoặc HTTPS.

API có thê trả về đữ liệu mà bạn cần cho ứng dụng của mình ở những kiểu dữ

liệu phô biên như JSON hay XML.

Trang 21

Database

Hình 2.4: Mô hình hoạt động của API

2.2.2 Dữ liệu JSON và XML

JSON là viết tắt của JavaScript Object Notation, là một kiểu định dạng dữ liệu

tuân theo một quy luật nhât định ma hau hêt các ngôn ngữ lập trình hiện nay đêu có

thê đọc được JSON là một tiêu chuân mở đê trao đôi dữ liệu trên web.

Dinh dạng JSON sử dụng các cặp key — value (tên thuộc tính — giá trị thuộc tính) đê dữ liệu sử dụng Nó hồ trợ các câu trúc dữ liệu như đôi tượng và mảng.

_ Key trong JSON: key co thé là một chuỗi, một sé , nhưng dé đảm bảo tínhđông nhât giữa các ngôn ngữ lập trình, key nên được đặt ở dạng chuỗi (bao quanh bởi cặp dâu nháy kép).

Value trong JSON: Chính là một kiểu đữ liệu Json hợp lệ Nó có thé tồn tại ở

các dạng khác nhau như array, object, chuôi hoặc boolean, Đôi khi Value còn có

thê là sô hoặc rông.

File json có thê được lưu với bất kỳ phần mở rộng nảo, tuy nhiên thông thườngthì nó được lưu dưới phân mở rộng là json hoặc js.

Trang 22

Có 2 cặp key-value ở đây đó là: email va password là key; user@example.com, string là values trong ví dụ.

XML là từ viết tắt của từ Extensible Markup Language là ngôn ngữ đánh

dau mở rộng XML có chức năng truyền dit liệu và mô tả nhiều loại dit liệu khácnhau Tác dụng chính của XML là đơn giản hóa việc chia sẻ đữ liệu giữa các nền tảng

và các hệ thống được kết nối thông qua mạng Internet

XML dùng dé cấu trúc, lưu trữ và trong trao đổi dữ liệu giữa các ứng dụng Vi

dụ khi ta xây dựng một ứng dụng băng Php và một ứng dụng băng Java thì hai ngôn

ngữ này không thé hiểu nhau, vì vậy ta sẽ sử dụng XML dé trao đổi dit liệu Chính vì

vay, XML có tác dụng rat lớn trong việc chia sẻ, trao đôi dữ liệu giữa các hệ thông

trên các nên tảng khác nhau.

2.2.3 HTTP/HTTPS

HTTP là giao thức truyền tải siêu văn bản (HyperText Transfer Protocol), dựatrên giao thức TCP/IP nó cho phép lay về các tài nguyên ví dụ như HTML, video,

ảnh

HTTP là nền tảng dùng dé trao đổi dữ liệu cho các ứng dụng Web với mô hình

Client/Server HTTP Request được tạo bởi client (thường là các trình duyệt Web như

10

Trang 23

Chrome, Firefox ) được gửi đến server HTTP, server sẽ gửi lại dir liệu (responsehay HTTP Response) để client nhận được Các request, response là các message cócấu trúc đơn giản gọi chung nó là các HTTP Message.

Sự đơn giản của HTTP Message thể hiện ở chỗ nó có thể đọc được mà khôngnhất thiết phải có công cụ phân tích riêng biệt, nó giảm đi sự phức tạp khi phát trién,kiểm tra ứng dung [16]

Ứng dụng truyền tải giữa client và server qua HTTP Điểm chung của loại ứng

dụng web này là giao diện người dùng được server sinh ra va gửi cho trình duyệt qua

giao thức HTTP Tuy nhiên hiện nay rất phổ biến các loại ứng dụng trong đó phangiao diện người dùng là một ứng dụng độc lập chạy trên một thiết bị khác và tương

tác với ứng dung server qua các giao thức HTTP [17].

Asynchronous request via HTTP

SPA web application

Response: partial page data as JSON or XML

Hình 2.7: Mô hình hoạt động của web API

Phần giao diện người dùng được gọi là Client Client rất đa dạng, bao gồm ứng

dụng đơn trang SPA (Single-Page Application) chạy trong trình duyệt, ứng dụng

11

Trang 24

desktop truyền thống, ứng dụng mobile Thậm chí một ứng dụng web khác cũng cóthể trở thành client.

Ứng dụng đơn trang (Single-Page Application, SPA): thành phần client chạy

trên trình duyệt và được xây dựng hoàn toàn băng Javascript Thành phần server gửicho trình duyệt mã JavaScript một lần lúc trình duyệt truy xuất ứng dụng Sau đó SPA

và server chỉ còn trao đổi dữ liệu qua HTTP ở dạng JSON hoặc XML

Ung dụng mobile: do đặc thù của thiết bi di động, việc xử lý và lưu trữ dữ liệucủa các loại ứng dụng này thường không được thực hiện ngay trên thiết bị Thay vào

đó, chúng được thưc hiện trên một server Ứng dụng mobile cùng truy xuất servertheo cách tương tự như ứng dụng đơn trang SPA sử dụng giao thức HTTP.

Ứng dụng desktop: Loại ứng dụng triển khai theo mô hình này tiện lợi trongmạng cục bộ và thậm chí có thể hoạt động qua Internet Server được xây dựng bằngASP.NET CORE được gọi là Web API API Web cung cấp dit liệu, chủ yếu ở dạngJSON va XML cho Client Web API cung cấp một loạt URL mà client có thé sử dụng

dé truy xuất hoặc thay đồi dữ liệu server qua giao thức HTTP

Một điểm đặc biệt là cùng một Web API có thể đồng thời được sử dụng chođơn trang SPA, mobile, desktop và các ứng dụng khác Điều này khiến cho Web API

trở nên phô biên và vô cùng quan trọng cho các hệ thông hiện đại.

Web API có thé triển khai song song với một ứng dụng Web hoặc có thé hoạt

động hoàn toàn độc lập phục vụ các ứng dụng client khác nhau Web API thường sở

hữu vô số ưu điểm vượt trội tương tự như của REST API (giới thiệu ở phần 2.2.5),nhờ vậy giúp nó nhận được nhiều hơn sự tin tưởng từ nhiều nhà phát triển và nhà lập

trình website Các ưu điểm nồi bật ma Web API sở hữu sẽ 1a:

« Dé viết, dễ tin chỉnh, hơn so với framework WCF (Windows Communication

Foundation), Web service trước đây.

« H6 trợ nâng cao trải nghiệm người dùng nhờ giao diện người dùng rat thân

thiện.

« _ Hỗ trợ tốt mọi tính năng cũng như thành phan của HTTP

« _ Có khả năng bảo mật cao, xác nhận được 2 chiều ngay khi có request

„ _ Các dữ liệu trả về luôn ở nhiều định dạng khác nhau vi du XML, JSON

12

Trang 25

Sẽ được cung cấp nhiều loại ứng dụng người dùng khác nhau từ ứng dụng nền web

cho đến những phần mềm của desktop.

2.2.5 REST API

; REST hay ReST (REpresentational State Transfer) là một dang chuyên đổi

câu trúc dữ liệu được đê xuât bởi Roy Thomas Eielding vào năm 2012 [18].

Dynamic Android Desktop iPhone JavaScript

Web App App Application App Web App

Hinh 2.8: REST API

Hình 2.8 là sơ đồ cho thay REST là một kiêu kiến trúc được sử dung trong

việc giao tiép giữa các máy tính (máy tính cá nhân và may chủ của trang web) trong việc quản lý các tài nguyên trên Internet.

REST được sử dụng rất nhiều trong việc phát triển các ứng dụng Web Services

sử dụng giao thức HTTP trong giao tiếp thông qua mạng Internet Các ứng dụng sử

dụng kiến trúc REST này thì sẽ được gọi là ứng dụng phát triển theo kiêu RESTful.

2.2.6 Cách hoạt động REST API

REST gửi một yêu cầu dạng HTTP có phương thức như GET, POST, PUT,DELETE, đến một URI đề xử lý dit liệu

PHƯƠNG THỨC Mô tả

POST Tạo mới một Resource

13

Trang 26

GET Trả về một Resource hoặc một danh sách Resource

PUT Cập nhập, thay thế thông tin cho Resource

DELETE Xóa một Resource

Bảng 2.1: Các phương thức của REST API

Port 4 gọi endpoint và cung cấp

yêu cầu http dưới dạng

POST F————**‡ Create

GET ' —= 7 | Read

PUT/PATCH FT > Update

Delete > Delete

Hình 2.10: Cách hoạt động REST API

Hình 2.10 cho biết những phương thức hay hoạt động này thường được gọi

là CRUD tương ứng với Create, Read, Update, Delete — Tao, Doc, Sửa, Xóa Mỗi

phương thức trên phải được API gọi thông qua dé gửi chỉ thị cho server phải làm gì

2.2.7 API Host va Base URL

REST APIs có một URL co sở ma các đường dẫn điểm cuối được nối

vao(endpoint) Đường url này được định nghĩa bởi schema, host, basePath.

14

Trang 27

¢ Schema là giao thức truyền được API sử dung Swagger hỗ trợ 2 giao thức

là http và https

e host là tên miễn hoặc địa chi IP (IPv4) của máy chủ lưu trữ cung cap API Nó

có thé bao gồm số công nếu khác với công mặc định của lược đồ (80 cho HTTP

và 443 cho HTTPS) Lưu ý rằng đây chỉ phải là máy chủ lưu trữ, không có

http (s): // hoặc đường dẫn phụ (ví dụ 93.184.216.34, 93.184.216.34:8089).

¢ _ basePath là tiền tố URL cho tat cả các đường dan API, liên quan đến gốc máy

chủ Nó phải bắt đầu bằng một dau gạch chéo ( /) Nếu basePath không đượcchỉ định, nó sẽ mặc định là ( /), nghĩa là, tất cả các đường dẫn đều bắt đầu từmáy chủ gốc(cho ví dụ )

Tất cả các API đều có chung cấu trúc Base URL này

Vi dụ:

<scheme>://<host>/<basePath>/users.

B Host wane

2.3 Swagger

2.3.1 Cơ bản về Swagger

Như chúng ta biết hiện nay việc phát triển các ứng dụng hay hệ thống đều cần

sử dụng đến một thứ không thể thiếu là API Nó là các phương thức, giao thức kết nối

với các thư viện và ứng dụng khác [19].

Vậy nên chúng ta luôn cần một Tài liệu hướng dẫn API, nó chứa tất cả các

thông tin được yêu câu đê có thê làm việc với API, với thông tin chi tiệt vê các tài

15

Trang 28

nguyên, phương thức, các request và response, thông tin chứng thực, được hỗ trợbởi các hướng dẫn và ví dụ Một công cụ rat phố biến hiện nay dé giúp làm một Tàiliệu hướng dẫn API đó là Swagger.

2.3.2 Swagger là gì

Swagger là một bộ công cụ mã nguồn mở đề xây dựng OpenAPI specificationsgiúp chúng ta có thê thiệt kê, xây dựng tài liệu và sử dụng REST APIs Swagger cung cap 3 công cụ chính cho các developers :

+ Swagger- Editor : dùng dé thiết kế lên các APIs hoàn toàn mới hoặc chỉnh

sửa lại các APIs có săn thông qua một file config.

« Swagger- Codegen : dùng dé tạo ra code từ các file config có sẵn

«Ổ Swagger- UI: dùng để tạo ra file html,css, từ một file config

Trong các tools trên, Swagger UI được sử dung nhiều nhất, nó giúp sinh ra

giao diện cho tải liệu từ file config dưới chuẩn OpenAPI Giao diện được hiện ra rõ

ràng và tường minh Dễ dàng đọc hiểu cho cả lập trình viên lẫn người dùng Sử dụngfile config nhưng hoàn toan tách biệt tác vụ với nhau.

2.3.3 Cấu trúc cơ bản của Swagger

Đầu tiên một file swagger có thể viết bằng JSON hoặc YAML

Ví dụ:

swagger: "2.0"

info:

title: Sample API

description: API description in Markdown.

Trang 29

/users:

get:

summary: Returns a list of users.

description: Optional extended description in Markdown.

Vi dụ cho thay được từng phan của swagger được chia làm 4 phan:

¢ Metadata: Moi thông sô kỹ thuật của Swagger đều bắt đầu với mỗi phiên bản

của một Swagger Phiên bản Swagger xác định cau trúc tổng thé của đặc ta

API - những gì có thé ghi lại và cách bạn ghi lại nó Ngoài ra các thông tin chi

tiết như tiêu đề, mô tả hay phiên bản của bản api hiện tại cũng được khai báo

tại đây.

¢ Base Url: Nơi bạn sẽ định nghĩa host của server, đường dẫn cơ bản cũng như

giao thức https hoặc http.

¢ Consumes, Produces: xác định các loại mime-types được API hỗ trợ.

« Paths: xác định các điểm cuối riêng lẻ (đường dẫn) trong API và các phương

thức HTTP (hoạt động) được hỗ trợ bởi các điểm cuối này Và đây là phần quan trọng chứa thông tin API sẽ như thế nào bằng đường dẫn API, phương thức (GET, POST, PUT ), request (query, path, body ), response API.

2.3.4 Công dụng của Swagger

Swagger sẽ hỗ trợ các chú thích giúp cho ứng dụng có thé mô tả duoc cácRESTAPI, và đồng thời xây dựng một giao diện giúp người dùng có thé tương táctrực tiếp với các REST API đó

Và đối với mỗi API có thể biết được đữ liệu yêu cầu và đữ liệu trả về củachúng cũng như những status có thé trả về của API này

17

Trang 30

2.4 Postman

Postman là một loại công cụ cho phép người dùng có thé thao tác với API, mà

trong đó phô biến nhất là REST Với thử nghiệm API thì Postman là một trong những

công cụ phô biến vì được thực nghiệm nhiều nhất Nhờ Postman lập trình viên có thêgọi Rest API mà không cần phải viết bat kỳ dong code nào

Postman có khả năng hỗ trợ mọi phương thức HTTP bao gồm: POST, PUT,

DELETE, PATCH, GET,

Ngoài ra, Postman còn cho phép lập trình viên lưu lại lịch sử của các lân request nên vô cùng tiện lợi cho nhu câu sử dụng lại.

2.4.1 Lợi ích sử dụng Postman

Hiện nay Postman được sử dụng rộng rãi nhờ mang lại những lợi ích như:

Postman sử dụng Collection nên người dùng có thé tạo bộ sưu tập cho nhữnglệnh gọi API của họ Mỗi một bộ sưu tập đều có thé tao ra thư mục con vớinhiều request Đây là điểm mạnh giúp quá trình tổ chức các bộ thử nghiệmđược dễ dàng hơn.

Trong Postman Collections và environment sẽ được import hoặc export giúp

người dùng có thé chia sẻ tệp dé dang hơn Ngoài ra, các liên kết trực tiếp

cũng có thể được sử dụng với mục đích chia sẻ bộ sưu tập.

Postman có khả năng test trạng thái phản hồi của HTTP.

Hỗ trợ gỡ lỗi: Bộ phận bảng điều khiển của Postman có thé giúp bạn kiểm

tra dit liệu đã xuất Từ đó, quá trình gỡ lỗi sẽ trở nên dé dàng và linh hoạt hơn.

Hỗ trợ tạo thử nghiệm: Những điểm kiểm tra thử nghiệm và xác định trạngthái phản hồi HTTP thành công Và vai trò xác nhận có thể được thêm vàomỗi lệnh gọi API nhằm đảm bảo phạm vi kiểm tra

Thông qua quá trình sử dụng bộ sưu tập và newman sẽ đảm bảo các kiểmthử sẽ chạy được trong những lần lặp lại Từ đó, tiết kiệm thời gian cho cácthử nghiệm có thể lặp đi lặp lại

Tích hợp liên tục: Postman có khả năng hỗ trợ tích hợp liên tục cho các hoạt

động phát triển và có thé được duy trì

2.4.2 Chức năng chính của Postman

Các chức năng chính của Postman bao gồm:

Cho phép gửi HTTP Request với method GET, POST, PUT và DELETE.

18

Trang 31

Người dùng có thê post dữ liệu dưới dạng text, form, json

Kết quả hiện về và trả về sẽ dưới dạng hình ảnh, text, XML, JSON,

Nền tảng NET 5 hợp nhất để xây dựng các ứng dụng chạy trên tất cả các nền tảng

(như Windows, Linux) và các thiết bi(nhu IoT, Mobile)

NET — A unified platform

MOBILE MỊN IaT A o¢)

VISUAL STUDIO

VISUAL STUDIO FoR MAC

4)

VISUAL STUDIO CODE

COMMAND LINE INTERFACE

triển trên nhiều hệ điều hành khác nhau bao gồm Windows, Linux, macOS, 1OS,Android, tvOS, watchOS, WebAssembly và hơn thế nữa .NET 5 sẽ được hỗ trợ bởi

Visual Studio 2019, Visual Studio cho Mac và Visual Studio Code.

2.6 Internet Information Services (IIS)

2.6.1 IISlà gì

Microsoft Internet Information Services (máy chủ web Windows) là các dịch

vụ dành cho máy chủ chạy trên nên Hệ điêu hành Window nham cung cap va phân

19

Trang 32

tán các thông tin lên mạng, nó bao gồm nhiều dịch vụ khác nhau như Web Server,

FTP Server [20].

IIS hỗ trợ xuất ban nội dung website thông qua HTTP Sau khi thiết kế website,

có thê dùng HS đê xuât bản nó lên Internet và băt đầu quá trình tương tác với người

dùng Nếu bỏ qua quy trình nay, website chỉ có thé chia sẻ trong tệp nội bộ và xemtrên một máy tính.

[File] View Hap

Cotsen bce _ Aeticen

# DESKTOP-PIGIGVI Home

at _| | Manage Server

v ay #SETLP- GIG |DESETOP- 1 (PF Filter 5 Ga Show All | Group by: Aree

} Appkcabon Pools —— E —_ — — =—

~ lãi Sites ASP.NET a A "

@ Default Web See 4 ¬ £

@ than Ar 3 & we “ : sh

NET NET NET Error NET NETTust Applicstion Connection

Autherual Cempation Pages GinhalissHe Levels att naps trai

AIP Pal hệ premio Dạlsu# Fated

Jecume 8 sụzerl Tra

— - về

Hình 2.13: Giao diện IIS

2.6.2 Cac phiên bản khác nhau IIS

IIS ban đầu tiên được phát triển nhằm giúp Microsoft xử lý lượng truy cập vào

website Microsoft.com, khi đó web server ma Microsoft.com đang dùng là EMWAC

không thê thực hiện được IIS bản đầu tiên (1.0) phát hành dưới dạng một add-on

miễn phi cho Windows NT 3.51.

Đến nay, IS đã ra mắt đến phiên ban 10 (không có IIS 9, cũng giống như

Windows) Có thê kê đên một sô phiên bản nôi bật như:

Phiên ban IIS 3.0, được phát hành trong gói Service Pack 2 của Window NT 4.0 vào năm 1996, lân đâu tiên giới thiệu Active Server Pages (hay ASP).

Active Server Pages (ASP) là một ngôn ngữ kịch bản server-side (server-side

scripting language) va là một bộ engine cho các trang web động (Dynamic web page) Đến tháng 01 năm 2002, ASP được thay thế bởi ASP.NET

Phiên bản HS 6.0 được tích hợp trong Windows Server 2003 và Windows XP

Professional x64 Edition, bat dau hồ trợ IPv6 và những cải tiên vê bao mật.

20

Trang 33

Phiên ban IIS 7.0 tích hợp trong Windows Vista và Windows Server 2008 IIS 7.0 là một bản thiết kế lại khác với các bản trước kia, bắt đầu bằng việc sử dụng cau

trúc module Cấu trúc module giúp các thành phần trong IIS 7.0 hoạt động tách rời

nhau nhằm nâng cao hiệu năng; đồng thời, giúp nhà phát triển có thé viết thêm các

phan add-on dé tích hợp vào bên trong IIS dé dàng hơn Ngoài ra, IIS 7.0 giới thiệu

một chương trình quản lý dưới dạng Windows Forms, một lựa chọn quản lý băng

dòng lệnh (comment-line management) và nâng cao kha năng tương thích với Framework NET.

Tất cả các phiên bản trước 7.0 chỉ hỗ trợ 10 kết nối đồng thời và một trang

web duy nhất.

Phiên bản IIS 10.0 được tích hợp trong Windows 10, Windows Server 2016

và Windows Server 2019, hỗ trợ giao thức HTTP/2, hỗ trợ chạy IIS trên Nano Server(một dạng hệ điều hành tối giản của Windows 10 và Window Server 2016/2019), hỗ

trợ container,

2.6.3 Công dụng của IIS

Nó có thể được sử dụng để xuất bản nội dung của các trang Web lên Internet/Intranet bằng việc sử dụng “Phương thức chuyển giao siêu văn bản” Hypertext Transport Protocol (HTTP) Bên cạnh đó IIS còn có các công dụng như:

« - Xuất bản một Website của bạn trên Internet

e Tao các giao dịch thương mại điện tử trên Internet (hiện các catalog và nhận

được các đơn đặt hàng từ nguời tiêu dùng)

« Chia sẻ file dữ liệu thông qua giao thức FTP.

« Cho phép người ở xa có thê truy xuất database của bạn (gọi là Database remote

access).

« IIS hỗ trợ một số loại xác thực như Basic access authentication, Digest access

authentication, Windows Authentication, Certificate authentication, ; các

tính năng bao mật khác bao gồm hỗ trợ SSL/TLS, Server Name Indication(SNI), thiết lập bảo mật cho máy chủ FTP,

« V6i thiết kế dạng module, việc mở, tắt và cài ¡ đặt một số tính năng để đáp ứng

nhu cầu của người sử dụng cũng như tối ưu hiệu năng và bảo mật cho web server được đáp ứng.

2.6.4 IIS và các Server khác

Một trong những ưu điểm của IIS so với các web server khác là IIS được pháttriển bởi Microsoft, nên một số tính năng của Windows sẽ đi kèm luôn trong IIS (nhưWindows Authentication kể ở trên, ) Vì vậy, IS là web server hỗ trợ rất tốt trong

21

Trang 34

các ngôn ngữ hay framework được phát triển bởi Microsoft như ASP.NET hayframework NET Nhưng nhược điểm của IIS là chỉ chạy được trên Window.

2.6.5 Cách IIS hoạt động

IS sử dụng các giao thức mạng phổ biến là HTTP và FTP (File Transfer

Protocol) dé tiếp nhận yêu cau và truyền tải thông tin trên mạng với các định dang khác nhau.

Một trong những dich vụ phô biến nhất của IIS mà chúng ta quan tâm trong

giáo trình này là dịch vụ WWW (World Wide Web), nói tắt là dịch vụ Web.

Dịch vụ Web sử dụng giao thức HTTP để tiếp nhận yêu cầu (Requests) của

trình duyệt Web (trình duyệt Web) dưới dang một dia chỉ URL (Uniform Resource

Locator) của một trang Web va IIS phản hồi lại các yêu cầu bang cách gửi về choWeb browser nội dung của trang Web, tương ứng như mô tả trong hình 2.14.

Trang 35

Chương 3 THIẾT KE VÀ HIỆN THUC DE TÀI

3.1 Tổng quan về thư viện API

Được xây dựng trên nên tảng NET thư viện API cung cấp các hàm dùng détạo tài khoản người dùng, truy xuất thông tin người dùng hoặc truy xuất thông tin

của chuyên gia Thông qua các giao thức HTTP/HTTPS, và truyền dữ liệu dưới

dưới dạng JSON hoặc XML Bên cạnh đó, thư viện còn sử dụng một sỐ kỹ thuật

nhằm bảo mật tài khoản người dùng

3.2 Vai trò của API trong hệ thống

om

Ï

Chuyên gia Nông nghiép Nha nông

AFI

Cơ sở dữ liệu Hệ thông phan tích

Hình 3.1: Vai trò API trong hệ thống

Sơ đồ trong hình 3.1 cho thay được vai trò của API trong hệ thống của nông

nghiệp chính xác Khi người nông dân gửi các request từ giao diện người dùng là các

hình ảnh lá cây bệnh (cây cà chua) đến server dé phân tích va trả lại kết quả API đảm

nhiệm việc chuyền giao các request và reponse đi khắp hệ thống Có thé nói API là

câu nôi các thành phân bên trong hệ thông lại với nhau.

23

Trang 36

3.3 Một số kỹ thuật được sử dụng

3.3.1 Token

Bảng 3.1 giải thích token là gì:

Token Chuỗi được mã hóa Là chuỗi kết hợp của userld và SECRET KEY

do mình tự tạo Sau đó mã hóa, cho ra giá tri

value

Bảng 3.1: Định nghĩa token

Token bao gồm những thành phan: userld (danh tính duy nhất của ngườidùng), thời gian (dấu thời gian của thời gian hiện tại), ký hiệu (chữ ký, một vài chữ

số đầu tiên của token được nén thành một chuỗi thập lục phân có độ dài nhất định

bằng thuật toán Hashing hay còn gọi là băm)

3.3.2 Dinh nghĩa JSON Web Token

JSON Web Token (JWT) là một tiêu chuẩn mở (RFC 7519), định nghĩa cách

thức truyền tin an toàn giữa các ứng dụng bằng một đối tượng JSON Dữ liệu truyền

đi sẽ được mã hóa và chứng thực, có thể được giải mã để lay lai thông tin va đánh

dau tin cậy nhờ vào “chữ ký” của nó Phan chữ ky của JWT sẽ được mã hóa lạibăng HMAC hoặc RSA

JWT có hai đặc điểm:

« Gonnhe (compact): JWT có thé được truyền đi thông qua URL, hoặc qua giao

thức POST, hay gán vào bên trong phần HTTP Header Kích thước nhỏ hơn

ứng với công việc truyền tải sẽ nhanh hơn

¢ Tu đóng gói (self-contained): Payload của JWT đã chứa các thông tin cần thiết

về user (thay vì phải truy van cơ sở dit liệu nhiều lần)

JWT gồm 3 thành phần:

e Header

24

Ngày đăng: 03/11/2024, 18:02