Hallo!
Ich hab auch schon einiges mit EJB gemacht und muss sagen, dass die ganze Komplexität die ein EJB Ansatz verlangt
mittlerweile wirklich nur noch mit Codegeneratoren ala XDoclet oder auf Velocity-Basis zu handeln ist. Was meiner Meinung nach EJB trotzdem noch Wertvoll macht ist wie "einfach" man damit verteilte Dienstkomponenten entwickeln kann. Man sagt ja auch das das wirklich schlechte an EJB eigentlich nur die Persistenzschicht wäre (CMP und BMP EntityBeans) unter anderem auch deswegen, weil gerade dafür die "Komplexesten" Containerabhänigen Deploymentdeskriptoren notwendig sind. Mit den normalen SessionBeans (Stateless) und MessageDrivenBeans hat man im allgemeinen nicht so sehr die Probleme.
Btw. zur Sache das man bei Verwendung von EJB zur Performancesteigerung teilweise bei "größeren" Batch-Aktionen auf händisches JDBC setzen muss. Diese Tatsache findet sich auch in Form eines DesignPatterns wieder (Fast Lane Reader). Diese Vorgehensweise ist nicht nur bei der Verwendung von EJB sondern auch bei Hibernate ratsam. Selbst die "Hibernate-Experten" aus dem Buch "Hibernate in Action" sagen das Hibernate nicht für "Massendatenverarbeitung" entworfen wurde. Somit ist dieser Umstand IMHO nicht an die Technologie EJB gebunden sondern davon unabhänig.
Btw2. Hibernate 2. ist auch schon "schnell" obwohl solche Aussagen immer als rein Subjektiv anzusehen sind und stark vom Anwendungsgebiet abhängen....
Zur Frage was ein EJB Experte ist... hmmm...
Ein EJB Experte ist für mich jemand, der sich mit der EJB Spezifikations-Reihe von 1.0 - 2.1 auskennt und 1-2 Applikationsserver Konfigurieren (*Beans, Datenquellen, Transaktionsmanager, JMS-Queues/Topics,Mail, etc.) und damit umgehen (Deployment, Administration) kann. Weiterhin muss sich dieser jemand zwingen sehr gut im sonstigen J2EE Bereich gut auskennen (JDBC,JNDI,JMS,JTA,JCA,JAAS,JMX,Java Mail, Servlets, JSP...) zusätzlich sollten noch gute Kenntnisse mit XML und RMI und/ oder Corba vorhanden sein. Ansonsten sollte dieser "Experte" die meisten bewährten EJB Design Patterns kennen und anwenden können. Ein zusätzliches Schmankerl wäre noch wenn er auch Ahnung von Methodiken zur Performanzverbesserung bzw. Aufstellung von Systemmetriken hätte. Unverzichtbar sind jedoch auf jeden Fall auch Kenntnisse in der Praktischen Anwendung und vor allem der Entwicklung von EJB's (Codegeneratoren, Konfiguration der Entwicklungsumgebung, Erfährung mit Client-Komponenten etc.).... und, und, und...
Just my 2 Cents,
Gruß Tom