Baza Danych - bezpośrednio czy przez pośrednika?

0

pisze 'system' składający się z kilku rożnych aplikacji operujących na tych samych danych....
rozważam dwie struktury:

  1. bezpośredni dostęp do bazy danych z poziomu każdej aplikacji.
  2. Jedna, oddzielna aplikacja łącząca się z Bazą Danych udostępniająca jej zasoby pozostałym składnikom systemu.

czy moglibyście podrzucić parę argumentów za i przeciw takim rozwiązaniom?

0

Generalnie czemu kilka aplikacji operuje na tych samych danych? Nie lepiej porobić oddzielne schematy na każdy program?

2

Tylko i wyłącznie opcja 2.

  • Wiele aplikacji z dostępem jednoczesnym do bazy = problem z transakcjami / słabsza kontrola transakcji. Musiałbyś mieć całkowitą pewność co do tego jak i co zmieniasz z poziomu każdej aplikacji bo jak gdzieś przypadkiem coś źle obejmiesz transakcja to będzie mogiła.
  • Dawanie klientowi kodu z bezpośrednim dostępem do bazy = potencjalne problemy bezpieczeństwa. Klient może sobie zrobić reverse engineering i odczytać hasła do bazy ;]
  • Związanie implementacji mocno z bazą. Wymiana bazy na inną oznacza zmiany we wszystkich modułach. W przypadku serwisu pośredniczącego zmieniasz tylko ten serwis a klienci nic o tym nie wiedzą.
  • Baza musi być dostępna dla klientów - publiczna w internecie. Co znaczy że każdy potencjalny exploit na tą baze danych stanowi problem. W przypadku warstwy pośredniczącej to ona jest narażona na atak, a więc musiałby on być bardzo kierunkowy.

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