chamada e' remota mesmo utilizando a LocalHome ?

-----Mensagem original-----
De: Robson Luis Ferreira [mailto:[EMAIL PROTECTED]]
Enviada em: ter�a-feira, 3 de dezembro de 2002 17:52
Para: [EMAIL PROTECTED]
Assunto: Re: [enterprise-list] questao de performance



  Mesmo sendo a mesma m�quina, os m�todos s�o
invocados remotamente. Isso gera uma perda de
performance. J� estudou RMI ? O princ�pio � o mesmo.
Ali�s muitos containers utilizam essa API. Vc pode
executar seu client na mesma m�quina onde est� seu
server, mas todas as requisi��es passam por essa
camada. Ok ! Quanto a justificativa, uma que posso
citar no momento � que o c�digo abaixo est� um tanto
dif�cil de se ler, comparando-se a alternativa de se
ter um bean que fa�a essa chamada e retorne somente o
que vc necessita para sua itera��o. Concorda ?


[]'s
Robson Luis Ferreira


 --- marcel <[EMAIL PROTECTED]> escreveu: 
<HR>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN">
<html>
<head>
  <title></title>
</head>
<body>
mas o Design pattern de value object foi desenvolvido
para solucionar problemas
de "remote invocations" como mostra o "Core Design
Patterns. best practices
and Design Strategies"<br>
e como eu disse, eu estou usando somente uma
maquina<br>
<br>
Robson Luis Ferreira wrote:<br>
<blockquote type="cite"

cite="[EMAIL PROTECTED]">
  <pre wrap="">    Analisando melhor, um ponto de
perda de
performance seria o fato de vc n&atilde;o utilizar a
pattern
Value Object (ou Data Transfer Object, &eacute;
s&oacute; quest&atilde;o de
nome). Procure mais informa&ccedil;&otilde;es a
respeito.




 --- Robson Luis Ferreira <a
class="moz-txt-link-rfc2396E"
href="mailto:[EMAIL PROTECTED]";>&lt;[EMAIL PROTECTED]&gt;</a>
escreveu: &gt; 
  </pre>
  <blockquote type="cite">
    <pre wrap="">   Creio que perda de performance
n&atilde;o, se pensar em
outras solu&ccedil;&otilde;es com os mesmos hardwares.
Mas, perda
de
modularidade, reutiliza&ccedil;&atilde;o de
c&oacute;digo, tempo e
dinheiro, existe !!

[]'s
Robson Luis Ferreira

 --- marcel <a class="moz-txt-link-rfc2396E"
href="mailto:[EMAIL PROTECTED]";>&lt;[EMAIL PROTECTED]&gt;</a>
escreveu: &gt; Uso
um
JSP chamando diretamente um Entity da mesma
    </pre>
    <blockquote type="cite">
      <pre wrap="">maquina da seguinte 
forma.
Isso tem problemas de performance ?

tenho o seguinto trecho de codigo JSP :

...
   &lt;tr&gt;
      &lt;td width="33%" height="30"
      </pre>
    </blockquote>
    <pre wrap="">bgcolor="#96A8C7"&gt;
    </pre>
    <blockquote type="cite">
      <pre wrap="">&amp;nbsp;
&lt;select name="selgrupo" id="selgrupo" 

      </pre>
    </blockquote>
  </blockquote>
  <pre wrap=""><!---->onChange=<a
class="moz-txt-link-rfc2396E"
href="javascript:document.frmProdutos.submit();">"javascript:document.frmProdutos.submit();"</a>&gt;
  </pre>
  <blockquote type="cite">
    <blockquote type="cite">
      <pre wrap="">   &lt;option
value="0"&gt;Selecione&lt;/option&gt;
&lt;%
   GruposprodutosHome claGruposprodutosHome =
(GruposprodutosHome) 

      </pre>
    </blockquote>
  </blockquote>
  <pre
wrap=""><!---->ServiceLocator.getInstance().getLocalHome("Gruposprodutos");
  </pre>
  <blockquote type="cite">
    <blockquote type="cite">
      <pre wrap="">   Collection colGruposprodutos =
claGruposprodutosHome.findAll();
   java.util.Iterator itGruposprodutos =
colGruposprodutos.iterator();

   while (itGruposprodutos.hasNext()) {
     Gruposprodutos claGruposprodutos  =
(Gruposprodutos) 
itGruposprodutos.next();
     if (intGrupo ==
claGruposprodutos.getIdGrupoproduto().intValue())
      </pre>
    </blockquote>
    <pre wrap="">{
    </pre>
    <blockquote type="cite">
      <pre wrap="">         out.println("&lt;option 

      </pre>
    </blockquote>
  </blockquote>
  <pre
wrap=""><!---->value='"+claGruposprodutos.getIdGrupoproduto().intValue()+"'
  </pre>
  <blockquote type="cite">
    <blockquote type="cite">
      <pre wrap="">
      </pre>
    </blockquote>
  </blockquote>
  <pre
wrap=""><!---->selected&gt;"+claGruposprodutos.getVchnome()+"&lt;/option&gt;");
  </pre>
  <blockquote type="cite">
    <blockquote type="cite">
      <pre wrap="">      } else {
         out.println("&lt;option 

      </pre>
    </blockquote>
  </blockquote>
  <pre
wrap=""><!---->value='"+claGruposprodutos.getIdGrupoproduto().intValue()+"'&gt;"+claGruposprodutos.getVchnome()+"&lt;/option&gt;");
  </pre>
  <blockquote type="cite">
    <blockquote type="cite">
      <pre wrap="">      }
   }
%&gt;
&lt;/select&gt;
&lt;/td&gt;
...

que usa o EJB:
(HOME INTERFACE)

package br.com.nmbrazil.ghost.ejb.almoxarifado;

import javax.ejb.*;
import java.util.*;

public interface GruposprodutosHome extends
javax.ejb.EJBLocalHome {
   public Gruposprodutos create(Integer
idGrupoproduto) throws 
CreateException;
   public Collection findAll() throws
FinderException;
   public Gruposprodutos findByPrimaryKey(Integer
idGrupoproduto) throws 
FinderException;
}


(LOCAL INTERFACE)

package br.com.nmbrazil.ghost.ejb.almoxarifado;

import javax.ejb.*;
import java.util.*;

public interface Gruposprodutos extends
javax.ejb.EJBLocalObject {
   public Integer getIdGrupoproduto();
   public void setVchnome(String vchnome);
   public String getVchnome();
   public void setIdCtaconticmdebito(Integer
idCtaconticmdebito);
   public Integer getIdCtaconticmdebito();
   public void setIdCtaconticmcredito(Integer
idCtaconticmcredito);
   public Integer getIdCtaconticmcredito();
   public void
      </pre>
    </blockquote>
    <pre wrap="">setIdCtacontmercadoriadebito(Integer 
    </pre>
    <blockquote type="cite">
      <pre wrap="">idCtacontmercadoriadebito);
   public Integer getIdCtacontmercadoriadebito();
   public void
      </pre>
    </blockquote>
    <pre wrap="">setIdCtacontfornecedordebito(Integer 
    </pre>
    <blockquote type="cite">
      <pre wrap="">idCtacontfornecedordebito);
   public Integer getIdCtacontfornecedordebito();
   public void setIdCtacontfretedebito(Integer
idCtacontfretedebito);
   public Integer getIdCtacontfretedebito();
   public void
      </pre>
    </blockquote>
    <pre wrap="">setIdCtacontmercadoriacredito(Integer
    </pre>
    <blockquote type="cite">
      <pre wrap="">idCtacontmercadoriacredito);
   public Integer getIdCtacontmercadoriacredito();
   public void
      </pre>
    </blockquote>
    <pre wrap="">setIdCtacontfornecedorcredito(Integer
    </pre>
    <blockquote type="cite">
      <pre wrap="">idCtacontfornecedorcredito);
   public Integer getIdCtacontfornecedorcredito();
   public void setIdCtacontfretecredito(Integer
idCtacontfretecredito);
   public Integer getIdCtacontfretecredito();
}


(BEAN)

package br.com.nmbrazil.ghost.ejb.almoxarifado;

import javax.ejb.*;

abstract public class GruposprodutosBean
      </pre>
    </blockquote>
    <pre wrap="">implements
    </pre>
    <blockquote type="cite">
      <pre wrap="">EntityBean {
  EntityContext entityContext;
  public java.lang.Integer
ejbCreate(java.lang.Integer idGrupoproduto) 
throws CreateException {
    setIdGrupoproduto(idGrupoproduto);
    return null;
  }
  public void ejbPostCreate(java.lang.Integer
idGrupoproduto) throws 
CreateException {
    /**@todo Complete this method*/
  }
  public void ejbRemove() throws RemoveException {
    /**@todo Complete this method*/
  }
  public abstract void
setIdGrupoproduto(java.lang.Integer
      </pre>
    </blockquote>
    <pre wrap="">idGrupoproduto);
    </pre>
    <blockquote type="cite">
      <pre wrap="">  public abstract void
setVchnome(java.lang.String
vchnome);
  public abstract void
setIdCtaconticmdebito(java.lang.Integer 
idCtaconticmdebito);
  public abstract void
setIdCtaconticmcredito(java.lang.Integer 
idCtaconticmcredito);
  public abstract void
setIdCtacontmercadoriadebito(java.lang.Integer 
idCtacontmercadoriadebito);
  public abstract void
setIdCtacontfornecedordebito(java.lang.Integer 
idCtacontfornecedordebito);
  public abstract void
setIdCtacontfretedebito(java.lang.Integer 
idCtacontfretedebito);
  public abstract void
setIdCtacontmercadoriacredito(java.lang.Integer 
idCtacontmercadoriacredito);
  public abstract void
setIdCtacontfornecedorcredito(java.lang.Integer 
idCtacontfornecedorcredito);
  public abstract void
setIdCtacontfretecredito(java.lang.Integer 
idCtacontfretecredito);
  public abstract java.lang.Integer
getIdGrupoproduto();
  public abstract java.lang.String getVchnome();
  public abstract java.lang.Integer
getIdCtaconticmdebito();
  public abstract java.lang.Integer
getIdCtaconticmcredito();
  public abstract java.lang.Integer
getIdCtacontmercadoriadebito();
  public abstract java.lang.Integer
getIdCtacontfornecedordebito();
  public abstract java.lang.Integer
getIdCtacontfretedebito();
  public abstract java.lang.Integer
getIdCtacontmercadoriacredito();
  public abstract java.lang.Integer
getIdCtacontfornecedorcredito();
  public abstract java.lang.Integer
getIdCtacontfretecredito();
  public void ejbLoad() {
      </pre>
    </blockquote>
  </blockquote>
  <pre wrap=""><!---->=== message truncated === 

_______________________________________________________________________
Yahoo! Acesso Gr&aacute;tis
Internet r&aacute;pida, gr&aacute;tis e f&aacute;cil.
Fa&ccedil;a o download do discador agora mesmo.
<a class="moz-txt-link-freetext"
href="http://br.acesso.yahoo.com/";>http://br.acesso.yahoo.com/</a>

---------------------------------------------------------------------
Para cancelar a subscri&ccedil;&atilde;o, envie
mensagem para: <a class="moz-txt-link-abbreviated"
href="mailto:[EMAIL PROTECTED]";>[EMAIL PROTECTED]</a>
Para comandos adicionais, envie mensagem para: <a
class="moz-txt-link-abbreviated"
href="mailto:[EMAIL PROTECTED]";>[EMAIL PROTECTED]</a>


  </pre>
</blockquote>
<br>
</body>
</html>


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

_______________________________________________________________________
Yahoo! Acesso Gr�tis
Internet r�pida, gr�tis e f�cil. Fa�a o download do discador agora mesmo.
http://br.acesso.yahoo.com/

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


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

Responder a