jako omezení počtu volání API

Slides:



Advertisements
Podobné prezentace
JIP / KAAS / ZR aneb „Co budeme dělat
Advertisements

Pokroky v technologiích (2)
Nadpis Portál pro komunikaci s občany 1 Portál pro komunikaci s veřejností Portál pro komunikaci s veřejností DATRON, a.s. ing. Jaromír Látal projektový.
Aplikační a programové vybavení
 Informací se data a vztahy mezi nimi stávají vhodnou interpretací pro uživatele, která odhaluje uspořádání, vztahy, tendence a trendy  Existuje celá.
JIB Jednotná informační brána seminář Digitální knihovna STK Praha, 9. října 2001 Martin Vojnar Jiří Pavlík Naděžda Andrejčíková.
Přednáška č. 5 Proces návrhu databáze
Elektronický obchod. Požadavky na funkčnost aplikace nabídka zboží zboží se může prodávat za různé ceny (akční nabídky, sezónní výprodeje) evidence zákazníků.
DFD - systém Databáze systému Správa systému Zpracování žádost Provoz systému strávník tazatel_žádoststrávník_žádost DB objednávka DB strava DB strávník.
Architektury a techniky DS Tvorba efektivních příkazů I Přednáška č. 3 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
SQL Lukáš Masopust Historie  Předchůdcem databází byly papírové kartotéky  děrný štítek  1959 konference  1960 – vytvořen jazyk COBOL.
Analytická studie Datový model Funkční model Scénáře použití
Skip-List je datová struktura, která může být použita jako náhrada za vyvážené stromy. představují pravděpodobnostní alternativu k vyváženým stromům (struktura.
Tutoriál EBSCO Discovery Service ~ Jednoduché vyhledávání
Daniel Mikeš, I4.E Vedoucí práce: Lukáš Masopust.
A Integrace ERP a e-shopu prakticky aneb není propojení jako propojení … Ing. Jan Svoboda Head of e-shop platforms, Allegro Group
NET Genium software pro výstavbu a provoz informačního portálu Martin Vonka
Petr Šetka, MVP Exchange, MCSE:Messaging, MCT Windows Small Business Server 2003 R2.
Analýza informačního systému
Tabulkový procesor.
Školení správců II. Petr Pinkas RNDr. Vít Ochozka.
Architektura databází Ing. Dagmar Vítková. Centrální architektura V této architektuře jsou data i SŘBD v centrálním počítači. Tato architektura je typická.
Úvod. školní: příprava na předmět Databázové systémy praktický: webové aplikace databázové systémy základy vývoje webových aplikací od návrhu databáze.
Manažerské přístupy k informačnímu systému města
REKS - Regionální knihovnický systém Školení pro dobrovolné knihovníky 4. března 2008.
Relační databáze.
Tomáš Urych, ESO9 Intranet a.s.
ICQ. Co je ICQ? ICQ je nejpoužívanější a nejpopulárnější komunikační program. ICQ je zkratka slangového výrazu „I seek you“ (hledám tě). Slouží ke komunikaci.
Databázové systémy Architektury DBS.
Metainformační systém založený na XML Autor: Josef Mikloš Vedoucí práce: Ing. Jan Růžička, Ph.D. V/2004.
Dokumentace „skelnatění“ sítě
Databázové systémy Přednáška č. 7 Uživatelské rozhraní.
Rozšíření IQ sestav v RZ Jak zobrazovat data na 100% ? Ing. Robert Naar Skalský Dvůr
Jazyk PHP Programovací jazyk PHP (Hypertext preprocessor) je skriptovací jazyk, který běží na straně serveru. KLIENT - SERVER Server posílá do vašeho počítače.
EBSCOhost Collection Manager ~ Vytváření profilů Tutoriál support.ebsco.com.
Architektury a techniky DS Cvičení č. 9 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Microsoft Office InfoPath 2003 Tomáš Kutěj Account Technology Specialist
Databázové systémy II Přednáška č. 9. Transakce je logická jednotka práce sestávající z jednoho nebo více SQL příkazů, které jsou atomické z hlediska.
Georeporty aplikované využití geoprostorových informací
Databázové modelování
2 Petr Žitný znalosti.vema.cz 3 Báze znalostí Nová služba zákazníkům ▸Báze naplněná informacemi, ke které mají uživatelé přímý přístup Základní cíl ▸Poskytovat.
Technické řešení Mapových služeb Portálu veřejné správy Jiří Kvapil.
GORDIC spol. s r. o. pobočka Ostrava. Obsah prezentace Varianty řešení -TC Kraje -TC Kraje – hosting dodavatele Maintenance, kompletní aplikační podpora.
Analýza informačního systému. Podrobně zdokumentovaný cílový stav Paramentry spojené s provozem systému – Cena – Přínosy – Náklady a úspory – …
Přístup do IS z mobilních zařízení Tomáš Tureček Katedra Informatiky FEI VŠB-TU Ostrava.
Webové služby pro komunikaci s informačním systémem eQuip Martin Širajch.
SIMPLE freehosting UNIVERZITA PARDUBICE Fakulta elektrotechniky a informatiky projekt pro ISPWE.
Management zařízení (Mikrotik, UBNT, CMTS modemů)‏ Monitoring sítě / zobrazení na mapě Statistiky sítě Fakturace Plánování Uživatelské rozhraní Evidence.
OBÁLKY KNIH.cz Jiří Nechvátal Jihočeská vědecká knihovna v Českých Budějovicích
Publikujeme s Autodesk MapGuide v.5.0 Ing. Jan Růžička, Dr. Ing. Jiří Horák VŠB-Technická univerzita Ostrava
INFORMAČNÍ SYSTÉM GEOLOGICKÝCH SBÍREK
Úvod do databází zkrácená verze.
© IHAS 2011 Tento projekt je financovaný z prostředků ESF prostřednictvím Operačního programu Vzdělávání pro konkurenceschopnost a státního rozpočtu ČR.
Univerzitní informační systém II., Lednice 2003 Zadávání a kontrola přihlášek Tomáš Klein
Bezpečnostní technologie I
Aplikace pro správu a archivaci účtenek
Team Foundation Server 2015
Karel Mašát, RssToEvernote Karel Mašát,
Přihlášení.
Monitoring sítě.
Příklad komunikace e-shopu s FlexiBee
ESET & Flexibee Igor Hák,
ABRA FlexiBee Developers Day 2015
Přednášky z distribuovaných systémů
Přednáška 9 Triggery.
Začínáme s FlexiBee API
Rozšiřování FlexiBee fáze 1
Nové webové mapové aplikace ČGS RNDr. Vít Štrupl, PhD. Nesuchyně 4. 4
WORDPRESS AFFILIATE DATA V XML.
Transkript prezentace:

jako omezení počtu volání API Web Hooks Ahoj kolegové vývojáři! Touto prezentací bych Vás rád seznámil s WebHooks a s tím jak tato technologie pomáhá omezit počet volání na API. Co se o Web Hooks dozvíte? tak především co to je? k čemu to je dobré? jak to funguje? jak se to používá? => tj. všechno co potřebujete, abyste mohli s Web Hooks ihned začít ;-) jako omezení počtu volání API

prostředek synchronizace externích systémů (např. e-shop) Co to je? prostředek synchronizace externích systémů (např. e-shop) nadstavba Changes API Je to prostředek ke snadné synchronizaci externích systémů, které jsou závislé na datech ve FlexiBee (např. e-shop).

Hollywood principle: “Don’t call us, we’ll call you.” K čemu to je? Hollywood principle: “Don’t call us, we’ll call you.” odpadá aktivní vyhledávání změn (push notifikace) o změně se dozvíte do několika sekund Jaký je přínos synchronizace pomocí Web Hooks? Řešení je založené na holywoodském principu dle známého “Nevolejte nám, my zavoláme Vám.” Nebo-li nemusíte hledat, která data se změnila, FlexiBee Vám dá samo vědět, když se něco změní. O změně se dozvíte okamžitě, aniž by bylo nutné zatěžovat API neustálými dotazy na změnu v datech.

Nevhodné způsoby synchronizace čtení různých evidencí na základě hodnoty lastUpdate není 100% spolehlivé čtení změn z žurnálu velmi pomalé Žurnál není optimalizován pro rychlé čtení. Má to být pouze žurnál změn.

Jak to funguje? (uživatelsky) v AFB si zaregistrujete URL Vaší aplikace Web Hook registrujete ke konkrétní firmě změna dat spouští odeslání notifikace notifikace neobsahují data - pouze informují o změnách (vytvoření faktury, změna objednávky, …) Bylo by vhodné doplnit uživatelskou ilustrací jak fungují Web Hooks: změním fakturu -> posílá se notifikace

Jak to funguje? (technicky) pro každou firmu s registrovanými WebHooks se čeká na změny v Changes API pro každý registrovaný hook dané firmy se naplánuje odeslání změn od poslední notifikace odeslání notifikace se opakuje dokud nedojde k úspěšnému doručení při chybách problémový hook penalizujeme

Schéma: Jak fungují Web Hooks

čtení změn pomocí REST API z evidence changes Changes API v databázi jsou triggery zapisující provedení SQL operací INSERT, UPDATE, DELETE do tabulky changelog čtení změn pomocí REST API z evidence changes /c/{firma}/changes ?start={nextVersion}&limit=100 /c/{firma}/changes ?evidence=faktura-vydana Odbočka vysvětlující základ na kterém Web Hooks staví.

Popis změn v Changes API GET /c/{firma}/changes?start=169&limit=1 <winstrom globalVersion=”2395”> <cenik in-version="169" operation="create"> <id>5</id> <id>ext:ART-1</id> </cenik> <next>170</next> </winstrom>

Notifikace z Web Hooks obsahuje totožný popis změn jaký poskytuje Changes API slučování změn - max. 200 změn / notifikace

Ukázka notifikace Web Hooks (HTML / JSON) <winstrom globalVersion="2395"> <faktura-vydana in-version="2394" operation="create"> <id>45</id> <id>code:VF2-0001/2015</id> </faktura-vydana> <cenik in-version="2395" operation="update"> <id>2</id> <id>code:HREBIK</id> </cenik> <next>none</next> </winstrom>

{ "winstrom": { "@globalVersion": "2395", "changes": [{ "@evidence": "cenik", "@in-version": "2395", "@operation": "update", "id": "2", "external-ids": ["code:HREBIK"] }], "next": "none" }

Jak zpracovávat notifikace? uložit si seznam změn potvrdit příjem nemělo by trvat déle než 15 s HTTP status 2xx + prázdné tělo v nezávislém vlákně průběžně zpracovávat přijaté dosud nezpracované změny jednoduché čtení provádět okamžitě pomalé dotazy plánovat na pozdější synchronizaci (aktualizace ceníku)

při trvající chybě roste zpoždění až na 1 hod Penalizace hooků za nedodržení podmínek nebo dokonce neúspěšné doručení naskakují penalizace dle závažnosti (10 - 180 s) při trvající chybě roste zpoždění až na 1 hod po nápravě penalizace pozvolna klesá pro rychlejší obnovu normálního provozu lze použít volání API pro reset penalizace

Jak to funguje v cloudu? stejně jako na lokálním serveru aplikační servery si mezi sebou volí uzel starající se o zpracování WebHooks

Schéma: Volba uzlu pro zpracování Web Hooks v cloudu

Schéma: Monitoring Web Hooks pro administrátory

Jak se to používá? aktivace Web Hooks registrace hooku vymazání hooku výpis registrovaných hooků reset penalizace

licence na REST API pro zápis zapnuté Changes API 1. Aktivace Web Hooks licence na REST API pro zápis zapnuté Changes API PUT /c/{firma}/changes/enable.xml povolené Web Hooks v konfiguraci serveru (implicitně povoleno) enableHooks = true

PUT|POST /c/{firma}/hooks.xml ?url={hook_url} &format={JSON|XML} 2. Registrace hooku PUT|POST /c/{firma}/hooks.xml ?url={hook_url} &format={JSON|XML} volitelné parametry: lastVersion - od jaké verze chceme změny secKey - tajný klíč pro jednoduché ověření skipUrlTest - potlačení testu zadané URL lastVersion = 0 .. global version secKey = jednoduché ověření zda patří příchozí notifikace Vámi registrovanému hooku (X-FB-Hook-SecKey header)

3. Vymazání hooku DELETE /c/{firma}/hooks/{id}.xml

4. Výpis registrovaných hooků GET /c/{firma}/hooks/ <winstrom> <hook> <id>1</id> <url>http://hook.flexibee/hook.php</url> <dataFormat>XML</dataFormat> <lastVersion>2395</lastVersion> <penalty>0</penalty> <secKey/> </hook> </winstrom>

5. Reset penalizace PUT|POST /c/{firma}/hooks/{id}/retry vynuluje penalizaci a naplánuje okamžité odeslání notifikací

Co nás čeká? omezení na vybrané evidence filtrování notifikací podle dat notifikace na základě změny stavu (např. stav úhrady faktury) notifikace rovnou s daty

Co závěrem o Web Hooks? rychlá synchronizace bez zbytečného zatěžování API synchronizujte s ABRA FlexiBee jednoduše, bezpečně, chytře ;-)

Dokumentace www.flexibee.eu/api/dokumentace/ref/changes-api/ www.flexibee.eu/api/dokumentace/ref/web-hooks/