18
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

Jádro aplikace, rozhraní webových služeb a prezentační vrstva pro systém PartyBoard

Embed Size (px)

Citation preview

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

Architektura projektu3

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í

Ukázka aplikace Board6

● 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í

Děkuji Vám za pozornost

9

Blíže vysvětlete co všechno systém PB umí, kromě prostého zobrazení zaslané SMS.

10

Otázka 1 ze 4

● 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

Vysvětlete, jak je v testovacím prostředí realizováno odesílání SMS zprávy.

12

Otázka 2 ze 4

● 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

● zanořené entity jsou načítány pomocí pohledů z DB ● ruční omezení

15

Cykly zanořených entit

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í