KR20220078453A - 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
KR20220078453A
KR20220078453A KR1020210076748A KR20210076748A KR20220078453A KR 20220078453 A KR20220078453 A KR 20220078453A KR 1020210076748 A KR1020210076748 A KR 1020210076748A KR 20210076748 A KR20210076748 A KR 20210076748A KR 20220078453 A KR20220078453 A KR 20220078453A
Authority
KR
South Korea
Prior art keywords
package
software package
activation
software
request
Prior art date
Application number
KR1020210076748A
Other languages
Korean (ko)
Other versions
KR102563562B1 (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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명에 따른 오토사 어댑티브 플랫폼 기반의 소프트웨어 패키지 업데이트 장치는 서비스 공급자 포트를 통해 소프트웨어 패키지를 수신하고 저장하는 전송 모듈과 소프트웨어 패키지를 저장하는 패키지 저장소, 소프트웨어 패키지의 압축을 해제하고 설치하는 패키지 처리 모듈, 상태 관리자에 패키지 활성 상태로의 변경을 요청하고 상태 관리자로부터 응답을 받아 소프트웨어 패키지의 활성 상태 여부를 검증하는 패키지 활성 모듈을 포함한다.The software package update device based on the Autosa adaptive platform according to the present invention includes a transmission 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 , a package activation module that requests a change to the package activation state from the state manager and receives a response from the state manager to verify whether the software package is in an active state.

Description

오토사 어댑티브 플랫폼에서 다이나믹 소프트웨어 설치를 위한 시스템 및 방법 {Dynamic software installation system and method thereof for 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 the Ottosa Adaptive Platform.

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

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

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

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

그러나 AP는 아직 표준이 완비되지 못하고 있어, 여러 측면에서 개발이 진행되어야 한다.However, as the standard for AP is not yet complete, 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 Autossa 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 the transmission module to store the software package , a package processing module that decompresses and installs the software package, and a state management (SM) that requests a change to the package active state and receives a response from the SM to verify whether the software package is active Contains package activation modules.

전송 모듈은 이전 플랫폼 소프트웨어 패키지들이 설치되어 있는 파티션을 복제하여 백업 파티션을 구성할 수 있다.The transfer module can configure a backup partition by cloning the partition where the 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, and if they do not match, the error code is updated and updated by the configuration manager (Update and Configuration Management; UCM) can respond to the service consumer 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 configuration files included in the software package to the target location specified in the manifest file.

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

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

본 발명의 다른 면에 따른 어댑티브 오토사 기반의 소프트웨어 패키지 업데이트 방법은, UCM의 서비스 공급자 포트를 통해 소프트웨어 패키지를 수신하고 저장하는 전송 단계, 소프트웨어 패키지의 압축을 해제하고 설치하는 패키지 처리 단계, 서비스 수요자로부터 소프트웨어 패키지에 대한 활성 요청이 있을 경우 SM에 패키지 활성 상태로의 변경을 요청하고 SM로부터 응답을 받아 소프트웨어 패키지의 활성 상태 여부를 검증하는 패키지 활성 단계를 포함할 수 있다.In accordance with another aspect of the present invention, there is provided a method for updating a software package based on adaptive auto company, 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 When there is an activation request for the software package from the , a package activation step of requesting the SM to change to the package activation state and receiving a response from the SM to verify whether the software package is in the active state may include.

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

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

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

또는, 패키지 활성 단계는 소프트웨어 패키지에 대한 활성 요청이 있을 때까지 대기하는 단계, 소프트웨어 패키지에 대한 활성 요청이 있을 경우 소프트웨어 패키지의 매니페스트 파일에 기록된 활성 스테이트 목록을 파싱하는 단계, SM에 파싱한 스테이트로의 변경 또는 동작 중인 프로세스의 목록을 요청하는 단계, SM으로부터 요청에 대한 응답을 수신하는 단계, 응답에 근거하여 소프트웨어 패키지의 활성 상태를 검증하는 단계 및 검증 결과 에러가 있는 경우 소프트웨어 패키지 활성을 중단하고, 백업 파티션으로 롤백을 수행하고 패키지 활성 단계를 종료하는 단계를 포함할 수 있다.Alternatively, the package activation phase includes waiting for an activation request for the software package, parsing the list of activation states recorded in the software package's manifest file when there is an activation request for the software package, the state parsed to the SM requesting a change to or a list of running processes, receiving a response to the request from the SM, verifying the activation status 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 phase includes waiting for an activation request for the software package, parsing the list of activation states recorded in the software package's manifest file when there is an activation request for the software package, the state parsed 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 if the verification results in no errors, the software package's manifest file checking whether a platform reboot request exists, rebooting the adaptive platform machine and terminating the package activation phase if the platform reboot request exists, and terminating the package activation phase if the platform reboot request does not exist.

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

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

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 기재에 의해 정의된다. 한편, 본 명세서에서 사용된 용어는 실시 예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자 이외의 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다. Advantages and features of the present invention, and a method for achieving them will become apparent 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, and only these embodiments allow the disclosure of the present invention to be complete, and those of ordinary skill in the art to which the present invention pertains. It is provided to fully inform the person of the scope of the invention, and the present invention is defined by the description of the claims. Meanwhile, the terminology used herein is for the purpose of describing the embodiments and is not intended to limit the present invention. In this specification, the singular also includes the plural unless specifically stated otherwise in the phrase. As used herein, “comprises” or “comprising” refers to the presence or absence of one or more other components, steps, operations and/or elements other than the stated elements, steps, acts and/or elements. addition is not excluded.

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

이하, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부한 도면을 참조하여 상세하게 설명한다. 또한, 본 발명을 설명하는데 있어서 동일 부분은 동일 부호를 붙이고, 그 반복 설명은 생략한다.Hereinafter, the most preferred embodiment of the present invention will be described in detail with reference to the accompanying drawings in order to describe in detail enough that a person of ordinary skill in the art can easily carry out the present invention. In addition, in demonstrating this invention, the same part is attached|subjected by the same code|symbol, and the repetition description is abbreviate|omitted.

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

도 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 is three types: an update and setting manager (UCM, 110), a status manager (SM, 120), and an execution manager (EM, 130). of platform applications run in the form of POSIX processes.

UCM(110)은 패키지 관리 서비스를 제공하는 플랫폼 어플리케이션이다. The 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 a state update (UpdateState) service, and provides an interface for changing the state globally applied to the Machine 100 according to a service request of another application 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 only communicates with SM 120 . In FIG. 1 , the OTA Client 140 is a type 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 . New software packages coming from the vehicle manufacturer backend or vehicle diagnostics are 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. (110) to request.

도 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)이 포함하는 각 모듈의 형태는 인스턴스이며 하나의 스레드를 점유한다.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 for receiving and storing a software package, a package processing module 220 for decompressing and installing the software package, and a package to the SM when there is a request for activation of the software package. and a package activation module 230 for requesting a change to the active state and receiving a response from the SM to verify whether the software package is in the active state. The UCM 110 may receive and classify requests from other applications through a service provider port, and may individually provide functions provided by each module 210 , 220 , 230 . In addition, the UCM 110 uses the status update (UpdateState) service provided by the SM (120). In order to use the status update (UpdateState) service of the SM 120 , the UCM 110 requests a service through a service consumer port (RPort or require-port). The form 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 the transmitted software package.

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

서비스 수요자(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 a diagnostic tester, it transmits a request for transmission to the UCM 110 . UCM 110 initiates the transmission 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, whether there is a problem in transmission or storage of the transmitted software package.

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

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

전송 모듈(210)은 UCM(110)의 서비스 공급자 포트를 통해 인입된 TransferData 리퀘스트가 있는지를 판단하고(S330), TransferData 리퀘스트가 있다면 소프트웨어 패키지를 수신한다(S340). 소프트웨어 패키지를 몇 개의 블록으로 나눠서 전송할지는 서비스 수요자의 선택에 따른다. 서비스 수요자가 결정한 블록의 수대로 소프트웨어 패키지의 데이터는 분할되며 UCM(110)의 서비스 공급자 포트를 통해 전송된다. 최종적인 TransferData 리퀘스트가 다 진행되었으면, 서비스 수요자는 TransferExit 리퀘스트를 송신한다. The transfer module 210 determines whether there is a TransferData request received through the service provider port of the UCM 110 (S330), and if there is a TransferData request, receives a software package (S340). The number of blocks to transmit the software package 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 sends 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 the inconsistency of download information is transmitted to the service consumer to inform that the transmission is wrong (S355). If there is no problem, the package reception is completed (S360), and the state of the UCM 110 is defined as the package reception completion state (S370).

소프트웨어 패키지 수신이 완료되면, 이 파일은 패키지 저장소(240)에 보관된다. 저장된 파일은 설치 과정이 완료될 때까지 유지된다.When the software package reception is completed, this file is stored in the package repository 240 . The saved file is retained 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 a software package in a receivable state, the service consumer requests transmission and receives a part of the package for pre-verification purposes and performs a test in the virtual area. If there is an error in communication, decompression, execution, etc., the step of notifying the user of the package management service by sending an error code to the consumer of the package management service without entering the backup partition configuration (S310) is the configuration of the backup partition (S310) It can be added as a previous step.

도 4는 도 2의 패키지 처리 모듈(220)이 중심이 되어 진행되는 소프트웨어 패키지의 처리 단계를 설명하기 위한 흐름도이다.4 is a flowchart for explaining the processing steps of the software package in which the package processing module 220 of FIG. 2 is 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 the 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 compression 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 the software package only when there is a package manifest file. Each software package has one package manifest file in common, and this package manifest file has information such as the installation location and version of the executable binary of the vehicle application to be installed, the library, and the configuration files for the 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 configuration 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)이 중심이 되어 진행되는 소프트웨어 패키지의 활성 단계를 설명하기 위한 흐름도이다.5 is a flowchart illustrating an activation step of a software package in which the package activation module 230 of FIG. 2 is 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 completes the software package processing process in the UCM 110 of FIG. If it is defined as the state (S480), it starts. Thereafter, 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 a request for the SetState method of the UpdateState service provided by the SM 120 of FIG. 1 (hereinafter abbreviated as 'SetState request') to the SM 120 in the order in the parsed state list. A state (state) change is requested (S540). That is, the package activation module 230 operates as a consumer of the UpdateState service. Thereafter, the package activation module 230 waits until a response is received 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 the received state change request to the EM 130 . The EM 130 changes the state received from the SM 120 . After the SM 120 requests the EM 130 to change the state, the SM 120 waits until a response is received from the EM 130 .

EM(130)이 스테이트 변경을 처리한 후, SM(120)으로 결과를 응답한다. SM(120)은 SetState 리퀘스트에 대한 응답을 UCM(110)으로 전송한다. UCM(110)의 패키지 활성 모듈(230)은 SetState 리퀘스트에 대한 응답을 수신한다. SM(120)의 SetState 리퀘스트에 대한 응답은 스테이트 변경의 정상 처리 여부에 대한 것이다(S550).After the EM 130 processes the state change, the SM 120 responds with the result. The 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 relates to whether 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 in relation to the state activation for the next order of the parsed state list to request the state change.

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

패키지 매니페스트 파일에 기록된 활성 스테이트 목록에 존재하는 모든 스테이트 변경이 에러 없이 완료되면, 패키지 활성 모듈(230)은 SM(120)이 제공하는 UpdateState 서비스의 GetVerificationList 메소드에 대한 리퀘스트(이하 'GetVerificationList 리퀘스트'로 줄임)를 SM(120)에 송신한다(S560). 이후, 패키지 활성 모듈(230)은 SM(120)에서 응답이 올 때까지 대기한다.When all state changes existing in the active state list recorded in the package manifest file are completed without errors, the package activation module 230 requests the GetVerificationList method of the UpdateState service provided by the SM 120 (hereinafter referred to as 'GetVerificationList request'). abbreviation) to the SM 120 (S560). Thereafter, the package activation module 230 waits until a response is received 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 a request to the EM 130 to obtain a list of processes currently operating in the adaptive platform machine. The SM 120 waits until a response comes from the EM 130 after the process list request 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 a list of processes operating under the control of the EM 130 to the SM 120 . The SM 120 transmits a response to the GetVerificationList request to the UCM 110 . The package activation module 230 receives the 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 obtains 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 package activation state 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 reboot, the package activation module 230 reboots the adaptive platform machine (S590). If the platform reboot 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 error, the package activation module 230 transmits that the 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 any of the executable files included in the software package do not operate, the package activation module 230 transmits an error code to the consumer of the package management service to inform that it is an incorrect software package (S552), and stores the state before receiving the software package. A rollback is performed to the backup partition (S554). Thereafter, the package activation module 230 initializes all other states of the UCM 110 , and then ends the package activation phase.

도 6은 UCM(110)에서 처리 가능한 소프트웨어 패키지의 기본 형태를 설명하기 위한 구조도이다.6 is a structural diagram for explaining a 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 a software package is a single compressed file made of several files into one file, and a signature (OEM SIGNATURE) indicating the vehicle manufacturer's special encryption and marking is included in this file. When the UCM 110 decompresses the software package, it decompresses only the software package with the correct signature. A package manifest is a file that describes a list of various files included in a software package, an installation target location, and information about a state to be checked for activation. When the UCM 110 installs the software package, the installation proceeds according to the information specified in this file. "EXECUTABLE" means a set of executable files of vehicle applications included in a software package. "LIBRARY" refers to a set of library files that must be installed on the platform in order to operate the executable files of vehicle applications included in the software package. "ETC" means a setting file, a text file, etc. that the executable files of vehicle applications included in the software package must read separately.

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

도 8은 본 발명에서 제시하는 패키지 매니페스트를 생성하기 위해 포함되어야 하는 AP 모델링 설정 요소 항목을 표현하는 도면이다. 패키지 매니페스트를 생성하기 위해 요구되는 소프트웨어 패키지 구성 정보, 서명, 패키지 용량, 버전, 소프트웨어 패키지 활성을 위해 요구되는 스테이트 정보 및 머신 리부팅 여부 정보를 포함한다.8 is a diagram illustrating AP modeling setting element items to be included in order to generate a package manifest presented in the present invention. It includes software package configuration information required to generate 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 Autossa adaptive platform,
a transport module that receives and stores software packages through the service provider port; and
a package repository in which the transmission module stores the software package;
a package processing module for decompressing and installing the software package; and
When there is a request for activation of the software package, a package activation module for requesting a change to the package activation state from the state manager and receiving a response from the state manager to verify whether the software package is in an active state
Software package update device based on Autossa Adaptive Platform including
제1항에 있어서, 상기 전송 모듈은
이전 플랫폼 소프트웨어 패키지들이 설치되어 있는 파티션을 복제하여 백업 파티션을 구성할 수 있는,
오토사 어댑티브 플랫폼 기반의 소프트웨어 패키지 업데이트 장치.
The method of claim 1, wherein the transmission module is
A backup partition can be configured by cloning the partition where previous platform software packages are installed.
Software package updater based on Autosa Adaptive Platform.
제1항에 있어서, 상기 전송 모듈은
새로운 소프트웨어 패키지에 대한 수신 요청에서의 상기 소프트웨어 패키지의 크기 정보와 실제로 전송된 상기 소프트웨어 패키지의 크기 정보가 일치하는지 확인하여 일치하지 않을 경우 에러 코드를 상기 서비스 공급자 포트를 통해 상기 서비스 수요자에 응답할 수 있는,
오토사 어댑티브 플랫폼 기반의 소프트웨어 패키지 업데이트 장치.
The method of claim 1, wherein the transmission module is
Check whether the size information of the software package in the reception request for a new software package and the size information of the actually transmitted software package match, and if they do not match, an error code can be returned to the service consumer through the service provider port there is,
Software package updater based on Autosa Adaptive Platform.
제1항에 있어서, 상기 패키지 처리 모듈은
상기 소프트웨어 패키지의 매니페스트 파일을 파싱한 후
상기 소프트웨어 패키지에 포함된 실행 바이너리, 라이브러리, 기타 설정 파일들을 상기 매니페스트 파일에 명시된 목표 위치에 설치할 수 있는,
오토사 어댑티브 플랫폼 기반의 소프트웨어 패키지 업데이트 장치.
According to claim 1, wherein the package processing module
After parsing the manifest file of the software package
Executable binaries, libraries, and other configuration files included in the software package can be installed in the target location specified in the manifest file,
Software package updater based on Autosa Adaptive Platform.
제1항에 있어서, 상기 패키지 활성 모듈은
상기 소프트웨어 패키지의 활성상태 검증 결과 에러가 있는 경우 상기 소프트웨어 패키지의 활성을 중단하고, 백업 파티션으로 롤백을 수행할 수 있는,
오토사 어댑티브 플랫폼 기반의 소프트웨어 패키지 업데이트 장치.
The method of claim 1, wherein the package activation module is
If there is an error as a result of verification of the activation state of the software package, the activation of the software package can be stopped and a rollback to the backup partition can be performed,
Software package update device based on Autosa Adaptive Platform.
제1항에 있어서, 상기 패키지 활성 모듈은
상기 소프트웨어 패키지의 매니페스트 파일에 플랫폼 리부팅 요구가 존재할 경우 어댑티브 플랫폼 머신을 리부팅할 수 있는,
오토사 어댑티브 플랫폼 기반의 소프트웨어 패키지 업데이트 장치.
The method of claim 1, wherein the package activation module
capable of rebooting the adaptive platform machine when there is a platform reboot request in the manifest file of the software package;
Software package updater based on Autosa Adaptive Platform.
오토사 어댑티브 플랫폼 기반의 소프트웨어 패키지 업데이트 방법에 있어서,
서비스 공급자 포트를 통해 소프트웨어 패키지를 수신하고 저장하는 전송 단계와
상기 소프트웨어 패키지의 압축을 해제하고 설치하는 패키지 처리 단계와
상기 소프트웨어 패키지에 대한 활성 요청이 있을 경우 상태 관리자에 패키지 활성 상태로의 변경을 요청하고 상기 상태 관리자로부터 응답을 받아 상기 소프트웨어 패키지의 활성 상태 여부를 검증하는 패키지 활성 단계
를 포함하는 오토사 어댑티브 플랫폼 기반의 소프트웨어 패키지 업데이트 방법.
In the software package update method based on the Autosa adaptive platform,
a transport step that receives and stores the software package through the service provider port;
A package processing step of decompressing and installing the software package;
When there is an activation request for the software package, a package activation step of requesting a change to the package activation state from the state manager and receiving a response from the state manager to verify whether the software package is in an active state
A software package update method based on the Autosa Adaptive Platform, including
제7항에 있어서, 상기 전송 단계는
이전 플랫폼 소프트웨어 패키지들이 설치되어 있는 파티션을 그대로 복제하여 백업 파티션을 구성하는 단계와
새로운 소프트웨어 패키지에 대한 수신 요청이 있을 때까지 대기하는 단계와
상기 요청이 있을 경우 상기 소프트웨어 패키지를 수신하는 단계와
상기 요청에서의 상기 소프트웨어 패키지의 크기 정보와 실제로 전송된 상기 소프트웨어 패키지의 크기 정보가 일치하는지 확인하여 일치하지 않을 경우 에러 코드를 응답하고, 일치할 경우 패키지 수신을 완료하는 단계와
상기 업데이트 및 설정 관리자의 상태를 패키지 수신 완료 상태로 정의하는 단계를 포함하는,
오토사 어댑티브 플랫폼 기반의 소프트웨어 패키지 업데이트 방법.
The method of claim 7, wherein the transmitting step
The steps of configuring a backup partition by cloning the partition where the previous platform software packages are installed, and
waiting for a request to receive a new software package; and
receiving the software package upon request;
Checking whether the size information of the software package in the request matches the size information of the actually transmitted software package, responding to an error code if they do not match, and completing package reception if they do not match;
Including the step of defining the status of the update and setting manager as a package reception completion status,
How to update software packages based on the Autosa Adaptive Platform.
제7항에 있어서, 상기 패키지 처리 단계는
상기 소프트웨어 패키지에 대한 처리 요청이 있을 때까지 대기하는 단계와
상기 소프트웨어 패키지에 대한 처리 요청이 있는 경우 상기 소프트웨어 패키지의 압축을 해제하는 단계와
상기 소프트웨어 패키지의 매니페스트 파일을 파싱하는 단계와
상기 소프트웨어 패키지에 포함된 실행 바이너리, 라이브러리, 기타 설정 파일들을 상기 매니페스트 파일에 명시된 목표 위치에 설치하는 단계와
상기 업데이트 및 설정 관리자의 상태를 패키지 처리 완료 상태로 정의하는 단계를 포함하는,
오토사 어댑티브 플랫폼 기반의 소프트웨어 패키지 업데이트 방법.
The method of claim 7, wherein the package processing step
Waiting until there is a processing request for the software package;
decompressing the software package when there is a processing request for the software package;
parsing the manifest file of the software package;
Installing executable binaries, libraries, and other configuration files included in the software package to the target location specified in the manifest file;
Including the step of defining the status of the update and settings manager as a package processing completion status,
How to update software packages based on the Autosa Adaptive Platform.
제7항에 있어서, 상기 패키지 활성 단계는
상기 소프트웨어 패키지에 대한 활성 요청이 있을 때까지 대기하는 단계와
상기 소프트웨어 패키지에 대한 활성 요청이 있을 경우 상기 소프트웨어 패키지의 매니페스트 파일에 기록된 활성 스테이트 목록을 파싱하는 단계와
상태 관리자에 파싱한 스테이트로의 변경 또는 동작 중인 프로세스의 목록을 요청하는 단계와
상기 상태 관리자로부터 요청에 대한 응답을 수신하는 단계와
상기 응답에 근거하여 상기 소프트웨어 패키지의 활성 상태를 검증하는 단계와
상기 검증 결과 에러가 없을 경우 상기 패키지 활성 단계를 종료하는 단계를 포함하는,
오토사 어댑티브 플랫폼 기반의 소프트웨어 패키지 업데이트 방법.
The method of claim 7, wherein the package activation step
waiting for an active request for the software package;
parsing a list of activation states recorded in a manifest file of the software package when there is an activation request for the software package;
Requesting a change to the parsed state or a list of running processes from the state manager;
receiving a response to the request from the state manager;
verifying the activation 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,
How to update software packages based on the Autosa Adaptive Platform.
제7항에 있어서, 상기 패키지 활성 단계는
상기 소프트웨어 패키지에 대한 활성 요청이 있을 때까지 대기하는 단계와
상기 소프트웨어 패키지에 대한 활성 요청이 있을 경우 상기 소프트웨어 패키지의 매니페스트 파일에 기록된 활성 스테이트 목록을 파싱하는 단계와
상태 관리자에 파싱한 스테이트로의 변경 또는 동작 중인 프로세스의 목록을 요청하는 단계와
상기 상태 관리자로부터 요청에 대한 응답을 수신하는 단계와
상기 응답에 근거하여 상기 소프트웨어 패키지의 활성 상태를 검증하는 단계와
상기 검증 결과 에러가 있는 경우 상기 소프트웨어 패키지 활성을 중단하고, 백업 파티션으로 롤백을 수행하고 상기 패키지 활성 단계를 종료하는 단계를 포함하는,
오토사 어댑티브 플랫폼 기반의 소프트웨어 패키지 업데이트 방법.
The method of claim 7, wherein the package activation step
waiting for an active request for the software package;
parsing a list of activation states recorded in a manifest file of the software package when there is an activation request for the software package;
Requesting a change to the parsed state or a list of running processes from the state manager;
receiving a response to the request from the state manager;
verifying the activation state of the software package based on the response;
If there is an error as a result of the verification, stopping the activation of the software package, performing a rollback to a backup partition, and terminating the package activation step,
How to update software packages based on the Autosa Adaptive Platform.
제7항에 있어서, 상기 패키지 활성 단계는
상기 소프트웨어 패키지에 대한 활성 요청이 있을 때까지 대기하는 단계와
상기 소프트웨어 패키지에 대한 활성 요청이 있을 경우 상기 소프트웨어 패키지의 매니페스트 파일에 기록된 활성 스테이트 목록을 파싱하는 단계와
상태 관리자에 파싱한 스테이트로의 변경 또는 동작 중인 프로세스의 목록을 요청하는 단계와
상기 상태 관리자로부터 요청에 대한 응답을 수신하는 단계와
상기 응답에 근거하여 상기 소프트웨어 패키지의 활성 상태를 검증하는 단계와
상기 검증 결과 에러가 없는 경우 상기 소프트웨어 패키지의 매니페스트 파일에 플랫폼 리부팅 요구가 존재하는지 확인하고, 상기 플랫폼 리부팅 요구가 존재할 경우 어댑티브 플랫폼 머신을 리부팅하고 상기 패키지 활성 단계를 종료하고, 상기 플랫폼 리부팅 요구가 존재하지 않을 경우 상기 패키지 활성 단계를 종료하는 단계를 포함하는,
오토사 어댑티브 플랫폼 기반의 소프트웨어 패키지 업데이트 방법.
The method of claim 7, wherein the package activation step
waiting for an active request for the software package;
parsing a list of activation states recorded in a manifest file of the software package when there is an activation request for the software package;
Requesting a change to the parsed state or a list of running processes from the state manager;
receiving a response to the request from the state manager;
verifying the activation 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. If the platform reboot request exists, the adaptive platform machine is rebooted and the package activation step is finished, and the platform reboot request is present. If not, including the step of terminating the package activation step,
How to update software packages based on the Autosa 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
KR1020200167784 2020-12-03
KR20200167784 2020-12-03

Publications (2)

Publication Number Publication Date
KR20220078453A true KR20220078453A (en) 2022-06-10
KR102563562B1 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 (4)

* 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
KR20170017713A (en) * 2015-08-05 2017-02-15 삼성전자주식회사 Boot loader update firmware, method for updating boot loader
JP2017199183A (en) * 2016-04-27 2017-11-02 日立オートモティブシステムズ株式会社 Vehicle-purpose electronic control unit, program update method and server device
KR20200060943A (en) * 2018-11-23 2020-06-02 현대자동차주식회사 Method and apparatus for updating vehicle software using ota

Patent Citations (4)

* 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
KR20170017713A (en) * 2015-08-05 2017-02-15 삼성전자주식회사 Boot loader update firmware, method for updating boot loader
JP2017199183A (en) * 2016-04-27 2017-11-02 日立オートモティブシステムズ株式会社 Vehicle-purpose electronic control unit, program update method and server device
KR20200060943A (en) * 2018-11-23 2020-06-02 현대자동차주식회사 Method and apparatus for updating vehicle software using ota

Also Published As

Publication number Publication date
KR102563562B1 (en) 2023-08-07

Similar Documents

Publication Publication Date Title
US11467823B2 (en) Constructing software delta updates for controller software and abnormality detection based on toolchain
US10782955B2 (en) Pre-shutdown swap verification
US20180232223A1 (en) Method and apparatus for multi cycle vehicle software update compliance handling
US10747526B2 (en) Apparatus and method to execute prerequisite code before delivering UEFI firmware capsule
KR20140060912A (en) Method and apparatus for updating boot loader
CN110837388B (en) Software upgrading method of robot, upgrading server, robot and storage medium
US10274919B2 (en) Method, device and computer program product for programming a plurality of control units
US9208320B2 (en) Software distribution system and software distribution method
WO2023124328A1 (en) Wireless communication module and function recovery method thereof, electronic device, and storage medium
CN107102849B (en) Method and apparatus for file replacement with periodic ignition switch off
US20240069906A1 (en) Server, software update system, distribution method, and non-transitory storage medium
CN105045671A (en) Method and device for upgrading systems of intelligent terminals
KR102563562B1 (en) Dynamic software installation system and method thereof for AUTOSAR adaptive platform
CN113805933A (en) Set top box system upgrading method and device, set top box, system and 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
US20220283799A1 (en) Center, update management method, and non-transitory storage medium
JP7484791B2 (en) OTA master, update control method, and update control program
US12001825B2 (en) Method and apparatus for vehicle software update installation
CN116107603B (en) Firmware upgrading method and device, storage medium and electronic equipment
US20240152352A1 (en) Server, software management system, software management method, and non-transitory storage medium
US20170242678A1 (en) Method and apparatus for vehicle software update installation
US20220276853A1 (en) Ota master, center, system, update method, and vehicle
CN117971265A (en) Radar software upgrading method, device, equipment and readable storage medium
CN117130635A (en) Diagnostic upgrading method, diagnostic system, electronic equipment and automobile

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