aplikacje client serwer

0

Chcę zrobić aplikacje client serwer.
Do tej pory chodziła ona: serwer MSSQL - klient form delphi z ADO.
Teraz musze zmienić architekture i wprowadzić posrednika między aplikacją
kliencką
a serwerem sql.
np: serwer MSSQL - (tu SQL-owe zapytania) serwer
aplikacji ------/???/----- klient form delphi z ?.

Myslałem o corbie, asn1, html, socket-ach TCP lub UDP.
Powiedzmy, że z bazy SQL pobierane są zarówno całe tabele ( oczywiscie
query) jak i pojedyncze wartości.
Może ktos to robił lub ma pomysł jak odseparować bazę SQL od aplikacji
klienckiej.
Temat wydaje mi się fajny, więc zapraszam do dyskusji.

0

Jezeli programujesz w Javie lub .NET to polecam WebSerwis wstawic pomiedzy baze a klienta. Klient wysyla polecenie do serwisu->serwis odpytuje baze i wysyla do klienta wynik.
Mozna tez uzyc Serwera Aplikacji np. http://www.jboss.org/

Pozdrawiam
Gothmog

0

jeśli interesuje Cię tylko dyskusja na ten temat lub robisz to bo chcesz się nauczyć to OK, ale jeśli to ma potem gdzieś działać to zastanów się dobrze czy jest Ci to potrzebne.

To o co pytasz to architektura trójwarstwowa. Ma to sens jeśli
a) silnik serwera BD nie potrafi (chociaż dzisiaj większość popularnych silników ma opcję dodawania własnych, w sensie użytkownika, procedur operujących na danych, np. UDFy w FB/IB) zrobić z danymi tego co byśmy chcieli - zawiłe przeliczenia bardzo dużej ilości danych, w wyniku których otrzymujemy małą paczkę danych wynikowych. Wtedy warstwa pośrednia zajmuje się tymi obliczeniami, stawiamy ją na tej samej maszynie co serwer BD albo na innej podłączonej do serwera BD bardzo szybkim łączem, np Gb. Chodzi o to, aby każdy klient nie ciągnął wszystkich tych danych potrzebnych do obliczeń a jedynie dane wynikowe
b) oprócz danych w bazie zapisujemy coś jeszcze, np. obrazki na FTP. Wtedy możemy tak skonstruować aplikację pośredniczącą, że klient nie "widzi" tego, że część danych jest z serwera BD a część z FTP
Ma to jeszcze jedną zaletę, a mianowicie cała logika biznesowa jest TYLKO W JEDNYM MIEJSCU i jakakolwiek zmiana tejże wiąże się z modyfikacją / update TYLKO jednego programu (co innego gdzy logika biznesowa jest wszyta w aplikację kliencką - wtedy trzeba aktualizować WSZYSTKIE programy klienckie)

W dzisiejszych czasach najczęściej można spodkać architekturę dwu-i-pół warstwową - warstwa składowania danych i logika biznesowa jest w BD.

W Delphi do pisania aplikacji wielowarstwowych służy technika DataSnap

0

pełny prof.
A co z aplikacjami HTML

0
igort2 napisał(a)

pełny prof.
A co z aplikacjami HTML

A gdzie i po co chcesz tu trzecią warstwę wcisnąć???

0

Sorry
raz że nie doczytałem tego artykułu
dwa że byłem nie ścisły
Aplikacje trzy warstwowe rzeczywiście wydają się bez sensu gdy zalezy nam tylko na przesłaniu danych z bazy sql na serwerze do programu wizualizującego czyli programu klienckiego na stacji roboczej. Z pozoru wydaje sie że lepszym rozwiazaniem jest architektura dwuwarstwowa. Zapytania sql i tak dają nam ograniczenie transportowanych danych do minimum.
Jednak wadą tego rozwiązania jest wystawienie serwera SQL na "odstrzał".
Zaletą rozwiazania Webowego jest dodatkowo brak konieczności instalowania czegokolwiek na stacjach klienckich ( sa tez wady).
Są plusy i minusy i dlatego warto na ten temat pogadać.

0

Hmm... Rozumiem, że chcesz po prostu serwer HTTP wstawić jako drugą warstwę... Nikt Ci nie broni :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1