ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као...

51
УНИВЕРЗИТЕТ У НОВОМ САДУ ФАКУЛТЕТ ТЕХНИЧКИХ НАУКА УНИВЕРЗИТЕТ У НОВОМ САДУ ФАКУЛТЕТ ТЕХНИЧКИХ НАУКА НОВИ САД Департман за рачунарство и аутоматику Одсек за рачунарску технику и рачунарске комуникације ЗАВРШНИ (BACHELOR) РАД Кандидат: Стеван Стевић Број индекса: Ра74/2014 Тема рада: Једно рјешење удаљеног ажурирања софтвера у аутомобилу на Adaptive AUTOSAR платформи Ментор рада: доц. др Милан Бјелица Нови Сад, јул, 2018

Transcript of ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као...

Page 1: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

УНИВЕРЗИТЕТ У НОВОМ САДУ

ФАКУЛТЕТ ТЕХНИЧКИХ НАУКА

УНИВЕРЗИТЕТ У НОВОМ САДУ

ФАКУЛТЕТ ТЕХНИЧКИХ НАУКА

НОВИ САД

Департман за рачунарство и аутоматику

Одсек за рачунарску технику и рачунарске комуникације

ЗАВРШНИ (BACHELOR) РАД

Кандидат: Стеван Стевић

Број индекса: Ра74/2014

Тема рада: Једно рјешење удаљеног ажурирања софтвера у аутомобилу на Adaptive AUTOSAR платформи

Ментор рада: доц. др Милан Бјелица

Нови Сад, јул, 2018

Page 2: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

УНИВЕРЗИТЕТ У НОВОМ САДУ ФАКУЛТЕТ ТЕХНИЧКИХ НАУКА

21000 НОВИ САД, Трг Доситеја Обрадовића 6

КЉУЧНА ДОКУМЕНТАЦИЈСКА ИНФОРМАЦИЈА

Редни број, РБР:

Идентификациони број, ИБР:

Тип документације, ТД: Монографска документација

Тип записа, ТЗ: Текстуални штампани материјал

Врста рада, ВР: Завршни (Bachelor) рад

Аутор, АУ: Стеван Стевић

Ментор, МН: доц. др Милан Бјелица

Наслов рада, НР: Једно рјешење удаљеног ажурирања софтвера у аутомобилу на Adaptive AUTOSAR платформи

Језик публикације, ЈП: Српски / ћирилица

Језик извода, ЈИ: Српски

Земља публиковања, ЗП: Република Србија

Уже географско подручје, УГП: Војводина

Година, ГО: 2018

Издавач, ИЗ: Ауторски репринт

Место и адреса, МА: Нови Сад; трг Доситеја Обрадовића 6

Физички опис рада, ФО: (поглавља/страна/ цитата/табела/слика/графика/прилога)

7/51/25/7/24/0/0

Научна област, НО: Електротехника и рачунарство

Научна дисциплина, НД: Рачунарска техника

Предметна одредница/Кqучне речи, ПО: Аутомобилска индустрија, Adaptive AUTOSAR, удаљено ажурирање

УДК

Чува се, ЧУ: У библиотеци Факултета техничких наука, Нови Сад

Важна напомена, ВН:

Извод, ИЗ: Аутомобилски софтвер постаје све сложенији што отвара нови скуп могућности. Главни проблем за произвођаче је да се ажурирања брзо примјењују у возилима јер су данашње методе ажурирања софтвера непогодне и споре. Због тога се све више говори о удаљеном ажурирању као бржем начину замјене софтвера. Ово захтијева развој платформе са могућношћу динамичког распоређивања и ажурирања апликација. Такве процедуре не смију нарушити правилан рад електронских управљачких јединица. У овом раду представљено је рјешење за ажурирање возила укључујући повезивање са cloud сервисима приликом ажурирања, валидацију, проширења у Adaptive AUTOSAR стеку, као и сама процедура надоградње.

Датум прихватања теме, ДП:

Датум одбране, ДО:

Чланови комисије, КО: Председник: доц. др Марија Антић

Члан: доц. др Иван Каштелан Потпис ментора

Члан, ментор: доц. др Милан Бјелица

Page 3: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

UNIVERSITY OF NOVI SAD FACULTY OF TECHNICAL SCIENCES

21000 NOVI SAD, Trg Dositeja Obradovića 6

KEY WORDS DOCUMENTATION

Accession number, ANO:

Identification number, INO:

Document type, DT: Monographic publication

Type of record, TR: Textual printed material

Contents code, CC: Bachelor Thesis

Author, AU: Stevan Stević

Mentor, MN: Milan Bjelica, PhD

Title, TI: One solution for Over The Air software updates in the vehicle on the Adaptive AUTOSAR platform

Language of text, LT: Serbian

Language of abstract, LA: Serbian

Country of publication, CP: Republic of Serbia

Locality of publication, LP: Vojvodina

Publication year, PY: 2018

Publisher, PB: Author’s reprint

Publication place, PP: Novi Sad, Dositeja Obradovica sq. 6

Physical description, PD: (chapters/pages/ref./tables/pictures/graphs/appendixes)

7/51/25/7/24/0/0

Scientific field, SF: Electrical Engineering

Scientific discipline, SD: Computer Engineering, Engineering of Computer Based Systems

Subject/Key words, S/KW: Automotive, Adaptive AUTOSAR, OTA update

UC

Holding data, HD: The Library of Faculty of Technical Sciences, Novi Sad, Serbia

Note, N:

Abstract, AB: Automotive software in modern vehicles is becoming very complex and the main problem for manufacturers is to ensure that new features, bug fixes and improvements are quickly delivered to vehicles. Over-the-Air (OTA) updates are considered as a faster way of suppling new software while reducing the cost as well. This requires the development of a platform with possibility of dynamic deployment and update of applications which is Adaptive AUTOSAR. This platform shall not violate proper work of safety critical ECUs, and shall keep the system safe and stable at all times. In this paper, a solution for vehicle update which includes IoT techonologies, Adaptive AUTOSAR extensions and installation flow as well, is presented.

Accepted by the Scientific Board on, ASB:

Defended on, DE:

Defended Board, DB: President: Marija Antić, PhD

Member: Ivan Kaštelan, PhD Mentor's sign

Member, Mentor: Milan Bjelica, PhD

Page 4: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Захвалност

I

Захвалност

Захваљујем се члановима своје породице и пријатељима на пруженој подршци

током читавог школовања.

Захваљујем се ментору доц. др Милану Бјелици и Горану Ступару на стручној

помоћи и савјетима током израде овог рада.

На крају се захваљујем Институту РТ-РК на подршци током израде овог рада, као

и на омогућавању усавршавања знања из ове области.

Page 5: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Списак слика

II

САДРЖАЈ

1. Увод .......................................................................................................................... 1

2. Теоријске основе ...................................................................................................... 4

2.1 Појам удаљеног ажурирања ............................................................................. 4

2.2 AUTOSAR партнерство ..................................................................................... 5

2.3 AUTOSAR Adaptive ............................................................................................ 5

2.3.1 Развојни пут Adaptive AUTOSAR стандарда ............................................... 7

2.3.2 Поређење Classic AUTOSAR и Adaptive AUTOSAR платформи .............. 7

2.3.3 POSIX ............................................................................................................. 7

2.3.4 Модул за комуникацију ............................................................................... 8

2.3.4.1 SOME/IP .................................................................................................. 9

2.3.4.2 Proxy/Skeleton шаблон.......................................................................... 10

2.3.4.3 Повезивање коришћењем ARA::COM модулa ................................... 10

2.3.4.4 ARXML шема ......................................................................................... 11

2.3.5 Сервис за ажурирање и конфигурацију система ..................................... 11

2.3.6 Adaptive AUTOSAR демонстратор ............................................................. 12

2.4 Internet of Things .............................................................................................. 13

2.5 OBLO систем ................................................................................................... 13

2.5.1 Кориснички и административни портал .................................................. 14

2.5.2 Централни контролер ................................................................................. 14

2.5.3 OBLO Cloud ................................................................................................. 15

2.5.4 Веза између OBLO Cloud сервиса и централног контролера ................. 15

2.6 OTA Bridge агент ............................................................................................. 15

2.6.1 Bridge Client ................................................................................................ 16

2.6.2 Bridge Runtime ............................................................................................. 16

2.6.3 Сервиси OTA Bridge агента ....................................................................... 17

2.7 Хардверске платформе за развој ................................................................... 17

2.7.1 Alpha Automotive Machine Vision ............................................................... 17

2.7.2 Intrinsyc S820AM V2 ADP ........................................................................... 18

Page 6: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Списак слика

III

3. Концепт рјешења ................................................................................................... 19

3.1 Архитектура система за удаљенo ажурирање софтвера ............................. 20

3.2 OTA Bridge сервис – Updater ......................................................................... 20

3.3 Имплементација сервиса за ажурирање и конфигурацију система

(ARA::UCM) ......................................................................................................................... 21

3.3.1 Претпоставке и предуслови ....................................................................... 21

3.3.1.1 „Софтверски пакет“ ............................................................................. 21

3.3.2 Захтјеви које мора испунити ARA::UCM ................................................. 23

3.4 Проширење OBLO система ............................................................................ 24

4. Програмско рјешење ............................................................................................. 26

4.1 Updater сервис ................................................................................................. 26

4.2 ARA::UCM ........................................................................................................ 27

4.2.1 Захтјев за инсталацију ................................................................................ 27

4.2.2 Захтјев за уклањање ................................................................................... 28

4.2.3 Захтјев за ажурирање ................................................................................. 28

4.2.4 Парсирање манифеста ................................................................................ 28

4.2.5 Менаџер пакета ........................................................................................... 29

4.2.6 Опис сервиса ARA::UCM помоћу ARXML шеме ..................................... 30

4.2.7 Изведени типови ......................................................................................... 33

4.2.7.1 Version ................................................................................................... 33

4.2.7.2 SwInfoType ............................................................................................. 33

4.2.7.3 ProcessingResultType ............................................................................ 34

4.2.8 Софтвер отвореног кода кориштен у имплементацији ........................... 34

5. Резултати ................................................................................................................ 36

6. Закључак ................................................................................................................. 39

7. Литература.............................................................................................................. 40

Page 7: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Списак слика

IV

СПИСАК СЛИКА

Слика 1.1 Повезаност модерних возила са спољашњим окружењем ........................ 1

Слика 2.1 AUTOSAR партнерство .................................................................................. 5

Слика 2.2 Архитектура AUTOSAR Adaptive платформе .............................................. 6

Слика 2.3 Развојни пут Adaptive AUTOSAR стандарда ................................................ 7

Слика 2.4 Сервисно орјентисана комуникација .......................................................... 9

Слика 2.5 Proxy/Skeleton шаблон ................................................................................. 10

Слика 2.6 Приказ архитектуре једног рјешења ОТА ажурирања ............................. 12

Слика 2.7 Поставка тестног система Adaptive AUTOSAR демонстратора ............... 13

Слика 2.8 Архитектура ОBLO система ....................................................................... 14

Слика 2.9 Архитектура OTA Bridge агента ................................................................. 16

Слика 2.10 Изглед и блок-дијаграм Аlpha платформе .............................................. 18

Слика 2.11 Изглед и блок-дијаграм Intrinsyc S820AM V2 ADP платформе ............. 18

Слика 3.1 Архитектура предложеног рјешења .......................................................... 19

Слика 3.2 Ток софтверског пакета за ажурирање ...................................................... 22

Слика 3.3 Структура „софтверског пакета“ ............................................................... 22

Слика 3.4 Use-Case дијаграм ....................................................................................... 24

Слика 3.5 Архитектура проширене OHM компоненте ............................................. 25

Слика 4.1 Aрхитектура за парсирање манифеста ...................................................... 29

Слика 4.2 Архитектура менаџера пакета .................................................................... 30

Слика 4.3 Структура Version ........................................................................................ 33

Слика 4.4 Структура SwInfoType ................................................................................. 33

Слика 4.5 Енумерација ProcessingResultType............................................................. 34

Слика 5.1 Приказ корисничког портала са могућношћу ажурирања ...................... 36

Слика 5.2 Ажурирана апликација Music Player ......................................................... 37

Page 8: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Списак табела

V

СПИСАК ТАБЕЛА

Табела 2.1 Техничке разлике између Classic и Adaptive платформи ......................... 7

Табела 4.1 Опис најважнијих поља Updater сервиса ................................................ 26

Табела 4.2 Опис најважнијих метода Updater сервиса ............................................. 27

Табела 4.3 Објашњење вриједности типа ProcessingResultType .............................. 34

Табела 4.4 Софтверске компоненте отвореног кода које су кориштене ................. 35

Табела 5.1 Зависност брзине извршавања од величине пакета ................................ 38

Табела 5.2 Вријеме извршавања на различитим платформама ................................ 38

Page 9: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Скраћенице

VI

СКРАЋЕНИЦЕ

ADAS - Advanced Driver-Assistance Systems, Напредни системи за помоћ возачу

AGL – Automotive Grade Linux, Назив Linux дистрибуције кориштене у раду

API – Application Programming Interface, Апликациони програмски интерфејс

АRA - AUTOSAR Runtime Environment, Извршно окружење Adaptive AUTOSAR

платформе

ASIL - Automotive Safety Integrity Level, Ниво интегритета сигурности

аутомобилских компоненти

AUTOSAR - AUTomotive Open System Architecture, Отворени стандард за

дефинисање софтверске архитектуре у аутомобилској индустрији

CAN - Controller Area Network, Аутомобилска магистрала за комуникацију између

компоненти

ECU - Electronic Control Unit, Електронска управљачка јединица

E/E - Electrical / Electronic, Електрични / електронски системи

E2E – End-2-End, Начин комуникације у мрежи без посредника

IoТ – Internet of Things, Интернет ствари

M2M – Machine 2 Machine, Директна комуникација између уређаја путем било

каквог комуникационог канала

MOST - Media Oriented Systems Transport, Аутомобилска магистрала за брз пренос

мултимедије

MQTT - Message Queuing Telemetry Transport, Комуникациони протокол вишег

нивоа

ОЕМ - Original Equipment Manufacturer, Оригинални произвођачи опреме

OS – Operating System, Оперативни систем

Page 10: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Скраћенице

VII

ОТА – Over The Air, Појам кориштен за удаљену котрнолу или ажурирање

POSIX - Portable Operating System Interface, Стандард који дефинише апликациони

програмски интерфејс према оперативном систему

SaaS – Software as a Service, Софтвер као услуга

SoC – System on Chip, Интегрисано коло

SOME/IP - Scalable service-Oriented MiddlewarE over IP, Комуникациони протокол

вишег нивоа

TCP - Transmission Control Protocol, Скуп протокола који омогућавају

комуникацију преко мреже

Page 11: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Увод

1

1. Увод

Aутомобилски софтвер у савременим возилима постаје све сложенији, што

омогућава читав нови скуп услуга и интеракције са возачем и путницима, као што је

приказано на слици 1.1. Многе од ових функционалности зависе од повезивања возила

са спољашњим свијетом. Сама могућност повезивања и размјене података са паметним

телефонима је велики корак напријед у овом новом, брзорастућем тренду. Како возила

већ почињу да комуницирају са спољним свијетом, аутомобилска индустрија мора

реаговати брзо и усвојити функционалности и технологије које зависе од повезивања,

као што су удаљена ажурирања, комуникација са back-end системима заснованим на

„софтвер као услуга“ (SaaS) [1] парадигми итд.

Слика 1.1 Повезаност модерних возила са спољашњим окружењем

Page 12: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Увод

2

Све већи број електронских управљачких јединица (енг. Electronic Control Unit –

ECU) [2] у возилу и комплексан софтвер са све више софтверских компоненти повезаних

са спољним свијетом, стварају идеално мјесто за грешке и експлоатације које могу

угрозити сигурност. Немогуће је да софтвер буде отпоран на грешке, па је проналажење

механизма за ажурирање, којим би брзо и безбиједно ријешили ове проблеме веома

изазовно за произвођаче оригиналне опреме (енг. Original Equipment Manufacturer -

ОЕМ) [3]. Главни проблем са тренутним методама ажурирања софтвера у сервисима за

поправку, јесте брзина и цијена. Самим тим такав начин је неподобан за динамичку

природу новог софтвера у возилима. Умјесто тога све више се расправља о удаљеном

(енг. Over The Air - ОТА) ажурирању као бржем начину замјене софтвера без ометања

возача.

Тренутни програмски стекови у аутомобилима су углавном компатибилни са

Classic AUTOSAR [4] платформом. Најновије проширење од стране AUTOSAR

конзорцијума, Adaptive [5] радно окружење, пружа механизме за динамичко ажурирање

и надоградњу софтверских компоненти. Међутим, комплетан ток за поуздану и сигурну

рутину надоградње софтвера још није предложен у овом контексту. У овом раду

предложена је комплетна софтверска архитектура за надоградњу заснована на IoT

(Internet of Things) [6] технологијама, укључујући повезивање са cloud сервисима

приликом ажурирања, валидацију, проширења у Adaptive AUTOSAR стеку, као и сама

процедура надоградње. Такође, пружена је евалуација предложеног концепта у

симулираном окружењу.

Рад је организован у пет цjелина:

1. Теоријске основе – опис свих система кориштениx за омогућавање удаљеног

ажурирања: OBLO систем, OTA Bridge агент и Adaptive платформа. Поред наведеног дат

је и преглед хардверских платформи кориштених у изради и тестирању;

2. Kонцепт рјешења – објашњење приједлога рјешења и тока података од

корисника/произвођача до самог ажурирања у возилу. Затим опис компоненти које нису

имплементиране, а потребне су за интеграцију, као и опис модификација већ постојећих

дијелова система;

3. Програмско рјешење – реализација компоненти које недостају –Updater сервис

и модул за ажурирање и конфигурацију система (ARA::UCM) и њихово повезивање

путем модула за комуникацију Adaptive платформе (ARA::COM);

Page 13: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Увод

3

4. Тестирање и резултати – опис начина за провјеру успјешног тестирања као и

приказ резултата;

5. Закључак – преглед шта је реализовано у овом раду и који су правци даљег

развоја.

Page 14: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Теоријске основе

4

2. Теоријске основе

У овом поглављу је објашњен појам удаљених ажурирања и утицај истих на развој

аутомобилске индустрије, као и описано AUTOSAR партнерство и нова платформа

Аdaptive AUTOSAR, која као један од циљева има омогућавање удаљених ажурирања у

возилу. Описане су и компоненте Adaptive платформе од значаја за овај рад – модул за

комуникацију и модул за ажурирање. Затим је дат преглед OBLO система, опис

проширења Adaptive платформе које служи за комуникацију са cloud сервисима и опис

хардверских платформи кориштених за развој.

2.1 Појам удаљеног ажурирања

Over Тhe Аir или удаљена ажурирања су технологије које се у основи користе за

дистрибуцију софтвера, подешавања конфигурације итд. Подаци се достављају

бежичним путем било ком кориснику повезаном на интернет, што омогућава брз и

ефикасан начин ажурирања и надоградње.

Баш због оваквих карактеристика, велики напори се улажу како би овакве

технологије заживјеле у аутомобилској индустрији, која је све више окренута софтверу.

Оригинални произвођачи опреме већ посједују рјешења затвореног типа, као што су:

Sync 3 [7] систем у власништву компаније Ford, затим ОТА систем креиран од стране

компаније Harman [8], Uconnect [9] и многа друга рјешења.

Такође, постоји велики број академских радова на ову тему од који су неки

послужили као основа за овај рад, као што је Fotamotive [10] који говори о комплетном

току ажурирања, али и радови на тему сигурности и заштите у овом контексту - [11] и

[12].

Page 15: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Теоријске основе

5

2.2 AUTOSAR партнерство

AUTOSAR (AUTomotive Open System ARchitecture) [13] је стандардизована и

отворена софтверска архитектура за аутоматске електронске управљачке јединице.

AUTOSAR групу чине произвођачи аутомобила, аутомобилских добављача, произвођачи

алата и произвођачи полупроводника – слика 2.1. AUTOSAR партнерство је усредсређено

на управљање све већом сложеношћу у развоју електро-електроничких (Е/Е) архитектура

аутомобила, са циљем да омогући нове технологије и побољша ефикасност развоја - без

компромиса према квалитету.

2.3 AUTOSAR Adaptive

Нова Adaptive AUTOSAR платформа је осмишљена као продужетак Classic

AUTOSAR платформе и имплементира AUTOSAR Runtime1 за Adaptive апликације (ARA).

Дефинишу се интерфејси који су потребни за развој будућих аутоматских електронских

управљачких јединица које се користе на најсавременијим вишејезгарним

микропроцесорима. Интерфејси су дио функционалних цјелина којe су груписане у

Adaptivе AUTOSAR сервисе и Adaptivе AUTOSAR основу (енгл. Foundation) као што је

приказано на слици 2.2. Основни циљ овог стандарда јесте стандардизација

апликационог програмског интерфејса (АПИ, енгл. Application programming interface -

API) [14].

1 Runtime или систем извршавања, примарно извршава дијелове једног модела извршавања.

Слика 2.1 AUTOSAR партнерство

Page 16: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Теоријске основе

6

Ови интерфејси омогућавају оригиналним произвођачима опреме, као и

произвођачимa аутомобила, да имплементирају аутономну вожњу, надоградњу

софтвера, IoT функције, проточни ток (енг. streaming) медија и друге услуге у будућим

аутомобилима.

Функционалне цјелине из AUTOSAR Adaptive основе морају имати најмање једну

инстанцу на (виртуелној) машини док се сервиси могу дистрибуирати у аутомобилској

мрежи.

У поређењу са AUTOSAR Classic платформом, Adaptive платформа посједује систем

извршавања за електронске управљачке јединице, који омогућава динамичко повезивање

сервиса и клијената прије времена превођења, што га чини много флексибилнијим за

програмера апликација. Платформа такође користи C++14 како би омогућила релативно

лак и брз развој ARA апликацијa.

Слика 2.2 Архитектура AUTOSAR Adaptive платформе

Page 17: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Теоријске основе

7

2.3.1 Развојни пут Adaptive AUTOSAR стандарда

Развој стандарда је већ почео и прва верзија је објављена у марту 2017. године (17–

03). План развоја је приказан на слици 2.3.

2.3.2 Поређење Classic AUTOSAR и Adaptive AUTOSAR платформи

Главне техничке разлике између ове двије платформе дате су у табели 2.1.

Базира се на OSEK оперативном систему Базира се на POSIX (PSE51)

Код се извршава директно из ROM

меморије

Апликација се пуни из трајне меморије у

RAM меморију

Исти меморијски простор за све

апликације

Свака апликација има свој виртуелни

простор

Оптимизовано за комуникацију

засновану на сигналима (CAN, FlexRay)

Сервисно орјентисана комуникација

Фиксна конфигурација задатака Подршка за вишеструке (динамичке)

стратегије распоређивања

Табела 2.1 Техничке разлике између Classic и Adaptive платформи

2.3.3 POSIX

POSIX (Portable Operating System Interface) [15] је стандардизовани програмски

интерфејс између апликације и оперативног система и није оригинално развијен за

Слика 2.3 Развојни пут Adaptive AUTOSAR стандарда

Page 18: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Теоријске основе

8

аутомобилску индустрију. Међутим, оперативни системи који подржавају POSIX чине

развијање софтвера за возило много флексибилнијим.

Adaptive апликације које ће искључиво користити новодефинисани интерфејс

„AUTOSAR Runtime Environment (ARA)“ заједно са „PSE51“ POSIX подскупом сматраће

се преносивим апликацијама. POSIX приступ корисницима омогућава дистрибуцију ових

апликација на постојеће електронске управљачке јединице на било који начин.

Функционалне цјелине из Adaptive AUTOSAR основе, са друге стране могу

користити читав POSIX.

2.3.4 Модул за комуникацију

Комуникациони модул под називом ARA::COM [16] спада у AUTOSAR Adaptive

основу и служи за унутрашњу и спољашњу комуникацију електронских управљачких

јединица у аутомобилу. AUTOSAR је осмислио нови комуникациони middleware2 из

простог разлога што ни један постојећи, како комерцијални тако ни они отвореног кода,

нису у потпуности задовољавали све захтјеве постављене од стране конзорцијума, а то

су:

1. Комуникациони модул, не би требало да буде везан за конкретан мрежни

комуникациони протокол. Он треба да подржи SOME/IP протокол, али мора

постојати флексибилност замјене тог протокола.

2. AUTOSAR сервисни модел, дефинише сервисе као колекцију метода,

догађаја и поља што треба бити природно подржано.

3. АПИ треба подједнако добро да подржи event-driven3 i polling4 модел за

добијање приступа комуникационим подацима. Polling је типичан за

апликације које се извршавају у реалном времену како би се избјегла

непотребна замјена контекста процеса, док је event-driven начин погоднији

за апликације без захтјева у реалном времену.

4. Могућност беспрјекорне интеграције end-to-end (Е2Е) заштите како би ASIL

[17] захтјеви били испуњени.

5. Подршка за статички (унапријед конфигурисани) и динамички (runtime)

избор сервисних инстанци са којима ће се вршити комуникација.

2 Middleware или посредни софтвер је рачунарски софтвер који пружа сервисе софтверским

апликацијама изван опсега оперативног система. 3 Event-driven програмирање је парадигма у којој је ток програма одређен догађајима као што су

акције корисника, сензор излаза или порукама из других програма / нити. 4 Polling означава синхронизовану активност испитивања стања екстерног уређаја / сервиса.

Page 19: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Теоријске основе

9

Архитектура модула је сервисно орјентисана и заснована на Proxy/Skeleton

парадигми, која се користи у многобројним middleware технологијама и омогућава

динамичко повезивање сервиса и клијената у току рада.

Динамичност је постигнута пријављивањем сервиса у регистар сервиса, приликом

активирања, гдје затим сервисни регистар обавијести све клијенте који су затражили

услугу тог сервиса. Након успоставе везе сервис и клијент даљу комуникацију

настављају без посредника, као што је приказано на слици 2.4.

У наставку је дат опис софтверске компоненте SOME/IP на коју се ослања овај

модул приликом размјене порука, објашњење Proxy/Skeleton шаблона и сам начин

кориштења модула.

2.3.4.1 SOME/IP

SOME/IP [18] је аутомобилско middlewarе рјешење вишег нивоа које се ослања на

TCP/IP стек, и може се користити за контролне поруке. Од почеткa је дизајниран да се

прилагоди уређајима различитих величина и различитим оперативним системима. Ово

укључује мале уређаје попут камера, AUTOSAR уређаја, па све до телематских уређаја.

Такође је омогућено да SOME/IP подржава функције Infotainment домена као и друге

домене у возилу, омогућавајући да се SOME/IP користи за замјенy MOST, као и

традиционалниx CAN сценаријa.

Слика 2.4 Сервисно орјентисана комуникација

Page 20: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Теоријске основе

10

2.3.4.2 Proxy/Skeleton шаблон

Помоћу Proxy/Skeleton шаблона се у дистрибуираном рачунарском окружењу,

остварује комуникација између дистрибуираних објеката. Основна идеја јесте да се из

формалне дефиниције сервиса генеришу двије кодне групе артефеката као на слици 2.5:

1. Сервисни Proxy – oвај код је (из перспективе потрошача услуга, који жели

да користи могућност удаљеног сервиса) фасадa (енгл. facade) која

представља тај сервис на нивоу кода. У објектно оријентисаном језику, ово

је обично инстанца генерисане класе, која пружа методе за све

функционалности које тај сервис пружа. Значи, апликација потрошача је у

интеракцији са овом локалном фасадом, која даље зна да пропагира ове

позиве на имплементацију удаљеног сервис и назад.

2. Сервисни Skeleton - oвај код (из перспективе имплементације сервиса -

који пружа функционалности према дефиницији сервиса) омогућава

повезивање имплементиране услуге са комуникационим транспортним

слојем, тако да се може успоставити контакт са корисником дистрибуираног

сервиса. У објектно оријентисаном језику, то је типично инстанца

генерисане класе. Обично је имплементација услуге од програмера

апликација повезана са овом генерисаном класом преко подкласе.

2.3.4.3 Повезивање коришћењем ARA::COM модулa

Како ARA::COM модул користи Proxy/Skeleton парадигму за повезивање сервиса и

клијената, користе се алати за генерисање proxy и skeleton класа. Тренутно, алати су

Python скрипте које генеришу шаблоне тих класа које треба попунити

Слика 2.5 Proxy/Skeleton шаблон

Page 21: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Теоријске основе

11

функционалностима за сервис. Генерисање се обавља на основу ARXML фајлова који

описују систем по ARXML шеми која је прописана стандардом.

2.3.4.4 ARXML шема

XML [19] шема јесте опис XML документа, типично израженог у смислу

ограничења структуре и садржаја докумената тог типа, изнад и изван основних

синтаксичких ограничења које наметне сам XML. Ова ограничења се генерално

изражавају користећи неку комбинацију граматичких правила која регулишу редослијед

елемената, Boolean предикате које садржај мора задовољити, типове података који

регулишу садржај елемената и атрибута, као и више специјализованих правила као што

су јединственост и ограничења референтног интегритета.

ARXML (AUTOSAR XML) шема је само скуп правила специфичних за Adaptive, али

и Classic платформе која служе за опис модула и апликација унутар система, као и везе

између њих.

2.3.5 Сервис за ажурирање и конфигурацију система

Функционална цјелина за ажурирање и конфигурацију система под именом

ARA::UCM [20] спада у групу сервиса AUTOSAR Adaptive платформе. Модул је

одговоран за инсталирање, ажурирање и уклањање софтвера на Adaptive платформи на

сигуран и поуздан начин, без жртвовања динамичке природе Adaptive платформе.

Поред ажурирања и промjене софтвера (апликација) на Adaptive платформи,

менаџер је такође одговоран за ажурирања и промјене на самој платформи, укључујући

све функционалне цјелине, основни POSIX оперативног система и његово језгро са

одговорностима дефинисаним горе.

Како би се омогућила флексибилност у начину кориштења менаџера, сва

функционалност је изложена помоћу ARA::COM сервисних интерфејса, а не директних

АПИ-a. Ово осигурава да корисник ове функционалне цјелине не мора бити смјештен на

истој електронској управљачкој јединици.

Сервисни интерфејс је примарно дизајниран са циљем да се омогући кориштење

стандардних дијагностичких услуга за инсталирање и ажурирање софтвера за Adaptive

платформу. Међутим, методе и поља у сервисном интерфејсу су дизајниране тако да их

може користити било која Adaptive апликација.

Page 22: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Теоријске основе

12

ARA::UCM не намеће никакав специфичан протокол о начину добављања података

и контроли пакета. Оваква спецификација пружа идеалне услове за спрезање са већ

постојећим IoT системом OBLO, који садржи cloud сервисе као и портале (кориснички и

административни), како би се имплементирало ОТА ажурирање Adaptive платформе.

Оваквом интеграцијом, аутомобил постаје само још један „паметни“ уређај у систему.

2.3.6 Adaptive AUTOSAR демонстратор

Adaptive AUTOSAR демонстратор се користи за процjену AUTOSAR Adaptive

платформе са реалним случајевима кориштења, помоћу којих се могу направити

апликације које илуструју рад у реалним системима. Један тест система је приказан кроз

рад тест апликације која шаље ток података који представља податке са камере која

снима пут испред возила и апликације напредног система за помоћ возачу (Advanced

Driver-Assistance System - АDAS) [21] које се извршавају на инстанцама Adaptive

AUTOSAR платформе, али на различитим машинама. Adaptive апликација напредног

система за помоћ возачу демонстрира систем ''Хитног кочења'', генеришући сигнале за

кочење, ако постоји потреба за тим, стварајући реално оптерећење хардверских и

софтверских платформи у смислу кориштења рачунара, меморије и комуникационих

ресурса. Графички приказ система је дат на слици 2.7.

Слика 2.6 Приказ архитектуре једног рјешења ОТА ажурирања

Page 23: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Теоријске основе

13

Демонстратор који је кориштен за израду пројекта прати стандард који је објављен

у октобру 2017-е године. Иако су у стандарду дати захтјеви које би требао да испуњава

сервис за ажурирање и конфигурацију система, у демонстратору се није нашао код који

би имплементирао те захтјеве.

2.4 Internet of Things

IoT је мрежа физичких уређаја, возила, кућних апарата и других предмета са

електроником, софтвером, сензорима, актуаторима и могућношћу комуникације, што

омогућава тим уређајима да се спајају и размјењују податке, стварајући могућности за

директнију интеграцију физичког свијета у рачунарске системе, што доводи до

побољшања ефикасности, економских користи и смањене интервенције људи. Овакви

системи имају широк спектар употребе од паметних кућа, преко медицине, па чак до

пољопривреде. Један такав систем који се користи у паметним кућама јесте OBLO.

2.5 OBLO систем

Систем је организован као на слици 2.8. Комуникација са уређајима остварена

најприје повезивањем периферних уређаја (енг. nod) на централни контролер, који је у

комуникацији са мрежним рутером. Мрежни рутер комуницира са cloud сервисом.

Сервис у облаку такође има могућност директне комуникације са клијентом. У

зависности од тога да ли се клијент налази у локалној мрежи у којој је мрежни рутер или

на удаљеној локацији, његова комуникација са централним уређајем се обавља директно

или преко cloud сервиса. Независно од позадинске имплементације комуникације са

корисником, сва интеракција са корисником се обавља путем корисничког портала.

Слика 2.7 Поставка тестног система Adaptive AUTOSAR демонстратора

Page 24: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Теоријске основе

14

У наставку је дат опис најважнијих компоненти које чине ОBLO систем – портали,

cloud сервиси, контролери као и начин комуникације између њих.

2.5.1 Кориснички и административни портал

За управљање уређајима, као и приказ свих информација или потенцијалних

могућности ажурирања софтвера на истим, корисник или администратор система могу

приступати систему помоћу корисничког или административног портала.

Приказивањем аутомобила у овом систему као још једног уређаја, могу се добити

информације о инсталираним апликацијама у аутомобилу као и верзији истих и пружити

могућност кориснику да по жељи ажурира софтвер који ни у ком случају не може довести

до нежељених посљедица. С друге стране, оригинални произвођачи опреме могу путем

административног портала наметнути ажурирање апликација без интеракције са

корисником. То су апликације које могу довести чак и до смртних исхода, као на примјер

ADAS апликације или ажурирање самог система.

Наведене одлике система, потврђују да је спрега са Adaptive платформом могућа и

да је за имплементацију потребан посредник између наведених цјелина.

2.5.2 Централни контролер

Централни контролер обавља процес прихватања и обраде корисничке команде и

управља догађајима пристиглим од стране периферних уређаја. Он обезбјеђује како

конфигурацију и надгледање промјене стања периферних уређаја, тако и могућност

њихове контроле. Подржава различите протоколе којима периферни уређаји

комуницирају. Такође, уводи и напреднију логику у систем, па су на овој компоненти

одрађене минималне измјене како би OBLO систем могао да подржи и аутомобил као

дио система.

Слика 2.8 Архитектура ОBLO система

Page 25: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Теоријске основе

15

2.5.3 OBLO Cloud

Као што је претходно поменуто, постоје два могућа тока комуникација клијентских

апликација са уређајима: директни, када се клијент налази у истој локалној мрежи као и

централни уређај, или посредством cloud сервиса, када је клијент ван домашаја локалне

мреже. Cloud сервиси обезбјеђују константно доступну програмску подршку на

Интернету, која је повезана са централним уређајем са једне стране и клијентима са

другима. То пружа могућност да удаљено ажурирање аутомобила заживи. Cloud сервиси,

односно подаци централних уређаја, су доступни и кроз клијентски портал, одакле је

такође могућ преглед и контрола свих централних уређаја на конкретном налогу, као и

уређаја повезаних са њима. Сваки централни уређај садржи идентификациони број, који

се повезује са корисничким налогом. Овај вид корисничке спреге је погодан за

одржавање цјелокупног система од стране администратора.

2.5.4 Веза између OBLO Cloud сервиса и централног контролера

Размjена порука између cloud сервиса и централног контролера се базира на МQТТ

(Message Queuing Telemetry Transport) [22] протоколу. Овај М2М протокол је веома

заступљен у IoT системима због претплата/објава механизма комуникације који

подржава. Према спецификацији, разликују се три логичке компоненте – прималац,

пошиљалац и посредници. Посредник је неопходан у размјени порука између различитих

МQТТ клијената и назива се брокер. Пошиљалац шаље поруке ка посреднику, при чему

дефинише тему поруке. Примаоци су претплаћени на одређене теме. Поруке примаоцу

испоручује посредник, на основу тема на које је прималац претплаћен. Овај протокол се

заснива на непрекидној TCP вези, тако да је неопходно у позадини у сваком тренутку

задржавати активан процес. Први корак при иницијализацији комуникације јесте

повезивање примаоца са брокером преко ког се касније врши даља размјена

информација.

Сврха кориштења овакве архитектуре јесте смањење оптерећења и периода обраде

унутар сервиса. Предност се огледа у томе што потрошач може да почне са обрадом

пристиглих информација притом не знајући ништа о његовим пошиљаоцима, док

истовремено произвођач генерише нове поруке и просљеђује их у ред.

2.6 OTA Bridge агент

Over The Air (ОТА) Bridge aгент представља екстензију Adaptive AUTOSAR

платформе за комуникацију са cloud сервисима. Агент користи комуникациони модул

Page 26: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Теоријске основе

16

Adaptive платформе (ARA::COM) за комуницирање са активним Adaptive апликацијама и

сервисима, као и за прикупљање података и примање различитих врста догађаја које

генеришу компоненте система и носи различите врсте информација. Комуникација са

cloud сервисима се обавља путем протокола који намећу сами сервиси, а то је изводљиво

једноставном измјеном компоненте Bridge Client која је дио самог агента као што се види

са слике 2.9. Иницијатор комуникације може бити cloud или сама платформа.

Дијелови OTA Bridge агента: Bridge Client, извршно окружење агента и његове

екстензије су описане у даљем дијелу текста.

2.6.1 Bridge Client

Клијентски модул познаје начин размјене података са одабраним IoT системом.

Сврха овог модула је да осталим компонентама апстрахује начин комуникације са

кориштеним системом, тј. управљачким јединицама тог система. У конкретном рјешењу

кориштен је клијентски модул који омогућује комуникацију са OBLO централним

управљачким јединицама кориштењем интернет протокола (IP).

2.6.2 Bridge Runtime

Ова компонента је одговорна за ширење догађаја (енг. event) унутар агента по

шаблону „објаве“ и „претплате“. Догађаји се пропагирају на обје стране, од сервиса до

Слика 2.9 Архитектура OTA Bridge агента

Page 27: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Теоријске основе

17

клијента и обрнуто. И сервиси и клијенти се региструју на Bridge Runtime и обезбеђују

одговарајуће обрађиваче за различите врсте догађаја које подржавају. Када један од

учесника интерне комуникације покуша да пошаље свој догађај у Runtime, тај догађај се

ставља на један од доступних редова за догађаје. Вишеструки редови се користе да би се

обезбиједило минимално кашњење током расподјеле догађаја.

2.6.3 Сервиси OTA Bridge агента

Најважнији дио агента јесу његове екстензије у виду сервиса које се могу везати за

различите дијелове Adaptive платформе, као на примјер за дијагностику или сервис за

ажурирање и конфигурацију система. Сервиси се додају регистровањем на Bridge

Runtime, приликом које треба да обезбиједе обрађивач у виду callback функције као и

листу догађаја на које се „претплаћују“.

2.7 Хардверске платформе за развој

Како би овај рад био реализован потребно је оспособити Adaptive платформу на

хардверу који се може наћи и у електронској управљачкој јединици аутомобила. У

рачунарским системима који се користе у аутомобилској индустрији присутни су разни

процесори са примјетном тежњом ка обједињавању улога у што мањи број физичких

јединица. Више оваквих процесора заједно са централним процесором обједињавају се у

једно интегрисано коло (енг. System-on-Chip – SoC).

Процесор (интегрисано коло) који подржава оперативни систем који посједује

вишепроцесни POSIX може постати Аdaptive платформа јер је то услов за њен исправан

рад, док сам хардвер на којем ради, платформа посматра као „машину“. Образложење је

да хардвер може бити виртуелизован кориштењем различитих технологија повезаних са

хипервизорима, а потребно је постићи конзистентан поглед на платформу без обзира на

то.

За тестирање и развој овог рада кориштене су хардверске платформе засноване на

Texas Instruments TDA2x [23] и Qualcomm Snapdragon S820A [24] интегрисаним колима.

2.7.1 Alpha Automotive Machine Vision

Платформа под именом Alpha Automotive Machine Vision посједује три TDA2x

интегрисана кола (слика 2.10) од којих је на једном између осталих био и оперативни

систем који испуњава услове потребне за рад Adaptive платформе. Друга два чипа се

користе за алгоритме препознавања објеката, проналажење чистог простора и слично, са

којих Adaptive апликације могу користити податке и доносити одређене одлуке.

Page 28: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Теоријске основе

18

У оквиру TDA2x интегрисаног кола, налазе се:

2 ARM Cortex A15 и 2 ARM Cortex M4 централна процесора;

2 процесора за дигиталну обраду сигнала C66x;

2 графичка процесора SGX544 3D.

2.7.2 Intrinsyc S820AM V2 ADP

Развојна платформа Intrinsyc S820AM V2 ADP на којој се налази Qualcomm

Snapdragon S820A интегрисано коло посједује мноштво дигиталних и аналогних улаза и

излаза, као што се види на слици 2.11.

У оквиру интегрисаног кола налазе се три процесора:

централни процесор Kryo;

графички процесор Adreno;

процесор за дигиталну обраду сигнала Hexagon.

Такође подржава оперативни систем са Adaptive платформом.

Слика 2.10 Изглед и блок-дијаграм Аlpha платформе

Слика 2.11 Изглед и блок-дијаграм Intrinsyc S820AM V2 ADP платформе

Page 29: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Концепт рјешења

19

3. Концепт рјешења

У претходном поглављу су објашњени дијелови овог система као појединачне

цјелине док је у овом поглављу описана предложена софтверска архитектура приказана

на слици 3.1, која би омогућила интеграцију система, као и OTА ажурирање софтвера,

али и створила могућност за друге опције удаљене контроле и праћења, као што је на

примјер удаљено праћење дијагностике.

За израду софтвера кориштен је Linux систем прилагођен аутомобилским

стандардима, под називом AGL (Automotive Grade Linux).

Слика 3.1 Архитектура предложеног рјешења

Page 30: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Концепт рјешења

20

3.1 Архитектура система за удаљенo ажурирање софтвера

Саму архитектуру је најбоље објаснити описом читавог процеса за одређени случај

кориштења.

Процес ОТА ажурирања почиње када корисник кроз кориснички OBLO портал од

понуђених апликација, изабере једну коју жели да ажурира. Апликације које може да

ажурира су наравно понуђене од стрaне оригиналног произвођача опреме и то

апликације које најчешће спадају у Infotainment домен. Други случај би био да сам

оригинални произвођач опреме наметне ажурирање апликација као што су апликације

напредних система за помоћ возачу, чији погрешан прорачун може довести до фаталних

исхода.

OBLO систем преко cloud сервиса успоставља конекцију са ОТА Bridge клијентом

на IP нивоу и путем већ имплементираних механизама обавијештава ОТА Bridge агента

о новом пакету.

OTA Bridge агент пропагира ову поруку до одговарајућег сервиса, који је у овом

случају Updater сервис. Овај сервис затим преузме одговарајући пакет путем HTTP

протокола на машину, а затим започне процес ажурирања прозивањем сервиса

ARA::UCM, који се побрине за процес ажурирања.

Посматрајући архитектуру, компонентe које не постојe, а потребнe су за потпуну

интеграцију наведених система јесу инстанца ОТА Bridge сервиса - Updater Service и

Update and Configuration Manager, односно сервис за ажурирање и конфигурацију

система (ARA::UCM) који је описан стандардом, али не и имплементиран у

демонстратору кориштеном у овом раду. Такође, потребно је проширење већ постојећег

OBLO система како би могао да подржи нову врсту „паметних“ уређаја – возила.

3.2 OTA Bridge сервис – Updater

Updater сервис је екстензија OTA Bridge агента који је задужен да преузме пакете

који су потребни за ажурирање, конфигурацију или калибрацију апликација и

платформе. Следећи корак јесте да прозове ARA::UCM сервис како би се ажурирање у

потпуности извршило. Како би ова два сервиса могла да комуницирају потребно их је

повезати путем ARA::COM модула.

Page 31: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Концепт рјешења

21

3.3 Имплементација сервиса за ажурирање и

конфигурацију система (ARA::UCM)

Пратећи спецификацију Adaptive AUTOSAR стандарда објављену у октобру 2017-е

године може се имплементирати ARA::UCM сервис који се може наћи на Adaptive

платформи, а самим тим и у демонстратору.

3.3.1 Претпоставке и предуслови

Спецификација стандарда са намјером не дефинише сервис превише стриктно и

детаљно како би оставила простор за различите имплементације и интеграције са другим

системима, као што је OBLO, али наводи ствари које су потребне да би овај сервис радио

исправно, сигурно и складно са остатком платформе.

Једна од главних ствари коју спецификација дефинише јесте постојање такозваног

„софтверског пакета“ који улази у обраду. Сервис ради само са локалном копијом тог

пакета, што у преводу значи да је потребно преузети копију овог пакета са удаљеног

сервера на саму машину. Начин преузимања није дефинисан што је и пружило основу за

развој овог рада и саму интеграцију са OBLO системом.

3.3.1.1 „Софтверски пакет“

Улазна јединица за ARA::UCM је „софтверски пакет“. Пакет укључује, на примјер,

један или више извршних програма (Adaptive) апликација, нове верзије језгра, или

ажуриране податке за конфигурацију и калибрацију потребне Adaptive платформe. То је

дио пакета који садржи стварне податке који ће се додати или измијенити на платформи.

Поред података о апликацијама и конфигурацијама, сваки софтверски пакет садржи

манифест пакета који пружа метаподатке као што су име пакета, верзија, зависности и

такође je могуће убацити информације специфичне за произвођаче које им могу помоћи

приликом обраде. Примјер једног манифеста је приказан испод:

{ "name": "/swcls/swcl0", "path": "TestApplUCM", "version": "1.0", "checksum": 1639441683, "uncompressedSize": 110592, "requestType": 1 }

Page 32: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Концепт рјешења

22

Формат пакета није специфициран, што омогућава кориштење различитих рјешења

за имплементацију сервиса. Софтверски пакет састоји се од података за ажурирање

софтвера и мета података. Овај садржај ће се генерисати путем алата произвођача и такав

пакет ће ARA::UCM обрађивати. На платформи, апликација специфичнa за оригиналне

произвођаче опреме ће добити ОЕМ пакет и извршити декомпресовање и дешифровање

пакета прије обраде. Овај процес је приказан на слици 3.2.

Структура пакета за ову имплементацију сервиса је дата на слици 3.3, док је сама

структура апликација у оквиру пакета условљена компонентом Execution Manager која

је задужена за управљање животним циклусом апликација и покретањем система на

Adaptive платформи.

Слика 3.3 Структура „софтверског пакета“

Слика 3.2 Ток софтверског пакета за ажурирање

Page 33: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Концепт рјешења

23

3.3.2 Захтјеви које мора испунити ARA::UCM

Већ је поменуто да се задаци ARA::UCM сервиса могу грубо разврстати на

инсталирање, ажурирање и брисање софтвера на платформи, али за имплементацију су

потребни детаљни и формални записи дужности овог сервиса.

ARA::UCM треба да:

подржи могућност инсталирања новог софтвера на Adaptive платформу;

подржи могућност ажурирања већ постојећег софтвера на Adaptive

платформи;

подржи могућност брисања постојећег софтвера са Adaptive платформе;

обрише све трајно сачуване податке које је направила или сачувала

апликација која се брише;

изврши провјеру и валидацију пакета током обраде – не наводи се по којим

критеријумима ће се вршити сама провјера и валидација;

провјери зависности и предуслове потребне за инсталацију/ажурирање

софтвера – зависности од других апликација, библиотека и њихових верзија,

као и провјера доступности меморије потребне за успјешно извршавање

операције и сл.;

извјештавање о верзији софтвера присутног на Adaptive платформи –

потребно је обезбиједити интерфејс путем којег би се добављала

информација од сервиса;

обезбиједи механизам за враћање машине у последње познато

функционално стање у случају квара.

Разматрањем ових захтјева могу се извести сљедећи случајеви које ARA::UCM треба да

подржи, приказани на слици 3.4.

Page 34: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Концепт рјешења

24

Важно је напоменути да је стандард у изради и да имплементација која задовољава

само ове услове не гарантује сигурност и исправан рад ван контролисаног окружења и

током излагања вањским утицајима.

3.4 Проширење OBLO система

Да би се омогућило функционисање цјелокупног система, неопходне су одређене

модификације OBLO система. Компонента OHM (ОBLO Home Manager) која је дио

централног уређаја, модификована је да омогући комуникацију са развојном

платформом која је у OBLO систему приказана као генерички уређај са одређеним

функционалностима које су карактеристичне за возила. Модификација је сведена на

увођење нове Bus компоненте у OHM, која је сврстана у IP Bus породицу, и која је названа

OnebrainBus.

Onebrain IP Bus задужен је за откривање уређаја као и за сваки вид комуникације

са њим. Постоји могућност кориштења више од једног уређаја.

Слика 3.4 Use-Case дијаграм

Page 35: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Концепт рјешења

25

Поред Bus модула имплементиран је и нови тип уређаја који служи за апстракцију

функционалности развојне платформе.

Архитектура проширене OHM компоненте дата је на слици 3.5.

Слика 3.5 Архитектура проширене OHM компоненте

Page 36: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Програмско рјешење

26

4. Програмско рјешење

У овом поглављу је представљена имплементација свих дијелова који су потребни

за потпуну изведбу удаљеног ажурирања. Дат је приказ Updater сервиса као екстензије

OTA Bridge агента, али и архитектура сервиса ARA::UCM путем UML (Unified Modelling

Language) дијаграма и описани су сви изведени типови кориштени у имплементацији као

и сам начин кориштења.

4.1 Updater сервис

Сервис је представљен кроз опис најважнијих поља (табела 4.1) и метода (табела

4.2) задужених за везу са Bridge Runtime компонентом као и комуникацију са ARA::UCM

сервисом.

Табела 4.1 Опис најважнијих поља Updater сервиса

Декларација поља Опис поља

std::shared_ptr<ara::ucm::proxy::PackageManager>

m_proxy;

Proxy за комуникацију са

ARA::UCM сервисом преко

ARA::COM модула

runtime::CallbackRoutine serviceCallback; Веза са OTA Bridge Runtime

компонентом

runtime::EventArray events; Листа која садржи све

догађаје намијењене овом

сервису

Page 37: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Програмско рјешење

27

Декларација методе Опис параметара методе Опис методе

bool init(); - Иницијализује ОТА

Bridge сервис. Враћа

true ако је успјешно

извршена

bool deInit(); - Дeиницијализује ОТА

Bridge сервис. Враћа

true ако је успјешно

извршена

bool updaterCallback(

onebrain::bridge::event::Event&

event);

Догађај који сервис

прима од Bridge Runtime

компоненте, инициран

од стране cloud сервиса

Парсира догађаје,

преузима софтверски

пакет и иницира

ажурирање код

ARA::UCM сервиса

void FindServiceCallback(

ara::com::ServiceHandleContainer

<ara::ucm::pkgmgr::HandleType>

handles);

Показивач(и) на тражене

сервисе – ARA::UCM::

ProcessSwPackage()

Повезује Updater

сервис са ARA::UCM

сервисом

Табела 4.2 Опис најважнијих метода Updater сервиса

4.2 ARA::UCM

Главни сервис који пружа ARA::UCM јесте ProcessSwPackage, који прима путању

до софтверског пакета који је спреман за обраду. Софтверски пакет може садржати

захтјеве за инсталацију, уклањање или ажурирање.

4.2.1 Захтјев за инсталацију

У случају захтева за инсталацију, менаџер пакета анализира садржај пакета да би

направио листу апликација унутар пакета помоћу класе ApplicationListBuilder. Онда

упоређује листу апликација у пакету са листом већ инсталираних апликација креираних

у иницијализационом времену како би провјерио да ли је софтверски пакет већ присутан

на платформи. Пакет ће бити инсталиран само ако је нова верзија виша.

Page 38: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Програмско рјешење

28

Након инсталације обавjештава Еxecution Manager (ARA::EXEC) компоненту о

новим апликацијама.

4.2.2 Захтјев за уклањање

У случају захтева за уклањање, менаџер пакета провјерава да ли се уклањањем

нарушава зависност других инсталираних апликација. Пре него што је стварно уклоњена,

апликација од компоненте ARA::EXEC захтијева да заустави апликацију, ако је тренутно

покренута. Затим менаџер пакета наставља да уклања директоријум апликације.

4.2.3 Захтјев за ажурирање

Ажурирање у основи комбинује захтјеве за уклањањем и инсталирањем, уз

провјеру свих потребних предуслова и зависности.

4.2.4 Парсирање манифеста

Манифест софтверског пакета садржи мета информације о пакету, као што је већ

поменуто, а једна од најбитнијих јесте информација о типу захтјева, који је потребно

сазнати. Само парсирање обавља класа SwclManifest.

Класа Swcl, која у себи има листу апликација из пакета спремних за обраду, као и

све податке из парсираног манифеста - преко класе SwclManifest, служи менаџеру пакета

који је описан класом PackageManager, као основа за обраду пакета (слика 4.1).

Page 39: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Програмско рјешење

29

4.2.5 Менаџер пакета

Класа PackageManager (слика 4.2) јесте главна класа задужена за контролу и обраду

свих пакета. Она излаже функцију ProcessSwPackage која извлачи програмски пакет на

привремену локацију. Затим анализира манифест софтверског пакета како би се сазнала

захтијевана врста операције.

Слика 4.1 Aрхитектура за парсирање манифеста

Page 40: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Програмско рјешење

30

4.2.6 Опис сервиса ARA::UCM помоћу ARXML шеме

Како би сервис могао да понуди своје методе (сервисе) потребно их је изложити

потенцијалним клијентима путем skeleton класе која се добија генерисањем. Генерисање

захтјева опис сервиса по ARXML шеми. ARXML шеме су веома комплексне и обимне и

описивање елемената помоћу њих ће се обављати специјализованим алати, који су у

изради као и сам стандард.

Слика 4.2 Архитектура менаџера пакета

Page 41: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Програмско рјешење

31

У наставку су приказани и објашњени најважнији дијелови ARXML фајла који

описује ARA::UCM сервис и његове методе.

Потребно је одредити тип елемента који се описује – овом случају сервис, као и

његово јединствено име, које се у случају потребе за више истих имена, може раздвојити

просторима имена (енгл. Namespace).

<SHORT-NAME>PortInterfaces</SHORT-NAME> <ELEMENTS> <SERVICE-INTERFACE UUID="e2c20ca8-2097-3467-9ee3-c8821421e389"> <SHORT-NAME>PackageManagement</SHORT-NAME> <IS-SERVICE>false</IS-SERVICE> <NAMESPACES> <SYMBOL-PROPS> <SHORT-NAME>ara</SHORT-NAME> <SYMBOL>ara</SYMBOL> </SYMBOL-PROPS> <SYMBOL-PROPS> <SHORT-NAME>ucm</SHORT-NAME> <SYMBOL>ucm</SYMBOL> </SYMBOL-PROPS> <SYMBOL-PROPS> <SHORT-NAME>pkgmgr</SHORT-NAME> <SYMBOL>pkgmgr</SYMBOL> </SYMBOL-PROPS> </NAMESPACES> ... ... <ELEMENTS>

Након идентификовања сервиса потребно је описати методе, поља и догађаје које

овај сервис нуди. За методе је потребно описати и њихове параметре као и врсту – улазни,

излазни или улазно-излазни.

<METHODS> <CLIENT-SERVER-OPERATION UUID="b458eb23-3d7e-35c1-8eea-9dd2bdcb8024"> <SHORT-NAME>ProcessSwPackage</SHORT-NAME> <ARGUMENTS> <ARGUMENT-DATA-PROTOTYPE UUID="eb539acf-f3d9-3c6e"> <SHORT-NAME>path</SHORT-NAME> <TYPE-TREF DEST="IMPLEMENTATION-DATA-TYPE">/DataTypes/SwBaseTypes/std_string</TYPE-TREF> <DIRECTION>IN</DIRECTION> </ARGUMENT-DATA-PROTOTYPE> <ARGUMENT-DATA-PROTOTYPE UUID="29456958-9a8e-3496"> <SHORT-NAME>sizeOfPackage</SHORT-NAME> <TYPE-TREF DEST="IMPLEMENTATION-DATA-TYPE">/DataTypes/ImplementationDataTypes/uint64</TYPE-TREF> <DIRECTION>IN</DIRECTION> </ARGUMENT-DATA-PROTOTYPE> <ARGUMENT-DATA-PROTOTYPE UUID="954ce986-3fa1-33c6-8450"> <SHORT-NAME>checksum</SHORT-NAME> <TYPE-TREF DEST="IMPLEMENTATION-DATA-TYPE">/DataTypes/ImplementationDataTypes/ByteVectorType</TYPE-TREF>

Page 42: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Програмско рјешење

32

<DIRECTION>IN</DIRECTION> </ARGUMENT-DATA-PROTOTYPE> <ARGUMENT-DATA-PROTOTYPE UUID="6ffa202e-9a76-3662"> <SHORT-NAME>result</SHORT-NAME> <TYPE-TREF DEST="IMPLEMENTATION-DATA-TYPE">/DataTypes/ImplementationDataTypes/ProcessingResultType</TYPE-TREF> <DIRECTION>OUT</DIRECTION> </ARGUMENT-DATA-PROTOTYPE> </ARGUMENTS> </CLIENT-SERVER-OPERATION> <CLIENT-SERVER-OPERATION UUID="ebb3e025-d021-3850-9de9-285d5dc56263"> <SHORT-NAME>GetInstalledSw</SHORT-NAME> <ARGUMENTS> <ARGUMENT-DATA-PROTOTYPE UUID="8578e0b2-f259-3d25-8681-3285f8eaf48f"> <SHORT-NAME>InstalledSoftware</SHORT-NAME> <TYPE-TREF DEST="IMPLEMENTATION-DATA-TYPE">/DataTypes/ImplementationDataTypes/SwInfoVectorType</TYPE-TREF> <DIRECTION>OUT</DIRECTION> </ARGUMENT-DATA-PROTOTYPE> </ARGUMENTS> <FIRE-AND-FORGET>false</FIRE-AND-FORGET> </CLIENT-SERVER-OPERATION> </METHODS>

Такође, за сваки параметар је потребно навести и његов тип што одређују линије

као ова:

<TYPE-TREF DEST="IMPLEMENTATION-DATA-TYPE">/DataTypes/SwBaseTypes/std_string</TYPE-TREF>

Како основни типови, као што је горе означени String, нису увијек довољни,

потребно је дефинисати и изведене типове, што се такође обавља у ARXML фајлу, а у

наставку је дат опис типа повратне вриједности методе ProcessSwPackage.

<SW-BASE-TYPE UUID="1507d99b-f4d9-396f-b72f-d0cd26a22870"> <SHORT-NAME>cpp_processing_result_type</SHORT-NAME> <CATEGORY>FIXED_LENGTH</CATEGORY> <BASE-TYPE-SIZE>8</BASE-TYPE-SIZE> <BASE-TYPE-ENCODING>NONE</BASE-TYPE-ENCODING> <MEM-ALIGNMENT>8</MEM-ALIGNMENT> <BYTE-ORDER>MOST-SIGNIFICANT-BYTE-LAST</BYTE-ORDER> <NATIVE-DECLARATION>enum class ProcessingResultType : uint8_t {&#xD; SUCCESS = 0,&#xD; REJECT = 1,&#xD; INVALID_MANIFEST = 2,&#xD; INSUFFICIENT_MEMORY = 3,&#xD; MISSING_DEPENDENCIES = 4 &#xD; } </NATIVE-DECLARATION> </SW-BASE-TYPE>

Page 43: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Програмско рјешење

33

Из оваквих описа помоћу алата за генерисање се добију сви потребни типови, а

најбитнији за ову имплементацију су дати у наставку.

4.2.7 Изведени типови

Од најбитнији типови кориштених у имплементацију неки су изведени из саме

спецификације, али постоје и они који су специфични за ову имплементацију.

4.2.7.1 Version

Структура која се користи за информације о верзијама апликација као и самих

пакета. Састоји се од конструктора и преклопљeних оператора који се користе ради

лакшег руковања форматом за верзије у облику „a.б“ (слика 4.3).

4.2.7.2 SwInfoType

Структура која се користи као повратни тип методе GetInstalledSoftware, која враћа

основне информације о инсталираном софтверу на платформи (слика 4.4).

Слика 4.3 Структура Version

Слика 4.4 Структура SwInfoType

Page 44: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Програмско рјешење

34

4.2.7.3 ProcessingResultType

Енумерацијски тип кориштен као повратна вриједност функције ProcessSwPackage

(слика 4.5).

Објашњење наведених вриједности енумерације је дато у табели 4.1.

SUCCESS 0x00 Софтверски пакет је успјешно

обрађен

INVALID_MANIFEST 0x01 Није могуће парсирати

манифест пакета

INSUFFICIENT_MEMORY 0x02 Нема довољно меморије да би

се извршила инсталациjа /

ажурирање

MISSING_DEPENDENCIES 0x03 Зависности пакета нису

присутне

NEWER_VERSION_INSTALLED 0x04 Није могуће инсталирати

апликације/у јер постоји новија

верзија

PACKAGE_VALIDATION_FAILED 0x05 Checksum или стварна величина

пакета не одговарају оним из

манифеста

RESERVED 0x06 – 0xFF Резервисано за будућу употребу

Табела 4.3 Објашњење вриједности типа ProcessingResultType

4.2.8 Софтвер отвореног кода кориштен у имплементацији

Софтверске компоненте отвореног кода које су кориштене у имплемeнтацији и

помоћи при превођењу и образложење за њихову употребу су дате у табели 4.2:

Слика 4.5 Енумерација ProcessingResultType

Page 45: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Програмско рјешење

35

Софтвер

отвореног кода

Верзија Објашњење Веза Лиценца

Boost 1.58 Приступ систему

датотека

Заглавље и

статичко

повезивање

Boost Software

License 1.0

Busybox 1.24.1 Декомпресовање архива Системски

позиви

GPL 2

Google Test 1.8 Unit тестирање - 3-Clause BSD

CMake 3.9 Управљање процесом

превођења софтвера

- New BSD

License

Табела 4.4 Софтверске компоненте отвореног кода које су кориштене

Page 46: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Резултати

36

5. Резултати

Валидација се врши тестирањем цјелокупног тока ажурирања. Сервери, односно

back-end системи се тестирају креирањем софтверског пакета и учитавањем у OBLO

систем, што омогућава увид корисницима у постојање нових ажурирања. Корисници

могу одлучити да ли желе да ажурирају софтвер преко корисничког портала, али ипак

неке критичне исправке могу примијенити оригинални произвођачи опреме.

Слика 5.1 Приказ корисничког портала са могућношћу ажурирања

Page 47: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Резултати

37

Након што је ажурирање покренуо корисник или оригинални произвођачи опреме,

преко OBLO система пакети стижу до саме платформе, гдје се процес извршава до краја

на већ описан начин. Провјеравајући верзију апликације на корисничком порталу, а без

отказа на развојној платформи која представља електронску управљачку јединицу,

потврђује се успјешно ажурирање.

Овакав систем је веома комплексан и његове перформансе зависе од много

фактора, као што су: проток и јачина Wi-Fi сигнала, оптерећеност cloud сервиса, стање

аутомобила, величина пакета, врсте захтјева и многи други.

У наставку у табели 5.1 су приказана мјерења која представљају зависност времена

извршавања захтјева за инсталирање, у оквиру ARA::UCM сервиса у односу на величину

пакета.

Слика 5.2 Ажурирана апликација Music Player

Page 48: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Резултати

38

Број апликација Величина софтверског

пакета (kB)

Просјечно вријеме

извршавања (ms)

1 25.2 7.1505

5 126.4 10.623

10 248.9 14.405

Табела 5.1 Зависност брзине извршавања од величине пакета

Такође, веома битан фактор који утиче на вријеме извршавања, јесте платформа,

која представља електронску управљачку јединицу на којој се извршава процес

ажурирања. Приликом мјерења на различитим платформама кориштен је пакет са 10

апликација и величином 248.9 kB.

Платформа Просјечно вријеме извршавања (ms)

Персонални рачунар са i7-7500U @

2.70GHz 2.90GHz процесором и 16GB

RAM.

14.405

Виртуелна машина са једним језгром

(ограничено на 90% капацитета) и 2GB

RAM

71.213

Alpha Automotive Machine Vision 59.8528

Qualcomm S820AM V2 ADP 61.32

Табела 5.2 Вријеме извршавања на различитим платформама

Мјерења потврђују зависност перформанси, у овом случају – вријеме извршавања,

од различитих фактора код сервиса ARA::UCM, али такође показују и да ова

имплементација, у односу на цјелокупан систем гдје IoT и Web технологије имају одзив

који се некада може мјерити и секундама, посједује прихватљиве карактеристике.

Сви претходно наведени фактори представљају изазове како за сигурност тако и

ефикасност са којима ће се сусретати оригинални произвођачи опреме приликом

имплементације ових технологија.

Page 49: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Закључак

39

6. Закључак

Удаљена ажурирања имају за задатак да помогну произвођачима аутомобила са

проблемима скупих и спорих ажурирања возила и веома захтјевног тржишта. Први који

усвоје и развију такву технологију обезбјеђују средства за динамичко ажурирање

софтвера и пружиће најновије технологије корисницима на најбржи могући начин.

Негативна страна јесте деликатност ове теме, јер ако неки произвођач постави стандард

и испостави се да је тај стандард неисправан, а како у најгорим случајевима може довести

чак и до фаталних исхода, он губи кредибилитет и повјерење на тржишту.

Овај рад приказује једно могуће рјешење за удаљено ажурирање гдје је већ

постојећа IoT технологија - OBLO, искориштена као back-end основа цијелог система.

Затим je омогућена комуникација са cloud сервисима проширењем Adaptive AUTOSAR

стека, али и имплементиран дио самог стандарда како би ажурирање било могуће.

Даљи рад на рјешењу се односи на имплементацију ARA::UCM сервиса по новим

издањима Adaptive стандарда, који треба да створи могућност за далеко озбиљнију

имплементацију као и могућност кориштења у реалним системима, то јесте возилима.

Такође, даљи рад се односи на додатна проширења OBLO система, како би се возила,

која тренутно нису природни дијелови оваквих система, приказала као таква. Такође,

може се обезбиједити и „продавница апликација“ за Infotainment домен.

Page 50: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Литература

40

7. Литература

[1] Software as a Service (Saas). [Online]. Доступно:

https://en.wikipedia.org/wiki/Software_as_a_servicе. [приступљено јун 2018].

[2] Electronic Control Unit (ECU). [Online]. Доступно:

https://en.wikipedia.org/wiki/Electronic_control_unit. [приступљено јун 2018].

[3] Original Equipment Manufacturer (OEM). [Online]. Доступно:

https://en.wikipedia.org/wiki/Original_equipment_manufacturer. [приступљено јун

2018].

[4] Classic AUTOSAR. [Online]. Доступно: https://www.autosar.org/standards/classic-

platform/. [приступљено јун 2018].

[5] Adaptive AUTOSAR. [Online]. Доступно:

https://www.autosar.org/standards/adaptive-platform/. [приступљено јун 2018].

[6] Internet of Things. [Online]. Доступно:

https://en.wikipedia.org/wiki/Internet_of_things. [приступљено јун 2018].

[7] Sync 3 system. [Online]. Доступно: https://www.ford.com/technology/sync/.

[приступљено јун 2018].

[8] Harman’s OTA system. [Online]. Доступно:

https://services.harman.comasolutions/ota-software-management/harman-remote-

vehicle-updating-service-ota. [приступљено јун 2018].

[9] Uconnect. [Online]. Доступно: https://www.driveuconnect.com/. [приступљено

јула 2018].

[10] Hesham A. Odat, Subra Ganesan, Firmware over the air for automotive,

Fotamotive. IEEE International Conference on Electro/Information Technology.

[11] Marco Steger, Michael Karner, Joachim Hillebrand, Werner Rom, Carlo Boano

and Kay Römer, Generic Framework Enabling Secure and Efficient Automotive

Page 51: ЗАВРШНИ (BACHELOR) РАД · SaaS – Software as a Service, Софтвер као услуга SoC – System on Chip, Интегрисано коло SOME/IP - Scalable service-Oriented

Литература

41

Wireless SW Update. 2016 IEEE 21st International Conference on Emerging

Technologies and Factory Automation (ETFA).

[12] Muzaffar Khurram, Hemanth Kumar, Adi Chandak, Varun Sarwade, Nitu

Arora, Tony Quach, Enhancing Connected Car Adoption: Security and Over The Air

Update Framework. 2016 IEEE 3rd World Forum on Internet of Things (WF-IoT).

[13] Automotive Open System Architecture (AUTOSAR). [Online]. Доступно:

https://www.autosar.org/. [приступљено јун 2018].

[14] Application Programming Interface (API). [Online]. Доступно:

https://en.wikipedia.org/wiki/Application_programming_interface. [приступљено

јун 2018].

[15] Portable Operating System Interface (POSIX). [Online]. Доступно:

https://en.wikipedia.org/wiki/POSIX. [приступљено јун 2018].

[16] AUTOSAR, Explanation of ara::com API. AUTOSAR Adaptive Realease 17-

10.

[17] Automotive Safety Integrity Level (ASIL). [Online]. Доступно:

https://en.wikipedia.org/wiki/Automotive_Safety_Integrity_Level. [приступљено

јун 2018].

[18] Scalable service-Oriented MiddlewarE over IP (SOME/IP). [Online].

Доступно: http://some-ip.com/. [приступљено јун 2018].

[19] Extensible Markup Language (XML). [Online]. Доступно:

https://en.wikipedia.org/wiki/XML. [приступљено јун 2018].

[20] AUTOSAR, Specification of Update and Configuration Managemen.

AUTOSAR Adaptive Realease 17-10.

[21] Advanced driver-assistance systems (ADAS). [Online]. Доступно:

https://en.wikipedia.org/wiki/Advanced_driver-assistance_systems. [приступљено

јун 2018].

[22] Message Queuing Telemetry Transport (MQTT). [Online]. Доступно:

https://en.wikipedia.org/wiki/MQTT. [приступљено јун 2018].

[23] Alpha Automotive Machine Vision. [Online]. Доступно: http://www.rt-

rk.com/download/rt-rk_ALPHA_ADAS_board.pdf. [приступљено јун 2018].

[24] Qualcomm Snapdragon S820A. [Online]. Доступно:

https://www.qualcomm.com/snapdragon/processors/820-automotive. [приступљено

јун 2018].