Trả lời: thiết bị DAT nên nằm ở module nào? Khi SUNS bán cả thiết bị DAT lẫn thiết bị sân bãi thì có gộp về một module quản lý thiết bị chung không? Kết luận ngắn: có gộp — nhưng không phải một module trong WS đào tạo, mà là một tầng riêng. Liên quan: Phương pháp chia module · module dat · Thiết bị phần cứng.
Khi SUNS trở thành nhà cung cấp thiết bị (DAT + thiết bị sân bãi), thiết bị không còn thuộc về workspace khách hàng nữa — nó thuộc về SUNS và được cấp phát cho workspace. Theo dấu vòng đời một thiết bị sẽ thấy ngay:
| Tầng | Ở đâu | Quản gì |
|---|---|---|
| ① Nhà cung cấp | WS riêng của SUNS (đã có chỗ: "WS admin-console — vận hành nền tảng") |
Sản xuất/nhập kho · seri · đời máy · hợp đồng bán–thuê · bảo hành / RMA · firmware & OTA · telemetry sức khỏe toàn fleet · hồ sơ hợp quy & kiểm chuẩn · lịch sử chuyển chủ |
| ② Control Plane | CP (đã quản workspace, license, store) | Cấp phát thiết bị → workspace · credential để thiết bị nói chuyện với hệ. Cùng bản chất với license — CP đã làm việc này rồi, chỉ thêm loại tài nguyên |
| ③ Khách hàng | WS đào tạo / WS sát hạch | Thiết bị đang có tại trung tâm: gắn ở đâu · còn chạy không · bảo hành còn hạn không · gọi ai — cộng dữ liệu nghiệp vụ mà nó sinh ra |
Ở tầng ③, module device dùng chung xứng đáng tồn tại khi SUNS bán nhiều họ thiết bị cho cùng một trung tâm — nhưng phải cắt đúng chỗ, nếu không sẽ tái phạm đúng lỗi của student/course.
| Lớp | Chủ sở hữu | Nội dung & lý do |
|---|---|---|
| Danh tính · tài sản · sức khỏe | device | Seri · đời máy · SIM · hạn bảo hành/hợp quy · trạng thái kết nối · firmware. Chung cho mọi họ thiết bị → đây là phần gộp được |
| Gắn vào đối tượng nghiệp vụ | dat · yard (v2) | dat_gan_xe (thiết bị × xe × khoảng thời gian) ở lại module nghiệp vụ — dữ liệu tuân thủ có tính thời điểm, nằm trên đường nóng nhất: mọi phiên học đều phải quy về đúng xe |
| Payload (dữ liệu sinh ra) | dat · yard · lms | Phiên học DAT · kết quả chấm sa hình · log điểm danh — tuyệt đối không gộp |
Màn hình tổng của kỹ thuật viên nằm ở device, đọc các view dat_v_gan_thiet_bi, yard_v_gan_thiet_bi (P1) — module nào chưa cài thì ẩn phần đó (quy tắc degrade).
| Điều kiện §0 | Trước | Sau | Vì sao đổi |
|---|---|---|---|
| ① Bán riêng được | ❌ | ✅ | SUNS bán thiết bị kèm gói "quản lý thiết bị & bảo hành"; trung tâm mua bộ sân bãi mà chưa mua module đối soát DAT vẫn cần sổ thiết bị |
| ② Vòng đời nâng cấp riêng | ❌ | ✅ | Nhịp nâng cấp đi theo lịch phát hành phần cứng của SUNS, không theo thông tư đào tạo nữa |
| ③ Người dùng chính khác | ✅ | ✅ | Kỹ thuật — nhưng đây là điều kiện yếu nhất, tầng feature đã lo tách quyền rồi |
| ④ Cài/gỡ độc lập | ❌ | ✅ một chiều | Sổ thiết bị đứng một mình có nghĩa; dat phụ thuộc nó. Phụ thuộc một chiều lành — giống catalog |
Trước dữ kiện mới: 1/4 → không tách. Sau: 3,5/4 → xứng đáng một module ở tầng ③ (nhưng chưa phải bây giờ — xem mục 4).
| Mốc | Việc |
|---|---|
| MVP (nay) | Chưa xây module device — không phải vì sai, mà vì hình dạng của nó do nghiệp vụ nhà cung cấp quyết định, mà nghiệp vụ đó chưa tồn tại. Xây trước là đoán mò. Thay vào đó làm 3 việc rẻ ở mục 5 |
| v2 — bộ xe chip | Họ thiết bị thứ hai xuất hiện trong WS khách → tách module device (sổ thiết bị của trung tâm). Đổi prefix dat_thiet_bi → device_thiet_bi — thao tác cơ học nếu đã giữ sạch |
| Khi SUNS bán thiết bị thật | Dựng WS của SUNS (tầng ①) + CP provisioning (tầng ②). Đây là sản phẩm riêng, không nhét vào WS khách |
Hiện thiết bị DAT bị xẻ làm ba nơi: dat.device (sổ thiết bị) · vehicle.device-bind (lịch sử gắn/tháo + cột seri_dat, dat_device_id) · fleet.asset v1.5 (tài sản, khấu hao). Ba mặt của một vật thể là bình thường trong DDD — vấn đề là cắt sai chỗ.
| Lý do | Giải thích |
|---|---|
| Chiều phụ thuộc đang ngược | vehicle đang phải biết DAT tồn tại. Đúng ra vehicle là danh mục tài sản nền, phải sống được khi dat chưa cài; còn dat là module tuân thủ chuyên biệt, phụ thuộc vehicle mới hợp lý. Chuyển binding = sửa đúng chiều mũi tên, đồng thời xóa mâu thuẫn dat_device_id vs seri_dat mà review §2.3 ghi nợ từ 6/7 |
| Vật thể di động sở hữu quan hệ | Thiết bị là thứ tháo ra lắp vào, xe đứng yên. Quan trọng hơn: mô hình đặt ở phía vehicle không biểu diễn được thiết bị chưa gắn xe nào — hàng dự phòng trong kho, thiết bị đang gửi bảo hành, thiết bị vừa nhập chưa lắp |
| Đường nóng thành nội bộ | Import phiên → resolve seri → xe tại thời điểm phiên chạy: chạy trên mọi bản ghi phiên. Để nó thành join nội bộ trong dat thay vì đọc chéo module |
| Một chỗ làm một việc | Kỹ thuật viên hiện phải vào vehicle để gắn, vào dat để xem tình trạng |
Nếu SUNS làm thiết bị thì SUNS cũng là nơi thiết bị gửi dữ liệu về, thay vì kéo từ vendor thứ ba.