There are more than 20 different implementations of the EJB specification available. Each one offers its own set of advantages and differentiators. I also want the flexibility to be able to start small and upgrade my system to more powerful capabilities as my requirements get more complicated. If you want to discuss performance, scalability, or management characteristics, you have to talk about product implementations. There are certainly some advantages gained by integrating with the operating system, but there are other ways to ensure high scalability and performance.
Developers have to define lots of EJB-related interfaces as well as the actual application logic.
The EJB application server installation utilities use these interface definitions to generate all the COMware code. The area where Roger and I have our biggest difference of opinion is over entity beans, or more specifically, state management. Roger claims that the primary difference between session beans and entity beans has to do with database IDs and how they are passed around. I absolutely disagree with this assertion. The real difference between session and entity beans is in terms of dedicated versus shared usage.