Odpověď

Jméno:
E-mail:
Předmět:
Ikona zprávy:

Ověření:
Křestní jméno zpěváka Gotta:

Zkratky: stiskněte shift+alt+s pro odeslání nebo shift+alt+p pro prohlédnutí


Shrnutí tématu

Poslal: Delfin
« kdy: 09-01-2018, 22:40:39 »

Dava. Jen budes psat dvoji interface (jeden pro prime spojeni s RDBMS a druhy pro REST server).
OK, tak to takhle udělám. Nejsem si jistý, jak by to šlapalo při práci pouze přes REST server i na zapisujících PC.

Je tam overhead v podobe prijeti a "precteni" pozadavku na zapis (REST requestu). Za cenu dvojiho interface.

Moznosti je spousta. Co me napada trebas, nevim jak ma Delphi ten REST implementovany, ale neco malo bys mohl ziskat "integrovanim" obou interface, kdy bys napr. po commitu zaznamu primym RDBMS interface predpripravil do cache session klientu potrebne zaznamy nebo primo sestavil REST response pro REST interface (alespon na casove kriticke operace). Tim by klienti nemuseli pres REST opakovane sahat do databaze. Pak treba moznost chodit si jen pro delty mezi tim co uz na klienta stahli a co je na serveru noveho. Atd.

Tech moznosti i optimalizaci bude dost ::) :)
Poslal: matej
« kdy: 08-01-2018, 20:24:03 »

Tak začínám tomu snad trochu rozumět.

Bylo by dobré tedy řešit všechny tři případy takhle?
Vždy na PC nainstalovat lokální server a připojit aplikaci přes FireDAC (i při jednom PC a bez telefonů)
Pro připojení druhého PC připojit přes lokální sít (wifi) přímo k DB přes FireDAC
Pro připojení telefonů - telefony se připojí také k Wifi a k aplikaci přes Datasnap+REST

Dává to takhle smysl?

Dava. Jen budes psat dvoji interface (jeden pro prime spojeni s RDBMS a druhy pro REST server).
OK, tak to takhle udělám. Nejsem si jistý, jak by to šlapalo při práci pouze přes REST server i na zapisujících PC.

Jaký je rozdíl mezi přístupem přes DataSnap s HTTP a Datasnap+REST?

Nevim co tim myslis nebo kde jsi na to narazil. Ptas se jaky je rozdil mezi TDSRESTServer a TDSHTTPServer?
Ano, asi tak. Pro mě by bylo asi nejsnazší vytvořit projekt DataSnap REST Application a dále Stand-alone app>VCL app>TDataModule
V této aplikaci bych potom vytvořil připojení k DB a spouštěl REST server pro připojení mobilů.
Zvládne průměrný notebook spuštěný server a samostatnou práci v databázi přes aplikaci + připojení druhého PC k databázi na tomto notebooku + přístupy cca 50-150 telefonů pro zobrazování dat?

Telefony nebudou zapisovat ani upravovat žádná data, jen číst.

Snad ano, ale mel by sis jej vyzkouset pod umelou zatezi (REST server muzes otestovat trebas pomoci Apache HTTP server benchmarking tool).
Ok, až to bude někdy hotové, tak to vyzkouším.
Poslal: Delfin
« kdy: 08-01-2018, 11:14:05 »

Tak začínám tomu snad trochu rozumět.

Bylo by dobré tedy řešit všechny tři případy takhle?
Vždy na PC nainstalovat lokální server a připojit aplikaci přes FireDAC (i při jednom PC a bez telefonů)
Pro připojení druhého PC připojit přes lokální sít (wifi) přímo k DB přes FireDAC
Pro připojení telefonů - telefony se připojí také k Wifi a k aplikaci přes Datasnap+REST

Dává to takhle smysl?

Dava. Jen budes psat dvoji interface (jeden pro prime spojeni s RDBMS a druhy pro REST server).

Jaký je rozdíl mezi přístupem přes DataSnap s HTTP a Datasnap+REST?

Nevim co tim myslis nebo kde jsi na to narazil. Ptas se jaky je rozdil mezi TDSRESTServer a TDSHTTPServer?

Zvládne průměrný notebook spuštěný server a samostatnou práci v databázi přes aplikaci + připojení druhého PC k databázi na tomto notebooku + přístupy cca 50-150 telefonů pro zobrazování dat?

Telefony nebudou zapisovat ani upravovat žádná data, jen číst.

Snad ano, ale mel by sis jej vyzkouset pod umelou zatezi (REST server muzes otestovat trebas pomoci Apache HTTP server benchmarking tool).
Poslal: matej
« kdy: 07-01-2018, 13:58:13 »

Tak začínám tomu snad trochu rozumět.

Bylo by dobré tedy řešit všechny tři případy takhle?
Vždy na PC nainstalovat lokální server a připojit aplikaci přes FireDAC (i při jednom PC a bez telefonů)
Pro připojení druhého PC připojit přes lokální sít (wifi) přímo k DB přes FireDAC
Pro připojení telefonů - telefony se připojí také k Wifi a k aplikaci přes Datasnap+REST

Dává to takhle smysl?
Jaký je rozdíl mezi přístupem přes DataSnap s HTTP a Datasnap+REST?
Zvládne průměrný notebook spuštěný server a samostatnou práci v databázi přes aplikaci + připojení druhého PC k databázi na tomto notebooku + přístupy cca 50-150 telefonů pro zobrazování dat?

Telefony nebudou zapisovat ani upravovat žádná data, jen číst.

Poslal: Delfin
« kdy: 05-01-2018, 22:50:50 »

Implementace zminovaneho REST serveru a klienta neni az tak slozita (viz. webinar)
Je otazka, jestli aplikace bez HATEOAS je REST aplikace, nebo jen buzzword ;)

Ale jinak s tebou souhlasim: DB bych zaboxoval do sluzby. Jestli to bude REST nebo SOAP nebo neco jineho je jedno, zrovna tak jaky bude typ RDBMS nebo jestli pobezi lokalne nebo na jinem pocitaci. To by mela byt jen otazka konfigurace. A napsat jednoduchy HTML serverik treba nad Synapsi je brnkacka - my ho v Delphi davali skoro do kazde aplikace.

Jen s tim PHP bych si nic nezacinal  ;)

S PHP? Ja taky ne, ale je multiplatformni ;) A dokud nema Delphi implementovane v Oknech ani "nove" thread pool API v kombinaci s async sockety (coz doda vyznamny narust vykonu serverovych aplikaci i pred planovanym poklesem kvuli chybe Intel), nema pro me smysl radit lidem si s nim zacinat v serioznich serverovych aplikacich ;) Zalezi jak moc seriozni je tato. I tak bych ji ale zaboxoval do sluzby se kterou si pripadne budou rozumet i "ostatni programatori".
Poslal: matej
« kdy: 05-01-2018, 20:14:35 »

Díky, podívám se na googlu na ten REST, protože moje znalosti jsou hodně omezené a o tomhle nevím nic.
Kdyby si někdo chtěl dát tu námahu a polopaticky mi vysvětlit jak to funguje a co by to v mém případě mělo provádět, budu opravdu rád.

Zatím jsem pracoval jen s vazbou Delphi>ZeosLIb>MySQL v prehistorickém Delphi 7.
Poslal: pf1957
« kdy: 05-01-2018, 19:29:46 »

Implementace zminovaneho REST serveru a klienta neni az tak slozita (viz. webinar)
Je otazka, jestli aplikace bez HATEOAS je REST aplikace, nebo jen buzzword ;)

Ale jinak s tebou souhlasim: DB bych zaboxoval do sluzby. Jestli to bude REST nebo SOAP nebo neco jineho je jedno, zrovna tak jaky bude typ RDBMS nebo jestli pobezi lokalne nebo na jinem pocitaci. To by mela byt jen otazka konfigurace. A napsat jednoduchy HTML serverik treba nad Synapsi je brnkacka - my ho v Delphi davali skoro do kazde aplikace.

Jen s tim PHP bych si nic nezacinal  ;)
Poslal: Delfin
« kdy: 05-01-2018, 18:23:04 »

V tomto pripade nejspis PHP 8) A rychlost co resis je s dnesnim vykonem otazka zlomku sekund, ne-li milisekund - i pres rozumne nastavenou sit. A poradatele bych rozlozil logicky, co poradatel, to server - idealne separovany, centralni (i za cenu toho ze by na nem z financnich duvodu pracoval treba nejaky predseda zavodu ci neceho takoveho).
Poslal: matej
« kdy: 05-01-2018, 16:00:58 »

Pro upřesnění ještě dodávám, že závody probíhají na různých místech a od různých organizátorů. Takže uživatelů je poměrně dost. Proto přemýšlím, jestli musí mít každý nainstalovaný server, i když nepotřebuje přístup z jiných PC nebo mobilů.
Poslal: matej
« kdy: 05-01-2018, 15:56:05 »


 [kdyby se me zeptal klient ktery takovou aplikaci chce naprogramovat seriozne, v Delphi, poradil bych mu jiny jazyk byt je Object Pascal muj "rodny jazyk"]
A jaký by si doporučil? Začínal jsem na škole s Pascalem a pokračoval tak plynule do Delphi, kde mi vyhovuje jednoduchost rozhraní se spoustou dostupných komponent, které mi dost ulehčují život.

- pokud vytvoris z telefonu na server tunel, nemel by byt problem
- tomu bodu nerozumim, ale chapal bych to jako dotaz ve smyslu "mam nainstalovat MySQL spise na stroj v siti nez na kazdeho klienta?"; pokud to chapu spravne, dal bych se cestou centralni instalace protoze pokud se ma ta aplikace rozvijet, je jen otazkou casu kdy bude stejne (nejen) kvuli synchronizaci treba cetralizovani databaze zajistit
- verim ze to mozne je (MySQL nepouzivam), nasel jsem jen referenci k verzi 5.5

Druhou otázkou jsem myslel buď na každé uživatelské PC nainstalovat server, ze kterého by aplikace brala data a nebo použít Memtable/ClientDataSet. Pokud by tedy uživatel neměl v plánu, aby na závodě pracovalo víc PC najednou a nebo aby se k datům přistupovalo z mobilů, tak jestli není jednodušší a rychlejší data ukládat v paměti při běhu aplikace.
Poslal: Delfin
« kdy: 05-01-2018, 14:50:25 »

Určitě nemám znalosti, abych se mohl pustit do něčeho, co zkušený programátor řekne, že je složité. Čili případ 2 bych tedy řešil lokálním serverem na jednom z PC s připojením v rámci lokální sítě druhého.

Implementace zminovaneho REST serveru a klienta neni az tak slozita (viz. webinar), byt jsem ho nikdy v produkci nepouzil a spis bych se mu vyhnul ve prospech jinych jazyku. Ale tvrdi to osel ktery se tahnul vic nez 12 let (nepocitaje takovych 6 let ucebnich) za Delphi a ono mu pod rukama umira :-[ :) [kdyby se me zeptal klient ktery takovou aplikaci chce naprogramovat seriozne, v Delphi, poradil bych mu jiny jazyk byt je Object Pascal muj "rodny jazyk"]

Je možné při přístupu mobilních telefonů používat databázi MySQL?
Je výhodnější pro první případ - tedy práce pouze na jednom PC, s databází pracovat na lokálním serveru nebo spíše využít komponent pro práci s daty pouze v rámci programu?
Je možné nainstalovat server MySQL nějakým "tichým" přednastaveným způsobem, aby to proběhlo v rámci instalace programu jako takového? (ideálně, aby to nijak nezatěžovalo uživatele)

- pokud vytvoris z telefonu na server tunel, nemel by byt problem
- tomu bodu nerozumim, ale chapal bych to jako dotaz ve smyslu "mam nainstalovat MySQL spise na stroj v siti nez na kazdeho klienta?"; pokud to chapu spravne, dal bych se cestou centralni instalace protoze pokud se ma ta aplikace rozvijet, je jen otazkou casu kdy bude stejne (nejen) kvuli synchronizaci treba cetralizovani databaze zajistit
- verim ze to mozne je (MySQL nepouzivam), nasel jsem jen referenci k verzi 5.5
Poslal: matej
« kdy: 05-01-2018, 14:31:25 »

Díky za podněty. Delphi mám XE7 Architect.

Určitě nemám znalosti, abych se mohl pustit do něčeho, co zkušený programátor řekne, že je složité. Čili případ 2 bych tedy řešil lokálním serverem na jednom z PC s připojením v rámci lokální sítě druhého.
Třetí případ by znamenal externě uložený server a přístup všech počítačů a mobilů přes internet a nebo lokální server s Wifi pro připojení mobilů do lokální sítě.

Je možné při přístupu mobilních telefonů používat databázi MySQL?
Je výhodnější pro první případ - tedy práce pouze na jednom PC, s databází pracovat na lokálním serveru nebo spíše využít komponent pro práci s daty pouze v rámci programu?
Je možné nainstalovat server MySQL nějakým "tichým" přednastaveným způsobem, aby to proběhlo v rámci instalace programu jako takového? (ideálně, aby to nijak nezatěžovalo uživatele)

Díky
Poslal: Miroslav Baláž
« kdy: 04-01-2018, 22:04:12 »

.. a zároven by k databázi přistupovali účástníci závodů přes mobilní telefon ..

.. Ve třetím případě i zabezpečení komunikace.

Pracuji s databázemi MySQL a mám Delphi XE7.
Nie je jasné, či máš Delphi vyššie ako Pro.
Ak nie, tak DB Server a aj mobilný telefón môžu byť problém (add on Pack C/S a add OnPack Mobile, každý tak po 1000Eur).
Aj napriek tomu by tu boli určité možnosti, ale nie triviálne. Skôr naopak:
- spomínaný Rest server .. príspevok Delfin
- prípadne SYNOPSE mORMot (pozor ten framework má niekoľko 1000 stranový návod)
http://blog.synopse.info/post/2014/08/11/CrossPlatform-Clients/SmartMobileStudio
Osobne by som si to veru netrúfol, neviem si predstaviť, ako to zvládnuť jednoducho, bez širokých poznatkov..
Poslal: Delfin
« kdy: 04-01-2018, 21:16:18 »

Vytvoris business logic vrstvu a pak uz je jedno kde bude DBMS. Ano, pozadavek na "nejrychlejsi praci z jednoho pocitace" tim nesplnis, ale moc nechapu proc by melo pro zavody neco kritickeho existovat. Napr. REST serverem si vytvoris vratka pro budouci mobilni aplikaci a "zajistis zabezpeceni".
Poslal: vandrovnik
« kdy: 04-01-2018, 21:03:05 »

Určitě to jde, o tom také nepochybuji. Spíš nejsem tak zběhlý v tom, jak si s tím nejlépe poradit. Můžu mít pro případ 1 databázi v rámci programu bez instalace lokálního serveru, aby to pro uživatele bylo co nejjednodušší? Může se pak další PC připojit k databázi na souběžně spuštěném počítači s databází bez serveru?

Tohle by asi uměl ten Firebird, ale vyzkoušeno to nemám (hlavně nemám vyzkoušený ten souběžný přístup více strojů k jednomu souboru bez spuštěného serveru).