|
"Sim, exatamente, O business delegate faz
isso, a interface fica igual mas a camada de negocios muda (troca de DAO por EJB
por exemplo). "
Blz, pelo menos entramos num consenso aqui. Para quem fez a pergunta originalmente, a reposta acabou :-) Agora, vamos entrar numa outra discuss�o, j� que a original foi desvirtuada para as particularidades de Web Services. Voc� disse: "A aplica��o Cleinte (swing)) � cliente dos webservices, o webservice layer � cliente do business layer." Isto est� perfeito! A nossa diverg�ncia de opini�es aconteceu pq vc est� defendendo a coloca��o do BD ap�s a WebService Layer e eu t� querendo que ela fique antes. Na verdade, acho que deve haver um BD para o Cliente e tmb um BD para a WebService layer. Veja porque: Temos algo assim: Client Layer --------> WebService Layer ---------> Business Layer Se colocarmos um BD apenas para ser utilizado pela WebService Layer Client Layer ----> WebService Layer -----> WS_BD -----> Business Layer ainda teremos a Client Layer altamente acoplada � WebService Layer, pois na aplica��o cliente teremos c�digo do tipo: Stub stub = (Stub)(new WebService_Impl().getWebServicePort()); stub._setProperty(javax.xml.rpc.Stub.ENDPOINT_ADDRESS_PROPERTY, args[0]); WebService hello = (WebService)stub; System.out.println(hello.fale("Oi Sven")); Mas e se o(s) cliente(s) n�o quiserem mais utilizar WebServices, haveria todo o impacto de eliminar este c�digo de toda a Client Layer. Logo: Client Layer ----> CLT_BD
----> WebService Layer -----> WS_BD -----> Business
Layer
"A ideia de um Business Delegate � a separa��o
da camada de negocios (EJB no caso) da camada de
apresenta��o(...)"
Eu diria que o Business Delegate promove o
desacoplamento entre quaisquer camadas que estejam adjacentes.
"Se fize do seu jeito seus webserviced
developers derepente tem que saber o API de EJB tamb�m, se o jaxrpc endpoint
chama o BD, isso � tudo encapsulado, que � exatamente a raz�o de uso de BD.
"
Ent�o vamos tmb ajudar os client developers e
encapsular deles toda a complexidade para o acesso � WebServices, para que n�o
precisem conhecer nada de JAX-RPC ou JAXM ou JAXR ou........
[]s
By Ale!
----- Original Message ----- From: [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Thursday, October 03, 2002 3:46 PM Subject: Re: [enterprise-list] Business Delegator > > Por mim, para atingir os objetivos do Business Delegate, deveria ser: > > Cliente ------> BusinessDelegate1 ------> WebserviceClient > Impl------->SOAP----> JAX-RPC webservice endpoint -----> SessionBean > ------> EntityBean Ae vc esqueca que o JAX-RPC endpoint j� � a camada de apresenta��o, rodando como servlet no seu JSP/Servlet engine. A ideia de um Business Delegate � a separa��o da camada de negocios (EJB no caso) da camada de apresenta��o (JSP/Servlet, Swing etc. WebService deve ser considerada a camada de apresenta��o. Ver no EJB Design Patterns do Marinescu, P 99 'A business delegate is a plain java class that serves as an intermediary between client and server. Clients locally invoke messages on the bussiness delegate, which than usually directly delegates to a method with the same signauture on the session fa�ade (...) Business delegates map 1-to-1 to session beans on the session fa�ade(...)' A coisa de webservices � que � similar ao web mesmo, so que manda e retorna soap. Vc n�o sabe o que ser� seu 'client'. Pode ser at� uma aplica��o VB (arrggg). Pelo ponto de visto de modelagem e camadas ent�o, os webservices s�o considerados 'clientes'. N�o preciso faze nada mais do que definir o SOAP que quero receber e vou mandar, gual HTML so que no web, a entrada � predefinida pelo padr�o HTTP. Se fize do seu jeito seus webserviced developers derepente tem que saber o API de EJB tamb�m, se o jaxrpc endpoint chama o BD, isso � tudo encapsulado, que � exatamente a raz�o de uso de BD. > Ele n�o quer utilizar o BD para evitar altera��es na camada neg�cio > quando a camada cliente muda, como vc fez. Ele quer evitar alterar o > cliente quando a camada de neg�cios sofrer altera��es. Sim, exatamente, O business delegate faz isso, a interface fica igual mas a camada de negocios muda (troca de DAO por EJB por exemplo). > A abordagem que vc fez � a de que o BD seja um simples proxy do > Session, quando eu acho que ele deveria ser algo mais. Ser apenas um > proxy � papel de um Client Facade. IHMO, Business Delegate = Client > Facade + Service Locator N�o o BD pode, mas nem precisa ser usada com Service Locator. > > Veja o que diz a documenta��o do BD: " Potentially, this (Business > Delegate) reduces the number of changes that must be made to the > presentation-tier client code when the business service API or its > underlying implementation changes." (from http://java.sun. > com/blueprints/corej2eepatterns/Patterns/BusinessDelegate.html) Mas � exatamente por isso que o Business delegate deve ficar atras do webservice endpoint e n�o dentro da aplica��o cliente A aplica��o Cleinte (swing)) � cliente dos webservices, o webservice layer � cliente do business layer. |
- [enterprise-list] Reportin... Thiago - Datasus
- Re: [enterprise-list] Business... Vin�cius de Faria Silva
- Re: [enterprise-list] Business... Ale!
- Re: [enterprise-list] Busi... sven
- Re: [enterprise-list] ... Ale!
- Re: [enterprise-l... Maykel Tres
- Re: [enterpri... Emerson Cargnin - SICREDI Servi�os
- Re: [enterpri... sven
- Re: [enterpri... Maykel Tres
- Re: [enterprise-l... sven
- Re: [enterpri... Ale!
- Re: [enterpri... sven
- Re: [enterpri... Ale!
- Re: [enterprise-l... Vin�cius de Faria Silva
- Fw: [enterprise-list] Business Delegato... Bruno Copelli
