Веб-сервисы будут более совместимыми, чем EJB. Они используют HTTP в качестве протокола; это то, что используют браузерные интерфейсы. Если вы используете EJB, основанные на RMI, вам придется обернуть их, чтобы принимать HTTP-запросы.
Я бы предпочел подход Spring / POJO, использующий веб-сервисы Spring «контракт сначала» для внутренних сервисов. Я очень предпочитаю Spring EJB.
Я бы не стал переходить в Hibernate, если у вас нет надежной объектной модели, и сложность этого требует. Могу поспорить, что прямой JDBC или, возможно, iBatis будет более чем достаточно.