I invite Ben and Dave to comment on 2nd question. Many contemporary application servers are adopting support for this framework, which includes the advantage of portability from one app-server to others. Thus an EJB approach is a sensible one for this reason, among many others. It provides an abstract layer over RMI for a distributed model, and works within the app-server to quickly take care of infrastructure services and allow the developer to deal more intently on business logic, which is of course the preferential arrangement for productivity. I currently view an EJB-Application Server as the optimal choice.
Gemstone is such an animal.
There are, however, many differences between EJB app servers that affect performance, maintenance, and efficient development modes, and what we learn from using Gemstone will serve as an excellent basis for conducting a more formal evaluation later on. Ben's work with GRDS revealed UltraSeek as one of the premier search engines, however like most commercial products it has a closed architecture, i.e. we can't tell it how its data model should look nor can we grab its search results to put into our own database. Ben is currently prototyping HtDig, an open-source search engine. If such a product can be harnessed, we benefit not only from adapting it to our scheme but from saving money as well. If we cannot adapt such a product, the worst case is to have to construct our own search engine.