Tính cấp thiết Qua các phân tích và đánh giá trên, việc xây dựng một hệ thống Cloud-based SCADA theo cấu trúc mở với giao điện thân thiện, có tính cấu trúc và tổng quát cao là cần thiết
Trang 1KHOA ĐIỆN – ĐIỆN TỬ -o0o -
Trang 2TRƯỜNG ĐẠI HỌC BÁCH KHOA –ĐHQG -HCM
Cán bộ hướng dẫn khoa học : Tiến Sĩ Trương Đình Châu
Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm:
(Ghi rõ họ, tên, học hàm, học vị của Hội đồng chấm bảo vệ luận văn thạc sĩ)
1 Phó Giáo Sư, Tiến Sĩ Hồ Phạm Huy Ánh
2 Tiến Sĩ Trần Ngọc Huy
3 Tiến Sĩ Hoàng Minh Trí
4 Tiến Sĩ Võ Công Phương
Trang 3NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên: PHẠM HOÀNG HẢI QUÂN
Ngày, tháng, năm sinh: 17/04/1991
Chuyên ngành: Kỹ thuật điều khiển và tự động hóa
Họ tên học viên: NGUYỄN VĂN PHÚ
Ngày, tháng, năm sinh: 14/09/1991
Chuyên ngành: Kỹ thuật điều khiển và tự động hóa
MSHV: 714006 Nơi sinh: Bình Thuận
MS: 60 52 02 16 MSHV: 7140062
Nơi sinh: Bình Thuận
MS: 60 52 02 16
I TÊN ĐỀ TÀI
NGHIÊN CỨU VÀ PHÁT TRIỂN HỆ THỐNG SCADA DỰA TRÊN ĐIỆN TOÁN ĐÁM MÂY
II NHIỆM VỤ VÀ NỘI DUNG:
- Nghiên cứu điện toán đám mây và kiến trúc chương trình SCADA
- Thiết kế kiến trúc và phát triển các thành phần trong chương trình SCADA dựatrên điện toán đám mấy, triển khai lên cloud Amazon Web Service
- Xây dựng hệ thống giám sát và quản lý điện năng tiêu thụ từ xa bằng based SCADA
V CÁN BỘ HƯỚNG DẪN : Tiến Sĩ Trương Đình Châu
Tp Hồ Chí Minh, ngày … tháng … năm 2016
KHOA ĐIỆN ĐIỆN TỬ TRƯỜNG ĐẠI HỌC BÁCH KHOA
Trang 4Tôi xin gửi đến thầy TS Trương Đình Châu lời biết ơn sâu sắc vì đã dành thời gian quý báu để hướng dẫn, tạo điều kiện thuận lợi cũng như cho tôi những lời khuyên
bổ ích để hoàn thành luận văn này
Trong suốt thời gian học tập tại trường đại học Bách Khoa – ĐHQG Tp HCM, tôi đã được các Thầy Cô khoa Điện – Điện tử, và đặc biệt là các Thầy Cô bộ môn Điều khiển tự động giảng dạy tận tình, cho tôi nhiều kiến thức mới bổ ích Xin gửi đến các Thầy, Cô và các bạn lời cảm ơn chân thành nhất
Cuối cùng, tôi xin cám ơn Cha Mẹ, các anh chị em trong gia đình đã động viên
và tạo điều kiện giúp tôi vượt qua những khó khăn trong suốt quá trình học tập và nghiên cứu vừa qua
Tp Hồ Chí Minh, ngày 17 tháng 6 năm 2016
Nguyễn Văn Phú Phạm Hoàng Hải Quân
Trang 5Điện toán đám mây (cloud computing) phát triển ngày càng mạnh mẽ, phổ biến
và rộng rãi Nhu cầu giám sát, quản lý các thông tin quan trọng thông qua internet của con người ngày càng cao Đặc biệt là trong lĩnh vực công nghiệp, khi mà các cơ sở sản xuất nằm ở các vị trí địa lý rất xa nhau, người quản lý vận hành mong muốn có thể giám sát, điều khiển hệ thống từ xa thông qua internet bằng các thiết bị hiện đại như tablet, smart phone
Các thế hệ SCADA trước đây rất cồng kềnh về phần cứng lẫn phần mềm, gây nhiều khó khăn trong việc bảo trì, nâng cấp, mở rộng hệ thống, khả năng kết nối, truy cập từ xa để giám sát và điều khiển hệ thống cũng rất giới hạn Việc tích hợp hệ thống SCADA lên cloud sẽ giải quyết các vấn đề trên
Luận văn tập trung nghiên cứu vào các kỹ thuật trong cloud computing, các đặc tính kỹ thuật của hệ thống SCADA, các phương pháp, mô hình để tích hợp SCADA lên cloud và đưa ra một kiến trúc tổng quan cho cloud-based SCADA
Luận văn sử dụng nên tảng điện toán đám mây Amazon Web Service (do Amazon cung cấp), XCode trên nền tảng iOS và NodeJS (JavaScript runtime) để thực hiện hệ thống cloud-based SCADA giám sát và quản lý điện năng tiêu thụ từ xa trên địa bàn Thành phố Hồ Chí Minh
Trang 6Tôi xin cam kết các nội dung lý thuyết trình bày trong luận văn này là do tôi tham khảo các tài liệu và biên soạn lại, tất cả các kết quả đều do chính bản thân tôi tự làm ra, hoàn toàn không phải sao chép của từ bất kỳ một tài liệu hoặc công trình nghiên cứu nào khác
Nếu tôi không thực hiện đúng các cam kết nêu trên, tôi xin chịu hoàn toàn trách nhiệm trước kỷ luật của nhà trường cũng như pháp luật Nhà nước
Nguyễn Văn Phú Phạm Hoàng Hải Quân
Trang 7MỤC LỤC
TỔNG QUAN VỀ HỆ THỐNG SCADA DỰA TRÊN ĐIỆN TOÁN ĐÁM
MÂY 15
Đặt vấn đề 15
Tính cấp thiết 16
Phân tích đánh giá kết quả các nghiên cứu, đề tài liên quan 16
Mục tiêu 18
Nhiệm vụ 19
Sản phẩm của luận văn 20
LÝ THUYẾT VỀ ĐIỆN TOÁN ĐÁM MÂY VÀ HỆ THỐNG SCADA DỰA TRÊN ĐIỆN TOÁN ĐÁM MÂY 21
Lý thuyết về điện toán đám mây 21
Ảo hóa (Virtualization) 21
Điện toán đám mây 26
Amazon Web Services (AWS) 31
Giới thiệu về Amazon Web Services 31
Lưu trữ với Amazon S3 33
Elastic computing with Amazon EC2 34
Khả năng truyền thông điệp tin cậy của Amazon Simple Queue Service 34
Xử lý tập hợp dữ liệu với Amazon SimpleDB 35
Khả năng mở rộng của kiến trúc 35
Giới thiệu về DynamoDB 36
Làm việc với DynamoDB 37
Bảng trong DynamoDB 37
Read/Write capacity 38
Secondary index 38
Query/Scan 39
Lý thuyết về hệ thống SCADA dựa trên điện toán đám mây 40
Tổng quan chung về SCADA 40
Định nghĩa: 40
Các ứng dụng vào thực tế và so sánh lợi thế với hệ cũ: 41
Xu hướng phát triển của SCADA 41
Kiến trúc hệ thống quản lý giám sát sản xuất: 42
Tổng quan các chức năng chính của SCADA: 43
Các mô hình kết nối trong SCADA: 43
Local 44
Remote SCADA Client: 45
Trang 8Distributed 46
Thiết kế mô hình Cloud-based SCADA 46
THIẾT KẾ SCADA DỰA TRÊN NỀN TẢNG ĐIỆN TOÁN ĐÁM MÂY 49
Kiến trúc Cloud-based SCADA được đề xuất 49
Thiết kế Cloud Database 50
Thiết kế cấu trúc cơ sở dữ liệu bằng DynamoDB 50
Tạo quyền truy cập tới DynamoDB thông qua Amazon Cognito và Identity & Access Management 55
Amazon Cognito Identity 55
Identity and Access Management 57
Thiết kế Front-End Server 59
Thiết kế cấu trúc Front-End Server 59
OPC-UA Server 60
Các chức năng của OPC-UA Server 60
Xây dựng OPC-UA Server 61
OPC-UA Client 64
Các chức năng của OPC-UA Client 64
Xây dựng OPC-UA Client 64
Kết nối giữa Front-End Server và các thành phần khác trong hệ thống SCADA 71
Kết nối giữa Front-End Server và database trên cloud 71
Kết nối giữa Front-End Server và thiết bị 75
Thiết kế SCADA Client 80
Thiết kế cấu trúc của SCADA Client 80
Sơ Đồ Kernel 80
Các Thành Phần của SCADA Client 81
Thiết kế các chức năng hiển thị của SCADA Client 82
Project Manager Form 82
Device Form 85
Task – Tag Form 90
Màn Hình Runtime 100
Alarm Form 131
Trend Form 134
Data Logging Form 145
Report Form 160
Thiết lập liên kết dữ liệu với SCADA Server 169
Các thư viện cần khai báo 169
Các đối tượng cần thiết lập 169
Trang 9Đọc dữ liệu đơn lẻ (Retrieve) 170
Đọc toàn bộ dữ liệu (Scan) 171
Đọc dữ liệu theo điều kiện (Query) 172
Ghi mới 1 item (giá trị theo hàng ngang) lên DynamoDB 173
Cập nhật giá trị đơn lẻ của 1 item 173
XÂY DỰNG HỆ THỐNG CLOUD-BASED SCADA GIÁM SÁT VÀ QUẢN LÝ ĐIỆN NĂNG TIÊU THỤ TỪ XA 175
Lý do áp dụng: 175
Nguyên lý hoạt động: 175
Tổng quan hệ thống 176
Cấu hình OPC-UA Server 177
Cấu hình OPC-UA Client 178
Giao diện ứng dụng trên Ipad 181
TỔNG KẾT, ĐÁNH GIÁ ĐỀ TÀI 186
Kết quả đạt được 186
Những hạn chế của đề tài 187
Hướng phát triển đề tài 187
TÀI LIỆU THAM KHẢO 188
PHẦN LÝ LỊCH TRÍCH NGANG 189
QUÁ TRÌNH ĐÀO TẠO 189
QUÁ TRÌNH CÔNG TÁC 189
Trang 10DANH MỤC HÌNH ẢNH
Hình 2-1 Hệ thống máy chủ khi chưa có ảo hóa 22
Hình 2-2 Hệ thống máy chủ khi sử dụng ảo hóa 23
Hình 2-3 Giải pháp cho hệ thống dự phòng bằng công nghệ ảo hóa 25
Hình 2-4 Các mô hình dịch vụ 27
Hình 2-5 Mô hình các thành phần hệ thống trong cloud 28
Hình 2-6 Mô hình và các dịch vụ của Cloud Computing 30
Hình 2-7 Kiến trúc hệ thống 42
Hình 2-8 Mô hình Local 44
Hình 2-9 : Mô hình Remote SCADA Client 45
Hình 2-10 Mô hình Distributed 46
Hình 2-11 Mô hình triển khai cho Cloud-based SCADA 47
Hình 3-1 Cấu trúc cơ sở dữ liệu được thiết lập trên DynamoDB 50
Hình 3-2 Giao diện DynamoDB khi mới truy cập 52
Hình 3-3 Giao diện thiết kế một Table 52
Hình 3-4 Thông tin của Table sau khi tạo 53
Hình 3-5 Giao diện tạo Index 54
Hình 3-6 Meter_Runtime Table 55
Hình 3-7 Meter_Database Table 55
Hình 3-8 Giao diện của Cognito Console 56
Hình 3-9 Giao diện tạo Cognito ID 56
Hình 3-10 Nơi nhận sample code thông tin của ID để đưa vào project 56
Hình 3-11 Sample Code đối với project được viết bằng Objective-C 57
Hình 3-12 Giao diện của IAM Console 58
Hình 3-13 Điều chỉnh “Unauth” Role 58
Hình 3-14 Giao diện phân quyền cho Role 58
Hình 3-15 Cấu trúc của Front-End Server 59
Hình 3-16 : Các chức năng của OPC-UA Server theo kích thước 61
Hình 3-17 : Giao diện KEPServerEx 61
Hình 3-18 : Giao diện OPC UA Configuration 62
Hình 3-19 : Giao diện thêm một OPC-UA Server mới 63
Hình 3-20 : Các chức năng của OPC-UA Client 64
Hình 3-21 : Sơ đồ giải thuật xây dựng OPC-UA Client 65
Hình 3-22 : Giải thuật giám sát dữ liệu 68
Trang 11Hình 3-23 : Giải thuật ngừng giám sát dữ liệu 69
Hình 3-24 : Quy trình kết nối giữa OPC-UA Client và Amazon DynamoDB 71
Hình 3-25 Vùng hiển thị danh sách channel, device và tag 78
Hình 3-26 Sơ đồ Kernel 80
Hình 3-27 Project manager Form 82
Hình 3-28 Giải thuật thiết kế lưu (save) và tải Project 83
Hình 3-29 Giao diện Login vào Cloud 83
Hình 3-30 Giao diện Device Form 85
Hình 3-31 Giao diện thiết kế device 86
Hình 3-32 Thuật toán thiết kế giao diện Device 87
Hình 3-33 Giải thuật thực thi khi nhấn nút add device hoặc khi edit device 89
Hình 3-34 Giao diện Task – Tag Form 91
Hình 3-35 Giao diện thiết kế Task 91
Hình 3-36 Giao diện thiết kế Tag nhập bằng tay 92
Hình 3-37 Xóa task hoặc tag khỏi chương trình 93
Hình 3-38 Giải thuật thiết kế giao diện thêm Task/Tag 94
Hình 3-39 Giải thuật thực thi khi nhấn nút add task (tag) hoặc khi edit task (tag) 97
Hình 3-40 Giao diện màn hình chính 100
Hình 3-41 Cấu trúc chức năng của giao diện Runtime 101
Hình 3-42 Thuật toán xử lý thiết kế giao diện SCADA (tạo, thiết lập thống số và xác định vị trí các đối tượng) 101
Hình 3-43 : Thuật toán xử lý đọc giá trị 102
Hình 3-44 : Ngừng chạy giao diện Runtime 102
Hình 3-45 Giao diện tạo một class mới 104
Hình 3-46 Giao diện tạo Class mới 105
Hình 3-47 Giao diện tạo Class mới 105
Hình 3-48 Giao diện tạo Class mới 106
Hình 3-49 Giao diện tạo Class mới 108
Hình 3-50 Giao diện thiết kế Pop-Up 108
Hình 3-51 Giao diện chọn Image 111
Hình 3-52 Segment chọn Fucntion cho Image 112
Hình 3-53 Giao diện thư viện Image 112
Hình 3-54 Giao diện hiển thị hình ảnh đã chọn 112
Hình 3-55 Các bước làm việc với Button 114
Trang 12Hình 3-56 Giải thuật cho Expression 116
Hình 3-57 Giao diện Pop Up TextField 121
Hình 3-58 Giao diện chỉnh sửa TextField 123
Hình 3-59 Giao diện thiết kế Slider 124
Hình 3-60 Giao diện thiết kế Slider 125
Hình 3-61 Giao diện tạo Class 127
Hình 3-62 Một giao diện View Edit Object 127
Hình 3-63 Giao diện ProgressView 129
Hình 3-64 Giao diện thiết kế ProgressView 130
Hình 3-65 Giao diện chính của ALARM 132
Hình 3-66 Giao diện thiết kế alarm tag 133
Hình 3-67 Giao diện khi xóa alarm tag 133
Hình 3-68 Thuật toán thiết kế Alarm 134
Hình 3-69 Giao diện Trend 135
Hình 3-70 Giao diện cơ bản của Trend Form 135
Hình 3-71 Sơ đồ giải thuật thiết kế TrendView 136
Hình 3-72 Giải thuật cập nhật dữ liệu trục thời gian và vẽ 136
Hình 3-73 Giải thuật xử lý –Hàm cập nhật thông số trục x 137
Hình 3-74 Giải thuật xử lý, tính toán giá trị đơn vị của các vạch trục x – Contract Mode 137
Hình 3-75 Giao diện Single Trend 144
Hình 3-76 Giao diện Multi Trend 145
Hình 3-77 Giao điện Historical Trend 145
Hình 3-78 Giao diện hiển thị dữ liệu của DataLogging 146
Hình 3-79 Sơ đồ giải thuật thiết kế DataLogging 147
Hình 3-80 Giao diện mở ứng dụng SQLite 149
Hình 3-81 Giao diện tạo Table SQLite 150
Hình 3-82 Giao diện tạo Table cho SQLite 151
Hình 3-83 Giao diện Update thông tin SQLite 152
Hình 3-84 Giao diện chính của File SQLite được tạo 153
Hình 3-85 Giao diện Add file SQLite vào Project 153
Hình 3-86 Giao diện Add thư viện SQLite3 vào chương trình 154
Hình 3-87 Giao diện DataLogging 156
Hình 3-88 Giao diện UITableView 158
Hình 3-89 Màn hình giao diện của Report 160
Trang 13Hình 3-90 Giải thuật thiết kế Report Form 161
Hình 3-91 Kết quả viết chữ lên file PDF 163
Hình 3-92 Kết quả vẽ đường thẳng lên file PDF 164
Hình 3-93 Kết quả vẽ Table lên file PDF 166
Hình 3-94 File PDF chưa có Background 168
Hình 3-95 File PDF có Background 168
Hình 4-1 : Ứng dụng hệ thống cloud-based SCADA trong giám sát và quản lý điện năng tiêu thụ từ xa 177
Hình 4-2 : Giao diện OPC-UA Server của hệ thống 178
Hình 4-3 : Giao diện OPC-UA Client của hệ thống 178
Hình 4-4 : Giao diện hệ thống giám sát đồng hồ tiêu thụ năng lượng trên chương trình 181
Hình 4-5 : Giao diện hỗ trợ cập nhật toàn bộ Tag và Device trên Cloud hiển thị cho người dùng chọn đưa vào chương trình 182
Hình 4-6 Giao diện Add Task/Tag được đưa vào chương trình 182
Hình 4-7 : Danh sách các Device được thêm vào tự động từ Cloud 183
Hình 4-8 Giao diện Historical Trend 183
Hình 4-9 Giao diện ALARM 184
Hình 4-10 Giao diện DataLogging 184
Hình 4-11 Giao diện Report hệ thống 185
Trang 14
DANH MỤC BẢNG
Bảng 1-1 Các phần mềm SCADA thông dụng 15
Bảng 3-1 Danh sách các driver mà KEPServerEx hỗ trợ 75
Trang 15TỔNG QUAN VỀ HỆ THỐNG SCADA DỰA TRÊN ĐIỆN TOÁN
ĐÁM MÂY Đặt vấn đề
Hệ thống SCADA nói chung và phần mềm SCADA nói riêng là thứ không thể thiếu trong quá trình phát triển nền công nghiệp hiện đại, nhất là với tốc độ hiện đại hóa ngày càng nhanh chóng như hiện này
Do hệ thống SCADA đã xuất hiện từ khá lâu nên hiện nay trên thế giới có rất phần mềm SCADA của các công ty nổi tiếng, chúng được sử dụng rộng rãi và tính ổn định cao
Ba ̉ ng 1-1 Các phần mềm SCADA thông dụng
Các phần mềm SCADA nói trên đều có hiệu năng cao và đáng tin cậy nhưng chúng mắc phải một số nhược điểm sau:
Giá thành quá cao đối với các ứng dụng vừa và nhỏ ở Việt Nam
Cấu trúc quá phức tạp cũng như mã nguồn đóng, có cơ chế mã hoá và ẩn quá trình thực thi bên trong chỉ hiển thị về mặt thiết kế cho người dùng Do đó khó sử dụng để bắt đầu nghiên cứu chuyên sâu về hệ thống SCADA
Chỉ hỗ trợ phần mềm trên nền tảng Window, không hỗ trợ trên các nền tảng khác như iOS, Android…
Một số phần mềm hỗ trợ các nền tảng khác như iOS, Android thì lại thu phí hoàn toàn, mã nguồn đóng, gây khó khăn cho việc nghiên cứu, tiếp cận
Mặt khác các hệ thống công nghiệp phát triển ngày càng phức tạp và biến đổi hàng ngày nhằm đáp ứng nhu cầu người dùng Các thế hệ SCADA và phần mềm SCADA hiện tại gặp nhiều khó khăn trong việc bảo trì nâng cấp và mở rộng hệ thống
Nó đòi hỏi phải chỉnh sửa cả phần cứng lẫn phần mềm, cài đặt phức tạp và chi phí cao
Trang 16Với sự phát triển như vũ bão của công nghệ, các thiết bị di động như laptop, tablet, smart phone đóng một vài trò quan trọng trong đời sống hàng ngày Con người
có thể truy cập quan sát các thông tin quan trọng thông qua internet với các thiết bị này Thế hệ SCADA hiện tại (hệ thống phân tán) cho phép giám sát và điều khiển các trạm khác nhau, không phụ thuộc ví trị địa lý Tuy nhiên, nó chưa đưa ra các dịch vụ chuẩn chung để các thiết bị di động có thể truy cập vào hệ thống Mỗi hãng có một tiêu chuẩn cho riêng mình, gây khó khăn trong việc tích hợp hệ thống của nhiều hãng lại với nhau
Điện toán đám mây ra đời nhằm giải quyết các vấn đề về phần cứng, phần mềm và đa nền tảng khi có nhu cầu về bảo trì, nâng cấp với chi phí thấp, cài đặt nhanh chóng và dễ dàng mở rộng Việc tích hợp SCADA lên điện toán đám mây là điều cần thiết và quan trọng Cloud-based SCADA là bước phát triển tiếp theo của các thế hệ SCADA
Tính cấp thiết
Qua các phân tích và đánh giá trên, việc xây dựng một hệ thống Cloud-based SCADA theo cấu trúc mở với giao điện thân thiện, có tính cấu trúc và tổng quát cao
là cần thiết để phục vụ quá trình nghiên cứu hệ thống Cloud-based SCADA cũng như
áp dụng cho các ứng dụng SCADA từ xa ở Việt Nam Bên cạnh đó, hệ thống based SCADA này cũng là một trong những bước đi đầu tiên xây dựng cấu trúc SCADA trên nền tảng điện toán đám mây để từ đó việc nghiên cứu và phát triển hệ thống Cloud-based SCADA được dễ dàng hơn, thuận tiện hơn sau này Và với hệ thống Cloud-based SCADA này, chúng ta sẽ tiến đến một bước xa hơn trong việc quản lý các hệ thống từ xa, không phụ thuộc vị trí địa lý, không phụ thuộc quá nhiều vào phần cứng thiết bị nhờ vào điện toán đám mây Từ đó chi phí về việc bảo trì, nâng cấp và cài đặt hệ thống mới sẽ giảm thiểu đi rất nhiều
Phân tích đánh giá kết quả các nghiên cứu, đề tài liên quan
Cloud computing là thuật ngữ được ra đời từ giữa năm 2007, nó bắt nguồn từ ứng dụng điện toán lưới (grid computing) trong thập niên 1980, tiếp theo là điện toán theo nhu cầu (utility computing) và phần mềm dịch vụ [1] Điện toán đám mây được nhiều nhà phát triển và cung cấp lớn, trong đó có Amazon, Google, Microsoft
Trang 17Cloud computing dựa trên ý tưởng các khối lượng công việc của người dùng sẽ được chuyển đến các tài nguyên điện toán xử lý (người dùng hoàn toàn không biết thông tin gì về các tài nguyên này như vị trí địa lý, thiết bị vật lý, v.v ) và chuyển kết quả lại cho người dùng Cloud computing có các đặc trưng sau: [2]
Ba mô hình dịch vụ: Cơ sở hạ tầng như một dịch vụ (IaaS - Infacstructure
as a Service), nền tảng như một dịch vụ (PaaS - Platfrom as a Service), phần mềm như một dịch vụ (SaaS - Software as a Service);
Bốn mô hình triển khai: Private Cloud, Public Cloud, Community Cloud
và Hybrid Cloud
Năm đặc tính kỹ thuật: khả năng co giãn (rapid elasticity), dịch vụ theo
nhu cầu (on-demand self-service), truy xuất diện rộng (broad network access), dịch vụ được đo lường (measured service), dùng chung tài nguyên
và điều tiết dịch vụ (resource pooling)
SCADA (Supervisory Control and Data Acquisition) là một hệ thống điều khiển giám sát và thu thập dữ liệu, nhằm hỗ trợ con người trong quá trình giám sát và điều khiển từ xa hệ thống tự động hóa SCADA đã trải qua ba thế hệ (monolithic, distributed, networked) và đang phát triển ở thế hệ thứ tư (Internet of things) dựa trên nền tảng điện toán đám mây [3]
Hệ thống SCADA gồm các hệ thống con [4] được chia thành nhiều lớp như lớp thiết bị trường (bao gồm cảm biến, thiết bị chấp hành), lớp thiết bị điều khiển (gồm các bộ điều khiển), lớp giám sát điều khiển (phần mềm thu thập dữ liệu, phần mềm điều khiển quá trình) Lớp giám sát điều khiển cần phải có các tính năng cơ bản sau:
Hỗ trợ kết nối, giao tiếp với nhiều loại bộ điều khiển khác nhau
Hỗ trợ các tiêu chuẩn, giao thức kết nối phổ biến như Modbus, Profibus, CAN, v.v
Trang 18 Các báo cáo về tình trạng hoạt động, lịch sử hoạt động
Giao diện người dùng cho phép cài đặt và hiển thị các trạng thái hoạt động của hệ thống khi chạy runtime
Các vấn đề cần quan tâm khi triển khai SCADA lên điện toán đám mây đó là tính bảo mật, hiệu suất hoạt động, độ tin cậy dữ liệu [5][6][7] Có rất nhiều giải pháp
đã được đưa ra nhằm giải quyết ba vấn đề trên Tuy nhiên, các nguyên nhân dẫn đến các vấn đề trên phần lớn nằm ở cơ sở hạ tầng mạng Khi kết nối mạng chậm (ngẽn mạng hay băng thông thấp) sẽ dẫn đến việc xử lý dữ liệu bị trễ, dẫn đến sự mất thống nhất trong hệ thống (giá trị của các biến dữ liệu khác nhau giữa máy chủ và máy khách), hiệu suất hoạt động giảm và dữ liệu không còn tin cậy Về phương pháp bảo mật dữ liệu trên cloud, [9] đưa ra một phương pháp bảo mật theo nhiều lớp khác nhau
Mục tiêu
Xây dựng một hệ thống Cloud-based SCADA dựa trên nền tảng Amazon Web Service với 3 thành phần chính: SCADA Client, Cloud Database và Front-end Server Các thành phần này sẽ đảm bảo các yêu cầu như sau :
SCADA Client: cho phép thiết kế giao diện trực quan, giao tiếp với các hệ thống từ xa qua cloud và giao tiếp trực tiếp với các thiết bị bên dưới bằng giao thức Modbus
Cloud Database: thiết kế trên nền tảng Amazon Web Service Cloud Database
có cấu trúc thống nhất, cho phép dễ dàng truy xuất dữ liệu từ cả SCADA Client
và Front-End Server, đồng thời cho phép quản lý và lưu trữ được khối lượng lớn dữ liệu
Front-End Server: cho phép giao tiếp với các thiết bị trường bên dưới để truy xuất dữ liệu dựa trên chuẩn giao tiếp mới là OPC-UA
SCADA Client sẽ kết nối với Cloud Database và Cloud Database sẽ kết nối với Front-End Server Việc kết nối giữa các đối tượng này phải đảm bảo cho việc trao đổi dữ liệu được liên tục và tối ưu nhất
Ứng dụng hệ thống Cloud-based SCADA vào việc giám sát và quản lý điện năng tiêu thụ từ xa trên địa bàn Thành phố Hồ Chí Minh
Trang 19Nhiệm vụ
Xây dựng một hệ thống Cloud-based SCADA dựa trên nền tảng Amazon Web Service với 3 thành phần chính : SCADA Client, Cloud Database và Front-end Server Các thành phần này sẽ có các tính năng như sau :
SCADA Client :
- Thu thập dữ liệu thông qua Cloud hoặc thu thập dữ liệu từ các RTU: PLC, PAC, remote I/O thông qua giao thức Modbus
- Điều khiển thiết bị thông qua nhiều loại giao diện
- Cung cấp công cụ tiêu chuẩn để thiết kế các giao diện một cách dễ dàng
- Lưu trữ dữ liệu sau khi xử lý của SCADA Client
- Lưu trữ dữ liệu thu thập được từ Front-End Server
- Lưu trữ các lệnh hoặc dữ liệu điều khiển để gửi xuống thiết bị
- Lưu trữ các thông tin về quyền truy cập
- Lưu trữ các thông tin về các dự án đã thực hiện trước đó
Front-End Server :
- Thu thập dữ liệu từ các RTU: PLC, PAC, remote I/O thông qua bộ driver thiết bị được hỗ trợ
- Tiền xử lý dữ liệu
- Gửi các dữ liệu thu thập được lên Cloud Database
- Đọc các dữ liệu hoặc lệnh điều khiển trên Cloud Database mà SCADA Client gửi lên và chuyển tiếp các dữ liệu hoặc lệnh điều khiển này xuống thiết bị
- Báo lỗi các thiết bị bị hư hoặc mất kết nối
Trang 20Ứng dụng demo hệ thống Cloud-based SCADA vừa xây dựng được vào việc giám sát và quản lý điện năng tiêu thụ từ xa trên địa bàn Thành phố Hồ Chí Minh
Trong các nhiệm vụ trên, Nguyễn Văn Phú sẽ chịu trách nhiệm chính về nhiệm vụ xây dựng SCADA Client, hỗ trợ xây dựng Cloud Database và cùng xây dựng ứng dụng demo Phạm Hoàng Hải Quân sẽ chịu trách nhiệm chính về nhiệm vụ xây dựng Cloud Database và xây dựng Front-End Server, hỗ trợ xây dựng SCADA Client và cùng xây dựng ứng dụng demo
Sản phẩm của luận văn
Hệ thống Cloud-Based SCADA dựa trên nền tảng Amazon Web Service với 3 thành phần chính: SCADA Client, Cloud Database và Front-end Server
Ứng dụng demo: hệ thống giám sát và quản lý điện năng tiêu thụ từ xa trên địa bàn Thành phố Hồ Chí Minh
Trang 21LÝ THUYẾT VỀ ĐIỆN TOÁN ĐÁM MÂY VÀ HỆ THỐNG SCADA DỰA TRÊN ĐIỆN TOÁN ĐÁM MÂY
Lý thuyết về điện toán đám mây
Để xây dựng hệ thống SCADA dựa trên điện toán đám mây, trước hết ta cần hiểu
rõ bản chất của điện toán đám mây là gì, giá trị cốt lõi cùng với các chức năng mà nó
hỗ trợ
Điện toán đám mây gồm nhiều thành phần chức năng khác nhau, bỗ trợ cho nhau
để trở thành một hệ thống hoàn chỉnh Trong đó, ảo hóa là thành phần cốt lõi Ảo hóa giúp hệ điều hành không còn phụ thuộc vào kiến trúc phần cứng mà nó chạy trên đó
Ví dụ, hệ điều hành window có thể chạy trên các kiến trúc x86, x64, Arm mà không gặp bất cứ vấn đề gì Trong khi đó, điện toán đám mây giúp các ứng dụng, phần mềm không còn phụ thuộc vào hệ hành mà nó chạy trên đó Ví dụ, một ứng dụng
có thể chạy trên nhiều hệ điều hành khác nhau như Window, Linux, Mac OS, Android, IOS mà không cần phải thay đổi gì cả
Ảo hóa (Virtualization)
Để nắm rõ ảo hóa là gì, các ưu điểm nhược điểm của nó, trước hết ta cần phân biệt
và hiểu rõ các khái niệm sau:
Phần cứng (Hardware): là các thiết bị, linh kiện điện tử, vật lý hiện hữu phục vụ cho nhu cầu tính toán, ví dụ như CPU, RAM, ổ cứng, mainboard, v.v
Hệ điều hành (OS - Operating System): là phần mềm chạy trên phần cứng, dùng để điều hành, quản lý các thiết bị phần cứng và các tài nguyên trên máy tính Hệ điều hành đóng vai trò trung gian trong việc giao tiếp giữa người dùng và phần cứng máy tính, cung cấp một môi trường cho phép người dùng phát triển và thực hiện các ứng dụng của họ một cách dễ dàng
Nền tảng (Platform): bao gồm hệ điều hành và phần cứng mà nó chạy trên
đó
Ảo hóa là sự trừu tượng hóa phần cứng thành phần mềm, tách hệ điều hành (OS)
ra khỏi phần cứng (hardware), làm nó không còn phụ thuộc vào phần cứng Trong khi
đó, điện toán đám mây là nhằm tách ứng dụng phần mềm ra khỏi platform Ảo hóa là một thành phần nằm trong điện toán đám mây
Phương pháp ảo hóa cho các máy chủ
Các trung tâm dữ liệu bao gồm nhiều máy chủ (server) hoạt động Mỗi server sẽ được cài đặt ban đầu hệ điều hành, phần mềm trên một phần cứng cố định Khi các server gặp sự cố, không hoạt động được thì hệ thống tê liệt, làm gián đoạn hoạt động sản xuất Để giải quyết vấn đề này, các server thường được lắp đặt thêm các server dự phòng Khi server chính gặp sự cố, các server dự phòng sẽ đảm nhiệm tiếp tục công
Trang 22việc trong khi chờ đợi server chính khắc phục sự cố Đối với những hệ thống quan trọng, một server chính sẽ có thêm hai đến ba (hoặc nhiều hơn) các server dự phòng Phương pháp này chi phí cao, hệ thống cồng kềnh, cài đặt, bảo trì, nâng cấp, mở rộng cực kỳ khó khăn, gần như phải thao tác cài đặt trên cả phần cứng, hệ điều hành, phần mềm lại từ đầu
Hình 2-1 Hệ thống máy chủ khi chưa có ảo hóa
Với phương pháp ảo hóa, nhiều server có thể chạy song song trên cùng một hardware Khi server gặp sự cố về phần cứng, ta chỉ việc đơn giản thay thế phần cứng
mà không cần phải cài đặt gì lại cho server Khi hệ điều hành server gặp sự cố, chỉ đơn giản cho chạy một ảnh khác của server này Việc bảo trì nâng cấp mở rộng cực kỳ đơn giản, nhanh chóng, tiện lợi và chi phí thấp
Trang 23Hình 2-2 Hệ thống máy chủ khi sử dụng ảo hóa Hypervisor là thành phần chính của ảo hóa Nó dùng để ảo hóa các thành phần
phần cứng vật lý thành giao diện phần mềm Nó đóng vai trò trung gian giữa phần cứng và hệ điều hành Mọi yêu cầu từ hệ điều hành xuống phần cứng phải thông qua hypervisor Ngược lại, các phản hồi từ phần cứng phải đi qua hypervisor rồi mới đến các hệ điều hành Dựa trên nền tảng của hypervisor, nhiều loại hệ điều hành với môi trường của nó có thể chạy song song với nhau Có hai loại hypervisor: native hypervisor và hosted hypervisor
Native hypervisor: Là loại hypervisor được cài đặt trực tiếp lên máy chủ vật lý (không thông qua hệ điều hành) Tuy nhiên, ta cần thêm một máy trạm khác để cài đặt và quản lý các OS chạy trên hypervisor này thông qua Hypervisor Management Console (HMC)
Hosted Hypervisor: đây là loại hypervisor phổ biến hơn, nó được cài đặt lên máy chủ vật lý thông qua hệ điều hành của máy đó Do đó, hosted hypervisor có thể được sử dụng để chạy các hệ điều hành khác với hệ điều
Trang 24hành của máy chủ
Các hypervisor phổ biến hiện nay dùng để ảo hóa đó là Hyper-V của Microsoft và vSphere của VMWare Các phần mềm này được sử dụng rất đơn giản để có thể ảo hóa phần cứng, nó đưa ra các máy ảo (virtual machine), ta tiến hành cài đặt hệ điều hành
và phần mềm cho server Các VM này được lưu trữ thành dạng các tập tin trên ổ cứng
Giải pháp dự phòng cho máy chủ bằng công nghệ ảo hóa
Sử dụng hai máy chủ đã ảo hóa trên hai máy chủ vật lý khác nhau và chạy song song đồng thời:
Active server: máy chủ ảo hóa chạy chính các server ảo
Shadow server: máy chủ ảo hóa dự phòng
Shadow server được đồng bộ với active server theo thời gian thực Khi active server gặp sự cố, shadow server sẽ đảm nhận tiếp tục công việc của nó Khi active server khắc phục được sự cố, nó sẽ đồng bộ lại từ shadow server và đảm nhận lại việc
xử lý dữ liệu hệ thống Bởi vì hai máy chủ ảo hóa được đồng bộ theo thời gian thực nên sẽ đảm bảo được hệ thống hoạt động liên tục và thông suốt
Dựa trên ưu điểm này của ảo hóa, điện toán đám mây phát triển nó thành một trong những tính năng quan trọng của mình Trên điện toán đám mây, người dùng chỉ đơn giản cài đặt là sẽ có bao nhiêu hệ thống dự phòng cho hệ thống chính, việc cài đặt
còn lại sẽ được hệ thống cài đặt và vận hành một cách tự động
Trang 25Hình 2-3 Giải pháp cho hệ thống dự phòng bằng công nghệ ảo hóa
Các vấn đề cần quan tâm và giải pháp khi sử dụng ảo hóa cho các máy
chủ
Hiệu năng: khi phân bổ tài nguyên để các chạy các server ảo song song, lượng tài nguyên vật lý sẽ cạn kiệt dần, làm giảm hiệu năng hoạt động của các server ảo, làm chậm toàn bộ hệ thống Cần thiết phải lên kế hoạch từ đầu lượng tài nguyên và số lượng máy ảo cung cấp tối đa, nhằm tránh tình trạng trên xảy ra
Xung đột phần cứng: khi nhiều server ảo cùng truy cập vào một tài nguyên duy nhất (ví dụ card mạng) sẽ dễ gây ra tình trạng xung đột trên bus hệ thống, có khả năng gây treo hệ thống Cần thiết phải ảo hóa các thành phần này một cách chặt chẽ, nhằm tránh xung đột
Tính real-time: Hệ thống chạy trên nền tảng ảo hóa sẽ thực thi chậm hơn so với chạy trên phần cứng thực sự Bởi vì nó được chạy thông qua phần mềm, rồi mới đến phần cứng Một giải pháp cho vấn đề này đó là sử dụng
Trang 26ảo hóa dưới sự hổ trợ trực tiếp của phần cứng VT-x của Intel hoặc AMD-V của AMD Các công nghệ này đã được tích hợp vào các chipset của họ Các chức năng của hypervisor sẽ được tích hợp trực tiếp vào phần cứng, các mô phỏng giả lập phần cứng cũng do các chipset này thực thi Do đó, các lệnh được yêu cầu từ các máy ảo sẽ được thực thi nhanh hơn
Ảo hóa trong SCADA
Ảo hóa môi trường SCADA nhằm mục đích giảm bớt về chi phí cho phần cứng, kiến trúc và hạ tầng hệ thống, cho phép tích hợp hệ thống SCADA vào nền tảng, kiến trúc, hạ tầng hiện tại
Các hệ thống công nghiệp có thể sẽ thay đổi bất kỳ lúc nào tùy theo nhu cầu sản xuất, kinh doanh Các thay đổi này có thể là các thay đổi về vật lý như thêm motor, valve, hệ thống ống, hướng dòng chảy… Hoặc các thay đổi về phần mềm như thêm các chức năng của SCADA: data historian, MES, ERP,… Ảo hóa cho phép thêm bớt các thành phần mà không tốn quá nhiều nổ lực, chi phí và là giải pháp có thể đáp ứng nhanh nhất đối với các yêu cầu thay đổi này Một ví dụ khác, khi phát triển một hệ thống mới, đòi hỏi cần phải kiểm tra hệ thống trước khi vận hành Việc xây dựng môi trường phần cứng cho kiểm tra tốn nhiều chi phí, nổ lực để thực hiện và bị
bỏ đi khi kiểm tra xong hệ thống Ảo hóa cho phép xây dựng một môi trường kiểm tra tương tự trên mà không tốn nhiều chi phí và nổ lực Trong khi đó, sau khi kiểm tra, nó sẽ trả tài nguyên lại cho hệ thống sử dụng
Điện toán đám mây
Điện toán đám mây là một mô hình cho phép truy cập một cách thuận tiện từ mọi nơi đến những tài nguyên cho điện toán như mạng, máy chủ, lữu trữ, ứng dụng và dịch vụ Nó có thể được cung cấp cho người dùng hoặc lấy lại một cách dễ dàng mà không mất nhiều thời gian công sức cho quản trị Mô hình điện toán đám mây đưa ra năm đặc tính, ba mô hình dịch vụ và bốn cách để triển khai
Đối với ảo hóa, việc cấp phát hiệu năng, tài nguyên, lưu trữ, ứng dụng, nền tảng cho các server được người dùng cài đặt và giám sát local tại máy chủ đó Điện toán đám mây nâng cao khả năng của ảo hóa, bằng cách cho phép cài đặt và giám sát từ xa thông qua internet Người dùng hoàn toàn không biết thông tin về các thành phần vật
lý này như đặt ở đâu, ai quản lý, của hãng sản xuất nào, v.v Mặt khác, nó cung cấp việc tự động hóa các cài đặt chi tiết kỹ thuật bên trong hệ thống, người dùng chỉ đơn giản cài đặt những gì mình mong muốn
Ba thành phần chính để cấu tạo nên 1 cloud đó là computing, storage và network
Computing: bao gồm tất cả nhân xử lý tín hiệu CPU và RAM tại datacenter
Storage: bao gồm toàn bộ bộ nhớ để chứa dữ liệu tại datacenter
Trang 27 Network: kết nối mạng thực giữa các máy chủ thực tại datacenter
Tại một trung tâm dữ liệu, tập hợp tất cả các thành phần vật lý computing, storage, network sẽ được ảo hóa hoàn toàn Sau đó chia nhỏ nó ra thành nhiều cloud khác nhau
Điện toán đám mây cung cấp ba loại hình dịch vụ:
Software as a Service (SaaS): Cung cấp người dùng các dịch vụ về phần mềm (application) thông qua web như google docs, google excels, v.v
Platform as a Service (PaaS): Cung cấp cho người dùng các dịch vụ nền tảng (hardware và OS) để họ cài đặt ứng dụng trên đó
Infrastructure as a Service (IaaS): Cung cấp cho người dùng các dịch vụ về phần cứng (CPU, RAM, storage, network)
On premises: người dùng quản trị tất cả các thành phần (mô hình được sử dụng hiện tại vì chi phí đầu tư nhỏ đối với các hệ thống nhỏ)
IaaS: nhà cung cấp quản lý các thành phần phần cứng và virtualization, người dùng quản lý các thành phần phần mềm còn lại
PaaS: nhà cung cấp quản lý các thành phần phần cứng, virtualization, OS, middleware, runtime Người dùng quản lý data và application
SaaS: nhà cung cấp quản lý tất cả các thành phần phần cứng lẫn phần mềm
Trang 28Người dùng đơn giản sử dụng các phần mềm mà nhà cung cấp cung cấp
Hình 2-5 Mô hình các thành phần hệ thống trong cloud
Luận văn hướng tới xây dựng một SCADA ứng dụng dịch vụ Database dựa trên
PaaS của nhà cung cấp
Điện toán đám mây có năm đặc tính sau:
Dịch vụ theo yêu cầu (Ondemand Seft-Service): Người dùng gửi yêu cầu thông qua trang web cung cấp dịch vụ, hệ thống của nhà cung cấp sẽ đáp ứng để người dùng có thể tự phục vụ như: tăng – giảm thời gian sử dụng server và dung lượng lưu trữ, … mà không cần phải trực tiếp yêu cầu nhà cung cấp dịch vụ, tức là mọi nhu cầu khách hàng đều được xử lý trên internet
Truy xuất diện rộng (Broad network access): Cloud Computing Service là tập hợp các dịch vụ công nghệ thông tin được cung cấp thông qua môi trường internet, ở đó người dùng thích dịch vụ gì thì dùng dịch vụ ấy, dùng bao nhiêu trả bấy nhiêu, được lựa chọn những dịch vụ tốt nhất ở bất cứ đâu vào bất cứ lúc nào Như vậy người dùng có kết nối internet là có thể sử dụng dịch vụ, Cloud Computing Service không yêu cầu người dùng phải có khả năng xử lý cao, người dùng có thể truy xuất bằng các thiết bị di dộng như điện thoại, PDA, laptop
Dùng chung tài nguyên và điều tiết dịch vụ (Resource pooling): Nhà cung cấp dịch vụ cho phép người dùng dùng chung tài nguyên do họ cung cấp dựa trên mô hình “multi-tenant”, tài nguyên được phân phát rất linh hoạt tùy theo nhu cầu của người dùng Khi nhu cầu của một người dùng nào đó giảm xuống, lập tức phần tài nguyên dư thừa sẽ được phục vụ cho người dùng khác Nếu một người dùng 4 CPU từ 7 – đến 11 giờ hàng ngày, một
Trang 29người dùng khác thuê 4 CPU tương tự 13 giờ đến 17 giờ hàng ngày thì họ
có thể dùng chung 4 CPU đó
Khả năng co giãn (Rapid elasticity): tự động mở rộng hoặc thu nhỏ hệ thống theo yêu cầu người dùng Ví dụ, một người dùng ký hợp đồng thuê một Server gồm 4 CPU Nếu lượng truy cập thấp chỉ cần 1 CPU là đủ, khi
đó hệ thống quản lý của nhà cung cấp dịch vụ sẽ tự ngắt bớt 3 CPU, người dùng không phải trả phí cho 3 CPU nói trên và chúng được đưa sang phục
vụ người dùng khác Đến khi nhu cầu tăng tức là lượng truy cập tăng, hệ thống ngay lập tức sẽ tự động thêm CPU vào, nếu nhu cầu vượt quá 4 CPU thì người dùng trả phí theo hợp đồng đã ký với nhà cung cấp
Dịch vụ đo lường được (Measured service): hệ thống điện toán đám mây tự động điều khiển và tối ưu tài nguyên sử dụng nhờ vào khả năng đo lường được (như thời gian sử dụng bộ nhớ, CPU xử lý, băng thông, số lượng tài khoản truy cập vào hệ thống…) Độ sử dụng tài nguyên có thể giám sát, điều khiển, báo cáo cho nhà cung cấp lẫn người sử dụng
Điện toán đám mây được triển khai trên các mô hình sau:
Private cloud: là mô hình trong đó hạ tầng đám mây được sở hữu bởi một
tổ chức và phục vụ cho người dùng của tổ chức đó Private Cloud có thể được vận hành bởi một bên thứ ba và hạ tầng đám mây có thể được đặt bên trong hoặc bên ngoài tổ chức sở hữu (tại bên thứ ba kiêm vận hành hoặc thậm chí là một bên thứ tư) Private Cloud được các tổ chức, doanh nghiệp lớn xây dựng cho mình nhằm khai thác ưu điểm về công nghệ và khả năng quản trị của điện toán đám mây Với Private Cloud, các doanh nghiệp tối
ưu được hạ tầng IT của mình, nâng cao hiệu quả sử dụng, quản lý trong cấp phát và thu hồi tài nguyên, qua đó giảm thời gian đưa sản phẩm sản xuất, kinh doanh ra thị trường
Public Cloud: được một tổ chức sở hữu và cung cấp dịch vụ rộng rãi cho tất
cả các khách hàng thông qua hạ tầng internet hoặc các mạng công cộng diện rộng Các ứng dụng khác nhau chia sẻ chung tài nguyên tính toán, mạng và lưu trữ Do vậy, hạ tầng Cloud Computing được thiết kế để đảm bảo cô lập dữ liệu giữa các khách hàng và tách biệt về truy cập Các dịch
vụ Public Cloud hướng tới số lượng khách hàng lớn nên thường có năng lực về hạ tầng cao, đáp ứng nhu cầu tính toán linh hoạt, đem lại chi phí thấp cho khách hàng Cho nên khách hàng của dịch vụ trên Public Cloud sẽ bao gồm tất cả các tầng lớp mà khách hàng cá nhân và doanh nghiệp nhỏ sẽ được lợi thế trong việc dễ dàng tiếp cận các ứng dụng công nghệ cao, chất lượng mà không phải đầu tư ban đầu, chi phí sử dụng thấp, linh hoạt
Community Cloud: Với mô hình đám mây chung, hạ tầng đám mây được chia sẻ bởi một số tổ chức cho cộng đồng người dùng trong các tổ chức đó Các tổ chức này do đặc thù không tiếp cận với các dịch vụ đám mây công
Trang 30cộng (Public Cloud) và chia sẻ chung một hạ tầng Cloud Computing để nâng cao hiệu quả đầu tư và sử dụng
Hybrid Cloud: Mô hình bao gồm hai hoặc nhiều hơn các đám mây trên tích hợp với nhau Mô hình này cho phép chia sẻ hạ tầng hoặc đáp ứng nhu cầu trao đổi dữ liệu Mô hình điện toán đám mây là mô hình mới, mô hình ứng dụng và khai thác điện toán mới, được đánh giá mang lại hiệu quả cao Trong tương lai, khách hàng và doanh nghiệp sẽ quen với việc sử dụng các phần mềm và lưu trữ dữ liệu ở trên “mây’
Hình 2-6 Mô hình và các dịch vụ của Cloud Computing
Ưu điểm của cloud computing cho hệ thống SCADA
Lợi ích lớn nhất của điện toán đám mây đó là khả năng mở rộng Sự xuất hiện một cách đột ngột lượng dữ liệu lớn đòi hỏi phải xử lý trong hệ thống SCADA xuất hiện rất thường xuyên Do đó, trong hệ thống công nghiệp thường có các thiết bị đi kèm nhằm có thể xử lý được các tình huống như vậy Cloud computing giúp giảm bớt các thiết bị đi kèm này, làm giảm chi phí cho hệ thống
Bên cạnh đó, điện toán đám mây nâng cao những tính năng kỹ thuật và tính khả dụng cho các thiết bị di động Các thiết bị di động thông minh đang phát triển một cách mạnh mẽ Việc tích hợp SCADA lên cloud là một bước quan trọng cho hệ thống SCADA mới trong tương lai
Các vấn đề cần quan tâm khi triển khai SCADA lên cloud
Tính bảo mật: các nhà cung cấp dịch vụ cloud computing đưa ra rất nhiều phương pháp giải thuật nhằm đảm bảo bảo mật thông tin của người dùng Tuy nhiên vẫn có trường hợp các nhà cung cấp này bị hacker xâm nhập Một khi hệ thống SCADA đưa lên pubic cloud, không gì có thể đảm bảo rằng các thông tin quan trọng của chúng ta là an toàn Do đó, ta cần cân
Trang 31nhắc kỹ những thông tin nào sẽ được đưa lên public cloud, những thông tin
gì sẽ chỉ được phép nằm ở private cloud
Hiệu năng: vấn đề lớn đáng quan tâm là hiệu năng hoạt động của cloud computing, nó có tốt bằng các hế thống hiện tại không Cloud computing rất phụ thuộc vào băng thông kết nối mạng (bởi vì mọi yêu cầu tính toán đều phải đi qua đường truyền mạng), khi băng thông quá tải hoặc gặp sự
cố, nó sẽ dẫn đến tình trạng trễ của hệ thống Dẫn đến thông tin giám sát điều khiển từ trung tâm và tại local không đồng nhất, dẫn đến điều khiển sai mục đích (rất nguy hiểm) Cloud-based SCADA hoàn toàn đáp ứng được các ứng dụng giám sát điều khiển mà không cần theo thời gian thực Đối với các hệ thống thời gian thực, thì đòi hỏi kết nối mạng phải nhanh và thông suốt
Độ tin cậy: đối với các hệ thống điều khiển quá trình, việc mất kết nối từ thiết bị điều khiển đến Cloud-based SCADA (do cloud gặp sự cố, hoặc đường truyền có vấn đề) ảnh hưởng rất to lớn, có thể gây hậu quả nghiêm trọng cho sản xuất Vì thế, cần cân nhắc kỹ sẽ triển khai SCADA lên mô hình cloud nào (public cloud hay private cloud)
Amazon Web Services (AWS)
Giới thiệu về Amazon Web Services
Amazon Web Services là tập hợp các dịch vụ cung cấp cho người lập trình có khả năng truy cập tới hạ tầng kiến trúc tính toán kiểu sẵn sàng-để-sử dụng (ready-to-use) của Amazon Các máy tính có nền tảng vững chắc đã được xây dựng và tinh chế qua nhiều năm của Amazon bây giờ là có thể cho phép bất cứ ai cũng có quyền cập tới Internet Amazon cung cấp một số dịch vụ Web nhưng trong loạt bài viết này chỉ tập trung vào các dịch vụ khối hợp nhất (building-block) cơ bản, cái mà đáp ứng được một số yêu cầu cốt lõi của hầu hết các hệ thống như: lưu trữ, tính toán, truyền thông điệp và tập dữ liệu
Có thể xây dựng các ứng dụng phức tạp và gồm nhiều phần khác nhau bằng cách sử dụng các chức năng phân tầng với các dịch vụ đáng tin cậy, hiệu quả khối hợp nhất được cung cấp bởi Amazon Các dịch vụ Web mà tồn tại bên trong đám mây phía bên ngoài môi trường và có khả năng thực hiện là rất cao Sẽ trả chỉ dựa trên những cái sử dụng mà không cần phải trả trước các chi phí và vốn đầu tư ban đầu Không cần phải mất chi phí cho bảo trì bởi vì phần cứng được duy trì và phục vụ bởi Amazon
Cơ sở hạ tầng ảo là cỗ máy san đường khổng lồ trong thế giới chịu chi phối từ web ngày nay Trong một phút, có thể nhanh chóng kết hợp thành một nền tảng hạ tầng mà có thể sẽ mất hàng tuần để làm việc đó trong một cửa hàng công nghệ thông tin trong thế giới thực Điểm quan trọng là, cơ sở hạ tầng là mềm dẻo và có thể thay đổi lên hay xuống tùy theo nhu cầu Các công ty trên thế giới đang chuẩn bị để sử dụng tính toán mềm dẻo này (xem hộp bên cạnh)
Trang 32Sự tự do từ sự hạn chế của lượng lớn vốn đầu tư cơ sở hạ tầng và khả năng bảo trì tạo cơ hội lớn hơn cho sự đổi mới Có thể tập trung vào các ý tưởng kinh doanh thay vì quan tâm đến sự hao mòn của một lượng lớn các máy chủ có, ví dụ bạn lo lắng
về khả năng chạy ra ngoài không gian đĩa, v.v Theo ước tính của Amazon, các doanh nghiệp sử dụng hơn 70% thời gian của họ trong việc xây dựng và bảo trì hạ tầng cơ
sở, trong khi chỉ sử dụng 30% thời gian để làm việc với các ý tưởng thực sự để tạo ra sức mạnh của doanh nghiệp Amazon lo lắng về các vấn đề chi tiết cơ bản của phần cứng và hạ tầng cơ sở — và làm thế nào để có được hiệu quả cao — trong khi bạn tập trung vào việc mang các ý tưởng của bạn tới cuộc sống
Các thành phần chính của hạ tầng cơ sở của trang Web này, cái mà cung cấp hầu hết các khối xây dựng cơ bản phổ biến cần thiết cho hầu hết các ứng dụng không tầm thường:
Lưu trữ (Storage)
Mọi người đều cần phải lưu trữ — cho các tệp, các tài liệu, các dữ liệu tải về của người dùng hoặc các bản sao lưu Có thể tiến hành lưu trữ bất kỳ các ứng dụng cần thiết trong Amazon Simple Storage Service (S3) và nhận được các lợi ích với nó như có khả năng mở rộng, đáng tin cậy và với mức chi phí thấp cho việc lưu trữ
Tính toán (Computing)
Amazon Elastic Compute Cloud (EC2) cung cấp khả năng để mở rộng tài nguyên tính toán lớn lên hoặc giảm xuống dựa trên nhu cầu và tạo ra khả năng cung cấp dịch vụ mới một cách dễ dàng
Gửi thông điệp (Messaging)
Thực hiện tách riêng các thành phần ứng dụng bằng cách sử dụng khả năng không giới hạn của việc truyền thông điệp được cung cấp bởi Amazon Simple Queue Service (SQS)
Tập hợp dữ liệu (Datasets)
Amazon SimpleDB (SDB) cung cấp khả năng mở rộng, lập chỉ mục, khả năng lưu trữ mà không cần bảo trì, cùng với việc thực hiện xử lý và truy vấn với tập hợp dữ liệu
Bạn có thể thực hiện trộn và kết hợp các dịch vụ khi cần thiết; bạn được thiết
kế để làm việc với những người khác Bởi vì bạn đang chạy trong môi trường Amazon tất cả sự liên lạc thuộc về các dịch vụ này sẽ luôn luôn được thực hiện một cách nhanh chóng Nhà doanh nghiệp có thể xây dựng các ứng dụng có khả năng mở rộng và tin cậy bằng cách phân nhánh vào hạ tầng cơ sở ảo, cái mà mất chi phí ít hơn là cách tiếp cận dựa trên nền ứng dụng máy chủ truyền thống cái mà yêu cầu một lượng lớn máy chủ để phục vụ cho sự thay đổi thường xuyên của yêu cầu Nó cũng cung cấp một số mức độ cao của sự dư thừa
Trang 33Có hai mức độ được hỗ trợ cho người dùng của Amazon Web Services:
o Hỗ trợ dựa trên diễn đàn tự do từ nhân viên Amazon, người điều khiển các diễn đàn thảo luận Amazon
o Hỗ trợ các cặp đóng gói cái, cung cấp kiểu một-tới-một và kiểu hỗ trợ thông qua điện thoại và là cách thận trọng hơn cách yêu cầu trợ giúp
Amazon xuất bản khả năng của tất cả các dịch vụ Web trong một thể truy cập công khai bảng điều khiển cái được cập nhật với bất kỳ kết quả nào về các dịch vụ Trong suốt thời gian ngừng chạy của bất kỳ dịch vụ nào, các thành viên của Amazon Web Services đều gửi các cập nhật 15 - 30 phút một lần trong khi họ đang làm việc trên một vấn đề nào đó và cho đến khi vấn đó đề đó được xác định
Amazon cung cấp các giao diện chuẩn dựa trên SOAP và REST để tương tác với từng dịch vụ Các thư viện phát triển hoặc là từ Amazon hoặc từ một trong các ngôn ngữ cho phép, như Ruby, Python, Java™, Erlang và PHP, để thực hiện trao đổi với các dịch vụ này Các công cụ dòng lệnh là cũng có thể để thực hiện quản lý tài nguyên tính toán trên EC2 Giao diện REST là dễ dàng sử dụng; bạn có thể sử dụng chương trình bên phía máy khách được viết bằng bất cứ ngôn ngữ nào dưới dạng giao thức HTTP để cho phép thực hiện gửi yêu cầu tới các dịch vụ Web
Lưu trữ với Amazon S3
Amazon Simple Storage Service (S3) cung cấp các giao diện dịch vụ Web cho việc lưu trữ và khôi phục dữ liệu Dữ liệu được cho ở bất kỳ loại nào và có thể được lưu trữ và truy cập đến từ bất kỳ vị trí nào thông qua Internet Bạn có thể lưu trữ không giới hạn một lượng lớn các đối tượng trong S3 với kích thước của mỗi đối tượng trong khoảng từ 1 byte tới 5 GB Các lưu trữ là có thể ở trong Hoa Kỳ hoặc trong Liên Minh Châu Âu Bạn có thể chọn vị trí lưu trữ cho các đối tượng của bạn
khi bạn tạo ra buckets, cái mà tương tự như khái niệm của thư mục trong hệ thống xử
lý của bạn Dữ liệu được lưu trữ an toàn bằng cách sử dụng cùng hạ tầng cơ sở lưu trữ Amazon sử dụng sức mạng của mình trên toàn thế giới với một mạng lưới các trang Web thương mại điện tử
Sự hạn chế truy cập có thể được xác định cho từng đối tượng bạn lưu trữ trong S3, và các đối tượng này có thể được truy cập với các yêu cầu HTTP đơn giản Thậm chí bạn có thể tạo ra các đối tượng để tải về bằng cách sử dụng giao thức BitTorrent
S3 giải phóng hoàn toàn cho bạn về các lo lắng cho không gian lưu trữ, truy cập vào dữ liệu, hoặc bảo vệ dữ liệu Bạn thậm chí không phải đối phó với chi phí của việc bảo trì các máy chủ lưu trữ Amazon đảm bảo ở mức độ cao khả năng lưu trữ các tệp của bạn vì thế nó luôn luôn sẵn sàng bất kỳ khi nào bạn cần đến chúng Các thỏa thuận cấp độ dịch vụ được cung cấp bởi Amazon cho S3 là lên tới 99,9% thời gian chạy máy hàng tháng
Trang 34Elastic computing with Amazon EC2
Amazon EC2 là dịch vụ Web cho phép bạn yêu cầu các máy ảo trong vòng một vài phút và dễ dàng thay đổi khả năng của bạn hoặc tải xuống dựa trên nhu cầu Bạn chỉ cần phải trả chi phí cho khoảng thời gian mà bạn sử dụng Nếu bạn muốn tăng khả năng tính toán của bạn nên, bạn có thể nhanh chóng tiếp cận khởi tạo máy áo và sau
đó chấm dứt chúng khi mà nhu cầu của bạn giảm đi
Những trường hợp mà dựa trên Linux® và có thể chạy trên bất kỳ ứng dụng nào hoặc phần mềm nào bạn muốn Bạn có thực hiện điều khiển cho từng trường hợp
cụ thể Môi trường của EC2 là được xây dựng trên cùng mã nguồn
mở Xen hypervisor, cái được phát triển tại trường Đại học Cambridge Amazon cho phép bạn tạo ra hình ảnh máy Amazon (AMIs) cái thực hiện hành động như là các khuôn mẫu cho các ví dụ của bạn Truy cập với các ví dụ có thể được điều khiển bằng việc xác định được các quyền cho phép Bạn cũng có thể làm bất cứ cái gì bạn muốn với chúng tuy chỉ có một hạn chế duy nhất là yêu cầu bạn cần sử dụng dựa trên Linux Thời gian gần đây, khi mà Open Solaris được công bố trong một quan hệ đối tác với Sun Microsoftsystem, nhưng phần lớn các thương mại miễn phí và có sẵn được xây dựng cho EC2 đều dựa trên nền tảng Linux
Amazon EC2 cung cấp chính xác quy mô máy tính cái cho phép dễ dàng để thay đổi quy mô tài nguyên tính toán của bạn lên và xuống Bạn hoàn toàn kiểm soát được môi trường tính toán cái mà chạy trong trung tâm dữ liệu của Amazon Amazon cung cấp năm kiểu của các máy chủ; để cho phép bạn chọn lựa một trong các loại này phù hợp với ứng dụng cần thiết của bạn Các máy chủ cung cấp từ loại đơn lõi x86 đến loại tám lõi x86_64 Bạn có thể thay thế các trường hợp trong các mô hình địa lý khác nhau hoặc trong các vùng mà từ chỗ đảm bảo thực hiện đến chỗ có thể thất bại Amazon cũng chỉ dẫn khái niệm của địa chỉ IP thay đổi cho phép làm việc với địa chỉ động
Khả năng truyền thông điệp tin cậy của Amazon Simple Queue Service
Amazon Simple Queue Service (SQS) cung cấp khả năng truy cập tới hạ tầng kiến trúc thông điệp đảm bảo được sử dụng bởi Amazon Bạn có thể thực hiện gửi và nhận các thông điệp từ bất cứ nơi nào bằng cách sử dụng các yêu cầu HTTP đơn giản dựa trên REST Không cần phải cài đặt cái gì, không cần phải thực hiện cấu hình gì
cả Bạn có thể tạo ra một lượng không giới hạn của các hàng đợi và gửi một lượng không giới hạn các tin nhắn Các tin nhắn được lưu trữ bởi Amazon thông qua nhiều máy chủ và các trung tâm dữ liệu để cung cấp khả năng dư thừa và đáng tin cậy bạn cần từ hệ thống nhắn tin Mỗi một tin nhắn có thể chứa lên tới 8KB dữ liệu văn bản Chỉ sử dụng các ký tự dạng Unicode với nguyên tắc sau phải tuân thủ
Mỗi một hàng đợi có thể phải định dạng xác định khoảng thời gian timeout (hạn thời gian), cái được sử dụng để điều khiển cách truy cập tới hàng đợi bởi nhiều người đọc khác nhau Mỗi một ứng dụng đọc một thông điệp từ hàng đợi, thông điệp
Trang 35này sẽ không được đọc bởi bất kỳ một người đọc khác cho đến khi khoảng thời gian timeout kết thúc Thông điệp sẽ được lặp lại trong hàng đợi sau một khoảng thời gian timeout được xác định sau đó nó được giữ bởi một bộ xử lý đọc khác
SQS tích hợp rất tốt với các Amazon Web Sercives khác Nó cung cấp một cách nào đó để xây dựng hệ thống riêng biệt nơi mà EC2 của bạn có thể trao đổi với các hệ thống khác bằng cách gửi thông điệp tới SQS và phối hợp các luồng làm việc Bạn cũng có thể sử dụng các hàng đợi để xây dựng hạ tầng tự phục hồi, tự động mở rộng dựa trên EC2 cho các ứng dụng của bạn Bạn có thể bảo đảm các thông điệp trong hàng đợi của bạn tránh bị truy cập trái phép bằng cách sử dụng cơ chế xác thực được cung cấp bởi SQS
Xử lý tập hợp dữ liệu với Amazon SimpleDB
Amazon SimpleDB (SDB) là dịch vụ Web cho phép lưu trữ, xử lý và truy vấn tập hợp dữ liệu có cấu trúc Ở đây không phải là một cơ sở dữ liệu quan hệ theo cách tiếp cận truyền thống mà ở mức độ cao hơn dưới dạng các sơ đồ, với dữ liệu ít cấu trúc lưu trữ trong các đám mây và trong đó bạn có thể sử dụng để lưu trữ và khôi phục các giá trị khóa Mỗi một tập hợp các giá trị khóa cần phải có một tên một mục duy nhất; các mục là được phân chia vào từng miền khác nhau Mỗi một mục có thể lưu giữ lên tới 256 cặp giá trị khóa của dữ liệu Bạn có thể thực thi các truy vấn dựa trên tập dữ liệu của bạn trong từng miền khác nhau Các truy vấn dựa theo từng miền là không được hỗ trợ bởi SDB
SDB là một cách đơn giản để sử dụng và cung cấp hầu hết các chức năng của
cơ sở dữ liệu quan hệ Sự duy trì là đơn giản hơn nhiều so với cơ sở dữ liệu điển hình bởi vì không cần phải cài đặt hoặc định dạng Amazon quan tâm nhiều tới tất cả các việc liên quan đến quản trị Dữ liệu là được tự động đánh chỉ mục bởi Amazon và là sẵn có cho bạn tại bất kỳ thời điểm nào từ bất kỳ chỗ nào Một lợi thế quan trọng của khóa là không được sử dụng cho các sơ đồ đó là khả năng chèn dữ liệu vào khi đang hoạt động và thêm các cột hoặc các khóa động
SDB là một phần của cơ sở hạ tầng Amazon, và khả năng mở rộng được thực hiện một cách tự động đối với bạn tùy từng tình huống Bạn có thể tự do tập trung sự chú ý của bạn vào một số thứ quan trọng Một lần nữa, bạn chỉ phải trả chi phí chỉ cho tập dữ liệu tài nguyên mà bạn sử dụng
Khả năng mở rộng của kiến trúc
Amazon Web Services có thể giúp bạn kiến trúc mở rộng hệ thống bằng cách cung cấp:
Khả năng đáng tin cậy (Reliability)
Các dịch vụ hoạt động trong trung tâm dữ liệu với tính sẵn sàng cao và được kiểm tra qua thực tế
Trang 36Bảo mật
Cơ chế bảo mật và xác thực cơ bản là có sẵn của bên ngoài hộp lựa chọn, và bạn có thể nâng cao chúng khi cần bằng cách bảo mật từng tầng ứng dụng riêng của bạn ở các mức trên của dịch vụ
Các lợi ích về giá cả
Không có một chi phí cố định hoặc các chi phí nào về bảo trì Bạn phải chỉ trả các dịch vụ như bạn sử dụng, và khả năng thay đổi về tài nguyên và nguồn lực khi cần thiết
Sự dễ dàng để phát triển
Các APIs đơn giản cho phép bạn khai thác được sức mạnh của toàn bộ cơ sở hạ tầng ảo cũng như các thư viện có sẵn trong hầu hết các ngôn ngữ lập trình được sử dụng rộng rãi
Tính mềm dẻo (Elasticity)
Quy mô các nguồn lực máy tính của bạn thay đổi lên hoặc xuống dựa trên nhu cầu Bạn có thể đi từ một đến bất kỳ số lượng máy phục vụ một cách nhanh chóng để phục vụ nhu cầu ứng dụng của bạn
Sự gắn kết
Có bốn khối dịch vụ cơ bản (Lưu trữ, Tính toán, Truyền thông điệp, và Tập hợp
dữ liệu) là được thiết kế từ nhóm phát triển để làm việc rất tốt với nhau, và cung cấp một giải pháp hoàn thiện trên một lượng ứng dụng tên miền
Cộng đồng
Tận dụng cộng đồng người sử dụng năng động và sôi nổi mà đang chi phối sự chấp nhận phổ biến của các dịch vụ web này và đang tạo ra các ứng dụng độc nhất được xây dựng trên cơ sở hạ tầng này
Giới thiệu về DynamoDB
DynamoDB là môt dịch vụ quản lý NoSQL có khả năng đáp ứng hiệu suất cao
và nhanh kèm theo khả năng mở rộng Nếu bạn là một nhà phát triển, bạn có
thể sử dụng DynamoDB để tạo ra một bảng có khả năng lưu trữ và truy xuất
bất kỳ số lượng dữ liệu, mà vẫn có thể phục vụ cho bất kỳ mức độ request traffic
DynamoDB tự động phân tán dữ liệu và traffic của một bảng ra một số lượng
server vừa đủ để có thể xử lý request capacity đặt ra bơi khách hàng và lượng
dữ liệu lưu trữ, và đồng thời đảm bảo hiệu suất nhanh và đồng nhất Tất cả dự liệu được lưu trữ trên SSD và tự động được sao chép ra các vùng sẵn sằng
(Availability Zones) trong một khu vực (Region) để cung cấp độ sẵn sàng cao
và độ bền của dữ liệu (high availablity and data durability)
Trang 37 Nếu bạn là một nhà quản lý dữ liệu, bạn có thể tạo một bảng dữ liệu mới, mở rộng hay thu hẹp request capacity mà không bị giảm hiệu suất, và có thể thây
được các thông số qua AWS Management Console VớiDynamoDB, bạn có
thể phó thác gánh nặng quản lý và mở rộng dữ liệu cho AWS và không phải lo lắng về việc cung cấp hardware, thiết lập và cài đặt, sao chép dữ liệu
Luận văn tập trung làm việc với DynamoDB để lưu trữ dữ liệu của dự án trên nền tẳng Database điện toán đám mây
Làm việc với DynamoDB
Bảng trong DynamoDB
Khi tạo một bảng trong Amazon DynamoBD, cần cung cấp tên bảng (dĩ nhiên
rồi), primary key và giá trị read write throughput Mỗi item trong bảng có thể
có bao nhiêu attributes tùy ý, tuy nhiên có giới hạn 400KB cho dung lượng một item
Chỉ định Primary Key: Khi tạo một bảng, thì ngoài việc khai báo tên bảng cần chỉ rõ primary key Primary key để đảm bảo rằng không có hai items nào trong bảng có cùng primary key DynamoDB hỗ trợ hai loại primary key sau:
o Partition Primary Key: Chỉ cần một attribute để tạo ra primary key
DynamoDB xây dựng Partition index không được sắp xếp cho
primary key attribute
o Partition và Soft Primary Key: Cần 2 attributes để tạo ra primary key
Attribute đầu tiền là Partition attribute và attribute còn lại là Soft
attribute DynamoDB xây dựng partition index không được sắp xếp cho partition attribute và soft index được sắp xếp cho soft attribute
Mỗi item được định danh bởi cặp primary key này Điều này cho phép 2
items có cùng partition attribute nhưng khác soft attribute cùng tồn tại
trong một bảng
Trong quá trình tạo bảng, chỉ rõ mức têu thụ (throughput) yêu cầu theo đơn vị
là capacity unit Có thể thay đổi (tăng hoặc giảm) chỉ số này
qua UpdateTable request
o Strongly consistent: đảm bảo dữ liệu lấy ra là dữ liệu mới nhất
o Eventually consistent: đảm bảo rằng sau này dữ liệu sẽ đồng bộ hết
trên phân vùng nhưng không đảm bảo dự liệu trả về vào một thời điểm nhất định là mới nhất
o Read capacity unit - Con số phản ánh số lượng đọc strongly consitent
của các item không quá 4KB
Trang 38o Write capacity unit - Số lượng những lần ghi có dung lượng 1KB mỗi
giây Có nghĩa rằng nếu yêu cầu 10 write capacity units là đang yêu cầu mức tiêu thụ 10 writes với dung lượng 1 KB mỗi giây của bảng đó DynamoDB sử dụng những capacity unit này để cung cấp tài nguyên đầy đủ cho lượng tiêu thụ yêu cầu
Một strongly consistent read tương đương 2 evenly consitent read Xem bảng sau để hiểu hơn
Tương tự với write thì cũng có hai hàm để ghi
là #put_item và #batch_write_item nhưng 1 write chỉ nhận 1KB dữ liệu
Secondary index
Để giúp cho việc truy cập dữ liệu, Amazon DynamoDB tạo và quản lý index cho primary key Việc này giúp cho hệ thống truy cập dữ liệu khá nhanh khi chỉ định primary key Tuy nhiên, nhiều hệ thống có lẽ sẽ hưởng lợi từ việc có một hoặc hai key thay thế (alternate) Để tăng tốc độ truy cập có thể tạo ra secondary index
Một secondary index là một cấu trúc dữ liệu chứa tập con của các attributes trong một bảng, cùng với một key thay thế để hỗ trợ cho Query operation Với một secondary index, các query sẽ không bị giới hạn khi chỉ sử dụng được primary key; có thể truy vấn dữ liệu bằng việc sử dụng key thay thế từ secondary index Một bảng có thể có nhiều secondary index để hỗ trợ cho nhiều query pattern
DynamoDB hỗ trợ hai loại index:
Global secondary index: một loại index có partition và soft key khác với
partition và soft key từ bảng gốc
Local secondary index: một loại index mà có partition key trùng với partition key từ bảng gốc và soft key là một attribute khác
Trang 39Query/Scan
Query:
o Để thực hiện một query operation cần có primary key và không bắt buộc kèm theo điều kiện cho range key Query có thể thực hiện trên một bảng hoặc secondary index
Lưu ý rằng: điều kiện so sánh không thực hiện trên partition key được
o Soft key phải được thực hiện so sánh như sau:
o Default
Default
o a = b — true if the attribute a is equal to the value b
o a < b — true if a is less than b
o a <= b — true if a is less than or equal to b
o a > b — true if a is greater than b
o a >= b — true if a is greater than or equal to b
a BETWEEN b AND c — true if a is greater than or equal to b, and less than or equal to c
o Tất cả item được trả về sẽ được tính chung là 1 query operation, có
nghĩa là với 100 1KB item thì chỉ cần 100 x 1KB / 4KB = 25 reads thay
vì 100 reads
Scan:
o Một scan operation có thể thực hiển trên cả bảng và secondary index Giá trị trả về mặc định của một scan operation là toàn bộ dữ liệu Vì vậy hãy thận trọng khi sử dụng scan
Một số lưu ý về Scan và Query:
Cả 2 operation đều có dung lượng trả về tối đa là 1MB
Query hỗ trợ strongly consistent và eventually consistent trong khi đó Scan chỉ hỗ trợ eventually consistent
Hãy tránh việc Scan một bảng hoặc index có dung lượng lớn
Theo thời gian dung lượng tăng lên thì Scan operation sẽ càng chậm
Trang 40Lý thuyết về hệ thống SCADA dựa trên điện toán đám mây
Tổng quan chung về SCADA
Định nghĩa:
SCADA (Supervisory Control And Data Acquisition) là một hệ thống thu thập dữ liệu, giám sát và điều khiển các quá trình từ xa Người vận hành có thể nhận biết và điều khiển hoạt động các thiết bị thông qua máy tính và mạng truyền thông Nói cách khác, SCADA thường được dùng để chỉ tất cả các hệ thống máy tính được thiết kế để thực hiện các chức năng sau:
Thu thập dữ liệu từ các thiết thiết bị công nghiệp hoặc các cảm biến
Xử lý và thực hiện các phép tính trên các dữ liệu thu thập được
Hiển thị các dữ liệu thu thập được và kết quả đã xử lý
Nhận các lệnh từ người điều hành và gửi các lệnh đó đến các thiết bị của nhà máy
Xử lý các lệnh điều khiển tự động hoặc bằng tay một cách kịp thời và chính xác
b Chức năng và vai trò:
Mỗi hệ thống sản xuất công nghiệp thường được tổ chức theo nhiều cấp quản lý Mỗi cấp có nhiệm vụ đo lường, thu thập và điều khiển giám sát riêng lên từng đối tượng cụ thể của hệ thống Chính vì thế việc SCADA cho một hệ thống sản xuất công nghiệp cũng được phân ra từng cấp SCADA cụ thể, tuỳ vào quy mô của từng cấp mà
có những yêu cầu cụ thể khác nhau song nói chung mỗi cấp SCADA là phải thực hiện những dịch vụ sau:
Thu thập số liệu từ xa (qua đường truyền số liệu) các số liệu về sản xuất và tổ chức việc lưu trữ trong nhiều loại cơ sở số liệu (số liệu về lịch sử sản xuất, về
sự kiện thao tác, về báo động…)
Điều khiển và giám sát hệ sản xuất trên cở sở các dữ liệu đã thu thập được
Thực hiện công tác truyền thông số liệu trong và ra ngoài hệ (đọc/viết số liệu PLC/RTU, trả lời các bản tin yêu cầu từ cấp trên về số liệu, về thao tác hệ)
Nhìn chung SCADA là một sự kết hợp giữa phần cứng và phần mềm theo một phương thức truyền thông nào đó để tự động hoá việc quản lý giám sát, điều khiển cho một đối tượng công nghiệp Và ta nhận thấy rằng xu thế tự động hoá
là một xu thế không thể tránh khỏi do vậy việc áp dụng bài toán SCADA là một việc làm tất yếu nếu chúng ta không muốn tụt hậu trong sản xuất Vai trò của
nó là rất rõ ràng, SCADA giúp ta thu thập rất chính xác về hệ thống từ đó có thể đưa ra các quyết định đúng đắng về hệ, đồng thời ta cũng dễ dàng trong công tác điều khiển và ra quyết định Việc làm này sẽ giảm đáng kể việc chi phí