2010-05-13 19 views
5

Badam przenoszenie aplikacji Delphi z grubym klientem opartej na języku SQL na cienkich klientach wielowarstwowych, a także rozważam wykorzystanie Datasnap w Delphi 2010. Przeanalizowałem białą księgę napisaną przez Boba Swarta i rozszerzoną to dalej.Delphi 2010 Datasnap - Zapytanie o projekt

Moje główne pytanie polega na tym, że chcę sprawić, by strona serwera była efektywna pod względem połączeń i zapytań SQL, ponieważ wiele zapytań jest uruchamianych i pozostaje otwartych w tym samym czasie, aby przesyłać dane, czy każdy może wskazać kierunek wskazówki dotyczące projektowania aplikacji serwera Datasnap na świecie, ponieważ wersje demonstracyjne nie są wystarczająco szczegółowe.

Dzięki Matt

Odpowiedz

1

Musisz zdecydować, w projekcie:

  • (Mid-Server) będzie zarządzać sesji lub klient wskaże ich sesja każdego połączenia (Stateful vs bezpaństwowcem)

  • (Serwer średni) Ile pamięci podręcznej chcesz mieć. Możesz buforować tylko irytujące, bardzo stabilne tabele i sprawdzać je tylko wtedy, gdy się zmieniają (jeśli wszystkie modyfikacje są dokonywane przez serwer pośredniczący, jeśli nie, potrzebujesz czegoś takiego, jak dowolny znak - identyfikator GUID, licznik - na stole, aby dopasować, jeśli dane zmienione).

  • (Klient/serwer pośredni) Jeśli Twój klient zawsze będzie miał pełny zbiór danych lub tylko fragmenty kolekcji. (np. Produkt może mieć kolumnę kategoriiId, która jest tabelą kategorii FK.Możesz wysłać zarówno cały czas, jak i klient może żądać tylko danych produktu).

  • (Średni serwer/RDBMS) Być może trzeba podać jakąś formę niestandardowego wyszukiwania. Jeśli masz wskazówkę dotyczącą najczęściej używanych warunków wyszukiwania, możesz podać (jeśli to konieczne) indeksowanie, aby to zrobić.

  • (Serwer pośredni/RDBMS) Nie należy przenosić wielkich zbiorów danych do serwera pośredniego, chyba że planowane jest agresywne buforowanie danych i/lub korzystanie z nich. Mid-Server to kolejna aplikacja kliencka do RDBMS - jeśli oba są na tym samym komputerze, możesz wejść do konkurencji pamięci/CPU/IO z RDBMS.

  • (Serwer pośredni/RDBMS) Wykonywanie reguł biznesowych na serwerze średnim, to mantra wielu purystów. Dla mnie kluczowa jest równowaga. Powiedzmy, że RDBMS ma 2000 Przechowywanych Procedur (nie jestem przesadny, istnieje prawdziwy biznes z taką liczbą SP) i twój Mid-Server może wykonać doskonałą pracę na 1500 z 2000 problemów rozwiązanych przez SPs, GREAT i to zrobić. Ale jeśli ostatnie 500 może być zmianą na najgorsze, zostaw je w spokoju. To może być większy kłopot niż 1500. Więc zmiksuj dwa i spraw, aby 500 projektów oprogramowania znalazło się w innej wersji.

  • (Serwer pośredni/RDBMS) To, co powiedziałem dla procedur składowanych, można również zastosować do wyzwalaczy i innych typów funkcji serwera RDBMS, które mogą ułatwić życie.

  • (Serwer pośredni/DataSnap) Większość szczegółów można przesłać do dostawcy zestawu danych. Ale naucz się wykorzystywać zdarzenie OnBeforeUpdateRecord, aby w razie potrzeby wykonywać niestandardowe przetwarzanie.

  • (Mid-serwer/DataSnap) Wiesz, że można utworzyć ClientDataset tylko ze zmodyfikowanymi danymi przez tego rodzaju kodu poniżej? Nie możesz sobie wyobrazić, jak przydatne może być ... :-)

    Cds_New.Data: = Cds_Updated.Delta;

Powiązane problemy