Nghiên cứu xây dựng hệ thống nền IoT dựa trên mã nguồn mở (Luận văn thạc sĩ)

64 847 5
Nghiên cứu xây dựng hệ thống nền IoT dựa trên mã nguồn mở (Luận văn thạc sĩ)

Đ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

Nghiên cứu xây dựng hệ thống nền IoT dựa trên mã nguồn mởNghiên cứu xây dựng hệ thống nền IoT dựa trên mã nguồn mởNghiên cứu xây dựng hệ thống nền IoT dựa trên mã nguồn mởNghiên cứu xây dựng hệ thống nền IoT dựa trên mã nguồn mởNghiên cứu xây dựng hệ thống nền IoT dựa trên mã nguồn mởNghiên cứu xây dựng hệ thống nền IoT dựa trên mã nguồn mởNghiên cứu xây dựng hệ thống nền IoT dựa trên mã nguồn mởNghiên cứu xây dựng hệ thống nền IoT dựa trên mã nguồn mởNghiên cứu xây dựng hệ thống nền IoT dựa trên mã nguồn mởNghiên cứu xây dựng hệ thống nền IoT dựa trên mã nguồn mởNghiên cứu xây dựng hệ thống nền IoT dựa trên mã nguồn mởNghiên cứu xây dựng hệ thống nền IoT dựa trên mã nguồn mở

i LỜI CAM ĐOAN Tôi cam đoan công trình nghiên cứu riêng tơi Các số liệu, kết nêu luận văn trung thực chưa cơng bố cơng trình khác Học viên Nguyễn Duy Thành ii LỜI CẢM ƠN Trước tiên, xin gửi lời cảm ơn sâu sắc đến thầy giáo PGS TS Hà Hải Nam - Phó viện trưởng Viện Khoa học Kỹ thuật Bưu điện Người tận tình hướng dẫn bảo tơi suốt q trình thực khóa luận Tơi đồng thời cảm ơn thầy cô Khoa Công nghệ Thơng tin I – Học viện Cơng nghệ Bưu Viễn thơng truyền đạt kiến thức bổ ích Tôi xin cảm ơn thầy cô Khoa Đào tạo Sau Đại học giúp đỡ trình làm luận văn Tôi xin chân thành cảm ơn gia đình tơi giúp đỡ để tơi có thời gian hồn thành khóa luận Cuối cùng, tơi xin chân thành cảm ơn anh chị, bạn bè bạn sinh viên giúp đỡ tơi q trình thu thập xử lý liệu Hà Nội, ngày 09 tháng 11 năm 2017 Học viên Nguyễn Duy Thành iii MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN ii MỤC LỤC iii DANH MỤC CÁC TỪ VIẾT TẮT v DANH SÁCH BẢNG vi DANH SÁCH CÁC HÌNH vii MỞ ĐẦU CHƯƠNG 1: GIỚI THIỆU VẤN ĐỀ NGHIÊN CỨU 1.1 Giới thiệu hệ thống IoT (IoT Platform) 1.1.1 Giới thiệu IoT 1.1.2 Giới thiệu hệ thống IoT 1.2 Nghiên cứu tổng quan yêu cầu hệ thống IoT 1.2.1 Quản lý thiết bị 1.2.2 Khả kết nối hai chiều linh hoạt 1.2.3 Phân tích liệu 1.2.4 Tính sẵn sàng, khả mở rộng, độ tin cậy 1.2.5 An ninh bảo mật liệu 1.3 Nghiên cứu, khảo sát, đánh giá hệ thống IoT thị trường 10 1.3.1 Kaa 10 1.3.2 OpenIoT 11 1.3.3 Nimbits 13 1.3.4 Eclipse IoT smart home 14 1.3.5 OpenRemote (HIT) 16 1.3.6 FIWARE 17 1.4 Kết luận 21 CHƯƠNG 2: THIẾT KẾ HỆ THỐNG NỀN IoT 22 2.1 Yêu cầu kiến trúc hệ thống IoT 22 2.2 Thiết kế kiến trúc hệ thống IoT 25 2.3 Một số vấn đề giải pháp thực hóa kiến trúc hệ thống IoT 27 2.4 Kết luận 32 CHƯƠNG 3: THỬ NGHIỆM HỆ THỐNG NỀN CHO BÀI TOÁN GIÁM SÁT MÔI TRƯỜNG TRỒNG TRỌT NÔNG NGHIỆP 33 3.1 Mô tả toán tử nghiệm 33 3.2 Thiết kế giải pháp thực hóa hệ thống IoT tảng ảo hóa 35 3.2.1 Eclipse Mostquitto 37 3.2.2 Apache Kafka 39 3.2.3 Apache Spark 44 3.3 Cài đặt, cấu hình tùy biến thành phần hệ thống IoT 46 iv 3.3.1 Cài đặt Mosquitto Server 46 3.3.2 Cài đặt Kafka Server 49 3.3.3 Cài đặt Spark 52 3.4 Kết luận 55 KẾT LUẬN 56 DANH MỤC TÀI LIỆU THAM KHẢO 57 v DANH MỤC CÁC TỪ VIẾT TẮT Viết tắt Tiếng Anh Tiếng Việt IoT Internet of Things Internet kết nối vạn vật API Application Programming Giao diện lập trình ứng dụng Interface RFID Radio Frequency Identification Nhận dạng đối tượng sóng vơ tuyến M2M Machine to machine Giao tiếp máy với máy RBAC Role-based access control Kiểm soát truy cập dựa vào vai trò SDK Software development kit Bộ phát triển phần mềm MQTT Message Queuing Telemetry Truyền thông điệp hàng đợi từ Transport xa SSO Single sign-on Đăng nhập lần MQTT Message Queuing Telemetry Transport ICT Information Communication Công nghệ thông tin truyền Technology thông vi DANH SÁCH BẢNG Bảng 2.1: Cấu trúc yêu cầu kiến trúc 22 Bảng 2.2: Yêu cầu tích hợp ứng dụng IoT 23 Bảng 2.3: Yêu cầu dịch vụ kết nối liệu 23 Bảng 2.4: Yêu cầu tích hợp liệu IoT 23 Bảng 2.5: Yêu cầu bảo mật 24 Bảng 2.6: Yêu cầu khả mở rộng độ sẵn sàng 24 Bảng 2.7: Yêu cầu khả thích ứng, độ linh hoạt linh động 25 vii DANH SÁCH CÁC HÌNH Hình 1.1 Các thiết bị kết nối Internet phát triển tương lai Hình 1.2 Chiều hướng giới thiệu Internet of Things Hình 1.3 Kiến trúc IoT theo khuyến nghị ITU-T Y.2060 Hình 1.4 Platform Kaa 10 Hình 1.5 Platform OpenIoT 12 Hình 1.6 Platform Nimbits 14 Hình 1.7 Platform Eclipse Smart Home 15 Hình 1.8 Platform OpenRemote 17 Hình 1.9 Platform FIWARE 19 Hình 2.1 Kiến trúc tham chiếu IoT với hạ tầng dịch vụ IoT 26 Hình 2.2 Mơ hình giải pháp cho thu thập xử lý liệu tin cậy 28 Hình 2.3 Mơ hình hoạt động hệ thống DMS 28 Hình 2.4 Kiến trúc hệ thống RBPS 29 Hình 2.5 Mơ hình triển khai DCS với DMS 30 Hình 3.1 Mơ hình tổng quan hệ thống thử nghiệm 35 Hình 3.2 Mơ hình triển khai hệ thống IoT 36 Hình 3.3 Mơ hình Publish/Subcribe giao thức MQTT 38 Hình 3.4 Mơ hình kết nối MQTT sử dụng Bridge 39 Hình 3.5 Mơ hình đọc/ghi liệu vào topic Kafka 41 Hình 3.6 Mơ hình Partition Kafka 42 Hình 3.7 Mơ hình Apache Kafka kết nối tới nguồn MQTT server 43 Hình 3.8 Thành phần Apache Spark 44 Hình 3.9 Mơ hình tổng quan Spark Streaming 45 Hình 3.10 Mơ hình xử lý luồng liệu Spark Streaming 45 Hình 3.11 Mơ hình Dstream 46 Hình 3.12 Cách xử lí liệu Dstream 46 MỞ ĐẦU Lý chọn đề tài: Hệ thống IoT (IoT Platform) thành phần cốt lõi kiến trúc tổng thể IoT Hệ thống IoT cung cấp công cụ phát triển sản phẩm, ứng dụng IoT cách thuận tiện nhanh chóng Hệ thống IoT đóng vai trò kết nối thiết bị, cảm biến, IoT gateway cho phép chúng trao đổi liệu với cách an toàn theo thời gian thực; quản lý số lượng lớn thiết bị kết nối; thu thập phân tích liệu; thiết lập khả liên động thiết bị; tạo dịch vụ đám mây cho ứng dụng IoT… Việc nghiên cứu, lựa chọn, làm chủ giải pháp mã nguồn mở cho hệ thống IoT đóng vai trò sống xây dựng, triển khai ứng dụng IoT Đề tài tập trung nghiên cứu xây dựng hệ thống IoT dựa giải pháp mã nguồn mở, với kết hệ thống IoT triển khai thử nghiệm để xây dựng ứng dụng IoT Mục tiêu nghiên cứu: Xây dựng làm chủ triển khai, tùy biến phát triển mở rộng hệ thống IoT dựa mã nguồn mở Áp dụng hệ thống xây dựng với toán thử nghiệm cụ thể Đối tượng phạm vi nghiên cứu: - Đối tượng nghiên cứu: Một số hệ thống IoT mã nguồn mở điển hình - Phạm vi nghiên cứu: Nghiên cứu xây dựng hệ thống IoT ứng dụng với toán thử nghiệm “Giám sát môi trường trồng trọt nông nghiệp” Phương pháp nghiên cứu Phương pháp nghiên cứu lý thuyết với thực nghiệm phân tích, đánh giá kết CHƯƠNG 1: GIỚI THIỆU VẤN ĐỀ NGHIÊN CỨU 1.1 Giới thiệu hệ thống IoT (IoT Platform) 1.1.1 Giới thiệu IoT Khái niệm IoT IoT – Internet of Things cụm từ thường xuyên bắt gặp sống chuyên gia đánh giá bùng nổ thời gian tới với gia tăng số lượng thiết bị ứng dụng IoT áp dụng cho đời sống hàng ngày Vì thấy IoT xu cơng nghệ sống đại Những ý tưởng ban đầu Internet of Things (IoT) xuất từ thời kỳ sơ khai Internet, nhà phát minh mong muốn kết nối tất thứ qua mạng lưới đồng để điều khiển chúng để phục vụ cho mục đích người Trong tư liệu IoT, người ta thường nhắc đến máy bán nước giải khát tự động trường Đại học Carnegie Melon (Mỹ) vào đầu năm 1980 thiết bị mở cho xu hướng Chiếc máy lập trình để kết nối với người điều khiển qua Internet, nhằm kiểm tra tình trạng máy bổ sung nước cần thiết mà khơng cần có tiếp xúc kiểm tra trực tiếp IoT thuật ngữ dùng để đối tượng nhận biết tồn chúng kiến trúc mang tính kết nối Cụm từ đưa Kevin Ashton vào năm 1999 Ông nhà khoa học sáng lập trung tâm Auto-ID Đại học MIT, nơi thiết lập quy chuẩn toàn cầu cho RFID (phương thức giao tiếp không dây dùng sóng radio) số loại cảm biến khác IoT sau dùng nhiều ấn phẩm đến từ hãng nhà phân tích Hình 1.1 Các thiết bị kết nối Internet phát triển tương lai Hầu hết tài liệu nghiên cứu xem IoT bao gồm đối tượng thông minh liên kết truyền thông với Khuyến nghị ITU-T Y.2060 mở rộng khái niệm này, bao gồm thứ ảo ITU Y.2060 đặc tả IoT cách bổ sung thêm chiều “truyền thông với thứ nào” vào công nghệ thông tin truyền thông khả dụng cung cấp truyền thông “Ở thời điểm nào” “bất kỳ địa điểm nào” Hình 1.2 Chiều hướng giới thiệu Internet of Things 43 thuộc vào partition thông qua chuỗi khóa đính kèm với thơng điệp Nếu khơng producer gán khóa ngẫu nhiên định đích đến thơng điệp dựa giá trị băm khóa Consumer: đọc liệu từ broker Kafka hệ thống sử dụng mơ hình truyền thơng public-subscribe nên topic đc xử lý nhiều consumer khác nhau, miễn consumer subcribe topic Consumer có nhiệm vụ kéo liệu từ topic định Tùy thuộc vào mục đích sử dụng, Kafka cung cấp hai hàm API sau: - High Level Consumer: API hướng tới ứng dụng không quan tâm việc điều khiển việc đọc thơng điệp (mỗi dòng liệu), người dùng đọc từ thơng điệp cũ đọc từ thông điệp API lưu lại offset thông điệp lấy partition vào Zookeeper - Simple Consumer: Việc sử dụng API tương đối phức tạp API cho phép điều khiển việc đọc cách linh hoạt dựa offset Do đó, API cho phép ứng dụng xử lý lại thơng điệp gặp lỗi q trình xử lý trước Trong mơ hình triển khai IoT Platform mà ta xây dựng, Kafka nhận thông điệp từ MQTT Server (Mosquitto) để xử lý phân tán Vì để kết nối Kafka MQTT Server sử dụng Connecter theo mơ hình sau: Hình 3.7 Mơ hình Apache Kafka kết nối tới nguồn MQTT server Các thông điệp publish đến topic MQTT Server mapping tới topic Kafka server, từ Consumer subscribe topic Kafka server đọc thông tin thông tin mà publish tới topic MQTT server ban đầu 44 3.2.3 Apache Spark Apache Spark open source cluster computing framework phát triển sơ khởi vào năm 2009 AMPLab đại học California Sau này, Spark trao cho Apache Software Foundation vào năm 2013 phát triển Nó cho phép xây dựng mơ hình dự đốn nhanh chóng với việc tính tốn thực nhóm máy tính, có tính tốn lúc tồn tập liệu mà khơng cần phải trích xuất mẫu tính tốn thử nghiệm Tốc độ xử lý Spark có việc tính tốn thực lúc nhiều máy khác Đồng thời việc tính tốn thực nhớ (in-memories) hay thực hồn tồn RAM Hình 3.8 Thành phần Apache Spark Thành phần trung Spark Spark Core: cung cấp chức Spark lập lịch cho tác vụ, quản lý nhớ, fault recovery, tương tác với hệ thống lưu trữ…Đặc biệt, Spark Core cung cấp API để định nghĩa RDD (Resilient Distributed DataSet) tập hợp item phân tán node cluster xử lý song song Spark chạy nhiều loại Cluster Managers Hadoop YARN, Apache Mesos cluster manager cung cấp Spark gọi Standalone Scheduler - Spark SQL cho phép truy vấn liệu cấu trúc qua câu lệnh SQL Spark SQL thao tác với nhiều nguồn liệu Hive tables, Parquet, JSON 45 - Spark Streaming cung cấp API để dễ dàng xử lý liệu stream - MLlib Cung cấp nhiều thuật toán học máy như: classification, regression, clustering, collaborative filtering… - GraphX thư viện để xử lý đồ thị Đối với hệ thống IoT, Spark Streaming đóng vai trò quan trọng việc xử lý luồng liệu lưu trữ liệu Hình 3.9 Mơ hình tổng quan Spark Streaming Spark streaming xử lý liệu với tính cấp cao map, reduce, join, window Sau xử lý, liệu lưu trữ vào hệ thống HDFS, HBase, Solr, kết nối đến hệ thống hiển thị giao diện lý điều khiển đến hệ thống Kafka khác cho việc xử lý Hình 3.10 Mơ hình xử lý luồng liệu Spark Streaming Spark Streaming nhận luồng liệu trực tiếp từ Kafka, sau chia nhỏ luồng liệu thành batch, sau batch sử lý liệu Spark Engine đưa kết liệu qua xử lý với batch tương ứng Mỗi batch xem tập RDD (Resilient Distributed Dataset) dãy RDD Spark gọi DStream 46 Hình 3.11 Mơ hình Dstream Trong RDD liệu đọc từ khoảng thời gian định, cấu hình Spark Streaming Các thao tác xử lý luồng liệu DStream chuyển thành thao tác RDD Hình 3.12 Cách xử lí liệu Dstream Dữ liệu sau xử lý trả lại Dstream với giá trị RDD kết xử lý tương ứng Như hình 24 ví dụ minh họa cho thấy liệu sau xử lý lưu DStream với RDD kết xử lý DStream ban đầu Từ sử dụng DStream để truyền lên hình điều khiển trực tiếp (DashBoard) lưu trữ xuống sở liệu tùy vào nghiệp vụ yêu cầu hệ thống IoT 3.3 Cài đặt, cấu hình tùy biến thành phần hệ thống IoT Máy chủ để cài đặt tảng IoT sử dụng hệ điều hành mã nguồn mở Ubuntu 64-bit 3.3.1 Cài đặt Mosquitto Server Bước 1: Mosquitto khơng có sẵn kho ứng dụng Ubuntu Do cần phải add repositories: 47 sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa sudo apt-get update Bước 2: Cài đặt Mosquitto: sudo apt-get install mosquitto Bước 3: Cài đặt Mosquitto client: sudo apt-get install mosquitto-clients Để kiểm tra lại xem Mosquitto cài đặt thành công lên server chưa ta thực cách: Which mosquitto Kiểm tra Mosquitto Client: Which mosquitto_pub Which mosquitto_sub 48 Để kiểm tra xem Mosquitto chạy không chạy port chúng sử dụng câu lệnh: mosquitto Kết là: Chú ý: Theo mặc định, Mosquitto server sau cài đặt hoạt động port 1883, trình xác thực bỏ qua cấu hình mặc định Mosquitto Chạy thử: Khi ta cài đặt mosquitto-clients ta có chương trình mosquitto_pub mosquitto_sub mosquitto_pub: publish tới topic với broker mosquitto_sub: subscribe topic mạng tới broker - Subcribe topic: mosquitto_sub -d -t hello/world Kết quả: MacBook-Pro-cua-Thanh:~ thanhnguyenduy$ mosquitto_sub -d -t hello/world Client mosqsub|10002-MacBook-P sending CONNECT Client mosqsub|10002-MacBook-P received CONNACK Client mosqsub|10002-MacBook-P sending SUBSCRIBE (Mid: 1, Topic: hello/world, QoS : 0) Client mosqsub|10002-MacBook-P received SUBACK Subscribed (mid: 1): - Publish lên topic: mosquitto_pub -d -t hello/world -m "Hello world" Kết quả: 49 MacBook-Pro-cua-Thanh:~ thanhnguyenduy$ mosquitto_pub -d -t hello/world -m "Hello world" Client mosqpub|10022-MacBook-P sending CONNECT Client mosqpub|10022-MacBook-P received CONNACK Client mosqpub|10022-MacBook-P sending PUBLISH (d0, q0, r0, m1, 'hello/world', (11 bytes)) Client mosqpub|10022-MacBook-P sending DISCONNECT Kết phía Subscribe: Client mosqsub|10002-MacBook-P sending PINGREQ Client mosqsub|10002-MacBook-P received PINGRESP Client mosqsub|10002-MacBook-P sending PINGREQ Client mosqsub|10002-MacBook-P received PINGRESP Client mosqsub|10002-MacBook-P sending PINGREQ Client mosqsub|10002-MacBook-P received PINGRESP Client mosqsub|10002-MacBook-P received PUBLISH (d0, q0, r0, m0, 'hello/world', (11 bytes)) Hello world Như cài đặt thành công Mosquitto server, chức Subscribe Publish hoạt động nhận liệu 3.3.2 Cài đặt Kafka Server Bước 1: Download mã nguồn Link download: https://www.apache.org/dyn/closer.cgi?path=/kafka/1.0.0/kafka_2.111.0.0.tgz Kafka ứng dụng Scale (chạy JVM) máy chủ cần phải cài Java hồn tồn chạy cách dễ dàng Thực giải nén vào thư mục kafka: 50 > tar -xzf kafka_2.11-1.0.0.tgz > cd kafka_2.11-1.0.0 Bước 2: Khởi động server Khởi động ZooKeeper server: Bộ cài kafka kèm với ZooKeeper server nên chưa có zookeeper local start server Zookeeper kèm cài, chạy dạng single node: > bin/zookeeper-server-start.sh config/zookeeper.properties [2013-04-22 15:01:37,495] INFO Reading configuration from: config/zookeeper.prope rties (org.apache.zookeeper.server.quorum.QuorumPeerConfig) Khởi động Kafka server: > bin/kafka-server-start.sh config/server.properties [2013-04-22 15:01:47,028] INFO Verifying properties (kafka.utils.VerifiableProper ties) [2013-04-22 15:01:47,051] INFO Property socket.send.buffer.bytes is overridden to 1048576 (kafka.utils.VerifiableProperties) Bước 3: Tạo Topic: Tạo topic có tên test : > bin/kafka-topics.sh create zookeeper localhost:2181 replication-factor partitions topic test Xem danh sách topic: > bin/kafka-topics.sh list zookeeper localhost:2181 test Bước 4: Gửi thông điệp tới Topic: > > bin/kafka-console-producer.sh broker-list localhost:9092 topic test This is a message 51 This is another message Bước 5: Khởi động Consumer > bin/kafka-console-consumer.sh bootstrap-server localhost:9092 topic test -from-beginning This is a message This is another message Bước 6: Tạo kết nối Kafka với MQTT Server Download phần code kết nối Kafka MQTT Server: https://github.com/evokly/kafka-connect-mqtt/archive/master.zip Thực build project: /gradlew clean jar Copy file chương trình build vào thư mục thư viện kafka /opt/kafka_2.11-0.10.0.0/libs: kafka-connect-mqtt-1.0-SNAPSHOT.jar org.eclipse.paho.client.mqttv3-1.0.2.jar Tạo file cấu hình kết nối: tạo file có tên mqtt.properties với nội dung: name=mqtt connector.class=com.evokly.kafka.connect.mqtt.MqttSourceConnector tasks.max=1 kafka.topic=hello-mqtt-kafka mqtt.client_id=mqtt-kafka-123456789 mqtt.clean_session=true mqtt.connection_timeout=30 mqtt.keep_alive_interval=60 mqtt.server_uris=tcp://localhost:1883 mqtt.topic=hello-mqtt 52 Khởi động kết nối Kafka MQTT server: Đảm bảo Kafka server MQTT Server chạy, sử dụng câu lệnh sau để khởi động kết nối: /bin/connect-standalone.sh config/connect-standalone.properties config/mqtt.properties Gửi số thông điệp đến topic: hello-mqtt Hello Halo Salut Kiểm tra thông điệp topic Apache Kafka: hello-mqtt-kafka Cậu lệnh khởi động consumer subscribe topic hello-mqtt-kafka Apache Kafka: bin/kafka-console-consumer.sh zookeeper localhost:2181 from-beginning topic hello-mqtt-kafka Kết output ra: {"schema":{"type":"bytes","optional":false},"payload":"QWxvaGE="} {"schema":{"type":"bytes","optional":false},"payload":"WGluIENoYW8K"} {"schema":{"type":"bytes","optional":false},"payload":"MDEwMQo="} Dữ liệu nhận bên Apache Kafka dụng mảng byte, mã hóa thành dạng base64, phía client cần lấy thơng tin dùng base64 để decode thông điệp 3.3.3 Cài đặt Spark Bước 1: Download Apache Spark tại: http://spark.apache.org/downloads.html Phiên là: 2.2.0 Sau download xong ta file: spark-2.2.0-bin-hadoop2.7.tgz Bước 2: Giải nén file spark-2.2.0-bin-hadoop2.7.tgz thư mục: spark-2.2.0-bin-hadoop2.7: 53 Bước 3: Di chuyển vào thư mục: spark-2.2.0-bin-hadoop2.7 ~ thanhnguyenduy$ cd spark-2.2.0-bin-hadoop2.7 spark-2.2.0-bin-hadoop2.7 thanhnguyenduy$ Bước 4: Khởi động Master node: /sbin/start-master.sh Kết quả: starting org.apache.spark.deploy.master.Master, logging to /Users/thanhnguyenduy/ spark-2.2.0-bin-hadoop2.7/logs/spark-thanhnguyenduy-org.apache.spark.deploy.maste r.Master-1-MacBook-Pro-cua-Thanh.local.out Master node mặc định khởi động với giao diện người dùng web địa chỉ: http://localhost:8080 Ta thấy Alive Workers: Hiện chưa có Worker node chạy nên Bước 5: Cấu hình khởi động worker node: 54 Để chạy chế độ này, phải có lớn máy: máy chạy Master node, máy chạy worker node Các máy có mơi trường giống (Cùng sử dụng Apache Spark giống nhau) Tại máy worker chạy file shell start-slave.sh $ /start-slave.sh spark:// Chúng ta chạy lệnh với IP Port Master node bước Một số câu lệnh cấu hình Spark Cluster: • sbin/start-master.sh – Khởi động Master node máy thực thi câu lệnh • sbin/start-slaves.sh – Khởi động worker node với thông tin worker mô tả file: conf/slaves • sbin/start-slave.sh – Khởi động worker node máy thực thi câu lệnh • sbin/start-all.sh – Khởi động tất bao gồm Master node worker node cấu hình file: conf/slaves • sbin/stop-master.sh – Dừng Master node kích hoạt câu lệnh bin/start-master.sh • sbin/stop-slaves.sh – Dừng tất worker node cấu hình file conf/slaves • sbin/stop-all.sh – Dừng tất Master node worker node 55 3.4 Kết luận Cùng với phát triển bùng nổ IoT, giúp cho nông nghiệp thông minh ngày tiếp cận gần với người nơng dân Giúp nơng dân quản lý tốt trồng giúp suất trồng ngày tăng cao, giảm sức lao động người lao động Dựa kịch thử nghiệm sử dụng hệ thống mã nguồn mở trên, sử dụng với tham số giám sát bản: nhiệt độ, độ ẩm đất ánh sáng Đây tham số ảnh hưởng đến trình sinh trưởng trồng môi trường nuôi cấy mô nhà lẫn mơi trường ngồi trời Dự liệu thu thập từ hệ thống IoT Gateway chuyển đến hệ thống IoT Hệ thống sử dụng thành phần mã nguồn mở bao gồm: - MQTT Server: Mosquitto - Hệ thống xử lý phân tán: Apache Kafka - Hệ thống lưu trữ xử lý liệu lớn: Apache Spark Với mơ hình giải vấn đề khó khăn thực hố kiến trúc hệ thống IoT, giúp nắm rõ cách thiết lập, lập trình tùy biến module chạy IoT Platform Từ phát triển mở rộng ứng dụng khác với yêu cầu cầu cụ thể cách dễ dàng 56 KẾT LUẬN Nối tiếp thành công cách mạng công nghiệp trước đây, bước vào thời kỳ cách mạng công nghiệp mang tên : "Cách mạng công nghiệp lần thứ 4" Và IoT coi yếu tố cốt lõi kỹ thuật số cách mạng công nghiệp lần thứ Luận văn tập trung nghiên cứu đưa giải pháp thiết kế xây dựng hệ thống IoT – Thành phần cốt lõi kiến trúc tổng thể IoT theo hướng tiếp cận hướng dịch vụ dạng Hạ tầng dịch vụ IoT, đáp ứng yêu cầu cần thiết hệ thống IoT Ngoài luận văn đưa vấn đề khó khăn thực hoá kiến trúc hệ thống IoT: Khả thu thập liệu đồng thời từ số lượng lớn thiết bị IoT; Xử lý liệu lớn cho luồng liệu theo thời gian thực; Cơ chế phát lỗi phục hồi với thành phần thu thập liệu Luận văn đưa giải pháp kiến trúc để giải vấn đề trên, cụ thể hoá việc đưa vào giải pháp mã nguồn mở, cài đặt cấu hình tuỳ biến để thành phần làm việc ổn định với Và thử nghiệm chạy thử thành công với kịch áp dụng với nông nghiệp thông minh, cách kết nối hệ thống tới IoT gateway cung cấp liệu cảm biến, hệ thống nhận liệu, xử lý theo mơ hình kiến trúc xây dựng đưa liệu hiển thị bảng thông báo - Dashboard Tùy với ứng dụng IoT cụ thể, ta mở rộng hệ thống phù hợp theo yêu cầu ứng dụng Do có hạn chế định mặt thời gian luận văn, luận văn đưa kịch thử nghiệm chạy thử hệ thống với tính nơng nghiệp thơng minh Nghiên cứu tích hợp thêm vào hệ thống thành phần giúp nâng cao hiệu năng, khả mở rộng khả bảo mật hệ thống Vấn đề xử lý liệu thời gian thực đề cập luận văn giới hạn việc tiền xử lý liệu lớn với tính tốn tất định Các vấn đề phân tích liệu chuyên sâu dựa kỹ thuật học máy hay khai phá liệu xem xét nghiên cứu 57 DANH MỤC TÀI LIỆU THAM KHẢO Tài liệu tiếng anh: [1] Eclipse, (2016) The Three Software Stacks Required for IoT Architectures [2] Erl, T.(2005) Service-Oriented Architecture: Concepts, Technology, and Design Prentice Hall [3] James Kirkland, (2016) Why Building an Open Source IoT Cloud Platform Matters [4] Jasmin Guth, Uwe Breitenbücher, Michael Falkenthal, Frank Leymann, and Lukas Reinfurt, (2016) Comparison of IoT Platform Architectures: A Field Study based on a Reference Architecture Benjamin Cabé, (2016) Implementing IoT Architectures with Open Source [5] Jacob Morgan, (2014), A Simple Explanation Of 'The Internet Of Things' [6] Mattern, T.(2008) Enterprise SOA O'Reilly Media [7] Matthew J Perry, (2016) Evaluating and Choosing an IoT Platform [8] Top 10 IoT Platforms: http://internetofthingswiki.com/top-10-iotplatforms/634/ Các trang web: [9] https://www.forbes.com/sites/jacobmorgan/2014/05/13/simple-explanation- internet-things-that-anyone-can-understand/ Truy cập ngày 04/05/2017 [10] https://kafka.apache.org/ Truy cập ngày 05/09/2017 [11] https://mosquitto.org/ Truy cập ngày 20/10/2017 [12] https://howtoprogram.xyz/2016/07/30/apache-kafka-connect-mqtt-sourcetutorial/ Truy cập ngày 20/10/2017 [13] https://spark.apache.org/docs/2.2.0/streaming-kafka-0-10-integration.html Truy cập ngày 30/10/2017 [14] https://spark.apache.org/docs/latest/rdd-programming-guide.html Truy cập ngày 05/10/2017 ... dụng hệ thống xây dựng với toán thử nghiệm cụ thể Đối tượng phạm vi nghiên cứu: - Đối tượng nghiên cứu: Một số hệ thống IoT mã nguồn mở điển hình - Phạm vi nghiên cứu: Nghiên cứu xây dựng hệ thống. .. pháp mã nguồn mở, với kết hệ thống IoT triển khai thử nghiệm để xây dựng ứng dụng IoT Mục tiêu nghiên cứu: Xây dựng làm chủ triển khai, tùy biến phát triển mở rộng hệ thống IoT dựa mã nguồn mở. .. dụng IoT Việc nghiên cứu, lựa chọn, làm chủ giải pháp mã nguồn mở cho hệ thống IoT đóng vai trò sống xây dựng, triển khai ứng dụng IoT Đề tài tập trung nghiên cứu xây dựng hệ thống IoT dựa giải

Ngày đăng: 28/02/2018, 11:42

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan