This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
I'm working on a large application that consists of independent modules that could be looked at as sub-applications themselves. The requirement is anyway to deploy the modules in phases. The application is human-tasks oriented and involves processing many documents. Performance & Scalability are very high on priority.
The architect had proposed an SOA based Business Process Management solution (using WebSphere Process Server) for this system. This doesn't seem right to me. I understood that BPMS is used at enterprise level orchestrating/choreographing re-usable services. It doesn't make sense exposing every service in this application as a Web-service when they are not at all reusable beyond the application boundaries. The architect has long left and so I have to take the high level solution forward.
Is it right to use a Front office BPMS solution for a single application? Is it feasible to integrate BPMS and a MVC framework (Struts + Spring)? Moreover, the app requires rich presentations i.e., heavy usage of AJAX.
independent modules that could be looked at as sub-applications themselves
An service-oriented approach sounds like a good plan for the modules above. Implementing the modules as services and exposing them are a little different. Service-oriented analysis and design is a big topic and there are many different ways to implement services. I would suggest that you stay on track with what was planned, if possible. If you need help understanding service-oriented software concepts better, I would purchase a copy of ENTERPRISE SOA, Service-Oriented Architecture Best Practices by Krafzig, Banke, Slama.
Is it feasible to integrate BPMS and a MVC framework (Struts + Spring)? Moreover, the app requires rich presentations i.e., heavy usage of AJAX.
In a service-oriented architecture there are typically five layers. Not all applications are suited for a business process manangement and business rules approach. Heavy usage of AJAX indicates that this is a web, presentation-oriented application. You need to determine what the business rules are and how many of these business rules are related to GUI-related presentation. GUI applications typically don't fit in well with SOA designs. Maybe the service-oriented approach is incorrect. You have to figure this out and make your case.
Good luck! [ July 29, 2008: Message edited by: James Clark ]