Re: Running applications in the storage array
I believe it is relatively trivial for storage appliances that already include a heavy x86-based software layer to run more software on it, up to and including actual business applications. I don't believe that actually gives significant advantages, because network latency is usually trivial compared to the latency in the aforementioned software layers or in the array hardware designs, except in truly extreme performance cases: think some high frequency traders that have skipped Flash and store everything in DRAM, or some HPC environments.
In my opinion, converging compute and storage resources is a cyclical change, not a secular change in the industry. I don't think there is a right answer or a consensus among enterprises as to whether the converged approach is better. The pendulum has swung in both directions if you look at the history of computing.
Most storage manufacturers would LOVE to have servers integrated into their storage. Most server manufacturers would LOVE to have storage integrated into their servers. Manufacturers want to own the whole stack, and complete integration can offer some benefits. The magnitude of those benefits varies widely. It is nearly always possible to build non-vendor-integrated systems, for the same price or less, that work just as well or better than integrated stacks.
So let's look at the angle from IT shops' perspectives. There are basically two camps here. One says that vendor-integrated solutions are great because they reduce complexity. The other says that vendor-integrated solutions are lousy due to lock-in and interoperability concerns. There is no right answer for 100% of workloads.
(Disclaimer: I work for TMS.)