diff options
24 files changed, 3885 insertions, 0 deletions
diff --git a/app-framework/index.md b/app-framework/index.md new file mode 100644 index 0000000..f69b2ba --- /dev/null +++ b/app-framework/index.md @@ -0,0 +1,92 @@ +# AGL Application Framework + +This page summarizes all materials related to AGL Application Framework + +## Source Code + +The current code of AGL App-Framework is stored on AGL Code Repository. It's divided in the following projects: + +* [src/app-framework-main](https://gerrit.automotivelinux.org/gerrit/gitweb?p=src%2Fapp-framework-main.git;a=summary) Main services +* [src/app-framework-binder](https://gerrit.automotivelinux.org/gerrit/gitweb?p=src%2Fapp-framework-binder.git;a=summary): Binder Daemon +* [src/app-framework-demo](https://gerrit.automotivelinux.org/gerrit/gitweb?p=src%2Fapp-framework-demo.git;a=summary) Demos + +## Building AGL with Application Framework support + +The Application Framework can be added easily to an AGL build using the feature 'agl-appfw-smack'. + +Typically, the following command can be called to initialize AGL build: + + # meta-agl/scripts/aglsetup.sh -m porter agl-appfw-smack agl-demo agl-devel + ... + # bitbake agl-demo-platform + +## Documentation + +Technical documentation is maintained in the source code and should be browsable with the [upcoming AGL documentation system](https://github.com/automotive-grade-linux/docs-agl) + +Temporarily, a static documentation has been made in PDF format: + +* [Introduction to Application Framework](http://iot.bzh/download/public/2016/appfw/01_Introduction-to-AppFW-for-AGL-1.0.pdf) +* [AppFW Core Documentation](http://iot.bzh/download/public/2016/appfw/02_Documentation-AppFW-Core-2.0.pdf) +* [Privileges Management](http://iot.bzh/download/public/2016/appfw/03-AGL-AppFW-Privileges-Management.pdf) + +Some extra guides are also available in PDF format: + +* [Build your 1st AGL Application](http://iot.bzh/download/public/2016/sdk/AGL-Devkit-Build-your-1st-AGL-Application.pdf) +* Applications Templates are available on [github:iotbzh/app-framework-templates](https://github.com/iotbzh/app-framework-templates) + +### Bindings Examples + +Some bindings are available to quickstart new projects: + +* GPS - see [github:iotbzh/af-gps-binding](https://github.com/iotbzh/af-gps-binding/blob/master/src/af-gps-binding.c) +* OpenXC Reader - see [github:iotbzh/txc-demo](https://github.com/iotbzh/txc-demo/blob/master/binding/txc-binding.c) +* CPU/Memory stats - see [github:iotbzh/txc-demo](https://github.com/iotbzh/txc-demo/blob/master/binding/stat-binding.c) +* Radio - see [gerrit:src/app-framework-binder](https://gerrit.automotivelinux.org/gerrit/gitweb?p=src/app-framework-binder.git;a=tree;f=bindings/radio;hb=master) +* Audio - see [gerrit:src/app-framework-binder](https://gerrit.automotivelinux.org/gerrit/gitweb?p=src/app-framework-binder.git;a=tree;f=bindings/audio;hb=master) + +The list is not exhaustive. ***Please add other bindings here !*** + + +### Demos + +* Simple HTML5 Demos apps (ported from Tizen) on [github:iotbzh/afm-widget-examples](https://github.com/iotbzh/afm-widget-examples) +* Installable package with [TXC Demo Application](http://iot.bzh/download/public/2016/afb-demos/txc-demo_0.1.wgt) +* Applications available in [gerrit:app-framework-demo](https://gerrit.automotivelinux.org/gerrit/gitweb?p=src/app-framework-demo.git;a=summary) + +## Presentations + +* Oct 16 - [Application Security Model - Status Update](http://iot.bzh/download/public/2016/genivi/CyberSecurity-Genivi-Q42016-Fulup-IoTbzh.pdf) +* Sept 16 - [Building Applications with AGL Framework](http://iot.bzh/download/public/2016/genivi/CyberSecurity-Genivi-Q42016-Fulup-IoTbzh.pdf) - Also visible in [PDF version](http://iot.bzh/download/public/2016/publications/build-agl-application-AMM-Munich-2016.pdf) +* Feb 16 - [HTML5 Apps for Automotive Systems](http://iot.bzh/download/public/2016/publications/HTML5_Applications_for_Automotive_Systems.pdf) +* Feb 16 - [Application & Security Framework Proposal AGL 2.0](http://iot.bzh/download/public/2016/security/Security-Proposal-AGL20-Fulup.pdf) +* Jan 16 - [Security Architecture Proposal](http://iot.bzh/download/public/2016/security/Security-Architecture-AGL20.pdf) + +## History + +### Motivation for rewriting the App. Framework + +To get the background and motivation on why Application Framework has been rewritten: + +* [Tizen Security: lessons learnt](http://iot.bzh/download/public/2015/tizen-security-lessons-learnt-initial.pdf) +* [this discussion](https://lists.linuxfoundation.org/pipermail/automotive-discussions/2016-October/002749.html) +* [Linux Automotive Security](http://iot.bzh/download/public/2016/security/Linux-Automotive-Security-v10.pdf) + + +### Comparison/Relationship with Tizen + + + + Tizen AGL + ---------------------------------- + App/OS isolation yes yes + Container option no possible + Native App partial* yes + HTML5 App yes yes + Cloud App No yes + Unified API (HTLM/Native) No yes + service as App** No yes + Adding API *** core core or App + Devel model bespoke Standard Web + + diff --git a/audio/index.md b/audio/index.md new file mode 100644 index 0000000..19c4945 --- /dev/null +++ b/audio/index.md @@ -0,0 +1,7 @@ +# AGL Audio Framework + +## Pulseaudio Plugin + +Source code is hosted on [gerrit:staging/agl-audio-plugin](https://gerrit.automotivelinux.org/gerrit/gitweb?p=staging%2Fagl-audio-plugin.git;a=summary) + +Documentation is available on [IoT.bzh site](http://iot.bzh/download/public/2016/audio/AGL-PulseAudio-Audio-Routing.pdf) diff --git a/getting-started/footers/porter-footer.md b/getting-started/footers/porter-footer.md new file mode 100644 index 0000000..b532fd9 --- /dev/null +++ b/getting-started/footers/porter-footer.md @@ -0,0 +1,19 @@ +## Weston + +If Weston fails to start double check /etc/xdg/weston/weston.ini and verify that the output name and screen resolution matches the configured U-Boot environment, for example on Renesas Porter board rev 1.0 with screen resolution 1024x768: + +``` +[core] +shell=desktop-shell.so +backend=drm-backend.so + +[shell] +locking=true +# Uncomment below to hide panel +#panel-location=none + +[output] +#name=Virtual-1 +name=HDMI-A-1 +mode=1024x768 +``` diff --git a/getting-started/footers/raspberrypi-footer.md b/getting-started/footers/raspberrypi-footer.md new file mode 100644 index 0000000..99964c8 --- /dev/null +++ b/getting-started/footers/raspberrypi-footer.md @@ -0,0 +1,56 @@ +# Commercial Licensed Packages + +Append to following lines to **conf/local.conf** to include libomxil under a commercial license to your build: + +``` +# For libomxil +LICENSE_FLAGS_WHITELIST = "commercial" + +IMAGE_INSTALL_append = " libomxil" +``` + +# Raspberry Pi Touchscreen with Rotation + +If you have Raspberry Pi official 7" touchscreen connected, you can rotate it with these lines in /etc/xdg/weston/weston.ini + +``` +root@raspberrypi3:/etc/xdg/weston# cat weston.ini +[core] +backend=drm-backend.so +shell=desktop-shell.so + +[shell] +locking=true +# Uncomment below to hide panel +#panel-location=none + +[launcher] +icon=/usr/share/weston/terminal.png +path=/usr/bin/weston-terminal + +[launcher] +icon=/usr/share/weston/icon_flower.png +path=/usr/bin/weston-flower + +[output] +name=DSI-1 +transform=270 +``` + +# Debugging + +It is possible to debug AGL images on Raspberry Pi using 3.3V USB to serial cable, such as [Olimex USB-Serial-Cable-F](https://www.olimex.com/Products/Components/Cables/USB-Serial-Cable/USB-Serial-Cable-F/), connected to the UART of the board. Follow the instructions below to connect a cable to the board (do it on your own risk, no warranty is provided): + +* Connect the BLUE wire if you are using Olimex USB-Serial-Cable-F to pin 6 of Raspberry Pi, +* Connect the RX line of the cable (GREEN wire if you are using Olimex USB-Serial-Cable-F) to pin 8 (TX line) of Raspberry Pi, +* Connect the TX line of the cable (RED wire if you are using Olimex USB-Serial-Cable-F) to pin 10 (RX line) of Raspberry Pi. + +![Olimex USB-Serial-Cable-F attached to Raspberry PI 2 for debugging through the serial console](images/RaspberryPi2-ModelB-debug-serial-cable.jpg) + +* Plug the USB connector of the cable to your computer and use your favorite tool for serial communication, for example on Ubuntu and other Linux distributions you may use screen: + +``` +sudo screen /dev/ttyUSB0 115200 +``` + +Pay attention that the colours of the cable may vary depending on the vendor. If you have USB console cable from Adafruit please have a look [here](https://learn.adafruit.com/adafruits-raspberry-pi-lesson-5-using-a-console-cable/connect-the-lead). diff --git a/getting-started/images/RaspberryPi2-ModelB-debug-serial-cable.jpg b/getting-started/images/RaspberryPi2-ModelB-debug-serial-cable.jpg Binary files differnew file mode 100644 index 0000000..e8026d6 --- /dev/null +++ b/getting-started/images/RaspberryPi2-ModelB-debug-serial-cable.jpg diff --git a/getting-started/machines/porter.md b/getting-started/machines/porter.md new file mode 100644 index 0000000..07650da --- /dev/null +++ b/getting-started/machines/porter.md @@ -0,0 +1,218 @@ +# Building the AGL Demo Platform for Renesas Porter + +* Download Renesas [graphics drivers with a "click through" license from Renesas website](https://www.renesas.com/en-eu/solutions/automotive/rcar-demoboard.html) in directory ~/Downloads (or $XDG_DOWNLOAD_DIR). + +* To build AGL demo platform for Renesas Porter board use machine **porter** and feature **agl-demo**: + +``` +source meta-agl/scripts/aglsetup.sh -m porter agl-demo agl-netboot agl-appfw-smack +bitbake agl-demo-platform +``` + +# Booting AGL Demo Platform on Renesas Porter + +## Deployment + +### On the host + +* Plug microSD card and get its associated device by either running *dmesg | tail -15* or *lsblk*, for example: + +``` +dmesg | tail -15 +[ 1971.462160] sd 6:0:0:0: [sdc] Mode Sense: 03 00 00 00 +[ 1971.462277] sd 6:0:0:0: [sdc] No Caching mode page found +[ 1971.462278] sd 6:0:0:0: [sdc] Assuming drive cache: write through +[ 1971.463870] sdc: sdc1 sdc2 +``` + +``` +lsblk +NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT +sda 8:0 0 167,7G 0 disk +├─sda1 8:1 0 512M 0 part /boot/efi +├─sda2 8:2 0 159,3G 0 part / +└─sda3 8:3 0 7,9G 0 part [SWAP] +sdb 8:16 0 931,5G 0 disk +└─sdb1 8:17 0 931,5G 0 part /media/storage +sdc 8:32 1 14,9G 0 disk +├─sdc1 8:33 1 40M 0 part +└─sdc2 8:34 1 788M 0 part +``` +*Note: In the **examples** above, 'sdc' corresponds to the microSD card.* + +* Create EXT3 partition on the SD-card using fdisk or another application. For **example**, if the microSD card is */dev/sdc*: + +``` +sudo fdisk /dev/sdc + +Welcome to fdisk (util-linux 2.27.1). +Changes will remain in memory only, until you decide to write them. +Be careful before using the write command. + + +Command (m for help): o +Created a new DOS disklabel with disk identifier 0x96e5850d. + +Command (m for help): n +Partition type + p primary (0 primary, 0 extended, 4 free) + e extended (container for logical partitions) +Select (default p): + +Using default response p. +Partition number (1-4, default 1): +First sector (2048-31291391, default 2048): +Last sector, +sectors or +size{K,M,G,T,P} (2048-31291391, default 31291391): + +Created a new partition 1 of type 'Linux' and of size 14,9 GiB. + +Command (m for help): w +The partition table has been altered. +Calling ioctl() to re-read partition table. +Syncing disks. +``` +* Initialize the ext3 partition using “mke2fs”, for **example** if the microSD card is associated with *sdc*: + +``` +sudo mke2fs -t ext3 /dev/sdc1 +mke2fs 1.42.13 (17-May-2015) +Creating filesystem with 3911168 4k blocks and 979200 inodes +Filesystem UUID: 690804b9-6c7d-4bbb-b1c1-e9357efabc52 +Superblock backups stored on blocks: + 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208 + +Allocating group tables: done +Writing inode tables: done +Creating journal (32768 blocks): done +Writing superblocks and filesystem accounting information: done +``` + +* Mount the microSD card partition, for example **example** if the microSD card is associated with *sdc*: + +``` +mkdir /tmp/agl +sudo mount /dev/sdc1 /tmp/agl/ +``` + +*Note: Please replace /dev/sdc with the actual path for your microSD card.* + +* Go to your build directory: + +``` +cd $BUILDDIR/tmp/deploy/images/porter +``` + +* Make sure the filesystem is empty: + +``` +sudo rm -rf /tmp/agl/* +``` + +* Verify that **tar** version is 1.28 or newer: + +``` +tar --version +tar (GNU tar) 1.28 +Copyright (C) 2014 Free Software Foundation, Inc. +License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>. +This is free software: you are free to change and redistribute it. +There is NO WARRANTY, to the extent permitted by law. + +Written by John Gilmore and Jay Fenlason. +``` + +* Copy Automotive Grade Linux (AGL) files onto the mircoSD card by extracting the root file system archive: + +``` +sudo tar --extract --numeric-owner --preserve-permissions --preserve-order --totals \ + --directory=/tmp/agl --file=agl-demo-platform-porter.tar.bz2 +``` + +* Copy Kernel Image and Device Tree Blob file into the **boot** directory: + +``` +sudo cp uImage+dtb /tmp/agl/boot/ +``` + +* Ensure the changes have been written to the disk: + +``` +sync +``` + +* Unmount the micrSD card: + +``` +sudo umount /tmp/agl +``` + +* Plug the microSD card in Renesas Porter board. + +### To access the shell (serial) + +* With the Porter board powered off, connect the 'Debug Serial 0' port on the board (for Porter mini-USB port close to on/off switch) with the host PC using the USB cable. +* Use **screen** to access the serial debug console (may needs to *apt-get install screen*): + +``` +sudo screen /dev/ttyUSB0 38400 +``` + +*Note: Alternatively, start a terminal emulator, such as 'minicom' or 'picocom', on the host, connecting to the USB serial port (/dev/ttyUSB0) with 38400, 8n1 settings.* + +* Power on the Porter board to see a shell on the console + +### On the target board + +It is assumed that the Renesas Porter board already has u-boot running as second stage boot loader. + +### U-Boot configurations + +Follow the steps below to configure boot from microSD card and to set screen resolution: + +* Power up the board and, using your preferred terminal emulator, stop the board's autoboot and type **print** to check the environment: + +``` +print +``` + +* Verify that the ethaddr environment variable is set to the same MAC address value shown on the label on top of the RJ45 Ethernet connector. If not please set it using the following command: + +``` +setenv ethaddr <MAC address> +``` + +For example: + +``` +setenv ethaddr 2e:09:0a:00:75:b5 +``` + +* Set the follow environment variables: + +``` +setenv bootargs_console 'console=ttySC6,38400 ignore_loglevel' +setenv bootargs_video 'vmalloc=384M video=HDMI-A-1:1920x1080-32@60' +setenv bootargs_root 'root=/dev/mmcblk0p1 rootdelay=3 rw rootfstype=ext3 rootwait' +setenv bootmmc '1:1' +setenv bootcmd_sd 'ext4load mmc ${bootmmc} 0x40007fc0 boot/uImage+dtb' +setenv bootcmd 'setenv bootargs ${bootargs_console} ${bootargs_video} ${bootargs_root}; run bootcmd_sd; bootm 0x40007fc0' +``` +**WARNINGS:** + +If no display shows up when booting, e.g. for a non-full HD screen, replace **1920x1080** value in the **bootargs_video** variable with lower screen resolution such as **1024x768**. Unfortunately for the moment there are no universally supported setting. + +Depending on your board (Porter rev B or rev C, Koelsch etc.), the SD card slots may differ. Try setting **bootmmc** to **0:1** or **2:1** depending on the slot and card format. + +For Renesas Porter Rev 1.0 use screen resolution **1024x768** and set **bootmmc** to **2:1**. + +* Save the environment variables: + +``` +saveenv +``` + +* Reboot: + +``` +reset +``` diff --git a/getting-started/machines/qemu.md b/getting-started/machines/qemu.md new file mode 100644 index 0000000..a9f6f5c --- /dev/null +++ b/getting-started/machines/qemu.md @@ -0,0 +1,8 @@ +# Building the AGL Demo Platform for QEMU + +To build the QEMU version of the AGL demo platform use machine **qemux86-64** and feature **agl-demo**: + +``` +source meta-agl/scripts/aglsetup.sh -m qemux86-64 agl-demo agl-netboot agl-appfw-smack +bitbake agl-demo-platform +``` diff --git a/getting-started/machines/raspberrypi.md b/getting-started/machines/raspberrypi.md new file mode 100644 index 0000000..1fd5f74 --- /dev/null +++ b/getting-started/machines/raspberrypi.md @@ -0,0 +1,36 @@ +# Building the AGL Demo Platform for Raspberry Pi + +## Raspberry Pi 3 + +To build AGL demo platform for Raspberry Pi 3 use machine **raspberrypi3** and feature **agl-demo**: + +``` +source meta-agl/scripts/aglsetup.sh -m raspberrypi3 agl-demo agl-netboot agl-appfw-smack +bitbake agl-demo-platform +``` + +## Raspberry Pi 2 + +To build AGL demo platform for Raspberry Pi 2 use machine **raspberrypi2** and feature **agl-demo**: + +``` +source meta-agl/scripts/aglsetup.sh -m raspberrypi2 agl-demo agl-netboot agl-appfw-smack +bitbake agl-demo-platform +``` + +# Booting AGL Demo Platform on Raspberry Pi + +Follow the steps below to copy the image to microSD card and to boot it on Raspberry Pi 2 or 3: + +* Connect your sdcard in your linux machine. +* Copy output image from build machine to linux machine that is connected your sdcard. (Often, those are same machines) +* Output Image location in build machine for Raspberry Pi 2: *tmp/deploy/images/raspberrypi2/agl-demo-platform-raspberrypi2.rpi-sdimg* +* Output Image location in build machine for Raspberry Pi 3: *tmp/deploy/images/raspberrypi3/agl-demo-platform-raspberrypi3.rpi-sdimg* +* Unmount the microSD card and after that flash output image to it card with root user: +``` +sudo umount [sdcard device] +sudo dd if=[output image] of=[sdcard device] bs=4M +sync +``` +* Plug your microSD card into Raspberry Pi 2 or 3 and boot the board + diff --git a/getting-started/source-code.md b/getting-started/source-code.md new file mode 100644 index 0000000..a33065f --- /dev/null +++ b/getting-started/source-code.md @@ -0,0 +1,62 @@ +# Download AGL Source Code + +The AGL source code and Yocto layers are maintained on the AGL Gerrit server. For information on how to create accounts for gerrit see Getting Started with AGL. + +## Prepare Repo Tool + +AGL Uses the Repo tool for managing repositories. First you need to setup layers of AGL. You can use the commands below to prepare Repo: +``` +mkdir ~/bin +export PATH=~/bin:$PATH +curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo +chmod a+x ~/bin/repo +``` +## Download Latest Stable Release + +To download all layers for the for the latest stable release, Blowfish 2.0.2: + +``` +repo init -b blowfish -m default_blowfish_2.0.2.xml -u https://gerrit.automotivelinux.org/gerrit/AGL/AGL-repo +repo sync +``` + +## Download Latest on Blowfish Branch + +To download all layers on the current release branch which may be in the midst of testing or changes prior to the next stable release: +``` +repo init -b blowfish -u https://gerrit.automotivelinux.org/gerrit/AGL/AGL-repo +repo sync +``` +## Download Master Branch + +To download all code from master: + +``` +repo init -u https://gerrit.automotivelinux.org/gerrit/AGL/AGL-repo +repo sync +``` + +## Set up Build Environment + +Set up the development environment for the desired target hardware. AGL has created a set up script for defining the target build and desired optional features. To get a complete list of the options available run. + +``` + $ source meta-agl/scripts/aglsetup.sh -h +``` + +Once you run aglsetup.sh with your desired paramaters, you can build any target desired. + +## Features supported by aglsetup + +Here is the list of features for AGL 2.0 that can be specified in the aglsetup.sh command line: + +- in **meta-agl** + * **agl-devel**: activate development options (empty root password, debugger, strace, valgrind …) + * **agl-netboot**: enable network boot support through TFTP and NBD (see meta-netboot layer) +- in **meta-agl-extra** + * **agl-appfw-smack**: enables IoT.bzh Application Framework + SMACK + Cynara + * **agl-demo**: enable layer meta-agl-demo and meta-qt5 - required to build * agl-demo-platform + * **agl-localdev**: add a local layer named “meta-localdev” in meta directory and a local.dev.inc conf file if present + * **agl-sota**: enable SOTA components and dependencies (meta-sota, meta-filesystems, meta-ruby, meta-rust are added) + +For newer features or to get more details on a given feature, take a look at the configuration files stored for each feature and/or each machine in meta-agl/templates and meta-agl-extra/templates. diff --git a/getting-started/troubleshooting.md b/getting-started/troubleshooting.md new file mode 100644 index 0000000..b3c7f9d --- /dev/null +++ b/getting-started/troubleshooting.md @@ -0,0 +1,12 @@ +# Troubleshooting + +Due to a known bug in the upstream of meta-rust the Yocto/OE recipe for rust-cross may fail while building RVI SOTA Client or another application written in the Rust programming language. Until the complete resolution of the issue the workaround is to disable all use of the CXX11 ABI by applying the following lines to **conf/local.conf**: + +``` +LD_CXXFLAGS_append = " -D_GLIBCXX_USE_CXX11_ABI=0" +TARGET_CXXFLAGS_append = " -D_GLIBCXX_USE_CXX11_ABI=0" +CXXFLAGS_append = " -D_GLIBCXX_USE_CXX11_ABI=0" + +BUILD_CXXFLAGS_remove_pn-gcc-runtime = "-D_GLIBCXX_USE_CXX11_ABI=0" +TARGET_CXXFLAGS_remove_pn-gcc-runtime = "-D_GLIBCXX_USE_CXX11_ABI=0" CXXFLAGS_remove_pn-gcc-runtime = "-D_GLIBCXX_USE_CXX11_ABI=0" +``` diff --git a/sec-blueprint/01-overview.md b/sec-blueprint/01-overview.md new file mode 100644 index 0000000..a9f6d95 --- /dev/null +++ b/sec-blueprint/01-overview.md @@ -0,0 +1,22 @@ +--- + +title : Security BluePrint Overview +date : 2016-07-06 +category: security +tags: security, architecture, automotive, linux +layout: techdoc + +--- + +**Table of Content** + +1. TOC +{:toc} + +## Introduction + +## Scope + +## Glossary + + diff --git a/sec-blueprint/02-plateform-security.md b/sec-blueprint/02-plateform-security.md new file mode 100644 index 0000000..ae29818 --- /dev/null +++ b/sec-blueprint/02-plateform-security.md @@ -0,0 +1,33 @@ +--- + +title : platform Security +date : 2016-06-30 +categories: architecture, automotive +tags: architecture, automotive, linux +layout: techdoc + +--- + +**Table of Content** + +1. TOC +{:toc} + +## Platform Definition + +## Secure boot + +## Certificate and Key Management + +## Resource Management + +## Trust Zone + +## Platform Software Update + +## Critical Resource Protection + +## Update + +## cloud service infrastructure + diff --git a/sec-blueprint/03-security-concepts.md b/sec-blueprint/03-security-concepts.md new file mode 100644 index 0000000..af50a8c --- /dev/null +++ b/sec-blueprint/03-security-concepts.md @@ -0,0 +1,25 @@ +--- + +title : Application Security Concepts +date : 2016-06-30 +categories: architecture, automotive +tags: architecture, automotive, linux +layout: techdoc + +--- + +**Table of Content** + +1. TOC +{:toc} + +## Security Principles + +## Access Control + +## Secure Boot + +## Applications + +## Process Management + diff --git a/sec-blueprint/04-adversaries.md b/sec-blueprint/04-adversaries.md new file mode 100644 index 0000000..acf3764 --- /dev/null +++ b/sec-blueprint/04-adversaries.md @@ -0,0 +1,25 @@ +--- + +title : Adversaries +date : 2016-06-30 +categories: architecture, automotive +tags: architecture, automotive, linux +layout: techdoc + +--- + +**Table of Content** + +1. TOC +{:toc} + +## Authorised malicious project admin/developer + +## Malware developer + +## Organised crime + +## Authorised device/cloud user + +## Network mass attacker + diff --git a/sec-blueprint/04-threat-analysis.md b/sec-blueprint/04-threat-analysis.md new file mode 100644 index 0000000..c2e4372 --- /dev/null +++ b/sec-blueprint/04-threat-analysis.md @@ -0,0 +1,48 @@ +--- + +title : Treat Analysis & Coverage +date : 2016-06-30 +categories: architecture, automotive +tags: architecture, automotive, linux +layout: techdoc + +--- + +**Table of Content** + +1. TOC +{:toc} + +## Factory/Dealer installed applications + +## Factory/Dealer installed application updates + +## Factory/Dealer installed application removal + +## User installed applications + +## User installed application update + +## User installed application removal + +## Application Data security + +## Application Data upgrades + +## Vehicle bus write access by Factoy applications + +## Vehicle bus write access by User applications + +## Vehicle bus read access by Factoy applications + +## Vehicle bus read access by User applications + +## Platform software update failure due to corrupted update package + +## Platform software update failure due to corrupted invalid package + +## Attack from the Cloud + +## Man in the middle + +## Malicious CAN / USB devices diff --git a/sec-blueprint/06-attack-surfaces.md b/sec-blueprint/06-attack-surfaces.md new file mode 100644 index 0000000..b82efe1 --- /dev/null +++ b/sec-blueprint/06-attack-surfaces.md @@ -0,0 +1,36 @@ +--- + +title : Attack Surfaces +date : 2016-06-30 +categories: architecture, automotive +tags: architecture, automotive, linux +layout: techdoc + +--- + +**Table of Content** + +1. TOC +{:toc} + +## OS installation at factory Key leak risk + +## OS boot + +## OS upgrade + +## Device bus (static and autodetection) USB + +## "Wireless connections (Wifi## Bluetooth## ...)" + +## "Wired connection (Can## Serial## Eth ...)" + +## OS-Device file system + +## User data (local & cloud) + +## Application FW + +## Application Store + +## Application data (local & Cloud) diff --git a/sec-blueprint/index.md b/sec-blueprint/index.md new file mode 100644 index 0000000..9135a43 --- /dev/null +++ b/sec-blueprint/index.md @@ -0,0 +1,22 @@ +--- + +title : Security BluePrint Overview +date : 2016-07-06 +category: security +tags: security, architecture, automotive, linux +layout: techdoc + +--- + + +## [Overview](./01-overview.html) + +## [Plateform Security](./02-plateform-security.html) + +## [Security Concepts](./03-security-concepts.html) + +## [Adversaries](./04-adversaries.html) + +## [Threat Analysis](./04-threat-analysis.html) + +## [Attack Surfaces](./06-attack-surfaces.html) diff --git a/signaling/architecture.md b/signaling/architecture.md new file mode 100644 index 0000000..47d11bc --- /dev/null +++ b/signaling/architecture.md @@ -0,0 +1,361 @@ +--- +title: AGL - Message Signaling Architecture +author: Fulup Ar Foll (IoT.bzh) +date: 2016-06-30 + +categories: architecture, appfw +tags: architecture, signal, message +layout: techdoc + +--- + +**Table of Content** + +1. TOC +{:toc} + + +## Context + +Automotive applications need to understand in real time the context in which +vehicles operate. In order to do so, it is critical for automotive application +to rely on a simple, fast and secure method to access data generated by the +multiple sensors/ECU embedded in modern cars. + +This signaling problem is neither new, neither unique to the automotive and +multiple solutions often described as Message Broker or Signaling Gateway have +been around for a while. +In the context of Linux for Automotive, the "Automotive Message Broker Daemon +" (aka AMBd) has been around for few years and is pretty well known within the +Linux Automotive community. + +The present discussion is a proposal to enhance existing signaling/message +models. Our proposal relies on [[APbinder]] binder/bindings model to minimize +complexity while keeping the system fast and secure. +We propose a model with multiple transport options and a full set of security +feature to protect the agent generating the signal as well as consuming them. + +## Objectives + +Our objectives are to solve following 3 key issues: + +1. reduce as much as possible the amount of exchanged data to the meaningful subset really used by applications +2. offer a high level API that obfuscates low level and proprietary interface to improve stability in time of the code +3. hide specificities of low level implementation as well as the chosen deployment distribution model. + +To reach first objective, events emission frequency should be controlled at the lowest level it possibly can. +Aggregation, composition, treatment, filtering of signals should be supported at software level when +not supported by the hardware. + +Second objectives of offering long term stable hight level API while allowing flexibility in changing low level implementation +may look somehow conflicting. Nevertheless by isolating low level interface from high level and allowing dynamic composition +it is possible to mitigate both objectives. + + +## Architecture + +Good practice is often based on modularity with clearly separated components assembled within a common framework. +Such modularity ensures separation of duties, robustness, resilience and achievable long term maintenance. + +This document uses the term "AGENT" to define a specific instance of this proposed common framework used to host a group +of dedicated separated components that handle targeted signals/events. Each agent exposes to services/applications +the signals/events it is responsible for. + +As an example, a CAN-bus agent may want to mix non-public proprietary API with CANopen compatible devices while hiding this +complexity to applications. The goal is on one hand to isolate proprietary piece of code in such a way that it is +as transparent as possible for the remaining part of the architecture. On a second hand isolation of code related +to a specific device provides a better separation of responsibilities, keeping all specificity related to a given +component clearly isolated and much easier to test or maintain. Last but not least if needed this model may also +help to provide some proprietary code directly as binary and not as source code. + +![image](./images/signal-agent-arch.svg "Signal Agent Architecture") + +While in some cases it may be chosen to implement a single agent responsible for everything, other scenarii may chose +to split responsibility between multiple agents. Those multiple agents may run on a single ECU or on multiple ECUs. +Chosen deployment distribution strategy should not impact the development of components responsible for signals/events +capture. As well as it should have a loose impact on applications/services consuming those events. + +A distributed capable architecture may provide multiple advantages: + +- it avoids to concentrate complexity in a single big/fat component. +- it leverages naturally multiple ECUs and existing network architecture +- it simplifies security by enabling isolation and sandboxing +- it clearly separates responsibilities and simplifies resolution of conflicts + +![image](./images/distributed-arch.svg "Distributed Architecture") + +Performance matters. There is a trade-off between modularity and efficiency. +This is specially critical for signals where propagation time from one module to the other +should remain as short as possible and furthermore should consume as little computing resources as possible. + +A flexible solution should provide enough versatility to either compose modules in separate processes; +either chose a model where everything is hosted within a single process. Chosen deployment model should have minor +or no impact on development/integration processes. Deployment model should be something easy to change, it should remain +a tactical decision and never become a structuring decision. + +Nevertheless while grouping modules may improve performance and reduce resource consumption, on the other hand, +it has a clear impact on security. No one should forget that some signals have very different level of security from other ones. +Mixing everything within a single process makes all signal's handling within a single security context. +Such a decision may have a significant impact on the level on confidence one may have in the global system. + +Providing such flexibility constrains the communication model used by modules: + +- The API of integration of the modules (the API of the framework) that enables + the connection of modules must be independent of the implementation of + the communication layer +- The communication layer must be as transparent as possible, its + implementation shouldn't impact how it is used +- The cost of the abstraction for modules grouped in a same process + must be as little as possible +- The cost of separating modules with the maximum of security must remain as minimal as possible + +Another point impacting performance relates to a smart limitation on the number of emitted signals. +Improving the cost of sending a signal is one thing, reducing the number of signals is an other one. +No one should forget that the faster you ignore a useless signal the better it is. +The best way to achieve this is by doing the filtering of useless signal as close as possible +of the component generating the signal and when possible directly at the hardware level. + +To enable the right component to filter useless signals, consumer clients must describe +precisely the data they need. Then services and agent must organise their computing to provide +only expected data at the expected rate. Also, any data not required by any client should at +the minimum never be transmitted. Furthermore when possible then should even not be computed at all. + +Describing expected data in a precise but nevertheless simple manner remains a challenge. +It implies to manage: + +- requested frequency of expected data +- accuracy of data to avoid detection of inaccurate changes +- when signaling is required (raising edge, falling edge, + on maintained state, ...), +- filtering of data to avoid glitches and noise, +- composition of signals both numerically and logically (adding, + subtracting, running logical operators like AND/OR/XOR, getting the mean, ...) +- etc... + +It is critical to enable multiple features in signal queries to enable modules +to implement the best computing method. The best computing method may have an impact on +which device to query as well as on which filters should be applied. Furthermore +filtering should happen as soon as possible and obviously when possible directly at hardware level. + +## Leveraging Existing solutions + +Unfortunately, there is no existing solution ready to be integrated. Obviously some parts of required technologies to +implement such solution exist, but a significant part of the work remains to be done. If we look at the main building +blocks used in the proposed architecture. + +### Transport Solutions + +D-Bus is the standard choice for Linux, nevertheless it has some serious performance limitation due to +internal verbosity. Nevertheless because it is available and pre-integrated with almost every Linux component, D-Bus may +still remains an acceptable choice for signal with low rate of emission (i.e. HMI). + +For a faster communication, Jaguar-Land-Rover proposes a memory shared signal infrastructure. +Unfortunately this solution is far from solving all issues and has some drawbacks. +Let check the open issues it has: + +- there is no management of what requested data are. This +translate in computing data even when not needed. +- on top of shared memory, an extra side channel is required for processes to communicate with the +daemon. +- a single shared memory implies a lot of concurrency handling. This might +introduce drawbacks that otherwise would be solved through communication buffering. + +ZeroMQ, NanoMSG and equivalent libraries focused on fast communication. Some (e.g. ZeroMQ) come with +a commercial licensing model when others (e.g. NanoMSG) use an open source licensing. +Those solutions are well suited for both communicating inside a unique ECU or across several ECUs. +However, most of them are using Unix domain sockets and TCP sockets and typically do not use shared memory for inter-process communication. + +Last but not least Android binder, Kdbus and other leverage shared memory, zero copy and sit directly within Linux kernel. +While this may boost information passing between local processes, it also has some limitations. The first one is +the non support of a multi-ECU or vehicle to cloud distribution. The second one is that none of them is +approved upstream in kernel tree. This last point may create some extra burden each time a new version +of Linux kernel is needed or when porting toward a new hardware is required. + +### Query and Filtering Language + +Description language for filtering of expected data remains an almost green field where nothing really fit signal agent requirements. +Languages like Simulink or signal processing graphical languages are valuable modelling tools. Unfortunately they +cannot be inserted in the car. Furthermore those languages have many features that are not useful in proposed signal agent +context and cost of integrating such complex languages might not be justified for something as simple as a signal agent. +The same remarks apply for automation languages. + +Further investigations would be needed. Even if there is no obvious solutions fit or need. Existing solution use a different context or industry may exist or nearby solutions +might worse the value be adapted to our requirements. + +## Describing Signal Subscriptions using JSON + +JSON is a rich structured representation of data. For requested data, it allows the expression of multiple features and constraints. +JSON is both very flexible and efficient. +There are significant advantages in describing requested data at subscription time using a language like JSON. +Another advantage of JSON is that no parser is required to analyse the request. + +Here is an example of what could be a subscription specification: + +```json +{ + "define": { + "speed": { + "signal": "average-wheel-speed", + "unit": "km/h", + "accuracy": 0.5, + "filtered": "yes" + }, + "expect": { + "value": "speed", + "when": { + "cross": { "speed": [ 50, 90, 110, 130 ] } + }, + "max-rate": 1 + } +} +``` + +A generic library to handle such request definition should be provided. +This library should allow the agent to process the request, search if its business logic or any of present low level modules support requested signal. Finally it should notify the concerned lower module to optimise signal generation. + +While such an approach might not be the most common approach, organisation like [Signal-K] already uses JSON to transmit NMEA-2000 signals on boats. Others might already used it as well and some further investigations on existing solutions would be needed before moving in such a direction. + +## Naming Signal + +Naming and defining signals is something very complex. +For example just ***speed***, as a signal, is difficult to define. +What unit is used (km/h, M/h, m/s, ...)? +From which source (wheels, GPS, AccelMeter)? +How was it captured (period of measure, instantaneous, mean, filtered)? + +In order to simplify application development we should nevertheless agree on some naming convention for key signals. +Those names might be relatively complex and featured. They may include a unit, a rate, a precision, etc. + +How these names should be registered, documented and managed is out of scope of this document but +extremely important and at some point in time should be addressed. Nevertheless this issue should not prevent +from moving forward developing a modern architecture. +Developers should be warned that naming is a complex +task, and that in the future naming scheme should be redefined, and potential adjustments would be required. + +## Leveraging AGL binder + +Such a model is loosely coupled with AGL binder. Low level signal modules as well as virtual signal +components may potentially run within any hosting environment that would provide the right API with corresponding required facilities. +Nevertheless leveraging [[APbinder]] has multiple advantages. It already implements event notification to support +a messaging/signaling model for distributed agents. It enables a subscribe model responding to the requirement and finally it uses JSON +natively. + +This messaging/signalling model already enforces the notion of subscription for receiving data. +It implies that unexpected data are not sent and merely not computed. +When expected data is available, it is pushed to all waiting subscriber only one time. + +The [[APbinder]] provides transparency of communication. +It currently implements the transparency over D-Bus/Kdbus and WebSocket. +Its transparency mechanism of communication is easy to extend to other +technologies: pools of shared memory or any proprietary transport model. + +When modules are loaded by the same service agent, the [[APbinder]] provides transparently "in-memory" communication. +This in-memory communication is really efficient: on one hand, the exchanged +JSON objects are not serialized (because not streamed), on the other hand, +those JSON objects provide a high level of abstraction able to transfer any +data. + +Technically an agent is a standard [[APbinder]] service. +Therefore Signal/Agent inherits of security protection through SMACK, access +control through Cynara, transparency of API to transport layer, life cycle +management, ... Like any other [[APbinder]] service Signal/Agent is composed of a set of bindings. In signal agent specific case, those bindings are in fact the "signal modules". + +The proposed model allows to implement low level dependencies as independent signal modules. +Those modules when developed are somehow like "Lego Bricks". +They can be spread or grouped within one or multiple agents depending on +deployment constraints (performance, multi-ECU, security & isolation constraints, +...). + +The model naturally uses JSON to represent data. + +**Multi-ECU and Vehicule to Cloud interactions:** while this might not be a +show stopper for current projects, it is obvious that in the near future +Signal/Agent should support a fully distributed architectures. +Some event may come from the cloud (i.e. request to start monitoring a given +feature), some may come from SmartCity and nearby vehicles, and last but +not least some may come from another ECU within the same vehicle or from a +virtualized OS within the same ECU (e.g. cluster & IVI). +In order to do so, Signal modules should enable composition within one or more +[[APbinder]] inside the same ECU. +Furthermore they should also support chaining with the outside world. + +![image](./images/cloud-arch.svg "CLoud & Multi-ECU Architecture") + +1. Application requests Virtual Signal exactly like if it was a low level + signal +2. Agent Signal has direct relation to low level signal +3. Agent needs to proxy to an other agent inside the same ECU to access the + signal +4. Signal is not present on current ECU. Request has to be proxied to the + outside world + +## Work to be Done + +As stated before, the foundation for event signaling is already in place in +development branch of [[APbinder]]. +Nevertheless in order to provide a real added value to developers missing +components should be developed. + +- **Agent Core Components** + - Create a simple configuration model to move from low level signal + description to something more generic that could help to abstract the + hardware. + - Search for an already existing library that provide high level signal + subscription and adapt it. + If no such library exist, create it. + - Implement some form of introspection to allow application to discover + the list of signal supported by a given agent. +- **Few Common Agents** + - Provide at least a reference implementation for a generic CAN agent + - Agent simulation, most developers may not have access to physical + devices during development phase, some form of simulator would be more + than welcome. + - etc ... + +## Reusing existing/legacy code + +Whatever the final architecture will be, it is important not to forget how +to leverage existing/legacy code within the new model. +There are multiple sources for reusable code that can be classified in two +main categories: + +- **Low Level** Typically those existing code interface with CAN-BUS or any + other low level device. + Some AMBd[[6]] plugins could be a good source of input for low level + implementation. + But also more community oriented projects like: ArduPilot/Rover[[7]] + Barometer or Camera interfaces[[8]]. + +- **Virtual Signal** In many cases accessing to low level signal is not enough. + Low level information might need to be composed (i.e. GPS+Gyro+Accel). + Raw value might need to be processed (i.e.: change unit, average on the + last xx seconds, ...). + Writing this composition logic might be quite complex and reusing existing + libraries like: LibEkNav for Kalman filtering [[9]] or Vrgimbal for 3 axes + control[[10]] may help saving a lot of time. + +## Proposal + +In order to start moving forward one option would be to take a concrete example +with some existing can devices (i.e. the one from MicroChips use within ALS demo). + +An other option would be to leverage Porter+Cogent-Extension[[11]] that supports +both a GPS and a 9 axis sensor to implement a smart geoposition agent. +We could reuse some existing code like the one from Rover[[7]] to provide a +fine grain positioning service and then interface this new GeoPositioning +agent with an application like GpsNavi[[12]] to get a end-to-end demonstrator. + +[AppFw]: http://iot.bzh/download/public/2016/appfw/01_Introduction-to-AppFW-for-AGL-1.0.pdf "Application Framework" +[APcore]: http://iot.bzh/download/public/2016/appfw/03_Documentation-AppFW-Core-1.0.pdf "AppFw Core" +[APmain]: https://gerrit.automotivelinux.org/gerrit/#/q/project:src/app-framework-main "AppFw Main" +[APbinder]: https://gerrit.automotivelinux.org/gerrit/#/q/project:src/app-framework-binder "AppFw Binder" +[APsamples]: https://gerrit.automotivelinux.org/gerrit/gitweb?p=src/app-framework-binder.git;a=tree;f=bindings/samples "AppFw Samples" +[Signal-K]: http://signalk.org/overview.html +[6]: https://github.com/otcshare/automotive-message-broker +[7]: http://ardupilot.org/rover/index.html +[8]: https://github.com/ArduPilot/ardupilot/tree/master/libraries +[9]: https://bitbucket.org/jbrandmeyer/libeknav/wiki/Home +[10]: http://ardupilot.org/rover/docs/common-vrgimbal.html +[11]: http://elinux.org/R-Car/Boards/Porter:PEXT01 +[12]: https://github.com/gpsnavi/gpsnavi + diff --git a/signaling/images/agent-arch.svg b/signaling/images/agent-arch.svg new file mode 100644 index 0000000..bf3cede --- /dev/null +++ b/signaling/images/agent-arch.svg @@ -0,0 +1,352 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:ooo="http://xml.openoffice.org/svg/export" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.2" + width="121.38372mm" + height="83.266327mm" + viewBox="0 0 12138.373 8326.6327" + preserveAspectRatio="xMidYMid" + xml:space="preserve" + id="svg2" + inkscape:version="0.91 r13725" + sodipodi:docname="agent-arch.svg" + style="fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round"><metadata + id="metadata76"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="640" + inkscape:window-height="480" + id="namedview74" + showgrid="false" + inkscape:zoom="2.0293122" + inkscape:cx="211.66959" + inkscape:cy="172.27701" + inkscape:current-layer="svg2" + showguides="false" + units="mm" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /><defs + class="ClipPathGroup" + id="defs4"><clipPath + id="presentation_clip_path" + clipPathUnits="userSpaceOnUse"><rect + x="0" + y="0" + width="29700" + height="21000" + id="rect7" /></clipPath></defs><defs + class="TextShapeIndex" + id="defs9"><g + ooo:slide="id1" + ooo:id-list="id3 id4" + id="g11" /></defs><defs + class="EmbeddedBulletChars" + id="defs13"><g + id="bullet-char-template(57356)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="M 580,1141 1163,571 580,0 -4,571 580,1141 Z" + id="path16" + inkscape:connector-curvature="0" /></g><g + id="bullet-char-template(57354)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="m 8,1128 1129,0 L 1137,0 8,0 8,1128 Z" + id="path19" + inkscape:connector-curvature="0" /></g><g + id="bullet-char-template(10146)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="M 174,0 602,739 174,1481 1456,739 174,0 Z m 1184,739 -1049,607 350,-607 699,0 z" + id="path22" + inkscape:connector-curvature="0" /></g><g + id="bullet-char-template(10132)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="M 2015,739 1276,0 717,0 l 543,543 -1086,0 0,393 1086,0 -543,545 557,0 741,-742 z" + id="path25" + inkscape:connector-curvature="0" /></g><g + id="bullet-char-template(10007)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="m 0,-2 c -7,16 -16,29 -25,39 l 381,530 c -94,256 -141,385 -141,387 0,25 13,38 40,38 9,0 21,-2 34,-5 21,4 42,12 65,25 l 27,-13 111,-251 280,301 64,-25 24,25 c 21,-10 41,-24 62,-43 C 886,937 835,863 770,784 769,783 710,716 594,584 L 774,223 c 0,-27 -21,-55 -63,-84 l 16,-20 C 717,90 699,76 672,76 641,76 570,178 457,381 L 164,-76 c -22,-34 -53,-51 -92,-51 -42,0 -63,17 -64,51 -7,9 -10,24 -10,44 0,9 1,19 2,30 z" + id="path28" + inkscape:connector-curvature="0" /></g><g + id="bullet-char-template(10004)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="M 285,-33 C 182,-33 111,30 74,156 52,228 41,333 41,471 c 0,78 14,145 41,201 34,71 87,106 158,106 53,0 88,-31 106,-94 l 23,-176 c 8,-64 28,-97 59,-98 l 735,706 c 11,11 33,17 66,17 42,0 63,-15 63,-46 l 0,-122 c 0,-36 -10,-64 -30,-84 L 442,47 C 390,-6 338,-33 285,-33 Z" + id="path31" + inkscape:connector-curvature="0" /></g><g + id="bullet-char-template(9679)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="M 813,0 C 632,0 489,54 383,161 276,268 223,411 223,592 c 0,181 53,324 160,431 106,107 249,161 430,161 179,0 323,-54 432,-161 108,-107 162,-251 162,-431 0,-180 -54,-324 -162,-431 C 1136,54 992,0 813,0 Z" + id="path34" + inkscape:connector-curvature="0" /></g><g + id="bullet-char-template(8226)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="m 346,457 c -73,0 -137,26 -191,78 -54,51 -81,114 -81,188 0,73 27,136 81,188 54,52 118,78 191,78 73,0 134,-26 185,-79 51,-51 77,-114 77,-187 0,-75 -25,-137 -76,-188 -50,-52 -112,-78 -186,-78 z" + id="path37" + inkscape:connector-curvature="0" /></g><g + id="bullet-char-template(8211)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="m -4,459 1139,0 0,147 -1139,0 0,-147 z" + id="path40" + inkscape:connector-curvature="0" /></g></defs><defs + class="TextEmbeddedBitmaps" + id="defs42" /><rect + style="fill:#f9f9f9;fill-opacity:1;stroke:#0d46f0;stroke-width:11.53521824;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4209" + width="12126.839" + height="8315.0977" + x="5.7676091" + y="5.7671785" /><g + id="g44" + transform="matrix(0.48517515,0,0,0.48669202,-1304.7386,-1586.6849)"><g + id="id2" + class="Master_Slide"><g + id="bg-id2" + class="Background" /><g + id="bo-id2" + class="BackgroundObjects" /></g></g><flowRoot + transform="matrix(11.168642,0,0,9.2397608,182.65622,-257.00267)" + style="font-style:normal;font-weight:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="flowRoot3412" + xml:space="preserve"><flowRegion + id="flowRegion3414"><rect + y="418.03061" + x="34.835884" + height="229.91684" + width="305.16235" + id="rect3416" /></flowRegion><flowPara + id="flowPara3418" /></flowRoot><flowRoot + transform="matrix(11.168642,0,0,9.2397608,182.65622,-257.00267)" + style="font-style:normal;font-weight:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="flowRoot3469" + xml:space="preserve"><flowRegion + id="flowRegion3471"><rect + y="422.21091" + x="319.09671" + height="231.31027" + width="305.16235" + id="rect3473" /></flowRegion><flowPara + id="flowPara3475" /></flowRoot><flowRoot + transform="matrix(11.168642,0,0,9.2397608,182.65622,-257.00267)" + style="font-style:normal;font-weight:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="flowRoot3585" + xml:space="preserve"><flowRegion + id="flowRegion3587"><rect + y="551.80042" + x="57.130852" + height="29.262142" + width="182.54004" + id="rect3589" /></flowRegion><flowPara + id="flowPara3591" /></flowRoot><flowRoot + transform="matrix(11.168642,0,0,9.2397608,182.65622,-257.00267)" + style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="flowRoot3758" + xml:space="preserve"><flowRegion + id="flowRegion3760"><rect + style="font-size:17.5px" + y="535.07916" + x="-37.622753" + height="153.27789" + width="1096.6337" + id="rect3762" /></flowRegion><flowPara + id="flowPara3764" /></flowRoot><flowRoot + transform="matrix(11.168642,0,0,9.2397608,182.65622,-257.00267)" + style="font-style:normal;font-weight:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="flowRoot3795" + xml:space="preserve"><flowRegion + id="flowRegion3797"><rect + y="429.1781" + x="15.327789" + height="253.60524" + width="261.96585" + id="rect3799" /></flowRegion><flowPara + id="flowPara3801" /></flowRoot><flowRoot + transform="matrix(11.168642,0,0,9.2397608,182.65622,-257.00267)" + style="font-style:normal;font-weight:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="flowRoot3803" + xml:space="preserve"><flowRegion + id="flowRegion3805"><rect + y="429.1781" + x="18.11466" + height="264.75272" + width="263.35928" + id="rect3807" /></flowRegion><flowPara + id="flowPara3809" /></flowRoot><rect + y="1583.1854" + x="581.99042" + height="5947.3833" + width="10975.321" + id="rect3404-2-0-3-4" + style="fill:#ececec;fill-opacity:1;stroke:#0d46f0;stroke-width:37.69940567;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><rect + y="4912.7539" + x="2987.7664" + height="830.22308" + width="8270.1416" + id="rect3601-4" + style="fill:#c8b7b7;fill-opacity:1;stroke:#0d46f0;stroke-width:32.23088455;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><text + transform="scale(1.3775421,0.72593063)" + sodipodi:linespacing="125%" + id="text3603-9" + y="7703.9912" + x="2397.4312" + style="font-style:normal;font-weight:normal;font-size:802.91101074px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:624.48632812px" + y="7703.9912" + x="2397.4312" + id="tspan3605-9" + sodipodi:role="line">Low Level binding -1</tspan></text> +<rect + y="6037.2207" + x="2968.2161" + height="830.22308" + width="8379.0801" + id="rect3601-6-1" + style="fill:#c8b7b7;fill-opacity:1;stroke:#0d46f0;stroke-width:32.44247055;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><text + transform="scale(1.3690827,0.73041606)" + sodipodi:linespacing="125%" + id="text3603-8-1" + y="8981.5537" + x="2388.6199" + style="font-style:normal;font-weight:normal;font-size:797.98040771px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:620.65142822px" + y="8981.5537" + x="2388.6199" + id="tspan3605-8-5" + sodipodi:role="line">Low Level binding -2</tspan></text> +<rect + y="2240.5098" + x="3018.1042" + height="2536.4397" + width="8192.3262" + id="rect3601-6-5-40" + style="fill:#c8b7b7;fill-opacity:1;stroke:#0d46f0;stroke-width:56.07047653;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><flowRoot + transform="matrix(11.168642,0,0,9.2397608,182.65622,-257.00267)" + style="font-style:normal;font-weight:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="flowRoot3866" + xml:space="preserve"><flowRegion + id="flowRegion3868"><rect + y="-1.3934354" + x="-4.180306" + height="254.99867" + width="295.40829" + id="rect3870" /></flowRegion><flowPara + id="flowPara3872" /></flowRoot><flowRoot + transform="matrix(11.168642,0,0,9.2397608,182.65622,-257.00267)" + style="font-style:normal;font-weight:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="flowRoot3925" + xml:space="preserve"><flowRegion + id="flowRegion3927"><rect + y="-12.540918" + x="273.11334" + height="278.68707" + width="275.90021" + id="rect3929" /></flowRegion><flowPara + id="flowPara3931" /></flowRoot><text + transform="scale(1.0994357,0.90955752)" + sodipodi:linespacing="125%" + id="text3984" + y="8823.9551" + x="5472.9565" + style="font-style:normal;font-weight:normal;font-size:228.5667572px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:253.96304321px;text-align:center;text-anchor:middle;fill:#808080" + y="8823.9551" + x="5472.9565" + id="tspan3986" + sodipodi:role="line">Signal Agent General Architecture</tspan></text> +<text + transform="scale(1.3775421,0.72593063)" + sodipodi:linespacing="125%" + id="text3603-9-2" + y="4839.2407" + x="5035.9189" + style="font-style:normal;font-weight:normal;font-size:802.91101074px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:624.48632812px;text-align:center;text-anchor:middle" + y="4839.2407" + x="5035.9189" + id="tspan3605-9-6" + sodipodi:role="line">Virtual Signal</tspan><tspan + id="tspan3511" + style="font-size:254.46430969px;text-align:center;text-anchor:middle" + y="5255.7188" + x="5035.9189" + sodipodi:role="line">(Business Logic)</tspan></text> +<rect + y="2194.1475" + x="728.46613" + height="4643.3584" + width="2122.8428" + id="rect3601-4-3" + style="fill:#c8b7b7;fill-opacity:1;stroke:#0d46f0;stroke-width:38.61832047;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><rect + y="922.49493" + x="542.90826" + height="476.07874" + width="11009.119" + id="rect3766" + style="fill:#ececec;fill-opacity:1;stroke:#0d46f0;stroke-width:8.80722809;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><text + transform="scale(1.0004111,0.99958908)" + sodipodi:linespacing="125%" + id="text3771" + y="1274.7606" + x="5116.6187" + style="font-style:normal;font-weight:normal;font-size:307.95962524px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="1274.7606" + x="5116.6187" + id="tspan3773" + sodipodi:role="line">Access Control</tspan></text> +<rect + y="385.35165" + x="506.98282" + height="455.13141" + width="11066.355" + id="rect3775" + style="fill:#ececec;fill-opacity:1;stroke:#0d46f0;stroke-width:7.93324661;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><text + transform="scale(1.0004111,0.99958908)" + sodipodi:linespacing="125%" + id="text3771-3" + y="657.63507" + x="4469.0801" + style="font-style:normal;font-weight:normal;font-size:307.95962524px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="657.63507" + x="4469.0801" + id="tspan3773-2" + sodipodi:role="line">Transport DBUS, WebSocket, ...</tspan></text> +<text + transform="matrix(0,-1.1442354,0.87394605,0,0,0)" + sodipodi:linespacing="125%" + id="text3603-9-1" + y="1619.4939" + x="-3937.4116" + style="font-style:normal;font-weight:normal;font-size:630.57366943px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:423.33337402px;text-align:center;text-anchor:middle" + y="1619.4939" + x="-3937.4116" + id="tspan3605-9-3" + sodipodi:role="line">Publish/Subcribe</tspan><tspan + style="font-size:423.33337402px;text-align:center;text-anchor:middle" + y="2148.6606" + x="-3937.4116" + sodipodi:role="line" + id="tspan3608">Signal Exchange</tspan></text> +</svg>
\ No newline at end of file diff --git a/signaling/images/agent-sample.svg b/signaling/images/agent-sample.svg new file mode 100644 index 0000000..6fed96c --- /dev/null +++ b/signaling/images/agent-sample.svg @@ -0,0 +1,426 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:ooo="http://xml.openoffice.org/svg/export" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.2" + width="121.38372mm" + height="83.266327mm" + viewBox="0 0 12138.373 8326.6327" + preserveAspectRatio="xMidYMid" + xml:space="preserve" + id="svg2" + inkscape:version="0.91 r13725" + sodipodi:docname="agent-sample.svg" + style="fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round"><metadata + id="metadata76"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="640" + inkscape:window-height="480" + id="namedview74" + showgrid="false" + inkscape:zoom="1.4349404" + inkscape:cx="212.65515" + inkscape:cy="138.27913" + inkscape:current-layer="svg2" + showguides="false" + units="mm" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /><defs + class="ClipPathGroup" + id="defs4"><clipPath + id="presentation_clip_path" + clipPathUnits="userSpaceOnUse"><rect + x="0" + y="0" + width="29700" + height="21000" + id="rect7" /></clipPath></defs><defs + class="TextShapeIndex" + id="defs9"><g + ooo:slide="id1" + ooo:id-list="id3 id4" + id="g11" /></defs><defs + class="EmbeddedBulletChars" + id="defs13"><g + id="bullet-char-template(57356)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="M 580,1141 1163,571 580,0 -4,571 580,1141 Z" + id="path16" + inkscape:connector-curvature="0" /></g><g + id="bullet-char-template(57354)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="m 8,1128 1129,0 L 1137,0 8,0 8,1128 Z" + id="path19" + inkscape:connector-curvature="0" /></g><g + id="bullet-char-template(10146)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="M 174,0 602,739 174,1481 1456,739 174,0 Z m 1184,739 -1049,607 350,-607 699,0 z" + id="path22" + inkscape:connector-curvature="0" /></g><g + id="bullet-char-template(10132)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="M 2015,739 1276,0 717,0 l 543,543 -1086,0 0,393 1086,0 -543,545 557,0 741,-742 z" + id="path25" + inkscape:connector-curvature="0" /></g><g + id="bullet-char-template(10007)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="m 0,-2 c -7,16 -16,29 -25,39 l 381,530 c -94,256 -141,385 -141,387 0,25 13,38 40,38 9,0 21,-2 34,-5 21,4 42,12 65,25 l 27,-13 111,-251 280,301 64,-25 24,25 c 21,-10 41,-24 62,-43 C 886,937 835,863 770,784 769,783 710,716 594,584 L 774,223 c 0,-27 -21,-55 -63,-84 l 16,-20 C 717,90 699,76 672,76 641,76 570,178 457,381 L 164,-76 c -22,-34 -53,-51 -92,-51 -42,0 -63,17 -64,51 -7,9 -10,24 -10,44 0,9 1,19 2,30 z" + id="path28" + inkscape:connector-curvature="0" /></g><g + id="bullet-char-template(10004)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="M 285,-33 C 182,-33 111,30 74,156 52,228 41,333 41,471 c 0,78 14,145 41,201 34,71 87,106 158,106 53,0 88,-31 106,-94 l 23,-176 c 8,-64 28,-97 59,-98 l 735,706 c 11,11 33,17 66,17 42,0 63,-15 63,-46 l 0,-122 c 0,-36 -10,-64 -30,-84 L 442,47 C 390,-6 338,-33 285,-33 Z" + id="path31" + inkscape:connector-curvature="0" /></g><g + id="bullet-char-template(9679)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="M 813,0 C 632,0 489,54 383,161 276,268 223,411 223,592 c 0,181 53,324 160,431 106,107 249,161 430,161 179,0 323,-54 432,-161 108,-107 162,-251 162,-431 0,-180 -54,-324 -162,-431 C 1136,54 992,0 813,0 Z" + id="path34" + inkscape:connector-curvature="0" /></g><g + id="bullet-char-template(8226)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="m 346,457 c -73,0 -137,26 -191,78 -54,51 -81,114 -81,188 0,73 27,136 81,188 54,52 118,78 191,78 73,0 134,-26 185,-79 51,-51 77,-114 77,-187 0,-75 -25,-137 -76,-188 -50,-52 -112,-78 -186,-78 z" + id="path37" + inkscape:connector-curvature="0" /></g><g + id="bullet-char-template(8211)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="m -4,459 1139,0 0,147 -1139,0 0,-147 z" + id="path40" + inkscape:connector-curvature="0" /></g></defs><defs + class="TextEmbeddedBitmaps" + id="defs42" /><rect + style="fill:#f9f9f9;fill-opacity:1;stroke:#0d46f0;stroke-width:11.53521824;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4209" + width="12126.839" + height="8315.0977" + x="5.7676091" + y="5.7671785" /><g + id="g44" + transform="matrix(0.48517515,0,0,0.48669202,-1304.7386,-1586.6849)"><g + id="id2" + class="Master_Slide"><g + id="bg-id2" + class="Background" /><g + id="bo-id2" + class="BackgroundObjects" /></g></g><flowRoot + transform="matrix(11.168642,0,0,9.2397608,182.65622,-257.00267)" + style="font-style:normal;font-weight:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="flowRoot3412" + xml:space="preserve"><flowRegion + id="flowRegion3414"><rect + y="418.03061" + x="34.835884" + height="229.91684" + width="305.16235" + id="rect3416" /></flowRegion><flowPara + id="flowPara3418" /></flowRoot><flowRoot + transform="matrix(11.168642,0,0,9.2397608,182.65622,-257.00267)" + style="font-style:normal;font-weight:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="flowRoot3469" + xml:space="preserve"><flowRegion + id="flowRegion3471"><rect + y="422.21091" + x="319.09671" + height="231.31027" + width="305.16235" + id="rect3473" /></flowRegion><flowPara + id="flowPara3475" /></flowRoot><flowRoot + transform="matrix(11.168642,0,0,9.2397608,182.65622,-257.00267)" + style="font-style:normal;font-weight:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="flowRoot3585" + xml:space="preserve"><flowRegion + id="flowRegion3587"><rect + y="551.80042" + x="57.130852" + height="29.262142" + width="182.54004" + id="rect3589" /></flowRegion><flowPara + id="flowPara3591" /></flowRoot><flowRoot + transform="matrix(11.168642,0,0,9.2397608,182.65622,-257.00267)" + style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="flowRoot3758" + xml:space="preserve"><flowRegion + id="flowRegion3760"><rect + style="font-size:17.5px" + y="535.07916" + x="-37.622753" + height="153.27789" + width="1096.6337" + id="rect3762" /></flowRegion><flowPara + id="flowPara3764" /></flowRoot><flowRoot + transform="matrix(11.168642,0,0,9.2397608,182.65622,-257.00267)" + style="font-style:normal;font-weight:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="flowRoot3795" + xml:space="preserve"><flowRegion + id="flowRegion3797"><rect + y="429.1781" + x="15.327789" + height="253.60524" + width="261.96585" + id="rect3799" /></flowRegion><flowPara + id="flowPara3801" /></flowRoot><flowRoot + transform="matrix(11.168642,0,0,9.2397608,182.65622,-257.00267)" + style="font-style:normal;font-weight:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="flowRoot3803" + xml:space="preserve"><flowRegion + id="flowRegion3805"><rect + y="429.1781" + x="18.11466" + height="264.75272" + width="263.35928" + id="rect3807" /></flowRegion><flowPara + id="flowPara3809" /></flowRoot><rect + y="1583.1854" + x="581.99042" + height="5947.3833" + width="10975.321" + id="rect3404-2-0-3-4" + style="fill:#ececec;fill-opacity:1;stroke:#0d46f0;stroke-width:37.69940567;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><rect + y="5227.4399" + x="2987.7664" + height="515.53711" + width="8270.1416" + id="rect3601-4" + style="fill:#c8b7b7;fill-opacity:1;stroke:#0d46f0;stroke-width:25.39830971;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><text + transform="scale(1.3775421,0.72593063)" + sodipodi:linespacing="125%" + id="text3603-9" + y="7703.9912" + x="2397.4312" + style="font-style:normal;font-weight:normal;font-size:493.88891558px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;" + xml:space="preserve"><tspan + style="font-size:388.05557653px" + y="7703.9912" + x="2397.4312" + id="tspan3605-9" + sodipodi:role="line">GPS NMEA</tspan></text> +<rect + y="1965.1595" + x="3018.1042" + height="3106.8079" + width="8192.3262" + id="rect3601-6-5-40" + style="fill:#c8b7b7;fill-opacity:1;stroke:#0d46f0;stroke-width:62.05534363;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><flowRoot + transform="matrix(11.168642,0,0,9.2397608,182.65622,-257.00267)" + style="font-style:normal;font-weight:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="flowRoot3866" + xml:space="preserve"><flowRegion + id="flowRegion3868"><rect + y="-1.3934354" + x="-4.180306" + height="254.99867" + width="295.40829" + id="rect3870" /></flowRegion><flowPara + id="flowPara3872" /></flowRoot><flowRoot + transform="matrix(11.168642,0,0,9.2397608,182.65622,-257.00267)" + style="font-style:normal;font-weight:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="flowRoot3925" + xml:space="preserve"><flowRegion + id="flowRegion3927"><rect + y="-12.540918" + x="273.11334" + height="278.68707" + width="275.90021" + id="rect3929" /></flowRegion><flowPara + id="flowPara3931" /></flowRoot><text + transform="scale(1.0994357,0.90955752)" + sodipodi:linespacing="125%" + id="text3984" + y="8823.9551" + x="5472.9565" + style="font-style:normal;font-weight:normal;font-size:228.5667572px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:253.96304321px;text-align:center;text-anchor:middle;fill:#808080" + y="8823.9551" + x="5472.9565" + id="tspan3986" + sodipodi:role="line">Geolocalisation Signal Agent</tspan></text> +<text + transform="scale(1.3775421,0.72593063)" + sodipodi:linespacing="125%" + id="text3603-9-2" + y="3551.1707" + x="4996.1279" + style="font-style:normal;font-weight:normal;font-size:802.91101074px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:624.48632812px;text-align:center;text-anchor:middle" + y="3551.1707" + x="4996.1279" + id="tspan3605-9-6" + sodipodi:role="line">Geolocalisation</tspan><tspan + id="tspan3511" + style="font-size:254.46430969px;text-align:center;text-anchor:middle" + y="3967.6487" + x="4996.1279" + sodipodi:role="line">(Business Logic)</tspan></text> +<rect + y="1938.4651" + x="728.46613" + height="5174.3911" + width="2122.8428" + id="rect3601-4-3" + style="fill:#c8b7b7;fill-opacity:1;stroke:#0d46f0;stroke-width:40.76682663;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><rect + y="922.49493" + x="542.90826" + height="476.07874" + width="11009.119" + id="rect3766" + style="fill:#ececec;fill-opacity:1;stroke:#0d46f0;stroke-width:8.80722809;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><text + transform="scale(1.0004111,0.99958908)" + sodipodi:linespacing="125%" + id="text3771" + y="1274.7606" + x="5116.6187" + style="font-style:normal;font-weight:normal;font-size:307.95962524px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="1274.7606" + x="5116.6187" + id="tspan3773" + sodipodi:role="line">Access Control</tspan></text> +<rect + y="385.35165" + x="506.98282" + height="455.13141" + width="11066.355" + id="rect3775" + style="fill:#ececec;fill-opacity:1;stroke:#0d46f0;stroke-width:7.93324661;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><text + transform="scale(1.0004111,0.99958908)" + sodipodi:linespacing="125%" + id="text3771-3" + y="657.63507" + x="4469.0801" + style="font-style:normal;font-weight:normal;font-size:307.95962524px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="657.63507" + x="4469.0801" + id="tspan3773-2" + sodipodi:role="line">Transport DBUS, WebSocket, ...</tspan></text> +<text + transform="matrix(0,-1.1442354,0.87394605,0,0,0)" + sodipodi:linespacing="125%" + id="text3603-9-1" + y="1619.4939" + x="-3937.4116" + style="font-style:normal;font-weight:normal;font-size:630.57366943px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:423.33337402px;text-align:center;text-anchor:middle" + y="1619.4939" + x="-3937.4116" + id="tspan3605-9-3" + sodipodi:role="line">Publish/Subcribe</tspan><tspan + style="font-size:423.33337402px;text-align:center;text-anchor:middle" + y="2148.6606" + x="-3937.4116" + sodipodi:role="line" + id="tspan3608">Signal Exchange</tspan></text> +<flowRoot + xml:space="preserve" + id="flowRoot3416" + style="fill:black;stroke:none;stroke-opacity:1;stroke-width:1px;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;font-family:sans-serif;font-style:normal;font-weight:normal;font-size:15px;line-height:125%;letter-spacing:0px;word-spacing:0px;"><flowRegion + id="flowRegion3418"><rect + id="rect3420" + width="267.57834" + height="38.436668" + x="121.22334" + y="120.10205" + style="font-size:15px;" /></flowRegion><flowPara + id="flowPara3422" /></flowRoot><rect + y="5875.4932" + x="2975.7939" + height="515.53717" + width="8270.1416" + id="rect3601-4-38" + style="fill:#c8b7b7;fill-opacity:1;fill-rule:evenodd;stroke:#0d46f0;stroke-width:25.39830971;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><text + transform="scale(1.377542,0.72593067)" + sodipodi:linespacing="125%" + id="text3603-9-9" + y="8596.7129" + x="2388.7334" + style="font-style:normal;font-weight:normal;font-size:493.88891602px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:388.05554199px" + y="8596.7129" + x="2388.7334" + id="tspan3605-9-7" + sodipodi:role="line">Accel + Gyro</tspan></text> +<rect + y="6552.8252" + x="2975.7939" + height="515.53717" + width="8270.1416" + id="rect3601-4-2" + style="fill:#c8b7b7;fill-opacity:1;fill-rule:evenodd;stroke:#0d46f0;stroke-width:25.39830971;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><text + transform="scale(1.377542,0.72593067)" + sodipodi:linespacing="125%" + id="text3603-9-20" + y="9529.7715" + x="2388.7334" + style="font-style:normal;font-weight:normal;font-size:493.88891602px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:388.05554199px" + y="9529.7715" + x="2388.7334" + id="tspan3605-9-4" + sodipodi:role="line">ABS + others</tspan></text> +<text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:635.00006104px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="6119.4087" + y="3595.3882" + id="text3455-8" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan3457-6" + x="6119.4087" + y="3595.3882" + style="font-size:388.0555774px">IsFasterThan</tspan><tspan + sodipodi:role="line" + x="6119.4087" + y="4080.4578" + id="tspan3459-3" + style="font-size:388.0555774px">isOutOfZone</tspan><tspan + sodipodi:role="line" + x="6119.4087" + y="4565.5273" + id="tspan3461-9" + style="font-size:388.0555774px">etc...</tspan></text> +<text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:635.00006104px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="3512.6548" + y="3552.9075" + id="text3455-8-5" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan3457-6-2" + x="3512.6548" + y="3552.9075" + style="font-size:388.05557251px">GetPosition</tspan><tspan + sodipodi:role="line" + x="3512.6548" + y="4037.9771" + id="tspan3459-3-9" + style="font-size:388.05557251px">GetSpeed</tspan><tspan + sodipodi:role="line" + x="3512.6548" + y="4523.0464" + id="tspan3461-9-6" + style="font-size:388.05557251px">IsMoving...</tspan></text> +</svg>
\ No newline at end of file diff --git a/signaling/images/cloud-arch.svg b/signaling/images/cloud-arch.svg new file mode 100644 index 0000000..3cecbdc --- /dev/null +++ b/signaling/images/cloud-arch.svg @@ -0,0 +1,837 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:ooo="http://xml.openoffice.org/svg/export" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.2" + width="210mm" + height="148mm" + viewBox="0 0 21000 14800" + preserveAspectRatio="xMidYMid" + xml:space="preserve" + id="svg2" + inkscape:version="0.91 r13725" + sodipodi:docname="cloud-arch.svg" + style="fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round"><metadata + id="metadata76"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="640" + inkscape:window-height="480" + id="namedview74" + showgrid="false" + inkscape:zoom="1.7924925" + inkscape:cx="372.04724" + inkscape:cy="262.20472" + inkscape:current-layer="svg2" /><defs + class="ClipPathGroup" + id="defs4"><marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0.0" + refX="0.0" + id="Arrow1Lend" + style="overflow:visible;" + inkscape:isstock="true"><path + id="path4658" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#e60d0d;stroke-width:1pt;stroke-opacity:1;fill:#e60d0d;fill-opacity:1" + transform="scale(0.8) rotate(180) translate(12.5,0)" /></marker><clipPath + id="presentation_clip_path" + clipPathUnits="userSpaceOnUse"><rect + x="0" + y="0" + width="29700" + height="21000" + id="rect7" /></clipPath></defs><defs + class="TextShapeIndex" + id="defs9"><g + ooo:slide="id1" + ooo:id-list="id3 id4" + id="g11" /></defs><defs + class="EmbeddedBulletChars" + id="defs13"><g + id="bullet-char-template(57356)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="M 580,1141 1163,571 580,0 -4,571 580,1141 Z" + id="path16" + inkscape:connector-curvature="0" /></g><g + id="bullet-char-template(57354)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="m 8,1128 1129,0 L 1137,0 8,0 8,1128 Z" + id="path19" + inkscape:connector-curvature="0" /></g><g + id="bullet-char-template(10146)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="M 174,0 602,739 174,1481 1456,739 174,0 Z m 1184,739 -1049,607 350,-607 699,0 z" + id="path22" + inkscape:connector-curvature="0" /></g><g + id="bullet-char-template(10132)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="M 2015,739 1276,0 717,0 l 543,543 -1086,0 0,393 1086,0 -543,545 557,0 741,-742 z" + id="path25" + inkscape:connector-curvature="0" /></g><g + id="bullet-char-template(10007)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="m 0,-2 c -7,16 -16,29 -25,39 l 381,530 c -94,256 -141,385 -141,387 0,25 13,38 40,38 9,0 21,-2 34,-5 21,4 42,12 65,25 l 27,-13 111,-251 280,301 64,-25 24,25 c 21,-10 41,-24 62,-43 C 886,937 835,863 770,784 769,783 710,716 594,584 L 774,223 c 0,-27 -21,-55 -63,-84 l 16,-20 C 717,90 699,76 672,76 641,76 570,178 457,381 L 164,-76 c -22,-34 -53,-51 -92,-51 -42,0 -63,17 -64,51 -7,9 -10,24 -10,44 0,9 1,19 2,30 z" + id="path28" + inkscape:connector-curvature="0" /></g><g + id="bullet-char-template(10004)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="M 285,-33 C 182,-33 111,30 74,156 52,228 41,333 41,471 c 0,78 14,145 41,201 34,71 87,106 158,106 53,0 88,-31 106,-94 l 23,-176 c 8,-64 28,-97 59,-98 l 735,706 c 11,11 33,17 66,17 42,0 63,-15 63,-46 l 0,-122 c 0,-36 -10,-64 -30,-84 L 442,47 C 390,-6 338,-33 285,-33 Z" + id="path31" + inkscape:connector-curvature="0" /></g><g + id="bullet-char-template(9679)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="M 813,0 C 632,0 489,54 383,161 276,268 223,411 223,592 c 0,181 53,324 160,431 106,107 249,161 430,161 179,0 323,-54 432,-161 108,-107 162,-251 162,-431 0,-180 -54,-324 -162,-431 C 1136,54 992,0 813,0 Z" + id="path34" + inkscape:connector-curvature="0" /></g><g + id="bullet-char-template(8226)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="m 346,457 c -73,0 -137,26 -191,78 -54,51 -81,114 -81,188 0,73 27,136 81,188 54,52 118,78 191,78 73,0 134,-26 185,-79 51,-51 77,-114 77,-187 0,-75 -25,-137 -76,-188 -50,-52 -112,-78 -186,-78 z" + id="path37" + inkscape:connector-curvature="0" /></g><g + id="bullet-char-template(8211)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="m -4,459 1139,0 0,147 -1139,0 0,-147 z" + id="path40" + inkscape:connector-curvature="0" /></g></defs><defs + class="TextEmbeddedBitmaps" + id="defs42" /><g + id="g44" + transform="translate(0,-6200.0003)"><g + id="id2" + class="Master_Slide"><g + id="bg-id2" + class="Background" /><g + id="bo-id2" + class="BackgroundObjects" /></g></g><flowRoot + transform="matrix(19.550167,0,0,18.598251,96.671693,565.62836)" + style="font-style:normal;font-weight:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="flowRoot3412" + xml:space="preserve"><flowRegion + id="flowRegion3414"><rect + y="418.03061" + x="34.835884" + height="229.91684" + width="305.16235" + id="rect3416" /></flowRegion><flowPara + id="flowPara3418" /></flowRoot><flowRoot + transform="matrix(19.550167,0,0,18.598251,96.671693,565.62836)" + style="font-style:normal;font-weight:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="flowRoot3469" + xml:space="preserve"><flowRegion + id="flowRegion3471"><rect + y="422.21091" + x="319.09671" + height="231.31027" + width="305.16235" + id="rect3473" /></flowRegion><flowPara + id="flowPara3475" /></flowRoot><flowRoot + transform="matrix(19.550167,0,0,18.598251,96.671693,565.62836)" + style="font-style:normal;font-weight:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="flowRoot3585" + xml:space="preserve"><flowRegion + id="flowRegion3587"><rect + y="551.80042" + x="57.130852" + height="29.262142" + width="182.54004" + id="rect3589" /></flowRegion><flowPara + id="flowPara3591" /></flowRoot><text + transform="scale(1.0252722,0.97535075)" + sodipodi:linespacing="125%" + id="text3643" + y="12935.159" + x="1366.2301" + style="font-style:normal;font-weight:normal;font-size:429.03607178px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:333.69470215px" + y="12935.159" + x="1366.2301" + id="tspan3645" + sodipodi:role="line" /></text> +<flowRoot + transform="matrix(19.550167,0,0,18.598251,96.671693,565.62836)" + style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="flowRoot3758" + xml:space="preserve"><flowRegion + id="flowRegion3760"><rect + style="font-size:17.5px" + y="535.07916" + x="-37.622753" + height="153.27789" + width="1096.6337" + id="rect3762" /></flowRegion><flowPara + id="flowPara3764" /></flowRoot><flowRoot + transform="matrix(19.550167,0,0,18.598251,96.671693,565.62836)" + style="font-style:normal;font-weight:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="flowRoot3795" + xml:space="preserve"><flowRegion + id="flowRegion3797"><rect + y="429.1781" + x="15.327789" + height="253.60524" + width="261.96585" + id="rect3799" /></flowRegion><flowPara + id="flowPara3801" /></flowRoot><flowRoot + transform="matrix(19.550167,0,0,18.598251,96.671693,565.62836)" + style="font-style:normal;font-weight:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="flowRoot3803" + xml:space="preserve"><flowRegion + id="flowRegion3805"><rect + y="429.1781" + x="18.11466" + height="264.75272" + width="263.35928" + id="rect3807" /></flowRegion><flowPara + id="flowPara3809" /></flowRoot><flowRoot + transform="matrix(19.550167,0,0,18.598251,96.671693,565.62836)" + style="font-style:normal;font-weight:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="flowRoot3866" + xml:space="preserve"><flowRegion + id="flowRegion3868"><rect + y="-1.3934354" + x="-4.180306" + height="254.99867" + width="295.40829" + id="rect3870" /></flowRegion><flowPara + id="flowPara3872" /></flowRoot><flowRoot + transform="matrix(19.550167,0,0,18.598251,96.671693,565.62836)" + style="font-style:normal;font-weight:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="flowRoot3925" + xml:space="preserve"><flowRegion + id="flowRegion3927"><rect + y="-12.540918" + x="273.11334" + height="278.68707" + width="275.90021" + id="rect3929" /></flowRegion><flowPara + id="flowPara3931" /></flowRoot><flowRoot + xml:space="preserve" + id="flowRoot3624" + style="fill:black;stroke:none;stroke-opacity:1;stroke-width:1px;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;font-family:sans-serif;font-style:normal;font-weight:normal;font-size:22.5px;line-height:125%;letter-spacing:0px;word-spacing:0px"><flowRegion + id="flowRegion3626"><rect + id="rect3628" + width="438.93213" + height="222.94966" + x="373.44067" + y="283.34512" /></flowRegion><flowPara + id="flowPara3630"></flowPara></flowRoot><flowRoot + xml:space="preserve" + id="flowRoot3727" + style="fill:black;stroke:none;stroke-opacity:1;stroke-width:1px;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;font-family:sans-serif;font-style:normal;font-weight:normal;font-size:22.5px;line-height:125%;letter-spacing:0px;word-spacing:0px"><flowRegion + id="flowRegion3729"><rect + id="rect3731" + width="309.34265" + height="86.39299" + x="183.93347" + y="287.52542" /></flowRegion><flowPara + id="flowPara3733"></flowPara></flowRoot><rect + style="fill:#f9f9f9;fill-opacity:1;fill-rule:evenodd;stroke:#0d46f0;stroke-width:11.09315586;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4209-2" + width="7078.6519" + height="13174.16" + x="353.93292" + y="623.03278" /><rect + y="7775.2446" + x="681.18488" + height="829.29474" + width="6241.1489" + id="rect3766-3" + style="fill:#ececec;fill-opacity:1;fill-rule:evenodd;stroke:#0d46f0;stroke-width:8.75205994;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><text + transform="scale(0.77020508,1.2983555)" + sodipodi:linespacing="125%" + id="text3771-5" + y="6457.0015" + x="2641.9692" + style="font-style:normal;font-weight:normal;font-size:322.30053711px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="6457.0015" + x="2641.9692" + id="tspan3773-9" + sodipodi:role="line" + style="font-size:423.33334351px">Access Control</tspan></text> +<rect + y="5974.2505" + x="698.80206" + height="1451.266" + width="6247.9668" + id="rect3775-0" + style="fill:#ececec;fill-opacity:1;fill-rule:evenodd;stroke:#0d46f0;stroke-width:10.64444637;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><text + transform="scale(0.77020508,1.2983555)" + sodipodi:linespacing="125%" + id="text3771-3-5" + y="5219.2925" + x="2919.437" + style="font-style:normal;font-weight:normal;font-size:322.30053711px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="5219.2925" + x="2919.437" + id="tspan3773-2-7" + sodipodi:role="line" + style="font-size:423.33334351px">Transport .</tspan></text> +<text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:635.00006104px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="1690.1088" + y="3058.1436" + id="text3804-7" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan3806-3" + x="1690.1088" + y="3058.1436" + style="font-size:705.5557251px">Custer ECU</tspan></text> +<rect + style="fill:#f9f9f9;fill-opacity:1;fill-rule:evenodd;stroke:#0d46f0;stroke-width:14.62820435;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4209" + width="12308.989" + height="13174.16" + x="7972.1465" + y="608.7843" /><rect + y="8815.7578" + x="15116.713" + height="4466.5317" + width="4364.9365" + id="rect3404-2-0-3" + style="fill:#ececec;fill-opacity:1;fill-rule:evenodd;stroke:#0d46f0;stroke-width:20.60331535;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><rect + y="7588.4058" + x="8527.583" + height="829.29474" + width="11059.363" + id="rect3766" + style="fill:#ececec;fill-opacity:1;fill-rule:evenodd;stroke:#0d46f0;stroke-width:11.65045929;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><text + transform="scale(1.0252722,0.97535075)" + sodipodi:linespacing="125%" + id="text3771" + y="8403.792" + x="10656.977" + style="font-style:normal;font-weight:normal;font-size:429.03607178px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="8403.792" + x="10656.977" + id="tspan3773" + sodipodi:role="line" + style="font-size:423.33334351px">Access Control</tspan></text> +<rect + y="5787.4116" + x="8558.8018" + height="1451.266" + width="11071.445" + id="rect3775" + style="fill:#ececec;fill-opacity:1;fill-rule:evenodd;stroke:#0d46f0;stroke-width:14.16954422;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><text + transform="scale(1.0252722,0.97535075)" + sodipodi:linespacing="125%" + id="text3771-3" + y="6489.6064" + x="10988.246" + style="font-style:normal;font-weight:normal;font-size:429.03607178px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="6489.6064" + x="10988.246" + id="tspan3773-2" + sodipodi:role="line" + style="font-size:423.33334351px">Transport DBUS, WebSocket, ...</tspan></text> +<rect + y="1056.3405" + x="8664.6523" + height="4269.9028" + width="4364.9365" + id="rect3404-2-0-3-4" + style="fill:#ececec;fill-opacity:1;fill-rule:evenodd;stroke:#0d46f0;stroke-width:20.14470482;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><text + transform="scale(1.0252722,0.97535075)" + sodipodi:linespacing="125%" + id="text3406-4-3" + y="2092.5437" + x="10662.915" + style="font-style:normal;font-weight:normal;font-size:429.03607178px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + id="tspan3446-2-2" + y="2092.5437" + x="10662.915" + sodipodi:role="line">Navigation</tspan><tspan + id="tspan3864" + y="2628.8386" + x="10662.915" + sodipodi:role="line">Service</tspan></text> +<rect + y="2983.9683" + x="8885.7031" + height="596.05573" + width="4031.8003" + id="rect3601-4" + style="fill:#c8b7b7;fill-opacity:1;fill-rule:evenodd;stroke:#0d46f0;stroke-width:19.06826973;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><text + transform="scale(1.0252722,0.97535075)" + sodipodi:linespacing="125%" + id="text3603-9" + y="3472.9392" + x="8920.8174" + style="font-style:normal;font-weight:normal;font-size:429.03607178px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:333.69470215px" + y="3472.9392" + x="8920.8174" + id="tspan3605-9" + sodipodi:role="line">Carte handling</tspan></text> +<rect + y="3715.854" + x="8902.6855" + height="596.05573" + width="4031.8003" + id="rect3601-6-1" + style="fill:#c8b7b7;fill-opacity:1;fill-rule:evenodd;stroke:#0d46f0;stroke-width:19.06826973;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><text + transform="scale(1.0252722,0.97535075)" + sodipodi:linespacing="125%" + id="text3603-8-1" + y="4223.3184" + x="8937.3701" + style="font-style:normal;font-weight:normal;font-size:429.03607178px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:333.69470215px" + y="4223.3184" + x="8937.3701" + id="tspan3605-8-5" + sodipodi:role="line">POI management</tspan></text> +<rect + y="4497.894" + x="8868.7158" + height="596.05573" + width="4031.8003" + id="rect3601-6-5-40" + style="fill:#c8b7b7;fill-opacity:1;fill-rule:evenodd;stroke:#0d46f0;stroke-width:19.06826973;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><text + transform="scale(1.0252722,0.97535075)" + sodipodi:linespacing="125%" + id="text3643-9" + y="5025.5879" + x="8932.3828" + style="font-style:normal;font-weight:normal;font-size:429.03607178px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:333.69470215px" + y="5025.5879" + x="8932.3828" + id="tspan3645-79" + sodipodi:role="line">etc... </tspan></text> +<rect + y="11709.881" + x="15319.922" + height="596.05573" + width="3048.6543" + id="rect3601-6-1-8" + style="fill:#cccccc;fill-opacity:1;fill-rule:evenodd;stroke:#0d46f0;stroke-width:16.58119774;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><text + transform="scale(0.86824058,1.1517545)" + sodipodi:linespacing="125%" + id="text3603-8-1-1" + y="10462.525" + x="18713.543" + style="font-style:normal;font-weight:normal;font-size:363.32452393px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:282.58575439px" + y="10462.525" + x="18713.543" + id="tspan3605-8-5-2" + sodipodi:role="line">CAN GPS</tspan></text> +<rect + y="8962.75" + x="15381.72" + height="1775.8311" + width="3009.3289" + id="rect3601-6-5-40-9" + style="fill:#c8b7b7;fill-opacity:1;fill-rule:evenodd;stroke:#0d46f0;stroke-width:28.43504906;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><text + transform="scale(1.0252722,0.97535075)" + sodipodi:linespacing="125%" + id="text3643-9-6" + y="9764.5527" + x="16497.68" + style="font-style:normal;font-weight:normal;font-size:429.03607178px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:423.33334351px;text-align:center;text-anchor:middle" + y="9764.5527" + x="16497.68" + id="tspan3645-79-6" + sodipodi:role="line">Geopositioning</tspan><tspan + style="font-size:423.33334351px;text-align:center;text-anchor:middle" + y="10293.72" + x="16497.68" + sodipodi:role="line" + id="tspan3662">Virtual</tspan><tspan + style="font-size:423.33334351px;text-align:center;text-anchor:middle" + y="10822.886" + x="16497.68" + sodipodi:role="line" + id="tspan5403">Signal</tspan></text> +<text + transform="scale(1.0252722,0.97535075)" + sodipodi:linespacing="125%" + id="text3984" + y="15008.806" + x="10426.377" + style="font-style:normal;font-weight:normal;font-size:429.03607178px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:476.70672607px;text-align:center;text-anchor:middle;fill:#808080" + y="15008.806" + x="10426.377" + id="tspan3986" + sodipodi:role="line">Multi ECU Architecture</tspan></text> +<rect + y="-19392.822" + x="8956.9561" + height="596.05579" + width="4111.2031" + id="rect3601-6-77" + style="fill:#c8b7b7;fill-opacity:1;fill-rule:evenodd;stroke:#0d46f0;stroke-width:19.25512314;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + transform="matrix(-0.01913105,0.99981698,-1,0,0,0)" /><rect + y="12452.338" + x="15353.233" + height="596.05579" + width="3048.6543" + id="rect3601-6-1-8-9" + style="fill:#cccccc;fill-opacity:1;fill-rule:evenodd;stroke:#0d46f0;stroke-width:16.58119774;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><text + transform="scale(0.86824058,1.1517545)" + sodipodi:linespacing="125%" + id="text3603-8-1-1-5" + y="11120.828" + x="19060.178" + style="font-style:normal;font-weight:normal;font-size:363.32455444px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:282.58578491px" + y="11120.828" + x="19060.178" + id="tspan3605-8-5-2-8" + sodipodi:role="line">ABS</tspan></text> +<text + transform="matrix(0,0.86824058,-1.1517545,0,0,0)" + sodipodi:linespacing="125%" + id="text3603-8-1-1-9" + y="-16418.799" + x="11528.322" + style="font-style:normal;font-weight:normal;font-size:363.32455444px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:282.58578491px" + y="-16418.799" + x="11528.322" + id="tspan3605-8-5-2-1" + sodipodi:role="line">Publish/Subscribe</tspan></text> +<text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:635.00006104px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="16136.394" + y="3007.7329" + id="text3804" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan3806" + x="16136.394" + y="3007.7329" + style="font-size:705.55566406px">IVI ECU</tspan></text> +<path + style="fill:none;fill-rule:evenodd;stroke:#e60d0d;stroke-width:47.9777832;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 12400.438,1985.2611 c 0,0 990.052,-297.8429 1533.708,943.8203 543.656,1241.663 3735.955,6292.1357 3735.955,6292.1357" + id="path3849" + inkscape:connector-curvature="0" + sodipodi:nodetypes="czc" /><rect + y="8909.4316" + x="8474.8359" + height="4466.5317" + width="4364.9365" + id="rect3404-2-0-3-0" + style="fill:#ececec;fill-opacity:1;fill-rule:evenodd;stroke:#0d46f0;stroke-width:20.60331535;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><rect + y="9056.4238" + x="8739.8428" + height="1775.8311" + width="3009.3289" + id="rect3601-6-5-40-9-2" + style="fill:#c8b7b7;fill-opacity:1;fill-rule:evenodd;stroke:#0d46f0;stroke-width:28.43504906;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><text + transform="scale(1.0252722,0.97535075)" + sodipodi:linespacing="125%" + id="text3643-9-6-1" + y="9860.5938" + x="10019.52" + style="font-style:normal;font-weight:normal;font-size:429.03607178px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:423.33334351px;text-align:center;text-anchor:middle" + y="9860.5938" + x="10019.52" + id="tspan3645-79-6-8" + sodipodi:role="line">CAN-BUS</tspan><tspan + style="font-size:423.33334351px;text-align:center;text-anchor:middle" + y="10389.761" + x="10019.52" + sodipodi:role="line" + id="tspan3662-2">Virtual Signal</tspan></text> +<rect + y="-12752.737" + x="9050.6455" + height="596.05579" + width="4111.2026" + id="rect3601-6-77-2" + style="fill:#c8b7b7;fill-opacity:1;fill-rule:evenodd;stroke:#0d46f0;stroke-width:19.25512314;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + transform="matrix(-0.01913105,0.99981698,-1,0,0,0)" /><text + transform="matrix(0,0.86824058,-1.1517545,0,0,0)" + sodipodi:linespacing="125%" + id="text3603-8-1-1-9-6" + y="-10515.35" + x="11527.407" + style="font-style:normal;font-weight:normal;font-size:363.32458496px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:282.58581543px" + y="-10515.35" + x="11527.407" + id="tspan3605-8-5-2-1-3" + sodipodi:role="line">Publish/Subscribe</tspan></text> +<flowRoot + xml:space="preserve" + id="flowRoot5260" + style="fill:black;stroke:none;stroke-opacity:1;stroke-width:1px;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;font-family:sans-serif;font-style:normal;font-weight:normal;font-size:22.5px;line-height:125%;letter-spacing:0px;word-spacing:0px"><flowRegion + id="flowRegion5262"><rect + id="rect5264" + width="133.76979" + height="76.638947" + x="292.62143" + y="411.54117" /></flowRegion><flowPara + id="flowPara5266"></flowPara></flowRoot><rect + y="10923.32" + x="15366.123" + height="635.38153" + width="3009.3289" + id="rect3601-6-5-40-9-5" + style="fill:#c8b7b7;fill-opacity:1;fill-rule:evenodd;stroke:#0d46f0;stroke-width:17.00867462;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><text + transform="scale(0.91371139,1.0944375)" + sodipodi:linespacing="125%" + id="text3603-8" + y="10409.79" + x="16882.938" + style="font-style:normal;font-weight:normal;font-size:333.12475586px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:352.77783203px" + y="10409.79" + x="16882.938" + id="tspan3605-8" + sodipodi:role="line">Gyro, Acelerometer</tspan></text> +<rect + y="11100.287" + x="8759.3809" + height="635.38153" + width="3009.3289" + id="rect3601-6-5-40-9-5-6" + style="fill:#c8b7b7;fill-opacity:1;fill-rule:evenodd;stroke:#0d46f0;stroke-width:17.00867462;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><text + transform="scale(0.91371139,1.0944375)" + sodipodi:linespacing="125%" + id="text3603-8-8" + y="10571.487" + x="9652.2715" + style="font-style:normal;font-weight:normal;font-size:333.12475586px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:352.77786255px" + y="10571.487" + x="9652.2715" + id="tspan3605-8-0" + sodipodi:role="line">CAN-BUS</tspan></text> +<rect + y="12004.782" + x="8759.3818" + height="635.38153" + width="3009.3289" + id="rect3601-6-5-40-9-5-8" + style="fill:#c8b7b7;fill-opacity:1;fill-rule:evenodd;stroke:#0d46f0;stroke-width:17.00867462;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><text + transform="scale(0.91371139,1.0944375)" + sodipodi:linespacing="125%" + id="text3603-8-3" + y="11397.934" + x="9652.2725" + style="font-style:normal;font-weight:normal;font-size:333.12475586px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:352.77786255px" + y="11397.934" + x="9652.2725" + id="tspan3605-8-2" + sodipodi:role="line">LIN-BUS</tspan></text> +<rect + y="8988.083" + x="2497.3074" + height="4466.5317" + width="4364.9365" + id="rect3404-2-0-3-0-0" + style="fill:#ececec;fill-opacity:1;fill-rule:evenodd;stroke:#0d46f0;stroke-width:20.60331535;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><rect + y="9135.0752" + x="2762.3142" + height="1775.8311" + width="3009.3289" + id="rect3601-6-5-40-9-2-9" + style="fill:#c8b7b7;fill-opacity:1;fill-rule:evenodd;stroke:#0d46f0;stroke-width:28.43504906;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><text + transform="scale(1.0252722,0.97535075)" + sodipodi:linespacing="125%" + id="text3643-9-6-1-9" + y="9941.2324" + x="4189.332" + style="font-style:normal;font-weight:normal;font-size:429.03607178px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:423.33334351px;text-align:center;text-anchor:middle" + y="9941.2324" + x="4189.332" + id="tspan3645-79-6-8-2" + sodipodi:role="line">Cluster</tspan><tspan + style="font-size:423.33334351px;text-align:center;text-anchor:middle" + y="10470.399" + x="4189.332" + sodipodi:role="line" + id="tspan3662-2-4">Virtual Signal</tspan></text> +<rect + y="-6776.7139" + x="9129.3105" + height="596.05579" + width="4111.2021" + id="rect3601-6-77-2-1" + style="fill:#c8b7b7;fill-opacity:1;fill-rule:evenodd;stroke:#0d46f0;stroke-width:19.25512314;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + transform="matrix(-0.01913105,0.99981698,-1,0,0,0)" /><text + transform="matrix(0,0.86824058,-1.1517545,0,0,0)" + sodipodi:linespacing="125%" + id="text3603-8-1-1-9-6-6" + y="-5325.418" + x="11617.994" + style="font-style:normal;font-weight:normal;font-size:363.32461548px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:282.58581543px" + y="-5325.418" + x="11617.994" + id="tspan3605-8-5-2-1-3-2" + sodipodi:role="line">Publish/Subscribe</tspan></text> +<rect + y="11178.938" + x="2781.8523" + height="635.38153" + width="3009.3289" + id="rect3601-6-5-40-9-5-6-3" + style="fill:#c8b7b7;fill-opacity:1;fill-rule:evenodd;stroke:#0d46f0;stroke-width:17.00867462;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><text + transform="scale(0.91371139,1.0944375)" + sodipodi:linespacing="125%" + id="text3603-8-8-0" + y="10643.353" + x="3110.2405" + style="font-style:normal;font-weight:normal;font-size:333.12475586px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:352.77789307px" + y="10643.353" + x="3110.2405" + id="tspan3605-8-0-6" + sodipodi:role="line">Engine-CAN-BUS</tspan></text> +<rect + y="12083.434" + x="2781.8533" + height="635.38153" + width="3009.3289" + id="rect3601-6-5-40-9-5-8-3" + style="fill:#c8b7b7;fill-opacity:1;fill-rule:evenodd;stroke:#0d46f0;stroke-width:17.00867462;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><text + transform="scale(0.91371139,1.0944375)" + sodipodi:linespacing="125%" + id="text3603-8-3-9" + y="11469.799" + x="3110.2415" + style="font-style:normal;font-weight:normal;font-size:333.12475586px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:352.77789307px" + y="11469.799" + x="3110.2415" + id="tspan3605-8-2-2" + sodipodi:role="line">ABS</tspan></text> +<path + style="fill:none;fill-rule:evenodd;stroke:#e51717;stroke-width:56.44444762;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" + d="m 17909.005,10395.578 c 581.979,15.242 773.25,39.378 739.425,322.085 -33.824,282.707 -715.845,401.095 -715.845,401.095" + id="path5399" + inkscape:connector-curvature="0" + sodipodi:nodetypes="czc" /><path + style="fill:none;fill-rule:evenodd;stroke:#ee0dbe;stroke-width:56.44444656;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 17917.448,10249.788 c 0,0 471.488,-228.312 771.489,110.213 300.002,338.525 -281.677,1426.817 -519.574,1637.447 -237.897,210.63 -2347.513,370.496 -2645.107,-62.979 -297.595,-433.476 -438.327,-4617.5973 -1542.978,-5038.2982 -1104.652,-420.7009 -1866.515,-410.2186 -2629.363,-15.7448 -762.848,394.4739 -1086.382,2282.9789 -1086.382,2282.9789" + id="path5401" + inkscape:connector-curvature="0" + sodipodi:nodetypes="czzzzzc" /><path + style="fill:none;fill-rule:evenodd;stroke:#160bf5;stroke-width:56.44444656;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 17854.469,9997.873 c 0,0 502.052,-275.9088 913.192,188.936 411.141,464.844 -22.673,2481.813 -503.83,2660.851 -481.156,179.039 -2271.437,229.946 -2802.553,-31.489 -531.117,-261.435 140.927,-4319.7775 -1873.618,-5762.5536 -2014.545,-1442.7761 -7166.9618,-920.9357 -8218.7234,1e-4 C 4317.175,7974.5534 4298.298,9273.6177 4298.298,9273.6177" + id="path5405" + inkscape:connector-curvature="0" + sodipodi:nodetypes="czzzzzc" /><ellipse + style="fill:#ffff00;fill-opacity:1;stroke:#160bf5;stroke-width:34.40579605;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path5411" + cx="15319.575" + cy="4392.7661" + rx="251.91492" + ry="251.9149" /><text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:387.06521606px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="15355.811" + y="4495.0854" + id="text5407" + sodipodi:linespacing="125%" + transform="scale(0.99052112,1.0095696)"><tspan + sodipodi:role="line" + id="tspan5409" + x="15355.811" + y="4495.0854">1</tspan></text> +<ellipse + style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#160bf5;stroke-width:34.40579605;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path5411-9" + cx="18106.385" + cy="10722.128" + rx="251.91492" + ry="251.9149" /><text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:387.06521606px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="18169.287" + y="10764.451" + id="text5407-1" + sodipodi:linespacing="125%" + transform="scale(0.99052102,1.0095697)"><tspan + sodipodi:role="line" + id="tspan5409-5" + x="18169.287" + y="10764.451">2</tspan></text> +<ellipse + style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#160bf5;stroke-width:34.40579605;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path5411-93" + cx="17854.469" + cy="12028.938" + rx="251.91492" + ry="251.9149" /><text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:387.06521606px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="17914.963" + y="12058.873" + id="text5407-6" + sodipodi:linespacing="125%" + transform="scale(0.99052102,1.0095697)"><tspan + sodipodi:role="line" + id="tspan5409-53" + x="17914.963" + y="12058.873">3</tspan></text> +<ellipse + style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#160bf5;stroke-width:34.40579605;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path5411-4" + cx="17870.215" + cy="12737.446" + rx="251.91492" + ry="251.9149" /><text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:387.06521606px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="17930.857" + y="12760.667" + id="text5407-60" + sodipodi:linespacing="125%" + transform="scale(0.99052102,1.0095697)"><tspan + sodipodi:role="line" + id="tspan5409-0" + x="17930.857" + y="12760.667">4</tspan></text> +</svg>
\ No newline at end of file diff --git a/signaling/images/distributed-arch.svg b/signaling/images/distributed-arch.svg new file mode 100644 index 0000000..b52b3a5 --- /dev/null +++ b/signaling/images/distributed-arch.svg @@ -0,0 +1,717 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:ooo="http://xml.openoffice.org/svg/export" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.2" + width="201.52625mm" + height="119.33526mm" + viewBox="0 0 20152.625 11933.526" + preserveAspectRatio="xMidYMid" + xml:space="preserve" + id="svg2" + inkscape:version="0.91 r13725" + sodipodi:docname="distributed-arch.svg" + style="fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round"><metadata + id="metadata76"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="640" + inkscape:window-height="480" + id="namedview74" + showgrid="false" + inkscape:zoom="0.71765079" + inkscape:cx="520.92259" + inkscape:cy="300.99517" + inkscape:current-layer="svg2" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /><defs + class="ClipPathGroup" + id="defs4"><clipPath + id="presentation_clip_path" + clipPathUnits="userSpaceOnUse"><rect + x="0" + y="0" + width="29700" + height="21000" + id="rect7" /></clipPath></defs><defs + class="TextShapeIndex" + id="defs9"><g + ooo:slide="id1" + ooo:id-list="id3 id4" + id="g11" /></defs><defs + class="EmbeddedBulletChars" + id="defs13"><g + id="bullet-char-template(57356)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="M 580,1141 1163,571 580,0 -4,571 580,1141 Z" + id="path16" + inkscape:connector-curvature="0" /></g><g + id="bullet-char-template(57354)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="m 8,1128 1129,0 L 1137,0 8,0 8,1128 Z" + id="path19" + inkscape:connector-curvature="0" /></g><g + id="bullet-char-template(10146)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="M 174,0 602,739 174,1481 1456,739 174,0 Z m 1184,739 -1049,607 350,-607 699,0 z" + id="path22" + inkscape:connector-curvature="0" /></g><g + id="bullet-char-template(10132)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="M 2015,739 1276,0 717,0 l 543,543 -1086,0 0,393 1086,0 -543,545 557,0 741,-742 z" + id="path25" + inkscape:connector-curvature="0" /></g><g + id="bullet-char-template(10007)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="m 0,-2 c -7,16 -16,29 -25,39 l 381,530 c -94,256 -141,385 -141,387 0,25 13,38 40,38 9,0 21,-2 34,-5 21,4 42,12 65,25 l 27,-13 111,-251 280,301 64,-25 24,25 c 21,-10 41,-24 62,-43 C 886,937 835,863 770,784 769,783 710,716 594,584 L 774,223 c 0,-27 -21,-55 -63,-84 l 16,-20 C 717,90 699,76 672,76 641,76 570,178 457,381 L 164,-76 c -22,-34 -53,-51 -92,-51 -42,0 -63,17 -64,51 -7,9 -10,24 -10,44 0,9 1,19 2,30 z" + id="path28" + inkscape:connector-curvature="0" /></g><g + id="bullet-char-template(10004)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="M 285,-33 C 182,-33 111,30 74,156 52,228 41,333 41,471 c 0,78 14,145 41,201 34,71 87,106 158,106 53,0 88,-31 106,-94 l 23,-176 c 8,-64 28,-97 59,-98 l 735,706 c 11,11 33,17 66,17 42,0 63,-15 63,-46 l 0,-122 c 0,-36 -10,-64 -30,-84 L 442,47 C 390,-6 338,-33 285,-33 Z" + id="path31" + inkscape:connector-curvature="0" /></g><g + id="bullet-char-template(9679)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="M 813,0 C 632,0 489,54 383,161 276,268 223,411 223,592 c 0,181 53,324 160,431 106,107 249,161 430,161 179,0 323,-54 432,-161 108,-107 162,-251 162,-431 0,-180 -54,-324 -162,-431 C 1136,54 992,0 813,0 Z" + id="path34" + inkscape:connector-curvature="0" /></g><g + id="bullet-char-template(8226)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="m 346,457 c -73,0 -137,26 -191,78 -54,51 -81,114 -81,188 0,73 27,136 81,188 54,52 118,78 191,78 73,0 134,-26 185,-79 51,-51 77,-114 77,-187 0,-75 -25,-137 -76,-188 -50,-52 -112,-78 -186,-78 z" + id="path37" + inkscape:connector-curvature="0" /></g><g + id="bullet-char-template(8211)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="m -4,459 1139,0 0,147 -1139,0 0,-147 z" + id="path40" + inkscape:connector-curvature="0" /></g></defs><defs + class="TextEmbeddedBitmaps" + id="defs42" /><rect + style="fill:#f9f9f9;fill-opacity:1;stroke:#0d46f0;stroke-width:17.79314232;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4209" + width="20134.832" + height="11915.733" + x="8.8965712" + y="8.8965712" /><g + id="g44" + transform="translate(-305.71018,-7463.014)"><g + id="id2" + class="Master_Slide"><g + id="bg-id2" + class="Background" /><g + id="bo-id2" + class="BackgroundObjects" /></g></g><g + class="SlideGroup" + id="g49" + transform="matrix(1.3663656,0,0,1.3300864,-6738.0941,-6071.3442)" + style="fill:#cccccc"><flowRoot + xml:space="preserve" + id="flowRoot3412" + style="font-style:normal;font-weight:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + transform="matrix(14.308152,0,0,13.982739,4778.4104,4040.3081)"><flowRegion + id="flowRegion3414"><rect + id="rect3416" + width="305.16235" + height="229.91684" + x="34.835884" + y="418.03061" /></flowRegion><flowPara + id="flowPara3418" /></flowRoot><flowRoot + xml:space="preserve" + id="flowRoot3469" + style="font-style:normal;font-weight:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + transform="matrix(14.308152,0,0,13.982739,4778.4104,4040.3081)"><flowRegion + id="flowRegion3471"><rect + id="rect3473" + width="305.16235" + height="231.31027" + x="319.09671" + y="422.21091" /></flowRegion><flowPara + id="flowPara3475" /></flowRoot><rect + style="fill:#cccccc;fill-opacity:1;stroke:#0d46f0;stroke-width:14.7604847;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3404-2-0" + width="3194.5596" + height="3132.3081" + x="16257.25" + y="9405.8311" /><rect + style="fill:#cccccc;fill-opacity:1;stroke:#0d46f0;stroke-width:14.8520174;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3404-2-0-8" + width="3194.5596" + height="3171.2764" + x="12633.789" + y="9376.6045" /><rect + style="fill:#cccccc;fill-opacity:1;stroke:#0d46f0;stroke-width:14.89757156;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3404-2-0-6" + width="3194.5596" + height="3190.7605" + x="8960.1318" + y="9357.1191" /><text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:318.25146484px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="10365.439" + y="10221.846" + id="text3406" + sodipodi:linespacing="125%" + transform="scale(1.0115693,0.98856301)"><tspan + sodipodi:role="line" + x="10365.439" + y="10221.846" + id="tspan3410">Agent-2</tspan><tspan + sodipodi:role="line" + x="10365.439" + y="10619.66" + id="tspan3446">Car Environement</tspan></text> +<text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:318.25146484px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="14011.743" + y="10214.206" + id="text3406-8" + sodipodi:linespacing="125%" + transform="scale(1.0115693,0.98856302)"><tspan + sodipodi:role="line" + x="14011.743" + y="10214.206" + id="tspan3410-3">Agent-3</tspan><tspan + sodipodi:role="line" + x="14011.743" + y="10612.021" + id="tspan3446-6">Engine</tspan></text> +<text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:318.25146484px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="17593.764" + y="10332.462" + id="text3406-3" + sodipodi:linespacing="125%" + transform="scale(1.0115693,0.98856302)"><tspan + sodipodi:role="line" + x="17593.764" + y="10332.462" + id="tspan3410-9">Agent-4</tspan><tspan + sodipodi:role="line" + x="17593.764" + y="10730.276" + id="tspan3446-7">Remote Signal</tspan></text> +<flowRoot + xml:space="preserve" + id="flowRoot3585" + style="font-style:normal;font-weight:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + transform="matrix(14.308152,0,0,13.982739,4778.4104,4040.3081)"><flowRegion + id="flowRegion3587"><rect + id="rect3589" + width="182.54004" + height="29.262142" + x="57.130852" + y="551.80042" /></flowRegion><flowPara + id="flowPara3591" /></flowRoot><rect + style="fill:#c8b7b7;fill-opacity:1;stroke:#0d46f0;stroke-width:14.14450932;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3601-0" + width="2950.7478" + height="448.13306" + x="9073.3594" + y="10829.154" /><text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:318.25146484px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="9194.9688" + y="11286.158" + id="text3662" + sodipodi:linespacing="125%" + transform="scale(1.0115693,0.98856301)"><tspan + sodipodi:role="line" + id="tspan3664" + x="9194.9688" + y="11286.158" + style="font-size:247.52891541px">CAN Bus-A</tspan></text> +<rect + style="fill:#c8b7b7;fill-opacity:1;stroke:#0d46f0;stroke-width:14.14450932;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3601-0-8" + width="2950.7478" + height="448.13306" + x="9104.7871" + y="11409.115" /><text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:318.25146484px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="9226.0264" + y="11872.828" + id="text3662-6" + sodipodi:linespacing="125%" + transform="scale(1.0115693,0.98856302)"><tspan + sodipodi:role="line" + id="tspan3664-8" + x="9226.0264" + y="11872.828" + style="font-size:247.52891541px">LIN Bus-A</tspan></text> +<rect + style="fill:#c8b7b7;fill-opacity:1;stroke:#0d46f0;stroke-width:14.14450932;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3601-0-7" + width="2950.7478" + height="448.13306" + x="9094.9346" + y="11979.873" /><text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:318.25146484px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="9216.2832" + y="12450.195" + id="text3662-7" + sodipodi:linespacing="125%" + transform="scale(1.0115693,0.98856302)"><tspan + sodipodi:role="line" + id="tspan3664-5" + x="9216.2832" + y="12450.195" + style="font-size:247.52891541px">Audio</tspan></text> +<rect + style="fill:#c8b7b7;fill-opacity:1;stroke:#0d46f0;stroke-width:14.14450932;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3601-1" + width="2950.7478" + height="448.13306" + x="12761.796" + y="10851.01" /><text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:318.25146484px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="12804.353" + y="11283.312" + id="text3603-3" + sodipodi:linespacing="125%" + transform="scale(1.0115693,0.98856302)"><tspan + sodipodi:role="line" + id="tspan3605-3" + x="12804.353" + y="11283.312" + style="font-size:247.52891541px">CAN Bus-B</tspan></text> +<rect + style="fill:#c8b7b7;fill-opacity:1;stroke:#0d46f0;stroke-width:14.14450932;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3601-6-7" + width="2950.7478" + height="448.13306" + x="12774.225" + y="11401.264" /><text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:318.25146484px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="12816.632" + y="11839.932" + id="text3603-8-4" + sodipodi:linespacing="125%" + transform="scale(1.0115693,0.98856302)"><tspan + sodipodi:role="line" + id="tspan3605-8-2" + x="12816.632" + y="11839.932" + style="font-size:247.52891541px">Cluster-Unit</tspan></text> +<rect + style="fill:#c8b7b7;fill-opacity:1;stroke:#0d46f0;stroke-width:14.14450932;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3601-6-5-8" + width="2950.7478" + height="448.13306" + x="12749.363" + y="11989.226" /><text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:318.25146484px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="12812.934" + y="12435.041" + id="text3643-1" + sodipodi:linespacing="125%" + transform="scale(1.0115693,0.98856302)"><tspan + sodipodi:role="line" + id="tspan3645-3" + x="12812.934" + y="12435.041">...</tspan></text> +<rect + style="fill:#c8b7b7;fill-opacity:1;stroke:#0d46f0;stroke-width:14.14450932;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3601-67" + width="2950.7478" + height="448.13306" + x="16399.096" + y="10851.01" /><text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:318.25146484px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="16400.055" + y="11283.312" + id="text3603-7" + sodipodi:linespacing="125%" + transform="scale(1.0115693,0.98856302)"><tspan + sodipodi:role="line" + id="tspan3605-81" + x="16400.055" + y="11283.312" + style="font-size:247.52891541px">Smart City</tspan></text> +<rect + style="fill:#c8b7b7;fill-opacity:1;stroke:#0d46f0;stroke-width:14.14450932;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3601-6-73" + width="2950.7478" + height="448.13306" + x="16411.523" + y="11401.264" /><text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:318.25146484px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="16412.334" + y="11839.932" + id="text3603-8-7" + sodipodi:linespacing="125%" + transform="scale(1.0115693,0.98856302)"><tspan + sodipodi:role="line" + id="tspan3605-8-1" + x="16412.334" + y="11839.932" + style="font-size:247.52891541px">RVI</tspan></text> +<rect + style="fill:#c8b7b7;fill-opacity:1;stroke:#0d46f0;stroke-width:14.14450932;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3601-6-5-4" + width="2950.7478" + height="448.13306" + x="16386.662" + y="11989.226" /><text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:318.25146484px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="16408.635" + y="12435.041" + id="text3643-4" + sodipodi:linespacing="125%" + transform="scale(1.0115693,0.98856302)"><tspan + sodipodi:role="line" + id="tspan3645-7" + x="16408.635" + y="12435.041" + style="font-size:247.52891541px">Cloud</tspan></text> +<flowRoot + xml:space="preserve" + id="flowRoot3758" + style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + transform="matrix(14.308152,0,0,13.982739,4778.4104,4040.3081)"><flowRegion + id="flowRegion3760"><rect + id="rect3762" + width="1096.6337" + height="153.27789" + x="-37.622753" + y="535.07916" + style="font-size:17.5px" /></flowRegion><flowPara + id="flowPara3764" /></flowRoot><rect + style="fill:#ececec;fill-opacity:1;stroke:#0d46f0;stroke-width:11.45516968;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3775" + width="14262.051" + height="736.30981" + x="5205.9414" + y="8427.8408" /><text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:318.25146484px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="9206.458" + y="9023.5898" + id="text3771-3" + sodipodi:linespacing="125%" + transform="scale(1.0115693,0.98856302)"><tspan + sodipodi:role="line" + id="tspan3773-2" + x="9206.458" + y="9023.5898">Transport + Acess Control</tspan></text> +<flowRoot + xml:space="preserve" + id="flowRoot3795" + style="font-style:normal;font-weight:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + transform="matrix(14.308152,0,0,13.982739,4778.4104,4040.3081)"><flowRegion + id="flowRegion3797"><rect + id="rect3799" + width="261.96585" + height="253.60524" + x="15.327789" + y="429.1781" /></flowRegion><flowPara + id="flowPara3801" /></flowRoot><flowRoot + xml:space="preserve" + id="flowRoot3803" + style="font-style:normal;font-weight:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + transform="matrix(14.308152,0,0,13.982739,4778.4104,4040.3081)"><flowRegion + id="flowRegion3805"><rect + id="rect3807" + width="263.35928" + height="264.75272" + x="18.11466" + y="429.1781" /></flowRegion><flowPara + id="flowPara3809" /></flowRoot><rect + style="fill:#ececec;fill-opacity:1;stroke:#0d46f0;stroke-width:14.94298935;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3404-2-0-3-4" + width="3194.5596" + height="3210.2446" + x="5213.3188" + y="4991.5757" /><text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:318.25146484px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="6794.3989" + y="5798.1641" + id="text3406-4-3" + sodipodi:linespacing="125%" + transform="scale(1.0115693,0.98856302)"><tspan + sodipodi:role="line" + x="6794.3989" + y="5798.1641" + id="tspan3446-2-2">Navigation</tspan><tspan + sodipodi:role="line" + x="6794.3989" + y="6195.9785" + id="tspan3864">Service</tspan></text> +<rect + style="fill:#c8b7b7;fill-opacity:1;stroke:#0d46f0;stroke-width:14.14450932;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3601-4" + width="2950.7478" + height="448.13306" + x="5375.0996" + y="6440.8257" /><text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:318.25146484px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="5502.1406" + y="6822.1172" + id="text3603-9" + sodipodi:linespacing="125%" + transform="scale(1.0115693,0.98856302)"><tspan + sodipodi:role="line" + id="tspan3605-9" + x="5502.1406" + y="6822.1172" + style="font-size:247.52891541px">Carte handling</tspan></text> +<rect + style="fill:#c8b7b7;fill-opacity:1;stroke:#0d46f0;stroke-width:14.14450932;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3601-6-1" + width="2950.7478" + height="448.13306" + x="5387.5283" + y="6991.0796" /><text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:318.25146484px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="5514.4199" + y="7378.7354" + id="text3603-8-1" + sodipodi:linespacing="125%" + transform="scale(1.0115693,0.98856302)"><tspan + sodipodi:role="line" + id="tspan3605-8-5" + x="5514.4199" + y="7378.7354" + style="font-size:247.52891541px">POI management</tspan></text> +<rect + style="fill:#c8b7b7;fill-opacity:1;stroke:#0d46f0;stroke-width:14.14450932;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3601-6-5-40" + width="2950.7478" + height="448.13306" + x="5362.6665" + y="7579.0415" /><text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:318.25146484px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="5510.7202" + y="7973.8447" + id="text3643-9" + sodipodi:linespacing="125%" + transform="scale(1.0115693,0.98856302)"><tspan + sodipodi:role="line" + id="tspan3645-79" + x="5510.7202" + y="7973.8447" + style="font-size:247.52891541px">etc... </tspan></text> +<flowRoot + xml:space="preserve" + id="flowRoot3866" + style="font-style:normal;font-weight:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + transform="matrix(14.308152,0,0,13.982739,4778.4104,4040.3081)"><flowRegion + id="flowRegion3868"><rect + id="rect3870" + width="295.40829" + height="254.99867" + x="-4.180306" + y="-1.3934354" /></flowRegion><flowPara + id="flowPara3872" /></flowRoot><rect + style="fill:#ececec;fill-opacity:1;stroke:#0d46f0;stroke-width:14.94298935;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3404-2-0-3-4-2" + width="3194.5596" + height="3210.2449" + x="12397.615" + y="5007.3916" /><text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:318.25146484px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="13896.527" + y="5814.1577" + id="text3406-4-3-2" + sodipodi:linespacing="125%" + transform="scale(1.0115693,0.98856302)"><tspan + sodipodi:role="line" + x="13896.527" + y="5814.1577" + id="tspan3446-2-2-7">Log/Supervision</tspan><tspan + sodipodi:role="line" + x="13896.527" + y="6211.9722" + id="tspan3864-1">Service</tspan></text> +<rect + style="fill:#c8b7b7;fill-opacity:1;stroke:#0d46f0;stroke-width:14.14450932;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3601-4-9" + width="2950.7478" + height="448.13306" + x="12559.396" + y="6456.6416" /><text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:318.25146484px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="12604.268" + y="6838.1108" + id="text3603-9-6" + sodipodi:linespacing="125%" + transform="scale(1.0115693,0.98856302)"><tspan + sodipodi:role="line" + id="tspan3605-9-2" + x="12604.268" + y="6838.1108" + style="font-size:247.52891541px">Carte handling</tspan></text> +<rect + style="fill:#c8b7b7;fill-opacity:1;stroke:#0d46f0;stroke-width:14.14450932;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3601-6-1-8" + width="2950.7478" + height="448.13306" + x="12571.826" + y="7006.8955" /><text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:318.25146484px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="12616.547" + y="7394.729" + id="text3603-8-1-1" + sodipodi:linespacing="125%" + transform="scale(1.0115693,0.98856302)"><tspan + sodipodi:role="line" + id="tspan3605-8-5-2" + x="12616.547" + y="7394.729" + style="font-size:247.52891541px">POI management</tspan></text> +<rect + style="fill:#c8b7b7;fill-opacity:1;stroke:#0d46f0;stroke-width:14.14450932;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3601-6-5-40-9" + width="2950.7478" + height="448.13306" + x="12546.964" + y="7594.8574" /><text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:318.25146484px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="12612.848" + y="7989.8379" + id="text3643-9-6" + sodipodi:linespacing="125%" + transform="scale(1.0115693,0.98856302)"><tspan + sodipodi:role="line" + id="tspan3645-79-6" + x="12612.848" + y="7989.8379" + style="font-size:247.52891541px">etc... </tspan></text> +<flowRoot + xml:space="preserve" + id="flowRoot3925" + style="font-style:normal;font-weight:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + transform="matrix(14.308152,0,0,13.982739,4778.4104,4040.3081)"><flowRegion + id="flowRegion3927"><rect + id="rect3929" + width="275.90021" + height="278.68707" + x="273.11334" + y="-12.540918" /></flowRegion><flowPara + id="flowPara3931" /></flowRoot><rect + style="fill:#ececec;fill-opacity:1;stroke:#0d46f0;stroke-width:14.94298935;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3404-2-0-3-4-2-8" + width="3194.5596" + height="3210.2449" + x="8822.0039" + y="4991.5752" /><text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:318.25146484px;line-height:125%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="10361.811" + y="5798.1582" + id="text3406-4-3-2-1" + sodipodi:linespacing="125%" + transform="scale(1.0115693,0.98856302)"><tspan + sodipodi:role="line" + x="10361.811" + y="5798.1582" + id="tspan3446-2-2-7-1">MultiMedia</tspan><tspan + sodipodi:role="line" + x="10361.811" + y="6195.9727" + id="tspan3864-1-2">Service</tspan></text> +<rect + style="fill:#c8b7b7;fill-opacity:1;stroke:#0d46f0;stroke-width:14.14450932;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3601-4-9-4" + width="2950.7478" + height="448.13306" + x="8983.7852" + y="6440.8252" /><text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:318.25146484px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="9069.5508" + y="6822.1113" + id="text3603-9-6-3" + sodipodi:linespacing="125%" + transform="scale(1.0115693,0.98856302)"><tspan + sodipodi:role="line" + id="tspan3605-9-2-5" + x="9069.5508" + y="6822.1113" + style="font-size:247.52891541px">Media Player</tspan></text> +<rect + style="fill:#c8b7b7;fill-opacity:1;stroke:#0d46f0;stroke-width:14.14450932;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3601-6-1-8-8" + width="2950.7478" + height="448.13306" + x="8996.2148" + y="6991.0791" /><text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:318.25146484px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="9081.8301" + y="7378.7295" + id="text3603-8-1-1-5" + sodipodi:linespacing="125%" + transform="scale(1.0115693,0.98856302)"><tspan + sodipodi:role="line" + id="tspan3605-8-5-2-6" + x="9081.8301" + y="7378.7295" + style="font-size:247.52891541px">Radio Interface</tspan></text> +<rect + style="fill:#c8b7b7;fill-opacity:1;stroke:#0d46f0;stroke-width:14.14450932;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3601-6-5-40-9-0" + width="2950.7478" + height="448.13306" + x="8971.3525" + y="7579.041" /><text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:318.25146484px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="9078.1309" + y="7973.8379" + id="text3643-9-6-6" + sodipodi:linespacing="125%" + transform="scale(1.0115693,0.98856302)"><tspan + sodipodi:role="line" + id="tspan3645-79-6-3" + x="9078.1309" + y="7973.8379" + style="font-size:247.52891541px">etc... </tspan></text> +<text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:318.25146484px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="11325.934" + y="13410.186" + id="text3984" + sodipodi:linespacing="125%" + transform="scale(1.0115693,0.98856301)"><tspan + sodipodi:role="line" + id="tspan3986" + x="11325.934" + y="13410.186" + style="font-size:353.61273193px;text-align:center;text-anchor:middle;fill:#808080">Signal Messaging Distributed Architecture</tspan></text> +</g></svg>
\ No newline at end of file diff --git a/signaling/images/signal-agent-arch.svg b/signaling/images/signal-agent-arch.svg new file mode 100644 index 0000000..1a8677e --- /dev/null +++ b/signaling/images/signal-agent-arch.svg @@ -0,0 +1,439 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:ooo="http://xml.openoffice.org/svg/export" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.2" + width="210mm" + height="150mm" + viewBox="0 0 21000.002 15000" + preserveAspectRatio="xMidYMid" + xml:space="preserve" + id="svg2" + inkscape:version="0.91 r13725" + sodipodi:docname="signal-agent-arch.svg" + style="fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round"><metadata + id="metadata76"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="640" + inkscape:window-height="480" + id="namedview74" + showgrid="false" + inkscape:zoom="1.5390519" + inkscape:cx="373.34674" + inkscape:cy="148.54213" + inkscape:current-layer="svg2" + showguides="false" + units="mm" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /><defs + class="ClipPathGroup" + id="defs4"><clipPath + id="presentation_clip_path" + clipPathUnits="userSpaceOnUse"><rect + x="0" + y="0" + width="29700" + height="21000" + id="rect7" /></clipPath></defs><defs + class="TextShapeIndex" + id="defs9"><g + ooo:slide="id1" + ooo:id-list="id3 id4" + id="g11" /></defs><defs + class="EmbeddedBulletChars" + id="defs13"><g + id="bullet-char-template(57356)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="M 580,1141 1163,571 580,0 -4,571 580,1141 Z" + id="path16" + inkscape:connector-curvature="0" /></g><g + id="bullet-char-template(57354)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="m 8,1128 1129,0 L 1137,0 8,0 8,1128 Z" + id="path19" + inkscape:connector-curvature="0" /></g><g + id="bullet-char-template(10146)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="M 174,0 602,739 174,1481 1456,739 174,0 Z m 1184,739 -1049,607 350,-607 699,0 z" + id="path22" + inkscape:connector-curvature="0" /></g><g + id="bullet-char-template(10132)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="M 2015,739 1276,0 717,0 l 543,543 -1086,0 0,393 1086,0 -543,545 557,0 741,-742 z" + id="path25" + inkscape:connector-curvature="0" /></g><g + id="bullet-char-template(10007)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="m 0,-2 c -7,16 -16,29 -25,39 l 381,530 c -94,256 -141,385 -141,387 0,25 13,38 40,38 9,0 21,-2 34,-5 21,4 42,12 65,25 l 27,-13 111,-251 280,301 64,-25 24,25 c 21,-10 41,-24 62,-43 C 886,937 835,863 770,784 769,783 710,716 594,584 L 774,223 c 0,-27 -21,-55 -63,-84 l 16,-20 C 717,90 699,76 672,76 641,76 570,178 457,381 L 164,-76 c -22,-34 -53,-51 -92,-51 -42,0 -63,17 -64,51 -7,9 -10,24 -10,44 0,9 1,19 2,30 z" + id="path28" + inkscape:connector-curvature="0" /></g><g + id="bullet-char-template(10004)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="M 285,-33 C 182,-33 111,30 74,156 52,228 41,333 41,471 c 0,78 14,145 41,201 34,71 87,106 158,106 53,0 88,-31 106,-94 l 23,-176 c 8,-64 28,-97 59,-98 l 735,706 c 11,11 33,17 66,17 42,0 63,-15 63,-46 l 0,-122 c 0,-36 -10,-64 -30,-84 L 442,47 C 390,-6 338,-33 285,-33 Z" + id="path31" + inkscape:connector-curvature="0" /></g><g + id="bullet-char-template(9679)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="M 813,0 C 632,0 489,54 383,161 276,268 223,411 223,592 c 0,181 53,324 160,431 106,107 249,161 430,161 179,0 323,-54 432,-161 108,-107 162,-251 162,-431 0,-180 -54,-324 -162,-431 C 1136,54 992,0 813,0 Z" + id="path34" + inkscape:connector-curvature="0" /></g><g + id="bullet-char-template(8226)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="m 346,457 c -73,0 -137,26 -191,78 -54,51 -81,114 -81,188 0,73 27,136 81,188 54,52 118,78 191,78 73,0 134,-26 185,-79 51,-51 77,-114 77,-187 0,-75 -25,-137 -76,-188 -50,-52 -112,-78 -186,-78 z" + id="path37" + inkscape:connector-curvature="0" /></g><g + id="bullet-char-template(8211)" + transform="scale(4.8828125e-4,-4.8828125e-4)"><path + d="m -4,459 1139,0 0,147 -1139,0 0,-147 z" + id="path40" + inkscape:connector-curvature="0" /></g></defs><defs + class="TextEmbeddedBitmaps" + id="defs42" /><rect + style="fill:#f9f9f9;fill-opacity:1;stroke:#0d46f0;stroke-width:20.35718918;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4209" + width="21002.145" + height="14953.24" + x="5.7676091" + y="40.992584" /><g + id="g44" + transform="matrix(0.48517515,0,0,0.48669202,-1304.7386,5086.6828)"><g + id="id2" + class="Master_Slide"><g + id="bg-id2" + class="Background" /><g + id="bo-id2" + class="BackgroundObjects" /></g></g><flowRoot + transform="matrix(11.168642,0,0,9.2397608,182.65622,6416.365)" + style="font-style:normal;font-weight:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="flowRoot3412" + xml:space="preserve"><flowRegion + id="flowRegion3414"><rect + y="418.03061" + x="34.835884" + height="229.91684" + width="305.16235" + id="rect3416" /></flowRegion><flowPara + id="flowPara3418" /></flowRoot><flowRoot + transform="matrix(11.168642,0,0,9.2397608,182.65622,6416.365)" + style="font-style:normal;font-weight:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="flowRoot3469" + xml:space="preserve"><flowRegion + id="flowRegion3471"><rect + y="422.21091" + x="319.09671" + height="231.31027" + width="305.16235" + id="rect3473" /></flowRegion><flowPara + id="flowPara3475" /></flowRoot><flowRoot + transform="matrix(11.168642,0,0,9.2397608,182.65622,6416.365)" + style="font-style:normal;font-weight:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="flowRoot3585" + xml:space="preserve"><flowRegion + id="flowRegion3587"><rect + y="551.80042" + x="57.130852" + height="29.262142" + width="182.54004" + id="rect3589" /></flowRegion><flowPara + id="flowPara3591" /></flowRoot><flowRoot + transform="matrix(11.168642,0,0,9.2397608,182.65622,6416.365)" + style="font-style:normal;font-weight:normal;font-size:17.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="flowRoot3758" + xml:space="preserve"><flowRegion + id="flowRegion3760"><rect + style="font-size:17.5px" + y="535.07916" + x="-37.622753" + height="153.27789" + width="1096.6337" + id="rect3762" /></flowRegion><flowPara + id="flowPara3764" /></flowRoot><flowRoot + transform="matrix(11.168642,0,0,9.2397608,182.65622,6416.365)" + style="font-style:normal;font-weight:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="flowRoot3795" + xml:space="preserve"><flowRegion + id="flowRegion3797"><rect + y="429.1781" + x="15.327789" + height="253.60524" + width="261.96585" + id="rect3799" /></flowRegion><flowPara + id="flowPara3801" /></flowRoot><flowRoot + transform="matrix(11.168642,0,0,9.2397608,182.65622,6416.365)" + style="font-style:normal;font-weight:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="flowRoot3803" + xml:space="preserve"><flowRegion + id="flowRegion3805"><rect + y="429.1781" + x="18.11466" + height="264.75272" + width="263.35928" + id="rect3807" /></flowRegion><flowPara + id="flowPara3809" /></flowRoot><rect + y="3977.761" + x="2672.7629" + height="9934.5361" + width="17511.309" + id="rect3404-2-0-3-4" + style="fill:#ececec;fill-opacity:1;stroke:#0d46f0;stroke-width:61.54545212;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><rect + y="4574.5532" + x="6627.748" + height="5380.1162" + width="13070.993" + id="rect3601-6-5-40" + style="fill:#c8b7b7;fill-opacity:1;stroke:#0d46f0;stroke-width:103.14982605;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><flowRoot + transform="matrix(11.168642,0,0,9.2397608,182.65622,6416.365)" + style="font-style:normal;font-weight:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="flowRoot3866" + xml:space="preserve"><flowRegion + id="flowRegion3868"><rect + y="-1.3934354" + x="-4.180306" + height="254.99867" + width="295.40829" + id="rect3870" /></flowRegion><flowPara + id="flowPara3872" /></flowRoot><flowRoot + transform="matrix(11.168642,0,0,9.2397608,182.65622,6416.365)" + style="font-style:normal;font-weight:normal;font-size:22.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="flowRoot3925" + xml:space="preserve"><flowRegion + id="flowRegion3927"><rect + y="-12.540918" + x="273.11334" + height="278.68707" + width="275.90021" + id="rect3929" /></flowRegion><flowPara + id="flowPara3931" /></flowRoot><text + transform="scale(1.0789315,0.92684288)" + sodipodi:linespacing="125%" + id="text3984" + y="15768.004" + x="9721.9326" + style="font-style:normal;font-weight:normal;font-size:403.37136841px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:423.33337402px;text-align:center;text-anchor:middle;fill:#808080" + y="15768.004" + x="9721.9326" + id="tspan3986" + sodipodi:role="line">Generic CAN-Bus Signal Agent</tspan></text> +<text + transform="scale(1.352565,0.73933602)" + sodipodi:linespacing="125%" + id="text3603-9-2" + y="7558.9971" + x="9458.5166" + style="font-style:normal;font-weight:normal;font-size:1304.71459961px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:1014.77801514px;text-align:center;text-anchor:middle" + y="7558.9971" + x="9458.5166" + id="tspan3605-9-6" + sodipodi:role="line">Can Virtual Signal</tspan><tspan + id="tspan3511" + style="font-size:413.4994812px;text-align:center;text-anchor:middle" + y="7942.4819" + x="9458.5166" + sodipodi:role="line">(Business Logic)</tspan></text> +<rect + y="4530.375" + x="2974.5918" + height="8563.5547" + width="3387.0312" + id="rect3601-4-3" + style="fill:#c8b7b7;fill-opacity:1;stroke:#0d46f0;stroke-width:66.24529266;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><rect + y="2487.4666" + x="2780.7954" + height="1339.1387" + width="17326.658" + id="rect3775" + style="fill:#ececec;fill-opacity:1;stroke:#0d46f0;stroke-width:45.59245682;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><text + transform="scale(0.98227196,1.018048)" + sodipodi:linespacing="125%" + id="text3771-3" + y="3233.5654" + x="7937.6274" + style="font-style:normal;font-weight:normal;font-size:500.42831421px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + y="3233.5654" + x="7937.6274" + id="tspan3773-2" + sodipodi:role="line" + style="font-size:705.55559374px">Transport + Access Control</tspan></text> +<text + transform="matrix(0,-1.1653654,0.85809993,0,0,0)" + sodipodi:linespacing="125%" + id="text3603-9-1" + y="4743.6514" + x="-7532.8291" + style="font-style:normal;font-weight:normal;font-size:1024.6697998px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-size:635.00004585px;text-align:center;text-anchor:middle" + y="4743.6514" + x="-7532.8291" + sodipodi:role="line" + id="tspan3608">Signals</tspan><tspan + style="font-size:635.00004585px;text-align:center;text-anchor:middle" + y="5230.8979" + x="-7532.8291" + sodipodi:role="line" + id="tspan3427">Subscription</tspan></text> +<flowRoot + xml:space="preserve" + id="flowRoot3416" + style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + transform="translate(0,6673.3677)"><flowRegion + id="flowRegion3418"><rect + id="rect3420" + width="267.57834" + height="38.436668" + x="121.22334" + y="120.10205" + style="font-size:15px" /></flowRegion><flowPara + id="flowPara3422" /></flowRoot><g + id="g3485"><g + id="g3446"><rect + y="10154.886" + x="6701.6465" + height="775.28577" + width="13048.449" + id="rect3601-4-38" + style="fill:#c8b7b7;fill-opacity:1;fill-rule:evenodd;stroke:#0d46f0;stroke-width:39.12268829;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /></g><text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:941.5914917px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="6096.7612" + y="12292.677" + id="text3603-9-9" + sodipodi:linespacing="125%" + transform="scale(1.1528505,0.86741516)"><tspan + sodipodi:role="line" + id="tspan3605-9-7" + x="6096.7612" + y="12292.677" + style="font-size:564.44445801px">Module-A: Open-APIs CAN-bus Dev-ABC</tspan></text> +</g><text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:1031.8626709px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="11789.697" + y="7140.6982" + id="text3455-8" + sodipodi:linespacing="125%" + transform="scale(0.98186834,1.0184665)"><tspan + sodipodi:role="line" + id="tspan3457-6" + x="11789.697" + y="7140.6982" + style="font-size:635.00003203px;-inkscape-font-specification:serif;font-family:serif;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal">isDoorOpen</tspan><tspan + sodipodi:role="line" + x="11789.697" + y="7587.3408" + id="tspan3459-3" + style="font-size:635.00003203px;-inkscape-font-specification:serif;font-family:serif;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal">dimInternalLightOut</tspan><tspan + sodipodi:role="line" + x="11789.697" + y="8033.9834" + id="tspan3461-9" + style="font-size:635.00003203px;-inkscape-font-specification:serif;font-family:serif;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal">etc...</tspan></text> +<text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:1031.8626709px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="7553.7725" + y="7071.6685" + id="text3455-8-5" + sodipodi:linespacing="125%" + transform="scale(0.98186834,1.0184665)"><tspan + sodipodi:role="line" + id="tspan3457-6-2" + x="7553.7725" + y="7071.6685" + style="font-size:635.00003203px;-inkscape-font-specification:serif;font-family:serif;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal">GetPosition</tspan><tspan + sodipodi:role="line" + x="7553.7725" + y="7518.311" + id="tspan3459-3-9" + style="font-size:635.00003203px;-inkscape-font-specification:serif;font-family:serif;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal">GetSpeed</tspan><tspan + sodipodi:role="line" + x="7553.7725" + y="7964.9536" + id="tspan3461-9-6" + style="font-size:635.00003203px;-inkscape-font-specification:serif;font-family:serif;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal">IsMoving...</tspan></text> +<path + style="fill:#ececec;fill-opacity:1;fill-rule:evenodd;stroke:#0d46f0;stroke-width:75.28009796;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 913.74471,462.67859 0,13450.56941 19350.72929,0 0,-13450.56941 -19350.72929,0 z m 1807.57219,1822.66201 17476.2671,0 0,11609.4354 -17476.2671,0 0,-11609.4354 z" + id="rect3404-2-0-3-4-1" + inkscape:connector-curvature="0" /><text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:1120.63903809px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="1349.3723" + y="1673.9717" + id="text4263" + sodipodi:linespacing="125%" + transform="scale(0.98135028,1.0190041)"><tspan + sodipodi:role="line" + id="tspan4265" + x="1349.3723" + y="1673.9717" + style="font-size:846.66673175px">Common Signal Agent Framework</tspan></text> +<g + transform="translate(32.075489,881.67751)" + style="fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round" + id="g3485-2"><g + id="g3446-3"><rect + y="10154.886" + x="6701.6465" + height="775.28577" + width="13048.449" + id="rect3601-4-38-1" + style="fill:#c8b7b7;fill-opacity:1;fill-rule:evenodd;stroke:#0d46f0;stroke-width:39.12268829;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /></g><text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:941.5914917px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="6096.7612" + y="12292.677" + id="text3603-9-9-8" + sodipodi:linespacing="125%" + transform="scale(1.1528505,0.86741516)"><tspan + sodipodi:role="line" + id="tspan3605-9-7-2" + x="6096.7612" + y="12292.677" + style="font-size:564.44445801px">Module-B: Privat-APIs CAN-bus Dev-XX</tspan></text> +</g><g + transform="translate(50.41284,1816.8854)" + style="fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round" + id="g3485-2-4"><g + id="g3446-3-7"><rect + y="10154.886" + x="6701.6465" + height="775.28577" + width="13048.449" + id="rect3601-4-38-1-0" + style="fill:#c8b7b7;fill-opacity:1;fill-rule:evenodd;stroke:#0d46f0;stroke-width:39.12268829;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /></g><text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:941.5914917px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="6096.7612" + y="12292.677" + id="text3603-9-9-8-0" + sodipodi:linespacing="125%" + transform="scale(1.1528505,0.86741516)"><tspan + sodipodi:role="line" + id="tspan3605-9-7-2-2" + x="6096.7612" + y="12292.677" + style="font-size:564.44445801px">Module-C: Privat-APIs CAN-bus Dev-YY</tspan></text> +</g></svg>
\ No newline at end of file diff --git a/signaling/index.md b/signaling/index.md new file mode 100644 index 0000000..4f6a84f --- /dev/null +++ b/signaling/index.md @@ -0,0 +1,32 @@ +===== AGL Message Signaling (proposal) ===== + +==== Architecture Proposal ==== + +This [document](./architecture.md) presents a proposal of architecture for message signaling in AGL. + +Also available as a [PDF Document](http://iot.bzh/download/public/2016/signaling/AGL-Message-Signaling-Architecture.pdf) + +==== Documentation ==== + +Developer Guidelines are available as a [PDF Document](http://iot.bzh/download/public/2016/signaling/AGL-Message-Signaling-Developer-Guidelines.pdf) + +GPS Binding example is available on Github: [github:iotbzh/af-gps-binding](https://github.com/iotbzh/af-gps-binding) + +==== OpenXC Demo ==== + +A reference HTML5 application has been developed: see [github:iotbzh/txc-demo](https://github.com/iotbzh/txc-demo). + +This application uses a [OpenXC trace file](http://openxcplatform.com/resources/traces.html) to display 4 different panels representing live vehicle data. + +It's available as an [AGL Application paclage](http://iot.bzh/download/public/2016/afb-demos/txc-demo_0.1.wgt) installable through AGL Application Framework. + +==== Benchmarks ==== + +Some tests to evaluate the performances of the framework have been done by simulating CAN Data: [AGL-AppFW-CAN-Signaling-Benchmark.pdf](http://iot.bzh/download/public/2016/signaling/AGL-AppFW-CAN-Signaling-Benchmark.pdf) + +==== AMM Munich'16 Presentation ==== + +[Jose's presentation at AGL AMM Munich'16](http://iot.bzh/download/public/2016/build-agl-application-AMM-Munich-2016/) + + + |