I am not writing this specifically for part-II. In general, I think a portion of the controller shall be reusable for various "clients". Let us assume that the "main" controller consists of 'view specific controller' + 'EJB Controller'. The 'EJB controller' portion of the controller is reusable. The 'view specific' portion varies for various clients. With this type of approach, I do not see any problem with the performance for specific types of clients.