Term
|
Definition
| Enterprise Java Beans are a server side component model for distributed applications. |
|
|
Term
| What are the advantages of using EJBS? |
|
Definition
EJBs are distributed objects that can be accessed remotely.
- EJBs are supported by a rich set of implict and explicit services. The application server provides that support.
- Implicit services- Tranactions, security, life cycle, concurrency, persistence and remote access
- Explicit services- JDBC, JTS, JNDI, JCA, RMI, JMX, JAAS
- Makes it easier to build business components
- EJBs provide Reliability, Robustness and Scalability
|
|
|
Term
| What are the different types of EJBs? |
|
Definition
Session Entity and Message Driven Bean
- Session Beans are extensions of the client application that manage processes or tasks
- Entity Beans are an ORM component.
- Message Driven Beans are integration points for other application sinterested in working with the Java application. Java applications that need accesss to EJB applications can send MDB messages via JMS.
|
|
|
Term
What code must be supplied to the client in order to acces a session bean?
|
|
Definition
- Remote Home Interface extends javax.ejb.EjbHome
- Remote Interface extends javax.ejb.EjbObject
|
|
|
Term
| How would you make an interface remote? |
|
Definition
- It must extend java.rmi.Remote
- Each method must declare an java.rmi.RemoteException
- Arguments and return types must be shippable (Serializable, Primitive or Remote)
|
|
|
Term
| Can stateless Session Beans contain multiple create() methods() in the Home Interface? |
|
Definition
| No. Stateless beans can only have one create() method and it cannot contain any arguments. |
|
|
Term
| Can stateful Session Beans contain multiple create() methods() in the Home Interface? |
|
Definition
| Stateful Session Beans can have multiple, overloaded create() and do not necessarilly have to have a no argument create() method |
|
|
Term
| What is the difference between Stateful and Stateless Session beans? |
|
Definition
- Conversational state is maintained (passivate) in the case of stateful session beans.
- State is not maintained in the case of Stateless Session Beans
|
|
|
Term
| What is a Remote Interface? |
|
Definition
- It defines the bean's business methods which cab be accessed from applications outside of the EJB container:the business bean presents to the outside world.
- It extends javax.ejb.EjbObject which in turns extends java.rmi.remote
|
|
|
Term
| What is a remote home interface? |
|
Definition
- It defines the bean's life cycle methods that can be accessed form outside of the EJB container:life cycle methods for creating new beans, removing beans and finding beans.
- the home interface extends javax.ejb.EJBHome which extends java.rmi.Remote
|
|
|
Term
| What is a local interface? |
|
Definition
| It defines the business methods that can be used within the same EJB container. |
|
|
Term
| What is a local home interface? |
|
Definition
| It defines the life cycle methods that can be used by other EJBs in the same EJB container. |
|
|
Term
|
Definition
| The session and entity bean classes implement the bean business and life cycle methods. Note that the bean class usually does not implement the remote or local component interfaces, but it may implement the endpoint interface. However, the bean class must have methods matching the signatures of the methods defined in the remote, local, endpoint interfaces and must have methods corresponding to some of the methods in both the remote and local home interfaces. It extends javax.ejb.SessionBean, javax.ejb.EntityBean or javax.ejb.MessageDrivenBean |
|
|
Term
|
Definition
| On the server side, an EJB object is aan object that implements the remote and/or local interfaces of the enterprise bean. The EJB OBject is generated by your EJB container and wraps the enterprise bean instance- that is and instance of the bean class you've created. This object works with the container to apply transactions , security and other system-level operations to the bean at runtime. |
|
|
Term
|
Definition
| The Ejb home is a lot like the EJB object. It is another class that is genereated automatically when you install the enterprise bean in the container. It implementst all the methods defined by the home interfaces and is responsible for helping the container manage the bean's life cycle. The EJB home is responsible for locating, creating and removing enterprise beans. These tasks may involve working with the EJB servers resource managers, instance pooling and persistence mechanisms. These details are hidden to the developer. |
|
|
Term
| What data types can be passed as parameters or returned from EJBs? |
|
Definition
- Primitives
- Serializable types
- Java RMI remote types
|
|
|
Term
What are the types of messages models for MDBs?
|
|
Definition
- Topic - (Publish and Subscribe) - All MDBs in the pool can get the message simultaneously.
- Queue- (point to point) Behaves like a first in first out (FIFO) queue. Only one MDB gets the message
|
|
|
Term
| Are parameters to methods defined in EJB Remote interfaces passed by value or passed by reference? |
|
Definition
- Serializable objects are passed by value.
- Objects taht implement java.rmi.Remote are passed as remote references. When a remote reference is passed as a parameter or returned from a method, the stub is sericalized and passed by value. Not the object referenced by the stub.
|
|
|
Term
| What is the difference between Local and Distributed Transactions? |
|
Definition
- Local transaction only have one Resource Manger. In a local transaction, the transaction manager ans resource manager are often indistinguishable(Note: The transaction Manger is the supreme wuthority in overseeing the transaction. There can only be one transaction manager per transaction. An example of a resource manager is the JDBC driver)
- Distributed Transactions can span multiple resources enabling multiple resources to participate in the same transaction. To support a distributed transaction the transactionand resource manages communicate using the XA protocol. This protocol supports two phase commit process.
|
|
|
Term
| How do you manange transactions in EJBS? |
|
Definition
Container Managed Transactions
Bean managed Transactions
|
|
|
Term
| What are the carious Trasactional attributes in the case of CMT? |
|
Definition
- Not Supported
- Supports
- Required
- RequiresNew
- Mandatory
- Never
|
|
|
Term
| What are the transactional attributes supported by MDBs |
|
Definition
|
|
Term
| On what types if exceptions will the container rollback the transaction |
|
Definition
| System Exceptions cause the container to rollback a transactions. This can be a RuntimeException or RemoteException. Other application exceptions will be committed by the container unless specified. |
|
|
Term
| What API is used of Bean Managed Transactions? |
|
Definition
The Java Transaction API (JTA). javax.transaction package.
|
|
|
Term
| What are the transaction levels |
|
Definition
|
|
Term
| What are the essential characteristics of a transaction? |
|
Definition
- Atomic- Transaction must execute completely or not at all
- Consistency refers to integrity of the data store
- Isolated- transactions without interferrence
- Durability- Data is not lost in the event of a crash of the system
|
|
|
Term
| How do you manage the security of an ejb? What is the difference between authorization and authentication? |
|
Definition
| Authorization is the event of verifying a user or caller of the ejb si is who they claim to be. Authorization is where a user is authroized for a resource in this case the ejb/methods. The security realm is the mechanism for managing for managing the security pricnciples. These principles are individuals or groups that may be identified by user id and password. The calling EJB principle is identified by the user and password on the JNDI lookup. Security roles may be defined to simplfy ad define assignement security to groups. Method security can be applied to by the role. Method permissions can apply to home, remote or local interface methods and are defined in the ejb-jar.xml file |
|
|