| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/12/2007 20:17:04
|
raf4ever
GUJ Master
Membro desde: 30/01/2005 01:34:51
Mensagens: 1623
Localização: Fortaleza-Ce
Offline
|
Pessoal,
estou estudando sobre SOA e até pensando em fazer a prova da IBM sobre o assunto.
Mas não consigo entender o que é um ESB na prática,apesar dos vários materiais a respeito que tenha lido.Alguém tem
uma explicação simples que possa me dar?
Grato
|
Rafael Roque
Quis custodiet ipsos custodes?
IBM Certified SOA Associate
ITIL Foundations Certified
SCEA(I)
SCWCD
SCJP
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/12/2007 21:46:32
|
lavh
GUJ Master
Membro desde: 30/07/2006 16:09:55
Mensagens: 1311
Offline
|
raf4ever wrote:Pessoal,
estou estudando sobre SOA e até pensando em fazer a prova da IBM sobre o assunto.
Mas não consigo entender o que é um ESB na prática,apesar dos vários materiais a respeito que tenha lido.Alguém tem
uma explicação simples que possa me dar?
Grato
Cara,
nunca tinha ouvido falar em ESB. Li a Mundo Java deste mês e hoje jah entendo o que é, na teoria e na prática. Pode ser um caminho pra vc...
Mas de fato, o que vc não entendeu?
[]'s
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/12/2007 08:19:30
|
rolemberg
JavaGuru
![[Avatar]](/images/avatar/8a3cc959148558261998d139b3117ef4.jpg)
Membro desde: 30/10/2006 23:41:06
Mensagens: 231
Offline
|
Fiz uma pesquisa pequena na faculdade sobre esse assunto...Bem na me aprofundei bastante mas ESB é uma linguagem para programação de webservces(acredito que é isso)... e como vc esta interessado em fazer a certificação, aconselho vc a ler a revista portalBPM, http://www.portalbpm.com.br/, é uma revista nova no mercado, bimestral e muito boa...
at
|
SCJP 5 - Fase Completa.
SCWCD - Proxima Fase |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/12/2007 10:49:12
|
leonardom
Virtual Machine Man
![[Avatar]](/images/avatar/7f5d04d189dfb634e6a85bb9d9adf21e.jpg)
Membro desde: 23/02/2003 11:41:23
Mensagens: 679
Localização: Anywhere
Offline
|
ESB - Enterprise Service Bus não é uma linguagem de programação para Webservices. Imagine ESB como um Hub utilizado em sua rede de computadores tradicional, mas com muitas outras caracteristicas.
Ele permite customizações no serviço de mensagens, isto é ele é um Mediador. Como ele você é capaz de fazer validações e roteamento de mensagens baseado no conteúdo da mensagem por exemplo. Uma outra caracteristica, você pode ter um produtor produzindo mensagens em um formato e ter um consumidor consumindo em outro formato. o ESB faz essa conversão pra você.
ESB permita um baixo acoplamento entre sistema visto que um sistema de origem não precisa conhecer o sistema de destino. Ele também faz controles de acesso de sistemas externos e permite configurar segurança das mensagens por exemplo, usando encriptação.
Bom a ideia inicial é mais ou menos essa!
|
"If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas."
George Bernard Shaw (1856 - 1950) - Irish dramatist - Nobel Prize of Literature, 1925
blog: http://leonardom.wordpress.com
http://www.insidecode.com.br
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/12/2007 14:14:35
|
bosnic
Debugger
Membro desde: 17/11/2007 14:22:32
Mensagens: 63
Offline
|
Prezado raf4ever,
recentemente eu terminei a tradução de um livro sobre SOA, do autor Nicolai M. Josuttis. Sem dúvida é um livro excelente e tenho certeza que fará muito sucesso no mercado brasileiro quando for lançado. Não estou fazendo aqui propaganda do livro, por isso não vou mencionar nem o título nem a editora, e mesmo que o fizesse, eu já ganhei meu dinheiro pela tradução, se o livro irá vender bem ou não, não terá efeito nenhum no meu bolso.
Pois bem. Primeira coisa que deve ser entendida sobre SOA (Arquitetura Orientada a Serviços) é que SOA não é um produto, ela é simplesmente um paradigma. Do mesmo jeito que programação orientada a objetos é um paradigma, e não um produto. Dito isso, outro ponto importante a ser levado em consideração é que SOA está na moda. Por isso você verá muitas empresas por aí (IBM, Oracle, BEA e outras) vendendo SOA, empurrando SOA para os seus clientes goela abaixo. Isso é uma enganação. SOA não é um produto e portanto não pode ser vendida. SOA é algo que você terá que implementar na prática, por si só, ou junto com a sua equipe de desenvolvimento. O que essas empresas podem lhe fornecer será no máximo algumas ferramentas, frameworks, bibliotecas para facilitar o seu trabalho.
Outro ponto importantíssimo é entender se você realmente precisa de SOA, ou seja, quando é que SOA se torna necessária de fato?
SOA é um paradigma para grandes sistemas distribuídos de proprietários e tecnologias diferentes! Se este não for o seu caso, você não precisa de SOA!
Voltando agora para a sua pergunta e levando em consideração as afirmações acima:
O que é um ESB (Enterprise Service Bus)?
Nada melhor para explicar um conceito "novo" do que através de um exemplo. Suponha a seguinte situação. Uma empresa X possui um sistema de grande porte desenvolvido em Java (JEE, EJB e outros). Essa empresa X adquire uma empresa Y que por sua vez utiliza tecnologia .NET. A empresa possui um sistema de CRM que necessita, por alguma motivo, obter informações dos dois sistemas para que possa fazer algum processo de atendimento ao cliente. Para fazer isso você teria várias opções, poderia conectar os dois sistemas diretamente, poderia desenvolver uma classe (ou todo um pacote de classes) que faça acesso aos dois sistemas.
Com tempo, à medida que surgissem outras necessidades de conectar esses dois sistemas, você acabaria por ter uma confusão geral de sistemas acessando outros sistemas. Um caos de verdade. Para evitar isso, entra o papel de ESB, que neste caso seria um "negociador", seria uma "interface" para a qual você iria solicitar a execução de alguns processos, consultas, etc. Ou seja, um elemento intermediário que seria responsável por conectar sistemas diferentes. O seu sistema Java nem tomaria conhecimento de que o outro sistema é feito em .NET ou em qualquer outra tecnologia, porque ele se comunicaria apenas com o ESB, o qual por sua vez teria o papel de se conectar a esses outros sistemas. Resumidamente, ESB seria uma abstração dessa interconexão de sistemas que usam tecnologias diferentes.
A maneira mais comum de se implementar um ESB hoje é através de Web Services, mas isso não é regra, existem outras formas de se realizar a mesma atividade. (ESB <> Web Services).
Se ainda não está claro o que é um ESB, vamos tentar entrar mais na parte prática da coisa, vamos imaginar o que poderia ser um ESB. Ele poderia muito bem ser um sistema "independente" desenvolvido em .NET que disponibiliza uma séria de Web Services e que se conecta a vários backends usados pela empresa. (Usei exemplo de .NET em um fórum Java de propósito, para destacar que SOA é independente de tecnologia usada). Como Web Sevices são um padrão (tudo bem que esse padrão ainda possui diversas coisas "não padronizadas", mas é possível seguindo boas práticas e alguns padrões já estabelecidos alcançar um resultado bom), o seu sistema Java poderia se conectar a esse "ESB.NET" atráves de Web Services e obter o resultado desejado.
Só para concluir e para ficar bem claro:
SOA é um paradigma e não um produto.
Se alguém chegar dizendo que tem uma solução SOA pronta para sua empresa, isso é mentira.
ESB é o coração de uma arquitetura SOA, é o ponto de interconexão entre sistemas que usam tecnologias diferentes.
SOA está na moda, cuidado ao adquirir "produtos prontos".
Web Services são apenas uma maneira dentre outras para implementar tal arquitetura (embora de longe a mais usada).
Espero ter esclarecido para você e para outros leitores deste fórum alguns conceitos de SOA.
Um grande abraço, Feliz Natal a todos.
Ivan Bosnic (bosnic.ivan at gmail.com)
|
Bosnic |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/12/2007 23:50:03
|
raf4ever
GUJ Master
Membro desde: 30/01/2005 01:34:51
Mensagens: 1623
Localização: Fortaleza-Ce
Offline
|
Pessoal,
acho que ficou bem clara a explicação a respeito de SOA(que eu já sabia do que se tratava) e principalmente ESB,que sempre foi meu principal
ponto de dúvida a respeito desse novo paradigma.
Abraço a todos,
Rafael Roque
|
Rafael Roque
Quis custodiet ipsos custodes?
IBM Certified SOA Associate
ITIL Foundations Certified
SCEA(I)
SCWCD
SCJP
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/01/2008 14:17:38
|
Luiz_Gustavo
Virtual Machine Man
![[Avatar]](/images/avatar/012d9fe15b2493f21902cd55603382ec.png)
Membro desde: 30/04/2005 12:55:11
Mensagens: 516
Localização: Assis
Offline
|
bosnic wrote:Prezado raf4ever,
recentemente eu terminei a tradução de um livro sobre SOA, do autor Nicolai M. Josuttis. Sem dúvida é um livro excelente e tenho certeza que fará muito sucesso no mercado brasileiro quando for lançado. Não estou fazendo aqui propaganda do livro, por isso não vou mencionar nem o título nem a editora, e mesmo que o fizesse, eu já ganhei meu dinheiro pela tradução, se o livro irá vender bem ou não, não terá efeito nenhum no meu bolso.
Pois bem. Primeira coisa que deve ser entendida sobre SOA (Arquitetura Orientada a Serviços) é que SOA não é um produto, ela é simplesmente um paradigma. Do mesmo jeito que programação orientada a objetos é um paradigma, e não um produto. Dito isso, outro ponto importante a ser levado em consideração é que SOA está na moda. Por isso você verá muitas empresas por aí (IBM, Oracle, BEA e outras) vendendo SOA, empurrando SOA para os seus clientes goela abaixo. Isso é uma enganação. SOA não é um produto e portanto não pode ser vendida. SOA é algo que você terá que implementar na prática, por si só, ou junto com a sua equipe de desenvolvimento. O que essas empresas podem lhe fornecer será no máximo algumas ferramentas, frameworks, bibliotecas para facilitar o seu trabalho.
Outro ponto importantíssimo é entender se você realmente precisa de SOA, ou seja, quando é que SOA se torna necessária de fato?
SOA é um paradigma para grandes sistemas distribuídos de proprietários e tecnologias diferentes! Se este não for o seu caso, você não precisa de SOA!
Voltando agora para a sua pergunta e levando em consideração as afirmações acima:
O que é um ESB (Enterprise Service Bus)?
Nada melhor para explicar um conceito "novo" do que através de um exemplo. Suponha a seguinte situação. Uma empresa X possui um sistema de grande porte desenvolvido em Java (JEE, EJB e outros). Essa empresa X adquire uma empresa Y que por sua vez utiliza tecnologia .NET. A empresa possui um sistema de CRM que necessita, por alguma motivo, obter informações dos dois sistemas para que possa fazer algum processo de atendimento ao cliente. Para fazer isso você teria várias opções, poderia conectar os dois sistemas diretamente, poderia desenvolver uma classe (ou todo um pacote de classes) que faça acesso aos dois sistemas.
Com tempo, à medida que surgissem outras necessidades de conectar esses dois sistemas, você acabaria por ter uma confusão geral de sistemas acessando outros sistemas. Um caos de verdade. Para evitar isso, entra o papel de ESB, que neste caso seria um "negociador", seria uma "interface" para a qual você iria solicitar a execução de alguns processos, consultas, etc. Ou seja, um elemento intermediário que seria responsável por conectar sistemas diferentes. O seu sistema Java nem tomaria conhecimento de que o outro sistema é feito em .NET ou em qualquer outra tecnologia, porque ele se comunicaria apenas com o ESB, o qual por sua vez teria o papel de se conectar a esses outros sistemas. Resumidamente, ESB seria uma abstração dessa interconexão de sistemas que usam tecnologias diferentes.
A maneira mais comum de se implementar um ESB hoje é através de Web Services, mas isso não é regra, existem outras formas de se realizar a mesma atividade. (ESB <> Web Services).
Se ainda não está claro o que é um ESB, vamos tentar entrar mais na parte prática da coisa, vamos imaginar o que poderia ser um ESB. Ele poderia muito bem ser um sistema "independente" desenvolvido em .NET que disponibiliza uma séria de Web Services e que se conecta a vários backends usados pela empresa. (Usei exemplo de .NET em um fórum Java de propósito, para destacar que SOA é independente de tecnologia usada). Como Web Sevices são um padrão (tudo bem que esse padrão ainda possui diversas coisas "não padronizadas", mas é possível seguindo boas práticas e alguns padrões já estabelecidos alcançar um resultado bom), o seu sistema Java poderia se conectar a esse "ESB.NET" atráves de Web Services e obter o resultado desejado.
Só para concluir e para ficar bem claro:
SOA é um paradigma e não um produto.
Se alguém chegar dizendo que tem uma solução SOA pronta para sua empresa, isso é mentira.
ESB é o coração de uma arquitetura SOA, é o ponto de interconexão entre sistemas que usam tecnologias diferentes.
SOA está na moda, cuidado ao adquirir "produtos prontos".
Web Services são apenas uma maneira dentre outras para implementar tal arquitetura (embora de longe a mais usada).
Espero ter esclarecido para você e para outros leitores deste fórum alguns conceitos de SOA.
Um grande abraço, Feliz Natal a todos.
Ivan Bosnic (bosnic.ivan at gmail.com)
Show!!!
|
Analista e Desenvolvedor de Sistemas
http://luizgustavoss.blogspot.com/
http://luizgustavoss.wordpress.com/
http://www.linkedin.com/in/luizgustavoss
Procurando uma especialização em Java, SOA e Android? Conheça a TNT Educacional
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/05/2008 10:50:37
|
fred.ruimdebola
Smalltalk
Membro desde: 05/05/2008 10:31:13
Mensagens: 2
Offline
|
Luiz_Gustavo wrote:
bosnic wrote:Prezado raf4ever,
recentemente eu terminei a tradução de um livro sobre SOA, do autor Nicolai M. Josuttis. Sem dúvida é um livro excelente e tenho certeza que fará muito sucesso no mercado brasileiro quando for lançado. Não estou fazendo aqui propaganda do livro, por isso não vou mencionar nem o título nem a editora, e mesmo que o fizesse, eu já ganhei meu dinheiro pela tradução, se o livro irá vender bem ou não, não terá efeito nenhum no meu bolso.
Pois bem. Primeira coisa que deve ser entendida sobre SOA (Arquitetura Orientada a Serviços) é que SOA não é um produto, ela é simplesmente um paradigma. Do mesmo jeito que programação orientada a objetos é um paradigma, e não um produto. Dito isso, outro ponto importante a ser levado em consideração é que SOA está na moda. Por isso você verá muitas empresas por aí (IBM, Oracle, BEA e outras) vendendo SOA, empurrando SOA para os seus clientes goela abaixo. Isso é uma enganação. SOA não é um produto e portanto não pode ser vendida. SOA é algo que você terá que implementar na prática, por si só, ou junto com a sua equipe de desenvolvimento. O que essas empresas podem lhe fornecer será no máximo algumas ferramentas, frameworks, bibliotecas para facilitar o seu trabalho.
Outro ponto importantíssimo é entender se você realmente precisa de SOA, ou seja, quando é que SOA se torna necessária de fato?
SOA é um paradigma para grandes sistemas distribuídos de proprietários e tecnologias diferentes! Se este não for o seu caso, você não precisa de SOA!
Voltando agora para a sua pergunta e levando em consideração as afirmações acima:
O que é um ESB (Enterprise Service Bus)?
Nada melhor para explicar um conceito "novo" do que através de um exemplo. Suponha a seguinte situação. Uma empresa X possui um sistema de grande porte desenvolvido em Java (JEE, EJB e outros). Essa empresa X adquire uma empresa Y que por sua vez utiliza tecnologia .NET. A empresa possui um sistema de CRM que necessita, por alguma motivo, obter informações dos dois sistemas para que possa fazer algum processo de atendimento ao cliente. Para fazer isso você teria várias opções, poderia conectar os dois sistemas diretamente, poderia desenvolver uma classe (ou todo um pacote de classes) que faça acesso aos dois sistemas.
Com tempo, à medida que surgissem outras necessidades de conectar esses dois sistemas, você acabaria por ter uma confusão geral de sistemas acessando outros sistemas. Um caos de verdade. Para evitar isso, entra o papel de ESB, que neste caso seria um "negociador", seria uma "interface" para a qual você iria solicitar a execução de alguns processos, consultas, etc. Ou seja, um elemento intermediário que seria responsável por conectar sistemas diferentes. O seu sistema Java nem tomaria conhecimento de que o outro sistema é feito em .NET ou em qualquer outra tecnologia, porque ele se comunicaria apenas com o ESB, o qual por sua vez teria o papel de se conectar a esses outros sistemas. Resumidamente, ESB seria uma abstração dessa interconexão de sistemas que usam tecnologias diferentes.
A maneira mais comum de se implementar um ESB hoje é através de Web Services, mas isso não é regra, existem outras formas de se realizar a mesma atividade. (ESB <> Web Services).
Se ainda não está claro o que é um ESB, vamos tentar entrar mais na parte prática da coisa, vamos imaginar o que poderia ser um ESB. Ele poderia muito bem ser um sistema "independente" desenvolvido em .NET que disponibiliza uma séria de Web Services e que se conecta a vários backends usados pela empresa. (Usei exemplo de .NET em um fórum Java de propósito, para destacar que SOA é independente de tecnologia usada). Como Web Sevices são um padrão (tudo bem que esse padrão ainda possui diversas coisas "não padronizadas", mas é possível seguindo boas práticas e alguns padrões já estabelecidos alcançar um resultado bom), o seu sistema Java poderia se conectar a esse "ESB.NET" atráves de Web Services e obter o resultado desejado.
Só para concluir e para ficar bem claro:
SOA é um paradigma e não um produto.
Se alguém chegar dizendo que tem uma solução SOA pronta para sua empresa, isso é mentira.
ESB é o coração de uma arquitetura SOA, é o ponto de interconexão entre sistemas que usam tecnologias diferentes.
SOA está na moda, cuidado ao adquirir "produtos prontos".
Web Services são apenas uma maneira dentre outras para implementar tal arquitetura (embora de longe a mais usada).
Espero ter esclarecido para você e para outros leitores deste fórum alguns conceitos de SOA.
Um grande abraço, Feliz Natal a todos.
Ivan Bosnic (bosnic.ivan at gmail.com)
Show!!!
Mto bom mesmo, mas ainda seguem algumas dúvidas:
01 - Do ponto de vista do reaproveitamento de funcionalidades, performance em tempo real e da delegação de responsabilidades, SOA é interessante, certo?
Exemplo: Tenho em meu sistema 5 sistemas desktop e uns 5 formularios de web que precisam enviar informações para entregar um pedido... seria certo dizer que colocar isto como serviço seria melhor que uma jar (acessar via serviço ao invés de importar classes)? Ainda mais... poderia delegar um desenvolvedor ou um time apenas para este processo e cobrar eles com relação a KPIs? (chefe: - o processo tah ferrando em 5 segundos todas requisições de logística... trabaaaalhem!!!!) Ainda essas KPI's com um BAM poderiam dar aos Gerentes e Diretores de uma empresa dados em tempo real de requisições a um serviço...
Imagino que com jar talvez isso seja possível, mas levaria tempo pra kct pra fazer algo que com SOA seria muito mais simples... mas tá certo que pra implantar SOA, é um parto . Porém analisar o negócio em tempo real... acho muito difícil na arquitetura tradicional... Tendo em vista que no SOA, é só monitorar as requisições e respostas no ESB e gerar uns gráficos chiques em tempo real...
02 - Do ponto de vista do ESB... ele pode ter alguns serviços vistos por "fora" (entenda aqui exposto a web)?ele pode parsear informações que vão aos webservices?
Exemplo: O cliente gostaria que informações dos servidores fossem baixadas em tempo real via AJAX. Então para isto, ele faz um httpRequest direto ao ESB. O ESB parseia o retorno e manda um JSON ou um XML.
|
Fred.ruimdebola
J2EE, J2SE, e muiiiiito Oracle!
OIM, OVD, OAM, OID, Oracle Portal
Standards, AJAX, XML, JSON, Webservices, SOA... |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/05/2008 11:44:05
|
Tecnoage
GUJ Master
Membro desde: 13/03/2005 23:18:07
Mensagens: 1723
Localização: SP
Offline
|
fred.ruimdebola wrote:
Luiz_Gustavo wrote:
bosnic wrote:Prezado raf4ever,
recentemente eu terminei a tradução de um livro sobre SOA, do autor Nicolai M. Josuttis. Sem dúvida é um livro excelente e tenho certeza que fará muito sucesso no mercado brasileiro quando for lançado. Não estou fazendo aqui propaganda do livro, por isso não vou mencionar nem o título nem a editora, e mesmo que o fizesse, eu já ganhei meu dinheiro pela tradução, se o livro irá vender bem ou não, não terá efeito nenhum no meu bolso.
Pois bem. Primeira coisa que deve ser entendida sobre SOA (Arquitetura Orientada a Serviços) é que SOA não é um produto, ela é simplesmente um paradigma. Do mesmo jeito que programação orientada a objetos é um paradigma, e não um produto. Dito isso, outro ponto importante a ser levado em consideração é que SOA está na moda. Por isso você verá muitas empresas por aí (IBM, Oracle, BEA e outras) vendendo SOA, empurrando SOA para os seus clientes goela abaixo. Isso é uma enganação. SOA não é um produto e portanto não pode ser vendida. SOA é algo que você terá que implementar na prática, por si só, ou junto com a sua equipe de desenvolvimento. O que essas empresas podem lhe fornecer será no máximo algumas ferramentas, frameworks, bibliotecas para facilitar o seu trabalho.
Outro ponto importantíssimo é entender se você realmente precisa de SOA, ou seja, quando é que SOA se torna necessária de fato?
SOA é um paradigma para grandes sistemas distribuídos de proprietários e tecnologias diferentes! Se este não for o seu caso, você não precisa de SOA!
Voltando agora para a sua pergunta e levando em consideração as afirmações acima:
O que é um ESB (Enterprise Service Bus)?
Nada melhor para explicar um conceito "novo" do que através de um exemplo. Suponha a seguinte situação. Uma empresa X possui um sistema de grande porte desenvolvido em Java (JEE, EJB e outros). Essa empresa X adquire uma empresa Y que por sua vez utiliza tecnologia .NET. A empresa possui um sistema de CRM que necessita, por alguma motivo, obter informações dos dois sistemas para que possa fazer algum processo de atendimento ao cliente. Para fazer isso você teria várias opções, poderia conectar os dois sistemas diretamente, poderia desenvolver uma classe (ou todo um pacote de classes) que faça acesso aos dois sistemas.
Com tempo, à medida que surgissem outras necessidades de conectar esses dois sistemas, você acabaria por ter uma confusão geral de sistemas acessando outros sistemas. Um caos de verdade. Para evitar isso, entra o papel de ESB, que neste caso seria um "negociador", seria uma "interface" para a qual você iria solicitar a execução de alguns processos, consultas, etc. Ou seja, um elemento intermediário que seria responsável por conectar sistemas diferentes. O seu sistema Java nem tomaria conhecimento de que o outro sistema é feito em .NET ou em qualquer outra tecnologia, porque ele se comunicaria apenas com o ESB, o qual por sua vez teria o papel de se conectar a esses outros sistemas. Resumidamente, ESB seria uma abstração dessa interconexão de sistemas que usam tecnologias diferentes.
A maneira mais comum de se implementar um ESB hoje é através de Web Services, mas isso não é regra, existem outras formas de se realizar a mesma atividade. (ESB <> Web Services).
Se ainda não está claro o que é um ESB, vamos tentar entrar mais na parte prática da coisa, vamos imaginar o que poderia ser um ESB. Ele poderia muito bem ser um sistema "independente" desenvolvido em .NET que disponibiliza uma séria de Web Services e que se conecta a vários backends usados pela empresa. (Usei exemplo de .NET em um fórum Java de propósito, para destacar que SOA é independente de tecnologia usada). Como Web Sevices são um padrão (tudo bem que esse padrão ainda possui diversas coisas "não padronizadas", mas é possível seguindo boas práticas e alguns padrões já estabelecidos alcançar um resultado bom), o seu sistema Java poderia se conectar a esse "ESB.NET" atráves de Web Services e obter o resultado desejado.
Só para concluir e para ficar bem claro:
SOA é um paradigma e não um produto.
Se alguém chegar dizendo que tem uma solução SOA pronta para sua empresa, isso é mentira.
ESB é o coração de uma arquitetura SOA, é o ponto de interconexão entre sistemas que usam tecnologias diferentes.
SOA está na moda, cuidado ao adquirir "produtos prontos".
Web Services são apenas uma maneira dentre outras para implementar tal arquitetura (embora de longe a mais usada).
Espero ter esclarecido para você e para outros leitores deste fórum alguns conceitos de SOA.
Um grande abraço, Feliz Natal a todos.
Ivan Bosnic (bosnic.ivan at gmail.com)
Show!!!
Mto bom mesmo, mas ainda seguem algumas dúvidas:
01 - Do ponto de vista do reaproveitamento de funcionalidades, performance em tempo real e da delegação de responsabilidades, SOA é interessante, certo?
Exemplo: Tenho em meu sistema 5 sistemas desktop e uns 5 formularios de web que precisam enviar informações para entregar um pedido... seria certo dizer que colocar isto como serviço seria melhor que uma jar (acessar via serviço ao invés de importar classes)? Ainda mais... poderia delegar um desenvolvedor ou um time apenas para este processo e cobrar eles com relação a KPIs? (chefe: - o processo tah ferrando em 5 segundos todas requisições de logística... trabaaaalhem!!!!) Ainda essas KPI's com um BAM poderiam dar aos Gerentes e Diretores de uma empresa dados em tempo real de requisições a um serviço...
Imagino que com jar talvez isso seja possível, mas levaria tempo pra kct pra fazer algo que com SOA seria muito mais simples... mas tá certo que pra implantar SOA, é um parto  . Porém analisar o negócio em tempo real... acho muito difícil na arquitetura tradicional... Tendo em vista que no SOA, é só monitorar as requisições e respostas no ESB e gerar uns gráficos chiques em tempo real...
02 - Do ponto de vista do ESB... ele pode ter alguns serviços vistos por "fora" (entenda aqui exposto a web)?ele pode parsear informações que vão aos webservices?
Exemplo: O cliente gostaria que informações dos servidores fossem baixadas em tempo real via AJAX. Então para isto, ele faz um httpRequest direto ao ESB. O ESB parseia o retorno e manda um JSON ou um XML.
Quando vc fala em performance em tempo real acho discutível... Depende muito do caso...
|
Arquiteto de Software
Sysped Solutions
R3 SAP CAT-83, NF-e, ECD, EFD, CT-e, MANAD, IN86
www.sysped.com.br |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/05/2008 13:03:40
|
fred.ruimdebola
Smalltalk
Membro desde: 05/05/2008 10:31:13
Mensagens: 2
Offline
|
Tecnoage wrote:
fred.ruimdebola wrote:
Luiz_Gustavo wrote:
bosnic wrote:Prezado raf4ever,
recentemente eu terminei a tradução de um livro sobre SOA, do autor Nicolai M. Josuttis. Sem dúvida é um livro excelente e tenho certeza que fará muito sucesso no mercado brasileiro quando for lançado. Não estou fazendo aqui propaganda do livro, por isso não vou mencionar nem o título nem a editora, e mesmo que o fizesse, eu já ganhei meu dinheiro pela tradução, se o livro irá vender bem ou não, não terá efeito nenhum no meu bolso.
Pois bem. Primeira coisa que deve ser entendida sobre SOA (Arquitetura Orientada a Serviços) é que SOA não é um produto, ela é simplesmente um paradigma. Do mesmo jeito que programação orientada a objetos é um paradigma, e não um produto. Dito isso, outro ponto importante a ser levado em consideração é que SOA está na moda. Por isso você verá muitas empresas por aí (IBM, Oracle, BEA e outras) vendendo SOA, empurrando SOA para os seus clientes goela abaixo. Isso é uma enganação. SOA não é um produto e portanto não pode ser vendida. SOA é algo que você terá que implementar na prática, por si só, ou junto com a sua equipe de desenvolvimento. O que essas empresas podem lhe fornecer será no máximo algumas ferramentas, frameworks, bibliotecas para facilitar o seu trabalho.
Outro ponto importantíssimo é entender se você realmente precisa de SOA, ou seja, quando é que SOA se torna necessária de fato?
SOA é um paradigma para grandes sistemas distribuídos de proprietários e tecnologias diferentes! Se este não for o seu caso, você não precisa de SOA!
Voltando agora para a sua pergunta e levando em consideração as afirmações acima:
O que é um ESB (Enterprise Service Bus)?
Nada melhor para explicar um conceito "novo" do que através de um exemplo. Suponha a seguinte situação. Uma empresa X possui um sistema de grande porte desenvolvido em Java (JEE, EJB e outros). Essa empresa X adquire uma empresa Y que por sua vez utiliza tecnologia .NET. A empresa possui um sistema de CRM que necessita, por alguma motivo, obter informações dos dois sistemas para que possa fazer algum processo de atendimento ao cliente. Para fazer isso você teria várias opções, poderia conectar os dois sistemas diretamente, poderia desenvolver uma classe (ou todo um pacote de classes) que faça acesso aos dois sistemas.
Com tempo, à medida que surgissem outras necessidades de conectar esses dois sistemas, você acabaria por ter uma confusão geral de sistemas acessando outros sistemas. Um caos de verdade. Para evitar isso, entra o papel de ESB, que neste caso seria um "negociador", seria uma "interface" para a qual você iria solicitar a execução de alguns processos, consultas, etc. Ou seja, um elemento intermediário que seria responsável por conectar sistemas diferentes. O seu sistema Java nem tomaria conhecimento de que o outro sistema é feito em .NET ou em qualquer outra tecnologia, porque ele se comunicaria apenas com o ESB, o qual por sua vez teria o papel de se conectar a esses outros sistemas. Resumidamente, ESB seria uma abstração dessa interconexão de sistemas que usam tecnologias diferentes.
A maneira mais comum de se implementar um ESB hoje é através de Web Services, mas isso não é regra, existem outras formas de se realizar a mesma atividade. (ESB <> Web Services).
Se ainda não está claro o que é um ESB, vamos tentar entrar mais na parte prática da coisa, vamos imaginar o que poderia ser um ESB. Ele poderia muito bem ser um sistema "independente" desenvolvido em .NET que disponibiliza uma séria de Web Services e que se conecta a vários backends usados pela empresa. (Usei exemplo de .NET em um fórum Java de propósito, para destacar que SOA é independente de tecnologia usada). Como Web Sevices são um padrão (tudo bem que esse padrão ainda possui diversas coisas "não padronizadas", mas é possível seguindo boas práticas e alguns padrões já estabelecidos alcançar um resultado bom), o seu sistema Java poderia se conectar a esse "ESB.NET" atráves de Web Services e obter o resultado desejado.
Só para concluir e para ficar bem claro:
SOA é um paradigma e não um produto.
Se alguém chegar dizendo que tem uma solução SOA pronta para sua empresa, isso é mentira.
ESB é o coração de uma arquitetura SOA, é o ponto de interconexão entre sistemas que usam tecnologias diferentes.
SOA está na moda, cuidado ao adquirir "produtos prontos".
Web Services são apenas uma maneira dentre outras para implementar tal arquitetura (embora de longe a mais usada).
Espero ter esclarecido para você e para outros leitores deste fórum alguns conceitos de SOA.
Um grande abraço, Feliz Natal a todos.
Ivan Bosnic (bosnic.ivan at gmail.com)
Show!!!
Mto bom mesmo, mas ainda seguem algumas dúvidas:
01 - Do ponto de vista do reaproveitamento de funcionalidades, performance em tempo real e da delegação de responsabilidades, SOA é interessante, certo?
Exemplo: Tenho em meu sistema 5 sistemas desktop e uns 5 formularios de web que precisam enviar informações para entregar um pedido... seria certo dizer que colocar isto como serviço seria melhor que uma jar (acessar via serviço ao invés de importar classes)? Ainda mais... poderia delegar um desenvolvedor ou um time apenas para este processo e cobrar eles com relação a KPIs? (chefe: - o processo tah ferrando em 5 segundos todas requisições de logística... trabaaaalhem!!!!) Ainda essas KPI's com um BAM poderiam dar aos Gerentes e Diretores de uma empresa dados em tempo real de requisições a um serviço...
Imagino que com jar talvez isso seja possível, mas levaria tempo pra kct pra fazer algo que com SOA seria muito mais simples... mas tá certo que pra implantar SOA, é um parto  . Porém analisar o negócio em tempo real... acho muito difícil na arquitetura tradicional... Tendo em vista que no SOA, é só monitorar as requisições e respostas no ESB e gerar uns gráficos chiques em tempo real...
02 - Do ponto de vista do ESB... ele pode ter alguns serviços vistos por "fora" (entenda aqui exposto a web)?ele pode parsear informações que vão aos webservices?
Exemplo: O cliente gostaria que informações dos servidores fossem baixadas em tempo real via AJAX. Então para isto, ele faz um httpRequest direto ao ESB. O ESB parseia o retorno e manda um JSON ou um XML.
Quando vc fala em performance em tempo real acho discutível... Depende muito do caso...
Porque discutível?
(ainda to meio no discurso de venda do SOA... não cheguei a trabalhar na prática com isto... acredito que a maioria não... fiz alguns testes com BAM e vi isto funcionando... )
|
Fred.ruimdebola
J2EE, J2SE, e muiiiiito Oracle!
OIM, OVD, OAM, OID, Oracle Portal
Standards, AJAX, XML, JSON, Webservices, SOA... |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/06/2008 16:35:34
|
antonini
Debugger
Membro desde: 12/02/2007 15:05:44
Mensagens: 68
Localização: Joinville SC
Offline
|
fred.ruimdebola wrote:
Luiz_Gustavo wrote:
bosnic wrote:Prezado raf4ever,
recentemente eu terminei a tradução de um livro sobre SOA, do autor Nicolai M. Josuttis. Sem dúvida é um livro excelente e tenho certeza que fará muito sucesso no mercado brasileiro quando for lançado. Não estou fazendo aqui propaganda do livro, por isso não vou mencionar nem o título nem a editora, e mesmo que o fizesse, eu já ganhei meu dinheiro pela tradução, se o livro irá vender bem ou não, não terá efeito nenhum no meu bolso.
Pois bem. Primeira coisa que deve ser entendida sobre SOA (Arquitetura Orientada a Serviços) é que SOA não é um produto, ela é simplesmente um paradigma. Do mesmo jeito que programação orientada a objetos é um paradigma, e não um produto. Dito isso, outro ponto importante a ser levado em consideração é que SOA está na moda. Por isso você verá muitas empresas por aí (IBM, Oracle, BEA e outras) vendendo SOA, empurrando SOA para os seus clientes goela abaixo. Isso é uma enganação. SOA não é um produto e portanto não pode ser vendida. SOA é algo que você terá que implementar na prática, por si só, ou junto com a sua equipe de desenvolvimento. O que essas empresas podem lhe fornecer será no máximo algumas ferramentas, frameworks, bibliotecas para facilitar o seu trabalho.
Outro ponto importantíssimo é entender se você realmente precisa de SOA, ou seja, quando é que SOA se torna necessária de fato?
SOA é um paradigma para grandes sistemas distribuídos de proprietários e tecnologias diferentes! Se este não for o seu caso, você não precisa de SOA!
Voltando agora para a sua pergunta e levando em consideração as afirmações acima:
O que é um ESB (Enterprise Service Bus)?
Nada melhor para explicar um conceito "novo" do que através de um exemplo. Suponha a seguinte situação. Uma empresa X possui um sistema de grande porte desenvolvido em Java (JEE, EJB e outros). Essa empresa X adquire uma empresa Y que por sua vez utiliza tecnologia .NET. A empresa possui um sistema de CRM que necessita, por alguma motivo, obter informações dos dois sistemas para que possa fazer algum processo de atendimento ao cliente. Para fazer isso você teria várias opções, poderia conectar os dois sistemas diretamente, poderia desenvolver uma classe (ou todo um pacote de classes) que faça acesso aos dois sistemas.
Com tempo, à medida que surgissem outras necessidades de conectar esses dois sistemas, você acabaria por ter uma confusão geral de sistemas acessando outros sistemas. Um caos de verdade. Para evitar isso, entra o papel de ESB, que neste caso seria um "negociador", seria uma "interface" para a qual você iria solicitar a execução de alguns processos, consultas, etc. Ou seja, um elemento intermediário que seria responsável por conectar sistemas diferentes. O seu sistema Java nem tomaria conhecimento de que o outro sistema é feito em .NET ou em qualquer outra tecnologia, porque ele se comunicaria apenas com o ESB, o qual por sua vez teria o papel de se conectar a esses outros sistemas. Resumidamente, ESB seria uma abstração dessa interconexão de sistemas que usam tecnologias diferentes.
A maneira mais comum de se implementar um ESB hoje é através de Web Services, mas isso não é regra, existem outras formas de se realizar a mesma atividade. (ESB <> Web Services).
Se ainda não está claro o que é um ESB, vamos tentar entrar mais na parte prática da coisa, vamos imaginar o que poderia ser um ESB. Ele poderia muito bem ser um sistema "independente" desenvolvido em .NET que disponibiliza uma séria de Web Services e que se conecta a vários backends usados pela empresa. (Usei exemplo de .NET em um fórum Java de propósito, para destacar que SOA é independente de tecnologia usada). Como Web Sevices são um padrão (tudo bem que esse padrão ainda possui diversas coisas "não padronizadas", mas é possível seguindo boas práticas e alguns padrões já estabelecidos alcançar um resultado bom), o seu sistema Java poderia se conectar a esse "ESB.NET" atráves de Web Services e obter o resultado desejado.
Só para concluir e para ficar bem claro:
SOA é um paradigma e não um produto.
Se alguém chegar dizendo que tem uma solução SOA pronta para sua empresa, isso é mentira.
ESB é o coração de uma arquitetura SOA, é o ponto de interconexão entre sistemas que usam tecnologias diferentes.
SOA está na moda, cuidado ao adquirir "produtos prontos".
Web Services são apenas uma maneira dentre outras para implementar tal arquitetura (embora de longe a mais usada).
Espero ter esclarecido para você e para outros leitores deste fórum alguns conceitos de SOA.
Um grande abraço, Feliz Natal a todos.
Ivan Bosnic (bosnic.ivan at gmail.com)
Show!!!
Mto bom mesmo, mas ainda seguem algumas dúvidas:
01 - Do ponto de vista do reaproveitamento de funcionalidades, performance em tempo real e da delegação de responsabilidades, SOA é interessante, certo?
Exemplo: Tenho em meu sistema 5 sistemas desktop e uns 5 formularios de web que precisam enviar informações para entregar um pedido... seria certo dizer que colocar isto como serviço seria melhor que uma jar (acessar via serviço ao invés de importar classes)? Ainda mais... poderia delegar um desenvolvedor ou um time apenas para este processo e cobrar eles com relação a KPIs? (chefe: - o processo tah ferrando em 5 segundos todas requisições de logística... trabaaaalhem!!!!) Ainda essas KPI's com um BAM poderiam dar aos Gerentes e Diretores de uma empresa dados em tempo real de requisições a um serviço...
Imagino que com jar talvez isso seja possível, mas levaria tempo pra kct pra fazer algo que com SOA seria muito mais simples... mas tá certo que pra implantar SOA, é um parto  . Porém analisar o negócio em tempo real... acho muito difícil na arquitetura tradicional... Tendo em vista que no SOA, é só monitorar as requisições e respostas no ESB e gerar uns gráficos chiques em tempo real...
02 - Do ponto de vista do ESB... ele pode ter alguns serviços vistos por "fora" (entenda aqui exposto a web)?ele pode parsear informações que vão aos webservices?
Exemplo: O cliente gostaria que informações dos servidores fossem baixadas em tempo real via AJAX. Então para isto, ele faz um httpRequest direto ao ESB. O ESB parseia o retorno e manda um JSON ou um XML.
fred.ruimdebola,
Não entendi muito bem o primeiro ponto levantado por você.
Em relação sua segunda pergunda. Sim. Você consegue fazer uma integração com um site ou algo assim. Se utilizar AJAX fica melhor ainda, pois ae você aciona um WS do seu ESB que tem por objetivo trazer os seus dados.
O bom do conceito de ESB (JBI também entra nessa) é que caso você queira utilizar um protocolo específico, nada impede que você crie um componente para isso.
A grande saca do ESB na minha opinião é que ele tende a quebrar o "emaranhado" de programas de integração, pois sem a utilização de uma camada como essa, você tera que desenvolver "N-1" programas para integrar seus sistemas, sendo q N é a quantidade de sistemas que você tem.
A especificação dele, sendo bem grosseiro, é algo como o conceito de um Switch de rede, onde você controla o destino (roteamento) dos pacotes de rede.
Caso tenha interesse em estudar ESB, aconselho a ler algo sobre JBI também.
Trabalho com o Apache ServiceMix ( http://servicemix.apache.org/ ), ele é um dos ESB`s de mercado desenvolvidos em Java. Outro deles é o Open-ESB.
O que é mais importante você lembra é que SOA, ESB, JBI são conceitos, paradigmas assim como Orientação a Objeto e não produtos. O principal é verificar se estas tecnologias e conceitos valem ou não ser empregados no seu caso, afinal, construir, migrar, customizar um produto com esses conceitos para sua necessidade tomam tempo, não só de estudo do conceito mas como de desenvolvimento/adaptação. Ai entra no caso de querer "usar uma bazuca para matar uma formiga"... hehehe...
Ats,
Endrigo Antonini
|
Endrigo Antonini
Sun Certified Java Programmer (SCJP) 5.0
http://www.endrigoantonini.com.br/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/06/2008 19:05:31
|
André Fonseca
JWizard
![[Avatar]](/images/avatar/286b0b3ea509af1aeff6bb47299d96d7.png)
Membro desde: 23/02/2007 15:52:55
Mensagens: 2030
Offline
|
muito boa explicação Ivan, parabéns!
Uma outra solução do mercado para SOA é da IBM que possui um servidor que também tem dentro dele um ESB
lá no trabalho dentro em breve vou ter que mexer com essas ferramentas..
|
Você é novo no GUJ?
Como fazer perguntas?
www.twitter.com/_afonseca |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/06/2008 20:22:59
|
Luca
Moderador
![[Avatar]](/images/avatar/17e62166fc8586dfa4d1bc0e1742c08b.jpg)
Membro desde: 06/09/2002 14:30:10
Mensagens: 5796
Localização: São Paulo/SP ou Paraty/RJ
Offline
|
Olá
O que é show, mas show mesmo é a apresentação Does My Bus Look Big in This?
Meninos, não usem ESBs só porque a IBM diz que é bom. O uso de um ESB tem lá sua utilidade mas pensem muito bem antes basear sua arquitetura no uso de um deles. A maioria dos big vendors tem fortes interesses para convencer as empresas a usá-los. Procurem ler opiniões isentas e estudar casos de uso independentes dos big vendors (que enfiam em tudo quanto é canto)
[]s
Luca
|
Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."
CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/06/2008 23:16:24
|
antonini
Debugger
Membro desde: 12/02/2007 15:05:44
Mensagens: 68
Localização: Joinville SC
Offline
|
Luca wrote:Olá
O que é show, mas show mesmo é a apresentação Does My Bus Look Big in This?
Meninos, não usem ESBs só porque a IBM diz que é bom. O uso de um ESB tem lá sua utilidade mas pensem muito bem antes basear sua arquitetura no uso de um deles. A maioria dos big vendors tem fortes interesses para convencer as empresas a usá-los. Procurem ler opiniões isentas e estudar casos de uso independentes dos big vendors (que enfiam em tudo quanto é canto)
[]s
Luca
Concordo com o que o colega Luca comentou... Eh de extrema importancia que voce adote um ESB por indentificar a necessidade da utilizacao e nao apenas por que o fornecedor quer que voce use-o.. Cada caso tem que ser analisado levando em conta todos os fatores possiveis e imaginaveis... As vezes a utilizacao de um ESB apenas ira dificultar o seu trabalho pois tem muito recurso que nao sera utilizado ou falta de conhecimento da ferramenta mesmo...
A hora que eu chegar na empresa amanha eu dou uma olhada no video, mas pelo titulo parece ser bem interessante...
Ats,
Endrigo Antonini
|
Endrigo Antonini
Sun Certified Java Programmer (SCJP) 5.0
http://www.endrigoantonini.com.br/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/06/2008 10:09:56
|
Luca
Moderador
![[Avatar]](/images/avatar/17e62166fc8586dfa4d1bc0e1742c08b.jpg)
Membro desde: 06/09/2002 14:30:10
Mensagens: 5796
Localização: São Paulo/SP ou Paraty/RJ
Offline
|
Olá
Reli minha mensagem e me pareceu que alguém poderia pensar que eu não gostei do texto do Ivan Bosnic quando disse que show mesmo é a apresentação do Jim Webber & Martin Fowler.
Que fique claro 2 coisas:
1) O texto do Bosnic está ótimo
2) A apresentação que indiquei é realmente um show. Assistam e vejam uma performance de 2 artistas na arte de apresentar idéias. Mesmo achando que eles misturaram assuntos sem outra necessidade senão fazer marketing da TW e foram um tanto radicais, a apresentação é ótima.
[]s
Luca
|
Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."
CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/ |
|
|
 |
|
|
|
|