jádro aplikace, rozhraní webových služeb a prezentační vrstva pro systém partyboard
TRANSCRIPT
Antonín Neumann
Jádro aplikace, rozhraní webových služeb a prezentační vrstva
pro systém PartyBoard
vedoucí práce: Ing. Jakub Daněk
● vlastní zadání → 2 DP ⇒ 1 společný cíl - projekt● komplexní aplikace propojující návštěvníky nočních klubů
○ SOA, REST API, relační DB, administrace, webová a mobilní aplikace
● příjem, správa a vizualizace textových zpráv○ GMS brána, mobilní aplikace, aplikace “Board”○ správa jednotlivých Boardů → několik úrovní přístupu○ blokování uživatelů, nevhodná slova
● soutěžní a reklamní systém● veřejné API → wigdety, mashupy
Co je PartyBoard
2
REST API● návrh + dokumentace API Blueprint
○ → Apiary.io (http://docs.partyboard.apiary.io) → mock
● implementace○ node.js, express, JSON, JWT
● exkluzivní přístup k DB → středobod projektu● škálovatelnost - kompetní webserver● uživatelské testy + Postman
4
Technické řešení
PHP framework● modulární MVC patter
○ správa systému PB, prezentační stránky
● jádro + moduly → OOP, namespaces● plná kontrola, lightweight● šablony a hiearchie bez template engine● plánováno uvolnění jako open source
5
Technické řešení
● navržena architektura celého systému● implementováno API pokrývající zamýšlenou funkcionalitu
○ dokumentace, otestováno, zabezpečeno
● vytvořen PHP framework● funkční komunikace mezi všemi komponentami● realizován datový model (via Jan Novák)● mobilní aplikace pro Android (via Jan Novák)● zátěžové testy (via Jan Novák)
7
Dosažené výsledky
● DP ⇒ rozjetí projektu (startup / kick off)● připraveno ke spuštění
○ vlastní doména; logotypy; profesionální šablona webové prezentace
● budoucí plány○ dodělání prezentačních stránek a administrace○ implementace komerční GSM brány → poptávka○ nasazení do reálného provozu → pořízení VPS○ test na 1-2 reálných klubech○ založení společnosti → 51% Novák (marketing), 49% Neumann (technologie)
● spuštění ostrého provozu ⇒ 20168
Závěrečné zhodnocení
● správa PB○ několik úrovní přístupu○ nastavení jednotlivých Boardů
○ blokování uživatelů, nevhodná slova
● veřejné API → wigdety, mashupy
11
Co systém PB umí
● reklamní systém● soutěžní systém
○ kupóny
● prezentační stránky● správa klubů, Boardů,
premium účtů
zprávy ⇒ killer feature
● odesílání v testovacím prostředí není řešeno● potřebné až u soutěží, které měli/mají prozatím
nízkou prioritu● API připraveno → chybí GMS brána
13
Odesílání SMS
V kapitole 5.1.6. říkáte, že vazby 1:N reprezen-tujete zanořením entit, jak v takovém případě řešíte cykly?
14
Otázka 3 ze 4
Proč pro REST API využíváte javascript, který Vám v testech nevyšel lépe než PHP. Proč nepoužíváte PHP ve kterém máte dělaný i webový framework a který dle tabulky 4 i lépe umíte?
16
Otázka 4 ze 4
● stoupající popularita celé platformy○ http://pypl.github.io/PYPL.html○ http://githut.info/
● nižší paměťové nároky● node.js aplikace = webserver => škálovatelnost =>
=> nginx (reverse proxy) => load balancing● možnost “vyzkoušet si to”
17
Proč node.js
● součet času jednotlivých requestů ○ jak dlouho trvá serveru vyřízení jednotlivých requestů○ 2,7 - 7,2 rychlejší javascipt
● celkový čas pro vyřízení všech requestů○ jak dlouho to trvá od odeslání prvního requestu do příjetí poslední response
○ 3,6 - 4,6 rychlejší PHP ⇒ více vláknové zpracování→ load balancing u JS
⇒ více instancí REST API serveru → více vláknové zpracování18
Proč node.js - výsledky měření