Harmonizing policy management with Murphy in Genivi, AGL and Tizen IVI

28
Murphy integration to Weston in Tizen IVI Janos Kovacs Intel Open Source Technology Center June 2014

description

Harmonizing policy management with Murphy in Genivi, AGL and Tizen IVI - Janos Kovacs, Intel

Transcript of Harmonizing policy management with Murphy in Genivi, AGL and Tizen IVI

Page 1: Harmonizing policy management with Murphy in Genivi, AGL and Tizen IVI

Murphy integration to

Weston in Tizen IVI

Janos Kovacs

Intel

Open Source Technology Center

June 2014

Page 2: Harmonizing policy management with Murphy in Genivi, AGL and Tizen IVI

2

Background

Page 3: Harmonizing policy management with Murphy in Genivi, AGL and Tizen IVI

3

X Architecture

Wayland Architecture

Clients

Kernel

X serverCompositing

Window

Manager

Wayland Architecture

Kernel

Clients

Wayland

compositor(Weston)

Page 4: Harmonizing policy management with Murphy in Genivi, AGL and Tizen IVI

4

Resource Management Framework in Murphy

Resource Engine(core library)

clie

nt

AP

I

config API

manager

AP

I

Resource

Managers(optional plugins)

Exception

Rules

(optional)

Client Protocol

Adapters(plugins)

LUA adapter

Config Protocol

Adapter(optional plugins)

DBTable

DBTable

Data

base Inte

rface

xxx_owners

xxx_users

Page 5: Harmonizing policy management with Murphy in Genivi, AGL and Tizen IVI

5

Screen Management Building Blocks• Regulator

• Logic to adapt vehicle state, driver activities and application usage scenarios

• Set of rules and/or state machines

• Determines what applications can be active

• Layout Manager• Manages Areas and Layers

• Assigns and moves surfaces to areas/layers

• Depends on Regulations

• Resource Manager• Decides what active applications can do and when

• Depends on Regulations

• Application Launcher / Task Switcher• Launches/kills application

• Requests to switch active application

• Screen Controller• Carries out / enforces the decisions of Layout & Resource Manager

• Input Controller• Carries out / enforces the decisions of Input & Resource Manager

Page 6: Harmonizing policy management with Murphy in Genivi, AGL and Tizen IVI

6

Basic Usecases for Screen Management

• Application launching

• Task switching

• Regulation changes

Page 7: Harmonizing policy management with Murphy in Genivi, AGL and Tizen IVI

7

Evolution of HomeScreen

phase 1

Page 8: Harmonizing policy management with Murphy in Genivi, AGL and Tizen IVI

8

Phase 1 Executive Summary

• Tizen IVI 2.0

• Toyota-san contributed HomeScreen to Tizen• Weston ICO plugins

• HomeScreen

• Sample applications

• First version of HomeScreen was monolithic• GUI

• System controller to manage screens, audio, input etc

• Conflicting audio management• TIZEN had its own Murphy based audio management for routing and volume ctrl.

• HomeScreen had its own management for volume control

• The two stack was not integrated

Page 9: Harmonizing policy management with Murphy in Genivi, AGL and Tizen IVI

9

Building Block Locations

WestonHome Screen

ResourceManager

Screen

Controller

LayoutManager

LauncherTask Switcher

Regulator

InputManager

InputController

Page 10: Harmonizing policy management with Murphy in Genivi, AGL and Tizen IVI

10

Pros and Cons

• Pros

• Efficient communication between HomeScreen and Weston

• Cons

• Conflicting Tizen and ICO audio controllers in PulseAudio

• Monolithic

• GUI and control logic were grown together

• Configuration

• Limited

• No scripting

Page 11: Harmonizing policy management with Murphy in Genivi, AGL and Tizen IVI

11

Evolution of HomeScreen

phase 2

Page 12: Harmonizing policy management with Murphy in Genivi, AGL and Tizen IVI

12

Phase 2 Executive Summary

• Tizen IVI 3.0, 2013EOY

• Integration of the audio stacks

• Home Screen refactored

• System Controller was separated and run outside of HomeScreen as a daemon

• Audio resource management was linked to Murphy

• Home Screen improvements

• Look & feel has changed

• Improved configurability and better integration for TIZEN infrastructure

Page 13: Harmonizing policy management with Murphy in Genivi, AGL and Tizen IVI

13

Building Block Locations

Weston

System

ControllerHome Screen

LayoutManager

Layout

Manager

LauncherTask Switcher

Resource Managerscreen, input

Regulator

ScreenController

InputManager

InputManager

InputController

Murphy

Resource Manageraudio

Page 14: Harmonizing policy management with Murphy in Genivi, AGL and Tizen IVI

14

Pros and Cons

• Pros

• GUI and control logic separated

• Cons

• Both HomeScreen and SystemController have layout management logic

• Proxying Weston messages represent an extra hop

• Simple integration to TIZEN resource management

• Oversimplified audio management

• No scripting

Page 15: Harmonizing policy management with Murphy in Genivi, AGL and Tizen IVI

15

Evolution of HomeScreen

phase 3

Page 16: Harmonizing policy management with Murphy in Genivi, AGL and Tizen IVI

16

Phase 3 Executive Summary

• Tizen IVI 3.0 image 20140318.3

• Functionally equivalent to Phase2

• System controller is implemented in Murphy• The Murphy implementation is a drop-in replacement to

SystemController written in C++

• Could be tested by installing the relevant Murphy plugins

• Uses the ICO weston plugins

• Snapshot only• Migrating from ICO weston plugins to GENIVI compliant IVI shell was prioritized over the reimplementation of

System Controller in Murphy

• Paralell efforts• Toyota team worked on migration to GENIVI shell (see phase 4)

• Intel team worked on reimplementation of SystemController in Murphy

Page 17: Harmonizing policy management with Murphy in Genivi, AGL and Tizen IVI

17

Building Block Locations

WestonMurphyHome Screen

LayoutManager

LayoutManager

LauncherTask Switcher

ResourceManager

Regulator

ScreenController

InputManager

InputManager

InputController

Page 18: Harmonizing policy management with Murphy in Genivi, AGL and Tizen IVI

18 Example signal flow: launching Application B

RegulatorLayout

Manager

Resource

Manager

Launcher

Task SwitcherLayout

ManagerApplication

A

Application

B

Screen

Controller

Launch B

create surfacecreate surface

notificationcreate resource for B

move to area

set layercreate surface

notificationB is ready

Make B activeshow surface

request resource B

grant B

revoke A

hide surface A

show surface B

hide surface

notification

show surface

notification

hide surface

notification

show surface

notificationMake launcher

inactive

B is active

A is inactive

hide HomeScreen surface hide HomeScreen surface

Page 19: Harmonizing policy management with Murphy in Genivi, AGL and Tizen IVI

19

Pros and Cons

• Pros

• GUI and control logic separated

• Full integration to TIZEN resource management

• Scriptable => highly configurable

• Cons

• Both HomeScreen and SystemController have layout management logic

• Proxying Weston messages represent an extra hop

• Works only with the deprecated ICO weston plugins

Page 20: Harmonizing policy management with Murphy in Genivi, AGL and Tizen IVI

20

Evolution of HomeScreen

phase 4

Page 21: Harmonizing policy management with Murphy in Genivi, AGL and Tizen IVI

21

Phase 4 Executive Summary

• Tizen IVI 3.0 M14.2

• Uses the IVI-shell instead of ICO Weston plugins

• IVI-shell is GENIVI compliant

• IVI-shell upstreaming is ongoing

• Functionally equivalent to Phase2

Page 22: Harmonizing policy management with Murphy in Genivi, AGL and Tizen IVI

22

Evolution of HomeScreen

phase 5

Page 23: Harmonizing policy management with Murphy in Genivi, AGL and Tizen IVI

23

Phase 5 Executive Summary

• Tizen IVI M14.3

• Merge of Phase 3 and Phase 4

• System Controller is implemented in Murphy

• Uses the IVI-shell

• No new functionality

• Functionally equivalent to Phase 4

Page 24: Harmonizing policy management with Murphy in Genivi, AGL and Tizen IVI

24

Future directions

(life after phase 5)

Page 25: Harmonizing policy management with Murphy in Genivi, AGL and Tizen IVI

25

Main goals

• Further data flow optimisation

• move layout and input management to Weston

• build a PoC to verify the idea

• Work with OEMs and Tier1s on regulator

• Regulations are currently rule based

• Verify whether the current mechanisms are covering all the needs

• Do we need new mechanism beside rules?

• eg. Table driven approach

Page 26: Harmonizing policy management with Murphy in Genivi, AGL and Tizen IVI

26

Building Block Locations

WestonMurphyHome Screen

LauncherTask Switcher

Regulator

LayoutManager

ResourceManager

ScreenController

InputManager

InputController

Page 27: Harmonizing policy management with Murphy in Genivi, AGL and Tizen IVI

27

X Architecture

Clients

Kernel

X serverCompositing

Window

Manager

Wayland Architecture Tizen Architecture

Kernel Kernel

Clients Clients

Wayland

compositor(Weston)

MurphyWeston

HomeScreen

Page 28: Harmonizing policy management with Murphy in Genivi, AGL and Tizen IVI