Kiểm tra sự thành công của bản cập nhật Over the Air [đã đóng]


10

Thực tiễn tốt nhất để đảm bảo thiết bị IoT đã được cập nhật thành công là gì?

Bạn cần làm gì để kiểm tra các bản cập nhật OTA và xác thực thiết bị? Tiến lên một bước nữa, làm thế nào bạn có thể giám sát / quản lý các phiên bản phần mềm (bản cập nhật) của một nhóm thiết bị IoT?


1
Điều này là quá rộng, giống như câu hỏi khác của bạn. Và nó sẽ phụ thuộc rất nhiều vào loại thiết bị và chế độ triển khai.
Gilles 'SO- ngừng trở nên xấu xa'

1
Khi bạn nói "đội xe", bạn có nghĩa là một đội xe? Nếu vậy, tôi giả sử liên lạc bằng SMS (được mã hóa) hoặc HTTPS qua GPRS hoặc vệ tinh sự kiện, sử dụng một cái gì đó như modem SkyWave. nếu bạn có thể chỉnh sửa câu hỏi của mình để làm rõ, tôi chắc chắn rằng nó sẽ được mở lại.
Mawg nói rằng phục hồi Monica

Câu trả lời:


10

Tôi có phần mềm (Windows Server - hơi khác với 'mọi thứ' nhưng hiệu trưởng là như nhau) gọi trong mỗi 24 giờ - nó sẽ gửi lại dữ liệu meta khác nhau về chính nó:

  • tên khách hàng (hoặc ID duy nhất)
  • phiên bản phần mềm
  • dấu thời gian của cuộc gọi / yêu cầu
  • loại sản phẩm / id

Dịch vụ web phân tích dữ liệu và chèn (hoặc cập nhật nếu khách hàng có hàng hiện có) một hàng trong cơ sở dữ liệu.

Bằng cách này, khách hàng mới được tự động thêm vào DB, khách hàng hiện tại nhận được dấu thời gian 'nhìn thấy lần cuối' của họ và chúng tôi luôn có phiên bản phần mềm mới nhất của họ. Tôi có thể chạy các truy vấn DB cho tôi biết khách hàng nào trên các phiên bản cũ hơn và / hoặc khách hàng nào đã không gọi trong một thời gian.

Gần đây, chúng tôi cũng đã thực hiện cập nhật tự động (nghĩ là cập nhật OTA) và vì đây là một quá trình quan trọng, chúng tôi đã triển khai từ xa cụ thể cho việc này - đó là hồ sơ:

  • Phiên bản hiện tại.
  • Phiên bản sẽ được cập nhật.
  • Ai / khi được ủy quyền (nếu cần có sự chấp nhận của khách hàng).
  • Dấu thời gian và mã trạng thái cho từng bước chính.

Điều này cho phép chúng tôi xác định xem các khía cạnh nhất định của bản cập nhật tự động có bị lỗi hay không và trong nhiều trường hợp, chúng tôi có thể gọi cho khách hàng thường xuyên trước khi họ nhận thấy rằng có bất cứ điều gì sai.

Sự khác biệt lớn với 'điều' là bạn thường bị hạn chế bộ nhớ, do đó, để thực hiện cập nhật OTA xxx Kbvề phần sụn bạn cần xxx Kb * 2có bộ nhớ (phần sụn hiện có + bộ nhớ đủ để lưu phần sụn mới trước khi bắt đầu cập nhật phần sụn thực tế)


1
cám ơn vì đã chia sẻ. Việc sử dụng bộ nhớ là một điểm quan trọng để thực hiện. Làm thế nào để bạn đi về ủy quyền và chấp nhận khách hàng, khi áp dụng? Bạn có yêu cầu mật khẩu để chấp nhận cập nhật không?
Noam Hacker

2
Đó là một trường hợp sử dụng khác (vì là Windows Server), nhưng chúng tôi có giao diện người dùng bật lên cảnh báo khi bản cập nhật OTA được tải xuống - cảnh báo hỏi khách hàng có muốn cập nhật không (và bao gồm các liên kết để phát hành ghi chú, v.v.). Trên một chiếc thingđèn có thể tôi sẽ nháy đèn LED hoặc thứ gì đó để cảnh báo người dùng (giả sử bạn muốn người dùng 'cho phép' cập nhật) và sau đó nhấn nút 'nhấn nút' để bắt đầu ...
KennetRunner

5

Ví dụ, bạn có thể gửi yêu cầu mỗi X tuần / ngày / giờ ... đến một máy chủ có số phiên bản hiện tại của phần mềm. Sau đó, bạn sẽ có thể sử dụng các phân tích để xem tỷ lệ phần trăm và số lượng thiết bị hiện tại được cập nhật.


1
Tài khoản này dành cho các thiết bị đã bị brick, hoặc không hoàn thành cập nhật (có thể bị kẹt trong quá trình khởi động lại, tải xuống, chu kỳ sự cố?)
Sean Houlihane

1
Theo một cách nào đó, vâng. Nếu bạn có 100 thiết bị vào ngày 1, bạn đẩy cập nhật vào ngày 2 và ngày 3 bạn chỉ có 25 thiết bị trên phân tích, điều đó có nghĩa là đã xảy ra sự cố
WayToDoor 6/12/2016

1
Nó thật thú vị. Có cách nào để phân biệt giữa các loại thất bại?
Noam Hacker

1
chia bản cập nhật thành các bước riêng biệt (ví dụ: thêm giá trị cấu hình mới , khởi động lại gps , đặt id thiết bị , ghi đè chương trình cơ sở , v.v.) với mỗi lần bắt đầu .. gọi gửi 'nhà' và hoàn thành với cuộc gọi xx được gửi về nhà. Bằng cách đó bạn có thể nói (đại khái) nơi nó thất bại và (hy vọng) mã trạng thái là gì.
KennetRunner

4

Đó là tất cả về một chính sách đồng bộ hóa thông minh

Bạn cần một chính sách đồng bộ hóa thông minh hoạt động song song với phương pháp tiếp cận cập nhật của bạn. Điểm rõ ràng nhất về thời gian mà thiết bị IoT sẽ đồng bộ hóa phiên bản của nó là ngay sau khi cập nhật . Phần còn lại của lịch trình đồng bộ hóa phụ thuộc nhiều vào loại thiết bị.

Có phải nó luôn được bật và được kết nối thông qua kết nối đã bật trong đó một đồng bộ hóa duy nhất không tốn (rất nhiều) việc đồng bộ hóa định kỳ khá tốt để giữ cho dữ liệu của bạn về thiết bị hiện tại.

Nếu thiết bị ở đâu đó thì mọi bit đều tốn kém vì bạn đang sử dụng các kết nối vệ tinh đắt tiền, lịch trình đồng bộ hóa phải phù hợp với hoàn cảnh đó.

Xác minh đồng bộ hóa

Trong một thiết bị đủ tiên tiến (đọc phạm vi giá hoặc vùng vận hành để chứng minh điều đó), mỗi thiết bị có thể được trang bị chứng chỉ ứng dụng khách cho phép kiểm tra tính xác thực của đồng bộ hóa.

Dù sao với các thiết bị của khách hàng cuối, bạn sẽ luôn có các thiết bị bị rớt radar do pin sắp hết, thiết bị không sử dụng hoặc đơn giản là khách hàng thay đổi mật khẩu không dây và không thông báo cho thiết bị IoT. Những người đó có thể không phải làm bất cứ điều gì với bản cập nhật của bạn, ngay cả khi họ cùng nhau vượt thời gian.


Tôi không nghĩ rằng điều này đưa ra một giải pháp cho câu hỏi của OP.
WayToDoor

@WayToDoor đoạn đầu tiên của tôi khuyên đồng bộ hóa trực tiếp sau khi cập nhật. Điều đó cung cấp thông tin nếu phiên bản mới đã đạt được thành công. Các biện pháp đối phó có thể xảy ra nếu đó không phải là trường hợp quá rộng (và không được yêu cầu). Phần còn lại của câu trả lời của tôi liên quan đến việc giám sát các phiên bản trong lĩnh vực này. Câu hỏi nào tôi đã bỏ lỡ?
Helmar
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.