The point that I couldn't understand well is "Application framework".
Can you describe what is meant by this point?
Regarding the web server, which is where our application is run, can we
say that if we deploy the application to the local machine the local
machine is a web server. And, if we deploy the application to
www.xyz.com, the web server is xyz.com?
Wow, that's absolutely wrong. I've done without 4 quite nicely, and
some people do without 1. Even 2 isn't necessary for certain types of
applications. Only 3 is essential.
The point that I couldn't understand well is "Application framework".
Can you describe what is meant by this point?
Basically, an application framework is a set of libraries -- such as
Rails -- which takes care of the infrastructure of the application
(setting up an architecture, talking to the Web server, etc.).
Regarding the web server, which is where our application is run, can we
say that if we deploy the application to the local machine the local
machine is a web server. And, if we deploy the application to
www.xyz.com, the web server is xyz.com?
Yes on both counts. A Web server is just a computer that can respond to
HTTP requests.
"Application framework" relates to the framework itself which in this
case is Rails. Others in the ruby realm include Sinatra and Merb.
Regarding the web server, which is where our application is run, can we
say that if we deploy the application to the local machine the local
machine is a web server. And, if we deploy the application to
www.xyz.com, the web server is xyz.com?
Rails has 3 environments: development, test and production. It does
not matter which machine is used. What matters is which environment
you're running your application on (ie. development, test or
production).