HMI * nad webovými technologiemi

Podobné dokumenty
Obsah. Kapitola 1. Předmluva 11 O této knize 13 Konvence...13

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové technologie

Obsah. Úvod 11 Zpětná vazba od čtenářů 13 Errata 14 Poznámka ke kódům 14

Platformy / technologie. Jaroslav Žáček

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové technologie

Mobile application developent

Inteligentní řízení strojů s portfoliem u-mation Řešení pro automatizaci a digitalizaci Let s connect. Automatizace a digitalizace

Proč Angular JS framework?

Technologie Java. Jaroslav Žáček

Úvodem Seznámení s HTML Rozhraní Canvas... 47

Novinky v oblasti SAP Mobility. Martin Zikmund, Presale Mobility Platforms Miroslav Řehoř, Account Executive

PLATFORMY / TECHNOLOGIE JAROSLAV ŽÁČEK

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

w w w. u l t i m u m t e c h n o l o g i e s. c z Infrastructure-as-a-Service na platformě OpenStack

Semináˇr Java X J2EE Semináˇr Java X p.1/23

SOAP & REST služby. Rozdíly, architektury, použití

ADMINISTRACE POČÍTAČOVÝCH SÍTÍ. OPC Server

Úvod do Web Services

OSGi. Aplikační programování v Javě (BI-APJ) - 6 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha

Obsah. Úvod 11. Vytvoření emulátoru 20 Vytvoření emulátoru platformy Android 4.4 Wearable 22 Spouštění aplikací na reálném zařízení 23

Moderní privátní cloud pro město na platformě OpenStack a Kubernetes

Formy komunikace s knihovnami

Další vlastnosti Springu Moduly Springu. Spring Framework. Pavel Mička. Pavel Mička Spring Framework 1/18

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Efektivní vývoj mobilních aplikací na více platforem současně. Mgr. David Gešvindr MCT MSP MCPD MCITP

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Domino 10 nové komponenty a související témata (node.js, ES )

SECOMEA - Jednoduché a bezpečné připojení ke vzdáleným zařízením přes internet

Vývoj Internetových Aplikací

Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13

Obsah. Úvod 11 O autorovi 11 Koncept knihy 11 Zpětná vazba od čtenářů 12 Zdrojové kódy ke knize 12 Errata 12 ČÁST I VÝVOJ MOBILNÍ APLIKACE

Metodiky pro automatické testování webové aplikace. Ondřej Melkes, Martin Komenda

Olga Rudikova 2. ročník APIN

[ASP].NET Core Demystified. Miroslav Holec. Konzultant a lektor [ASP].NET Core.

Ember.js. Jan Kopřiva, Vojtěch Jasný

nástroj pro jednoduchou správu a vedení agendy studentských počítačových sítí na kolejích SU OPF Karviná Ing.

KIV/PIA 2012 Ing. Jan Tichava

Analýza a Návrh. Analýza

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

Virtualizační platforma ovirt

Hiearchical MVC (Model-view-controller) vs. PAC (Presentation-abstraction-control)

Vzdálená správa v cloudu až pro 250 počítačů

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové technologie

CineStar Černý Most Praha

Google Web Toolkit. Martin Šurkovský, SUR března Katedra informatiky

Projekt JetConf REST API pro vzdálenou správu

InternetovéTechnologie

Internet Information Services (IIS) 6.0

X33EJA Web Services. Martin Ptáček, KOMIX s.r.o.

MATURITNÍ PRÁCE dokumentace

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Spring framework 2.0. Roman Pichlík CZJUG

Real Time programování v LabView. Ing. Martin Bušek, Ph.D.

Architektura GIS KMA/AGI. Karel Jedlička

Jini (pronounced GEE-nee) Cvičení 8 - DS 2006

Zakázka Vnitřní integrace úřadu v rámci PROJEKTU Rozvoj služeb egovernmentu ve správním obvodu ORP Rosice

SIMATIC S IT. Micro Automation. Promoters Meeting October Představení CP IT SPIDER CONTROL TELESERVIS. TESTOVACÍ server.

Počítačová Podpora Studia. Přednáška 5 Úvod do html a některých souvisejících IT. Web jako platforma pro vývoj aplikací.

Obsah. SEZNÁMENÍ S HRAMI V HTML Nové funkce HTML Nové funkce CSS

TSM for Virtual Environments Data Protection for VMware v6.3. Ondřej Bláha CEE+R Tivoli Storage Team Leader. TSM architektura IBM Corporation

Software je ve světě IT vše, co není Hardware. Do softwaru patří aplikace, program, proces, algoritmus, ale i data (text, obrázky), operační systém

OMO Patterny pro UI. Základy UI - HTML, DOM, JavaScript, CSS. Single Page Application

Karel Bittner HUMUSOFT s.r.o. HUMUSOFT s.r.o.

Instalace a konfigurace web serveru. WA1 Martin Klíma

Ing. Jiří Fůsek. Základní informace. Pracovní zkušenosti. Vzdělání. 09/ nyní Freelancer. 09/ /2010 Univerzita Tomáše Bati ve Zlíně

Ruby on Rails. Bc. Tomáš Juřík Bc. Bára Huňková

Knot DNS Resolver. Modulární rekurzivní resolver. Karel Slaný

Webové programování je CHALENGE! Milan Čapoun, Samuel Šramko

PA165: Úvod do Java EE. Petr Adámek

Vzdálený přístup k počítačům

Nástroje a frameworky pro automatizovaný vývoj. Jaroslav Žáček jaroslav.zacek@osu.cz

Platformy / technologie. Jaroslav Žáček

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

EXTRAKT z technické zprávy ISO

GWT pro pokročilé. MoroSystems, s.r.o. Pavel Klobása. Senior Java Developer.

Informační technologie. Název oboru: Školní rok: jarní i podzimní zkušební období 2017/2018

Platformy / technologie. Jaroslav Žáček jaroslav.zacek@osu.cz


Cesta k moderním komunikacím

monolitická vrstvená virtuální počítač / stroj modulární struktura Klient server struktura

Tvorba přizpůsobivých webových rozhraní

Prototyping konfigurace linuxových serverů. horizontální škálování Deltacloud API

IS pro podporu BOZP na FIT ČVUT

Aleš Rybák, Jiří Kadlec. Pluginy budoucnosti

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13

ABBYY Automatizované zpracování dokumentů

Server-side technologie pro webové aplikace

Vývoj Internetových Aplikací

Česká pošta, s.p. na Linuxu. Pavel Janík open source konzultant

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML

IT ESS II. 1. Operating Systém Fundamentals

Vývoj Internetových Aplikací

SIMATIC Industrial Thin Client. Siemens AG All rights reserved.

Compatibility List. GORDIC spol. s r. o. Verze

Aplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části:

(Enterprise) JavaBeans. Lekce 7

Nové vývojové nástroje i5/os Rational Developer for System i V7.1

Transkript:

HMI * nad webovými technologiemi Cesta vývojářů webových aplikací do nitra automobilu 6.11.2016 *) Human Machine Interface

Osoby a obsazení! Štěpán Mík (java, backend)! Ivan Čentéš (frontend)! Etnetera a.s.! Agenda Představení projektu Výběr technologií Architektura systému

HMI (human machine interface)! Rozhraní mezi člověkem (uživatelem) a strojem! User interface grafika, zvuk, Atypické vstupy i výstupy (z hlediska vývojáře desktopových aplikací)! Ovládání stroje Vyvíjíme prototyp! Kontinuální vývoj! Časté změny => rychlá implementace! Open Source Pro ilustraci Škoda VisionS

Koncept

Výběr technologie Zadání! Java! Linux Původně! JavaFX! TCP komunikace s okolím! Základní linuxová instalace Nakonec! Chromium! HTML, JavaScript, CSS! OSGi! Netty! JNA přístup k nativním knihovnám systému bez nutnosti kompilace! TCP! Unix socket X, DBus,! mix 32 / 64 bit! Exotické kernel moduly a služby

Koncový stav

Výběr UI platformy JavaFX nevyhovuje! Není flexibilní pokud nejde o standardní UI! Slabá podpora multimédií Chromium (obecně moderní prohlížeč)! Nejlepší multimediální platforama! DOM, CSS 3, WebGL, WebRTC

Chromium -> HTTP server! Určitě ne servety Komplikované (kontejner, websockety) Odtržené od zbytku aplikace Vlákna! Netty Příjemně low level Kompletní (S)HTTP out of the box (Používá Play framework, micoservices stacky, )

Nechceme monolit! Kontejner, který Definuje běhové prostředí pro více vláken Umožňuje oddělit moduly a řešit závislosti Podporuje různé konfigurace systému (devel, auto, jiné auto)! OSGi Výše uvedené plus dynamická rekonfigurace v závislosti na okolí Často využíváno v automotive a obecně v embedded kontrolerech

OSGi Bundle & Service Bundle! JAR - spravovaná jednotka (Manifest)! Statické závislosti Import - závislosti! Export publikovaná funkčnost! Kombinace za běhu! Řízení přístupu Samostatný classloader Service! Dynamické závislosti! 0 až n instancí v daný čas! Jako (C)DI, ale lepší! Registrace / Deregistrace! Tracking

Základní vzor - whiteboard pattern! Inversion of control ( don t call us, we call you )! Služba (komponenta) se registruje! Jiná část systému ji použije, když je potřeba Chcete mě? Service registry

Architektura Linux Java + OSGi Browser Hardware CAN Kernel Audio UART... os X Daemon DBus Libs Emulátory State Sockets Sockets JNA Adaptéry Abstrakce zařízení Zdroje Kompo - nenty HTTP / WebSocket Angular HMI Setup Komponenty Obrazovka Widgety

Komponenta Displej 2 Displej 1! Server a browser část! Server - napojení na ostatní části systému, zdroj dat a aktualizací! Browser - čistě UI (CSS, DOM, aktivity uživatele)! Autonomie! Vlastní komunikační protokol mezi částmi! Na rozdíl od REST! Asynchronní aktualizace a aktivace funkcí (WebSocket) Browser Server Komponenta Komponenta Stav Komponenta Komponenta Monitor Adaptér Emulátor

Frontend

Dev stack! Chromium! jeden prohlížeč! plně pod kontrolou nastavení, experimentální flagy! AngularJS + Typescript! Less CSS! NodeJS, Gulp, automatizace

Prohlížeč jako platforma! Podpora moderních standardů HTML5 APIs CSS (animace, transformace)! Rapidní vývoj! Touch-based rozhraní včetně emulace! Jednoduché debugování onsite i remote! Průhledné okno Integrace desktop aplikací

Prohlížeč jako platforma! Audio přehrávač! Více paralelních zdrojů přehrávání Media Phone System! Více výstupů zvuku WebRTC MediaDevices API

Typescript! Typovaná nadmnožina JS! Třídy, rozhraní, typy,! Výborná podpora v IDE (statická analýza, intelisense, refactoring, )! Odhalení chyb před spuštěním v prohlížeči (build process)! Kompilace do JS ES3 - bezpečný JS ES5, ES6

Adaptivní UI! Víc verzí rozhraní! A/B testování společná funkční implementace rozdílné UI/šablony podle verzí rozhraní! Neosvědčilo se responzivní UI prototypování rychle se měnící zadání

Komponenta Angular! Komponenty na serveru mají svůj obraz v Angular komponentě (direktiva) Typescript: třídy, dědičnost, interface! Component factory! Link fáze direktivy vytvoření instance komponenty (strom komponent) post request na server -> registrace a vytvoření komponenty na serveru! Destructor úklid v UI post request na server -> destrukce komponenty na serveru! ComponentContext: scope, element, attributes,...

Závěr

Linux! Záchrana i prokletí Leccos existuje, ale nefunguje out-of-the-box Obešli jsme se bez kompilace čehokoliv (správci balíčků - díky!) X server architektura, vncserver! Co jsme objevili JNA - oproti JNI nevyžaduje nativní kompilaci DBus (bluetooth, nfc) - Java implementace je zoufale zastaralá Audio v Javě nefunguje spolehlivě

Vliv architektury na kvalitu kódu! Rozdělení do vrstev vynucuje dobré postupy Front end vs backend! OSGi vynucuje (může vynucovat) Oddělení implementace a rozhraní Modularitu Robustnost

Asynchronní / Funkcionální / Reaktivní! Asynchronní - komunikace server klient Robustnost (odolnost proti výpadku)! Funkcionální přístup svědčí více vláknům Vlákna nechte profesionálům Futures, Netty event loop, HashWheelTimer, java.util.concurrent! Funkcionální - ADT, immutable hodnoty, Preference transformačních řetězců než beany Ála Effects v Haskellu! Systém postaven na Reakcích na změny stavu Reakcích na akcích uživatelů! Pozn.: Java 8 (lambda) nezbytná

Kontakty stepan.mik@etnetera.cz ivan.centes@etnetera.cz http://etnetera.cz Děkujeme za pozornost