Autor Téma: Komunikacia medzi sluzbou a GUI rozhranim  (Přečteno 390 krát)

Offline Daniel_Andrascik

  • Hrdina
  • ****
  • Příspěvků: 420
  • Karma: 15
    • Verze Delphi: D2007, XE3
Komunikacia medzi sluzbou a GUI rozhranim
« kdy: 07-03-2017, 13:18:32 »
Zdravim vas panove. Aku moznost a preco by ste zvolili pre komunikaciu medzi sluzbou a GUI rozhranim (obidve vytvorene v delphi) a pripadne ktoru konkretnu implementaciu by ste odporucali.

Moznosti na riesenie IPC je vela, otazkou ostava ich efektivita, jednoduchost alebo narocnost ich implementacie, dostupnost napriec verziami windowsov, podpora X86/X64 atd atd. Kedze ide o komunikaciu pre obsluhu GUI, nebude sa jednat o ziadnu masivnu komunikaciu ani poziadavky na odozvy nebudu nijak kriticke.

Z moznosti ktore poznam sa tusim zvyknu pouzivat MMF, "windowsacke trubky" - named pipes, je mozne pouzit aj TCP/UDP (benefitom je moznost pouzitia komunikacie aj mimo hostovskej stanice). Pri istej miere partizanciny by niekto mohol pouzit komunikaciu cez databazu atd...

Ak viete odporucit aj nejake konkretne ci uz free alebo komercne implementacie vdacne sa s nimi oboznamim. Osobne mam zatial celkom dobru skusenost s named pipes od Iztoka Kacina: http://www.cromis.net/blog/downloads/cromis-ipc/

Online pf1957

  • Padawan
  • ******
  • Příspěvků: 1849
  • Karma: 87
    • Verze Delphi: D2007, XE3, DX10
Re:Komunikacia medzi sluzbou a GUI rozhranim
« Odpověď #1 kdy: 07-03-2017, 14:10:17 »
od Iztoka Kacina: http://www.cromis.net/blog/downloads/cromis-ipc/
Ja kdyz vidim neco takoveho:
Kód: Delphi [Vybrat]
  1.   Response.Data.WriteDateTime('TDateTime', Now);
  2.   Response.Data.WriteInteger('Integer', 5);
  3.   Response.Data.WriteReal('Real', 5.33);
  4.   Response.Data.WriteUTF8String('String', 'to je testni string');
  5.  
tak me k tomu napadne jedine: tohle prece neni zadne programovani, ale strikani kodu hlava nehlava...

V komunikaci je normalni jako prvni definovat protokol tj. datagramy + flow control. A to, jakym mediem to poleze, je vetsinou nepodstatne.
Takze v dotShitu bych pouzil remoting s persistenci objektu, v Delphi bych taky zacal u persistentnich objektu a jejich serializace, mozna s vyuzitim JSON.
A jako medium HTTP(s) protokol s REST serverikem na bazi Synapse na strane sluzby.

Offline Daniel_Andrascik

  • Hrdina
  • ****
  • Příspěvků: 420
  • Karma: 15
    • Verze Delphi: D2007, XE3
Re:Komunikacia medzi sluzbou a GUI rozhranim
« Odpověď #2 kdy: 07-03-2017, 15:01:07 »
Vdaka za odpoved, tvoje nazory a skusenosti si vzdy velmi povazujem a beriem ich s velkou vaznostou

Ja kdyz vidim neco takoveho:
Kód: Delphi [Vybrat]
  1.   Response.Data.WriteDateTime('TDateTime', Now);
  2.   Response.Data.WriteInteger('Integer', 5);
  3.   Response.Data.WriteReal('Real', 5.33);
  4.   Response.Data.WriteUTF8String('String', 'to je testni string');
  5.  
tak me k tomu napadne jedine: tohle prece neni zadne programovani, ale strikani kodu hlava nehlava...


 ;D nenamietam. Ja som to raz davnejsie pouzil v mojom jednoduchom tool-iku, ucel to splnilo a napriek tomu ze dnes uz viem ze som to implementoval nespravne tak mi ta komunikacia zlyha odhadujem v pomere 1:10000 (neuspesne spravy / uspesne spravy). Je mi jasne ze v ramci IPC nie je dovod a ani ospravedlnenie na to aby akakolvek sprava nebola dorucena pokial klient a server "ziju", ale ako hovorim tu mam maslo na hlave ja, nastastie to nie je potrebne riesit.

Cim viac sa zamyslam nad tebou odporucanym REST serverom a HTTP protokolom tym viac vhodne sa mi to zda... palec hore...

Online pf1957

  • Padawan
  • ******
  • Příspěvků: 1849
  • Karma: 87
    • Verze Delphi: D2007, XE3, DX10
Re:Komunikacia medzi sluzbou a GUI rozhranim
« Odpověď #3 kdy: 07-03-2017, 16:45:18 »
Cim viac sa zamyslam nad tebou odporucanym REST serverom a HTTP protokolom tym viac vhodne sa mi to zda... palec hore...
Ja jsem si napsal jednoduchy serverik na bazi Synapse a cpal jsem ho skoro vsude - ono napojeni se z vnejsku pres TCP/IP neni nikdy na skodu. Navic si clovek muze vygenerovat pomoci OpenSSL svoje certifikaty, takze se mu do te komunikace nekdo jen tak nedostane.

Jinak ten REST, to je takovy modni buzzword: dokud se neimplementuje HATEOAS, tak to vlastne ani zadny REST neni ;-) a je to soubor par konvenci, jak pouzivat HTTP a mapovat URL.


 

S rychlou odpovědí můžete používat BB kódy a emotikony jako v běžném okně pro odpověď, ale daleko rychleji.

Upozornění: do tohoto tématu bylo naposledy přispěno před 120 dny.
Zvažte prosím založení nového tématu.

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