2009-10-27 3 views
0

Мои классы домена и логика устойчивости (Hibernate) находятся в одном проекте под названием model. Эта банка включена во все мои приложения.
Упакованный com.company.model & com.company.persistanceАрхитектурные проблемы

Другой Utils.jar - содержит DateTime, String, тема и т.д. общие вспомогательные классы. Это снова включено во все мои приложения.
Пакетированные com.company.utils

У меня есть CXF/Spring приложение, которое обнажает услуги для управления мои данные. CRUD, ВСЕ другие общие функции. Это «путь» к моей базе данных для любого приложения.
Пакетированное com.company.services и работает на сервере приложений Glassfish

У меня есть другие приложения, которые используют веб-службы (Spring впрыскивается) для управления моими данные. Включая веб-приложение, которое будет использовать виджеты YUI и XML/JSON из веб-сервисов для приятного плавного интерфейса.

Я понимаю, что это не вопрос! Я полагаю, что Im ищет подтверждение того, что это то, как другие разрабатывают свое программное обеспечение. Если моя архитектура создает хороший, логичный смысл! Очевидно, что есть проблемы с безопасностью - я хочу, чтобы некоторым приложениям разрешалось обращаться только к сервису x. Я обращусь к ним позже.

+0

Оставьте заявку! - Это сбивает с толку. Ваши вопросы могут быть: «Другие делают это?» или «Любые проблемы?» Или «Любые предлагаемые улучшения?» Пожалуйста, перепишите, указав фактическую вещь, которую вы действительно хотите знать. –

+0

Извинения. Я предполагаю, что хочу знать: Являются ли мои варианты дизайна отражением того, что делают другие? – mryan

ответ

2

Звучит хорошо.

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

Но до сих пор звучит хорошо достаточно.

Похоже, вы можете сформулировать вопрос здесь в будущем для какого-то конкретного сценария.

Поскольку это не вопрос, я на самом деле не отвечу. CW

0

Моим единственным комментарием было бы включить классы persistence и Hibernate в отдельный модуль; так что модуль model может быть чисто beans/POJO/вашими классами домена.

Вот как я организовал несколько мульти-модуль проекты до

  • project-data - содержит классы домена и объектов DAO (интерфейсы только)
  • project-services - «Бизнес-логика» услуги слой, делает использование DAO интерфейсы.
    • Зависит от project-data.
  • project-hibernate - Спящий режим реализации интерфейсов DAO.
    • Зависит от project-data.

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

0

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

com.company.model.core com.company.service.core

com.company.model.billing com.company.service.billing

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

Смежные вопросы