28. Navázané objekty
• ?relations=
• polozky
• vazby
• prilohy
• sklad-karty
• Seznam vazeb lze získat na adrese
/c/firma/<evidence>/relations
• ?includes=…
<stat>code:CZ</stat>
• ?includes=/adresar/stat
<stat><stat><id>...</id>...</stat></stat>
Editor's Notes
Než začneme řeknu něco o FlexiBee.
Je to účetnictví:
- pro Linux, Windows a Mac OS X
- umí sklady, mzdy, majetek, apod.
- má desktopovou aplikaci, mobilní přístup a webový přístup
- má otevřené programátorské rozhraní REST API.
- umí fungovat přes internet.
Ještě jednou zopakuji – aplikace už uměla komunikovat přes internet.
Konkurence je Pohoda, Money S3 a S4, Abra G1, G2 a trochu G3
volské oko :-)
lineární vs logaritmická složitost
lineární na disku (ten je levný)
lineární na počet současných požadavků (každý trvá 5 vteřin).
logaritmická na počet instalací, počet klientů
cloud má nedostatek aktuálního výkonu, ale hodně výkonu celkem
- optimalizace pro odloženou realizaci
- selhání je standard - klientské aplikace s tím musí počítat
- OBRÁZEK: průměr za 5 minut vs průměr za 5 vteřin
Uvažovali jsme zda nepoužít nějakou platformu. Bohužel zatím žádná z nich nepodporuje PostreSQL. A současně běží daleko. Naše specializovaná aplikace je citlivá na latenci (provádí mnoho volání). Proto je i irsko příliš daleko.
Museli jsme proto zatím aplikaci provozovat jen na vlastní infrastruktuře.
Na tomto obrázku je vidět, že máme vždy tři repliky (jedna z nich je master) pro databázové úložiště. Těch databázových úložišť je více. Každé úložiště je v RAIDu. Takže od každých dat máme 6 kopií. A to nepočítám zálohy. Každý megabajt máme cca desetkrát.
Dále máme více aplikačních serverů. Každý z nich se může napojit na libovolné databázové úložiště dle firmy. Před tím jsou postaveny dva loadbalancery, které rozhazují zátěž na aplikační servery a sledují jejich životnost. Je zde maximální snaha, aby vždy stejný klient šel stejnou cestou. Tím můžeme cachovat některá data.
První věc a nejzásadnější byla úprava aplikace tak, aby mohlo na jednom serveru běžet více klientů. Znamená to načtení dat o firmě při prvním požadavku a jen její krátké cachování. Nemůžeme si tedy moc věcí přednačítat a musíme tomu podvolit vývoj. Prostě si nemůže aplikační server nahrát pár megabajtů dat a ty pak držet dlouho.
Museli jsme také upravit všechny části tak, aby byly maximálně bezstavové. Přepsali jsme třeba ochranu proti CSRF a je kompletně bezstavová – používá cookie.
Samodokumentace
Browser je nástroj
Podívám se jak to funguje.
Doklad je idempotentní.
Import lze opakovat.
Uvádíme jen to co měníme.
I povinné atributy není nutné vyplňovat, protože se dopočtou/doplní
Podporujeme formáty: XML, JSON, CSV, DBF, XLS, PDF, ISDOC, EDI, vCard, iCalendar, HTML.
Umíme importovat i gigové XML (více než je RAM).
Nejjednodušší - vyžaduje účet ve FlexiBee
Nejjednodušší - vyžaduje účet ve FlexiBee
Informační systém se autorizuje do FlexiBee.
Informační systém může říct - toto je uživatel Jarda. Lze tak použít single sign-on.
Externí identifikátory používáme i pro importy. Uděláme velké XML a tím se pak odkazujeme.
Doklad je idempotentní.
Import lze opakovat.
Uvádíme jen to co měníme.
I povinné atributy není nutné vyplňovat, protože se dopočtou/doplní
Podporujeme formáty: XML, JSON, CSV, DBF, XLS, PDF, ISDOC, EDI, vCard, iCalendar, HTML.
Umíme importovat i gigové XML (více než je RAM).