I have a pretty large Java EE web service application (100+ web services, 300,000 LOCs, 500+ classes). Even small changes are difficult to make, mainly due to the costs of the deployment process: the risk of reducing time, time to deploy a large application, the risk of unforeseen changes due to the creation of the entire application for one change, branch management, etc. Currently deployed as one EAR.
The application is already divided into a service level, a business level, DAO, etc., but there is a rather large network of dependencies in the classes, so no matter how you split it into parts, there will be a lot of communication cross.
One option is to break the pieces into JARs and deploy more exploded ones, so you can deploy the JARs yourself. The problem that I think we will have is compiling dependencies in the JAR, so we will encounter build clutter and probably the problem of serializing the class if we try to drop new versions without completely recompiling.
Another option is to break into several WARs and make a bunch of RMI or exchange via webservice through modules, but this will mean hundreds of new “internal” web services to manage and, probably, increase response time.
Does anyone come across good solutions to the above? Or have you tried something to avoid?
source
share