The parallel programming is a fundemental methodology as OO design pattern.
It differs in different level to parallel your application. The application servers normally provide you the cluster solution which is a general parallel solution based on system level related to the level of your application. (Because application servers serve your application. there is also parallel solution based on JVM level.)
But you can implement your parallel solution in your application level. then it is specific to your application and it must behave better than the general one provided by application servers.
I still think people here go to another extreme to treat OO.
Lots of parallel problem depends on the nature of the project. even you have super architecture but you cannot make big improvement in performance via parallel programming. In this situation, you can only degrade your parallel solution in the lower layer such as your application server.
Remember: the performance is not endless improved with the increase of your CPUs. Why? Because more CPUs means more communication between the CPUs. that also consumes huge amount of time.Thus, when CPU number increases to a certain level, your software will even run slower than being served on a single CPU.
In the application level of programming, the truth is that your business requirement decides if you can parallel your programming or not. But it doesn't depend on your architecture.
Imagine: you need to finish a workflow seriously following a sequence. Then how tricky you make in architecture, you cannot realize parallel programming in application level.
I wish that can light up your way in parallel programming.