I know that some part of OpenKM already in 3-tier architecture. I think it's a good idea to implement it in full 3-tiered architecture (probably in future release). What I mean is like this :
End Users <-----> Servlet <-----> EJB <------> Data Store
With this architecture, there are several advantage :
- Server can be fully separated into several layer (say servlet is deployed in tomcat or jboss, EJB deployed in other Jboss server). Zero day bug in web server (servlet) is not end of day for the whole system (bussiness logic is in other server).
- More scalable : every layer can be deployed in cluster, so more scalable, suitable for big OpenKM deployment
- Bussiness logic is not directly attackable by end user, it burried deep in the other server (technically shouldn't have network connection with end user, just with servlet application)
End Users <-----> Servlet <-----> EJB <------> Data Store
With this architecture, there are several advantage :
- Server can be fully separated into several layer (say servlet is deployed in tomcat or jboss, EJB deployed in other Jboss server). Zero day bug in web server (servlet) is not end of day for the whole system (bussiness logic is in other server).
- More scalable : every layer can be deployed in cluster, so more scalable, suitable for big OpenKM deployment
- Bussiness logic is not directly attackable by end user, it burried deep in the other server (technically shouldn't have network connection with end user, just with servlet application)