2010-10-26 2 views
2

Я перешел на платформу Play для перезаписи нашего портала интрасети. Наш портал содержит много слабо связанных материалов, поэтому я ищу совет, как и как разбить его на несколько приложений Play.Когда полезно использовать несколько приложений для воспроизведения вместо одного монолитного?

Каковы последствия его применения в нескольких приложениях? Все еще возможна единая регистрация? Как влияет контроль доступа? Возможно, мне придется дублировать много кода/конфигурации между ними? Что еще я должен учитывать, когда решаем, где разделить вещи друг от друга?

ответ

2

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

Есть единый вход еще возможно? Я бы сказал, да. Вы можете хранить данные в файле cookie, но должны убедиться, что другие URL-адреса могут его прочитать.

Возможно, мне придется дублировать много кода/конфигурации между ними? Хорошо, если вы используете аналогичные базы данных, это будет еще один недостаток по сравнению с модулями, но я бы не стал беспокоиться об этом 1 файле конфигурации. Код, который необходим в более чем одном приложении, может быть легко передан через jar-файлы в виде библиотеки или для этого используются модули.

+0

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

0

С тех пор я обнаружил, что наличие апатрида на стороне сервера означает, что Play использует хеши HMAC, хранящиеся в файлах cookie вместе с именем пользователя, чтобы отслеживать сеансы. Если несколько приложений для воспроизведения должны быть аутентифицированы в отношении одного и того же набора учетных данных (OpenLDAP в моем случае), им просто нужно иметь тот же application.secret, сконфигурированный в conf/application.conf, чтобы добиться единого входа.