Это зависит от ваших требований. Если вам нужно высокопроизводительное решение с малой задержкой, которое зависит от множества небольших задач, вы можете использовать структуру, аналогичную описанной. Однако наиболее распространенные решения в Java, PHP и C # не соответствуют этому.
Большинство веб-приложений очень сильно зависят от баз данных - большинство из них настолько сильно, что страницы не могут отображаться без хотя бы одного вызова. Очевидно, что вы не хотите раскрывать свою базу данных публично по нескольким причинам:
- Безопасность (как упоминает Одед ) - вы определенно не хотите раскрывать свою сеть публично! В идеале единственным интерфейсом к вашим системам извне должен быть https для вашего сервера.
- Простота разработки - вы действительно, действительно , действительно не хотите писать SQL на Javascript, а языки, предназначенные для веб-презентации, плохо работают с RDB. У них нет понятия государства, например.
Поэтому, когда вам нужна база данных, вы используете языки, которые хорошо с ними работают, такие как Java, C #, PHP и т. Д. Самый простой способ создания страницы заключается в следующем: вы используете язык шаблонов (наиболее известный PHP, но JSP и ASP - два других очень распространенных языка) для создания страницы. Язык предоставляет конструкции, которые вызывают другие модули. В PHP это обычно на странице или в другом PHP-файле, используя шаблон MVC. В JSP вы используете скриптлеты или язык выражений JSP. Эти другие модули могут выполнять тяжелую работу по подключению к БД, выполнению логики и возвращению значений на уровень представления. Конечным результатом является сгенерированная HTML-страница, отображаемая на сервере и отправляемая клиенту.
Когда ваша база данных находится в той же сети, что и средство визуализации страниц, вы также получаете лучшую производительность. Клиенту нужно выполнить только один запрос и получить страницу - вам может потребоваться выполнить 10-15 запросов к БД, прежде чем вы получите всю информацию, необходимую пользователю. Задержка в миллисекундах в вашей сети будет от нескольких секунд до нескольких минут, если клиенту придется все это делать.
Когда системы разрастаются, решающее значение приобретает разделение интересов и основных компетенций. HTML хорош для отображения. Javascript хорош для динамического контента. SQL отлично подходит для запросов к базе данных, а другие языки хороши для бизнес-логики. Наша работа как разработчиков заключается в том, чтобы использовать все доступные нам инструменты для создания обслуживаемой системы. Легкость разработки - огромная часть хорошей системы. На мой взгляд, это почти так же важно, как производительность и удобство использования. Великие системы развиваются с течением времени. Плохие системы были написаны плохо с самого начала и никогда не были улучшены.