192.168.2.1:8080 filekakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő...

28
Kakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási architektúra alapokon, elosztott rendszerű heterogén kialakítású alacsony energiafelvételű nyílt forráskódú server környezetre, AJAX felhasználói felülettel http://192.168.2.1:8080 access point: homeaut.com

Upload: others

Post on 23-Sep-2019

2 views

Category:

Documents


0 download

TRANSCRIPT

Kakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási architektúra alapokon, elosztott rendszerű heterogén kialakítású alacsony energiafelvételű nyílt forráskódú server környezetre, AJAX felhasználói felülettel

http://192.168.2.1:8080access point: homeaut.com

AP: homeaut.com http://192.168.2.1:8080

Dataflow alapok – definíció

Applikáció: hálózat előgyártott komponensekbőlProgramozás: komponensek kiválasztása, paraméterezése, hálózat kialakítása

AP: homeaut.com http://192.168.2.1:8080

Dataflow alapok – komponens, portok

• consumer (input)• property• producer (output)

Komponens library:lehetőségek, “nyelv”

AP: homeaut.com http://192.168.2.1:8080

Dataflow alapok – adattípusok

• Trigger• Integer• Packet (pár byte)• kép• hang• szövegsorok (Unix pipe)• összetett packet

AP: homeaut.com http://192.168.2.1:8080

Dataflow alapok – üzenettovábbítás

Dispathcer típusok: szinkron, aszinkron...

Párhuzamos futtatás: t öbbprocesszoros, többgépes rendszerek támogatása...

Az üzenetek ténylegesen vagy kvázi egyszerre továbbítódnak...

AP: homeaut.com http://192.168.2.1:8080

A fejlesztés szétválik

• rendszer (dispatcher, fejlesztői környezet)adott, sok beleszólásunk nincs, hacsak nem magunk írjuk

• komponensfejlesztésnem mindig lehetséges, hagyományos programozás, kisebb feladatok, rendszerszemlélet szükségeltetik

• applikációfejlesztés“több mint konfigurálás, kevesebb mint programozás”,érettségi kell hozzá, no meg persze a domain ismerete

AP: homeaut.com http://192.168.2.1:8080

Komponensfejlesztés

1. Natív komponens (homeaut.com: C++)2. Kompozit komponens – Blinker:

kompozit komponensek tetszőleges mélységig egymásba ágyazhatók

AP: homeaut.com http://192.168.2.1:8080

Kakukkosóra specifikáció

Master: • 6 kakukk dolgozik szakadatlan• heartbeat IP-n• lámpás játék• webes megjelenítés

Slave:• elsődleges gép kiesésekor

átveszi a fő funkciót

AP: homeaut.com http://192.168.2.1:8080

Pulsar komponens

Pulsar komponens: megadott időközönként (ms) Triggert küld ki.

Egy ilyen komponens fogja megnoszogatni a kakukkokat 10 másodpercenként.

AP: homeaut.com http://192.168.2.1:8080

Cuckoo komponens

Cuckoo komponens: 6-ot rakunk le belőle.

Paraméterei:• melyik webes widgethez van

hozzárendelve,• melyik hangot játssza le.

AP: homeaut.com http://192.168.2.1:8080

Összekötés fail

Így minden kakukkegyszerre szólal meg.

(Az üzenetekegyszerre továbbítódnak)

AP: homeaut.com http://192.168.2.1:8080

Carousel komponens

Carousel komponens: különleges message továbbítás az out producer porton, nem egyszerre küldi el, hanem egyesével,körbe-karikába

AP: homeaut.com http://192.168.2.1:8080

Kakukkosóra kakukkoló kész

A Pulsar 10 s időközönkénttriggereli a Carousel-t,aki egyesével továbbítjaazt a cuckoo1..cuckoo6-nak.

AP: homeaut.com http://192.168.2.1:8080

Kakukkosóra Master, Heartbeat I.

Heartbeat küldése: egy másik Pulsar

Blinker: olyan webeswidget, amely Triggerérkezésekor felvillan

AP: homeaut.com http://192.168.2.1:8080

Kakukkosóra Master, Heartbeat II.

Remote: bejövő értékek Packet-be csomagolásaUdpSend: Packet küldése IP-n, másik gépre

AP: homeaut.com http://192.168.2.1:8080

Kakukkosóra Master áttekintés

heartbeat küldése

kakukkok sorban

AP: homeaut.com http://192.168.2.1:8080

Ismertebb dataflow rendszerek I.

Unix shell pipes• komponens: parancsok felparaméterezve• adattípus: csak egyféle, szöveg soronként• kapcsolat: korlátozott, 1 in (stdin), 2 out

(stdout, stderr)• futás: párhuzamos (MS-DOS: egymás után, file)• érdekesség: minden cli program helyből

komponens/usr/bin/tee

AP: homeaut.com http://192.168.2.1:8080

Ismertebb dataflow rendszerek II.

Spreadsheet (pl. Excel)• komponens: képlet (kár, hogy nincs library!)• adattípus: szám, szöveg• kapcsolat: hivatkozási hálózat• futás: csak komponens módosításkor• érdekesség: komponensekre hivatkozás címmel

És most legalább megtudtuk azt is, hogy spreadsheetek készítése programozás-e vagy sem: határeset(Egy HTML oldal elkészítése viszont nem az, ha már itt tartunk.)

AP: homeaut.com http://192.168.2.1:8080

Ismertebb dataflow rendszerek III.

Make• komponens: egyes elemek fordítása (job)• adattípus: csak egyféle, “megváltozott” trigger• kapcsolat: dependency-tree• futás: kézi indításkor minden üzenet lefut• érdekesség: párhuzamos rendszer

make -j

AP: homeaut.com http://192.168.2.1:8080

Szép visual programming I.

Quartz Composer

Terület: grafika

Mac-hez adják

AP: homeaut.com http://192.168.2.1:8080

Szép visual programming II.

Microsoft Robotics Studio

AP: homeaut.com http://192.168.2.1:8080

Szép visual programming III.

Rane Drag Net

Terület: audio rendszer

AP: homeaut.com http://192.168.2.1:8080

Szép visual programming IV.

Blender

Terület: video, img proc

opensource

AP: homeaut.com http://192.168.2.1:8080

Szép visual programming V.

Clavia Nord Modular

Win32 és Maceditor

AP: homeaut.com http://192.168.2.1:8080

Köszönjük a figyelmet!

Amíg a kérdezőkfelkészülnek,leállítjuk a master applikációt.

Innentől a slave gép veszi át afeladatot, ha minden összejön.

AP: homeaut.com http://192.168.2.1:8080

Kérdések I.

Miért jó ez?• REUSE helyett USE, azonnal bevethető kódok• kétféle fejlesztő: komponens- és applikáció-• gyorsan összedobáljuk a prototípust, gyorsan

módosítunk• hirtelen lefejlesztjük a bétás komponenst,

később ráérünk tökéletesíteni• többszálúság anélkül, hogy a komponensnek

ezzel törődni kéne (make: a gcc nem többszálú)

AP: homeaut.com http://192.168.2.1:8080

Kérdések II.

Házautomatizáláshoz miért jó?• minden ház egyedi applikáció, egyedi logikák,

egyedi felület• mindig vannak kivételek, fura kívánságok, nincs

az a konfigurációs séma, ami ne dőlne be• driver architektúra: protocol és transport

komponensek• nagyobb épületekhez többszerveres

architektúra

AP: homeaut.com http://192.168.2.1:8080

Néznivaló – Kakukkosóra Slave

Röviden: a blockert 7000 ms-onként áteresztőre állítja az enabler, 4444 ms-onként blokkolóra a heartbeat (udprecv, remote felől érkezik a master gépről). A heartbeat reseteli az enablert is, így amíg jön heartbeat, a blocker zárva marad. Ha nem jön, enabler kinyitja, és 10000 ms-onként kakukkoltat a cuckoo_clock Pulsar.