Aplikační vs business vrstva

Aplikační vs business vrstva
« kdy: 31. 01. 2020, 16:43:53 »
Ahoj,
snažím se pochopit vrstvy v n-vrstvé architektuře a mám s tím docela problém...
N-vrstvá architektura rozděluje aplikaci mezi několik vzájemně spolupracujících vrstev, které spolu komunikují přes definované rozhraní. A řekněme, že bych měl 4-vrstvou architekturu s: Prezentační vrstvou, business vrstvou, aplikační vrstvou a datovou vrstvou.

Prezentační - poskytuje statický obsah jako html/css/js/audio/obrázky atd. Přijímá vstupy od uživatele a renderuje výstupy. Většinou běží na nějakém webovém serveru s veřejnou IP.
Datová vrstva - obsahuje data v podobě RDBMS/souboru. Přijímá požadavky od business layer a stará se o uložení a poskytování dat.
Aplikační vrstva - ???
Business vrstva - ??? 

Chápu Prezentační a Datovou vrstvu správně?
Jaký je rozdíl mezi aplikační a business vrstvou? Ve 3-tier architektuře tohle celé je pod jedním "blokem". Domnívám se, že business vrstva obsahuje datový model aplikace (třídy programátorské, které definují naše objekty) - je to tak správně? A co přesně má za úkol aplikační vrstva?


 


RDa

  • *****
  • 2 467
    • Zobrazit profil
    • E-mail
Re:Aplikační vs business vrstva
« Odpověď #1 kdy: 31. 01. 2020, 21:26:34 »
Asi hledej tam, kde jsi prisel na to, ze se neco ma rozdelit na business a aplikacni vrstvu.

4-vrstva architektura u klasicke webove aplikace bude spis klientska//prezentacni/aplikacni/datova. V zcela jine abstrakci mas pak treba rozdeleni na klienta//cdn//api//sluzby. Zalezi co se stavi a z ceho, aby to splnilo ucely skalovatelnosti a cistoty reseni.

Re:Aplikační vs business vrstva
« Odpověď #2 kdy: 31. 01. 2020, 21:41:52 »
Nemělo to být spíše:
prezentační - business - integrační - datová ?

Re:Aplikační vs business vrstva
« Odpověď #3 kdy: 04. 02. 2020, 22:37:12 »
Muzete se zkusit inspirovat tady: http://trailblazer.to/

Re:Aplikační vs business vrstva
« Odpověď #4 kdy: 20. 02. 2020, 20:57:33 »
Bussines vrstva by mala definovat strukturu a sposob spracovania dat. Idealne v jazyku ktory je na hromadne spracovanie dat urceny, napr, plSQL.

Aplikacna vrstva by mala zabezpecit interface medzi bussines vrstvou a klientom.Napr, aplikacna vrstva pre php, koli websluzbam a alikacna vrstva v cecku pre desktop klienta, dalej napr pre python pre serverove scripty... Vyhoda je ta ze netreba siahat do uz otestovanej a spravne fungujucej bussines logiky.
Vpripade ze uzivatel nezvlada plsql tak je mozne pisat bussines logiku aj v jazyku v ktorom pise aplikacnu vrstvu, dost sa ale v tomto pripade stiera motivacia aby dosledne oddelil bussines logiku a aplikacnu logiku.

Cize ak by si to chel rozdelit na jednotlive vrstvy:
Datova - fyzicke ulozene data, ci uz subor alebo tabulky v rdbms
Bussines logika - sposob spracovania a ulozenia dat - zvedsa struktura databazy a procedury ktore data spracovavaju (vysvetlujte danovakovi ze float v php vam neulozi milardovu ciastu na korunu presne ;)
Aplikacna logika - interface pre bussines logiku, riadenie opraveni, validacia vstupnych poziadavok - zvedsa nazyvane modely
Prezentacna vrstva(web) - zabezpeci odovzdanie dat z formularov do aplikacnej vrstvy, formatovanie vystupu cez sablony tak aby bol vhodny pre zobrazenie browserom, formatovanie vynimiek do citatelnej podoby. - view + controller(presenter)
Prezentacna vrstva(api) - ziskanie vstupnych dat, poziadaviek zo soap alebo json (a kadecoho ineho), odovzdania do plikacnej vrstvy a formatovanie dat alebo vynimiek ktore vrati aplikacna vrstva do spravneho formatu (spravidla rovnakeho typu ako bola poziadavka). - view + controller(presenter)

Tolko teoreticky pohlad, prakticky zalezi od toho na akej urovni su ludia ktory vo firme ke sa dostates uz pachali tu aplikaciu pred tebou. V lepsom pripade vcelku realisticky pokrcia pleciami ze zavadzat idealy by bolo uz priis nakladne a v horsom pripade budu mylne presvedceni o svojej jedinecnosti a s idealmi nezapadnes... Firiem kde by boli jednotlive vrstvy oddelene dosledne najdes bohuzial minimum...