GCP có mục đích giúp người dùng giải quyết tat cả những vấn dé cần thiết
như là: Mobile, Developer, Management, Networking
Google Cloud Platform có mục đích giúp người dùng giải quyết tất cả những van dé cần thiết như là: Mobile developing, Management, Networking, Computer
Engine, Storage, Big Data,... Từ những lợi ích của Google Cloud platform mang lại
thi những doanh nghiệp này có thé tập trung làm những việc khác cần thiết dé phát triển doanh nghiệp hon mà không cần màng đến những hệ thống bên dưới.
Bên cạnh những dịch vụ trên, Google Cloud Platform còn mang đến sự khác biệt so với những nên tảng dịch vụ của Cloud khác. Đây chính là những dịch vụ được google đặt trực tiếp. Ở đây có một hệ thống dịch vu Datacenter với mức độ an toàn bảo mật di liệu cao nhất. Bên cạnh đó, Google Cloud Platform cũng đáp ứng được những tiêu chuẩn khắt khe nhất đối với 1 hệ thống điện toán đám mây.
Google Cloud Platform cung cấp bao gồm những sản phẩm chính sau đây:
- Services — Cloud Endpoints, Translate API, Prediction API
- Big Data— BigQuery, Cloud Dataflow, Cloud Dataproc, Cloud Pub/Sub
- Storage — Cloud Storage, Cloud Datastore, Cloud SQL, Cloud Bigtable
- Compute — App Engine, Compute Engine, Container Engine
Bên cạnh đó, Google Cloud Platform cung cấp những dich vu phát triển và tích hợp ứng dụng. Chăng hạn như là dịch vụ tin nhắn Google Cloud Pub/ Sub. Đây
là dịch vụ được quản lý, thời gian thực tế cho phép người dùng trao đổi tin nhắn giữa
các ứng dụng. Bên cạnh đó Google Cloud Endpoint còn cho phép những nhà phát
triển xây dựng những dịch vụ phụ thuộc vào những API RESTful. Tiếp theo, những nhà phát triển dịch vụ có thé truy cập được đối với khách hàng của Apple iOS,
JavaScript và Android. Những dịch vụ khác nữa như là máy chủ DNS Anycast. Có
chức năng kết nối mạng trực tiếp, khai thác, giám sát, cân bằng tải những dịch vụ.
Google Cloud Platform
Storage Services
Networking Big Data
— © Q ‘Cloud DNS
Cloud Data Storage Lode Bolonding Bộ Query ©
ite Engi
Compute Engine Psat) © & Cloud Endpoint
Cloud SQL Interconnect Data Flow
App Engine © © ® Cloud Translate
Cloud Storage Cloud Pub/SubDNS
Prediction
Hình 2-21 Những dịch vụ Google Cloud Platform cung cấp
- ToT là dịch vụ được viết tắt của từ Internet of things được google cung cấp:
Dịch vụ này cho phép người sử dụng quản lý và tiêu thụ dữ liệu từ những thiết
bị IoT một cách thuận lợi.
- Máy tìm kiếm đám mây hay còn là Cloud Machine Learning Engine để
phát triển ứng dụng AI (trí tuệ nhân tao) theo một phương pháp phổ biến vào những dịch vụ của google cung cấp. Mỗi dịch vụ được quản lý mang đến cho
người sử dụng xây dựng và đảo tạo những quy mô học máy. Nhờ vào việc sử
dụng dịch vụ này mà quá trình xử lý thông tin trở nên đơn giản hơn bao giờ
hết. Những API khác cũng có sẵn dé phân tích và dịch những video, hình ảnh, văn bản và lời thoại. Dịch vụ google Cloud cũng cung cấp những dịch vụ như Hadoop và Apache Spark bao gồm Google Cloud Dataproc dé dữ liệu được
xử ly dé dang hon và nhanh hơn.
- Google Cloud Dataflow chính là dịch vụ xử lý dữ liệu cho những công việc
phân tích, phục vụ cho các dự án tính toán theo thời gian thực tế, trích xuất, chuyển đổi và tải (ETL).
- Google BigQuery là 1 dịch vụ dữ liệu lớn của Google gồm những dịch vụ xử
lý dữ liệu và phân tích. Google BigQuery có chức năng để truy vấn tương tự công cụ SQL truyền thống được thực hiện đối với bộ dữ liệu nhiều terabyte. Trên thực tế việc lưu trữ những dữ liệu vô cùng cần thiết và quan trọng. Dữ liệu không những dừng lại ở những file có kích thước nhỏ mà còn có thé lên đến terabyte.
2.5.3. Firebase:
Firebase là một nền tảng thu gọn được Google phát triển và cung cấp. Firebase
hỗ trợ nhiều tính năng nổi bật mà hệ thống IoT cần thiết như:
-_ Flrestore.
- Realtime database.
- Hosting.
- Machine Learning.
Firebase sử dung giao thức HTTP dé kết nói đến thiết bị va trong luận văn nay
cụ thé là NodeMCU Esp32. Vì là một platform thu gọn nên giao thức truyền nhận của Firebase khá đơn giản và không cần đòi hỏi các key private hay public như các
platform khác
2.6. Cơ sở lý thuyết về Server
2.6.1. Giao thức MQTT
MQTT [9] (Message Queuing Telemetry Transport) là một giao thức gởi dạng
publish/subscribe sử dụng cho các thiết bị Internet of Things với băng thông thấp, độ tin cậy cao và khả năng được sử dụng trong mạng lưới không ổn định. Bởi vì giao thức này sử dụng băng thông thấp trong môi trường có độ trễ cao nên nó là một giao
thức lý tưởng cho các ứng dụng M2M.
Trong một hệ thống sử dụng giao thức MQTT, nhiều client kết nối với một server (Trong MQTT, server được gọi mà MQTT Broker). Mỗi client sẽ đăng ký theo
dõi các kênh thông tin (topic) hoặc gửi dữ liệu lên kênh thông tin đó. Quá trình đăng
ký này gọi là subscribe và hành động một client gửi dữ liệu lên kênh thông tin được
gọi là publish. Mỗi khi kênh thông tin đó được cập nhật dữ liệu (dữ liệu này có thể đến từ các client khác) thì những client nào đã đăng ký theo dõi kênh này sẽ nhận
được dữ liệu cập nhật đó.
Trong mô hình hệ thống của nhóm, server trong vai trò rất quan trọng vì nó là trung tâm để kết nối các phần lại với nhau. Server có nhiệm vụ nhận đữ liệu và lưu vào database server, cung cấp API dé các client có thé kết nói và giao tiếp với nhau.
An 5ì
⁄
<a
publish: “21°C* laptop
7 sơn,
temperature MQTT-Broker res—
sensor
Oe publish to mobile device
topic "temperature topic: “temperature”
Hình 2-22 Mô hình tong quan về MQTT
2.6.2. Các khải niệm cơ bản trong MQTT
Trong một hệ thống sử dụng giao thức MQTT, nhiều client kết nói tới một server (Trong MQTT, server được gọi là MQTT Broker). Mỗi client sẽ đăng ký theo dõi các
kênh thông tin (topic) hoặc gửi dữ liệu lên kênh thông tin đó. Quá trình đăng ký này
gọi là “subscribe” và hành động một client gửi dữ liệu lên kênh thông tin được gọi là
“publish”. Mỗi khi kênh thông tin đó được cập nhật dữ liệu (dữ liệu này có thể đến
từ các client khác) thì những client nào đã đăng ký theo dõi kênh này sẽ nhận được
dữ liệu cập nhật đó.
Trong giao thức MQTT, message còn được gọi là "message payload", có định
dạng mặc định là plain-text (chữ viết người đọc được), tuy nhiên người sử dụng có thể cấu hình thành các định dạng khác.
Topic có thể coi như một "đường truyền" logic giữa 2 điểm là publisher và subscriber. Về cơ bản, khi message được publish vào một topic thì tất cả những
subscriber của topic đó sẽ nhận được message này.
Giao thức MQTT cho phép khai báo các topic kiểu phân cấp. Giả sử chúng ta
có một hệ thống cảm biến đo thông tin môi trường trong ngôi nhà của chúng ta. Một
ngôi nhà thường sẽ có nhiều phòng và mỗi phòng lại có bộ cảm biến môi trường
riêng. Như vậy, các topic phục vụ truyền tải thông tin môi trường cho ngôi nhà của
chúng ta có thê được khai báo như sau:
Bên cạnh đó, MQTT cũng hộ trợ wildcards trong cú pháp khai báo topic, cụ thể đó là
"+" và "#", Trong đó, "+" bao gồm các topic ở cùng | level và "#" bao gồm tat cả các topic nằm dưới topic hiện tại.
MQTT có hỗ trợ 3 mức QoS, nhằm đảm bảo sự chắc chắn của truyền nhận dữ
liệu giữa client và broker:
- QoS-0 :Là mức đảm bảo thấp nhất, tat cả các message có QoS 0 sau khi
được gửi di bởi publisher sẽ không được kiểm tra xem đã đến broker hay
chưa (fire - and - forget)
- QoS-1 :Message được đảm bảo rằng đã đến nơi nhận ít nhất 1 lần (tức là
sự trùng lặp vẫn có thể xảy ra)
- Qo§-2 :Đây là mức đảm bảo cao nhất, broker sẽ đảm bao các message có
QoS-2 sẽ đến nơi nhận chỉ 1 lần duy nhất, không trùng lặp, không that lạc. Tất nhiên việc xác nhận với QoS-2 sẽ tốn băng thông hơn 2 cách còn lại.
- Retain : là một cờ (flag) được gắn cho một message của giao thức MQTT.
Retain chỉ nhận giá tri 0 hoặc 1 (tương ứng 2 giá tri logic false hoặc true).
Nếu retain = 1, broker sẽ lưu lại message cuối cùng của 1 topic kèm theo mức QoS tương ứng. Khi client bắt đầu subscribe topic có message được
lưu lại đó, client ngay lập tức nhận được message.
- MOQTT Bridge : là một tinh năng của MQTT Broker cho phép các MQTT
Broker có thé kết nối và trao đổi dé liệu với nhau. Để sử dụng tính năng này, ta cần tối thiểu 2 Broker, trong đó, một Broker bất kỳ sẽ được cấu hình
thành Bridge. Khi cấu hình MQTT bridge, ta cần lưu ý tới các thông số
sau:
o address: địa chỉ của broker cần kết nối
© bridge protocol_ version: phiên bản của giao thức MQTT dang sử dụng
chung cho 2 broker
© topic: phần này định nghĩa 3 thong số: tên topic được trao đổi giữa 2
broker, chiều trao đổi (1 chiều hay 2 chiều) và topic mapping giữa 2
broker
2.6.3. HyperText Transfer Protocol (HTTP)
HTTP (HyperText Transfer Protocol - Giao thức truyền tải siêu văn bản) là một trong các giao thức chuẩn về mang Internet, được dùng dé liên hệ thông tin giữa Máy cung cấp dịch vụ (Web server) và Máy sử dụng dich vụ (Web client), là giao
thức Client/Server dùng cho World Wide Web - WWW
HTTP là một giao thức ứng dụng của bộ giao thức TCP/IP (các giao thức nền tảng
cho Internet).
= k HTTP
cl —~ Request Message
~
HTTP Clients
(Web Browser) HITP over TCP/P HTTP Server (Web Server)
HTTP Response Message
Hình 2-23 So đồ hoạt động của HTTP
HTTP hoạt động dựa trên mô hình Client — Server. Trong mô hình này, các
máy tính của người dùng sẽ đóng vai trò làm máy khách (Client). Sau một thao tác
nao đó của người đùng, các máy khách sẽ gửi yêu cầu đến máy chủ (Server) và chờ
đợi câu trả lời từ những máy chủ này. HTTP là một stateless protocol. Hay nói cách khác,
request hiện tại không biết những gì đã hoàn thành trong request trước đó. HTTP cho phép tạo các yêu cầu gửi và nhận các kiểu đữ liệu, do đó cho phép xây dựng hệ thống độc lập với
dữ liệu được truyền giao.
2.6.4. Các thành phần chính của HTTP
HTTP — Requests:
HTTP Request Method: Là phương thức dé chi ra hành động mong muốn được thực
hiện trên tài nguyên đã xác định.
Cấu trúc của một HTTP Request:
- Một Request-line = Phương thức + URI-Request + Phiên bản HTTP.
Giao thức HTTP định nghĩa một tập các giao thức GET, POST, HEAD, PUT
... Client có thé sử dụng một trong các phương thức đó dé gửi request lên
server.
- Có thể có hoặc không các trường header
- Một dòng trống đề đánh dấu sự kết thúc của các trường Header.
o Request Header Fields: Các trường header cho phép client truyền
thông tin b6 sung về yêu cầu, và về chính client, đến server. Một số
trường: Accept-Charset, Accept-Encoding, Accept-Language, Authorization, Expect, From, Host, ...
Tùy chọn một thông điệp
Khi request đến server, server thực hiện một trong 3 hành động sau:
- Server phân tích request nhận được, maps yêu cầu với tập tin trong tập
tài liệu của server, và trả lại tập tin yêu cầu cho client.
- Server phân tích request nhận được, maps yêu cầu vào một chương trình
trên server, thực thi chương trình và trả lại kết quả của chương trình đó. -__ Nếu request từ client không thé đáp ứng, server trả lại thông báo lỗi.
GET /doe/test.html HTTP/1.1 > Request Line Host: wai test1@1. com )
Accept: image/gif, image/jpeg, */* Request
Accept-Language: en-us | Request Headers > Message
Accept-Encoding: gzip, deflate | Header User-Agent: Mozilla/4.0
Content-Length: 35 )
=> AWank line separates header & body
bookId=12345Rauthor=TansAhsTeck Request Message Body
Hình 2-24 Gói tin Request chứa các thông tin cần thiết.
Giao thức HTTP định nghĩa một tập các phương thức request, client có thể
sử dụng một trong các phương thức nay dé tao request tới HTTP server, dưới đây liệt
kê một số phương thức phổ biến. 1 số HTTP Request method thường dùng:
HTTP - Responses
Câu trúc của một HTTP response:
ô - Một Status-line = Phiờn ban HTTP + Mó trạng thỏi + Trạng thỏi
ô _ Cú thể cú hoặc khụng cú cỏc trường header
ô _ Một dong trồng đề đỏnh dấu sự kết thỳc của cỏc trường header
ô Tuy chọn một thụng điệp
Mã trạng thái: Thông báo về kết quả khi nhận được yêu cầu và xử lí bên server cho
client.