1) Use of session to store user credentials in the server side (stores a "SessionManager" object)
2) "End of session" validation in the client
3) Access validation in the server side
4) ProcessRequestor object that wraps error and exception handling to maximize reuse.