I am developing a simple/small project using a MVC architecture (1st stage), but this project is incremental. I am expecting to add more functionality during the next 3 years. I was first tempted to use EJBs from the very beginning but I think it is not already justified.
Please refer me to any resources that help in measuring what would be the effort and the benefits of changing the architecture in subsequent stages of the project.
And let me know your comments regarding what are the pros and cons of using EJB vs JSP/Servlets/Beans architectures?
Beforehand I thank you guys.
You have to figure out what your client will be. If you need to support multiple client, or if you need to support a Swing client, EJBs can be very advantageous, because you can encapsulate business logic in them, and all clients will see changes made to them. This is especially good for Swing, because you will have any number of Swing clients on desktops, and they will all use the same business logic. Combined with WebStart, you have a really good way to deploy a feature-rich application to users.
In any case, (web or swing client or whatever), people using EJBs typically use Business Delegates, which have the same functionality of EJBs, but wrap all the remote access and exception handling. Your architecture will probably use this. What you can do, if you don't feel like using EJBs from the get-go, is to use Business Delegates and have everything code to that. You can then modify your business delegates later to use EJB calls and clients won't have to change (other than needing the EJB Remote and Home interfaces in their JVMs).
Keep the things more simple if it can be.Change of design would be always painful at any stage.