I'm looking for 开发者_如何学Pythonan answer from those who have experience with complex real world enterprise n-tier applications.
How many physical tiers (distributed to separate machines) exist in practice in enterprise apps beyond the obvious 3?
What technlogies are mostly used for inter-tier communication, both in Java EE and .NET worlds?
Are there (m)any DCOM-based n-tier apps?
There is no one answer to your questions. I can put 3 tier on 2 servers, 1 server, 3 servers.
Every Tier can be divided logically to more tiers... database can be divided to Actual database, Data access layer, ORM, you can theoretically put each layer into a single machine but it will be inefficient.
SO - the answer to your question - is as many as you like. I consider performance and security in the decision to separate, some will also consider complexity.
I use ORM like nHibernate from App tier to DB and WCF from the presentation tier to the App tier. (in the .NET world).
(there might be dcom based n-tier apps, but this technology is old and I wouldn't use it in new projects)
For the current project I'm working on ther is
- The GUI tier
- The server tier
- The DB tier
- The slave tier
The slave tier is a tier consisting of slave computers carrying out offline batch processes. The slaves sole responsivbility is to carry out massively parallel computations-
Our software architecture, however, is separated into only three tiers: gui, server, and the data shared by gui and server.
精彩评论