| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/12/2008 17:17:16
|
mateusbrum
JavaBaby
![[Avatar]](/images/avatar/be6ea238d9be0fc60080a6f8a8188817.png)
Membro desde: 21/01/2007 22:55:29
Mensagens: 84
Offline
|
Olá pessoal!
Estava lendo esse livro :
[url]
http://www.amazon.com/Service-Oriented-Architecture-Java-applications/dp/1847193218/ref=sr_1_2?ie=UTF8&s=books&qid=1230150990&sr=1-2
[/url]
Sendo assim, me deparei com alguns conceitos que não consegui absorver de imediato, como Data Services e Service Data Objects.
Na realidade, entendi que os mesmos são para interoperabilidade de dados, mas na realidade, não entendi em que momento os mesmos serão utilizados.
Se alguém puder me explicar a utilização, vantagens e desvantagem ficarei muito grato.
Feliz natal para todos!!!!!
|
Mateus Henrique Brum
Analista Programador Java
Sun Certified Java Programmer 6.0
Sun Certified Web Component Developer 5.0 |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/12/2008 11:04:39
|
Kenobi
GUJ Master
![[Avatar]](/images/avatar/cf2226ddd41b1a2d0ae51dab54d32c36.jpg)
Membro desde: 14/11/2003 13:06:37
Mensagens: 1678
Localização: Brasil
Offline
|
Bom vamos lá, Data Services na verdade é um produto BEA criado sob o conceito de SDO - Service Data Objects. Entendido isso vamos ao cerne do seu problema.
Imagine que está criando um serviço de inclusão de pedidos na sua corporação e necessite inserir o pedido no seu software de CRM e ao mesmo tempo, disparar uma ordem de serviço que irá alimentar um terceiro sistema que lê uma determinada tabela num outro banco de dados.
Sua implementação terá que fazer uma chamada ao seu CRM e nesse cenário a aplicação CRM é antiquíssima e você só consegue fazer uma integração de baixo acoplamento, ou seja, acessando diretamente a base da mesma.
Está começando a entender ?
Você começa a ter que lidar Point-to-point amarrando sua implementação às estruturas de dados da companhia, seja ela DBMS, XML entre outras.
O conceito SDO serve como uma camada de abstração do seu modelo de persistência de informações, promovendo a "virtualização" dos dados da companhia. Logo essa camada conhece de fato quais são as fontes e os seus serviços irão fazer uso da mesma.
A implementação do seu serviço não precisará se preocupar onde se encontram as informações, basta você requisitar por exemplo - Quais pedidos do cliente x ? - SDO te traz uma estrutura baseada no modelo canônico - Canonical Data Model, contendo a informação que você solicitou e preparada para utilizar no seu serviço ou fluxo de processo, como um BPEL-BPM.
Os benefícios são muitos, mas o principal o desacoplamento da implementação do legado da companhia.
This message was edited 2 times. Last update was at 25/12/2008 11:09:05
|
----------------------------------------------------------
SOA|EXPERT - http://www.soaexpert.com.br
SOA de um jeito simples e eficiente. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/12/2008 09:40:09
|
andre_salvati
GUJ Ranger
Membro desde: 02/06/2005 16:28:38
Mensagens: 934
Offline
|
Na realidade produtos de outras empresas como IBM/JBoss tb implementam o conceito de SDO. A própria especificação de SDO foi escrita por um consórcio de empresas.
http://www.ibm.com/developerworks/library/specification/ws-sdo
Esse modelo propõe integração por dados e não por processos/serviços (como SOA defende). Eu considero SDO/Data Services como uma segunda opção e só recomendável quando organizações não estão dispostas a abrir mão do legado no banco de dados.
This message was edited 1 time. Last update was at 26/12/2008 09:41:31
|
Ajude na criação do StackOverflow em português!!!
http://area51.stackexchange.com/proposals/23539/software-development-in-portuguese?referrer=tI8Uon7RDszY236h5e0UuA2
http://www.empresadigital.inf.br
http://twitter.com/afsalvati |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/12/2008 10:53:44
|
Kenobi
GUJ Master
![[Avatar]](/images/avatar/cf2226ddd41b1a2d0ae51dab54d32c36.jpg)
Membro desde: 14/11/2003 13:06:37
Mensagens: 1678
Localização: Brasil
Offline
|
Taz wrote:Na realidade produtos de outras empresas como IBM/JBoss tb implementam o conceito de SDO. A própria especificação de SDO foi escrita por um consórcio de empresas.
http://www.ibm.com/developerworks/library/specification/ws-sdo
Esse modelo propõe integração por dados e não por processos/serviços (como SOA defende). Eu considero SDO/Data Services como uma segunda opção e só recomendável quando organizações não estão dispostas a abrir mão do legado no banco de dados.
Não, esse modelo de SDO seria a disponibilização dos dados através de serviços. Entretanto é necessário muito critério, para não fazer uma macarronada de serviços ingerenciáveis.
Numa arquitetura SOA bem feita, eles não vão ser usados como opção de implementação e sim de forma "complementar". Mesmo a companhia abrindo mão do seu legado, são milhares de aplicações num cenário enterprise, com diversas fontes de informação.
O que o SDO propõe é a "Virtualização" das fontes de informação, e então você constrói os seus serviços em cima dessa camada, sem se preocupar com a fisicalização de integração. À partir desse ponto, estará fazendo uso de um modelo canônico que permeia por todos os serviços da empresa e a camada de abstração à persistência que irá tratar de guardar ou requisitar as informações.
PS: Deixem isso na mente: "Complementar" não é escolha de um modelo vs outro.
|
----------------------------------------------------------
SOA|EXPERT - http://www.soaexpert.com.br
SOA de um jeito simples e eficiente. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/12/2008 11:08:47
|
mateusbrum
JavaBaby
![[Avatar]](/images/avatar/be6ea238d9be0fc60080a6f8a8188817.png)
Membro desde: 21/01/2007 22:55:29
Mensagens: 84
Offline
|
Estou começando a entender a utilização da abstracção de dados, entretanto paira a dúvida:
Deve-se criar uma camada apenas para fornecer os SDOs para atender o SOA ?
Ou há alguma outro padrão mais indicado para essa conversão de dados ?
Obrigado.
|
Mateus Henrique Brum
Analista Programador Java
Sun Certified Java Programmer 6.0
Sun Certified Web Component Developer 5.0 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/12/2008 14:52:56
|
Alessandro Lazarotti
Virtual Machine Man
![[Avatar]](/images/avatar/2aaaddf27344ee54058548dc081c6541.jpg)
Membro desde: 21/01/2004 14:12:54
Mensagens: 719
Offline
|
http://www.jboss.com/products/platforms/dataservices
|
... Lezinho
------------------------
twitter: @lazarotti
http://alessandrolazarotti.wordpress.com/
http://jbossbrasil.org/
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/12/2008 17:25:44
|
mateusbrum
JavaBaby
![[Avatar]](/images/avatar/be6ea238d9be0fc60080a6f8a8188817.png)
Membro desde: 21/01/2007 22:55:29
Mensagens: 84
Offline
|
Obrigado a todos pelos esclarecimento....
|
Mateus Henrique Brum
Analista Programador Java
Sun Certified Java Programmer 6.0
Sun Certified Web Component Developer 5.0 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/12/2008 17:28:55
|
Kenobi
GUJ Master
![[Avatar]](/images/avatar/cf2226ddd41b1a2d0ae51dab54d32c36.jpg)
Membro desde: 14/11/2003 13:06:37
Mensagens: 1678
Localização: Brasil
Offline
|
mateusbrum wrote:Estou começando a entender a utilização da abstracção de dados, entretanto paira a dúvida:
Deve-se criar uma camada apenas para fornecer os SDOs para atender o SOA ?
Ou há alguma outro padrão mais indicado para essa conversão de dados ?
Obrigado.
Na verdade não é uma "conversão" de dados e sim um mapeador de fontes de informação. Quanto ao padrão na verdade os produtos se baseiam em SDO, mas cada um faz por si implementação de características que julgam ser essenciais ou trazem benefícios diretos às equipes.
Agora vai de você pesquisar, analisar, testar e escolher uma implementação.
Quanto à fornecer somente ao SOA, poderia começar por um processo de exposição dos seus dados num modelo canônico rico, para atender outras aplicações como BI, que fazem uso de diversas fontes de informação.
Ao invés do BI ir diretamente à fonte, você disponibilizaria o conteúdo através de um proxy ( ESB).
|
----------------------------------------------------------
SOA|EXPERT - http://www.soaexpert.com.br
SOA de um jeito simples e eficiente. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/12/2008 16:08:45
|
andre_salvati
GUJ Ranger
Membro desde: 02/06/2005 16:28:38
Mensagens: 934
Offline
|
ops...
This message was edited 1 time. Last update was at 27/12/2008 16:13:23
|
Ajude na criação do StackOverflow em português!!!
http://area51.stackexchange.com/proposals/23539/software-development-in-portuguese?referrer=tI8Uon7RDszY236h5e0UuA2
http://www.empresadigital.inf.br
http://twitter.com/afsalvati |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/12/2008 16:12:03
|
andre_salvati
GUJ Ranger
Membro desde: 02/06/2005 16:28:38
Mensagens: 934
Offline
|
mateusbrum wrote:Estou começando a entender a utilização da abstracção de dados, entretanto paira a dúvida:
Deve-se criar uma camada apenas para fornecer os SDOs para atender o SOA ?
Ou há alguma outro padrão mais indicado para essa conversão de dados ?
Obrigado.
Nem sempre a exposição de serviços de acesso a dados é a melhor opção.
Se, por exemplo, vc possui informações de cliente em um cadastro único é bem mais simples expor o acesso a esses dados por uma interface de serviços comum (EJB, WS, Restful, etc...)
Por outro lado, se as informações sobre seus clientes estão na seguradora, na financeira, no banco, etc... e não é possível/viável um projeto que unifique as bases, Data Services podem ser uma boa resposta. No entanto, lembre-se que não adianta nada criar esses serviços e deixar que os legados continuem acessando diretamente as bases onde estão esses dados, da mesma maneira como faziam antes. É de responsabilidade do Data Service a sincronia dos dados entre as bases legadas, então os acessos só podem ser feitos por ele.
Data Services não são a bala de prata de SOA.
This message was edited 1 time. Last update was at 27/12/2008 16:15:27
|
Ajude na criação do StackOverflow em português!!!
http://area51.stackexchange.com/proposals/23539/software-development-in-portuguese?referrer=tI8Uon7RDszY236h5e0UuA2
http://www.empresadigital.inf.br
http://twitter.com/afsalvati |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/12/2008 16:30:09
|
mateusbrum
JavaBaby
![[Avatar]](/images/avatar/be6ea238d9be0fc60080a6f8a8188817.png)
Membro desde: 21/01/2007 22:55:29
Mensagens: 84
Offline
|
Kenobi :
Sua implementação terá que fazer uma chamada ao seu CRM e nesse cenário a aplicação CRM é antiquíssima e você só consegue fazer uma integração de baixo acoplamento, ou seja, acessando diretamente a base da mesma.
Deu a entender que eu ficaria impossibilitado de alterar minha aplicação legada, sendo assim, utilizaria uma outra camada para fornecer dados em um padrão específico (SDO).
Taz :
No entanto, lembre-se que não adianta nada criar esses serviços e deixar que os legados continuem acessando diretamente as bases onde estão esses dados, da mesma maneira como faziam antes. É de responsabilidade do Data Service a sincronia dos dados entre as bases legadas, então os acessos só podem ser feitos por ele.
Deu a entender que seria necessário alterar minha aplicação legada para acessar dados pelo Data Service.
Fiquei meio confuso nessa !!!
Outra questão é, quais os critérios para prover minhas informações em WS ou como SDO ?
|
Mateus Henrique Brum
Analista Programador Java
Sun Certified Java Programmer 6.0
Sun Certified Web Component Developer 5.0 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/12/2008 15:24:24
|
Gustavo Serafim
Thread.start()
![[Avatar]](/images/avatar/975ae6d3ce8ae6e0711821a97a9f5fae.jpg)
Membro desde: 04/09/2006 15:33:40
Mensagens: 49
Offline
|
Kenobi wrote:
Ao invés do BI ir diretamente à fonte, você disponibilizaria o conteúdo através de um proxy ( ESB).
Kenobi, concordo que - de forma complementar - serviços focados em dados são necessários. No entanto, adotar uma abordagem SOA com EDA, pode contribuir muito nestes casos. Recentemente eu estava levantando algumas questões parecidas em blog de SOA (Dados e BI):
"SOA tem uma base sólida em Design by Contract (DbC) e Component Based Development (CBD).[...]"
"[...] Serviços encapsulam os dados de seu backend - essa é uma questão essencial. Caso um determinado cliente esteja utilizando dados obtidos por intermédio de um serviço para a "execução" de uma regra de negócio, provavelmente essa regra ficaria mais coesa no serviço, não no cliente, ou seja, o serviço deveria fornecer uma operação que encapsula a regra, retornando, por exemplo, um boolean, evitando desta forma que o cliente receba dados desnecessários.
Seguindo o mesmo princípio, um serviço não deve receber dados de outros serviços para cumprir uma regra de negócio. Normalmente, tudo o que recebem são seus próprios dados ou, no máximo, identificadores únicos de conceitos de outros serviços, evitando dados/objetos que não estejam coesos. [...]"
"[...]Serviços encapsulam seus dados, por isso, sempre achei estranhas as abordagens de BI com SOA. BI consolida dados, para isso, consomem dados; serviços seguem o caminho oposto, escondem dados. Ainda temos questões de desempenho envolvidas pela característica distributiva dos serviços. No entanto, um interessante artigo da InfoQ, mostra que SOA com EDA pode, em muitos casos, substituir abordagens ETL para consolidar bases, com vantagens, para apoiar iniciativas de BI.[...]"
[]'s
|
Gustavo S. Sinis
|
|
|
 |
|
|