192.168.2.1:8080files.meetup.com/408089/03-penoff_zalka-ihome_kakukk.pdfkakukkosóra multimédia...

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: trinhkiet

Post on 13-May-2018

223 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: 192.168.2.1:8080files.meetup.com/408089/03-penoff_zalka-ihome_kakukk.pdfKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási

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

Page 2: 192.168.2.1:8080files.meetup.com/408089/03-penoff_zalka-ihome_kakukk.pdfKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási

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

Page 3: 192.168.2.1:8080files.meetup.com/408089/03-penoff_zalka-ihome_kakukk.pdfKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási

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

Dataflow alapok – komponens, portok

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

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

Page 4: 192.168.2.1:8080files.meetup.com/408089/03-penoff_zalka-ihome_kakukk.pdfKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási

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

Page 5: 192.168.2.1:8080files.meetup.com/408089/03-penoff_zalka-ihome_kakukk.pdfKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási

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...

Page 6: 192.168.2.1:8080files.meetup.com/408089/03-penoff_zalka-ihome_kakukk.pdfKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási

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

Page 7: 192.168.2.1:8080files.meetup.com/408089/03-penoff_zalka-ihome_kakukk.pdfKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási

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

Page 8: 192.168.2.1:8080files.meetup.com/408089/03-penoff_zalka-ihome_kakukk.pdfKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási

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

Page 9: 192.168.2.1:8080files.meetup.com/408089/03-penoff_zalka-ihome_kakukk.pdfKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási

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.

Page 10: 192.168.2.1:8080files.meetup.com/408089/03-penoff_zalka-ihome_kakukk.pdfKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási

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.

Page 11: 192.168.2.1:8080files.meetup.com/408089/03-penoff_zalka-ihome_kakukk.pdfKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási

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)

Page 12: 192.168.2.1:8080files.meetup.com/408089/03-penoff_zalka-ihome_kakukk.pdfKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási

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

Page 13: 192.168.2.1:8080files.meetup.com/408089/03-penoff_zalka-ihome_kakukk.pdfKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási

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.

Page 14: 192.168.2.1:8080files.meetup.com/408089/03-penoff_zalka-ihome_kakukk.pdfKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási

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

Page 15: 192.168.2.1:8080files.meetup.com/408089/03-penoff_zalka-ihome_kakukk.pdfKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási

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

Page 16: 192.168.2.1:8080files.meetup.com/408089/03-penoff_zalka-ihome_kakukk.pdfKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási

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

Kakukkosóra Master áttekintés

heartbeat küldése

kakukkok sorban

Page 17: 192.168.2.1:8080files.meetup.com/408089/03-penoff_zalka-ihome_kakukk.pdfKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási

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

Page 18: 192.168.2.1:8080files.meetup.com/408089/03-penoff_zalka-ihome_kakukk.pdfKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási

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.)

Page 19: 192.168.2.1:8080files.meetup.com/408089/03-penoff_zalka-ihome_kakukk.pdfKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási

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

Page 20: 192.168.2.1:8080files.meetup.com/408089/03-penoff_zalka-ihome_kakukk.pdfKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási

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

Szép visual programming I.

Quartz Composer

Terület: grafika

Mac-hez adják

Page 21: 192.168.2.1:8080files.meetup.com/408089/03-penoff_zalka-ihome_kakukk.pdfKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási

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

Szép visual programming II.

Microsoft Robotics Studio

Page 22: 192.168.2.1:8080files.meetup.com/408089/03-penoff_zalka-ihome_kakukk.pdfKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási

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

Szép visual programming III.

Rane Drag Net

Terület: audio rendszer

Page 23: 192.168.2.1:8080files.meetup.com/408089/03-penoff_zalka-ihome_kakukk.pdfKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási

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

Szép visual programming IV.

Blender

Terület: video, img proc

opensource

Page 24: 192.168.2.1:8080files.meetup.com/408089/03-penoff_zalka-ihome_kakukk.pdfKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási

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

Szép visual programming V.

Clavia Nord Modular

Win32 és Maceditor

Page 25: 192.168.2.1:8080files.meetup.com/408089/03-penoff_zalka-ihome_kakukk.pdfKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási

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.

Page 26: 192.168.2.1:8080files.meetup.com/408089/03-penoff_zalka-ihome_kakukk.pdfKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási

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ú)

Page 27: 192.168.2.1:8080files.meetup.com/408089/03-penoff_zalka-ihome_kakukk.pdfKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási

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

Page 28: 192.168.2.1:8080files.meetup.com/408089/03-penoff_zalka-ihome_kakukk.pdfKakukkosóra multimédia alkalmazás rapid prototyping módszerrel történő összeállítása dataflow programozási

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.