Как построить n-слойную веб-архитектуру с помощью PHP? - PullRequest
3 голосов
/ 29 марта 2010

Я имею дело с PHP-сайтом с 3-уровневой архитектурой.

Теперь мне нужно перестроить его для поддержки распределенной n-уровневой архитектуры. После долгих часов исследований я пришел к этому решению: бизнес-логика должна быть разделена на уровень представления и чисто бизнес-логики для обеспечения n-уровневой архитектуры (пользовательский интерфейс, уровень представления, b.logic и уровень данных). Я решил использовать РНР только для презентации. В бизнес-логике я хочу использовать технологию реализации J2ЕЕ вместо того, чтобы реализовывать ее в PHP, потому что J2EE может предоставить гораздо более важные контейнерные сервисы, которые важны для бизнес-логики, ее надежности, удобства обслуживания и различных критически важных бизнес-операций.

С вашей профессиональной точки зрения, звучит ли это как хороший способ переделать оригинальный сайт, чтобы учесть n-уровневую архитектуру с учетом специфики сайта и критичности его работы?

Ответы [ 2 ]

3 голосов
/ 29 марта 2010

Из вашего описания я понимаю, что существующее приложение работает в стеке LAMP. PHP хорошо интегрируется в стек LAMP и хорошо масштабируется с ним. Почему вы хотите перенести это в экосистему Java? Реализация бизнес-логики в Java означает, что вы отбрасываете основную рабочую часть существующего приложения. Если уже есть работающий бизнес-уровень и DAL, зачем начинать заново? Не будет ли рефакторинг более разумной (и более дешевой) альтернативой?

Кроме того, вы заявляете, что J2EE обеспечит гораздо большую надежность и удобство обслуживания. Как так? Поддерживаемость в основном зависит от архитектуры кода и стиля кодирования. Я не знаю ни одного паттерна в PoEAA Фаулера , который также не может быть реализован в PHP. PHP также предоставляет зрелые платформы для UnitTesting , Непрерывная интеграция , ORM , Внедрение зависимостей , Сообщение Очереди , Веб-сервисы , Развертывание и т. Д. Для поддержки разработки приложений.

Конечно, Java скомпилирована и поддерживает многопоточность и имеет историю в архитектуре корпоративного программного обеспечения, и я не отрицаю, что у нее есть языковые функции, которых нет у PHP. Но вопрос в том, нужны ли они для этого проекта? И давайте не будем забывать, что язык программирования сам по себе ничего не делает. Именно разработчик создает приложение, а код спагетти J2EE по-прежнему остается кодом спагетти.

Только мой 2с, хотя:)

3 голосов
/ 29 марта 2010

Все, что вы хотите сделать, возможно с Zend Framework . Он следует архитектуре MVC и имеет такие вещи, как компонент Zend_Soap для ваших сервисов. Нет смысла создавать какое-либо многоязычное приложение, когда вы можете хранить все это в PHP. Почему вы так сильно хотите использовать Java?

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