How do I encapsulate the application server from the web and database servers?
Posted
by
SNyamathi
on Server Fault
See other posts from Server Fault
or by SNyamathi
Published on 2012-09-23T20:05:44Z
Indexed on
2012/09/23
21:39 UTC
Read the original article
Hit count: 228
So I've been doing some reading and it seems like the best practice would be to have separate database, application, and web servers. There are a few things that I've failed to understand - please feel free to recommend any reading materials that would address these topics.
Database (assume MySQL) Application server communication:
- Does the database server do any sort of checks on the SQL commands sent / returned, or is it just a "dumb pipe" that responds to SQL commands by spitting back data?
Application server (assume Tomcat) Web Server
Almost the reverse here, is it the web server that is more of a pipe to the internet that forwards requests to the application server and spits back responses? I'm not wording this well, but I'm trying to ask - is it the application server that is responsible for validating data received by from requests? ex:
- Parsing POSTs
- Validating user logins
- Encrypting decrypting data
Furthermore, how do these two servers communicate? I'm trying to keep things as flexible as possible here, so while I could write a web server in Java and use Java to communicate between the web and app server, that doesn't sound very modular. What if I want to use Python or some other language to replace the web server later on? What if I want to make a non-web facing application used in house written in C++ or something.
© Server Fault or respective owner