KR102563562B1 - Dynamic software installation system and method thereof for AUTOSAR adaptive platform - Google Patents

Dynamic software installation system and method thereof for AUTOSAR adaptive platform Download PDF

Info

Publication number
KR102563562B1
KR102563562B1 KR1020210076748A KR20210076748A KR102563562B1 KR 102563562 B1 KR102563562 B1 KR 102563562B1 KR 1020210076748 A KR1020210076748 A KR 1020210076748A KR 20210076748 A KR20210076748 A KR 20210076748A KR 102563562 B1 KR102563562 B1 KR 102563562B1
Authority
KR
South Korea
Prior art keywords
software package
package
request
software
activation
Prior art date
Application number
KR1020210076748A
Other languages
Korean (ko)
Other versions
KR20220078453A (en
Inventor
이용호
최윤기
Original Assignee
주식회사 팝콘사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 팝콘사 filed Critical 주식회사 팝콘사
Publication of KR20220078453A publication Critical patent/KR20220078453A/en
Application granted granted Critical
Publication of KR102563562B1 publication Critical patent/KR102563562B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • G06F9/44578Preparing or optimising for loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44589Program code verification, e.g. Java bytecode verification, proof-carrying code

Abstract

본 발명에 따른 오토사 어댑티브 플랫폼 기반의 소프트웨어 패키지 업데이트 장치는 서비스 공급자 포트를 통해 소프트웨어 패키지를 수신하고 저장하는 전송 모듈과 소프트웨어 패키지를 저장하는 패키지 저장소, 소프트웨어 패키지의 압축을 해제하고 설치하는 패키지 처리 모듈, 상태 관리자에 패키지 활성 상태로의 변경을 요청하고 상태 관리자로부터 응답을 받아 소프트웨어 패키지의 활성 상태 여부를 검증하는 패키지 활성 모듈을 포함한다.A software package update device based on the Autosar Adaptive platform according to the present invention includes a transport module for receiving and storing a software package through a service provider port, a package storage for storing the software package, and a package processing module for decompressing and installing the software package. , includes a package activation module that verifies whether or not the software package is active by requesting a change to the active state of the package from the state manager and receiving a response from the state manager.

Description

오토사 어댑티브 플랫폼에서 다이나믹 소프트웨어 설치를 위한 시스템 및 방법 {Dynamic software installation system and method thereof for AUTOSAR adaptive platform}System and method for dynamic software installation on AUTOSAR adaptive platform {Dynamic software installation system and method thereof for AUTOSAR adaptive platform}

본 발명은 오토사 어댑티브 플랫폼에서 소프트웨어를 설치하기 위한 시스템 및 장치에 관한 것이다.The present invention relates to a system and apparatus for installing software on an AutoSar Adaptive Platform.

자동차는 약 3만개의 부품으로 구성되어 있으며, 자동차의 전장화로 인해 전장부품 비율이 증가하고 있다. ECU(Electronic Control Unit)는 전장부품의 제어를 담당하는 부품으로 차량용 반도체와 소프트웨어로 구성되는데, 현재 ECU는 차량당 약 50 ~ 130개가 탑재되고 있으며, 고성능 ECU 등장으로 그 수가 감소하는 추세이다.A car is composed of about 30,000 parts, and the ratio of electric parts is increasing due to the electrification of automobiles. ECU (Electronic Control Unit) is a part responsible for controlling electric components and consists of automotive semiconductors and software. Currently, about 50 to 130 ECUs are installed per vehicle, and the number is decreasing with the advent of high-performance ECUs.

자동차 분야에서의 소프트웨어 재사용(원가절감)을 위해 2005년 주요 자동차 제조사 및 개발사에 의해 오토사(AUTOSAR : AUTomotive Open System ARchitecture) 표준이 제정되었고, 2017년 오토사 어댑티브 플랫폼(AUTOSAR Adaptive Platform, 이하 AP) 표준이 시장 니즈 반영을 위해 신설되었고, 2019년부터 AP가 양산에 적용되고 있다. AP 표준은 고성능 CPU 기반의 ECU의 소프트웨어 플랫폼(OS, 미들웨어)에 대한 표준이다.AUTOSAR (AUTomotive Open System ARchitecture) standard was established by major automobile manufacturers and developers in 2005 for software reuse (cost reduction) in the automotive field, and AUTOSAR Adaptive Platform (AP) in 2017 The standard was newly established to reflect market needs, and AP has been applied to mass production since 2019. The AP standard is a standard for software platforms (OS, middleware) of high-performance CPU-based ECUs.

자동차 산업의 3대 화두인 네트워크 연결ㅇ자율주행ㅇ전기화를 위하여, 시스템온칩의 발전, ECU의 통합, 시장의 첨단기능 요구가 날로 커지며, 새로운 전기ㅇ전자 아키텍처의 필요성이 제기되어 AP 표준이 등장하였고, 이는 자동차 산업의 변화 방향을 반영한 것이다.For network connection, autonomous driving, and electrification, which are the three major topics in the automobile industry, system-on-chip development, ECU integration, and market demand for advanced functions are increasing day by day, and the need for a new electrical and electronic architecture is raised, and AP standards emerge. This reflects the direction of change in the automobile industry.

AP를 기반으로 하여 차량을 스마트폰과 같은 하나의 플랫폼으로 운용하는 움직임이 빠르게 진행되고 있으며, 글로벌 주요 OEM 뿐만 아니라, 로컬 OEM들 또한 AP를 적용한 신규 ECU 개발을 준비 중이다.A movement to operate a vehicle as a single platform such as a smartphone based on AP is progressing rapidly, and local OEMs as well as major global OEMs are preparing to develop new ECUs to which AP is applied.

그러나 AP는 아직 표준이 완비되지 못하고 있어, 여러 측면에서 개발이 진행되어야 한다.However, the standard for AP is not yet complete, so development must proceed in various aspects.

본 발명은 오토사 어댑티브 플랫폼 하에서 소프트웨어 패키지를 업데이트하는 장치 및 방법을 제공하는 것을 주된 목적으로 한다.The main object of the present invention is to provide an apparatus and method for updating a software package under the AutoSar Adaptive platform.

본 발명의 바람직한 일 실시예에 따른 AP 기반의 소프트웨어 패키지 업데이트 장치는, 서비스 공급자 포트(PPort 또는 provider-port)를 통해 소프트웨어 패키지를 수신하고 저장하는 전송 모듈, 전송 모듈이 소프트웨어 패키지를 저장하는 패키지 저장소, 소프트웨어 패키지의 압축을 해제하고 설치하는 패키지 처리 모듈, 및 상태 관리자(State Management; SM)에 패키지 활성 상태로의 변경을 요청하고 SM로부터 요청에 대한 응답을 받아 소프트웨어 패키지의 활성 상태 여부를 검증하는 패키지 활성 모듈을 포함한다.An AP-based software package update apparatus according to a preferred embodiment of the present invention includes a transmission module for receiving and storing a software package through a service provider port (PPort or provider-port), and a package storage for storing the software package in the transmission module. , a package processing module that uncompresses and installs the software package, and a state manager (SM) that requests a change to the active state of the package and receives a response from the SM to verify whether the software package is active. Contains the package active module.

전송 모듈은 이전 플랫폼 소프트웨어 패키지들이 설치되어 있는 파티션을 복제하여 백업 파티션을 구성할 수 있다.The transport module may configure a backup partition by duplicating a partition in which previous platform software packages are installed.

또는, 전송 모듈은 새로운 소프트웨어 패키지에 대한 수신 요청에서의 소프트웨어 패키지의 크기 정보와 실제로 전송된 소프트웨어 패키지의 크기 정보가 일치하는지 확인하여 일치하지 않을 경우 에러 코드를 업데이트 및 설정 관리자(Update and Configuration Management; UCM)의 서비스 공급자 포트를 통해 서비스 수요자에 응답할 수 있다.Alternatively, the transmission module checks whether the size information of the software package in the reception request for the new software package and the size information of the actually transmitted software package match. UCM) can respond to the service demander through the service provider port.

패키지 처리 모듈은 소프트웨어 패키지의 매니페스트 파일을 파싱한 후 소프트웨어 패키지에 포함된 실행 바이너리, 라이브러리, 기타 설정 파일들을 매니페스트 파일에 명시된 목표 위치에 설치할 수 있다.After parsing the manifest file of the software package, the package processing module may install executable binaries, libraries, and other setting files included in the software package in a target location specified in the manifest file.

패키지 활성 모듈은 소프트웨어 패키지의 활성상태 검증 결과 에러가 있는 경우 소프트웨어 패키지의 활성을 중단하고, 백업 파티션으로 롤백을 수행할 수 있다.If an error is found as a result of verifying the activation state of the software package, the package activation module may stop activation of the software package and perform rollback to a backup partition.

또는, 패키지 활성 모듈은 소프트웨어 패키지의 매니페스트 파일에 플랫폼 리부팅 요구가 존재할 경우 어댑티브 플랫폼 머신을 리부팅할 수 있다.Alternatively, the package activation module may reboot the adaptive platform machine when a platform reboot request is present in the manifest file of the software package.

본 발명의 다른 면에 따른 어댑티브 오토사 기반의 소프트웨어 패키지 업데이트 방법은, UCM의 서비스 공급자 포트를 통해 소프트웨어 패키지를 수신하고 저장하는 전송 단계, 소프트웨어 패키지의 압축을 해제하고 설치하는 패키지 처리 단계, 서비스 수요자로부터 소프트웨어 패키지에 대한 활성 요청이 있을 경우 SM에 패키지 활성 상태로의 변경을 요청하고 SM로부터 응답을 받아 소프트웨어 패키지의 활성 상태 여부를 검증하는 패키지 활성 단계를 포함할 수 있다.According to another aspect of the present invention, a software package update method based on Adaptive Autosar includes a transmission step of receiving and storing a software package through a service provider port of UCM, a package processing step of decompressing and installing the software package, and a service consumer. A package activation step of requesting a change to the package active state from the SM, receiving a response from the SM, and verifying whether the software package is active when there is a request for activation of the software package from the SM may be included.

전송 단계는 이전 플랫폼 소프트웨어 패키지들이 설치되어 있는 파티션을 그대로 복제하여 백업 파티션을 구성하는 단계, 새로운 소프트웨어 패키지에 대한 수신 요청이 있을 때까지 대기하는 단계, 요청이 있을 경우 소프트웨어 패키지를 수신하는 단계, 요청에서의 소프트웨어 패키지의 크기 정보와 실제로 전송된 소프트웨어 패키지의 크기 정보가 일치하는지 확인하여 일치하지 않을 경우 에러 코드를 응답하고, 일치할 경우 패키지 수신을 완료하는 단계, UCM의 상태를 패키지 수신 완료 상태로 정의하는 단계를 포함할 수 있다.The transfer step consists of duplicating the partition where the previous platform software packages are installed as it is to form a backup partition, waiting until there is a request for receiving a new software package, receiving the software package if requested, and requesting a new software package. Checking whether the size information of the software package in the software package and the size information of the actually transmitted software package match, responding with an error code if they do not match, and completing receiving the package if they match. It may include a definition step.

패키지 처리 단계는 소프트웨어 패키지에 대한 처리 요청이 있을 때까지 대기하는 단계, 소프트웨어 패키지에 대한 처리 요청이 있는 경우 소프트웨어 패키지의 압축을 해제하는 단계, 소프트웨어 패키지의 매니페스트 파일을 파싱하는 단계, 소프트웨어 패키지에 포함된 실행 바이너리, 라이브러리, 기타 설정 파일들을 매니페스트 파일에 명시된 목표 위치에 설치하는 단계 및 UCM의 상태를 패키지 처리 완료 상태로 정의하는 단계를 포함할 수 있다.The package processing steps are: waiting until there is a processing request for the software package, unzipping the software package when there is a processing request for the software package, parsing the manifest file of the software package, and including it in the software package. It may include installing executable binaries, libraries, and other setting files in the target location specified in the manifest file, and defining the state of UCM as a package processing completion state.

패키지 활성 단계는 소프트웨어 패키지에 대한 활성 요청이 있을 때까지 대기하는 단계, 소프트웨어 패키지에 대한 활성 요청이 있을 경우 소프트웨어 패키지의 매니페스트 파일에 기록된 활성 스테이트 목록을 파싱하는 단계, SM에 파싱한 스테이트로의 변경 또는 동작 중인 프로세스의 목록을 요청하는 단계, SM으로부터 요청에 대한 응답을 수신하는 단계, 응답에 근거하여 소프트웨어 패키지의 활성 상태를 검증하는 단계 및 검증 결과 에러가 없을 경우 패키지 활성 단계를 종료하는 단계를 포함할 수 있다.The package activation step is the step of waiting until there is an activation request for the software package, parsing the active state list recorded in the manifest file of the software package when there is an activation request for the software package, and Requesting a list of changed or running processes, receiving a response to the request from the SM, verifying the active state of the software package based on the response, and terminating the package activation step if there is no error as a result of the verification. can include

또는, 패키지 활성 단계는 소프트웨어 패키지에 대한 활성 요청이 있을 때까지 대기하는 단계, 소프트웨어 패키지에 대한 활성 요청이 있을 경우 소프트웨어 패키지의 매니페스트 파일에 기록된 활성 스테이트 목록을 파싱하는 단계, SM에 파싱한 스테이트로의 변경 또는 동작 중인 프로세스의 목록을 요청하는 단계, SM으로부터 요청에 대한 응답을 수신하는 단계, 응답에 근거하여 소프트웨어 패키지의 활성 상태를 검증하는 단계 및 검증 결과 에러가 있는 경우 소프트웨어 패키지 활성을 중단하고, 백업 파티션으로 롤백을 수행하고 패키지 활성 단계를 종료하는 단계를 포함할 수 있다.Alternatively, the package activation step may include waiting until there is an activation request for the software package, parsing the active state list recorded in the software package's manifest file if there is an activation request for the software package, and parsing the active state list to the SM. Requesting a change to or a list of running processes, receiving a response to the request from the SM, verifying the active state of the software package based on the response, and stopping the activation of the software package if there is an error as a result of the verification and performing a rollback to the backup partition and terminating the package activation phase.

또는, 패키지 활성 단계는 소프트웨어 패키지에 대한 활성 요청이 있을 때까지 대기하는 단계, 소프트웨어 패키지에 대한 활성 요청이 있을 경우 소프트웨어 패키지의 매니페스트 파일에 기록된 활성 스테이트 목록을 파싱하는 단계, SM에 파싱한 스테이트로의 변경 또는 동작 중인 프로세스의 목록을 요청하는 단계, SM으로부터 요청에 대한 응답을 수신하는 단계, 응답에 근거하여 소프트웨어 패키지의 활성 상태를 검증하는 단계 및 검증 결과 에러가 없는 경우 소프트웨어 패키지의 매니페스트 파일에 플랫폼 리부팅 요구가 존재하는지 확인하고, 플랫폼 리부팅 요구가 존재할 경우 어댑티브 플랫폼 머신을 리부팅하고 패키지 활성 단계를 종료하고, 플랫폼 리부팅 요구가 존재하지 않을 경우 패키지 활성 단계를 종료하는 단계를 포함할 수 있다.Alternatively, the package activation step may include waiting until there is an activation request for the software package, parsing the active state list recorded in the software package's manifest file if there is an activation request for the software package, and parsing the active state list to the SM. A step of requesting a change to or a list of running processes, a step of receiving a response to the request from the SM, a step of verifying the active state of the software package based on the response, and a manifest file of the software package if there is no error as a result of the verification checking whether there is a platform rebooting request, rebooting the adaptive platform machine and terminating the package activating step if the platform rebooting request exists, and terminating the package activating step if the platform rebooting request does not exist.

본 발명에 따르면, AP 하에서 소프트웨어를 안정적으로 설치할 수 있다.According to the present invention, it is possible to stably install software under an AP.

도 1은 본 발명의 일 실시예에 따른 AP에서 다이나믹 소프트웨어 설치를 위한 어댑티브 오토사의 소프트웨어 구성 및 그 연결구조를 나타낸 도면.
도 2는 본 발명의 일 실시예에 따른 소프트웨어 설치 장치를 나타내는 구성도.
도 3은 본 발명의 일 실시예에 따른 소프트웨어 설치 장치로 소프트웨어 패키지를 전송받는 방법을 설명하기 위한 흐름도.
도 4은 본 발명의 일 실시예에 따른 소프트웨어 설치 장치로 전송된 소프트웨어 패키지를 설치하는 방법을 설명하기 위한 흐름도.
도 5는 본 발명의 일 실시예에 따른 소프트웨어 설치 장치에서 설치된 소프트웨어 패키지를 활성하고 검증하는 방법을 설명하기 위한 흐름도.
도 6은 본 발명의 일 실시예에 따른 소프트웨어 설치 장치에서 설치하는 소프트웨어 패키지를 나타내는 구성도.
도 7은 소프트웨어 패키지를 구성하기 위해 포함되어야 하는 어댑티브 오토사 모델링의 설정요소 항목을 나타낸 도면.
도 8은 패키지 매니페스트를 생성하기 위해 포함되어야 하는 어댑티브 오토사 모델링의 설정요소 항목을 나타낸 도면.
1 is a diagram showing a software configuration of Adaptive Auto for dynamic software installation in an AP and a connection structure thereof according to an embodiment of the present invention.
2 is a configuration diagram showing a software installation device according to an embodiment of the present invention.
3 is a flowchart illustrating a method of receiving a software package to a software installation device according to an embodiment of the present invention;
4 is a flowchart illustrating a method of installing a software package transmitted to a software installation apparatus according to an embodiment of the present invention;
5 is a flowchart illustrating a method of activating and verifying an installed software package in a software installation device according to an embodiment of the present invention;
6 is a configuration diagram illustrating a software package installed by a software installation device according to an embodiment of the present invention.
7 is a diagram showing setting elements of adaptive autosar modeling that should be included to configure a software package.
8 is a diagram showing the setting element items of Adaptive Autosar Modeling that must be included to create a package manifest.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 기재에 의해 정의된다. 한편, 본 명세서에서 사용된 용어는 실시 예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자 이외의 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다. Advantages and features of the present invention, and methods for achieving them, will become clear with reference to the embodiments described below in detail in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but will be implemented in a variety of different forms, only the present embodiments make the disclosure of the present invention complete, and those skilled in the art in the art to which the present invention belongs It is provided to fully inform the person of the scope of the invention, and the invention is defined by the description of the claims. Meanwhile, terms used in this specification are for describing embodiments and are not intended to limit the present invention. In this specification, singular forms also include plural forms unless specifically stated otherwise in a phrase. As used herein, "comprises" or "comprising" means the presence or absence of one or more other elements, steps, operations and/or elements other than the recited elements, steps, operations and/or elements; do not rule out additions.

본 발명은 컴퓨터나 이와 동등한 수준의 디지털 장치에서 판독 가능한 프로그램, 혹은 그 프로그램이 기록된 기록매체에 의해 수행될 수 있다. 즉, 본 발명은 컴퓨터나 이와 동등한 수준의 디지털 장치가 본 발명에 따른 AP 기반의 소프트웨어 설치를 위한 프로그램을 가동함으로써 수행될 수 있다.The present invention can be performed by a program readable by a computer or a digital device equivalent thereto, or a recording medium on which the program is recorded. That is, the present invention can be performed by operating a program for installing AP-based software according to the present invention on a computer or a digital device equivalent thereto.

이하, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부한 도면을 참조하여 상세하게 설명한다. 또한, 본 발명을 설명하는데 있어서 동일 부분은 동일 부호를 붙이고, 그 반복 설명은 생략한다.Hereinafter, the most preferred embodiment of the present invention will be described in detail with reference to the accompanying drawings in order to explain the present invention in detail to the extent that those skilled in the art can easily practice the present invention. In addition, in explaining the present invention, the same reference numerals are assigned to the same parts, and the repeated explanation thereof is omitted.

도 1은 AP에서 다이나믹 소프트웨어 업데이트를 위한 AP의 소프트웨어 구성 및 그 연결 구조를 나타낸 도면이다.1 is a diagram illustrating a software configuration of an AP and a connection structure thereof for dynamic software update in the AP.

도 1에서 도시된 바와 같이 다이나믹 소프트웨어 업데이트를 위한 AP의 기본 소프트웨어 구성은, 업데이트 및 설정 관리자(UCM, 110), 상태 관리자(SM, 120) 그리고 실행 관리자(Execution Management ; EM, 130)의 세 가지의 플랫폼 어플리케이션들이 POSIX 프로세스의 형태로 동작한다.As shown in FIG. 1, the basic software configuration of the AP for dynamic software update includes three components: an update and setting manager (UCM, 110), a state manager (SM, 120), and an execution manager (EM, 130). of platform applications run in the form of a POSIX process.

UCM(110)은 패키지 관리 서비스를 제공하는 플랫폼 어플리케이션이다. UCM (110) is a platform application that provides a package management service.

SM(120)은 상태 업데이트(UpdateState) 서비스를 제공하는 플랫폼 어플리케이션이며 다른 어플리케이션의 서비스 요청에 따라 Machine(100)에 전역적으로 적용되는 상태를 변경하고 그 변경 결과를 알려주기 위한 인터페이스를 제공한다. Machine(100)은 하나의 POSIX OS가 포팅된 각 ECU를 의미한다.The SM 120 is a platform application that provides an UpdateState service, and provides an interface for changing the globally applied state to the Machine 100 according to service requests from other applications and notifying the result of the change. Machine 100 means each ECU to which one POSIX OS is ported.

EM(130)은 SM(120)으로부터 소정의 요청을 받고, 다른 어플리케이션을 위한 POSIX 프로세스를 시작시키고 종료시키는 실행 관리를 위한 플랫폼 어플리케이션이다. EM(130)은 오직 SM(120)과만 통신한다. 도 1에서 OTA Client(140)는 POSIX 프로세스의 형태로 동작하는 어플리케이션의 일종이며, UCM(110)이 제공하는 패키지 관리(Package Management)라는 서비스를 사용하는 어플리케이션이다. 차량 제조사 백엔드 또는 차량 진단기로부터 들어오는 새로운 소프트웨어 패키지는 맨 처음 OTA Client(140)를 통해 저장된다. OTA Client(140)는 다운로드된 소프트웨어 패키지를 Machine(100)에 설치, 제거 또는 갱신하기 위하여 UCM(110)이 제공하는 패키지 관리 서비스를 반드시 사용하여 소프트웨어 패키지에 대한 설치, 제거 또는 갱신을 처리하도록 UCM(110)에 요청한다.The EM 130 is a platform application for execution management that receives a predetermined request from the SM 120 and starts and terminates POSIX processes for other applications. EM 130 communicates only with SM 120 . In FIG. 1, the OTA Client 140 is a kind of application that operates in the form of a POSIX process, and is an application that uses a service called package management provided by the UCM 110. A new software package coming from the vehicle manufacturer's backend or vehicle diagnostics is initially stored through the OTA Client (140). The OTA Client (140) must use the package management service provided by the UCM (110) to install, remove, or update the downloaded software package on the Machine (100) to process the installation, removal, or update of the software package. Request at (110).

도 2는 본 발명의 일 실시예에 따른 UCM(110)의 구조를 도시하고 있다. 본 발명에 따른 UCM(110)은 소프트웨어 패키지를 수신하고 저장하는 전송 모듈(210), 소프트웨어 패키지의 압축을 해제하고 설치하는 패키지 처리 모듈(220), 그리고 소프트웨어 패키지의 활성 요청이 있을 경우 SM에 패키지 활성 상태로의 변경을 요청하고 SM으로부터 응답을 받아 소프트웨어 패키지의 활성 상태 여부를 검증하는 패키지 활성 모듈(230)을 포함한다. UCM(110)은 서비스 공급자 포트를 통하여 타 어플리케이션에서 요청을 수신하고 분류하여, 각 모듈(210, 220, 230)이 제공하는 기능을 개별적으로 제공할 수 있다. 또한 UCM(110)은 SM(120)이 제공하는 상태 업데이트(UpdateState) 서비스를 사용한다. SM(120)의 상태 업데이트(UpdateState) 서비스를 사용하기 위해 UCM(110)은 서비스 수요자 포트(RPort 또는 require-port)를 통하여 서비스를 요청한다. UCM(110)이 포함하는 각 모듈의 형태는 인스턴스이며 하나의 스레드를 점유한다.Figure 2 shows the structure of the UCM (110) according to an embodiment of the present invention. The UCM 110 according to the present invention includes a transmission module 210 that receives and stores a software package, a package processing module 220 that uncompresses and installs a software package, and a package to the SM when a software package activation request is received. and a package activation module 230 that requests a change to an active state, receives a response from the SM, and verifies whether the software package is active. The UCM 110 may receive and classify requests from other applications through a service provider port, and individually provide functions provided by the modules 210, 220, and 230. Also, the UCM 110 uses an UpdateState service provided by the SM 120. To use the UpdateState service of the SM 120, the UCM 110 requests the service through a service demander port (RPort or require-port). The type of each module included in the UCM 110 is an instance and occupies one thread.

패키지 저장소(240)는 UCM(110)이 전송된 소프트웨어 패키지를 저장하는 파일 시스템을 의미한다.The package storage 240 refers to a file system in which the UCM 110 stores transmitted software packages.

도 3은 도 2의 전송 모듈(210)이 중심이 되어 진행되는 소프트웨어 패키지의 전송 단계를 설명하기 위한 흐름도이다.FIG. 3 is a flowchart for explaining a transmission step of a software package, which is performed centered on the transmission module 210 of FIG. 2 .

서비스 수요자(Service Consumer, OTA Client, 140)가 백엔드 또는 진단 테스터로부터 소프트웨어 패키지를 다운로드 받으면, 이에 대한 전송 요청을 UCM(110)으로 송신한다. UCM(110)은 서비스 공급자 포트를 통해 도 3에 도시된 소프트웨어 패키지 전송을 개시한다. 전송 모듈(210)은 소프트웨어 패키지를 수신할 수 있는 상태인지 검증하고, 만약 소프트웨어 패키지를 수신할 수 있는 상태라면 전송에 문제가 없는지, 전송된 소프트웨어 패키지를 저장하는데 문제가 없는지 검증한다. When a service consumer (OTA Client, 140) downloads a software package from a backend or diagnostic tester, it transmits a request for transmission to the UCM (110). UCM 110 initiates the delivery of the software package shown in FIG. 3 through the service provider port. The transmission module 210 verifies whether the software package can be received, and if the software package can be received, there is no problem in transmission and whether there is no problem in storing the software package.

UCM(110)의 서비스 공급자 포트를 통해 TransferStart 리퀘스트가 인입되면 전송 모듈(210)은 현재 전송 또는 처리 중인 다른 소프트웨어 패키지의 존재 유무를 판단한다. 이 때 TransferStart 리퀘스트에 전송할 소프트웨어 패키지의 크기(총 용량)이 명시되어야 한다. When a TransferStart request is received through the service provider port of the UCM 110, the transmission module 210 determines whether another software package currently being transmitted or processed exists. At this time, the size (total capacity) of the software package to be transferred must be specified in the TransferStart request.

전송 모듈(210)은 전송 중인 다른 소프트웨어 패키지가 없으면 소프트웨어 패키지를 수신 가능한 상태로서 정의하고, 이전 플랫폼 소프트웨어 패키지들이 설치되어 있는 파티션을 그대로 복제하여 백업 파티션을 구성한다(S310). 백업 파티션 구성이 완료되면 전송 모듈(210)은 소프트웨어 패키지를 수신할 수 있는 대기 상태가 된다(S320).The transmission module 210 defines a software package as a receiving state when there is no other software package being transmitted, and configures a backup partition by duplicating a partition in which previous platform software packages are installed (S310). When the configuration of the backup partition is completed, the transmission module 210 enters a standby state capable of receiving a software package (S320).

전송 모듈(210)은 UCM(110)의 서비스 공급자 포트를 통해 인입된 TransferData 리퀘스트가 있는지를 판단하고(S330), TransferData 리퀘스트가 있다면 소프트웨어 패키지를 수신한다(S340). 소프트웨어 패키지를 몇 개의 블록으로 나눠서 전송할지는 서비스 수요자의 선택에 따른다. 서비스 수요자가 결정한 블록의 수대로 소프트웨어 패키지의 데이터는 분할되며 UCM(110)의 서비스 공급자 포트를 통해 전송된다. 최종적인 TransferData 리퀘스트가 다 진행되었으면, 서비스 수요자는 TransferExit 리퀘스트를 송신한다. The transmission module 210 determines whether there is a TransferData request received through the service provider port of the UCM 110 (S330), and receives a software package if there is a TransferData request (S340). How many blocks the software package is divided into and transmitted depends on the service consumer's choice. The data of the software package is divided according to the number of blocks determined by the service consumer and transmitted through the service provider port of the UCM (110). When the final TransferData request is completed, the service consumer transmits a TransferExit request.

이 때 전송 모듈(210)은 TransferStart 리퀘스트에 명시된 소프트웨어 패키지의 크기 값과 TransferData 리퀘스트를 통하여 실제로 수신된 소프트웨어 패키지의 크기를 비교한다(S350). 비교 결과 차이가 있으면 다운로드 정보 비일치성에 대한 에러 코드를 서비스 수요자에 송신하여, 전송이 잘못되었음을 알린다(S355). 문제가 없으면, 패키지 수신을 완료하고(S360), UCM(110)의 상태를 패키지 수신 완료 상태로 정의한다(S370).At this time, the transfer module 210 compares the size value of the software package specified in the TransferStart request with the size of the software package actually received through the TransferData request (S350). If there is a difference as a result of the comparison, an error code for non-coincidence of download information is transmitted to the service consumer to notify that transmission is incorrect (S355). If there is no problem, the package reception is completed (S360), and the state of the UCM 110 is defined as a package reception completion state (S370).

소프트웨어 패키지 수신이 완료되면, 이 파일은 패키지 저장소(240)에 보관된다. 저장된 파일은 설치 과정이 완료될 때까지 유지된다.Upon completion of receiving the software package, this file is stored in the package storage 240. Saved files are maintained until the installation process is complete.

전송 모듈의 동작과 관련된 변형 실시 예로서, 전송 모듈(210)이 소프트웨어 패키지를 수신 가능한 상태로 정의한 경우, 서비스 수요자로 송신을 요청하여 그 패키지의 일부를 사전 검증 용도로 수신하여 가상 영역에서 테스트를 수행하여, 통신, 압축 해제, 실행 등에서 오류가 있을 경우, 백업 파티션 구성(S310)에 들어가지 않고 에러 코드를 패키지 관리 서비스의 수요자에게 송신하여 잘못된 소프트웨어 패키지임을 알리는 단계가 백업 파티션의 구성(S310) 직전의 단계로서 추가될 수 있다.As a modified embodiment related to the operation of the transmission module, when the transmission module 210 defines the software package as receivable, it requests transmission to the service consumer, receives a part of the package for preliminary verification purposes, and conducts a test in the virtual area. When there is an error in communication, decompression, execution, etc., the step of notifying the consumer of the package management service of an error code that it is an invalid software package without entering the backup partition configuration (S310) is the configuration of the backup partition (S310) It can be added as an immediately preceding step.

도 4는 도 2의 패키지 처리 모듈(220)이 중심이 되어 진행되는 소프트웨어 패키지의 처리 단계를 설명하기 위한 흐름도이다.FIG. 4 is a flowchart for explaining a process of processing a software package performed with the package processing module 220 of FIG. 2 as the center.

도 3의 소프트웨어 패키지 전송 과정이 완료되어 전송 모듈(210)에 의하여 UCM(110)의 상태가 패키지 수신 완료 상태로 정의된 경우, 도 4에 도시된 바와 같이 패키지 처리 모듈(220)의 동작이 개시된다. 패키지 처리 모듈(220)은 허용 가능한 몇 가지 리퀘스트에 대해 대기한다(S410). 서비스 수요자의 ProcessSwPackage 리퀘스트가 UCM(110)의 서비스 공급자 포트를 통해 수신되면(S420), 패키지 처리 모듈(220)은 패키지 저장소(240)에 있는 소프트웨어 패키지의 설치를 진행한다(S430 내지 S480).When the software package transmission process of FIG. 3 is completed and the state of the UCM 110 is defined as a package reception completion state by the transmission module 210, the operation of the package processing module 220 starts as shown in FIG. do. The package processing module 220 waits for several allowable requests (S410). When the ProcessSwPackage request of the service consumer is received through the service provider port of the UCM 110 (S420), the package processing module 220 proceeds to install the software package in the package storage 240 (S430 to S480).

전송된 소프트웨어 패키지는 압축 파일의 일종이며 압축 포맷은 차량 제조사 또는 플랫폼 제조사에 따라 달라질 수 있다. 소프트웨어 설치의 첫 단계는 소프트웨어 패키지에 대한 압축 해제이다(S430). 소프트웨어 패키지에 패키지 매니페스트(Package Manifest) 파일이 있어야 패키지 처리 모듈(220)이 처리 가능하다. 각 소프트웨어 패키지는 공통적으로 하나의 패키지 매니페스트 파일을 가지고 있으며, 이 패키지 매니페스트 파일은 설치될 차량 어플리케이션의 실행 바이너리, 라이브러리 및 실행 바이너리의 동작을 위한 설정 파일들의 설치 위치, 버전 등의 정보를 가진다. 즉, 설치 목표 위치를 명시적으로 가지며, 패키지 처리 모듈(220)은 이 부분을 처리할 수 있도록 패키지 매니페스트 파일을 파싱한다(S440). 파싱이 완료되었으면, 소프트웨어 패키지에 포함된 실행 바이너리, 라이브러리, 설정 파일을 패키지 매니페스트 파일에 명시된 순서대로 목표 위치에 설치한다(S450 내지 S470). 이 과정이 완료되면 패키지 처리 모듈(220)은 UCM(110)의 상태를 패키지 처리 완료 상태로 정의한다(S480). The transmitted software package is a type of compressed file, and the compressed format may vary depending on the vehicle manufacturer or platform manufacturer. The first step of software installation is decompression of the software package (S430). The package processing module 220 can process only when the software package has a package manifest file. Each software package has a single package manifest file in common, and this package manifest file has information such as an installation location and version of an executable binary of a vehicle application to be installed, a library, and setting files for operation of the executable binary. That is, the installation target location is explicitly set, and the package processing module 220 parses the package manifest file to process this part (S440). When parsing is completed, executable binaries, libraries, and setting files included in the software package are installed in the target location in the order specified in the package manifest file (S450 to S470). When this process is completed, the package processing module 220 defines the state of the UCM 110 as a package processing completion state (S480).

도 5는 도 2의 패키지 활성 모듈(230)이 중심이 되어 진행되는 소프트웨어 패키지의 활성 단계를 설명하기 위한 흐름도이다.FIG. 5 is a flowchart for explaining an activation step of a software package performed with the package activation module 230 of FIG. 2 as the center.

도 5에 도시된 바와 같이 패키지 활성 모듈(230)은, 도 4의 UCM(110)에서의 소프트웨어 패키지 처리 과정이 완료되고, 패키지 처리 모듈(220)을 통하여 UCM(110)의 상태가 패키지 처리 완료 상태(S480)로 정의된 경우 시작된다. 이후 패키지 활성 모듈(230)은 Activate 리퀘스트가 있을 때까지 대기한다(S510). 서비스 수요자가 Activate 리퀘스트를 통해 설치 완료된 소프트웨어 패키지의 활성을 요청하면(S520), 패키지 활성 모듈(230)은 Activate 리퀘스트를 UCM(110)의 서비스 공급자 포트를 통해 수신하여 설치 완료된 소프트웨어의 활성 및 검증을 진행한다(S530 내지 S590).As shown in FIG. 5, the package activation module 230 determines that the software package processing process in the UCM 110 of FIG. It starts when defined as the state (S480). Then, the package activation module 230 waits until there is an Activate request (S510). When the service consumer requests activation of the installed software package through the Activate request (S520), the package activation module 230 receives the Activate request through the service provider port of the UCM 110 to activate and verify the installed software. It proceeds (S530 to S590).

첫 번째로 패키지 매니페스트 파일에 있는 활성 스테이트 목록을 파싱한다(S530). 패키지 활성 모듈(230)은 파싱된 스테이트 목록에 있는 순서대로 도 1의 SM(120)이 제공하는 UpdateState 서비스의 SetState 메소드에 대한 리퀘스트(이하 'SetState 리퀘스트'로 줄임)를 SM(120)에 송신하여 스테이트(상태) 변경을 요청한다(S540). 즉, 패키지 활성 모듈(230)은 UpdateState 서비스의 수요자로서 동작한다. 이후, 패키지 활성 모듈(230)은 SM(120)에서 응답이 올 때까지 대기한다.First, the active state list in the package manifest file is parsed (S530). The package activation module 230 transmits to the SM 120 a request for the SetState method of the UpdateState service provided by the SM 120 of FIG. 1 in the order in the parsed state list (hereinafter referred to as 'SetState request') State (state) change is requested (S540). That is, the package activation module 230 operates as a consumer of the UpdateState service. Then, the package activation module 230 waits until a response comes from the SM 120.

SM(120)의 서비스 공급자 포트를 통해 SetState 리퀘스트가 인입되면, SM(120)은 수신한 스테이트로의 변경 요청을 EM(130)으로 송신한다. EM(130)은 SM(120)으로부터 수신한 스테이트로의 변경을 진행한다. SM(120)은 EM(130)에 스테이트 변경을 요청한 이후, EM(130)에서 응답이 올 때까지 대기한다.When a SetState request is received through the service provider port of the SM 120, the SM 120 transmits a change request to the received state to the EM 130. EM 130 proceeds with the change to the state received from SM 120. After the SM 120 requests a state change from the EM 130, it waits until a response comes from the EM 130.

EM(130)이 스테이트 변경을 처리한 후, SM(120)으로 결과를 응답한다. SM(120)은 SetState 리퀘스트에 대한 응답을 UCM(110)으로 전송한다. UCM(110)의 패키지 활성 모듈(230)은 SetState 리퀘스트에 대한 응답을 수신한다. SM(120)의 SetState 리퀘스트에 대한 응답은 스테이트 변경의 정상 처리 여부에 대한 것이다(S550).After EM 130 processes the state change, it returns the result to SM 120. SM (120) transmits a response to the SetState request to the UCM (110). The package activation module 230 of the UCM 110 receives a response to the SetState request. The response to the SetState request of the SM 120 is whether or not the state change is normally processed (S550).

스테이트 변경이 정상적으로 처리되었다면, 파싱된 스테이트 목록의 다음 순서에 대한 스테이트 활성과 관련하여 SM(120)에 SetState 리퀘스트를 송신하여 스테이트 변경을 요청한다.If the state change is normally processed, a SetState request is transmitted to the SM 120 to request a state change in relation to state activation for the next order of the parsed state list.

만약 에러를 수신하였으면, 패키지 활성 모듈(230)은 패키지 매니페스트에 기록된 스테이트를 어댑티브 플랫폼 머신(Machine, 100)에서 등록되지 않은 스테이트로 간주하고, 해당 소프트웨어 패키지 활성을 중단한다. 그리고 에러 코드를 패키지 관리 서비스의 수요자에게 송신하여 잘못된 소프트웨어 패키지임을 알려준다(S552). 이후 패키지 활성 모듈(230)은 소프트웨어 패키지 수신 전의 상태를 저장해둔 백업 파티션으로 롤백을 수행한다(S554). 이후 UCM(110)의 다른 상태를 모두 초기화하며, 패키지 활성 단계는 종료된다.If an error is received, the package activation module 230 considers the state recorded in the package manifest as an unregistered state in the adaptive platform machine (Machine, 100), and stops activating the corresponding software package. In addition, an error code is transmitted to the consumer of the package management service to notify that it is an invalid software package (S552). Then, the package activating module 230 rolls back to the backup partition in which the state before receiving the software package is stored (S554). After that, all other states of the UCM 110 are initialized, and the package activation phase ends.

패키지 매니페스트 파일에 기록된 활성 스테이트 목록에 존재하는 모든 스테이트 변경이 에러 없이 완료되면, 패키지 활성 모듈(230)은 SM(120)이 제공하는 UpdateState 서비스의 GetVerificationList 메소드에 대한 리퀘스트(이하 'GetVerificationList 리퀘스트'로 줄임)를 SM(120)에 송신한다(S560). 이후, 패키지 활성 모듈(230)은 SM(120)에서 응답이 올 때까지 대기한다.When all state changes in the active state list recorded in the package manifest file are completed without errors, the package active module 230 sends a request to the GetVerificationList method of the UpdateState service provided by the SM 120 (hereinafter referred to as 'GetVerificationList request'). abbreviation) is transmitted to the SM 120 (S560). Then, the package activation module 230 waits until a response comes from the SM 120.

SM(120)의 서비스 공급자 포트를 통해 GetVerificationList 리퀘스트가 인입되면, SM(120)은 현재 어댑티브 플랫폼 머신에서 동작 중인 프로세스 목록을 얻기 위한 요청을 EM(130)으로 송신한다. SM(120)은 EM(130)으로 프로세스 목록 요청 이후, EM(130)으로부터 응답이 올 때까지 대기한다.When a GetVerificationList request is received through the service provider port of the SM 120, the SM 120 transmits to the EM 130 a request for obtaining a list of processes currently running in the adaptive platform machine. The SM 120 waits until a response comes from the EM 130 after requesting the process list to the EM 130 .

EM(130)은 SM(120)으로부터 리퀘스트를 수신하여, EM(130) 제어 하에서 동작 중인 프로세스 목록을 SM(120)에 송신한다. SM(120)은 GetVerificationList 리퀘스트에 대한 응답을 UCM(110)으로 송신한다. 패키지 활성 모듈(230)은 UCM(110)의 서비스 공급자 포트를 통해 응답을 수신한다.The EM 130 receives a request from the SM 120 and transmits to the SM 120 a list of processes operating under the control of the EM 130 . The SM 120 transmits a response to the GetVerificationList request to the UCM 110. The package activation module 230 receives a response through the service provider port of the UCM 110 .

패키지 활성 모듈(230)은 GetVerificationList 리퀘스트에 대한 응답을 통하여 현재 어댑티브 플랫폼의 EM(130) 제어 하에서 동작하고 있는 POSIX 프로세스의 목록을 알아낸다. 소프트웨어 패키지에 포함되어 있던 실행 파일이 동작하는 것을 확인하면 패키지 활성 상태가 검증되었다고 결정한다(S570). 이후, 패키지 활성 모듈(230)은 패키지 매니페스트의 파싱을 통해 플랫폼 리부팅 요구가 존재하는지 확인한다(S580). 만약 플랫폼 리부팅에 대한 요구가 있다면, 패키지 활성 모듈(230)은 어댑티브 플랫폼 머신을 리부팅한다(S590). 만약 플랫폼 리부팅을 요구하지 않으면, 패키지 활성 모듈(230)은 패키지 활성 점검 완료 동작을 수행한다(S582).The package activation module 230 finds a list of POSIX processes currently operating under the control of the EM 130 of the Adaptive Platform through a response to the GetVerificationList request. When it is confirmed that the executable file included in the software package operates, it is determined that the active state of the package has been verified (S570). Thereafter, the package activation module 230 checks whether a platform reboot request exists through parsing of the package manifest (S580). If there is a request for platform rebooting, the package activation module 230 reboots the adaptive platform machine (S590). If platform rebooting is not requested, the package activation module 230 performs a package activation check completion operation (S582).

패키지 활성 모듈(230)은 패키지 활성 점검이 에러 없이 완료되면 UCM(110)의 패키지 관리 서비스의 수요자에게 설치가 완료되었음을 송신하고, UCM(110)의 다른 상태를 모두 초기화한 다음, 패키지 활성 단계를 종료한다.When the package activation check is completed without errors, the package activation module 230 transmits that installation is complete to the consumer of the package management service of the UCM 110, initializes all other states of the UCM 110, and then performs the package activation step. quit

만약 소프트웨어 패키지에 포함된 실행 파일이 하나라도 동작하지 않으면, 패키지 활성 모듈(230)은 에러 코드를 패키지 관리 서비스의 수요자에게 송신하여 잘못된 소프트웨어 패키지라 알려주며(S552), 소프트웨어 패키지 수신 전의 상태를 저장해둔 백업 파티션으로 롤백을 수행한다(S554). 이후 패키지 활성 모듈(230)은 UCM(110)의 다른 상태를 모두 초기화한 다음, 패키지 활성 단계를 종료한다.If even one executable file included in the software package does not operate, the package activating module 230 transmits an error code to the consumer of the package management service and informs them that it is an invalid software package (S552), and stores the state prior to receiving the software package. Rolling back to the backup partition is performed (S554). Thereafter, the package activation module 230 initializes all other states of the UCM 110 and then ends the package activation step.

도 6은 UCM(110)에서 처리 가능한 소프트웨어 패키지의 기본 형태를 설명하기 위한 구조도이다.6 is a structural diagram for explaining the basic form of a software package that can be processed by the UCM (110).

소프트웨어 패키지의 기본 형식은 여러 파일들을 하나의 파일로 만든 한 개의 압축 파일이며, 차량 제조사의 특수 암호화 및 표시를 나타내는 서명(OEM SIGNATURE)이 이 파일에 포함된다. UCM(110)은 소프트웨어 패키지의 압축 해제를 시행할 때 올바른 서명을 가진 소프트웨어 패키지만 압축 해제한다. 패키지 매니페스트(Package Manifest)는 소프트웨어 패키지에 포함된 여러 파일들의 목록, 설치 목표 위치 및 활성 점검할 스테이트에 대한 정보를 기술한 파일이다. UCM(110)은 소프트웨어 패키지를 설치할 때 이 파일에 명시된 정보에 따라 설치를 진행한다. "EXECUTABLE"은 소프트웨어 패키지에 포함된 차량 어플리케이션들의 실행 파일의 집합을 의미한다. "LIBRARY"는 소프트웨어 패키지에 포함된 차량 어플리케이션들의 실행 파일을 동작시키기 위해 플랫폼에 설치되어야 하는 라이브러리 파일들의 집합을 의미한다. "ETC"는 소프트웨어 패키지에 포함된 차량 어플리케이션들의 실행 파일이 따로 읽어야 하는 설정 파일, 텍스트 파일 등을 의미한다.The basic format of the software package is a single compressed file made up of several files, and the vehicle manufacturer's special encryption and signature (OEM SIGNATURE) is included in this file. When the UCM 110 performs decompression of software packages, only software packages with valid signatures are decompressed. A package manifest is a file that describes information about the list of various files included in a software package, the installation target location, and the active state to be checked. When the UCM 110 installs the software package, it proceeds with the installation according to the information specified in this file. "EXECUTABLE" means a set of executable files of vehicle applications included in a software package. "LIBRARY" means a set of library files that must be installed on the platform to operate the executable files of vehicle applications included in the software package. "ETC" means a setting file, text file, etc. that executable files of vehicle applications included in a software package must separately read.

도 7은 본 발명에서 제시하는 소프트웨어 패키지를 구성하기 위해 포함되어야 하는 AP 모델링 설정 요소 항목을 표현하는 도면이다. 소프트웨어 패키지를 구성해야 하는 정보, 실행 파일, 일반 파일, 매니페스트들이 무엇인지를 포함한다.7 is a diagram representing AP modeling setting element items to be included to configure a software package proposed in the present invention. It contains information about what constitutes a software package, what executables, plain files, and manifests are.

도 8은 본 발명에서 제시하는 패키지 매니페스트를 생성하기 위해 포함되어야 하는 AP 모델링 설정 요소 항목을 표현하는 도면이다. 패키지 매니페스트를 생성하기 위해 요구되는 소프트웨어 패키지 구성 정보, 서명, 패키지 용량, 버전, 소프트웨어 패키지 활성을 위해 요구되는 스테이트 정보 및 머신 리부팅 여부 정보를 포함한다.8 is a diagram representing AP modeling configuration element items to be included to generate a package manifest proposed in the present invention. It includes software package configuration information required to create a package manifest, signature, package capacity, version, state information required for software package activation, and machine reboot information.

Claims (12)

오토사 어댑티브 플랫폼 기반의 소프트웨어 패키지 업데이트 장치에 있어서,
서비스 공급자 포트를 통해 소프트웨어 패키지를 수신하고 저장하는 전송 모듈과
상기 전송 모듈이 상기 소프트웨어 패키지를 저장하는 패키지 저장소와
상기 소프트웨어 패키지의 압축을 해제하고 설치하는 패키지 처리 모듈과
상기 소프트웨어 패키지의 활성 요청이 있을 경우 상태 관리자에 패키지 활성 상태로의 변경을 요청하고 상기 상태 관리자로부터 응답을 받아 상기 소프트웨어 패키지의 활성 상태 여부를 검증하는 패키지 활성 모듈
을 포함하는 오토사 어댑티브 플랫폼 기반의 소프트웨어 패키지 업데이트 장치.
In the software package update device based on the Autosar Adaptive platform,
A transport module that receives and stores software packages through the service provider port; and
a package store where the delivery module stores the software package; and
A package processing module for decompressing and installing the software package; and
A package activation module requesting a state manager to change to a package active state when there is a request for activating the software package, receiving a response from the state manager, and verifying whether the software package is active.
A software package update device based on the Autosar Adaptive platform, including a.
제1항에 있어서, 상기 전송 모듈은
이전 플랫폼 소프트웨어 패키지들이 설치되어 있는 파티션을 복제하여 백업 파티션을 구성할 수 있는,
오토사 어댑티브 플랫폼 기반의 소프트웨어 패키지 업데이트 장치.
The method of claim 1, wherein the transmission module
A backup partition can be configured by cloning the partition where the previous platform software packages are installed.
A software package update device based on the Autosar Adaptive platform.
제1항에 있어서, 상기 전송 모듈은
새로운 소프트웨어 패키지에 대한 수신 요청에서의 상기 소프트웨어 패키지의 크기 정보와 실제로 전송된 상기 소프트웨어 패키지의 크기 정보가 일치하는지 확인하고, 일치하지 않을 경우, 상기 서비스 공급자 포트를 통해 에러 코드를 서비스 수요자에 송신하는,
오토사 어댑티브 플랫폼 기반의 소프트웨어 패키지 업데이트 장치.
The method of claim 1, wherein the transmission module
Checking whether the size information of the software package in the reception request for the new software package and the size information of the actually transmitted software package match, and if not matching, sending an error code to the service consumer through the service provider port ,
A software package update device based on the Autosar Adaptive platform.
제1항에 있어서, 상기 패키지 처리 모듈은
상기 소프트웨어 패키지의 매니페스트 파일을 파싱한 후
상기 소프트웨어 패키지에 포함된 실행 바이너리, 라이브러리, 기타 설정 파일들을 상기 매니페스트 파일에 명시된 목표 위치에 설치할 수 있는,
오토사 어댑티브 플랫폼 기반의 소프트웨어 패키지 업데이트 장치.
The method of claim 1, wherein the package processing module
After parsing the manifest file of the software package
The executable binaries, libraries, and other setting files included in the software package can be installed in the target location specified in the manifest file.
A software package update device based on the Autosar Adaptive platform.
제1항에 있어서, 상기 패키지 활성 모듈은
상기 소프트웨어 패키지의 활성상태 검증 결과 에러가 있는 경우 상기 소프트웨어 패키지의 활성을 중단하고, 백업 파티션으로 롤백을 수행할 수 있는,
오토사 어댑티브 플랫폼 기반의 소프트웨어 패키지 업데이트 장치.
The method of claim 1, wherein the package activation module
If there is an error as a result of verifying the activation state of the software package, the activation of the software package can be stopped and a rollback can be performed to a backup partition.
A software package update device based on the Autosar Adaptive platform.
제1항에 있어서, 상기 패키지 활성 모듈은
상기 소프트웨어 패키지의 매니페스트 파일에 플랫폼 리부팅 요구가 존재할 경우 어댑티브 플랫폼 머신을 리부팅할 수 있는,
오토사 어댑티브 플랫폼 기반의 소프트웨어 패키지 업데이트 장치.
The method of claim 1, wherein the package activation module
capable of rebooting the adaptive platform machine when a platform reboot request is present in the manifest file of the software package;
A software package update device based on the Autosar Adaptive platform.
오토사 어댑티브 플랫폼 기반의 소프트웨어 패키지 업데이트 방법에 있어서,
서비스 공급자 포트를 통해 소프트웨어 패키지를 수신하고 저장하는 전송 단계와
상기 소프트웨어 패키지의 압축을 해제하고 설치하는 패키지 처리 단계와
상기 소프트웨어 패키지에 대한 활성 요청이 있을 경우 상태 관리자에 패키지 활성 상태로의 변경을 요청하고 상기 상태 관리자로부터 응답을 받아 상기 소프트웨어 패키지의 활성 상태 여부를 검증하는 패키지 활성 단계
를 포함하는 오토사 어댑티브 플랫폼 기반의 소프트웨어 패키지 업데이트 방법.
In the software package update method based on the Autosar Adaptive platform,
The transport step of receiving and storing the software package through the service provider port; and
A package processing step of decompressing and installing the software package; and
A package activation step of requesting a change to a package active state from a state manager when there is a request for activating the software package, receiving a response from the state manager, and verifying whether the software package is active.
A method for updating a software package based on the Autosar Adaptive platform, including a.
제7항에 있어서, 상기 전송 단계는
이전 플랫폼 소프트웨어 패키지들이 설치되어 있는 파티션을 그대로 복제하여 백업 파티션을 구성하는 단계와
새로운 소프트웨어 패키지에 대한 수신 요청이 있을 때까지 대기하는 단계와
상기 요청이 있을 경우 상기 소프트웨어 패키지를 수신하는 단계와
상기 요청에서의 상기 소프트웨어 패키지의 크기 정보와 실제로 전송된 상기 소프트웨어 패키지의 크기 정보가 일치하는지 확인하여 일치하지 않을 경우 에러 코드를 응답하고, 일치할 경우 패키지 수신을 완료하는 단계와
상기 업데이트 및 설정 관리자의 상태를 패키지 수신 완료 상태로 정의하는 단계를 포함하는,
오토사 어댑티브 플랫폼 기반의 소프트웨어 패키지 업데이트 방법.
The method of claim 7, wherein the transmitting step
The steps of constructing a backup partition by cloning the partition where the previous platform software packages are installed;
waiting for a request to receive a new software package; and
receiving the software package if the request is made; and
checking whether the size information of the software package in the request matches the size information of the software package actually transmitted, responding with an error code if they do not match, and completing receiving the package if they match;
Defining the status of the update and setting manager as a package reception complete status,
A software package update method based on the Autosar Adaptive platform.
제7항에 있어서, 상기 패키지 처리 단계는
상기 소프트웨어 패키지에 대한 처리 요청이 있을 때까지 대기하는 단계와
상기 소프트웨어 패키지에 대한 처리 요청이 있는 경우 상기 소프트웨어 패키지의 압축을 해제하는 단계와
상기 소프트웨어 패키지의 매니페스트 파일을 파싱하는 단계와
상기 소프트웨어 패키지에 포함된 실행 바이너리, 라이브러리, 기타 설정 파일들을 상기 매니페스트 파일에 명시된 목표 위치에 설치하는 단계와
상기 업데이트 및 설정 관리자의 상태를 패키지 처리 완료 상태로 정의하는 단계를 포함하는,
오토사 어댑티브 플랫폼 기반의 소프트웨어 패키지 업데이트 방법.
The method of claim 7, wherein the package processing step
waiting until there is a processing request for the software package; and
decompressing the software package when there is a request for processing the software package; and
parsing a manifest file of the software package;
Installing executable binaries, libraries, and other setting files included in the software package to a target location specified in the manifest file; and
Including the step of defining the state of the update and setting manager as a package processing completion state,
A software package update method based on the Autosar Adaptive platform.
제7항에 있어서, 상기 패키지 활성 단계는
상기 소프트웨어 패키지에 대한 활성 요청이 있을 때까지 대기하는 단계와
상기 소프트웨어 패키지에 대한 활성 요청이 있을 경우 상기 소프트웨어 패키지의 매니페스트 파일에 기록된 활성 스테이트 목록을 파싱하는 단계와
상태 관리자에 파싱한 스테이트로의 변경 또는 동작 중인 프로세스의 목록을 요청하는 단계와
상기 상태 관리자로부터 요청에 대한 응답을 수신하는 단계와
상기 응답에 근거하여 상기 소프트웨어 패키지의 활성 상태를 검증하는 단계와
상기 검증 결과 에러가 없을 경우 상기 패키지 활성 단계를 종료하는 단계를 포함하는,
오토사 어댑티브 플랫폼 기반의 소프트웨어 패키지 업데이트 방법.
The method of claim 7, wherein the package activation step
waiting until there is an activation request for the software package; and
Parsing an active state list recorded in a manifest file of the software package when there is an activation request for the software package;
The step of requesting a change to the parsed state or a list of running processes from the state manager; and
receiving a response to the request from the state manager; and
verifying the active state of the software package based on the response;
Comprising the step of terminating the package activation step when there is no error as a result of the verification,
A software package update method based on the Autosar Adaptive platform.
제7항에 있어서, 상기 패키지 활성 단계는
상기 소프트웨어 패키지에 대한 활성 요청이 있을 때까지 대기하는 단계와
상기 소프트웨어 패키지에 대한 활성 요청이 있을 경우 상기 소프트웨어 패키지의 매니페스트 파일에 기록된 활성 스테이트 목록을 파싱하는 단계와
상태 관리자에 파싱한 스테이트로의 변경 또는 동작 중인 프로세스의 목록을 요청하는 단계와
상기 상태 관리자로부터 요청에 대한 응답을 수신하는 단계와
상기 응답에 근거하여 상기 소프트웨어 패키지의 활성 상태를 검증하는 단계와
상기 검증 결과 에러가 있는 경우 상기 소프트웨어 패키지 활성을 중단하고, 백업 파티션으로 롤백을 수행하고 상기 패키지 활성 단계를 종료하는 단계를 포함하는,
오토사 어댑티브 플랫폼 기반의 소프트웨어 패키지 업데이트 방법.
The method of claim 7, wherein the package activation step
waiting until there is an activation request for the software package; and
Parsing an active state list recorded in a manifest file of the software package when there is an activation request for the software package;
The step of requesting a change to the parsed state or a list of running processes from the state manager; and
receiving a response to the request from the state manager; and
verifying the active state of the software package based on the response;
If there is an error as a result of the verification, stopping the software package activation, performing a rollback to a backup partition, and terminating the package activation step.
A software package update method based on the Autosar Adaptive platform.
제7항에 있어서, 상기 패키지 활성 단계는
상기 소프트웨어 패키지에 대한 활성 요청이 있을 때까지 대기하는 단계와
상기 소프트웨어 패키지에 대한 활성 요청이 있을 경우 상기 소프트웨어 패키지의 매니페스트 파일에 기록된 활성 스테이트 목록을 파싱하는 단계와
상태 관리자에 파싱한 스테이트로의 변경 또는 동작 중인 프로세스의 목록을 요청하는 단계와
상기 상태 관리자로부터 요청에 대한 응답을 수신하는 단계와
상기 응답에 근거하여 상기 소프트웨어 패키지의 활성 상태를 검증하는 단계와
상기 검증 결과 에러가 없는 경우 상기 소프트웨어 패키지의 매니페스트 파일에 플랫폼 리부팅 요구가 존재하는지 확인하고, 상기 플랫폼 리부팅 요구가 존재할 경우 어댑티브 플랫폼 머신을 리부팅하고 상기 패키지 활성 단계를 종료하고, 상기 플랫폼 리부팅 요구가 존재하지 않을 경우 상기 패키지 활성 단계를 종료하는 단계를 포함하는,
오토사 어댑티브 플랫폼 기반의 소프트웨어 패키지 업데이트 방법.
The method of claim 7, wherein the package activation step
waiting until there is an activation request for the software package; and
Parsing an active state list recorded in a manifest file of the software package when there is an activation request for the software package;
The step of requesting a change to the parsed state or a list of running processes from the state manager; and
receiving a response to the request from the state manager; and
verifying the active state of the software package based on the response;
If there is no error as a result of the verification, it is checked whether a platform reboot request exists in the manifest file of the software package, and if the platform reboot request exists, the adaptive platform machine is rebooted and the package activation step is terminated, and the platform reboot request exists. If not, terminating the package activation step,
A software package update method based on the Autosar Adaptive platform.
KR1020210076748A 2020-12-03 2021-06-14 Dynamic software installation system and method thereof for AUTOSAR adaptive platform KR102563562B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20200167784 2020-12-03
KR1020200167784 2020-12-03

Publications (2)

Publication Number Publication Date
KR20220078453A KR20220078453A (en) 2022-06-10
KR102563562B1 true KR102563562B1 (en) 2023-08-07

Family

ID=81986472

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210076748A KR102563562B1 (en) 2020-12-03 2021-06-14 Dynamic software installation system and method thereof for AUTOSAR adaptive platform

Country Status (1)

Country Link
KR (1) KR102563562B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017199183A (en) 2016-04-27 2017-11-02 日立オートモティブシステムズ株式会社 Vehicle-purpose electronic control unit, program update method and server device

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090056071A (en) * 2007-11-29 2009-06-03 대구대학교 산학협력단 Autosar service system for exchangeability and easy assembly
US9959125B2 (en) * 2015-08-05 2018-05-01 Samsung Electronics Co., Ltd. Field update of boot loader using regular device firmware update procedure
KR102626253B1 (en) * 2018-11-23 2024-01-17 현대자동차주식회사 Method and apparatus for updating vehicle software using ota

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017199183A (en) 2016-04-27 2017-11-02 日立オートモティブシステムズ株式会社 Vehicle-purpose electronic control unit, program update method and server device

Also Published As

Publication number Publication date
KR20220078453A (en) 2022-06-10

Similar Documents

Publication Publication Date Title
US11650807B2 (en) Self-healing learning system for one or more controllers
US10782955B2 (en) Pre-shutdown swap verification
US10416985B2 (en) Method and apparatus for multi cycle vehicle software update compliance handling
US20170242678A1 (en) Method and apparatus for vehicle software update installation
KR20140060912A (en) Method and apparatus for updating boot loader
Odat et al. Firmware over the air for automotive, fotamotive
CN107291510A (en) A kind of Linux inter-vehicle information systems quick start method
US9208320B2 (en) Software distribution system and software distribution method
CN107102849B (en) Method and apparatus for file replacement with periodic ignition switch off
CN116133011A (en) Upgrading method, system and device of vehicle-mounted system
KR102563562B1 (en) Dynamic software installation system and method thereof for AUTOSAR adaptive platform
US20240069906A1 (en) Server, software update system, distribution method, and non-transitory storage medium
US20220391192A1 (en) Ota master, center, system, method, non-transitory storage medium, and vehicle
WO2023141502A1 (en) Technologies for over-the-air updates for telematics systems
CN112711430A (en) ADB-based non-network equipment upgrading method and system and readable storage medium
CN116107603B (en) Firmware upgrading method and device, storage medium and electronic equipment
CN113791810B (en) ZYNQ platform-based remote upgrading method, device and system
US20220283799A1 (en) Center, update management method, and non-transitory storage medium
US20220276853A1 (en) Ota master, center, system, update method, and vehicle
US20220405083A1 (en) Ota master, system, method, non-transitory storage medium, and vehicle
US20220405080A1 (en) Ota master, system, method, non-transitory storage medium, and vehicle
CN117667131A (en) Proxy service updating method and related equipment
CN116795393A (en) Upgrading method and device for automatic driving vehicle-mounted system and terminal equipment
CN117130635A (en) Diagnostic upgrading method, diagnostic system, electronic equipment and automobile
CN116450295A (en) Vehicle-mounted SOTA client containment method based on Podman

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant