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 3THONG 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 4LỜ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 62.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 73.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 83.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 9DANH 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 10Hì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 11DANH MỤC BANG
Bảng 2.1: Các phương thức REST API
Trang 12DANH 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 13TOM 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 14Chươ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 161.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 17cá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 18Chuong 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 19Phâ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 20Trong 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 21Database
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 22Có 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 23Chrome, 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 24desktop 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 25Sẽ đượ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 26GET 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 28nguyê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 302.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 31Ngườ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 32tá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 33Phiê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 34cá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 35Chươ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 363.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