Link to home
Start Free TrialLog in
Avatar of jaggernat
jaggernat

asked on

Clarification with EJB terminology

hi experts

I have some experience with EJB but need clarification with certain terms :

   >>    Ejb components are 1. scalable 2. Portable 3. Transactional  4. Secure   <<

1  what does scalable mean? Is it refering to the load of the applicaiton? how/where in websphere app server will i able to configure this?

2. what does portable mean? Does it mean system independence? Consider a scenario where i am using websphere application server to deploy my ejb's. Can you give an example scenario where my ejbs' are portable ?

3. what does Transactional mean?how/where in websphere app server will i be able to configure this?

4. what does Secure mean? how/where in websphere app server do i configure this?

any help appreciated..

** Please provide real time experiences.

thanks
J



Avatar of suprapto45
suprapto45
Flag of Singapore image

Hi J,

This is only my opinion and I am not good in WebSphere :).

1. I think scalable here means that it is able to handle the growth of transactions in your application in the right way. For configuring it, you may not need to configure it but for Session Bean, you may be able to configre the size of the pool for Session Bean.

2. I think that portable means that you can use EJB to switch to any other DB easily and you can just simply export the jar file to another app.

3. Transactional means that it supports rollback, commit and etc. For EJB 2, you do not need to configure it in your WebSphere, it is normally be defined in the ejb-jar.xml or using annotation (if you use it).

4. Secure.....mmmm.....do not really know. Is it secure in the way it manages the data in transactional behavior?

Hope that helps.
David
Avatar of mbvvsatish
1. For example, if an application was developed to handle 100 concurrent users with a performance of x. After sometime, the number of users/customers get doubled. In this case, we have to increase the current processing capability of the application with no degradation of the performance. We increase the number of application server instances and cluster them or increasing the size of the pool (as suprapto45 said) that would best fit the number of users.

2.The objective of portability in EJB is to allow an Enterprise Bean to be used across EJB servers. Enterprise JavaBeans applications will follow the "write-once, run anywhere" philosophy of the Java programming language. An Enterprise Bean can be developed once, and then deployed on multiple platforms without recompilation or source code modification.

3. Transactional means the declarative transaction management that it supports and the support to  rollback, commit and etc (as suprapto45 said)
http://www.unix.org.ua/orelly/java-ent/ebeans/ch08_02.htm

4. Security settings indicating which users and roles should be able to access secure EJBs or secure EJB methods.
method level security has been provided in ejb.

All the above doesnt depend on application servers, so its absolutely not related to your websphere.
you can set all these in the deployment descriptors of the ejb.
Avatar of colr__
colr__

Just adding to mbvvsatish's comments on question 4 - an example if enhanced security within the java platform (as opposed to EJBs specifically) is the use of PreparedStatement which pretty much eliminates the possibility of SQL injection attacks (if used properly).

It is also not possible to create buffer overflow attacks on java bytecode either, since it is a strong type-safe language that simply wont let you try and stuff 64 bits into a 32 bit integer value (C/C++ would let you do this unless the coder specifically prevents it, which is buffer overflows exist). The only posiboility of buffer overflows is in the JVM itself, hich so far has proven very hard.

As mbvvsatish states, there is additional security aspects delivered by the EJB container, which are avaiable via your application server control panel or the J2EE API's.
Avatar of jaggernat

ASKER

thanks for the nice explanation guys

1. >>>increasing the size of the pool
Can we programmatically do this or do we have to set this in the application server.


2.>>>, and then deployed on multiple platforms
So that means if I develop my ejb s in WSAD and export the ejb-jar files(or the corresponding ear file). Can I import that ejb-jar file(or the corresponding ear file) in Jbuilder ( a different platform) and run those ejbs.
SOLUTION
Avatar of suprapto45
suprapto45
Flag of Singapore image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
ASKER CERTIFIED SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
>>> change the server specific deployment descriptors (i.e. xml files).

good point.