To zależy od twoich wymagań. Jeśli potrzebujesz wysokowydajnego rozwiązania o niskim opóźnieniu, które zależy od wielu małych zadań, możesz wybrać strukturę podobną do tego, co opisujesz. Jednak najczęściej stosowane rozwiązania w Javie, PHP i C # nie są domyślnie stosowane.
Większość aplikacji internetowych zależy w bardzo dużym stopniu od baz danych - większość z nich tak bardzo, że strony nie mogły się renderować bez co najmniej jednego wywołania. Oczywiście nie chcesz publicznie udostępniać swojej bazy danych z kilku powodów:
- Bezpieczeństwo (jak wspomina Oded ) - zdecydowanie nie chcesz publicznie ujawniać swojej sieci! Idealnie jedynym interfejsem do twoich systemów z zewnątrz powinien być https na twoim serwerze.
- Łatwość programowania - naprawdę, naprawdę , naprawdę nie chcesz pisać SQL w JavaScript, a języki zaprojektowane do prezentacji internetowej nie działają dobrze z RDB. Nie mają na przykład pojęcia państwa.
Tak więc, kiedy potrzebujesz bazy danych, używasz języków, które dobrze się z nimi bawią, takich jak Java, C #, PHP itp. Najprostszym sposobem na wygenerowanie strony jest: Używanie języka szablonów (najsłynniejszego PHP, ale JSP i ASP to dwa inne bardzo popularne języki) do budowy strony. Język zapewnia konstrukcje wywołujące inne moduły. W PHP jest to zwykle na stronie lub w innym pliku PHP, używając wzorca MVC. W JSP używasz skryptletów lub języka wyrażeń JSP. Te inne moduły mogą ciężko pracować z łączeniem się z bazą danych, wykonywaniem logiki i zwracaniem wartości do warstwy widoku. Wynikiem końcowym jest wygenerowana strona HTML, renderowana na serwerze i wysyłana do klienta.
Gdy baza danych znajduje się w tej samej sieci co moduł renderujący strony, również uzyskuje się lepszą wydajność. Klient musi wykonać tylko jedno żądanie i otrzymać stronę - może być konieczne wykonanie 10-15 żądań DB, zanim uzyska się wszystkie informacje potrzebne użytkownikowi. Opóźnienie w milisekundach w sieci wyniesie od sekund do minut, jeśli klient będzie musiał wykonać je wszystkie.
Gdy systemy stają się większe, kluczowe staje się rozdzielenie problemów i kluczowych kompetencji. HTML jest dobry do wyświetlania. JavaScript jest dobry dla dynamicznych treści. SQL doskonale nadaje się do tworzenia zapytań do bazy danych, a inne języki są dobre w logice biznesowej. Naszym zadaniem jako programistów jest wykorzystanie wszystkich dostępnych narzędzi do zbudowania możliwego do utrzymania systemu. Łatwość rozwoju to ogromna część dobrego systemu. Moim zdaniem jest to prawie tak samo ważne jak wydajność i użyteczność. Wielkie systemy ewoluują z czasem. Słabe systemy od samego początku były źle napisane i nigdy nie zostały poprawione.