Трехзвенная архитектура и PHP

Alexandre

PHPПенсионер
есть архитектура приложения,
есть архитектура системы

если брать архитектура системы (трехзвенка)
то все сходится по вашей схеме
- браузер - тонкий клиент
- WEB сервер ( + модуль PHP ) - логика обработки данных
- БД - хранение

если брать архитектуру приложения, т.е.
только серверной части, то получается двухзвенка.

в данном случае Заказчик не уточнил, что из себя представляет трехзвенная архитектура, по этому ее можно трактовать как архитектура системы, т.е. то о чем толкует _RVK_

Но если идет речь о трехзвенной архитектуре приложения, то это именно та схема, о про которую было сказанно выше.

Данная архитектура (трехзвенка) используется как правило на нагруженных системах или с очень сложной логикой, где часть обработки логики целесообразно вынести на отдельный сервер.

нехватает части про толстые и тонкие клиенты
браузер по определению является тонким клиентом.

Толстые клиенты, это клиентские программы (настольные приложения), которые которые несут в себе функции проверки и обработки большей части логики на стороне клиента.

корни трехзвенной архитектуры растут как раз из архитектуры настольных приложений:
толстый клиент - БД
тонкий клиент - сервер приложений - БД
 

Raziel[SD]

untitled00
Alexandre т.е. если написать свой браузер для сайта, то будет трехзвенная архитектура ? ;)
 

Screjet

Новичок
Alexandre
Веб-приложение как раз и занимается подготовкой и обработкой входящих/исходящих данных, ориентированных на задачи приложения. Так что веб вполне попадает под категорию трехзвенки.

Если работать, например, с клиентами фирмы через PHPMyAdmin то такую связку (и то с натяжкой) можно обозвать двузвенкой.
 

Alexandre

PHPПенсионер
если написать свой браузер для сайта, то будет трехзвенная архитектура
не неси бред
Если работать, например, с клиентами фирмы через PHPMyAdmin то такую связку (и то с натяжкой) можно обозвать двузвенкой
однозначный бред....
Веб-приложение как раз и занимается подготовкой и обработкой входящих/исходящих данных, ориентированных на задачи приложения. Так что веб вполне попадает под категорию трехзвенки.
я не спорю, что не попадает, я толкую о том, что трехзвенку можно рассматривать с разных углов.
Возможно Заказчик имел ввиду под трехзвенкой, то о чем я и говорил. Я же не знаю требований к системе, но я в свое время участвовал в работке трехзвеной архитектуры, где был отдельно WEB сервер,сервер приложений и БД .
 

_RVK_

Новичок
Alexandre
Я так же учавствовал в проектировании и разработки такой системы - казино. Там запросы пользователя обрабатывались контроллером, который передавал их соответствующим приложениям, в зависимости от запроса. Самый из них сложный был игровой сервер, где крутлились алгоритмы игр. Этот сервер получал данные, и передавал из требуемоому приложению - игре, которая их обрабатывала и отдавала результат. Результат писался в БД и отдавался контроллеру, который по своему протоколу отдавал их клиенту на flash, который на основе этих данных отображал ход игры.... Вот и скажи теперь сколькизвенная это система?
 

Raziel[SD]

untitled00
Alexandre
Ладно, вернемся к твоему определению:
В традиционных архитектурах клиент/сервер (двухзвенных архитектурах) взаимодействие клиентской программы и сервера баз данных происходит напрямую.
т.е. клиентское приложение отправляет запросы напрямую к базе БД, но браузер их не отправляет в БД.
При использовании трехзвенных архитектур появляется возможность снять часть нагрузки с клиента и сервера баз данных на специально выделенный сервер приложений.
Браузер(клиент) отправляет запрос веб-серверу(сервер приложений), веб-сервер отправляет запрос БД, т.е. 3 звена.

P.S. Я прекрасно понимаю, что ты понимаешь под трехзвенной архитектурой, т.к. сам разрабатывал подобные приложения, но не на PHP :)
 

Alexandre

PHPПенсионер
P.S. Я прекрасно понимаю, что ты понимаешь под трехзвенной архитектурой, т.к. сам разрабатывал подобные приложения, но не на PHP
[offtop]у нас тоже была разработка не на PHP :)[offtop]

три звена можно расматривать и так и эдак... думаю спор бессмысленен, при том - только автор темы знает принципиальные требования заказчика и чем они обоснованны.

-~{}~ 13.01.06 11:17:

_RVK_сразу и не отвечу.
опять же подойдем филосовски... с какой точки зрения рассматривать, всю систему целиком или только серверную часть.
Вторая составляющая зависит от того, что за приложения крутились на сервере (на чем написаны или вернее каким процессом они запущены и по каким протоколам они взаимодействуют с контроллером)
Если это были модули РНР, то если рассматривать в плоскости только серверной части - это двухзвенка, хотя и под трехзвенку тоже можно подвести.
если эти модули были запущенны отдельным процессом (как демон) и инициатор запуска не был апач (или иной WEB сервер) или на отдельном сервере то однозначно трехзвенка

флеш можно отнести к тонкому клиенту.

главное отличие трехзвенной архитектуры, то что можно ее архитектуру можно разнести на три разных сервера. так вот если можно вынести твое приложение обработки алгоритмических игр на отдельный комп - то это трехзвенка.
 

pachanga

Новичок
Автор оригинала: Alexandre
pachanga не смеши людей....
Естественно, мой пост никак нельзя воспринимать в серьез. Просто меня очень забавляет ситуация, когда заказчик требует наличие "трехзвенной архитектуры" без понимания, что это такое на самом деле....
 

_RVK_

Новичок
Alexandre
Конечено рассматриваем систему в комлексе. Так вот в моем случае систему можно разнести на 4 разных сервера+клиентская машина. Но все же это трехзвенка, так как все от контроллера до игр (написано на C++. Все отдельные демоны, протокол свой на основе xml), это одно звено. Итого получается = тонкий клиет+сервер приложений+БД
 

ForJest

- свежая кровь
Забавно вообще наблюдать за развитием треда
главное отличие трехзвенной архитектуры, то что можно ее архитектуру можно разнести на три разных сервера.
Это вообще нужно додуматься. КЛИЕНТА разнести на СЕРВЕР :).
Клиент это клиент, он не должен находится на сервере.
Apache+PHP и сервер баз данных можно разнести на разные сервера, что с успехом в некоторых системах и делается.

По-моему Alexandre облажался слегка. Согласно собственной же цитате и доказательствам, просто упорствует, не желая признать ошибку.

Если мы напишем ActiveX для IE или XUL application, Которые умеют НАПРЯМУЮ общаться с сервером баз данных это будет двухзвенная архитектура.

Если же мы не модифицируем функциональность браузера, то ЛЮБОЕ web-приложение будет Трёхзвенным.
Просто по той простой причине, что если есть посредник, который извлекает данные из БД и преобразует их в ДРУГУЮ форму - HTML, это уже есть собственно говоря трёхзвенка.
До тех пор пока браузер не в состоянии общаться напрямую с СУБД это будет трёхзвенная архитектура.

-~{}~ 13.01.06 22:22:

Типичный пример двузвенного приложения - это программа на Дельфи, которая напрямую общается с СУБД.
Т.е. программа сама вставляет данные в базу, сама их извлекает и преобразовывает в другой вид. Это вот двузвенка.
Web-приложение, ещё раз повторюсь, НЕ МОЖЕТ быть двузвенным, потому что браузер не может общаться с СУБД напрямую.
 
Сверху