I have inherited a web site built with Tiles, Struts2, Spring, and Hibernate/JPA. The site even has some web services and old Struts 1.x applications running on it. The problem with the site is that it's running between 50 and 75 forms and several CRUD applications all within the same monolithic web application. Almost all of the forms are configured with Spring and use Hibernate/JPA for data persistence. The site is also integrated with some other standalone applications via Jasig CAS SSO.
My question is how is this normally handled? Should each web form be running as a separate web application? Should the applications and forms be divide up logically into smaller web applications? A site like this makes it hard to introduce any new frameworks or technologies into it. In the past I've always focused on developing single purpose standalone web applications such as order management systems and the like -- I've never had to manage a web portal with tons of forms and apps running in it. We're actually migrating to Liferay portal over the next year, so I'm hoping that will help break stuff up somewhat. I guess I should also mention that I only have one physical server available to run all of this on until we purchase a new one just to run Liferay.
50 to 75 forms doesn't sound monolithic to me. Are these applications silos? That is, are they really completely separate applications or are they intertwined by links and code. Is the code easy to understand and is it laid out well? Does it use standard design patterns? Is it well-commented? Is the presentation user-friendly? Will changing the presentation upset your user base? If not then converting a large web app to many small web apps without addressing the problems doesn't seam to add much value to me.