Note that there are some explanatory texts on larger screens.

plurals
  1. POOpinions/headers for splitting an application into front-end/back-end (not user/admin, but ui/logic)
    text
    copied!<p>I am building a new web application and playing around with the architecture and would like some opinions about splitting UI and business logic and running them on separate servers.</p> <p>This means that if someone requests a page, the front end will itself request the data from a back-end server and then not actually perform any calculations/logic but just use the data to populate a template and then respond with that.</p> <ul> <li>Back-End: Java + JAX-WS</li> <li>Front-End: <a href="http://kohanaframework.org/" rel="nofollow">Kohana</a> 3.1 (PHP)</li> <li>Data Interchange Format: JSON</li> </ul> <p><strong>Advantages</strong>:</p> <ul> <li>clear separation of logic and UI</li> <li>ability to choose language/framework best suited for either end</li> <li>possibility to add logic/UI servers depending on which one is the bottleneck in case of performance issues</li> <li>possibility to make the API publicly available without any extra work (pseudo-internal requests will go to the same API as requests from third-part applications)</li> <li>ability to change (if need be) the framework/language of either side without having to edit the other</li> <li>ability to specify different server hardware according to the needs of the logic/UI application</li> <li>better security (if API private) (??)</li> </ul> <p><strong>Disadvantages</strong>:</p> <ul> <li>latency (??)</li> <li>more servers</li> </ul> <p>So what do you think? Is this a good idea? I haven't been able to find much information so far but my guess is that many big sites do it this way, right? How will performance be affected (I am thinking of running it on EC2)? What are further advantages/disadvantages? Any thoughts on the languages/frameworks choices?</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload