SKIX Control Services 리팩터링
2026-09-08 갱신: 자원·기능·작업 Runtime 상세에서 현재 Resource·Capability 구현과 폴더별 책임을 확인한다. 아래 기존 그림은 목표 구조 기록이며, TTL 만료나 강제 선점이 현재 구현됐다는 뜻은 아니다.
As-Is와 목표
현재 상태·정책·자원·capability 판단은 DeviceAgent command owner와 각 Agent에 흩어져 있다.
목표는 Binder admission 뒤에 StateManagerService, PolicyManagerService,
ResourceManagerService, CapabilityManagerService, HealthManagerService를 독립 권위로 두는 것이다.
| Authority | 책임 | 현재 증거 | 다음 Gate |
|---|---|---|---|
| State | authoritative mirror, freshness, source | StateRecord 소스/JVM 검증 |
provider update 연결 |
| Policy | allow/deny/constraint | Tilt arbitration core·tier precedence·same-tier conflict JVM 검증 (5c52c66) |
shadow comparison·Binder·enforcement |
| Resource | 소유권·원자적 확보·세대 차단 | 내부 서비스 구현; 미확인/사용 가능/점유/복구 필요 구분 | 장치 상태 동기화; 자동 만료·강제 선점은 제외 |
| Capability | 기능 등록·제공자 준비·가용성 사유 | 제한된 내부 목록과 세대 확인; 조회는 실행 승인 아님 | 실제 제공자 연결과 장치 기능 검증 |
| Health | observe/dump/alert | 설계 완료 | registry와 dump 구현 |
초기 상태 판정 기록 (2026-09-04)
현재 검증 수치와 구동 서비스 목록은 진행 현황의 최신 항목을 따른다.
| 설계 완료 | 소스 반영 | JVM 검증 | APK 빌드 | 실기기 검증 |
|---|---|---|---|---|
| 5개 권위 확정 | RequestContext·StateRecord·Policy core | 기반 모델과 Tilt policy PASS | FrameworkService APK PASS | 실기기 미검증 |
Health는 다른 Control 서비스를 소유하지 않고 관찰한다. Execution은 Control 결정을 사용하지만 이를 재정의하지 않으며 Domain/Agent는 Control을 우회하지 않는다.