我正在运行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