CHƯƠNG 4 : TRIỂN KHAI HỆ THỐNG
4.1. Các bước triển khai lên hệ thống máy chủ
Cài đặt hệ thống lên máy chủ sẽ được triển khai trên một máy chủ riêng biệt trong hệ thống mạng. Máy chủ này sử dụng hệ điều hành ubuntu 20.04.1 LTS
Cấu hình máy chủ:
Hình 4.1: Hình ảnh cấu hình máy chủ
Quá trình cài đặt Ứng dụng như sau (trong hướng dẫn dưới, câu lệnh được chạy dưới quyền người dùng thơng thường có dấu $ đứng trước, câu lệnh cần quyền root sẽ có dấu # ở đầu).Backend được xây dựng trên framework Laravel, được cấu trúc dựa trên docker để tối ưu cho việc triển khai cũng như cài môi trường. Source code backend cũng đã được tích hợp sẵn GAMA kèm theo môi trường chạy java là JDK.
62 Cài đặt các gói tin cần thiết để triển khai Cài đặt docker và docker-compose
$ sudo apt update
$ sudo apt install apt-transport-https ca-certificates curl software-properties-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository "deb [arch=amd64]
https://download.docker.com/linux/ubuntu focal stable" $ sudo apt install docker-ce
$ sudo usermod -aG docker ${USER} $ su - ${USER}
$ sudo groupadd docker
$ sudo gpasswd -a $USER docker $ curl -SL https://github.com/docker/compose/releases/download/v2.2. 3/docker-compose-linux-x86_64 -o ~/.docker/cli- plugins/docker-compose $ chmod +x ~/.docker/cli-plugins/docker-compose Cài đặt nodejs
$ sudo apt install nodejs
$ sudo npm install -g npm@latest
Cài đặt source code BE:
$ sudo git clone https://gitlab.com/namtranpt00/gamabe.git $ cd gamabe/ $ unzip GAMA.zip $ vim .env $ docker-compose build $ docker-compose up –d $ chmod –R 755 vendor/ $ chmod –R 755 storage/
Cài đặt source code FE:
$ git clone https://github.com/leanhduc123/gamma_fe.git $ npm install
$ sudo npm start&
Sau khi triển khai source code trên máy chủ, ứng dụng backend chạy ở cổng 8080, và front-end chạy ở cổng 80. Cấu hình nginx để người dùng có thể truy cập từ mạng internet.
63 server {
listen 80; ## listen for ipv4; this line is default and implied root /var/www/public;
index index.php index.html index.htm; server_name _; client_max_body_size 2G; fastcgi_read_timeout 600; proxy_read_timeout 600; proxy_connect_timeout 600; proxy_send_timeout 600; client_header_timeout 600; client_body_timeout 600; gzip on; gzip_min_length 10240;
gzip_proxied expired no-cache no-store private auth; gzip_types text/plain text/css text/xml application/json text/javascript application/x-javascript application/xml; gzip_disable "MSIE [1-6]\.";
location / {
try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass php:9000; fastcgi_index index.php; include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info;
} location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ { expires 5d; } location ~ /\. { log_not_found off; deny all; } } fastcgi_read_timeout 300;
64
Ứng dụng cũng được gán domain asfsim.fimo.edu.vn cho máy chủ. Ta được sản phẩm hồn thiện đã được triển khai thành cơng tại địa chỉ: https://asfsim.fimo.edu.vn/
4.2. Kết quả và tính năng cơ bản
Hình 4.2: Giao diện màn hình đăng nhập
Hình 4.3: Giao diện màn hình chính
65
Tải lên tập mã nguồn của mô phỏng, hiện tại ứng dụng chỉ hỗ trợ dạng file zip.
Hình 4.4: Màn hình tải lên mã nguồn mơ phỏng
Tải lên các file đơn lẻ, hiện tại ứng dụng hỗ trợ tải lên các file có định dạng file như csv, gaml, jpg, jpeg, png.
Hình 4.5: Màn hình tải lên file mã nguồn đơn lẻ
66
Hình 4.6: Màn hình xố mã nguồn mơ phỏng
Hiển thị màn hình nhập thơng số khởi chạy mơ phỏng
67
Hiển thị kết quả của lần chạy gần nhất Lưu lại thay đổi của file
Dừng lại khung hình đang chạy Tiếp tục phát khung hình
Quay lại chạy từ khung hình đầu tiên
68
CHƯƠNG 5: KẾT QUẢ VÀ ĐÁNH GIÁ 5.1. Tiến hành mô phỏng sản phẩm trên nền tảng website 5.1. Tiến hành mô phỏng sản phẩm trên nền tảng website
Sau khi người dùng đăng nhập hệ thống, ta tiến hành upload source code dự án dưới dạng file nén như khi ta tiến hành mơ phỏng ở gama desktop.
Hình 5.1: Hình ảnh màn hình đăng nhập
Sau khi upload xong người dùng có thể thêm sửa xố các file, nội dung file ngay trên giao diện người dùng.
69
Người dùng có thể tiến hành chạy mô phỏng chỉ cần thông qua những thao tác đơn giản, khi tiến hành bắt đầu mơ phỏng nguời dùng có thể thiết lập các tham số tuỳ chỉnh.
Hình 5.3: Người dùng nhập các tham số mơ phỏng
70
Hình 5.4: Hình ảnh kết quả đầu ra màn hình Main_display
71
Hình 5.6: Hình ảnh kết quả đầu ra màn hình CFI_comparison
72
Hình 5.8: Hình ảnh kết quả đầu ra màn hình Weight_display
73
Hình 5.10: Hình ảnh kết quả đầu ra màn hình Pig_display
Người dùng có thể tải kết quả mơ phỏng về máy dưới dạng video mp4 với tuỳ chọn fps.
Hình 5.11: Màn hình tải về kết quả mơ phỏng
74
5.2. Kết quả và so sánh:
So sánh tốc độ mơ phỏng, hiệu năng tiêu thụ giữa mơ hình thực thi trên ứng dụng GAMA và mơ hình thực thi trên ứng dụng điện tốn đám mây,tơi đưa ra các tiêu chí đánh giá:
- Đánh giá qua 2 mơ hình mơ phỏng khác nhau: Mô phỏng đơn cá thể lợn: 5070.gaml
Mô phỏng máng lợn cho đàn lợn: Emulator.gaml
- Đánh giá sẽ được tính kết quả trung bình qua 3 lần, mỗi lần cách nhau 5 phút. Đối với mơ phỏng qua ứng dụng điện tốn đám mây, kết quả sẽ được đi kèm với tốc độ mạng ngay trước khi tiến hành mô phỏng. Tốc độ mạng được đo bởi công cụ https://www.speedtest.net/
- Thơng số cấu hình khi tiến hành mơ phỏng trên ứng dụng đám mây: framerate: 1
cycle: 1 ( với mô phỏng đơn cá thể), 100 ( với mô phỏng máng lợn)
75
Hình 5.14: Cấu hình phục vụ kiểm thử hiệu năng đối với máng lợn thông minh
Kết quả:
So sánh thời gian:
Lần 1 Lần 2 Lần 3
Gama Web Gama Web Gama Web
Mô phỏng đơn cá thể 2s 51.85mbps 5.93s 2s 42.65Mbps 8.61s 2s 42.31Mbps 7.42s Mô phỏng máng lợn 174s 52.71Mbps 102s 182s 45.15Mbps 102s 175s 50.13Mbps 102s
Có thể thấy rõ ràng tốc độ khi mơ phỏng qua website có tốc độ chậm hơn đáng kể. Ví dụ như với mơ phỏng chỉ có 1 khung hình thì khi chạy mơ phỏng trên máy kết quả được cho ra tức thì chỉ khoảng 1 đến 2 giây. Tuy nhiên với cùng cấu hình khi thực
76
thi qua ứng dụng website thì với mơ hình đơn giản lại mất trung bình từ 6 đến 8 giây. Đối với mơ hình phức tạp với 100 khung hình thì mơ phỏng trên máy chỉ mất khoảng 1 đến 2 giây để mã nguồn được biên dịch còn thời gian còn lại là thời gian hiển thị kết quả theo từng khung hình từ số 1 đến 100, suy ra tổng thời gian trung bình khoảng 102s là đã hiển thị hết quá trình mơ phỏng. Kết quả thu được khi chạy trên nền tảng website là trung bình 175 giây ( chưa bao gồm 100 giây để hiển thị chạy tuần tự 100 khung hình ).
So sánh tiêu thụ tài nguyên ( chỉ xét với trường hợp mô phỏng với thời gian dài, ở đây là trường hợp mơ phỏng cả đàn lợn )
77
Hình 5.16: Hình ảnh đo đạc tài nguyên máy chủ khi chạy ứng dụng web
Nhận xét:
Khi tiến hành mô phỏng trên cả GAMA desktop và website, mức tiêu thụ CPU cao nhất khoảng đều đạt khoảng trên 90%, tuy nhiên với GAMA desktop hiệu năng tối đa của CPU chỉ kéo dài khoảng 5 giây trong khi với mơ phỏng qua website thì thời gian này tương ứng là 15 giây. Mức tiêu thụ RAM khi mơ phỏng GAMA desktop thì cao hơn với mơ phỏng qua website khoảng 10%.
Kết luận chung: Nếu so sánh về cả hiệu năng và tài nguyên tiêu thụ, dễ dàng thấy rằng mô phỏng trên ứng dụng GAMA cho ra tốc độ nhanh và quản lý tài nguyên đều tốt hơn khi chạy mô phỏng qua ứng dụng web, mà về bản chất là thực thi qua GAMA headless.
5.3. Thử nghiệm mở rộng khả năng mô phỏng với các mã nguồn khác:
Để kiểm tra tính khả thi có thể dễ dàng tương thích với nhiều mã nguồn mô phỏng dựa trên nền tảng GAMA của hệ thống, tôi đưa ra phương án kiểm thử: Tải lên mã nguồn mơ hình lan toả dịch bệnh tả lợn châu phi do các thành viên trong nhóm nghiên cứu của TS. Phạm Mạnh Linh nghiên cứu. Tiến hành mô phỏng trên nền tảng website và nhìn nhận kết quả.
78
Hình 5.17: Hình ảnh mã nguồn mơ phỏng dịch tả lợn Châu Phi được upload thành công
79
Hình 5.19: Kết quả màn hình myDisplay mơ phỏng dịch bệnh
80
Hình 5.21: Kết quả màn hình myDisplay1 mơ phỏng phần trăm trang trại bị nhiễm bệnh
Kết luận:
Đối với 1 mã nguồn mới, hệ thống vẫn có thể xử lý và thực hiện được q trình mô phỏng tương tự với mô phỏng máng lợn thông minh. Với 1 mã nguồn mới người dùng có thể không nắm được logic cũng như các tham số nhưng hệ thống đã có tính năng tự động qt và tìm ra các tham số cũng như tên của mơ phỏng giúp tạo điều kiện thuận lợi cho người sử dụng khi tiếp xúc với 1 mã nguồn mới hoặc tránh các lỗi sai chính tả dẫn đến lỗi hệ thống.
81
CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Chúng ta có thể khẳng định rằng kỹ thuật chăn ni chính xác là một công cụ ngày càng quan trọng hỗ trợ người nông dân trong việc quản lý tất cả các khâu chăn ni. Nhu cầu đối với các sản phẩm có nguồn gốc động vật sẽ tiếp tục tăng theo sự gia tăng dân số thế giới, vì lý do này, các nghiên cứu sâu hơn sẽ là cần thiết để cải thiện chức năng của các cảm biến có trong trang trại. Trên thực tế, trong những năm gần đây, nhiều sự phát triển đã được thực hiện đối với các hệ thống hiện có nhờ sự phát triển của công nghệ và các nghiên cứu được thực hiện bởi các nhà nghiên cứu từ khắp nơi trên thế giới, làm cho các hệ thống này ngày càng chính xác và đáng tin cậy
Trong đồ án này, tôi đã phát triển một ứng dụng giả lập hệ thống máng ăn chính xác sử dụng nền tảng mơ phỏng GAMA, ứng dụng có giao diện thân thiện, thuận tiện cho người dùng, chạy được mơ phỏng với khả năng tối ưu hóa cao giúp cho mọi người hiểu về cách thức hệ thống máng ăn hoạt động. Trực quan hoá được các kết quả đầu ra, đầu vào, dễ dàng so sánh giữa các cá thể. Bên cạnh đó tơi cũng phát triển thêm hệ thống website cho phép người dùng có thể dễ dàng truy cập, sử dụng, xem lại kết quả mô phỏng mà không cần cài đặt ứng dụng hay yêu cầu gì đặc biệt.
Ưu điểm:
- Chương trình giả lập triển khai với tốc độ và hiệu năng tốt. Kết quả đầu ra trực quan và dễ so sánh.
- Ứng dụng đám mây thân thiện, dễ sử dụng, thuận tiện để sử dụng ở bất kỳ nơi đâu và không bị giới hạn bởi phần cứng từ máy cá nhân.
- Có thể xem kết quả mô phỏng gần nhất thay vì chạy đi chạy lại nhiều lần với cùng một tham số đầu vào.
- Có thể tải về kết quả file mô phỏng dưới dạng video, điều mà Gama desktop chưa có.
- Ứng dụng đám mây tương thích hầu hết với các mã nguồn GAMA, điều này cho phép khơng chỉ mã nguồn mơ phỏng máng lợn có thể truy cập từ website mà các dự án khác được xây dựng cùng trên nền tảng GAMA thì đều có thể sử dụng.
Nhược điểm:
Đối với chương trình mơ phỏng :
- Thời gian và kinh nghiệm còn hạn chế nên kết quà chưa được đầy đủ, ứng dụng cần được duy trì và nâng cấp hồn thiện để hệ thống được sử dụng rộng rãi.
82
- Khả năng chạy model chưa được tối ưu hóa một cách cao nhất - Chưa giải quyết được các vấn đề bên trên (Bộ nhớ cịn trống ít, ….) - Chưa mở rộng thêm được quy mơ chuồng trại.
Đối với ứng dụng điện tốn đám mây:
- Do thời gian và kinh nghiệm còn hạn chế nên ứng dụng vẫn còn chưa tối ưu, thời gian mô phỏng tốn nhiều thời gian.
- Vì dựa trên Headless mode của Gama, nên khơng thể can thiệp vào q trình mơ phỏng, người dùng phải chờ đến khi mơ phỏng chạy xong thì mới xem được kết quả.
- Ứng dụng vẫn chưa cung cấp đủ tính năng như Gamma desktop, nên quá trình phát triển mơ hình sẽ khó khăn hơn (ví dụ như hiển thị lỗi, debug, đưa ra cảnh báo, format code ….. )
Hướng phát triển:
Đối với chương trình mơ phỏng : - Mở rộng nguồn dữ liệu đầu vào
- Cải tiến giao diện chuồng trại cũng như các cá thể lợn bằng hình ảnh thực hơn thay vì các chấm hoặc hình chữ nhật khó quan sát và nhận biết
- Tìm ra cách đánh giá được đường cung mục tiêu CFI (Target CFI) để cho hiệu suất chăn ni lợn ngày càng cao
- Có thêm hệ thống phát hiện bệnh lý của từng con lợn để xử lý.
- Lợn sẽ được thêm các chức năng khác như ngủ, nghỉ ngơi, được tiêm phòng và đem đi cách ly trong chuồng cách ly, ....
Đối với ứng dụng điện toán đám mây:
- Có thể can thiệp vào q trình mơ phỏng, trả về kết quả nhanh mà không cần đợi lâu.
- Tối ưu khả năng phục vụ đa người dùng, tối ưu hóa thời gian trả về của API.
- Khả năng chia sẻ kết quả mô phỏng đến các tài khoản khác, cung cấp thông tin kịp thời để đưa ra các dự đốn chính xác về dịch bệnh.
- Nâng cấp giao diện để thân thiện với người dùng, ví dụ như tiệm cận với 1 IDE giúp người dùng dễ dàng sửa, thêm các nội dung trên file.
83
TÀI LIỆU THAM KHẢO Tài liệu các công nghệ, lý thuyết sử dụng:
[1] https://vi.tr2tr.wiki/wiki/Agent-based_model [2] https://gama-platform.org/wiki/Home [3] https://gama-platform.github.io/wiki/LearnGAMLStepByStep [4] https://laravel.com/docs/9.x [5] https://docs.docker.com/reference/ [6] https://docs.oracle.com/en-us/iaas/mysql-database/doc/getting-started.html [7] https://aws.amazon.com/getting-started/?ref=docs_gateway/index.html [8] https://docs.aws.amazon.com/s3/index.html [9] https://reactjs.org/docs/getting-started.html
Các bài báo tham khảo:
[10] https://suinicoltura.edagricole.it/tecnica/zootecnia-di-precisione-le-ultime-novita/ [11] https://www.cambridge.org/core/journals/animal/article/procedure-to-quantify- thefeed-intake-response-of-growing-pigs- toperturbations/99C20AFB65921C1CF245FD2EC6978CF4 [12] https://www.cambridge.org/core/journals/animal/article/modelling-the-feed- intakeresponse-of-growing-pigs-to-diets-contaminated-with- mycotoxins/88AFFBE974077DBB330E02F63CE7ED4B Đường dẫn các mã nguồn:
[13]. Back-end gitlab: https://gitlab.com/namtranpt00/gamabe [14]. Pig_CFI gitlab: https://gitlab.com/namtranpt00/PigCFI [15]. Front-end github: https://github.com/leanhduc123/gamma_fe