IoT đang thâu tóm thế giới: APIs và REST

Diễn đàn - Ngày đăng : 16:34, 15/11/2018

RESTful APIs cung cấp cho các nhà phát triển phần cứng và phần mềm IoT một kiến trúc tiêu chuẩn tốt để kết nối một cách đáng tin cậy các thành phần không đồng nhất của hệ thống IoT.

IoT-is-eating-the-world-APIs-and-REST

80% thiết bị sẽ là thiết bị IoT, IoT có tiềm năng lớn nhất để thúc đẩy xã hội kể từ khi cuộc cách mạng công nghiệp bắt đầu. Nó sẽ mở ra một thế giới trong đó tất cả mọi thứ được kết nối, thông minh, giao tiếp và nâng cao chất lượng cuộc sống của chúng ta. Nhưng tại sao IoT vẫn chưa thực sự đột phá người tiêu dùng và tập trung chủ yếu vào các tiện ích cho thế giới có nhiều điều thú vị hơn? Ngay khi phần mềm đã chuyển đổi các ngành công nghiệp, bây giờ tôi tin rằng IoT đang thâu tóm thế giới thông qua các thiết bị thu thập dữ liệu được kết nối với Internet. Ở đây mọi thứ được kết nối. Chúng ta hiện đang trong giai đoạn tăng trưởng: giống như di chuyển các chức năng tương tự như theo dõi và quản lý thế giới xung quanh thành các chức năng kỹ thuật số liên quan đến truyền thông và phần mềm.

Với IoT, về cơ bản chúng ta đang khai thác một nền tảng mới. Đây là sự tương đồng: Trước điện thoại thông minh là điện thoại thông thường có cảm biến, loa, micrô và GPS — nhưng không ai làm gì với nó ngoài việc nói chuyện. Sau đó, chúng tôi đặt một hệ điều hành lên trên cùng một thiết bị lõi — albiet với phần cứng được khai thác. Giờ đây, chức năng phần cứng được hiển thị dưới dạng một bộ API nơi người phát triển có thể làm những gì họ muốn. Điện thoại thông minh tiếp xúc với một nền tảng mới, và IoT hiện đang làm điều tương tự một lần nữa.

API đóng vai trò gì trong IoT?

Giao diện Chương trình Ứng dụng (API) là một tập hợp các chương trình, giao thức và các công cụ để xây dựng các ứng dụng phần mềm; nó chỉ định cách các thành phần phần mềm nên tương tác. Các API được liên kết chặt chẽ với IoT vì chúng cho phép bạn hiển thị an toàn các thiết bị được kết nối với khách hàng, các kênh đi tới thị trường và các ứng dụng khác trong cơ sở hạ tầng CNTT của bạn. Bởi vì các API kết nối "những thứ" quan trọng như ô tô, thiết bị y tế, lưới năng lượng và bộ điều nhiệt cho hệ sinh thái của bạn, do vậy điều quan trọng là triển khai quản lý API linh hoạt, có thể mở rộng và bảo mật.

API cho phép các nhà phát triển xây dựng các ứng dụng dựa trên bối cảnh có thể tương tác với thế giới xung quanh thay vì hoàn toàn thông qua giao diện người dùng (sự gần gũi và nhận biết vị trí). Để thực sự đạt được IoT, chúng ta cần một API REST cho mọi thiết bị. REST cho phép dữ liệu lưu thông qua các giao thức Internet và ủy quyền và quản lý ủy quyền.

API có thể là các dịch vụ bên ngoài yêu cầu "khóa" để sử dụng hoặc chúng có thể miễn phí 100% và có sẵn công khai, mà không cần yêu cầu đăng ký với pháp nhân gốc. Với sự trợ giúp của API, một ứng dụng có thể sử dụng phần mềm được viết bằng nhiều ngôn ngữ lập trình nhờ vào một phong cách kiến ​​trúc thống nhất được gọi là REST. IoT có nghĩa là chúng tôi đang xây dựng nhiều ứng dụng hơn, vì vậy bất kể bạn đi đâu trong IoT, bạn chắc chắn cần các dịch vụ RESTful.

Dữ liệu phi cấu trúc đi vào lưu trữ đối tượng, bán cấu trúc đi đến MongoDB, Cassandra, dữ liệu truyền thống và giao dịch đi vào SQL, MySQL và vân vân. Là một nhà phát triển, thật khó để đối phó với các API độc quyền được tiếp xúc bởi các nguồn dữ liệu này. Để tích hợp một cơ sở dữ liệu không có cấu trúc, hoặc một dữ liệu bán cấu trúc và một cấu trúc trong ứng dụng của bạn, bạn phải xử lý ít nhất 3 API độc quyền. Điều này làm cho bạn hoạt động không hiệu quả và mã dễ bị lỗi hơn bởi vì bạn đang trộn và kết hợp API không đồng nhất cao vào các ứng dụng của mình.

Hãy tưởng tượng khi bạn lái xe thành phố mà giao thông dày đặc bằng cách sử dụng các con đường mà không có bất kỳ sự phân làn nào, hay lối băng qua đường hoặc tín hiệu nào. Nó sẽ là cực kỳ hỗn loạn. Đó là thực tế của trạng thái hiện tại của IoT - Thiếu thiết kế thông tin toàn diện. Chúng ta phải chuẩn hóa luồng thông tin để cho phép khả năng kết nối máy - đến - máy thực sự tương thích xuất hiện. Rất may, REST API có thể hỗ trợ chúng ta một số cách như vậy.

Khi vẽ các kết nối trong một hệ thống IoT, các nút là các thiết bị và các cung là các API. Thật vậy, để nhận thức đầy đủ các lợi ích mà IoT cung cấp, các tài sản OT cần phải được thiết kế với các công nghệ web được tích hợp trực tiếp vào chúng, chẳng hạn như HTTP cho tương tác, mã hóa SSL/TLS và xác thực bảo mật dữ liệu và JSON cho định dạng dữ liệu. Cách tiếp cận này hiện có sẵn thông qua một kiến ​​trúc RESTful.

REST — Người bạn thân thiết nhất của nhà phát triển

REST là viết tắt của Representational State Transfer và nó là một khái niệm, không phải là một giao thức. Nhưng nó là cơ sở của dạng API được sử dụng rộng rãi nhất hiện nay. Các API RESTful được sử dụng rộng rãi trên web hiện đại và việc truyền dữ liệu thường diễn ra bằng cách sử dụng JSON hoặc XML qua HTTP. REST là khái niệm không trạng thái - ví dụ: rằng khách hàng sẽ kết nối và tiêu thụ API theo yêu cầu, chuyển bất kỳ dữ liệu nào có liên quan đến yêu cầu tại thời điểm sử dụng. Nó không duy trì kết nối mở liên tục nên nó rất có khả năng mở rộng.

Các ứng dụng RESTful là những ứng dụng có API tuân theo một loạt các yêu cầu kiến ​​trúc phổ quát để nhiều ngôn ngữ lập trình có thể dễ dàng tích hợp vào API theo cách thống nhất. REST dựa trên tài nguyên thay vì dựa trên hành động như SOAP.

REST API thường sử dụng các phương thức của HTTP để thực hiện các hành động khác nhau. Ví dụ, POST, GET, PUT, DELETE có thể được phản ánh hợp lý tới các hàm SQL CREATE, SELECT (READ), UPDATE và DELETE. Điều này được gọi là CRUD, và nó có nghĩa là tất cả mọi thứ bạn có thể muốn làm cho một phần dữ liệu được lưu trữ trên một máy chủ từ xa có thể được thực hiện thông qua dự đoán một API REST.

REST đóng một vai trò quan trọng và bạn có thể sử dụng REST trên stack. REST đã trở thành một giao thức thực tế cho web. Nó được hầu hết mọi máy chủ web hiểu và sử dụng trên Internet. IoT tận dụng rất nhiều điểm cuối của REST. Có các giao thức khác như MQTT, nhưng giao thức thứ hai vẫn đang phát triển. Rất nhiều dịch vụ dựa trên REST, cho phép bạn nhanh chóng lắp ráp cơ sở hạ tầng IoT để mang nhiều dịch vụ lại với nhau.

Một sự chắc chắn về IoT là Internet. Các ứng dụng và thiết bị cách xa phổ biến giao tiếp qua Internet là thông qua các dịch vụ RESTful. REST API cung cấp cách đơn giản nhất cho các ứng dụng được kết nối và "Mọi thứ" để tương tác theo một cách tiêu chuẩn, được hiểu rõ. Ngoài ra, dữ liệu từ tất cả những thứ được kết nối này cần phải được nhập, lưu trữ và xử lý trong nhiều loại cơ sở dữ liệu khác nhau. API REST nhất quán là cách hiệu quả nhất để thực hiện một loạt các tác vụ như vậy.

Địa chỉ REST:

  • Hiệu suất
  • Khả năng mở rộng
  • Sự đơn giản của giao diện
  • Khả năng thay đổi
  • Hiển thị
  • Tính di động
  • Độ tin cậy

Vì REST sử dụng HTTP nên bất kỳ thiết bị nào có thể kết nối với web và yêu cầu một trang web thì có thể sử dụng một API REST. REST là một mô hình tốt cho IoT vì mỗi thiết bị có thể dễ dàng làm cho thông tin trạng thái của nó có sẵn và có thể chuẩn hóa một cách đơn giản để tạo, đọc, cập nhật và xóa dữ liệu đó. Các nhà phát triển có thể nhanh chóng xây dựng một mô hình REST cho nhiều thiết bị IoT. Ví dụ, bạn có thể dễ dàng có được trạng thái của bóng đèn (ví dụ: “bóng đèn tắt”). Sau đó, bạn có thể gửi yêu cầu để bật tính năng này. Hoặc, bạn có thể nhận được nhiệt độ hiện tại từ máy sưởi trong nhà (ví dụ: "nó quá nóng"), sau đó bạn có thể gửi nhiệt độ mục tiêu thấp hơn. Mô hình trực quan này khớp với một loạt các vấn đề.

Cần những gì để phát triển hệ thống IoT

Bí quyết thực sự trong sản phẩm Internet of Things đang di chuyển dữ liệu một cách hiệu quả và nhanh chóng - do đó, tại trung tâm của bất kỳ việc triển khai IoT là nào nằm trong API. Thực hiện đúng, một API có thể tăng tốc độ phát triển. Nếu mục tiêu cuối cùng của bạn là cung cấp dữ liệu liên tục cho người dùng, bạn thực sự có thể nâng cao trải nghiệm của người dùng.

Người sử dụng thiết bị và người thiết kế phần mềm hiếm khi hiểu nhau. Đối với những người dùng thiết bị, API là sản phẩm và nhà phát triển ứng dụng là những người tiêu dùng chính. Khi xây dựng các API cho các thiết bị, bạn cần phải hiểu nhu cầu của người tiêu dùng về thiết kế và các giao thức ưa thích bắt chước các kiến ​​trúc web chi phối.

API REST và JSON thường cho phép các kỹ sư phần mềm tránh phát minh lại các hình mẫu cũ khi tạo ứng dụng mới. REST là một kiến ​​trúc web lớn và nếu bạn định xây dựng các ứng dụng trên web, liệu bạn có nên làm việc với các xu hướng kiến ​​trúc không chống lại nó không?

REST API giải quyết thử thách này một cách đẹp mắt bởi vì chúng trừu tượng hóa và hiển thị nó như một giao diện, cho phép các nhà phát triển thiết lập chương trình giống như họ làm việc với các hệ thống phụ trợ hiện có khi xây dựng các ứng dụng di động. Đối với một nhà phát triển phần mềm, việc bật một bóng đèn trong một kịch bản như vậy có vẻ ít nhiều giống như thao tác với bất kỳ hệ thống phần mềm nào khác.

Tác giả Peter Diamandis và Steven Kotler nói rằng sự phát triển tính di động này là quan trọng nhất cho những cá nhân có thể trải nghiệm với sự ra đời của công nghệ và giáo dục mới thông qua phần mềm.

Vào tháng 7 năm 2015, Sam Macklin của CA Technologies và Học viện API tuyên bố, “Trong tương lai, mọi công ty thành công sẽ là một công ty phần mềm và mọi công ty phần mềm thành công sẽ là một nhà cung cấp API.”

Chúng ta đang trong một giai đoạn thú vị và chứng kiến sự phát triển của các doanh nghiệp và các giải pháp nhờ phần mềm chất lượng cao với các API mạnh mẽ và thân thiện với người dùng. Nhân loại đang phải đối mặt với một tương lai theo hướng ứng dụng, nơi có nhiều công ăn việc làm cho các lập trình viên và những người không phải lập trình viên sẽ mong chờ các vị trí làm việc trống có thể.

Chúng ta đang ở giai đoạn quan trọng của việc áp dụng IoT. Bây giờ là thời điểm tốt nhất để bắt đầu xây dựng và phát triển các dự án IoT. Có rất nhiều hứng thú và tiềm năng để tận dụng dữ liệu, và có rất nhiều cơ hội phát triển ở cả phía thiết bị và phần mềm. Nhưng vẫn còn một chặng đường dài để đi. Trước mắt hãy nghỉ ngơi một chút.

Chu Thanh Hòa, Lâm Thị Nguyệt