Architecture

Functional Architecture

Smart[Fleet] 플랫폼은 아래 그림과 같이 플랫폼을 중심으로 3가지 인터페이스를 제공합니다.

./images/func_arch.png
Interface Protocol Relationship Specification Description
pd MQTT one-to-many Procedures 차량에 탑재된 단말과 플랫폼이 연결되는 인터페이스로 단말의 등록, 데이터 전송, 단말 제어 등의 호(Call)을 주고 받는 인터페이스
ps HTTP one-to-many REST API 커넥티드카 솔루션과 플랫폼이 연결되는 인터페이스로 플랫폼에 저장된 단말 및 차량의 데이터 전송, 분석 데이터 등의 호을 주고 받는 인터페이스
pe Variable one-to-many   플랫폼과 다양한 외부 시스템 간의 연동되는 인터페이스로 예를 들면, SKT T map의 기능이 플랫폼과 연동되어 pd, ps 인터페이스로 연동


Entity Relationship

./images/entity_relationship.png

Basic Entities

Smart[Fleet]을 구성하는 엔티티들에 대한 설명은 아래와 같다. 각 엔티티을 클릭하면, 각 엔티티의 데이터 모델 JSON representation 을 확인할 수 있습니다.

구분 설명
Company
  • 차량(vehicle)을 관리하는 업체 (ie. 렌터카 회사, 보험회사 등) 관리자 계정을 통해 차량을 등록 및 관리한다.
  • 관리자 계정을 통해 차량을 등록 및 관리한다. 등록한 차량은 다른 company와 공유 가능하다.
  • 차량을 공유하게 될 경우 해당 차량을 공유한 company도 차량 관리가 가능하다.
  • 등록된 차량 및 공유된 차량을 director에게 할당한다.
  • Company는 운영사(Master company)와 협력사(Partner company)로 구분된다.
  • 아래 표는 Company의 Sub-Entity인 운영사, 협력사(각각 Master, Partner로 표현)의 차이를 명세한다.
Sub-Entity 설명
Master
  • Smart[Fleet] 시스템 관리자에 의해서 등록된다.
  • 차량을 등록할 수 있다.
  • 협력사를 등록하고 수정,삭제 할 수 있다. (협력사가 등록한 협력사의 수정, 삭제도 가능)
  • 등록한 차량을 선택적으로 협력사에 권한위임(delegate)할 수 있다. (위임 후 위임해지 가능)
Partner
  • Company 관리자에 의해서 등록된다.
  • 차량을 등록할 수 있다.
  • 협력사를 등록할 수 있다. (수정, 삭제 불가)
  • 등록한 차량은 모두 운영사에 권한위임(delegate)된다. (자동으로 위임되며, 위임을 해지할 수 없다.)
  • 등록한 차량을 선택적으로 협력사에 권함위임(delegate)할 수 있다. (위임 후 위임해지 가능)
Director
  • 차량을 소유하고 있는 사용자
  • 차량을 할당받아 해당 차량에 대한 telemetry, attribute 데이터를 받고 RPC 통신을 한다.
  • 차량의 운행 활성화/비활성화를 정하여 Driver가 차량을 운행할 수 있도록 한다.
  • 자신이 Driver의 역할을 수행하여 차량을 운행할 수 있다.
Driver
  • 차량을 운전하는 사용자
  • Director가 운행을 활성화한 차량 중 서비스레벨에서 운행 권한을 획득하여 차량을 운행한다.
  • 운행만 가능하며 실제로 차량을 할당받지는 않는다.
Vehicle
  • 차량
  • Company를 통해 등록되며 다른 company에 공유될 수 있다.
  • 차량은 director에게 할당되며, 센서로부터 올라오는 데이터를 종합 관리한다
Sensor
  • OBD, ADAS와 같이 차량으로부터 데이터를 센싱하여 센싱한 데이터를 플랫폼으로 전달하는 주체

Delegated Entities

각 엔티티는 Vehicle을 기준으로 Owner와 Delegated Owner로 나뉠 수 있다. 본 절에서는 Delegated Owner 엔티티에 대하여 기술한다.

구분 설명
Delegated Company
  • 차량을 공유받은 업체
  • 공유받은 차량을 director에게 할당한다.
  • 공유받은 업체는 해당 차량을 관리할 수 있으나 플랫폼에서 삭제할 수 없다.
Delegated Director
  • 공유된 차량을 소유한 사용자
  • 차량을 할당받아 해당 차량에 대한 데이터를 받고 RPC 통신을 한다.
  • 차량의 운행 활성화/비활성화를 정하여 Driver가 차량을 운행할 수 있도록 한다.
  • 자신이 Driver의 역할을 수행하여 차량을 운행할 수 있다.
Delegated Driver
  • 공유된 차량을 운전하는 사용자
  • Delegated Director가 운행을 활성화한 차량 중 서비스레벨에서 운행 권한을 획득하여 차량을 운행한다.
  • 운행만 가능하며 실제로 차량을 할당받지는 않는다.
  • ID, password로 로그인하며 허가받은 차량에 대해 운행하면 운행 기록에 해당 driver에 대해 저장된다.
  • 운행이 종료된 후에는 다른 Driver의 운행이 가능하도록 로그아웃한다.

주석

Delegated Entities가 적용되는 시나리오

  • 동부화재(owner company)가 관리하는 차량 V1에 사고가 발생하여 김출동(Director)이 현장 출동함.
  • 김출동(Director)은 운전자 홍길동(Driver)에게 차량을 인계받아 해당 차량을 동부화재에 공유요청함.
  • 동부화재에서는 수리를 위해 해당 차량을 영진카센타(delegated company)에 공유 시작
  • 영진카센타의 차수리(Director)는 차량을 수리 시작, 수리에 관한 정보는 동부화재에 공유됨.
  • 수리가 완료되고 차량을 운전자 홍길동에게 인계하기 위해 차배달(Driver)에게 운전을 맡김.
  • 차배달(Driver)은 운전자 홍길동(Driver)에게 차량을 전달하고 전달 확인을 김출동(Director)에게 제출
  • 김출동(Director)은 동부화재에 요청하여 차량 V1에 대한 공유를 종료