I am new to EJB. If some one could answer to the following questions it will be great for me.
1. What is the diff. between designing an EJB application and a Non-EJB application with the same functionalities ?
2. What is the diff. between the performance of EJB and Non-EJB applications ?
3. How easily a Non-EJB application can be converted to an EJB application ?
Thanks in advance.
It is great different because ejb is designed for disributes systems, and transaction support applications
non ejb applications are more performant in case of simple use. But when you have to support transaction and distributed threads you have tu use ejb. To convert application you have to add other class.
While designing EJB application you are going to concentrate on business logic not on low level system issues like connection pooling,transaction,security,persistance as these are provided by the container it self ,on the contrary in Non EJb application you need to hardcode all this this is main difference.So here you have to fight for every thing to earn a good bread and butter but not in EJbs :))
2) Mind very well EJB is not a Techonology its a specification from SUN ...Now its totally on you how you use this specification basically EJBs are well suited for transactional oriented web based applications..... when concurrent user want to use the shared resource which invloves the complex transactions.
3)There are some basic steps for converting the non ejb apps in to EJb oriented apps.
a) Are you really looking for EJBs (as its not cheap to have the one !! )
b)If your answer is yes !!
c)Now you to choose the container (some of them are freely avilable e.g. JBoss).
d) devlop EJbs from some avilable IDE !
e) Deploy them on container.
so to write the business logic this is the only you have to do rest of every thing will be doné by the IDE and some tools avilable.
Hope this helps to you !
if you still have some doubts
feel free to talk to me on
S dot Manoj at zensar dot com
Though Manoj has covered everything.
My two cents here
Basing an application on J2EE framework is a huge challenge.
Because, we have to design the system within the whole gamut of J2EE.
J2EE provides services like JNDI, Transaction services, Connection pooling for Database connections usually through datasource registered with JNDI, then persistence of Data through Entity beans and mani more (refer to specifications)
So, When designing a system, we have to actally map business logic to some classes and interfaces.
As manoj said, JBoss provides a container for free as well as Application server which hosts these special classes
For building the source code structure in a platform independent way, we have ant (build framework from apache)
Then deploying beans or hosting just beans is very simple in JBoss.
But the basic concept of programming paradigm do not change.
We have to still use design patterns, UML diagrams etc .
Refer to Javasoft webisite and serverside.com is a great one to start for evaluating J2EE and also read some great reviews on app servers on theserverside.com.