Архитектура Java - вопрос о дизайне решений - PullRequest
1 голос
/ 11 ноября 2010

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

В моей более ранней карьере как младший. разработчик программного обеспечения, приложения, над которыми я работал, в основном состояли из Hibernate, Spring и UI (JSF, YUI и т. д.). Приложение, над которым я сейчас работаю, огромно и работает на сервере BeaWebLogic.

Дизайн более ранних приложений был похож на 2-3 проекта, разделяющих приложение на слой DAO , Сервис и UI , развернутый на Tomcat и может быть запущен из сборки в Eclipse. Легко отлаживать и все такое.

Тем не менее, текущее приложение разворачивается с использованием скриптов Python, BEAServer запускается отдельно, и из Eclipse мне нужно подключиться к удаленному Java-приложению, используя некоторые аргументы.

Мой вопрос: «Почему этот дизайн принят здесь?» - я буду обсуждать это и внутри организации, но я хочу обсудить это здесь раньше.

1 Ответ

3 голосов
/ 11 ноября 2010

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

Тем не менее, я рискну предположить (и только предположить, поскольку вы расплывчаты в деталях): приложение, которым вы сейчас занимаетесьНа первый взгляд, сложность и цель всего лишь на шаг выше, чем то, над чем вы работали раньше.Если вы присмотритесь, я думаю, вы снова найдете слой DAO, Service и UI - однако они больше не будут находиться в одном приложении.Вместо этого вы, вероятно, обнаружите, что пользовательский интерфейс вставлен в выделенное клиентское приложение, а сервер реализует уровни Service и DAO.Одним из непосредственных преимуществ является то, что серверный компьютер может быть полностью выделен для обслуживания данных, в то время как пользовательский интерфейс обрабатывается на компьютерах пользователей.Вы также можете обнаружить, что некоторые из ваших клиентов приложений вовсе не люди, а другие компьютерные системы (которые по логике не нуждаются в пользовательском интерфейсе).

Редактировать, чтобы ответить на последующий комментарий Эли:

Короткий ответ: это зависит.

Первое, что я бы сделал при проектировании системы Enterprise, - это нашел людей с большим опытом в подобных вещах.Но если оставить в покое мои собственные устройства, я начну с рассмотрения того, что должна делать система;сколько пользователей 50M находятся в сети одновременно;какой интерфейс требуется и так далее.На основе этой информации я бы затем разработал исходную архитектуру и решил, какие технологии использовать.

По всей вероятности, я бы использовал Springs и Hibernate для внутренних функций сервера, поскольку обе технологии являются мощными, хорошо зарекомендовавший себя, но еще и потому, что я с ними немного знаком.Вопрос «EJB-или-нет» снова будет зависеть от обстоятельств - однако обратите внимание, что можно использовать средства EJB просто для реализации взаимодействия клиент-сервер, тогда как остальная часть системы написана более легким способом.

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