Я использую Ruby on Rails 3, и у меня есть приложение, которое использует пространства имен для обработки большего количества «внутренних концепций».Под «внутренними понятиями» я подразумеваю, что каждое пространство имен используется для обработки определенного ресурса моего приложения.Например, пространство имен - «пользователи», и оно используется для обработки пользовательских сеансов и авторизаций, другое - «блоги», и оно используется для обработки всех сообщений и комментариев.
Я думаю, что это «удобное» решение, позволяющее избежать многих проблем, но не самое лучшее.
В настоящее время мое приложение RoR состоит из этой структуры файловой системы:
# "users" and "blogs" are namespaces
RAILS_ROOT/app/controllers/users
RAILS_ROOT/app/controllers/blogs
RAILS_ROOT/app/models/users
RAILS_ROOT/app/models/blogs
RAILS_ROOT/app/views/users
RAILS_ROOT/app/views/blogs
...
Я хотел бы переключить пространство имен «пользователи» и «блоги» в двух приложениях RoR с использованием поддоменов , чтобы получить что-то вроде этого:
http://main.com # This is the main RoR application
http://users.main.com # This is another RoR application used to handle users
http://blogs.main.com # This is another RoR application used to handle blogs
В двух словах,Я думаю, что я пытаюсь Уменьшить * мое приложение или, возможно, создать Webservice для каждого приложения RoR, но мои проблемы:
1.
С какими проблемами я могу столкнуться?
Я заметил проблемы с поддержанием сеансов (в моем случае я обрабатываю их с помощью куки) между приложениями, но я думаю, что это не единственная проблема.
2.
Как обрабатывать связь между тремя приложениями RoR в моем случае?
Я заметил, что могу использовать ActiveResource для обмена информацией, но я должен обратить внимание на такую информацию, как аутентификация пользователя.
Я должен реализовать протокол OpenID / Oauth для поддержания аутентификации пользователя?
Я думаю, что я должен обеспечить информацию аутентификации пользователя с HTTPS-соединением также, если связь происходит между поддоменами. Это правда?
3.
Как мне организовать свою работу и ресурсы?
При всем этом существесказал: Я бы не хотел использовать ( абсолютно ) плагинов или гемов, но, если мне нужно, я бы хотел реализовать свой собственный обработчик .
В конце я хотел бы иметь 3 RoR "простых" и разделенных приложения без использования пространств имен в каждом из них, которые могут взаимодействовать между собой:
# "Main" application for http://main.com
ROOT_MAIN/app/controllers/
ROOT_MAIN/app/models/
ROOT_MAIN/app/views/users
...
# "Users" application for http://users.main.com
ROOT_USERS/app/controllers/
ROOT_USERS/app/models/
ROOT_USERS/app/views/users
...
# "Blogs" application for http://blogs.main.com
ROOT_BLOGS/app/controllers/
ROOT_BLOGS/app/models/
ROOT_BLOGS/app/views/users
...
КСТАТИ : это хороший подход к использованию пространств имен, которые я использую?
PS: Если вам нужна какая-то другая информация, дайте мне знать, и я обновлю вопрос.
* С Процесс разработки программного обеспечения O2 : «Масштабирование» относится к концепции добавления большего количества серверов к существующему парку, а не к «Масштабированию», что означает замену существующего(медленные) серверы с более новыми (и более быстрыми) серверами.