Univerzálne API pre prístup do D2000
Prvou kľúčovou funkciou SmartWeb platformy je možnosť jednotne pristupovať k dátam a službám D2000 s použitím univerzálneho API rozhrania. Toto API je nezávislé na použitej technológii klienta a je s ním možné získavať dáta a volať služby implementované v D2000.
Vo všeobecnosti môžme technológie online klient-server komunikácie rozdeliť na dve kategórie podľa povahy komunikácie. Do prvej skupiny patria technológie, kde výmenu dát iniciuje vždy klient a server odpovedá, tzv. Request - Response komunikácia. Druhá kategória je Publish - Subscribe komunikácia, kedy klient sa zaregistruje na odoberanie konkrétneho typu dát (subscribe) a server tieto dáta publikuje klientom ktorí o ne požiadali.
SmartWeb server implementuje ako Request - Response tak Publish - Subscribe komunikáciu cez nasledovné rozhrania:
REST API realizuje Request - Response komunikáciu
Comet API realizuje ako Request - Response tak Publish - Subscribe komunikáciu
Obe rozhrania komunikujú s D2000 systémom cez JAPI knižnicu.
Rest API
Rest API je štandardné API pre webové a mobilné aplikácie. SmartWeb Rest API ponúka nasledovné možnosti:
načítavanie archívov
volanie akejkoľvek ESL RPC a Java RPC
downloading/uploading binárneho obsahu z/do D2000 cez SBA RPC
serializáciu všetkých typov aj štruktúry
selekciu návratových dát (časová známka, flagy, ...), downscaling
performance monitoring
autentifikácia, security, kompresia, response streaming, atď.
Obrázok ilustruje príklad použitia REST API rozhrania na volanie jednoduchéj D2000 RPC procedúry.
Comet API
Comet API poskytuje tie isté funkcie ako REST API a naviac:
subscription na D2000 objekt
registráciu javascript RPC volateľnej asynchrónne z D2000
notifikácie o session zo SmartWeb servera (expirácia, zaniknutie session)
SmartWeb Comet API je implementované cez knižnicu cometd, ktorej robusná funkcionalita je overená na riešeniach so 150 tis. používateľmi. Medzi výhody tejto knižnice patrí:
inteligentný výber optimálneho komunikačného protokolu na základe aktuálnych možností konekcie - Websocket, HTTP 1.1/2.0
pripojenie implementovateľné v akomkoľvek jazyku – otvorená špecifikácia
nízky payload na udržanie spojenia