我正在運行Ruby on Rails 3,我有一個應用程序使用命名空間來處理更多的「內部概念」。對於「內部概念」,我的意思是每個名稱空間都用於處理我的應用程序的特定資源。例如,名稱空間是「用戶」,它用於處理用戶的會話和授權,另一個是「博客」,它用於處理關於帖子和評論的所有內容。擴展:如何處理Ruby on Rails應用程序之間的通信?
我認爲這是一個「方便」的解決方案,以避免很多問題,但不是最好的。
這時我的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
...
我想用子域有類似切換「用戶」和「博客」命名空間有兩種回報率的應用這樣的:
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.
我可能遇到什麼問題?
我注意到應用程序之間維護會話(在我的情況下,我處理這些與cookie)的問題,但我認爲這不是唯一的一個問題。
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
...
BTW:是一個使用我正在做的命名空間的好方法?
P.S .:如果您需要其他信息,請告訴我,我會更新問題。
*來自The O2 Software Process:「向外擴展」是指添加更多的服務器到現有公園的概念,而不是「升級」,這意味着與更新的版本來替換現有的(緩慢)服務器(和更快)服務器。
使用Ruby和Rails進行面向服務的設計可能對你有用http:// www .amazon.com/Service-Oriented-Design-Rails-Addison-Wesley-Professional/dp/0321659368/ref = sr_1_1?ie = UTF8&qid = 1297533429&sr = 8-1 – 2011-02-12 17:58:43
如你所知,這本書好嗎? – user502052 2011-02-12 18:20:15