Antes de qualquer coisa, gostaria de agradecer a todos pelos 
esclarecimentos e pela participa��o na discuss�o.

Quero agradecer especialmente aos amigos: Danilo Luiz Rheinheimer 
<[EMAIL PROTECTED]>, Julio Cesar dos Santos Lins 
<[EMAIL PROTECTED]>, Sven E. van �t Veer <[EMAIL PROTECTED]>, Paulo 
([EMAIL PROTECTED]), Roberto Figueiredo <[EMAIL PROTECTED]>, Sr. 
Apocalipse [[EMAIL PROTECTED]] (com esse eu nem discuto...), 
Carloshp Silva [[EMAIL PROTECTED]] e ao Alvaro Mota 
<[EMAIL PROTECTED]>. Tenho certeza que ainda vamos nos falar muito. :) 

Apenas hoje consegui ler todas as respostas e gostaria de debater algumas 
coisas sobre cada uma delas

Pe�o que antes de ler as minhas coloca��es, lembrem dos seguintes:

- Estou apenas querendo debater o assunto, pois n�o tenho certeza do que 
estou falando. Acredito que podemos avan�ar um pouco mais nessas id�ias e 
com as minhas d�vidas ajudar outros desenvolvedores. 

- Esse � o meu primeiro trabalho em Java e estou a 40 dias vendo como isso 
pode ser utilizado, ou seja, tive que quebrar v�rios paradigmas para chegar 
at� aqui. Eu desenvolvia em VB/Oracle/SQL Server h� 08 anos, conhe�o Java a 
menos de 01 ano e estou trabalhando com Java (standard e enterprise) a 
apenas 40 dias. Portanto n�o exijam muito de mim. OK?!  :)

- Tentei utilizar a pior situa��o poss�vel para ver a que ponto chegaria 
(EJB Server [refer�ncia] e BD Cloudscape [refer�ncia]), n�o foi a minha 
inten��o conseguir a melhor performance poss�vel. Queria ver qual era a 
pior situa��o.

- Sempre soube que a aplica��o que foi desenvolvida para testes "abra�ava" 
v�rios problemas de Design, pois n�o tive tempo de verificar todos os 
patters existentes e mesmo se tivesse os visto n�o saberia em que momento 
utiliz�-los corretamente. Preciso de um pouco mais de horas de 
desenvolvimento em Java (standard/enterprise) para "absorver" algumas 
caracter�sticas que s� se aprendem no dia-a-dia.


* Sobre a minha d�vida inicial
------------------------------
Na minha primeira mensagem falei sobre um problema que estava tendo com uma 
aplica��o "simples". Realmente n�o estou seguindo nenhum "design" arrojado 
de sistema, apenas quis ter uma pequena amostra do que se poderia fazer com 
o tal "EJB".

Realmente, a arquitetura do mesmo n�o est� bem feita. Pra n�o dizer que 
est� uma "droga", me aventurei em utilizar os patterns: Service Locator, 
Value Objects e Fa�ade. Apenas isso.

N�o tinha muito tempo pra experimentar os outros Patterns ou todas as 
poss�veis formas de combina��es entre eles.



* Sobre o BluePrint - Petstore 1.3.1
------------------------------------
"A Java Pet Store � uma PODEROSA aplica��o que possibilita aos 
desenvolvedores arquitetar solu��es padronizadas de alta qualidade, al�m de 
formar um reposit�rio de conhecimentos sobre os aspectos mais comuns de 
design e recomenda��es de 'best pratice'."
[Fonte: Sun Network - nr 36 - Fevereiro/2002 - p�g 31]

N�o a enxerguei apenas como uma demonstra��o, mas sim como um modelo a ser 
seguido e proposto pela pr�pria Sun. N�o consegui absorver toda a sua 
complexidade ainda, pois n�o sei o que � melhor. Mas foi o �nico "caso de 
uso" que vi funcionando corretamente, utilizando o CMP do EJB 2.0.

Ent�o, o que um "leigo" faria se n�o tivesse ningu�m pra perguntar? 
Seguiria o modelo proposto, concordam?  :)



* Sobre os m�todos "finders"
----------------------------
Realmente n�o d� para entender o porque de sua "n�o-utiliza��o". Estamos 
falando de Enterprise Servers ou de servidores de aplica��o convencionais 
(COM+, MTS, etc) onde tudo trabalha com algo parecido com 
componentes "Stateless"?  :]

Eu havia entendido que todas as inst�ncias ficariam na mem�ria do container 
(ativa ou passivada) e que o container faria o "papel" do nosso bom e velho 
Banco de Dados. Estou apenas divagando, pois essa foi a id�ia que tive 
quando ouvi falar de Enterprise Server (algo muito "esbanjador" de mem�ria 
e processamento).

Se n�o fosse para usar os m�todos "finders", pra que ent�o propuseram a sua 
utiliza��o?

Por que um metodo do tipo findAll � ridiculo? Quando utiliz�-lo ent�o, pois 
existem exemplos no J2EE Tutorial que estimulam a sua utiliza��o.

O Roberto Figueiredo cita que a documenta��o diz que um Entity dever� 
trazer no m�ximo 10 registros e isso � demaseadamente grande para 
performance. Onde isso est� escrito? Isso seria de grande ajuda para a 
continuidade dos meus estudos e para futuras explica��es.
 
Diz tamb�m que um SessionBean dever� fazer uma conex�o direta para trazer 
somente as chaves prim�rias dos registros que voc� quer utilizar, e usar os 
EntityBean para trazer todo o resto do registro um a um pela chave 
prim�ria. 

Pois �, mas n�o � isso mesmo que um m�todo find faz?

Os finders devem ser encarados como m�todos utilizados internamente pelo 
Container (com o EJBQL)? 



* Sobre a bibliografia que utilizei
---------------------------------

- J2EE Tutorial (Sun) [gratuito - dispon�vel no site da 
http://java.sun.com/j2ee] 

- Mastering Enterprise Java Beans - 2a Ed. [gratuito - dispon�vel no site 
da http://www.theserverside.com] 
  (leitura de t�picos referentes a BMP e CMP)

- EJB Design Patterns [gratuito - dispon�vel no site da 
http://www.theserverside.com] 
  (leitura superficial)

- Core J2EE Patterns - As Melhores Pr�ticas e Estrat�gias de Design
  Deepak Alur at Al. - Ed. Campus - (leitura superficial)
  
  
  

* Sobre as transa��es
---------------------

[Sven]

J2EE � um plataforma transacional, performance n�o � da primeira 
importancia.

Pois �. Com um app server bom, vc pode setar um flag que somente os EJB 
acessam os dados. No J2EE RI isso n�o funciona, portanto, poderia utilizar 
um flag (boolean isDirty) que indica q vc alterou algo. 

Fora isso, usa Value Object Design Pattern e coloque 2 metodos no EJB, 
getData e setData.


[Zanata] - Nova pergunta

Uma das respostas pediu para que eu desativasse a transa��o do m�todo, mas 
no CMP eu tenho apenas 03 alternativas para transa��es: Required, Require 
New, Mandatory. No BMP sim eu tenho 05 alternativas: Suportada, Requerida, 
Requer Nova, Mandat�ria e N�o requerida. Isso est� correto ou acontece 
apenas no servidor de refer�ncia?



* Banco de Dados Compartilhado entre Container X Sistemas Legados
------------------------------------------------------------------

� poss�vel compartilhar um Banco de Dados que est� sendo utilizado para 
persist�ncia de entidades atrav�s de um EJB Container com outras 
aplica��es/sistemas externos?

Se for poss�vel, quais os cuidados a serem tomados? 



* Servidor de Aplica��es
------------------------------------------------------------------

[Sven]

De acordo com o Sven, o WebLogic 7 � o melhor servidor comercial. J� 
t�nhamos feito um levantamento e ele est� em 1o. lugar nas pesquinas.  

Websphere � uma crian�a problem�tica. Apesar que n�o tem CMP EJB 2.0 
precisa de um DB2 ou Informix para passiva��o de EJB etc. �
/extremamente complicado a instala��o � complicado o deployment de 
aplica��es. Ele n�o � um produto mas uma combina��o de v�rias produtos. 
Prefiro ficar sem clientes do que mexer com cliente com websphere. (OK, 
Tomarei cuidado)

J� utilizei Weblogic, Oracle, Websphere e Orion e Borland. Destes Weblogic 
d� o menos dor de cabe�a.


[J�lio Cesar - CESAR]

De acordo com o C�sar, o JBoss � um bom servidor de aplica��o, e realmente, 
de acordo com que verifiquei ele est� em 4o lugar nas pesquisas. Por ser um 
servidor n�o-comercial, acho que esta � uma boa ferramenta.

Verifiquei que o �nico problema dele n�o ter o "selo" J2EE (se � assim que 
se fala...) � que para isso o fornecedor do servidor precisa pagar para a 
Sun algo em torno de US$20000. 

Por ser uma ferramenta n�o-comercial, quem � que vai pagar a conta?!  :)

Do pouco que vi, achei o servidor muito bom. Mas n�o avancei muito devido 
ao monte de d�vidas que apareceram e resolvi "despejar" todas elas na lista.




* Sobre a migra��o de aplica��es para outros servidores de aplica��es
---------------------------------------------------------------------

[Sven] 

Os 'grandes' podem auto  gerar alguns destes XML baseado no ejb-jar.xml e 
seu bean. (Sobre o problema da gera��o de arquivos XML para deploy)




* Sobre a minha pergunta...
----------------------------------------------------------------------------
----------------------------------
P: Algu�m da lista desenvolveu ou conhece algum caso de sucesso de 
aplica��o que utiliza EJB 2.0 (CMP) com alguns EJB que contenham algo em 
torno de 10.000 ou mais entidades? Se sim, temos como v�-la funcionando? � 
perform�tico? Funciona bem? Em que ambiente est� funcionando 
(m�quina/software/rede)?

R: [Sven] J� fez, 8500 transa��es a cada 5 minutos. Roda num PIII 2 cpu de 
850 c 2 Giga de memoria, DB � Oracle 8.1.5 num maq igual com 4 GB de 
memoria. Utilizando J2EE CMP, JMS etc. Funciona perfeitamente.


R: [Danilo Luiz Rheinheimer] ... fiz testes inserindo ate 90.000 registros 
em uma tabela e ele acessou sem problemas. Eu usei neste teste o JBoss e o 
Firebird como banco de dados.  E claro que efetuar FindAll em tudo isso vai 
ficar demorado. Se vc tem uma situacao como essa e muito provavel que o seu 
design esteja incorreto.


============================================================================
=========

Por enquanto, s� tenho que agradecer a todos pela participa��o.

Quanto ao pedido de consultoria, estarei encaminhando as respostas que 
recebi para a minha ger�ncia e espero que eles tomem alguma atitude para 
entrar em contato.

Espero que continuemos com a discuss�o.

Forte abra�os a todos.


Zanata

---------------------------------------------------------------------
Para cancelar a subscri��o, envie mensagem para: 
[EMAIL PROTECTED]
Para comandos adicionais, envie mensagem para: [EMAIL PROTECTED]

Responder a