Enterprise JavaBeans

**Enterprise JavaBeans** (EJB) es un architectura de componentes de programmatura latere servitor pro le platteforma de disveloppamento Java EE.

Iste architectura propone un skeleto pro crear componentes distribuite (in altere parolas, displicate sur servitores remote) scribite in le linguage de programmation Java albergate intra un servitor applicative permittente de representar datos (EJB nominate "entitate"), de proponer servicios con o sin conservation de stato inter le appellos (EJB nominate "session"), o ancora de complir labores de maniera asynchrone (EJB nominate "message"). Tote le EJBs pote evolver in un contexto transactional.

Del version 1.0 al version 2.1, un EJB esseva accompaniate de un o plure files de displicamento scribite in XML qui permitteva al servitor applicative de displicar correctemente le objecto intra un container. Illo esseva particularmente in iste files de displicamento que le disveloppator habeva le possibilitate de precisar le skeleto transactional in le qual le objecto vadeva executar se. Depost le version 3.0, le modello EJB usa le principio de annotation java (metadatos) pro specificar tote le configuration e le proprietates transactional del objecto. Le file de codice original del EJB basta a se mesme.

Isto es le servitor applicative qui es responsabile del creation, del destruction, del passivation o del activation de su componentes in function del besonios. Le cliente, via un appello RMI (o un de su derivatives), va recercar un EJB per su nomine logic JNDI e appellar un o plure methodos de iste objecto. 

## Le EJB session
Le EJB sessiones (*session beans*) es objectos proponente servicios a lor appellante. Illos propone un certe numero de methodos scribite per le disveloppator. Il ha duo typos de EJB session: le EJB sessiones non conservante lor stato inter duo appellos (EJB nominate *stateless*), e illos conservante lo (EJB nominate *statefull*). Il non ha alcun garantia que inter duo appellos al mesme EJB le instantia del objecto sia le mesme.

### ''Stateless session bean''
Le particularitate principal de un *stateless session bean* es de non conservar de stato inter le differente appellos.

```java
@Stateless
public class StatelessSessionBeanImpl implements StatelessSessionBean 
{
	public String sayHello() 
	{
		return ("Hello!");
	}
}
```


### ''Stateful session bean''
Le particularitate principal de un *stateful session bean* es de conservar su stato inter differente appellos de methodos.

```java
@Stateful
public class StatefulSessionBeanImpl implements StatefulSessionBean
{
	private String user;

	public void login(String user) 
	{
		this.user = user;
	}

	public String sayHello() 
	{
		if (user == null)
		{
			return ("Hello world!");
		}
		return ("Hello " + user + "!");
	}
}
```


## Le EJB entitate
Le EJB entitate es *beans* habente majoritarimente pro vocation de esser persistente, in altere parolas potente esser tenite super un supporto physic inter duo sessiones.

Le EJB entitate pote esser de duo sortas: BMP (*bean managed persistence*) o CMP (*container managed persistence*).

Le BMP es *beans* cuje persistentia ha debite esser programmate per le disveloppator (iste ultime debe respectar un formato pro le classe e le methodos a implementar qui es imponite per le norma). 

Le EJB CMP es istos del *beans* cuje persistentia es directemente assecurate per le container de EJB; le mapping inter le objecto e su supporto de persistentia es indicate al container via le files descriptor de displicamento. Le disveloppator, post que le file de displicamento es realisate, non ha besonio de scriber le codice de persistentia.

Depost le version 3.0 del specification EJB, le notion de bean BMP/CMP non existe plus: le EJB entitate es directemente ligate al base de datos via un associator inter objectos e relationes. Iste association es definite sia in un file de configuration XML, o directemente in le codice Java in usante annotationes.

Iste nove interfacie de programmation del EJB entitate es appellate Java Persistance API.

## Le EJB message
Del norma EJB 2.0, iste architectura propone un tertie typo de componente: le EJB message permittente de provocar un processo al latere de un servitor applicative al tempore del publication de un message asynchrone. Pro iste componentes, le cliente non se adressa directemente al componentes sed publica un message sur un receptaculo JMS (*queue* o *topic*) configurate sur le servitor applicative qui va alora provocar le activation per iste servitor de un instantia del EJB concernite pro poter tractar iste message.

## Vide anque
### Ligamines externe
*  Cursos e tutoriales del EJB